В технологии определены два основных типа бинов. Session Beans – сеансы клиент-
серверного взаимодействия отрабатывают действия клиента, например, запись в базу
данных, выполнение вычислений, и т.д. Это окна клиента в мир программных
приложений. Они, в свою очередь, также бывают двух типов:
• Stateless session – не умеют сохранять свое состояние и существуют только на
протяжении текущего сеанса. В случае сбоя сеанс не может быть восстановлен;
• Stateful session – сохраняют свое состояние; сеанс может быть восстановлен.
Entity Bean – компоненты объектного представления данных, размещаемых в
хранилище. Entity Bean транзакционны и восстанавливаемы. Каждая их реализация
имеет уникальную метку, называемую «первичным ключом» (Primary Key) по аналогии
с таблицами баз данных. В свою очередь эти бины делятся на две группы по способу
определения где, в каком хранилище и как хранятся данные:
• Bean-Managed Persistence – самостоятельные бины, управление хранением
осуществляется на уровне бинов;
• Container-Managed Persistence – «опекаемые» бины, чьим хранением заправляет
контейнер.
Кроме класса, реализующего функциональность бина, в него входят два обязательных
класса, реализующие два типа интерфейсов:
• Home Interface – доступ к «домашним» службам бина, таким как начало или
отбой для Session Bean или поиск Entity Bean. Этот интерфейс реализует все
службы жизненного цикла компонента и позволяет контейнеру управлять и
руководить его поведением;
• Remote Interface – доступ к бизнес-службам бина.
Клиентские приложения общаются с бинами через контейнер, который открывает
наружу оба интерфейса бина: Home и Remote. С помощью первого открывается сеанс
или находится нужный бин, а с помощью второго – осуществляется отработка действий
клиента в Session или транзакционная механика обработки Entity.
Итак, повторим идею технологии с прикладной точки зрения. Прикладная бизнес-
логика приложения делится на изолированные бизнес-объекты, каждый из которых
реализуется в виде EJB. Они устанавливаются на Сервере Приложений или EJB
Сервере и реализуют запрашиваемую логику для клиента (локального или удаленного).
Давайте прямо сейчас, при первом появлении понятия Сервер Приложений в
технологии Java, развеем непонимание, о котором уже говорилось в начале раздела.
Написав оба слова, составляющие понятие, с заглавных букв, мы магическим образом
преобразовали сервер приложений, реальную машину из корпуса, начинки и кабелей, в
программное приложение.
Обратимся вновь к интерпретации Sun. Под Сервером Приложений в технологии Java
понимается программное приложение, обеспечивающее оптимальную среду для
выполнения EJB. Сервер Приложений занимается «коммунальным хозяйством» дома –
программной системы. На его руках надзор за системными ресурсами, такими как
процессы, потоки, память, связь с базами данных, сетевые отношения, выравнивание
загрузки распределенных узлов. Кроме этого важнейшая обязанность Сервера
Приложений заключается в предоставлении cle;, компонентам.