- •Распределенные события:
- •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 контейнер
Особенности реализации (home) и (Remote) интерфейсов для 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 и объявляют те бизнес-методы, который должны быть доступны для клиента.
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().
Контейнер ejb, понятие, назначение, основные функции.
EJB-контейнер -- это то место, где ``живет'' EJB-компонент. EJB-контейнер реализует для находящихся в нем компонент такие сервисы как транзакции (transaction), управление ресурсами, управление версиями компонент, их мобильностью, настраиваемостью, жизненным циклом. Так как EJB-контейнер реализует все эти функции, то разработчик EJB-компонент может не реализовывать их самостоятельно, а просто вызывать соответсвующие методы у контейнера (правила вызова методов у контейнера описываются в спецификации). Как правило, в одном EJB-контейнере живет несколько однотипных EJB-компонент.
Контейнер EJB предоставляет как среду выполнения для своих Компонентов, так и инструменты для выполнения процесса поставки.
В общем случае, Контейнер предназначен для решения следующих задач:
Обеспечение безопасности - Дескриптор Поставки (deployment descriptor) определяет права доступа клиентов к бизнес-методам Компонентов. Обеспечение защиты данных обеспечивается за счет предоставления доступа только для авторизованных клиентов и только к разрешенным методам.
Обеспечение удаленных вызовов - Контейнер берет на себя все низкоуровневые вопросы обеспечения взаимодействия и организации удаленных вызовов, полностью скрывая все детали как от разработчика Компонентов, так и от клиентов, которые пишут код точно так же, как если бы система работала в локальной конфигурации, т.е. без использования удаленных вызовов вообще.
Управление циклом жизни - Клиент просто создает и (обычно) уничтожает экземпляры Компонентов. Тем не менее, Контейнер для оптимизации ресурсов и повышения производительности системы может самостоятельно выполнять различные действия, например, активизацию и деактивизацию этих Компонентов, создание их пулов
Управление транзакциями - Все параметры, необходимые для управления транзакциями, помещаются в Дескриптор Поставки. Все вопросы по обеспечению управления распределенными транзакциями в гетерогенных средах и взаимодействия с несколькими базами данных берет на себя Контейнер EJB. Контейнер обеспечивает защиту данных и гарантирует успешное подтверждение внесенных изменений; в противном случае транзакция откатывается.