any kind of Java software, JNLP clients can deploy only J2SE software, and with some
restrictions in their code, too. Transforming a pre-existing program into an applet could
reveal an unexpectedly complex problem.
Deployment workforce costs were thought of as being part of development costs for ease of
assessment with the other items.
Finally, let's discuss an interesting example that will practically illustrate many of the chal-
lenges developers face when they choose to radically modify the existing code to establish a
complete deployment circuit. In real-world situations, building ad-hoc solutions often comes
together with code rewriting, as this example also shows.
As an example, we will construct an ad-hoc solution for the deployment of already written
code. After having introduced the case, we will see the old code, and finally we will discuss
the proposed solution in detail.
A bank uses Java (developed in-house) for transaction recording and other various data pro-
cessing tasks for its many branches. Connections with the central server are obtained using
proprietary lines and a pre-existing, non-standard communication hardware.
Another priority for management is the capability to allow different offices within the bank
organization to develop and use their own software for particular tasks.
Given some important changes in the business organization (a merger with another bank, for
instance), the management decided to renew its software, with the following goals:
• Expanding the installed software, making it ready for future, not-yet-known features.
Leveraging the existing software is a priority, given its relatively recent adoption.
• Making the new software fully backward-compatible with the previous version. Many
offices have ported their old programs to Java and they use them daily.
•Keeping a tight central control over all clients, ensuring the highest level of security.
•Minimizing costs. This implies keeping the old, proprietary communication channels,
and to use the less-is-possible human personnel for software management and upgrades.
Bank IT engineers were asked to design such software.
From our viewpoint, this could be seen as a case in which establishing a deployment circuit
while ensuring full compatibility with already written Java code could solve all the requested