Anda sudah memiliki perangkat lunak, tetapi Anda masih memerlukan metode yang lebih efektif untuk memungkinkan pengguna teknis Anda memperluas platform.
Meskipun OSGi terkenal bagi sebagian besar pengembang Java, mengintegrasikannya ke dalam produk Anda mungkin tampak seperti tugas yang menakutkan. Kurangnya kejelasan tentang cara kerja OSGi yang tepat semakin memperumit jalan ke depan.
Berbeda dengan apa pun yang ingin mereka coba, OSGi lebih terasa seperti mencoba mengarungi lautan luas ke banyak pengembang Java.
Artikel ini akan memperkenalkan Anda pada tutorial pegas OSGi Felix menggunakan program langsung dan melalui, kelebihannya, dan detail penting lainnya.
Jadi apa itu OSGi?
Membuat dan mendistribusikan modul dan komponen dimungkinkan oleh kerangka kerja Java yang dikenal sebagai OSGi (Open Service Gateway Initiative).
Ini menekankan enkapsulasi fungsi dan kopling longgar, yang menawarkan beberapa keuntungan bagi pengembang, termasuk fungsionalitas modular yang mudah ditransfer antara kode sumber dan pengujian yang tidak memerlukan ketergantungan tanpa akhir.
Bagaimana cara kerja OSGi?
Sebuah sistem komponen dinamis untuk Java didefinisikan oleh satu set spesifikasi yang disebut OSGi. Spesifikasi ini memungkinkan pendekatan pengembangan di mana aplikasi dibangun dari sejumlah bagian dan kemudian dikemas ke dalam bundel.
Layanan berbasis jaringan dan lokal digunakan oleh komponen ini untuk berkomunikasi. Membuat kode inti program sekompak mungkin adalah tujuannya. Kopling tinggi antara kode ini dan beberapa komponen dimungkinkan.
Elemen bangunan aplikasi yang dapat digunakan kembali disebut komponen. Pikirkan tentang fitur seperti keranjang belanja untuk situs web e-niaga Anda atau aplikasi penggajian untuk sistem manajemen staf Anda.
Komponen dapat menggunakan OSGi untuk menyembunyikan implementasinya dari komponen lain dan hanya menyediakan data yang diperlukan kepada mereka melalui layanan.
Ini mencegah komponen mengubah data yang seharusnya tidak mereka akses dan mengelola dependensi.
Semua koneksi antar komponen dalam aplikasi OSGi dilakukan melalui layanan di dunia yang ideal. Paket Java berisi API yang ditentukan untuk layanan.
Kolaborasi antara penyedia layanan dan pelanggan memerlukan penggunaan kelas dan/atau antarmuka, yang membentuk API.
Semua komponen OSGi dikemas bersama dalam bundel, yang masing-masing menyertakan sumber daya yang mereka butuhkan untuk berfungsi. Bundel cukup jelas tentang apa yang mereka butuhkan dari lingkungan dan kemampuan mereka.
manfaat
- Aplikasi OSGi memiliki akses ke repositori bundel eksternal.
- Kerangka kerja ini memungkinkan desain berorientasi layanan pada tingkat modul.
- Ini memungkinkan untuk mengelola versi dan dependensi bundel aplikasi selain standarisasi dan mempermudah integrasi perpustakaan pihak ketiga.
- Aplikasi lebih mudah beradaptasi dengan tuntutan yang berubah, lebih portabel, dan lebih cepat untuk direkayasa ulang.
- A aplikasi web dapat digunakan sebagai sekelompok bundel OSGi berversi dengan masa pakai yang dinamis berkat integrasi kerangka kerja dengan model pemrograman Java EE.
- Alih-alih diinstal sebagai pustaka pihak ketiga sebagai bagian dari aplikasi, kerangka kerja menyediakan perakitan deklaratif dan pengujian unit yang disederhanakan dari Kerangka Kerja Musim Semi dalam bentuk standar yang disediakan sebagai bagian dari runtime server aplikasi.
- Untuk aplikasi perusahaan yang terdiri dari beberapa bundel berversi dengan siklus hidup dinamis, kerangka kerja ini menawarkan isolasi.
- Ini berisi repositori bundel terintegrasi yang dapat menyimpan bundel umum dan versi bersama yang digunakan oleh beberapa aplikasi, mencegah setiap aplikasi menyebarkan salinan terpisah dari setiap pustaka bersama.
Memulai dengan OSGi Felix spring
Mendapatkan Sumber Daya
Dengan mengunduh versi terbaru Apache Karaf dari situs ini, kita bisa memulai petualangan OSGi kita.
Berdasarkan Apache Felix, implementasi Apache dari spesifikasi OSGi, Apache Karaf menyediakan platform untuk aplikasi berbasis OSGi.
Karaf menyediakan berbagai fitur bermanfaat di atas Felix yang akan membantu kita membiasakan diri dengan OSGi, seperti antarmuka baris perintah yang memungkinkan kita berkomunikasi dengan platform.
Titik Masuk Untuk Bundel
Aplikasi harus dikemas sebagai bundel OSGi sebelum dapat dijalankan di lingkungan OSGi. Selain itu, titik masuk aplikasi harus ditentukan; itu bukan fungsi public static void main(String[] args) standar.
Jadi mari kita mulai dengan membuat “Hello Dunia” aplikasi berbasis OSGi.
Kita mulai dengan membangun ketergantungan OSGi API dasar:
Runtime OSGi akan memiliki akses ke dependensi, oleh karena itu bundel tidak perlu memuatnya. Oleh karena itu, ini ditandai sebagai disediakan.
Sekarang mari kita buat kelas HelloWorld langsung:
Kelas yang bertindak sebagai titik masuk untuk bundel harus mengimplementasikan antarmuka BundleActivator yang disediakan OSGi.
Ketika bundel yang berisi kelas ini diluncurkan, platform OSGi memanggil fungsi start(). Di sisi lain, sesaat sebelum bundel dihentikan, fungsi stop() dipanggil.
Jangan lupa bahwa setiap bundel hanya dapat memiliki satu BundleActivator. Kedua cara dapat berkomunikasi dengan runtime OSGi menggunakan objek BundleContext yang diberikan.
Membuat Bundel
Jadikan pom.xml sebagai bundel OSGi sejati dengan membuat perubahan yang diperlukan.
Pertama-tama kita harus menyatakan dengan jelas bahwa tujuan kita adalah untuk menghasilkan sebuah bundel.
Kemudian, kami menggunakan maven-bundle-plugin untuk mengemas kelas HelloWorld sebagai bundel OSGi, milik komunitas Apache Felix:
Nilai dari header OSGi yang ingin kita sertakan dalam file MANIFEST bundel ditentukan di bagian instruksi.
Bundle-Activator memang benar nama yang memenuhi syarat dari solusi BundleActivator yang akan digunakan untuk memulai dan menghentikan bundel. Ini kompatibel dengan kelas yang baru saja dibuat.
Meskipun ini bukan header OSGi, header Private-Package menginstruksikan plugin untuk menambahkan paket ke bundel tetapi tidak membuatnya dapat diakses oleh plugin lain. Perintah mvn install harus digunakan untuk membuat bundel.
Memasang dan Menjalankan Bundel
Mari kita mulai Karaf dengan menjalankan perintah ini:
di mana "KARAF HOME" mengacu pada folder tempat Karaf didirikan. Kita dapat menggunakan perintah berikut untuk menginstal bundel ketika prompt konsol Karaf muncul:
Menggunakan repositori Maven lokal adalah bagaimana Karaf diperintahkan untuk memuat bundel.
Mengembalikan ID numerik bundel, Karaf menuliskannya. ID ini mungkin berbeda tergantung pada berapa banyak bundel yang telah diinstal sebelumnya. Bundel sekarang telah berhasil diinstal, dan perintah untuk meluncurkannya adalah sebagai berikut:
Saat Anda meluncurkan paket, "Hello World by Jay" ditampilkan. Kami sekarang dapat menghentikan dan menghapus bundel menggunakan:
Konsol menampilkan "Goodbye World oleh Jay."
Kesimpulan
Pengembang dapat dengan mudah menambahkan fungsionalitas baru ke aplikasi web yang ada sambil menjaganya tetap aman dan terisolasi dari komponen lain dari program utama dengan menggunakan OSGi.
Kami telah belajar tentang OSGi di posting ini, termasuk bagaimana fungsinya, kelebihannya, dan program yang mudah. Tidak sulit untuk memasukkan OSGi ke dalam aplikasi Anda sendiri.
Selamat coding!
Tinggalkan Balasan