open service gateway initiative (OSGi)
OSGi untuk Pengembang
OSGi. Reuse
komponen untuk membangun dan mengelola sistem yang sangat kompleks. Membuat
kode lebih mudah untuk menulis, menguji dan menggunakan kembali. Mengelola
penyebaran dinamis. Mendeteksi bug sebelumnya. Menyebarkan jarak jauh.
Mendeteksi dan memecahkan masalah Anda mungkin tidak menyadari sekarang.
OSGi menyediakan
arsitektur modular untuk skala besar sistem saat ini didistribusikan serta
kecil, aplikasi tertanam dan jaringan perangkat. Membangun sistem dari dalam
rumah dan off-the-rak modul secara signifikan meningkatkan penggunaan kembali
produk perangkat lunak dan solusi dan meluas siklus hidup mereka, mengurangi
biaya pengembangan dan pemeliharaan. Model pemrograman OSGi menyadari janji sistem
berbasis komponen.
Teknologi OSGi
berhasil karena memberikan sistem komponen yang sangat matang yang bekerja di
sejumlah besar lingkungan. Sistem komponen OSGi digunakan untuk membangun
aplikasi yang sangat kompleks seperti IDE, server aplikasi, kerangka aplikasi,
telekomunikasi dan solusi layanan, otomasi industri, gateway perumahan,
onboard, sistem telematika, dan banyak lagi.
BISNIS
Model modular
dan dinamis OSGi mengurangi biaya operasional dan mengintegrasikan beberapa
perangkat dalam lingkungan jaringan, menangani pengembangan aplikasi mahal, dan
pemeliharaan.
Sistem komponen
OSGi sebenarnya digunakan untuk membangun aplikasi yang sangat kompleks seperti
IDE (Eclipse),
aplikasi server (GlassFish , IBM Websphere , Oracle / BEA
Weblogic , Jonas , JBoss), kerangka aplikasi (musim semi , Guice), otomasi
industri, gateway perumahan, telepon, dan banyak lagi.
Manfaat :
Mengurangi
Kompleksitas - 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 internal 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 yang menarik blog yang
menjelaskan apa teknologi OSGi lakukan untuk proses pembangunan mereka.
Reuse - Komponen
OSGi Model membuatnya sangat mudah untuk menggunakan banyak komponen pihak
ketiga dalam sebuah aplikasi. Peningkatan jumlah proyek open source menyediakan
guci mereka siap dibuat untuk OSGi. Namun, perpustakaan komersial juga menjadi
tersedia sebagai bundel siap dibuat.
Kerangka OSGi
dinamis - Dunia nyata. Hal ini dapat memperbarui bundel dengan cepat dan
layanan bisa datang dan pergi. Pengembang digunakan untuk lebih tradisional Java
melihat ini sebagai fitur yang sangat bermasalah dan gagal untuk melihat
keuntungan. Namun, ternyata bahwa dunia nyata sangat dinamis dan memiliki
pelayanan yang dinamis bisa datang dan pergi membuat layanan yang cocok untuk
banyak skenario dunia nyata. Sebagai contoh, sebuah layanan dapat model
perangkat dalam jaringan. Jika perangkat terdeteksi, layanan terdaftar. Jika
perangkat hilang, layanan ini tidak terdaftar. Ada sejumlah mengejutkan skenario
dunia nyata yang cocok dengan model layanan yang dinamis ini. Aplikasi karena
itu dapat menggunakan kembali primitif kuat dari layanan registri (mendaftar,
mendapatkan, daftar filter dengan bahasa yang ekspresif, dan menunggu untuk
layanan muncul dan menghilang) dalam domain mereka sendiri. Kode ini tidak
hanya menghemat menulis, juga menyediakan visibilitas global, debugging tools,
dan fungsionalitas lebih daripada yang telah dilaksanakan selama satu solusi
khusus. Menulis kode dalam lingkungan yang dinamis terdengar seperti mimpi
buruk, tapi untungnya, ada kelas dukungan dan kerangka kerja yang mengambil
sebagian besar, jika tidak semua, dari rasa sakit dari itu.
Deployment mudah
- Teknologi OSGi bukan hanya standar untuk komponen. Hal ini juga menentukan
bagaimana komponen diinstal dan dikelola. API ini telah digunakan oleh banyak
berkas untuk menyediakan sebuah agen manajemen. Agen manajemen ini bisa
sesederhana sebagai perintah shell, sebuah TR-69 protokol manajemen pengemudi,
OMA DM protokol sopir, awan komputasi 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.
Dinamis Update -
Komponen OSGi model model dinamis. Bundel dapat diinstal, mulai, berhenti,
diperbarui, dan dihapus tanpa menurunkan seluruh sistem. Banyak pengembang Java
tidak percaya ini bisa dilakukan andal dan karena itu awalnya tidak menggunakan
ini 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.
Adaptive
- Para model komponen OSGi dirancang dari bawah ke atas untuk memungkinkan
pencampuran dan pencocokan komponen. Ini membutuhkan dependensi komponen perlu
ditentukan dan membutuhkan komponen untuk hidup dalam lingkungan di mana mereka
dependensi opsional tidak selalu tersedia. Layanan OSGi registri registri yang
dinamis di mana kumpulan dapat mendaftar, mendapatkan, dan mendengarkan
layanan. Model layanan yang dinamis ini memungkinkan bundel untuk mengetahui
kemampuan apa yang tersedia pada sistem dan menyesuaikan fungsi mereka dapat
menyediakan. Hal ini membuat kode lebih fleksibel dan tahan terhadap perubahan.
Transparansi -
Kumpulan dan jasa adalah warga negara kelas satu di lingkungan OSGi. Manajemen
API menyediakan akses ke keadaan internal bundel serta bagaimana terhubung ke
kumpulan lain. Sebagai contoh, sebagian kerangka memberikan perintah shell yang
menunjukkan keadaan internal ini. Bagian dari aplikasi dapat dihentikan untuk
debug masalah tertentu, atau bundel diagnostik dapat dibawa dalam. Alih-alih
menatap jutaan baris output logging dan reboot panjang kali, aplikasi OSGi
sering dapat debugged dengan perintah shell hidup.
Versi -
teknologi OSGi memecahkan JAR neraka. JAR neraka adalah masalah bahwa
perpustakaan yang bekerja dengan perpustakaan B; versi = 2, tapi perpustakaan C
hanya dapat bekerja dengan B; versi = 3. Di Java standar, Anda kurang
beruntung. Dalam lingkungan OSGi, semua berkas secara hati-hati diversi dan
hanya bundel yang dapat berkolaborasi secara kabel bersama-sama di ruang kelas
yang sama. Hal ini memungkinkan kedua bundel A dan C berfungsi dengan
perpustakaan mereka sendiri. Meskipun tidak disarankan untuk merancang sistem
dengan masalah versi ini, dapat menjadi hidup hemat dalam beberapa kasus.
Sederhana - The
OSGi API sangat sederhana. Inti API hanya satu paket dan kurang dari 30 kelas /
interface. Inti API ini cukup untuk menulis kumpulan, menginstalnya, start,
stop, update, dan menghapus mereka dan mencakup semua pendengar dan keamanan
kelas. Ada sangat sedikit API yang menyediakan begitu banyak fungsi untuk
begitu sedikit API.
Kecil - The OSGi
Release 4 Kerangka dapat diimplementasikan dalam tentang file 300KB JAR. Ini
adalah overhead kecil untuk jumlah fungsi yang ditambahkan ke aplikasi dengan
memasukkan OSGi. Oleh karena itu OSGi berjalan pada berbagai macam perangkat:
dari sangat kecil, kecil, untuk mainframe. Hanya meminta Java VM minimal untuk
menjalankan dan menambahkan sangat sedikit di atasnya.
Cepat - Salah
satu tanggung jawab utama dari kerangka OSGi memuat kelas-kelas dari bundel. Di
Java tradisional, guci-benar terlihat dan ditempatkan pada daftar linear.
Mencari kelas memerlukan pencarian melalui ini (sering sangat panjang, 150
tidak jarang) daftar. Sebaliknya, OSGi bundel-kabel pra dan tahu persis untuk
setiap bundel bundel yang menyediakan kelas. Kurangnya pencarian adalah
mempercepat faktor penting saat startup.
Malas - malas
perangkat lunak yang baik dan teknologi OSGi memiliki banyak mekanisme untuk
melakukan hal-hal hanya ketika mereka benar-benar dibutuhkan. Untuk contoh,
bundel dapat dimulai dengan penuh semangat, tetapi mereka juga dapat
dikonfigurasi untuk hanya dimulai ketika bundel lain menggunakan mereka.
Layanan bisa didaftarkan tetapi hanya diciptakan ketika mereka digunakan.
Spesifikasi telah dioptimalkan beberapa kali untuk memungkinkan semacam ini
malas skenario yang dapat menghemat biaya runtime luar biasa.
Aman - Java
memiliki model keamanan berbutir halus yang sangat kuat di bagian bawah tapi
ternyata sangat sulit untuk mengkonfigurasi dalam praktek. Hasilnya adalah
bahwa sebagian besar aplikasi Java aman berjalan dengan pilihan biner: tidak
ada keamanan atau kemampuan yang sangat terbatas. Model keamanan OSGi
memanfaatkan model keamanan berbutir halus tetapi meningkatkan kegunaan (serta
pengerasan model asli) dengan memiliki pengembang bungkusan menentukan rincian
keamanan yang diminta dalam bentuk yang mudah diaudit sementara operator
lingkungan tetap bertanggung jawab sepenuhnya. Secara keseluruhan, kemungkinan
OSGi menyediakan salah satu lingkungan aplikasi yang paling aman yang masih
dapat dipakai pendek dilindungi hardware platform komputasi.
Humble - Banyak
kerangka mengambil alih seluruh VM, mereka hanya memungkinkan satu contoh untuk
dijalankan dalam VM. Fleksibilitas dari spesifikasi OSGi ditunjukkan oleh
bagaimana bahkan dapat berjalan di dalam J2EE Application Server. Banyak
pengembang ingin menjalankan OSGi tapi perusahaan mereka tidak memungkinkan
mereka untuk menyebarkan guci normal. Sebaliknya, mereka termasuk kerangka OSGi
dalam file WAR dan dimuat bundel mereka dari sistem file atau melalui jaringan.
OSGi begitu fleksibel bahwa salah satu server aplikasi dapat dengan mudah host
beberapa kerangka kerja OSGi.
Non intrusif -
Aplikasi (bundel) di lingkungan OSGi diserahkan kepada mereka sendiri. Mereka
dapat menggunakan hampir semua fasilitas VM tanpa OSGi membatasi mereka.
Praktek terbaik dalam OSGi adalah menulis Plain Old Java Objects dan untuk
alasan ini, tidak ada antarmuka khusus diperlukan untuk layanan OSGi, bahkan
objek Java String dapat bertindak sebagai layanan OSGi. Strategi ini membuat
kode aplikasi lebih mudah untuk port ke lingkungan lain.
Berjalan Di
mana-mana - Yah, itu tergantung. Tujuan asli Java untuk dijalankan di mana
saja. Jelas, tidak mungkin untuk menjalankan semua kode di mana-mana karena
kemampuan VMS Java berbeda. Sebuah VM pada ponsel kemungkinan tidak akan
mendukung perpustakaan yang sama sebagai mainframe IBM menjalankan aplikasi
perbankan. Ada dua masalah untuk mengurus. Pertama, OSGi API seharusnya tidak
menggunakan kelas yang tidak tersedia di semua lingkungan. Kedua, seikat
seharusnya tidak dicoba jika itu berisi kode yang tidak tersedia di lingkungan
eksekusi. Kedua isu ini telah diurus dalam spesifikasi OSGi.
Digunakan secara
luas - The OSGi spesifikasi mulai keluar di pasar otomatisasi rumah tertanam
tetapi sejak tahun 1998 mereka telah banyak digunakan di banyak industri:
otomotif, telepon selular, otomasi industri, gateway & router, pertukaran
cabang pribadi, fixed line telepon, dan banyak lagi. Sejak tahun 2003, sangat
populer Eclipse Integrated Development Environment OSGi berjalan pada teknologi
dan menyediakan dukungan luas bagi pembangunan bundel. Dalam beberapa tahun
terakhir, OSGi telah diambil oleh perusahaan pengembang. Eclipse pengembang
menemukan kekuatan teknologi OSGi tetapi juga Spring Framework membantu
mempopulerkan teknologi ini dengan membuat ekstensi spesifik untuk OSGi. Hari
ini, Anda dapat menemukan teknologi OSGi di fondasi IBM Websphere, SpringSource
dm Server, Oracle (sebelumnya BEA) Weblogic, Sun GlassFish, dan Redhat yang
JBoss.
Didukung oleh
Perusahaan Kunci - OSGi menghitung beberapa perusahaan komputer terbesar dari
set yang beragam industri sebagai yang anggotanya . Anggota berasal dari:
Oracle, IBM, Samsung, Nokia, Progress, Motorola, NTT, Siemens, Hitachi,
Deutsche Telekom, Redhat, Ericsson, dan banyak lagi.
Spesifikasi OSGi
yang dimulai pada tahun 1998 dan ditujukan untuk pasar otomatisasi rumah,
mencoba untuk memecahkan masalah bagaimana membangun aplikasi dari komponen
independen. Dalam dekade terakhir ini, industri perangkat lunak secara
fundamental berubah karena ledakan di proyek open source. Sepuluh tahun yang
lalu, sebuah aplikasi terdiri kode sebagian besar khusus ditulis. Saat ini,
sebagian besar perangkat lunak sebagian besar kabel sampai artefak open source yang
sering tidak dirancang untuk bekerja bersama-sama. Hal ini mirip dengan masalah
yang OSGi dirancang untuk memecahkan.
sumber :
www.osgi.org
sumber :
www.osgi.org
Tidak ada komentar:
Posting Komentar