Anda sudah mempunyai perisian anda, tetapi anda masih memerlukan kaedah yang lebih berkesan untuk membolehkan pengguna teknikal anda mengembangkan platform.
Walaupun OSGi terkenal kepada kebanyakan pembangun Java, menyepadukannya ke dalam produk anda mungkin kelihatan seperti tugas yang sukar. Kekurangan kejelasan tentang kerja tepat OSGi terus membingungkan jalan ke hadapan.
Berbeza dengan apa sahaja yang mereka ingin mencuba, OSGi berasa lebih seperti cuba melayari lautan luas ke banyak pembangun Java.
Artikel ini akan memperkenalkan anda kepada tutorial musim bunga OSGi Felix menggunakan program yang mudah dan melalui, kelebihannya, dan butiran penting lain.
Jadi apa itu OSGi?
Mencipta dan mengedarkan modul dan komponen dimungkinkan oleh rangka kerja Java yang dikenali sebagai OSGi (Inisiatif Gerbang Perkhidmatan Terbuka).
Ia menekankan pengkapsulan fungsi dan gandingan longgar, yang menawarkan beberapa kelebihan kepada pembangun, termasuk fungsi modular yang mudah dipindahkan antara kod sumber dan ujian yang tidak memerlukan kebergantungan yang tidak berkesudahan.
Bagaimanakah OSGi berfungsi?
Sistem komponen dinamik untuk Java ditakrifkan oleh satu set spesifikasi yang dipanggil OSGi. Spesifikasi ini membolehkan pendekatan pembangunan di mana aplikasi dibina daripada beberapa bahagian dan kemudian dibungkus ke dalam berkas.
Perkhidmatan tempatan dan berasaskan rangkaian digunakan oleh komponen ini untuk berkomunikasi. Menjadikan kod teras program sepadat yang mungkin adalah matlamatnya. Gandingan tinggi antara kod ini dan beberapa komponen adalah mungkin.
Elemen bangunan boleh guna semula aplikasi dipanggil komponen. Fikirkan tentang ciri seperti troli beli-belah untuk tapak web e-dagang anda atau aplikasi gaji untuk sistem pengurusan kakitangan anda.
Komponen boleh menggunakan OSGi untuk menyembunyikan pelaksanaannya daripada komponen lain dan hanya menyediakan data yang diperlukan kepada mereka melalui perkhidmatan.
Ini menghalang komponen daripada menukar data yang tidak sepatutnya mereka akses dan mengurus kebergantungan secara tidak sengaja.
Semua sambungan antara komponen dalam aplikasi OSGi dibuat melalui perkhidmatan dalam dunia yang ideal. Pakej Java mengandungi API yang ditentukan untuk perkhidmatan.
Kerjasama antara penyedia perkhidmatan dan pelanggan memerlukan penggunaan kelas dan/atau antara muka, yang membentuk API.
Semua komponen OSGi dibungkus bersama dalam berkas, setiap satunya termasuk sumber yang diperlukan untuk berfungsi. Himpunan cukup jelas tentang apa yang mereka perlukan dari persekitaran dan apa yang mereka mampu.
Faedah-faedah
- Aplikasi OSGi mempunyai akses kepada repositori berkas luaran.
- Rangka kerja membenarkan reka bentuk berorientasikan perkhidmatan pada peringkat modul.
- Ia memungkinkan untuk mengurus versi dan kebergantungan himpunan aplikasi selain menyeragamkan dan memudahkan untuk menyepadukan perpustakaan pihak ketiga.
- Aplikasi lebih mudah disesuaikan dengan permintaan yang berubah-ubah, lebih mudah alih dan lebih cepat untuk merekayasa semula.
- A aplikasi web boleh digunakan sebagai sekumpulan berkas OSGi versi dengan seumur hidup yang dinamik terima kasih kepada penyepaduan rangka kerja dengan model pengaturcaraan Java EE.
- Daripada dipasang sebagai pustaka pihak ketiga sebagai sebahagian daripada aplikasi, rangka kerja menyediakan pemasangan deklaratif dan ujian unit diperkemas Rangka Kerja Spring dalam bentuk piawai yang disediakan sebagai sebahagian daripada masa jalan pelayan aplikasi.
- Untuk aplikasi korporat yang terdiri daripada beberapa berkas versi dengan kitaran hayat dinamik, rangka kerja ini menawarkan pengasingan.
- Ia mengandungi repositori berkas bersepadu yang boleh menyimpan himpunan biasa dan versi yang dikongsi yang digunakan oleh beberapa aplikasi, menghalang setiap aplikasi daripada menggunakan salinan berasingan bagi setiap pustaka dikongsi.
Bermula dengan OSGi Felix spring
Mendapatkan Sumber
Dengan memuat turun versi terbaharu Apache Karaf daripada laman ini, kami boleh memulakan pengembaraan OSGi kami.
Berdasarkan Apache Felix, pelaksanaan Apache bagi spesifikasi OSGi, Apache Karaf menyediakan platform untuk aplikasi berasaskan OSGi.
Karaf menyediakan pelbagai ciri berguna selain Felix yang akan membantu kami membiasakan diri dengan OSGi, seperti antara muka baris arahan yang membolehkan kami berkomunikasi dengan platform.
Titik Kemasukan Untuk Himpunan
Aplikasi mesti dibungkus sebagai berkas OSGi sebelum ia boleh dijalankan dalam persekitaran OSGi. Selain itu, titik kemasukan permohonan mesti dinyatakan; ia bukan fungsi utama kekosongan statik awam standard (String[] args).
Jadi mari kita mulakan dengan mencipta “Hello World” aplikasi berasaskan OSGi.
Kami bermula dengan mewujudkan pergantungan API OSGi asas:
Masa jalan OSGi akan mempunyai akses kepada kebergantungan, oleh itu berkas tidak perlu mengandunginya. Oleh itu, ia ditandakan sebagai dibekalkan.
Sekarang mari buat kelas HelloWorld yang mudah:
Kelas yang bertindak sebagai titik masuk untuk berkas mesti melaksanakan antara muka BundleActivator yang disediakan oleh OSGi.
Apabila berkas yang mengandungi kelas ini dilancarkan, platform OSGi memanggil fungsi mula(). Di sisi lain, sejurus sebelum berkas dihentikan, fungsi stop() dipanggil.
Jangan lupa bahawa setiap berkas hanya boleh mempunyai satu BundleActivator. Kedua-dua cara boleh berkomunikasi dengan masa jalan OSGi menggunakan objek BundleContext yang diberikan.
Mencipta Himpunan
Jadikan pom.xml sebagai berkas OSGi yang benar dengan membuat perubahan yang diperlukan.
Kita mesti menyatakan dengan jelas bahawa matlamat kita adalah untuk menghasilkan satu berkas.
Kemudian, kami menggunakan maven-bundle-plugin untuk membungkus kelas HelloWorld sebagai berkas OSGi, ihsan komuniti Apache Felix:
Nilai pengepala OSGi yang ingin kami sertakan dalam fail MANIFEST bundle dinyatakan dalam bahagian arahan.
Bundle-Activator sememangnya nama yang layak untuk penyelesaian BundleActivator yang akan digunakan untuk memulakan dan menghentikan bundle. Ia serasi dengan kelas yang baru dibuat.
Walaupun ia bukan pengepala OSGi, pengepala Pakej Persendirian mengarahkan pemalam untuk menambah pakej pada berkas tetapi tidak menjadikannya boleh diakses oleh pemalam lain. Perintah pemasangan mvn harus digunakan untuk mencipta berkas.
Memasang dan Menjalankan Bundle
Mari kita mulakan Karaf dengan menjalankan arahan ini:
di mana "KARAF HOME" merujuk kepada folder tempat Karaf disediakan. Kita boleh menggunakan arahan berikut untuk memasang berkas apabila gesaan konsol Karaf muncul:
Menggunakan repositori Maven tempatan ialah cara Karaf diberitahu untuk memuatkan berkas tersebut.
Mengembalikan ID berangka berkas itu, Karaf menulisnya. ID ini mungkin berbeza bergantung pada bilangan berkas yang telah dipasang sebelum ini. Bundle kini telah berjaya dipasang, dan arahan untuk melancarkannya adalah seperti berikut:
Sebaik sahaja anda melancarkan pakej, "Hello World oleh Jay" dipaparkan. Kami kini boleh menghentikan dan mengalih keluar berkas menggunakan:
Konsol memaparkan "Goodbye World oleh Jay."
Kesimpulan
Pembangun boleh dengan mudah menambah fungsi baharu pada aplikasi web sedia ada sambil memastikan ia selamat dan diasingkan daripada komponen lain program utama dengan menggunakan OSGi.
Kami telah mempelajari tentang OSGi dalam siaran ini, termasuk cara ia berfungsi, kelebihannya dan program yang mudah. Tidak sukar untuk memasukkan OSGi ke dalam aplikasi anda sendiri.
Selamat pengekodan!
Sila tinggalkan balasan anda