A Cooperative Approach to Support Software Deployment using the Software DockIntroductionTraditional Software Deployment MethodsRequirements of solutions for software deploymentSoftware Deployment Life CycleSoftware Dock (Overview)Software Dock ArchitectureSoftware Dock Architecture (Cont’d)Slide 9Slide 10Slide 11Slide 12Software Dock : Design IssuesSlide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Related WorkCurrent StatusFuture WorkConclusionStrengths of the paperWeaknesses of the paperRelevance to Embedded SystemsA Cooperative Approach to Support Software Deployment using the Software Dock Dennis Heimbigner Richard S. Hall Alexander L. WolfSoftware Engineering Research LaboratoryUniversity of ColoradoIntroductionWhat 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-developmentactivities like configuration, release, installation, updating, adapting,reconfiguration and un-installation.Traditional Software Deployment MethodsThe foot and hand model: Run around on foot and install software by hand. - Only viable for small client base. - Expensive for the companies.The self-service model: The end users install the software themselves. - Scales well. - Low costs for the company. - Becomes difficult as the complexity of installation and configuration increases.Requirements of solutions for software deploymentIncremental updatesVersioningAutomatic installation and configurationCentralized InventoryDecentralized ControlSecurityScalabilitySupport for heterogeneous environmentsLive UpdatesLicensingSoftware Deployment Life CycleThe Software Deployment Life Cycle is an evolving collection of processes. These processes can either be performed on the software producer side or the customer side.Producer-side processesReleaseRetireCustomer-side processesInstallActivateDeactivateReconfigureUpdateAdaptRemoveSoftware Dock (Overview)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 customer’s 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.Software Dock ArchitectureSoftware Dock Architecture (Cont’d)Key ComponentsRelease DockField DockAgentsWide Area SystemSoftware Dock Architecture (Cont’d)Key ComponentsRelease 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.Field DockAgentsWide-Area Event ServiceSoftware Dock Architecture (Cont’d)Key ComponentsRelease DockField 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.AgentsWide Area SystemSoftware Dock Architecture (Cont’d)Key ComponentsRelease DockField DockAgents- They do all the software deployment work.- There are different agents to perform software deployment processes like installation, update, adapt, reconfigure, and remove.- Each of these agents does its assigned task based upon the system information that it is provided through the interface at the field dock.Wide Area SystemSoftware Dock Architecture (Cont’d)Key ComponentsRelease DockField DockAgentsWide Area System- It provides a means of connectivity between producers and customers for push style capability.- Agents subscribe for events from the release docks using the wide-area event system.- Direct communication over the Internet and communication through events in the wide-area event system combined provide an opportunity to the producer and the customer to cooperate for deployment support.Software Dock : Design IssuesDeployable Software Description (DSD) format - It was developed to facilitate the creation of generic deployment process definitions.- It provides a standard schema to describe a software system family.- DSD family description is divided into multiple sections like identification, imported and system properties, property composition, assertions, dependencies, artifacts, interfaces, notifications, services, and activities.- Some of these sections can be directly associated with the five classes of semantic information that have to be provided by any software system model, namely Configuration, Assertions, Dependencies, Artifacts and Activities.Software Dock : Design IssuesDSD ExamplesProperty { 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 = falseSignature=“3b8902d3410ec832”Type = “Documentation” … } Artifact {Guard = “($OS$ == ‘Win95’)”SourceName = “help.hlp” Source = “/proj/doc”DestinationName = “help.hlp”Destination = “doc”Mutable = falseSignature = “9283cd2378102f1a3b12ee”Type = “Documentation”…}}Software Dock : Design IssuesSoftware Dock Processes- Agents define all the software deployment processes. They are the active components of the Software Dock.- Software Dock framework
View Full Document