ПО

В этом году ее сторонники ожидают мощного прорыва, но между ними могут возникнуть серьезные разногласия

Для инициативы Open Services Gateway (OSGi) настало время расцвета: технология, определяющая стандарты и позволяющая связывать различные удаленные узлы, начиная от офисов подразделений и заканчивая жилыми помещениями и школами, принята организацией Eclipse Foundation, примеру которой последовали некоторые другие разработчики и пользователи корпоративных систем. Самые различные компании, например IBM, BEA Systems, Paremus, JBoss (последняя недавно стала подразделением Red Hat), расхваливали ее достоинства на конференции EclipseCon, проходившей 5-8 марта в Санта-Кларе (шт. Калифорния).

"OSGi представляет собой вполне зрелую технологию. Она с 1999 г. используется во встроенных системах и является широко распространенной, - заявил Ричард Николсон, генеральный директор фирмы Paremus - находящегося в Лондоне производителя ПО для сервисно-ориентированных архитектур. - Последние полтора года мир корпоративного ПО проявлял большой интерес к OSGi и заявлял о приверженности этой технологии".

Однако несмотря на широкую поддержку OSGi, на горизонте замаячили противоречия. Корпорация Sun Microsystems, которая в 1999 г. была в числе основателей организации OSGi Alliance, выпустила спецификацию Java Specification Request, известную как JSR 277 и нацеленную на создание новой компонентной модели для Java 7. JSR 277 конкурирует с JSR 291 - спецификацией OSGi. Поэтому некоторые сторонники данной технологии считают, что эта разработка Sun вызовет раскол в пока более-менее монолитном мире Java.

"Мы считаем, что отрасль действительно приступает к широкому использованию OSGi".

"JSR 277 отражает упрощенный подход, игнорирующий многие реальные проблемы: наличие вариантов (optionality), расщепление пакетов (split packages) и т. д., - писал в своем интернет-блоге Питер Крайенс из OSGi Alliance в октябре 2006 г. - Мало того, что эту спецификацию нельзя в обозримом будущем реализовать на платформе J2ME (Java 2 Platform, Micro Edition), она еще и оставит ни с чем многих из тех, кто принял технологию OSGi".

Инициатива OSGi была выдвинута в 1999 г., когда группа из 15 компаний взялась реализовать мечту о мире, в котором множество устройств (начиная от бытовых систем обогрева и заканчивая фабричными роботами) будет подключаться к Интернету, и объявила о разработке спецификаций универсального шлюза, построенного на основе технологии Java. Они поставили перед собой задачу создания отраслевого стандарта платформы для приложений Java, позволяющей нескольким приложениям безопасно работать с одной виртуальной машиной Java (Java Virtual Machine, JVM). Кроме того, программы могли бы совместно обращаться к таким ресурсам, как данные, функции и подпроцессы (threads). А сервисная платформа OSGi позволяет создавать приложения из небольших, взаимодействующих друг с другом (collaborative) компонентов. Сфера применения OSGi простирается от работы с нею в качестве сервисной платформы для встраиваемых устройств до подключаемых (plug-in) механизмов для более крупных программ. "Мы считаем, что отрасль действительно приступает к широкому применению OSGi и что в 2007 г. она войдет в число ключевых технологий. Это лучшая модель компонентных приложений, которая имеет шанс составить конкуренцию существующей платформе Microsoft .Net, - заявил Майк Милинкович, исполнительный директор Eclipse Foundation (г. Оттава, Канада).

OSGi везде и всюду.Эта технология стала ключевым элементом многочисленных

 инициатив производителей ПО

Модель подключаемых (plug-in) модулей Eclipse основывается на OSGi, поэтому в нынешнем году эта технология была широко представлена на конференции EclipseCon. OSGi представляет собой одну из ключевых стандартизированных технологий, используемых в продуктах компании Paremus, сообщил Николсон. "OSGi предоставляет нам облегченную динамическую модель работы компонентов (lightweight, dynamic, component life cycle), что позволяет создавать подлинно подключаемые (pluggable), многократно используемые и не зависящие от конкретного продукта компоненты или сервисы, а также ориентироваться на серверы приложений следующего поколения, предназначенные для сервисно-ориентированной архитектуры", - сказал он.

В Infiniflow - решении компании Paremus на базе OSGi - отдельные сервисы определяются как наборы (bundles) OSGi. В январе Paremus совместно с Gatespace Telematics выдвинула инициативу OSGi4Enterprise, поддерживающую три продукта с открытым исходным кодом, в которых реализована OSGi: Equinox, созданный в Eclipse Foundation, Felix, разработанный в Apache Software Foundation, и Knoplerfish фирмы Gatespace.

Род Джонсон, основатель фирмы Spring Framework и генеральный директор Interface21 (Кент, Великобритания), считает, что в 2007 г. продукт Spring OSGi получит широкое распространение. "OSGi представляет собой весьма совершенное решение для разделения ПО на модули, их развертывания и замены в "горячем" режиме, а также для контроля версий, - заявил Джонсон. - Это то, чего всегда недоставало J2EE (Java 2 Platform, Enterprise Edition). Имеется большая потребность в таких функциях для серверного ПО. За последние несколько месяцев на предприятиях поднялась волна интереса к OSGi".

Саша Лейбори, главный технолог подразделения JBoss в корпорации Red Hat (Роли, шт. Сев. Каролина), считает, что перед OSGi открываются широкие перспективы: "Значение OSGi растет. Она пока не стала спецификацией, которую нельзя не применять, но постепенно движется в этом направлении. Если Eclipse широко использует OSGi на уровне ядра, то интегрированная среда разработки тесно привязана к серверному ПО. Соответственно нельзя судить об успехах OSGi в составе серверного ПО, глядя на успехи Eclipse".

По словам Лейбори, JBoss разрабатывает микроконтейнер следующего поколения, в котором будет впервые встроен JBoss Application Server 5.0. Он заявил, что в этом сервере приложений применяется микроконтейнер на базе POJO (plain old Java objects), причем его функционал выходит далеко за пределы набора функций OSGi.

IBM (Армонк, шт. Нью-Йорк) тоже рассматривает OSGi в качестве одного из главных элементов своих планов. "С точки зрения IBM, OSGi представляет собой важный стандарт, которого так недоставало в Java, - сказал Б. Дж. Харгрейв, главный технолог OSGi Alliance, работающий над OSGi. - Мы уже отмечаем колоссальный спрос со стороны специалистов на предоставляемые этой технологией возможности и реализуем их в своих продуктах".

Эрик Ньюкамер, главный технолог компании Iona Technologies (Уолтем, шт. Массачусетс), рассказал, что Iona использует OSGi в составе инструментальной платформы Eclipse SOA Tools Platform Project: "Доступ к подключаемым модулям Eclipse осуществляется при участии наборов (bundles) OSGi. Это доказало полезность данной технологии в масштабных программных средах. Однако другая часть возможностей OSGi, в которых мы весьма заинтересованы, не получила столь же широкого признания. Речь идет о способности OSGi служить контейнером времени исполнения или средой исполнения".

Джеф Мак-Аффер, один из главных технических специалистов IBM Rational и руководитель проекта Eclipse Equinox, в котором реализуется OSGi, сказал, что она играет одну из главный ролей в Eclipse. "Это базовая среда исполнения для Eclipse, - заявил Мак-Аффер. - Каждый раз, когда вы видите, что кто-то работает с Eclipse, вы наблюдаете, как он применяет Equinox".

Милинкович из Eclipse Foundation считает, что разногласия, вызванные появлением JSR 277 корпорации Sun, могут приобрести серьезный характер.

Николсон из Paremus сказал, что OSGi, описываемая в настоящее время в JSR 291, уже достигла зрелости. "Поэтому никому не понравится, что стандарт расщепляется с использованием в JSR 277 совершенно нового подхода", - заявил он.

Помимо прочего, по словам Николсона, OSGi способна работать в самых различных средах Java, включая урезанные версии JVM для мобильных телефонов и других устройств и выпускавшиеся прежде версии JVM, а JSR 277 сможет работать только на будущих версиях JVM.