System support for pervasive applications

Pervasive computing provides an attractive vision for the future of computing. Computational power will be available everywhere. Mobile and stationary devices will dynamically connect and coordinate to seamlessly help people in accomplishing their tasks. For this vision to become a reality, developers must build applications that constantly adapt to a highly dynamic computing environment. To make the developers' task feasible, we present a system architecture for pervasive computing, called <i>one.world</i>. Our architecture provides an integrated and comprehensive framework for building pervasive applications. It includes services, such as discovery and migration, that help to build applications and directly simplify the task of coping with constant change. We describe our architecture and its programming model and reflect on our own and others' experiences with using it.

[1]  Jeanna Neefe Matthews,et al.  Serverless network file systems , 1996, TOCS.

[2]  Mahadev Satyanarayanan,et al.  Agile application-aware adaptation for mobility , 1997, SOSP.

[3]  Brian N. Bershad,et al.  Extensibility safety and performance in the SPIN operating system , 1995, SOSP.

[4]  H. Apte,et al.  Serverless Network File Systems , 2006 .

[5]  Girish Seshagiri,et al.  Software Process Improvement Works , 1999 .

[6]  Leslie Lamport,et al.  The part-time parliament , 1998, TOCS.

[7]  Kirk L. Johnson,et al.  The measured performance of content distribution networks , 2001, Comput. Commun..

[8]  Gary T. Leavens,et al.  MultiJava: modular open classes and symmetric multiple dispatch for Java , 2000, OOPSLA '00.

[9]  Li Gong,et al.  Inside Java 2 Platform Security: Architecture, API Design, and Implementation , 1999 .

[10]  Dawson R. Engler,et al.  Exokernel: an operating system architecture for application-level resource management , 1995, SOSP.

[11]  Yin Zhang,et al.  On the constancy of internet path properties , 2001, IMW '01.

[12]  Mike Hibler,et al.  Microkernels meet recursive virtual machines , 1996, OSDI '96.

[13]  Alexander Russell,et al.  Optimal scheduling for disconnected cooperation , 2001, PODC '01.

[14]  H. R. J. Grosch,et al.  The Future of Computing , 1958 .

[15]  Michael Dahlin,et al.  Design considerations for distributed caching on the Internet , 1999, Proceedings. 19th IEEE International Conference on Distributed Computing Systems (Cat. No.99CB37003).

[16]  James P Anderson,et al.  Computer Security Technology Planning Study , 1972 .

[17]  Luca Cardelli,et al.  Abstractions for Mobile Computation , 2001, Secure Internet Programming.

[18]  Andrew Birrell,et al.  Implementing remote procedure calls , 1984, TOCS.

[19]  Rachid Guerraoui,et al.  The Decentralized Non-Blocking Atomic Commitment Protocol , 1995, Proceedings.Seventh IEEE Symposium on Parallel and Distributed Processing.

[20]  Steven G. Johnson,et al.  The Design and Implementation of FFTW3 , 2005, Proceedings of the IEEE.

[21]  Marvin Theimer,et al.  Flexible update propagation for weakly consistent replication , 1997, SOSP.

[22]  Ben Y. Zhao,et al.  An architecture for a secure service discovery service , 1999, MobiCom.

[23]  大島 正嗣,et al.  Simple Object Access Protocol と,その応用としてのソフトウェアの組み合わせについて (渡邉昭夫教授退任記念号) , 2001 .

[24]  Robert Tappan Morris,et al.  Resilient overlay networks , 2001, SOSP.

[25]  Robin Milner,et al.  Definition of standard ML , 1990 .

[26]  Mahadev Satyanarayanan,et al.  Disconnected operation in the Coda File System , 1992, TOCS.

[27]  Marvin Theimer,et al.  Managing update conflicts in Bayou, a weakly connected replicated storage system , 1995, SOSP.

[28]  Lutz Prechelt,et al.  An Empirical Comparison of Seven Programming Languages , 2000, Computer.

[29]  Robert Joseph Fowler,et al.  Decentralized object finding using forwarding addresses (object, network, distribution) , 1985 .

[30]  Hari Balakrishnan,et al.  The design and implementation of an intentional naming system , 1999, SOSP.

[31]  Adrian Nye X protocol reference manual , 1990 .

[32]  C. M. Sperberg-McQueen,et al.  Extensible markup language , 1997 .

