Sizda allaqachon o'z dasturiy ta'minotingiz mavjud, ammo siz hali ham texnik foydalanuvchilarga platformani kengaytirish uchun yanada samaraliroq usulga muhtojsiz.
OSGi ko'pchilik Java dasturchilariga yaxshi ma'lum bo'lsa ham, uni mahsulotingizga integratsiya qilish juda qiyin vazifa bo'lib tuyulishi mumkin. OSGi ning aniq ishlashi haqida aniqlik yo'qligi oldinga yo'lni yanada chalkashtirib yuboradi.
Ular sinab ko'rmoqchi bo'lgan har qanday narsadan farqli o'laroq, OSGi ko'proq Java dasturchilariga keng dengizni suzib o'tishga urinish kabi his qiladi.
Ushbu maqola sizni oddiy dastur yordamida OSGi Feliks bahorgi o'quv qo'llanmasi va uning afzalliklari va boshqa muhim tafsilotlari bilan tanishtiradi.
Xo'sh, OSGi nima?
Modullar va komponentlarni yaratish va tarqatish OSGi (Open Service Gateway Initiative) deb nomlanuvchi Java ramkasi yordamida amalga oshiriladi.
U ishlab chiquvchilarga bir qator afzalliklarni, jumladan, manba kodlari va cheksiz bog'liqliklarni talab qilmaydigan testlar o'rtasida oson o'tkaziluvchi modulli funksionallikni taqdim etuvchi funksiya inkapsulyatsiyasi va bo'sh ulanishga urg'u beradi.
OSGi qanday ishlaydi?
Java uchun dinamik komponentlar tizimi OSGi deb nomlangan spetsifikatsiyalar to'plami bilan belgilanadi. Ushbu spetsifikatsiyalar dastur bir nechta qismlardan tuzilgan va keyin paketlarga qadoqlangan holda ishlab chiqish yondashuvini ta'minlaydi.
Mahalliy va tarmoqqa asoslangan xizmatlar ushbu komponentlar tomonidan muloqot qilish uchun ishlatiladi. Maqsad dasturning asosiy kodini imkon qadar ixcham qilishdir. Ushbu kod va bir nechta komponentlar o'rtasida yuqori ulanish mumkin.
Ilovaning qayta foydalanish mumkin bo'lgan qurilish elementlari komponentlar deb ataladi. Elektron tijorat veb-saytingiz uchun xarid savati yoki xodimlarni boshqarish tizimi uchun ish haqi ilovasi kabi xususiyatlar haqida o'ylab ko'ring.
Komponentlar OSGi-dan o'z ilovalarini boshqa komponentlardan yashirish uchun foydalanishi va ularga faqat xizmatlar orqali kerakli ma'lumotlarni taqdim etishi mumkin.
Bu komponentlar kirish imkoni bo'lmasligi kerak bo'lgan ma'lumotlarni tasodifiy o'zgartirishdan saqlaydi va bog'liqliklarni boshqaradi.
OSGi ilovasidagi komponentlar orasidagi barcha ulanishlar ideal dunyoda xizmatlar orqali amalga oshiriladi. Java paketida xizmatlar uchun belgilangan API mavjud.
Xizmat ko'rsatuvchi provayderlar va mijozlar o'rtasidagi hamkorlik APIni tashkil etuvchi sinflar va/yoki interfeyslardan foydalanishni talab qiladi.
Barcha OSGi komponentlari to'plamlarda to'plangan bo'lib, ularning har biri ishlashi uchun zarur bo'lgan resurslarni o'z ichiga oladi. To'plamlar atrof-muhitdan nimaga muhtojligi va nimaga qodirligi haqida juda aniq.
foydasi
- OSGi ilovalari tashqi paketlar omborlariga kirish huquqiga ega.
- Ramka modul darajasida xizmatga yo'naltirilgan dizaynga imkon beradi.
- Bu uchinchi tomon kutubxonalarini standartlashtirish va integratsiyani osonlashtirish bilan bir qatorda dastur to'plamlarining versiyalari va bog'liqliklarini boshqarish imkonini beradi.
- Ilovalar o'zgaruvchan talablarga ko'proq moslashadi, ko'proq portativ va qayta muhandislik qilish uchun tezroq.
- A veb-ilovasi Java EE dasturlash modeli bilan ramka integratsiyasi tufayli dinamik umrga ega versiyali OSGi to'plamlari guruhi sifatida joylashtirilishi mumkin.
- Ilovaning bir qismi sifatida uchinchi tomon kutubxonasi sifatida o'rnatilishi o'rniga, ramka dastur serverining ishlash vaqtining bir qismi sifatida taqdim etilgan standartlashtirilgan shaklda Spring Frameworkning deklarativ yig'ilishini va soddalashtirilgan birlik sinovini ta'minlaydi.
- Dinamik hayot aylanishiga ega bir nechta versiyali paketlardan tashkil topgan korporativ ilovalar uchun ramka izolyatsiyani taklif qiladi.
- U bir nechta ilovalar tomonidan ishlatiladigan umumiy va versiyali to'plamlarni saqlashi mumkin bo'lgan o'rnatilgan to'plam omborini o'z ichiga oladi, bu esa har bir ilovaning har bir umumiy kutubxonaning alohida nusxasini joylashtirishga to'sqinlik qiladi.
OSGi Feliks bahoridan foydalanishni boshlash
Resurslarni olish
Apache Karafning eng so'nggi versiyasini yuklab olish orqali Ushbu sayt, biz OSGi sarguzashtimizni boshlashimiz mumkin.
OSGi spetsifikatsiyasining Apache ilovasi bo'lgan Apache Felix-ga asoslanib, Apache Karaf OSGi-ga asoslangan ilovalar uchun platformani taqdim etadi.
Karaf Feliksning yuqori qismida OSGi bilan tanishishimizga yordam beradigan turli xil foydali xususiyatlarni taqdim etadi, masalan, platforma bilan bog'lanishimizga imkon beradigan buyruq qatori interfeysi.
To'plamlar uchun kirish nuqtasi
Ilova OSGi muhitida ishga tushirilishidan oldin OSGi to'plami sifatida paketlangan bo'lishi kerak. Bundan tashqari, arizaning kirish nuqtasi ko'rsatilishi kerak; bu standart umumiy statik void main(String[] args) funksiyasi emas.
Shunday qilib, "ni yaratishdan boshlaylik.Salom Dunyo” OSGi asosidagi ilova.
Biz asosiy OSGi API bog'liqligini o'rnatishdan boshlaymiz:
OSGi ish vaqti bog'liqlikka kirish huquqiga ega bo'ladi, shuning uchun to'plamda uni o'z ichiga olishi shart emas. Shuning uchun u yetkazib berilgan deb belgilangan.
Keling, oddiy HelloWorld sinfini yarataylik:
To'plamlar uchun kirish nuqtasi sifatida ishlaydigan sinflar OSGi tomonidan taqdim etilgan BundleActivator interfeysini amalga oshirishi kerak.
Ushbu sinfni o'z ichiga olgan to'plam ishga tushirilganda, OSGi platformasi start() funksiyasini chaqiradi. Boshqa tomondan, to'plam to'xtatilishidan biroz oldin stop() funktsiyasi chaqiriladi.
Unutmaylik, har bir to'plamda faqat bitta BundleActivator bo'lishi mumkin. Ikkala usul ham berilgan BundleContext obyekti yordamida OSGi ish vaqti bilan bog'lanishi mumkin.
Bundle yaratish
Kerakli o'zgarishlarni amalga oshirish orqali pom.xml ni haqiqiy OSGi to'plamiga aylantiring.
Biz birinchi navbatda maqsadimiz to'plam ishlab chiqarish ekanligini aniq ifodalashimiz kerak.
Keyin HelloWorld sinfini OSGi to'plami sifatida to'plash uchun maven-bundle-plugindan foydalanamiz, Apache Felix hamjamiyatining ruxsati bilan:
Biz to'plamning MANIFEST fayliga kiritmoqchi bo'lgan OSGi sarlavhalarining qiymatlari ko'rsatmalar bo'limida ko'rsatilgan.
Bundle-Activator, albatta, to'plamni ishga tushirish va to'xtatish uchun ishlatiladigan BundleActivator yechimining to'g'ri malakali nomidir. U hozirgina yaratilgan sinfga mos keladi.
Bu OSGi sarlavhasi bo'lmasa-da, Private-Package sarlavhasi plaginga paketni to'plamga qo'shishni buyuradi, lekin uni boshqa plaginlar uchun ochiq qilmaydi. To'plamni yaratish uchun mvn install buyrug'idan foydalanish kerak.
To'plamni o'rnatish va ishga tushirish
Keling, Karafni ushbu buyruqni bajarish bilan boshlaylik:
bu erda "KARAF HOME" Karaf o'rnatilgan papkaga ishora qiladi. Karaf konsoli so'rovi paydo bo'lganda biz to'plamni o'rnatish uchun quyidagi buyruqdan foydalanishimiz mumkin:
Mahalliy Maven omboridan foydalanib, Karafga to'plamni yuklash buyuriladi.
To'plamning raqamli identifikatorini qaytarib, Karaf uni yozadi. Bu identifikator avval oʻrnatilgan toʻplamlar soniga qarab farq qilishi mumkin. To'plam muvaffaqiyatli o'rnatildi va uni ishga tushirish buyrug'i quyidagicha:
Paketni ishga tushirganingizda, "Hello World by Jey" ko'rsatiladi. Endi biz to'plamni to'xtatib, olib tashlashimiz mumkin:
Konsolda "Jeyning xayrli dunyosi" ko'rsatiladi.
Xulosa
Ishlab chiquvchilar mavjud veb-ilovaga OSGi yordamida uni xavfsiz va asosiy dasturning boshqa komponentlaridan ajratilgan holda osongina yangi funksiyalarni qo'shishlari mumkin.
Biz ushbu postda OSGi haqida, jumladan, uning qanday ishlashi, afzalliklari va oddiy dastur haqida bilib oldik. OSGi-ni o'z ilovangizga kiritish qiyin emas.
Baxtli kodlash!
Leave a Reply