soa strategy and architecture

59
1 SOA, BPEL, JBI: SOA, BPEL, JBI: Стратегия и Стратегия и Архитектура Архитектура Дмитрий Ширяев Дмитрий Ширяев http://developers.sun.com http://developers.sun.com Директор Директор Sun Microsystems, Inc. Sun Microsystems, Inc.

Upload: dmitri-shiryaev

Post on 22-May-2015

648 views

Category:

Technology


4 download

DESCRIPTION

SOA Strategy and Architecture

TRANSCRIPT

Page 1: SOA Strategy and Architecture

1

SOA, BPEL, JBI: SOA, BPEL, JBI: Стратегия и Стратегия и АрхитектураАрхитектура

Дмитрий ШиряевДмитрий Ширяевhttp://developers.sun.comhttp://developers.sun.comДиректорДиректорSun Microsystems, Inc.Sun Microsystems, Inc.

Page 2: SOA Strategy and Architecture

2

Путеводитель по галактике SOA

Вы здесь4. JBI

2. BPEL

3. BPMN

5. Ответ на все вопросы

1. Введение

6. Demo

Page 3: SOA Strategy and Architecture

3

Что такое SOA?

• Метод проектирования распределенных программных систем

• Не зависит от технологии• Философия SOA – слабая связанность (loose coupling)• Не путайте Web-сервисы и SOA

> Web-сервисы могут быть использованы для создания SOA> Tак же могут быть использованы CORBA, RMI, DCOM...> Различие – в акценте на слабую связанность

• Для большинства людей Web-сервисы – единственное проявление SOA

Page 4: SOA Strategy and Architecture

4

Определение SOA• Сервисно-ориентированная архитектура

(SOA) – это интегрированный подход к инфрастуктуре и проектированию программного обеспечения, использующий Web стандарты, для предоставления бизнес функций как сервисов

• Лучшая реализация SOA архитектуры – использование web-сервисов в качестве middleware технологии

Page 5: SOA Strategy and Architecture

5

Преимущества SOA• Гибкие Информационные Технологии

> Легко приспосабливаемые для изменяющихся потребностей бизнеса

• Быстрый вывод продукта на рынок> Повторное использование существуещего кода,

сведение к минимуму новой разработки• Управляемая бизнесом и процессами

> Новые возможности в бизнесе• Лучший возврат инвестиций (ROI)

> Использование существующих активов ИТ

Page 6: SOA Strategy and Architecture

6

Проблемы интеграцииКаналы

Provisioning

ПоставщикиВнутренние пользователиЗаказчикиПартнеры

InventoryBillingCRMLegacy

Информационные активы

$ $$

$$

$

$$

$$

$$

$

$

$ $$

• Негибкость инфраструктуры ИТ

• Сложность проектов интеграции

• Затраты на интеграцию

• Время вывода продукта на рынок

• Ограниченная гибкость партнерства

• Ограниченность EDI (электронный обмен данными)

Случайная

архитектура

Page 7: SOA Strategy and Architecture

7

Уровни SOA

Уровень процессов (Process Layer)

Уровень сервиса (Service Layer)

Уровень ресурсов (Resource Layer)

Уровень доступа (Access Layer)

Page 8: SOA Strategy and Architecture

8

Переход к SOAНе интегрированная

Интегрированная и разделяемая

Page 9: SOA Strategy and Architecture

9

Новый подход

• SOA – это совместные усилия ИТ и бизнеса

SOA

ИТ Бизнес

Определение уровня процессовПредоставление

уровня сервиса

Page 10: SOA Strategy and Architecture

10

Сценарий до эпохи SOA

Проверкабаланса

Проверка кредито-

способности

Данные кредитоспособности

партнера

Вычисление процентов

Кредитная карта Ипотека

Back-End

System

Back-End

System

Данные заказчика

Проверка кредито-

способности

Проверкабаланса

Данные заказчика

Данные кредитоспособности

партнера

Распознование обмана

Page 11: SOA Strategy and Architecture

11

Сценарий с использованием SOA

Повторно используемые сервисы

Кредитная карта Ипотека

Кредитные данные партера

Проверка кредито-

способности

Распознование обмана

Данные закачика

Сервис управления платежами

Трейдер-Сервис

Internet

Оплата счетов Акции

Паевые фонды

Вычисление процентов

Проверка баланса

Back-End System Back-End System

Сервис доступа

Сервис данных

заказчика

Кредит на машину

Page 12: SOA Strategy and Architecture

12

Основные правила архитектуры SOA

Документо-ориентированные Ассинхроные Диалоговые

Надежные Конфеденциальность/Идентификация

Использование политик

Оркестрируемые с помощью BPEL

