understanding code mobility a fuggetta, g p picco and g vigna presenter samip bararia

Post on 04-Jan-2016

214 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Understanding Code Mobility

A Fuggetta, G P Picco and G Vigna

PresenterSamip Bararia

Theme of this paper

Field is still immature Confusion with terminology

“mobile agents”

“Enable researchers and practitioners to asses and compare different solutions with respect to a common set of reference concepts and abstractions”

Theme of this paper

Presents a framework to understand code mobility

3-dimensions discussed: Technologies Design paradigms Applications

What is code mobility?

Code mobility is the capability to dynamically change the bindings between code fragments and the location where they are executed

Involves:a. Change in bindings dynamicallyb. Relocation of code

Code Mobility

Network

Node A Node B

Why Code Mobility?

Limitations and drawbacks with traditional approaches in large-scale distributed settings like the Internet

a. Scalability (growing size of network, network partitions)

b. Customizability (tailor functionality to specific needs)

c. Flexibility (dynamic nature of comm. infrastructure)

d. Extensibility (to add new features)

Advent of MCSs

MCS: Mobile Code Systems Idea taken from process migration

techniques used in distributed operating systems like:

a. Locusb. Emeraldc. COOL (Chorus)

Innovations of MCSs

Code mobility is exploited on Internet-scale Programming is location aware Mobility is under programmer’s control Mobility is not performed just for load

balancing- service customization- extensibility- autonomy fault-tolerance- support for disconnected operations

3 Dimensional classification

Application Domains Applications that share same general role E-commerce, distributed information retrieval

Technologies Languages and systems that facilitate code mobility

Design Paradigms Identify specific configuration of components and their interaction

Classes ofApplications

Mechanisms or Technologies

Architectural Styles E.g. CS, P2P, etc

Mobile Code Technologies

Traditional Systems (e.g. CORBA)

Mobile Code Technologies

Mobile Code Systems

Comparison

Traditional SystemsTrue Distributed System (TDS) provide network transparencyDistributed components are perceived as local

MCSs Computational Environments (CE)Underlying structure of the network is made manifest to the users. Provides capability to relocate code dynamically

Execution units (EU) Resources

Components of CE

Execution Units (Threads)

Resources (Files, operating system variable)

Classification of Mobility Mechanisms

Code and Execution State Mobility

Strong mobilitySupported by: migration and remote cloning

Weak mobilitySupported by: Code shipping and Code Fetching

Data Space Management

Data Space ManagementUpon migration of an EU to a new CE:

The set of bindings to resources accessible by the EU must be rearranged

Resources can be bound to an EU through 3 forms of binding: By identifier (strongest) By value By type (weakest)

Bindings, Resources, DS Mgmt

DS Management Mechanisms

DS Management Mechanisms

DS Management Mechanisms

Survey of MC Technologies

Technology Abstraction terminology Mobility MechanismsAra EU – Agents

CE – PlaceStrong (proactive migration)

Facile EU – ThreadsCE – Nodescommunication abstraction: “Channel”

Strong and weak mobility

Java JVM – CE Weak mobility (No DS Mgmt)

Java Aglets CE – Context Dispatch – code shippingRetract – code fetching

M0 EU – MessengersCE - Platforms

Shipping of stand-alone code only

Mole EU – MoleCE - Place

Shipping of stand-alone code

Obliq CE – Execution enginesEU – Thread

Weak mobility – shipping of code

Safe-Tcl No terminology email

Sumatra CE – Execution enginesEU – Java Threads

Weak and Strong mobilityproactive migration, remote cloning, shipping

TACOMA EU – Agents(Unix processes)

Code shipping of stand-alone code

Telescript CE – EnginesEU – Places and Agents

Proactive migration and remote cloning

Design Paradigms

Define architectural abstractions and reference structures that may be instantiated into actual software architectures.

Architectural Concepts:a. Components (know-how, resource and computational components)b. Interactions (communication between components)c. Sites (host components/location)

Design Paradigms

Major design paradigms

a. Client/Server (CS)b. Remote Evaluation (REV)c. Code on Demand (COD)d. Mobile Agent (MA)

Mobile Code Paradigms

Benefits of Mobile Code

Service Customization Supports last phase of software development

Deployment and maintenance (in distributed systems – to upgrade or add a new feature)

Autonomy of application components Fault-tolerance Data management flexibility and protocol

encapsulation

Mobile Code Applications

Distributed Information Retrieval Active Documents Advanced Telecommunication Services

(video conferencing, video on demand) Remote Device Control and Configuration Workflow management and Cooperation Active networks E-Commerce

Conclusions

Code mobility is a promising solution for design and implementation of large-scale distributed systems

However, field is still immature We need to improve our understanding of the

properties and weaknesses of existing design paradigms

Strengths

Papers sticks to its theme Provides a conceptual framework for understanding code mobility

Provides a case study to guide software engineers through the design and implementation phases of application development

Weaknesses

Lacks motivation! Too many new terminologies introduced in

one paper I was not too satisfied with the mobile code

application section

The authors are very “hopeful” that code mobility can help these applications

No explained examples

top related