1 Designing Distributed Applications with Mobile Code Paradigms Antonio Carzaniga Politecnico di Milano Gian Pietro.

Slides:



Advertisements
Similar presentations
Understanding Code Mobility
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
The Mobile Code Paradigm and Its Security Issues Anthony Chan and Michael Lyu September 27, 1999.
Designing Distributed Applications with Mobile Code Paradigms Qinhai Xia 3/5/98.
Securing the Broker Pattern Patrick Morrison 12/08/2005.
Distributed Systems Architectures
CS599 Software Engineering for Embedded Systems1 Software Engineering for Real-Time: A Roadmap Presentation by: Mandar Samant Raghbir Singh Banwait.
EEC-681/781 Distributed Computing Systems Lecture 3 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Software Engineering and Middleware A Roadmap Author: Wolfgang Emmerich Presented by: Sam Malek.
1 Programming systems for distributed applications Seif Haridi KTH/SICS.
.NET Mobile Application Development Introduction to Mobile and Distributed Applications.
.NET Mobile Application Development Remote Procedure Call.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 1.
Algorithms for Self-Organization and Adaptive Service Placement in Dynamic Distributed Systems Artur Andrzejak, Sven Graupner,Vadim Kotov, Holger Trinks.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Networked File System CS Introduction to Operating Systems.
SensIT PI Meeting, January 15-17, Self-Organizing Sensor Networks: Efficient Distributed Mechanisms Alvin S. Lim Computer Science and Software Engineering.
1 소프트웨어공학 강좌 Chap 9. Distributed Systems Architectures - Architectural design for software that executes on more than one processor -
Distributed Systems Architectures
1 System Models. 2 Outline Introduction Architectural models Fundamental models Guideline.
Mobile Agent Technology for the Management of Distributed Systems - a Case Study Claudia Raibulet& Claudio Demartini Politecnico di Torino, Dipartimento.
Distributed Systems Principles and Paradigms
Cloud Computing.
Active Monitoring in GRID environments using Mobile Agent technology Orazio Tomarchio Andrea Calvagna Dipartimento di Ingegneria Informatica e delle Telecomunicazioni.
Exercises for Chapter 2: System models
Architectures of distributed systems Fundamental Models
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
XML Web Services Architecture Siddharth Ruchandani CS 6362 – SW Architecture & Design Summer /11/05.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
By Garrett Kelly. 3 types or reasons for distributed applications Data Data used by the application is distributed Computation Computation is distributed.
OS2- Sem ; R. Jalili Introduction Chapter 1.
Kyung Hee University 1/41 Introduction Chapter 1.
Presented By Riyadh Mahmood 3/2/2010 Software Architecture Styles for Network-based Applications Original Paper by: Roy T. Fielding.
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.
Fault Tolerance in CORBA and Wireless CORBA Chen Xinyu 18/9/2002.
Software Deployment and Mobility. Introduction Deployment is the placing of software on the hardware where it is supposed to run. Redeployment / migration.
Computer Science in Context Evangelos E. Milios Professor and Graduate Coordinator Faculty of Computer Science Dalhousie University.
Distributed System Architectures Yonsei University 2 nd Semester, 2014 Woo-Cheol Kim.
Seminar on Service Oriented Architecture Distributed Systems Architectural Models From Coulouris, 5 th Ed. SOA Seminar Coulouris 5Ed.1.
WebFlow High-Level Programming Environment and Visual Authoring Toolkit for HPDC (desktop access to remote resources) Tomasz Haupt Northeast Parallel Architectures.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
CS223: Software Engineering
CSC 480 Software Engineering Lecture 17 Nov 4, 2002.
©Ian Sommerville 2000, Tom Dietterich 2001 Slide 1 Distributed Systems Architectures l Architectural design for software that executes on more than one.
Problem On a regular basis we use: –Java applets –JavaScript –ActiveX –Shockwave Notion of ubiquitous computing.
Distributed Systems Architecure. Architectures Architectural Styles Software Architectures Architectures versus Middleware Self-management in distributed.
A service Oriented Architecture & Web Service Technology.
Dr D. Greer, Queens University Belfast ) Software Engineering Chapter 7 Software Architectural Design Learning Outcomes Understand.
A Seminar On. What is Cloud Computing? Distributed computing on internet Or delivery of computing service over the internet. Eg: Yahoo!, GMail, Hotmail-
1 Distributed Systems Architectures Distributed object architectures Reference: ©Ian Sommerville 2000 Software Engineering, 6th edition.
Distributed Systems Architectures Chapter 12. Objectives  To explain the advantages and disadvantages of different distributed systems architectures.
Distributed Systems Architectures. Topics covered l Client-server architectures l Distributed object architectures l Inter-organisational computing.
Alternatives to Mobile Agents
GlassFish in the Real World
Part 3 Design What does design mean in different fields?
Software Connectors – A Taxonomy Approach
AGENT OS.
Mobile Agents.
Ch 4. The Evolution of Analytic Scalability
Architectures of distributed systems Fundamental Models
Architectures of distributed systems Fundamental Models
Architectures of distributed systems
Architectures of distributed systems Fundamental Models
Chapter 2: System models
Presentation transcript:

