260 likes | 435 Views
Deployment and Mobility. Chapter 10. Deployment. The set of activities that result in placing a given software system’s components and connectors on a set of physical hosts. Mobility. Relocation or migration of a software component or connector from one hardware host to another. Redeployment.
E N D
Deployment and Mobility Chapter 10
Deployment The set of activities that result in placing a given software system’s components and connectors on a set of physical hosts.
Mobility • Relocation or migration of a software component or connector from one hardware host to another. • Redeployment
Changing a System’s Deployment • Run time state may need to be preserved • Temporary downtime • Component not in the middle of computation or interaction • Less time available to ensure that the system works
Hardware and Software • Hardware has to support a system’s software architecture • But also need to assess whether the software will run smoothly on the hardware
Wireless Sensor Network System • Sensors • Gateway Devices • Hubs • Phones
Deployment and Mobility Challenges • Physically deploying software in widely distributed settings • Wide variety of systems the software runs in • Different software components may require different hardware configurations
Deployment and Mobility Challenges • Redeployment as an unavoidable activity • Redeployment of running components • Redeployed components fitting into the system again
Degrading Architecture • When a new software system is deployed on its target hosts, its initial deployment architecture is developed. • When the system is changed, its architecture is also changed. • With multiple redepolyments, the system’s architecture is bound to degrade if the changes are not analyzed and understood
Deployment • The set of activities that result in placing a given software system’s components and connectors on a set of physical hosts. • Hosts or sites – the physical hardware device
When Does Deployment Occur? • Prior to runtime • During execution • Transfer and activation of new components
Resources • Each host provides a set of resources needed for hosting and executing the system • Hardware architecture (memory and CPU) • Network Architecture (available protocols and IP port numbers) • Peripheral devices (hard disk and keyboard) • System software (OS, device drivers, middleware) • Other application-level software (GUI builders and databases) • Data resources (data files)
Deployment Activities • Plan • Model • Analyze • Implement
Planning • Critical that the deployment of a software system be carefully planned • Many important system properties will be affected by the system’s deployment • Mappings of software components and connectors onto hardware hosts • Many different deployments possible
Planning: Quality of Service • Desired system properties • Dependability, availability, security, fault-tolerance • Quality of service (QoS)– a desired level of service quality • The different QoS dimensions must be measurable and quantifiable
Planning: Things that are Easy • Software on a desktop computer • System on a space agency probe and also a ground station • Wireless sensor network system
Planning: Things that are Hard • A very large number of system parameters influence the QoS dimensions • Many services provided by a system and their corresponding QoS influence the system users’ satisfaction • Different service qualities may be conflicting – improving one may degrade another • The possibilities of the different deployment architectures is exponentially large • hc possible deployments
Planning: Deployment Possibilities • Two software components and two hardware hosts • Both components are deployed on host 1 • Both components are deployed on host 2 • Component 1 is deployed on host 1 and component 2 is deployed on host 2 • Component 2 is deployed on host 1 and component 1 is deployed on host 2 • Compare latency and durability for each deployment
Planning: Pareto Optimal Pareto optimal – systems with multicriteria taken into consideration, no single deployment can be considered optimal unless additional criteria are introduced that will allow an architect to reconcile the two competing deployment options
Planning: Deployment Possibilities • Three components and three hosts • 33 = 9 possible deployments • Four components and four hosts • 44 = 256 possible deployments • Comparing deployment possibilities with their QoS properties in a single diagram would be essentially impossible
Planning: Deployment Possibilities Solution • A solution that would allow a software system’s architects to plan the system’s deployment appropriately will need to: • 1. Provide an extensible model that supports inclusion of arbitrary system parameters • 2. Support the definition of a new QoS dimensions using the system parameters • 3. Allow users to specify their QoS preferences • 4. Provide efficient and generic algorithms that can be used to find a solution which maximizes the users’ satisfaction in a reasonable amount of time
Planning: Automated Support • A software-based solution would likely be able to determine a number of valid deployments that meet the QoS criteria and choose the best one. • Automated support would allow architects to study, and quantify, any changes in a system’s run time behavior. • In turn, this would allow them to formulate plans regarding whether and when to redeploy the system or some of its parts
Modeling • System’s architects need to create a detailed model comprising all concerns pertaining to the system’s development
Modeling: Effective Deployment Model • An effective deployment model requires: • Software system elements (components and connectors), their configuration, and their parameters • Hardware system elements (hardware hosts and network links), their configuration, and their parameters • Any constraints on the system elements and/or their parameters • Formal definitions of QoS dimensions of interest • May also need to represent system users or user types
Modeling: Hardware and Software • Consider hardware and network infrastructure along with the software architecture • Location constraints • Certain components that have to reside on a certain host • Certain components that may not be allowed to reside on a certain host • Collocation constraints • Groups of components and connectors that need to be deployed/redeployed as a collection • Groups of components and connectors that may not be deployed on the same host
Modeling: Quality of Service • Quantification of the QoS dimensions of interest • Quantifiable system properties – reliability, availability, size, energy consumption rate, latency, data volume • Unquantifiable system properties - usability