BPEL 프로세스에서 호출

Cúram 워크플로우 프로세스를 규정하는 BPEL 프로세스를 작성하는 과정에 대해서는 본 문서에서 다루지 않습니다. 하지만 각 워크플로우 프로세스 웹 서비스의 WSDL에는 BPEL 프로세스가 사용할 수 있는 정보가 포함되어 있습니다.

콜백 포트 유형
서비스 자체에서 구현하지 않는 Cúram 워크플로우 웹 서비스의 WSDL에는 포트 유형이 있습니다. 이 포트 유형의 이름은 프로세스 이름에 "Complete"라는 단어가 추가된 것입니다(예: <ProcessName>Complete).

구현되지 않은 포트 유형의 용도는 Cúram 워크플로우 웹 서비스가 규정하는 BPEL 프로세스를 통해 구현될 것으로 예상하는 웹 서비스 인터페이스를 정의하기 위해서입니다. 이 포트 유형은 프로세스 정의에 구성된 콜백 웹 서비스를 통해 구현되어야 합니다(프로세스 완료 콜백 참조).

그림 1. 콜백 포트 유형
<!--Implemented by the BPEL process-->
  <wsdl:portType name="SomeCuramWorkflowComplete">
    <wsdl:operation name="processCompleted">
      <wsdl:input message="intf:processCompletedRequest"
                  name="processCompletedRequest"/>
    </wsdl:operation>
  </wsdl:portType>
파트너 링크 유형
기술적으로 Cúram 워크플로우 프로세스가 BPEL 오케스트레이션된 프로세스에 참여하는 데 필요한 한 가지는 프로세스를 웹 서비스로 표시하는 것입니다. 하지만 파트너 링크와 관련된 포트 유형과 해당 포트 유형의 역할을 정의하여 BPEL 프로세스 개발자를 지원하도록 몇 가지 메타데이터를 추가할 수 있습니다.

BPEL 지정을 통해 WSDL 확장 메커니즘을 사용하여 파트너 링크에서 서비스를 호출할 수 있도록 WSDL에서 파트너 링크 유형을 정의할 수 있습니다. Cúram 워크플로우 웹 서비스에 생성된 WSDL은 각 역할을 수행하는 포트 유형을 지정하고 참여할 것으로 예상되는 파트너 링크 유형을 정의합니다.

그림 2. BPEL의 WSDL 확장
<!--Partner link type-->
  <partnerLinkType name="CuramWorkflowPartnerLink"
    xmlns="http://schemas.xmlsoap.org/ws/2003/05/partner-link/">
    <role name="curamService">
      <portType name="tns1:SomeCuramWorkflow"/>
    </role>
    <role name="partnerService">
      <portType name="tns1:SomeCuramWorkflowComplete"/>
    </role>
  </partnerLinkType>