1.
Pendahuluan
Open Services Gateway
Initiative (OSGi) dilihat dari arti kata tersebut dapat diambil kesimpulan
bahwa OSGI ini adalah layanan untuk membuka jembatan dari berbagai jalan.
Maksudnya adalah bahwa OSGi ini adalah sebuah teknologi dimana kita dapat
menggabungkan berbagai fungsi dalam satu tujuan atau aplikasi, suatu cara untuk
menggabungkan berbagai bagian-bagian yang mana bagian-bagian ini dibungkus
menjadi sebuah aplikasi yang dapat kita gunakan dengan berbagai macam kegunaan.
Sebenarnya teknologi
ini berawal dari pikiran bagaimana cara mengubah program tanpa membongkar koding.
Dari situ teknologi
ini mulai dikembangkan dalam
bahasa pemrograman mulai dari instalasi, jalannya program, update dan
sampai uninstall tanpa perlu memperbarui coding.
Manfaat dalam penerapan
OSGi ini adalah programmer dapat mengupdate atau mengupgrade kodingnya dengan
mudah.Contoh : programmer membuat aplikasi yang mana terdapat bug yang harus ditambal, programmer ini tidak
perlu melakukan pengkodingan ulang dan mengganti aplikasi yang lama dengan aplikasi
baru yang memakan waktu dan biaya yang besar untuk menambalnya (patching).
Seperti cara inject (suntik) ke dalam program yang telah dibuat. Dan ini tidak
merubah struktur program dan kinerja program tersebut.Dengan teknologi osgi ini
kita dapat menyatukan berbagai fungsi di dalam aplikasi.Contoh : seperti plug
in yang dapat menambahkan fungsi dalam aplikasi.
Mudah dalam
penerapan Bagi tim
yang membuat aplikasi
tentunya tugas mereka berbeda. Ada yang membuat desain antar
muka atau GUI, ada yang membuat koding jalan softwarenya, ada yang membuat
keamanannya, dan lain sebagainya.Nah dari semua koding yang telah dibuat ini
kita dapat satukan dengan dan Dibungkus dari komponen-komponen
OSGI ini.
2.
Pengertian OSGI
Apa itu 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. 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.
3.
Spesifikasi OSGI
Spesifikasi OSGI adalah suatu kerangka kerja yang mendefinisikan
aplikasi model manajemen siklus hidup, sebuah layanan registrasi, sebuah
lingkungan eksekusi dan modul.Spesifikasi OSGI digunakan didalam sebuah aplikasi
mulai dari ponsel ke open source Eclipse IDE. Wilayah aplikasi lain meliputi
mobile, otomasi industri, otomatisasi bangunan, PDA, komputasi grid, hiburan
(misalnya iPronto), armada manajemen dan aplikasi server.
4.
Arsitektur OSGI
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.
5.
Framework OSGi
Komponen inti dari
Spesifikasi OSGi adalah Framework OSGi.Framework menyediakan lingkungan standar
untuk aplikasi (disebut bundel).
Layer-layer OSGI