[33]  Barton P. Miller,et al.  Fine-grained dynamic instrumentation of commodity operating system kernels , 1999, OSDI '99.

[34]  Fred Douglis,et al.  Transparent process migration: Design alternatives and the sprite implementation , 1991, Softw. Pract. Exp..

[35]  Wilson C. Hsieh,et al.  Processes in KaffeOS: isolation, resource management, and sharing in java , 2000, OSDI.

[36]  Dennis Shasha,et al.  The dangers of replication and a solution , 1996, SIGMOD '96.

[37]  Ken Arnold,et al.  JavaSpaces¿ Principles, Patterns, and Practice , 1999 .

[38]  Andrew S. Tanenbaum,et al.  Globe: a wide area distributed system , 1999, IEEE Concurr..

[39]  Marc Shapiro,et al.  A Survey of Distributed Garbage Collection Techniques , 1995, IWMM.

[40]  Robert Szewczyk,et al.  System architecture directions for networked sensors , 2000, ASPLOS IX.

[41]  Robert Grimm,et al.  Revisiting Structured Storage: A Transactional Record Store , 2000 .

[42]  Nicholas Carriero,et al.  The S/Net's Linda kernel , 1986, TOCS.

[43]  Abraham Silberschatz,et al.  Distributed file systems: concepts and examples , 1990, CSUR.

[44]  David Mazières,et al.  A low-bandwidth network file system , 2001, SOSP.

[45]  Barton P. Miller,et al.  Process migration in DEMOS/MP , 1983, SOSP '83.

[46]  Arnaud Le Hors,et al.  Document Object Model (DOM) Level 2 Core Specification - Version 1.0 , 2000 .

[47]  Idit Keidar,et al.  Moshe: A group membership service for WANs , 2002, TOCS.

[48]  Barry Brumitt,et al.  EasyLiving: Technologies for Intelligent Environments , 2000, HUC.

[49]  Mark Weiser The computer for the 21st century , 1991 .

[50]  Stefan Savage,et al.  The end-to-end effects of Internet path selection , 1999, SIGCOMM '99.

[51]  Arvind Malhotra,et al.  Xml schema part 2: datatypes , 1999 .

[52]  Tommy Thorne,et al.  Programming languages for mobile code , 1997, CSUR.

[53]  Maria Ebling,et al.  Exploiting weak connectivity for mobile file access , 1995, SOSP.

[54]  Idit Keidar,et al.  Increasing the Resilience of Distributed and Replicated Database Systems , 1998, J. Comput. Syst. Sci..

[55]  Charles Petzold Programming Windows®, Fifth Edition , 1998 .

[56]  André Schiper Early consensus in an asynchronous system with a weak failure detector , 1997, Distributed Computing.

[57]  David R. Cheriton,et al.  Leases: an efficient fault-tolerant mechanism for distributed file cache consistency , 1989, SOSP '89.

[58]  Ben Y. Zhao,et al.  Awarded Best Student Paper! - Pond: The OceanStore Prototype , 2003 .

[59]  Gaetano Borriello,et al.  Next century challenges: data-centric networking for invisible computing: the Portolano project at the University of Washington , 1999, MobiCom.

[60]  Ian T. Foster,et al.  Globus: a Metacomputing Infrastructure Toolkit , 1997, Int. J. High Perform. Comput. Appl..

[61]  Gordon S. Blair,et al.  L2imbo: A distributed systems platform for mobile computing , 1998, Mob. Networks Appl..

[62]  John S. Heidemann,et al.  File-system development with stackable layers , 1994, TOCS.

[63]  Michael B. Jones,et al.  Interposition agents: transparently interposing user code at the system interface , 1994, SOSP '93.

[64]  Charles E. Perkins,et al.  Service Location Protocol , 1997, RFC.

[65]  C. Petzold,et al.  Programming Windows , 1990 .

[66]  Matthew S. Gast,et al.  802.11 Wireless Networks: The Definitive Guide , 2002 .

[67]  David E. Culler,et al.  SEDA: an architecture for well-conditioned, scalable internet services , 2001, SOSP.

[68]  Sam Toueg,et al.  Unreliable failure detectors for reliable distributed systems , 1996, JACM.

[69]  Fred Douglis,et al.  Mobility: Processes, Computers, and Agents , 1999 .

[70]  Amy L. Murphy,et al.  LIME: a middleware for physical and logical mobility , 2001, Proceedings 21st International Conference on Distributed Computing Systems.

