OSGi - OSGi
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
Логотип OSGi Alliance | |
Год начался | 1999 |
---|---|
Последняя версия | 7.0 Апрель 2018 г.[1] |
Организация | OSGi Alliance |
Домен | Ява |
Лицензия | Лицензия на спецификацию OSGi, версия 2.0 |
Интернет сайт | www |
В OSGi Alliance, ранее известный как Инициатива Open Services Gateway, является открытые стандарты организация, основанная в марте 1999 г., которая первоначально указала и продолжает поддерживать Стандарт OSGi.
В Спецификация OSGi описывает модульную систему и служба платформа для Ява язык программирования, реализующий полную и динамическую компонентная модель, то, что не существует в автономном Java /ВМ среды. Приложения или компоненты, представленные в виде связки за развертывание, можно удаленно устанавливать, запускать, останавливать, обновлять и удалять без необходимости перезагрузка; Управление Пакеты Java /классы указан очень подробно. Управление жизненным циклом приложения реализовано через API, которые позволяют удаленно скачивание политики управления. Реестр услуг позволяет пакетам обнаруживать добавление новых услуг или их удаление и соответствующим образом адаптироваться.
Спецификации OSGi вышли за рамки первоначального фокуса сервисных шлюзов и теперь используются в самых разных приложениях: мобильные телефоны в открытый исходный код Eclipse IDE. Другие области применения включают автомобили, Индустриальная автоматизация, автоматизация зданий, КПК, сеточные вычисления, развлекательная программа, управление автопарком и серверы приложений.
Процесс спецификации
Спецификация OSGi разрабатывается участниками в открытом процессе и предоставляется общественности бесплатно в соответствии с Лицензией на спецификацию OSGi.[2] OSGi Alliance имеет согласие программа, которая открыта только для участников. По состоянию на ноябрь 2010 года существует семь сертифицированных фреймворков OSGi. реализации.[3] На отдельной странице перечислены сертифицированные и несертифицированные Реализации спецификации OSGi, которые включают фреймворки OSGi и другие спецификации OSGi.
Архитектура
OSGi - это среда Java для разработки и развертывания модульных программ и библиотек. Каждый пакет представляет собой тесно связанную, динамически загружаемую коллекцию классов, jar-файлов и файлов конфигурации, которые явно объявляют свои внешние зависимости (если таковые имеются).
Фреймворк концептуально разделен на следующие области:
- Связки
- Связки нормальные БАНКА компоненты с дополнительными заголовками манифеста.
- Услуги
- Уровень сервисов соединяет пакеты динамическим образом, предлагая модель публикации-поиска-привязки для простых старых интерфейсов Java (POJI ) или же простые старые объекты Java (POJO).
- Реестр услуг
- В интерфейс прикладного программирования для управленческих услуг.
- Жизненный цикл
- В интерфейс прикладного программирования для управления жизненным циклом (установка, запуск, остановка, обновление и удаление) пакетов.
- Модули
- Уровень, который определяет инкапсуляцию и объявление зависимостей (как пакет может импортировать и экспортировать код).
- Безопасность
- Уровень, который обрабатывает аспекты безопасности, ограничивая функциональность пакета предварительно определенными возможностями.
- Среда выполнения
- Определяет, какие методы и классы доступны на конкретной платформе. Фиксированного списка сред выполнения не существует, поскольку он может быть изменен по мере необходимости. Процесс сообщества Java создает новые версии и редакции Java. Однако следующий набор в настоящее время поддерживается большинством реализаций OSGi:
- CDC-1.0 / Foundation-1.0
- CDC-1.1 / Foundation-1.1
- OSGi / Минимум-1.0
- OSGi / Минимум-1.1
- JRE-1.1
- От J2SE-1.2 до J2SE-1.6
Связки
Пакет - это группа классов Java и дополнительных ресурсов, снабженная подробным манифестом. МАНИФЕСТ.MF
file на все его содержимое, а также дополнительные службы, необходимые для придания включенной группе классов Java более сложного поведения, вплоть до того, что весь агрегат может считаться компонентом.
Ниже приведен пример типичного МАНИФЕСТ.MF
файл с заголовками OSGi:
1 Bundle-Name: Привет, мир2 Bundle-SymbolicName: org.wikipedia.helloworld3 Комплект-Описание: Комплект Hello World4 Bundle-ManifestVersion: 25 Пакет-версия: 1.0.06 Связка-Активатор: org.wikipedia.Activator7 Экспортный пакет: org.wikipedia.helloworld; version = "1.0.0"8 Импорт-Пакет: org.osgi.framework; version = "1.3.0"
Смысл содержания в примере следующий:[4]
- Название пакета: Определяет удобочитаемое имя для этого пакета. Просто присваивает пакету короткое имя.
- Bundle-SymbolicName: Единственный обязательный заголовок, эта запись определяет уникальный идентификатор для пакета на основе обратное соглашение о доменном имени (используется также пакеты Java ).
- Комплект-Описание: Описание функциональности пакета.
- Пакет-манифест Версия: Указывает спецификацию OSGi для использования при чтении этого пакета.
- Пакет-версия: Обозначает номер версии для пакета.
- Связка-Активатор: Указывает имя класса, который будет вызываться после активации пакета.
- Экспортный пакет: Указывает, какие пакеты Java, содержащиеся в комплекте, будут доступны для внешнего мира.
- Импорт-пакет: Указывает, какие пакеты Java потребуются от внешнего мира для выполнения зависимостей, необходимых в пакете.
Жизненный цикл
Слой жизненного цикла добавляет пакеты, которые можно динамически устанавливать, запускать, останавливать, обновлять и удалять. Пакеты полагаются на уровень модуля для загрузки классов, но добавляют API для управления модулями во время выполнения. Слой жизненного цикла представляет динамику, которая обычно не является частью приложения. Для обеспечения правильной работы среды используются обширные механизмы зависимости. Операции жизненного цикла полностью защищены архитектурой безопасности.
Состояние пакета | Описание |
---|---|
УСТАНОВЛЕНЫ | Пакет успешно установлен. |
РЕШЕНО | Доступны все классы Java, необходимые для пакета. Это состояние указывает на то, что пакет либо готов к запуску, либо остановлен. |
ЗАПУСК | Связка запускается, BundleActivator.start метод был вызван, но метод запуска еще не вернулся. Если пакет имеет политику активации, он будет оставаться в состоянии ЗАПУСКА, пока пакет не будет активирован в соответствии с его политикой активации. |
АКТИВНЫЙ | Пакет успешно активирован и работает; его метод запуска Bundle Activator был вызван и возвращен. |
ОСТАНОВКА | Связка останавливается. В BundleActivator.stop был вызван, но метод остановки еще не вернулся. |
УДАЛЕНО | Пакет был удален. Он не может перейти в другое состояние. |
Ниже приведен пример типичного Java-класса, реализующего ПакетАктиватор
интерфейс:
упаковка org.wikipedia;импорт org.osgi.framework.BundleActivator;импорт org.osgi.framework.BundleContext;общественный учебный класс Активатор орудия ПакетАктиватор { частный BundleContext контекст; @Override общественный пустота Начните(BundleContext контекст) бросает Исключение { Система.из.println("Запуск: Hello World"); это.контекст = контекст; } @Override общественный пустота остановка(BundleContext контекст) бросает Исключение { Система.из.println(«Остановка: прощай, жестокий мир»); это.контекст = ноль; }}
Услуги
Эта секция нуждается в расширении. Вы можете помочь добавляя к этому. (Март 2009 г.) |
Стандартные услуги
OSGi Alliance определил множество услуг. Услуги указаны Java интерфейс. Пакеты могут реализовать этот интерфейс и зарегистрировать службу в реестре служб. Клиенты сервиса могут найти его в реестре или отреагировать на него, когда он появится или исчезнет.
В таблице ниже показано описание системных служб OSGi:
Системные услуги | Описание |
---|---|
логирование | В протоколирование информации, предупреждений, отладочной информации или ошибок обрабатывается через Службу журналов. Он получает записи журнала и затем отправляет эти записи другим пакетам, которые подписались на эту информацию. |
Администратор конфигурации | Эта услуга позволяет оператору устанавливать и получать информацию о конфигурации развернутых пакетов. |
Доступ к устройству | Облегчает координацию автоматического обнаружения и подключения существующих устройств. Это используется для сценариев Plug and Play. |
Администратор пользователя | Эта служба использует базу данных с информацией о пользователях (частной и общедоступной) для аутентификации и авторизации. |
Разъем ввода-вывода | Служба соединителя ввода-вывода реализует CDC /CLDC javax.microedition.io пакет как услуга. Эта услуга позволяет пакетам предоставлять новые и альтернативные схемы протоколов. |
Предпочтения | Предлагает альтернативный, более удобный для OSGi механизм для использования по умолчанию Java Характеристики для хранения предпочтений. |
Компонент Runtime | Динамический характер сервисов - они могут появляться и исчезать в любое время - затрудняет написание программного обеспечения. Спецификация Component Runtime может упростить обработку этих динамических аспектов, предоставляя декларацию зависимостей на основе XML. |
Администратор развертывания | Стандартизирует доступ к некоторым обязанностям агента управления. |
Администратор мероприятия | Предоставляет механизм обмена данными между пакетами на основе модели публикации и подписки. |
Администратор приложения | Упрощает управление средой с множеством различных типов приложений, которые доступны одновременно. |
В таблице ниже показано описание служб протокола OSGi:
Услуги протокола | Описание |
---|---|
HTTP-сервис | Позволяет отправлять и получать информацию из OSGi с помощью HTTP. |
Служба устройства UPnP | Определяет, как пакеты OSGi могут быть разработаны для взаимодействия с Универсальный Plug and Play (UPnP) устройства. |
DMT Admin | Определяет API для управления устройством с использованием концепций из Открытый мобильный альянс (OMA) спецификации управления устройством. |
В таблице ниже показано описание разных служб OSGi:
Разные услуги | Описание |
---|---|
Администратор проводов | Разрешает соединение между сервисом-производителем и сервисом-потребителем. |
XML-парсер | Служба XML Parser позволяет пакету найти синтаксический анализатор с желаемыми свойствами и совместимостью с JAXP. |
Измерение и состояние | Сервис «Измерение и состояние» позволяет и упрощает правильную обработку измерений в сервисной платформе OSGi. |
Организация
OSGi Alliance был основан Ericsson, IBM, Motorola, Sun Microsystems и другие в марте 1999 года. Прежде чем стать некоммерческой корпорацией, она называлась Connected Alliance.
Среди его членов (по состоянию на февраль 2015 г.[Обновить]) более 35 компаний из самых разных сфер бизнеса, например Adobe Systems, Deutsche Telekom, Hitachi, IBM, Liferay, Макевэйв, NEC, NTT, Oracle, Orange S.A., ProSyst, Salesforce.com, Сименс, Software AG и Программное обеспечение TIBCO.[5]
В Альянсе есть совет директоров, который обеспечивает общее управление организацией. Офицеры OSGi выполняют различные функции и обязанности по поддержке альянса. Техническая работа ведется в экспертных группах (ЭГ), учрежденных советом директоров, а нетехническая работа ведется в различных рабочих группах и комитетах. Техническая работа, проводимая в рамках экспертных групп, включает разработку спецификаций, эталонные реализации и тесты на соответствие. Эти экспертные группы выпустили пять основных выпусков спецификаций OSGi (по состоянию на 2012 г.[Обновить]).
Выделенные группы экспертов существуют для предприятий, мобильных устройств, транспортных средств и основных платформ.
Enterprise Expert Group (EEG) является новейшим EG и занимается корпоративными / серверными приложениями. В ноябре 2007 года Residential Expert Group (REG) приступила к работе над спецификациями для удаленного управления жилыми / домашними шлюзами. В октябре 2003 года Nokia, Motorola, IBM, ProSyst и другие члены OSGi сформировали Mobile Expert Group (MEG), которая определит MIDP сервисная платформа для следующего поколения смарт-мобильных телефонов, удовлетворяющая некоторые потребности, которые CLDC не может управлять - кроме CDC. MEG стала частью OSGi, как и R4.
Версии спецификации
- OSGi Release 1 (R1): май 2000 г.
- OSGi Release 2 (R2): октябрь 2001 г.
- OSGi Release 3 (R3): март 2003 г.
- OSGi Release 4 (R4): октябрь 2005 г. / сентябрь 2006 г.
- Базовая спецификация (R4 Core): октябрь 2005 г.
- Спецификация для мобильных устройств (R4 Mobile / JSR-232): сентябрь 2006 г.
- OSGi Release 4.1 (R4.1): май 2007 г. (AKA JSR-291)
- OSGi Release 4.2 (R4.2): сентябрь 2009 г.
- Спецификация Enterprise (R4.2): март 2010 г.
- OSGi Release 4.3 (R4.3): апрель 2011 г.
- Core: апрель 2011 г.
- Компендиум и жилая: май 2012 г.
- OSGi Release 5 (R5): июнь 2012 г.
- Core и Enterprise: июнь 2012 г.
- OSGi Release 6 (R6): июнь 2015 г.
- Core: июнь 2015 г.
- OSGi Release 7 (R7): апрель 2018 г.
- Ядро и компендиум: апрель 2018 г.
- OSGi выпуска 8 (R8): Предлагаемый окончательный проект Август 2020 г.[6]
Связанные стандарты
- MHP / OCAP
- Универсальный Plug and Play (UPnP)
- DPWS
- ITU-T G.hn
- LonWorks
- CORBA
- CEBus
- EHS (KNX ) / CECED ЦЕПЬ
- Расширения управления Java
Проекты с использованием OSGi
- Adobe Experience Manager - предприятие Система управления контентом[7]
- Апач-Овен - Реализации Blueprint Container и расширения ориентированных на приложения спецификаций, определенных OSGi Enterprise Expert Group
- Слинг Apache - Уровень приложений на основе OSGi для JCR репозитории контента
- Атласское слияние и JIRA - архитектура подключаемых модулей для корпоративной вики и системы отслеживания проблем использует OSGi
- Проект "Инструменты бизнес-аналитики и отчетности" (BIRT) - Механизм отчетности с открытым исходным кодом
- Cytoscape - программная платформа для биоинформатики с открытым исходным кодом (начиная с версии 3.0)
- DataNucleus - сервисы данных с открытым исходным кодом и постоянная платформа в сервис-ориентированных архитектурах
- DDF - Distributed Data Framework обеспечивает бесплатную интеграцию данных с открытым исходным кодом.
- Dotcms - Управление веб-контентом с открытым исходным кодом
- EasyBeans - контейнер EJB 3 с открытым исходным кодом
- Затмение - IDE с открытым исходным кодом и многофункциональная клиентская платформа
- Умный дом Eclipse - фреймворк с открытым исходным кодом для автоматизации зданий
- iDempiere - это реализация OSGi с открытым исходным кодом ERP Филиал GlobalQSS Адемпьер 361, первоначально начатый Лоу Хенг Сином[8]
- Затмение Девы - сервер на базе микроядра с открытым исходным кодом, созданный из пакетов OSGi и поддерживающий приложения OSGi
- Стеклянная рыба (v3) - сервер приложений для Java EE
- Предохранитель ESB - производимая и поддерживаемая версия ServiceMix 4.
- GX WebManager Community Edition - Система управления корпоративным веб-контентом на основе OSGi, spring и JCR
- Встроенный браузер генома - графический интерфейс с открытым исходным кодом для настольных ПК для визуализации, изучения и анализа данных генома
- IntelliJ - Java IDE и многофункциональная клиентская платформа с бесплатной версией сообщества
- JBoss - Сервер приложений Red Hat JBoss
- ЙОНАС 5 - сервер приложений Java EE 5 с открытым исходным кодом
- Иорам - сервер обмена сообщениями с открытым исходным кодом (JMS, MQTT, AMQP и т. д.)
- JOSSO 2 - Платформа управления идентификацией и доступом Atricore на основе стандартов с открытым исходным кодом
- Liferay Dxp - Платформа корпоративного портала с открытым исходным кодом и коммерческая платформа используют OSGi начиная с версии 7.x.
- Люси 5 - сервер веб-приложений CFML с открытым исходным кодом
- NetBeans - IDE с открытым исходным кодом и многофункциональная клиентская платформа
- Nuxeo - Открытый исходный код ECM Платформа обслуживания
- Открыть проект Daylight - Проект с целью ускорения внедрения программно-определяемая сеть
- OpenEJB - контейнер EJB 3.0 с открытым исходным кодом, поддерживающий OSGi, который может работать как в автономном, так и в встроенном режиме
- openHAB - ПО с открытым исходным кодом для домашней автоматизации
- OpenWorm - программное обеспечение с открытым исходным кодом для моделирования C. elegans через специальный Джеппетто модульная платформа
- Акана - API-шлюз, портал и сервер аналитики от Akana (ранее SOA Software)
- Сервер SpringSource dm - сервер на базе микроядра с открытым исходным кодом, созданный из пакетов OSGi и поддерживающий приложения OSGi
- Weblogic - Сервер приложений Oracle Weblogic
- WebSphere - Сервер приложений IBM Websphere JEE
- WebMethods - SoftwareAG WebMethods
- WSO2 Углерод - Базовая платформа для стека промежуточного программного обеспечения с открытым исходным кодом WSO2 корпоративного уровня
Текущие реализации фреймворка
Имя | Лицензия |
---|---|
Апач Феликс | Открытый исходный код |
Консьерж OSGi | Открытый исходный код |
Эквинокс OSGi | Открытый исходный код |
Knopflerfish | Открытый исходный код |
Программное обеспечение Bosch IoT Gateway | Коммерческий |
Затмение Близнецы | Открытый исходный код |
Смотрите также
Рекомендации
- ^ "OSGi Alliance | Технические характеристики / Домашняя страница". osgi.org. 2015. Получено 30 июня, 2016.
- ^ «Лицензия на спецификацию OSGi». Архивировано из оригинал на 2015-09-14. Получено 2012-05-10.
- ^ https://www.osgi.org/osgi-compliance/osgi-certification/osgi-certified-products/
- ^ Создание пакетов OSGi Костин Ло
- ^ OSGi Alliance | О компании / Члены
- ^ https://blog.osgi.org/2020/08/osgi-core-r8-proposed-final-and.html
- ^ «Forrester называет лидеров в области управления веб-контентом». CMSWire. 2018-11-16. Получено 5 декабря 2018.
- ^ "Adempiere Branch_GlobalQSS_361". http://www.adempiere.com/. Получено 27 сентября 2014. Внешняя ссылка в
| сайт =
(помощь)
дальнейшее чтение
Этот дальнейшее чтение раздел может содержать несоответствующие или чрезмерные предложения, которые могут не соответствовать рекомендациям Википедии. руководящие указания. Убедитесь, что только разумное количество из сбалансированный, актуальный, надежный, и даны важные предложения для дальнейшего чтения; удаление менее актуальных или повторяющихся публикаций с помощью та же точка зрения где необходимо. Рассмотрите возможность использования соответствующих текстов в качестве встроенные источники или создание отдельная библиографическая статья. (Апрель 2011 г.) (Узнайте, как и когда удалить этот шаблон сообщения) |
- Камминс, Холли; Уорд, Тим (28 марта 2013 г.), Enterprise OSGi в действии (1-е изд.), Публикации Мэннинга, п. 376, г. ISBN 978-1617290138
- Алвес, Александр де Кастро (28 июля 2011 г.), OSGi в подробностях (1-е изд.), Публикации Мэннинга, п. 325, ISBN 978-1-935182-17-7
- Макаффер, Джефф; VanderLei, Пол; Арчер, Саймон (24 февраля 2010 г.), OSGi и Equinox: создание высокомодульных систем Java (1-е изд.), Эддисон-Уэсли Профессионал, п. 460, г. ISBN 978-0-321-58571-4
- Жозеф Гедеон, Валид (5 ноября 2010 г.), OSGi и Apache Felix 3.0 Руководство для начинающих (1-е изд.), Packt Publishing, п. 336, г. ISBN 978-1-84951-138-4
- Стены, Крейг (июль 2009 г.), Модульная Java с OSGi и Spring (1-е изд.), Pragmatic Bookshelf, стр. 250, ISBN 978-1-934356-40-1
- Холл, Ричард С; Паулс, Карл; Маккалок, Стюарт (сентябрь 2009 г.), OSGi в действии (1-е изд.), Публикации Мэннинга, п. 375, ISBN 978-1-933988-91-7
- Алвес, Александр де Кастро (март 2009 г.), OSGi Application Frameworks (1-е изд.), Публикации Мэннинга, п. 325, ISBN 978-1-935182-17-7
- Бартлетт, Нил (10 января 2009 г.), OSGi на практике (PDF) (ПРОЕКТ ред.), Стр. 229
- Макаффер, Джефф; VanderLei, Пол; Арчер, Саймон (7 сентября 2009 г.), Equinox и OSGi: сила Eclipse (1-е изд.), Эддисон-Уэсли Профессионал, п. 480, ISBN 978-0-321-58571-4
- Мак, Гэри (2009), Сервер Pro SpringSource dm, Apress, п. 250, ISBN 978-1-4302-1640-7, заархивировано из оригинал на 2010-12-05, получено 2008-12-28
- Рубио, Даниэль (2009-02-12), Динамические модули Pro Spring для сервисных платформ OSGi (Первое изд.), Apress, стр.392, ISBN 978-1-4302-1612-4
- Альянс OSGi (2003 г.), Сервисная платформа OSGi, выпуск 3, IOS Press, стр. 604, г. ISBN 1-58603-311-5
- Сервисная платформа OSGi, базовая спецификация, выпуск 4, версия 4.1, OSGi Alliance., 2007, стр. 228, ISBN 978-90-79350-01-8
- Сервисная платформа OSGi, базовая спецификация, выпуск 4, версия 4.2, OSGi Alliance., 2009, с. 332, ISBN 978-90-79350-04-9
- Сервисная платформа OSGi, Сервисный сборник, выпуск 4, версия 4.1, OSGi Alliance., 2007, стр. 594, г. ISBN 978-90-79350-02-5
- Сервисная платформа OSGi, мобильная спецификация, выпуск 4, версия 4, OSGi Alliance., 2007, стр. 426, г. ISBN 978-90-79350-03-2
- Кирк Чен, Ли Гонг. (2001), Программирование шлюзов с открытыми службами с использованием технологии Java Embedded Server (TM), Prentice Hall PTR, стр. 480, ISBN 0-201-71102-8
- Кайоде Одееми (2010), Создание декларативной службы OSGI с помощью Maven с использованием Netbeans
- Би Джей Харгрейв (IBM) (2011), Техническое обновление OSGi 4.3: что нового?, The Eclipse Foundation, архивировано из оригинал на 2011-06-21, получено 2011-06-11
внешняя ссылка
- Официальный веб-сайт
- Оредев 2008 - Архитектура - OSGi сейчас и завтра
- Указатель статей о Eclipse Equinox - Статьи о реализации OSGi с открытым исходным кодом