Deployment Circuit Issues
Let's examine in detail what this concept entails.
A Deployment Circuit has a series of costs associated with it:
The cost of setting up the circuit. Buying distribution servers, connecting them to the Internet, or hiring skilled personnel to take care of installing the software on your organization's computers are major costs. Likewise, buying the needed wireless bandwidth for assuring the weekly update of the software running on your agents' handhelds across the country is another hidden cost.
The cost of running the circuit. If you deploy your software by using mailed CDs, you must bear the costs of preparing, packaging, and sending them. If you have specialized personnel in addition to system administrators, the costs include the hours they spend while paying a visit to all your employees, plus the time the latter remain idle while the installer staff performs the physical installation and fine-tunes the end-users' computers.
The cost of ensuring the reliability of the circuit. This is usually seen as a part of the previous class of costs. It depends on the quality needed for the given circuit. If you deploy software on telecommunication satellites, for example, you cannot afford any errors.
The cost to Software Producers of outsourcing this service to external organizations. This is nothing new in companies specialized in distributing software. For example, just think of the shareware phenomenon on the Web. Currently, distributors limit their service at file downloads, often installation software utilities. Then, they provide additional services such as billing, statistics, and the like. What is possible with the current technology is much greater.
Main Benefits of Deployment Circuits
Deployment Circuits have many benefits, depending on the kind of actors involved.
For Software Producers, employing a Deployment Circuit is about gaining a powerful competitive advantage, exploiting the features of sophisticated Deployment Circuits while possibly outsourcing the complexities and possible risks to a third-party (the Distributor).
For End-Users, the net effect is an enhanced service, given that the services (implemented by deployed software) are more ubiquitous, less implementation-dependent, and much easier to manageas well as possibly more reliable and personalized.
For Distributors, it is possibly the rise of a new profession, something akin to a software broker.
Taking Advantage of the Deployment Circuit
After the Deployment Circuit has been built, the next step is to add extra services that take advantage of the distribution channel or the application helper installed on the clients. These services could be more diverse, but we will focus on those closest to deployment.
The most common services (offered to client applications) are debugging, various types of management, offerings of a richer client environment, and customization. Advanced services include the need for particular clients, such as enhanced reliability.
Let's discuss two concrete examples for the Java platform:
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.
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 X 7 on a back-end server. The capability to update it while running is critical in this case.
Such software services can be implemented via public protocols (such as JNLP for J2SE) and proprietary mechanisms; or even through non-standard, ad-hoc implementations used for some particular applications only.
You may think that a new era is beginning. In the future, we will assist at the creation of a whole new generation of such services, taking advantage of the Internet and of the ubiquity of new generation computing devices.