Code mobility


Published on

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Code mobility

  1. 1. Code Mobility Submitted By: Neeraj Jindal C-DAC, Noida
  2. 2. INTRODUCTION <ul><li>Presents a framework to understand code mobility </li></ul><ul><li>3-dimensions discussed:  Technologies  Design paradigms  Applications </li></ul>
  3. 3. What is code mobility? <ul><li>Code mobility is the capability to dynamically change the bindings between code fragments and the location where they are executed. </li></ul><ul><li>Involves: a. Change in bindings dynamically b. Relocation of code </li></ul>
  4. 4. Why Code Mobility? <ul><li>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) </li></ul>
  5. 5. Advent of MCSs <ul><li>MCS: Mobile Code Systems </li></ul><ul><li>Idea taken from process migration techniques used in distributed operating systems like: a. Locus b. Emerald c. COOL (Chorus) </li></ul>
  6. 6. Innovations of MCSs <ul><li>Code mobility is exploited on Internet-scale </li></ul><ul><li>Programming is location aware </li></ul><ul><li>Mobility is under programmer’s control </li></ul><ul><li>Mobility is not performed just for load balancing - service customization - extensibility - fault-tolerance - support for disconnected operations </li></ul>
  7. 7. 3 Dimensional classification <ul><li>Application Domains  Applications that share same general role  E-commerce, distributed information retrieval </li></ul><ul><li>Technologies  Languages and systems that facilitate code mobility </li></ul><ul><li>Design Paradigms  I dentify specific configuration of components and their interaction </li></ul>Classes of Applications Mechanisms or Technologies Architectural Styles E.g. CS, P2P, etc
  8. 8. Mobile Code Technologies <ul><li>Traditional Systems (e.g. CORBA) </li></ul>
  9. 9. Mobile Code Technologies <ul><li>Mobile Code Systems </li></ul>
  10. 10. Comparison <ul><li>Traditional Systems True Distributed System (TDS) provide network transparency. Distributed components are perceived as local. </li></ul><ul><li>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 </li></ul>
  11. 11. Components of CE <ul><li>Execution Units (Threads) </li></ul><ul><li>Resources (Files, operating system variable) </li></ul>
  12. 12. Classification of Mobility Mechanisms <ul><li>Code and Execution State Mobility  Strong mobility Supported by: migration and remote cloning  Weak mobility Supported by: Code shipping and Code Fetching </li></ul>
  13. 13. <ul><li>Classification of Mobility Mechanisms </li></ul>
  14. 14. Data Space Management <ul><li>Data Space Management Upon 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) </li></ul>
  15. 15. Bindings, Resources, DS Mgmt Free Transferrable Fixed Transferrable Fixed Not Transferrable By Identifier By move (N/W Reference) N/W Reference N/W Reference By Value By copy (By move, N/W Reference) By copy (N/W Reference) (N/W Reference) By Type Re-binding (N/W Reference, By copy, By move) Re-binding (N/W Reference, By copy) Re-binding (N/W Reference)
  16. 16. DS Management Mechanisms
  17. 17. DS Management Mechanisms
  18. 18. DS Management Mechanisms
  19. 19. Design Paradigms <ul><li>Define architectural abstractions and reference structures that may be instantiated into actual software architectures. </li></ul><ul><li>Architectural Concepts: a. Components (know-how, resource and computational components) b. Interactions (communication between components) c. Sites (host components/location) </li></ul>
  20. 20. Design Paradigms <ul><li>Major design paradigms a. Client/Server (CS) b. Remote Evaluation (REV) c. Code on Demand (COD) d. Mobile Agent (MA) </li></ul>
  21. 21. Mobile Code Paradigms Paradigm Before After S A S B S A S B Client-server A Know-how Resource B A Know-how Resource B Remote Evaluation Know-how A Resource B A Know-how Resource B Code on Demand Resource A Know-how B Resource Know-how A B Mobile Agent Know-how A Resource - Know-how Resource A
  22. 22. Benefits of Mobile Code <ul><li>Service Customization </li></ul><ul><li>Supports last phase of software development  Deployment and maintenance (in distributed systems – to upgrade or add a new feature) </li></ul><ul><li>Fault-tolerance </li></ul><ul><li>Data management flexibility and protocol encapsulation </li></ul>
  23. 23. Mobile Code Applications <ul><li>Distributed Information Retrieval </li></ul><ul><li>Active Documents </li></ul><ul><li>Advanced Telecommunication Services (video conferencing, video on demand) </li></ul><ul><li>Remote Device Control and Configuration </li></ul><ul><li>Active networks </li></ul><ul><li>E-Commerce </li></ul>
  24. 24. Conclusions <ul><li>Code mobility is a promising solution for design and implementation of large-scale distributed systems </li></ul><ul><li>We need to improve our understanding of the properties and weaknesses of existing design paradigms </li></ul>