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.
Proses Spesifikasi
Spesifikasi OSGi dikembangkan oleh
para anggota dalam proses terbuka dan tersedia untuk publik secara gratis di
bawah Lisensi Spesifikasi OSGi. The Alliance OSGi memiliki kepatuhan program
yang hanya terbuka untuk anggota. Pada November 2010, ada tujuh bersertifikat
OSGi kerangka implementasi . Sebuah halaman terpisah daftar baik bersertifikat
dan non-bersertifikat Implementasi Spesifikasi OSGi, yang meliputi kerangka
OSGi dan spesifikasi OSGi lainnya.
Kerangka OSGi (OSGi framework)
Kerangka OSGi adalah sistem modul
dan layanan platform untuk Java bahasa pemrograman yang menerapkan lengkap dan
dinamis model komponen , sesuatu yang seperti tahun 2012 tidak ada di Jawa
standalone / VM lingkungan. Aplikasi atau komponen (datang dalam bentuk dari
bundel untuk penyebaran) dapat jarak jauh diinstal, mulai, berhenti,
diperbarui, dan dihapus tanpa memerlukan restart, pengelolaan paket Jawa /
kelas ditentukan dengan sangat rinci. Aplikasi manajemen siklus hidup (start,
stop, install, dll) dilakukan melalui API yang memungkinkan untuk remote
download dari kebijakan manajemen. Registri layanan memungkinkan berkas untuk
mendeteksi penambahan layanan baru, atau penghapusan layanan dan beradaptasi
sesuai.
Spesifikasi OSGi telah bergerak
melampaui fokus asli gateway layanan, dan sekarang digunakan dalam aplikasi
mulai dari ponsel ke open source Eclipse IDE. Area aplikasi lainnya termasuk
mobil, otomasi industri, otomatisasi bangunan, PDA, komputasi grid, hiburan,
armada manajemen dan aplikasi server.
Arsitektur (Architecture)
Setiap kerangka yang menerapkan
standar OSGi menyediakan suatu lingkungan untuk modularisasi aplikasi ke dalam
bundel kecil. Setiap bundel adalah koleksi, erat dynamically loadable kelas,
guci, dan file konfigurasi yang secara eksplisit menyatakan dependensi
eksternal mereka (jika ada).
Kerangka ini secara konseptual
dibagi menjadi bidang-bidang 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.
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 :
Bundle-Nama: Hello World
Bundle-SymbolicName:
org.wikipedia.helloworld
Bundle-Description: Sebuah bundel
Hello World
Bundle-ManifestVersion: 2
Bundle-Version: 1.0.0
Bundle-Activator:
org.wikipedia.Activator
Ekspor-Paket:
org.wikipedia.helloworld, version = “1.0.0″
Impor-Paket: org.osgi.framework,
version = “1.3.0″
Makna dari isi dalam contoh adalah
sebagai berikut :
- Bundle-Nama: Mendefinisikan
nama terbaca-manusia untuk bundel ini, Cukup memberikan nama pendek untuk
bundel.
- Bundle-SymbolicName: Header
hanya diperlukan, entri ini menetapkan pengenal unik untuk bundel,
berdasarkan konvensi nama domain terbalik (digunakan juga oleh paket
java ).
- Bundle-Description: Penjelasan
mengenai fungsi bundel itu.
- Bundle-ManifestVersion: Menunjukkan spesifikasi OSGi digunakan untuk
membaca bundel ini.
- Bundle-Version: menunjuk
nomor versi ke bundel.
- Bundle-Activator: Menunjukkan
nama kelas yang akan dipanggil sekali bundel diaktifkan.
- Ekspor-Paket: mengungkapkan
mana Java paket yang terkandung dalam sebuah kemasan akan dibuat tersedia
untuk dunia luar.
- Impor-Paket: Menunjukkan
mana Java paket akan diperlukan dari dunia luar untuk memenuhi dependensi
yang dibutuhkan dalam sebuah kemasan.
Siklus Kehidupan (Life-cycle)
Lapisan Siklus Hidup menambahkan
bundel yang dapat secara dinamis diinstal, mulai, berhenti, diperbarui dan
dihapus. Bundel bergantung pada lapisan modul untuk pemuatan kelas tetapi
menambahkan API untuk mengelola modul dalam waktu dijalankan. Lapisan siklus
hidup memperkenalkan dinamika yang biasanya bukan bagian dari
aplikasi. Mekanisme ketergantungan luas digunakan untuk menjamin operasi
yang benar dari lingkungan. Hidup operasi siklus sepenuhnya dilindungi
dengan arsitektur keamanan.
Di bawah ini adalah contoh dari kelas khas Jawa melaksanakan BundleActivator antarmuka :
Paket org.wikipedia;
impor org.osgi.framework.BundleActivator;
mengimpor org.osgi.framework.BundleContext;
public class Activator mengimplementasikan BundleActivator {
private BundleContext konteks;
kekosongan awal publik (BundleContext konteks) throws Exception {
Sistem keluar println (“Memulai: Hello World”)..;
konteks ini = konteks.;
}
kekosongan berhenti publik (BundleContext konteks) throws Exception {
Sistem keluar println (“Menghentikan: Dunia Kejam Goodbye”)..;
konteks ini = null.;
}
}
SUMBER :
OSGi : http://en.wikipedia.org/wiki/OSGi
Open Service Gateway Initiative (OSGI), Spesifikasi OSGI : http://ayazmaniez.wordpress.com/2009/11/24/open-service-gateway-initiative-osgi/
0 komentar:
Posting Komentar