Java Platform, Enterprise Edition (Java EE) 8
Учебник по Java EE

Назад Вперёд Содержание

Распределённые многослойные приложения

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

Рисунок 1-1 показывает два многослойных приложения Java EE, разделённых на слои, описанные в следующем списке. Части приложения Java EE, показанные на рисунке 1-1, представлены в Компоненты Java EE.

  • Компоненты клиентского слоя работают на клиентском компьютере.

  • Компоненты веб-слоя работают на сервере Java EE.

  • Компоненты слоя бизнес-логики работают на сервере Java EE.

  • Иные информационные системы предприятия (EIS - Enterprise information system) работает на своих серверах.

Хотя приложение Java EE может состоять из всех слоёв, показанных на рисунке 1-1, многослойные приложения Java EE обычно рассматриваются как трёхслойные приложения, поскольку они распределены по трём местоположениям: клиентские машины, компьютер Java EE-сервера и база данных или иные информационные системы. Трёхслойные приложения, которые работают таким образом, расширяют стандартную двухслойную модель клиент-сервер, размещая многопоточный сервер приложений между клиентским приложением и серверным хранилищем.

Рисунок 1-1 Многослойные приложения

Структурная диаграмма многослойного приложения, включающая клиентский слой, веб-слой, слой бизнес-логики и слой иных информационных систем предприятия (EIS - Enterprise information system).

Безопасность

Хотя для других моделей корпоративных приложений требуются специфичные для каждой платформы меры безопасности в каждом приложении, среда безопасности Java EE позволяет задать ограничения безопасности во время развёртывания. Платформа Java EE делает приложения переносимыми для широкого спектра реализаций безопасности, ограждая разработчиков приложений от сложностей реализации функций безопасности.

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

Компоненты Java EE

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

Спецификация Java EE определяет следующие компоненты Java EE:

  • Клиентские приложения и апплеты — это компоненты, которые работают на клиенте.

  • Сервлеты Java, компоненты JavaServer Faces и JavaServer Pages (JSP) являются веб-компонентами, которые работают на сервере.

  • EJB-компоненты (Enterprise-бины) — это бизнес-компоненты, которые работают на сервере.

Компоненты Java EE написаны на Java и компилируются так же, как и любая другая программа на этом языке. Различия между компонентами Java EE и «стандартными» классами Java заключаются в том, что компоненты Java EE компонуются в приложение Java EE, они верифицированы на соответствие формату и спецификации Java EE и развёрнуты в рабочей среде, где они выполняются и управляются сервером Java EE.

Клиенты Java EE

Клиент Java EE обычно является либо веб-клиентом, либо клиентским приложением.

Веб-клиенты

Веб-клиент состоит из двух частей:

  • Динамические веб-страницы, содержащие различные типы языков разметки (HTML, XML и т. д.), которые генерируются веб-компонентами, работающими в веб-слое

  • Веб-браузер, который отображает страницы, полученные с сервера

Веб-клиент иногда называют тонким клиентом. Тонкие клиенты обычно не выполняют запросов к базам данных и сложных бизнес-правил. При использовании тонкого клиента эти тяжеловесные операции выполняются Enterprise-бинами, выполняемыми на сервере Java EE, где они могут использовать все возможности безопасности, скорости, все сервисы и надёжность технологий на стороне сервера Java EE.

Клиентские приложения

Клиентское приложение работает на клиентском компьютере и предоставляет пользователям возможность выполнять задачи, для которых требуется более богатый пользовательский интерфейс, чем тот, который может обеспечить язык разметки. Клиентское приложения обычно имеет графический интерфейс пользователя (GUI), созданный из API Swing или API Abstract Window Toolkit (AWT), но безусловно возможен и интерфейс командной строки.

Клиентские приложения получают прямой доступ к Enterprise-бинам, работающим в слое бизнес-логики. Однако, если этого приложению это необходимо, клиентские приложения могут открыть HTTP-соединение, чтобы установить связь с сервлетом, работающим в веб-слое. Клиентские приложения, написанные на языках, отличных от Java, могут взаимодействовать с серверами Java EE, что позволяет платформе Java EE взаимодействовать с иными информационными системами предприятия.

Апплеты

Веб-страница, полученная от веб-слоя, может содержать встроенный апплет. Написанный на Java апплет представляет собой небольшое клиентское приложение, которое выполняется на виртуальной машине Java, установленной в веб-браузере. Однако клиентским системам, вероятно, понадобится Java Plug-in и, возможно, файл политики безопасности для успешного выполнения апплета в веб-браузере.

