throbber
INFORMATION TO USERS
`
`1bis manuscript _bas been reproduced from the microfilm master. UMI
`films the ten directly from the original or copy submitted. Thus, some
`thesis and dissertation c:opies are in typewriter face, while others may
`be from any type of computer printer.
`
`Tile qality of dlis reprodaetia is depeadeat apoa tile qulity of tile
`eopy ...-utted. Broken or indistinct pr:i!l.lt colored or poor quality
`illustrations aDd photop'aphs, print bleedtbrouab. substandard margiDS,
`and imploper aligmneut am adversely affect reproductiOD.
`
`In the unlikely. event that the author did not send UMI a complete
`ID8DUIClipt and there are missing pages, these will be noted. Also, if
`unautbolized copyright material bad to be remowed, a note will indicate
`the deletioD.
`
`Oversize materials (e..., maps, drawinp, c:1wts) are reproduced by
`sectiOJiiDa the oriplal, besianiq at the upper left·hand corner aad
`CDIJijnuing from left to ript in equal sections with small overlaps. Each
`original is also photoaraphed in one exposure and is included in
`reduced form at tbe back of the book.
`
`Pboqraphs iDc1uded in the orf&iDal maDUSCript have been reproduced
`xerographically ill this copy. lfi&her quality 6• x 9" black and white
`photopaphic prints are available for IllY photopaphs or illustradons
`appearina in this copy for an additioaal c:balJe. Contact UMI direet1y
`to order.
`
`UM1
`
`A Bell & Mowelltntormataon Company
`300 Nottl"l Zeeb Road. Ann ArbOr. MI4S1Q6.1346 USA
`313!761-4700 800.'521-0600
`
`LG Electronics, Inc. et al.
`EXHIBIT 1005
`IPR Petition for
`U.S. Patent No.7, 149,511
`
`

`
`REALIZING MOBILE COMPUTING PERSONAE
`
`A Dissertation
`
`Submitted to the Graduate School
`
`of the University of Notre Dame
`
`In Partial Fulfillment of the Requirements
`
`of the Degree of
`
`Doctor of Philosophy
`
`by
`
`Michael Raymond Casey. B.S.E.E., M.S.E.E.
`
`OA.•rJ !. ~
`
`David L. Cohn. Director
`
`Department of Computer Science and Engineering
`
`Notre Dame. Indiana
`
`April 1995
`
`

