CSci 8980 Mobile Cloud Computing Mobile Cloud Programming
Introduction Mobile applications are multi-platform, multi-user
Introduction Code and data spread across many systems
The Problem Deployment logic is complex where data and computation should be located what data should be replicated or cached what data consistency level is needed what kind of failures to deal with Application logic often contains deployment logic => Applications are too complex and inflexible
The Problem Deployment decisions are classic distributed systems problems coordinating data and computation fault tolerance dealing with diverse hardware
The Problem Applications are not one-size-fit-all Some need: Reliable RPC Caching Code offloading Replication This is left to the application programmer
Solution We need a distributed for mobile cloud applications! Goto pdf
Customizable and Extensible Deployment of Mobile/Cloud Applications Irene Zhang Adriana Szekeres Dana Van Aken Isaac Ackerman, Steven D. Gribble Arvind Krishnamurthy Henry M. Levy University of Washington 1
A new programming system for deploying mobile/cloud applications. 6 6
Our Goals 1. Separate application logic from deployment code. 2. Allow programmers to easily choose and change application deployment. 7 7
Our Solution A new system architecture that supports pluggable and extensible deployment managers. 8 8
Outline 1. Architecture 2. Deployment s 3. Experience and Evaluation 9 9
Architecture Mobile App Application App Mobile App DK Deployment Server DK Management Server DK Layer Server Deployment Kernel 10 10
Applications A new programming abstraction: distributed objects
Application Partitioned into s, which: Run in a single address space with RPC. Execute anywhere and move transparently. Provide a unit of distribution for deployment managers. 11 11
Architecture Mobile App App Mobile App Deployment Management DK Server DK Server DKLayer Server Deployment Kernel 12 12
Application Code
Deployment Kernel Provides best-effort distribution services, including: object tracking, mobility and replication. Making and routing RPC to objects. Managing, distributing and running deployment managers. 13 13
Deployment Management Layer Consists of deployment managers, which: Extend the functions and guarantees of the deployment kernel. Interpose on object events. Easy to choose and change without modifying the application. 15 15
Architecture Mobile App Lease Caching App Replication Mobile App Code-offloading DK Server DK Server OTS Server 16 16
Deployment Library Primitives Caching Serializability Checkpoint Replication Mobility Scalability Immutable Explicit Caching Serializable RPC Explicit Checkpoint RSM-Cluster Explicit Migration LoadBalanced Frontend AtLeastOnce RPC Lease Caching Locking Transactions Periodic Checkpoint RSM-Geo Dynamic Migration Scale-up Frontend Keep In Place Writethrough Caching Optimistic Transactions DurableRPC RSM-P2P Explicit Code-offload LB Masterslave Keep On Device Consistent Caching Durable Transactions Code-offload Keep In Cloud Extensible with the Deployment API! 17 17
Outline 1. Architecture 2. Deployment s 3. Experience and Evaluation 18 18
Deployment API Deployment manager components, which the kernel creates, deploys and invokes: : Co-located with the. Proxy: Co-located with remote references to the. Coordinator: Co-located with fault-tolerant Tracking Service (OTS). 19 19
Deployment Architecture Replication DK Server DK Server DK Server 20
Deployment Architecture Stub Proxy Stub Proxy Coordinator DK Server DK Server DK Server 20
DM Code Proxy: caller-side tasks E.g. use caller side cache manager: callee-side tasks E.g. checkpoints Coordinator: centralized tasks E.g. load balance
DK API
DM Impl
Upcalls DK calls in DM using upcalls => customization
Replicating a App Replication DK Server DK Server DK Server 21
Replicating a App Leader DK Server DK Server DK Server 21
Replicating a App Stub Proxy Leader DK Server DK Server DK Server 21
Replicating a App Stub Proxy Leader DK Server DK Server DK Server 21
Replicating a App Stub Proxy Leader DK Server DK Server DK Server 21
Replicating a App Stub Proxy Leader DK Server DK Server DK Server 21
Replicating a App Stub Proxy Leader DK Server DK Server DK Server 21
Caching a App Caching DK Server DK Server DK Server 22
Caching a App Stub Proxy Master DK Server DK Server DK Server 22
Caching a App Stub Proxy Master DK Server DK Server DK Server 22
Caching a App Stub Proxy Master DK Server DK Server DK Server 22
Outline 1. Architecture 2. Deployment s 3. Experience and Evaluation 23 23
Experimental Setup Dell Server Nexus 7 Nexus S 8-core Intel Xeon 2GHz 4-core ARM Cortex A9 1.3GHz 1-core ARM Cortex A8 1GHz 8GB 1GB 512MB 24 24
Peer-to-Peer Multiplayer Game Read Write 30 23 miliseconds 15 8 0 Player 1 Player 2 Player 1 Player 2 Player 1 Player 2 Keep In Cloud Keep On Device 25 RSM-P2P 25
Code-offloading for Physics Engine 500 400 1190 ms Network Execution milliseconds 300 200 100 0 Base WiFi 4G Base WiFi 4G Phone 26 Tablet 26
Summary Modern applications implement difficult distributed deployment tasks. is a new programming system for deploying mobile/cloud applications. Deployment managers makes it easy to choose, change and build deployment. 27 27