Tip Pengembangan Aplikasi Onno W. Purbo
Referensi Ericsson Mobile Internet
Elements of a successful Mobile Internet application? Mobility Positioning Personalisation Transaction
The Rule of The Game.. Design for Mobility Access anywhere … in town, on the train, overseas …. on the toilet! Accommodate new (unpredictable) user behaviour ‘Instant’ access on impulse Personalise applications Design for new payment model Volume or subscription based charging Keep it Simple and very easy to use
Lessons Learned From.. Why Application Fail TCP over Wireless Networks HTTP over Wireless Networks
Why Application Fail Applications cannot handle low bandwidth connections Failure due to low throughput Application freezes while trying to transmit/receive data Application not optimised to limit data exchange Applications cannot handle a loss in connection Application times out and does not try to recover
Why Application Fail Protocol stacks not generous to long delays and varying throughput TCP, HTTP Latency in GPRS affects real time applications Wasted Bandwidth Excessive chatter - HTTP
TCP over Wireless Network Lost Packets = Congestion ? The delay and packet-loss could be very High TCP will think it’s a congestion and backs off Reducing throughput TCP makes a low bitrate Link even slower TCP reacts badly to high latency TCP loves Handshakes One TCP session => three packets are exchanged Slowing data transmission due to delayed acknowledgements Slow start algorithm after interruptions
HTTP Over Wireless Network HTTP Opens a separate TCP connection for each object on a web page Setup and shutdown of TCP connections usually cause the major delay Size of objects to small to reach the full bandwidth of the link due to the slow start mechanism of TCP
HTTP Over Wireless Network HTTP 1.1 Uses a persistent TCP connection for multiple requests No wasted time and network resources for multiple TCP handshaking Will use the full bandwidth of the link Supports compression of HTML files The amount of packets sent is reduced by 60% when using HTTP/1.1 instead of HTTP/1.0
Tips to build a good Mobile application Protocol Layer Application User Interface
Protocol Layer Reduce unnecessary chatter Recovery/restart algorithm as fast as possible Know the protocols you are working with HTTP and TCP can be very inefficient WAP solves lots of problems for you
Application Layer Don’t take the connection for granted Design for Interruptions Use multi tasking, where possible Use middleware if appropriate Find the problems early Use caching (but don’t rely on it!)
User Interface Keep the user in control and informed Progress meters, connection status etc Abort buttons Give the user choices between increasing persistency, cancelling and just keep waiting Pre-load data
And Importantly: Testing Network performance tests Protocol / Standards conformance e.g. WAP, Parlay Device compatibility End-to-End testing