Software Architecture for Distributed and Mobile Systems Avinash Chiganmi Phaneesh Kuppahalli Lakshminarayana.

Slides:



Advertisements
Similar presentations
UNCLASSIFIED – APPROVED FOR PUBLIC RELEASE Why Current Middleware Fails for Mobile Peer-to-Peer Computing Thomas Kunz Systems and Computer Engineering.
Advertisements

JavaSpaces and TSpaces Theresa Tamash CDA 5937 November 4, 2002.
Distributed Systems 1 Topics  What is a Distributed System?  Why Distributed Systems?  Examples of Distributed Systems  Distributed System Requirements.
The road to reliable, autonomous distributed systems
Lime Team Adam Bazinet Hau San Si Tou. What is LIME?  LIME stands for Linda In a Mobile Environment Linda : a shared memory computing model developed.
Adapting Asynchronous Messaging Middleware to Ad Hoc Networking Mirco Musolesi Cecilia Mascolo Stephen Hailes Dept. of Computer Science University College.
Distributed components
Technical Architectures
Distributed Systems Architectures
City University London
ABCSG - Distributed Database 1 Data Management Distributed Database Data Replication.
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
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.
SensIT PI Meeting, April 17-20, Distributed Services for Self-Organizing Sensor Networks Alvin S. Lim Computer Science and Software Engineering.
Information Retrieval in Distributed Environments Based on Context- Aware, Proactive Documents Current Research Information Systems (CRIS 2002) August.
Client-Server Computing in Mobile Environments
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 1.
Client/Server Software Architectures Yonglei Tao.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Interoperating with Services in a Mobile Environment Andreas Dahl, Pål Rolfsen Grønsund, Per Thomas Kraabøl,
Distributed Systems Principles and Paradigms
Software Architecture Framework for Ubiquitous Computing Divya ChanneGowda Athrey Joshi.
Active Monitoring in GRID environments using Mobile Agent technology Orazio Tomarchio Andrea Calvagna Dipartimento di Ingegneria Informatica e delle Telecomunicazioni.
1 MSCS 237 Communication issues. 2 Colouris et al. (2001): Is a system in which hardware or software components located at networked computers communicate.
Lecture 0 Anish Arora CSE 6333 Introduction to Distributed Computing.
Distributed Systems: Concepts and Design Chapter 1 Pages
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.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
INTERNET AND ADHOC SERVICE DISCOVERY BY: NEHA CHAUDHARY.
DISTRIBUTED COMPUTING Introduction Dr. Yingwu Zhu.
Distributed Computing Systems CSCI 4780/6780. Distributed System A distributed system is: A collection of independent computers that appears to its users.
Introduction Infrastructure for pervasive computing has many challenges: 1)pervasive computing is a large aspect which includes hardware side (mobile phones,portable.
1 MSCS 237 Communication issues. 2 Colouris et al. (2001): Is a system in which hardware or software components located at networked computers communicate.
Distributed Computing Systems CSCI 4780/6780. Geographical Scalability Challenges Synchronous communication –Waiting for a reply does not scale well!!
Understanding Code Mobility A Fuggetta, G P Picco and G Vigna Presenter Samip Bararia.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
1 BRUSSELS - 14 July 2003 Full Security Support in a heterogeneous mobile GRID testbed for wireless extensions to the.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
Egocentric Context-Aware Programming in Ad Hoc Mobile Environments Christine Julien Gruia-Catalin Roman Mobile Computing Laboratory Department of Computer.
Jini Architectural Overview Li Ping
© Chinese University, CSE Dept. Distributed Systems / Distributed Systems Topic 1: Characterization of Distributed & Mobile Systems Dr. Michael R.
Internet of Things. IoT Novel paradigm – Rapidly gaining ground in the wireless scenario Basic idea – Pervasive presence around us a variety of things.
Seminar on Service Oriented Architecture Distributed Systems Architectural Models From Coulouris, 5 th Ed. SOA Seminar Coulouris 5Ed.1.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Providing web services to mobile users: The architecture design of an m-service portal Minder Chen - Dongsong Zhang - Lina Zhou Presented by: Juan M. Cubillos.
CSC 480 Software Engineering Lecture 17 Nov 4, 2002.
Problem On a regular basis we use: –Java applets –JavaScript –ActiveX –Shockwave Notion of ubiquitous computing.
1 CS590L Distributed Component Architecture Yugi Lee STB #555 (816) * This presentation is prepared based.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Distributed Systems Architecure. Architectures Architectural Styles Software Architectures Architectures versus Middleware Self-management in distributed.
Context-Aware Middleware for Resource Management in the Wireless Internet US Lab 신현정.
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.
Supporting Mobile Collaboration with Service-Oriented Mobile Units
#01 Client/Server Computing
Mobile Computing.
Mobile Agents.
Inventory of Distributed Computing Concepts
Architectures of distributed systems Fundamental Models
Unit V Mobile Middleware.
Architectures of distributed systems Fundamental Models
Architectures of distributed systems
Architectures of distributed systems Fundamental Models
#01 Client/Server Computing
Presentation transcript:

Software Architecture for Distributed and Mobile Systems Avinash Chiganmi Phaneesh Kuppahalli Lakshminarayana

Objectives Provide an understanding the challenging issues of mobile, distributed environments Survey significant research efforts in enabling mobile software development, specifically middleware Understand one middleware (LIME), its features, programming environment, etc

Motivations and challenges for distribution Speed and Scalability: parallelize computation and accommodate more users Economics and Heterogeneity: clusters cheaper than mainframes with different specialized components Fault tolerance: improve management of hardware and software faults Resource sharing and Inherent distribution: access control, authorization Challenges: Instability: Mobile hosts, intermitted network, non stable links, dynamic environment Dynamism: Clusters formed dynamically Assumptions: Communication may be symmetric and transitive but not necessarily.

Middleware for Mobile: Motivation Middleware sits between the operating system and the application Provide developers with abstractions, hiding details of distribution, enabling rapid, dependable development Typical features include communication primitives, replication, concurrency management, etc. Mobile platform requirements are demanding and cannot assume stable connectivity Need support for handling a dynamically changing context Cannot assume a high degree of coupling between the communicating parties and cannot hide as much context information as before

Physical Application Presentation Session Transport Network Data link Middleware Network Operating System ISO/OSI Reference Model

Mobility demands that programs be able to adapt to their environment Providing adaptability is application specific. Middleware either: Allows applications to be notified of changes or Tries to do the adaptation on behalf of the application Common Solution: Proxies A mobile client relies on the presence of a proxy on the fixed network, buffering client requests and server replies Allows the client to disconnect, e.g., to save battery power, and gather the results upon the next reconnection Example: Oracle Mobile Agent Middleware for Mobile

Publish-Subscribe Events Publish-Subscribe systems are asynchronous, implicit, multi-point and peer-to-peer in communication style This style is suited to both traditional distributed systems and to mobile systems Clients and publishers are decoupled, and the infrastructure can be distributed Shared Memory Provide distributed shared memory development paradigm in the mobile environment We will talk about GVDS - Global Virtual Data Structures, through a case study: LIME

Linda Tuple - based model of coordination The tuple space is global and persistent Communication is decoupled in time and space implicit and content-based LIME: Linda in a Mobile Environment LIME = Linda + Transiently Shared Tuple Spaces Tuple Location Reactions System Configuration Tuple Space Result: rapid application development

Transiently Shared Tuple Spaces Mobile agents are the only active components in the system and are permanently associated with an interface tuple space (ITS) Mobile hosts are just “roaming containers” for mobile agents Through the ITS, the mobile agent perceive a context that may change dynamically The shared context, as determined by mobility, is determined through transient sharing of the ITS’s Mobility (agent migration and/or changes in connectivity) triggers engagement and disengagement of the tuple spaces, and dynamic reconfiguration of the contents perceived by each agent The ITS is accessed using Linda operations

Context Transparency: Transiently Shared Tuple Spaces

Degrees of Context Awareness Thus far, distribution and mobility are hidden in what is perceived as a local tuple space (the ITS) Programming is simplified But, this view may hide too much from some applications which may need to: limit the scope of query operations to a part of the context output tuples that are meant to stay with a host different from the producer

Primitives are provided for: putting a passive tuple in the tuple space retrieving a passive tuple from the tuple space retrieving a copy of the tuple from the tuple space putting an active tuple (a process) in the tuple space Upon insertion in a tuple space, a user tuple t is augmented with two fields, yielding a new tuple 〈 c, d, t 〉 : c, current: the identifier of the agent whose tuple space is hosting the tuple d, destination: the identifier of the agent that is the Intended recipient of the tuple If c ≠ d, the tuple is “misplaced” This information is used during ITS engagement and disengagement

Reacting to Changes in Context Mobility is a highly dynamic environment, where reacting to changes is fundamental Linda provides a pull mechanism; with LIME we want to push data to applications: reactsTo (s,p) Strong and weak reactions provide different atomicity guarantees

LIME is the result of a development process integrating formal modeling, implementation, and application development

Some LIME Extensions Tuple space code repository - Extend Java class loader to look into tuple space Service provision Providing service discovery in MANET Service repository is a tuple space Secure tuple space sharing Protect tuple spaces with passwords Provide password protection for individual tuples Future Directions of LIME Cache data for improved access, both during connection and when disconnected, extending data context Reduce reliance on announced disconnection, weakening the guarantees provided by the model, increasing fault tolerance Agent-centered view of context and instead of all agents seeing the same federated tuple space, build each agent’s context independently

Research Issues Will there be / should there be a single middleware for mobile computing? Can there be a composable middleware that allows designers to pull in only the aspects that they need? Will the need for mobile middleware diminish as wireless networks become faster? Can middleware be shared among applications for: Nomadic computing Mobile ad hoc computing Sensor networks Questions?

References M.A. Butrico, H. Chang, A. Cocchi, N.H. Cohen, D.G. Shea, S.E. Smith. “Gold Rush: Mobile Transaction Middleware with Java-Object Replication”, Proceedings of the Third USENIX Conference on Object-Oriented Technologies (COOTS), Pp , 1997 M. Boulkenafed and V. Issarny. “A Middleware Service for Mobile Ad Hoc Data Sharing, Enhancing Data Availability”, ACM/IFIP/USENIX International Middleware Conference. Rio de Janeiro, Brazil June C. Mascolo, L. Capra, and W. Emmerich. “Middleware for Mobile Computing (A Survey)”, In Advanced Lectures in Networking. Editors E. Gregori, G. Anastasi, S. Basagni. Springer. LNCS A.L. Murphy, G.P. Picco, G.-C. Roman, “Lime: A Middleware for Physical and Logical Mobility”, in Proceedings of the International Conference on Distributed Computing Systems (ICDCS'01), Phoenix, AZ (USA), pp , April A.L. Murphy, “3rd International School on Formal Methods for the Design of Computer, Communication and Software Systems: Software Architecture”,