Selasa, 29 Desember 2009

OSGI Pada Telematika

The OSGi Alliance (sebelumnya dikenal sebagai Open Services Gateway Initiative) 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. Inti bagian dari spesifikasi adalah suatu kerangka kerja yang mendefinisikan aplikasi model manajemen siklus hidup, sebuah layanan registry, sebuah lingkungan Eksekusi dan Modul. Berdasarkan kerangka ini, sejumlah besar OSGi layers, API, dan Jasa telah ditetapkan.

Kerangka kerja yang OSGi sistem modul untuk Java yang lengkap dan mengimplementasikan sebuah model komponen dinamis, sesuatu yang tidak ada di Jawa standalone / VM lingkungan. Aplikasi atau komponen (datang dalam bentuk bungkusan untuk penyebaran) dapat jarak jauh diinstal, mulai, berhenti, diperbarui dan dihapus tanpa memerlukan reboot; pengelolaan paket Jawa / kelas ditentukan dengan sangat rinci. Manajemen siklus hidup dilakukan melalui API yang memungkinkan untuk men-download jauh kebijakan manajemen. Registri layanan memungkinkan berkas untuk mendeteksi penambahan layanan baru, atau penghapusan layanan, dan beradaptasi sesuai.

Asli layanan fokus pada penerapan gateway tapi ternyata jauh lebih luas. OSGi spesifikasi 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.

OSGi spesifikasi yang dikembangkan oleh para anggota dalam proses terbuka dan tersedia untuk umum secara gratis di bawah Lisensi Spesifikasi OSGi [1]. OSGi Alliance yang memiliki program kepatuhan yang hanya terbuka untuk anggota. Pada Oktober 2009, daftar bersertifikat OSGi implementasi berisi lima entri.

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).

Kerangka kerja konseptual yang dibagi dalam bidang-bidang berikut:

Bundel
Kumpulan jar normal komponen dengan nyata tambahan header.

Layanan
Layanan yang menghubungkan lapisan bundel dalam cara yang dinamis dengan menawarkan menerbitkan-menemukan-model mengikat Jawa lama untuk menikmati objek (POJO).

Services Registry
API untuk manajemen jasa (ServiceRegistration, ServiceTracker dan ServiceReference).

Life-Cycle
API untuk manajemen siklus hidup untuk (instal, start, stop, update, dan uninstall) bundel.

Modul
Lapisan yang mendefinisikan enkapsulasi dan deklarasi dependensi (bagaimana sebuah bungkusan dapat mengimpor dan mengekspor kode).

Keamanan
Layer yang menangani aspek keamanan dengan membatasi fungsionalitas bundel untuk pra-didefinisikan kemampuan.

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:
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

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.

Berikut contoh file dengan MANIFEST.MF khas OSGi Header:

Bundle-Name: Hello World
Bundle-SymbolicName: org.wikipedia.helloworld
Bundle-Description: A Hello World bundle
Bundle-ManifestVersion: 2
Bundle-Version: 1.0.0
Bundle-Activator: org.wikipedia.Activator
Export-Package: org.wikipedia.helloworld;version="1.0.0"
Import-Package: org.osgi.framework;version="1.3.0"

Makna dari isi dalam contoh adalah sebagai berikut:

Bundle-Name: Tetapkan terbaca-manusia nama untuk bundel ini, cukup memberikan nama singkat ke bundel.

Bundle-SymbolicName: Satu-satunya yang diperlukan header, entri ini menetapkan pengenal unik untuk sebuah kemasan, berdasarkan sebaliknya nama domain konvensi (digunakan juga oleh paket-paket java).

Bundle-Description: Sebuah uraian mengenai fungsi bungkusan itu.
Berkas-ManifestVersion: header dikenal kecil ini menunjukkan spesifikasi OSGi gunakan untuk membaca berkas ini.

Bundle-Version: menunjuk nomor versi ke bundel.

Bundle-Activator: Menunjukkan nama kelas yang akan dipanggil sekali bungkusan diaktifkan.

Export-Package: Mengutarakan apa paket-paket Java yang terkandung di dalam sebuah kemasan akan tersedia ke dunia luar.

Import-Package: Menunjukkan apa paket-paket Java akan dibutuhkan dari dunia luar, dalam rangka untuk memenuhi dependensi yang diperlukan di dalam sebuah kemasan.

Sumber: http://en.wikipedia.org/wiki/OSGi

0 komentar:

Posting Komentar