文章
![]() |
精通面向服务的体系结构:BPEL 指南 |
|
使用 BPEL 将 PeopleSoft CRM 与 Oracle 电子商务套件集成 使用 BPEL 将 PeopleSoft 8.9 CRM 与 Oracle 应用程序 11i 集成的分步方法
2006 年 1 月发表 许多企业都具有许多跨不同部门、地理位置或分支机构的异类应用程序组合。尽管可以使用多个 ERP 系统来满足业务单元的要求,但它们实际上会导致数据碎片。集成这些系统比较复杂,并且通常采用专用方式进行处理;尽管如此,公司仍投入了大量的资源来集成遍布多个 ERP 系统的信息,以便作出更好的业务决策。 BPEL 提供了一个以流程为中心的标准方法来集成不同的系统。Oracle 的 BPEL 流程管理器是 Oracle 融合中间件(用于提供面向服务的体系结构 (SOA))中的一个重要工具,它支持 Microsoft、IBM、SAP 以及 BEA 所支持的行业标准 BPEL 规范,并且被广泛认为是一个用于降低集成项目的成本、复杂性和不灵活性的企业蓝图。 在 BPEL 指南的这一部分中,我将介绍一种使用 BPEL 将 PeopleSoft 8.9 CRM 与 Oracle 应用程序集成的方法。具体而言,通过一个示例业务情景,您将了解如何配置 PeopleSoft 以将它的模块公开为 Web 服务,以及如何配置 Oracle BPEL 流程管理器以便与 Oracle 应用程序交互。 实用情景 在一个典型的订单管理业务情景中,订单被输入到 CRM 系统中,并通过后端 ERP 履行订单。在本示例中,我们将 PeopleSoft 用作前端应用程序来管理营销、销售和服务操作,并将 Oracle 电子商务套件用作 ERP(订单管理、库存和财务)。此处考虑的业务流程是一个报价-订单流程。 本业务流程的一部分 — 报价和订单输入 — 在 CRM 系统中执行,而订单履行在 ERP 系统中执行。要优化内部操作,需要将整个跨应用程序的报价-订单业务流程自动化。 以下是此业务流程集成中提供的功能(参见图 1): PeopleSoft 中的销售订单创建
图 1 下面我们将着重介绍订单创建步骤。 该设计时 viewlet 演示了实际的配置和执行过程。有关该流程中其他步骤的详细信息,请参考 Oracle 应用程序集成指南。 解决方案概述至此,您了解了实用的业务流程,下面我们将了解如何在体系结构级别实现它。图 2 提供了一般使用 Oracle BPEL 流程管理器作集成平台集成 PeopleSoft CRM 与 Oracle 应用程序所需的组件。
图 2 企业集成点 (EIPS) 是使 PeopleSoft 应用程序能够与第三方系统和其他 PeopleSoft 软件无缝工作的 Web 服务连接。在 PeopleSoft CRM 中提交订单时,PeopleSoft 中的 EIP 将它转换为 XML 格式。随后,将该订单 XML 传递给附加的 PeopleCode 方法 ( WSDL_ORDER)。(PeopleCode 是用于实施业务规则或执行其他自定义的 PeopleSoft 编程语言。) WSDL_ORDER 将把收到的订单 XML 转换为 SOAP XML 并将该请求发送给 PeopleSoft 远程节点。 远程节点 是与在 BPEL 流程管理器中配置的 Web 服务握手的节点。 可以通过使用 Web 服务调用框架 (WSIF) 绑定(BPEL 流程管理器为其提供了强有力的支持)将远程节点映射到 WSDL 来调用 Web 服务。在收到此 SOAP XML 时,PeopleSoft 节点将根据为该节点导入和配置的 WSDL 来调用 Web 服务。此 Web 服务在 BPEL 流程管理器中调用和执行。 BPEL 流程管理器将订单数据作为 SOAP XML 处理并将它发送给 Oracle 应用程序;它在内部利用 Oracle 应用程序 (OA) 适配器 与 11i 通信。OA 适配器是一个纯 JCA 1.5 资源适配器,用于从电子商务套件中发送和接收消息。Oracle 应用程序通过此适配器将某个提供的 API 和表公开给外部应用程序。 Oracle 应用程序处理订单并发送确认;BPEL 流程管理器接收该响应并将它转发给 PeopleSoft 节点。随后,该节点将响应请求 Web 服务的 PeopleCode。后者将检索 XML 数据并将它提交给 PeopleSoft 中配置的组件接口。 组件接口 是公开 PeopleSoft 组件以便从其他应用程序(用 Java 或 PeopleCode 编写)中进行同步访问的接口。 它是订单数据从 PeopleSoft 发送到 Oracle 应用程序并返回的高级流。在下一个部分中,您将了解如何将 PeopleSoft CRM 模块公开为 Web 服务、如何构建一个 BPEL 流程以及如何配置 OA 适配器。 将 PeopleSoft CRM 与 Oracle ERP 集成在 PeopleSoft CRM 中提交订单后,需要将订单信息传递给 Oracle 应用程序。该流程有三个主要步骤。
下面我们仔细了解其中的每个步骤: 第 1 步:设计 BPEL 流程在该步骤中,您将使用 BPEL Designer 创建一个流程。BPEL 流程管理器将从 PeopleSoft 接收包含销售订单信息的 SOAP XML 并将它转换为 OA 适配器的 XML 格式。(为调用 API 创建合作伙伴链接时,OA 适配器将自动生成模式。)随后,将调用和转换 OA 适配器链接,并将订单 XML 提交给 Oracle 应用程序。Oracle API 将处理订单并在输出确认 XML 中返回订单号。 BPEL 流程管理器处理远程故障和绑定故障。当连接不可用时,它将重试五次,然后抛出异常。当发生绑定异常时,将处理绑定故障。 下面是一个为 BPEL 流程管理器设计的集成业务流程的典型示例。
(单击图像可放大) 该流程中的重要活动包括:
以下文件(全部包含在示例代码下载中)将在 BPEL Designer 中重新创建上述流程。
您现在已经完成了该 BPEL 流程的设计。接下来,我们将详细介绍 PeopleSoft 端的配置。 第 2 步:配置 OA 适配器OA 适配器在托管模式下部署在 Oracle Containers for J2EE 中。可以使用它从电子商务套件中发送和接收消息。以下是配置适配器所涉及的步骤。
注意:在本示例中,由于 BPEL 流程管理器将不支持 oracle 记录类型,因此 PROC_ORDERENTRY_ARRAY 是为 PROCESS_ORDER 预先提供的 API 编写的包装器 API。您将改用包装器过程中的对象类型(类似于 PROCESS_ORDER 中使用的记录类型)。此接口负责处理 Oracle 应用程序中的销售订单。
至此,已经完成了 BPEL 流程的设计和 OA 适配器的配置。接下来(以及最后),我们将配置 PeopleSoft。 第 3 步:配置 PeopleSoft现在您已经创建了 BPEL 流程,下面我们将了解配置 PeopleSoft 的流程(分四个步骤)。
下面我们将详细介绍其中的每个步骤。 1. 配置 PeopleSoft 节点以便与 BPEL 流程进行交互在该步骤中,您将配置一个节点来与 BPEL 流程交互。您将定义请求和响应消息以及这些消息将通过的通道。 首先,使用 URL 选项将 CreateOrder.wsdl(先前创建的)导入到 PeopleSoft 中。这将 CreateOrder 标识为流程(在 PeopleSoft 中创建订单时将调用该流程)。将 WSDL 导入到 PeopleSoft 中时,集成代理程序将把它添加到 WSDL 信息库中。 要导入 CreateOrder.wsdl,选择 PeopleTools > Integration Broker > Web Services > Import WSDL。
您现在可以使用 WSDL Repository 页访问 WSDL 信息库中的 WSDL。 将 CreateOrder WSDL 导入到 PeopleSoft 中后,必须配置一个远程节点以便与 BPEL 流程通信。要定义此通信,必须添加相应的 请求消息、 响应消息 和 消息通道。 创建新的远程节点:
单击 Next 按钮前进到 WSDL Operation Wizard 的下一页,在该页中为服务选择请求消息和响应消息。请求和响应消息是在 PeopleSoft 中创建的用于表示 SOAP Request 和 Response 消息的非结构化消息。 创建一个新的请求或响应消息:
至此,已经完成了第 1 步。您导入了 WSDL,告知 PeopleSoft 要调用的 Web 服务。您还定义了节点、消息和通道,将信息传递给 Web 服务 (BPEL Process CreateOrder)。在下个步骤中,您将在销售订单 EIP 和这个新配置的节点之间建立关系。 2. 在 EIP 和节点之间建立关系该步骤将在 CRM_SALES_ORDER EIP 和新节点之间创建一个链接。将 CRM_SALES_ORDER EIP 发布到集成代理程序时,以上创建的链接将把 CRM_SALES_ORDER 消息作为请求消息发送给上面创建的节点。
在该步骤中,您将创建应用程序引擎程序 WSDL_ORDER。(应用程序引擎是 PeopleSoft 高容量应用程序处理器。应用程序引擎是使用 Application Designer 开发的,并可以利用常见的 PeopleTools 对象,如记录、PeopleCode 和 SQL 对象。) WSDL_ORDER 将从 EIP 接收的销售订单消息转换为 BPEL 请求(SOAP 消息)并在节点通道上发布已转换的消息。 将以下代码添加到 transform 并将请求发送给上面创建的节点。将请求提交给节点后,该节点将调用配置给它的 Web 服务。将调用此 Web 服务并向该节点(将 XML 消息发送给 PeopleCode 方法)返回响应。
4. 将 WSDL_ORDER 应用程序引擎与节点链接 在该步骤中,您将把转换代码关联到 CreateOrder 节点。因此,每当调用 BPEL 流程管理器时,将执行该转换节点。 创建一个新的关系 WSDL_ORDER,并将它映射到节点 WSDL_ORDER。为此,执行以下操作: 从 People Tools > Integration Setup 中选择 Relationships 并选择 Add New Value。
至此,已完成了销售订单创建步骤。请再次观看设计时 viewlet,了解如何配置所有这些步骤;在运行时 viewlet 中,您实际上将看到一个从 PeopleSoft 中提交并发送给 Oracle 应用程序的销售订单。 结论由于异类应用程序分布在多个不同业务单元中,因此企业在聚合信息方面面临挑战。集成这些系统需要大量投资。现在,正如本文所演示的,此类企业可以选择使用类似 BPEL 这样的标准集成这些应用程序。
将您的意见发送给我们 |