Курс надає знання та навички роботи з технологією 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 на основі бізнес-компонентів