Integrating a standard form of debugging into the deployment circuit is almost straightforward,
given the capabilities of the Java 2 platform with regard to remote debugging, for example. The
step of adding new services to the deployed executables is also made easy by taking advantage
of the application helper eventually installed on client platforms. A typical and useful advanced
service offered by deployment circuits is the so-called management on-the-run. Take, for
instance, a J2EE executable running 24
7 on a back-end server. The capability to update it
while running is critical in this case. As we will see, deployment circuit vendors rarely offer
these kinds of services.
Here again, a new era is beginning. In the future, we will assist in the creation of a whole new
generation of such services, taking advantage of the Internet and of the ubiquity of computing
devices, possibly running Java code, naturally.
A Formal Definition of Software Deployment
Finally, we are ready to propose a definition of software deployment closer to the new scenar-
ios prompted by the Internet. We will see the practical consequences of these concepts in the
A definition of software deployment is a technical facility consisting of the establishment and
maintenance of a deployment circuit between a business service provider and a business ser-
In turn, the definition of a deployment circuit is a virtual connection supporting the Provider's
business services by means of the delivery, assembly, and management of software resources
and configurations on a client environment.
Connection policies are defined by the (software) business service provider. We refer to the
distributor as the deployment circuit supplier.
In conclusion, our vision of software deployment is network-centric, service-minded, and
focused on roles as well. These are all concepts not heavily highlighted before, but neverthe-
less very important. As we delve into more technical aspects, we will use the Java platform
extensively and progressively. The next chapter will explore the details of an abstract deploy-
ment lifecycle model, and Part II and Part III will discuss the specifics of Java software
deployment and, in particular, the JNLP protocol.