One.world Robert Grimm New York University System Support for Pervasive Applications.

Slides:



Advertisements
Similar presentations
Composite Device Computing Environment: A Framework for Situated Interaction Using Small Screen Devices Thai-Lai Pham, Georg Schneider, Stuart Goose and.
Advertisements

Mobile Agents Mouse House Creative Technologies Mike OBrien.
Multi-Mode Survey Management An Approach to Addressing its Challenges
RPC Robert Grimm New York University Remote Procedure Calls.
Test Case Management and Results Tracking System October 2008 D E L I V E R I N G Q U A L I T Y (Short Version)
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 4 Installing and Configuring the Dynamic Host Configuration Protocol.
Using DSVM to Implement a Distributed File System Ramon Lawrence Dept. of Computer Science
The road to reliable, autonomous distributed systems
Objektorienteret Middleware Presentation 2: Distributed Systems – A brush up, and relations to Middleware, Heterogeneity & Transparency.
Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.
Distributed Processing, Client/Server, and Clusters
Network Operating Systems Users are aware of multiplicity of machines. Access to resources of various machines is done explicitly by: –Logging into the.
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
G Robert Grimm New York University Lightweight RPC.
490dp Introduction Robert Grimm. The Computer for the 21 st Century “The most profound technologies are those that disappear. They weave themselves into.
One.box Distributed home service interface. Core Components Pop3 client Router Storage Pop3 Server.
Extensible Scalable Monitoring for Clusters of Computers Eric Anderson U.C. Berkeley Summer 1997 NOW Retreat.
EEC-681/781 Distributed Computing Systems Lecture 3 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Hands-On Microsoft Windows Server 2003 Networking Chapter 7 Windows Internet Naming Service.
© Lethbridge/Laganière 2001 Chap. 3: Basing Development on Reusable Technology 1 Let’s get started. Let’s start by selecting an architecture from among.
SensIT PI Meeting, April 17-20, Distributed Services for Self-Organizing Sensor Networks Alvin S. Lim Computer Science and Software Engineering.
16: Distributed Systems1 DISTRIBUTED SYSTEM STRUCTURES NETWORK OPERATING SYSTEMS The users are aware of the physical structure of the network. Each site.
One.world Robert Grimm University of Washington System Support for Pervasive Applications.
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 11 Managing and Monitoring a Windows Server 2008 Network.
Client/Server Architecture
Middleware for P2P architecture Jikai Yin, Shuai Zhang, Ziwen Zhang.
Microsoft Load Balancing and Clustering. Outline Introduction Load balancing Clustering.
1 Lab 3 Transport Layer T.A. Youngjoo Han. 2 Transport Layer  Providing logical communication b/w application processes running on different hosts 
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Computer Measurement Group, India Reliable and Scalable Data Streaming in Multi-Hop Architecture Sudhir Sangra, BMC Software Lalit.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Hands-On Microsoft Windows Server 2008
Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee.
Protection and the Kernel: Mode, Space, and Context.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
Microsoft Active Directory(AD) A presentation by Robert, Jasmine, Val and Scott IMT546 December 11, 2004.
File Processing - Database Overview MVNC1 DATABASE SYSTEMS Overview.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
DCE (distributed computing environment) DCE (distributed computing environment)
Backdrop Particle Paintings created by artist Tom Kemp September Grid Information and Monitoring System using XML-RPC and Instant.
Copyright © George Coulouris, Jean Dollimore, Tim Kindberg This material is made available for private study and for direct.
1- Distributed Systems Principles and Paradigms Operating Systems: Concurrent and Distributed Software Design Jean Bacon, Tim Harris 2003.
Distributed Computing Systems CSCI 4780/6780. Geographical Scalability Challenges Synchronous communication –Waiting for a reply does not scale well!!
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Enterprise Integration Patterns CS3300 Fall 2015.
Shuman Guo CSc 8320 Advanced Operating Systems
Jini Architecture Introduction System Overview An Example.
Presentation 3: Designing Distributed Objects. Ingeniørhøjskolen i Århus Slide 2 af 14 Outline Assumed students are knowledgeable about OOP principles.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Copyright © 2004, Keith D Swenson, All Rights Reserved. OASIS Asynchronous Service Access Protocol (ASAP) Tutorial Overview, OASIS ASAP TC May 4, 2004.
Presentation 3: Designing Distributed Objects. Ingeniørhøjskolen i Århus Slide 2 af 16 Outline Assumed students are knowledgeable about OOP principles.
Data-Centric Systems Lab. A Virtual Cloud Computing Provider for Mobile Devices Gonzalo Huerta-Canepa presenter 김영진.
Operating Systems Distributed-System Structures. Topics –Network-Operating Systems –Distributed-Operating Systems –Remote Services –Robustness –Design.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Monitoring Dynamic IOC Installations Using the alive Record Dohn Arms Beamline Controls & Data Acquisition Group Advanced Photon Source.
Self Healing and Dynamic Construction Framework:
CHAPTER 3 Architectures for Distributed Systems
#01 Client/Server Computing
Ch > 28.4.
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Autumn 2003 Lecture 16 RPC
CSE 451: Operating Systems Winter 2007 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Winter 2003 Lecture 16 RPC
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
#01 Client/Server Computing
Presentation transcript:

