Presentation on theme: "Understanding Code Mobility"— Presentation transcript:
1Understanding Code Mobility Sachin Chouksey H. QiuXiong
2Distributed Applications Problems with traditional approachesTechnologies,architectures,methodologies.Large scale distributed settings.Fail to provideConfigurabilityScalabilityCustomizability
3Code Mobility An emerging research field. However Lack of standard terms and concepts.Difficult to assess and compare existing approaches.Paper presents conceptual framework.ClassificationTechnologiesDesign ParadigmsApplications.
4Development Environment Computer NetworksIncreasing size and performancePervasiveUbiquitousMobile computingWorld Wide Web
5Problems Size of Networks (Scalability) Wireless Connectivity Dynamic topologiesLarge scale diffusion into societyCustomizabilityFlexibilityExtensibilityCurrent proposed Approaches
6Similar Approaches Remote Job submission Process Migration Object MigrationBUT THESE DO NOT SCALE
7How is code mobility different ? Internet-scaleLocation AwareProgrammer controlled mobilityMobility forLoad BalancingService CustomizationDynamic extension and application functionalityAutonomyFault toleranceDisconnected Operation
83D Classification Technologies Design Paradigms Application Domains Languages & systems that provide mechanismsUsed in implementation stage by developerDesign ParadigmsArchitectural styles usedC2, P2P, Client-ServerApplication DomainsClasses of applicationsE-Commerce, Distributed information retrieval
9Mobile Code Technologies Traditional Distributed System LayersCore Operating SystemNetwork Operating SystemTrue Distributed SystemFor Code MobilityComputational Environments (CE)CE retains identity of the hostDynamically relocate components on different hostsCE hosts Execution units (EUs) and resources
10Mobility Mechanisms EU = Code Segment + Execution State + Data Segment EU moves from CE to CEOrthogonal mechanismsCode and execution state mobilityData space management
11Code and Execution State Mobility Strong mobilityMigrationProactive / ReactiveRemote cloningWeak mobilityFetch / ShipStand alone code / code fragmentSynchronous / Asynchronous
12Data Space Management Rearrange EU-Resource bindings after migration Resource = <I,V,T>BindingsBy IdentifierBy ValueBy TypeBindings constrain the data space management mechanismsResource RelocationBinding reconfiguration
13Current Mobile Code Technologies Agent TclAraFacileJavaJava AgletsM0MoleObliqSafe-TclSumatraTACOMATelescript
14Design ParadigmsDesign paradigms, or architectural styles, define architectural abstractions and reference structures that may be instantiated into actual software architectures
15Why Design Paradigms?The goal of design is the creation of a software architecture, which can be defined as the decomposition of a software system in terms of software components and interactions among themSoftware architectures with similar characteristics can be represented by design paradigms
16Describe Design Paradigms Design paradigms are described in terms of interaction patterns that define the relocation of and coordination among the components needed to perform a service
17Components Components are the constituents of a software architecture. They can be further divided into:Code componentsResource componentsComputational components
18InteractionsInteractions are events that involve two or more components, e.g., a message exchanged among two computational components
19SitesSites host components and support the execution of computational componentsA site represents the intuitive notion of location
21Comparison of the Paradigms BeforeAfterSASBClient-ServerAknow-howresourceBRemote EvaluationResourceCode on DemandMobileAgent-
22OutlineAdd the 1st person’sDesign ParadigmsAdd the 3d person’s
23Design ParadigmsDesign paradigms, or architectural styles, define architectural abstractions and reference structures that may be instantiated into actual software architectures
24Why Design Paradigms?The goal of design is the creation of a software architecture, which can be defined as the decomposition of a software system in terms of software components and interactions among themSoftware architectures with similar characteristics can be represented by design paradigms
25Describe Design Paradigms Design paradigms are described in terms of interaction patterns that define the relocation of and coordination among the components needed to perform a service
26Components Components are the constituents of a software architecture. They can be further divided into:Code componentsResource componentsComputational components
27InteractionsInteractions are events that involve two or more components, e.g., a message exchanged among two computational components
28SitesSites host components and support the execution of computational componentsA site represents the intuitive notion of location
30Comparison of the Paradigms BeforeAfterSASBClient-ServerAknow-howresourceBRemote EvaluationResourceCode on DemandMobileAgent-
31Mobile Code Applications(1) They are still immature and lack of suitable methodologies.The benefits of mobile code are appealing.(Mobile agent systems, Internet agents)It is important to distinguish the implementation process and the paradigm.
32Mobile Code Applications(2) Benefits:1. Service Customization- The interfaces or services are are not statically defined.2. Supporting more flexible software deployment and maintenance.3. Automatic software upgrade without human interaction on the client side.
33Mobile Code Applications(3) Benefits:4. Autonomy of application components.- heterogeneous communication infrastructure complexes the network and requires autonomic design.Two solutions:Or put more operations on the clientsPut more operations on the server
34Mobile Code Applications(4) Benefits:5. The fault tolerance is much improved in Mobile code than the conventional client-server system.6. A new protocol is needed to enhance the code migration among distributed systems.7. Date management flexibility and protocol encapsulation.
35Mobile Code Applications(5) Application Domains for Mobile CodeDistributed Information RetrievalActive DocumentsAdvanced Telecommunication ServicesRemote Device Control and ConfigurationWorkflow Management and CooperationActive NetworksElectronic Commerce
36A Case Study In Network Management (1) Determine if mobile code is suitable for the specific application first.Identify the corresponding paradigms.Analyze the tradeoff for each application functionality.Select the technology to implement the application according to the tradeoff.
37A Case Study In Network Management (2) The network congestion traffic problem:1. The problem to solve: Decentralizing Network Traffic-Both SNMP and CMIP are inefficient while the network heavy congestion.- Some modifications have been made to solve the problem, such as the SNMPv2 with the proxy agents and the Remote Monitoring.
38A Case Study In Network Management (3) 2. Identifying the Design Paradigms-REV paradigm can be used, which will pack up all the SNMP operations and send them on the device for the local interaction.-Only the useful target value will be sent back after execution.-The capability to retain the state across several hops will also make the whole system more autonomic.
39A Case Study In Network Management (4) 3. Evaluating the Design Tradeoffs(details will not be discussed)-The mobile code is only convenient when a set of SNMP instructions can be “packed” efficiently into mobile code.-The choice of the paradigm is constrained by the actual values for the parameters of the application.
40A Case Study In Network Management (5) Choosing the Implementation Technology-In principle, design paradigms and implementation are orthogonal. Sometimes, they are different.-We also have to think about the global application development when we implement a given functionality inside it.
41Summary and Conclusions Mobile code is a promising solution for the design and implementation of large scale distributed applicationsLittle attention has been paid to the formulation of a sound conceptual framework for code mobilityThree classes of concepts in a proposed conceptual framework: applications, design paradigms and technologies
42Strengths and Weaknesses Systematically presenting knowledge about code mobility: motivations, concepts, principles, approaches, technologies, etc., therefore, providing a complete imageExpounding is vivid with metaphor
43Relevance to Embedded Systems Many embedded systems are resource-constrainedRequirements to them are higher and higherCode mobility technology providing a possible solutionMany embedded systems are real-time systems that can not be stopped to do operations such as update