Understanding Code Mobility

Slides:



Advertisements
Similar presentations
E-Commerce Based Agents over P2P Network Arbab Abdul Waheed MSc in Smart Systems Student # Nov 23, 2008 Artificial Intelligence Zhibing Zhang.
Advertisements

Agents & Mobile Agents.
Agent agent Outline of Presentation Introduction: Inter-Agent Message Passing ARP: Design and Analysis Generalization: A Generic Framework Conclusion.
ACTS Programme M obile I ntelligent A gents for M anaging the Information I nfrastructure ACTS Programme AC338.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
Distributed Systems 1 Topics  What is a Distributed System?  Why Distributed Systems?  Examples of Distributed Systems  Distributed System Requirements.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Designing Distributed Applications with Mobile Code Paradigms Qinhai Xia 3/5/98.
Context-based Information Sharing and Authorization in Mobile Ad Hoc Networks Incorporating QoS Constraints Sanjay Madria, Missouri University of Science.
Web Caching Schemes1 A Survey of Web Caching Schemes for the Internet Jia Wang.
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
Mobile Agents in High Performance Computing System Presentation by : MADHAN MOHAN NARLAPURAM User Id: mmnarlap.
Mobile Agents: A Key for Effective Pervasive Computing Roberto Speicys Cardoso & Fabio Kon University of São Paulo - Brazil.
EEC-681/781 Distributed Computing Systems Lecture 3 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Managing Agent Platforms with the Simple Network Management Protocol Brian Remick Thesis Defense June 26, 2015.
AgentOS: The Agent-based Distributed Operating System for Mobile Networks Salimol Thomas Department of Computer Science Illinois Institute of Technology,
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
1 Designing Distributed Applications with Mobile Code Paradigms Antonio Carzaniga Politecnico di Milano Gian Pietro.
Course Instructor: Aisha Azeem
Community Manager A Dynamic Collaboration Solution on Heterogeneous Environment Hyeonsook Kim  2006 CUS. All rights reserved.
Client/Server Architectures
MADE Mobile Agents based system for Distance Evaluation Vikram Jamwal KReSIT, IIT Bombay Guide : Prof. Sridhar Iyer.
Mobile Agent Technology for the Management of Distributed Systems - a Case Study Claudia Raibulet& Claudio Demartini Politecnico di Torino, Dipartimento.
 Applied Architectures and Styles Chapter 11, Part 2 Service-Oriented Architectures and Web Services Architectures from Specific Domains Robotics Wireless.
