Open Service
Gateway Initiative
Open Service Gateway Initiative (OSGi) adalah sebuah system dan
aplikasi interoperability berbasis komponen platform yang terintegrasi. OSGi
merupakan system modul dinamik untuk Java. Teknologi OSGi adalah Universal Middleware.
Teknologi OSGi menyediakan sebuah service-oriented, lingkungan yang berbasis
komponen untuk pengembang dan menawarkan jalan standard untuk mengatur siklus
hidup software. Kemampuan ini dapat menambah nilai jangkauan dari computer dan
peralatan yang menggunakan platform Java dengan sangat hebat. Teknologi OSGi
mengadopsi keuntungan dari menambah time-to-market dan mengurangi biaya
pengembangan karena teknologi OSGi menyediakan subsistem komponen yang
terintegrasi dari pre-build dan pre-tested. Teknologi ini juga mengurangi biaya
perawatan dan memberikan kesempatan aftermarket yang baru dan unik karena
jaringan dapat digunakan untuk update secara dinamik dan mengirimkan service
dan aplikasi di lapangan.
· ARSITEKTUR
sebuah set
spesifikasi yang mendefinisikan sebuah komponen system dinamik untuk Java.
Spesifikasi ini memungkinkan sebuah model pengembangan dimana aplikasi (secara
dinamik) terdiri dari berbagai komponen yang berbeda. Spesifikasi OSGi
memungkinkan komponen-komponennya untuk menyembunyikan implementasinya dari
komponen lainnya ketika berkomunikasi melalui services dimana biasanya ketika
hal ini berlangsung implementasi antar komponen dapat terlihat jelas. Model
yang simple ini telah jauh mencapai efek dari segala aspek dari proses pengembangan
software.
Definisi :
a.Bundles : Bundles adalah komponen OSGi yang dibuat oleh pengembang/developer.
b.Services
: Lapisan service menghubungkan bundles dalam sebuah jalan dinamik dengan
menawarkan model
publish-find-bind untuk objek Java yang lama.
c.Life Cycle : API untuk menginstall, memulai, menghentikan, update dan menguninstall
c.Life Cycle : API untuk menginstall, memulai, menghentikan, update dan menguninstall
bundles.
d.Modules :
lapisan yang menjelaskan bagaimana bundles dapat mengimport dan
mengexport kode.
e.Security : Lapisan yang memegang aspek keamanan.
f.Execution
Environment : menjelaskan class dan method apa yang ada di platform.
· Fungsional
·
Mengurangi kompleksitas dalam perubahan atau
penambahan plugins(Reduce Complexity)
Mengembangkan dengan teknologi OSGi berarti mengembangkan bundle
yang merupakan komponen OSGi. Bundle tersebut menyembunyikan komponen internal
mereka dari bundel lain dan berkomunikasi melalui layanan yang didefinisikan
dengan baik. Menyembunyikan internal berarti mampu memberi kebebasan untuk mengubahnya
dikemudian hari. Hal ini tidak hanya mampu mengurangi jumlah bug, melainkan
mampu membuat bundle lebih sederhana untuk dikembangkan.Komponen OSGi dapat
digunakan lagi untuk aplikasi yang lain (Reuse)
Model komponen dari OSGi membuatnya sangat mudah untuk digunakan
oleh pihak ketiga dalam membangun sebuah aplikasi, peningkatan jumlah dari
proyek open source memberikan JAR mereka siap untuk dibuat OSGi.
Namun library komersial pun siap menjadi bundles.
·
Mudah dalam deployment karena menyediakan API yang dapat
diintegrasikan dengan sistem manajemen eksternal (Easy Development).
· Bundle dapat
di-update secara dinamik tanpa mengubah sistem dasarnya bila di-uninstall
(Dynamic Update).
·
Adaptif untuk semua service yang tersedia (Adaptive)
Model komponen OSGi dirancang dari bawah ke atas untuk memungkinkan
pencampuran dan pencocokan komponen. Hal tersebut mengharuskan dependensi
komponen dan mengharuskan komponen-komponen untuk hidup di suatu lingkungan di
mana dependensi opsional tidak selalu tersedia. Daftar layanan OSGi adalah
catatan yang dinamis di mana bundel dapat mendaftarkan, mendapatkan, dan
mendengarkan layanan. Model layanan dinamis ini memungkinkan bundel menemukan
kemampuan apa yang tersedia dalam diri sistem dan melakukan penyesuaian
fungsionalitas yang mereka berikan. Hal ini membuat kode lebih flexible dan
tahan terhadap perubahan.
·
Beberapa bagian dapat di-shutdown untuk menyelesaikan bug.
· Simple
The OSGi API sangat sederhana. API inti hanya terdiri dari satu
paket dan kurang dari 30 kelas / interface. API inti ini cukup untuk menulis
kumpulan, menginstalnya, start, stop, update dan uninstall mereka.
· Small
OSGi
Release 4
Framework ini dapat diimplementasikan kedalam 300KB JAR file.
· Struktural
Module
Konsep
modul adalah pekerjaan yang lebih mudah. Module adalah inti dari spesifikasi
dan pemakaian dalam konsep bundle. Dalam isrilah Java, bundle ada dalam file
lama JAR, Osgi menyembunyikan segalanya kecuali setelah di-export.
Service
Alasan
kenapa kita butuh model service dikarenakan Java sulit ditulis dengan class
sharing. Solusi standart java menggunakan Factories menggunakan dynamic class
dan static.
Deployment
Bundle
dijalankan di OSGI Framework. Ini bukanlah kontainer seperti server aplikasi
java. Ini adalah collaborative environment yang berjalan di virtual machine
yang sama dan share kode.
Implementation
Spesifikasi
OSGI membutuhkan referensi implementasi setiap spesifikasi. Bagaimanapun, sejak
spesifikasi pertama selalu untuk perusahaan telah diimplementasikan sebagai
open source. Sekarang telah ada 4 open source framework dan banyak implementasi
OSGI.
Konklusi
Spesifikasi
OSGI menyediakan model komponen yang dewasa dan komprehensif dengan API yang
sangat efektif. Merubah monolitik atau plugin yang berkembang didasarkan sistem
OSGI hampir selalu menyediakan peningkatan yang besar dan lebih banyak projek
yang dikemas.
Sumber