Keterangan :
1.
Bundel
Kumpulan jaringan
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.
2.
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.
3.
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.
4.
Siklus Hidup (Life-Cycle)
API
untuk 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
Layer yang menangani
aspek keamanan dengan membatasi fungsionalitas bundel untuk pra didefinisikan
kemampuan.
7.
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. Namun, set berikut saat ini didukung oleh sebagian
besar OSGI implementasi:
·
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
8. Java Virtual Machine
Java Virtual Machine adalah sebuah
spesifikasi untuk sebuah komputer abstrak.JVM terdiri dari sebuah kelas
pemanggil dan sebuah interpreter Java yang mengeksekusi kode arsitektur netral.
Kelas pemanggil memanggil file API untuk dieksekusi oleh interpreter Java.
Dengan kata lain JVM adalah sebagai perantara antara program yang akan
dijalankan dan sistem operasi yang sedang digunakan.
6.
Teknologi OSGI
•The Problem
(Permasalahan)
• The
Solution (Pemecahan Masalah)
• The
Framework (Kerangka Kerja)
• Standard
Services (Pelayanan Standard)
• Framework
Services (Pelayanan Kerangka Kerja)
• System
Services (Pelayanan Sistem)
• Protocol
Services (Pelayanan Protokol)
• Miscellaneous
Services (Bermacam-macam pelayanan)
• Conclusion
(Kesimpulan)
7.
Keuntungan Teknologi OSGi
Menjelaskan teknologi
OSGi kepada yang belum familiar dengan teknologi ini sangatlah sulit.Ada begitu
banyak artikel yang menjelaskan teknologi OSGi tetapi hal itu masih belum
bisa dimengerti oleh user
yang benar-benar awam karena teknologi OSGi menyediakan solusi untuk permasalahan
yang banyak orang menganggap bahwa maslah itu merupakan aspek instrinsik dari
Java.
Permasalahan ini
sebenarnya bukan masalah instrinsik dari Java dan teknologi OSGi dapat
mengatasi itu semua.Alasan utama mengapa teknologi OSGi dapat sukses karena
teknologi ini menyediakan komponen system yang benar-benar matang yang dapat
bekerja di lingkungan yang sangat banyak jumlahnya. Komponen system yang biasa
digunakan untuk membangun aplikasi yang tingkat kekompleksannya sangat tinggi
seperti IDEs (Eclipse), aplikasi server (GlassFish, IBM Websphere, Oracle/BEA Weblogic,
Jonas, JBoss), aplikasi framework (Spring, Guice), otomatisasi industry,
telepon dan banyak lainnya.
Keuntungan dari teknologi OSGi antara lain
adalah sebagai berikut :
1. Mengurangi
kompleksitas : mengembangkan dengan OSGi berarti mengembangkan 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
8. Banyak
versinya
9. Simple
: OSGi API sangat simple. API OSGi hanya terdiri dari satu paket dan berjumlah
kurang dari 30 kelas.
10. Ukurannya
kecil
11. Kinerjanya
cepat
12. Malas
: Malas dalam software itu berarti bagus. Teknologi OSGi mempunyai banyak mekanisme
hanya ketika dibutuhkan saja.
13. Aman
14. Sederhana
15. Tidak
Mengganggu Kinerja Aplikasi Lainnya
16. Berjalan
dimana saja
17. Digunakan
secara luas
18. 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.
19.Manfaat OSGI
a. 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
b. Reuse
Para model komponen
OSGi membuatnya sangat mudah untuk menggunakan banyakkomponen pihak ketiga
dalam suatu aplikasi. Peningkatan jumlah proyek-proyek sumberterbuka memberikan
JAR’s mereka siap dibuat untuk OSGi.Namun, perpustakaan komersial jugamenjadi
tersedia sebagai bundel siap pakai.
c. Real
World
OSGi kerangka kerja yang
dinamis.Ini dapat memperbarui
bundel on the fly danpelayanan yang datang dan
pergi.Ini dapat menghemat dalam penulisan kode dan jugamenyediakan visibilitas global,
debugging tools, dan fungsionalitas lebihy daripada yang telahdilaksanakan
selama satu solusi khusus.
d. Easy
Deployment
Teknologi OSGi bukan
hanya sebuah standard untuk komponen, tapi juga menentukanbagaimana komponen
diinstal dan dikelola.API telah digunakan oleh banyak berkas untukmenyediakan sebuah
agen manajemen.Agen manajemen
ini bisa sesederhana sebagai
perintahshell, TR-69 sebuah protokol manajemen pengemudi, OMA DM protokol
sopir, komputasi awanantarmuka untuk Amazon EC2, atau IBM Tivoli sistem
manajemen. Manajemen standar APImembuatnya sangat mudah untuk mengintegrasikan
teknologi OSGi dalam sistem yang ada danmasa depan.
e. Dynamic
Updates
Model komponen OSGi
adalah model dinamis. Kumpulan dapat diinstal, mulai, berhenti,diperbarui, dan
dihapus tanpa menurunkan keseluruhan sistem. Banyak pengembang Java
tidakpercaya ini dapat dilakukan pada awalnya oleh karena itu tidak digunakan
dalam produksi.Namun, setelah menggunakan ini dalam pembangunan selama beberapa waktu,
sebagian besarmulai menyadari
bahwa itu benar-benar
bekerja dan secara signifikan
mengurangi waktupenyebaran.
f.
Simple
The OSGi API sangat
sederhana.API inti hanya terdiri dari satu paket dan kurang dari 30kelas /
interface. API inti ini cukup untuk menulis kumpulan, menginstalnya, start,
stop, update,dan menghapus
mereka dan mencakup semua pendengar dan
keamanan kelas.
g. Kecil
(Small)
The OSGi Release 4
Framework dapat diimplementasikan kedalam JAR 300KB. Ini adalahoverhead kecil
untuk jumlah fungsi yang ditambahkan ke salah satu aplikasi denganmemasukkan
OSGi. Oleh karena itu OSGi berjalan pada berbagai macam perangkat: dari
sangatkecil, kecil, dan untuk mainframe. Hanya meminta Java VM minimal untuk
menjalankan danmenambahkan sangat sedikit di atasnya.
h. 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.Pencariansebuah kelas memerlukan pencarian melalui daftar
ini.Sebaliknya, pra- kabel OSGi bundel dantahu persis untuk setiap bundel
bundel yang menyediakan kelas.Kurangnya pencarian yangsignifikan faktor
mempercepat saat startup.
20.Implementasi OSGI
Teknologi OSGI
sudah sangat banyak
dikembangkan untuk berbagai
macam keperluan dalamsehari hari
maupun di bidang teknologi informasi
dan industry serta di bidang ilmu
komputer.
• Dalam
kehidupan sehari-hari
Dikembangkan untuk
mengendalikan alat-alat elektronik dalam rumah tangga denganinternet.Yaitu
dengan menghubungkan berbagai framework OSGI ini untuk mengendalikan alat-alat
rumah tangga yang bersifat elektronik. Hal ini dilakukan dengan berbagai
protocol network yaitu Bluetooth, uPnP,HAVi, dan X10. Dengan bantuan Jini dan
standart OSGI dari sunmicrosistem yaitu Java Embedded Server. Teknologi ini
dinamakan home network dan jinniadalah salah satu standart untuk pembuatan home
nerwork yang berbasis java. Teknologi dan industry
Dalam hal ini
pengembangan OSGI dalam Teknologi dan industri adalah untukotomatisasi
industri. Seperti otomatisnya system dalam gudang yang dapat meminta dalam
PPICuntuk mengadakan bahan baku, dan masih banyak yang lain.
• Ilmu
Komputer
Dalam ilmu Komputer ini
sangat banyak pengembang yang memanfaatkan teknologiOSGI ini.Dari surfing di
internet banyak yang mengulas tentang Pemrograman Java yangmengapdopsi
teknologi osgi ini. Salah satu contoh adalah knopflerfish merupakan
frameworkuntuk melakukan OSGI didalam program Java. Dan juga eclipse IDE
merupakan OSGI frameworkyang dikembangkan oleh eclipse dan berbasis GUI. Dan
masih banyak juga dalam server sertaprogram-program lain yang mengembangkan
teknologi OSGI ini.
MASALAH
Software kompleksitas
meningkat pada tingkat yang mengkhawatirkan. Hari ini, sebagian
besarkompleksitas ini disebabkan oleh siklus produk yang singkat, persyaratan
untuk fungsi secaradrastis meningkat, dan peningkatan jumlah variasi produk
yang sama (misalnya hardware yangberbeda dan sistem operasi). Kecenderungan ini
telah menyebabkan biaya perangkat lunakmenjadi persentase lebih besar dari
biaya pengembangan hampir semua produsen.Hari ini, pengembangan perangkat lunak
sebagian besar terdiri dari mengadaptasi adafungsionalitas untuk tampil di
lingkungan yang baru. Dalam 20 tahun terakhir, sejumlah besarblok bangunan
standar telah tersedia dan mereka sering digunakan dalam produk hari ini,sebuah
contoh utama adalah keberhasilan perangkat lunak terbuka. Namun,
penggunaanpustaka ini bukan tanpa masalah.Mengintegrasikan berbagai
perpustakaan bisa menakutkankarena banyak perpustakaan telah menjadi kompleks
dan memerlukan perpustakaan merekasendiri untuk fungsi – bahkan jika fungsi
yang tidak pernah diperlukan untuk produk.Tren ini membutuhkan produk perangkat
lunak monolitik untuk menjalani siklus pengujian berat.Tambahkan evolusi tidak
sinkron dari library yang berbeda dan itu menjadi jelas mengapapengembangan
perangkat lunak begitu mahal saat ini.Sebuah isu kunci adalah software yang
saat ini berfokus pada lingkungan menulis software baru,bukan mengintegrasikan
perangkat lunak yang ada ke dalam sistem baru. Pada
kenyataannya,mengintegrasikan kode yang ada telah menjadi bagian besar dari
pekerjaan pengembangperangkat lunak. Oleh karena itu, ada kebutuhan untuk alat-alat
yang standarisasi aspekintegrasi dari perangkat lunak sehingga penggunaan
kembali komponen yang ada menjadihandal, kuat dan murah.
OSGi technology is the
dynamic module system for Java™. teknologi OSGi adalah sistem modul dinamis
untuk Java™. Para OSGi Service Platform menyediakan fungsionalitas ke Java
yangmembuat Java lingkungan utama untuk integrasi perangkat lunak dan dengan
demikian untukpembangunan.Java menyediakan portabilitas yang diperlukan untuk
mendukung produk padaplatform yang berbeda. Teknologi OSGi memberikan primitif
standar yang memungkinkanaplikasi yang akan dibangun dari, dapat digunakan
kembali dan kolaboratif komponen kecil.Komponen-komponen ini dapat disusun ke
dalam suatu aplikasi dan disebarkan.Para OSGi Service Platform menyediakan
fungsi untuk mengubah komposisi dinamis padaperangkat dari berbagai jaringan,
tanpa memerlukan restart. Untuk meminimalkan kopling,serta membuat kopling
dikelola, teknologi OSGi menyediakan arsitektur berorientasi layananyang
memungkinkan komponen ini untuk secara dinamis menemukan satu sama lain
untukberkolaborasi. Aliansi OSGi telah mengembangkan banyak komponen antarmuka
standar untukfungsi-fungsi umum seperti server HTTP, konfigurasi, logging,
keamanan, administrasi pengguna,XML dan banyak lagi.Plug-kompatibel
implementasi komponen ini dapat diperoleh dari vendoryang berbeda dengan
optimasi yang berbeda dan biaya. Namun, antarmuka layanan juga bisa
dikembangkan secara eksklusif, pengadopsi teknologi OSGi manfaat dari
peningkatan ke waktu-pasar dan
biaya pengembanganberkurang karena
teknologi OSGi menyediakan integrasi built dan pra-diuji
komponensubsistem-pra. The technology also reduces maintenance costs and
enables unique newaftermarket opportunities because components can be dynamically
delivered to devices in thefield. Teknologi ini juga mengurangi biaya
pemeliharaan dan memungkinkan peluang unikaftermarket baru karena komponen
dapat secara dinamis dikirim ke perangkat di lapangan.
Referensi :
- http://taarahay.blogspot.com/2012/11/spesifikasi-dari-osgi-open-service.html
- http://www.osgi.org/Technology/WhatIsOSGi
- http://cosaviora.blogspot.com/2011/01/spesifikasi-dari-osgi-open-service.html
- http://zainuliman.blogspot.com/2009/12/open-service-gateway-initiative-osgi.html
- http://dhyanmahardika.blogspot.com/2013/01/spesifikasi-arsitektur-open-services.html