1 Designing Distributed Applications with Mobile Code Paradigms Antonio Carzaniga Politecnico di Milano Gian Pietro Picco Politecnico di Torino Giovanni Vigna Politecnico di Milano

2 Internet The largest distributed system ever builtThe largest distributed system ever built Communication infrastructure is evolving at a fast paceCommunication infrastructure is evolving at a fast pace Computational infrastructure is primitive and characterized by slow evolutionComputational infrastructure is primitive and characterized by slow evolution A new research effort: distributed applications in an Internet scaleA new research effort: distributed applications in an Internet scale

3 A World-Wide Middleware Hides components’ locationHides components’ location Provides homogeneous access primitivesProvides homogeneous access primitives Supports client-server computing paradigmSupports client-server computing paradigm Main problem:Main problem: –Local and remote interaction have different semantics in terms of latency, access to memory, partial failure and concurrency

4 Mobile Code Technology Location is a pervasive abstractionLocation is a pervasive abstraction –Local interaction is different from remote interaction –Local interaction is less expensive Applications can dynamically changeApplications can dynamically change –the code they are executing –their location Strongly and weakly mobile systemsStrongly and weakly mobile systems

5 From Technology to Design Paradigms Abstract away from mobile code technologyAbstract away from mobile code technology Location, and mobility of both code and components should be taken into account at the design levelLocation, and mobility of both code and components should be taken into account at the design level “Architectural styles” that employ some form of code mobility“Architectural styles” that employ some form of code mobility –Code On Demand –Remote Evaluation –Mobile Agent

6 Architectural Abstractions ComponentsComponents –Resource components (Data, devices, code) –Computational components Execution stateExecution state Private dataPrivate data Bindings to other components (e.g., code)Bindings to other components (e.g., code) InteractionsInteractions SitesSites –Support execution –Support cheap interaction X Site Y

7 Mobile Code Design Paradigms Interaction patterns that define the coordination and relocation of components needed to perform a serviceInteraction patterns that define the coordination and relocation of components needed to perform a service Service can be carried out when:Service can be carried out when: –resources –know-how –computational component responsible for execution are at the same location X Site Y

8 A chocolate cake

9 Client-Server PLEASE, MAKE ME A CHOCOLATE CAKE Request A Site A B Site B Reply

10 Remote Evaluation PLEASE, MAKE ME A CHOCOLATE CAKE. HERE IS THE RECIPE: TAKE TWO EGGS... Request A Site A B Site B Reply

11 Code On Demand PLEASE, TELL ME THE RECIPE Request A Site A B Site B Reply

12 Mobile Agent HERE I AM! CAN I USE YOUR OVEN? Move Site ASite B A

13 Why to Use Code Mobility? Deployment and upgrade of distributed applicationsDeployment and upgrade of distributed applications Customization of servicesCustomization of services Support for disconnected operationsSupport for disconnected operations Improved fault toleranceImproved fault tolerance

14 How to Use Code Mobility? There is no “universally best” paradigm: client- server may still be the right answerThere is no “universally best” paradigm: client- server may still be the right answer Trade-offs have to be analyzed on a case-by-case basisTrade-offs have to be analyzed on a case-by-case basis How to evaluate the best solution?How to evaluate the best solution?

15 A Data Mining Example It is often claimed that data mining is the “perfect” application for code mobilityIt is often claimed that data mining is the “perfect” application for code mobility Evaluation of three different architecturesEvaluation of three different architectures –Goal: to optimize network traffic –Identification of the relevant parameters

16 Client-Server T CS = (Dr + iDr + Dh + iDb) N networktraffic avg. # of docs. per node requestsize avg. size of a doc. header avg. size of a doc. body number of nodes density of relevant info b r h r

17 Remote Evaluation T REV = ((r + C REV + iDb) N networktraffic avg. # of docs per node requestsize avg. size of a doc. body number of nodes density of relevant info size of code sent C REV r iDb

18 Mobile Agent T MA = (r + C MA + s + ½iDbN) (N+1) networktraffic avg. # of docs per node requestsize size of “internal”state avg. size of a doc. body number of nodes density of relevant info size of code sent C MA r state

19 Traffic Overhead: O = T - iDbNTraffic Overhead: O = T - iDbN MA is the worst (at least in this example and as far as network traffic is concerned)MA is the worst (at least in this example and as far as network traffic is concerned) Trade-off between CS and REV:Trade-off between CS and REV: O MA = (r + C MA + s)(N+1) + ½(N-1)I Findings O REV = (r + C REV )N O CS = (r + ir + h)DN If r C REV

20 Conclusions Mobile code languages support new design paradigms for developing distributed applicationsMobile code languages support new design paradigms for developing distributed applications Characterization of the paradigmsCharacterization of the paradigms Case-by-case evaluation of tradeoffsCase-by-case evaluation of tradeoffs

21 Parallel and Future Work Evaluation of the independence of the paradigms from the technologyEvaluation of the independence of the paradigms from the technology Formalization of the paradigmsFormalization of the paradigms Application to a real application domain (network management)Application to a real application domain (network management) Implementation of technology directly supporting the paradigmsImplementation of technology directly supporting the paradigms Security issuesSecurity issues

22 Acknowledgments Artwork by Maria Grazia Galliani