[71]  C. M. Sperberg-McQueen,et al.  Extensible Markup Language (XML) , 1997, World Wide Web J..

[72]  Per Brinch Hansen,et al.  The nucleus of a multiprogramming system , 1970, CACM.

[73]  Proceedings of the FREENIX Track: 1999 USENIX Annual Technical Conference, June 6-11, 1999, Monterey, California, USA , 1999, USENIX Annual Technical Conference, FREENIX Track.

[74]  Dan Suciu,et al.  XMill: an efficient compressor for XML data , 2000, SIGMOD 2000.

[75]  Dan Suciu,et al.  XMill: an efficient compressor for XML data , 2000, SIGMOD '00.

[76]  Bjarne Steensgaard,et al.  Object and native code thread mobility among heterogeneous computers , 1995, SOSP.

[77]  Lily B. Mummert,et al.  Camelot and Avalon: A Distributed Transaction Facility , 1991 .

[78]  Leslie Lamport,et al.  Paxos Made Simple , 2001 .

[79]  Idit Keidar,et al.  Evaluating the running time of a communication round over the internet , 2002, PODC '02.

[80]  Roger M. Needham,et al.  Grapevine: an exercise in distributed computing , 1982, CACM.

[81]  C. M. Sperberg-McQueen,et al.  eXtensible Markup Language (XML) 1.0 (Second Edition) , 2000 .

[82]  Charles E. Perkins,et al.  Service Location Protocol, Version 2 , 1999, RFC.

[83]  Mahadev Satyanarayanan,et al.  Pervasive computing: vision and challenges , 2001, IEEE Wirel. Commun..

[84]  David E. Culler,et al.  Scalable, distributed data structures for internet service construction , 2000, OSDI.

[85]  M. Weiser The Computer for the Twenty-First Century , 1991 .

[86]  Srinivasan Seshan,et al.  A network architecture for heterogeneous mobile computing , 1998, IEEE Wirel. Commun..

[87]  Gerald Q. Maguire,et al.  The Design and Implementation of a Mobile Internetworking Architecture , 1993, USENIX Winter.

[88]  David Garlan,et al.  Project Aura: Toward Distraction-Free Pervasive Computing , 2002, IEEE Pervasive Comput..

[89]  Margo I. Seltzer,et al.  Berkeley DB , 1999, USENIX Annual Technical Conference, FREENIX Track.

[90]  Mahadev Satyanarayanan,et al.  Flexible and Safe Resolution of File Conflicts , 1995, USENIX.

[91]  Andrew S. Grimshaw,et al.  The core Legion object model , 1996, Proceedings of 5th IEEE International Symposium on High Performance Distributed Computing.

[92]  Samuel J. Leffler,et al.  The design and implementation of the 4.3 BSD Unix operating system , 1991, Addison-Wesley series in computer science.

[93]  Todd D. Millstein,et al.  Practical predicate dispatch , 2004, OOPSLA.

[94]  Barbara Liskov,et al.  Implementation of Argus , 1987, SOSP '87.

[95]  Jerome H. Saltzer,et al.  End-to-end arguments in system design , 1984, TOCS.

[96]  Jay Lepreau,et al.  Nested Java processes: OS structure for mobile code , 1998, ACM SIGOPS European Workshop.

[97]  Idit Keidar,et al.  On the Cost of Fault-Tolerant Consensus When There Are No Faults - A Tutorial , 2003, LADC.

[98]  Jim Waldo,et al.  The Jini Specification , 1999 .

[99]  Eric A. Brewer,et al.  Cluster-based scalable network services , 1997, SOSP.

[100]  Sharon Zakhour,et al.  The JFC Swing Tutorial: A Guide to Constructing GUIs , 1999 .

[101]  D. Box,et al.  Simple Object Access Protocol (SOAP) 1.1, W3C Note , 2000 .

[102]  Vern Paxson,et al.  End-to-end Internet packet dynamics , 1997, SIGCOMM '97.

[103]  Shlomi Dolev,et al.  Dynamic load balancing with group communication , 2006, Theor. Comput. Sci..

[104]  Dale Skeen,et al.  The Information Bus: an architecture for extensible distributed systems , 1994, SOSP '93.

[105]  Sally Floyd,et al.  Difficulties in simulating the internet , 2001, TNET.

[106]  Mahadev Satyanarayanan,et al.  Disconnected Operation in the Coda File System , 1999, Mobidata.

