Title: Mobile Computing Models
1Mobile Computing Models
- Original notes by Sumi Helal
2References
- 5.1 J. Jing, A. Helal, A. Elmagarmid,
"Client-Server Computing in Mobile Environments,"
ACM Computing Surveys, June 1999. - 5.2 B. Noble, M.Satyanarayanan, D. Narayanan, J.
Tilton, J. Flinn, K. Walker "Agile
Application-Aware Adaptation for Mobility,"
Proceedings of the Sixteenth ACM Symposium on
Operating Systems. - 5.3 M. Ebling and M. Satyanarayanan, "On the
Importance of Translucence for Mobile
Computing," Proceedings of the 15th ACM Symposium
on Operating Systems Principles, May 1998, ,
CO - 5.4 A. Joseph and M. Kaashoek, "Building
Reliable Mobile-Aware Applications using the
Rover Toolkit," To appear in ACM Wireless
Networks (WINET). - 5.5 R. Gray, D. Kotz, S. Nog, D. Rus, and G.
Cybenko, "Mobile Agents for Mobile omputing,"
Technical Report PCS-TR96-285, Dept. of Computer
Science, Dartmouth College, May 1996. - 5.6 B. Zenel and D. Duchamp, "A General Purpose
Proxy Filtering Mechanism Applied to the
Mobile Environment," Proceedings of the third
annual ACM/IEEE Conference on Mobile Computing
and Networking, Sept. 1997.
3References
- 5.7 Data Dissemination
- 5.7.1 S. Zdonik, M. Franklin, S. Acharya, and
R. Alonso, "Are Disks in the Air'' Just Pie in
the Sky?," Proceedings of the IEEE Workshop on
Mobile Computing Systems Applications, Santa
Cruz, CA, December 1994 - 5.7.2 S. Acharya, R. Alonso, M. Franklin and S.
Zdonik,"Broadcast Disks Data Management
for Asymmetric Communication Environments,"
Proceedings of the ACM SIGMOD, Conference, San
Jose, CA, May 1995. - 5.7.3 S. Hameed and N. Vaidya, "Log-time
Algorithms for Scheduling Single and Multiple
Channel Data Broadcast," Proceedings of the third
annual ACM/IEEE Conference on Mobile Computing
and Networking, Sept. 1997. - 5.8 Client/Server Caching
- 5.8.1 J. Jing, A. Elmagarmid, A. Helal, and R.
Alonso, Bit-Sequences, "An Adaptive Cache
Invalidation Method in Mobile Client/Server
Environments," the ACM-Baltzer Journal on
Special Topics in Mobile Networks and
Applications (MONET), Volume 2, Number 2,
pp115-127, October 1997 - 5.8.2 H. Lei and D. Duchamp, "An analytical
approach to file prefetching," USENIXAnnual
Technical Conference, 1997.
4Mobile Computing Models
- Hierarchy of Computing Models
- Taxonomy of C/S Adaptations
- Unaware Client/Server Model
- Client/Proxy/Server Model
- Thin Client/Server Model
- Disconnected Operation
- Dynamic Client/Server Models
- Mobile Agents
5Hierarchy of Computing Models
6Client/Server Computing
7Client/Server Design
- Stateless/stateful client/server design
- Caching and cache invalidation
- server invalidates client cache and/or
- client requests server to validate its cache.
- file system caching writes gt update propagation
- Connectionless/connection-oriented design
- TCP/IP Interfaces
- Other issues multi-threading deadlocks
8Fixed Network C/S Assumptions
- Client Connectivity
- Client is always connected with availability
comparable to the servers. - Server can always invalidate the client cache
- Server Availability Reliability
- Server is highly available.
- Reliable if stateless (but state info is
exchanged in every C/S interaction), or if
implements recovery procedures (may require
client availability) - Network
- fast, reliable, BER lt 10-6, bounded delay
variance
9Taxonomy of C/S Adaptations
- System-transparent, application-transparent
- The conventional, unaware client/server model
- System-aware, application-transparent
- the client/proxy/server model
- the disconnected operation model
- System-transparent, application-aware
- dynamic client/server model
- the mobile agent (object) model
- System-aware, application-aware
10The Unaware Client/Server Model
- Full client on mobile host and full server on
fixed network (SLIP/PPP C/S) - Client and Server are not mobility-aware
- Client caching does not work as the client can be
disconnected when the server invalidates the
cache - Not reliable and of unpredictable performance
- Requires special cache invalidation algorithms to
enable caching despite long client disconnections
11The Client/Proxy/Server Model
- Adding mobility-awareness between the client and
the server. Client and server are not
mobility-aware. - Proxy functions as a client to the fixed network
server, and as a mobility-aware server to the
mobile client - Proxy may be placed in the mobile host (Codas
Venus), or the fixed network, or both
(WebExpress) - Application- and user-dependent
- One advantage enables thin client design for
resource-poor mobile computers
12Thin Client/Server Model
- Thin client fits in resource poor info appliances
- Bounded communication
- Requires at least weak connection
- CITRIX WinFrame and ICA thin client
- VNC client
- InfoPad
13The Disconnected Operation Model
- Approach I
- Provide full client and a thin version of the
server on the mobile platform. In addition,
needed data is replicated into the mobile
platform. Upon reconnection, updated replicas are
synchronized with the home server. Conflict
resolution strategies are needed (Coda/Venus
Oracle Lite) - Approach II
- Provide a full client and a mobility agent that
intercepts requests to the unreachable server,
emulates the server, buffers the requests, and
transmit them upon reconnection (Oracle Mobile
Agents)
14The Dynamic Client/Server Model
- Servers (or their thin versions) dynamically
relocate between mobile and fixed hosts. Proxies
created and relocated dynamically - A spectrum of design and adaptation
possibilities - Dynamic availability/performance tuning
15Dynamic Client/Server Model
- Mobile objects
- applications programmed with dynamic object
relocation policies for adaptation (Rovers RDOs) - Collaborative Groups
- disconnected mobile clients turns into a group of
collaborating, mobile servers and clients
connected via an ad-hoc net. (Bayou
architecture) - Virtual Mobility of Servers
- servers relocate in the fixed network, near the
mobile host, transparently, as the latter moves.
16The Mobile Agent Model
- Mobile agent programmed with platform limitations
and user profile receives a request moves into
the fixed network near the requested service - Mobile agent acts as a client to the server, or
invokes a client to the server - Based on the nature of the results, experienced
communication delays, and programmed knowledge,
the mobile agent performs transformations and
filtering. - Mobile agent returns back to mobile platform,
when the client is connected.
17Mobile Agents in the Mobile Environment
18File System Proxy in Coda
- Disconnected operation (Venus) hoarding,
emulating, reintegrating - Weakly connected operation both object and
volume call-backs - Isolation-Only Transactions
19Isolation-Only Transactions in Coda
Isolation-Only Transactions (ACID) no failure
atomicity guarantees. Also Durability is
guaranteed only conditionally.
20The WebExpress Intercept Model
21Wireless Web Browser in Mowgli
22Thin Client InfoPad Architecture
23Mobile Data Management in C/S Design
- Push/Pull data dissemination
- Broadcast disks
- Indexing on air
- Client caching strategies and cache invalidation
algorithms
24Push/Pull Data Dissemination
B/W
upstream
downstream
- Pull data delivery clients request (validate)
data by sending uplink msgs to server - Push data delivery servers push data (and
validation reports) through a broadcast
channel,to a community of clients
25Broadcast Disks
Periodic broadcast of one or more disks using a
broadcast channel Each disk can be bcast at
different speed Disk speed can be changed based
on client access pattern
26Indexing on Air
- Server dynamically adjusts bcast hotspot
- Clients read the index, enters into doze mode,
and then perform selective tuning - Query Time time taken from point a client issues
a query until answer is received - Listening Time time spent by client listening to
the channel.
27Caching in Mobile Client/Server Problems
- Cashing is critical to many applications such as
Web browsing and file and database systems - Classical cache invalidation techniques do not
work effectively in the mobile environment
because of - client disconnection (call-backs do not work)
- slow and limited up-link bandwidth for client
invalidation (detection approach is inefficient) - very limited scalability for application servers
with a large number of clients - limited caching capacity due to client memory and
power consumption limitations
28Caching in Mobile Client/Server Solutions
- Variable granularity of cache coherency (Coda)
- Enabling ideas
- Broadcast disks periodic broadcast of
disk-organized data does not require upstream
communication for disk reads - Indexing on the air broadcast of disk and its
index allows selective tuning increases access
time but reduces tuning time allows dormant
state - Cache cache invalidation
- Broadcasting Timestamps Barbará et al
- Bit Sequence Jing et al
29Varied Granularity of Cache Coherency in Coda
- Server maintains version stamps for each object
and its containing volume. When an object is
updated, the server updates its version stamp and
that of its containing volume. - In anticipation of disconnection, clients cache
volume version stamps - Upon reconnection, clients present volume version
stamps to server for validation - If valid, so is every object cached at the
client, otherwise, cached objects are invalidated
individually
30Cache Invalidation Reports
- Server bcast invalidation report showing all
items updated within preceding w seconds - Client connected invalidation is straightforward
- Clients must invalidate their entire cache if
their disconnection period exceeds w seconds.
31The Bit-Sequences Caching Strategy
- Addresses invalidation report size optimizations
- bit-sequence naming (each bit in a BS represents
one data object) - update aggregation (one timestamp for a group of
updates) - Effectiveness of invalidation report accuracy of
validating the status of cached data items w.r.t.
invalidation report size - Addresses invalidation report effectiveness for
clients with unpredictable disconnection time - hierarchical structure of BSs (clients with
different disconnection times can use different
BSs in the structure)
32Basic Bit-Sequences Method
Server Bit-Sequences construction algorithm
Client cache invalidation algorithm Design
different bit-mapping strategies Report size L
2NbTlog(N)
33Bit-Sequences Invalidation Precision
34Case Studies
35Case Study1 Bayou
- Main Features
- Novel Aspects
- Bayou architecture
- Bayou application-specific conflict resolution
- Bayou replication management
- http//www.parc.xerox.com/csl/projects/bayou/
36Main Features of Bayou
- Replicated, weakly consistent storage system for
collaborative applications - Ad-hoc network of portable computers participate
in managing a mobile, replicated storage system - Suitable for a group of collaborators, all mobile
and disconnected from fixed network, sharing
(reading/writing) appointment calendars, meeting
notes, evolving design documents, etc.
37Novel Aspects of Bayou
Support for application-specific detection and
resolution of update conflicts dependency
checks client-provided, per-write conflict
resolution (merge procedures) Eventual replica
convergence through a peer--wise anti-entropy
process Per-client consistency guarantees Roll-bac
k and undo capabilities
38The Bayou Architecture
39Application-Specific Conflict Resolution in Bayou
- Along with desired update, a write operation
includes a dependency check - server query expected query results
- As a pre-condition to performing the write
operation, the dependency check must succeed - A conflict is detected if query, when run against
server data, does not produce same results.
40Application-Specific Conflict Resolution in Bayou
- If dependency check fails, write is not performed
and server runs a merge procedure - also submitted along with the write operation
- templates or rules written in a high-level
interpretive language - uses server data and application-specific data to
resolve the conflict - when run, produces a revised update request
- Write operations are atomic
41Conflict Resolution in Bayou
- Example (Application-specific)
- Write
- reserve an hour time slot by meeting room sched
application dependency_check (list of
previously scheduled meetings that overlap with
requested time slot, NULL) merge_procedure () -
- Others
- detect read/write conflicts
- detect write/write conflicts
42Replication Management in Bayou
- Clients send their writes to only one server
(weak consistency) - Bayou servers propagate their writes during
pair-wise contacts. This process is called
Anti-entropy and results on the two server
agreeing on the writes and their order. - Eventually all writes will reach all servers
(eventual consistency)
43Bayou Summary
44Case Study 2 Odyssey
- Odyssey client architecture
- Odyssey system components
- Odyssey applications
- Video player
- Web browser
45Odyssey Client Architecture
46Main Features of Odyssey
- Application-aware adaptation approach
- Odyssey monitors system resources and notifies
applications of relevant changes - Applications decide when and how to adapt, to
maintain certain level of fidelity - General support for adaptation Viceroy
- Type-specific support Warden
- Caching support
47Odyssey System Components
- Odyssey Objects
- Client API to allow applications to
- operate on Odyssey objects
- express resource needs (expectations)
- be notified when needed resources are no longer
available - respond by changing levels of fidelity
48Odyssey API
Resource_id lower bound upper bound name of
upcall handler
Request( in path, in resource_descriptor, out
request_id) Cancel(in request_id)
Resource Negotiation Operations
Resource Descriptor Fileds
Network Bandwidth bytes/second Network
Latency microseconds Disk cache
Space Kilobytes CPU SPECCint95 Battery
Power minutes Money cents
Handle( in request_id, in resource_id, in
resource-level)
Upcall Handler
Generic Resources in Odyssey
Tsop( in path, in opcode, in insize, in inbuf, in
out outsize, out outbuf)
Type-specific Operations
49Video Player in Odyssey
50Web Browser in Odysset
51Odyssey Summary
52Case Study 3 Rover
- Basic features of Rover
- Novel features of Rover
- Rover system components
- Constructing mobile applications using Rover
- Rover applications
53Basic Features of Rover
- Rover is a ToolKit for developing applications
that can be used in both the fixed and mobile
environment - Supports both application-transparent and
application-aware adaptations - Supports the dynamic client/server model
- Can build Rover apps from scratch or migrate
existing apps (with some effort) to be mobile
54Novel Features of Rover
- Support for
- Mobile objects
- disconnected operation
- dynamic client/server
- Mixed communication/computation modes
- Relocatable Dynamic Objects (RDO)
- Queued Remote Procedure Calls (QRPC)
- Applications decide to use RDO or QRPC
55Relocatable Dynamic Objects (RDO)
- Objects can be relocated from the fixed network
to the mobile computer. Client applications then
interacts directly with the local copy of the RDA - If cached RDO is updated it can be tentatively
considered the primary copy and is exported back
to the fixed network - Advantages Performance (under weak connectivity)
and functionality (under disconnections)
56Queued RPC (QRPC)
- Non-blocking remote procedure calls, even when
fixed host is disconnected - Client applications use QRPC to fetch RDOs. Upon
connection, or when an RDO arrives, the
requesting client is called back - QRPC is also used to commit updates made to RDOs
- Non-executed QRPCs are kept in an operation log
- As network connection comes and goes, the
operation logs are flushed back to the servers
57Rovers Relocatable Dynamic Object (RDO)
Architecture
58Rover Component Architecture
59Constructing Mobile Applications in Rover
- Split the application into clients and servers
modules - Decide where each module resides initially
(mobile host or fixed network) - Encapsulate each module as an RDO
- Add application-specific semantics to RDOs
- Add application-specific conflict resolution
procedures.
60Rover Applications
- Application-transparent adaptation
- Rover NNTP proxy and Rover HTTP proxy
- Application-aware adaptation
- Rover Exmh (mail browser), Rover Webcal
(distributed calendar system), Rover Irolo
(graphical Rolodex tool), and Rover stock market
watcher
61Rover Summary