throbber
DATA MANAGEMENT
`FOR
`MOBILE COMPUTING
`
`by
`Evaggelia Pitoura
`George Samaras
`
`Kluwer Academic Publishers
`Boston/Dordrecht/London
`
`Starbucks Corp. Exhibit 1032
`
`

`
`I
`
`-
`
`" ' '1
`
`Universal access and management of information has been one of the driving
`forces in the evolution of computer technology. Central computing gave the
`ability to perform large and complex computations and advanced information
`manipulation. Advances in networking connected computers together and led
`to distributed computing. Web technology and the Internet went even further
`to provide hyper-linked information access and global computing. However,
`restricting access stations to physical location limits the boundary of the
`vision. The real global network can be achieved only via the ability to
`compute and access information from anywhere and anytime. This is the
`fundamental wish that motivates mobile computing.
`
`This evolution is the cumulative result of both hardware and software advances
`at various levels motivated by tangible application needs. Infrastructure research
`on communications and networking is essential for realizing wireless systems.
`Equally important is the design and implementation of data management
`applications for these systems, a task directly affected by the characteristics of
`the wireless medium and the resulting mobility of data resources and computa(cid:173)
`tion. Although being a relatively new area, mobile data management has
`provoked a proliferation of research efforts motivated by both a great market
`potential and by many challenging research problems.
`
`The focus of DATA MANAGEMENT FOR MOBILE COMPUTING is
`on the impact of mobile computing on data management beyond the net(cid:173)
`working level. The purpose is to provide a thorough and cohesive overview
`of recent advances in wireless and mobile data management. The book is
`written with a critical attitude. This volume probes the new issues introduced
`by wireless and mobile access to data and what are both their conceptual and
`practical consequences.
`
`DATA MANAGEMENT FOR MOBILE COMPUTING provides a single
`source for researchers and practitioners who want to keep current on the latest
`innovations in the field. It can also serve as a textbook for an advanced course
`on mobile computing or as a companion text for a variety of courses including
`courses on distributed systems, database management, transaction management,
`operating or file systems, information retrieval or dissemination, and web
`computing.
`
`ISBN 0-7923-8053-3
`
`ADBSIO
`0-7923-8053-3
`
`9 780792 380535
`
`Starbucks Corp. Exhibit 1032
`
`

`
`DATA MANAGEMENT FOR
`MOBILE COMPUTING
`
`by
`
`Evaggelia Pitoura
`University of Ioannina
`I oannina, Greece
`
`and
`
`George Samaras
`University of Cyprus
`Nicosia, Cyprus
`
`KLUWER ACADEMIC PUBLISHERS
`Boston I Dordrecht I London
`
`Starbucks Corp. Exhibit 1032
`
`

`
`Distributors for North America:
`Kluwer Academic Publishers
`101 Philip Drive
`Assinippi Park
`Norwell, Massachusetts 02061 USA
`
`Distributors for all other countries:
`Kluwer Academic Publishers Group
`Distribution Centre
`Post Office Box 322
`3300 AH Dordrecht, THE NETHERLANDS
`
`Library of Congress Cataloging-in-Publication Data
`
`A C.I.P. Catalogue record for this book is available
`from the Library of Congress.
`
`The publisher offers discounts on this book when ordered in bulk quantities. For
`more information contact: Sales Department, Kluwer Academic Publishers,
`101 Philip Drive, Assinippi Park, Norwell, MA 02061
`
`Copyright © 1998 by Kluwer Academic Publishers
`
`All rights reserved. No part of this publication may be reproduced, stored in a
`retrieval system or transmitted in any form or by any means, mechanical, photo(cid:173)
`copying, recording, or otherwise, without the prior written permission of the
`publisher, Kluwer Academic Publishers, 101 Philip Drive, Assinippi Park, Norwell,
`Massachusetts 02061
`
`Printed on acid-free paper.
`
`Printed in the United States of America
`
`Starbucks Corp. Exhibit 1032
`
`