Описываемые WSDL

Регистрация и поиск

Основанные на JBI

Крупномодульные сервисы

Page 13: SOA Strategy and Architecture

13

Основные правила архитектуры SOA

Крупномодульные сервисы Основанные на XML

Асинхронные Диалоговые

Page 14: SOA Strategy and Architecture

14

НадежныеКонфеденциальность/

Идентификация

Использование политик Регистрация и поиск

Основные правила архитектуры SOA Аспект

качества

Page 15: SOA Strategy and Architecture

15

Аспект

стандартов

Описываемые WSDL Оркестрируемые с помощью BPEL

Основные правила архитектуры SOA

Основанные на JBI

Page 16: SOA Strategy and Architecture

16

Путеводитель по галактике SOA

Вы здесь

4. JBI2. BPEL

3. BPMN

5. Ответ на все вопросы

1. Введение

6. Demo

Page 17: SOA Strategy and Architecture

17

Необходимость бизнес процессов

• Недостаточно разрабатывать web-сервисы и предоставлять функциональность

• Так же необходимо оркестрировать эти функции в правильном порядке

• Пример:> Web-сервис покупки билета на концерт состоит из 3

операций, которые должны быть выполнены в следующем порядке:> Получение цены билета> Покупка билета> Подтверждение и аннулирование

Page 18: SOA Strategy and Architecture

18

BPEL (Business Process Execution Language)• Основанный на XML язык для определения бизнес

процессов, основанных на Web-сервисах> Процессы языка BPEL описывают

> Длительные, имеющие состояния, поддерживающие транзакции, диалоги между двумя и более сервисами партнеров

> BPEL – это ключ к реализации Основных Правил SOA> Диалоговые> В основном асинхронные> Основанные на документах XML> Оркестрируемые> Описываемые WSDL> Крупномодульные бизнес сервисы

Page 19: SOA Strategy and Architecture

19

BPEL и WSDL• Web-сервисы описаны на WSDL

> Операции – это обмен сообщениями> Каждая операция представляет отдельную

часть действия• Необходим способ оркестрировать эти

операции с различными web-сервисами в правильном порядке для выполнения бизнес процесса> Упорядоченное, обусловленное поведение и

т.п.• BPEL предоставляет стандартизированный

способ оркестрирования этих операций

Page 20: SOA Strategy and Architecture

20

BPEL: взаимоотношения партнеров

Оркестрируемый процесс(BPEL)

Сервисинвентаризации

Сервис проверки кредита

Сервис другого партнера

Сервис заказчика

WSDL

Page 21: SOA Strategy and Architecture

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>

Page 22: SOA Strategy and Architecture

22

BPEL: Действия

Основные действия• <invoke>• <receive>• <reply>• <assign>• <throw>• <wait>• <empty>

Структурные действия• <sequence>• <while>• <pick>• <flow>• <scope>• <compensate>• <switch>• <link>

Page 23: SOA Strategy and Architecture

23

BPEL: Основные действия• <invoke>

> Вызвать одностороннюю операцию или операцию запрос/ответ на portType предлагаемый партнером

• <receive>> Заблокировать и ожидать прихода подходящего

сообщения> Может создавать новый экземпляр бизнес процесса

• <reply>> Отправление сообщения в ответ на сообщение,

полученное в <receive>> Сочетание <receive> и <reply> формирует операцию

запрос-ответ

Page 24: SOA Strategy and Architecture

24

BPEL: Основные действия• <assign>

> Используется для изменения значений переменных• <throw>

> Генерирует ошибку внутри бизнес процесса• <wait>

> Ожидание в течение заданного периода времени или до наступления определенного времени

• <empty>> Позволяет вставить пустую команду в бизнес

процесс> Полезно при синхронизации параллельных

действий

Page 25: SOA Strategy and Architecture

25

BPEL: структурные действия

• <sequence>> Выполняет действия в последовательном порядке

• <flow>> Выполняет действия параллельно

• <switch>> Выбор действия в зависимости от условия

• <scope>> Объединяет несколько действий

Page 26: SOA Strategy and Architecture

26

Пример бизнес процесса

Invoke <InventoryService> Invoke <CreditService>

Reply <Invoice>

Receive <PO> <sequence>

<flow>

</sequence>

Page 27: SOA Strategy and Architecture

27

BPEL – ответ на все вопрсы?• Удобен в

> ...параллелизм> ...длительные диалоги> ...отправление и получение сообщений> ...сложная логика решений> ...обработка ошибок и компенсирующая логика

• Не так удобен> ...при взаимодействовии с не Web-сервисами, не XML-

объектами, такими как– Реляционные базы данных– J2EE connectors и EJBs– Объекты Java

> ... при выполнении сложных вычислений и проверок

Page 28: SOA Strategy and Architecture

28

Путеводитель по галактике SOA

Вы здесь4. JBI

2. BPEL

3. BPMN

5. Ответ на все вопросы

1. Введение

6. Demo

Page 29: SOA Strategy and Architecture

29

Писать на BPEL?

BPMN (Business Process Modeling Notation)

• BPEL – трудный> Програмирование в XML: брррр!> XML схема

> В действительности схемы громадны и сложны> Сделай по-другому, если можешь

> Расширения WSDL> Как будто WSDL не достаточно сбивает с толку?!

• BPEL – это только язык выполнения> Не нотация моделирования

Page 30: SOA Strategy and Architecture

30

BPMN (нотация моделирования бизнес процессов)

• Стандарт, разработанный Business Process Management Initiative (BPMI)> Версия 1.0 выпущена в 2004

• Нотацая для диаграмм бизнес процессов> Основана на технике блок-схем (flowchart)> Отдельно рассматривает Web-сервисы> Без труда могут понять...

> Бизнес пользователи> Бизнес аналисты> Разработчики программного обеспечения

• Может быть отображена в BPEL

Page 31: SOA Strategy and Architecture

31

Визуальное оркестрирование сервисов

Page 32: SOA Strategy and Architecture

32

BPMN – ответ на все вопросы?

• BPMN – только нотация> Определяет линии, формы и их аттрибуты

• Но, BPMN и BPEL взаимо дополняющие> BPEL: язык выполнения без нотации> BPMN: нотация с полным отображением в

BPEL• Достаточно сложно перевести BPMN в

BPEL

Page 33: SOA Strategy and Architecture

33

Путеводитель по галактике SOA

Вы здесь

4. JBI2. BPEL

3. BPMN

5. Ответна все вопросы

1. Введение

6. Demo

Page 34: SOA Strategy and Architecture

34

Что такое JBI (JSR-208)?

● Одна из важнейших мотиваций для SOA – уменьшение стоимости интеграции приложений

• Стандартная, подключаемая инфраструктура: SPI (Service Provider Interface)> Service Engines: предоставляют бизнес логику и

интеграцию сервисов> Binding Components: предоставляют протоколы

взаимодействия

• Комбинированные, управляемые событиями сервисы

• Слабая связанность с помощью механизма обмена сообщениями WSDL

Java Business Integration – стандарт бизнес интеграции

Page 35: SOA Strategy and Architecture

35

JBI (JSR 208) – стандартизованная интеграция

Binding Components

Service Engines

Контейнер JBI (JVM)

Нормализованный обмен

сообщениями

SPI SPISOAP

FTP

REST

ebMS

BPEL

Route

Transform

Correlate

Маршрутизатор сообщений

Page 36: SOA Strategy and Architecture

36

Архитектура JBI

Page 37: SOA Strategy and Architecture

37

JBI – Service Engine• Управляет сервисами реализующими бизнес

логику• Предоставляет endpoints (точку в сети) для

сервисов> Независим от протокола и транспорта

• Поддерживает шаблоны обмена сообщениями> Нормализованный обмен сообщениями –

планируемый удаленный сервис• Место для развертывания (установки) - контейнер

> Специфичные для движка елементы> Может активировать точку для доступа к сервису

Page 38: SOA Strategy and Architecture

38

JBI – Binding Component

• Осуществляет переформатирование сообщения, специфичное для протокола> Занимается передачей сообщений> Например: SOAP/HTTP, FTP, SMTP, JMS, ebMS,

AS2, и т.д.• Не должен содержать бизнес логику• Предоставляет прокси JBI-сервисов для

удаленных потребителей• (Повторно)используется различными

движками (service engines)

Page 39: SOA Strategy and Architecture

39

Администрирование JBI

• Стандартная установка компонентов> Переносимый формат архива

• Сборка Сервисов (Service Assembly – SA)> Переносимый пакет составного сервиса

• Service Unit (SU) > Каждый SU разворачивается в компонент

определенного типа• Управление жизненным циклом

> Старт/Стоп/Выключить

Page 40: SOA Strategy and Architecture

40

JBI – Service Assembly Deployment

SA=Proxy Service

activity.xml

JBI.xml

transform.xslt

endpoint.xml

SU1

SU2

SU3

BPELEngine

XSLTEngine

SOAP/HTTPBinding

Page 41: SOA Strategy and Architecture

41

Путеводитель по галактике SOA

Вы здесь(наконец-то)

4. JBI2. BPEL

3. BPMN

5. Ответ на все вопросы

1. Введение

6. Demo

