The Denny Depok

The Denny Depok

Gosipin IT Bareng Mas Denny Depok Yuk…

The Denny Depok RSS Feed
 
 
 
 

Google Chrome dan Next Gen Thin Client

Yang sering baca blog ini pasti tau, kalau saya enggak pernah bilang Purefect dan project lain yang sejenis sebagai WebOS. Kenapa ? Karena kata-kata OS terlalu mewah untuk sebuah lingkungan GUI yang hanya jalan di satu process, yaitu processnya browser. Walaupun ada istilah aplikasi dalam “WebOS” tersebut, tapi semua operasi aplikasi tersebut berjalan secara bergantian dimana satu aplikasi dapat mengambil semua resource CPU dan menghentikan semua aplikasi lain termasuk “WebOS”-nya sendiri.

Sudah berapa lama saya berharap kalau browser memiliki kemampuan multi thread/multi process yang bisa diakses dari sisi programming, mungkin dari javascript ato dari plugin seperti flash. Tapi melihat pertarungan antara Microsoft, Google, Adobe, Mozilla dan Opera dalam penyusun spesifikasi ES4 (Ecma Script 4, rencananya mo gantiin javascript), harapan saya mungkin berlebihan.

Tetapi saat Google mengeluarkan browser pertamanya Chrome beberapa waktu lalu, mungkin bisa ada sedikit harapan untuk WebOS. Yang paling menarik perhatian buat saya adalah model proses Chrome yang memungkinkan browser memiliki beberapa process yang terpisah. Dalam bayangan saya, kemampuan multi process ini memungkinkan kita mewujudkan WebOS yang sebenarnya, yaitu WebOS yang mampu menjalankan aplikasi-aplikasinya di process yang berbeda sehingga meng-insulasi area memori masing-masing aplikasi.

Konsep kerja WebOS yang saya pikirin adalah nanti ada sebuah page WebOS yang bertugas sebagai pengatur aplikasi dan tampilan. Jadi nanti apabila user ingin menjalankan aplikasi, maka WebOS akan membuka page baru yang dijalankan pada process yang berbeda. Page aplikasi hanya berisi javascript ato flex dimana apabila memerlukan penggambaran ke layar, aplikasi akan mengirim pesan lewat IPC ke page WebOS. Event interaksi dari user seperti keyboard/mouse diterima oleh page WebOS kemudian dikirim ke page aplikasi untuk menjalankan handler yang sesuai.

Sebenarnya konsep diatas mirip dengan cara kerja X11 saat ini, tapi yang ini berjalan diatas web. Untungnya apa ? ya desktop jadi seperti thin client, yaitu user gak perlu install software, dimana kode aplikasi yang dia butuhkan akan didownload langsung dari server, dan mungkin perlu ada mekanisme cache yang lebih smart dari cache browser yang sekarang. Terus kalo di X11 yang dikirim masih primitif gambar, saya pikir untuk WebOS lebih baik yang dikirim adalah primitif pemanggilan fungsi object. Jadi bisa dibilang control-control dilayar (dimiliki oleh page WebOS) adalah object yang bisa diremote dari page aplikasi.

Tapi sayang, process model Google Chrome sekarang menurut saya belum mendukung hal diatas. Pertama, site yang sama hanya dilayanin oleh 1 process, jadi berapapun tab yang dibuka asal sitenya sama, maka proses untuk tab-tab tersebut adalah 1. Saya cari kesempatan lewat IFrame, ternyata IFrame Chrome masih sama dengan parent frame. Saya cari untuk plugin, ternyata plugin untuk tipe yang sama berjalan di 1 process, agak aneh memang :D

Ya walaupun Chrome masih belum cocok untuk pembangunan WebOS yang sebenarnya, tapi langkah awal Chrome ini mungkin bisa menjadi celah untuk mengimplementasikan WebOS yang sesungguhnya. Saya malah melihat WebOS berpeluang besar menggantikan sistem desktop tradisional yang kita pakai sekarang.