`
`SOFTWARE ARCHITECTURES
`
`2
`
`The mobile computing environment is constrained in many ways. Mobile ele(cid:173)
`ments themselves are resource-poor and unreliable. Their network connectivity
`is often achieved through low-bandwidth wireless links. Furthermore, connec(cid:173)
`tivity is frequently lost for variant periods of time. The difficulties raised by
`these constraints are compounded by mobility that induces variability in the
`availability of both communication and computational resources. These severe
`restrictions have a great impact on the design and structure of mobile com(cid:173)
`puting applications and motivate the development of new computing models.
`These mobile computing models must provide efficient access to both existing
`and new applications which is a key requirement for the wide acceptance of
`mobile computing.
`
`An important design consideration is the type of functionality assigned to mo(cid:173)
`bile hosts. Mobile units are still characterized as unreliable and prone to hard
`failures, i.e., theft, loss or accidental damage. Mobile elements are also resource(cid:173)
`poor relative to static hosts. For these reasons, there are approaches that treat
`the mobile unit as a dumb terminal running just a user-interface. The InfoPad
`[123] and ParcTab [154] projects employ such a dump terminal approach and
`off-load all functionality from the mobile unit to the fixed network. On the
`other hand, slow and unreliable networks argue for placing more functionality
`at the mobile hosts so that they are less dependent on remote servers. Al(cid:173)
`though, there is no consensus yet on the specific role the mobile host must
`play in distributed computation, the above contradictory considerations tend
`to favor models that provide for a flexible adjustment of the functionality as(cid:173)
`signed to mobile clients. For instance, in anticipation of a disconnection, a
`disconnected mobile host may be assigned additional functionality to operate
`autonomously.
`
`15
`
`Starbucks Corp. Exhibit 1032
`
`

`
`16
`
`CHAPTER 2
`
`Besides the partition of data and computation of mobile applications between
`mobile and static elements, two important considerations in designing software
`systems for mobile computing are: what is an appropriate model for mobile
`computing systems, and whether mobility should be made transparent to appli(cid:173)
`cations. We address these issues next. The chapter concludes with an example
`that clarifies the above considerations and at the same t ime introduces issues
`covered in the following chapter.
`
`2.1 M OBILE COMPUTING MODELS
`
`Devising appropriate models for structuring applications that involve wireless
`elements is an issue central to developing software for mobile computing. In this
`section, we elaborate on such models, their strengths and weaknesses. First,
`we consider extensions to the popular client/server model, then the use of peer
`to peer models, and finally the employment of mobile agents.
`
`2.1.1 Mobile Client/Server Models
`
`With client/server computing in its simplest form, an application component
`executing in one computing system, called the client, requests a service from
`an application component executing in another computing system, called the
`server.
`In a wireless setting, the mobile host acts as the client requesting
`services from servers located at the fixed network (Figure 2.l(a)) . In some
`cases, functionality and data are distributed across multiple servers at different
`fixed hosts that may have to communicate with each other to satisfy the client's
`request. In many cases, a server is replicated at different sites of the fixed
`network to increase availability in cases of network or site failures. Server
`replication is also employed for performance and scalability. Widely scattered
`replicated servers are also used for efficiently accommodating highly mobile
`clients.
`
`There is no clear division of functionality between the mobile client and the
`server at the fixed network. [150] talks about an extended client/server model
`where the roles of clients and servers are temporarily blurred. The most evident
`such case is during disconnections, when a disconnected client has to emulate
`the functionality of a server to continue operating.
`
`Starbucks Corp. Exhibit 1032
`
`

