Upload
miles-stevenson
View
218
Download
0
Embed Size (px)
Citation preview
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