Overview
OSGI adalah konsorsium yang didirikan oleh Ericsson, IBM, Oracle, dan Sun. OSGI dikenal juga sebagai Dynamic Module System untuk java. OSGI merupakan framework untuk mengumpulkan komponen (bundle) fungsional dalam membuat suatu program.
OSGI menyediakan services seperti manajemen dalam siklus hidup suatu program dan security-nya. Beberapa OSGI yang open source :
a. Equinox
b. Knoplerfish
c. Apache felix
Implementasi dari OSGI adalah membolehkan pengembang aplikasi untuk memecah aplikasi menjadi beberapa modul yang saling tergantung (interdependencies). Dengan begitu, aplikasi lebih mudah untuk diatur.
Keuntungan menggunakan OSGI :
a. Mengurangi kompleksitas dalam perubahan atau penambahan plugins.
b. Komponen OSGI dapat digunakan lagi untuk aplikasi yang lain.
c. Mudah dalam deployment karena menyediakan API yang dapat diintegrasikan dengan sistem manajemen eksternal.
d. Bundle dapat di-update secara dinamik tanpa mengubah sistem dasarnya bila di-uninstall.
e. Adaptif untuk semua service yang tersedia.
f. Beberapa bagian dapat di-shutdown untuk menyelesaikan bug.
Arsitektur OSGI
Model layer dari OSGI :
Keterangan :
- Bundle adalah komponen OSGI yang dibuat oleh developer. Bundle ini dapat menggunakan service yang disediakan oleh layer lain pada OSGI (seperti security, service binding, life-cycle management, dll.).
- Services adalah layer yang menghubungkan bundle secara dinamik oleh penawaran dari model (publish-find-bind) untuk objek java. Selain itu, layer ini membolehkan service bundle untuk didaftarkan (registered).
- Life-cycle adalah layer yang menyediakan layanan untuk bundle starting, stopping, updating, installing, dan uninstalling dalam framework OSGI. Layer ini memiliki API untuk melakukan layanan tersebut.
- Modules adalah layer yang menyediakan class dasar untuk loading fungsionalnya. Layer ini juga menjelaskan bagaimana bundle dapat mengimpor dan mengekspor kode.
- Security adalah layer untuk menangani aspek keamanan (security).
- Execution environment adalah layer yang menjelaskan method dan class apa yang tersedia dalam platform OSGI.
Semoga bermanfaat, bila ada kesulitan dapat comment di blog ini.
Sumber :
Kira-kira kegunaannya dalam pembuatan aplikasi apa saja ya, mas?
BalasHapusKegunaannya untuk pembuatan aplikasi yang terdiri dari banyak plugin di java.
BalasHapus