A Cooperative Approach to Support Software Deployment Using the Software Dock by R. Hall, D. Heimbigner, A. WolfOutlineWhat is Software Deployment?How is it changing ?What do we need from deployment technologies ?Software Deployment DefinitionsSoftware Deployment Life CycleSoftware Dock ArchitectureArchitecture: Release DockArchitecture: Field DockArchitecture: AgentsArchitecture: Event ServiceArchitecture: Inter DockWhere are We ?Deployable Software Description (DSD)DSD: ConfigurationsDSD: AssertionsDSD: DependenciesDSD: ArtifactsDSD: ActivitiesSoftware Dock ProcessesRelated WorkOngoing WorkSoftware Dock AdvantagesIssues in an Embedded EnvironmentA Cooperative Approach to Support Software Deployment Using the Software Dockby R. Hall, D. Heimbigner, A. WolfSachin ChoukseyEbru DincelOutline What is Software Deployment ?Software Deployment Life CycleSoftware Dock (Architecture)Deployable Software Description (DSD) FormatSoftware Dock ProcessesCurrent, Related & Future Work. Wrap-upWhat is Software Deployment?ReleaseInstallAdaptReconfigureUpdateActivateDeactivateRemoveRetireHow is it changing ?ThenComplete Installation procedure for software system on CD ROMEntire software system installationNowSoftware producers and consumers cooperating and negotiating.“Update” of Software SystemsAll this because of high connectivityWhat do we need from deployment technologies ?Support for heterogeneity in terms of platforms and network environments.Semantic model to describe software systems.Semantic model to describe target sites.Decentralized control for both software producers and consumers.Software Deployment DefinitionsPreviouslyInstallation of a software system.Simplistic & Incomplete view.CurrentlyAn evolving collection of inter-related activities.Software deployment life cycle.Software Deployment Life CycleProducer sideReleaseRetire Consumer sideInstallActivate/DeactivateReconfigureUpdateAdaptRemoveSoftware Dock ArchitectureComponentsRelease DockField DockInter DockAgentsEvent ServiceArchitecture: Release DockServer residing at producer.Repository of software systems.Web-based release mechanism.Std. deployment schema for each release.Agents perform deployment process.Programmatic interface for agents.Generates events for changes made to a release.Agents subscribe to events.Architecture: Field DockServer residing at consumer.Provides interface to consumer site.Site resources and configuration (context).Agents dock here and access interface.Standardized, hierarchical information registry for a common namespace.Architecture: AgentsImplement actual functionality.Only agent and software system description loaded onto consumer site from release dock.Agent configures system for that target site.Precise set of corresponding artifacts and other agents then downloaded.Architecture: Event ServiceConnectivity between software producers and consumers.Remote agents subscribe to events.Uses standard protocols over the internet.Architecture: Inter DockFuture implementation.Support for “Administrator” role.Administrator can specify activity that should occur at a specific or set of sites.Global view of consumer organization.Complicated deployment scenarios addressable.Where are We ? What is Software Deployment ?Software Deployment Life CycleSoftware Dock (Architecture)Deployable Software Description (DSD) FormatSoftware Dock ProcessesCurrent, Related & Future WorkWrap-upDeployable Software Description (DSD)Schema of deployment informationSystem as collections and configurations of propertiesProperty {Name = “ Online Help”Type = “Boolean”Description = “Include online help.”….}Simple, generic, hierarchical way of describing software system family/component based developmentCritical piece of Software DockElements- Configuration- Assertions- Dependencies- Artifacts- ActivitiesDSD: ConfigurationsRelationships between software artifacts.Resources provided by software system.DSD: AssertionsConsumer-side constraints for a successful deployment.Assertion {Condition = “($OS$ = =‘Solaris’) || ($OS$ = =‘Win95’)”Description = “Test for supported operating system.”….}DSD: DependenciesConsumer-side constraints where a resolution is possible if the constraint does not hold (e.g installing dependent subsystems).DSD: ArtifactsPhysical artifacts of the software system.Artifacts {Guard = “($Online Help$ = = true)”Artifact {Guard = “($OS$ = = ‘Solaris’)”SourceName =“help.html”Source = “/proj/doc”Destination = “doc”Mutable = falseSignature = “a4ca443b”Type = “DOC” …} Artifact {……}….}DSD: ActivitiesAny specialized activities outside of standard deployment process.Software Dock ProcessesGeneric - Differential processingSpecific- Install (pull)- Update (pull/push, new DSD)- Reconfigure (pull, existing DSD)- Adapt (pull, enforces consistency, existing DSD)- Remove (pull)Related WorkConfiguration Management Tools (e.g. Adele, PCL,..)- no deployment or schemaSchema based (e.g. OSD, AMS, ..)- not mature enough for automation, centralizedScript based (e.g. GNU AutoConf,..)- not rich enough, heuristicsRecent utilities (e.g. InstallShield, netDeploy, ..)- not rich enough for automation, better supportImmature, partial support for deployment activities, and not standardizedOngoing WorkCurrentJava Prototype http://www.cs.colorado.edu/~serl- SIENA (event notification)- Voyager (IPC, mobile agents)- schema editing tool (DSD editing, artifact entry)- dock station tool (interface for deployment process)Future- higher security (JVM 2.0)- remote agents and server- extended DSD- administration policiesSoftware Dock AdvantagesDecentralized through cooperation.Scalability due to centralization.Asynchronous, bi-directional communication.Unification of description and process.Support for various deployment processes.Sophisticated configuration management.Support for multi-platform.Extensibility, reliability and standardization (schemas and elements).Better performance results.Issues in an Embedded EnvironmentSecurity (“trusted” mobile agents).Authentication and authorization.Resource constrained environments.Run-time reconfiguration,
View Full Document