OSGI (Open Service
Gateway Initiative)
Pengertian 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 software. Kerangka ini secara
konseptual dibagi menjadi bidang-bidang berikut:
-
Bundel
Bundel normal jar komponen dengan nyata tambahan header.
- Layanan
3. Layanan Registry
The API untuk jasa manajemen
(ServiceRegistration , ServiceTracker dan ServiceReference).
4. Life-Cycle
The API ntuk 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
Lapisan yang menangani aspek
keamanan dengan membatasi fungsionalitas bundel untuk pra-didefinisikan
kemampuan.
7. Eksekusi
Lingkungan
Mendefinisikan apa yang metode dan
kelas yang tersedia dalam platform tertentu. Tidak ada daftar tetap meksekusi
lingkungan, karena dapat berubah sebagai Java Community Process menciptakan
versi baru dan edisi lama.
- Mengurangi Kompleksitas (Reduced Complexity)
Mengembangkan dengan teknologi OSGi berarti mengembangkan bundel:
komponenOSGi. Bundel adalah modul. Mereka menyembunyikan internal dari
bundel lain danberkomunikasi melalui layanan didefinisikan dengan baik.
Menyembunyikan internals berartilebih banyak kebebasan untuk berubah
nanti. Hal ini tidak hanya mengurangi jumlah bug, itu juga membuat
kumpulan sederhana untuk berkembang karena bundel ukuran benarmenerapkan
sepotong fungsionalitas melalui interface didefinisikan dengan baik.
Ada sebuahblog menarik yang menjelaskan teknologi OSGi apa yang mereka
lakukan bagi prosespembangunan.
- Reuse
Para model komponen OSGi membuatnya sangat mudah untuk menggunakan
banyak komponen pihak ketiga dalam suatu aplikasi. Peningkatan jumlah
proyek-proyek sumber terbuka memberikan JAR’s mereka siap dibuat untuk
OSGi. Namun, perpustakaan komersial jugamenjadi tersedia sebagai bundel
siap pakai.
- Real World
OSGI kerangka kerja yang dinamis. Ini dapat memperbarui bundel on the
fly dan pelayanan yang datang dan pergi. Ini dapat menghemat dalam
penulisan kode dan juga menyediakan visibilitas global, debugging tools,
dan fungsionalitas lebih daripada yang telah dilaksanakan selama satu
solusi khusus.
- Easy Deployment
Teknologi OSGi bukan hanya sebuah standard untuk komponen, tapi juga
menentukan bagaimana komponen diinstal dan dikelola. API telah digunakan
oleh banyak berkas untuk menyediakan sebuah agen manajemen. Agen
manajemen ini bisa sesederhana sebagai perintah shell, TR-69 sebuah
protokol manajemen pengemudi, OMA DM protokol sopir, komputasi awan
antarmuka untuk Amazon EC2, atau IBM Tivoli sistem manajemen. Manajemen
standar API membuatnya sangat mudah untuk mengintegrasikan teknologi
OSGi dalam sistem yang ada dan masa depan.
- Dynamic Updates
Model komponen OSGi adalah model dinamis. Kumpulan dapat diinstal,
mulai, berhenti,diperbarui, dan dihapus tanpa menurunkan keseluruhan
sistem. Banyak pengembang Java tidak percaya ini dapat dilakukan pada
awalnya oleh karena itu tidak digunakan dalam produksi.Namun,
setelah menggunakan ini dalam pembangunan selama beberapa waktu,
sebagian besar mulai menyadari bahwa itu benar-benar bekerja dan secara
signifikan mengurangi waktu penyebaran.
- Simple
The OSGi API sangat sederhana. API inti hanya terdiri dari satu paket
dan kurang dari 30 kelas / interface. API inti ini cukup untuk menulis
kumpulan, menginstalnya, start, stop, update,dan menghapus mereka dan
mencakup semua pendengar dan keamanan kelas.
- Kecil (Small)
The OSGi Release 4 Framework dapat diimplementasikan kedalam JAR
300KB. Ini adalah overhead kecil untuk jumlah fungsi yang ditambahkan ke
salah satu aplikasi dengan memasukkan OSGi. Oleh karena itu OSGi
berjalan pada berbagai macam perangkat: dari sangat kecil, kecil, dan
untuk mainframe. Hanya meminta Java VM minimal untuk menjalankan dan
menambahkan sangat sedikit di atasnya.
- Cepat (Fast)
Salah satu tanggung jawab utama dari Framework OSGi memuat kelas-kelas dari bundel.Di
Java tradisional, JARs benar-benar terlihat dan ditempatkan pada daftar
linear. Pencarian sebuah kelas memerlukan pencarian melalui daftar ini.
Sebaliknya, pra-kabel OSGi bundel dan tahu persis untuk setiap bundel
bundel yang menyediakan kelas. Kurangnya pencarian yang signifikan
faktor mempercepat saat startup.
Kekurangan OSGI
- Ruang lingkupnya sangat kecil
- Keamanan kurang terjaga dari kejahatan hacker
- Biaya sangat mahat untuk pembuatan aplikasi dari OSGI
- Rawan terjadinya pencurian data
- Ukuran penyimpanan yang sangat kecil untuk data yang di simpan
Sumber :