a). Bagaimana spesifikasi dari open service gateway intiative (OSGI).
b). Bagaimana arsitektur 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.
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.
OSGI SPESIFIKASI
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.
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.
OSGi ARSITEKTUR
OSGi
Arsitektur adalah 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 softwar
Model lapisan dari OSGi adalah
sebagai berikut :
·
Bundel: Bundel normal jar komponen
dengan nyata tambahan header.
·
Layanan: Lapisan layanan
menghubungkan bundel dalam cara yang dinamis dengan menawarkan model menerbitkan-menemukan-bind
untuk polos Interfaces Java tua (POJI) atau Plain Old Java Objects POJO
· Layanan Registry: The API untuk jasa manajemen
(ServiceRegistration , ServiceTracker dan ServiceReference).
· Life-Cycle: The API ntuk manajemen siklus hidup untuk
(instal, start, stop, update, dan uninstall) bundel.
· Modul: Lapisan ang mendefinisikan enkapsulasi dan deklarasi
dependensi (bagaimana sebuah bungkusan dapat mengimpor dan mengekspor kode).
· Keamanan: Lapisan yang menangani aspek keamanan dengan
membatasi fungsionalitas bundel untuk pra-didefinisikan kemampuan.
· Eksekusi Lingkungan: Mendefinisikan apa yang metode dan
kelas 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
implementasi OSGi yang paling:
1.CDC-1.0/Foundation-1.0
2.CDC-1.1/Foundation-1.1
3.OSGi/Minimum-1.0
4.OSGi/Minimum-1.1
5.JRE-1.1
6.Dari J2SE-1.2 hingga J2SE-1.6
BUNDLES(Kumpulan)
Bundel
adalah sekelompok kelas Java dan sumber daya tambahan yang dilengkapi dengan
manifes rinci MANIFEST.MF file pada semua isinya, serta layanan tambahan yang
diperlukan untuk memberikan kelompok termasuk kelas Java perilaku yang lebih
canggih, sejauh deeming seluruh agregat komponen.
Di bawah ini adalah contoh khas
MANIFEST.MF file dengan Headers OSGi:
1. Bundle-Nama: Hello World
Ket: Bundle-Nama: Mendefinisikan nama terbaca-manusia
untuk bundel ini, Cukup memberikan nama pendek untuk bundel.
2. Bundle-SymbolicName: org.wikipedia.helloworld
Ket: Bundle-SymbolicName: Header hanya diperlukan,
entri ini menetapkan pengenal unik untuk bundel, berdasarkan konvensi nama
domain terbalik (digunakan juga oleh paket java ).
3. Bundle-Description: Sebuah bundel Hello World
Ket: Bundle-Description: Penjelasan mengenai fungsi
bundel itu.
4. Bundle-ManifestVersion: 2
Ket: Bundle-ManifestVersion: Menunjukkan spesifikasi
OSGi digunakan untuk membaca bundel ini.
5. Bundle-Version: 1.0.0
Ket: Bundle-Version: menunjuk nomor versi ke bundel
6. Bundle-Activator: org.wikipedia.Activator
Ket: Bundle-Activator: Menunjukkan nama kelas yang
akan dipanggil sekali bundel diaktifkan.
7. Ekspor-Paket: org.wikipedia.helloworld, version = “1.0.0″
Ket: Ekspor-Paket: mengungkapkan mana Java paket yang
terkandung dalam sebuah kemasan akan dibuat tersedia untuk dunia luar.
8. Impor-Paket: org.osgi.framework, version = “1.3.0″
Ket: Impor-Paket: Menunjukkan mana Java paket akan
diperlukan dari dunia luar untuk memenuhi dependensi yang dibutuhkan dalam
sebuah kemasan.
KEUNTUNGAN DARI TEKNOLOGI OSGI
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 dan Banyak versinya
8.Simple : OSGi API sangat simple. API OSGi hanya terdiri
dari satu paket dan berjumlah kurang dari 30 kelas.
9.Ukurannya kecil dan Kinerjanya cepat
10.Malas : Malas dalam software itu berarti bagus. Teknologi
OSGi mempunyai banyak mekanisme
hanya ketika dibutuhkan saja.
11.Aman, Sederhana dan Tidak Mengganggu Kinerja Aplikasi
Lainnya
12.Berjalan dimana saja dan Digunakan secara luas
13.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.