- •Распределенные события:
- •4. Проектирование сложных объектов. Основные принципы проектирования. Аспекты и стадии проектирования
- •5. Развитие парадигмы программирования
- •6. Функциональное моделирование. Стандарты idef0, idef3.
- •7. Информационное моделирование. Стандарты idef1, idef1x/
- •8. Средства и элементы статистических и динамических моделей объектно-ориентированных систем (статические и динамические диаграммы uml).
- •9.Порождающие паттерны. Назначение, обобщенные свойства, применение. Пример реализации.
- •10. Структурные паттерны. Назначение, обобщенные свойства, применение. Пример реализации.
- •11.Паттерны поведения. Назначение, обобщенные свойства, применение. Пример реализации
- •12. Язык xml: средства, назначения и особенности использования. Xml и dtd.
- •13. Язык xml и схемы данных.
- •14.Методы и средства обработки xml документов с использ-ем моделей dom и sax, преимущ-ва и недостатки.
- •15.Языки Extensible Markup Language(xsl) и xsl Transformations (xslt): назначение и особенности использования.
- •16. Язык xPath и его применение для доступа к элементам xml.
- •17.Фазы, итерации и циклы разработки. Рабочие процессы, модели и артефакты.
- •18. Совместная разработка: Методы и средства тестирования и отладки программных приложений
- •19. Особенности модель распределённых объектов. Модель rpc.
- •20. Классы и интерфейсы механизма rmi . Архитектура и конфигурирование rmi
- •Разработка rmi приложений. Примеры. Соглашения о передаче данных
- •Corba, назначение, терминология. Архитектура управления объектами (ома). Объектная модель corba.
- •Основные сервисы Corba, модель организация приложений corba, примеры.
- •Orb: понятие, назначение, основные функции. Принципы организации запросов в orb. Использование стандарта iiop.
- •Объектный адаптеры boa и роа. Назначение и основные функции. Статические и динамические вызовы в corba.
- •Язык idl, основные характеристики языка, создание распределенных объектов на idl Связь rmi и corba.
- •Понятие прозрачность, серванта, использование посредников proxies в corba. Name сервис.
- •Платформа j2ee. (основные технологии). Когда следует применять Enterprise JavaBeans. Типы ejb, обобщенная архитектура, принципы функционирования и программное обеспечение.
- •Понятие, определение и использование удаленного (Remote) и локального интерфейсов. Их применение и программная реализация (примеры).
- •Понятие, определение и использование собственного (home) интерфейса. Их программная реализация (примеры)
- •Сеансовые (Session) компоненты ejb без состояния и с состоянием, их особенности и применение.
- •Общие принципы развертывание сеансовых компонентов ejb. Пример текста дескриптора поставки.
- •Организация и особенности Entity компонент с сохранением (персистентностью) управляемым контейнером (cmp).
- •Организация и особенности Entity компонент с сохранением (персистентностью) управляемым компонентом (bmp).
- •Особенности реализации (home) и (Remote) интерфейсов для Entity компонентов.
- •Контейнер ejb, понятие, назначение, основные функции.
- •Дескриптор поставки, структура и общие принципы организации кода. Пример описания на xml.
- •Jndi, структура, назначение, роль в развертывании и функционировании.
- •Архитектура совместного использования web и ejb компонентов, Ejb-транзакции.
- •Доступ к компонентам ejb из различных приложений клиента (web, Console, gui).
- •Компоненты ejb, управляемые сообщениями. Обмен сообщениями с помощью java Message Service (jms) .
- •Модели использования jms. Основные объекты и термины, их назначение (алгоритм реализации).
- •Message Driven Beans (mdb), жизненный цикл компонентов. Особенности применения и функционирования, реализующие методы (примеры).
- •Технология jsf Базовые концепции технологии и функциональные возможности jsf
- •Inversion of Control контейнер
Общие принципы развертывание сеансовых компонентов ejb. Пример текста дескриптора поставки.
Вообще, под процессом развертывания приложения понимается совокупность всех действий по настройке системы в конкретной операционной среде, после которых клиент может приступить к работе с ней.
Дескриптор развертывания («установки» или «поставки»)- необходим для настройки созданного комп-та на работу в конкретной операционной среде. Необх-сть в нем возн. из-за того, что спецификация EJB четко определяет несколько этапов, к-й проходит компонент от своего создания до доставки конечному польз-лю с окончательной настройкой. Наличие подобного «конвейера» требует передачи инф-и от одного этапа к другому. С каждым компонентом сопоставлен свой дескриптор.
Спецификация EJB 1.1 требует, чтобы Дескриптор Развертывания имел XML-формат. Поскольку XML является метаязыком, то для описания каждого конкретного класса док-в нужно создать свой язык - в частности, опр-ть набор исп-х тегов и правила взаимоотношений между ними. Такой язык называется Document Type Definition (DTD).
Дескриптор Развертывания соотв-ет DTD и сод. набор св-в, к-й описывает, как Контейнер б. вып. процесс развертывания Компонента или приложения, и вкл. набор тегов и атрибутов, чьи значения опр-ют состояние свойств Компонента. В качестве пр-ра приведем несколько тегов:
<session> - говорит о том, что Компонент явл. session-Компонентом (тег <entity> исп. для обозн-я Entity-Компонентов). Внутри области тега <session> могут исп-ся др. теги: <ejb-class> - имя класса реализации.
<home> - имя home-интерфейса.
<remote> - имя remote-интерфейса.
<session-type> - показ., явл. ли session-Компонент stateful- или stateless-Комп-м.
<transaction-type> - показ., исп-тся ли для К-та CMT или BMT.
<trans-attribute> - задает знач-е атр-в транз-и для кажд. м-да. <timeout> - значение тайм-аута для session-Компонента.
<?xml version="1.0" encoding="Cp1252"?>
<ejb-jar>
<description>Example</description>
<display-name></display-name>
<small-icon></small-icon>
<large-icon></large-icon>
<enterprise-beans>
<session>
<ejb-name>Sample</ejb-name>
<home> SampleHome</home>
<remote> Sample </remote>
<ejb-class> SampleBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
<ejb-client-jar></ejb-client-jar>
</ejb-jar>
Сущностные (Entity) компоненты, жизненный цикл, pool соединений. Общие принципы реализации. Особенности, методы Entity компонент их назначение и использование.
Entity комп-ты явл-ся объектным предст-ем записи в реляц. БД. Обычно 1 такой компонент сопост. с 1 записью в БД. Поск-ку данные одной записи д. б. доступны для неск-ких клиентов сразу, Entity Bean д. б. доступен для неск-ких клиентов и, след-но, не может иметь состояния, относящегося к конкретному клиенту. Каждому Entity-бину соответствует свой первичный ключ, по которому он может быть однозначно определен клиентом. Также Entity-бин имеет всегда какое-либо состояние (набор величин атрибутов, определяющих данный Entity-бин), к-е м. б. зафиксировано и сохранено, а затем и восстановлено.
Жизненный цикл. После того, как контейнер EJB создает экземпляр, он вызывает метод setEntityContext класса бина сущности. Метод setEntityContext передает контекст сущности бину.). После инсталляции бин сущности помещается в пул доступных экземпляров ("обобщенном" (pooled). Находясь в стадии пула, экземпляр никак ассоциируется с какой-либо конкретной "личностью" объекта EJB. Все экземпляры в пуле идентичны. Контейнер EJB назначает "личность" экземпляру, когда перемещает его в оперативную память. Существуют два пути из состояния пула к состоянию готовности. По первому пути клиент вызывает метод create, что заставляет контейнер EJB вызвать ejbCreate и ejbPostCreate. По второму пути контейнер EJB вызывает метод ejbActivate. Когда бин сущности находится в состоянии готовности, могут вызываться его бизнес-методы. Есть также два пути из состояния готовности в состояние пула. Во-первых, клиент может вызвать метод remove, что заставляет контейнер EJB вызвать метод ejbRemove. Во-вторых, контейнер EJB может вызвать метод ejbPassivate. В конце жизненного цикла контейнер EJB удаляет объекты из пула и вызывает метод unsetEntityContext.
Реализация бина.Здесь рассм. Entity-бина BookEJB. Он реализует набор пар get/set, к-е уст-ют/получают значения его полей. Также реализованы методы управления персистентностью:
а) ejbCreate(BookPK BookPK, :) Созд. Экз-ра бина в базе.
б) ejbRemove() Удал-е экз-ра бина в базе по первич. ключу.
в) Методы ejbLoad() и ejbStore().Им соответствуют методы selectRow и updateRow соотв-но в классе BookDAO. При указании типа транзакции required над бизнес-методом бина, перед заданием переменной и после её получения контейнер авт-ки выз-ет эти методы для чтения и соотв-но сохр-я сост-я бина из базы. Эти методы выз-тся именно в этой посл-сти.
г) BookPK BookPK ejbFindByPrimaryKey(BookPK BookPK) Нахождение экземпляра бина в базе.
д) getDBConnection Получ. соед-е к СУБД из пула соед-й EJB-конт-ра.
Базовым классом для класса entity-компонента является класс javax.ejb.EntityBean.
Кроме вышеперечисленный, интерфейс EntityBean содержит следующие методы:
setEntityContext() – устанавливает контекст компонента. Контейнер использует этот метод для передачи ссылки на интерфейс EntityContext экземпляру компонента. Этот интерфейс содержит методы, которые позволяют получить доступ к свойствам среды исполнения компонента;
unsetEntityContext() – вызывается контейнером перед тем, как происходит уничтожение текущего экземпляра entity-компонента;
ejbActivate() – уведомляет компонент о том, что он только что был активизирован;
ejbPassivate() – уведомляет компонент о том, что готовится его деактивация, то есть экземпляр будет отсоединен от конкретного entity-объекта (от конкретных данных в базе данных) и возвращен в пул доступных экземпляров;
Итого: каждый entity-бин должен обладать следующими характеристиками:
К еntity-бинам может обращаться одновременно большое количество пользователей.
Entity-бины могут участвовать в транзакциях.
Entity-бины представляют данные в структуре домена.
Entity-бины перманентны. Они существуют до тех пор, пока существуют данные в структуре домена.
Entity-бины не подвергаются влиянию системных сбоев. Клиент не теряет данные в результате сбоя или отключения сервера EJB. Entity-бины имеют постоянные объектные ссылки, которые содержат неизменяемый ключ данного бина.