`
`--
`
`Software Architectures
`
`17
`
`An important parameter of client/server architectures is the type of commu(cid:173)
`nication mechanism used to exchange information between the client and the
`server. One possibility is the direct exchange of messages between the client
`and the server. This approach is not adequate for slow and unreliable networks
`such as in wireless computing. In such environments, a less direct mechanism,
`in which messages are queued at the two ends is more appropriate. This leads
`to various levels of indirection. A second possibility is invoking a remote proce(cid:173)
`dure call (RPC) mechanism. In this paradigm, a client calls a procedure which
`is executed at a remote server.
`
`However, synchronous RPCs are inadequate since the client is blocked in cases
`of disconnections. Moreover, traditional RPCs leave small chance of reducing
`communication cost. To address these problems, there have been various pro(cid:173)
`posals for an asynchronous RPC [94, 26, 20]. In asynchronous queued RPC
`[94], when an application issues an RPC, the RPC is stored in a local stable
`log and control is immediately returned to the application. When the mobile
`client is connected, the log is drained in the background and any queued RPCs
`is forwarded to the server. Queueing RPCs leaves space for performing various
`optimizations on the log. For instance, the Rover toolkit [94] reorders logged
`requests based on consistency requirements and application-specified operation
`priorities. Delivering any replies from the server to the client at the mobile
`host may require multiple retries [94, 26]. Specifically, if a mobile host is dis(cid:173)
`connected between issuing the request and receiving the reply, the server may
`periodically attempt to contact the mobile host and deliver the reply. This
`extended RPC mechanism enables applications to use different communica(cid:173)
`tion channels for the requests and responses and to close channels during the
`intervening period [94].
`
`Extensions to the traditional client/server model, such as queueing RPC, are
`necessary to sustain disconnected operation and weak connectivity. Further
`optimizations, such as filtering or compression, are also important. For these
`reasons the traditional client/server model must be extended to provide com(cid:173)
`ponents responsible for implementing such appropriate optimizations and thus
`imposing minimum changes in clients and servers. In addition, for light-weight
`and unreliable clients, it is critical to be able to move part of their operation to
`the fixed network. Such considerations led to the extensions of the client/server
`model presented in the following sections.
`
`Starbucks Corp. Exhibit 1032
`
`

`
`18
`
`CHAPTER 2
`
`Wlrdeu Link
`
`; - ----
`
`Fixed ~e rwork
`
`(a)
`
`'l Application Client 1----------------------- -; -I Agent
`
`MoblleHos1
`
`' (b)
`
`(c)
`
`Figure 2.1 Client-Server based Models: (a) Simple Client/ Server Model , (b)
`Client/Agent/Server Model, (c) Client/ Intercept/ Server Model.
`
`The Client/ Agent/Server Model
`
`An emerging computational model is a three-tier or client/agent/server (c/a/s)
`model [22, 55, 131, 183, 166], using messaging and queuing infrastructure for
`communications from the mobile client to the agent and from the agent to
`the server (Figure 2.1(b)). In its most generic form, an agent or proxy is just
`a surrogate of the client on the fixed network. This architecture somewhat
`alleviates the impact of the limited bandwidth and the poor reliability of the
`wireless link by continuously maintaining the client's presence on the fixed
`network via the agent. Agents split the interaction between mobile clients and
`fixed servers in two parts, one between the client and the agent, and one between
`the agent and the server. Different protocols can be used for each part of the
`interaction and each part of the interaction may be executed independently of
`the other.
`
`Minimum functionality at the agent includes support for messaging and queuing
`for communication between the mobile client and the agent. The agent can also
`assume a more active role [131 , 166], in which case, when application-specific
`predefined events occur, it notifies the client appropriately. Furthermore, to
`limit computations on the mobile unit, the agent might be responsible for
`starting/stopping specific functions at the mobile unit or for executing client
`specific services. The c/a/s model is most appropriate for light-weight clients
`of limited computational power and resources. It moves responsibilities from
`
`Starbucks Corp. Exhibit 1032
`
`

`
`Software Architectures
`
`19
`
`the client to the agent. For example, a complex client request can be managed
`by the agent with only the final result transmitted to the client. Located on
`the fixed network, the agent has access to high bandwidth links and large com(cid:173)
`putational resources, that it can use to benefit its client. Similarly, performing
`caching at the agent can minimize long round trips on the network and thus
`reduce application response time. To further enhance the client's benefit, the
`agent can be used to off-load significant computational burden from the server.
`For example, data compression can be performed by the agent instead of the
`server. In general, how the agent's resources are used, that is the functionality
`of the agent, greatly depends on the specific application the client needs to
`support.
`
`To deal with disconnections, a mobile client can submit its requests to the
`agent and wait to retrieve the results when connection is re-establish. In the
`meantime, any requests to the disconnected client can be queued at the agent
`to be transferred upon reconnection. The agent can be used in a similar way
`to preserve battery life. The client submits its requests to the agent, enters the
`doze mode, and waits the agent to wake it up when the response becomes avail(cid:173)
`able. Weak connectivity can be effectively handled by the agent in a variety of
`ways. The agent can employ a number of optimization techniques to minimize
`the size of data to be transmitted to the client depending on the type of data
`and on the specific application. The agent can manipulate the data prior to
`their transmissions to the client [183, 55, 166], by changing their transmission
`order so that the most important information is transfered first, by performing
`data specific lossy compression that tailors content to the specific constraints
`of the client, or by hatching together multiple replies.
`
`Agents are used in a variety of forms and roles in this particular architecture.
`At one extreme, an agent acts as the complete surrogate of a mobile host on the
`fixed network. In this case, any communication to and from the mobile host
`goes through the mobile host's agent. The surrogate role of an agent can be
`generalized by having an agent acting as a surrogate of multiple mobile hosts
`[55]. At the other extreme, the agent is attached to a specific service or appli(cid:173)
`cation, e.g., web browsing [69] or database access [131]. Any client's request
`and server's reply associated with this application is communicated through
`the service-specific agent. In this scenario, a mobile host must be associated
`with as many agents as the services it needs access to. This second case can be
`symmetrically generalized by having a service-specific agent servicing multiple
`clients [69].
`
`The situation becomes more involved when a service is associated with multiple
`agents (131] and this group of service-specific agents serves multiple clients. In
`
`Starbucks Corp. Exhibit 1032
`
`

`
`20
`
`CHAPTER 2
`
`this case, any client's request associated with the service can be serviced by any
`available agent in the group. All this flexibility, however, entails the need of a
`more complex management function. A service-specific meta-agent is required
`to coordinate clients requests and the service-specific group of agents. In (131),
`the role of the meta-agent is played by an agent management facility, called
`Message Gateway.
`
`The exact position of the agent at the fixed network depends on its role. Placing
`the agent at the fringe of the fixed network, i.e., at the base station, has some
`advantages especially when the agent acts as the surrogate of mobile hosts under
`its coverage (183, 22): it is easier to gather informations for the wireless link
`characteristics; a special link level protocol can be used between the mobile
`host and the agent; and personalized information about the mobile hosts is
`available locally. On the other hand, the agent may need to move along with
`its mobile host, or the current base station may not be trustworthy. In the
`case of service-specific agents, it makes sense to place them either closer to the
`majority of their clients or closer to the server.
`
`The introduction of agents affects routing (see also Chapter 5) in various ways
`depending on the exact role the agent plays. If the agent totally represents one
`or multiple mobile hosts, then all traffic involving the mobile hosts flows through
`the agent. Thus, special treatment is required to direct all such communication
`through the agent. To this end, [182) augments the Columbia Mobile IP pro(cid:173)
`tocol [82) to allow a mobile host to choose one certain host to be its agent and
`guarantee that all traffic will pass through it. If the agent represents services
`[69, 131), then only communication related to the service passes through the
`agent.
`
`While the client/agent/server model offers a number of advantages, it fails to
`sustain the current computation at the mobile client during periods of discon(cid:173)
`nection. At the event of a disconnection, the mobile client cannot continue to
`operate uninterrupted. Furthermore, although the server notices no changes,
`the model still requires changes to the client code for the development of the
`client/agent interaction rendering the execution and maintenance of legacy ap(cid:173)
`plications problematic. Finally, the agent can directly optimize only data trans(cid:173)
`mission over the wireless link from the fixed network to the mobile client and
`not vice versa.
`
`Starbucks Corp. Exhibit 1032
`
`

