Teknologi OSGi

Apa development platforms dan application frameworks?

Dalam kontek pengembangan software, suatu development platform adalah sekumpulan pustaka (libraries) dan alat bantu (tools) software yang membantu pengembangan komponen-komponen software, dan lingkungan runtime yang sesuai akan dapat menampung komponen-komponen yang dikembangkan, sebagaimana dapat dilihat pada gambar 1.

Gambar 1. Suatu platform pengembangan mencakup software framework dan lingkungan runtime yang mendukungnya.

Lingkungan runtime mencakup hardware, sistem operasi (OS), dan pustaka runtime yang mendukungnya. Salah satu contoh lingkungan runtime adalah Java Runtime Environment (JRE), yang meliputi Java Virtual Machine (JVM) yang mengisolasi pengembang dari detil dasar OS dan hardware.

Software framework adalah jenis khusus dari pustaka dan alat bantu suatu development platform. Wikipedia mendefinisikan software framework sebagai suatu “abstraksi untuk menyediakan fungsionalitas generik yang dapat secara selektif dikhususkan untuk menyediakan fungsionalitas tertentu.”

Application framework adalah suatu jenis software framework yang bertujuan untuk menyediakan suatu struktur dalam membuat aplikasi software. Aplikasi adalah program yang memungkinkan pengguna untuk melakukan tugas-tugas yang terkait bersama-sama.

Gambar 2. Pengembang membuat suatu aplikasi, yang digunakan oleh pengguna, dan mengembangkan suatu framework.

Suatu development platform memungkinkan pengembang untuk membuat aplikasi-aplikasi dan menampung aplikasi-aplikasi ini untuk dapat digunakan oleh pengguna akhir, sebagaimana pada gambar 2. Software development platform juga disebut sebagai Software Development Kits (SDKs).

Secara historis, development platform selalu memainkan peran impor dalam software. Java platform, yang dikenal sebagai Java Standard Edition (JSE), adalah salah satu contohnya. Dalam kasus ini, Java Development Kit (JDK) menyediakan software framework, dan Java Runtime Environment (JRE) menyediakan lingkungan runtime.

Open Service Gateway initiative (OSGi) Service Platform adalah contoh lain dari development platform, yang menggunakan JRE sebagai lingkungan runtime-nya. Sebagai tambahan, OSGi menyediakan suatu application framework yang ditempatkan di lapisan atas JDK.

OSGi dibentuk Maret 1999 oleh suatu konsorsium perusahaan-perusahaan teknologi terkemuka dengan misi untuk mendefinisikan suatu platform integrasi untuk interoperabilitas aplikasi dan servis secara universal.

OSGi menyediakan platform pengembangan baru, berbasis pada modular decoupled components dan model layanan dinamis plugable.

Domain masalah yang mendasari kehadiran OSGi

Masalah 1: Mengatasi pemrograman API yang beragam.

Masalah pertama adalah portabilitas. Dibutuhkan platform pemrograman tunggal yang mengabstraksi aplikasi dari OS dan hardware yang mendasari. Dengan kata lain, dibutuhkan suatu mesin virtual, tentu saja, Java bisa digunakan untuk memecahkan masalah ini dengan JVM-nya.

Masalah 2: Kemampuan perangkat yang bervariasi.

Platform universal harus memudahkan aplikasi untuk memisahkan kontrak layanan dari implementasi layanan. JSE  tidak memiliki layanan registri atau kerangka kerja manajemen layanan yang dapat membantu memecahkan masalah ini.

Masalah 3: Dukungan perubahan yang dinamis.

Platform harus memungkinkan deployment yang dinamis dan undeployment aplikasi yang aman. Apakah JSE memiliki dukungan untuk ini? Belum tentu. Mungkin pemecahan masalah ini bisa dengan Java class loaders, tapi tidak akan mudah, dan tidak ada cara sederhana untuk membongkar class saat telah dimuat, belum lagi bahwa tidak ada konsep application deployment unit. Konsep yang paling dekat dengan application deployment unit adalah JAR  (Java Archives), tapi JAR sendiri tidak menyediakan semua metadata yang dibutuhkan, seperti skema penamaan yang unik untuk aplikasi.
Seperti masalah sebelumnya, kita dapat mengimplementasikan solusi kita sendiri untuk deployment aplikasi secara dinamis atau mencoba untuk memanfaatkan sesuatu dari JEE.

Masalah 4: Menyediakan sistem yang ringan.

