Веќе го имате поставено вашиот софтвер, но сепак ви треба поефективен метод за да им овозможите на вашите технички корисници да ја прошират платформата.
Иако OSGi е добро познат на повеќето развивачи на Java, неговото интегрирање во вашиот производ може да изгледа како застрашувачка задача. Недостатокот на јасност за прецизното функционирање на OSGi дополнително го заматува патот напред.
За разлика од сè со што би сакале да експериментираат, OSGi повеќе се чувствува како обид да плови по широкото море до многу развивачи на Java.
Оваа статија ќе ве запознае со пролетното упатство за OSGi Felix со користење на јасна програма и да ги разгледате, неговите предности и други важни детали.
Значи, што е OSGi?
Креирањето и дистрибуцијата на модули и компоненти е овозможено со Java рамката позната како OSGi (Иницијатива за отворен сервисен портал).
Тој ја нагласува енкапсулацијата на функциите и лабавото спојување, што нуди неколку предности за програмерите, вклучително и модуларна функционалност што е лесно пренослива помеѓу изворните кодови и тестирањето кое не бара бескрајни зависности.
Како функционира OSGi?
Динамичен компонентен систем за Java е дефиниран со множество спецификации наречени OSGi. Овие спецификации овозможуваат развојен пристап каде што апликацијата е изградена од голем број делови, а потоа спакувана во пакети.
Локалните и мрежни услуги се користат од овие компоненти за да комуницираат. Целта е да се направи основниот код на програмата што е можно покомпактен. Можно е големо спојување помеѓу овој код и неколку компоненти.
Градежните елементи за еднократна употреба на апликацијата се нарекуваат компоненти. Размислете за функции како што се количка за вашата веб-страница за е-трговија или апликација за платен список за вашиот систем за управување со персоналот.
Компонентите можат да користат OSGi за да ги сокријат нивните имплементации од другите компоненти и само да им ги обезбедат потребните податоци преку услугите.
Ова ги спречува компонентите од ненамерно менување на податоците до кои не треба да имаат пристап и управува со зависностите.
Сите врски помеѓу компонентите во апликацијата OSGi се направени преку услуги во идеален свет. Јава пакетот содржи API што е наведен за услуги.
Соработката помеѓу давателите на услуги и клиентите бара употреба на класи и/или интерфејси, кои го сочинуваат API.
Сите компоненти на OSGi се спакувани заедно во пакети, од кои секоја ги вклучува ресурсите што им се потребни за да функционираат. Пакетите се сосема јасни за тоа што им треба од околината и за што се способни.
Предности
- Апликациите OSGi имаат пристап до складишта на надворешни пакети.
- Рамката овозможува дизајн ориентиран кон услуги на ниво на модул.
- Овозможува управување со верзиите и зависностите на пакетите на апликации покрај стандардизирањето и олеснувањето на интегрирањето на библиотеки од трети страни.
- Апликациите се поприлагодливи на променливите барања, попреносливи и побрзи за реинженеринг.
- A веб апликација може да се распореди како група верзии на OSGi пакети со динамичен животен век благодарение на интеграцијата на рамката со програмскиот модел Java EE.
- Наместо да се инсталира како библиотека од трета страна како дел од апликацијата, рамката обезбедува декларативно склопување и рационализирано тестирање на единицата на Spring Framework во стандардизирана форма што е обезбедена како дел од траењето на серверот за апликации.
- За корпоративни апликации составени од неколку верзии на пакети со динамичен животен циклус, рамката нуди изолација.
- Содржи интегрирано складиште на пакети што може да складира споделени заеднички и верзии на пакети што ги користат неколку апликации, спречувајќи секоја апликација да распоредува посебна копија од секоја споделена библиотека.
Започнуваме со пролетта OSGi Felix
Добивање на ресурси
Со преземање на најновата верзија на Apache Karaf од овој сајт, можеме да ја започнеме нашата OSGi авантура.
Врз основа на Apache Felix, имплементацијата на Apache на спецификацијата OSGi, Apache Karaf обезбедува платформа за апликации базирани на OSGi.
Караф обезбедува различни корисни функции на врвот на Felix кои ќе ни помогнат да се запознаеме со OSGi, како што е интерфејсот на командната линија што ќе ни овозможи да комуницираме со платформата.
Влезна точка за пакети
Апликацијата мора да биде спакувана како пакет OSGi пред да може да се изврши во OSGi околина. Дополнително, мора да се наведе влезната точка на апликацијата; тоа не е стандардна јавна статична празнина функција main(String[] args).
Значи, да започнеме со создавање „Здраво свету” апликација базирана на OSGi.
Започнуваме со воспоставување на основна зависност од OSGi API:
OSGi траењето ќе има пристап до зависноста, затоа пакетот не треба да го содржи. Затоа, тој е означен како испорачан.
Сега ајде да ја создадеме едноставната класа HelloWorld:
Класите што дејствуваат како влезни точки за пакетите мора да го имплементираат интерфејсот BundleActivator обезбеден од OSGi.
Кога ќе се стартува пакетот што ја содржи оваа класа, платформата OSGi ја повикува функцијата start(). Од другата страна, кратко пред да се запре пакетот, се повикува функцијата stop().
Да не заборавиме дека секој пакет може да има само еден BundleActivator. Двата начини можат да комуницираат со OSGi траењето користејќи го дадениот објект BundleContext.
Креирање на пакет
Направете го pom.xml вистински пакет OSGi со правење на потребните промени.
Прво мора јасно да изразиме дека нашата цел е да произведеме пакет.
Потоа, го користиме приклучокот maven-bundle за да ја спакуваме класата HelloWorld како OSGi пакет, благодарение на заедницата Apache Felix:
Вредностите на заглавијата OSGi што сакаме да ги вклучиме во датотеката MANIFEST на пакетот се наведени во делот за инструкции.
Bundle-Activator е навистина соодветно квалификуваното име на решението BundleActivator кое ќе се користи за стартување и запирање на пакетот. Компатибилен е со штотуку создадената класа.
Иако не е заглавие на OSGi, заглавието на Private-Package му наложува на приклучокот да го додаде пакетот во пакетот, но едноставно да не го направи достапен за други приклучоци. Командата mvn install треба да се користи за креирање на пакетот.
Инсталирање и водење на пакетот
Да го започнеме Караф со извршување на оваа команда:
каде што „KARAF HOME“ се однесува на папката каде што е поставен Karaf. Можеме да ја користиме следнава команда за да го инсталираме пакетот кога ќе се појави известувањето за конзолата Karaf:
Користењето на локалното складиште на Maven е како на Караф му е кажано да го вчита пакетот.
Враќајќи го нумеричкиот ID на пакетот, Караф го запишува. Овој ID може да се разликува во зависност од тоа колку пакети биле претходно инсталирани. Пакетот сега е успешно инсталиран, а командата за негово стартување е како што следува:
Во моментот кога ќе го стартувате пакетот, се прикажува „Hello World by Jay“. Сега можеме да го запреме и отстраниме пакетот користејќи:
Конзолата прикажува „Goodbye World by Jay“.
Заклучок
Програмерите можат лесно да додадат нова функционалност на постоечката веб-апликација додека ја чуваат безбедна и изолирана од другите компоненти на главната програма со користење на OSGi.
Научивме за OSGi во овој пост, вклучително и како функционира, неговите предности и јасна програма. Не е тешко да го вклучите OSGi во вашата сопствена апликација.
Среќно кодирање!
Оставете Одговор