Бізнес-процеси і XML h2>
Пропонований
увазі читача матеріал завершує розгляд питань, піднятих у статтях
"Корпоративна сервісна шина -" бюджетні "підхід до вирішення
завдань інтеграції "і" Сервіс-орієнтована архітектура ".
Нагадаємо, мова йшла про новий інтеграційному підході - корпоративної сервісної
шині (ESB) - реалізація якого нерозривно пов'язана з концепцією
сервіс-орієнтованої архітектури (SOA). ESB - це шар проміжного
програмного забезпечення, призначеного для передачі даних між
додатками і системами через шинну архітектуру. Для опису систем і
додатків на рівні бізнес-процесів розроблено кілька специфікацій,
особливе місце серед яких займає мова BPEL4WS. Саме про це мовою і
розповідається в цій статті. p>
Трохи історії h2>
В
серпні 2002 року, усвідомивши складність звернення до Web-сервісів в синхронної і
асинхронної середовищах, корпорації BEA, IBM, Microsoft, SAP і Siebel в результаті
спільних зусиль розробили мову реалізації бізнес-процесів для Web-сервісів
(Business Process Execution Language for Web Services, скор. BPEL4WS або просто
BPEL). У квітні 2003 на розгляд міжнародної організації OASIS була
передана специфікація наступної версії цієї мови - BPEL4WS 1.1. На даний
момент специфікація BPEL опублікована на сайті IBM і OASIS. Варто відзначити, що
відмінності між редакціями 1.0 і 1.1 не носять принципового характеру. p>
Вступ h2>
Як
відомо, Web-сервіси - це автономні, модульні програми, призначені
для реалізації бізнес-процесів. Web-сервіси спираються на ряд галузевих
стандартів: WSDL (для опису), UDDI (для інформування та публікації) і SOAP
(для обміну повідомленнями). Ці специфікації не залежать від платформи і мови,
завдяки чому користувачі можуть пов'язувати різні компоненти з різних
організаційних структур. Проте, жоден з цих стандартів не
передбачає визначення бізнес-семантики Web-сервісів. Таким чином,
Web-сервіси опиняються ізольованими. Для вирішення цієї проблеми необхідно
з'єднати Web-сервіси та вказати, як їх спільно використовувати для реалізації
більш складної функціональності - як правило, для реалізації бізнес-процесів. p>
Мова
BPEL дозволяє визначати бізнес-процеси і те, як вони пов'язані з Web-сервісами,
а також, як бізнес-процеси використовують Web-сервіси для досягнення поставлених
задач і які Web-сервіси надаються бізнес-процесом. p>
Мова BPEL: основні поняття h2>
В
самому загальному вигляді BPEL можна визначити як мова, призначений для визначення
поведінки бізнес-процесів за допомогою Web-сервісів. p>
Дійсно,
за допомогою мови WSDL можна здійснювати інтеграцію в рамках лише двох моделей --
синхронного взаємодії без збереження стану обміну і асинхронних
взаємодій з обміном некоррелірованнимі повідомленнями. Мова BPEL дозволяє
використовувати Web-сервіси при послідовному однорангової (peer-to-peer)
обмін повідомленнями - як синхронних, так і асинхронних, причому зі збереженням
стану процесу, який може мати більшу тривалість за часом і
торкатися більш двох учасників. У результаті, ця специфікація значно
розширює можливості використання Web-сервісів для інтеграції систем,
додатків, систем B2B. p>
Мова
BPEL об'єднує можливості мови WSFL (Web services flow language, Мова
організації потоків Web-сервісів), розробленого компанією IBM, та мови XLANG,
який використовується в Microsoft BizTalk Server 2002. BPEL включає WSFL для підтримки
графооріентірованних процесів, а XLANG - для підтримки структурних конструкцій
для процесів. Таким чином, BPEL призначений для підтримки реалізації
бізнес-процесів будь-якої складності, а також для опису інтерфейсів
бізнес-процесів. Треба зазначити, що мова BPEL "нерозривно пов'язаний" з
специфікаціями WS-Coordination ( "Координація Web-сервісів") і
WS-Transaction ( "Транзакції Web-сервісів"), які були визначені
для спільного використання з BPEL і розроблені для координації транзакцій і
процесів. Так, у специфікації WS-Coordination описуються стандартні механізми
створення та реєстрації протоколів транзакцій, які координують виконання
розподілених операцій у середовищі Web-сервісів. За допомогою специфікації
WS-Transaction можна відстежувати успіх чи невдачу кожного окремого
скоординованого дії в бізнес-процесі, задавати гнучку модель
транзакцій, що забезпечує цілісність і надійність операцій в
розподіленої середовищі Web-сервісів і дозволяє бізнес-процесів обробляти
збої в ході виконання. p>
BPEL
можна розглядати як певний мова програмування, який "знаходиться
посередині "між декларативним і процедурним програмуванням. Як і в
будь-якій мові програмування, в BPEL визначені зарезервовані слова,
що перелічені нижче: p>
Виклик
операції за допомогою Web-сервісу (). p>
Очікування
зовнішнього повідомлення (). p>
Генерація
відповіді для вхідних/вихідних даних (). p>
Очікування
протягом деякого часу (). p>
Копіювання
даних між позиціями (). p>
Індикація
помилки або зіпсований ситуації (). p>
Зупинка
реалізації всього сервісу (). p>
Відсутність
дій (). p>
Визначення
послідовності виконання дій (). p>
Галуження
за допомогою оператора вибору (). p>
Визначення
циклу (). p>
Виконання
одного з кількох альтернативних маршрутів (). p>
Індикація
того, що крок повинен бути виконаний паралельно (). p>
Індикація
обробки помилкової логіки з допомогою і . p>
Оскільки
BPEL - це фактично діалект мови XML, скрипт BPEL можна створювати
"вручну", або, що, ймовірно, більш переважно,
скористатися одним з існуючих програмних інструментів для генерації
скриптів. p>
Скрипт
BPEL - це документ XML, який відповідає схемі BPEL. Він інтерпретується
під час виконання процесором BPEL, який виявляє ключові слова і
виконує відповідну обробку. p>
Наведені
вище команди BPEL також відомі як процеси (activity). Можливі два
різновиди опису процесів: p>
Виконувані
бізнес-процеси - процеси, які моделюють фактичне поведінка учасника
бізнес-взаємодії. p>
Бізнес-протоколи,
які, навпаки, використовують опису процесу для вказівки поведінки кожної
боку, задіяної в протоколі при обміні повідомленнями, без розкриття
внутрішньої поведінки. Описи процесу для бізнес-протоколу називаються
абстрактними процесами. p>
BPEL
можна використовувати для моделювання і абстрактного, і для виконання процесів,
тобто або для опису бізнес-процесу з метою моделювання або подання
(абстрактний процес), або для створення виконуваного бізнес-процесу. p>
Нарешті,
коректна і повна реалізація стандарту BPEL повинна підтримувати наступний
набір стандартів Web-сервісів: p>
WSDL 1.1 p>
XML Schema 1.0 p>
XPath 1.0 p>
WS-Addressing p>
UDDI
v2.0 p>
WS-Security
- Необов'язково, але вельми бажано. p>
Висновок h2>
Ряд
аналітиків, у тому числі і співробітники дослідницької компанії Gartner,
вважають, що мова BPEL є явним лідером серед специфікацій в області
управління Web-сервісами. Так, інші стандарти - як, наприклад, BPML (Business
Process Modeling Language, Мова моделювання бізнес-процесів), WSCI (Web
Service Choreography Interface, Інтерфейс взаємодії Web-сервісів), XPDL
(XML Process Definition Language, Мова опису процесів) і BTP (Business
Transaction Protocol, Протокол бізнес-транзакцій) - володіють технічними
достоїнствами, однак, не підтримуються більшістю постачальників і не визнані
авторитетними органами стандартизації. У зв'язку з цим в Gartner вважають, що в
2005 остаточна редакція специфікації BPEL стане основним галузевим
стандартом для організації потоків Web-сервісів (з ймовірністю 0.7). p>
Список літератури h2>
Клів
Фінкельштейн (Clive Finkelstein) "Корпорація: мови управління
бізнес-процесами, частина1 - BPEL "(The Enterprise: Business Process
Management Languages, Part 1: BPEL). p>
Френк
Лейманн (Frank Leymann), Дітер Роллер (Dieter Roller) "Побіжний огляд мови
BPEL4WS "(A quick overview of BPEL4WS) p>
Френк
Лейманн (Frank Leymann), Дітер Роллер (Dieter Roller) "Цілі специфікації
мови BPEL4WS "(" Goals of the BPEL4WS Specification. "). p>
Матеріали,
опубліковані на сайті Консорціуму з інтеграції (Integration Consortium). p>
Специфікація
"Мова реалізації бізнес-процесів для Web-сервісів, версія 1.1"
(Business Process Execution Language for Web Services, Version 1.1). p>
Для
підготовки даної роботи були використані матеріали з сайту http://citcity.ru/
p>