비즈니스 프로세스 및 서비스 간 데이터 교환

비즈니스 프로세스는 SCA(Service Component Architecture) 서비스를 이용하거나 또는 다른 SCA 서비스에 의해 이용될 수 있습니다. WSDL(Web Services Description Language) 메시지 데이터를 이용하는 방법은 SCA 서비스 간에 교환되며 프로세스를 모델링하는 방법에 따라 프로세스가 서로 다릅니다.

서비스를 이용하는 비즈니스 프로세스

비즈니스 프로세스에서 서비스의 이용은 프로세스 모델의 BPEL(Business Process Execution Language) 호출 활동을 사용하여 구현됩니다. SCA 서비스에 전달되는 데이터는 하나 이상의 BPEL 변수로부터 검색합니다. 일반적으로 데이터는 값에 의해 전달되며, 이는 호출된 서비스가 데이터의 사본에 대해 작업함을 의미합니다.

특정 상황에서 데이터는 참조에 의해 전달될 수 있습니다. 참조별로 데이터를 전달하면 비즈니스 프로세스의 성능을 개선할 수 있습니다.

다음 조건이 모두 일치할 경우, 데이터는 참조에 의해 비즈니스 프로세스에 전달됩니다.
  • 서비스의 호출이 동기적임.
  • BPEL 프로세스 및 호출된 서비스가 동일한 모듈에 위치함.
  • 데이터가 다음 방법 중 하나로 교환됨.
    • XML 스키마 유형 또는 요소를 사용하여 하나 이상의 BPEL 변수를 선언합니다. WSDL 메시지 파트는 서비스 호출 및 변수 사이에 개별적으로 맵핑됩니다.
      <variable name="inputPart1Var" type="ws:inputPart1Type">
      <variable name="inputPart2Var" type="ws:inputPart2Type">

      웹 서비스 활동은 매개변수 확장을 사용하여 BPEL 변수를 참조합니다. SCA 상호 작용에서 WSDL은 참조에 의해 전달되는 데이터의 랩퍼로 처리됩니다.

      <invoke ....>
        <wpc:input>
          <wpc:parameter name="ws:inputPart1" variable="inputPart1Var"/>
          <wpc:parameter name="ws:inputPart2" variable="inputPart2Var"/>
          ...
        </wpc:input>
      </invoke ....>
    • XML 스키마 유형 또는 요소를 사용하여 하나 이상의 BPEL 변수를 선언합니다. 웹 서비스 상호 작용은 문서-리터럴 랩핑 스타일을 사용하여 컴파일됩니다. 매개변수 요소는 랩퍼 문서 및 변수 사이에 맵핑됩니다.
      <variable name="inputParm1Var" type="ws:inputParm1ElemType">
      <variable name="inputParm2Var" type="ws:inputParm2ElemType">

      웹 서비스 활동은 매개변수 확장을 사용하여 BPEL 변수를 참조합니다. 이는 WebSphere Integration Developer에 작성된 프로세스의 기본 동작입니다. SCA 상호 작용에서 랩퍼는 참조에 의해 전달되는 매개변수를 보유합니다.

      <invoke ....>
        <wpc:input>
          <wpc:parameter name="ws:inputParm1" variable="inputParm1Var"/>
          <wpc:parameter name="ws:inputParm2" variable="inputParm2Var"/>
          ...
        </wpc:input>
      </invoke ....>

호출된 서비스가 데이터를 수정한 경우 변경사항이 해당 BPEL 변수에 적용됩니다. 그러나 우수 사례로 데이터에 수행된 변경사항은 지속되지 않으므로 호출된 서비스가 데이터를 갱신하지 않습니다. 장기 실행 프로세스의 경우 현재 트랜잭션 확약 시 변경사항을 버리며, 마이크로플로우의 경우 프로세스 종료 시 변경사항을 버립니다. 추가로 호출된 서비스가 변수를 갱신할 때 이벤트는 생성되지 않습니다.

서비스가 이용하는 비즈니스 프로세스

다른 서비스에서 이용하는 비즈니스 프로세스에는 프로세스 모델의 수신 활동, 선택 활동 또는 이벤트 핸들러가 포함됩니다. 프로세스에 전달되는 데이터는 하나 이상의 BPEL 변수에 씌여집니다. 일반적으로 데이터는 값에 의해 전달되며, 이는 프로세스가 데이터의 사본에 대해 작업함을 의미합니다.

다음 조건이 모두 일치할 경우, 데이터는 참조에 의해 비즈니스 프로세스에 전달됩니다.
  • 비즈니스 프로세스의 호출이 동기적임.
  • 서비스 및 호출된 비즈니스 프로세스가 동일한 모듈에 위치함.
  • 데이터가 다음 방법 중 하나로 교환됨.
    • XML 스키마 유형 또는 요소를 사용하여 하나 이상의 BPEL 변수를 선언합니다. WSDL 메시지 파트는 서비스 호출 및 변수 사이에 개별적으로 맵핑됩니다.
      <variable name="outputPart1Var" type="ws:outputPart1Type">
      <variable name="outputPart2Var" type="ws:outputPart2Type">

      활동은 매개변수 확장자를 사용하여 BPEL 변수를 참조합니다. SCA 상호 작용에서 WSDL은 참조에 의해 전달되는 데이터의 랩퍼로 처리됩니다. 수신 활동의 경우 해당하는 BPEL 스니펫이 다음 예제와 유사할 수도 있습니다.

      <receive ....>
        <wpc:output>
          <wpc:parameter name="ws:outputPart1" variable="outputPart1Var"/>
          <wpc:parameter name="ws:outputPart2" variable="outputPart2Var"/>
          ...
        </wpc:output>
      </receive ....>
    • XML 스키마 유형 또는 요소를 사용하여 하나 이상의 BPEL 변수를 선언합니다. 웹 서비스 상호 작용은 문서-리터럴 랩핑 스타일을 사용하여 컴파일됩니다. 매개변수 요소는 랩퍼 문서 및 변수 사이에 맵핑됩니다.
      <variable name="outputParm1Var" type="ws:outputParm1ElemType">
      <variable name="outputParm2Var" type="ws:outputParm2ElemType">

      활동은 매개변수 확장자를 사용하여 BPEL 변수를 참조합니다. 이는 WebSphere Integration Developer에 작성된 프로세스의 기본 동작입니다. SCA 상호 작용에서 랩퍼는 참조에 의해 전달되는 매개변수를 보유합니다. 수신 활동의 경우 해당하는 BPEL 스니펫이 다음 예제와 유사할 수도 있습니다.

      <receive ....>
        <wpc:output>
          <wpc:parameter name="ws:outputParm1" variable="outputParm1Var"/>
          <wpc:parameter name="ws:outputParm2" variable="outputParm2Var"/>
          ...
        </wpc:output>
      </receive ....>

호출된 프로세스가 BPEL 변수를 수정할 경우, 호출 서비스의 입력 데이터가 또한 수정됩니다.


ⓒ Copyright IBM Corporation 2005, 2006.
이 Information Center는 Eclipse 기술을 기반으로 합니다. (http://www.eclipse.org)