1. SOA, BPEL, JBI:
Стратегия и
Архитектура
Дмитрий Ширяев
http://developers.sun.com
Директор
Sun Microsystems, Inc.
1
2. Путеводитель по галактике SOA
3. BPMN
Вы здесь 2. BPEL
4. JBI
1. Введение 5. Ответ
на все вопросы
6. Demo
2
3. Что такое SOA?
• Метод проектирования распределенных
программных систем
• Не зависит от технологии
• Философия SOA – слабая связанность (loose coupling)
• Не путайте Web-сервисы и SOA
> Web-сервисы могут быть использованы для создания SOA
> Tак же могут быть использованы CORBA, RMI, DCOM...
> Различие – в акценте на слабую связанность
• Для большинства людей Web-сервисы –
единственное проявление SOA
3
4. Определение SOA
• Сервисно-ориентированная архитектура
(SOA) – это интегрированный подход к
инфрастуктуре и проектированию
программного обеспечения, использующий
Web стандарты, для предоставления
бизнес функций как сервисов
• Лучшая реализация SOA архитектуры –
использование web-сервисов в качестве
middleware технологии
4
5. Преимущества SOA
• Гибкие Информационные Технологии
> Легко приспосабливаемые для изменяющихся
потребностей бизнеса
• Быстрый вывод продукта на рынок
> Повторное использование существуещего кода,
сведение к минимуму новой разработки
• Управляемая бизнесом и процессами
> Новые возможности в бизнесе
• Лучший возврат инвестиций (ROI)
> Использование существующих активов ИТ
5
6. ая
Проблемы интеграции С лучай н а
р
ар х и т ект у
Каналы
• Негибкость
Внутренние
Партнеры Заказчики пользователи Поставщики инфраструктуры ИТ
• Сложность проектов
интеграции
$ $ $ • Затраты на
$ $$ $ $ интеграцию
$ $ $
$ • Время вывода
продукта на рынок
$ • Ограниченная гибкость
$ партнерства
$ • Ограниченность EDI
$ $
Inventory (электронный обмен
Legacy CRM Billing Provisioning данными)
Информационные активы
6
7. Уровни SOA
Уровень доступа (Access Layer)
Уровень процессов (Process Layer)
Уровень сервиса (Service Layer)
Уровень ресурсов (Resource Layer)
7
8. Переход к SOA
Не
интегрированная
Интегрированная
и разделяемая
8
9. Новый подход
• SOA – это совместные усилия ИТ и бизнеса
ние SOA Опр
уров еделе
ле са
тав рви ня п ние
дос се
ре ня
роц
ессо
П в в
уро
ИТ Бизнес
9
10. Сценарий до эпохи SOA
Кредитная
карта Ипотека
Проверка Распознование Проверка Проверка Проверка Вычисление
баланса обмана кредито- кредито- баланса процентов
способности способности
Данные Back- Данные Данные Back- Данные
заказчика End кредитоспособности кредитоспособности End заказчика
System партнера партнера System 10
11. Сценарий с использованием SOA
Кредит на Оплата Паевые
машину счетов Акции фонды
Кредитная
Ипотека
карта
Повторно используемые сервисы
Сервис Проверка Распознование Сервис Вычисление Проверка Сервис
управления кредито- обмана доступа процентов баланса данных Трейдер-Сервис
платежами способности заказчика
Internet
Кредитные данные Back-End System Back-End System Данные закачика
партера 11
12. Основные правила архитектуры
SOA
Крупномодульные Документо-
сервисы ориентированные Ассинхроные Диалоговые
Надежные Конфеденциальность/ Использование Регистрация и поиск
Идентификация политик
Описываемые WSDL Оркестрируемые с Основанные на JBI
помощью BPEL
12
14. Основные правила архитектуры кт
SOA е
Асп ства
кач
е
Конфеденциальность/
Надежные Идентификация
Использование политик Регистрация и поиск
14
15. Основные правила архитектуры ект
SOA Асп ртов
танд
а
с
Описываемые WSDL Оркестрируемые с помощью BPEL
Основанные на JBI
15
16. Путеводитель по галактике SOA
Вы здесь
3. BPMN
2. BPEL
4. JBI
1. Введение 5. Ответ
на все вопросы
6. Demo
16
17. Необходимость бизнес процессов
• Недостаточно разрабатывать web-сервисы и
предоставлять функциональность
• Так же необходимо оркестрировать эти
функции в правильном порядке
• Пример:
> Web-сервис покупки билета на концерт состоит из 3
операций, которые должны быть выполнены в
следующем порядке:
> Получение цены билета
> Покупка билета
> Подтверждение и аннулирование
17
18. BPEL (Business Process Execution Language)
• Основанный на XML язык для определения бизнес
процессов, основанных на Web-сервисах
> Процессы языка BPEL описывают
> Длительные, имеющие состояния, поддерживающие
транзакции, диалоги между двумя и более сервисами
партнеров
> BPEL – это ключ к реализации Основных Правил
SOA
> Диалоговые
> В основном асинхронные
> Основанные на документах XML
> Оркестрируемые
> Описываемые WSDL
> Крупномодульные бизнес сервисы 18
19. BPEL и WSDL
• Web-сервисы описаны на WSDL
> Операции – это обмен сообщениями
> Каждая операция представляет отдельную
часть действия
• Необходим способ оркестрировать эти
операции с различными web-сервисами в
правильном порядке для выполнения бизнес
процесса
> Упорядоченное, обусловленное поведение и
т.п.
• BPEL предоставляет стандартизированный
способ оркестрирования этих операций 19
20. BPEL: взаимоотношения
партнеров
WSDL Сервис
инвентаризации
Сервис проверки
кредита
Сервис заказчика
Оркестрируемый процесс Сервис
(BPEL) другого партнера
20
21. BPEL: структура документа
<process>
<!– Definition and roles of process participants -->
<partnerLinks> ... </partnerLinks>
<!- Data/state used within the process -->
<variables> ... </variables>
<!- Properties that enable conversations -->
<correlationSets> ... </correlationSets>
<!- Exception handling -->
<faultHandlers> ... </faultHandlers>
<!- Error recovery – undoing actions -->
<compensationHandlers> ... </compensationHandlers>
<!- Concurrent events with process itself -->
<eventHandlers> ... </eventHandlers>
<!- Business process flow -->
(activities)*
</process>
21
22. BPEL: Действия
Основные действия Структурные действия
• <invoke> • <sequence>
• <receive> • <while>
• <reply> • <pick>
• <assign> • <flow>
• <throw> • <scope>
• <wait> • <compensate>
• <empty> • <switch>
• <link>
22
23. BPEL: Основные действия
• <invoke>
> Вызвать одностороннюю операцию или операцию
запрос/ответ на portType предлагаемый партнером
• <receive>
> Заблокировать и ожидать прихода подходящего
сообщения
> Может создавать новый экземпляр бизнес процесса
• <reply>
> Отправление сообщения в ответ на сообщение,
полученное в <receive>
> Сочетание <receive> и <reply> формирует операцию
запрос-ответ
23
24. BPEL: Основные действия
• <assign>
> Используется для изменения значений переменных
• <throw>
> Генерирует ошибку внутри бизнес процесса
• <wait>
> Ожидание в течение заданного периода времени
или до наступления определенного времени
• <empty>
> Позволяет вставить пустую команду в бизнес
процесс
> Полезно при синхронизации параллельных
действий
24
25. BPEL: структурные действия
• <sequence>
> Выполняет действия в последовательном порядке
• <flow>
> Выполняет действия параллельно
• <switch>
> Выбор действия в зависимости от условия
• <scope>
> Объединяет несколько действий
25
26. Пример бизнес процесса
Receive <PO> <sequence>
Invoke <InventoryService> Invoke <CreditService> <flow>
Reply <Invoice> </sequence>
26
27. BPEL – ответ на все вопрсы?
• Удобен в
> ...параллелизм
> ...длительные диалоги
> ...отправление и получение сообщений
> ...сложная логика решений
> ...обработка ошибок и компенсирующая логика
• Не так удобен
> ...при взаимодействовии с не Web-сервисами, не XML-
объектами, такими как
– Реляционные базы данных
– J2EE connectors и EJBs
– Объекты Java
> ... при выполнении сложных вычислений и проверок 27
28. Путеводитель по галактике SOA
3. BPMN
2. BPEL Вы здесь
4. JBI
1. Введение
5. Ответ
на все вопросы
6. Demo
28
29. BPMN
(Business Process Modeling Notation)
Писать на BPEL?
• BPEL – трудный
> Програмирование в XML: брррр!
> XML схема
> В действительности схемы громадны и сложны
> Сделай по-другому, если можешь
> Расширения WSDL
> Как будто WSDL не достаточно сбивает с толку?!
• BPEL – это только язык выполнения
> Не нотация моделирования
29
30. BPMN
(нотация моделирования бизнес процессов)
• Стандарт, разработанный Business Process
Management Initiative (BPMI)
> Версия 1.0 выпущена в 2004
• Нотацая для диаграмм бизнес процессов
> Основана на технике блок-схем (flowchart)
> Отдельно рассматривает Web-сервисы
> Без труда могут понять...
> Бизнес пользователи
> Бизнес аналисты
> Разработчики программного обеспечения
• Может быть отображена в BPEL
30
32. BPMN – ответ на все вопросы?
• BPMN – только нотация
> Определяет линии, формы и их аттрибуты
• Но, BPMN и BPEL взаимо дополняющие
> BPEL: язык выполнения без нотации
> BPMN: нотация с полным отображением в
BPEL
• Достаточно сложно перевести BPMN в
BPEL
32
33. Путеводитель по галактике SOA
3. BPMN
Вы здесь
2. BPEL
4. JBI
1. Введение 5. Ответ
на все вопросы
6. Demo
33
34. Что такое JBI (JSR-208)?
Java Business Integration – стандарт бизнес интеграции
● Одна из важнейших мотиваций для SOA –
уменьшение стоимости интеграции приложений
• Стандартная, подключаемая инфраструктура:
SPI (Service Provider Interface)
> Service Engines: предоставляют бизнес логику и
интеграцию сервисов
> Binding Components: предоставляют протоколы
взаимодействия
• Комбинированные, управляемые событиями
сервисы
• Слабая связанность с помощью механизма
обмена сообщениями WSDL 34
37. JBI – Service Engine
• Управляет сервисами реализующими бизнес
логику
• Предоставляет endpoints (точку в сети) для
сервисов
> Независим от протокола и транспорта
• Поддерживает шаблоны обмена сообщениями
> Нормализованный обмен сообщениями –
планируемый удаленный сервис
• Место для развертывания (установки) - контейнер
> Специфичные для движка елементы
> Может активировать точку для доступа к сервису
37
38. JBI – Binding Component
• Осуществляет переформатирование
сообщения, специфичное для протокола
> Занимается передачей сообщений
> Например: SOAP/HTTP, FTP, SMTP, JMS, ebMS,
AS2, и т.д.
• Не должен содержать бизнес логику
• Предоставляет прокси JBI-сервисов для
удаленных потребителей
• (Повторно)используется различными
движками (service engines)
38
39. Администрирование JBI
• Стандартная установка компонентов
> Переносимый формат архива
• Сборка Сервисов (Service Assembly –
SA)
> Переносимый пакет составного сервиса
• Service Unit (SU)
> Каждый SU разворачивается в компонент
определенного типа
• Управление жизненным циклом
> Старт/Стоп/Выключить
39
43. SOA Tool
NetBeans Enterprise
Pack 5.5
Быстрые архитектурные решенияof Services
Rapid Architecture and Design и
проектирование сервисов
44. Обзор
• Рассмотрим высокоуровневые возможности,
которые важны для построения промышленных
приложений... например...
> SOA
> Построение сложных приложений
> Оркестрирование бизнес процессов
> Интеграция
> Богатый возможностями визуальный XML Tools
> Управление жизненным циклом приложения
> Моделирование UML
> Управление проектами
> Автоматическая документация проекта на основе Wiki
44
46. Быстрые архитектурные решения и
проектирование сервисов SOA
Платформа
J2EE J2EE
1.5
Sun Java System
Application Server
XML
Переносимость
web Services данных
Переносимость
Sun Web Services
приложения Developer Pack
46
47. Визуальное оркестрирование
Сервисов
• Оркестрирование сервисов
> Моделирование бизнес процессов с помощью
Orchestration Designer
> Создание оркестрированного бизнес-процесса
(на основе BPEL), который может быть
развернут
> Синхронизация изменений в исходном коде
(BPEL) и визуальной модели
> Импортирование и экспортирование BPEL
47
51. Travel Reservation Service
• Сценарий составления плана поездки
> 1 сервис BPEL
> 3 сервиса партнеров
• Асинхронное взаимодействие
• Диалоговое взаимодействие
• Взаимодействие при помоощи обмена
документами
> Передача документа между партнерами
> Построен на корпоративном стандарте,
используемом в туристической индустрии:
Open Travel Authority (OTA)
> >800 KB ASCII текста, 282 страницы 51
52. Travel Reservation Service
Airline Service
(J2EE)
Vehicle Service
(J2EE)
Travel Client
Travel Reservation
Hotel Service
Service (BPEL)
(J2EE)
52
53. Travel Reservation Service
Демонстрационный сценарий
• Получаем предварительный план
поездки от клиента
• Если необходимо, заказываем
авиабилеты
• Получаем ответ от службы заказа
билетов
• Если необходимо, заказываем
прокат автомобиля
• Получаем ответ от службы проката
• Если необходимо, бронируем
номер в гостинице
• Получаем ответ от службы
бронирования гостиниц
• Возвращаем полностью
заполненный план поездки клиенту
53
55. Заключение
• SOA делает архитектуру корпоративного
приложения гибкой и подвижной
• JBI предоставляет SOA-инфраструктуру,
основанную на стандартах
• BPEL делает возможным оркестрирование
сервисов, основанное на стандартах
• Sun Java Studio Enterprise/NetBeans Enterprise
Pack 5.5 TPR – средство, используемое для
построения корпоративных приложений,
использующих SOA
55
56. Что делать?
• Попробуйте бесплатную Java Studio
Enterprise для создания промышленных Web-
сервисов
• Попробуйте версию NetBeans Enterprise Pack
5.5 Technology Preview Release для
интеграции integrating SOA-enabled services
• Присоединяйтесь к Sun Developer Network
(SDN), чтобы получать свежую информацию о
SOA
56
57. Sun Developer Network
Все для разработчика!
Увеличивает продуктивность http://developers.sun.com
разработки:
Технические статьи
Учебники и образцы кода
Экспертная поддержка
форумов
Поддержка user groups,
событий и конференций
И еще многое...
57