Sekilas tentang arsitektur TIZEN 3.0 IVI


TIZEN 3.0 menyediakan abstraksi layanan dan perangkat dari sistem operasi (OS) untuk aplikasi. Dalam platform In-Vehicle Infotainment (IVI), layanan ini disediakan hanya melalui model pemrograman web. TIZEN menyediakan web runtime environment (WRT), yang akan menginterpretasikan aplikasi HTML5 dan CSS untuk membuat user interface dari aplikasi, dan menginterpretasikan aplikasi Javascript untuk melakukan aplikasi komputasi. TIZEN menyediakan lingkungan WRT ini sesuai dengan standar W3C yang relevan. Aplikasi untuk TIZEN 3.0 IVI diharapkan dapat beroperasi dalam lingkungan TIZEN WRT. TIZEN 3.0 menggunakan spesifikasi widget dari W3C sebagai standar yang relevan yang mendasari aplikasi WRT, yang selanjutnya disebut sebagai widget.

Selain menyediakan kompatibilitas standar WRT, TIZEN juga memperluas Javascript namespace untuk memungkinkan akses ke layanan yang spesifik dari OS TIZEN melalui Javascript. TIZEN juga mengimplementasikan bagian dari Javascript namespace yang sesuai standar W3C melalui akses ke layanan OS TIZEN. TIZEN API (Application Programming Interface) ini tersedia untuk platform IVI hanya dalam Javascript namespace. Dengan demikian, widget TIZEN diharapkan untuk menggunakan Javascript untuk mengakses TIZEN API.


TIZEN WRT menginterpretasikan widget HTML5, CSS, dan Javascript, dan kemudian mendelegasikan pengolahan lebih lanjut untuk bagian-bagian lain dari OS TIZEN. Pengoperasian grafis, seperti rendering gambar atau teks, akan dilakukan oleh compositor Wayland. Kebanyakan pengoperasian objek Javascript diproses oleh plugin web runtime, dan diproses lebih lanjut oleh berbagai TIZEN middleware RPM. Semua pengoperasian tersebut pada akhirnya akan didelegasikan ke kernel Linux, yang menyediakan level kontrol terendah atas hardware yang digunakan.

Kegiatan yang berasal dari hardware untuk pertama kali akan diproses di kernel Linux. Kernel mengkomunikasikan aktivitas dari perangkat ke middleware TIZEN lain yang sesuai, dan akhirnya ke plugin WRT, sebagai representasi operasional logika dari operasional hardware. Plugin WRT akan memperbarui state internal yang sesuai, dan berinteraksi dengan interpreter WRT dalam konteks interpretasi saat ini untuk membangkitkan event untuk widget. Sebagai contoh, sebuah event sentuhan pada permukaan layar sentuh akan terdeteksi di kernel, kemudian akhirnya diangkat ke plugin WRT. Plugin WRT dan interpreter WRT akan menemukan event logika dalam widget yang ditentukan oleh konten widget HTML5, CSS, dan Javascript. WRT akan membangkitkan event sentuhan ke elemen encapsulating HTML5 yang tepat. Jika event sentuhan tidak ditangani, WRT kemudian akan membangkitkan event mouse untuk elemen encapsulating HTML5 yang sama, sebagai proxy untuk event sentuhan.



Batasan

Walaupun lingkungan WRT menyerupai browser web dalam banyak hal, namun TIZEN WRT bukan browser. Tidak seperti browser, di WRT tidak ada konsep yang melekat pada koneksi ke server web. Akibatnya, arsitektur tidak memasukkan runtime environment untuk php, Perl, Python, maupun yang berkaitan dengan server termasuk Rails, CGI, atau teknik pemrograman web server lainnya. Dengan tidak adanya komponen web server pada TIZEN, widget diharapkan akan menjadi aplikasi berjenis "fat client," di mana logika bisnis diimplementasikan dalam client-side Javascript.


Jalur sinyal komunikasi yang spesifik melalui TIZEN tidak digambarkan secara rinci di sini. Dari perspektif widget, Server-Sent Events muncul sebagai komunikasi satu arah yang dikonfigurasi sekali. Server-Sent Events diimplementasikan dalam WRT melalui mekanisme polling, dan begitu juga dua arah pada tingkat di bawah WRT

Komunikasi Eksternal

Lingkungan TIZEN WRT meliputi obyek Javascript melalui widget yang dapat berkomunikasi dengan resource eksternal untuk widget itu. Resource eksternal bisa jadi widget lain di lingkungan TIZEN WRT yang sama, atau resource eksternal ke host komputasi seperti webservers eksternal. Sarana komunikasi yang tersedia termasuk HTML5 Web Messaging, Server - Sent Events, WebSockets, dan XMLHttpRequest Level 2 (juga dikenal sebagai AJAX). Metode komunikasi ini, yang secara khusus dirancang untuk digunakan dengan resource eksternal dengan host komputasi di TIZEN adalah Server-Sent Events, WebSockets, dan XMLHttpRequest Level 2.

Metode komunikasi ini terpisah dari protokol yang mendasari dan medium hardware di mana mereka beroperasi. Sebagai contoh, sebuah XMLHttpRequest dapat dialihkan dan dikirimkan melalui jaringan kabel, seperti kabel Cat 5e, atau melalui jaringan nirkabel, seperti 3G atau 802.11n (Wi-Fi). Untuk tujuan implementasi praktis, telah diantisipasi bahwa untuk instalasi pada kendaraan medium hardware akan nirkabel karena sifat mobile yang diasumsikan pada kendaraan.



Ekstensi

Widget mungkin memerlukan operasional logika yang tidak dapat dilakukan dalam lingkungan TIZEN WRT, dan untuk komunikasi dimana resource eksternal ke host komputasi tidak akan sesuai. Sebuah contoh adalah sebuah widget yang menyediakan sebuah interface untuk hardware baru tidak didukung oleh TIZEN. Untuk operasional logika ini, solusi yang paling tepat adalah untuk memperluas TIZEN itu sendiri. Dalam banyak kasus, ekstensi TIZEN yang sesuai akan mencakup plugin TIZEN WRT yang baru.

Plugin TIZEN WRT adalah program C atau C++ yang dikompilasi menjadi Linux shared object (file .so) dan dimuat pada startup oleh OS TIZEN. Ketika plugin WRT sesuai dengan interface yang sesuai, plugin dapat membuat fungsi yang tersedia untuk aplikasi dalam lingkungan WRT. Ketersediaan fungsi ini diimplementasikan dengan memperluas obyek TIZEN di lingkungan WRT Javascript, atau dengan menambahkan obyek baru pada peer level ke obyek TIZEN.

Tergantung pada sifat dari fungsi yang diperluas, pemrograman TIZEN baru lainnya juga mungkin diperlukan. Sebagai contoh, beberapa hardware baru dapat dikenali oleh kernel TIZEN, tapi untuk hardware baru yang kurang mendapat dukungan kernel, driver kernel mungkin diperlukan di samping plugin WRT.