Главная » Java, JavaBeans » Зачем использовать реализацию Inprise Контейнера EJB?

0

Реализация Контейнера EJB фирмой Inprise характеризуется:

•                 Полной поддержкой спецификации EJB 1.1.

•                 Гибкостью и надежностью Контейнера как среды выполнения и управления Компонентами.

•                 Возможностью взаимодействия со службой имен, сервисом транзакций и встроенными Java-RDBMS в процессе разработки и поставки.

• Наличием примеров использования Компонентов и Контейнеров EJB.

Inprise EJB-Контейнер является прекрасным инструментом разработчика Компонентов EJB для их использования в корпоративных системах. Его достоинства:

Полнофункциональная и гибкая EJB run-time среда

•          EJB-Контейнер реализует все требования спецификации EJB 1.1, включая необязательные.

•          Каждый Компонент EJB, создаваемый с помощью предоставляемых инструментов разработки, одновременно является CORBA-объектом.

•          Контейнер EJB может поставляться и как независимый (stand-alone), полностью написанный на Java сервис, и как часть интегрированной распределенной системы. Это означает, что вы можете управлять масштабируемостью и доступностью вашего приложения в соответствие с предъявляемыми к нему требованиями.

•          В отличие от других EJB-Серверов, Inpise EJB Container Server не накладывает никаких ограничений на структуру системы с точки зрения выбора числа Контейнеров и распределения Компонентов между ними – на любом количестве компьютеров в сети могут выполняться любое число Контейнеров, содержащих любое число Компонентов. Это обеспечивается распределенным протоколом управления транзакциями. Такая гибкость позволяет выбрать в процессе поставки приложения наиболее оптимальную с точки зрения производительности системы в целом конфигурацию.

Контейнер EJB Inprise построен поверх VisiBroker и RMI-II0P

•          EJB-Контейнер построен на базе Inprise Visibroker. VisiBroker является лидирующим ORB на рынке аналогичных программных средств; он доказал свое превосходство как во внутренних тестах, используемых фирмами-разработчиками программного обеспечения, так и в процессе реальной работы, что еще более важно. VisiBroker предоставляет широкий спектр возможностей первостепенной важности.

•          VisiBroker для достижения максимальной масштабируемости приложений использует мультиплексирование соединений с клиентами, создание и управление пулом соединений, поддержку пула потоков (threads).

•          Взаимодействия между клиентами и Компонентами EJB, между различными Компонентами и между Компонентами и другими CORBA-объектами базируются на использовании протокола ПОР. VisiBroker полностью соответствует спецификации CORBA 2.3, которая требует реализации RMI-IIOP в терминах передачи объектов по значению – для достижения максимальной совместимости. Это

означает, что типы данных Java (такие, как словари, векторы и др.) могут передаваться при работе с ПОР посредством новых IDL-типов – "value", в полном соответствии со спецификацией CORBA 2.3. Разумеется, и клиенты, и сервера "знают", как передаются такие данные. Inprise EJB Container Server полностью совместим с любым сервером, поддерживающим RMI-IIOP.

•          VisiBroker позволяет автоматически распространять права доступа (security credentials). Это гарантирует, что права клиента будут правильно переданы на сервер.

•          VisiBroker автоматически распространяет контекст транзакций. Это означает, что когда клиент инициализирует транзакцию, а затем выполняет обращение к Компонентам EJB в Контейнере, осуществляется передача контекста транзакции, который и используется сервером при доступе к тем или иным ресурсам.

•          Inprise Integrated Transaction Service (ITS) использует двухфазную схему подтверждения транзакций. Та же двухфазная схема используется, если ее поддерживает JDBC-драйвер. Если используемый вами JDBC-драйвер ее не поддерживает, используется обычное однофазное подтверждение.

Inprise EJB Container – это объект CORBA

Компилятор java2iiop, разработанный Inpise, так же, как и Контейнер EJB, полностью совместим с CORBA. Контейнер EJB "понимает" вызовы RMI, на которых построена технология EJB, но внутри себя для хранения объявлений интерфейсов он использует IDL-версии интерфейсов Java. Хотя компилятор java2iiop может генерировать стабы и скелеты CORBA непосредственно на основе Java-объявлений, вы можете сгенерировать IDL-декларации – например, для работы с другими языками программирования. CORBA-клиенты могут рассматривать EJB- Контейнер как CORBA-сервер. Средства, предоставляемые EJB- Контейнером, являются CORBA-средствами, которые могут быть использованы при работе с EJB.

Inprise-реализация Контейнера EJB базируется также на JNDI, который, в свою очередь, базируется на CORBA CosNaming, и JTS/OTS. Все вместе это обеспечивает полную совместимость с CORBA.

Поддержка для различных видов Компонентов

Важной характеристикой Inprise-реализации Контейнера EJB является поддержка всех видов Компонентов EJB, включая:

•          Stateless и stateful Session-компоненты.

•          Entity-Компоненты с обоими видами обеспечения хранения состояния.

Контейнер EJB может содержать один или более jar-файлов. Каждый файл может содержать несколько Компонентов. Каждый Компонент имеет Дескриптор Поставки, интерфейсы EJBHome и EJBRemote, а также код реализации методов этих интерфейсов.

Отличительной особенностью Inprise-реализации Контейнера является возможность не снижать эффективности работы при возрастании числа одновременно обслуживаемых клиентов (т.е. масштабируемость). Масштабируемость обеспечивается, главным образом, следующими двумя особенностями:

•          VisiBroker обеспечивает управление соединениями с клиентами. Схема управления соединениями VisiBroker’a позволяет поддерживать одновременно больше клиентов, чем существует ТСР- соединений.

•          Контейнер не имеет состояния с точки зрения взаимодействия с клиентом. Это означает, что сервер не обязательно выделяет память для каждого нового Session-компонента. Таким образом, сервер может поддерживать произвольное число Session-компонентов без состояния.

Поддержка поставки

Inprise Container включает в себя компиляторы для автоматической генерации кода. Помимо этого, он предоставляет средства для проверки правильности структуры Компонента EJB перед выполнением его поставки. Полностью поддерживаются соответствующие спецификации EJB 1.1 служба JNDI и Дескриптор Поставки в XML-формате.

Менеджер транзакций

Менеджер транзакций обеспечивает управление транзакциями, включая поддержку двухфазного подтверждения для распределенных транзакций. Сервис полностью совместим с последней версией спецификации Sun Java Transaction Service (JTS), а также со спецификацией OTS OMG. Вы можете использовать более "облегченный" JTS в процессе разработки или более мощный и гибкий Transaction Service (ITS) при поставке вашего приложения.

Пул JDBC-соединений и интеграция с транзакциями

Все виды доступа к базам данных с использованием JDBC управляются с помощью Inprise-реализации объекта DataSource. Этот объект прозрачным для разработчика образом управляет пулом соединений с Базами Данных и ассоциирует глобальные транзакции JTS с JDBC- транзакциями для баз данных.

Служба имен (Naming service)

Naming Service обеспечивает поддержку произвольных имен в распределенных средах. Этот сервис полностью совместим как с Sun Java Naming and Directory Interface (JNDI), так и со спецификацией OMG CosNaming. Как и в случае с Сервисом Транзакций, вы можете использовать более "облегченный" JNS в процессе разработки или более мощный и гибкий Inprise Naming Service при поставке вашего приложения.

Поставляемый с EJB-Контейнером JNDI может быть реализован поверх другого JNDI, что позволяет использовать различные службы имен, например, LDAP.

Обеспечение безопасности

Планируется интеграция с Inprise Security Server, который базируется на соответствующей спецификации CORBA.

Базы Данных на Java

Java-БД представляют собой высокопроизводительные хранилища для долговременного хранения состояний Компонентов EJB. Это реляционные базы данных, написанные на Java.

Java-БД могут находится в адресном пространстве того же процесса, в котором исполняется Контейнер EJB, или, с целью повышения производительности, выполняется как отдельный процесс. Фактически, Java-БД являются взаимозаменяемыми, что означает, что конечный пользователь может заменить одну реализацию другой.

Container-managed persistence (CMP) для Entity-Компонентов

Inprise предоставляет встроенную Службу поддержки CMP (СМР engine), которая обеспечивает прозрачное отображение между объектами и реляционными БД и среду обеспечения сохранения состояний компонентов, базирующиеся на стандарте JDBC. Более того, возможно подключение инструментов, разработанных другими производителями, путем использования открытого API.

Интеграция с другими элементами

В реальных системах, модули EJB-Контейнеров взаимодействуют со следующими элементами:

• Клиентами, установившими связь с Компонентами EJB. Это могут быть как Java-клиенты, использующие RMI и Java-интерфейсы

Компонентов, так и CORBA-клненты, использующие IDL-версии интерфейсов. Для Inprise EJB Container Server, каждый компонент EJB является одновременно и CORBA-объектом. CORBA-клиент может быть реализован на любом языке, поддерживающем CORBA – С++, Java, Delphi.

•          Базами Данных, к которым обращаются Компоненты. Как правило, это Entity-компоненты как с СМР, так и с BMP.

•          Конечными сервисами, в том числе: CORBA-серверами (реализованными на Java, С++, Delphi и др., взаимодействующими с любым CORBA-совместимым ORB), другими EJB-серверами (как от Inprise, так и от других производителей), другими сервисами (ERP- системами, серверами приложений на мэйнфреймах и т.д.).

Источник: Руководство программиста Enterprise JavaBeans

По теме:

  • Комментарии