Sumber :
-
http://addebetycaem.blogspot.com/2011/01/spesifikasi-dari-open-services-gateway.html
-
http://cosaviora.blogspot.com/2011/01/spesifikasi-dari-osgi-open-service.html
- http://luckyug.wordpress.com/2013/11/19/open-service-gateway/
- http://sarrahjennonica.blogspot.com/2013/11/tulisan-10-open-service-gateway.html
Open Service Gateway
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.
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.
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
Keuntungan Teknologi OSGi
Menjelaskan teknologi OSGi kepada
yang belum familiar dengan teknologi ini sangatlah sulit. Ada begitu banyak
artikel yang menjelaskan teknologi OSGi tetapi hal itu masih belum bisa
dimengerti oleh user yang benar-benar awam karena teknologi OSGi menyediakan
solusi untuk permasalahan yang banyak orang menganggap bahwa maslah itu
merupakan aspek instrinsik dari Java.
Permasalahan ini sebenarnya bukan
masalah instrinsik dari Java dan teknologi OSGi dapat mengatasi itu semua.
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. Real World : 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. Sederhana
15. Tidak Mengganggu Kinerja
Aplikasi Lainnya
16. Berjalan dimana saja
17. Digunakan secara luas
18. 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.