components downloaded via our deployment circuit. New versions of such add-ons are pro-
gressively released, and the end-user population could have a widely diverse assortment of
add-ons. For easier client configurations, tracking and debugging the organization of resources
in modules is essential in this case. The many possible combinations of installed modules can
be tracked easily. Modules could be thought of as linking application and deployment
Once all modules are defined (and even before, their basic structure is thought out), we are
ready to map such modules onto the deployment technology constructs in order to begin the
implementation of our deployment circuit.
Unfortunately, each deployment solution handles such a concept (grouping of resources) in a
different way, and often provides more than one clustering mechanism, thus confusing deploy-
ment engineers. We will see in Chapter 13, “A Complete Example,” a concrete yet simple
example of what is said here, which uses the JNLP technology as the chosen deployment
The concrete “creation” of deployment resources organized in modules follows the particular
deployment technology chosen. Often, it will involve the packaging of application resources
sets into JAR files and the creation of other support files.
Once all the deployment resources are created and the deployment mechanism has been tested,
all the pieces are ready to be published on the deployment server, packaged in a CD-ROM, and
Implementing an Ad-Hoc Deployment Solution
When you need a transport means for delivering your lovingly crafted products to your cus-
tomer, you go to the deployment means salon for picking what your pockets can afford.
Depending on the circumstances peculiar to your situation, you may discover that no off-the-
shelf deployment product is good for you. You have no choice but to build yourself your own
deployment means. Usually, you will not begin completely from scratch; instead, you will
assemble some pieces together, adding your own code on top of them (a practical example of
this situation is given in Chapter 7, “Building Your Own Deployment Solution,” with the
deploylet package). Of course, before undertaking such a complex activity, you should ask
yourself if it is worth building it, and if you don't have any simpler (and cheaper) solutions at
hand. Third-party advanced deployment solutions, the JNLP protocols, and the commercially-
available installation packager utilities are all sound and valid deployment means that cover a
wide range of scenarios and that allow for a rich customization. Unfortunately, there are sev-
eral cases where their use is not possible.
In these limited cases, some extra activities have to be carried out (in addition to those of the