• λ我爱Aspx >> 数据库 >> 实现动态的可重用 SOA(组图)
  • 实现动态的可重用 SOA(组图)

  • :未知  Դ:csdn  :2007-4-21 18:48:01  ؼ:
  • 本文中,我们介绍Oracle 服务注册表 (OSR)。您将从中了解到如何在不牺牲性能的情况下放松紧密耦合的 BPEL 流程,同时创建一个使企业受益的可重用且可发现的文件库。

    设置

    示例场景包含两个 BPEL 流程:一个主流程 (MasterProcess),它用以调用另一个名为 CalleeProcess 的流程。一般而言,构建场景时,主流程与它的服务通过引用其具体的绑定定义 (WSDL) 紧密耦合。

    创建了 BPEL 流程后,创建者已确定了该流程提供的消息模式。根据其操作,可以是异步或同步。

    请看以下的 CalleeProcess 定义。

    图 1

    在上述示例中,流程的服务接口提供了一个称为“process”的操作,该操作在其内部定义了一个输入 (CalleeProcessRequestMessage) 和一个输出 (CalleeProcessResponseMessage) 消息。

    此时,BPEL 流程不包含任何有关其所在位置或用何种技术调用它的信息。

    将 BPEL 流程部署到服务后,应实现 WSDL 接口并添加一个物理端点。此时,其定义将由抽象转为具体。

    图 2

    现在,流程 (CalleeProcess) 已变成了一个服务,可以通过使用其具体的 WSDL 位置并将将其作为 partnerlink 的基础,在另一个流程中重用它。

    图 3

    部署成功后,就可以调用 MasterProcess 了。这将触发 CalleeProcess 的执行,而其通信是完全在内存中处理的。

    将服务绑定从 BPEL 流程剥离

    准备工作完成后,实现松散耦合系统的第一步,就是将实施从 CalleeProcess(从 MasterProcess 调用)的定义中剥离。

    将该模式应用到 BPEL 流程可带来极大的灵活性,这是因为无需更改流程本身即可更改所使用的特定服务实施。

    在本步骤中,将具体的服务定义注册到 OSR 后,它在整个企业中都可被发现了。

    根据 UDDI 数据模型,服务是业务(允许按用途分组)的细目。(注意:业务与可视性没有联系。)

    只需在 UDDI 业务实体下发布一个 WSDL 就可以添加服务定义(本例中为 CalleeProcess 的服务定义),如下所示。

    图 4

    完成发布过程后,可将服务定义添加到业务 (DynamicDiscoveryBusiness),为 CalleeProcess 创建一个 UDDI 项,以及添加一个与物理端点的绑定。

    Ҷƪл˵?
  • һƪOracle企业管理器10g将提供全面和集成的企业软件管理
    һƪOracle商业智能套件企业版10g第三版全面上市