Page 42: SOA Strategy and Architecture

42

ToolsОтвет на все вопросы...

Page 43: SOA Strategy and Architecture

SOA ToolSOA ToolNetBeans EnterpriseNetBeans EnterprisePack 5.5Pack 5.5

Rapid Architecture and Design of ServicesБыстрые архитектурные решения и проектирование сервисов

Page 44: SOA Strategy and Architecture

44

Обзор• Рассмотрим высокоуровневые возможности,

которые важны для построения промышленных приложений... например...> SOA

> Построение сложных приложений> Оркестрирование бизнес процессов> Интеграция> Богатый возможностями визуальный XML Tools

> Управление жизненным циклом приложения> Моделирование UML> Управление проектами> Автоматическая документация проекта на основе Wiki

Page 45: SOA Strategy and Architecture

45

Потребности бизнесаПроектирование сложного сервиса

Page 46: SOA Strategy and Architecture

46

Быстрые архитектурные решения и проектирование сервисов

ПлатформаJ2EE J2EE

1.5

SOA

XMLweb Services

Переносимостьприложения

Переносимостьданных

Sun Web Services Developer Pack

Sun Java SystemApplication Server

Page 47: SOA Strategy and Architecture

47

Визуальное оркестрирование Сервисов• Оркестрирование сервисов

> Моделирование бизнес процессов с помощью Orchestration Designer

> Создание оркестрированного бизнес-процесса (на основе BPEL), который может быть развернут

> Синхронизация изменений в исходном коде (BPEL) и визуальной модели

> Импортирование и экспортирование BPEL

Page 48: SOA Strategy and Architecture

48

Визуальное оркестрирование сервисов

Page 49: SOA Strategy and Architecture

49

Путеводитель по галактике SOA

Вы здесь

4. JBI2. BPEL

3. BPMN

5. Ответна все вопросы

1. Введение

6. Demo

Page 50: SOA Strategy and Architecture

Demo:Demo:NetBeans EnterpriseNetBeans EnterprisePack 5.5 PreviewPack 5.5 Preview

Page 51: SOA Strategy and Architecture

51

Travel Reservation Service• Сценарий составления плана поездки

> 1 сервис BPEL > 3 сервиса партнеров

• Асинхронное взаимодействие• Диалоговое взаимодействие• Взаимодействие при помоощи обмена

документами> Передача документа между партнерами> Построен на корпоративном стандарте,

используемом в туристической индустрии: Open Travel Authority (OTA) > >800 KB ASCII текста, 282 страницы

Page 52: SOA Strategy and Architecture

52

Travel Reservation Service

Travel ReservationService (BPEL)

Airline Service(J2EE)

Vehicle Service(J2EE)

Hotel Service(J2EE)

Travel Client

Page 53: SOA Strategy and Architecture

53

Демонстрационный сценарий

Travel Reservation Service

• Получаем предварительный план поездки от клиента

• Если необходимо, заказываем авиабилеты

• Получаем ответ от службы заказа билетов

• Если необходимо, заказываем прокат автомобиля

• Получаем ответ от службы проката

• Если необходимо, бронируем номер в гостинице

• Получаем ответ от службы бронирования гостиниц

• Возвращаем полностью заполненный план поездки клиенту

Page 54: SOA Strategy and Architecture

ЗаключениеЗаключениеЧто делать?Что делать?Sun Developer NetworkSun Developer NetworkРесурсыРесурсы

Page 55: SOA Strategy and Architecture

55

Заключение• SOA делает архитектуру корпоративного

приложения гибкой и подвижной• JBI предоставляет SOA-инфраструктуру,

основанную на стандартах• BPEL делает возможным оркестрирование

сервисов, основанное на стандартах• Sun Java Studio Enterprise/NetBeans Enterprise

Pack 5.5 TPR – средство, используемое для построения корпоративных приложений, использующих SOA

Page 56: SOA Strategy and Architecture

56

Что делать?

• Попробуйте бесплатную Java Studio Enterprise для создания промышленных Web-сервисов

• Попробуйте версию NetBeans Enterprise Pack 5.5 Technology Preview Release для интеграции integrating SOA-enabled services

• Присоединяйтесь к Sun Developer Network (SDN), чтобы получать свежую информацию о SOA

Page 57: SOA Strategy and Architecture

57

Технические статьи

Sun Developer Network

http://developers.sun.com Увеличивает продуктивность разработки:

Все для разработчика!

Учебники и образцы кодаЭкспертная поддержка форумовПоддержка user groups, событий и конференций

И еще многое...

Page 58: SOA Strategy and Architecture

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/

Page 59: SOA Strategy and Architecture

Вопросы!Вопросы!