Teknologi OSGi adalah seperangkat spesifikasi yang mendefinisikan sistem komponen dinamis untuk Java. Spesifikasi ini memungkinkan sebuah model pengembangan dimana aplikasi (dinamis) terdiri dari banyak berbeda (reusable) komponen. Spesifikasi OSGi memungkinkan komponen untuk menyembunyikan implementasi mereka dari komponen lain saat berkomunikasi melalui layanan, yang merupakan objek yang secara khusus dibagi antara komponen. Model ini sangat sederhana telah jauh mencapai efek untuk hampir semua aspek dari proses pengembangan perangkat lunak.
Meskipun komponen telah di cakrawala untuk waktu yang lama, sejauh ini mereka gagal untuk membuat baik pada janji-janji mereka. OSGi adalah teknologi pertama yang benar-benar berhasil dengan sistem komponen yang memecahkan masalah nyata banyak dalam pengembangan perangkat lunak. Pengadopsi teknologi OSGi melihat kerumitan berkurang secara signifikan di hampir semua aspek pembangunan. Kode lebih mudah untuk menulis dan menguji, menggunakan kembali meningkat, membangun sistem menjadi lebih sederhana, penyebaran lebih mudah dikelola, bug terdeteksi lebih awal, dan runtime memberikan wawasan besar ke dalam apa yang sedang berjalan. Paling penting, ia bekerja seperti yang dibuktikan oleh adopsi luas dan digunakan dalam aplikasi populer seperti Eclipse dan Spring.
Kami mengembangkan teknologi OSGi untuk menciptakan sebuah lingkungan perangkat lunak kolaboratif. Kami tidak mencari kemungkinan untuk menjalankan beberapa aplikasi dalam satu VM. Server aplikasi melakukan itu sudah (meskipun mereka belum sekitar ketika kita mulai pada tahun 1998). Tidak, masalah kita lebih sulit. Kami ingin aplikasi yang muncul dari menyatukan berbagai komponen dapat digunakan kembali yang tidak memiliki pengetahuan-priori satu sama lain. Bahkan lebih keras, kita ingin bahwa aplikasi untuk merakit secara dinamis muncul dari seperangkat komponen. Misalnya, Anda memiliki sebuah server rumah yang mampu mengelola lampu dan peralatan. Sebuah komponen dapat memungkinkan Anda untuk menghidupkan dan mematikan lampu selama halaman web. Komponen lain bisa memungkinkan Anda untuk mengontrol peralatan melalui pesan teks mobile. Tujuannya adalah untuk memungkinkan fungsi-fungsi lainnya yang akan ditambahkan tanpa memerlukan bahwa pengembang memiliki pengetahuan rumit satu sama lain dan membiarkan komponen ini akan ditambahkan secara independen.
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 :
Bundles
Bundles adalah normal jar komponen dengan nyata tambahan header
Services
Layanan yang menghubungkan lapisan bundel dalam cara yang dinamis dengan menawarkan menerbitkan-menemukan-model mengikat Jawa lama untuk menikmati objek (POJO).
Services
API untuk jasa manajemen (ServiceRegistration, ServiceTracker dan ServiceReference).
Life-Cycle
API untuk manajemen siklus hidup untuk (instal, start, stop, update, dan uninstall) bundel.
Modules
Lapisan yang mendefinisikan enkapsulasi dan deklarasi dependensi (bagaimana sebuah bungkusan dapat mengimpor dan mengekspor kode).
Security
Layer yang menangani aspek keamanan dengan membatasi fungsionalitas bundel untuk pra-didefinisikan kemampuan.
Execution Environment
Mendefinisikan metode dan kelas apa yang tersedia dalam platform tertentuTidak 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
Tidak ada komentar:
Posting Komentar