one.world Robert Grimm New York University System Support for Pervasive Applications

Altogether Now: The Three Questions  What is the problem?  What is new or different?  What are the contributions and limitations?

What is Pervasive Computing? Pervasive computing is about making our lives simpler. Pervasive computing aims to enable people to accomplish an increasing number of personal and professional transactions using a new class of intelligent and portable devices. It gives people convenient access to relevant information stored on powerful networks, allowing them to easily take action anywhere, anytime. IBM Pervasive Computing Web Site

And this changes everything! TODAYTOMORROW “The Workspace” “The Computer”

The Challenges of Pervasive Computing 1.The user’s focus is on the activity, not the computer 2.Devices are buried within the landscape, not vice versa 3.Tasks last days, span many devices, people, places 4.Task requirements change all the time 5.Resources degrade frequently Adapting to constant change

The Problem  Contemporary system services are based on the wrong set of assumptions  Static machines, static applications, altogether static systems  …and hide distribution  RPC, distributed objects, distributed file systems  It is much too difficult to write seamless pervasive applications  Users are forced to “stitch up” the seams

Goals of this work  Develop a practical system that makes it easy to build, deploy, and use pervasive applications  Applications adapt, not users  Recruit developers and users to work with the system  Evaluate their experiences and their artifacts  Establish a foundation for future work

Outline  Motivation  Design Methodology  System Architecture  Some System Services  Evaluation  Conclusion

Design Methodology 1.Capture requirements for pervasive applications 2.Focus on requirements ill-served by contemporary systems 3.Define a system architecture that serves those requirements well 4.Validate with application builders 5.Iterate

 Embrace Contextual Change  Application context changes all the time  Impractical to make it a “user problem” Focusing on the unique requirements  Encourage Ad Hoc Composition  Users expect that devices and applications just plug together  Impractical to ask the users to do the composition  Recognize sharing as the default  Applications need to easily share information across time and devices  Impractical to ask users to manage shared files and convert formats

The Biology Lab: An Example Application Domain Goal: Capture, organize, and present laboratory processes

Challenges in the Digital Lab  Encourage Ad Hoc Composition  Connect instruments to biologists using them  Integrate outside devices (PDAs, laptops)  Recognize sharing as the default  Let biologists hand off and compare experiments  Embrace Contextual Change  Track biologists as they move through the lab and switch between experiments

Specific Shortcomings of the Status Quo  What happens when you try to do the digital lab with conventional systems?  Hard to move between machines  Manually log in, start applications, load data, …  Hard to connect devices to people  Computers control who uses a device, not the users  Hard to share data  File systems support only coarse-grained sharing  Databases are difficult to set up and administer

