Компания IBM
Опубликован: 14.08.2008 | Доступ: свободный | Студентов: 1090 / 150 | Оценка: 4.75 / 3.75 | Длительность: 27:55:00
Лекция 10:

Реализация. Создание процесса Request External Reports

10.4.3 Конфигурирование ссылок на партнеров

Следующая задача – правильно назначить процессу и партнерам роли, относящиеся к ссылке на партнера, обеспечить правильный выбор типов портов и действий и выделение входных и выходных переменных для передачи входящих и исходящих сообщений для службы. На рис. 10.16 показаны взаимосвязи между BPEL-процессом, интерфейсом Web-службы и EJB-реализацией.

WSDL описывает интерфейс EJB-компонента, вызываемого из BPEL-процесса

увеличить изображение
Рис. 10.16. WSDL описывает интерфейс EJB-компонента, вызываемого из BPEL-процесса
Роли

При назначении процессу нужного количества ролей и ссылок на партнеров представляйте себе взаимосвязь между процессом и партнером как сеанс связи. Если в таком сеансе есть только один участник, то нужно выделять одну роль. Это относится и к взаимосвязи запрос/ответ, которая соответствует SOAP-сообщению типа запрос/ответ. С другой стороны, если существуют два участника сеанса связи, подобно обмену вопросами и ответами по голосовой почте, то используются два односторонних SOAP-сообщения, обмен которыми происходит асинхронно. Также возможна односторонняя связь, которая похожа на ситуацию, когда на голосовой почте оставляется сообщение, а ответ не ожидается.

В нашем решении для работы с внешними оценщиками есть несколько связей типа запрос/ответ и несколько односторонних связей. У нас нет сеансов связи, в которых участвуют две роли. Это может показаться удивительным, поскольку у нас есть три асинхронных сообщения, но в каждом случае новый сеанс начинается с предыдущего запроса/ответа. Продолжая аналогию с телефоном, это похоже на запрос информации, которую кто-то собирает, а потом, позже, оставляет для вас сообщение.

Когда мы решили, что для каждого типа ссылки на партнера выделяется одна роль, следующий вопрос, будет ли роль принадлежать процессу или партнеру. Определить принадлежность данной роли можно простым вопросом: кто (что) осуществляет обслуживание? Если обслуживание осуществляет процесс, то роль относится к процессу. Если обслуживание выполняет партнер, то роль принадлежит партнеру.

Конфигурирование ссылок

Легче всего сделать это при помощи представления Outline (Общий обзор). Нажимайте по очереди на ссылки на партнеров в верхней части представления.

  1. Для каждой ссылки, соответствующей ситуации, когда процесс играет роль сервера, убедитесь, что в поле Partners Role Name (Имя роли партнера) указано -- None -- (Нет) на закладке Implementation (Реализация) редактора свойств ( рис. 10.17). Существует четыре ссылки, которым нужно назначить имя роли процесса (Process Role Name).
    Конфигурирование процесса RequestExternalReports

    увеличить изображение
    Рис. 10.17. Конфигурирование процесса RequestExternalReports
  2. Проверьте тип ссылки, имя роли и тип порта для других ссылок, выделяя их в представлении Outline.

10.4.4 Конфигурирование операций

Раскройте категорию Flow (Поток) в представлении Outline (Общий обзор) и выделяйте по очереди каждую операцию.

Для каждой операции на закладке Implementation (Реализация) проверьте правильность типа порта, операции, выбранные входные и выходные переменные и создайте все пропущенные переменные.

  1. Для принимающей операции RequestExternalReports должен быть установлен флажок Create a new Process instance if one does not already exist (Создавать новый экземпляр процесса, если он еще не существует). Это первая операция процесса, и она создает новый экземпляр процесса каждый раз, когда обрабаты- вается новая претензия.
  2. В только что созданной нами принимающей операции AllocateAssessorResponse нам нужно создать новую переменную-запрос с именем AssessorConfirmationResponse. В данном случае флажок Create a new Process (Создавать новый экземпляр) остается неустановленным, поскольку процесс Automated Assessor был блокирован в ожидании ответа. Он продолжает работу при получении ответа ( рис. 10.18).
Создание переменной Request в операции AllocateAssessorResponse

увеличить изображение
Рис. 10.18. Создание переменной Request в операции AllocateAssessorResponse

Повторите эти шаги для операции AssessorAvailabilityReceive.

Добавьте выходную переменную OutputCriteraVariable в операцию RequestExternalReports Reply.

Конфигурация операций должна соответствовать той, которая приведена в табл. 10.2. Есть несколько пропущенных переменных, поэтому изучите таблицу внимательно.

