애플리케이션 서버의 WS-BA(Web Services Business Activity) 지원

애플리케이션 서버에서의 WS-BA(Web Services Business Activity) 지원을 사용하여, 다른 시스템에서의 웹 서비스는 원자적 트랜잭션보다 더 느슨하게 결합한 활동을 조정할 수 있습니다. 이러한 활동은 원자적으로 롤백하기 어렵거나 불가능할 수 있으므로 오류가 발생하면 보상 과정이 필요합니다.

웹 서비스 프로토콜은 OASIS(Organization for the Advancement of Structured Information Standards) 그룹으로 정의되며 웹 서비스 애플리케이션을 정의하는 표준 방식을 제공하여 애플리케이션이 사용된 제품, 플랫폼 또는 프로그래밍 언어를 독립적으로 조작할 수 있도록 합니다. WS-BA(Web Services Business Activity)는 애플리케이션 서버에서 다음 스펙의 구현을 지원합니다. 이러한 스펙은 웹 서비스 애플리케이션을 사용하여 오류 발생 시 조치를 보상하기 위한 기능으로 이기종 웹 서비스 환경에 분배된 느슨하게 결합된 비즈니스 프로세스에 참여하는 여러 프로토콜을 정의합니다. 예를 들어, 이메일을 전송하는 애플리케이션은 비즈니스 태스크의 실패를 따르는 이메일을 검색할 수 없습니다. 그러나, 애플리케이션은 새 상황에 대해 조언하는 다른 이메일을 전송하는 비즈니스 레벨 보상 핸들러를 제공할 수 있습니다. 비즈니스 활동은 서로 동의된 결과를 가질 수 있도록 서로 링크하려는 일반 태스크의 그룹입니다.

WS-BA 상호 운용성 프로토콜과 더불어, 애플리케이션 서버는 비즈니스 활동 및 보상 핸들러 작성을 위한 프로그래밍 인터페이스를 제공합니다. 이 프로그래밍 인터페이스로, 보상 데이터를 지정하고 비즈니스 활동 상태를 점검하거나 수정할 수 있습니다.

웹 서비스가 아닌 애플리케이션이 포함된 이 보상 기능을 애플리케이션이 WebSphere® Application Server 간에만 통신을 포함하는 동안에 사용할 수도 있습니다. 자세한 정보는 관련 주제를 참조하십시오.

WS-BusinessActivity 프로토콜에 대한 정책을 구성할 수 있습니다. 클라이언트가 WS-BA 컨텍스트를 전파할지, 서버가 WS-BA 컨텍스트를 수신할지 여부를 구성합니다. WS-BusinessActivity 컨텍스트가 아웃바운드 서비스 요청을 작성할 때 클라이언트가 이를 항상 전송하게 하려면, 정책 세트를 클라이언트와 연관해야 하며, 여기서 정책 세트는 WS-Transaction 정책 유형을 포함해야 하고 이 정책 유형에 Mandatory의 WS-BusinessActivity 설정값이 있어야 합니다. 또는, WS-BusinessActivity BAAtomicOutcomeAssertion 정책 유형 속성을 포함하는 원격 엔드포인트를 클라이언트가 항상 호출하는 경우, 클라이언트를 구성하여 제공자의 WS-Policy 구성을 적용할 수 있습니다. 그러면 클라이언트가 제공자의 필수 정책을 자동으로 채택합니다.

웹 서비스 제공자가 수신하는 요청에 WS-BusinessActivity 컨텍스트를 포함하게 하려면, 정책 세트를 제공자와 연관해야 하며, 여기서 정책 세트는 WS-Transaction 정책 유형을 포함해야 하고 이 정책 유형에 Mandatory의 WS-BusinessActivity 설정값이 있어야 합니다.

클라이언트나 제공자가 WS-BusinessActivity 컨텍스트를 사용하지 못하게 하려면, 정책 세트를 클라이언트나 제공자와 연관해야하며, 여기서 정책 세트는 WS-Transaction 정책 유형을 포함해야 하고 이 정책 유형에 Mandatory의 WS-BusinessActivity 설정값이 있어야 합니다. 웹 서비스 요청이 클라이언트와 제공자 간의 긴밀한 결합을 작성하지 않게 하려는 경우(예: 엔터프라이즈 간에 요청이 있는 경우), 환경에 이 구성을 사용할 수도 있습니다.

클라이언트 또는 제공자에 연관된 정책 세트가 없거나 WS-Transaction 정책 유형이 정책 세트에 포함되지 않은 경우, 기본 WS-Transaction 동작이 사용됩니다.

애플리케이션 개발

WS-BA의 장점을 취하기 위한 웹 서비스 애플리케이션에 대해 특정 개발 태스크가 필요하지 않습니다.

JAX-RPC 애플리케이션의 경우, BusinessActivity 범위 안에서 자동으로 실행되도록 구성된 EJB(Enterprise JavaBeans) 컴포넌트는 범위가 JAX-RPC 웹 서비스 요청을 아웃바운드하는 경우 이 범위를 전파합니다. JAX-RPC 런타임은 WS-BA 1.0을 지원합니다.