`
`UMI Number: 9527070
`
`OMI Microfora 9527070
`Copyright 1995, by OMI Coapany. All rights reserved.
`
`This aicrofora edition is protected against unauthorized
`copying under Title 17, United States Code.
`
`UMI
`
`300 Borth Zeeb Road
`Ann Arbor, MI 48103
`
`

`
`REALIZING MOBILE COMPUTING PERSONAE
`
`Abstract
`
`hy
`
`Michael Raymond Casey
`
`The proliferation of computers has made it possible to do computer-related tasks
`
`in many places. At each place a user works. he or she runs applications. specifies
`
`prcferem:es for them. and is allowed to access resources and files according to
`
`local rules. These elements. together with other mappings. can he referred to as
`
`a user's computin~ persona. Currently. implicit personae are created wherever
`
`users usc machines. and their personae evolve as applications. preferences and
`
`resources change. This work outlines a method for making personae explicit, user(cid:173)
`
`centric. and mobile. thus creating mohile computing personae and describes the
`
`underlying components needed to support this shift First, this work identifies the
`
`important characteristics of a mobile file system. Second. a set of application(cid:173)
`
`based checkpoint and restart protocols is proposed to allow migration between
`
`heterogeneous platforms. Next the design and implementation of a user-centric.
`
`di~conncctahlc and reliable communications mechanism called mohile sockets is
`
`analyzed. A suite of mobile applications is then described that were built using
`
`a structured memory lihrary as part of a mobility toolkit to show the feasibility of
`
`such an approach to mobility. Lastly. a resource resolution protocol is presented
`
`that simplifies the transition from one environment to another by providing the
`
`ability to find resources at new locations.
`
`Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
`
`

`
`DEDICATION
`
`This work is dedicated to my wife, Val~rie, and our son, Alex. Their patience has
`allowed me to fulfill a dream, and their smiles kept me going. I would also like
`to thank my parents, Kevin and Meg, for their many years of support.
`
`ii
`
`Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
`
`

`
`TABLE OF CONTENTS
`
`LIST OF FIGURES ............................................. vi
`
`ACKNOWLEDGEMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
`
`I. INTRODUCTION .......................................... .
`
`2. FILE SYSTEM SUPPORTING USER MOBILITY
`
`. . . . . . . . . . . . . . . . . . . .
`
`2.1 Network File Systems without Local Client Caching . . . . . . . . . . . . . . . .
`2.2 Network File Systems with Local Client Caching
`. . . . . . . . . . . . . . . . . .
`2.2.1 AFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`2.2.2 The Little Work Project
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`2.2.3 Coda
`2.2.4 Mobile File System
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`2.3 Prospero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`2.4 The Ideal File System
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`2.5 The Chosen System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`
`5
`
`5
`5
`7
`7
`8
`8
`9
`10
`11
`
`3. PERSONA MANAGEMENT
`
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`
`12
`
`3.1 Hardware-based Environment Management . . . . . . . . . . . . . . . . . . . . . .
`3.2 Unix for Nomads
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`3.3 Mohile Windowing Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`3.3.1 BNU Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`3.3.2 Xerox PARC
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`3.4 Migration in a Homogeneous Environment . . . . . . . . . . . . . . . . . . . . . .
`3.5 Hindrances to Migration in Heterogeneous Environments . . . . . . . . . . . .
`3.6 Migration using a Persona Manager . . . . . . . . . . . . . . . . . . . . . . . . . . .
`3.6.1 UNIX Character-mode Checkpointing . . . . . . . . . . . . . . . . . . . . . .
`3.6.2 X Windows Checkpoint Mechanism . . . . . . . . . . . . . . . . . . . . . . .
`3.7 OS/2 Character Mode Checkpoint Mechanism
`. . . . . . . . . . . . . . . . . . .
`3.R Presentation Manager Checkpoint Mechanism . . . . . . . . . . . . . . . . . . . .
`3.9 Additional Persona Manager Functions
`. . . . . . . . . . . . . . . . . . . . . . . .
`
`13
`13
`14
`14
`16
`21
`23
`25
`26
`29
`31
`33
`34
`
`iii
`
`Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
`
`

`
`4. APPLICATION CHECKPOINTING
`
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`
`36
`
`4.1 Effective Checkpoints for Mobile Applications . . . . . . . . . . . . . . . . . . .
`4.::! Checkpoint Notification and Response . . . . . . . . . . . . . . . . . . . . . . . . .
`4.2.1 Single-threaded, character-mode applications . . . . . . . . . . . . . . . . .
`4.2.2 Multi-threaded, character-mode applications
`. . . . . . . . . . . . . . . . .
`4.2.3 The Original X Windows Checkpoint Procedure
`. . . . . . . . . . . . . .
`4.::!.4 Robust X Windows Checkpoint Procedure
`. . . . . . . . . . . . . . . . . .
`4.2.5 Original Checkpointing Procedure for PM Applications in OS/2
`. . .
`4.2.6 Modified OS/2 Checkpoint Mechanism . . . . . . . . . . . . . . . . . . . . .
`4.3 Choosing Applications and Restarting from the Effective State . . . . . . . .
`
`36
`37
`38
`40
`41
`42
`44
`46
`47
`
`5. MOBILE COMMUNICATIONS
`
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`
`50
`
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`5.1 Basic TCP/IP
`5.2 Mobile IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`5.2.1 Loose Source Routing
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`5.2.2 Mobile IP using Repackaging
`. . . . . . . . . . . . . . . . . . . . . . . . . . .
`5.3 Mobile Sockets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`5.4 Mobile Sockets for Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`5.5 Client Calling Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`5.6 Mobile Sockets for Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`5. 7 Mobile Sockets for Peer-to-Peer Applications . . . . . . . . . . . . . . . . . . . .
`5.X Internals of Communication Surrogates
`. . . . . . . . . . . . . . . . . . . . . . . .
`5.9 Performance Analysis of the Modified TCPIIP Library Routines . . . . . . .
`
`50
`52
`56
`57
`59
`60
`63
`64
`67
`70
`72
`
`6. SUITE OF MOBILE APPLICATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`
`76
`
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`6.1 Application Support Toolkits
`6.2 Calculator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`6.3 Editor
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`6.4 Terminal Emulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`6.5 Talk/Chat Application
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`
`76
`78
`82
`88
`90
`
`7. MOBILITY TOOLKIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`
`93
`
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`7. I Structured Memory Library
`7.'2 Checkpoint-Helper Routine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`
`93
`96
`
`8. RESOURCE RESOLUTION PROTOCOL
`
`. . . . . . . . . . . . . . . . . . . . . . . . .
`
`99
`
`8.1 General Model - Supports Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`X.:! Defining Resources
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`8.3 Finding Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`
`99
`101
`101
`
`iv
`
`Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
`
`