[107]  Armando Fox,et al.  The Interactive Workspaces Project: Experiences with Ubiquitous Computing Rooms , 2002, IEEE Pervasive Comput..

[108]  Robert Grimm,et al.  Separating access control policy, enforcement, and functionality in extensible systems , 2001, TOCS.

[109]  Idit Keidar,et al.  Availability study of dynamic voting algorithms , 2001, Proceedings 21st International Conference on Distributed Computing Systems.

[110]  Özalp Babaoglu,et al.  On the reliability of consensus-based fault-tolerant distributed computing systems , 1987, TOCS.

[111]  Mark Guzdial,et al.  Squeak - open personal computing and multimedia , 2001 .

[112]  M. Dertouzos THE FUTURE OF COMPUTING , 1999 .

[113]  Andy Hopper,et al.  Virtual Network Computing , 1998, IEEE Internet Comput..

[114]  Robert Grimm,et al.  Application performance and flexibility on exokernel systems , 1997, SOSP.

[115]  Mitch Tulloch Windows 2000 administration in a nutshell - a desktop quick reference , 2001 .

[116]  M. Frans Kaashoek,et al.  Rover: a toolkit for mobile information access , 1995, SOSP.

[117]  Robert Grimm,et al.  Systems Support for Ubiquitous Computing: A Case Study of Two Implementations of Labscape , 2002, Pervasive.

[118]  Willy Zwaenepoel,et al.  Flash: An efficient and portable Web server , 1999, USENIX Annual Technical Conference, General Track.

[119]  Sheng Liang,et al.  Dynamic class loading in the Java virtual machine , 1998, OOPSLA '98.

[120]  Brian N. Bershad,et al.  Lightweight remote procedure call , 1989, TOCS.

[121]  Thuan L. Thai,et al.  NET framework essentials , 2001 .

[122]  Peter B. Danzig,et al.  A Hierarchical Internet Object Cache , 1996, USENIX ATC.

[123]  Robert Grimm,et al.  Programming for Pervasive Computing Environments , 2001 .

[124]  Tommy Thorn,et al.  Programming languages for mobile code , 1997 .

[125]  Marc Shapiro,et al.  Structure and Encapsulation in Distributed Systems: The Proxy Principle , 1986, ICDCS.

[126]  Frank Yellin,et al.  The Java Virtual Machine Specification , 1996 .

[127]  Rich Salz,et al.  UUIDs and GUIDs , 1998 .

[128]  Michael C. Daconta,et al.  Essential XUL Programming , 2001 .

[129]  Andrew P. Black,et al.  Fine-grained mobility in the Emerald system , 1987, TOCS.

[130]  Brian N. Bershad,et al.  Dynamic binding for an extensible system , 1996, OSDI '96.

[131]  Paula Fikkert,et al.  Specification of the Bluetooth System , 2003 .

[132]  John K. Ousterhout,et al.  Why Threads Are A Bad Idea (for most purposes) , 2003 .

[133]  Hari Balakrishnan,et al.  Fine-Grained Failover Using Connection Migration , 2001, USITS.

[134]  Tobin J. Lehman,et al.  T Spaces , 1998, IBM Syst. J..

[135]  Dale Skeen,et al.  Nonblocking commit protocols , 1981, SIGMOD '81.

[136]  Gaetano Borriello,et al.  The location stack: a layered model for location in ubiquitous computing , 2002, Proceedings Fourth IEEE Workshop on Mobile Computing Systems and Applications.

[137]  Danny B. Lange,et al.  Programming and Deploying Java¿ Mobile Agents with Aglets¿ , 1998 .

[138]  Keith Bostic,et al.  The design and implementa-tion of the 4.4BSD operating system , 1996 .

[139]  Ben Y. Zhao,et al.  Pond: The OceanStore Prototype , 2003, FAST.

[140]  Ichiro Satoh MobileSpaces: a framework for building adaptive distributed applications using a hierarchical mobile agent system , 2000, Proceedings 20th IEEE International Conference on Distributed Computing Systems.

[141]  Ben Y. Zhao,et al.  OceanStore: an architecture for global-scale persistent storage , 2000, SIGP.

[142]  Gaetano Borriello,et al.  ipChinook: an integrated IP-based design framework for distributed embedded systems , 1999, DAC '99.

[143]  Robert Grimm,et al.  System support for pervasive applications , 2004, TOCS.