Software Architecture Chapter 10 Deployment and Mobility PART
Software Architecture Chapter 10 – Deployment and Mobility PART II Matthew Moccaro
Overview: Deployment Activities (cont. ) Tool Support Mobility Challenges in Migrating Code
Deployment Activities (cont. ) 3. Analysis 4. Implementation
Deployment Activities (cont. ) Analysis § Developing a deployment model can be a huge undertaking. § Doing this is only worthwhile if you use the model to make decisions. § To use the model, you need to analyze the model.
Deployment Activities (cont. ) Similar Diagrams to those located on page 397 Candidate Deployment Views
Deployment Activities (cont. ) Which is better? Ask these questions: 1. Are both deployments valid? 2. Which deployment is better? 3. Is there a better deployment than this one?
Deployment Activities (cont. ) 1. Are both deployments valid? § If system constraints are specified rigorously, this becomes an easy task. § A simple constraint satisfaction problem.
Deployment Activities (cont. ) 2. Which deployment is better? § § § More difficult to decide. Quality of Service dimensions can help. § Durability over Latency Introduce system users and capture their preferences.
Deployment Activities (cont. ) 3. Is there a better deployment than this one? § Even more difficult to decide. § What is the best possible deployment? § Algorithms to help us: § MIN and MINLP § Greedy, Genetic, Decentralized
Software Engineering Axiom: Better-cheaper-faster – pick any two! § Only two of these can be achieved at one time. § Some or all of the users are likely to be unhappy with the system. § Functionality-Scalability-Performance
Deployment Activities (cont. ) Implementation § Our software is now ready to be effected. § Activities involved in this process: Release / De-Release Install / De-Install Activate / Deactivate Update Adapt § § §
Deployment Activities (cont. ) Implementation 1. Release 2. Install 3. Activate 4. Deactivate 5. Update 6. Adapt 7. De-Install 8. De-Release Install Activate Deactivate Update Adapt De-Install • System Packaged Now The Involves A Encompasses system that isdisabling must removed retired the somust that system abe wide or now itor maintained. from can no shutting range isbe longer packaged beconsumer activated transferred of down activities. supported. and on sites. a system. transferred, the to consumer target it sites. be installed. can hosts. • Can Updates Involves Process be done may changing are initiated be forsimple, many theby system, reasons. may the system’s bemay complex. beproducers. dynamically. • Includes System may Involved extracting, providing also need aassembling, command to be advertised to and start configuring up to the system. the • system. Redeployment Having customer. Updates Usually current advertised. must be is architectural also properly possible. reflected models will in allmake this • Many process architectural times easier. involves models. an activation key. • Includes description, software modules, deployment model, deployment procedures, and any additional information.
Software developers need tools to: § § Support deployment modeling § Support implementation activities § Model – Analyze – Implement – Monitor - Update Tool Support
Tool Support
§ Once a system is in operation, parts of it may need to be redeployed or migrated. § Code mobility / logical mobility – a piece Mobility of software moves across hardware hosts during system execution. § For all this to be possible, certain facilities such as dynamically linked libraries or dynamic class loading must be available.
Mobility § Stateful / Strong Mobility – A module contains a run time state. § Stateless / Weak Mobility – Only the code itself needs to be migrated. § Stateful mobility is much more difficult, as migration can only be done at certain times, and its effect on the rest of the system considered.
Mobility Paradigms Remote Evaluation Code-on. Demand Mobile Agent
Mobility Source host has the know-how, but not the resources to perform a service. Remote Evaluation 2+2 4 The module is transferred to the destination host, where it is executed and the result is sent back to the source host.
Mobility Destination host requests the knowhow, and has the resources to perform a service. Code-on. Demand 2+2 4 The module is transferred to the destination host, where it is executed.
Mobility Source Has: 1. Know-How 2. Execution State 3. Access to some resources Mobile Agent 2+2+3 4+3 7 The module is transferred to the destination host, where it is executed completely.
§ Run time mobility depends on several factors, including the support of dynamic linking and loading of modules § Challenges in Migrating Code Quiescence § Provided Quality of Service - Qo. S
Challenges in Migrating Code Quiescence § It can be unsafe to migrate a component while it is: • • • In the middle of processing Waiting for a result from another component. Other components are requesting its services.
Challenges in Migrating Code Quiescence § The system must provide facilities to suspend all interactions while the process takes place. § Two capabilities are required for this: § § Embodied Suspend Insulation of external components
Challenges in Migrating Code Quality of Service - Qo. S
Conclusion: Deployment Activities (cont. ) Tool Support Mobility Challenges in Migrating Code
Thanks!
- Slides: 26