无需编写代码的应用程序扩展和集成

作者:Sandeep Banerjie、Srikant Subramaniam 和 Nikhilesh Chitnis


拥抱变化,无需编写代码。


Oracle 融合中间件模式文章系列的一部分。

2010 年 2 月发布

下载:
 Oracle Fusion Middleware

 

简介

在如今快节奏的商业环境中,客户喜好、商业模式、实现技术和监管都在迅速发生变化。为了让运营更为出色、提高客户关注度、拓展有益关系并在行业内保持领先地位,组织必须能够预测变化,甚至是拥抱变化。

然而,对许多企业来说,IT 面对迅速不断出现的业务变化缺乏相应的支持能力。侵入性的应用程序扩展和集成是导致此问题的几个因素之一。

通常,人们试图通过对现有的 ERP、CRM、SCM 和类似的应用程序进行定制和集成来缩小业务和 IT 之间的差距。但是用以实施这些修改的霰弹枪策略极少顾及标准和企业架构准则,因而可能会加重这一问题。这些修改以前的实施方法通常本质上是侵入性的,会将风险引入项目中,从而影响产品投放市场的时间和易用性,最终会增加运行和维护应用程序的成本。

那么,如果旧的集成技术差不多占应用程序初始实施成本的 20%,侵入性定制差不多占总升级成本的 50%,那么采用创新的解决方案改变集成的经济效益就变成一件迫切需要而不是可有可无的事情了。

现在我们看到,面向服务的架构 (SOA)、业务流程管理 (BPM)、业务智能 (BI)、Web 2.0 以及最近的云计算的采用不断迅猛增长,其目的是为了应对许多这样的挑战并发展到下一代的 IT 功能和服务。

在本文中,我们将通过一个真实的客户示例来说明如何使用 SOA、BPM、Web 2.0 和 BI 无需编写任何代码即可扩展和集成 Oracle 应用程序。通过这种方法,我们可以简单快速地实施这些修改并能轻松地进行维护/升级。这提供了一种创新、实用的解决方案,将从根本上改变运行 Oracle 应用程序的经济效益。

客户情况:出差与费用管理

一家拥有 5000 多位员工的全球支付技术公司希望使其高度手动的、费时且高成本的出差批准流程实现自动化。

这种自动化使员工能够在线提交出差批准申请,经理能够在线分析、审核、批准/拒绝申请。这种自动化将改善该公司的出差和费用管理流程,同时降低运营成本。

该解决方案将包括对其后端出差和费用报销系统(该系统不能随取随用地支持此特定需求)的扩展。

IT 可以选用以下 3 种方法来提供此解决方案:

#1: 对后端出差和费用报销系统进行原生定制

对于最开始尝试直接在应用程序中进行功能增强或设置新需求的打包应用程序用户来说,这种方法是最常用的。

在本例中,Oracle E-Business Suite (iExpense) 是出差费用报销系统。为了提供此功能,必须对 Oracle E-Business Suite 进行定制(扩展)和集成。这种定制包括开发自定义的 Oracle 应用程序 (OA) 框架页面,用户可通过这些页面提交批准申请。必须为 Oracle Approval Management (AME) 和要的运行工作流流程创建自定义的查找类型。必须集成工作流包和 AME 规则。必须修改现有的 iExpense 页面(如审批者的页面)以容纳额外的功能,包括添加/隐藏域、菜单、函数、消息、按钮等等。必须构建自定义的表格,使其包含创建、更新、删除、插入、回退功能。必须生成新的报表。

使用此方法构建该解决方案的预计工作量大约为 70 人天。

#2: 用于出差批准的附加式专用应用程序

许多时候,打包应用程序用户采用附加式策略提供所缺少的功能,从而避免在后端应用程序内部进行定制。这通常包括将一个商用现成的 (COTS) 专用解决方案或自定义应用程序与不同的系统集成。这种方法只需较少的配置即可提供更好的特性功能拟合,但大多数情况下,会增加解决方案的总体成本,尤其是当您将运行和维护该解决方案的软件支持费用和人工成本计入在内时。

以出差批准为例,该解决方案(COTS 或定制)将对 E-Business Suite 进行特别的定制。这将是一种孤岛式的实施,有其自己的解决方案生命周期,不会用作应用程序扩展和定制的统一标准化平台。

使用此方法构建该解决方案的预计工作量大约为 20 人天。

#3: 对后端出差和费用报销系统的无需编写代码的扩展和集成

此方法利用集成的 SOA、BPM、Web 2.0 和 BI 应用程序平台为应用程序扩展和集成提供一种无需编写代码的装配式方法。该解决方案包括一个丰富、智能的 Web 2.0 用户界面,用于提交/批准出差批准申请。它使用 SOA 与 Oracle E-Business Suite-iExpense 模块无缝集成。BPM 自动生成各种需要无数规则、工作流和集成的出差批准配置文件。BI 管理软件提供流程智能和历史分析,以便员工和经理能够作出更明智的决策。

使用此方法构建该解决方案的预计工作量大约为 10 人天。

表 1 和表 2 分别总结了这三种解决方案部署方法的主要特点及它们对时间、成本、易用性和投资保护的相对影响:

方法 1 和 2 方法 3
适用于持久不变的构建 适用于灵活变化的构建
与后端应用程序紧密耦合 作为组合应用程序在后端应用程序之上松散耦合
应用程序功能驱动 业务流程驱动
难以协作 天然易于协作
流程智能有限 内在彻底的流程智能
同类垂直集成 异类水平集成
表 1:解决方案部署方法的主要特点

 

方法 1、2 和 3 时间 成本 易用性 投资保护
原生定制
附加式专用应用程序
无需编写代码的扩展和集成
表 2:解决方案部署方法的相对影响


从上面的表中可以看出,集成平台方法提供了整体最佳的解决方案,该方案的设计切合人们的工作方式,并且其构建为可根据需要进行更改。该解决方案支持新的敏捷性等级、产生引人注目的用户体验、提高生产率并提供竞争优势。

与对后端应用程序进行原生定制和集成这样的传统方法相比,使用集成平台方法构建解决方案的工作量减少了大约 85%。该方法还可使升级成本降低大约 40%,对此,您可以通过 Oracle 白皮书应用程序升级和面向服务的架构了解更多信息。

对于这个支持无需编写代码即可进行应用程序扩展和集成的集成平台,现在我们来讨论其架构的各种概念和该集成平台的各组成部分。

无需编写代码的应用程序扩展和集成:平台

该出差批准解决方案使用 Oracle 融合中间件作为集成平台来进行无需编写代码的扩展和集成。该解决方案的各组成部分如图 1 所示。面向服务的架构 (SOA) 处于此集成平台的核心。该解决方案引入了一个分层的架构,旨在消除代码编写工作、最大程度降低 IT 维护成本,并加快在包含多个业务应用程序的整个 IT 环境中进行更改的速度。

图 1 所示的每个组成部分都担当一个重要的角色,对该解决方案的总时间、成本、易用性和投资保护(如前面的表 2 所示)均有贡献。

图 1:出差批准解决方案平台各组成部分


E-Business Suite — iExpense
是后端的出差和费用管理应用程序。它支持使用标准的 Web 浏览器或支持 Web 的移动设备来输入和提交费用报表。Oracle Workflow 自动发送这些费用报表以待审批并强制执行报销策略。Oracle iExpense 与 Oracle Payables 集成,可以快速处理费用报表的支付。

Oracle E-Business Suite Adapter 通过将 E-Business Suite 的接口作为 Web 服务公开来提供连通性。使用 Oracle 融合中间件可以将这些 Web 服务相应地组合成一个基于 SOA 的集成解决方案,位于跨企业应用程序的业务流程之间。该适配器支持的集成技术包括:PL/SQL API(为本例所使用)、业务事件、开放的接口表、并发程序、XML 消息、电子商务网关接口和接口视图。

Application Development Framework (ADF),随 Oracle JDeveloper 提供,是一个 4GL 开发工具,用于在 Web 页面上公开 E-Business Suite Web 服务。有了 ADF、SOA Composite 和 E-Business Suite Adapter,不用编写任何代码就可以公开 Web 服务,这归功于 ADF 强大的数据控件以及 JDeveloper 的可视页面布局和页面流。

对于该出差批准解决方案来说,出差批准 portlet 是使用 ADF 构建的。所有用户交互都使用 ADF 任务流实现。这些任务流提供了一种在应用程序中定义控制流的模块化方法。相对于使用一个大型开发组件(如一个 Java Server Faces (JSF) 页面流)来表示应用程序,您可以将应用程序分割成一些可重用的任务流,每个任务流包含该应用程序的导航图的一部分。任务流中的节点是操作。一个操作节点代表一个简单的逻辑操作,如显示页面、执行应用程序逻辑或调用另一个任务流。因此,应用程序可分割成一系列可互相调用的任务流。可以将那些包含常用功能的任务流打包到一个库中,供不同的开发人员、不同的项目组、甚至是组织内部的所有部门共享。这种模块化方法有助于重用,从而可以极大地减少构建和维护应用程序所需要的时间和工作量。

有关使用 Oracle ADF 构建端到端企业级 (Java EE) Web 应用程序的详细信息,请参见面向 Forms/4GL 开发人员的 Oracle Application Development Framework 教程

SOA Composite,随 Oracle SOA Suite 提供,有助于将 E-Business Suite Web 服务与其他系统和流程相集成。这是使用 BPEL(业务流程执行语言)实现的,BPEL 是为了排队和消息处理对 Web 服务和 ESB(企业服务总线)进行编排的标准。BPEL 允许您创建编排 Web 服务的流程。最终结果是跨 E-Business Suite 和其他应用程序的端到端的流程,以及来往于 E-Business Suite 的可以利用流程逻辑进行错误处理和异常管理的的数据整合。

SOA Composite 实现了该出差批准解决方案中的审批流程(包括人员工作流和规则)的自动化。SOA Suite 和 E-Business Suite 的紧密集成提供了人员工作流动态获取审批层次结构的功能。在运行时,自动化工作流有助于减少错误、消除重复项并强制执行审批手续。在设计时,Oracle BPEL Process Manager 支持直观地设计对 E-Business Suite 和其他应用程序提供的 Web 服务进行编排的流程。

有关使用 Oracle BPEL Process Manager 和 Enterprise Services Bus 支持 E-Business Suite 的服务的详细信息,请参见:

WebCenter,随带提供 Oracle WebCenter Spaces,为业务用户提供基于角色的内容,允许用户定制其工作环境以满足特定需求,支持创建协作环境从而使项目组无需求助 IT 即可管理其项目和内容。WebCenter 还能够嵌入 Oracle Universal Content Management 存储来管理文档。

该出差批准解决方案利用 WebCenter Spaces 来允许业务用户定制其工作区和内容。根据用户的角色提供不同类型的内容:

  1. 员工:
    a. 自定义出差批准 Portlet
  2. 出差审核者:
    a. 合规性文档库
    b. 任务工作列表
  3. 管理
    a. 任务工作列表 b. Oracle 业务智能管理软件 (BI APPS) 分析信息板

利用 WebCenter Spaces 中的拖放特性以及与 BI 信息板 portlet 的集成可加快整个 Web 页面的组装和内容分配。

有关在 WebCenter 应用程序中集成 E-Business Suite 的详细信息,请参见 在 WebCenter 应用程序中集成 Oracle E-Business Suite

Oracle 业务智能管理软件 (BI APPS) 提供了一个打包的分析解决方案,使我们不必开发数据仓库设计方案、取自数据源的 ETL 逻辑和最佳实践信息板。

在该出差批准解决方案中,BI Apps 提供了预建的 ETL 例程,这些例程在每天结束时从 E-Business Suite 获取数据,然后将这些数据上传到 BI Apps 数据存储。接着,通过 WebCenter Spaces 将这些数据提供给业务用户,从而业务用户能够作出明智的决策。

图 2 显示了整个出差批准工作流,包括以系统为中心的流程和以人员为中心的流程。

