Говорить о создании распределенных приложений с использованием технологии Java и не упомянуть о технологии ( Enterprise ) невозможно.
Enterprise - это высокоуровневая, базирующаяся на использовании компонентов технология создания распределенных приложений, которая использует низкоуровневый API для Enterprise появился в марте 1998 г., в настоящий момент актуальна версия 3.0 - технология прошла за это время большой путь и продолжает развиваться.
Enterprise - больше, чем просто технологическая подложка. Ее использование подразумевает еще и технологию (процесс) создания распределенного приложения - навязывает определенную архитектуру приложения, а также определяет стандартные роли для участников разработки. Действительно, анализ того, что такое создание масштабируемых и эффективных серверов приложений с использованием Java, приводит к необходимости рассмотрения следующих стандартных проблем:
Java ;Технология Enterprise как раз определяет некоторый набор универсальных и предназначенных для многократного использования компонентов, которые называются Enterprise beans (далее - компоненты EJB).При создании распределенной системы ее бизнес-логика будет реализована в этих компонентах. Каждый компонент состоит из удаленного интерфейса, собственного интерфейса и реализации EJB-компонента.Удаленный интерфейс ( remote -интерфейс) определяет бизнес-методы,
которые может вызывать клиент . Собственный (домашний) интерфейс ( home -интерфейс) предоставляет методы create для создания новых экземпляров компонентов , методы поиска (finder) для нахождения экземпляров компонентов и методы remove для удаления экземпляров . Реализация -компонента определяет бизнес-методы, объявленные в удаленном интерфейсе, и методы создания, удаления и поиска собственного интерфейса.
После завершения их кодирования наборы компонентов помещаются в специальные файлы (архивы, jar ), по одному или более компонентов, вместе со специальными параметрами поставки ( deployment ). Затем они устанавливаются в специальной операционной среде, в которой запускается контейнер предоставляет окружение выполнения и средства управления жизненным циклом -компонентам.
Клиент осуществляет поиск компонентов в контейнере с помощью home -интерфейса соответствующего компонента. После того, как компонент создан и/или найден, клиент выполняет обращение к его методам с помощью remote -интерфейса.
Контейнеры выполняются под управлением сервера , который является связующим звеном между контейнерами и используемой операционной средой. Сервер обеспечивает доступ контейнерам к системным сервисам, таким как управление доступом к базам данных или мониторы транзакций, а также к другим приложениям.
Все экземпляры компонентов выполняются под управлением контейнера . Контейнер предоставляет
deployment descriptor ) определяет права доступа клиентов к бизнес-методам компонентов. Обеспечение защиты данных обеспечивается за счет предоставления доступа только для авторизованных клиентов и только к разрешенным методам;EJB . Контейнер обеспечивает защиту данных и гарантирует успешное подтверждение внесенных изменений; в противном случае транзакция откатывается.Существуют два типа компонентов : Session - и Entity -компоненты.
Session -компонент представляет собой объект, созданный для обслуживания запросов одного клиента. В ответ на удаленный запрос клиента контейнер создает экземпляр такого компонента. Session -компонент всегда сопоставлен с одним клиентом, и его можно рассматривать как "представителя" клиента на стороне -сервера. Такие компоненты могут "знать" о наличии транзакций - они могут отвечать за изменение информации в базах данных, но сами они непосредственно не связаны с представлением данных в БД.
Session -компоненты являются временными объектами. Обычно Session -компонент существует, пока создавший его клиент поддерживает с ним сеанс связи. После завершения связи с клиентом компонент уже никак не сопоставлен с ним. Объект считается временным, так как в случае завершения работы или краха сервера клиент должен будет создать новый компонент.
Обычно Session -компонент содержит параметры, которые характеризуют состояние его взаимодействия с клиентом, т.е. он сохраняет некоторое состояние между вызовами удаленных методов в процессе сеанса связи с клиентом.
Entity -компоненты представляют собой Entity -компонент может моделировать одну запись из таблицы реляционной базы данных (или набор записей из связанных таблиц). Ключевым отличием от Session -компонента является то, что несколько клиентов могут одновременно обращаться к одному экземпляру такого компонента. Entity -компоненты изменяют состояние сопоставленных с ними баз данных в контексте транзакций.
Состояние Entity -компонентов в общем случае нужно сохранять, и живут они столько, сколько существуют в базе данных те данные, которые они представляют, а не столько, сколько существует клиентский или не приводит к уничтожению содержащихся в нем Entity -компонентов.
-компонент физически состоит из нескольких частей, включая сам компонент, реализацию некоторых интерфейсов и информационный файл. Все это собирается вместе в специальный jar -файл - модуль развертывания.
Enterprise Bean
Сам Enterprise является Java -классом, разработанным поставщиком Enterprise . Он реализует интерфейс Enterprise и обеспечивает реализацию бизнес-методов, которые выполняет компонент. Класс не реализует никаких авторизации, многопоточности или кода транзакции.
Домашний интерфейс
Каждый создающийся Enterprise должен иметь ассоциированный домашний интерфейс. Домашний интерфейс применяется как фабрика для компонента . Клиент использует домашний интерфейс для нахождения экземпляра компонента или создания нового экземпляра компонента .
Удаленный интерфейс
Удаленный интерфейс является Java -интерфейсом, который отображает через рефлексию те методы Enterprise , которые необходимо показывать внешнему миру. Удаленный интерфейс играет ту же роль, что и IDL -интерфейс в , и обеспечивает возможность обращения клиента к компоненту.
Описатель развертывания
Описатель развертывания является XML -файлом, который содержит информацию относительно компонента . Использование XML позволяет установщику легко менять атрибуты компонента. Конфигурационные атрибуты, определенные в описателе развертывания, включают:
JNDI для публикации домашнего интерфейса компонента;EJB-Jar-файл
-файл - это обычный java-jar -файл, который содержит компонент (компоненты) , домашний и удаленный интерфейсы, а также описатель развертывания.
Использование Enterprise предполагает разбиение процесса создания распределенного приложения на шесть отдельных этапов, с каждым из которых сопоставлены свои задачи и, соответственно, обязанности (роли) исполнителей. Эти роли можно разбить на три группы: инфраструктура, собственно разработка приложений и их поставка и настройка.
Главная задача такой структуры - облегчение участи разработчиков конечных приложений. При таком подходе разработчики -контейнеров и серверов берут на себя решение многих проблем - в первую очередь, написание системных и платформенно-зависимых сервисов, элементы которых в противном случае пришлось бы писать прикладным программистам.
Роли обеспечения инфраструктуры
Server Provider создает платформу для разработки распределенного приложения и среду для его выполнения ( -сервер).
Container Provider предоставляет средства для поставки компонентов и среду выполнения для установленных экземпляров компонентов ( -контейнер).
Роли разработки приложений
Bean Provider собственно разрабатывает компоненты - определяет remote- и home -интерфейсы компонента, реализует его бизнес-методы, а также создает дескриптор поставки ( Deployment ) компонента. При разработке он не заботится о таких вещах, как обеспечение удаленного взаимодействия, Container Provider.
Application Assembler - это эксперт в прикладной области, который выполняет сборку приложения из готовых блоков (компонентов ) и добавляет некоторые другие элементы, например, апплеты или сервлеты для создания готового приложения. В процессе своей работы он имеет дело с интерфейсами компонентов (а не с кодом его бизнес-методов), а также с дескриптором поставки. Результатом его работы может быть как готовое приложение, так и более сложный составной компонент .
Роли поставки и настройки
Задача Deployer - настроить приложение, собранное из компонентов , для его выполнения к конкретной операционной среде. Достигается это путем изменения свойств компонента. Например, deployer определяет поведение транзакций или профили безопасности путем установки тех или иных значений для свойств, находящихся в дескрипторе поставки. Его задачей также является интеграция приложения с существующими программными средствами управления корпоративной системой.
System Administrator работает с уже установленным приложением. Его задача - задание конфигурации и администрирование информационной инфраструктуры -сервера и контейнеров. Administrator отслеживает поведение системы, определяя ее узкие места. Обычно при этом используются корпоративные средства контроля, с которыми (посредством специальных средств на уровне контейнера) интегрировано конкретное приложение.
В соответствии с такой схемой традиционный прикладной программист - это, как правило, и, возможно, application assembler. Эти роли позволяют такому разработчику сфокусировать свое внимание на разработке и реализации бизнес-логики системы. Deployer определяет значения параметров поставки в процессе установки компонента. Сложные вопросы реализации требований поставки берет на себя специально подготовленный поставщик программных средств.
Хотя процесс создания распределенных приложений остается достаточно сложным, существенно облегчается работа обычного прикладного программиста - за счет делегирования многих вопросов разработчикам -серверов и контейнеров.
Спецификация достигает выполнения всех поставленных задач с помощью введения некоторого числа стандартных конструкций и соглашений. Это ограничивает свободу выбора той или иной архитектуры приложения, но позволяет разработчикам контейнеров и серверов делать определенные предположения о дизайне программ и эффективно управлять ими.
Создатели серверов и контейнеров реализуют инфраструктуру . Инфраструктура обеспечивает удаленное взаимодействие объектов, оговаривает требования к элементам инфраструктуры и определяет Java Application Programming Interface ( API ); она не касается вопросов выбора платформ, протоколов и других аспектов, связанных с реализацией.
Ниже (рис. 15.1) показаны различные элементы инфраструктуры . Она должна обеспечивать канал связи с клиентом и другими компонентами . Инфраструктура должна также обеспечить соблюдение прав доступа к компонентам .
(рис 15.1) Компоненты, контейнеры и серверы EJBВ общем случае необходимо гарантировать сохранение состояния компонентов в контейнерах. Инфраструктура обязана предоставить возможности для интеграции приложения с существующими системами и приложениями - без этого нельзя говорить о пригодности приложения для функционирования в сложной информационной среде. Все аспекты взаимодействия клиентов с серверными компонентами должны происходить в контексте транзакций,
управление которыми возлагается на инфраструктуру . Для успешного выполнения процесса поставки компонентов инфраструктура должна обеспечить возможность взаимодействия со средствами управления приложениями.
Таким образом, спецификация Enterprise - это существенный шаг к стандартизации модели распределенных объектов в Java. В настоящее время существует большое количество инструментов, поддерживающих этот подход и помогающих ускорить разработку -ком-понентов.
Более подробно со спецификацией можно познакомиться на официальной странице Enterprise по адресу java.sun.com/pro-ducts/ejb/.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.