Целевая аудитория

Профессиональные разработчики Java, аналитики, руководители проектов, желающие переводить свои приложения в многозвенную архитектуру.
Начальная подготовка: знание языка Java, SQL, работа с серверами приложений. (курсы JV_0, JV_1), опыт работы в среде IntelliJIDEA, Eclipse, JDeveloper, NetBeans

Программа
    • Необходимость использования мониторов компонентных транзакций. История развития CTM. Стандарты и спецификации EJB.

    • Краткое введение в протокол RMI. Реализация протокола различными разработчиками серверов приложений. Доступ к JNDI посредством RMI.

    • Стандарт EJB 2.X – краткий экскурс в историю

    • Стандарт EJB 3.

    • Общая архитектура EJB 3. Аннотации метаданных и дескрипторов доставки. Два типа компонент – Сессионные и Управляемые событиями. Сущностные бины.

    • Порядок сборки, упаковки и отправки на сервер приложений модулей с EJB3 компонентами. Аннотации вместо файла ejb-jar.xml. Конфигурация приложения на конкретном сервере приложений с помощью аннотаций сервера приложений

    • Клиенты для сессионных компонент (локальные , удаленные, Web сервисы). Создание удаленного клиента на основе SWING приложения для выполнения методов компонент с использованием rmi протокола.

    • Цикл жизни сессионных компонент. Аннотации, методы для управления циклом жизни. Прокси объекты для доступа к бизнес методам. Локальные вызовы. Диаграмма состояния сессионных бинов.

    • Управление сессионным состоянием. Компоненты Singletons и компоненты с асинхронными методами. Возврат значения из асинхронного метода. Инъекции ресурсов сервера приложений в методы сессионных бинов. Бизнес транзакции и управление ими со стороны сервера приложений. Состояние транзакционного контекста. Использование XA источников данных в бизнес методах.

    • Методы управления доступом к компонентам. JAAS аутентификация и доступ к бизнес компонентам. Распределение ролей для выполнения различных методов. Методы и классы Interceptor, аннотация @AroundInvoke.

      Доступ к ресурсам приложения и сервера из защищенных методов. TimerService. Создание компоненты для выполнения действий по расписанию. Управление пассивацией в сессионных компонентах с состоянием.

    • Особенности конфигурации опций доставки компонент в контейнер Weblogic, JBoss.

    • Сущностные EJB. Файл persistance.xml. Создание модулей на основе соединений с базами данных с однофазным commit и на основе распределенных транзакций

    • Создание простейшего сущностного компонента на основе SQL запроса и таблицы в базе данных. Конфигурация первичного ключа. Аннотация @Id, @SequenceGenerator, @TableGenerator. Композиционный первичный ключ. Аннотация @Embeddable и @EmbeddedId. Отображение композиционного первичного ключа на сущностный класс – аннотация @IdClass.

    • Конфигурация метаданных по таблицам и колонкам – аннотации @Table, @SecondaryTable. @Column. Связанные колонки – @JoinColumn. Использование различных отношений между колонками. Конфигурация базового отображения примитивных типов данных в таблицах Oracle - @Basic. Конфигурация больших объектов - @ Lob. Конфигурация поля Version для производства оптимистической блокировки записи.

    • Определение методов жизненного цикла сущностной компоненты - @Pre… и @Post… аннотации. Ассоциация листенера и сущностного класса.

    • Конфигурация наследования в сущностных компонентах.

    • Язык запросов EJBQL. Использование аннотаций для создания именованных запросов -@NamedQuery. Использование параметров в запросах. Создание динамических запросов – javax.management.Query.

    • Использование Façade-session компонент для доступа к локальным интерфейсам сущностных компонент. Фасадные компоненты и ADF DataControl. Быстрая разработка приложений с использованием JSP DataBinding

    • Компоненты, управляемые сообщениями (MDB). Аннотация @MessageDriven. Параллельные сообщения. Конфигурация Очередей и Топиков на различных серверах приложений. Механизмы повышения надежности хранения сообщений JMS. Различные типы хранилищ (Память, файл, база данных). Транзакции в MDB компонентах

    • Разработка полноценного WEB приложения для редактирования таблиц и осуществления навигации с использованием сущностных и сессионных компонент. Создание Бизнес компонент на основе EJB компонент. ORM TopLink и EJB компоненты.

    • Примеры разработки REST с использованием EJB компонент.