图 2:出差批准解决方案工作流
  • 员工通过 WebCenter 登录到出差批准门户,提出出差相关申请。该门户页面上包括:
    • 员工已提交的现有出差批准申请列表以及这些申请各自的状态。
    • 用于提交一个新出差批准申请的链接
    • 员工出差到全国各地参加各种活动的一组日历
    • 好友列表
    • 通过 RSS 源提供的出差提醒
  • 单击“Submit new travel request”后会出现一个用于提交出差批准申请的数据输入表单,在该表单中提供以下信息:
    • 出差日期
    • 目的地
    • 活动(从一个中央数据存储进行填充)
    • 成本中心(从 E-Business Suite 检索信息)
    • 金额
    • 子类别,可以是:
      1. Companion travel with downgrade
      2. Companion travel without downgrade
      3. Decline use of preferred hotels
      4. Decline lowest fare
    • 指定的城市/日期的天气信息(使用 ADF 任务流)
  • 接着,该出差申请通过一个使用 BPEL 的工作流根据审批金额发送给各个审批者。另外,该出差申请还出现在该员工的门户页面的已提交申请列表中。
  • 该申请首先发送给出差审核者,出差审核者可在自己的 WebCenter 门户页面上看到待处理的出差申请列表。此信息是通过 BPEL 工作列表应用程序提供的。
  • 如果审批金额大于 1000 美元,则同时会通过 Business Rules 和 BPEL 向该员工的经理发送一个通知。
  • 得到出差审核者的批准之后,该出差申请通过 BPEL 同时发送给:
    • 成本中心审批者(从 E-Business Suite 检索信息)
    • 该员工的经理和高级经理(从 E-Business Suite 检索层次关系)
    成本中心审批者、经理和高级经理从各自的 WebCenter 门户页面访问该出差申请。根据门户页面中由 BI 管理软件以信息板的形式提供的费用分析信息(如员工的出差和费用历史记录、部门预算与实际支出等),审批者作出批准/拒绝该出差申请的明智决策。
  • 一旦得到所有涉及的相关人员的批准,就会更新 E-Business Suite-iExpense 中的出差申请信息,并向出差服务台发送一个电子邮件通知。如果遭到任何一位审批者的拒绝,则会关闭该出差申请并向该员工发送一个通知。
  • 对于得到批准的出差申请,当出差结束后,员工登录到 E-Business Suite-iExpense 提交其费用报表并将费用行项目与之前在 E-Business Suite 中更新的出差批准申请相关联。

一个使用 ADF、SOA 和 JDeveloper 来创建组合 UI 的 MVC 方法

使用 SOA Composite 和 E-Business Suite Adapter 以 Web 服务“retrieveCostCenter”的形式从 E-Business Suite 提供成本中心信息。Oracle ADF 中的一组数据控件集成了“retrieveCostCenter”Web 服务并将其获得的数据提供给出差批准应用程序。

Oracle ADF 的 4GL 编程及组件之间预建的连通性使我们无需编写代码即可构建这些数据控件。使用 Oracle JDeveloper 创建的 Oracle ADF 任务流提供了该定制的出差批准应用程序在导航方面的功能。(参见图 3)。

图 3:Oracle ADF 图形用户界面

通过单击页面流中的一个视图对象,您可以设计这个出差批准应用程序的一个具体视图(如图 4 所示)。这些视图或页面是使用 ADF 的拖放特性设计的。

图 4:出差批准申请视图

Oracle JDeveloper 使用已部署服务(本例中为 retrieveCostCenter)的 WSDL 进行自我检测并自动生成所需调用绑定。在 Oracle JDeveloper 中自动生成数据控件并在一个面板中显示(图 5)。然后,使用此数据控件将检索到的成本中心信息绑定到该页面上的一个显示组件,并将其绑定到其他视图组件、按钮等等。

图 5:Oracle JDeveloper 中的 ADF 数据控件


使用 Oracle SOA 和 Oracle Application Adapter 与 E-Business Suite 集成

该出差批准解决方案使用 SOA Composite 在运行时从 E-Business Suite 动态检索审批者列表。然后用该列表驱动申请工作流。

一个 BPEL 流程从 E-Business Suite 实例检索组织的层次结构。使用 Oracle Applications Adapter 建立集成。本例在 E-Business Suite 中创建了一个自定义 PL/SQL API,该 API 使用一个 PL/SQL 接口检索/更新数据(图 6)。

图 6:E-Business Suite 中的自定义 PL/SQL API


Oracle Applications Adapter 提供了一个用于浏览/访问 E-Business Suite 中的 API(自定义和公共)的直观界面,并且提供了对这些 API 作为 Web 服务的连通性(图 7)。

图 7:Oracle Applications Adapter 用户界面

配置了该适配器后,在 BPEL 流程中可通过 Invoke 操作来使用该适配器(图 8)。

图 8:在 BPEL 流程中使用 Oracle 适配器


此时,根据以下变量从 E-Business Suite 检索数据(审批者列表):

  1. FirstLevelManager
  2. SecondLevelManager

该列表以 Web 服务的形式提供,因而便于主 BPEL 流程使用,可在内部分配给人员任务来驱动工作流。

使用 Oracle SOA 和 Oracle Business Rules 构建业务逻辑

该出差批准解决方案使用一个业务规则来确定出差批准申请是否需要额外的审批。这些业务规则是通过 Oracle Business Rules (OBR)(Oracle SOA Suite 的一个组件)实现的。OBR 通过规则和决策表与应用程序集成。该集成通过使用 Oracle JDeveloper 这个建模工具(用于业务条件、规则和流程建模)即可实现,无需编写任何代码。可使用 SOA Composite Editor 将 Oracle Business Rules 组件与整个业务流程相连接(图 9)。