`
`8.4 Accessing/Using Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`8.5 HTTP Server Implementation
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`
`102
`I 03
`
`9. CONCLUSIONS
`
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`
`104
`
`I 0. APPENDIX
`
`. . . . . . . . . . . . . . . . . . . . . . . .
`I 0. I Library Routines for Mobile Sockets
`I 0.1.1 Function: connect_() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`10.1.2 Function: peer_connect_() . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`I 0.1.3 Function: read_()
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`10.1.4 Function: disconnect() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`I 0.1.5 Function: reconnect()
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`10.2 Structured Memory Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`10.2.1 Data Type Identifiers
`10.2.2 Function: str_mem() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`I 0.2.3 Function: deallocate() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`10.2.4 Function: find_str() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`I 0.2.5 Function: mem_pkg() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`I 0.2.6 Function: mem_make() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`I 0.3 Checkpoint-Helper Routines
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`I 0.3.1 Function: XSave()
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`I 0.3.2 Function: X Restore()
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`10.3.3 Function: PMSave()
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`I 0.3.4 Function: OS2Restore() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`
`107
`
`107
`107
`108
`108
`108
`109
`109
`109
`110
`110
`110
`110
`Ill
`Ill
`112
`112
`112
`113
`
`II. REFERENCES
`
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`
`114
`
`v
`
`Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
`
`

`
`LIST OF t~IGURES
`
`Figure 1 Mobile user interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`Figure 2 Routing between PARCfab and application computer . . . . . . . . . . . . .
`Figure 3 X Windows Client and Server
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`Figure 4 Mobile windowing through xmove surrogate
`. . . . . . . . . . . . . . . . . . .
`Figure 5 Normal TCP/IP routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`Figure 6 Initial routing in a virtual network
`. . . . . . . . . . . . . . . . . . . . . . . . . .
`Figure 7 Mobile host receives beacon message . . . . . . . . . . . . . . . . . . . . . . . .
`Figure 8 Loose source routing redirects messages at their origin . . . . . . . . . . . .
`Figure 9 Mobile IP packaging and unpacking message for MH . . . . . . . . . . . . .
`Figure 10 Communications through a local surrogate . . . . . . . . . . . . . . . . . . . .
`Figure 11 Communications through remote surrogate . . . . . . . . . . . . . . . . . . . .
`Figure 12 Server connected to surrogate on local machine
`. . . . . . . . . . . . . . . .
`Figure 13 Server reconnects to surrogate from remote machine . . . . . . . . . . . . .
`Figure 14 Initial peer-to-peer communication configuration . . . . . . . . . . . . . . . .
`Figure 15 Local disconnection with multi-step reconnection . . . . . . . . . . . . . . .
`Figure 16 Direct reconnection to remote surrogate
`. . . . . . . . . . . . . . . . . . . . .
`Figure 17 Motif calculator
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`Figure 18 Motif Multi-file editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`Figure 19 Multiple Presentation Manager editors replace single Motif editor . . . .
`Figure 20 Motif talk/chat application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`
`15
`17
`18
`20
`52
`54
`55
`57
`58
`61
`62
`65
`66
`67
`68
`69
`79
`83
`87
`91
`
`vi
`
`Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
`
`

`
`ACKNOWLEDGEMENTS
`
`Thanks is due to all the members of the Distributed Computing Laboratory, both
`past and present, and especially to my advisor, Dr. Cohn. Each person helped me
`with ideas and encouraging words. May you all see the light at the end of your
`tunnels. A special thanks is due to Arindam Banerji for all his help in getting to
`the end.
`
`Much of my time at Notre Dame was sponsored by the IBM Corporation, both
`through an IBM Graduate Fellowship as well as funding to the DCRLab. For their
`help I am forever grateful.
`
`vii
`
`Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
`
`

`
`1. INTRODUCTION
`
`Today's computer users are not confined to working at a single location or on a single
`
`host. Instead, with the proliferation of networked workstations and stand-alone personal
`
`computers, users create environments at a variety of locations. I DougHs, 1992] points
`
`out, however, that the workstation is just a "waystation" for the tools and environment of
`
`a user, and that any environment that is created should be user-cefltric. This would
`
`enable the environment to be associated with a person and to be moved as he or she goes
`
`from place to place. He describes many of the "implications of mobility", but leaves
`
`open the question of how to address them.
`
`In IBanerji 1993J, the concept of a mobile
`
`computing per:wna containing all the user's running applications, preferences, and
`
`resource mappings was proposed, but no underlying technology was described. This
`
`document presents a set of enabling technologies and explains how mobile personae can
`
`be built and used.
`
`A user's environment may look different on different platforms, but, in general, it
`
`contains several common components. Running applications (e.g. a word processor),
`
`preferences (e.g. UNIX environment variables) and resource mappings (e.g. default
`
`printers) form its basis. Most users would find having a single view of this world
`
`beneficial: it would reduce the work required to map operations onto available resources.
`
`However, since this persona and its mappings can change, the new persona should be
`
`moveable between machines. This dissenation describes the design and implementation
`
`Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
`
`

`
`of a set of technologies to manage a mobile computing persona.
`
`The persona may be addressed as two separate parts for manageability. The first is
`
`a file system, and the second is everything else. One of the first problems in migrating
`
`environments is having a file system that can follow the user as he or she moves. AFS
`
`(Howard. 1988], Coda (Satyanarayanan. 19901 and the Little Work project (Huston, 1993]
`
`are network file systems that allow a user to see the same files from multiple machines
`
`in a network. Prospero I Neuman, 19931 allows the remapping of files and other resources
`
`depending on the user's location. Current work at Notre Dame (Saldanha, 1993] has
`
`proposed a mobile file .'iystem that expands Coda's functionality and sharing capabilities.
`
`It caches files for increased performance while connected and greater availability during
`
`disconnected operation and provides file coherency between multiple caches as the user
`
`moves.
`
`A major part of migrating a user's environment is moving the active applications. In
`
`order to migrate an application, its state must be saved and then used to restart the
`
`application. An application-based checkpointing scheme is proposed here that can be
`
`built on top of existing operating systems. Applications define an effective state which
`
`contains enough information to allow a restart without the loss of information. Because
`
`it is application-specific, effective state is more easily saved. restored and translated
`
`across heterogeneous machine architectures than a memory dump of a previously running
`
`application.
`
`Some running applications include active communication links as an integral pan of
`
`their state. These links must be suspendable if the applications are to be movable. Then,
`
`2
`
`Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
`
`

`
`when the applications are restarted. the links must be able to receive any communications
`
`that were sent during the transition. Ideally, any implementation of such disconnectable
`
`communications should be backwards compatible with existing communications protocols.
`
`To coordinate the checkpointing and restarting of applications. this work describes the
`
`creation of a persona manager to manage the user's environment. The persona manager
`
`is a set of processes that use system-specific inter-process communication to send
`
`checkpoint requests to applications and receive and store their effective states. Having
`
`been restarted at a new location, the persona manager maps previously running
`
`applications onto locally available applications and passes the new applications the stored
`
`effective states.
`
`A suite of mobile applications was built to demonstrate the feasibility of mobile
`
`application creation and to provide a basis for the analysis of difficulties which might
`
`arise when a particular class of applications is used in a mobile environment. In order
`
`to support mobile, communicating applications. a modified TCP/IP library that provides
`
`a user-centric communications mechanism was also built. When combined with a
`
`structured memory library and a set of checkpoint-helper routines. current applications can
`
`be extended to be mobile applications.
`
`This document also outlines a resource re:wllltion protocol to map the desired
`
`resources onto available resources. This work not only aids users in moving between
`
`networked machines, it also supports users who move between portables, laptops and
`
`Personal Digital Assistants (PDAs) and networked machines.
`
`These analyses identify the benefits of making a user's persona explicit. The work
`
`3
`
`Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
`
`

`
`shows that by reifying personae, personae can be moveable and user-centric. This will
`
`bring users closer to a universal, personal computing environment.
`
`The next chapter describes a mobile file system. Chapter 3 expands the ideas of
`
`persona and persona management; Chapter 4 treats application checkpointing. Chapter
`
`5 proposes an approach to communication for mobile applications and implementation
`
`details for a prototype. Chapter 6 describes a suite of applications built to analyze the
`
`problems in implementing mobile applications. Chapter 7 outlines other pans of a toolkit
`
`designed to help make applications mobile and is followed by a chapter containing a
`
`description of the resource resolution protocol. Conclusions end the document.
`
`4
`
`Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
`
`

`
`2. FILE SYSTEM SUPPORTING USER MOBILITY
`
`The mobile user needs access to files wherever he or she goes. and seeing a coherent
`
`view of files from everywhere eases the transition between machines. Ideally, all files
`
`should be instantly accessible regardless of a user's location, but storage, connection and
`
`physical constraints make this impossible. Several approaches seek to provide files in a
`
`distributed environment, but offer varying degrees of computer/user autonomy.
`
`2.1 Network File Systems without Local Client Caching
`
`The most basic approach is a coherent view of files within a network via a network
`
`file :~y:~tem. Examples of this are: OS/2 LAN Server/Requester, Netware, and NFS. The
`
`classic way this is provided is by passing all file requests to a central file server. Clients
`
`request file accesses in the form of five functions: open, read, write, flush and close.
`
`However, this type of implementation requires messages to be transferred between the
`
`client and server for each requested servke. This causes both high latency and the
`
`potential for a bottleneck at the server.
`
`2.2 Network File Systems with Local Client Caching
`
`AFS, the Little Work Project, Coda, and Saldanha's Mobile File System extend the
`
`client/server model by adding caching. Servers maintain the primary copy of a file, but
`
`5
`
`Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
`
`

`
`allow clients to check out, and locally store a secondary copy. If the secondary copy of
`
`a file is modified while it is checked-out, an invalidation request is sent to the server, and
`
`the altered copy is eventually propagated back to the server. Not only does caching
`
`improve performance during repeated use, but, in the last three systems, it also gives
`
`clients a measure of mobility. These systems let users use the secondary copy of a file
`
`during periods of disconnection. In addition, the last two approaches have methods of
`
`specifying the importance of particular files, either statically or through usage patterns
`
`which is essential in a space-constrained environment.
`
`Decentralizing the control of files also introduces a new set of reliability problems.
`
`If a client computer is removed from the network after an invalidation request is sent to
`
`the server, but before the secondary copy has been written back, a valid copy of the file
`
`no longer exists in the network. If, due to loss or damage, the computer that contains the
`
`secondary copy is never reconnected to the network, then the file may be permanently
`
`lost. Since mobile computers are more likely to be lost or destroyed than their desktop
`
`counterparts, care must be taken to make sure all altered secondary copies of files are
`
`flushed back to the server before disconnection is permitted.
`
`Another problem caused by mobility is the write-write conflict. When a client
`
`reconnects, any files that were changed by the user during disconnection must be
`
`reintegrated into the file system. However, if another user has also modified one of these
`
`files, then there is a write-write conflict. The mobile copy cannot simply replace the
`
`network copy as this would destroy information. Some current systems, like AFS, ignore
`
`this problem, but Little Work and Coda attempt to resolve it through user intervention.
`
`6
`
`Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
`
`

`
`2.2.1 AFS
`
`AFS I Howard, 19881 presents a global file space to users making file access location(cid:173)
`
`independent. For scalability. the file system is divided into cells of replicable servers,
`
`each of which usually serves a campus or corporate environment. AFS clients identify
`
`themselves to a server in their cell using the Kerberos authentication protocol [Miller,
`
`198711Steiner, 1988], and they are issued a token to use in file system requests.
`
`AFS uses the client-server model with callbacks and invalidations to maintain file
`
`coherency. Clients use the network to notify servers when secondary copies are changed
`
`and servers notify clients when a primary copy is now newer than the cached secondary
`
`copy. AFS, however, has no support for resolving write conflicts. AFS's biggest failing
`
`is its inability to allow users to continue to use cached files in the presence of server non(cid:173)
`
`responsiveness or when a user is disconnected.
`
`2.2.2 The Little Work Project
`
`The Little Work project !Huston, 19931 has extended AFS clients to permit
`
`disconnected operation while remaining backwards compatible with existing AFS servers.
`
`Cliento; are allowed to modify files on mobile systems even when they cannot follow the
`
`normal protocol of notifying the server that modifications have been made.
`
`Instead,
`
`invalidation notifications are queued, and, when the mobile system is reconnected, the
`
`queued requests are sent to the server. If no other client has also updated a modified file,
`
`the modified files are copied back to the AFS server just as they would be from a normal
`
`AFS client. In the case of a write-write conflict, the user is prompted for a resolution
`
`strategy.
`
`7
`
`Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
`
`

`
`2.2.3 Coda
`
`Coda [Satyanarayanan, 19901 has reworked the standard AFS model of a client-server
`
`file system to withstand disconnected operation, but without compatibility with classic
`
`AFS. Coda clients cache recently used files locally, but the normal method of caching
`
`has been augmented with the concept of hoarding preferred files. This keeps important
`
`files locally to enable disconnection without having used the files recently. When
`
`disconnected, Coda also logs file activity to enable later re-integration with the main file
`
`system. The Coda team is currently attempting to include work on application specific
`
`reintegration techniques which will allow the file system to require Jess direct user
`
`intervention in the face of write conflicts.
`
`2.2.4 Mobile File System
`
`Both Little Work and Coda support caching the most recently files so that the files
`
`can be used during disconnection.
`
`In reality, this is not the way many users operate.
`
`Users often work at a desktop machine at the office, then want to take their portable
`
`computer with them when they leave the office. To make sure that the portable computer
`
`has the right files, users explicitly tell the file system to get important files and place
`
`them in the cache. This, however, loses the information about recently used files. The
`
`Mobile File System [Saldanha, 1993) has proposed to extend the caching model to
`
`simultaneously cache files on a user's desktop and portable machines while working on
`
`the desktop machine. In this new model, the server notifies the portable machine when
`
`the desktop machine has checked out a file, and the portable requests a copy of the file
`
`also. When the desktop machine sends an invalidation notification to the server, the
`
`8
`
`Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
`
`

`
`server passes the notification to the ponable. The ponable can then request a new copy
`
`of the file from the desktop machine. Thus, when a user takes the ponable away from
`
`the office, it will already have the files the user was using, and time is saved in
`
`comparison to the old model by eliminating the need to get files from server at the time
`
`the user wishes to leave.
`
`Also, Little Work and Coda only allow a single level of cached files. The system that
`
`checked out the file from the server is the only client that can use that file. and the file
`
`must be checked back in by that client. The proposed Mobile File System enables the
`
`responsibility for a cached file to be chained between several computers, creating a
`
`server-client list. Each computer that checks the file out becomes a new client of a new
`
`logical server and is responsible for either returning it to the logical server or returning
`
`it to the real server and informing the logical server. This file system as designed
`
`currently provides the greatest availability for a mobile user, but there does not yet exist
`
`a working implementation.
`
`2.3 Prospero
`
`Prospero !Neuman, 19931 has attempted to not only provide a global file space, but
`
`also to re-map devices and other resources according to a user's location. Such a scheme
`
`enables the user to see similar devices in different environments without having to know
`
`their device names. The user's preferences for resources is specified in terms of resource
`
`attributes, eg. cost-per-page or cost-per-megabyte. Using these preferences, the Prospero
`
`system automatically maps a resource into the file space according to the type of resource,
`
`9
`
`Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
`
`

`
`eg. /printer, then applications that wish to print simply open the filename /printer
`
`and write the output to it.
`
`This system is the most advanced work towards unifying a user's view of his or her
`
`environment because of its ability to use resource characteristics. It, however, is
`
`unavailable for a wide range of systems.
`
`It is currently still a UNIX-only research
`
`system.
`
`2.4 The Ideal File System
`
`Each of the above systems is a step in the right direction towards providing the ideal
`
`file system, but many characteristics are still missing. File availability is enhanced via
`
`caching, but no system can guarantee that all the files needed during disconnection will
`
`be in the cache. The file system should, therefore, be integrated with communications
`
`links so that missing files can be automatically downloaded from the global file system.
`
`Another imponant characteristic for space constrained systems is automatic compression
`
`and decompression of files. This would enable a greater amount of caching space without
`
`any user intervention. None of the above systems currently supports either.
`
`A final addition to file systems will provide greater flexibility and accountability for
`
`resolving write conflicts. The servers should be modified to track not only the time of
`
`a file's last modification, but also the identity of the user who modified it. In this way.
`
`rules can be developed specifying whose changes have precedence or whom to notify to
`
`resolve conflicts.
`
`10
`
`Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.
`
`

`
`2.5 The Chosen System
`
`Unfortunately, this work cannot be built on top of the ideal file system because no
`
`such system currently exists. Instead, it is based on the most widely available service,
`
`AFS. AFS is supp

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket