1. Решение сложных задач. Объекты и абстрагирование: классы, объекты и предметы реального мира. Статические и динамические диаграммы UML. Абстракции отношений классов и объектов, мощность отношений, представляемые на диаграммах UML.
2. Зависимости классов (ассоциация, наследование, реализация/имплементация, зависимость, агрегация, композиция). Реализация зависимостей на JAVA (код).
3. Распределенные системы, основные термины и определения. Определение программной компоненты, и распределённой системы через программные компоненты. Модели взаимодействия компонент распределенной системы. Синхронные и асинхронные вызовы. Понятие МОМ, необходимость и значение промежуточной среды.
4. Паттерны проектирования: определение, основные идеи использования, назначение. Порождающие паттерны. Структурные паттерны. Паттерны поведения. Примеры реализации (по одному из приведенной классификации).
5. Язык XML: средства, назначения и особенности использования. XML, DTD, XML Schema, пример реализации: XML-файл, DTD и XSD описания.
6. Семейство рекомендаций XSL (eXtensible Stylesheet Language): XSLT, XSL-FО XPath. Обработки XML документов, DOM и SAX модели, алгоритмы и методы обработки, преимущества и недостатки моделей.
7. Совместная разработка проектов, Системы контроля версий (СКВ). Непрерывная интеграция - Continuous Integration (CI) Методы, средства, инструменты и механизмы разработки и сборки проектов.
8. Maven, назначение, функции. Понятие и использование Архетипов. Описание проекта, роль и структура pom.xml.
9. RMI и RPC. Отличия RMI от RPC. Основные интерфейсы и классы механизма RMI. Архитектура и конфигурирование RMI. Пример реализации клиентского кода.
10. Этапы (шаги) разработки RMI приложений. Соглашения о передаче данных. Пример реализации серверного кода.
11. Реестр RMI, регистрация службы RMI. Организация доступа и вызова удаленных метод в RMI. Пример реализация цепочки доступа к удаленным методам в коде JAVA. Преимущества и недостатки технологии RMI.
12. Спецификация Corba, основные сервисы, Организация запросов в CORBA.
13. Статические и динамические вызовы в CORBA, язык IDL, назначение, структура, синтаксис языка.
14. Платформа J2EE-JEE. (основные технологии стека). Enterprise JavaBeans (EJB), обобщенная архитектура, назначение принципы функционирования контейнера, необходимое программное обеспечение и компоненты EJB.
15. Контейнер EJB, понятие, назначение, основные функции. Примеры реализации класса и методы управления жизненным циклом Бина. Разработка приложения на основе EJB 2.0 (основные объекты, связи и взаимодействие объектов).
16. Понятие, определение и использование собственного (HOME), удаленного (Remote) и локального интерфейса в EJB 2.0 и старших версий. Их программная реализация (примеры кода реализации на Java для различных типов бинов).
17. Дескриптор поставки (развертывания), структура и общие принципы организации кода в EJB 2.0 и развертывания бинов в контейнере. Пример описания дескриптора развертывания бизнес-логики в контейнере EJB 2.0 на XML.
18. JNDI, структура, назначение, функционирование. Использование JNDI в EJB. Примеры кода с использованием JNDI-методов при работе с EJB.
19. Сеансовые/Сессионные (Session) типы компонентов (бинов) EJB их особенности и применение. Пример реализации клиентской части сессионных бинов EJB (код на JAVA)
20. Общие принципы и последовательность развертывания бинов в контейнере EJB. Пример текста кода дескриптора поставки для EJB 2. Пример реализации серверной части EJB (код на JAVA). Преимущества использования объектов EJB по сравнению c объектами POJO.
21. Message-Oriented Middleware, преимущества и модель использования таких средств. Разработка клиентской и серверной частей (последовательность определения и использования объектов для организации взаимодействия, пример реализации клиента JMS).
22. Модели использования JMS. Основные объекты и термины, их назначение (обобщенный алгоритм реализации взаимодействия).
23. Особенности использования модели Point - to – Point (пример реализации алгоритма и шаги реализации при разработке клиента и сервера (код)).
24. Особенности использования модели PUB-SUB (пример реализации алгоритма и шаги реализации при разработке клиента и сервера (код)).
25. Message Driven Beans (MDB), жизненный цикл компонентов. Особенности разработки, применения и функционирования MDB, реализующие методы (примеры разработки клиента и серверной части).
26. Особенности реализации EJB версии 3. Упрощения модели программирования EJB. Роль интерфейсов EJBHome и EJBObject. Реализация.
27. Метаданные их роль и использование в JEE. Применение аннотаций в JEE и EJB в 3.0 и последующих версиях. Java Interceptors в Java и EJB.
28. Инверсия контроля и внедрение зависимостей в Java. Применение DI в EJB 3. Примеры реализации клиента и сервера для сессионных бинов.
29. Технология Entity Persistence, разработка классов, наследование, доступ к данным и привязка элементов сущностей в EJB 3.
30. Сущности в Entity Persistence. Менеджер Сущностей (Entity Manager) и Контекст постоянства (Persistence Context). Методы работы с данными в Entity Persistence EJB 3.
31. Технология JSF. JSF- как реализация Фреймворка MVC. Основные принципы и компоненты реализации, преимущества технологии JSF по сравнению с аналогичными технологиями разработки веб-приложений. Классы компонентов JSF. Рендеринг и библиотека JSP-тегов.
32. Технология JSF. Базовые концепции технологии и функциональные возможности JSF. Функциональные возможности JavaServer Faces Процесс создания приложения (последовательность и назначение шагов создания).
33. JSF. Жизненный цикл обработки запросов JSF. Стандартные JSF теги. Базовые теги JSF. HTML теги JSF. Атрибуты тегов. Разработка, размещение и запуск JSF приложения.
34. Spring Framework как коллекция Фреймворков (Фреймворков во Фреймворке). Механизмы и метод конфигурирования зависимостей (dependency injection-DI или inversion of control-IoC). Использование Spring для конфигурирования модульного приложения (через (XML–файл)). Основные методы и этапы разработки приложений Spring. Пример реализации.
35. Spring Framework как коллекция фреймворков (фреймворков во фреймворке). АОП (Aspect Oriented Programming или AOP), использование АОП. Фреймворк доступа к данным: JDBC и ORM (Object-relational mapping) в решении задач на Spring.
36. Spring MVC (Model-view-controller). Архитектура, особенности, основные методы и этапы разработки приложений.
37. AJAX (Asynchronous JavaScript and XML) - асинхронный код JavaScript и XML. Основные объекты, принципы и механизмы для разработки приложений AJAX. Структура и исполнение основных запросов. Этапы создания клиентской части. Использование DHTML для динамического изменения содержания страницы. Пример реализации.
38. Web – сервисы Понятие СОА, назначение, основные принципы и возможности. Понятие WEB-сервисов, ключевые технологии Web-сервисов, их назначение и использование (XML, WSDL, SOAP, UDDI). Пример разработки описания сервиса. Основные принципы функционирования Web-сервисов. Преимущества по сравнению с другими изученными технологиями разработки распределенных систем.
39. Технология Web – сервисов на основе API, JAX-RPC и JAX-WS. Пример кода реализации. Пример кода реализации.
40. RESTful web-сервисы. Архитектура Rest, принципы, команды и возможности, применяемые технологии и средства, Пример реализации (код).
JAX-WS - это технология, разработанная для упрощения создания Web-сервисов и клиентов Web-сервисов на языке Java. Она предоставляет полный стек Web-сервисов, облегчающий разработку и развертывание Web-сервисов. JAX-WS поддерживает WS-I Basic Profile 1.1. Это гарантирует, что Web-сервисы, разработанные с использованием стека JAX-WS, могут потребляться любыми клиентами, разработанными на любом языке программирования и удовлетворяющими стандарту WS-I Basic Profile. JAX-WS также включает в себя JAXB (Java Architecture for XML Binding) и SAAJ (SOAP with Attachments API for Java).
JAXB реализует возможности связывания данных, предоставляя удобный способ отобразить XML-схему на представление в Java-коде. JAXB скрывает преобразование сообщений XML-схемы в SOAP-сообщенияя от Java-кода, избавляя разработчика от необходимости глубокого понимания XML и SOAP-анализа. Спецификация JAXB определяет связывание между Java и XML-схемами. SAAJ обеспечивает стандартный способ работы с XML-вложениями, находящимися в SOAP-сообщении.
JAX-WS ускоряет разработку Web-сервисов, предоставляя библиотеку аннотаций для преобразования POJO-классов (plain old Java object – традиционные Java-объекты) в Web-сервисы. Она также определяет детализированное отображение сервисов, определенных на языке WSDL (Web Services Description Language), в Java-классы, реализующие эти сервисы. Все сложные типы, определенные в WSDL, отображаются в Java-классы согласно отображению, определенному спецификацией JAXB. JAX-WS ранее поставлялась с платформой Java Platform, Enterprise Edition (Java EE) 5. Спецификация JAX-WS 2.0 разрабатывается под эгидой JSR 224 Java Community Process (JCP).