soa strategy and architecture
DESCRIPTION
SOA Strategy and ArchitectureTRANSCRIPT
1
SOA, BPEL, JBI: SOA, BPEL, JBI: Стратегия и Стратегия и АрхитектураАрхитектура
Дмитрий ШиряевДмитрий Ширяевhttp://developers.sun.comhttp://developers.sun.comДиректорДиректорSun Microsystems, Inc.Sun Microsystems, Inc.
2
Путеводитель по галактике SOA
Вы здесь4. JBI
2. BPEL
3. BPMN
5. Ответ на все вопросы
1. Введение
6. Demo
3
Что такое SOA?
• Метод проектирования распределенных программных систем
• Не зависит от технологии• Философия SOA – слабая связанность (loose coupling)• Не путайте Web-сервисы и SOA
> Web-сервисы могут быть использованы для создания SOA> Tак же могут быть использованы CORBA, RMI, DCOM...> Различие – в акценте на слабую связанность
• Для большинства людей Web-сервисы – единственное проявление SOA
4
Определение SOA• Сервисно-ориентированная архитектура
(SOA) – это интегрированный подход к инфрастуктуре и проектированию программного обеспечения, использующий Web стандарты, для предоставления бизнес функций как сервисов
• Лучшая реализация SOA архитектуры – использование web-сервисов в качестве middleware технологии
5
Преимущества SOA• Гибкие Информационные Технологии
> Легко приспосабливаемые для изменяющихся потребностей бизнеса
• Быстрый вывод продукта на рынок> Повторное использование существуещего кода,
сведение к минимуму новой разработки• Управляемая бизнесом и процессами
> Новые возможности в бизнесе• Лучший возврат инвестиций (ROI)
> Использование существующих активов ИТ
6
Проблемы интеграцииКаналы
Provisioning
ПоставщикиВнутренние пользователиЗаказчикиПартнеры
InventoryBillingCRMLegacy
Информационные активы
$ $$
$$
$
$$
$$
$$
$
$
$ $$
• Негибкость инфраструктуры ИТ
• Сложность проектов интеграции
• Затраты на интеграцию
• Время вывода продукта на рынок
• Ограниченная гибкость партнерства
• Ограниченность EDI (электронный обмен данными)
Случайная
архитектура
7
Уровни SOA
Уровень процессов (Process Layer)
Уровень сервиса (Service Layer)
Уровень ресурсов (Resource Layer)
Уровень доступа (Access Layer)
8
Переход к SOAНе интегрированная
Интегрированная и разделяемая
9
Новый подход
• SOA – это совместные усилия ИТ и бизнеса
SOA
ИТ Бизнес
Определение уровня процессовПредоставление
уровня сервиса
10
Сценарий до эпохи SOA
Проверкабаланса
Проверка кредито-
способности
Данные кредитоспособности
партнера
Вычисление процентов
Кредитная карта Ипотека
Back-End
System
Back-End
System
Данные заказчика
Проверка кредито-
способности
Проверкабаланса
Данные заказчика
Данные кредитоспособности
партнера
Распознование обмана
11
Сценарий с использованием SOA
Повторно используемые сервисы
Кредитная карта Ипотека
Кредитные данные партера
Проверка кредито-
способности
Распознование обмана
Данные закачика
Сервис управления платежами
Трейдер-Сервис
Internet
Оплата счетов Акции
Паевые фонды
Вычисление процентов
Проверка баланса
Back-End System Back-End System
Сервис доступа
Сервис данных
заказчика
Кредит на машину
12
Основные правила архитектуры SOA
Документо-ориентированные Ассинхроные Диалоговые
Надежные Конфеденциальность/Идентификация
Использование политик
Оркестрируемые с помощью BPEL
Описываемые WSDL
Регистрация и поиск
Основанные на JBI
Крупномодульные сервисы
13
Основные правила архитектуры SOA
Крупномодульные сервисы Основанные на XML
Асинхронные Диалоговые
14
НадежныеКонфеденциальность/
Идентификация
Использование политик Регистрация и поиск
Основные правила архитектуры SOA Аспект
качества
15
Аспект
стандартов
Описываемые WSDL Оркестрируемые с помощью BPEL
Основные правила архитектуры SOA
Основанные на JBI
16
Путеводитель по галактике SOA
Вы здесь
4. JBI2. BPEL
3. BPMN
5. Ответ на все вопросы
1. Введение
6. Demo
17
Необходимость бизнес процессов
• Недостаточно разрабатывать web-сервисы и предоставлять функциональность
• Так же необходимо оркестрировать эти функции в правильном порядке
• Пример:> Web-сервис покупки билета на концерт состоит из 3
операций, которые должны быть выполнены в следующем порядке:> Получение цены билета> Покупка билета> Подтверждение и аннулирование
18
BPEL (Business Process Execution Language)• Основанный на XML язык для определения бизнес
процессов, основанных на Web-сервисах> Процессы языка BPEL описывают
> Длительные, имеющие состояния, поддерживающие транзакции, диалоги между двумя и более сервисами партнеров
> BPEL – это ключ к реализации Основных Правил SOA> Диалоговые> В основном асинхронные> Основанные на документах XML> Оркестрируемые> Описываемые WSDL> Крупномодульные бизнес сервисы
19
BPEL и WSDL• Web-сервисы описаны на WSDL
> Операции – это обмен сообщениями> Каждая операция представляет отдельную
часть действия• Необходим способ оркестрировать эти
операции с различными web-сервисами в правильном порядке для выполнения бизнес процесса> Упорядоченное, обусловленное поведение и
т.п.• BPEL предоставляет стандартизированный
способ оркестрирования этих операций
20
BPEL: взаимоотношения партнеров
Оркестрируемый процесс(BPEL)
Сервисинвентаризации
Сервис проверки кредита
Сервис другого партнера
Сервис заказчика
WSDL
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>
22
BPEL: Действия
Основные действия• <invoke>• <receive>• <reply>• <assign>• <throw>• <wait>• <empty>
Структурные действия• <sequence>• <while>• <pick>• <flow>• <scope>• <compensate>• <switch>• <link>
23
BPEL: Основные действия• <invoke>
> Вызвать одностороннюю операцию или операцию запрос/ответ на portType предлагаемый партнером
• <receive>> Заблокировать и ожидать прихода подходящего
сообщения> Может создавать новый экземпляр бизнес процесса
• <reply>> Отправление сообщения в ответ на сообщение,
полученное в <receive>> Сочетание <receive> и <reply> формирует операцию
запрос-ответ
24
BPEL: Основные действия• <assign>
> Используется для изменения значений переменных• <throw>
> Генерирует ошибку внутри бизнес процесса• <wait>
> Ожидание в течение заданного периода времени или до наступления определенного времени
• <empty>> Позволяет вставить пустую команду в бизнес
процесс> Полезно при синхронизации параллельных
действий
25
BPEL: структурные действия
• <sequence>> Выполняет действия в последовательном порядке
• <flow>> Выполняет действия параллельно
• <switch>> Выбор действия в зависимости от условия
• <scope>> Объединяет несколько действий
26
Пример бизнес процесса
Invoke <InventoryService> Invoke <CreditService>
Reply <Invoice>
Receive <PO> <sequence>
<flow>
</sequence>
27
BPEL – ответ на все вопрсы?• Удобен в
> ...параллелизм> ...длительные диалоги> ...отправление и получение сообщений> ...сложная логика решений> ...обработка ошибок и компенсирующая логика
• Не так удобен> ...при взаимодействовии с не Web-сервисами, не XML-
объектами, такими как– Реляционные базы данных– J2EE connectors и EJBs– Объекты Java
> ... при выполнении сложных вычислений и проверок
28
Путеводитель по галактике SOA
Вы здесь4. JBI
2. BPEL
3. BPMN
5. Ответ на все вопросы
1. Введение
6. Demo
29
Писать на BPEL?
BPMN (Business Process Modeling Notation)
• BPEL – трудный> Програмирование в XML: брррр!> XML схема
> В действительности схемы громадны и сложны> Сделай по-другому, если можешь
> Расширения WSDL> Как будто WSDL не достаточно сбивает с толку?!
• BPEL – это только язык выполнения> Не нотация моделирования
30
BPMN (нотация моделирования бизнес процессов)
• Стандарт, разработанный Business Process Management Initiative (BPMI)> Версия 1.0 выпущена в 2004
• Нотацая для диаграмм бизнес процессов> Основана на технике блок-схем (flowchart)> Отдельно рассматривает Web-сервисы> Без труда могут понять...
> Бизнес пользователи> Бизнес аналисты> Разработчики программного обеспечения
• Может быть отображена в BPEL
31
Визуальное оркестрирование сервисов
32
BPMN – ответ на все вопросы?
• BPMN – только нотация> Определяет линии, формы и их аттрибуты
• Но, BPMN и BPEL взаимо дополняющие> BPEL: язык выполнения без нотации> BPMN: нотация с полным отображением в
BPEL• Достаточно сложно перевести BPMN в
BPEL
33
Путеводитель по галактике SOA
Вы здесь
4. JBI2. BPEL
3. BPMN
5. Ответна все вопросы
1. Введение
6. Demo
34
Что такое JBI (JSR-208)?
● Одна из важнейших мотиваций для SOA – уменьшение стоимости интеграции приложений
• Стандартная, подключаемая инфраструктура: SPI (Service Provider Interface)> Service Engines: предоставляют бизнес логику и
интеграцию сервисов> Binding Components: предоставляют протоколы
взаимодействия
• Комбинированные, управляемые событиями сервисы
• Слабая связанность с помощью механизма обмена сообщениями WSDL
Java Business Integration – стандарт бизнес интеграции
35
JBI (JSR 208) – стандартизованная интеграция
Binding Components
Service Engines
Контейнер JBI (JVM)
Нормализованный обмен
сообщениями
SPI SPISOAP
FTP
REST
ebMS
BPEL
Route
Transform
Correlate
Маршрутизатор сообщений
36
Архитектура JBI
37
JBI – Service Engine• Управляет сервисами реализующими бизнес
логику• Предоставляет endpoints (точку в сети) для
сервисов> Независим от протокола и транспорта
• Поддерживает шаблоны обмена сообщениями> Нормализованный обмен сообщениями –
планируемый удаленный сервис• Место для развертывания (установки) - контейнер
> Специфичные для движка елементы> Может активировать точку для доступа к сервису
38
JBI – Binding Component
• Осуществляет переформатирование сообщения, специфичное для протокола> Занимается передачей сообщений> Например: SOAP/HTTP, FTP, SMTP, JMS, ebMS,
AS2, и т.д.• Не должен содержать бизнес логику• Предоставляет прокси JBI-сервисов для
удаленных потребителей• (Повторно)используется различными
движками (service engines)
39
Администрирование JBI
• Стандартная установка компонентов> Переносимый формат архива
• Сборка Сервисов (Service Assembly – SA)> Переносимый пакет составного сервиса
• Service Unit (SU) > Каждый SU разворачивается в компонент
определенного типа• Управление жизненным циклом
> Старт/Стоп/Выключить
40
JBI – Service Assembly Deployment
SA=Proxy Service
activity.xml
JBI.xml
transform.xslt
endpoint.xml
SU1
SU2
SU3
BPELEngine
XSLTEngine
SOAP/HTTPBinding
41
Путеводитель по галактике SOA
Вы здесь(наконец-то)
4. JBI2. BPEL
3. BPMN
5. Ответ на все вопросы
1. Введение
6. Demo
42
ToolsОтвет на все вопросы...
SOA ToolSOA ToolNetBeans EnterpriseNetBeans EnterprisePack 5.5Pack 5.5
Rapid Architecture and Design of ServicesБыстрые архитектурные решения и проектирование сервисов
44
Обзор• Рассмотрим высокоуровневые возможности,
которые важны для построения промышленных приложений... например...> SOA
> Построение сложных приложений> Оркестрирование бизнес процессов> Интеграция> Богатый возможностями визуальный XML Tools
> Управление жизненным циклом приложения> Моделирование UML> Управление проектами> Автоматическая документация проекта на основе Wiki
45
Потребности бизнесаПроектирование сложного сервиса
46
Быстрые архитектурные решения и проектирование сервисов
ПлатформаJ2EE J2EE
1.5
SOA
XMLweb Services
Переносимостьприложения
Переносимостьданных
Sun Web Services Developer Pack
Sun Java SystemApplication Server
47
Визуальное оркестрирование Сервисов• Оркестрирование сервисов
> Моделирование бизнес процессов с помощью Orchestration Designer
> Создание оркестрированного бизнес-процесса (на основе BPEL), который может быть развернут
> Синхронизация изменений в исходном коде (BPEL) и визуальной модели
> Импортирование и экспортирование BPEL
48
Визуальное оркестрирование сервисов
49
Путеводитель по галактике SOA
Вы здесь
4. JBI2. BPEL
3. BPMN
5. Ответна все вопросы
1. Введение
6. Demo
Demo:Demo:NetBeans EnterpriseNetBeans EnterprisePack 5.5 PreviewPack 5.5 Preview
51
Travel Reservation Service• Сценарий составления плана поездки
> 1 сервис BPEL > 3 сервиса партнеров
• Асинхронное взаимодействие• Диалоговое взаимодействие• Взаимодействие при помоощи обмена
документами> Передача документа между партнерами> Построен на корпоративном стандарте,
используемом в туристической индустрии: Open Travel Authority (OTA) > >800 KB ASCII текста, 282 страницы
52
Travel Reservation Service
Travel ReservationService (BPEL)
Airline Service(J2EE)
Vehicle Service(J2EE)
Hotel Service(J2EE)
Travel Client
53
Демонстрационный сценарий
Travel Reservation Service
• Получаем предварительный план поездки от клиента
• Если необходимо, заказываем авиабилеты
• Получаем ответ от службы заказа билетов
• Если необходимо, заказываем прокат автомобиля
• Получаем ответ от службы проката
• Если необходимо, бронируем номер в гостинице
• Получаем ответ от службы бронирования гостиниц
• Возвращаем полностью заполненный план поездки клиенту
ЗаключениеЗаключениеЧто делать?Что делать?Sun Developer NetworkSun Developer NetworkРесурсыРесурсы
55
Заключение• SOA делает архитектуру корпоративного
приложения гибкой и подвижной• JBI предоставляет SOA-инфраструктуру,
основанную на стандартах• BPEL делает возможным оркестрирование
сервисов, основанное на стандартах• Sun Java Studio Enterprise/NetBeans Enterprise
Pack 5.5 TPR – средство, используемое для построения корпоративных приложений, использующих SOA
56
Что делать?
• Попробуйте бесплатную Java Studio Enterprise для создания промышленных Web-сервисов
• Попробуйте версию NetBeans Enterprise Pack 5.5 Technology Preview Release для интеграции integrating SOA-enabled services
• Присоединяйтесь к Sun Developer Network (SDN), чтобы получать свежую информацию о SOA
57
Технические статьи
Sun Developer Network
http://developers.sun.com Увеличивает продуктивность разработки:
Все для разработчика!
Учебники и образцы кодаЭкспертная поддержка форумовПоддержка user groups, событий и конференций
И еще многое...
58
Resources• SDN (Sun Developer Network)
SOA/WebServices> http://java.sun.com/reference/soawebservices/
• Java Studio Enterprise> http://developers.sun.com/prodtech/javatools/jsent
erprise/• NetBeans Enterprise Pack 5.5
> http://developers.sun.com/prodtech/javatools/jsenterprise/tpr/
Вопросы!Вопросы!