Simplifying cyber foraging

The rapid proliferation of mobile handheld computing devices, such as cellphones and PDAs, has led to an unfortunate conflict. On one hand, we have light mobile computing devices that can be carried anywhere. However, on the other hand, these devices are frequently unable to execute applications that are of highest value to a mobile user such as language translators and speech recognizers. One way to resolve this conflict is to use cyber foraging ---utilize compute resources available in the environment to augment the capabilities of mobile devices. A key challenge in enabling cyber foraging is that there exist many applications of high value to a mobile user that must be quickly, easily, and effectively retargeted to support cyber foraging. This retargeting is made more difficult as applications can be written in any programming language and style. In this thesis, quickly refers to the retargeting time, easily refers to the retargeting effort, and effectively refers to the retargeted application's runtime performance. This dissertation shows that it is possible to quickly, easily, and effectively retarget computationally-intensive useful applications for cyber foraging. I developed a process called RapidRe that allows even novice developers to easily, quickly, and effectively retarget large unfamiliar applications for cyber foraging. To create RapidRe, I first developed a powerful remote execution system, called Chroma, that is able to achieve excellent application performance in mobile environments. Chroma uses the concept of tactics to greatly reduce its search space when deciding the optimal remote partitioning of applications. Tactics are enumerations of the useful application partitionings. At runtime, Chroma picks the tactics that would have the optimal performance for the given resource environment and user preferences. I then developed a domain-specific language, called Vivendi, that allows developers to specify the adaptive characteristics of an application that are relevant for mobile computing. These characteristics include the parameters, fidelity variables, and tactics of the application. The parameters give hints about the expected application resource usage. These hints are used by Chroma to decide the optimal tactic. The fidelity variables are application settings that Chroma must set based on the available resources. Finally, tactics are described in two parts; the first part is the list of application procedures that can be remotely executed and the second is the possible ways to combine these procedures to do useful work. (Abstract shortened by UMI.)

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

[2]  Leandros Tassiulas,et al.  Proximity awareness and fast connection establishment in Bluetooth , 2000, 2000 First Annual Workshop on Mobile and Ad Hoc Networking and Computing. MobiHOC (Cat. No.00EX444).

[3]  Mahadev Satyanarayanan,et al.  Fundamental challenges in mobile computing , 1996, PODC '96.

[4]  Charles E. Perkins,et al.  Service Templates and Service: Schemes , 1999, RFC.

[5]  Raphael A. Finkel,et al.  Designing a process migration facility: the Charlotte experience , 1989, Computer.

[6]  Henri E. Bal,et al.  Orca: A Language For Parallel Programming of Distributed Systems , 1992, IEEE Trans. Software Eng..

[7]  Robbert van Renesse,et al.  Amoeba A Distributed Operating System for the 1990 s Sape , 1990 .

[8]  Jim Waldo,et al.  The Jini architecture for network-centric computing , 1999, CACM.

[9]  V. Jacobson,et al.  Congestion avoidance and control , 1988, CCRV.

[10]  Erik Guttman,et al.  Service Location Protocol: Automatic Discovery of IP Network Services , 1999, IEEE Internet Comput..

[11]  Luca Cardelli,et al.  A language with distributed scope , 1995, POPL '95.

[12]  Jon Louis Bentley,et al.  Programming pearls: little languages , 1986, CACM.

[13]  Mads Haahr,et al.  A Dynamic Proxy Based Architecture to Support Distributed Java Objects in a Mobile Environment , 2002, CoopIS/DOA/ODBASE.

[14]  Eric A. Brewer,et al.  Adapting to network and client variability via on-demand dynamic distillation , 1996, ASPLOS VII.

[15]  Edward R. Zayas,et al.  Attacking the process migration bottleneck , 1987, SOSP '87.

[16]  Monica S. Lam,et al.  The design, implementation, and evaluation of Jade , 1998, TOPL.

[17]  Vaidy S. Sunderam,et al.  The PVM System: Status, Trends, and Directions , 1996, PVM.

[18]  Philippe Golle,et al.  Uncheatable Distributed Computations , 2001, CT-RSA.

[19]  Forum Mpi MPI: A Message-Passing Interface , 1994 .

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

