Monday, December 3, 2007

Rich Internet Application

Rich Internet Application (RIA) adalah aplikasi berbasis web (web application) yang menjalankan fungsionalitas dan fitur sebagaimana layaknya pada aplikasi-aplikasi berbasis desktop. RIA mencoba memadukan fleksibilitas dan portabilitas web application dengan kehandalan dan kemampuan eksekusi realtime dari dekstop application.
Sebagai aplikasi berbasis web, RIA berjalan dalam lingkungan client server/multitier, yang melibatkan sedikitnya 2 layer RIA mentransfer sebagian operasi/proses ke sisi client (client-side) dan sebagian proses yang lain tetap berada di server aplikasi.

Pada RIA, web browser menjadi media utama sebagai sarana presentasi dan user interface dari aplikasi. Saat user melakukan klik pada presentasi aplikasi web pada browser yang mewakili satu tindakan tertentu, maka web browser akan menterjemahkannya sebagai sebuah request yang dikirim ke server. Server kemudian akan memberikan respon sesuai dengan request yang dikirimkan. Respon yang dihasilkan bisa jadi hasil dari eksekusi script untuk proses tertentu.

Sebuah halaman web pada dasarnya merupakan hasil rakitan dari sejumlah komponen lepas, seperti image, script, CSS, applet , dan lain-lain, dan setiap penampilan satu komponen terlebih dahulu dilakukan request atas komponen tersebut kepada server. Artinya untuk menyajikan satu halaman web yang lengkap, web browser harus melakukan sejumlah request ke server dan dibalas oleh server dengan mengirimkan respon berupa komponen yang diminta oleh browser. Semakin kompleks tampilan satu halaman web, maka komunikasi antara web browser dengan web server juga menjadi semakin intens.

Pada web tradisional user harus menunggu sampai seluruh komponen selesai di download dan halaman web tampil secara lengkap, ini disebabkan karena komunikasi synchronous yang bergantung pada interaksi user, artinya proses request komponen web ke server bergantung pada aktifitas user, dan ada proses menunggu sampai respon server diterima secara lengkap. Lamanya waktu tunggu juga bergantung pada jumlah dan ukuran dari komponen yang didownload dari server. Di level ini, peranan cache sangat besar, dimana web browser tidak perlu melakukan request apabila komponen yang sama pernah yang di-request sebelumnya masih tersimpan di cache browser.

Pada perkembangan terakhir, komunikasi asynchronous sudah dapat diterapkan pada komunikasi web, dimana komponen-komponen yang nantinya akan dibutuhkan telah direquest lebih dulu oleh web browser di latar belakang, sehingga pada saat akan diperlukan komponen dapat langsung ditampilkan tanpa terasa adanya jeda utnuk menunggu proses download dari server

Dengan model komunikasi asynchronous, performance RIA meningkat secara signifikan, dan mendekati realtime sebagaimana layaknya sebuah aplikasi desktop. Asynchronous JavaScript And XML (AJAX) merupakan salah satu sarana yang memungkinkan implementasi komunikasi asynchronous pada web application

No comments: