Sumber
:
Open
Service Gateway Initiatif
OSGi
merupakan suatu layanan untuk membuka jembatan dari berbagai jalan. Maksudnya
adalah OSGi merupakan suatu teknologi dimana dapat menggabungkan berbagai
fungsi dalam satu tujuan atau aplikasi atau suatu cara untuk menggabungkan
berbagai bagian-bagian dimana bagian-bagian tersebut telah menjadi sebuah
aplikasi yang dapat digunakan dengan berbagai macam kegunaan. Sebenarnya
teknologi ini berawal dari suatu pemikiran bagaimana cara mengubah program
tanpa membongkar coding. Kemudian dari sanalah 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 codingnya dengan mudah. Misalnya programmer membuat aplikasi dimana
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 dapat menyatukan
berbagai fungsi di dalam aplikasi. Misalnya seperti plug-in yang dapat
menambahkan fungsi dalam aplikasi.
•
Mudah dalam penerapan, terutama bagi tim
yang membuat aplikasi tentunya tugas mereka berbeda. Ada yang membuat desain
antar muka atau GUI, ada yang membuat coding jalan softwarenya, ada yang
membuat keamanannya, dan lain sebagainya. Nah dari semua coding yang telah
dibuat ini kita dapat satukan dengan dan dibungkus dari komponen-komponen OSGi
ini.
•
Efisiensi biaya, dalam hal ini untuk
pengembangan sebuah software dapat menekan biaya yang dikeluarkan dalam
pemeliharaan software.
Implementasi
OSGi
Teknologi OSGi sudah sangat banyak dikembangkan untuk berbagai macam keperluan dalam sehari hari maupun di bidang teknologi informasi dan industri serta di bidang ilmu komputer.
•
Dalam kehidupan sehari-hari
Dikembangkan untuk mengendalikan
alat-alat elektronik dalam rumah tangga dengan internet, 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 sun microsystem yaitu Java Embedded Server. Teknologi ini dinamakan
home network dan Jini adalah salah satu standart untuk pembuatan home network yang
berbasis Java.
•
Teknologi dan industry
Dalam hal ini pengembangan OSGi dalam
teknologi dan industri adalah untuk otomatisasi industri. Seperti otomatisnya
sistem dalam gudang yang dapat meminta dalam PPIC untuk mengadakan bahan baku,
dan masih banyak yang lain.
•
Ilmu Komputer
Dalam ilmu Komputer ini sangat banyak pengembang
yang memanfaatkan teknologi OSGi ini. Dari surfing di internet banyak yang
mengulas tentang Pemrograman Java yang mengapdopsi teknologi OSGi ini. Salah
satu contoh adalah knopflerfish merupakan framework untuk melakukan OSGi
didalam program Java. Dan juga eclipse IDE merupakan OSGi framework yang
dikembangkan oleh eclipse dan berbasis GUI. Dan masih banyak juga dalam server
serta program-program lain yang mengembangkan teknologi OSGi ini.
Adapun siklus hidup
OSGi yang digambarkan dibawah ini:
Arsitektur OSGi
Teknologi
OSGi adalah seperangkat spesifikasi yang mendefinisikan sistem komponen dinamis
untuk Java. Spesifikasi ini memungkinkan suatu model pengembangan aplikasi
dimana terdiri dari banyak perbedaan komponen. Spesifikasi yang memungkinkan
komponen OSGi untuk menyembunyikan implementasi dari komponen lain saat
berkomunikasi melalui layanan, yang merupakan objek yang secara khusus dibagi
antar komponen. OSGi adalah teknologi pertama yang benar-benar berhasil dengan
sistem komponen yang memecahkan banyak masalah nyata dalam pengembangan
perangkat lunak. Teknologi OSGi diciptakan untuk sebuah lingkungan perangkat
lunak kolaboratif.
Struktur OSGi
Struktur OSGi
digambarkan melalui model layar (layer) yang berlapis-lapis, sebagai berikut:
Setiap
kerangka yang menerapkan standar OSGi menyediakan suatu lingkungan
untuk modularisasi aplikasi ke dalam kumpulan yang lebih kecil. Setiap bundel
adalah erat-coupled, dynamically loadable kelas koleksi, botol, dan file-file
konfigurasi yang secara eksplisit menyatakan dependensi eksternal mereka (jika
ada). Kerangka kerja konseptual yang dibagi dalam bidang-bidang berikut:
•
Bundles
Bundles adalah normal jar komponen dengan nyata tambahan header
Bundles adalah normal jar komponen dengan nyata tambahan header
•
Services
Layanan yang menghubungkan lapisan bundel dalam cara yang dinamis dengan menawarkan menerbitkan-menemukan-model mengikat Jawa lama untuk menikmati objek (POJO).
Layanan yang menghubungkan lapisan bundel dalam cara yang dinamis dengan menawarkan menerbitkan-menemukan-model mengikat Jawa lama untuk menikmati objek (POJO).
•
Services
API untuk jasa manajemen (ServiceRegistration, ServiceTracker dan ServiceReference).
API untuk jasa manajemen (ServiceRegistration, ServiceTracker dan ServiceReference).
•
Life-Cycle
API untuk manajemen siklus hidup untuk (instal, start, stop, update, dan uninstall) bundel.
API untuk manajemen siklus hidup untuk (instal, start, stop, update, dan uninstall) bundel.
•
Modules
Lapisan yang mendefinisikan enkapsulasi dan deklarasi dependensi (bagaimana sebuah bungkusan dapat mengimpor dan mengekspor kode).
Lapisan yang mendefinisikan enkapsulasi dan deklarasi dependensi (bagaimana sebuah bungkusan dapat mengimpor dan mengekspor kode).
•
Security
Layer yang menangani aspek keamanan dengan membatasi fungsionalitas bundel untuk pra-didefinisikan kemampuan.
Layer yang menangani aspek keamanan dengan membatasi fungsionalitas bundel untuk pra-didefinisikan kemampuan.
•
Execution Environment
Mendefinisikan metode dan kelas apa yang
tersedia dalam platform tertentuTidak 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.1/Foundation-1.1 CDC-1.1/Foundation-1.1
• OSGi/Minimum-1.0 OSGi/Minimum-1.0
• OSGi/Minimum-1.1 OSGi/Minimum-1.1
• JRE-1.1 JRE-1.1
• From J2SE-1.2 up to J2SE-1.6 Dari J2SE-1.2 hingga J2SE-1,6
• CDC-1.0/Foundation-1.0 CDC-1.0/Foundation-1.0
Spesifikasi
OSGi
Spesifikasi
OSGi membutuhkan referensi spesifikasi implementasi untuk masing-masing aspek.
Namun, karena spesifikasi pertama selalu ada perusahaan komersial yang telah
menerapkan spesifikasi serta implementasi open source. Saat ini, terdapat 4
open source implementasi dari kerangka dan terlalu banyak untuk menghitung
implementasi dari layanan OSGi. Industri perangkat lunak yang terbuka telah
menemukan teknologi OSGi dan semakin banyak proyek artefak menyampaikan sebagai
kumpulan.
Spesifikasi
OSGi secara matang dan komprehensif memberikan model komponen yang sangat
efektif melalui API. Mengkonversi monolitik atau plugin yang ditanam untuk
sistem berbasis OSGi hampir selalu memberikan peningkatan besar dalam
keseluruhan proses pengembangan software.
OSGi
spesifikasi yang dimulai pada tahun 1998 dan ditujukan untuk pasar otomatisasi
rumah, berusaha untuk memecahkan masalah dan bagaimana membangun aplikasi dari
komponen-komponen independen. Dalam dekade terakhir ini, industri perangkat
lunak secara mendasar berubah karena ledakan di proyek sumber terbuka. Sepuluh
tahun yang lalu, aplikasi sebagian besar terdiri atas kode yang ditulis secara
khusus. Hari ini, sebagian besar sebagian besar perangkat lunak open source
pengkabelan atas artefak yang sering tidak dirancang untuk bekerja
bersama-sama. Ini adalah masalah yang sesuai dengan OSGi yang dirancang untuk
memecahkannya. Banyak proyek mengadopsi spesifikasi OSGi karena mereka melihat
bahwa OSGi dapat berfokus pada masalah nyata dan tidak terlalu khawatir tentang
infrastruktur, serta menjadi lebih mudah untuk digunakan dalam proyek lainnya.
Manfaat
OSGI :
-
Mengurangi Kompleksitas
(Reduced Complexity)
Mengembangkan dengan teknologi OSGi
berarti mengembangkan bundel: komponen OSGi. Bundel adalah modul. Mereka
menyembunyikan internal dari bundel lain dan berkomunikasi melalui layanan
didefinisikan dengan baik. Menyembunyikan internals berarti lebih banyak
kebebasan untuk berubah nanti. Hal ini tidak hanya mengurangi jumlah bug,
itu juga membuat kumpulan sederhana untuk berkembang karena bundel ukuran
benar menerapkan sepotong fungsionalitas melalui interface didefinisikan dengan
baik. Ada sebuah blog menarik yang menjelaskan teknologi OSGi apa yang mereka
lakukan bagi proses pembangunan.
-
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 juga menjadi tersedia sebagai bundel siap pakai.
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 juga menjadi 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.
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.
Tidak ada komentar:
Posting Komentar