Разработка распределенных приложений с использованием EJB 3
Описание
Как Java кардинально изменила наши представления о разработке программного обеспечения, так же технология EJB изменила представления о разработке надежных и масштабируемых корпоративных систем. Курс покажет общую архитектуру EJB, принципы построение систем с использованием этой технологии. Будут рассмотрены модели компонентов, мониторы компонентных транзакций. Будет дано определение EJB и архитектура распределенных объектов. Различия в стандартах EJB 1.1, 2.0, 3.X Соглашения между компонентом и контейнером. Удаленный и локальный пользовательские интерфейсы. Типы EJB компонент. Особенности размещения EJB на JBoss, Weblogic и других серверах. Конфигурация дескрипторов размещения и обеспечение безопасного доступа к EJB компонентам. Основы постоянства. Транзакции в распределенных системах. Построение Web приложений с использованием компонент EJB
Аудитория:
профессиональные разработчики Java, аналитики, руководители проектов, желающие переводить свои приложения в многозвенную архитектуру.
Начальная подготовка:
знание языка Java, SQL, работа с серверами приложений, опыт работы в среде IntelliJIDEA, Eclipse, JDeveloper, NetBeans.
Программа курса
- Необходимость использования мониторов компонентных транзакций. История развития CTM. Стандарты и спецификации EJB.
- Краткое введение в протокол RMI. Реализация протокола различными разработчиками серверов приложений. Доступ к JNDI посредством RMI.
- Стандарт EJBX – краткий экскурс в историю
- Стандарт EJB 3.
- Общая архитектура EJB Аннотации метаданных и дескрипторов доставки. Два типа компонент – Сессионные и Управляемые событиями. Сущностные бины.
- Порядок сборки, упаковки и отправки на сервер приложений модулей с 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 компонент.
Расписание
Время проведения курса пока не определено, отправьте нам заявку, пожалуйста.
Возможно, мы предложим пройти курс в дистанционном режиме или организуем выездной курс, если у Вас группа.