2014-04-21 2 views
1

bpel 프로세스를 작성했으며 서비스를 성공적으로 호출 할 수 있습니다.BPEL 프로세스 파일에서 서비스 위치를 관리하는 방법

는 그러나 위치의 변경이있는 경우

<soap:address location="http://localhost:8081/service_sample/services/multiplySoapPort" /> 

아래와 같이, 나는, WSDL에서 서비스의 위치를 ​​언급하고 내가 WSDL 파일을 변경해야합니까?

이 상황을 처리하는 다른 방법이 있습니까?

저는 SOA 월드, BPEL, ESB에 새로운 꿀벌입니다. 여기에서 배우고 적용하기 위해 나는 무엇을 놓치고 있습니까?

전문가에게는 어리석은 질문 일지 모르지만이 문제를 극복하는 방법은 궁금합니다.

저는 JBoss SOA Platform 5.2를 사용하고 있습니다. (BPEL은 모든 공급 업체에서 동일합니다).

답변

2

BPEL 자체는 WSDL의 플랫폼 독립적 인 부분만을 사용합니다. 파트너 링크는 porttype (서비스가 아닙니다!)을 참조하는 파트너 링크 유형을 참조합니다. 실제로 호출 할 서비스의 정의는 BPEL 표준 외부와 배치. JBoss는 Apache ODE AFAIK의 사용자 정의 된 버전을 사용합니다. ODE 배포 설명자의 경우 배포에서 포트와 서비스를 지정합니다. 엔진은 서비스 요소에서 직접 엔드 포인트를 가져옵니다. , 비록

  1. 내가 반드시 하이 엔드 제품을 의미하지 않는다이와 ESB의 형태를 (사용

    당신이 나중에 엔드 포인트를 변경하기위한 더 유연하게하려면

    , 당신은 두 가지 선택이있다 일부 프로젝트에서는 작은 Apache Camel Wrapper를 사용합니다 ...) : ESB 계층은 엔드 포인트 투명성을 제공합니다. 프로세스 배포에서 프로세스를 구성하여 ESB 계층을 호출합니다. 실제 서비스 (라우팅). 실제 서비스의 위치가 변경되면 ESB에서 라우팅 규칙을 변경하고 BPEL 프로세스와 다른 모든 고객을 그대로 둘 수 있습니다.

  2. BPEL 파일에서 엔드 포인트를 직접 파트너 링크에 지정하십시오. 구성에만 관한 것이라면이 솔루션을 선호하지 않습니다. 어디서나 엔드 포인트 위치를 읽고 파트너 링크로 읽어야합니다.

    < (SREF) : 서비스-REF의 xmlns : 당신이 partnerlink에 할당해야 할 XML이 같은 것입니다 SREF = "http://docs.oasis-open.org/wsbpel/2.0/serviceref"> < EndpointReference에의 XMLNS = "http://www.w3.org/2005/08/addressing"> < 주소> YourNewEndpoint </주소> </EndpointReference에> </(SREF) : 서비스-REF>

희망이 도움이됩니다! 프록시에 대한이 같은

<bpel:assign> 
    <bpel:copy> 
    <bpel:from> 
     <bpel:literal> 
     <sref:service-ref xmlns:sref="http://docs.oasis-open.org/wsbpel/2.0/serviceref"> 
      <EndpointReference xmlns="http://www.w3.org/2005/08/addressing"> 
      <Address>YourNewEndpoint</Address> 
      </EndpointReference> 
     </sref:service-ref> 
     </bpel:literal> 
    </bpel:from> 
    <bpel:to partnerLink="YourPartnerLink"/> 
    </bpel:copy> 
</bpel:assign> 
+0

당신이 – user3500159

+0

첫 번째 옵션은 샘플 코드가 있습니까 : 업데이트

: 여기 (나는 어떻게 든 주석이 추가 할 수 없습니다) 주석의 요청에 따라 전체 할당 활동이다 실제 엔드 포인트에 변경 사항이있는 경우 모든 서비스를 사용하고 프록시를 사용하여 BPEL (오케스트레이션 용)에서 서비스를 호출합니다. 그런 다음 ESB 계층에서 세부 사항을 변경하십시오. 너가 말하는게 이거니?.JBoss FUSE ESB를 사용한다고 가정 할 때 모든 서비스를 프록시하고 사용할 수 있습니다. – user3500159

+0

UDDI로 할 수 있습니까? 어쨌든 먼저 그 것을 배워야합니다. – user3500159

관련 문제