Меню
Главная
Авторизация/Регистрация
 
Главная arrow Прочее arrow Проектирование сервисов для сервис-ориентированной архитектуры: сервисы online обработки заказа товаров с учетом кредитоспособности покупателя

Set

BPEL-процесс, как и любая другая web-служба, не обладает состоянием. И для того чтобы различать потоки событий от разных пользователей, чтобы определенное событие пришло именно для того документа заказа, для которого его отправил клиент, в BPEL предусмотрен набор идентификаторов, которые позволяют BPEL Engine'у различать экземпляры процессов (instances) и осуществлять маршрутизацию сообщений - это Correlation Sets.

Для данного процесса в качестве набора таких идентификаторов выступает идентификатор документа заказа (orderID). Наборы Correlation Set связываются с сообщениями, определенными в WSDL-документах web-службы для чего используются расширения языка BPEL для WSDL (файл properties.wsdl):

<bpws:property name="orderID" type="xsd:string"/>

<bpws:propertyAlias messageType="messages:cancelOrderMessage" part="orderID"

propertyName="tns:orderID" query="/webseller:cancelOrderID"/>

<bpws:propertyAlias messageType="messages:confirmOrderMessage" part="orderID"

propertyName="tns:orderID" query="/webseller:confirmOrderID"/>

Ссылка на объявленное свойство из BPEL-процесса:

<!-- Объявление набора -->

<correlationSets>

<correlationSet name="corellateOverOrderID" properties="cor:orderID"/>

</correlationSets>

<!-- Коррелирование событий по этому набору на примере события подтверждения заказа -->

<onMessage operation="confirmOrder" partnerLink="OrderProcessingLink"

portType="order-processing:WebSeller" variable="confirmOrderMessage">

<correlations>

<correlation initiate="yes" set="corellateOverOrderID"/>

</correlations>

<invoke inputVariable="deleteOrderMessage" name="DeleteOrder"

operation="deleteOrder" outputVariable="processVoidReply"

partnerLink="OrderStorageLink" portType="data:WebSellerDB"/>

</onMessage>

Обработка ошибок

В разработанном BPEL-процессе присутствуют два обработчика ошибок уровня процесса:

Глобальные обработчики ошибок BPEL-процесса WebSellerГлобальные обработчики ошибок BPEL-процесса WebSeller

Рисунок 7 Глобальные обработчики ошибок BPEL-процесса WebSeller

В случае возникновения ошибки с типом orderProcessingFault, необходимо удалить из БД ранее сохраненный заказ. Для этого в BPEL предусмотрена активность compensate, которая должна выполнить активность compensationHandler региона (Scope), переданного ей в качестве параметра. Такой обработчик объявлен в регионе ScopeOrder (см. Рисунок 4 Инициализация бизнес-процесса). Обработанные исключения выбрасываются на следующий уровень - клиенту, вызвавшему службу WebSeller.

 
< Предыдущая   СОДЕРЖАНИЕ   Следующая >
 
Предметы
Агропромышленность
Банковское дело
БЖД
Бухучет и аудит
География
Документоведение
Естествознание
Журналистика
Инвестирование
Информатика
История
Культурология
Литература
Логика
Логистика
Маркетинг
Математика, химия, физика
Медицина
Менеджмент
Недвижимость
Педагогика
Политология
Политэкономия
Право
Психология
Региональная экономика
Религиоведение
Риторика
Социология
Статистика
Страховое дело
Техника
Товароведение
Туризм
Философия
Финансы
Экология
Экономика
Этика и эстетика
Прочее