Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СИТ - 18 вопросов.docx
Скачиваний:
8
Добавлен:
08.11.2019
Размер:
103.77 Кб
Скачать

36. Особенности реализации (home) и (remote) интерфейсов для entity компонентов. Home-интерфейс Entity-Компонента.

Несколько entity-Компонентов могут реализовывать один и тот же интерфейс, даже если они используют различный вид управления состоянием (СМР или BMP). И SavingsAccount, и CheckingAccount используют один и тот же home-интерфейс (AccountHome) и remote-интерфейс (Account).

Home-интерфейсы для entity- и session-Компонентов очень похожи. Они наследуют один и тот же интерфейс javax.ejb.EJBHome. Home-интерфейс для entity-Компонента обязан объявить хотя бы один метод поиска; кроме того, наличие create-методов не является обязательным.

Пример Кода. Интерфейс AccountHome

public interface AccountHome extends javax.ejb.EJBHome { Account create(String name, float balance)throws java.rmi.RemoteException, javax.ejb.CreateException;

Account findByPrimaryKey(AccountPK primaryKey)

throws java.rmi.RemoteException, javax.ejb.FinderException; Java.util.Enumeration findAccountsLargerThan(float balance)

throws java.rmi.RemoteException, javax.ejb.FinderException; }

Интерфейс AccountHome объявляет три метода. Хотя наличие метода create () не является обязательным, такой метод объявлен в нашем примере. Этот метод позволяет добавить новую запись в сопоставленную с Компонентом таблицу БД. В нашем примере метод create () имеет два аргумента - номер счета (string) и его начальное состояние (float). Реализация метода использует значения этих аргументов для инициализации объекта, т.е. присвоения начальных значений номера счета и его состояния для вновь созданного объекта. Entity-Компонент обязан объявить метод поиска findByPrimarykey(); он находится в интерфейсе AccountHome. Этот метод имеет единственный аргумент - значение главного ключа типа AccountPK, и возвращает ссылку на remote-интерфейс Account. Разумеется, метод используются для поиска только одного Компонента.

В home-интерфейсе AccountHome объявлен еще один метод поиска, findAccountLargerThan (), хотя это и не является обязательным. Этот метод возвращает набор Компонентов (Java Enumeration), которые удовлетворяют условию поиска (на счету средств больше, чем указанная величина).

Remote-интерфейс Entity-Компонента

Несколько Entity-Компонентов могут реализовывать один и тот же remote-интерфейс, даже если они используют различные способы сохранения своего состояния (BMP или СМР). Оба Entity-Компонента примера bank реализуют один и тот же интерфейс Account.

Remote-интерфейсы для Session- и Entity-Компонентов практически идентичны друг другу - оба они наследуют интерфейс javax.ejb.EJBObject и объявляют те бизнес-методы, который должны быть доступны для клиента.

Пример Кода 7.5 содержит реализацию remote-интерфейса: Пример Кода 7.5 Рето1е-интерфейсАссоип1

public interface Account extends javax.ejb.EJBObject {

public float getBalance() throws java.rmi.RemoteException; public void credit(float amount) throws

Java.rmi.RemoteException;

public void debit(float amount) throws java.rmi.RemoteException; }

Интерфейс Account объявляет три бизнес-метода: getBalance (), credit(0 и debit().

37. Контейнер ejb, понятие, назначение, основные функции.

EJB Контейнер представляет из себя среду времени выполнения, которая содержит и запускает EJB компоненты и предоставляет набор стандартных служб для этих компонент. Обязанности EJB Контейнера четко определены в спецификации, чтобы обеспечить нейтралитет производителя. EJB контейнер предоставляет низкоуровневое “обслуживание” EJB, включая распределенные транзакции, безопасность, управление циклом жизни компонента, кэширование, нити процессов и управление сессиями. Поставщик EJB Контейнера отвечает за предоставление EJB Контейнера.

Контейнер EJB лучше всего рассматривать как некий логический уровень управления компонентами. Контейнер взаимодействует с сервером, когда одному или нескольким компонентам, находящимся под управлением Контейнера, необходим доступ к системным ресурсам. Контейнер представляет собой совокупность классов и программных средств, работающих в контексте Сервера EJB. Контейнер, в частности, обеспечивает:

  • управление циклом жизни компонента – его созданием, инициализацией, сохранением его состояния в базе данных, если это необходимо;

  • возможность поиска клиентом нужных ему объектов;

  • гарантию того, что вызов методов происходит в контексте нужной транзакции;

  • базовый уровень обеспечения безопасности;

  • наличие инструментов разработчика, например, компилятора для генерации стабов.

Разработчик приложений, использующих EJB, обычно получает Сервер и Контейнер в готовом виде от фирм-производителей программного обеспечения. Примером может служить INPRISE Application Server.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]