understanding code mobility sachin chouksey h. qiu xiong

43
Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Upload: sullivan-fairburn

Post on 31-Mar-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Understanding Code Mobility

Sachin Chouksey H. Qiu

Xiong

Page 2: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Distributed Applications Problems with traditional approaches

Technologies,architectures,methodologies.

Large scale distributed settings. Fail to provide

Configurability Scalability Customizability

Page 3: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Code Mobility An emerging research field. However

Lack of standard terms and concepts. Difficult to assess and compare existing

approaches. Paper presents conceptual framework. Classification

Technologies Design Paradigms Applications.

Page 4: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Development Environment Computer Networks

Increasing size and performance Pervasive Ubiquitous

Mobile computing World Wide Web

Page 5: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Problems Size of Networks (Scalability) Wireless Connectivity

Dynamic topologies Large scale diffusion into society

Customizability Flexibility Extensibility

Current proposed Approaches

Page 6: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Similar Approaches Remote Job submission

Process Migration

Object Migration

BUT THESE DO NOT SCALE

Page 7: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

How is code mobility different ? Internet-scale Location Aware Programmer controlled mobility Mobility for

Load Balancing Service Customization Dynamic extension and application functionality Autonomy Fault tolerance Disconnected Operation

Page 8: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

3D Classification Technologies

Languages & systems that provide mechanisms Used in implementation stage by developer

Design Paradigms Architectural styles used C2, P2P, Client-Server

Application Domains Classes of applications E-Commerce, Distributed information retrieval

Page 9: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Mobile Code Technologies Traditional Distributed System Layers

Core Operating System Network Operating System True Distributed System

For Code Mobility Computational Environments (CE) CE retains identity of the host Dynamically relocate components on different

hosts CE hosts Execution units (EUs) and resources

Page 10: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Mobility Mechanisms EU = Code Segment + Execution

State + Data Segment

EU moves from CE to CE

Orthogonal mechanisms Code and execution state mobility Data space management

Page 11: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Code and Execution State Mobility

Strong mobility Migration

Proactive / Reactive Remote cloning

Weak mobility Fetch / Ship Stand alone code / code fragment Synchronous / Asynchronous

Page 12: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Data Space Management Rearrange EU-Resource bindings after

migration Resource = <I,V,T> Bindings

By Identifier By Value By Type

Bindings constrain the data space management mechanisms Resource Relocation Binding reconfiguration

Page 13: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Current Mobile Code Technologies Agent Tcl Ara Facile Java Java Aglets M0 Mole Obliq

Safe-Tcl Sumatra TACOMA Telescript

Page 14: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Design Paradigms Design paradigms, or architectural

styles, define architectural abstractions and reference structures that may be instantiated into actual software architectures

Page 15: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Why 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 them

Software architectures with similar characteristics can be represented by design paradigms

Page 16: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Describe 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

Page 17: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Components Components are the constituents

of a software architecture. They can be further divided into: Code components Resource components Computational components

Page 18: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Interactions Interactions are events that

involve two or more components, e.g., a message exchanged among two computational components

Page 19: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Sites Sites host components and support

the execution of computational components

A site represents the intuitive notion of location

Page 20: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Design Paradigms Client-Server (CS) Remote Evaluation (REV) Code on Demand (COD) Mobile agent (MA)

Page 21: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Comparison of the Paradigms

ParadigmBefore After

SA SB SA SB

Client-Server

Aknow-how resource

BA

know-howresource

B

Remote Evaluation

know-howResource

BA

know-howresource

B

Code on Demand

resourceknow-how

B

know-howresource

AB

MobileAgent

know-how resource -know-howresource

B

Page 22: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Outline Add the 1st person’s Design Paradigms Add the 3d person’s

Page 23: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Design Paradigms Design paradigms, or architectural

styles, define architectural abstractions and reference structures that may be instantiated into actual software architectures

Page 24: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Why 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 them

Software architectures with similar characteristics can be represented by design paradigms

Page 25: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Describe 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

Page 26: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Components Components are the constituents

of a software architecture. They can be further divided into: Code components Resource components Computational components

Page 27: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Interactions Interactions are events that

involve two or more components, e.g., a message exchanged among two computational components

Page 28: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Sites Sites host components and support

the execution of computational components

A site represents the intuitive notion of location

Page 29: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Design Paradigms Client-Server (CS) Remote Evaluation (REV) Code on Demand (COD) Mobile agent (MA)

Page 30: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Comparison of the Paradigms

ParadigmBefore After

SA SB SA SB

Client-Server

Aknow-how resource

BA

know-howresource

B

Remote Evaluation

know-howResource

BA

know-howresource

B

Code on Demand

resourceknow-how

B

know-howresource

AB

MobileAgent

know-how resource -know-howresource

B

Page 31: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Mobile 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.

Page 32: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Mobile 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.

Page 33: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Mobile Code Applications(3)

Benefits:4. Autonomy of application components.

- heterogeneous communication infrastructure complexes the network and requires autonomic design.Two solutions:

Put more operations on the server

Or put more operations on the clients

Page 34: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Mobile 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.

Page 35: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Mobile Code Applications(5)Application Domains for Mobile Code 1. Distributed Information Retrieval2. Active Documents3. Advanced Telecommunication Services4. Remote Device Control and Configuration 5. Workflow Management and Cooperation6. Active Networks7. Electronic Commerce

Page 36: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

A 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.

Page 37: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

A 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.

Page 38: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

A 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.

Page 39: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

A 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.

Page 40: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

A 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.

Page 41: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Summary and Conclusions Mobile code is a promising solution for

the design and implementation of large scale distributed applications

Little attention has been paid to the formulation of a sound conceptual framework for code mobility

Three classes of concepts in a proposed conceptual framework: applications, design paradigms and technologies

Page 42: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Strengths and Weaknesses Systematically presenting

knowledge about code mobility: motivations, concepts, principles, approaches, technologies, etc., therefore, providing a complete image

Expounding is vivid with metaphor

Page 43: Understanding Code Mobility Sachin Chouksey H. Qiu Xiong

Relevance to Embedded Systems Many embedded systems are

resource-constrained Requirements to them are higher and

higher Code mobility technology providing a

possible solution Many embedded systems are real-

time systems that can not be stopped to do operations such as update