OSGI
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 ARSITEKTUR
OSGi 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.
Lapisan OSGi
1. Bundles : bundles adalah komponen OSGi yang
dibuat oleh pengembang/developer.
2. Services : lapisan service menghubungkan bundles
dalam sebuah jalan dinamik dengan menawarkan model publish-find-bind untuk
objek Java yang lama.
3. Life
Cycle : API
untuk menginstall, memulai, menghentikan, update dan menguninstall bundles.
4. Modules : lapisan yang menjelaskan bagaimana
bundles dapat mengimport dan mengexport kode.
5. Security : Lapisan yang memegang aspek keamanan.
6. Execution
Environment : menjelaskan class dan method apa yang ada di platform.
Manfaat OSGI
1. 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
2. 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.
3. 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.
4. 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.
5. 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.
6. 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
7. 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.
8. 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
1. Ruang lingkupnya sangat kecil
2. Keamanan kurang terjaga dari kejahatan
hacker
3. Biaya sangat mahat untuk pembuatan
aplikasi dari OSGI
4. Rawan terjadinya pencurian data
5. Ukuran penyimpanan yang sangat kecil
untuk data yang di simpan
OSGi Specifications
·
OSGi Service Platform Release 4
·
OSGi Service Platform Release 4 was first released
in October 2005. Version 4.1 was released in May 2007. Version 4.2 was released
in September 2009.
-Errata
-API Javadoc
-XML Schemas
SARAN
Jika sedang mengembangkan Java maka teknologi OSGI merupakan
langkah lanjut yang harus ditempuh karena teknologi OSGI dapat memecahkan
masalah yang mungkin tidak akan terbayangkan sebelumnya. Keuntungan menggunakan
teknologi OSGI yang begitu berguna jika kita menggunakan Java, maka sudah
seharusnya teknologi OSGI masuk berada dalam kotak peralatan kita.
SUMBER
http://www.osgi.org/Specifications/HomePage
http://www.osgi.org/About/WhatIsOSGi
http://en.wikipedia.org/wiki/OSGi