A.
PENGERTIAN OSGI
OSGI
(Open Service Gateway Initiative) adalah sebuah rencana industri untuk cara
standar untuk menghubungkan perangkat seperti perangkat rumah tangga dan sistem
keamanan ke Internet. OSGI berencana menentukan program aplikasi antarmuka
(API) untuk pemrogram menggunakan, untuk memungkinkan komunikasi dan kontrol
antara penyedia layanan dan perangkat di dalam rumah atau usaha kecil jaringan.
OSGI API akan dibangun pada bahasa pemrograman Java. Program java pada umumnya
dapat berjalan pada platform sistem operasi komputer. OSGI adalah sebuah
interface pemrograman standar terbuka.
B.
ARSITEKTUR DARI OSGI
Ada
kerangka OSGI yang menyediakan suatu lingkungan untuk modularisasi aplikasi ke
dalam kumpulan yang lebih kecil.
Kerangka
kerja konseptual yang dibagi dalam bidang-bidang berikut:
1.
Bundel
Kumpulan
jaringan normal komponen dengan nyata tambahan header. Sebuah bundel adalah
sekelompok kelas Java dan sumber daya tambahan yang dilengkapi dengan rincian
file pada MANIFEST.MF nyata semua isinya, serta layanan tambahan yang
diperlukan untuk memberikan kelompok termasuk kelas Java perilaku yang lebih
canggih, dengan tingkat deeming seluruh agregat sebuah komponen.
2.
Layanan
Layanan
yang menghubungkan lapisan bundel dalam cara yang dinamis dengan menawarkan,
menerbitkan dan menemukan model dapat mengikat Java lama untuk menikmati objek
(POJO). Siklus hidup menambahkan lapisan bundel dinamis yang dapat diinstal,
mulai, berhenti, diperbarui dan dihapus. Buntalan bergantung pada lapisan modul
untuk kelas loading tetapi menambahkan API untuk mengatur modul – modul dalam
run time. Memperkenalkan lapisan siklus hidup dinamika yang biasanya bukan
bagian dari aplikasi. Mekanisme ketergantungan luas digunakan untuk menjamin
operasi yang benar dari lingkungan.
3.
Layanan Registrasi (Services-Registry)
API
untuk manajemen jasa (ServiceRegistration, ServiceTracker dan
ServiceReference). OSGi Alliance yang telah ditentukan banyak layanan. Layanan
yang ditentukan oleh antarmuka Java. Kumpulan dapat mengimplementasikan
antarmuka ini dan mendaftarkan layanan dengan Layanan Registri. Layanan klien
dapat menemukannya di registri, atau bereaksi ketika muncul atau menghilang.
4.
Siklus Hidup (Life-Cycle)
API
untuk manajemen siklus hidup untuk (instal, start, stop, update, dan uninstall)
bundel.
5.
Modul
Lapisan
yang mendefinisikan enkapsulasi dan deklarasi dependensi (bagaimana sebuah
bungkusan dapat mengimpor dan mengekspor kode).
6.
Keamanan
Layer
yang menangani aspek keamanan dengan membatasi fungsionalitas bundel untuk pra
didefinisikan kemampuan.
7.
Pelaksanaan Lingkungan
Mendefinisikan
metode dan kelas apa yang tersedia dalam platform tertentu. Tidak ada daftar
tetap eksekusi lingkungan, karena dapat berubah sebagai Java Community Process
menciptakan versi baru dan edisi Jawa. Namun, set berikut saat ini didukung
oleh sebagian besar OSGI implementasi:
·
CDC-1.0/Foundation-1.0
·
CDC-1.1/Foundation-1.1
·
OSGi/Minimum-1.0
·
OSGi/Minimum-1.1
·
JRE-1.1
·
Dari J2SE-1.2 hingga J2SE-1,6
C. KEUNTUNGAN TEKNOLOGI OSGI
Alasan utama mengapa teknologi OSGi
dapat sukses karena teknologi ini menyediakan komponen system yang benar-benar
matang yang dapat bekerja di lingkungan yang sangat banyak jumlahnya. Komponen
system yang biasa digunakan untuk membangun aplikasi yang tingkat
kekompleksannya sangat tinggi seperti IDEs (Eclipse), aplikasi server
(GlassFish, IBM Websphere, Oracle/BEA Weblogic, Jonas, JBoss), aplikasi
framework (Spring, Guice), otomatisasi industry, telepon dan banyak lainnya. Keuntungan
dari teknologi OSGi antara lain adalah sebagai berikut :
1. Mengurangi kompleksitas : mengembangkan dengan OSGi berarti
menembangkan bundles : salah satu komponen OSGi. Bundles adalah modul. Bundles
menyembunyikan aspek internalnya dari bundles lainnya. Hal ini berarti ada
banyak kebebasan untuk menggantinya di kemudian hari.
2. Dapat digunakan kembali : model
komponen OSGi sangat mudah digunakan dan dapat digunakan dengan aplikasi pihak
ketiga.
3. RealWorld : OSGi framework dinamik.
Hal ini berarti OSGi dapat diupdate secara online.
4. Mudah Penyebarannya : teknologi OSGi
bukanlah sebuah teknologi standard. OSGi dapat dimanage sedemikian rupa serta
dapat diatur cara penginstalannya.
5. Update yang dinamik : OSGi komponen
bisa diupdate secara dinamik.
6. Adaptif : model komponen OSGi
didesain sedemikian rupa hingga diperbolehkan untuk mengkombinasi dan
mencocokan antar komponen.
7. Transparan.
8. Banyak versinya.
9. Simple : OSGi API sangat simple. API
OSGi hanya terdiri dari satu paket dan berjumlah kurang dari 30 kelas.
10. Ukurannya kecil
11. Kinerjanya cepat
12. Malas : Malas dalam software itu berarti bagus. Teknologi
OSGi mempunyai banyak mekanisme hanya ketika dibutuhkan saja.
13. Aman
14. Tidak Mengganggu Kinerja Aplikasi Lainnya
15. Berjalan dimana saja
16. Didukung Oleh Berbagai Perusahaan : OSGi juga didukung oleh
berbagai perusahaan seperti Oracle, IBM, Samsung, Nokia, IONA, Motorola, NTT,
Siemens, Hitachi, Deutsche Telekom, Redhat, Ericsson, dan masih banyak lagi.
Jika sedang mengembangkan Java maka
teknologi OSGi merupakan langkah lanjut yang harus ditempuh karena teknologi
OSGi dapat memecahkan masalah yang mungkin tidak akan terbayangkan sebelumnya.
Keuntungan menggunakan teknologi OSGi yang begitu berguna jika kita menggunakan
Java, maka sudah seharusnya teknologi OSGi masuk berada dalam kotak peralatan
kita.
Sumber
: http://www.osgi.org