mobile software development framework: adaptive mobile applications
DESCRIPTION
Mobile Software Development Framework: Adaptive Mobile Applications. 10/23/2012 Y. Richard Yang. Outline. Admin Mobile cloud services Push notification service Track service Storage service Adaptive mobile applications. Admin. HW3 Project ideas. Recap: Example Mobile Cloud Services. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/1.jpg)
1
Mobile Software Development Framework: Adaptive Mobile
Applications
10/23/2012
Y. Richard Yang
![Page 2: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/2.jpg)
2
Outline
Admin Mobile cloud services
Push notification service Track service Storage service
Adaptive mobile applications
![Page 3: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/3.jpg)
3
Admin.
HW3
Project ideas
![Page 4: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/4.jpg)
Recap: Example Mobile Cloud Services Push notification service Location based services, e.g.,
Track service (supporting location based services)
Storage services, e.g., iCloud, Google Drive, Dropbox
Proxy services, e.g., Kindle Split Browser Recognition/synthesis services
4
![Page 5: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/5.jpg)
Example: Push Notification Service A single persistent connection between Push Notification
Service (PNS) and each mobile device Authorization
App developer registers project with PNS App on device registers with PNS and forwards registration to
PNS App server sends to registered apps on devices
Scalability, fault tolerance, generality Send only notification, not data For reliability, use soft state, not hard state
5
![Page 6: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/6.jpg)
Example: Track Service
TC JoinTrackCollections (TC tCs[], bool removeDuplicates) TC SortTracks (TC tC, SortAttribute attr) TC TakeTracks(TC tC, int count) TC GetSimilarTracks (TC tC, Track refTrack, float simThreshold) TC GetPassByTracks (TC tC, Area[] areas) TC GetCommonSegments(TC tC, float freqThreshold)
Manipulation
Creation TC MakeCollection(GroupCriteria criteria, bool removeDuplicates) TC MakeCollection(GroupCriteria criteria, bool removeDuplicates)
6
![Page 7: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/7.jpg)
API Usage: Ride-Sharing Application
// get user’s most popular track in the morningTC myTC = MakeCollection(“name = Maya”, [0800 1000], true);TC myPopTC = SortTracks(myTC, FREQ);Track track = GetTracks(myPopTC, 0, 1);
// find tracks of all fellow employeesTC msTC = MakeCollection(“name.Employer = MS”, [0800 1000], true);
// pick tracks from the community most similar to user’s popular trackTC similarTC = GetSimilarTracks(msTC, track, 0.8);Track[] similarTracks = GetTracks(similarTC, 0, 20);
// Verify if each track is frequently traveled by its respective ownerUser[] result = FindOwnersOfFrequentTracks(similarTracks);
![Page 8: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/8.jpg)
Outline
Admin and recap Mobile Cloud Services
Push notification service Track service Storage service
8
![Page 9: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/9.jpg)
Storage/Sync Service
Store content in cloud to be accessible by multiple selected devices
Multiple deployed services, e.g., iCloud Google Drive DropBox
9
![Page 10: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/10.jpg)
Storage/Sync Service Example: iCloud
Backend Hosted by Windows Azure and Amazon AWS Uses HTTPS connect to servers
More details: see iCloud sessions https://developer.apple.com/videos/wwdc/
2012/?id=209
10
![Page 11: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/11.jpg)
11
Key Design Points for Mobile Storage
Data models what data structure to put on mobile storage
Read miss stalls progress (user has to wait for data)
Synchronization/consistency user may see outdated data user modification may generate conflicts
Good topic for investigation/design projects See backup slides for some pointers
![Page 12: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/12.jpg)
Outline
Admin and recap Adaptive mobile applications
12
![Page 13: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/13.jpg)
Adaptive Mobile Applications
An adaptive mobile application adjusts the amounts as well as the locations of resources that it consumes
The objective typically is to Improve responsiveness Reduce energy consumption at device
13
![Page 14: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/14.jpg)
Amazon Silk Split-Browser
Dynamically split browsing work between local device and Amazon cloud
14http://www.extremetech.com/mobile/97587-amazon-silk-bridging-the-gap-between-desktop-and-tablet-web-browsers
![Page 15: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/15.jpg)
15
Adaptive Mobile App: Big Picture
devicein-netproxy
serviceserver
On-device app/sys adaptation
Service partition Device-aware service partition, delivery
![Page 16: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/16.jpg)
Adaptive Mobile Applications: Overview This is a large topic We will look at an example on each entity
16
devicein-netproxy
serviceserver
On-device app/sys adaptation
Service partition Device-aware service partition, delivery
![Page 17: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/17.jpg)
Outline
Admin and recap Adaptive mobile applications
Device adaptation
17
![Page 18: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/18.jpg)
Discussion
What resource parameters/aspects of a mobile device can be controlled?
18
http://www.wired.com/gadgetlab/2012/09/iphone5-spec-showdown/
![Page 19: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/19.jpg)
Example: iphone 5
19http://www.anandtech.com/show/6324/the-iphone-5-performance-preview
iPhone 5 controls the CPU frequency
idle downloading
![Page 20: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/20.jpg)
20
Iphone5 A6 Processor
http://www.zdnet.com/inside-apples-a6-processor-7000004786/
![Page 21: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/21.jpg)
21
CPU Power Model The power consumption rate P of a CMOS
processor satisfies
where k is a constant, C the capacitance of the circuit, f the CPU frequency, and V the voltage
When the supply voltage V is lower, charging/discharging time is longer; thus frequency should be lower
=> P ~ O(V3)
fkCVP 2
![Page 22: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/22.jpg)
22
CPU Power Model
Question: Suppose P ~ V3. Do we save energy by reducing
freq/vol to 1/3, but finish the same job? What if linear: P ~ V?
throughput
![Page 23: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/23.jpg)
23
Dynamic Voltage Scaling
For convex power consumption rate, to minimize power for finishing a job, one may lower the freq/vol to close to 0
Constraint bound response time (e.g., deadline of
multimedia playback)
![Page 24: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/24.jpg)
24
Example Architecture: GraceOS
CPU
monitoring scheduling
speed scaling
demand distribution
scheduler
speed adaptor
profiler
multimedia applications
requirements
time constraint
![Page 25: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/25.jpg)
25
Demand Prediction
Online profiling and estimation: count number of cycles used by each job
b1 b2Cmin=b0 br=Cmax
1
br-1
cum
ulat
ive
prob
abil
ity
CDF F(x) = P [X x]
![Page 26: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/26.jpg)
26
Demand Stability
Demand distribution of MPGDec
0
0.2
0.4
0.6
0.8
1
4.5 5.7 6.9 8.1 9.3frame cycles (millions)
cum
ulat
ive
prob
abilit
y
first 50first 100all frames
Demand distribution is stable or changes slowly
![Page 27: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/27.jpg)
27
CPU Resource Allocation
How many cycles to allocate to a multimedia job?
Application should meet percent of deadlines
each job meets deadline with probability
allocate C cycles, such that F (C ) =P [X C ]
b1 b2 b0 br
1
br-1
cum
ulat
ive
prob
abil
ity
F(x)
C
![Page 28: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/28.jpg)
28
How Fast to Run the CPU?
Goal: provides Ci cycles during a time duration of Pi
Fact: since power is a convex function of frequency, if a job needs C cycles in a period P, then the optimal frequency is C/P, namely the lowest constant frequency.
![Page 29: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/29.jpg)
29
Why Not Uniform Speed?
Intuitively, uniform speed achieves
- minimum energy if use the allocated exactly
However, jobs use cycles statistically
- often complete before using up the allocated
- potential to save more energy
stochastic DVS
![Page 30: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/30.jpg)
30
Stochastic DVS
For each job
1. find speed Sx for each unit allocated cycle x
b1 b2Cmin=b0 br=Cmax
1
br-1
cum
ulat
ive
prob
abil
ity
CDF F(x) = P [X x]
![Page 31: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/31.jpg)
31
Stochastic DVS
For each job
1. find speed Sx for each allocated cycle x
1. time is 1/Sx and energy is (1 - F(x))S3x
such that
![Page 32: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/32.jpg)
32
Example Speed Schedule
100 MHz 200 MHz 400 MHzcycle:speed:
Job 12.5x106 cycles
spe
ed (
MH
z)
100
400
200
Job 21.2x106 cycles
Observation: speed up the processor with increasing clock cycles
![Page 33: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/33.jpg)
33
DVS s
peed
A1 A1 B1B1 A1
A1
execution
speed upwithin job
context switch1. Store speed for switched-out2. New speed for switched-in
switch back
A2
![Page 34: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/34.jpg)
34
Implementation
Hardware: HP N5470 laptop– Athlon CPU (300, 500, 600, 700, 800, 1000MHz)
round speed schedule to upper bound
process control block
standardLinux
scheduler
DVS modules• PowerNow speed scaling• Soft real-time scheduling
systemcall
Extension to Linux kernel 2.4.18716 lines of C code
![Page 35: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/35.jpg)
35
Reduces power consumptionHowever, limited due to few speed options
Evaluation: Normalized Energy
28
.8
3.7 7
.8
5
56
.7
17
.2
3.3 7
.8
5
32
.5
8.2
2.7
7.8
5
21
.928
.8
3.7 7
.8
5
42
.1
17
.2
3.3 7
.8
5
30
.1
8.2
2.7
7.8
5
20
.5
0
15
30
45
60
75
MPGDec H263Dec GSMEnc MP3Dec concurrent
no
rma
lzie
d e
ne
rgy
wrsUni wrsRec wrsSto stoUni stoRec grace-os
![Page 36: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/36.jpg)
36
Odyssey: An Example Client Architecture
Application indicates resource capabilities in its request to service
Operating system maintains/monitors available resources no need to have each
application re-implement the monitoring
An application registers a resource descriptor and an upcall event handler with the OS
OS notifies the application upon detecting resource changes
Application adjusts requests to the server
![Page 37: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/37.jpg)
Outline
Admin and recap Adaptive mobile applications
Device adaptation Server adaptation
37
![Page 38: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/38.jpg)
38
Server Adaptation
It is a good practice to design your app so that Client notifies the server about its capability Server adapts according to client capability
![Page 39: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/39.jpg)
39
Example: Content Distribution Server
Server has many dimensions to adapt image/video fidelity:
frame rate (for video)
image size
quality of image
Usage: e.g., data acceleration offered by many carriers
![Page 40: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/40.jpg)
40
Frame Encoding: Block Transform Encoding
DCT
![Page 41: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/41.jpg)
41
Discrete Cosine Transform
F[u,v] = 4C(u)C(v)
n2n-1 n-1
j=0 k=0
f(j,k) cos(2j+1)u
2n
(2k+1)v
2ncos
where
C(w) =
1
21
for w=0
for w=1,2,…,n-1
![Page 42: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/42.jpg)
42
Basis Functions of DCT
- An image is a superposition of basis functions
- DCT computes the contribution of each basis function - F[u,v]: for the basis function at position [u, v]
Q: If you want to change encoding rate, what mayyou do?
more detail
![Page 43: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/43.jpg)
43
Frame Encoding: Block Transform Encoding
DCT
Zig-zag Quantize
Run-length Code
Huffman Code
011010001011101...
![Page 44: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/44.jpg)
44
Example: MPEG Block Encoding
139 144 149 153144 151 153 156150 155 160 163159 161 162 160
original image
DCT1260 -1 -12 -5-23 -17 -6 -3-11 -9 -2 2-7 -2 0 1
DC component
AC components
Quantize
79 0 -1 0-2 -1 0 0-1 -1 0 00 0 0 0
zigzag79 0 -2 -1 -1 -1 0 0 -1 0 0 0 0 0 0 0
run-length and Huffman encoding of the stream 10011011100011...
coded bitstream < 10 bits (0.55 bits/pixel)
![Page 45: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/45.jpg)
45
Examples
Uncompressed(262 KB)
Compressed(22 KB, 12:1)
Compressed(6 KB, 43:1)
![Page 46: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/46.jpg)
Outline
Admin and recap Adaptive mobile applications
Client adaptation Server adaptation Proxy and job partition
46
![Page 47: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/47.jpg)
Discussion
When may a proxy help?
47
devicein-netproxy
in-netserver
![Page 48: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/48.jpg)
Example: Round-Trip-Time Effects
48
device server
![Page 49: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/49.jpg)
Example: Round-Trip-Time Effects
49
device server
![Page 50: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/50.jpg)
Measured Benefit of Reduced Latency
50
![Page 51: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/51.jpg)
Example System: MAUI
51
Maui serverSmartphone
Application
Client Proxy
Profiler
Solver
Maui Runtime
Server Proxy
Profiler
Solver
Maui Runtime
Application
RPC
RPC
Maui Controller
![Page 52: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/52.jpg)
How Does a Programmer Use MAUI?
Add .NET attributes to indicate “remoteable”
![Page 53: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/53.jpg)
Maui serverSmartphone
Application
Client Proxy
Profiler
Solver
Maui Runtime
Server Proxy
Profiler
Solver
Maui Runtime
Application
RPC
RPC
Maui Controller
Intercepts Application CallsSynchronizes State
Chooses local or remote
Handles Results
Provides runtime information
![Page 54: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/54.jpg)
ProfilerProfilerCallgraphCallgraph
Execution TimeExecution Time
State sizeState size
Network LatencyNetwork Latency
Network BandwidthNetwork Bandwidth
Device ProfileDevice ProfileCPU CyclesCPU Cycles
Network Power CostNetwork DelayComputational Delay
Computational Power Cost
Computational Delay
An
nota
ted
C
allg
rap
h
![Page 55: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/55.jpg)
B900 mJ15ms
C5000 mJ3000 ms
1000mJ10ms 25000 m
J
5ms
D15000 mJ12000 ms
1000
0 m
J 5m
s
A
Computation energy and delay for execution
Energy and delay for state transfer
A sample callgraph
![Page 56: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/56.jpg)
B
C
D
A
![Page 57: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/57.jpg)
FindMatch
900 mJ
InitializeFaceRecognizer
5000 mJ
1000mJ25000 m
J DetectAndExtract Faces15000 mJ
1000
0 m
J
UserInterface
![Page 58: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/58.jpg)
FindMatch
900 mJ
InitializeFaceRecognizer
5000 mJ
1000mJ25000 m
J DetectAndExtract Faces15000 mJ
1000
0 m
J
UserInterface
Cheaper to do local
Compare cost of state transfer and local comp. Pick lower cost
![Page 59: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/59.jpg)
FindMatch
900 mJ
InitializeFaceRecognizer
5000 mJ
1000mJ25000 m
J DetectAndExtract Faces15000 mJ
1000
0 m
J
UserInterface
Cheaper to do local
Cheaper to do local
Compare cost of state transfer and local comp. Pick lower cost
![Page 60: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/60.jpg)
FindMatch
InitializeFace
Recognizer
1000mJ
DetectAndExtract Faces
UserInterface 20900mJ
Cheaper to offload
![Page 61: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/61.jpg)
MAUI Implementation
Platform Windows Mobile 6.5 .NET Framework 3.5 HTC Fuze Smartphone Monsoon power monitor
Applications Chess Face Recognition Arcade Game Voice-based translator
![Page 62: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/62.jpg)
4x savings on 3G8x improvement on Wi-Fi
Face Recognizer
![Page 63: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/63.jpg)
9x improvement on wifi;
5x on 3G
Face Recognizer
![Page 64: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/64.jpg)
Up to 40% energy savings on Wi-Fi
Solver would decide not to offloadArcade Game
![Page 65: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/65.jpg)
Backup Slides
![Page 66: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/66.jpg)
66
Mobile Storage
Read miss explicit user file selection automatic hoarding/prediction, e.g., CODA,
SEER
Synchronization/consistency keep modification logs and develop merge
tools, e.g., Bayou efficient file comparisons and merging, e.g.,
rsync, LBFS
![Page 67: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/67.jpg)
67
One approach is to keep modifications as logs a user sends the logs to the servers to update
If the storage of a client is limited, it may not be able to save logs then upon reconnection, the cache manager needs to
find the difference between the stored file and its local cached copy
same problem exists for the rsync tool !
Question: how to efficiently compare the differences of two remote files (when the network connection is slow)?
![Page 68: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/68.jpg)
68
Break Files into chunks and transfer only modified chunks
Fixed chunk size does not work well why?
![Page 69: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/69.jpg)
69
Compute hash value of every 48 byte block if the hash value equals to a magic
value, it is a chunk boundary
![Page 70: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/70.jpg)
70
Bayou: Managing Update Conflicts
Basic idea: application specific conflict detection and update
Two mechanisms for automatic conflict detection and resolution dependency check merge procedure
http://zoo.cs.yale.edu/classes/cs422/2011/bib/terry95managing.pdf
![Page 71: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/71.jpg)
71
![Page 72: Mobile Software Development Framework: Adaptive Mobile Applications](https://reader035.vdocuments.net/reader035/viewer/2022081417/5681493b550346895db68681/html5/thumbnails/72.jpg)
72