Jini Makes the Wrong Assumptions  Jini (and Java RMI) require  A statically configured infrastructure  Name server, discovery server  A well-behaved computing environment  Transparent and synchronous invocations  No isolation between objects  No independence between devices  Distributed garbage collection

Outline  Motivation  Design Methodology  System Architecture  Some System Services  Evaluation  Conclusion

Architectural Principles  Bias foundation services for change, ad hoc composition, and pervasive sharing  Build specific system services and utilities in terms of these foundation services  Employ classic user/kernel split  Remain neutral on other issues  Client/server, peer-to-peer, …

one.world System Architecture Virtual Machine Environments Query EngineRemote Events Discovery Checkpointing Migration Libraries System Utilities Application ChangeCompositionSharing TuplesAsynchronous Events Unified I/O FOUNDATION SERVICES SYSTEM SERVICES USER SPACE

Design Rationale for Foundation Services  Virtual machine  Support ad hoc composition  Tuples (self-describing data)  Simplify sharing  Environments  Act like address spaces, including protection  Store persistent data  Facilitate composition, checkpointing, migration  Events  Make change explicit to the application

one.world: The Big Picture Migrating environments Tuples & events one.world Migrating environments

Outline  Motivation  Design Methodology  System Architecture  Some System Services  Evaluation  Conclusion

System Services Address the common requirements of pervasive applications Search Locate Move Fault-Protect Communicate in space Communicate in time Query Engine Discovery Migration Checkpointing Remote Events Unified I/O Application RequiresSystem Provides

Discovery  Rendezvous mechanism: Finds resources with unknown or changing location  In one.world parlance: Locates event handlers and routes events to them  Supports coping with change and ad hoc composition  Provides a lookup service mapping resource descriptors to event handlers  Self-managing: Elected discovery server

Discovery Elections  Discovery server broadcasts heartbeat  Per device election manager observes server  Calls election after two missed announcements, on server failure or shutdown  Each device broadcasts a score  Device with highest score wins  Devices tolerate any resulting inconsistencies  Export resources to all servers, but look up on only one  Discovery server with lower score shuts itself down  Discovery reconfigures quickly  We can’t stop the world to wait for perfect consistency

Migration  Moves or copies an application and its data  In one.world parlance: Moves or copies an environment and all its contents  Supports coping with change and ad hoc composition  Application deployment  Captures a checkpoint and then moves everything

Migration Details  Checkpointing: Capturing the execution state  Quiesces environments  Captures consistent checkpoint  Serializes application state and environment state  Builds on Java serialization  Limits captured state to environment tree  Network protocol: Moving the execution state  Send request, metadata, stored tuples, checkpoint  Receiving environments can override the initial request  Migration works because applications already expect change

Unified I/O  Provides a unified interface to storage and networking  In one.world parlance: Reads and writes tuples  Across the network  From/to environments  Lets applications share data  Converts between tuples and byte strings  Builds on Java serialization  Uses query engine to filter tuples while reading

Unified I/O Experience  Only kernel services use network I/O  Remote events and discovery use network I/O  Applications use remote events and discovery instead  In other words  Sharing in space better covered by remote events and discovery  Little need for unified I/O service  Much simpler networking layer might suffice

An Illustrating (Toy) Example  The migrating, persistent counter  Update  Save  Display  Sleep  Move void handleEvent(e: Event) { if (event is arrived) { count++; checkpoint(myself); send(display for device, count); schedule-timer(in 5 mins, move-on, this); } else if (event is move-on) { move(next location); } }

