OSGI
(Open Service Gateway Initiative)
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
internet, 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 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.
Open Service Gateway
Initiative (OSGi) adalah sebuah system dan aplikasi interoperability berbasis
komponen platform yang terintegrasi. OSGi merupakan system modul dinamik untuk
Java. Teknologi OSGi adalah Universal Middleware. Teknologi OSGi menyediakan
sebuah service-oriented, lingkungan yang berbasis komponen untuk pengembang dan
menawarkan jalan standard untuk mengatur siklus hidup software.
Kemampuan ini dapat
menambah nilai jangkauan dari computer dan peralatan yang menggunakan platform
Java dengan sangat hebat. Teknologi OSGi mengadopsi keuntungan dari menambah
time-to-market dan mengurangi biaya pengembangan karena teknologi OSGi
menyediakan subsistem komponen yang terintegrasi dari pre-build dan pre-tested.
Teknologi ini juga mengurangi biaya perawatan dan memberikan kesempatan
aftermarket yang baru dan unik karena jaringan dapat digunakan untuk update
secara dinamik dan mengirimkan service dan aplikasi di lapangan.
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 software. 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. Namun, set berikut saat ini didukung oleh
implementasi OSGi yang paling:
§
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
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.
Bundle Negara
|
Deskripsi
|
DIPASANG
|
Bundel telah berhasil diinstal.
|
RESOLVED
|
Semua kelas Java bahwa kebutuhan bundel
tersedia. Kondisi ini menunjukkan bahwa bundel ini baik siap untuk
memulai atau telah berhenti.
|
STARTING
|
Bundel ini sedang dimulai, BundleActivator.start metode
akan dipanggil, dan metode ini belum kembali. Ketika bundel memiliki
kebijakan aktivasi, bundel akan tetap di negara STARTING sampai bundel
diaktifkan sesuai dengan kebijakan aktivasi ..
|
AKTIF
|
Bundel ini telah berhasil diaktifkan dan berjalan,
Bundle nya Activator mulai metode telah dipanggil dan kembali.
|
MENGHENTIKAN
|
Bundel ini sedang dihentikan. The BundleActivator.stop Metode
telah dipanggil tetapi metode berhenti belum kembali.
|
Dihapus
|
Bundel telah dihapus. Ini tidak bisa pindah ke
negara lain.
|
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.;
}
}
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.
SUMBER:
http://andhirapradana.blogspot.com/2012/11/spesifikasi-dari-open-service-gateway.html
http://jabberfunky.wordpress.com/2012/10/10/osgi/
http://dhyanmahardika.blogspot.com/2013/01/spesifikasi-arsitektur-open-services.html
http://bluewarrior.wordpress.com/2009/12/01/open-services-gateway-initiative-osgi/
http://en.wikipedia.org/wiki/OSGi
Tidak ada komentar:
Posting Komentar