Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Распределенные сервис-ориентированные системы..pdf
Скачиваний:
10
Добавлен:
05.02.2023
Размер:
9.2 Mб
Скачать

1.4 Программная платформа Java Enterprise Edition

Проблема качественного выбора прикладной платформы упирается в решение двух подпроблем (см. рисунок 1.12):

выбор платформы, обеспечивающий стабильное представление и легко расширяемую реализацию уровня интерфейсов сервисов;

выбор платформы, обеспечивающей реализацию стабильных прикладных компонент уровня приложений.

23 мая 1995 года публичная американская компания Sun Microsystems выпустила первую версию программной платформы, включающей:

язык объектно-ориентированного программирования Java;

виртуальную машину JVM (Java Virtual Machine).

Позитивная часть этой реализации — обеспечение разработчиков программного обеспечения уровня приложений инструментальными средствами для создания программных компонент, переносимых между аппаратными платформами и платформами операционных систем.

В 1998 году таже компания Sun Microsystems анонсировала платформу JPE (Java Platform for the Enterprise), которая содержала спецификацию технологии написания и поддержки серверных компонентов реализации бизнес-логи- ки обозначаемой как EJB (Enterprise Java Beans). В дальнейшем, реализации этой платформы стали обозначаться как продукты Java EE.

Позитивная составляющая концепции этой платформы — контейнерная технология реализации сервисов, что позволяет унифицировать как реализацию компонент уровня приложений, так и представления уровня сервисов.

Текущее состояние парадигмы Java Enterprise Edition — версия 8.

С момента появления первой реализации Java EE (декабрь 1999 года) прошло много времени, в течении которого технологии JPE постоянно модифицировались и дополнялись сопуствующими технологиями. В настоящее время, текущей и финальной реализацией Java EE является версия 8.0, появившаяся в сентябре 2017 года.

В 2018 году, правоприемница технологий Java и Java EE (корпорация Oracle) передала в руки некоммерческой организации Eclipse Foundation процессы разработки спецификаций, TCK (Technology Compatibility Kit) и эталонную реализацию продукта, но потребовала смены бренда Java EE и главного домена пакета — «javax.*».

На основании сложившейся ситуации, Eclipse Foundation сделала следую-

щее:

31

а) заявила и представила новую платформу Jakarta EE 8;

б) заявила о переходе на новое пространство имен «jakarta.*»;

в) сформировала новый процесс JESP (Jackarta Eclipse Specification Process) — формальный процесс, позволяющий заинтересованным лицам участвовать в формировании будущих версий спецификаций платформ;

г) сформировала рабочую группу Jakarta EE Working Group, которая будет развивать платформу Jakarta EE.

Учебная цель данного подраздела — изучение общей архитектуры приложений, основанных на принципах парадигмы Java Enterprise Edition.

Общие принципы парадигмы Java Enterprise Edition достаточно подробно изложены в современной литературе:

а) общие вопросы и проблематика использования платформы Java EE 8 подробно изложены в монографии Себастьяна Дашнера «Изучаем Java EE. Современное программирование для больших предприятий» [16];

б) фактический учебный материал данного пособия опирается на монографию Энтони Гонсалвеса «Изучаем Java EE 7» [17];

в) частные вопросы применения языка Java опираются на монографию Герберта Шилдта «Java 8. Полное руководство» [18].

Чтобы разобраться с этими принципами Java EE, воспользуемся материалом монографии [17] и рассмотрим следующие вопросы:

а) контейнеры и компоненты Java EE; б) служебные сервисы контейнеров; в) артефакты контейнеров;

г) аннотации и дескрипторы развертывания компонент; д) управляемые компоненты платформы Java EE.

1.4.1 Контейнеры и компоненты Java EE

Основу архитектуры платформы Java EE составляют контейнеры и компоненты, которые написаны на языке Java и функционируют в среде виртуальной машины Java (JVM).

Контейнеры — специальные системные программы языка Java, создающие среду и сервис для функционирования других программных модулей языка Java, называемых компонентами.

Компоненты — специальные расширяемые разработчиками модули языка Java для реализации сервисов, способные работать в среде контейнеров и

32

пользоваться его служебными сервисами.

Платформа Java EE имеет четыре вида стандартных контейнеров, представленных на рисунке 1.13:

а) EJB-контейнер — серверный вид контейнера, способный содержать только один вид компонента — «EJB»;

б) Веб-контейнер — серверный вид контейнера, способный содержать три вида компонент: «EJB Lite», «Servlet (Сервлет)» и «JSF»;

в) контейнер апплета — клиентский вид контейнера, реализуемый в среде браузера (при поддержке JVM) и способный содержать только один вид компонента — «Applet (Апплет)»;

г) контейнер клиентского приложения, способный содержать только один вид компонента — «Application (Приложение)».

Рисунок 1.13 - Стандартные контейнеры Java EE [17]

Сразу же заметим, что контейнер апплетов не получил большой популярности, в основном по причине противодействия разработчиков браузеров, которые не желали поддерживать виртуальную машину Java (JVM). Поэтому он далее не рассматривается.

Обозначение RMI/IIOP читается как «RMI поверх IIOP».

33

RMI (Remote Method Invocation) — программный интерфейс для удаленного вызова методов на языке Java. Используется в реализациях объектного подхода в распределенных системах.

IIOP (Internet Inter-ORB Protocol) — конкретная реализация протокола GIOP на стеке протоколов TCP/IP.

GIOP (General Inter-ORB Protocol) — абстрактный протокол в распределенных объектных системах.

Основу платформы Java EE составляют контейнеры EJB и клиентских приложений.

EJB-контейнеры, именуемые серверами приложений, предназначены для реализации бизнес-логики крупномасштабных сервисов, а контейнеры клиентских приложений предназначены для реализации АРМ-пользователей, обеспечивающих доступ к серверам приложений. Выгоды от такой архитектуры информационных систем заключаются в использовании служебных сервисов предоставляемых контейнерами. Это освобождает разработчиков приложений от необходимости самостоятельного проектирования и реализации множества стандартных системных функций, например, синхронизации доступа к разделяемым ресурсам приложений, обеспечение безопастности и других задач.

Современные разработчики сервисов все больше ориентируются на использование вебконтейнеров.

Крупномасштабные EJB-компоненты требуют большого времени на проектирование, разработку и модификацию. В тех случаях, когда на уровне бизнес-логики (см. рисунок 1.12) масштабные бизнес-процессы представляются как комбинации более мелких бизнес процессов, гораздо эффективней использовать компоненты веб-контейнера (web-container).

Веб-контейнер обеспечивает доступ к нему по широко известным и популярным протоколам HTTP/HTTPS. Кроме контейнеров клиентских приложений можно использовать обычные браузеры, что обеспечивается тремя стандартными компонентами:

а) EJB Light — облегченный вариант EJB-контейнера, обеспечивающий наиболее важные функции реализации бизнес-логики и способный функционировать в веб-контейнере;

б) Сервлет (HttpServlet) — компонента, хорошо известная студентам по бакалаврскому курсу «Распределенные вычислительные системы» и поддерживающая технологию JSP-страниц;

в) JSF (JavaServer Faces) — компонента, обеспечивающая построение пользовательских интерфейсов с помощью XHTML-страниц на стороне серве-

34