Active Monitoring in GRID environments using Mobile Agent technology Orazio Tomarchio Andrea Calvagna Dipartimento di Ingegneria Informatica e delle Telecomunicazioni.
Software Agents: An Overview by Hyacinth S. Nwana and Designing Behaviors for Information Agents by Keith Decker, Anandeep Pannu, Katia Sycara and Mike.
Architecting Web Services Unit – II – PART - III.
Distributed Systems: Concepts and Design Chapter 1 Pages
Evaluation of a Publish/Subscribe System for Collaboration and Mobile Working Collaborative Advertising over Internet with Agents Independent Study: Wireless.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
Architectures of distributed systems Fundamental Models
PERVASIVE COMPUTING MIDDLEWARE BY SCHIELE, HANDTE, AND BECKER A Presentation by Nancy Shah.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
The roots of innovation Future and Emerging Technologies (FET) Future and Emerging Technologies (FET) The roots of innovation Proactive initiative on:
Locating Mobile Agents in Distributed Computing Environment.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
MOBILE AGENTS What is a software agent ? Definition of an Agent (End-User point of view): An agent is a program that assists people and acts on their behalf.
Introduction Infrastructure for pervasive computing has many challenges: 1)pervasive computing is a large aspect which includes hardware side (mobile phones,portable.
Understanding Code Mobility A Fuggetta, G P Picco and G Vigna Presenter Samip Bararia.
Lecture 6: Sun: 8/5/1435 Distributed Applications Lecturer/ Kawther Abas CS- 492 : Distributed system & Parallel Processing.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance.
Mobile Agents For Mobile Computing Department Of Computer Science – Dartmouth College Robert Gray David Kotz Saurab Nog Daniela Rus George Cybenko.
1 Object Oriented Logic Programming as an Agent Building Infrastructure Oct 12, 2002 Copyright © 2002, Paul Tarau Paul Tarau University of North Texas.
SDN Management Layer DESIGN REQUIREMENTS AND FUTURE DIRECTION NO OF SLIDES : 26 1.
© Chinese University, CSE Dept. Distributed Systems / Distributed Systems Topic 1: Characterization of Distributed & Mobile Systems Dr. Michael R.
A Grid-enabled Multi-server Network Game Architecture Tianqi Wang, Cho-Li Wang, Francis C.M.Lau Department of Computer Science and Information Systems.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
GRID ANATOMY Advanced Computing Concepts – Dr. Emmanuel Pilli.
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
Problem On a regular basis we use: –Java applets –JavaScript –ActiveX –Shockwave Notion of ubiquitous computing.
Cofax Scalability Document Version Scaling Cofax in General The scalability of Cofax is directly related to the system software, hardware and network.
Context-Aware Middleware for Resource Management in the Wireless Internet US Lab 신현정.
Alternatives to Mobile Agents
Architecting Web Services
Architecting Web Services
Distribution and components
The Improvement of PaaS Platform ZENG Shu-Qing, Xu Jie-Bin 2010 First International Conference on Networking and Distributed Computing SQUARE.
Service-centric Software Engineering
Mobile Agents.
Architectures of distributed systems Fundamental Models
Architectures of distributed systems Fundamental Models
Web Application Server 2001/3/27 Kang, Seungwoo. Web Application Server A class of middleware Speeding application development Strategic platform for.
Architectures of distributed systems
In Distributed Systems
Architectures of distributed systems Fundamental Models
Presentation transcript:

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

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.

Development Environment Computer Networks Increasing size and performance Pervasive Ubiquitous Mobile computing World Wide Web

Problems Size of Networks (Scalability) Wireless Connectivity Dynamic topologies Large scale diffusion into society Customizability Flexibility Extensibility Current proposed Approaches

Similar Approaches Remote Job submission Process Migration Object Migration BUT THESE DO NOT SCALE

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

3D Classification Technologies Design Paradigms Application Domains 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

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

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

Code and Execution State Mobility Strong mobility Migration Proactive / Reactive Remote cloning Weak mobility Fetch / Ship Stand alone code / code fragment Synchronous / Asynchronous

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

Current Mobile Code Technologies Agent Tcl Ara Facile Java Java Aglets M0 Mole Obliq Safe-Tcl Sumatra TACOMA Telescript

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

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

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

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

Interactions Interactions are events that involve two or more components, e.g., a message exchanged among two computational components

Sites Sites host components and support the execution of computational components A site represents the intuitive notion of location

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

Comparison of the Paradigms Before After SA SB Client-Server A know-how resource B Remote Evaluation Resource Code on Demand Mobile Agent -

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

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

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

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

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

Interactions Interactions are events that involve two or more components, e.g., a message exchanged among two computational components

Sites Sites host components and support the execution of computational components A site represents the intuitive notion of location

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

Comparison of the Paradigms Before After SA SB Client-Server A know-how resource B Remote Evaluation Resource Code on Demand Mobile Agent -

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.

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.

Mobile 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 clients Put more operations on the server

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.

Mobile Code Applications(5) Application Domains for Mobile Code Distributed Information Retrieval Active Documents Advanced Telecommunication Services Remote Device Control and Configuration Workflow Management and Cooperation Active Networks Electronic Commerce

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.

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.

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.

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.

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.

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

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

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