[21]  Eric Horvitz,et al.  The Lumière Project: Bayesian User Modeling for Inferring the Goals and Needs of Software Users , 1998, UAI.

[22]  Steve Vinoski,et al.  CORBA: integrating diverse applications within distributed heterogeneous environments , 1997, IEEE Commun. Mag..

[23]  Diana K. Smetters,et al.  Cryptography as a Network Service , 2000 .

[24]  Alan W. Black,et al.  Flite: a small fast run-time synthesis engine , 2001, SSW.

[25]  Guido van Rossum AIL - a Class-oriented RPC Stub Generator for Amoeba , 1989, Process in Distributed Operating Systems and Distributed Systems Management.

[26]  Ronald Cramer,et al.  A Practical Public Key Cryptosystem Provably Secure Against Adaptive Chosen Ciphertext Attack , 1998, CRYPTO.

[27]  Daniel S. Weld Recent Advances in AI Planning , 1999, AI Mag..

[28]  Joel H. Saltz,et al.  The virtual microscope , 2003, IEEE Transactions on Information Technology in Biomedicine.

[29]  Stuart I. Feldman,et al.  Make — a program for maintaining computer programs , 1979, Softw. Pract. Exp..

[30]  Mats Björkman,et al.  Bandwidth Measurement in Wireless Networks , 2005, Med-Hoc-Net.

[31]  Jakob Nielsen,et al.  Usability engineering , 1997, The Computer Science and Engineering Handbook.

[32]  Joel H. Saltz,et al.  Digital dynamic telepathology-the Virtual Microscope , 1998, AMIA.

[33]  Svend Frølund,et al.  Quality-of-service specification in distributed object systems , 1998, Distributed Syst. Eng..

[34]  Douglas Thain,et al.  Distributed computing in practice: the Condor experience , 2005, Concurr. Pract. Exp..

[35]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[36]  Ingrid Zukerman,et al.  Towards a Bayesian Model for Keyhole Plan Recognition in Large Domains , 1997 .

[37]  Ralf D. Brown,et al.  The Pangloss-Lite machine translation system , 1996, AMTA.

[38]  Jean Vanderdonckt,et al.  Applying model-based techniques to the development of UIs for mobile computers , 2001, IUI '01.

[39]  Michael F. Cohen,et al.  Radiosity and realistic image synthesis , 1993 .

[40]  Anders Ardö Experience acquiring and retargeting a portable Ada compiler , 1987, Softw. Pract. Exp..

[41]  G.E. Moore,et al.  Cramming More Components Onto Integrated Circuits , 1998, Proceedings of the IEEE.

[42]  Mahadev Satyanarayanan,et al.  Operating system support for mobile interactive applications , 2002 .

[43]  Reid G. Simmons,et al.  A task description language for robot control , 1998, Proceedings. 1998 IEEE/RSJ International Conference on Intelligent Robots and Systems. Innovations in Theory, Practice and Applications (Cat. No.98CH36190).

[44]  Andrew S. Grimshaw,et al.  The Legion Grid Portal , 2002, Concurr. Comput. Pract. Exp..

[45]  Mihir Bellare,et al.  Random oracles are practical: a paradigm for designing efficient protocols , 1993, CCS '93.

[46]  Scott R. Klemmer,et al.  Papier-Mache: toolkit support for tangible input , 2004, CHI.

[47]  Jason Flinn,et al.  Slingshot: deploying stateful services in wireless hotspots , 2005, MobiSys '05.

[48]  Markus Jakobsson,et al.  Proofs of Work and Bread Pudding Protocols , 1999, Communications and Multimedia Security.

[49]  Geoffrey H. Kuenning,et al.  Saving portable computer battery power through remote process execution , 1998, MOCO.

[50]  Brad A. Myers,et al.  Usability Issues in the Design of Novice Programming Systems , 1996 .

[51]  Steven K. Feiner,et al.  Augmented Reality in Architectural Construction, Inspection, and Renovation , 1996 .

[52]  Bruce Schneier,et al.  Practical cryptography , 2003 .

