【问题标题】:How to Manage Service Location in BPEL process file如何在 BPEL 流程文件中管理服务位置
【发布时间】:2014-06-05 02:46:16
【问题描述】:

我已经创建了一个 bpel 进程并且能够成功调用该服务。

但是,我在 WSDL 中提到了服务的位置,如下所示

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

如果位置发生变化,是否需要更改wsdl文件?

或者有没有其他方法可以处理这种情况?

我是 SOA 世界、BPEL、ESB 的新手。我在这里缺少什么学习和应用?

这个问题对于专家来说可能听起来很傻,但仍然想知道如何克服这个问题。

我正在使用 JBoss SOA 平台 5.2。 (所有供应商的 BPEL 都相同)。

【问题讨论】:

    标签: soa esb bpel


    【解决方案1】:

    BPEL 本身仅使用 WSDL 中与平台无关的部分:partnerlink 指的是 partnerlink 类型,它指的是 porttype(不是服务!)实际调用哪个服务的定义在 BPEL 标准之外,并且是部署。 JBoss 使用 Apache ODE AFAIK 的定制版本。对于 ODE 部署描述符,您可以在部署中指定端口和服务。引擎直接从服务元素获取端点。

    如果您想在以后更灵活地更改端点,您有两种选择:

    1. 使用某种形式的 ESB(这里我不一定指高端产品,尽管您可以使用它。在某些项目中我们还使用小型 Apache Camel Wrapper...):ESB 层提供所谓的端点透明度:在流程部署中,您将流程配置为调用 ESB 层,该层又调用实际服务(路由)。如果实际服务的位置发生变化,您可以更改 ESB 中的路由规则,而无需理会 BPEL 流程和所有其他消费者。

    2. 在 BPEL 文件中,将端点直接分配给合作伙伴链接。如果只是关于配置,我不喜欢这个解决方案。您需要从任何地方读取端点位置并将其发送到合作伙伴链接。您需要分配给合作伙伴链接的 XML 是这样的:

      YourNewEndpoint
      端点参考>

    希望这会有所帮助!

    更新: 这是评论中要求的完整分配活动(我无法以某种方式在评论中添加它):

    <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>
    

    【讨论】:

    • 第一个选项就像为所有服务设置一个代理,并使用代理从 BPEL 调用服务(用于编排),如果实际端点发生任何变化。然后,更改 ESB 层中的细节。你是这个意思吗?。假设,如果我使用 JBOSS FUSE ESB,我可以代理所有服务并按照您的建议使用。
    • 我可以用 UDDI 做任何事情吗?无论如何,我需要先学习。
    • 是的,定义一个代理服务,例如在 JBoss Fuse 中并代理服务。代理只是一个路由器,即消息将不变地通过 ESB。
    • UDDI 已经死了。我不知道它是否可以集成到 WSO2 流程引擎中。
    猜你喜欢
    • 2013-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多