Mobile NFS. Fixed NFS. MFS Proxy. Client. Client. Standard NFS Server. Fixed NFS MFS: Proxy. Mobile. Client NFS. Wired Network.

Similar documents
Replication and Caching Strategies in Cadmium

Ch 1. Mobile Adaptive Computing

Mobile Computing Models What is the best way to partition a computation as well as the functionality of a system or application between stationary and

Mobile Computing An Browser. Grace Hai Yan Lo and Thomas Kunz fhylo, October, Abstract

BRANCH:IT FINAL YEAR SEVENTH SEM SUBJECT: MOBILE COMPUTING UNIT-IV: MOBILE DATA MANAGEMENT

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group

CS514: Intermediate Course in Computer Systems

2 Data Reduction Techniques The granularity of reducible information is one of the main criteria for classifying the reduction techniques. While the t

Energy-Efficient Mobile Cache Invalidation

Using Handheld Devices in Synchronous Collaborative Scenarios

The Stateful Proxy Model for Web Services Programming. Table of Contents 1. Introduction Current Programming Model for Web Services...

New article Data Producer. Logical data structure

Disconnected Operations in Mobile Environments

Introduction Restrictions ë25, 7, 10, 2ë: Mobility æ System conæguration is no longer static: the center of activity, the topology, the system load, a

An Approach to Disconnected Operation in an Object-Oriented Database

MSS. MH <Disconnected> MSS MSS. wired link. wireless link. cell boundary

THE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL. Jun Sun, Yasushi Shinjo and Kozo Itano

Programming Views for Mobile Database Clients. University of Pittsburgh, Pittsburgh, PA particular view, the view specication can be seen as a

Interme diate DNS. Local browse r. Authorit ative ... DNS

Application n. Layer TCP/IP

Mobile Client-Server Environments. Ngoc Anh Phan. America Online. conicts with updates performed at other sites.

cell router mobile host

TCP over Wireless Networks Using Multiple. Saad Biaz Miten Mehta Steve West Nitin H. Vaidya. Texas A&M University. College Station, TX , USA

Coping with Conflicts in an Optimistically Replicated File System

The ATL Postmaster: A System for Agent Collaboration and Information Dissemination

City Research Online. Permanent City Research Online URL:

Dynamic Source Routing in ad hoc wireless networks

Handling Mobility in a Wireless ATM Network. Stanford University. Stanford, CA user movement.

Siegfried Loer and Ahmed Serhrouchni. Abstract. SPIN is a tool to simulate and validate Protocols. PROMELA, its

Implementation choices

criterion, thereby reducing communication overhead and improving eciency. Since traditional shared memory environments do not provide such alternative

On Improving the Performance of Cache Invalidation in Mobile Environments

A Strategy to Manage Cache Coherency in a Distributed Mobile Wireless Environment

(Preliminary Version 2 ) Jai-Hoon Kim Nitin H. Vaidya. Department of Computer Science. Texas A&M University. College Station, TX

As related works, OMG's CORBA (Common Object Request Broker Architecture)[2] has been developed for long years. CORBA was intended to realize interope

TCP PERFORMANCE FOR FUTURE IP-BASED WIRELESS NETWORKS

Medium Access Control Protocols. using Directional Antennas in Ad Hoc Networks. (Preliminary Version) Young-Bae Ko and Nitin H.

Disconnected Operation in the Coda File System

Resource and Service Trading in a Heterogeneous Large Distributed

Supporting IP Multicast for Mobile Hosts. Yu Wang Weidong Chen. Southern Methodist University. May 8, 1998.

Understanding the Behavior of the Conflict-Rate Metric in Optimistic Peer Replication

A Suite of Formal Denitions for Consistency Criteria. in Distributed Shared Memories Rennes Cedex (France) 1015 Lausanne (Switzerland)

An Approach to Disconnected Operation in an Object-Oriented Database

Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model

Chapter 18 Distributed Systems and Web Services

Global Transactions Global Transaction Global Manager Transaction Interface Global Global Scheduler Recovery Manager Global Log Server Log

Improving Data Consistency in Mobile Computing Using Isolation-Only Transactions

Design of a Real-Time Trader for Mobile Objects in Open Distributed Environments

DISTRIBUTED SYSTEMS [COMP9243] Lecture 9b: Distributed File Systems INTRODUCTION. Transparency: Flexibility: Slide 1. Slide 3.

