OSGi (Open Service Gateway Initiative)
Definisi
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.
Kerangka OSGi (OSGi framework)
Definisi
Kerangka OSGi adalah sistem modul dan layanan platform untuk
Java bahasa pemrograman yang menerapkan lengkap dan dinamis model komponen ,
sesuatu yang seperti tahun 2012 tidak ada di Jawa standalone / VM lingkungan.
Aplikasi atau komponen (datang dalam bentuk dari bundel untuk penyebaran) dapat
jarak jauh diinstal, mulai, berhenti, diperbarui, dan dihapus tanpa memerlukan
restart, pengelolaan paket Jawa / kelas ditentukan dengan sangat rinci.
Aplikasi manajemen siklus hidup (start, stop, install, dll) dilakukan melalui
API yang memungkinkan untuk remote download dari kebijakan manajemen. Registri
layanan memungkinkan berkas untuk mendeteksi penambahan layanan baru, atau
penghapusan layanan dan beradaptasi sesuai.
Spesifikasi OSGi telah bergerak melampaui fokus asli gateway
layanan, dan sekarang digunakan dalam aplikasi mulai dari ponsel ke open source
Eclipse IDE. Area aplikasi lainnya termasuk mobil, otomasi industri,
otomatisasi bangunan, PDA, komputasi grid, hiburan, armada manajemen dan
aplikasi server .
Arsitektur (Architecture)
Setiap kerangka yang menerapkan standar OSGi menyediakan
suatu lingkungan untuk modularisasi aplikasi ke dalam bundel kecil. Setiap
bundel adalah koleksi, erat dynamically loadable kelas, guci, dan file
konfigurasi yang secara eksplisit menyatakan dependensi eksternal mereka (jika
ada).
Kerangka ini secara konseptual dibagi menjadi bidang-bidang
berikut:
·
Bundel
Bundel normal jar komponen dengan nyata tambahan header.
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
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).
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.
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).
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.
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:
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:
1.
CDC-1.0/Foundation-1.0
2.
CDC-1.1/Foundation-1.1
3.
OSGi/Minimum-1.0
4.
OSGi/Minimum-1.1
5.
JRE-1.1
6.
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.
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.
Sumber :
Tidak ada komentar:
Posting Komentar