Sebagai informasi tambahan, kemarin saya dihubungi 2 mahasiswa dari menado yang memiliki ide menarik untuk skripsinya. Intinya mereka mau membangun distro linux dimana GUInya memakai Purefect. Memang skop mereka masih pada implementasi awal dan memakai Purefect yang masih single process, tapi saya memperkirakan langkah mereka adalah salah satu langkah awal yang penting untuk membangun sistem dektop full berbasis WebOS. Jadi mungkin suatu saat nanti kita install OS yang minimal, cukup cuma untuk booting, file system minimal, networking dan X11. Kemudian semua aplikasi dan library terpusat dari server sehingga semua komputer memiliki kode terbaru dari aplikasi/library tadi. Update aplikasi tentu cuma diserver sehingga menghilangkan deployment manual ke semua komputer.

Mungkin yang masih kurang adalah masalah multi process tadi, tapi kalau kita melihat Chrome dan FireFox yang terbuka kodenya, sepertinya tidak ada masalah kalau misalnya kita merubah kode mereka sedikit sehingga bisa memberikan fasilitas yang mencukupi untuk WebOS. Kalo pendekatan yang paling memungkinkan menurut saya adalah merubah sedikit implementasi model proses untuk plugin Chrome. Yaitu dari satu jenis plugin menggunakan 1 proses diubah menjadi 1 instan plugin menjadi 1 process atau 1 thread. Sedangkan untuk flash sendiri sudah mendukung komunikasi antar instan yang bisa digunakan sebagai IPC.

Gimana, tertarik untuk mengembangkan ?

3 Responses to “Google Chrome dan Next Gen Thin Client”

  1. 1
    pebbie:

    Tapi sayang, process model Google Chrome sekarang menurut saya belum mendukung hal diatas. Pertama, site yang sama hanya dilayanin oleh 1 process, jadi berapapun tab yang dibuka asal sitenya sama, maka proses untuk tab-tab tersebut adalah 1.

    sepertinya keputusan yang diambil sudah cukup optimal mengingat untuk satu proses pun bisa beberapa thread per http request. dua situs yang berbeda pun (mail.yahoo.com dan profiles.yahoo.com dibuka dalam 2 tab) menghasilkan 2 proses. nggak kebayang kalo untuk satu situs lebih dari 1 proses. (serasa terintimidasi begitu lihat task manager :D)

    kalau IPC bagaimana? apa nggak bahaya?

  2. 2
    Denny Depok:

    Sebenernya saya nulis diatas dari perpektif WebOS. Kalo dari sisi webpage biasa, memang model gitu boleh-boleh aja. Tapi saya nekenin kan kampanye-nya Chrome bilangnya web page kayak aplikasi. Kalo dari saya sih nganggepnya kalo saya buka 2 kali situs yang sama ya artinya 2 proses. Layaknya kita buka aplikasi biasa, kalo buka 2 kali kan ada 2 proses.

    Jangan khawatir liat task manager kebanyakan, kan berapa banyak sih page yang dibuka oleh user, gak mungkin ratusan kan ?

    IPC disini maksudnya inter process communication loh. IPC sih dah biasa banget, banyak banget aplikasi yang make, dan Chrome sendiri pake IPC untuk koordinasiin antar tabnya. Kalo kayak gini apa masih dibilang IPC berbahaya ?

  3. 3
    pebbie:

    :D masih belum ngerti tentang WebOS :D

    umm, bahayanya IPC kalo nggak terkendali misal untuk kasus sekarang, pakai client-script untuk curi-curi cookie dari halaman/situs lain yang tersimpan di client. kalo seperti flash yang mirip konsep connection-based (LocalConnection) sepertinya memang lebih aman.

    sepertinya menarik kalau dari script bisa mengendalikan apakah requestnya mau dieksekusi dalam thread baru atau proses baru.

Leave a Reply