OSGI (Open
Service Gateway Initiative)
·
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.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.
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.
·
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
lebihy 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.
Implementasi
OSGI
Teknologi Osgi sudah sangat banyak
dikembangkan untuk berbagai macam keperluan dalam
sehari 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 dengan
internet. Yaitu dengan menghubungkan berbagai framework OSGI ini untuk
mengendalikan alatalat 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 microsistem yaitu Java Embedded Server.
Teknologi ini dinamakan home network dan jinni adalah salah satu standart untuk
pembuatan home nerwork yang berbasis java.
·
Teknologi dan industry
Dalam hal ini pengembangan
OSGI dalam Teknologi dan industri adalah untuk
otomatisasi industri. Seperti otomatisnya system 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.
Teknologi
OSGI
MASALAH
Software kompleksitas meningkat pada tingkat
yang mengkhawatirkan. Hari ini, sebagian besar
kompleksitas ini disebabkan oleh siklus
produk yang singkat, persyaratan untuk fungsi secara
drastis meningkat, dan peningkatan jumlah
variasi produk yang sama (misalnya hardware yang
berbeda dan sistem operasi). Kecenderungan
ini telah menyebabkan biaya perangkat lunak
menjadi persentase lebih besar dari biaya
pengembangan hampir semua produsen. Hari ini, pengembangan perangkat lunak
sebagian besar terdiri dari mengadaptasi ada fungsionalitas untuk tampil di
lingkungan yang baru. Dalam 20 tahun terakhir, sejumlah besar blok bangunan
standar telah tersedia dan mereka sering digunakan dalam produk hari ini, sebuah
contoh utama adalah keberhasilan perangkat lunak terbuka. Namun, penggunaan pustaka
ini bukan tanpa masalah. Mengintegrasikan berbagai perpustakaan bisa menakutkan
karena banyak perpustakaan telah menjadi kompleks dan memerlukan perpustakaan
mereka sendiri 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 mengapa pengembangan 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 pengembang perangkat lunak. Oleh
karena itu, ada kebutuhan untuk alat-alat yang standarisasi aspek integrasi
dari perangkat lunak sehingga penggunaan kembali komponen yang ada menjadi handal,
kuat dan murah.
SOLUSI
OSGi technology is the dynamic module system
for Java. teknologi OSGi adalah sistem modul dinamis untuk Java. Para OSGi
Service Platform menyediakan fungsionalitas ke Jawa yang
membuat Java lingkungan utama untuk
integrasi perangkat lunak dan dengan demikian untuk
pembangunan. Java menyediakan portabilitas
yang diperlukan untuk mendukung produk pada
platform yang berbeda. Teknologi OSGi
memberikan primitif standar yang memungkinkan
aplikasi 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 pada perangkat dari berbagai jaringan, tanpa
memerlukan restart.. Untuk meminimalkan kopling, serta membuat kopling
dikelola, teknologi OSGi menyediakan arsitektur berorientasi layanan yang kemungkinkan komponen ini untuk secara dinamis
menemukan satu sama lain untuk
berkolaborasi. Aliansi OSGi telah
mengembangkan banyak komponen antarmuka standar untuk
fungsi-fungsi umum seperti server HTTP,
konfigurasi, logging, keamanan, administrasi pengguna, XML dan banyak lagi.
Plug-kompatibel implementasi komponen ini dapat diperoleh dari vendor yang
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 pengembangan berkurang karena teknologi
OSGi menyediakan integrasi built dan pra-diuji komponen subsistem-pra. The
technology also reduces maintenance costs and enables unique new aftermarket
opportunities because components can be dynamically delivered to devices in the
field. Teknologi ini juga mengurangi biaya pemeliharaan dan memungkinkan
peluang unik
aftermarket baru karena komponen dapat
secara dinamis dikirim ke perangkat di lapangan.
KERANGKA
Komponen inti dari Spesifikasi OSGi adalah
Framework OSGi. Kerangka menyediakan lingkungan yang standar untuk aplikasi
(bundel disebut). Kerangka ini dibagi dalam beberapa lapisan.
L0: Lingkungan Eksekusi
L1: Modul
L2: Siklus Manajemen Hidup
L3: Layanan Registry Sebuah sistem keamanan
di mana-mana adalah sangat terkait dengan
semua lapisan.
·
Lingkungan L0 Eksekusi adalah spesifikasi lingkungan Jawa. Java 2
Konfigurasi dan Profil, seperti J2SE, CDC, CLDC, MIDP dll semua lingkungan
eksekusi yang valid. Platform OSGi juga standar lingkungan eksekusi berdasarkan
Foundation Profile dan variasi yang lebih kecil yang menentukan persyaratan
minimum pada lingkungan eksekusi yang akan berguna untuk bundle OSGi.
·
Lapisan Modul L1 mendefinisikan kebijakan loading kelas. Kerangka OSGi
adalah kelas-loading model dan kaku ditentukan kuat. Hal ini didasarkan pada
atas Jawa tetapi menambahkan modularisasi. Di Jawa, ada biasanya classpath
tunggal yang berisi semua kelas dan sumber daya. Modul OSGi menambahkan lapisan
kelas pribadi untuk modul serta dikendalikan menghubungkan antara modul.
Lapisan modul terintegrasi dengan arsitektur keamanan, memungkinkan opsi untuk
menyebarkan sistem tertutup, kebun bertembok, atau benar-benar pengguna sistem
dikelola atas kebijaksanaan produsen.
·
Lapisan Life Cycle L2 menambahkan bundel yang dapat dinamis diinstal,
mulai, berhenti, diperbarui dan dihapus. Kumpulan mengandalkan pada lapisan
modul untuk memuat kelas tetapi menambahkan sebuah API untuk mengelola modul
dalam run time. Lapisan siklus memperkenalkan dinamika yang biasanya bukan
bagian dari aplikasi. Mekanisme ketergantungan ekstensif digunakan untuk
menjamin operasi yang benar dari lingkungan operasi siklus hidup sepenuhnya
dilindungi dengan arsitektur keamanan, sehingga hampir tidak mungkin diserang
oleh virus.
·
Lapisan L3 menambahkan Registry Service. Registri layanan menyediakan
model kerjasama untuk bundel yang mengambil dinamika ke rekening. Kumpulan
dapat bekerja sama melalui pembagian kelas tradisional tetapi berbagi kelas
tidak terlalu kompatibel dengan dinamis menginstal dan menghapus kode. Registri
layanan menyediakan model yang komprehensif untuk objek saham antara kumpulan.
Sejumlah peristiwa didefinisikan untuk menangani dating dan pergi pelayanan.
Layanan Java hanya objek yang dapat mewakili apapun. Banyak layanan server-benda
seperti, seperti server HTTP, sedangkan jasa lain merupakan sebuah objek di
dunia nyata, misalnya ponsel Bluetooth yang ada di dekatnya. Model layanan
sepenuhnya keamanan
diinstrumentasi. Model keamanan layanan menyediakan cara elegan untuk
mengamankan komunikasi antara melewati bundel.
KEAMANAN
Keamanan adalah berbasis Java dan Java 2
model keamanan. Bahasa dengan desain batas
banyak kemungkinan konstruksi. Sebagai
contoh, buffer overflows digunakan dalam virus adalah mustahil. Akses pengubah
dalam bahasa membatasi visibilitas kode untuk programmer
lainPlatform OSGi memperluas model ini
dengan mengizinkan kelas swasta, mekanisme yang
tidak tersedia dalam cara yang standar di
Jawa. Java 2 model keamanan menyediakan model
yang komprehensif untuk memeriksa kode akses
ke sumber daya.Platform OSGipenambahkan
manajemen yang dinamis penuh hak akses,
menyederhanakan kehidupan operator dan
administrator sistem.
STANDAR
LAYANAN
Di atas Kerangka, Aliansi OSGi telah
ditentukan banyak layanan. Layanan ditentukan oleh
antarmuka Jawa. Kumpulan dapat
mengimplementasikan antarmuka ini dan mendaftarkan
layanan dengan Registry Service Klien
layanan dapat menemukannya di registri, atau bereaksi
ketika itu muncul atau menghilang.Hal ini
mirip dengan arsitektur berorientasi layanan dibuat populer dengan layanan web.Perbedaan
utama antara layanan web dan layanan OSGi adalah bahwa layanan web selalu membutuhkan
beberapa lapisan transport, yang membuat ribuan kali lebih lambat daripada layanan
OSGi yang menggunakan pemanggilan metode langsung. Juga, komponen OSGi dapat langsung
bereaksi pada penampilan dan hilangnya jasa. Bagian berikut memberikan gambaran
singkat dari Release OSGi 4 layanan. Informasi lebih lanjut dapat ditemukan
dalam Platform Service Release 4 buku OSGi atau download PDF.Perhatikan bahwa
setiap layanan didefinisikan secara abstrak dan secara independen dilaksanakan
oleh vendor yang berbeda.
KERANGKA
LAYANAN
Kerangka OSGi memberikan Izin Admin Service,
Paket Layanan Admin dan Mulai Tingkat
Layanan. Layanan ini (opsional) bagian dan
langsung pengoperasian Framework. Framework
services are the following: Kerangka layanan
adalah sebagai berikut:
·
(Bersyarat) Izin Admin - Hak akses atau masa depan bundel saat ini dapat
dimanipulasi melalui layanan ini. Permissions diaktifkan segera setelah mereka
ditetapkan.
·
Admin Paket - paket berbagi Bundel dengan kelas dan sumber daya.
Pembaruan ikatan mungkin memerlukan sistem untuk kembali menghitung dependensi.
Paket layanan ini Admin memberikan informasi mengenai kondisi aktual berbagi
paket dari sistem dan juga bisa menyegarkan paket bersama. istirahat dependensi
dan menghitung ulang dependensi
·
Mulai Level - Mulai Tingkat adalah seperangkat berkas yang harus
dijalankan bersamaan atau harus diinisialisasi sebelum yang lain dimulai. Awal
Tingkat Pelayanan menentukan tingkat mulai saat ini, memberikan bundel untuk
tingkat awal dan interrogates pengaturan saat ini.
·
URL Handler - Lingkungan Jawa mendukung model penyedia untuk penangan URL.
Namun, ini adalah singleton sehingga tidak mungkin untuk menggunakan ini dalam
sebuah lingkungan kolaboratif seperti OSGi yang berpotensi memiliki banyak
penyedia layanan yang berbeda.Spesifikasi layanan ini memungkinkan komponen
apapun untuk menyediakan handler URL tambahan.
SISTEM
LAYANAN
Layanan Sistem menyediakan fungsi horizontal
yang diperlukan dalam hampir setiap sistem.
Layanan Log, Konfigurasi Admin Layanan,
Perangkat Akses Layanan, Admin User Layanan, IO
Connector Layanan dan Jasa Preferensi adalah
contoh dari layanan sistem.
·
Log Layanan - Penebangan di informasi, peringatan, debug informasi atau
kesalahan ditangani melalui Layanan Log. Ia menerima entri log dan kemudian
kiriman ini entri untuk berkas lain yang berlangganan informasi ini.
·
Admin Konfigurasi Layanan - Layanan ini menyediakan model yang fleksibel
dan dinamis untuk mengatur dan mendapatkan informasi konfigurasi.
·
Perangkat Akses Layanan - Perangkat Akses adalah mekanisme OSGi untuk
mencocokkan driver untuk perangkat baru dan secara otomatis men-download berkas
menerapkan driver ini. Ini digunakan untuk skenario Plug and Play.
·
Admin User Layanan - Layanan ini menggunakan database dengan informasi
pengguna (swasta dan masyarakat) untuk tujuan otentikasi dan otorisasi.
SISTEM
LAYANAN
·
IO Connector Layanan - IO Konektor Layanan mengimplementasikan CDC /
javax CLDC. Microedition.io paket sebagai layanan. Layanan ini memungkinkan
berkas untuk memberikan skema protokol baru dan alternatif.
·
Preferensi Layanan - Layanan ini menyediakan akses ke database hirarki
properti, mirip dengan Registry Windows atau kelas Java Preferensi.
·
Komponen Runtime - Sifat dinamis layanan - mereka dapat datang dan pergi
setiap saat
membuat menulis perangkat
lunak lebih keras. Spesifikasi Komponen Runtime dapat
mempermudah penanganan aspek-aspek dinamis dengan menyediakan sebuah
deklarasi berbasis XML dependensi.
·
Deployment Admin - Bentuk penyebaran utama untuk OSGi adalah bundel,
yang merupakan JAR / ZIP file. Admin Deployment menyediakan format sekunder:
paket penyebaran Deployment Paket dapat menggabungkan bundel dengan sumber daya
acak ke dalam satu deliverable yang dapat diinstal dan dihapusSebuah model yang
komprehensif prosesor sumber daya memungkinkan kode pengguna untuk memperluas jenis
sumber daya.
·
Event Admin - Banyak peristiwa OSGi mengetik interface tertentu,
sehingga sulit untuk
menerima dan menyaring acara umum. Event Admin menyediakan seperti
generik, mekanisme event topik berbasis. Spesifikasi ini mencakup pemetaan
untuk semua kerangka yang ada dan acara layanan.
·
Aplikasi Admin - Model bundle OSGi berbeda dari desktop khas atau model
telepon aplikasi mobile yang bergantung pada memulai dan menghentikan aplikasi.
Admin Aplikasi mengatur seperti model aplikasi tradisional dan infrastruktur
manajemen yang dibutuhkan perusahaan.
PROTOKOL
LAYANAN
Aliansi OSGi telah menetapkan sejumlah
layanan yang memetakan suatu protokol eksternal
untuk layanan OSGi.
·
Http Layanan - Layanan Http adalah, antara lain, seorang pelari servlet.
Kumpulan dapat
memberikan servlets, yang menjadi tersedia melalui protokol Http.
Fasilitas update dinamis dari OSGi Service Platform membuat Http Layanan web
server yang sangat menarik yang dapat diperbarui dengan servlet yang baru,
jarak jauh jika perlu, tanpa memerlukan restart.
·
Layanan UPnP - Universal Plug and Play (UPnP) adalah standar muncul
untuk elektronik konsumen. OSGi Service peta perangkat UPnP pada jaringan UPnP
ke Registry Service. Atau, dapat memetakan layanan OSGi ke jaringan UPnP. Ini
adalah Release direkomendasikan 3 spesifikasi.
·
DMT Admin - Open Mobile Alliance (OMA) memberikan spesifikasi yang
komprehensif untuk manajemen perangkat mobile pada konsep Manajemen Device
Pohon (DMT). Admin layanan DMT mendefinisikan bagaimana pohon ini dapat diakses
dan / atau diperpanjang dalam OSGi Service Platform.
LAYANAN LAIN
·
Admin kawat Layanan - Biasanya bundel menetapkan aturan untuk menemukan
layanan yang mereka ingin bekerja dengan. Namun, dalam banyak kasus ini harus
menjadi keputusan penyebaran. Layanan Wire Admin karena menghubungkan pelayanan
yang berbeda bersama sebagaimana didefinisikan dalam file konfigurasi. Layanan
Wire Admin menggunakan konsep layanan Konsumen dan Produser yang pertukaran
objek di atas kawat.
·
ML Parser Layanan - XML Parser layanan memungkinkan bundel untuk mencari
parser dengan sifat yang diinginkan dan kompatibilitas dengan JAXP.
·
Awal Provisioning
·
Aplikasi Asing Akses
KEUNTUNGAN DARI TEKNOLOGI OSGI
1. Mengurangi kompleksitas : mengembangkan dengan OSGi
berarti menembangkan 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 dan Banyak versinya
8. Simple : OSGi API sangat simple. API OSGi hanya terdiri
dari satu paket dan berjumlah kurang dari 30 kelas.
9. Ukurannya kecil danKinerjanya cepat
10. Malas : Malas dalam software itu berarti bagus.
Teknologi OSGi mempunyai banyak mekanisme hanya ketika dibutuhkan saja.
11. Aman, Sederhana dan Tidak Mengganggu Kinerja Aplikasi
Lainnya
KEKUARANGAN 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
Referensi :
http://dokumen.tips/documents/microsoft-word-pengertian-osgi.html
http://rap0501.blogspot.co.id/2015/01/open-service-gateway-initiative-osgi.html