`
`-
`
`Software Architectures
`
`21
`
`The Client/Intercept/Server Model
`
`To address the shortcomings of the c/a/s model, [148, 69) propose the deploy(cid:173)
`ment of a client-side agent that will run at the end-user mobile device along
`with the agent of the c/a/s model that runs within the wireline network (Figure
`2.1(c)). The client-side agent intercepts client's request and together with the
`server-side agent performs optimizations to reduce data transmission over the
`wireless link, improve data availability and sustain uninterrupted the mobile
`computation. From the point of view of the client, the client-side agent ap(cid:173)
`pears as the local server proxy that is co-resident with the client. Similarly,
`the server-side agent appears as the local client proxy that resides on the fixed
`network, most likely, but not necessarily, co-resident with the server represent(cid:173)
`ing the client. This model can be viewed as the adaptation of the client/server
`model for wireless computing with the pair of agents responsible for minimizing
`the effect of the wireless link. Since the pair of agents is virtually inserted in
`the data path between the client and the server, the model is named in [148, 69)
`for short client/intercept/server instead of client/agent/agent/server model.
`
`The intercept model is transparent to both the client and the server. Therefore,
`the agent pair can be employed with any client application. The communication
`protocol between the two agents can facilitate highly effective data reduction
`and protocol optimization without limiting the functionality or interoperabil(cid:173)
`ity of the client. The cooperation of the two agents allows for more efficient
`optimizations of the wireless link for the benefit of different applications. In
`addition, application specific optimizations can be more effectively realized by
`the agent pair.
`
`The model offers flexibility in handling disconnections. For instance, a local
`cache may be maintained at the client-side agent. The cache can be used to sat(cid:173)
`isfy the client's requirements for data during disconnections. Cache misses may
`be queued by the client-side agent to be served upon reconnection. Similarly,
`requests to the client can be queued at the server-side agent and transfered to
`the client upon reconnection. Weak connectivity can also be handled in a vari(cid:173)
`ety of ways. For example, relocating computation from the client-side agent to
`the server-side agent or vice versa can minimize the effect of weak connectiv(cid:173)
`ity. Background prefetching to the client-side agent can reduce communication
`during weak connectivity.
`
`The intercept model is more appropriate for heavy-weight clients with enough
`computational power and secondary storage. The main weakness of the model
`is that every application requires development work both at the server and at
`
`Starbucks Corp. Exhibit 1032
`
`

`
`22
`
`CHAPTER 2
`
`the client site. However, there is no need to develop a pair of agents for every
`instance of an application. Instead, since the functionality and optimizations
`performed by the agent pair is generic enough, it is only required to develop
`a different pair of agents per application type e.g., file, database, or web ap(cid:173)
`plication. For example, prefetching documents at the cache of the client-side
`agent follows the same principles independently of the specific type of web(cid:173)
`application.
`
`Classifying the roles of the two agents results in a taxonomy similar to that
`provided in the previous section for the agent role of the client/agent/server
`model. For example, the server-side agent can be a surrogate of the client or
`be attached to a specific service.
`
`The intercept model provides for a clear distinction and splitting of responsi(cid:173)
`bilities between the client and server agents. The idea of employing proxy pairs
`has been gaining lately some attention (183, 55]. An intercept approach is em(cid:173)
`ployed by WebExpress [69], an IBM system for optimizing web browsing in a
`wireless environment. In this system the client-side agent is called client-side
`intercept ( CSI), while the server-side agent is called server-site intercept (SSI).
`
`2.1.2 Peer-to-Peer Models
`
`In a peer-to-peer distributed architecture, there is no distinction between clients
`and servers. Ideally, each site has the full functionality of both a client and a
`server. Adapting such models in mobile computing, makes mobile hosts equal
`partners in distributed computations and thus is only appropriate for heavy(cid:173)
`weight clients. Disconnections have the additional negative effect of making
`the server unavailable to clients requesting its services. Thus, to deal with
`disconnections and weak connectivity a server-side intercept agent may need to
`be placed on the mobile host as well. In this case, agents may possess special
`features to take into account the fact that the server is running on a mobile
`host. For instance, a server at the mobile host cannot be continuously active
`because, to conserve power, the mobile host may be switched-off or operating
`in the doze mode. A mechanism to automatically start applications on demand
`[20] is useful in such cases.
`
`There are certain applications for which the peer-to-peer model is adequate
`[144]. Consider the case of two partners performing cooperative work on some
`data using their portable computers. In a client/server model, they cannot
`trade their updates directly. Instead, each client has to connect with the server
`
`Starbucks Corp. Exhibit 1032
`
`

`
`r
`
`Software Architectures
`
`23
`
`machine to be informed of each other's actions. This may incur excessive
`communication costs, when the server is located far away from the clients.
`Even worst, in cases of physical disconnection of the clients from the server,
`there is no way that the two clients can interact with each other, even when a
`communication path connecting them is available.
`
`2.1.3 Mobile Agent Models
`
`Mobile agents are processes dispatched from a source computer to accomplish
`a specified task [43, 176]. Each mobile agent is a computation along with its
`own data and execution state. In this way, the mobile agent paradigm extends
`the RPC communication mechanism according to which a message sent by a
`client is just a procedure call. After its submission, the mobile agent proceeds
`autonomously and independently of the sending client. When the agent reaches
`a server, it is delivered to an agent execution environment. Then, if the agent
`possesses necessary authentication credentials, its executable parts are started.
`To accomplish its task, the mobile agent can transport itself to another server,
`spawn new agents, or interact with other agents. Upon completion, the mobile
`agent delivers the results to the sending client or to another server.
`
`Besides their computational components, mobile agents are equipped with in(cid:173)
`telligence to reason, make decisions, and solve problems. Thus, there are two
`kinds of languages involved with an agent. One is a programming language in
`which the programming content of the agent is written. This is usually a script(cid:173)
`like language. The other language is concerned with the intelligent aspects of
`mobile agents. This is a language for knowledge representation. Languages
`for knowledge representation provide the means to express goals, tasks, pref(cid:173)
`erences, beliefs and vocabularies appropriate to various domains. A leading
`approach in defining interoperable languages for knowledge-presentation is the
`ARPA knowledge sharing effort [19].
`
`Besides intelligence, some of the key aspects of the mobile agent computing
`paradigm are:
`
`1. the ability of an agent to interact and cooperate with other agents,
`
`2. agent autonomy, in the sense that agents' execution proceeds with little or
`no intervention with the sending client,
`
`3. agent interoperability, i.e., agents can be executed in diverse platforms,
`
`Starbucks Corp. Exhibit 1032
`
`

`
`24
`
`CHAPTER 2
`
`4. agent reactiveness, the ability of an agent to respond to external events,
`and
`
`5. agent mobility, i.e. , their ability to roam among a set of networked servers.
`
`One of the main obstacles to the acceptance of mobile agents in commercial
`applications is security. Protection against viruses, preventing mobile agents
`entering endless loops and consuming all available resources, authentication,
`and privacy are just a few of the implementation challenges to be addressed.
`General Magic's Telescrtipt (TM) technology [56] is possibly one of the most
`well-known implementations of the concept of mobile agents in a commercial
`setting. [118] provides a rich source of information relating to mobile agents.
`
`The driving force motivating mobile agent-based computation is twofold. First,
`mobile agents provide an efficient, asynchronous method for searching for in(cid:173)
`formation or services in rapidly evolving networks: mobile clients are launched
`into the unstructured network and roam around to gather information. Sec(cid:173)
`ond, mobile agents support intermittent connectivity, slow networks, and light(cid:173)
`weight devices. This second property makes the use of mobile agents in mobile
`computing very attractive [43, 134] .
`
`The agent computational model supports disconnected operation. During a
`brief connection service, a mobile client submits an agent and then disconnects.
`The agent proceeds independently to accomplish the delegated task. When the
`task is completed, the agent waits till reconnection to submit the result to the
`mobile client. Conversely, a mobile agent may be loaded from the fixed network
`onto a laptop before disconnection. The agent acts as a surrogate for the
`application allowing interaction with the user even during disconnections. Weak
`connectivity is also supported by the model since the overall communication
`traffic through the wireless link is reduced from a possibly large number of
`messages to the submission of a single agent and then of its result. In addition,
`by letting mobile hosts submit agents, the burden of computation is shifted
`from the resource-poor mobile hosts to the fixed network. Mobility is inherent
`in the model. Mobile agents migrate not only to find the required resources
`but also to follow mobile clients. Finally, mobile agents provide the flexibility
`to load functionality to and from a mobile host depending on bandwidth and
`other available resources.
`
`The mobile agent computational paradigm is not orthogonal to the client/server
`model and its extensions. For example, the agent of the cfa/s model may be
`seen as a form of static agent , i.e, an agent lacking the ability to migrate to
`other servers. Alternatively, one can implement the agent of the c/a/s model
`
`Starbucks Corp. Exhibit 1032
`
`

`
`Software Architectures
`
`25
`
`as a mobile agent and let it move on the fixed network following its associated
`client.
`
`Mobile agents can be used in conjunction with agents located at the fixed
`network. Let's call the agents at the fixed network proxies for clarity. In this
`scenario, a client submits a general mobile agent to its proxy. The proxy refines
`and extends the mobile agent before launching it to servers on the network.
`When the mobile agent finishes its task, it first communicates its results to the
`proxy. The proxy filters out any unnecessary information and transmits to the
`mobile client only the relevant data. Such an approach entails enhancing the
`proxies with capabilities to process mobile agents. Building on this approach,
`a proxy may be programmable, that is extended with the ability to execute
`mobile agents submitted to it by clients or servers. Such an approach is in
`accordance with current research on active networks [166].
`
`2.2 ENVIRONMENTAL AWARENESS
`
`The agents, placed between the mobile client and the fixed server, alleviate
`both the constraints of the wireless link, by performing various communica(cid:173)
`tion optimizations, and of any resource constraints, by undertaking part of the
`functionality of resource-poor mobile clients. In this section, we consider two
`important design issues. First, we motivate the need for adaptivity. Then, we
`argue about the level at which mobility and adaptivity must be handled.
`
`The mobile environment is a dynamically changing one. Connectivity con(cid:173)
`ditions vary from total disconnections to full connectivity. In addition, the
`resources available to mobile computers are not static either, for instance a
`"docked" mobile computer may have access to a larger display or memory.
`Furthermore, the location of mobile elements changes and so does the network
`configuration and the center of computational activity. Thus, a mobile system
`is presented with resources of varying number and quality. Consequently, a
`desired property of software systems for mobile computing is their ability to
`adapt to the constantly changing environmental conditions (97, 150, 94, 53].
`
`But how can adaptivity be captured and realized? A possible answer is by
`varying the partition of duties between the client and the server. For instance,
`during disconnection, a mobile client works autonomously, while during periods
`of strong connectivity, the client depends heavily on the fixed network sparing
`its scarce local resources. Another way to realize adaptivity is by varying the
`
`Starbucks Corp. Exhibit 1032
`
`

`
`6
`
`CASE STUDIES
`
`This chapter presents four case studies of existing mobile software systems. The
`systems presented are (Table 6.1): MIT 's Rover distributed object development
`environment, CMU's Coda file system, Xerox's Bayou replicated storage sys(cid:173)
`tem, and IBM's WebExpress web browsing system. Each one of these systems
`belongs to a different level of the software stack. Rover provides a distributed
`object architecture for developing mobile applications. Coda and Bayou pro(cid:173)
`vide specific system support at the file and database level respectively. Finally,
`WebExpress is a specific application.
`
`Besides

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