JAX-WS 애플리케이션의 경우, 정책 세트 작성을 지원하고, WS-Transaction 정책 유형을 정책 세트에 추가하고, 선택적으로 정책 유형을 구성하고, 정책 세트를 WS-BA 통신에 포함될 애플리케이션이나 클라이언트에 첨부하여 WS-BA를 사용합니다. JAX-WS 런타임은 WS-BA 1.0, WS-BA 1.1, WS-BA 1.2, WS-BA용 WS-Policy 어설션을 지원합니다.

JAX-WS 런타임이 인바운드 요청을 수신한 경우, WS-Transaction 1.0, WS-Transaction 1.1 및 WS-Transaction 1.2 스펙 레벨이 지원됩니다. 아웃바운드 JAX-WS 요청이 전송되면 하나의 스펙 레벨만 사용될 수 있습니다. WS-Transaction WS-Policy 어설션이 사용 가능한 경우, 웹 서비스의 WSDL(Web Services Description Language) 또는 클라이언트의 WS-Transaction 정책 유형 중 하나에서, 클라이언트 및 대상 웹 서비스에 적용되는 스펙 레벨이 사용됩니다. 예를 들어, 대상 웹 서비스의 호스팅 환경이 WS-Transaction 1.0만 지원하는 경우, WS-BA 1.0이 사용됩니다. 두 스펙 레벨이 모두 적용되는 경우, 또는 사용 가능한 WS-Transaction WS-Policy 어설션이 없는 경우, 트랜잭션 서비스 설정에 설정된 기본 WS-Transaction 스펙 레벨이 사용됩니다.

효과적인 정책 세트가 없거나 WS-Transaction 정책 유형이 효과적인 정책 세트에 포함되지 않은 경우, 기본 동작은 다음과 같습니다.
  • 클라이언트가 제공자의 정책을 고려하지 않는 경우, 클라이언트는 WS-AT(Web Service Atomic Transaction) 또는 WS-BA 컨텍스트를 전송하지 않습니다. 이 동작은 Never의 WS-Transaction 정책 구성 설정과 상응합니다.
  • 클라이언트가 제공자의 정책을 고려하지 않는 경우, 제공자의 정책이 WS-AT 또는 WS-BA 어설션을 포함하면 클라이언트는 WS-AT 또는 WS-BA 컨텍스트를 전송합니다. 이 동작은 Support의 WS-Transaction 정책 구성 설정과 상응합니다.
  • 서버가 WS-AT 또는 WS-BA 컨텍스트를 수신하지 않습니다. 이 동작은 Never의 WS-Transaction 정책 구성 설정과 상응합니다.

WS-Transaction 정책 어설션

제공자에 대하여 WS-BusinessActivity 프로토콜의 정책을 구성한 경우, 이는 정책 유형이 연관된 경우 웹 서비스에 생성된 WSDL에 포함된 어설션에 영향을 줍니다. WS-BusinessActivity를 사용하는 클라이언트 또는 제공자의 보상 요구사항을 설명하기 위해 사용되는 WS-Policy 어설션은 BAAtomicOutcomeAssertion입니다. WS-Transaction 정책 유형에 Mandatory 또는 Support의 WS-BusinessActivity 설정이 있는 경우, 정책 어설션은 WSDL에 포함됩니다.

애플리케이션 서버도 구문 분석하는 WSDL의 이러한 어설션을 구문 분석, 이해, 적용할 수 있습니다.

다음 예는 WS-BusinessActivity BAAtomicOutcomeAssertion이 엔드포인트가 요청 메시지에 포함된 WS-BA 컨텍스트와 함께 호출되어야 함을 표시하고, 컨텍스트가 WS-Transaction 1.0 또는 1.1 형식이 될 수 있음을 표시하는 경우 WSDL을 표시합니다. 2개의 네임스페이스와 2개의 어설션이 있습니다. 하나는 각 WS-Transaction 스펙 레벨용이며, WS-Policy ExactlyOne 연산자를 사용하여 클라이언트가 사용할 스펙 레벨을 선택해야 함을 표시합니다.

<wsdl:definitions targetNamespace="bank.example.com"
     xmlns:tns="bank.example.com"
     xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
     xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" 
     xmlns:wsat11="http://docs.oasis-open.org/ws-tx/wsba/2006/06"
     xmlns:wsat10="http://schemas.xmlsoap.org/ws/2004/10/wsba"
     xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/
     oasis-200401-wss-wssecurity-utility-1.0.xsd">
     <wsp:Policy wsu:Id="BAPolicy">
         <wsp:ExactlyOne>
             <wsat11:BAAtomicOutcomeAssertion />
             <wsat10:BAAtomicOutcomeAssertion />
             <!-- omitted assertions -->
         </wsp:ExactlyOne />
     </wsp:Policy>
     <!-- omitted elements -->
     <wsdl:binding name="BankBinding" type="tns:BankPortType">
          <!-- omitted elements -->
          <wsdl:operation name="TransferFunds">
               <wsp:PolicyReference URI="#BAPolicy" wsdl:required="true"/>
               <!-- omitted elements -->
          </wsdl:operation>
     </wsdl:binding>
</wsdl:definitions>

주제 유형을 표시하는 아이콘 개념 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cjta_wsba
파일 이름:cjta_wsba.html