Real Code request.handle(new EnvironmentEvent(this, null, EnvironmentEvent.CHECK_POINT, getEnvironment().getId())); DynamicTuple moveOn = new DyanmicTuple(); moveOn.set(“msg”, “move-on”); timer.schedule(Timer.ONCE, SystemUtilities.currentTimeMillis(), 5 * Duration.MINUTE, this, moveOn); request.handle(new MigrationRequest(this, null, getEnvironment().getId(), “sio://”+nextLocation()+”/”, false)); checkpoint move schedule timer

Emcee  Emcee is one.world’s graphical shell  Think ‘Finder’  Manages users and applications  Builds on environment nesting  /Users/ /  Moves users between nodes  Supports both push and pull  Uses discovery to locate users  Relies on migration to move users  Scans environments to detect arrival

Chat  Provides text & audio messaging  Location independent  Uses late binding for message routing  User and device context aware  Verifies user after activation, restoration, migration  Graceful degradation  Runs without audio state  Integrates persistent music libraries

Emcee and Chat in Action one.world Emcee one.world Chat Discovery server Emcee Chat Emcee one.world Emcee

Outline  Motivation  Design Methodology  System Architecture  Some System Services  Evaluation  Conclusion

Implementation of one.world  Written mostly in Java  Berkeley DB for tuple storage  Runs on Linux and Windows PCs  Released as open source  Currently version  109,000 lines of code (40,000 statements)  6 man years of development  400 downloads of source release

Evaluation  Key question: Is one.world good enough to build pervasive applications?  Consider  Completeness: Can we build additional services using one.world’s primitives?  Complexity: How hard is it to write code in one.world?  System performance: Is system performance acceptable?  Utility: Have we enabled others to be successful?

Reasonable Programmer Productivity  Does programming for pervasive applications seem harder than for conventional applications?  Tracked development times and tasks for Chat and Emcee  3 people over 3 month period  Approximately 250 hours  2, ,400 = 4,200 statements  Productivity of 16.5 statements/hour  Generally measured systems range from 8 to 30 statements/hour  Conclusion: Nothing Herculean about coding for change, ad hoc composition, or sharing

Performance  Key concern: Can applications respond quickly to changes in context?  Example: Service failure  Avoid the “Outlook not responding” problem  Consequently, focus has been on system and application reactivity  Not on classic performance metrics (e.g., round trip message exchange)

Round Trip Message Exchange  Java RMI  Synchronous  Unprotected  TCP connection per object  one.world  Asynchronous  Protected  TCP connection per device one.world (2001) one.world (2002)

Applications and Services React Quickly to Change Chat migrates Discovery server shut down Discovery server fails

Other People’s Experiences

The Labscape Project  Goal: Seamlessly capture, organize, and present laboratory processes  Constraints  Built by programmers, not systems experts  Has got to be good enough to be used everyday by everyone  Responsive  Stable  Robust

Labscape Architecture

Project History  Version 1  Centralized processing, remote windowing  Not responsive, not robust  Version 2  Distributed processing, code and data follow user  Not stable, not robust  Version 3  Version 2 logic, but built on one.world  Responsive, stable, robust

What the Labscape People Say about one.world  Development time went way down  From 9 man months to 4 man months  Migration takes seconds, not minutes  Migration happens all the time in a laboratory  Lab MTBF is days, not 30 minutes  Can recover from service/device failures piecemeal, rather than through whole system restart

What They Didn’t Like  one.world events are harder to use than Swing events  Want to write more concise event code  Want better support for managing asynchronous interactions  one.world has its own data model and network communications  Want better support for interacting with legacy and web systems

Outline  Motivation  Design Methodology  System Architecture  Some System Services  Evaluation  Conclusion

Conclusion  Contributions  Identified system requirements for a new style of applications  Pervasive applications require support for change, composition and sharing  Developed a system that satisfies those requirements  Validated the system internally and externally  Foundation for further work  See:

Acknowledgements  one.world team  Daniel Cheah, Ben Hendrickson  Janet Davis, Eric Lemar, Adam MacBeth, Steven Swanson  Tom Anderson, Brian Bershad, Gaetano Borriello, Steven Gribble, David Wetherall  Users  Kaustubh Deshmukh, Liang Sun  Students of CSE 490dp—building distributed and pervasive applications  Labscape project