The Rover Toolkit and Beyond

Download Report

Transcript The Rover Toolkit and Beyond

The Rover Toolkit
Anthony D. Joseph
Computer Science Division
University of California at Berkeley
BARWAN Retreat
January 15, 1998
MIT Rover People
•
•
•
•
•
•
•
Profs. Frans Kaashoek and David Gifford
Anthony D. Joseph (Toolkit arch/impl & apps)
Joshua A. Tauber (Toolkit arch & Webcal)
George M. Candea (Rover File System)
Constantine Cristakos (Rover NNTP)
Alan deLespinasse (Rover Web Browser proxy)
Michael Shurpik (Webcal)
Outline
•
•
•
•
•
Harsh mobile environment
Rover toolkit benefits and techniques
Rover architecture
Use and benefits
Summary and future directions
Mobile Applications are Hard to Build
• Environment varies over an app’s lifetime
– Connectivity, bandwidth, latency, and cost vary
– Technological improvements won’t fix variability
• Mobile computers are limited & fragile
• Network partitions are frequent ($$ & shadows)
– Most dist. algorithms and apps assume they’re not
– Availability and consistency tradeoff
Application-adaptation is complex
– When/where to move data and code
– System provides mechanisms and policy engine
How the Rover Toolkit Helps
• Simplifies application development
– Provides reusable building blocks
– Alternative to special-purpose/single-use approaches
• Helps developers cope with changes
– Varying environment and computational resources
• Mobile-transparent/mobile-aware support
– Allows incremental transition: transparent to aware
Transparent versus Aware
• Mobile-transparent
– Hides mobility from application
– Allows the use of existing unmodified apps
– Examples: Coda, Ficus, Little Work
• Mobile-aware
– Exposes environmental information to apps
– Yields better functionality and performance
– Examples: InfoPad, Daedalus, GloMop, Bayou
Applications Targeted by Rover
• Groupware (client-server) apps
– Applications with shared state:
• E-mail and distributed calendar
– “File-level” conflicts occur all the time
– May not be real conflicts
• Need semantic information
• Leverage intermittent connectivity to reduce conflict
window
Techniques Used in Rover
• Queued Remote Procedure Call
– Isolate applications from network limitations
• Relocatable Dynamic Objects
– Adapt to changing environment
• App-specific, optimistic concurrency control
– Reduce number of unresolvable conflicts
• Fault-Tolerant RDOs
– Protect long running client computation at servers
Outline
•
•
•
•
•
Harsh mobile environment
Rover toolkit benefits and techniques
Rover architecture
Use and benefits
Summary and future directions
Rover Architecture
E-mail
GUI
RDOs: Tcl/Tk Code
E-mail
Filesys
QRPCs: Log to Disk
Rover
O/S
Rover
Transport: HTTP & SMTP
Links: Wired and wireless
Client
O/S
Server
• Client-server object-based model (code/data shipping)
• Programming model:
– Import RDOs, invoke local methods, export operations
• FSM-based implementation
Relocatable Dynamic Objects
RDO = Code + Data + Interface + Outcalls
• Rover provides execution environment
• Application starts w/ core functionality
– Important for small devices / large applications
– Dynamically load additional functionality
• Reduce communication
– Application-specific compression
– Service user requests locally
• Current limitation: rudimentary security
Queued Remote Procedure Call
QRPC = RPC + Split phase + Stable Q + Scheduler
GUI
Filesys
Request
Stable queue
Scheduler
Stable queues
Callback
Client
Server
• Hides unpredictable remote access time
• Tolerates network, client, and server failures
QRPC Benefits
• Request/reply can use different connections
– Asymmetric or one-way networks
• Exposes queues to applications
– Applications can determine QRPC state/progress
– Log compression/request absorption
• Network scheduler
– Allows prioritizing, batching, and compression
– Reduces transmission power, time, and cost
Rover is Easy to Use
• Create server and client proxies (transparent)
• Port applications to Rover
– Not a difficult process: change 10-15% of code*
• Easy to improve responsiveness
– Use QRPC for stability and to make GUI non-blocking
– Group metadata with objects
– Change granularity of data
• Better responsiveness and performance (2x)
– Perform useful work instead of waiting
– Service user requests locally
Example: WWW Browser Proxy
N
12
Proxy Cache Queue
Rover
Server
Rover
TranSend
Server
WWW
Server
WWW
Server
Client
• “Click-ahead” for unchanged clients
• Prefetches & compresses inlined objects
WWW
Server
– HTTP/1.1 (1/97): compression and pipelining (no prefetching)
• Separate cache display (simple paradigm)
Better overall performance
– Benefits for workstation users
Rover Toolkit Summary
• Rover makes building mobile apps easier
–
–
–
–
–
Provides useful set of abstractions
RDOs reduce latency and bandwidth needs
QRPC matches mobile environment challenges
Reliable RDOs simplify the protection of client code
Application-specific concurrency control reduces
unresolvable conflicts
• Application performance is excellent
• Pre-alpha release - Dec ‘97
Future Directions
• Java-based implementation
– Provide portable QRPC operator for ProActive Infrastructure
• Policies for adaptive mechanisms
– When to open/close a network connection
– Which network to use (b/w, latency, cost)
• Security for mobile code
– Code generated at clients and servers runs everywhere
– How to protect private client and server data and resources
• Highly-available servers
– Providing consistent client views across servers [Bayou]
More Future Directions
• Peer-peer workgroups
– Islands of high bandwidth (e.g., this retreat)
– Where is the canonical copy / commit point?
• Multi-layer client-server hierarchy
– Similar to peer-peer workgroups
– Dismounted warfighter with PDA to laptop to server
Advertisement: Spring ‘98 Seminar
• Mobile computing and wireless networking
– CS 294: WF 12:30-2:00 (for now) in 405 Soda
• Local- and wide-area wireless networks
– WaveLAN, Metricom, CDPD, and GSM
– Problems and issues
• Mobile computing: Adapting to harsh env.
– Disconnected operation/intermittent connectivity
– Sharing: Consistency versus availability
• Projects
– From ProActive Infrastructure & Viking (BT3GC)