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.
Spesifikasi
Spesifikasi OSGI yang sekarang digunakan dalam aplikasi mulai dari ponsel ke
open source Eclipse IDE. Wilayah aplikasi lain meliputi mobil, otomasi
industri, otomatisasi bangunan, PDA, komputasi grid, hiburan (misalnya
iPronto), armada manajemen dan aplikasi server. Adapun spesifikasi yang lain
dimana OSGI akan dirancang untuk melengkapi standar perumahan yang ada, seperti
orang – orang LonWorks (lihat kontrol jaringan), CAL, CEBus, HAVi, dan
lain-lain.
Inti bagian dari spesifikasi adalah suatu kerangka kerja yang mendefinisikan
aplikasi model manajemen siklus hidup, sebuah layanan registrasi, sebuah
lingkungan eksekusi dan modul. Berdasarkan kerangka ini, sejumlah besar OSGI
layers, API, dan Jasa telah ditetapkan. Spesifikasi OSGI yang dikembangkan oleh
para anggota dalam proses terbuka dan tersedia untuk umum secara gratis di
bawah Lisensi Spesifikasi OSGI.
Arsitektur
• Bundels – komponen OSGi yang dibuat oleh pengembang
• Services – Layanan bundel menghubungkan lapisan dalam cara yang dinamis
dengan menawarkan menerbitkan-menemukan-model mengikat Jawa lama untuk
menikmati objek.
• Life Cycle – The API untuk instalasi, start, stop, update, dan menghapus
bundel.
• Modules – Lapisan yang mendefinisikan bagaimana sebuah bundel dapat mengimpor
dan mengekspor kode.
• Security (Keamanan) – Lapisan yang menangani aspek keamanan.
• Execution Environment (Eksekusi Lingkungan) – Menetapkan metode dan
kelas-kelas apa saja yang tersedia dalam platform tertentu.
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)
Penjelasan:
1. Bundel
Kumpulan jar normal komponen dengan nyata tambahan header. Sebuah bundel adalah
sekelompok kelas Java dan sumber daya tambahan yang dilengkapi dengan rincian
file pada MANIFEST.MF nyata semua isinya, serta layanan tambahan yang
diperlukan untuk memberikan kelompok termasuk kelas Java perilaku yang lebih
canggih, dengan tingkat deeming seluruh agregat sebuah komponen.
2. Layanan
Layanan yang menghubungkan lapisan bundel dalam cara yang dinamis dengan
menawarkan, menerbitkan dan menemukan model dapat mengikat Java lama untuk
menikmati objek (POJO). Siklus hidup menambahkan lapisan bundel dinamis yang
dapat diinstal, mulai, berhenti, diperbarui dan dihapus. Buntalan bergantung
pada lapisan modul untuk kelas loading tetapi menambahkan API untuk mengatur
modul – modul dalam run time. Memperkenalkan lapisan siklus hidup dinamika yang
biasanya bukan bagian dari aplikasi. Mekanisme ketergantungan luas digunakan
untuk menjamin operasi yang benar dari lingkungan.
3. Layanan Registrasi (Services-Registry)
API untuk manajemen jasa (ServiceRegistration, ServiceTracker dan
ServiceReference).
OSGi Alliance yang telah ditentukan banyak layanan. Layanan yang ditentukan
oleh antarmuka Java. Kumpulan dapat mengimplementasikan antarmuka ini dan
mendaftarkan layanan dengan Layanan Registri. Layanan klien dapat menemukannya
di registri, atau bereaksi ketika muncul atau menghilang.
4. Siklus Hidup (Life-Cycle)
API untuk manajemen siklus hidup untuk (instal, start, stop, update, dan
uninstall) bundel.
5. Modul
Lapisan yang mendefinisikan enkapsulasi dan deklarasi dependensi (bagaimana
sebuah bungkusan dapat mengimpor dan mengekspor kode).
6. Keamanan
Layer yang menangani aspek keamanan dengan membatasi fungsionalitas bundel
untuk pra didefinisikan kemampuan.
7. Pelaksanaan Lingkungan
Mendefinisikan metode dan kelas apa 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 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
Proses komunitas java (Java Community Process JCP)
Java Community Process (JCP) Program Management Office (PMO) sangat
tertarik untuk mengumumkan upgrade ke jcp.org baru-baru ini meluncurkan
situs web. Setelah web rumah masyarakat benar-benar dirombak dan dirilis
pada bulan Juni 2009, bekerja terus di belakang layar untuk menambah,
meningkatkan, dan memperbaiki fungsi dan kegunaannya. Anggota PMO
berfungsi sebagai tim proyek untuk mendefinisikan dan menyelesaikan
pekerjaan.
Program yang JCP komunitas pengguna telah membantu dalam
memberikan umpan balik pada situs web. Banyak fitur baru dan perbaikan
bug pada awalnya diusulkan atau diidentifikasi oleh pengguna. Beberapa
implementasi tersebut akan segera jelas. Sebagai contoh, semua wiki dan
papan sekarang mencakup satu cara bagi pengguna untuk memberikan
pendapat mereka yang cepat konten dengan menghadiahi setiap item dengan
nilai, dengan memilih jumlah bintang tertentu. Selain itu, semua papan
diskusi publik dan wiki termasuk RSS tombol untuk memungkinkan pengguna
untuk berlangganan pembaruan konten. Karena pengaturan keamanan dan
persyaratan browser, RSS feed fitur ini hanya bekerja jika SSL
diaktifkan. Misalnya, fitur RSS melakukan kerja dengan Firefox.
Berbagai
bug telah diperbaiki dan navigasi juga telah diperbarui untuk mengatur
informasi yang tersedia. Ini adalah langkah inkremental lain sepanjang
perjalanan untuk meningkatkan jcp.org. Dalam bulan-bulan mendatang,
sebagai masyarakat terus menyarankan perubahan dan perangkat tambahan,
upaya akan terus memperbaiki situs. Semua umpan menyimpan program dan
JCP jcp.org bergerak maju dan ke atas.
Virtual Machine
Virtual
machine (VM) adalah suatu environment, biasanya sebuah program atau
system operasi, yang tidak ada secara fisik tetapi dijalankan dalam
environment lain. Dalam konteks ini, VM disebut “guest” sementara
environment yang menjalankannya disebut “host”. Ide dasar dari virtual
machine adalah mengabtraksi perangkat keras dari satu komputer (CPU,
memori, disk, dst) ke beberapa environment eksekusi, sehingga
menciptakan illusi bahwa masing-masing environment menjalankan
komputernya [terpisah] sendiri.VM muncul karena adanya keinginan untuk
menjalankan banyak sistem operasi pada satu komputer.Teknologi virtual
machine memiliki banyak kegunaan seperti memungkinkan konsolidasi
perangkat keras, memudahkan recovery sistem, dan menjalankan perangkat
lunak terdahulu. Salah satu penerapan penting dari teknologi VM adalah
integrasi lintas platform. Beberapa penerapan lainnya yang penting
adalah:
• Konsolidasi server.
Jika beberapa server menjalankan
aplikasi yang hanya memakan sedikit sumber daya, VM dapat digunakan
untuk menggabungkan aplikasi-aplikasi tersebut sehingga berjalan pada
satu server saja, walaupun aplikasi tersebut memerlukan sistem operasi
yang berbeda-beda.
• Otomasi dan konsolidasi lingkungan pengembangan dan testing.
Setiap
VM dapat berperan sebagai lingkungan yang berbeda, ini memudahkan
pengembang sehingga tidak perlu menyediakan lingkungan tersebut secara
fisik.
• Menjalankan perangkat lunak terdahulu.
Sistem operasi dan perangkat lunak terdahulu dapat dijalankan pada sistem yang lebih baru.
• Memudahkan recovery sistem.
Solusi virtualisasi dapat dipakai untuk rencana recovery sistem yang memerlukan portabilitas dan fleksibilitas antar platform.
• Demonstrasi perangkat lunak.
Dengan teknologi VM, sistem operasi yang bersih dan konfigurasinya dapat disediakan secara cepat.
Kelebihan Virtual Machine (VM)
Teknologi VM memiliki beberapa keunggulan, antara lain:
• Hal keamanan.
VM
memiliki perlindungan yang lengkap pada berbagai sistem sumber daya,
yaitu dengan meniadakan pembagian sumber daya secara langsung, sehingga
tidak ada masalah proteksi dalam VM. Sistem VM adalah kendaraan yang
sempurna untuk penelitian dan pengembangan sistem operasi. Dengan VM,
jika terdapat suatu perubahan pada satu bagian dari mesin, maka dijamin
tidak akan mengubah komponen lainnya.
• Memungkinkan untuk mendefinisikan suatu jaringan dari Virtual Machine (VM).
Tiap-tiap
bagian mengirim informasi melalui jaringan komunikasi virtual. Sekali
lagi, jaringan dimodelkan setelah komunikasi fisik jaringan
diimplementasikan pada perangkat lunak.
Kekurangan Virtual Machine (VM)
Beberapa kesulitan utama dari konsep VM, diantaranya adalah:
• Sistem penyimpanan.
Sebagai
contoh kesulitan dalam sistem penyimpanan adalah sebagai berikut:
Andaikan kita mempunyai suatu mesin yang memiliki 3 disk drive namun
ingin mendukung 7 VM. Keadaan ini jelas tidak memungkinkan bagi kita
untuk dapat mengalokasikan setiap disk drive untuk tiap VM, karena
perangkat lunak untuk mesin virtual sendiri akan membutuhkan ruang disk
secara substansial untuk menyediakan memori virtual dan spooling.
Solusinya adalah dengan menyediakan disk virtual atau yang dikenal pula
dengan minidisk, dimana ukuran daya penyimpanannya identik dengan ukuran
sebenarnya. Dengan demikian, pendekatan VM juga menyediakan sebuah
antarmuka yang identik dengan perangkat keras yang mendasari.
• Pengimplementasian sulit.
Meski konsep VM cukup baik, namun VM sulit diimplementasikan.
Sumber 1
Sumber 2