SOA Strategy and Architecture

Preview:

DESCRIPTION

SOA Strategy and Architecture

Citation preview

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/

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

Recommended