Masalah terakhir,  apapun solusi yang dipilih, harus ringan. Memang layanan direktori seperti JNDI dari JEE bisa dimanfaatkan atau menggunakan arsitektur dari Web Server, tapi solusi ini akan gagal bila dihadapkan dengan kendala berdasarkan pada pertimbangan ukuran dan  memori perangkat terhadap platform, sehingga kurang cocok sebagai solusi dan bukan pilihan yang layak.

Solusi: Suatu sistem modul dinamis untuk JAVA

 Java bisa menangani masalah portabilitas, namun tidak memiliki dukungan yang tepat untuk manajemen layanan dinamis.
Dalam definisi yang paling singkat, OSGi Service Platform adalah sistem modul dinamis untuk Java. Dalam terminologi OSGi, modul Java disebut bundel. The OSGi Service Platform terdiri dari dua komponen utama, OSGi framework dan OSGi services, seperti yang ditunjukkan pada gambar 3.

Gambar 3. OSGi Service Platform terdiri dari OSGi framework dan OSGI services.

OSGi FRAMEWORK

OSGi framework menyediakan:

  • Sebuah lingkungan eksekusi portabel dan aman berbasis Java
  • Sebuah sistem manajemen pelayanan, yang dapat digunakan untuk mendaftar dan berbagi layanan di seluruh bundel dan memisahkan layanan penyedia dari layanan pengguna
  • Sebuah sistem modul dinamis, yang dapat digunakan untuk install dan uninstall modul Java, yang disebut bundel di OSGi, secara dinamis.
  • Sebuah solusi ringan dan terukur

OSGi framework adalah struktur inti dari OSGi Service Platform. Jika diasumsikan bahwa sebuah bundel dapat menjadi sebuah aplikasi, maka definisi OSGi framework adalah sesuai dengan definisi tentang application frameworks. Artinya, OSGi framework adalah contoh dari sebuah application framework.

OSGi SERVICES

OSGI Service Platform mencakup beberapa layanan umum, dan layanan ini bisa dianggap sebagai aplikasi asli dari OSGi Service Platform. Beberapa layanan ini adalah fungsi-fungsi horisontal yang selalu dibutuhkan, seperti logging service dan configuration service. Beberapa protokol terkait juga dicakup, seperti HTTP service, yang dapat digunakan oleh aplikasi berbasis web. Dan terakhir, OSGi Service Platform juga berisi layanan yang secara intrinsik terikat pada framework, yang berarti framework tak bisa bekerja tanpa mereka, seperti bundle wiring, yang mengelola sistem modul dinamis itu sendiri, dan startlevel service, yang mengelola proses bootstrap dari framework.

Enterprise OSGi

 Seperti dapat disimpulkan dari sejarah, OSGi awalnya digunakan pada pasar embedded. Tetapi dengan seiring dengan popularitas dan kedewasaan yang semakin meningkat, OSGi bergerak ke pasar enterprise. Untuk mengatasi kebutuhan ini, OSGi Enterprise Expert Group (EEG) membuat OSGi Service Platform Enterprise Specification (Enterprise OSGi). Spesifikasi ini menggabungkan layanan-layanan OSGi yang dapat digunakan secara selektif untuk menyediakan fungsionalitas perusahaan. Layanan-layanan ini dikelompokkan ke dalam fitur enterprise.

Gambar 4. Enterprise OSGi terdiri dari OSGi framework dan beberapa OSGi services, bersama-sama mereka menyediakan fitur enterprise.

Contoh fitur enterprise, seperti yang ditunjukkan pada gambar 4, adalah sebagai berikut:

  • Manajemen dan konfigurasi – Kelompok ini mencakup layanan konfigurasi admin serta layanan JMX Management Model dan layanan Metatype.
  • Distribusi – fitur ini memungkinkan komunikasi titik-titik akhir diantara remote instances dari  OSGi framework instances. Beberapa layanan dalam kelompok ini adalah Remote Service dan SCA Configuration Type.
  • Akses data – fitur ini meliputi dukungan untuk JDBC, JPA, dan JTA.

[ROM]

2 Responses to Teknologi OSGi

  1. Suvidha Soft says:

    Very informative !!!!!!!!
    keep posting
    Thanks for posting

Leave a Reply

Your email address will not be published. Required fields are marked *

Powered by WordPress | Designed by: diet | Thanks to lasik, online colleges and seo
Skip to toolbar