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 pemrogrammenggunakan, untuk
memungkinkan komunikasi dan kontrol antara penyedia layanan danperangkat di
dalam rumah atau usaha kecil jaringan. OSGI API akan dibangun pada
bahasapemrograman Java. Program java pada umumnya dapat berjalan pada platform
sistem operasi komputer. 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 menyediakan services seperti manajemen dalam siklus
hidup suatu program dansecurity-nya. Beberapa OSGI yang open source :
- Equinox
- Knoplerfish
- Apache felix
Implementasi dari OSGI adalah membolehkan pengembang
aplikasi untuk memecah aplikasi menjadi beberapa modul yang saling tergantung
(interdependencies). Dengan begitu, aplikasi lebih mudah untuk diatur.
Manfaat OSGI :
- Mengurangi Kompleksitas (Reduced Complexity)
- Reuse
- Real World
- Easy Deployment
- Dynamic Updates
- Simple
- Kecil (Small)
- Cepat (Fast)
A.
Spesifikasi 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.
B.
Arsitektur 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:
- 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.
- 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 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.
- Siklus Hidup (Life-Cycle)
API untuk manajemen siklus hidup
untuk (instal, start, stop, update, dan uninstall) bundel.
- Modul
Lapisan yang mendefinisikan
enkapsulasi dan deklarasi dependensi (bagaimana sebuah bungkusan dapat
mengimpor dan mengekspor kode).
- Keamanan
Layer yang menangani aspek keamanan
dengan membatasi fungsionalitas bundel untuk pra didefinisikan kemampuan.
- 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.
Refrensi
:
0 comments:
Posting Komentar