Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
сит.docx
Скачиваний:
10
Добавлен:
26.09.2019
Размер:
353.03 Кб
Скачать
  1. Понятие, определение и использование удаленного (Remote) и локального интерфейсов. Их применение и программная реализация (примеры).

Home-интерфейс, является точкой входа в Ваш компонент или фабрикой компонента. Другими словами любое начало взаимодействия с Вашими компонентами происходит через Home-интерфейсы. Клиент обращается к интерфейсу и создает через него экземпляры (объекты), которые обслуживают данный компонент. А в конце своей работы он их уничтожает.

Remote-интерфейс позволяет взаимодействовать с экземплярами (объектами), которые были созданы через фабрику (Home-интерфейс). Через Remote-интерфейс пользователь вызывает бизнес методы компонента, которые естественно Вам придется реализовывать и запихивать туда логику Вашего приложения.

Удаленный интерфейс определяет бизнес-методы, специфичные для бина. Например, удаленный интерфейс бина, который называется BankAccountEJB, может иметь бизнес-методы debit и credit. Написание remote-интерфейса

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

Методы home-интерфейса предназначены для создания, поиска и уничтожения экземпляров (instance) Компонентов Для entity бинов домашний интерфейс также определяет методы finder. Home-интерфейс Компонента EJB служит для управления циклом жизни Компонента.

Вот простой удаленный интерфейс для Sample EJB:

// Удаленный интерфейс для SampleBean

public interface Sample extends EJBObject {

public long getSample() //метод реализации бизнес-логики

throws RemoteException;

} ///:~

Вот простой локальный интерфейс для LocalCustomer EJB:

public interface LocalCustomer extends EJBLocalObject {

String getCustomerName();

void setCustomerName(String customerName);

LocalAddress getAddress();

void setAddress(LocalAddress address);

}

  1. Понятие, определение и использование собственного (home) интерфейса. Их программная реализация (примеры)

Домашний интерфейс

Для каждого создающегося класса Enterprise Bean необходимо разработать ассоциированный с ним домашний интерфейс. Домашний интерфейс используется как фабрика объектов (т.е., основная задача домашнего интерфейса создать реальный объект Enterprise Bean для решения задачи). При этом используется JNDI, в контексте которого известно место расположения домашнего интерфейса, на который возвращается ссылка. Клиентское приложение использует Home интерфейс для нахождения экземпляра EJB или создания нового экземпляра вашего EJB.

Домашний интерфейс - фабрика для создания компонента. Он может определить метод create, для создания экземпляра EJB, или метод finder, который находит существующий EJB и используется только для Сущностных Компонент. Основные принципы создания Домашнего интерфейса:

Домашний интерфейс должен быть публичным (public).

Домашний интерфейс должен расширять интерфейс javax.ejb.EJBHome.

Каждый метод create Home-интерфейса должен декларировать java.rmi.RemoteException в преложении throws наряду с javax.ejb.CreateException.

Возвращаемое значение метода create должно иметь тип Удаленного интерфейса.

Возвращаемое значение метода finder (только для Сущностных Компонент) должно иметь тип удаленного интерфейса или java.util.Enumeration, или java.util.Collection.

Любые объекты, передаваемые в качестве аргумента (либо напрямую, либо внутри локального объекта) должны быть действительными с точки зрения RMI-IIOP типом данным (включая другие EJB объекты).

Принятое стандартное соглашение об именах Домашних интерфейсов состоит в прибавлении слова “Home” в конец имени Удаленного интерфейса. Вот Домашний интерфейс для Sample EJB:

// Для удаленного интерфейса Sample

// Домашний интерфейс бина: SampleBean.

import java.rmi.*;

import javax.ejb.*;

public interface SampleHome extends EJBHome {

public Sample create()

throws CreateException, RemoteException;

} ///:~

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