У вас уже є програмне забезпечення, але вам все ще потрібен ефективніший метод, який дозволить вашим технічним користувачам розширити платформу.
Незважаючи на те, що OSGi добре відома більшості Java-розробників, її інтеграція у ваш продукт може здатися складним завданням. Відсутність ясності щодо точної роботи OSGi ще більше заплутує шлях вперед.
На відміну від усього, з чим вони хотіли б поекспериментувати, OSGi більше нагадує спробу поплисти у широке море для багатьох розробників Java.
Ця стаття познайомить вас із підручником OSGi Felix Spring за допомогою простої програми, а також розповість про її переваги та інші важливі деталі.
Отже, що таке OSGi?
Створення та розповсюдження модулів і компонентів стало можливим завдяки інфраструктурі Java, відомої як OSGi (Open Service Gateway Initiative).
Він наголошує на інкапсуляції функцій і слабкому зв’язку, що пропонує розробникам кілька переваг, зокрема модульну функціональність, яку можна легко переносити між вихідними кодами, і тестування, яке не потребує нескінченних залежностей.
Як працює OSGi?
Система динамічних компонентів для Java визначається набором специфікацій, які називаються OSGi. Ці специфікації дають змогу використовувати підхід до розробки, за якого програма складається з кількох частин, а потім об’єднується в пакети.
Ці компоненти використовують для зв’язку локальні та мережеві служби. Метою є зробити основний код програми настільки компактним, наскільки це можливо. Можливий високий зв'язок між цим кодом і кількома компонентами.
Багаторазово використовувані будівельні елементи програми називаються компонентами. Подумайте про такі функції, як кошик для покупок для веб-сайту електронної комерції або додаток для нарахування заробітної плати для вашої системи управління персоналом.
Компоненти можуть використовувати OSGi, щоб приховати свої реалізації від інших компонентів і надавати їм лише необхідні дані через служби.
Це запобігає ненавмисній зміні компонентами даних, до яких вони не повинні мати доступу, і керує залежностями.
Усі зв’язки між компонентами в додатку OSGi здійснюються через служби в ідеальному світі. Пакет Java містить API, визначений для служб.
Співпраця між постачальниками послуг і клієнтами вимагає використання класів та/або інтерфейсів, які складають API.
Усі компоненти OSGi об’єднані в пакети, кожен з яких містить ресурси, необхідні для функціонування. В’язки досить чітко розуміють, що їм потрібно від навколишнього середовища і на що вони здатні.
Переваги
- Програми OSGi мають доступ до зовнішніх сховищ пакетів.
- Фреймворк дозволяє сервіс-орієнтоване проектування на рівні модуля.
- Це дає змогу керувати версіями та залежностями пакетів додатків на додаток до стандартизації та спрощення інтеграції бібліотек сторонніх розробників.
- Програми краще адаптуються до мінливих вимог, більш портативні та швидше піддаються реінжинірингу.
- A веб-додаток можна розгортати як групу версійних пакетів OSGi з динамічним часом життя завдяки інтеграції фреймворку з моделлю програмування Java EE.
- Замість того, щоб бути встановленою як стороння бібліотека як частина програми, фреймворк забезпечує декларативну збірку та спрощене модульне тестування Spring Framework у стандартизованій формі, яка надається як частина середовища виконання сервера програм.
- Для корпоративних програм, що складаються з кількох пакетів версій із динамічними життєвими циклами, структура пропонує ізоляцію.
- Він містить інтегрований репозиторій пакетів, який може зберігати спільні загальні та версійні пакети, які використовуються кількома програмами, запобігаючи розгортанню кожної програми окремої копії кожної спільної бібліотеки.
Початок роботи з OSGi Felix spring
Отримання ресурсів
Завантаживши найновішу версію Apache Karaf із цей сайт, ми можемо почати нашу OSGi-пригоду.
На основі Apache Felix, реалізації Apache специфікації OSGi, Apache Karaf забезпечує платформу для додатків на основі OSGi.
Karaf надає різні корисні функції поверх Felix, які допоможуть нам ознайомитися з OSGi, наприклад, інтерфейс командного рядка, який дозволить нам спілкуватися з платформою.
Точка входу для пакетів
Перш ніж запускати програму в середовищі OSGi, її потрібно запакувати як пакет OSGi. Додатково необхідно вказати точку входу програми; це не стандартна функція public static void main(String[] args).
Отже, почнемо зі створення "Привіт світ»додаток на базі OSGi.
Ми починаємо зі встановлення базової залежності OSGi API:
Середовище виконання OSGi матиме доступ до залежності, тому набір не повинен містити його. Тому він позначений як поставлений.
Тепер давайте створимо простий клас HelloWorld:
Класи, які діють як точки входу для пакетів, повинні реалізовувати наданий OSGi інтерфейс BundleActivator.
Коли пакет, що містить цей клас, запускається, платформа OSGi викликає функцію start(). З іншого боку, незадовго до того, як пакет буде зупинено, викликається функція stop().
Не забуваймо, що кожен пакет може мати лише один BundleActivator. Обидва способи можуть спілкуватися із середовищем виконання OSGi за допомогою наданого об’єкта BundleContext.
Створення комплекту
Зробіть pom.xml справжнім комплектом OSGi, внісши необхідні зміни.
Спершу ми повинні чітко висловити, що наша мета — створити пакет.
Потім ми використовуємо maven-bundle-plugin, щоб упакувати клас HelloWorld як пакет OSGi, люб’язно наданий спільнотою Apache Felix:
Значення заголовків OSGi, які ми хочемо включити у файл MANIFEST пакета, указано в розділі інструкцій.
Bundle-Activator – це справді правильно кваліфікована назва рішення BundleActivator, яке використовуватиметься для запуску та зупинки пакета. Він сумісний із щойно створеним класом.
Хоча це не заголовок OSGi, заголовок Private-Package наказує плагіну додати пакет до набору, але не робить його доступним для інших плагінів. Для створення комплекту слід використовувати команду mvn install.
Встановлення та запуск пакета
Давайте почнемо Karaf, виконавши цю команду:
де «KARAF HOME» відноситься до папки, де було налаштовано Karaf. Ми можемо використати наступну команду для встановлення комплекту, коли з’явиться підказка консолі Karaf:
Використання локального репозиторію Maven — це те, як Karaf завантажує пакет.
Повертаючи числовий ідентифікатор комплекту, Караф записує його. Цей ідентифікатор може відрізнятися залежно від того, скільки пакетів було встановлено раніше. Наразі пакет успішно встановлено, і команда для його запуску така:
Коли ви запускаєте пакет, відображається «Hello World by Jay». Тепер ми можемо зупинити та видалити комплект за допомогою:
На консолі відображається «Goodbye World by Jay».
Висновок
Розробники можуть легко додати нову функціональність до існуючої веб-програми, зберігаючи її в безпеці та ізольованою від інших компонентів основної програми за допомогою OSGi.
У цьому дописі ми дізналися про OSGi, зокрема про те, як він працює, його переваги та просту програму. Інтегрувати OSGi у власну програму нескладно.
Щасливого кодування!
залишити коментар