图 9:JDeveloper 中的 SOA Composite Editor


建模通常是一种迭代行为。例如,一个新规则可能需要一个新的业务条件,也可能所指定的结果需要对业务流程进行更改。这种情况下,集成式工具可令业务分析更高效。通过 JDeveloper 的 Oracle Business Rules Designer 扩展可以在设计时创建业务规则,而通过 SOA Composer,用户可以在运行时通过一个用户友好的 Web 界面来查看、编辑业务规则并提交对业务规则的更改,而无需重新部署整个应用程序。

一个业务规则由 IF 和 THEN 部分组成。IF 部分测试一个或多个业务条件。如果该测试通过,则执行 THEN 部分的一个或多个操作。例如,出差批准解决方案有一个规则,规定如果金额超过 1000 美元则需要额外的审批。可以使用 OBR Designer 建立该规则的模型(图 10)。

图 10:Oracle Business Rules Designer


利用 Oracle BI 管理软件费用分析构建 BI 信息板

Oracle BI 管理软件包括预置的提取、转换和加载 (ETL) 适配器和业务逻辑,以挖掘多种通用操作应用程序和数据源(包括 E-Business Suite、Siebel CRM、PeopleSoft、JD Edwards)、呼叫中心操作信息(如 IVR 和 CTI 数据)、Web 日志及大量系统。与 Oracle BI Applications 预打包在一起的信息库的内容包含源自这些不同的数据源的源系统映射。

借助这个信息库,我们可通过图形方式选择源 — 本例中我们选择 E-Business Suite。然后,使用预置的 ETL 从 E-Business Suite 中检索员工的历史费用信息并将该信息载入 BI 数据仓库。源自该源的映射被提取到一个用于相关更改的临时区域(图 11)。

图 11:设计器映射


根据这些提取的数据,BI 以信息板的形式向出差审批者提供费用分析信息以便其作出明智的决策(图 12)。

图 12:费用分析信息板


不仅是出差批准解决方案:还适用于其他应用程序

本文介绍的使用 Oracle 融合中间件平台来扩展和集成应用程序的策略和解决方案可用于其他 Oracle 管理软件(包括 Siebel、PeopleSoft、JDEdwards 和 Agile)以及非 Oracle 管理软件。Oracle 融合中间件最佳实践中心提供了许多逐步指南和教程,这些指南和教程介绍如何为 Oracle 应用程序提供服务,如何构建集成、业务流程和组合应用程序而无需编写代码。

总结

下一代 IT 准则 — SOA、BPM、Web 2.0 和 BI — 将使业务应用程序以业务用户执行任务的方式来运转,使其具有内在的智能、支持协作和信息访问、使用可重用、共享和整合的组件。这样产生的动态应用程序将能够实时适应环境变化,其设计具有高度交互性和协作性,并且能够与业务内外的数据源快速组装在一起。

对后端应用程序的侵入性定制和扩展阻碍了我们构建动态业务应用程序。如本文所述,Oracle 融合中间件提供了一个开放的集成平台,以便“应用无极限”客户能够简化应用程序的扩展和集成、提高流程可见性、解决流程质量问题。Oracle 的融合平台可改变运行 Oracle 应用程序(新的实现和升级这两者)的经济效益。通过 Oracle 融合中间件平台,“应用无极限”客户可以立即使用无需编写代码的扩展和集成以及其他功能 — 不需要在技术上升级到 Oracle Fusion Applications。


Sandeep Banerjie Sandeep Banerjie Banerjie 是 Oracle 融合中间件的产品管理高级总监。他的职责包括:开发和实施融合中间件产品,制定和执行 Oracle 和非 Oracle 管理软件在所有行业的市场开拓战略。Sandeep 拥有超过 17 年的 IT 经验,经常就 ERP、CRM、SCM、SOA、BPM 和云计算发表演讲。
Srikant Subramaniam Srikant Subramaniam 是 Oracle 融合中间件的产品经理。他负责加强和传播融合中间件平台与 Oracle 管理软件有关的最佳实践。
Nikhilesh Chitnis Nikhilesh Chitnis 是 Oracle 融合中间件的高级销售顾问。他负责向全球客户说明和证明 Oracle 的中间件产品套件的价值。Nikhilesh 在设计、开发和实施跨多个行业领域的软件解决方案方面具有丰富经验。