Веб-компоненты являются предпочтительным API для создания программы веб-клиента, поскольку в клиентских системах не требуются Plug-in-ы или файлы политики безопасности. Кроме того, веб-компоненты обеспечивают более чёткое и модульное проектирование приложений, поскольку они позволяют отделить программирование логики приложения от веб-дизайна. Таким образом, персонал, участвующий в разработке веб-страниц, может не понимать синтаксис Java, чтобы выполнять свою работу.

Архитектура компонентов JavaBeans

Слои сервера и клиента могут также включать компоненты на основе архитектуры компонентов JavaBeans (Java-бинов) для управления потоком данных между следующими:

  • Клиентские приложения или апплет и компоненты, работающие на сервере Java EE

  • Серверные компоненты и база данных

Java-бины не считаются компонентами Java EE в спецификации Java EE.

Компоненты JavaBeans имеют свойства и методы get и set для доступа к этим свойствам. Компоненты JavaBeans, используемые таким образом, обычно просты в разработке и реализации, но должны соответствовать соглашениям об именах и проектировании, изложенным в архитектуре компонентов JavaBeans.

Связь с сервером Java EE

Рисунок 1-2 показывает различные элементы, которые могут составлять клиентский слой. Клиент связывается со слоем бизнес-логики, работающим на сервере Java EE, напрямую или, как в случае браузерного клиента, через веб-страницы или сервлеты, работающие в веб-слое.

Рисунок 1-2 Связь с сервером

Схема клиент-серверного взаимодействия. Клиентские приложения получают прямой доступ к слою бизнес-логики. Браузеры, веб-страницы и апплеты получают доступ к веб-слою.

Веб-компоненты

Веб-компоненты Java EE — это сервлеты или веб-страницы, созданные с использованием JavaServer Faces и/или JSP. Сервлеты — это программные классы Java, которые динамически обрабатывают запросы и выдают ответы. Страницы JSP — это текстовые документы, которые выполняются как сервлеты, но допускают более естественный подход к созданию статического содержимого. JavaServer Faces основана на сервлетах и ​​технологии JSP и предоставляет набор компонентов пользовательского интерфейса для веб-приложений.

Статические HTML-страницы и апплеты связаны с веб-компонентами во время сборки приложения, но не рассматриваются как веб-компоненты в спецификации Java EE. Серверные служебные классы также могут быть связаны с веб-компонентами и, как и HTML-страницы, не считаются веб-компонентами.

Как показано на рис. 1-3, веб-слой, как и клиентский слою, может включать Java-бин для управления пользовательским вводом и отправки этого ввода Enterprise-бинам, работающим в слое бизнес-логики, для обработки.

Рисунок 1-3 Веб-слой и приложения Java EE

Схема взаимодействия клиент-сервер, показывающая детали Java-бинов и веб-страниц в веб-слое.

Бизнес-компоненты

Бизнес-код, который представляет собой логику, которая решает или удовлетворяет потребности конкретной бизнес-области, такого как банковское дело, розничная торговля или финансы, обрабатывается Enterprise-бинами, работающими либо в слое бизнес-логики, либо в веб-слое. Рисунок 1-4 показывает, как Enterprise-бин получает данные от клиентских программ, обрабатывает их (при необходимости) и отправляет их в базу данных или другую информационную систему предприятия для хранения. Enterprise-бин также извлекает данные из хранилища, обрабатывает их (при необходимости) и отправляет обратно клиентской программе.

Рисунок 1-4 Слои бизнес-логики и информационных систем предприятия (EIS - Enterprise information system)

Диаграмма взаимодействия клиент-сервер, показывающая детали сущностей, сессионных бинов и бинов, управляемых сообщениями, в слое бизнес-логики.

Слой информационных систем предприятия

Слой информационных систем предприятия включает программное обеспечение EIS и системы инфраструктуры предприятия, такие как планирование ресурсов предприятия (ERP), обработка транзакций мэйнфреймов, системы управления базами данных и другие информационные системы. Например, компонентам приложения Java EE может потребоваться доступ к корпоративным информационным системам для подключения к базе данных.


Назад Вперёд Содержание
Логотип Oracle  Copyright © 2017, Oracle и/или её дочерних компаний. Все права защищены. Версия перевода 1.0.5 (Java EE Tutorial — русскоязычная версия)