Teknologi
OSGi
Apa
development platforms dan application frameworks?
Dalam kontek
pengembangan software, suatu development platform adalah sekumpulan pustaka
(libraries) dan alat bantu (tools) software yang membantu pengembangan
komponen-komponen software, dan lingkungan runtime yang sesuai akan dapat
menampung komponen-komponen yang dikembangkan, sebagaimana dapat dilihat pada
gambar 1.
Gambar
1. Suatu platform pengembangan mencakup software framework dan lingkungan
runtime yang mendukungnya.
Lingkungan runtime
mencakup hardware, sistem operasi (OS), dan pustaka runtimeyang mendukungnya.
Salah satu contoh lingkungan runtime adalah Java Runtime Environment (JRE),
yang meliputi Java Virtual Machine (JVM) yang mengisolasi pengembang dari detil
dasar OS dan hardware.
Software framework
adalah jenis khusus dari pustaka dan alat bantu suatu development platform.
Wikipedia mendefinisikan software framework sebagai suatu “abstraksi untuk
menyediakan fungsionalitas generik yang dapat secara selektif dikhususkan untuk
menyediakan fungsionalitas tertentu.”
Application framework
adalah suatu jenis software framework yang bertujuan untuk menyediakan suatu
struktur dalam membuat aplikasi software. Aplikasi adalah program yang
memungkinkan pengguna untuk melakukan tugas-tugas yang terkait bersama-sama.
Gambar
2. Pengembang membuat suatu aplikasi, yang digunakan oleh pengguna, dan
mengembangkan suatu framework.
Suatu development
platform memungkinkan pengembang untuk membuat aplikasi-aplikasi dan menampung
aplikasi-aplikasi ini untuk dapat digunakan oleh pengguna akhir, sebagaimana
pada gambar 2. Software development platform juga disebut sebagaiSoftware
Development Kits (SDKs).
Secara historis,
development platform selalu memainkan peran impor dalam software.Java platform,
yang dikenal sebagai Java Standard Edition (JSE), adalah salah satu contohnya.
Dalam kasus ini, Java Development Kit (JDK) menyediakan softwareframework, dan
Java Runtime Environment (JRE) menyediakan lingkungan runtime.
Open Service Gateway
initiative (OSGi) Service Platform adalah contoh lain daridevelopment platform,
yang menggunakan JRE sebagai lingkungan runtime-nya. Sebagai tambahan, OSGi
menyediakan suatu application framework yang ditempatkan di lapisan atas JDK.
OSGi dibentuk Maret
1999 oleh suatu konsorsium perusahaan-perusahaan teknologi terkemuka dengan
misi untuk mendefinisikan suatu platform integrasi untuk interoperabilitas
aplikasi dan servis secara universal.
OSGi menyediakan
platform pengembangan baru, berbasis pada modular decoupledcomponents dan model
layanan dinamis plugable.
Domain
masalah yang mendasari kehadiran OSGi
Masalah 1: Mengatasi
pemrograman API yang beragam.
Masalah pertama adalah
portabilitas. Dibutuhkan platform pemrograman tunggal yang mengabstraksi
aplikasi dari OS dan hardware yang mendasari. Dengan kata lain, dibutuhkan
suatu mesin virtual, tentu saja, Java bisa digunakan untuk memecahkan masalah
ini dengan JVM-nya.
Masalah 2: Kemampuan
perangkat yang bervariasi.
Platform universal
harus memudahkan aplikasi untuk memisahkan kontrak layanan dari implementasi
layanan. JSE tidak memiliki layanan
registri atau kerangka kerja manajemen layanan yang dapat membantu memecahkan
masalah ini.
Masalah 3: Dukungan
perubahan yang dinamis.
Platform harus
memungkinkan deployment yang dinamis dan undeployment aplikasi yang aman.
Apakah JSE memiliki dukungan untuk ini? Belum tentu. Mungkin pemecahan masalah
ini bisa dengan Java class loaders, tapi tidak akan mudah, dan tidak ada cara
sederhana untuk membongkar class saat telah dimuat, belum lagi bahwa tidak ada
konsep application deployment unit. Konsep yang paling dekat denganapplication
deployment unit adalah JAR (Java
Archives), tapi JAR sendiri tidak menyediakan semua metadata yang dibutuhkan,
seperti skema penamaan yang unik untuk aplikasi.
Seperti masalah
sebelumnya, kita dapat mengimplementasikan solusi kita sendiri untuk deployment
aplikasi secara dinamis atau mencoba untuk memanfaatkan sesuatu dari JEE.
Masalah 4: Menyediakan
sistem yang ringan.
Masalah terakhir, apapun solusi yang dipilih, harus ringan.
Memang layanan direktori seperti JNDI dari JEE bisa dimanfaatkan atau
menggunakan arsitektur dari Web Server, tapi solusi ini akan gagal bila
dihadapkan dengan kendala berdasarkan pada pertimbangan ukuran dan memori perangkat terhadap platform, sehingga
kurang cocok sebagai solusi dan bukan pilihan yang layak.
Solusi: Suatu sistem
modul dinamis untuk JAVA
Java bisa menangani masalah portabilitas,
namun tidak memiliki dukungan yang tepat untuk manajemen layanan dinamis.
Dalam definisi yang
paling singkat, OSGi Service Platform adalah sistem modul dinamis untuk Java.
Dalam terminologi OSGi, modul Java disebut bundel. The OSGi ServicePlatform
terdiri dari dua komponen utama, OSGi framework dan OSGi services, seperti yang
ditunjukkan pada gambar 3.
Gambar
3. OSGi Service Platform terdiri dari OSGi framework dan OSGI services.
OSGi
FRAMEWORK
OSGi framework
menyediakan:
• Sebuah lingkungan eksekusi portabel
dan aman berbasis Java
• Sebuah sistem manajemen pelayanan,
yang dapat digunakan untuk mendaftar dan berbagi layanan di seluruh bundel dan
memisahkan layanan penyedia dari layanan pengguna
• Sebuah sistem modul dinamis, yang
dapat digunakan untuk install dan uninstallmodul Java, yang disebut bundel di
OSGi, secara dinamis.
• Sebuah solusi ringan dan terukur
OSGi framework adalah
struktur inti dari OSGi Service Platform. Jika diasumsikan bahwa sebuah bundel
dapat menjadi sebuah aplikasi, maka definisi OSGi frameworkadalah sesuai dengan
definisi tentang application frameworks. Artinya, OSGi frameworkadalah contoh
dari sebuah application framework.
OSGi
SERVICES
OSGI Service Platform
mencakup beberapa layanan umum, dan layanan ini bisa dianggap sebagai aplikasi
asli dari OSGi Service Platform. Beberapa layanan ini adalah fungsi-fungsi
horisontal yang selalu dibutuhkan, seperti logging service danconfiguration
service. Beberapa protokol terkait juga dicakup, seperti HTTP service, yang
dapat digunakan oleh aplikasi berbasis web. Dan terakhir, OSGi Service Platform
juga berisi layanan yang secara intrinsik terikat pada framework, yang berarti
frameworktak bisa bekerja tanpa mereka, seperti bundle wiring, yang mengelola
sistem modul dinamis itu sendiri, dan start-level service, yang mengelola
proses bootstrap dariframework.
Enterprise
OSGi
Seperti dapat disimpulkan dari sejarah, OSGi
awalnya digunakan pada pasar embedded. Tetapi dengan seiring dengan popularitas
dan kedewasaan yang semakin meningkat, OSGi bergerak ke pasar enterprise. Untuk
mengatasi kebutuhan ini, OSGi Enterprise Expert Group (EEG) membuat OSGi
Service Platform Enterprise Specification (Enterprise OSGi). Spesifikasi ini
menggabungkan layanan-layanan OSGi yang dapat digunakan secara selektif untuk
menyediakan fungsionalitas perusahaan. Layanan-layanan ini dikelompokkan ke
dalam fitur enterprise.
Contoh fitur
enterprise, seperti yang ditunjukkan pada gambar 4, adalah sebagai berikut:
ü Manajemen
dan konfigurasi – Kelompok ini mencakup layanan konfigurasi admin serta layanan
JMX Management Model dan layanan Metatype.
ü Distribusi
– fitur ini memungkinkan komunikasi titik-titik akhir diantara remote instances
dari OSGi framework instances. Beberapa
layanan dalam kelompok ini adalah Remote Service dan SCA Configuration Type.
ü Akses
data – fitur ini meliputi dukungan untuk JDBC, JPA, dan JTA.
Manfaat OSGI
1. Mengurangi
Kompleksitas (Reduced Complexity)
Mengembangkan dengan teknologi OSGi
berarti mengembangkan bundel: komponen OSGi. Bundel adalah modul. Mereka
menyembunyikan internal dari bundel lain danberkomunikasi 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
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.
Kelebihan
dan Kekurangan OSGI
Kelebihan :
1) Berjalan
dimana saja dan digunakan secara luas
2) Aman,
sederhana dan tidak mengganggu kinerja aplikasi lainnya
3) Ukurannya
kecil dan Kinerjanya cepat
4) Transparan
dan Banyak versinya
5) Simple
: OSGi API sangat simple.
6) RealWorld
: OSGi framework dinamik.
7) Dapat
digunakan kembali
8) Mengurangi
kompleksitas
Kekurangan :
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
SARAN
:
Dari uraian diatas kita dapat menyimpulkan
dengan teknologi OSGI kita dapat mempermudah pekerjaan yang berkaitan dengan
elektronik. Karena fungsi dari OSGI sendiri adalah menggabungkan berbagai
fungsi salam satu aplikasi. Berjalan dimana saja dan digunakan secara luas. Aman,
sederhana dan tidak mengganggu kinerja aplikasi lainnya.
Referensi
:
Tidak ada komentar:
Posting Komentar