Mobile Internet

Onno W. Purbo
Dari data yang saya peroleh dari rekan-rekan di Ericsson, tampaknya pengguna selullar di Indonesia akan lebih banyak daripada telepon konvensional (PT. Telkom) pada tahun 2002-2003. Dengan kecepatan pertumbuhan pengguna yang fantastis > 75% tahun 2000.

Dengan kondisi yang demikian aplikasi mobile internet akan menjadi menarik di tahun-tahun mendatang.

Dengan akan dimotori oleh teknologi 3G phase 1, seperti EDGE & WCDMA yang mampu dioperasikan pada kecepatan 2Mbps dan bukan mustahil mendekati kecepatan 8Mbps (pada evolusi 3G) akan menyebabkan aplikasi mobile internet menjadi semakin menarik. Pertempuran di Indonesia tampaknya secara perlahan di mulai oleh Indosat, Telkom yang di dukung oleh para vendornya. Sayangnya alokasi frekuensi 3G tampaknya sudah habis di alokasi ke operator nasional, sehingga investor asing kesulitan masuk ke pasar nasional.

Terlepas dari intrik politik di atas, apa yang perlu kita perhatikan untuk berkiprah dalam mobile Internet – khususnya sebagai content developer / content provider? Dari beberapa naskah yang ada (sebagian saya peroleh dari Ericsson), tampaknya ada empat (4) elemen yang akan memungkinkan sebuah aplikasi mobile internet untuk sukses, yaitu, mobility, positioning, personifikasi dan transaksi. Dari kebanyakan data yang ada, maka aplikasi utama yang akan menjadi andalan mobile Internet adalah pengiriman berita (SMS, e-mail, FAX dll). Yang disusul dengan informasi / berita, search engine, entertainment.

Oleh karena itu, “aturan” yang harus di taati oleh pengembang aplikasi mobile internet adalah (1) mendesain untuk mobilitas (akses dari mana saja, di kota, di kereta api, di mobil, jika perlu di toilet), (2) mengakomodasi kebiasaan pengguna yang kadang tidak terprediksi, akses informasi secara instan & personifikasi aplikasi, (3) merancang model pembayaran yang baru (yang akan men-charge secara volume atau langganan), dan (4) simple, mudah di gunakan.

Tentunya tidak mudah juga untuk membangun aplikasi di atas infrastruktur wireless Internet. Banyak aplikasi yang tidak di rancang untuk sambungan kecepatan rendah, gagal karena truput rendah, tidak dapat menangani loss connection, time out dan gagal merecover dari retry dsb. Semua ini juga karena berbagai kelemahan protokol TCP & HTTP yang digunakan.

Beberapa contoh masalah protokol TCP di jaringan wireless, seperti, jika ada paket yang hilang biasanya TCP mengasumsikan jaringan congestion (di wireless belum tentu congestion) akibatnya truput akan di rendahkan. Pada link lambat, TCP akan sangat memperlambat link. TCP sangat buruk bereaksi kepada delay yang tinggi. TCP sangat hobby dengan handshake, bayangkan untuk membuka satu hubungan TCP membutuhkan tiga (3) exchange paket – akibatnya proses transaksi data akan menjadi delay / lambat. Jika ada interupsi, TCP biasanya akan menjalankan alogirtma untuk start yang lambat.

Masalah pada protokol HTTP 1.0 cukup banyak & tidak baik untuk digunakan di jaringan wireless. Oleh karenanya sangat di sarankan untuk menggunakan HTTP 1.1, karena menggunakan sambungan TCP presistance untuk banyak pemintaan. Tidak ada waktu & bandwidth yang dibuang untuk multiple TCP handshaking, dan akan menggunakan seluruh bandwidth yang ada, di samping kemampuan untuk kompresi file HTML. Secara total ada pengurangan 60% paket jika menggunakan HTTP 1.0 di bandingkan 1.1.

Beberapa tip sederhana untuk mengembangkan aplikasi mobile Internet dapat digolongkan dalam tiga (3) bagian besar, yaitu, lapisan protokol (HTTP), lapisan aplikasi, dan user interface.

Pada lapisan protokol beberapa tip sederhana yang perlu diperhatikan adalah kurangi dialog yang tidak perlu antara server dengan pengguna, gunakan algoritma untuk restart / recovery yang cepat, kenali protokol yang yang anda gunakan karena HTTP & TCP bisa sangat tidak effisien di jaringan wireless, WAP mungkin akan memecahkan beberapa masalah yang ada.
Pada lapisan aplikasi, beberapa hal yang perlu diperhatikan adalah jangan mengasumsikan bahwa hubungan dengan handphone akan selalu andal & reliable, disain untuk menangani interupsi, gunakan multi tasking jika memungkinkan, gunakan middleware jika mungkin, temukan masalah sedini mungkin, dan gunakan cache (tapi jangan tergantung pada cache).

Pada interface pengguna, kita harus menjaga agar pengguna tetap merasa mengontrol dan terinformasikan, ada ukuran progress (kelangsungan proses), status sambungan dll, juga perlu di tambahkan tombol abort (batalkan), kalau perlu berikan pengguna pilihan antara menaikan presistensi (kengototan), batal dan terus menunggu, dan terakhir sebisa mungkin data di pre-load di handset user.

Terakhir yang mungkin akan penting sekali dalam proses pembuatan aplikasi adalah proses uji coba (testing), yang perlu dilakukan adalah network performance test, konformasi protokol / standar (WAP dll), kompatibilitas peralatan, dan test dari ujung ke ujung.