Challenges and Lessons in Developing Middleware on Smart Phones
Riva, Kangashsarju
smart phones middleware development platforms
@article{riva:ieee-computer2008,
title={Challenges and Lessons in Developing Middleware on Smart Phones},
author={Oriana Riva and Jaakko Kangasharju},
booktitle={{IEEE} Computer},
year={2008},
volume={41},
number={10}
}
Mostly ARM architecture
- 200--250MHz, some 300MHz
- 64--128 Mbytes memory
- Running programs only have ~ 10--20 Mbytes
- 8Gbytes external flash storage (can't be used as virtual memory)
Symbian OS has 70% market share
780--1200 mAh; sufficient for several days standby/few hours operation
- 6mW consumption idle; 76 mW w/ backlight & display on
- Bluetooth discovery 292mW; transferring 136 bytes costs 0.1 joule
- WiFi draws 300mA, leading to 1190mW
- GSM 450--480 mW every 50--60 seconds; UMTS has 1W peaks for several seconds
Not always true that it is better to offload computations
- On Nokia 7610, transmitting 1 byte on GPRS is equal to computing for 1.5ms
- On Nokia 9500, equal to only 170 microseconds of computing
Local processing can be a problem though
- Anecdote of screen refresh consuming substantially more time than round trip over WiFi
- Flash memory access can also be time consuming
Context provisioning
Resource awareness and efficient use is a huge issue
- Requires accounting at all layers
- Policy based approaches are not flexible enough to deal with changing environment, usage
TCP handshake introduces significant latency
- Should keep connections open as much as possible
- But this is a power drain...
- Should aggregate messages as much as possible
Not many common frameworks for accessing sensors
- Many sensors don't currently output data in realtime
Ad hoc network setup, management is very idiosyncratic and problematic
Needs better asynchronous programming frameworks
- Most applications are basically reactive
- Multi-threading is limited, performs poorly, not recommended
- Phones not designed for multi-tasking; poor context switches
Of note: