• Cache clearing is not implemented, together with selective cached files deletion. These
can be done only manually.
• Conceptually, the use of the GET command in the retrieving of classes and resources by
the ApplicationHelper class is a mistake. This subtle particular can reveal itself a prob-
lem as fully discussed later in this section.
•For simplicity, we designed both deployment services (GET, CHECK, QUIT) and busi-
ness-related ones (GET, POST, QUIT) implemented in the same protocol. This could be
a practical shortcoming, other than a conceptual overlook. A sounder design would have
separated the two groups of commands.
•Classes with the same name but in different packages cannot coexist in the local cache.
We didn't use the fully qualified names for informative reasons (that is, for keeping the
cache contents more readable).
• There is no support for ZIP or JAR files. This has been avoided in order to keep the code
simple and intuitive, but it is clear that such a feature (deploying groups of files at once)
is highly desirable in a real-world deployment mechanism.
Getting Back to Our Abstract Model
Let's see how this simple deployment solution relates with the deployment model we intro-
duced in Chapter 2. We refer to the model stages shown in Figure 2.5.
It is important to point out that the deployment solution we present here, although fully work-
ing and capable of a wide range of features, is a very simple one that is built mainly for
demonstrative purposes. Hence, the implementation of the features covered in the abstract
model is to be intended as a basic—not sophisticated—one, especially when compared against
commercial products. Nevertheless, it could be useful to see even this simple system in the
frame of the general abstract model proposed in Chapter 2.
• Publication . This phase is simplified because distributor and producer are the same orga-
nization. It is fulfilled by copying the files to be deployed (classes and other files) into
the serverdir directory. In this way, resources are made available for deployment.
• Application Helper Installation . It is performed by the usual means, such as mail
attachments, installer utilities, using deployment personnel, and so on.
• Application Installation . The first version of the client application comes bundled with
the application helper package.
• AH Check-Out . It is performed during the CHECK command communications. The res-
olution phase is performed entirely on the server, by means of the downloadPolicy prop-