[53]  Wu-chi Feng,et al.  A Survey of Application Layer Techniques for Adaptive Streaming of Multimedia , 2001, Real Time Imaging.

[54]  Miguel Oom Temudo de Castro,et al.  Practical Byzantine fault tolerance , 1999, OSDI '99.

[55]  Calton Pu,et al.  Active Streams - an approach to adaptive distributed systems , 2001, Proceedings Eighth Workshop on Hot Topics in Operating Systems.

[56]  Anees Shaikh,et al.  An empirical evaluation of wide-area internet bottlenecks , 2003 .

[57]  Fred Douglis Transparent process migration in the Sprite operating system , 1990 .

[58]  Mahadev Satyanarayanan,et al.  Categories and Subject Descriptors: D.4.3 [Software]: File Systems Management—Distributed , 2022 .

[59]  Howard Jay Siegel,et al.  A survey and comparison of fault-tolerant multistage interconnection networks , 1994 .

[60]  Mark Billinghurst,et al.  Wearable computers for three dimensional CSCW , 1997, Digest of Papers. First International Symposium on Wearable Computers.

[61]  Daniel P. Siewiorek,et al.  Application Design for Wearable and Context-Aware Computers , 2002, IEEE Pervasive Comput..

[62]  David Wetherall,et al.  Active network vision and reality: lessions from a capsule-based system , 1999, SOSP.

[63]  Robbert van Renesse,et al.  Experiences with the Amoeba distributed operating system , 1990, CACM.

[64]  Van Jacobson,et al.  A tool to infer characteristics of internet paths , 1997 .

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

[66]  Jason Nieh,et al.  Proceedings of the 5th Symposium on Operating Systems Design and Implementation , 2022 .

[67]  Anees Shaikh,et al.  A service platform for on-line games , 2003, NetGames '03.

[68]  Marty Humphrey,et al.  Beyond the "device as portal": meeting the requirements of wireless and mobile devices in the legion grid computing system , 2002, Proceedings 16th International Parallel and Distributed Processing Symposium.

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

[70]  Daniel P. Siewiorek,et al.  A scalable solution to the multi-resource QoS problem , 1999, Proceedings 20th IEEE Real-Time Systems Symposium (Cat. No.99CB37054).

[71]  Douglas Thain,et al.  Parrot: Transparent User-Level Middleware for Data-Intensive Computing , 2005, Scalable Comput. Pract. Exp..

[72]  Jack Dongarra,et al.  PVM: Parallel virtual machine: a users' guide and tutorial for networked parallel computing , 1995 .

[73]  Jeannette M. Wing,et al.  DURRA : A Task-Level Description Language , 1987, ICPP.

[74]  Jitendra Padhye,et al.  Bandwidth estimation in broadband access networks , 2004, IMC '04.

[75]  John Carter,et al.  A lightweight secure cyber foraging infrastructure for resource-constrained devices , 2004, Sixth IEEE Workshop on Mobile Computing Systems and Applications.

[76]  Andreas Willig,et al.  Measurements of a Wireless Link in different RF-isolated Environments , 2002 .

[77]  Andreas Haeberlen,et al.  Stub-code performance is becoming important , 2000, WIESS'00.

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

[79]  Jaap C. Haartsen,et al.  The Bluetooth radio system , 2000, IEEE Personal Communications.

[80]  Bjarne Stroustrup,et al.  The C++ programming language (2nd ed.) , 1991 .

[81]  Keith A. Lantz,et al.  Preemptable remote execution facilities for the V-system , 1985, SOSP 1985.

[82]  Gregory R. Ganger,et al.  Dynamic Function Placement for Data-Intensive Cluster Computing , 2000, USENIX Annual Technical Conference, General Track.

[83]  Martin Vetterli,et al.  Receiver-driven layered multicast , 1996, SIGCOMM 1996.

[84]  Jianwen Zhu,et al.  Retargetable binary utilities , 2002, DAC '02.

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

[86]  Rainer Leupers,et al.  C Compiler Retargeting Based on Instruction Semantics Models , 2005, Design, Automation and Test in Europe.

[87]  Randall J. Atkinson,et al.  Security Architecture for the Internet Protocol , 1995, RFC.

