Software Deployment and Mobility Introduction • Deployment is the placing of software on the hardware where it is supposed to run. • Redeployment / migration of software components while the system is in operation is mobility. A Wireless Sensor Network System Deployment and Mobility Challenges • • • • • • • Geographically Distributed hardware Heterogeneity of hardware Different configuration Differing life span Versioning Partial mobility Locating the hardware/software/service Deployment Basic Concepts • Software system is deployed on one or more hardware devices called hosts or sites. • Each site provides some resources. • E.g. – – – – – – – Hardware (Memory, CPU) Network (Protocols and IP port numbers) Peripheral Devices (hard disks and keyboard) System Software (OS, drivers) Other application level software (GUI builders, DB) Data Resources (data files, GUIDs) Deployment Basic Concepts contd. • Software system consists of set of components and connectors. • Multiple versions of these components and connectors may exist. • Version is time-ordered revision, platformspecific revision or functional revision. Deployment Activities • Planning • Modeling • Analysis • Implementation Deployment Planning • In planning stage we consider the behavior of the system and statistics related to that behavior. • System should ensure certain desired system properties. ( QoS ) – – – – – Dependability Availability Security Fault-Tolerance Durability , etc. Planning Challenges • Large no. of system parameters • Conflicting service qualities (e.g. Security vs. Efficiency) • Services & their QoS influence user’s satisfaction • Space of possible deployment architectures is exponentially large. – c components, h hosts -> hC possible deployments. Space of possible deployment architectures Dig : 1 Dig : 2 Example of Multiple Deployment Choices over 2-QoS attributes Deployment 1 1 2 3 4 5 6 Latency Deployment 2 Deployment 3 Deployment 4 5 4 Durability 3 2 1 1 2 3 4 Latency 5 6 • Pareto Optimal Solution • Better-Cheaper-Faster----Pick any two ! • Automated support for deployment modeling and analysis. Deployment Modeling • Modeling Considerations – Software system elements (components and connectors) • Configuration of these elements • Parameters – Hardware system elements (host machines, network, devices, controllers, etc.) • Configuration • Parameters – Set of constraints placed on these elements and/or parameters – Formal definition of QoS dimensions of interest Deployment Model Deployment Analysis • Putting efforts for Planning and Modeling is worthwhile if the model is used efficiently for deployment. • Detailed analysis has to be done to ensure that. – Are the shortlisted deployments valid ? – Which one of them is the best ? – Does it exhibit acceptable properties ? Or must an even better deployment be found ? – What is the best deployment possible for the given system (Ranking of QoS) Deployment Implementation Software Deployment Issues • • • • • • • • Change Management Dependencies among Components Coordination Large-scale Content Delivery Managing Heterogeneous Platforms Deployment Process Changeability Integration with the Internet Security: Privacy, Authentication, and Integrity Tool Support • Functions of deployment tools – Model – Analyze – Implement – Monitor – Update DeSi XTEAM • Provides ADL extension for mobile systems • Implements a set of dynamic analysis on top of the model interpreter framework • Model Interpreter framework allows the architect to implement custom analysis techniques without knowing details of semantic mapping XTEAM XTEAM Deployment Model and Analysis Software Mobility • Physical Mobility • Code Mobility / Logical Mobility – Stateful Mobility (Strong Mobility) – Stateless Mobility (Weak Mobility) • Code Paradigms – Fixed Code Paradigm • Client-Server – Mobile Code Paradigm Mobile Code Paradigms • Remote Evaluation Source Host Destination Host Knowhow Resources Destination Host Source Host Knowhow Result Resources • Code-on-Demand Destination Host Source Host Knowhow Resources Source Host Destination Host Knowhow Result Resources • Mobile Agent Host 1 Host 2 Knowhow State Resources 1 Destination Host Knowhow Resources 1 Resources 2 State Architecture-based Dynamic Adaptation Model Key Aspects • Planning (Top Part) • Analysis (Top Part) • implementation should never be modified without understanding the architectural implications of that modification (Bottom Part) Code Migration Challenges Challenges • Availability • State Management • Scheduling of migration • Performance • Locating code and resources • Security threat • Energy Consumption Mobility Deployment Maintains State No State Downtime Not running Choosing time of migration to maintain performance Does not affect performance Time constrained Allows more planning and analysis Summary • What is Deployment and Mobility ? • Challenges • Deployment Activities – Planning, Modeling, Analysis & Implementation • Tools Support • Mobility • Mobile Code Paradigm – Remote evaluation, C-O-D, Mobile Agent References • A Characterization Framework for Software Deployment Technologies – Antonio Carzaniga, Alfonso Fuggetta, Richard S. Hall, Dennis Heimbigner, Andre van der Hoek and Alexander L. Wolf • Software architecture and mobility A roadmap – Nenad Medvidovic, George Edwards • An architecture-driven software mobility framework – Sam Malek, George Edwards, Yuriy Brun, Hossein Tajalli, Joshua Garcia, Ivo Krka, Nenad Medvidovic, Marija MikicRakic, Gaurav S. Sukhatme