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.
The OSGI Alliance (sebelumnya dikenal sebagai Open Services Gateway inisiatif,
sekarang nama kuno) adalah sebuah organisasi standar terbuka yang didirikan
pada Maret 1999. Aliansi dan anggota – anggotanya telah ditentukan sebuah
layanan berbasis Java platform yang dapat dikelola dari jarak jauh.
Mengetahui bagaimana spesifikasi dari OSGI
Inti bagian dari spesifikasi adalah suatu kerangka kerja yang mendefinisikan
aplikasi model manajemen siklus hidup, sebuah layanan registrasi, sebuah
lingkungan eksekusi dan modul. Berdasarkan kerangka ini, sejumlah besar OSGI
layers, API, dan Jasa telah ditetapkan.
Spesifikasi OSGI yang dikembangkan oleh para anggota dalam proses terbuka dan
tersedia untuk umum secara gratis di bawah Lisensi Spesifikasi OSGI. OSGI
Alliance yang memiliki program kepatuhan yang hanya terbuka untuk anggota. Pada
Oktober 2009, daftar bersertifikat OSGI implementasi berisi lima entri.
Spesifikasi OSGI yang sekarang digunakan dalam aplikasi mulai dari ponsel ke
open source Eclipse IDE. Wilayah aplikasi lain meliputi mobil, otomasi
industri, otomatisasi bangunan, PDA, komputasi grid, hiburan (misalnya
iPronto), armada manajemen dan aplikasi server. Adapun spesifikasi yang lain
dimana OSGI akan dirancang untuk melengkapi standar perumahan yang ada, seperti
orang – orang LonWorks (lihat kontrol jaringan), CAL, CEBus, HAVi, dan
lain-lain.
Mengetahui bagaimana arsitektur dari OSGI
Ada kerangka OSGI yang menyediakan suatu lingkungan untuk modularisasi aplikasi
ke dalam kumpulan yang lebih kecil. Setiap bundel adalah erat – coupled,
dynamically loadable kelas koleksi, botol, dan file-file konfigurasi yang
secara eksplisit menyatakan dependensi eksternal mereka (jika ada).
Kerangka kerja konseptual yang dibagi dalam bidang-bidang berikut:
1. Bundel
Kumpulan jar 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 •
Sumber :
http://ayazmaniez.wordpress.com/2009/11/24/open-service-gateway-initiative-osgi/