Таблица 10.2. Настройка ссылок на партнеров, типов портов, операций и имен переменных
Flow Имя операции в Assessor Automation Название типа порта Переменная запроса
Имя ссылки на партнера Имена действий Переменные ответа
1a RequestExternalReportsReceive RequestExternalReportProcess InputCriteriaVariable
RequestExternalReportsProcess RequestExternalReport OutputCriteriaVariable
2 IdentifyAssessors AssessorManagement IdentifyAssessorsInputCriteria Variable
AssessorManagement requestListAssessors IdentifyAssessorsOutputCriteriaVariable
24Данная ссылка на партнера делится на отдельные операции отправки и получения, расположенные в начале и в конце потока. ResponseTimePolicy RequestResponseTime PT ResponseTimeBasedOnPolicy InputCriterionVariable
RequestResponseTime PT requestResponseTime ResponseTimeBasedOnPolicy OutputCriterionVariable
3 RequestAvailability AssessorAvailability RequestAvailabilityInputCriteriaVariable
AssessorAvailablity requestAssessor Availability RequestAvailabilityOutputCriteriaVariable
35Данная ссылка на партнера делится на отдельные операции отправки и получения, расположенные в начале и в конце потока. AssessorAvailabilityReceive AssessorAvailabilityList
AssessorAvailabilityLis availableAssessorsList
5 SelectAssessors PreferredAssessor SelectAssessorInputCriteria Variable
PreferredAssessor selectAssessor SelectAssessorOutputCriteria Variable
6 RequestAssessment AllocateAssessmentRequest RequestAssessmentInputCriteriaVariable
AllocateAssessment Request actionAssessor RequestAssessmentOutputCriteriaVariable
6a AllocateAssessorResponse AllocateAssessorResponse AssessorConfirmationResponse
AllocateAssessorResponse assessorConfirmationRequest
9 AssessorSendReport AssessorReport AssessorSendReportOutput CriteriaVariable
AssessorReport receiveAssessorReportRequest
10 StoreReport StoreAssessorReport StoreReportInputCriteriaVariable
StoreAssessorReport storeAssessorReportURL StoreReportOutputCriteriaVariable

10.4.5 Конфигурирование типов входных и выходных переменных

Следующий этап – это связывание определений сообщений с переменными запроса и ответа, относящимися к операциям. В табл. 10.3 перечислены сообщения, которые нужно связать с переменными. Чтобы связать сообщения с переменными, выделяйте переменные в представлении Outline (Общий обзор) и переходите на закладку Message (Сообщение) редактора свойств. Находите нужный WSDL-файл и выбирайте нужное сообщение, как показано на рис. 10.19.

Связывание сообщений с переменными

увеличить изображение
Рис. 10.19. Связывание сообщений с переменными
Таблица 10.3. Переменные и связанные с ними сообщения
Поток WSDL-файл Переменные запроса и ответа Сообщение
1 ExternalClaimAsse ssors.wsdl InputCriteriaVariable RequestExternalReportsRequest
OutputCriteriaVariable requestAssessorResponseMessage
2 AssessorManagement(2).wsdl IdentifyAssessorsInputCriteriaVariable requestListAssessorsRequest
IdentifyAssessorsOutputCriteriaVariable requestListAssessorsResponse
2a RequestResponseTimePT(2a).wsdl ResponseTimeBasedOnPolicy InputCriterionVariable requestResponseTimeRequest
ResponseTimeBasedOnPolicy OutputCriterionVariable requestResponseTimeResponse
3 AssessorAvailabilit y(3).wsdl RequestAvailabilityInputCriteriaVariable requestAssessorAvailabilityRequest
RequestAvailabilityOutput CriteriaVariable requestAssessorAvailabilityResponse
3a AssessorAvailablityList(3a).wsdl ListOfAvailableAssessors AvailableAssessorsList
5 PreferredAssessor (5).wsdl SelectAssessorInputCriteriaVariable selectAssessorRequest
SelectAssessorOutputCriteriaVariable selectAssessorResponse
6 AllocateAssessmentReport(6).wsdl RequestAssessmentInputCriteriaVariable actionAssessorRequest
RequestAssessmentOutputCriteriaVariable actionAssessorResponse
6a AllocateAssessorReponse(6a).wsdl AssessorConfirmationResponse AssessorConfirmationRequest
9 AssesorReport(9) AssessorSendReportOutputCriteriaVariable receiveAssessorReportRequest
10 StoreAssessmentReport(10).wsdl StoreReportInputCriteriaVariable storeAssessorReportURLRequest
StoreReportOutputCriteriaVariable storeAssessorReportURLResponse
Надежда Белякова
Надежда Белякова
Россия
Pavel Pelevin
Pavel Pelevin
Украина, Одесса