DEV-J200. Java EE. Разработка корпоративных приложений и веб-сервисов
Длительность дисциплины: 40 ак.ч.
Аннотация
Целью реализации программы DEV-J200. Java EE. Разработка корпоративных приложений является изучение и практическое применение основных технологий, используемых для разработки корпоративных распределённых приложений на платформе Java EE.
Знания и умения, полученные в результате изучения
В результате освоения программы, обучающийся должен уметь:
• разрабатывать веб-приложения с использованием технологии сервлетов
• определять и использовать основные типы компонентов EJB
• разрабатывать приложения для работы с базами данных с использованием технологии Persistence API
• разрабатывать безопасные приложения на платформе Java EE
В результате освоения программы обучающийся должен знать:
• назначения и возможностей платформы Java EE
• архитектуры платформы Java EE
• основ использования технологии сервлетов
• основ использования технологии EJB
• основных типов и особенностей использования Persistence API
• основ разработки безопасных приложений на платформе Java EE
В результате освоения программы обучающийся должен приобрести практический опыт:
• в написании корпоративных распределённых приложений на платформе Java EE
• использования средств разработки и развертывания корпоративных приложений на платформе Java EE
• решения поставленных задач при созданию работоспособных приложений
Содержание дисциплины
Тема 1. Основы разработки корпоративных приложений на платформе Java EE
1.1 Обобщённая архитектура корпоративных приложений
Компоненты корпоративного приложения, их назначение и основная функциональность.
Основные типы архитектуры корпоративных приложений
1.2 Обзор основных технологий платформы Java EE
Общие задачи платформы Java EE.
Структура платформы Java EE.
Сервер EE.
Технологии web-уровня приложений.
Технологии бизнес-уровня приложений.
Технологии доступа к базам данных.
Веб-контейнер.
Контейнер EJB.
Стандартные службы, обеспечиваемые платформой.
1.3 Особенности разработки на платформе Java EE
Структура типичного приложения на платформе Java EE.
Особенности разработки серверной части приложения.
Разработка клиентской части приложения.
1.4 Развертывание корпоративных приложений
Создание и использование ресурсов.
Внедрение (injection).
Основные аннотации.
Пакетирование приложений и их компонентов
Практические занятия
Не предусмотрены
Тема 2. Разработка web-компонент на платформе Java EE
2.1 Общая структура web-приложения
Основные компоненты web-приложения и их роли.
Порядок взаимодействия web-компонентов приложения.
Основные сведения о протоколе HTTP.
2.2 Технология сервлетов (Java Servlets)
Назначение и место технологии сервлетов в корпоративных приложениях.
Жизненный цикл сервлета.
Класс HttpServlet.
Интерфейсы HttpServletRequest и HttpServletResponse.
Конфигурирование и инициализация сервлета.
Обработка параметров запроса.
Обмен данными между сервлетами и другими компонентами приложения.
Атрибуты приложения.
Взаимодействие с базами данных.
Загрузка файлов.
Поддержка сессий.
Обработка исключений.
2.3 Разработка клиентской части приложения
Основы языка HTML.
Формирование параметров запроса к серверу.
Передача параметров запроса на сервер.
Представление результатов выполнения запроса
Практические занятия
1. Создание проекта распределённого приложения в среде разработки NetBeans
2. Развертывание и запуск приложения на сервере GlassFish.
3. Разработка простейшего веб-приложения на основе технологии сервлетов.
Тема 3. Работа с XML-документами
3.1 Основы языка XML
Технология Java и XML.
Структура XML документа.
Основные элементы XML документа.
Определение схемы XML документа.
3.2 Работа с XML документами
Разбор XML документа с использованием SAX.
Основные классы и интерфейсы пакета javax.xml.
Основные классы и интерфейсы пакета org.xml.sax.
Разбор XML документа с использованием DOM.
Основные классы и интерфейсы пакета org.w3c.dom.
Основные отличия между DOM и SAX.
Разбор XML документа на основе JAXB.
Практические занятия
1. Разбор XML документа на основе SAX.
2. Разбор XML документа на основе DOM.
3. Разбор XML документа на основе JAXB.
Тема 4. Разработка сервиса JAX-WS
4.1 Общие сведения о протоколе SOAP и языке WSDL
Понятие веб-сервиса.
Отличия веб-сервиса от других видов веб-приложения.
Основные особенности разработки веб-сервисов на языке Java.
Назначение и основные свойства протокола SOAP.
Структура сообщения.
CRUD операции над объектами.
SOAP. Коды ошибок.
Проверка корректности SOAP-сообщений.
Назначение и роль WSDL.
Основные компоненты.
Модель WSDL.
Организация данных дочерних элементов.
Верификация модели.
Создание схемы.
Импорт WSDL и схемы.
4.2 Разработка ядра сервиса JAX-WS
Назначение и основные особенности веб-сервисов JAX-WS.
Проектирование сервиса.
Основные аннотации, классы и интерфейсы.
Ограничения на реализации классов.
Поддерживаемые типы данных
Определение экспортируемого интерфейса.
Основные аннотации пакета javax.jws.
Требования к интерфейсу сервиса.
Интерфейс Provider и Provider API.
Разработка основных и вспомогательных классов сервиса.
Синхронная и асинхронная обработка сообщений.
Развёртывание и запуск сервиса
4.3 Разработка клиентской части сервиса JAX-WS
Особенности разработки клиентской части сервиса.
Создание клиентов веб-сервиса из WSDL.
Развертывание клиентской части сервиса.
Выполнение клиента веб-сервиса
Практические занятия
1. Разработка простого JAX-WS сервиса.
Тема 5. Разработка сервиса JAX-RS
5.1 Разработка ядра сервиса JAX-RS
Назначение и основные особенности веб-сервисов JAX-RS.
Основные соглашения и ограничения REST.
Проектирование сервиса.
Обзор пакета javax.ws.rs.
Определение класса, представляющего основной ресурс.
Аннотация @Path.
Аннотации @Post, @Get, @Put и @Delete.
Дочерние ресурсы.
Локаторы ресурсов.
Извлечение и обработка параметров запроса.
Поддерживаемые типы данных.
Аннотации @Consumes и @Produces.
Формирование ответа на запрос.
Интерфейс Response.
Конфигурирование сервиса с помощью класса Application.
Настройка сервиса с использованием файла web.xml.
Развёртывание и тестирование сервиса
5.2 Разработка клиентской части сервиса JAX-RS
Особенности разработки клиентской части сервиса.
Создание запроса к сервису.
Определение параметров запроса.
Посылка запроса.
Обработка результатов выполнения запроса.
Синхронные и ассинхронные вызовы.
Развертывание клиентской части сервиса.
Выполнение клиента веб-сервиса.
Практические занятия
1. Разработка простого JAX-RS сервиса.
Тема 6. Разработка компонент на основе технологии Enterprise JavaBeans (Java EJB)
6.1 Введение в технологию Java EJB
Назначение и роль технологии в корпоративных приложениях.
Назначение и функциональность контейнера EJB.
Основные виды EJB-компонентов, их назначение и особенности использования
6.2 Сессионные компоненты (Session Beans)
Компоненты без поддержки сессий.
Компоненты с поддержкой сессий.
Особенности жизненного цикла компонента с поддержкой сессий.
Реализация сессионных компонентов.
6.3 Компоненты, управляемые сообщениями (MessageDriven Beans)
Соглашения по именованию объектов JNDI.
Основы технологии JMS.
Создание и управление администрируемыми объектами на примере сервереа GlassFish.
Назначение и реализация компонентов, управляемых сообщениями.
Практические занятия
1. Разработка сессионного компонента приложения.
2. Разработка компонента, управляемого сообщениями.
Тема 7. Java Persistence API
7.1 Основы Persistence API
Общие принципы работы приложения на основе JPA.
Определение и создание сущности (Entity).
Основные аннотации, используемые при определении классов-сущностей.
Наследование сущностей.
Управление сущностями.
Интерфейсы EntityManagerFactory и EntityManager.
Класс Persistence
7.2 Язык запросов (Java Persistence Query Language)
Основы синтаксиса.
Основные отличия от языка SQL.
Создание именованных и неименованных запросов.
Выполнение запросов.
Представление результатов выполнения запросов.
7.3 Разработка компонента на основе JPA
Типичная схема работы приложения с использованием JPA.
Основные классы и интерфейсы.
Конфигурационные файлы.
Архивация и развертывание компонента.
Практические занятия
Разработка компонента приложения, обеспечивающего доступ к базе данных
Тема 8. Зачет