[88]  Adi Shamir,et al.  A method for obtaining digital signatures and public-key cryptosystems , 1978, CACM.

[89]  Ben Y. Zhao,et al.  The Ninja architecture for robust Internet-scale systems and services , 2001, Comput. Networks.

[90]  John A. Zinky,et al.  QoS Aspect Languages and Their Runtime Integration , 1998, LCR.

[91]  Charles E. Perkins,et al.  DHCP Options for Service Location Protocol , 1999, RFC.

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

[93]  Joseph P. Loyall,et al.  Component-Based Dynamic QoS Adaptations in Distributed Real-Time and Embedded Systems , 2004, CoopIS/DOA/ODBASE.

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

[95]  Whitfield Diffie,et al.  New Directions in Cryptography , 1976, IEEE Trans. Inf. Theory.

[96]  Kazuhiko Yamazaki,et al.  IBM's Linux Watch: The Challenge of Miniaturization , 2002, Computer.

[97]  Matthew J. Zieniewicz,et al.  The Evolution of Army Wearable Computers , 2002, IEEE Pervasive Comput..

[98]  Sang Hyuk Son,et al.  BeeHive: Global Multimedia Database Support for Dependable, Real-Time Applications , 1997, ARTDB.

[99]  Jia Wang,et al.  Locating internet bottlenecks: algorithms, measurements, and implications , 2004, SIGCOMM 2004.

[100]  Timothy Wilson,et al.  WebSphere Studio overview , 2004, IBM Syst. J..

[101]  R. Likert “Technique for the Measurement of Attitudes, A” , 2022, The SAGE Encyclopedia of Research Design.

[102]  Loren G. Terveen,et al.  Helping users program their personal agents , 1996, CHI.

[103]  David Garlan,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004 .

[104]  C.-J. Richard Shi,et al.  Automatic device layout generation for analog layout retargeting , 2005, 18th International Conference on VLSI Design held jointly with 4th International Conference on Embedded Systems Design.

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

[106]  Ed Bailey,et al.  Maximum RPM , 1997 .

[107]  Andrew R. Cherenson,et al.  The Sprite network operating system , 1988, Computer.

[108]  Peter Steenkiste,et al.  Measurement and analysis of the error characteristics of an in-building wireless network , 1996, SIGCOMM 1996.

[109]  Robert Tappan Morris,et al.  USENIX Association Proceedings of HotOS IX : The 9 th Workshop on Hot Topics in Operating Systems , 2003 .

[110]  George C. Necula,et al.  Proof-carrying code , 1997, POPL '97.

[111]  Graham D. Parrington A Stub Generation System for C++ , 1995, Comput. Syst..

[112]  Dan Duchamp,et al.  Measured performance of a wireless LAN , 1992, [1992] Proceedings 17th Conference on Local Computer Networks.

[113]  Roger M. Needham,et al.  Using encryption for authentication in large networks of computers , 1978, CACM.

[114]  Trent Jaeger,et al.  Design and Implementation of a TCG-based Integrity Measurement Architecture , 2004, USENIX Security Symposium.

[115]  Steven Tuecke,et al.  The Physiology of the Grid An Open Grid Services Architecture for Distributed Systems Integration , 2002 .

[116]  Jeffrey Nichols,et al.  Generating remote control interfaces for complex appliances , 2002, UIST '02.

[117]  Galen C. Hunt,et al.  The Coign automatic distributed partitioning system , 1999, OSDI '99.

[118]  Peter L. Reiher,et al.  Conductor: a framework for distributed adaptation , 1999, Proceedings of the Seventh Workshop on Hot Topics in Operating Systems.

[119]  David Garlan,et al.  Scaling task management in space and time: reducing user overhead in ubiquitous-computing environments , 2005 .

[120]  Bernd Brügge,et al.  Architectural issues in mobile augmented reality systems: a prototyping case study , 2001, Proceedings Eighth Asia-Pacific Software Engineering Conference.

[121]  Philippe Golle,et al.  Secure Distributed Computing in a Commercial Environment , 2002, Financial Cryptography.

[122]  Chandra Krintz,et al.  NWSLite: a light-weight prediction utility for mobile devices , 2004, MobiSys '04.