|
|
|||||||||||||||||||||||||||||
|
Преобразование в SOA: часть 4. Как Web-сервис в IBM Rational Software Architect обрабатывает преобразование из UML в BPELИсточник: IBM
Статья поясняет моделирование реализации процесса BPEL в UML. Унифицированный язык моделирования (Unified Modeling Language, UML) предоставляет удобную, хорошо понятную, документированную и часто используемую поддержку для моделирования прецедентов, совместной работы, данных, интерфейсов, классов, компонентов, взаимодействия, состояний и деятельности. Его можно использовать для создания прикладных моделей, которые можно преобразовать в архитектуры для различных платформ. Преобразование из UML в исполняемый язык бизнес-процессов (Business Process Execution Language, BPEL), которое называется UML-to-BPEL и которое описывает эта статья, преобразует артефакты UML в артефакты BPEL. Язык Business Process Execution Language for Web Services (BPEL4WS, или BPEL) - это стандарт на основе XML для создания спецификаций поведения бизнес-процессов, основанный на Web-сервисах. Он создан на базе языка определения Web-сервисов (Web Services Definition Language, WSDL) и определения схемы XML (XML Schema Definition, XSD). Преобразование из UML в BPEL может брать модели процессов, разработанные в средствах работы с UML (например, IBM Rational Software Architect или Rational Software Modeler), и преобразовывать их в корректные файлы BPEL, XSD и WSDL, что необходимо для реализации этих процессов. В настоящее время преобразование UML-to-BPEL, которое можно выполнить в IBM Rational Software Architect (7.0.0.5), не является отдельным преобразованием, т.е. вы не запускаете одно только преобразование. Вернее сказать, что оно выполняется с помощью преобразования UML-to-SOA, т.е. из UML в сервис-ориентированную архитектуру (service-oriented architecture, SOA), когда это необходимо. Rational Software Architect предоставляет много полезных инструментов, которые помогают архитектору программного обеспечения (ПО) проектировать систему. Преобразования из UML, например в XSD и в WSDL, доступны только в Rational Software Architect, и преобразование UML-to-BPEL использует это ПО для генерации артефактов XSD и WSDL. BPEL предоставляет нотацию XML и связанную с ней семантику для указания поведения бизнес-процессов на базе Web-сервисов. Процесс BPEL4WS определяется в терминах его взаимодействия с партнерами. Партнер может предоставлять сервисы для процесса, требовать сервисы у процесса или участвовать в двустороннем взаимодействии с процессом. Таким образом, язык BPEL обеспечивает интеграцию Web-сервисов. Он указывает порядок, в котором имеет смысл вызывать собрание сервисов, и он назначает ответственность за каждый из сервисов перед партнером. Его можно использовать как для указания общедоступных интерфейсов для партнеров, так и для описания исполняемых процессов. UML - это стандарт группы по управлению объектами (Object Management Group, OMG). Он предоставляет нотацию для визуального моделирования, которая полезна для проектирования и понимания сложных систем. У UML есть несколько значительных преимуществ.
UML широко используется при разработке объектно-ориентированного ПО. Этот язык также используется (с некоторыми настройками) для компонентного ПО, моделирования бизнес-процессов, моделирования сервисов и проектирования систем. Это позволяет применить широкий опыт использования UML для совершенствования технологий Web-сервисов. Преобразование в BPEL для Web-сервисов Преобразование UML-to-BPEL использует для генерации файла BPEL следующий подход.
Требования к преобразованию UML-to-BPEL должны учитывать процесс моделирования элемента UML Activity. Здесь необходимо сосредоточиться в основном на том, как преобразование UML-to-BPEL поддерживается в настоящее время в ПО Rational Software Architect версии 7.0.0.4, а также на некоторых ключевых требованиях моделирования в UML. Это необходимо для генерации артефактов BPEL. В данной статье используется пример модели, процесс заказа на покупку (Purchase Order Process). Он позволяет пояснить некоторые требования преобразования UML-to-BPEL при моделировании диаграммы действий (Activity diagram). В настоящее время процесс преобразования UML-to-BPEL не требует расширения или изменения языка UML, но при моделировании диаграммы действий необходимо иметь под рукой некоторые подробности. Подробное рассмотрение модели Purchase Order Process Рассмотрим подробнее пример процесса. Элемент UML OrderProcessor Component содержит четыре порта.
Элемент UML processPurchaseOrder Activity - это собственное поведение элемента OrderProcessor Component. Он представляет собой действие, которое предоставляет все необходимые детали реализации компонента. На рис. 1 показан элемент UML Activity, который является собственным поведением компонента OrderProcessor (UML Component). Компонент OrderProcessor ("Обработчик заказов") показан на рис. 2. Рисунок 1. processPurchaseOrder ("Обработка заказа на покупку"), элемент UML Activity Рисунок 2. OrderProcessor, элемент UML Component
Значения свойств устанавливаются следующим образом:
Элемент Activity должен иметь параметры, которые соответствуют параметрам в операции задания значений (спецификации) для Activity. Элемент Activity, показанный ранее на рис. 1, содержит три узла Activity Parameter ("Параметр действия"), которые представляют элемент customerInfo:
Примечание: Преобразование UML-to-BPEL генерирует действие BPEL Receive с двумя выходными параметрами, которые проиллюстрированы в листинге 1. Листинг 1. Действие BPEL Receive в процессе для элемента processPurchaseOrder
Есть три раздела действий (Invoicing, Shipping и Scheduling) в действии Receive ("Получение"), которые представляют каждый порт в элементе Component. Они представляют свойства каждого раздела, поскольку они установлены на соответствующие им порты в компоненте. Алгоритм управления начинается с узла initialNode в действии Receive и соединяется с узлом forkNode. Три элемента controlFlow начинаются из узла forkNode, и каждый из них соединяется с отдельным элементом Action. Это указывает, что при достижении алгоритмом управления узла forkNode произойдут различные последовательности действий. Преобразование UML-to-BPEL генерирует действие BPEL Flow и три последовательности BPEL в алгоритме. Алгоритм управления начинается с узла initialNode и соединяется с узлом forkNode. Три элемента controlFlow начинаются из узла forkNode, и каждый из них соединяется с элементом Action. Это указывает, что при достижении алгоритмом управления узла forkNode одновременно может выполняться несколько последовательностей действий. Преобразование UML-to-BPEL генерирует действие BPEL Flow и три последовательности BPEL в алгоритме. Давайте изучим первый алгоритм управления, исходящий из узла forkNode. Алгоритм соединяется с элементом Action под названием initiatePriceCalculation ("Инициация расчета цены") (действие Call Operation, "Обработка звонка"), и операция UML для этого действия устанавливается следующим образом:
Следовательно, объект Action содержит три элемента inputPin ("входной контакт"). Самый правый элемент inputPin - это targetInputPin (имя контакта пустое, поскольку действие является частью раздела действий). Первый и второй элементы inputPin указывают, что для операции, связанной с элементом Action, есть два входных параметра. Имя контакта должно представлять объект данных. Этот объект может быть именем элемента UML Variable (переменная UML), UML Property (свойство UML) или UML Parameter (параметр UML), который должен существовать в элементе UML Activity или UML Component. В нашей модели параметрами в элементе Activity являются customerInfo ("Информация о клиенте") и purchaseOrder ("Заказ на покупку"). Преобразование UML-to-BPEL генерирует действие BPEL Invoke с двумя входными параметрами, как показано в листинге 2. Листинг 2. Действие BPEL Invoke в процессе для initiatePriceCalculation
Алгоритм управления, исходящий из действия initiatePriceCalculation, соединяется с действием completePriceCalculation ("Полный расчет цены") (действие Call Operation) с помощью следующей установки для операции UML для элемента Action:
Элемент Action содержит два элемента inputPin (самый правый элемент inputPin - это targetInputPin, но его имя пустое, поскольку действие является частью раздела действий). Один элемент inputPin указывает, что для операции, связанной с элементом Action, есть один входной параметра. Имя элемента pin должно представлять объект данных. Этот объект может быть именем элемента UML Variable (переменная UML), UML Property (свойство UML) или UML Parameter (параметр UML), который должен существовать в элементе UML Activity или UML Component. В нашей модели shippingInfo ("Информация о поставке") - это свойство UML в элементе Component. Вы, возможно, заметили, что от действия requestShipping ("Запрос поставки") идет еще один входящий элемент управления. Он указывает, что действие completePriceCalculation должно быть выполнено перед завершением действия под названием requestShipping. Преобразование UML-to-BPEL генерирует действие BPEL Invoke с входным параметров, целевую ссылку BPEL для действия requestShipping, а также ссылку, которая будет установлена в качестве исходной ссылки BPEL в действии Invoke для действия requestShipping, которое можно увидеть в листинге 3. Листинг 3. Действие BPEL Invoke в процессе для completePriceCalculation
Исходящий из действия completePriceCalculation алгоритм управления соединен с действием processInvoice ("Обработка счета") (действие Accept Call, "Принять звонок"). Триггеры, которые исходят из этого действия, содержат один элемент CallEvent, со следующей установкой для связанной с ним операции:
Action содержит два элемента outputPins (самый правый элемент outputPin представляет свойство returnInforation для действия). Один элемент inputPin указывает, что для операции, связанной с действием, есть один входной параметр. Имя элемента pin должно представлять объект данных. Этот объект может быть именем элемента UML Variable (переменная UML), UML Property (свойство UML) или UML Parameter (параметр UML), который должен существовать в элементе UML Activity или UML Component. В нашем примере Invoice - это параметр в элементе Activity. Преобразование UML-to-BPEL генерирует действие BPEL Receive с выходным параметром. Две других последовательности алгоритма управления из узла forkNode обрабатываются сходным образом. В конце генерируется действие BPEL Reply, поскольку операция Activity::specification содержит возвращаемый параметр. (В нашем примере операция спецификации элемента Activity - это PurchaseOrderProcess::org::ordermanagement::Purchasing::processPurchaseOrder.) Она показана в листинге 4. Листинг 4. Действие BPEL Reply в процессе для элемента processPurchaseOrder
Листинг 5 демонстрирует полный файл BPEL, который генерируется преобразованием UML-to-BPEL для компонента orderProcessor. Листинг 5. Полный список генерируемых процессов BPEL
Интерпретация элементов UML преобразованием UML-to-BPEL Преобразование UML-to-BPEL использует определенную информацию из модели UML для генерации артефактов BPEL. Некорректная или неполная модель может генерировать ошибки или неправильные артефакты BPEL (или и то, и другое). Вы захотите этого избежать, конечно. Последующие таблицы призваны помочь вам понять ожидаемые результаты, которые последуют в результате различных действий преобразования. В табл. 1 перечислены элементы UML, которые поддерживает преобразование, и соответствующие конструкции или действия BPEL, которые это преобразование создает. Таблица 1. Элементы UML и результаты BPEL
Преобразование соединений UML Activity В табл. 2 перечислены типы соединений Activity, которые поддерживает преобразование, и соответствующие последовательности BPEL и ссылки, которые это преобразование создает. Таблица 2. Типы соединений UML Activity и соответствующие последовательности и ссылки BPEL
Преобразование узлов управления или решений В табл. 3 перечислены узлы управления или решений, которые поддерживает преобразование, и соответствующие выходные элементы BPEL, которые это преобразование создает. Таблица 3. Узлы управления или решений UML и выходные элементы BPEL
В табл. 4 перечислены узлы объектов, которые поддерживает преобразование, и соответствующие действия BPEL, которые это преобразование создает. Таблица 4. Узлы объектов UML и соответствующие действия BPEL
В табл. 5 перечислены узлы циклов, которые поддерживает преобразование, и соответствующие действия BPEL, которые это преобразование создает. Таблица 5. Элементы узлов циклов UML и генерируемые действия BPEL
Где получить более подробную информацию Теперь, когда вы поняли основы преобразования UML-to-BPEL и некоторые подробности того, как моделировать реализацию процесса BPEL в UML, вы, возможно, захотите прочитать некоторые статьи по этой тематике. Они перечислены в разделе Resources ("Ресурсы"), где можно найти готовые сценарии использования технологий. Ссылки по теме
|
|