Вступление
Предисловие
Глава 1. Введение
1.1. Почему разработка программного обеспечения должна принимать во внимание все предприятие
1.2. Как пошаговая разработка решает ключевые проблемы управления информационными технологиями
1.3. У современных приложений предприятия новые требования
1.4. Где отправная точка?
1.5. Что такое многоуровневая архитектура?
1.5.1. Обычные многоуровневые схемы
1.5.2. Определение многоуровневой архитектуры
1.5.2.1. Представление
1.5.2.2. Контроллеры и медиаторы
1.5.2.3. Предметная логика
1.5.2.4. Отображение данных
1.5.3. Доступ к источнику данных
1.5.4. Службы приложения
1.5.5. Достоинства тестовых сценариев
1.6. Преимущества многоуровневой архитектуры
1.7. Резюме
Глава 2. Введение в учебный пример
2.1. Анализ учебного примера и результаты проекта
2.1.1. Формулировка проблемы
2.1.2. Задачи системы
2.1.3. Список прецедентов
2.1.4. Диаграммы прецедентов
2.2. Определения прецедентов
2.3. Проектирование модели предметной логики учебного примера
2.4. Использование примера в нашей книге
2.5. Резюме
Глава 3. Обзор J2EE
3.0.1. Модель компонентов J2EE
3.0.2. Конфигурируемые реализации
3.0.3. Конфигурируемые алгоритмы
3.0.4. Кто определяет эти спецификации?
3.1. Почему J2EE?
3.2. Архитектура J2EE
3.2.1. JDBC
3.2.2. Servlet/JSP
3.2.3. EJB
3.2.4. Коннектор
3.2.5. JMS
3.2.6. Java Mail
3.2.7. JTA
3.2.8. JAX-RPC
3.2.9. SAAJ
3.2.10. JMX
3.3. Роли платформы J2EE
3.3.1. Провайдер продукта J2EE
3.3.2. Провайдер компонента приложения
3.3.3. Сборщик приложения
3.3.4. Установщик
3.3.5. Системный администратор
3.3.6. Провайдер инструментов
3.4. Версии и развитие J2EE
3.5. Перспективы J2EE
3.6. Резюме
Глава 4. Что такое WebSphere?
4.1. Базовая платформа и инструментальные средства WebSphere
4.1.1. WebSphere Studio
4.1.2. Семейство сервера приложений WebSphere
4.1.3. Сервер приложений WebSphere (WAS)
4.1.4. WAS Network Deployment (ND)
4.1.5. WAS Enterprise Edition (WAS EE)
4.2. Базовая архитектура WAS
4.3. Администрирование локального сервера WAS
4.4. Использование масштабируемости WAS ND
4.5. Резюме
Глава 5. Шаблоны уровня представления
5.1. Технологии интерфейса пользователя Java
5.1.1. Servlet/JSP
5.1.2. XML/XSLT
5.1.3. GUI на основе Swing
5.2. Отделение интерфейса пользователя
5.2.1. Шаблон MVC
5.2.2. Одиночный сервлет в противоположность множественному
5.2.3. Структура Struts
5.2.4. Логика представления
5.3. Опосредование логического представления
5.3.1. Поддержка списков
5.3.2. Выбранный объект
5.3.3. Передача контрольных сообщений
5.3.4. Поддержка смены представлений
5.3.5. Свертывание графов объектов
5.4. Резюме
Глава 6. Сервлеты
6.1. Основы технологии HTTP
6.1.1. Унифицированные идентификаторы ресурсов
6.1.1.1. HTTP URL
6.1.1.2. В чем разница между URI и URL?
6.1.2. Запросы, ответы и заголовки
6.1.2.1. Заголовки
6.1.2.2. Запросы
6.1.2.3. Ответы
6.1.3. Соединяя все вместе
6.2. Концепция сервлетов
6.2.1. Поддержка сервлетов
6.2.1.1. Среды выполнения сервлетов
6.3. Жизненный цикл сервлета
6.4. Пример сервлета
6.5. Дескрипторы развертывания веб
6.6. Фильтры
6.7. Классы и интерфейсы Servlet API
6.7.1. Пакет javax.servlet
6.7.2. Пакет javax.servlet.http
6.8. Резюме
Глава 7. Создание сервлетов с использованием IBM WebSphere Studio Application
Developer
7.1. Семейство инструментов IBM WebSphere Studio
7.1.1. Обзор WebSphere Studio Workbench
7.2. Создание приложения Servlet Example с помощью WSAD
7.2.1. Создание веб-проекта
7.2.2. Построение предметной модели с помощью объектов Java
7.2.3. Сохранение модели с использованием JDBC и шаблона Active Record
7.2.4. Создание и редактирование HTML для пользовательского интерфейса, представляющего детальный список о сотруднике
7.2.5. Создание сервлетов для получения доступа к модели и ее обновления
7.3. Некоторые проблемы в этом примере
7.4. Резюме
Глава 8. Тестирование сервлетов с использованием WSAD
8.1. Редактирование дескриптора развертывания Web
8.1.1. Развертывание корпоративного приложения
8.1.2. Конфигурирование корпоративного приложения для развертывания веб-приложения
8.1.2.1. Конфигурирование WSAD Test Environment и опубликование приложения
8.1.3. Запуск WTE
8.1.4. Редактирование кода HTML и кода сервлета, их повторное тестирование
8.1.5. Отладка сервлета
8.2. Резюме
Глава 9. Управление состоянием сеанса
9.1. Некоторые подходы к сеансу со стороны клиентов
9.1.1. Использование для сохранения состояния cookie
9.1.2. Скрытые поля
9.1.3. Параметры URL
9.2. Сервлеты и состояние сеанса
9.2.1. Привязки HttpSession
9.2.2. Как производится поиск сеанса
9.3. Выбор правильного подхода
9.3.1. Перезапись URL
9.4. Сохраняемость сеанса
9.4.1. Управление сохраняемостью сеансов WebSphere
9.4.1.1. Сохранение сеансов в базе данных
9.4.1.2. Репликация сеанса из памяти в память
9.4.2. Сравнение сохранения в базе данных с репликацией M2M
9.4.3. Управление сохранением сеансовых данных
9.4.4. Уровни управления сеансами
9.5. Резюме
Глава 10. Основные понятия серверных страниц Java
10.1. Шаблоны страниц и серверные сценарии
10.2. Краткая история серверных страниц Java
10.3. Компиляция страницы - взгляд времени выполнения
10.4. Синтаксис JSP
10.5. Элементы сценария
10.5.1. Скриптлеты
10.5.2. Выражения
10.5.3. Объявления
10.6. Директивы
10.6.1. Директива page
10.6.2. Директива include
10.6.3. Неявные объекты
10.7. Документы JSP
10.7.1. Исследование документа JSP с синтаксисом в стиле XML
10.7.2. Элементы синтаксиса XML
10.7.3. Создание JSP с синтаксисом XML в WebSphere Studio
10.8. Роли для JSP
10.9. Резюме
Глава 11. Библиотеки тэгов и пользовательские тэги
11.1. Введение
11.2. Базовая модель пользовательских тэгов
11.3. JSTL и другие широко использующиеся библиотеки тэгов
11.4. Написание обработчиков тэгов
11.5. Дескриптор библиотеки тэгов (.tlb)
11.6. Директива taglib и создание пользовательских тегов
11.7. Поддержка пользовательских действий
11.8. Резюме
Глава 12. Соображения о проектировании контроллеров
12.1. Откуда происходят контроллеры?
12.2. Альтернативы разработке контроллера
12.2.1. Контроллер страницы
12.2.2. Сервлет шлюза
12.3. Обработка исключений
12.4. Журналирование
12.5. Фильтры сервлетов
12.6. Резюме
Глава 13. Разработка и тестирование JSP в WSAD
13.1. Еще один взгляд на MVC
13.2. JavaBeans, интроспекция и контракты
13.3. Построение приложений в WSAD с использованием JSP
13.4. Редактирование серверных страниц Java
13.5. Проверка правильности JSP страницы
13.6. Запуск на сервере
13.7. Отладка JSP
13.8. Упрощение JSP
13.8.1. Стандартная библиотека тэгов Java
13.8.2. JSTL Expression Language
13.8.3. Смешивание JSTL RT с выражениями JSP
13.9. Совместимость с XML
13.10. Резюме
Глава 14. Apache Struts в качестве каркаса MVC
14.1. Архитектурная схема
14.2. Зачем нам нужен каркас?
14.3. Что такое Struts?
14.4. Простой пример MVC Struts
14.4.1. Построение модели (компоненты формы)
14.4.2. Построение объектов Action
14.4.3. Проверка правильности ActionForm
14.4.4. Соединяя все вместе в файле struts-config.xml
14.4.5. Тэги формы HTML
14.4.6. Локальные переходы
14.5. Лучшие практики применения Struts
14.6. Резюме
Глава 15. Веб-интерфейсы XML/XSL в WSAD
15.1. Стратегия использования XML/XSL для веб-интерфейсов
15.1.1. Контроллер взаимодействия
15.1.2. XML-генератор
15.1.3. XSL
15.1.4. Совместная работа
15.2. Пример XML/XSL веб-интерфейса с использованием WSAD
15.2.1. Создание веб-проекта
15.2.2. Создание XML файла
15.3. Создание XSL файла
15.3.1. Отладка и преобразование XSL
15.3.1.1. Преобразование XML файлов
15.3.1.2. Отладка XSL и XML файлов
15.3.1.3. Опции для отладки и преобразования XSL файлов
15.4. Усовершенствованный пример веб-интерфейса XML/XSL с WSAD
15.4.1. Обзор timesheet1.xsl
15.4.2. Улучшение 1: разложение на шаблоны
15.4.3. Улучшение 2: добавление к элементу табеля подробных сведений
15.4.3.1. Шаблон Entries
15.4.3.2. Шаблон Entry
15.4.3.3. Интеграция с существующими шаблонами
15.4.3.4. Тестирование новых шаблонов
15.4.4. Улучшение 3: добавление резюмирующей информации о проекте
15.4.4.1. Шаблон ProjectTotals
15.4.4.2. Шаблон Project
15.4.4.3. Интеграция с существующими шаблонами
15.4.4.4. Тестирование новых шаблонов
15.5. Пример динамического веб-интерфейса XML/XSL с использованием WSAD
15.5.1. Создание пакета Java
15.5.2. Создание XML-генератора
15.5.3. Обновление путей к классам Java
15.5.4. Создание реализации URIResolver
15.5.5. Создание сервлета
15.5.6. Тестирование и отладка
15.6. Когда использовать XML/XSL для веб-интерфейсов
15.7. Резюме
Глава 16. Разработка и тестирование модели предметной области
16.1. Уровень модели предметной логики
16.1.1. Уровень служб
16.1.2. Подходы к созданию предметной модели
16.1.3. Подход mini-max к предметному моделированию
16.1.4. Проблемы с предметным моделированием
16.2. Уровень сопоставления данных
16.2.1. Объектно-реляционное сопоставление
16.2.1.1. Обзор архитектуры сопоставления
16.2.1.2. Доступ к специфичным для объекта преобразователям
16.2.1.3. Сопоставление объектов с реляционными таблицами
16.2.1.4. Управление идентичностью объектов
16.2.1.5. Сопоставление атрибутов объекта
16.2.1.6. Обнаружение объектов
16.2.1.7. Поддержание непротиворечивости
16.2.1.8. Сопоставление связей
16.2.1.9. Наследование
16.2.1.10. "Ленивая загрузка"
16.2.1.11. Отслеживание изменений
16.2.1.12. Управление транзакциями
16.2.1.13. Всякая всячина
16.3. Тестирование модели
16.4. Резюме
Глава 17. Структурное и функциональное тестирование приложений в WSAD
17.1. Всеобщие подходы к тестированию
17.1.1. Выбор инструментов
17.1.2. Стандарты кодирования
17.1.3. Стратегии тестирования
17.1.4. Зачем структурное тестирование?
17.2. Что такое JUnit?
17.3. Простой пример
17.4. Структурное тестирование контейнеров с помощью Cactus
17.4.1. Cactus API
17.5. Функциональное тестирование приложений в WSAD
17.6. Функциональное тестирование
17.7. Что такое HttpUnit?
17.8. HttpUnit API
17.9. Следование по ссылкам
17.10. Работа с формами
17.11. Работа с таблицами
17.12. Работа с фреймами
17.13. Работа с моделью DOM
17.14. Соображения по проектированию функциональных тестов
17.15. Резюме
Глава 18. Поддержка корпоративных приложений
18.1. Еще один взгляд на n-уровневую архитектуру
18.2. Почему недостаточно HTML, сервлетов и JSP?
18.3. Распределенность объектов
18.3.1. Обзор CORBA
18.3.2. Краткий обзор и история RMI
18.3.3. Некоторые из оставшихся недоработок
18.3.4. Куда это нас ведет
18.4. Способы интеграции и передача сообщений
18.4.1. JMS и MOM
18.5. Персистентность объектов
18.6. Объекты и транзакции
18.7. Безопасность в корпоративных приложениях
18.8. Резюме
Глава 19. Основные принципы архитектуры EJB
19.1. Основные концепции EJB
19.1.1. Компоненты и контейнеры
19.1.2. Развертывание
19.2. Типы EJB
19.2.1. Сеансовые EJB
19.2.2. Сущностные EJB
19.2.3. Компоненты, управляемые сообщениями
19.3. Знакомство с программной моделью EJB
19.4. EJB - распределенные или нет?
19.4.1. Идея локальных EJB
19.4.2. Различия между локальными и удаленными EJB
19.5. Базовые архитектурные шаблоны для EJB
19.6. Роль персистентности
19.6.1. Уровни преобразователей
19.6.2. Сущностные компоненты, управляемые контейнером
19.6.3. Другие возможности
19.7. Когда вам нужны EJB?
19.7.1. Некоторые технические вопросы
19.8. Резюме
Глава 20. Разработка EJB с помощью WSAD
20.1. Перспектива J2EE
20.1.1. Вид J2EE Hierarchy
20.1.2. Вид J2EE Navigator
20.1.3. Вид Servers
20.1.4. Вид DB Servers
20.2. Проекты J2EE
20.2.1. Вспомогательные JAR-файлы
20.2.2. Зависимости в проекте J2EE
20.2.3. Редактор зависимостей JAR-файлов
20.3. Создание сеансового компонента
20.3.1. Использование мастера создания EJB
20.4. Тестирование нового сеансового компонента
20.4.1. Тестирование сеансового компонента с помощью универсального тестового клиен
20.5. Резюме
Глава 21. Тестирование и отладка EJB в WSAD
21.1. Разработка уровня служб
21.1.1. Создание и конфигурирование проектов примеров
21.1.2. Создание сеансового компонента
21.1.3. Добавление методов уровня служб
21.1.4. Опредиление методов уровня службы в локальный и удаленный интерфейсы
21.1.5. Использование интерфейса компонента
21.2. Обзор процесса тестирования
21.2.1. Шаг 1: генерация классов развертывания EJB для проекта EJB
21.2.2. Шаг 2: создание и конфигурирование экземпляра сервера и добавление проекта EAR
21.2.3. Шаг 3: публикация и запуск экземпляра сервера
21.2.4. Шаг 4: тестирование EJB с помощью универсального тестового клиента и веб-модуля клиента
21.2.5. Шаг 5: отладка EJB с использованием отладчика WSAD
21.2.6. Шаг 6: публикация корпоративного приложения на внешнем сервере WebSphere
21.2.6.1. Создание и конфигурирование экземпляра сервера
21.2.6.2. Выкладывание корпоративного приложения на сервер
21.2.6.3. Конфигурирование сервера
21.2.6.4. Публикация проекта на сервер
21.2.6.5. Запуск сервера
21.2.6.6. Запуск приложения
21.2.7. Шаг 7: отладка опубликованного приложения с использованием распределенного отладчика
21.3. Резюме
Глава 22. Разработка клиентов EJB
22.1. Использование сервлетов в качестве клиентов EJB
22.2. Построение клиентских приложений Java
22.3. Клиенты-аплеты в WebSphere
22.4. Именование и пространство имен WebSphere
22.4.1. Имена и разрешение имен
22.5. Создание тестового клиента
22.6. Развертывание клиентов приложений в WebSphere
22.7. Развертывание и запуск клиента EJB в клиентском контейнере WebSphere
22.8. Некоторые особенности проектирования клиентов EJB
22.9. Резюме
Глава 23. Сущностные компоненты CMP
23.1. Основы сущностных компонентов
23.2. CMP в WebSphere и WebSphere Studio
23.3. Создание CMP EJB с использованием WebSphere Studio
23.3.1. Что осталось сделать
23.4. Части сущностного компонента
23.4.1. Локальные интерфейсы
23.4.2. Локальные домашние интерфейсы
23.4.3. Классы ключей
23.4.4. Уникальность первичных ключей
23.4.5. Классы реализации компонента
23.5. Дескриптор развертывания
23.5.1. Поля, сохранением которых управляет контейнер
23.5.2. Отношения, управляемые контейнером (CMR)
23.5.3. Язык запросов EJB (EJB QL)
23.6. Резюме
Глава 24. Стратегии сопоставления CMP и сопоставление в WSAD
24.1. Базы данных, CMP и сопоставления
24.1.1. Пример сопоставления сверху вниз
24.1.2. Пример сопоставления снизу вверх
24.1.3. Пример сопоставления сходящийся к середине
24.1.3.1. Опции существующей серверной папки
24.1.4. Редактор сопоставления EJB
24.1.5. Команды повторного выполнения сопоставления
24.1.6. Альтернатива повторному выполнению команд сопоставления
24.1.7. Определение и использование конвертеров
24.1.8. Определение и использование компоновщиков
24.2. Серверная поддержка множественного сопоставления
24.3. Экспортирование таблиц базы данных
24.4. Язык запросов EJB
24.5. Резюме
Глава 25. Более сложное сопоставление CMP
25.1. Правила простого сопоставления
25.2. Объектно-реляционные основы
25.3. Концепции в отношениях EJB 2.0
25.4. Ассоциации в UML
25.5. Отношения в WSAD V5.0
25.6. Создание однозначного отношения
25.7. Создание многозначного отношения
25.8. Рекомендации для упреждающего чтения
25.9. Сопоставление отношений
25.10. Слабые компоненты против сильных компонент
25.11. Наследование EJB в WSAD
25.11.1. Наследование интерфейсов для сеансовых и сущностных компонентов
25.11.2. Построение наследуемых компонентов в WSAD
25.11.3. Наследование домашних интерфейсов
25.11.4. Стратегии наследования базы данных
25.11.5. Сопоставление структуры наследования EJB
25.11.6. Краткое заключение по наследованию EJB
25.12. Расширенный EJB QL
25.12.1. Выражение FROM
25.12.2. Выражение SELECT
25.12.3. Выражение WHERE
25.12.4. Примеры
25.12.4.1. Примеры запросов поиска
25.12.4.2. Примеры запросов выбора
25.13. Резюме
Глава 26. Сохраняемость, управляемая компонентом
26.1. Применение BMP
26.2. Простой компонент BMP
26.3. Исследование сохранения BMP
26.3.1. Создание метода ejbCreate() в компоненте BMP
26.3.2. Создание методов-поиска BMP
26.3.3. Создание метода BMP ejbLoad()
26.3.4. Создание метода ejbStore() для компонентов BMP
26.4. BMP в сравнение с CMP
26.5. Резюме
Глава 27. Введение в компоненты, управляемые сообщениями
27.1. Служба сообщений Java
21.1.1. JMS - асинхронен
27.1.2. Модели обмена сообщениями JMS
27.1.2.1. Публикация и подписка
27.1.2.2. Точка-точка
27.2. Основы JMS API
27.3. Компоненты, управляемые сообщениями
27.3.1. Пример MDB в WSAD
27.3.1.1. Создание корпоративного проекта
27.3.1.2. Создание MDB
27.3.1.3. Создание тестирующего сервлета
27.3.1.4. Конфигурирование имен JNDI
27.3.1.5. Настройка сервера
27.3.1.6. Тестирование и отладка
27.4. Резюме
Глава 28. Транзакции в WebSphere 5.0
28.1. Транзакции JDBC
28.2. Транзакции и двухфазная фиксация
28.3. JTA и границы транзакций
28.4. Запуск 2-PC в WebSphere 5.0
28.5. EJB и транзакции, управляемые контейнером
28.6. Участие в транзакции
28.7. Использование ресурсов XA с 2-PC в WebSphere
28.8. Установки транзакций для J2EE 1.3 в WAS 5.0
28.9. Советы по использованию транзакций
28.9.1. Сеансы деятельности в WAS EE
28.10. Расширенные установки транзакций в WebSphere 5.0
28.11. Особые соображения о транзакциях для JMS
28.12. Работа с параллелизмом
28.12.1. Параллелизм и EJB
28.12.2. Выбор правильного намерения доступа
28.12.3. Профили приложений в WAS 5.0 EE
28.13. Резюме
Глава 29. Безопасность J2EE в WebSphere
29.1. Обзор безопасности J2EE
29.1.1. Архитектура безопасности J2EE
29.1.2. Аутентификация J2EE в веб-контейнере
29.1.3. Механизмы клиентов EJB (JAAS)
29.2. Авторизация J2EE
29.2.1. Определение авторизации в веб-контейнере
29.2.2. Определение авторизации в контейнере EJB
29.3. Защита ресурсов с помощью WebSphere Studio
29.3.1. Определение механизма аутентификации в WSAD
29.3.1.1. Защита веб-ресурсов в WSAD
29.3.1.2. Защита в WSAD ресурсов EJB
29.3.1.3. Согласование ролей в дескрипторе развертывания корпоративного приложения
29.3.1.4. Создание защищенного сервера и выполнение примера
29.4. Рекомендации по безопасности EJB
29.5. Работа с безопасностью на уровне экземпляров
29.5.1. Подход фасада сеанса для безопасности на основе экземпляров
29.6. Безопасность на основе GUI
29.7. Резюме
Глава 30. Построение многоуровневых архитектур для систем EJB
30.1. Проблемы с решением всех сущностных EJB
30.2. Фасад сеанса и решение DTO
30.3. Особенности проектирования сеансовых фасадов
30.3.1. Ключевые моменты шаблона фасада
30.4. Правила для сеансовых фасадов
30.5. Причины для использования объектов EJB
30.6. Простой пример из учебного примера
30.7. Более сложный пример
30.8. Возвращаясь к преобразователям
30.9. Имитируемые преобразователи
30.10. Пример обновления
30.11. Тестирование примера сеансового фасада с помощью JUnit
30.12. Запуск тестирующего клиента
30.13. Правила для создания сеансовых фасадов
30.14. Должны ли сеансовые фасады возвращатьXML?
30.15. Резюме
Глава 31. Реализация интерфейса пользователя учебного примера
31.1. Руководство пользователя
31.1.1. Начальный экран
31.1.2. Создание, отображение, модификация табеля для сотрудника
31.1.3. Отображение ожидающих и утвержденных табелей
31.1.4. Обработка табеля
31.2. Резюме
Глава 32. Введение в веб-сервисы J2EE для WebSphere
32.1. Если веб-сервисы решение, то в чем проблема?
32.1.1. Проблема интеграции
32.1.2. Происхождение веб-сервисов
32.1.3. Общее понимание: почему XML?
32.1.4. Что такое веб-сервис?
32.2. Архитектура веб-сервисов
32.2.1 Роль SOAP (простого протокола доступа к объектам)
32.2.2. Роль языка описания веб-сервисов (WSDL)
32.2.3. UDDI и проблема размещения служб
32.2.4. Связывая все воедино: архитектура, ориентированная на службы
32.3. Веб-сервисы в J2EE
32.4. Веб-сервисы в WAS
32.5. Шаги стандартизации
32.6. Резюме
Глава 33. Создание веб-сервисов J2EE на WebSphere
33.1. Начало работы с веб-сервисами
33.1.1. Создание интерфейса конечной точки службы
33.1.2. Использование WSDL для описания службы
33.1.3. Разъяснение WSDL
33.1.4. Создание дескрипторов развертывания
33.1.4.1. Освоение дескриптора развертывания webservices.xml
33.1.5. Обновление дескриптора развертывания
33.1.6. Подготовка веб-сервиса для развертывания
33.1.7. Развертывание веб-сервиса в WebSphere
33.1.8. Публикация WSDL
33.1.9. Краткое резюме по созданию веб-сервиса
33.2. Построение клиентов веб-сервисов
33.2.1. Клиент J2SE
33.2.2. Построение клиента J2EE
33.2.3. Запуск клиента приложения WSAD
33.2.4. Запуск клиента из командной строки
33.2.5. Изучение сообщений SOAP
33.2.5.1. Добавление порта WSDL
.33.2.5.2. Разъяснение сообщения SOAP
33.3. Резюме
Глава 34. Лучшие решения при построении веб-сервисов
34.1. Некоторые правила для веб-сервисов
34.2. Рассмотрение ограничений веб-сервисов
34.2.1. Множественные предметные представители
34.2.2. WSDL и WSIF
34.3. Выбор нужного уровня модульности в SOA
34.3.1. Унифицированное логическое представление
34.3.2. Замещаемый компонент
34.3.3. Компонуемые компоненты
34.4. Усвоенные уроки интероперабельности
34.4.1. Стиль кодирования и интероперабельность
34.4.2. Стиль связывания и интероперабельность
34.4.3. Когда использовать стиль документа и когда - стиль RPC
34.4.4. Пример обработки document-literal в WebSphere
34.4.5. Заключительные замечания об интероперабельности
34.5. Резюме
Глава 35. Послесловие
35.1. Многоуровневость приложения
35.2. Учебный пример и технологии J2EE
35.3. Инструментарий
35.4. Заключение
Приложение A. Установка продуктов и примеров с компакт-диска
A.1. Установка продуктов с компакт-диска
A.2. Установка учебного примера
A.2.1. Установка механизма обмена проектами
A.2.2. Установка учебного примера
A.2.3. Запуск учебного примера
A.2.4. Установка примера веб-сервисов
Приложение B. Создание веб-сервисов J2EE с использованием WSAD 5.1
B.1. Что нового?
B.2. Создание службы RandomIDGenerator
B.2.1. Настройка проекта
B.2.2. Создание службы RandomIDGenerator
B.3. Запуск и тестирование службы RandomIDGenerator
B.3.1. Использование проводника веб-сервисов
B.4. Использование существующего клиента J2SE
B.5. Резюме
Библиография
Предметный указатель