Курс предоставляет знания и навыки работы с технологией EJB, которая кардинально изменила понимание разработки надежных и масштабируемых корпоративных систем. Курс рассматривает общую архитектуру EJB и принципы построения систем с использованием этой технологии, модели компонентов и мониторы компонентных транзакций. Будет дано определение, что такое EJB и архитектура распределенных объектов. Также будут рассмотрены различия в стандартах EJB версий 1.1, 2.0 и 3.X. В ходе курса дадут определение понятиям соглашений между компонентом и контейнером, удаленного и локального интерфейса, расскажут о типах EJB-компонентов, особенностях размещения EJB на JBoss, WebLogic и других серверах, конфигурации дескрипторов размещения и обеспечения безопасного доступа к EJB-компонентам, основах устойчивости, транзакциях в распределенных системах, построении web-приложений с использованием компонентов EJB.
По окончании курса слушатели смогут:
- самостоятельно разрабатывать приложения в компонентной архитектуре JEE/EJB3.X.
Аудитория
Профессиональные Java-разработчики, аналитики, руководители проектов, желающие перевести свои приложения в многозвенную архитектуру.
Для эффективного обучения на курсе, слушатели должны обладать следующими знаниями и навыками:
- знание языка программирования Java;
- знание языка структурированных запросов SQL;
- опыт работы с серверами приложений;
- опыт работы в среде Eclipse, JDeveloper, NetBeans;
- курсы JV_0, JV_1, JV_2.
- Необходимость использования мониторов компонентных транзакций
- История развития CTM
- Стандарты и спецификации EJB
- Краткое введение в протокол RMI
- Реализация протокола различными разработчиками серверов приложений
- Доступ к JNDI посредством RMI
- Стандарт EJB 2.X, краткий экскурс в историю
- Устойчивость, управляемая контейнером
- Разработка CMP-компонентов
- Первичный ключ и установка связи с ресурсом
- Поисковые методы и методы выборки
- Краткое введение в язык EJBQL
- Дескриптор развертывания CMP, EJB-компоненты и описание EJBQL
- Устойчивость, управляемая компонентом
- Разработка BMP-компонента
- Реализация методов выборки и изменения данных
- BMP и доступ к сложным структурам данных
- Методы обратного вызова
- Дескриптор развертывания для BMP-компонента
- Использование UML для визуальной разработки сущностных компонентов
- Реинжиниринг схемы базы данных
- Стандарт EJB3
- Общая архитектура EJB3
- Аннотации метаданных и дескрипторов доставки
- Два типа компонентов, сессионные и управляемые событиями
- Сущностные бины
- Порядок сборки, упаковки и отправки на сервер приложений модулей с 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
- Использование компонентов Facade-session для доступа к локальным интерфейсам сущностных компонентов
- Facade-компоненты и ADF DataControl
- Быстрая разработка приложений с использованием JSP DataBinding
- Компоненты, управляемые сообщениями MDB
- Аннотация @MessageDriven
- Параллельные сообщения
- Конфигурация очередей и топиков на различных серверах приложений
- Механизмы повышения надежности хранения сообщений JMS
- Различные типы хранилищ, память, файл, база данных
- Транзакции в MDB-компонентах
- Разработка полноценного web-приложения для редактирования таблиц и осуществления навигации с использованием сущностных и сессионных компонентов
- Создание бизнес-компонентов на основе EJB-компонентов
- ORM TopLink и EJB-компоненты
- Примеры разработки сервлетов и JSP с использованием EJB-компонент
- Средство разработки JDeveloper для автоматизации процесса разработки
- JSF/ADF и JSP на основе бизнес-компонентов