MOBILE VIDEO COMMUNICATIONS IN WIRELESS ENVIRONMENTS. Jozsef Vass Shelley Zhuang Jia Yao Xinhua Zhuang. University of Missouri-Columbia

A MOBILE COMMIT PROTOCOL BASED ON TIMEOUTS. Lavanya Sita Tekumalla, BE (CSE) Osmania University College of Engineering. Hyderabad , India.

Middleware for Mobile Computing: Awareness vs. Transparency

Software Architecture for Mobile Computing

Dynamic Broadcast Scheduling in DDBMS

Unit 4. Middleware For Pervasive

Distributed Systems 8L for Part IB. Additional Material (Case Studies) Dr. Steven Hand

An adaptive data distribution system for mobile environments

dierent types of CDRAs. The types are distinguished by how they interact with the DHCP clients and servers. Section 5 covers our implementation of a p

Do! environment. DoT

Web-based Energy-efficient Cache Invalidation in Wireless Mobile Environment

Transaction Processing in Mobile Database Systems

Caching and Replication in Mobile Data Management

Extending the Data Services of Mobile Computers by External Data Lockers

The Boundary-Restricted Coherence Protocol for Rennes Cedex Riverside, CA Telephone: [33] Telephone: [1] (909) 787{7206

Storage System. Distributor. Network. Drive. Drive. Storage System. Controller. Controller. Disk. Disk

Update Propagation Algorithms for Supporting Disconnected Write in Mobile Wireless Systems with Data Broadcasting Capability

Using semantic causality graphs to validate MAS models

Mobile Computing (3C05) Outline. Introduction

Flexible metadata-based partial synchronization for personal mobile devices

Service Access Point. Service Access point. Lieu A. Lieu B. Service Access Point. Lieu C

Monitoring the Usage of the ZEUS Analysis Grid

MobiScape: WWW Browsing under Disconnected and Semi-Connected Operation

Example File Systems Using Replication CS 188 Distributed Systems February 10, 2015

Virtual Multi-homing: On the Feasibility of Combining Overlay Routing with BGP Routing

Framework of an Application-Aware Adaptation Scheme for Disconnected Operations

crossing disconnected Fixed Host Base Station Fixed Host Fixed Host Fixed Host High Speed Wireful Network Base Station Base Station Fixed Host

Effects of Semantic Cache on Mobile Database System

A Dynamic Data/Currency Protocol for Mobile Database Design and Reconfiguration

Using reflective features to support mobile users

Ubiquitous Computing: Data Management

Research on outlier intrusion detection technologybased on data mining

Disconnected Operation in a Mobile Computation System

Roaming with UltraWAPs

The members of the Committee approve the thesis of Baosheng Cai defended on March David B. Whalley Professor Directing Thesis Xin Yuan Commit

Mobile Devices: Server and Management Lesson 07 Mobile File Systems and CODA

Important Lessons. Today's Lecture. Two Views of Distributed Systems

A Human Centered Perspective for Mobile Information Sharing. and Delivery. Antonio Sousa Carlos Baquero Jose Orlando Pereira Rui Oliveira

A Context Based Storage System for Mobile Computing Applications

Language-Based Parallel Program Interaction: The Breezy Approach. Darryl I. Brown Allen D. Malony. Bernd Mohr. University of Oregon

Algorithms Implementing Distributed Shared Memory. Michael Stumm and Songnian Zhou. University of Toronto. Toronto, Canada M5S 1A4

MS Project Proposal. Tuple Board

Availability of Coding Based Replication Schemes. Gagan Agrawal. University of Maryland. College Park, MD 20742

Brouillon d'article pour les Cahiers GUTenberg n?? February 5, xndy A Flexible Indexing System Roger Kehr Institut fur Theoretische Informatik

RDP: A Result Delivery Protocol for Mobile Computing

Extensions to RTP to support Mobile Networking: Brown, Singh 2 within the cell. In our proposed architecture [3], we add a third level to this hierarc

Readout-Nodes. Master-Node S-LINK. Crate Controller VME ROD. Read out data (PipelineBus) VME. PipelineBus Controller PPM VME. To DAQ (S-Link) PPM

Forward declaration of enumerations

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA

ASPECT GENERATOR. Audit Trail WEAVER. Aspect Editor. Weaving Strategies Editor. Model Editor. Mapping. Instructions. Original Model (XMI)

Transport protocols are of practical. login, le transfer, and remote procedure. calls. will operate on and therefore are generally

Transcription:

On Building a File System for Mobile Environments Using Generic Services F. Andre M.T. Segarra IRISA Research Institute IRISA Research Institute Campus de Beaulieu Campus de Beaulieu 35042 Rennes Cedex, FRANCE 35042 Rennes Cedex, FRANCE Abstract The highly dynamic nature of mobile environments (portable computers using wireless networks) makes them dramatically dierent from desktop contexts. Applications should adapt their behavior to current environment conditions to provide good performance to their users. The MoleNE project aims at providing a systematic approach to build such applications. It oers developers a set of generic services that can be customized to each application and adapted to environment conditions depending on applicaitons requirements. Using these services, programmers concentrate on application functionalities and makes the development and maintenance of code simpler. Several experiences are being performed to validate the generic nature of the services. In this paper, we describe one of these experiences, the design and implementation of, a version 2.0 protocol compatible le system that deals with disconnections of mobile clients. allows users to access data regardless of network condition, eliminates the need for mobile clients to manage data consistency, thus reducing battery consumption due to network utilization, and allows a per data block consistency management. 1 Introduction Recent technology advances in wireless networks have provided portable computers with wireless links to access available resources and services in a distributed environment. Although this trend allows users to work connected to the network while on the move - what we term mobile computing in our context -, it also introduces many new technical challenges [4]. The inherent changing characteristics of wireless networks and portable computers render mobile environments much more dynamic than xed ones. Building a mobile application requires skilled programmers as it needs to adapt to current execution conditions to achieve good performance. The MoleNE system provides programmers with a set of generic services that can be customized to different applications and which behavior adapts to execution conditions depending on application requirements. These services include data caching, consistency, and functionality relocation. Developers of mobile applications may use MoleNE services to manage adaptation to the environment so that they can concentrate on the implementation of application functionalities. In order to identify and validate the generic nature of MoleNE services, two experiences are being performed. The rst one concerns transactional applications on the Internet [1]. The second one concerns le system applications and is the subject of this paper. Traditional distributed le systems are not suitable for mobile applications as they make the assumption that clients 1 and servers communicate using a fast and reliable link. However, wireless networks oer poor performance compared to wired ones and, even worse, while disconnected, clients cannot access data. This paper presents the design and implementation of (MoleNE File System), a version 2.0 protocol compatible le system that allows mobile users to work on objects despite periods of disconnection and also reduces the network trac issued by mobile clients. A process referred as proxy is executed on the xed network so that the mobile computer is notied about modications on objects by other users. On the other hand, requests issued by clients are executed locally as far as the concerned data are available on the mobile device. MoleNE services are responsible for managing requests to be sent through the network. While the mobile computer is connected, theses requests are sent to the proxy. Oth- 1 We refer as client the piece of software that communicates with a server to oer a service. We call user, the physical human that uses the mobile computer to carry out some work.

erwise, and depending on their type, they are stored in a log until the network becomes available again. A prototype has been implemented that supports user operation during disconnections, and a per data block conict detection and resolution so that all the updated data are preserved. Moreover, network trac issued by mobile clients is reduced thus reducing battery consumption. The remainder of the paper is organized as follows: next section overviews the protocol and introduces the reader to the design of. Section 3 and 4 describe in detail components of the mobile client and the proxy respectively. Section 5 compares our system with other work in the mobile computing and distributed le systems communities. Finally, conclusion and future work are given in section 6. 2 Overview and Design From main features and disadvantages when used in a mobile environment, we dene the main goals that guided design. 2.1 Overview is a distributed le system that allows users to access les stored in remote servers transparently. s access les contents by blocks of a xed wellknown size and the accessed blocks to gain from data locality thus reducing network trac. Due to the stateless nature of servers, d data consistency is ensured by clients. When accessed, a object 2 is d by the client and a validity timeout is associated with it letting the client directly access the d object. Upon timeout expiration, its access is preceded by a request to the server asking for the attributes of the object 3. If the copy on the server is more recent than that on the mobile device, the d blocks are invalidated. These verication requests result in unnecessary network trac if, as is the case in most UNIX environments, data sharing is infrequent [6]. As sending data through the network is a battery consuming operation in mobile environments, requests issued by clients should be minimized. On the other hand, disconnected clients are not allowed to access objects as consistency cannot be veried. Finally, as permanent storage is not used to 2 We name object, either a le or a directory. 3 Object attributes refers to the meta information about the object and this includes the last modication time (mtime) on the server. objects, powering o and on the mobile computer requires the to be entirely reloaded. 2.2 Design Overview There are three goals that guided the design of : Mobile clients should be able to use standard servers in order to avoid changes on existing infrastructures. Data verication trac may imply lots of requests issued by mobile clients in order to validate d data. It consumes the precious resource of battery power and, thus it needs to be minimized. Due to the highly variable nature of wireless links, data block size used to access objects should be adapted to avoid applications performance degradation and to better utilize the memory of mobile computers: small block sizes should be used on poor quality links while large ones when the quality improves. Fixed Fixed Standard Wired Network Mobile Mobile Figure 1: Interaction among servers, proxies, and clients In order to achieve these goals, a proxy is executed on the wired network, acting as an interface between the mobile computer and the standard server. This is shown in Figure 1. In this gure, Fixed modules refer to standard clients that are executed in a wired-connected station and Mobile modules are their counterpart on mobile computers with added functionalities to implement the previously mentioned goals. The standard server is used by Fixed modules and proxies ( modules on Figure 1). These proxies work as standard clients for servers as well as servers for mobile computers. trac between a Mobile module and the server is managed by the, and thus it is able to trace mobile computer contents. Keeping this information allows the proxy to

perform validity checks of the d data by sending periodic requests to the server. The frequency of verications corresponds to the validity timeout for objects so that the same consistency guarantees as the standard protocol are ensured. Verications may be reduced or even avoided when the mobile computer is disconnected. If d data are no longer valid, the proxy sends an invalidation request to the mobile computer. Therefore, Mobile modules are no longer responsible for detecting conicts with data on the server. Network trac issued by mobile clients is thus reduced if, as is the case in most UNIX environments, data sharing is infrequent. Finally, the third goal of the design is achieved by allowing data transfers between our Mobile module and the proxy being performed in a Standard module-independent block size. Therefore, this size may be adapted to the current characteristics of the utilized network. MolèNE Generic Level Specific Level Generic System Services MolèNE - GI Specific Module Standard To Figure 2: Mobile Components 3 Mobile Module The Mobile module in Figure 1 runs in the mobile computer and enables mobile users to access objects. It is composed of a Standard module, a Specic module, and MoleNE services as depicted in Figure 2. Modules are logically subdivided into two levels and those in dierent levels communicate through the MoleNE-GI (MoleNE Generic Interface). The MoleNE Generic Level contains modules oering MoleNE services that may be used by several applications to cope with mobile computing related problems. Currently these services include a Manager Service, and a Mobile Communications Service (MCS). The former manages location of proxies executed on the xed network on behalf of mobile computers. The latter takes into account network conditions in order to send requests issued by clients. 3.1 Components Description The Specic Level contains modules that know the semantic of the distributed le system and uses MoleNE services to deal with disconnections from the network. MoleNE-GI is a set of library functions that may be used by applications to exploit MoleNE services. Existing functions in MoleNE-GI include the conguration of services required by applications, and sending and receiving information coming from the services. At the beginning of its execution, the Specic module congures the MCS to use its log facility: network trac issued while disconnected is stored in the log and sent through the network later. Requests submitted to the MCS are encapsulated in a generic message indicating, among other information, if the request is logable or not. Non logable requests report an error to the Standard module if the network is not available. Logable requests, on the other hand, are stored in the log while disconnection and a well-performed operation response is issued to Standard module, thus letting the user continue his work despite disconnections. The Specic module plays two roles for the Standard in the mobile computer. The rst one is that of a manager. In order to allow a mobile client to access objects while being disconnected and to reduce network trac while connected, the Specic module s information into the local disk as it arrives from the network. This information concerns not only objects contents but also their attributes. The second role is that of a " server". The Standard module issues requests in response to user operations on objects. These requests are captured by the Specic module that serves them if required information is locally available or submits them to the MoleNE-GI in order to obtain it, thus, acting as a server for the Standard module. 3.2 Interaction Among Components In, the send facility of the MoleNE-GI is used by the Specic Module to send two kinds of requests to the MCS: Requests generated by clients because of mobile user operations on objects.

Requests generated by the Specic Module itself when some information has been deleted from due to replacement algorithm. 3.2.1 Standard Module Requests When the mobile user issues an operation on a object, it is received by the Standard module which in turn creates a request intended to be sent to the corresponding server. The request is captured by the Specic module that performs dierent actions depending on the type of the request. Requests implying the search of information from the server (read requests) are not submitted to the network if required information is locally available. A response is built and directly sent to the Standard module. Otherwise, they are labeled as non logable requests and submitted to the proxy through the MCS. If network is not available, the Specic module reports an error to the Standard module as mentioned in the previous paragraph. Requests that are intended to modify information on the server (write requests) are submitted to the proxy through the MCS. They are tagged as logable requests. These operations are executed locally for available data and integrated into the server upon reconnection. 3.2.2 Specic Module Requests The second kind of requests are those generated by the Specic module itself while managing contents, and, concretely, when the replacement algorithm is executed. In this case, contents have changed and the should be advised to avoid unnecessary information checks. Before submitting these requests to the MCS, they are stamped as logable requests. If the mobile computer is disconnected, the does not verify validity of the data d on the mobile computer and thus, it is unimportant that its contents is not harmonized with that of the. However, when the mobile computer reconnects, logable requests are sent to the for reintegration which will involve harmonization of s. 4 The runs in a xed station and acts as a stateful server for the mobile computer while being able to operate with standard servers. In order to achieve this, it stores on disk information (object data and attributes) that is currently present in the and veries its validity as previously mentioned. Conflict Detector Mobile Figure 3: Components It is logically divided into two modules as depicted in Figure 3. The is responsible for serving requests coming from the mobile computer and managing the contents depending on known contents of the. The Conict Detector interacts with the server to validate data currently stored on the by performing periodic checks. A conict between data d on the mobile computer and the server arises when a third part modies the copy on the server. Data concerning the modied object become stale on the mobile computer and it is the role of the to detect and report it to the mobile computer. In order to achieve this, the s not only data accessed by the mobile computer but also their attributes so that they always correspond to the attributes the object had on the server the last time the mobile computer asked for an operation on it. The Conict Detector works on the d object attributes to detect conicts. Figure 4 shows how conicts are detected for a object O1. At t0, the mobile computer performs an operation on the object and the s attributes on the. At the next verication period (t1), O1 attributes are requested by the Conict Detector. Nobody has modied the copy on the server, thus no conict is detected. Between t1 and t3, a third part modied O1 resulting on an increased mtime for it on the server. When at t3 the Conict Detector checks for O1 attributes, it will realize that they are older than those on the server and will assume this as a conict. Operations issued by a standard client may involve either object attributes only or object data-andattributes. Therefore, there are two kinds of conicts: Attributes only conicts: object attributes differ between the mobile computer and the

t disk on the mobile computer remain available to the user, thus reducing transfers through the wireless link. t0 t1 t2 t3 O1 - mtime1 O1 - mtime1 O1 - mtime1 Valid O1? No conflict mtime1 < mtime2 Conflict O1 - mtime1 Valid O1? O1 - mtime2 O1 - mtime2 Figure 4: Conict Detection Mechanism server but object contents remain unchanged. It may appear when access rights of an object are modied on the server by another client. Data-and-attributes conicts: attributes and object contents on the mobile computer are dierent from those on the server. This appears when there is a modication of an object contents on the server by another client (it also implies automatic modication of its attributes). Data-and-attributes conicts are reported as blocks invalidation requests. objects are accessed by standard clients in a block fashion, i.e. they ask for the access to an amount of blocks of a well-known size. Therefore, mobile clients need not to store all the contents of an object in their but only a part of it. A data-and-attributes conict only appears if a third part modies on the server one of the blocks that are currently stored in the. As the contains blocks stored in the mobile computer, it is easy for the Conict Detector to discover if the detected conict should be reported to the mobile computer or not. Continuing with the previously example of object O1, Figure 5 shows the case in which a conict does not cause invalidations on the mobile computer. Let us assume that the mobile computer has blocks 1 and 2 stored in the and that mtime1 changed to mtime2 when block 0 of O1 was modied. Once the Conict Detector discovers that the mtime attribute has changed on the server, it demands contents of blocks 1 and 2. If there is no dierence between them and the copy on the (as is the case in the example), no invalidation should be sent to the mobile computer. If the modied block were block 1 or 2 or both, an invalidation message concerning the block(s) would be reported to the mobile computer. Other blocks of the object d t t2 t3 O1 Block 1 Block 2 O1 Block 1 Block 2 Valid O1? O1 - mtime2 mtime1 < mtime2 Conflict Access blocks 1,2 modified Λ present = Ο No invalidation Blocks 1, 2 disk O1 Block 0 Block 1 Block 2 Block 3 modified Figure 5: Invalidation Mechanism 5 Related Work A lot of attention is being recently paid on the mobile computing paradigm in general, and on mobile distributed le systems in particular. Some mobile approaches aim at providing a particular functionality such as automatic hoarding for le systems [7] or data consistency for databases [2]. Other systems provide developers with basic mechanisms to build adaptive mobile applications by providing adaptation mechanisms such as the Relocatable Dynamic Objects of Rover [5] or work conditions discovery mechanisms [10]. Developers use these mechanisms to implement their own adaptation strategy. A more advanced solution would allow applications to be aware of their environment and would propose ready-to-use adaptation strategies. This approache is provided by Odyssey [9]. A set of ready-to-use policies to allow applications to access information depending on resource availability are provided to developers. However, Odyssey uses the le system interface and extends it to allow applications to use its services which implies a limited framework to exploit existing policies and to create new ones. MoleNE also follows this approach. However, it is designed so as to allow easy modication of existing services and addition of new ones. Its exibility and extensibility are important features in a mobile environment. Work on distributed le systems for mobile environments was pioneered by Coda [6]. Coda modied the

AFS distributed le system to allow mobile clients to access les in spite of being disconnections and deals with the partially connected mode of operation. However, although stays the most frequently used distributed le system, few attention has been paid to mobile users. Moreover, existing approaches ([8], [3]) propose a middleware that acts as a standard client when connected to the network and allows users to access les residing on the portable memory during disconnection. Our le system diers from both systems in three main features: 1) the use of generic services to manage disconnections avoids their explicit consideration into the le management code which simplies application development, 2) the reduction of trac issued by mobile clients, and 3) the use of a bandwidth-adapted data block size. 6 Summary In this paper we have presented the design and implementation of the le system that takes into account the dynamic nature and poor performance of wireless networks in its connected operation and allows users to work while disconnected and all this without modication of existing infrastructures. uses generic services to deal with the periods of disconnection making the le management related code independent of dierent execution environments. A rst prototype of has been already developed on top of the Linux operating system. When connected, requests from the mobile device are executed by the proxy and invalidations coming from it are also taken into account in the mobile computer. When disconnected, the user is able to perform his work depending on the availability of the required data in the mobile computer. has allowed us to identify several generic services that may be used by mobile applications. Currently these services are customized and accessed by applications using several library functions. Customizing generic functions can easily be done by using the inheritance and polymorphism mechanisms of object oriented languages. Therefore, we are working on developing an object-oriented MoleNE system that profits from these features to oer its services. A mobile transactional application for the internet has been yet developed in an ad-hoc manner. It will be adapted to gain from MoleNE services in order to validate our ideas. References [1] F. Andre and E. Saint Pol, A Middleware for Transactional Internet Applications on Mobile Networks. In Proc. of the 1998 PDPTA, Las Vegas Hilton, Las Vegas, USA, 1998. [2] A. Demers, K. Petersen, M. Spreitzer, D. Terry, M. Theimer, and B. Welch, The Bayou Architecture: Support for Data Sharing among Mobile Users, Workshop on Mobile Computing Systems and Applications, Sta. Cruz, CA, USA, 1994. [3] M.E. Fiuczynski, and D. Grove, A Programming Methodology for Disconnected Operation, http://www.cs.washington.edu/research/ /mobicomp/postscript/grovemef.ps, 1994. [4] T. Imielinski and H.F. Korth, Mobile Computing, Kluwer Academic Publishers, 1996. [5] A.D. Joseph, J.A. Tauber, and M.F. Kaashoek, Mobile Computing with the Rover Toolkit, IEEE Transactions on Computers, Vol. 46, Num. 3, pp. 337-352, March 1997. [6] J.J. Kistler and M. Satyanarayanan, Disconnected Operation in the Coda File System, ACM Transactions on Computer Systems, Vol. 10, Num. 1, pp. 3-25, February 1992. [7] G.H. Kuenning and G.J. Popek, Automated Hoarding for Mobile Computers, In Proc. of the 16th SOSP, St. Malo, France, 1997. [8] J.C.S. Lui, O.K.Y. So, and T.S. Tam, /M: An Open Platform Mobile File System, In Proc. of the 18th ICDCS, Amsterdam, The Netherlands, 1998. [9] B.D. Noble, M. Satyanarayanan, D. Narayanan, J.E. Tilton, J. Flinn, and K.R. Walker, Agile Application-Aware Adaptation for Mobility, In Proc. of the 16th SOSP, St. Malo, France, 1997. [10] G. Welling and B.R. Badrinath, An Architecture for Exporting Environment Awareness to Mobile Computing Applications, IEEE Transactions on Software Engineering, Vol. 24, Num. 5, 1998.