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.
Manfaat
Open Service Gateway Initiative (OSGI)
1. Mengurangi Kompleksitas (Reduced
Complexity)
Mengembangkan
dengan teknologi OSGi berarti mengembangkan bundel: komponenOSGi. Bundel adalah
modul. Mereka menyembunyikan internal dari bundel lain danberkomunikasi melalui
layanan didefinisikan dengan baik. Menyembunyikan internals berartilebih banyak
kebebasan untuk berubah nanti. Hal ini tidak hanya mengurangi jumlah bug, itu
juga membuat kumpulan sederhana untuk berkembang karena bundel ukuran
benarmenerapkan sepotong fungsionalitas melalui interface didefinisikan dengan
baik. Ada sebuahblog menarik yang menjelaskan teknologi OSGi apa yang mereka
lakukan bagi prosespembangunan
2. Reuse
Para model
komponen OSGi membuatnya sangat mudah untuk menggunakan banyak komponen pihak
ketiga dalam suatu aplikasi. Peningkatan jumlah proyek-proyek sumber terbuka
memberikan JAR’s mereka siap dibuat untuk OSGi. Namun, perpustakaan komersial
jugamenjadi tersedia sebagai bundel siap pakai.
3. Real World
OSGI
kerangka kerja yang dinamis. Ini dapat memperbarui bundel on the fly dan
pelayanan yang datang dan pergi. Ini dapat menghemat dalam penulisan kode dan
juga menyediakan visibilitas global, debugging tools, dan fungsionalitas lebih
daripada yang telah dilaksanakan selama satu solusi khusus.
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.
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.
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.
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).
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.
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: