SpringSource dm Server

SpringSource dm Server является сервером приложений Java EE основанным на технологии OSGi. SpringSource dm Server является составной частью SpringSource Application Platform, которая помимо собственно сервера приложений содержит также другие компоненты и инструменты облегчающие разработку, сопровождение и управление Java EE приложений.

Почему вообще возникла необходимость выхода в свет такого продукта и почему имеет смысл отказаться от проверенных и знакомых решений в пользу SpringSource dm Server?

Недостатки «традиционных» серверов приложений Java EE.

Под «традиционными» серверами приложений Java EE здесь имеются в виду практически все существующие решения, как open source (например JBoss), так и предлагающиеся от известных производителей программного обеспечения (WebSphere от IBM или BEA WebLogic). Несмотря на различные реализации, все они удовлетворяют стандарты J2EE и поэтому обладают некоторыми недостатками, которые не предусмотрены этим стандартом, такими как например:

  • монолитная структура исполняемого модуля (deployment archive). При разработке корпоративной системы тщательно продумываются структура приложения, вводятся хорошо продуманные уровни, которые зависят только от ниже расположенных слоев (например уровень реализации бизнес логики использует доступ к сервисам хранилища данных, которые в свою очередь не имеют никакого представления о бизнес логике). Когда же приложение разворачивается на сервере приложений, все упаковывается в архив и вся эта продуманная структура теряется. В лучшем случае возможно организовать разбиение системы на resource adapter-RAR, веб приложение (web application)-WAR и EJB JAR, что является скорее технологическим и не отражает логическую структуру приложения, в то время как в большинстве случаем крайне желательно возможность поддержки этой структуры на этапе установки и сопровождения.
  • Сложность повторного использования сервисов. В традиционных серверах приложений непросто обеспечить использование функций и сервисов, реализованных в одном приложении, которое уже развернуто и функционирует, из другого приложения. Даже если используются framework services для организации доступа к этим сервисам, все равно существуют проблемы загрузки классов (class loading) и невозможность обеспечить одновременно работу с разными версиями одной и той же библиотеки. В результате для организации системы, построенной на принципах сервис-ориентированной архитектуры (SOA), часто прибегают к использованию сторонних форматов и механизмов обмена информацией (таких как web services), что в случае функционирования системы в однородной среде не эффективно и вносит дополнительные сложности.
  • Сложность установки новых версий системы. В существующих Java EE серверах приложений как правило нет возможности обновить компоненты системы без их перезапуска. Кроме того, даже малейшее изменение только одного компонента требует новой сборки и перестановки целой системы. Кроме того, даже тщательное тестирование приложения в тестовой обстановке может не выявить все проблемы новой версии, которые возникают в реальном рабочем окружении.
  • Отсутствие поддержки версий компонентов. Как уже было упомянуто, невозможность обеспечить одновременно работу с разными версиями одной и той же библиотеки является часто огромным препятствием к безотказной работе системы. Например Hibernate 3.3.0 SP1 требует наличия библиотеки Commons Collection 3.1, в то время как для работы других модулей системы может быть необходима версия как минимум 3.2.1. Поскольку в «традиционных» Java EE серверах приложение невозможно организовать такое сосуществование различных версий, как правило берется наиболее старшая версия с надеждой, что разработчики этого продукта обеспечивают совместимость «снизу-вверх».
Решение проблем «традиционных» Java EE серверов приложений в SpringSource dm Server

SpringSource dm Server был задуман и реализован чтобы решить проблемы «традиционных» Java EE серверов приложений. SpringSource dm Server является центральным компонентом Spring Application Platform и вместе с SpringSource Performace Tools позволяет разрабатывать приложения быстрее и качественнее.

Диаграмма 1 представляет архитектуру и основные компоненты Spring Application Platform.

Диаграмма 1

SpringSource dm Server

SpringSource dm Server является центральной компонентой Spring Application Platform и в настоящее время является практически единственным сервером приложений, базирующимся на OSGi модели, доступной для разработчиков прикладных систем. Большинство же других Java EE серверов приложений, разработчики которых заявляют о поддержке OSGi, позволяют использовать возможности этой модели только для своих внутренних компонент и не предоставляют доступ к ней.

Хоть SpringSource dm Server и построен на OSGi, тем не менее традиционные приложения, которые не ее используют, могут быть без проблем на нем развернуты без малейшей модификации исходного кода.

Тем не менее, разрабатывая новые приложения, следует воспользоваться теми преимуществами, которые предоставляет реализация модели OSGi в SpringSource dm Server:

  • разбиение на модули и версионность. Платформа OSGi позволяет естественным образом сохранять модульною структуру приложения и поддерживать одновременное существование различных версии модулей.
  • управляемость и контроль версий. Платформа OSGi включает в себя служебный модуль, позволяющий устанавливать и демонтировать уже установленные компоненты, а также их запускать и останавливать.
  • независимость от OSGi прикладных компонент (non-intrusiveness). Использование платформы OSGi не требует от разработчиков прикладных компонент использовать какие-бы то ни было специальные классы или интерфейсы этой платформы, что позволяет применение в бизнес логике только простых объектов (simple objects), которые в мире Java часто называются «простые старые java объекты» (plain old java objects или POJO), что является правилом хорошего стиля в разработке программного обеспечения.
  • Позднее связывание (laziness). Приложение, использующее OSGi, использует преимущества позднего связывания необходимых компонент и сервисов. Платформа OSGi может отложить момент загрузки и инициализации этих компонентов и компонентов от которых они сами зависит до тех пор,пока они не потребуются по ходу выполнения.
Основные компоненты SpringSource dm Server

Основными компонентами SpringSource dm Server являются Spring Framework, Tomcat, OSGi R4.1, Equinox и Spring Dynamic Modules for the OSGi Platform. Рассмотрим каждый из этих составных частей немного подробнее:

  • Spring Framework: в своей основе Spring Framework является контейнером (IoC container),поддерживающим конфигурирование зависимостей (dependency injection-DI или inversion of control-IoC). Обычно (если не применяется такой контейнер), то система сама должна отслеживать все необходимые зависимости между классами и модулями, т.е. если например класс class1 зависит от класса class2, то при инициализации class1 ему нужно либо передать указатель на существующий экземпляр class2 (или его производный класс), либо же самому его создать. IoC контейнер освобождает от такой необходимости, в этом случае подобные зависимости конфигурируются. Кроме IoC Spring Framework характеризуется обширной поддержкой аспектно-ориентированного программирования-АОП (Aspect Oriented Programming или AOP) и абстракцией Java EE сервисов (Enterprise Service Abstraction), которая позволяет использование стандартных API таких как например JDBC, JMX, JMS, scheduling или remoting существенно упрощенным и менее склонным к ошибкам образом.
  • Tomcat: это веб контейнер (web container ), реализующий спецификации Java Servler и Java Server Pages, и является самым распространенным в мире Java. Разработчики Tomcat утверждают, что настоящее время функционируют не менее 100 000 функционирующих рабочих окружений. Благодаря своей высокой надежности и производительности Tomcat был выбран SpringSource для разворачивания веб приложения.
  • OSGi R4.1: в в свое время было предпринято огромное количество усилий для определения стандартов, позволяющих сохранить модульную структуру приложения на любом этапе жизненного цикла программного обеспечения от разработки до установки и функционирования в рабочем режиме. Наиболее популярным де факто в мире Java оказалась платформа OSGi (Open Services Gateway initiative), SpringSource dm Server использует последнюю имеющуюся версию спецификации этого стандарта.
  • Equinox: продукт Eclipse Foundation, являющийся реализацией стандарта OSGi R4.1.
  • Spring Dynamic Modules for the OSGi Platform: облегчает создание и поиск сервисов путем конфигурации приложения, также как и обновление отдельных частей приложения. Spring Dynamic Modules for the OSGi Platform позволяет экспортировать интерфейс, который реализует Spring Bean, и представить его как OSGi сервис и наоборот, импортировать OSGi сервис и выставить его как Spring Bean.
Spring Source Performance Suite

Spring Source Performance Suite облегчает разработку программного обеспечения, благодаря его использованию возможно в значительной степени улучшить производительность системы, а также инструменты контроля и мониторинга работающей версии программного обеспечения.

Этот набор включает 3 компоненты: SpringSource Tool Suite, SpringSource Application Monitoring Suite и SpringSource Advanced Pack for Oracle.

SpringSource Tool Suite: инструмент, наиболее часто используемый разработчиками, построенный на платформе Eclipse, помогающий в реализации базирующихся на Spring Framework приложений. SpringSource Tool Suite имеет в наличии инструменты, помогающие разработчикам анализировать проблемы дизайна, архитектуры и времени исполнения. Одними из основными особенностями SpringSource Tool Suite является базирующийся на Mylyn-task метод, позволяющий выделять первоочередные задачи даже работая над сложной задачей уровня предприятия.

SpringSource Application Management Suite (AMS): инструмент, позволяющий администраторам и разработчикам иметь постоянное представление о текущем состоянии системы и ее производительности. Инструмент состоит из AMS сервера и AMS агентов, чтобы использовать этот инструмент необходимо установить агента на каждый сервер, за которым планируется устанавливать наблюдение. Рисунок 2 отражает логическую схему развернутого AMS :

Рисунок 2

Схема показывает, что AMS сервер может быть установлен на любом сервере, даже не имеющего сервера приложений Java EE. AMS может отслеживать работу как серверов (вот неполный список серверов, которые поддерживаются AMS: Apache HTTP server, Apache Tomcat, ColdFusion, Geronimo, Jboss, Weblogic, Websphere, SpringSource dm Server и многие другие), так и отдельные службы, запущенные на этих серверах. AMS позволяет также отслеживать возникновение неполадок в работе и перезапустить сервер в случае его остановки.

SpringSource Advanced Pack for Oracle: благодаря этому продукту возможно использование для тех особенностей Oracle 10g и выше, которые не доступны в стандартной реализации JDBC, такие как тип данных XML, сообщения и очереди сообщений Oracle, определенные пользователем типы данных и др. Кроме этого, оптимизирована и значительно ускорена работа с собственно базой данной, улучшена обработка исключительных ситуаций. Очевидно, что этот пакет не нужен в случае использования иного хранилища данных, чем Oracle.

Spring Enterprise Edition

Последним компонентом SpringSourceApplication Platform является Spring Enterprise Edition, который включает в себя тщательно проверенные расширенные версии основных проектов, включенных в так называемый «портфель Spring“ (Spring Portfolio): Spring Framework, Spring Security, Spring Web Flow, Spring Web Services, Spring Dynamic Modules for the OSGi Platform, Spring Batch, Spring LDAP и Spring Integration. В данном случае под «расширенными версиями» подразумевается адаптация этих проектов к работе в среде серверов приложений. Например стандартная версия Spring Framework не оставляет никакой информации о ходе своего выполнения, расширенная же версия использует JMX Beans для экспорта записей основных событий, для просмотра которых можно использовать как SpringSource Application Management Suite, так и любой другой JMX клиент.

Заключение

В этой короткой статье были рассмотрены основные составляющие SpringSource dm Server, который был анонсирован компанией SpringSource в августе 2008 года.

Следует обратить внимание, что SpringSource dm Server не является полноценным Java EE сервером, реализующим стандарт Java EE 5, например не поддерживаются EJB Beans. Хотя в будущем планируется придерживаться одного из профилей Java EE 6 (поскольку разработка этого стандарта пока не закончена, нельзя окончательно сказать какого точно), Но в большинстве случаев предоставляемые SpringSource dm Server покрывают все необходимые потребности клиентов.

В настоящее время Java разработчики могут воспользоваться двумя возможностями при разворачивании веб-приложений: полноценные серверы приложений Java EE и сервлет контейнеры (servlet containers). Серверы приложений Java EE громоздки, сложны и требуют больших затрат при сопровождении, в то время как сервлет контейнеры не предназначены для того, чтобы выставлять интерфейсы программные компонент как службы. Именно поэтому компанией SpringSource были направлены огромные усилия для того, чтобы отъединить модульность, динамичность и гибкость, предоставляемые платформой OSGi (не имеющей поддержки работы в сети) с наиболее распространенным сервлет-контейнером Tomcat для создания кардинально новой платформы для разработки и развертывания приложений и служб, написанных на языке Java.

© 2008-2016 Финэкософт.

 

Oracle Silver Partner
+7 (495) 664 4727
Учебный центр
Центр обучения и сертификации в области информационных технологий (IT).

Широкий выбор курсов и программ обучения. Подробности здесь.

Отправить письмо
Обратная связь

 

Для Ваших вопросов и отзывов