Escolar Documentos
Profissional Documentos
Cultura Documentos
Dennis Heimbigner Richard S. Hall Alexander L. Wolf Software Engineering Research Laboratory University of Colorado
Introduction
What is Software Deployment?
The delivery, assembly and maintenance of a particular version of a software system at a site.
In simple words it is the process that covers post-development activities like configuration, release, installation, updating, adapting, reconfiguration and un-installation.
The foot and hand model: Run around on foot and install
software by hand.
- Only viable for small client base. - Expensive for the companies.
Incremental updates Versioning Automatic installation and configuration Centralized Inventory Decentralized Control Security Scalability Support for heterogeneous environments Live Updates Licensing
It addresses most of the requirements cited earlier. It is a system of loosely coupled, cooperating, distributed components. It provides support for the producers by providing the release dock which acts as a central repository. In the release dock a standard semantic schema is used to specify deployment requirements of the software systems. At the customer end a field dock component provides an interface to the customers resources and deployed systems. Agents in the Software Dock travel from the release dock to the field dock in order to perform specific deployment tasks through the interface. A wide area event systems connects release docks to field docks for asynchronous, bidirectional activity.
Release Dock - It is a server at the producer side which acts as a release repository
providing a web-based release mechanism. - Each software release is described by a standard deployment schema. - It provides programmatic interface for the agents to access its services and content. - It generates events when changes occur to the software releases managed by it.
Release Dock Field Dock - It is a server residing at the customer side which provides an interface to
the customer, providing information about the resources and configuration of the system. - It provides customer side information, which is critical in any deployment process, in the form of a standardized and hierarchical registry. - Any changes in the registry generates an event that the agents receive to perform subsequent tasks.
DSD Examples
Property { Name = Online Help Type = Boolean Description = Include online help. } Assertion { Condition = ($OS$ == Solaris) || ($OS$ == Win95) Description = Test for supported operating system. }
Artifacts { Artifact { Guard = ($OS$ == Solaris) SourceName = help.html Source = /proj/doc DestinationName = help.html Destination = doc Mutable = false Signature=3b8902d3410ec832 Type = Documentation } Artifact { Guard = ($OS$ == Win95) SourceName = help.hlp Source = /proj/doc DestinationName = help.hlp Destination = doc Mutable = false Signature = 9283cd2378102f1a3b12ee Type = Documentation } }
transforms an existing software system configuration to a new one based on a set of property values. Transformation is done by differential processing over the applicable schema elements of the DSD specification. Applicable schema elements are determined by the guard conditions in the DSD.
Install Process
- It is different from the other processes, in that, it is not associated with an existing software release configuration. Its a pull oriented process requested by the user. - The install agent gets information from the field dock regarding which configuration of the software release to install. - The agent performs the necessary activities, like resolving dependencies, testing assertions and retrieving artifacts, once it determines which release to install.
Remove Process
Security
Agents operate in the Java Virtual Machine sandbox thus limiting their ability to access the customers system. This is useful if any hostile agent docks at the field dock. Field docks are the only interface available to the agents and the field docks use a capability approach which grants access to restricted operations only to certain agents based on the agents inherent capability. Though the current security mechanisms are not good enough, support is given to extend the framework so as to allow agents to become trusted which can facilitate more secure transactions.
Related Work
Technology
Configuration Management Modeling
Strengths
Precise & easy to understand modeling language
Weaknesses
Do not address software deployment Do not create standard schemas for any specific task Immature (???Have to take the authors word) Too simplistic to perform automated software deployment
Describes software systems for push technologies Provides identification information and pointers to archives of artifacts
Not designed to automate deployment process Does not support modification of internal system properties
Provides a variety of deployment features Scripts provide information about the software system to be deployed
Limited forms of configuration selection are supported No support for multi-site deployment or management
Current Status
A prototype implemented in Java exists Voyager is used as an IPC mechanism and mobile agent enabling technology An evolving definition of the DSD exists A schema editor is provided to create and edit DSD descriptions A docking station is used to request updates, adapts, reconfigures and removes Generic agents are provided for various deployment processes
Future Work
Inclusion of an Administrator Role and remote agents to support it An InterDock will be created to support Administrators The DSD will be extended and expanded Administration policy support will be enhanced Arbitrary dependency specification will be researched Better support for specialized deployment activities will be looked into
Conclusion
Software Deployment transcends just installation. For better software deployment, the vast connectivity of the internet or any other network should be taken advantage of. Knowledge of user systems is necessary to provide better support for a software system. This is provided by field docks. There is a need for a standardized means of specifying software systems for deployment processes which is provided by DSD.
It gives a good idea about the requirements for better software deployment. Provides a seemingly good solution for each of the requirements. It addresses each of the deployment process in depth. It highlights some important concepts of the software deployment life cycle. It explains the working of the software dock project in easy to understand terms
It is too optimistic about the success of the Software Dock. It conveniently skirts important design issues like security, that play an important role in software deployment. It fails to address scalability and concurrency issues. It focuses too much on Deployable Software Description format and fails to mention more specific actions of each of the key components of the architecture.
Security
Software Dock provides minimal security and even with trusted agents there is no stringent provision for authentication.
Real-time constraints
As the Software Dock depends on a wide area event service there is ample chance of the deployment processes not adhering to real-time constraints due to network problems, lesser bandwidth and locality of the embedded system in case its mobile.