跳到导航
BEA Dev2Dev Oracle and BEA
首页 资源中心 dev2dev学堂 在线技术论坛 User Group CodeShare
dev2dev 首页 > 资源中心 > 技术文章
贸易伙伴集成(TPI)入门,第一部分

时间:2005-11-08
作者:Hussein Badakhchani
浏览次数:
本文关键字:trading partnertrading partner integrationintegrationweblogic integrationbusiness processesWebLogic Integration贸易伙伴贸易伙伴集成集成业务流程weblogic集成
文章工具
推荐给朋友 推荐给朋友
打印文章 打印文章

  贸易伙伴集成(trading partner integration,TPI)旨在流线化和自动化贸易伙伴所参与的业务流程,以便降低成本,获得战略优势。本文介绍了BEA WebLogic Integration (WLI)的贸易伙伴集成。首先我将介绍贸易伙伴集成(也称为B2B集成)的历史,并定义本文中的“贸易伙伴集成”所指代的内容。然后我将讨论TPI的要求以及它为企业带来的挑战和获益。接下来,我将澄清贸易伙伴集成中的重要概念。最后,我将展示BEA WebLogic Integration如何实现这些理念并简化集成流程。注意,TPI只是WebLogic Integration工具套件的一个部件。

简介
   在企业Java开发人员编码业务逻辑时,许多人遇到了将贸易伙伴服务集成到应用程序中所引发的挑战。有些人求助于Web services。那些有空进行网上冲浪的人可能注意到了,在Java技术Web站点上出现了一些新的术语和缩写词,包括BPELebXMLRosettaNetWS-CDL。这些规范都在某一方面互相关联,而我们越来越多地听到这些术语也不是没有原因的:它们具有使进行贸易伙伴集成的方式发生意义深远的改变的潜力。以RosettaNet为例。这组规范(现在已经是一个标准了)允许贸易伙伴自动化他们的供应链。通过创建一种通用的“语言”,RosettaNet允许贸易伙伴互相传达供应链活动和订单、开价和支付。费时且易于出错的人工过程可以流线化为快捷、安全、容错的自动化流程。在详细讨论贸易伙伴集成的优点之前,我们先来看一下它的历史。贸易伙伴集成的简要历史

  电子数据交换 (Electronic Data Interchange,EDI)被公认为是第一种在贸易伙伴集成领域获得多数认可的技术。EDI技术出现于十九世纪六十年代末,第一个服从EDI的系统出现于1970年,由Bankers Automated Clearing Service (BACS)——即现在的VOCA——实现。这组标准化的电子商务单据是以协商一致的格式进行交换的。EDI充分利用了电子交易的好处,并接手了许多通常都是用基于纸张的通信来完成的工作,但是它的发展并不是一帆风顺的。

  早期的电子交换使用两个贸易伙伴协商一致的专用格式,一旦有新的贸易伙伴添加到现有的系统中,就需要编写新的程序。后来,一些行业团体开始合作起来为采购、运输和金融应用开发行业EDI标准。这些标准中有许多是只支持行业内贸易的,这就造成了多种EDI格式。到1980年,EDI技术已经在大公司中确定了它的地位,但是昂贵的实现和维护成本,加上许多竞争性的标准的出现,使其难以在中小型企业中获得广泛应用。EDI仍然是许多B2B集成工作的核心,但是,支持实时处理并服从公认的开放标准的Web services的出现,使支持批处理的EDI成为许多企业的遗留技术。

  Web services(我对它的定义是:使用SOAPWSDL通过网络描述和访问服务)承诺交付比以往更有效的集成,这再次激发了对贸易伙伴集成的兴趣。Web services的主要优点有:

  • 使用一种简化的机制连接应用程序,而不管底层使用的是何种技术或设备,或具体位置在哪里。
  • 使用了行业标准的协议和开放标准。
  • 供应商普遍支持。
  • 能够利用Internet和其他传输机制进行低成本通信。
  • 松散耦合的消息传递方法允许通过自描述和可以自动被发现的服务支持多连通和信息共享的场景。
  • 实时处理。
  • 多种级别的安全性。

  行业标准的协议和开放标准的使用值得细说一下,因为可以说,没有它们,Web services将会受到和EDI相同的限制。垂直标准(特定于行业的标准),比如RosettaNet,不必再为每一个我们想与之交易的新贸易伙伴开发新的解决方案,因为这些垂直标准是构建于水平标准(不特定于任何部门或行业)——比如,BPEL和WS-CDL——之上的。这些标准使跨部门的横切关注点(如:记账)的集成更为容易。这方面的例子有:已经为RosettaNet所采用的实现公司对银行的支付的SWIFT消息模型和TWIST所作的允许市场参与者互相通信的工作。

例说贸易伙伴集成
  为了帮助您理解我所说的贸易伙伴集成,我们首先来看一下一个典型的企业中的贸易伙伴之间的关系和业务流程。此时,通常要给出一个基于企业供应链的例子,但是我要打破常规。我们来看一个自动清算所(automated clearing house,ACH)。Acme是我们虚构的一个ACH,它为客户,一些银行和大公司,提供各种支付服务。Acme的业务核心是为直接借方和贷方提供清算服务。该过程的基本工作流程如下:Acme的客户通过提交文件向Acme的支付服务提交直接借方和贷方的详细信息,Acme每天处理一批提交文件。这些文件使用专用格式,并使用HTTPS发送给Acme的支付服务。Acme的支付服务使用内部过程并呼叫第三方OCSP(Online Certificate Status Protocol,在线证书状态协议)应答器来验证提交。如果提交失败,支付服务就向客户和Customer Services(Acme内的一个独立部门)通知失败。Acme的客户通过邮寄从Acme接收硬拷贝报告,从而监控交易过程。图1显示了Acme及其贸易伙伴之间的关系和业务流程。

Diagram of Acme's relationship with its trading partners.
图1. Acme及其贸易伙伴之间的关系和业务流程

  现在知道了Acme的一些业务流程,我们来对贸易伙伴这一术语下一个定义。BEA WebLogic Integration说明文档这样定义贸易伙伴:

  “一个实体,它与另一个实体达成协议,按照与各自的商业目的相关联的预定义角色,共同参与特定的商业交易或服务。贸易伙伴应用程序则构成了商业伙伴之间的系统到系统交互的节点。”

  澄清一下,该定义说的不是实体EJB。为了更好地解释该定义,我将其应用于我们的例子。“实体”包括:Acme Payment Services、Big Bank、Cheap Bank、Mega Corp.,以及Customer Services部门。实体所提供的服务是支付服务、报告服务和OCSP服务。对于Acme Payment Services部门来说,它的贸易伙伴包括使用Acme的支付服务的银行和公司、提供安全性检查的OCSP应答器,以及Acme的Customer Services部门。

  下面的内容仍然来自BEA说明文档:

  一组贸易伙伴可以:

  • 全部存在于一个公司内部,分布于多个公司部门(例如,其业务目的可以是库存管理);
  • 分布于Internet上或跨越防火墙的多个公司(例如,其业务目的可以是供应链管理或多级采购交互);
  • 包括公司内部和其他公司中的贸易伙伴(公司内部的一个或多个贸易伙伴通过Internet与其他公司中的贸易伙伴通信)。

  此时您可能想知道WebLogic Integration的贸易伙伴集成系统扮演着什么角色。为了更好地说明WebLogic Integration如何使Acme ACH受益以及如何管理它与贸易伙伴的集成,请考虑以下问题:

  • 将贸易伙伴数据(例如,联系人信息、他们所提供的服务、要连接到的URL)保存在何处?
  • 如何使这些信息对现有的和以后的应用程序可用?
  • 贸易伙伴数据具有敏感性,如何使这些数据保持安全?
  • 如何维护和更新这些信息?
  • 如何监控和收集关于Acme ACH及其贸易伙伴所使用的各种服务的使用情况统计信息?
  • 如何管理涉及数十个乃至上百个贸易伙伴及其所提供的服务的数据?

  许多企业没有完全地或从整个企业的远景的角度来解决这些问题。解决方案通常都是暂时性的,而且是针对部门级别甚至只是应用程序级别的。这将会导致信息复制,增加维护开销,并降低安全性。我们看到许多应用程序将一些贸易伙伴信息(例如一个Web服务URL)保存在一个专用的文件中,而该服务的其他客户可以从一个数据库检索到同样的信息。WebLogic Integration贸易伙伴集成系统则旨在用一种兼容的方式解决这些问题。

贸易伙伴集成的好处和风险
   前面曾提到过,贸易伙伴集成的一个目标就是提供战略上的优势。Acme是如何实现这一目标的呢?很明显,Acme为其贸易伙伴所提供的服务还有可改进的空间。Acme意识到,如果能够允许贸易伙伴(特别是支付服务的银行和公司用户)通过一个Web services界面访问他们的报告,从而使贸易伙伴可以随需应变地查看报告,那么无疑会对贸易伙伴非常有利,可以帮助他们消除所有与管理纸张报告相关的低效因素,从而流线化他们的业务。此外,通过提供一个允许以XML形式下载和保存报告的服务,使贸易伙伴能够将这些报告与他们的业务管理应用程序相集成,将先前消极的报告转换为积极的商业数据,这就为他们提供了明显的战略优势。

  Acme所努力实现的正是贸易伙伴集成的可察觉到的好处的一个典型,这些好处包括:

  • 通过自动化和流线化手动过程,降低成本,提高效能。
  • 支持业务流程和交易的实时管理。
  • 通过提供加密和不可否认的服务,提高业务流程的安全性。
  • 创建与贸易伙伴的新的战略机会。

  这些听起来都很不错,但是任何可以获利的行动都必然伴随有风险。我们首先考虑公司内部的贸易伙伴,贸易伙伴集成也面临与系统集成和互操作相关的所有陷阱。系统集成商所使用的典型策略大致可以分为三种:

  • 使用共享数据资源。使用这种策略,不同的部门信息系统可以通过一个共享资源(比如数据库或文件存储区)传达状态的更改。这种方法实现起来相当简单,而且成本比较低。但是它的可伸缩性不太好,或者因为具有很大的局限性而不能成为一个可行的解决方案。
  • 使用连接器架构。这种情况下,企业信息系统使用“插件”连接器(也称为资源适配器或驱动程序)彼此互联,这些连接器服从所采用的某一个规范——例如,J2EE Connector Architecture。该方法的一个局限性就是,可能不存在针对您的企业信息系统(EIS)的合适插件连接器(但是您可以自己编写)。为EIS维护许多不同种类或各种版本的插件也是一个问题。
  • 同步/异步消息传递架构。Web services和一些基于标准的行动使这种方法日益流行。

  这些方法各有其优缺点。选择正确的方法是集成工作成功的关键,而确保做出正确的选择则是IT架构师的任务。当考虑与外部贸易伙伴的集成时,任务就更加复杂了。必须考虑以下的问题:

  • 用于与贸易伙伴交互的业务流程是否定义良好?
  • 如何管理贸易伙伴数据?
  • 使用哪种应用协议和标准?
  • 自主构建应用程序还是购买?
  • 是否能够处理多种时区、语言和文化?

  我们来看如何使用WebLogic Integration解决其中的一些问题。

BEA WebLogic Integration
   BEA WebLogic Integration旨在交付前述的贸易伙伴集成的一些好处。例如,您将看到,如何使用WebLogic Integration自动化并管理与贸易伙伴的关系,如何流线化(与客户、供应商、经销商和其他合作伙伴的)业务流程,以及如何获得跨价值链的商业交易的top-down视图。WebLogic Integration所支持的特性包括:
  • 可视化的公共/私有流程集成。利用WebLogic Workshop,BEA基于统一编程模型的IDE和运行时框架,业务流程集成可以轻松地使用控件和模板实现。
  • 支持领先的行业协议和标准,比如ebXML、RosettaNet和Web services。
  • 使用WebLogic Integration管理控制台——一个使管理人员能够轻松地管理(保存贸易伙伴配置文件的)中央储存库的Web应用程序——进行贸易伙伴管理(trading partner management,TPM)和储存库访问。稍后我们将更详细地介绍TPM。
  • 能够轻松地访问运行时信息。可以使用WebLogic Integration管理控制台查看运行时数据和统计信息。附带的MBean API也方便了运行时监控、进程分析、故障诊断和报告业务消息。
  • 卓越的性能和可用性。WebLogic Integration支持针对可伸缩性和故障转移的集群配置、针对还原的消息持久性存储、底层的确认和接收,以及事务完整性。
  • 高安全性、审计和不可否认性。WebLogic Integration使用包含SSL的传输层安全性和包含数字签名和加密的消息层安全性确保贸易伙伴之间的业务消息交换保密、安全、可靠。用于各种目的的证书和私钥保存在受保护的密钥库(keystore)中,而口令则以加密的形式保存在WebLogic Integration口令库中。
  • 对贸易伙伴的支持。WebLogic Integration与WebLogic Integration - Business Connect协同工作,后者是一个为没有自己的B2B服务器的小型贸易伙伴设计的B2B服务器。对于希望获得零安装解决方案的贸易伙伴,可以轻松地对WebLogic Integration进行扩展,从而提供一个浏览器或FTP界面。
  • 对EDI的第三方支持。

  从上述内容可以看出,WebLogic Integration提供了一个可以用于实现TPI的基础架构。下面我们将进行深入介绍。

重要概念
   要理解如何使用WebLogic Integration进行贸易伙伴集成,首先要熟悉一些重要概念。包括:
  • 贸易伙伴管理储存库
  • 贸易伙伴配置文件
  • 服务
  • 服务配置文件
  • 协议绑定
贸易伙伴管理(TPM)储存库
   有关贸易伙伴配置文件、服务、服务配置文件和协议绑定的信息保存在TPM储存库中,该库保存在一个关系数据库中。所有这些信息以及消息跟踪和贸易伙伴活动都可以通过BEA WebLogic Integration管理控制台或MBean API进行管理。WebLogic Integration还提供了一些批量加载(bulk load)和传输贸易伙伴数据的工具。因为WebLogic Integration构建于BEA WebLogic Server之上,可以使用WebLogic控制台(不要与WebLogic Integration管理控制台混淆了)确定储存库的连接池,bpmArchPool。可以轻松地确定存储贸易伙伴数据的表格,因为这些表格都带有WLI_TPM前缀。图2显示了WLI_TPM_TRADING_PARTNER表格。细查模式可以查看其他保存B2B配置、流程和工作列表数据的表格。模式总计有大约188个表格。

Figure 2
图2. WLI_TPM_TRADING_PARTNER表格(单击图像查看大图)

  我将在下一节介绍这些绑定。

  如前所述,访问和操纵TPM储存库中的数据的一种方法是通过WebLogic Integration管理控制台。图3展示了管理控制台的首页界面。

Figure 3
图3. WebLogic Integration管理控制台(单击图像查看大图)

  请参见http://e-docs.bea.com/wli/docs81/manage/tpm.html,获得WLI控制台的完整指南。

贸易伙伴配置文件
   贸易伙伴配置文件包括了贸易伙伴的标识信息以及执行商业交易所需的所有证书和协议绑定。下面的表格更详细地描述了其中的一些属性。

属性

描述

  企业名

  贸易伙伴的名称。

  企业ID

  用于在业务流程中唯一地识别贸易伙伴,例如DUNS编号。

  企业ID类型

  将企业ID分类,比如DUNS编号、客户或供应商ID编号,等等。

  类型

  指定该贸易伙伴是属于本地主机系统还是远程贸易伙伴。

  状态

  使贸易伙伴对特定操作(比如业务流程或对TPM储存库中的贸易伙伴信息的Web服务访问)可见(启用)或隐藏(禁用)。

  描述

  贸易伙伴的简要描述。

  默认贸易伙伴

  如果选定,则会为本地主机系统指定缺少特定贸易伙伴信息时的发送和接收消息的默认贸易伙伴。

  联系人信息

  电子邮件、地址、电话和传真信息。

  默认情况下,有两个测试贸易伙伴。图4显示了从WebLogic Integration管理控制台所看到的Test Trading Partner 1。从控制台中可以看到,用户可以管理所有的属性,并查看包括消息发送/接收次数的贸易伙伴管理统计信息。还可以向贸易伙伴配置文件添加定制扩展,这些扩展将以XML段的形式提供。

Figure 4
图4. Test Trading Partner 1(单击图像查看大图)

  各种WebLogic Integration 教程都用到了这些测试贸易伙伴。

服务

  图5显示了服务管理页面:用户打算添加一个新的RosettaNet服务。服务通常表示一个业务流程——一组步骤,执行这组步骤会实现一个特定的业务目标。具体到图1的例子,Acme ACH提供了一个支付和报告服务,并消费了OCSP验证服务。业务流程被划分为公共流程(涉及与贸易伙伴的交互)和私有流程(在机构内部执行)。BEA的说明文档中定义如下:

  • 公共流程是接口流程。它们的定义和设计已经为使用它们的机构所知晓、理解和同意,而且还可能跨行业或行业部门进行了定制和标准化,例如RosettaNet Partner Interface Processes(PIPs)。这些流程是一个正式的贸易伙伴间契约的一部分,它们指定了消息交换的内容和语义。不同的贸易伙伴可以以不同的方式实现这些流程。在贸易伙伴集成的上下文中,当计划在与不同贸易伙伴的多个会话中重用协作业务流程时,业务流程应该被设计为公共流程。
  • 会话的参与者还可以实现私有的非协作业务流程,这种流程可以集成后端处理。私有流程是在机构内部执行的业务流程。它们的定义和设计是特定于机构的,并且在机构外部不可见。在贸易伙伴企业内部,私有流程与公共流程和后端业务系统接合。在公共流程的上下文中,私有流程可以视为实现公共业务流程的部分任务的子业务流程或子流程。例如,贸易伙伴可以实现一个与协作业务流程连接并实现一个贸易伙伴的本地流程的私有业务流程,但是这不一定要由服务协议指定。

Figure 5
图5. 添加新服务(单击图像查看大图)

  为了更好地理解使用WebLogic Integration TPI管理服务的好处,考虑Acme ACH决定支持针对提交文件的新开放标准,此时的支付服务。例如,使用SWIFT和TWIST,Mega Corp.可以启用这些服务,而无需编写新的代码以访问建立安全连接所需的数据。接下来您将看到,WebLogic Integration提供了一些现成的组件,应用程序可以使用这些组件访问TPI数据。Mega Corp.使用Acme的新服务数据和证书更新它的储存库——不管是手动进行,还是通过WebLogic Integration管理控制台或使用批量加载器(bulk loader)借助于Acme ACH所提供的数据进行——之后,它就可以集中于必要的业务逻辑的实现了。

服务配置文件
   服务配置文件是两个贸易伙伴对要使用的服务绑定的协议。服务配置文件指定了提供和调用服务的本地和远程贸易伙伴的协议绑定和URL端点。端点是一个URL,它指定(接收传入消息的)消息服务的位置。服务配置文件定义了两个B2B贸易伙伴同意执行的交互活动,以及一个规定业务协议实现细节(比如消息传递特征、安全约束条件、传输机制和工作流流程)的规范。到每个贸易伙伴的适当绑定的链接指定了这些特征。每个服务配置文件由一个带有单个绑定的本地贸易伙伴和一个带有指定绑定的远程/外部贸易伙伴组成。协议绑定

  协议绑定指定服务所使用的业务协议。当前版本的WebLogic Integration支持ebXML 1.0/2.0、RosettaNet 1.1/2.0和Web services,传输协议(例如:HTTP 1.0、HTTP 1.1或HTTPS 1.1),URL端点、超时、重试次数、重试间隔、数字证书和其他与服务的消息交付指标有关的信息。

这意味着什么?
  我们从什么是TPI说到WebLogic Integration TPI中的重要概念。现在我把它们联系起来。在TPI中,我们需要极为灵活的通信方式。可能一个贸易伙伴使用的是RosettaNet,另一个使用的是ebXML。实际上,来自同一个贸易伙伴的不同服务甚至同一个服务(记住,一个服务可以有多个配置文件)都可以使用不同的协议、端点和安全约束条件。储存库仅是WebLogic Integration TPI所使用的保存(描述每个贸易伙伴的)必要信息的内部结构。为访问储存库中的数据,WebLogic Integration提供了一个贸易伙伴管理控件,可在BEA Workshop内使用。基于POJO的控件是面向服务的组件,它们允许更轻松地连接到任何的IT系统或资产,或将其用作服务。可以使用WebLogic Integration管理控制台或通过批量加载器实用工具维护和更新数据。通过将TPI数据集中,并提供对这些数据的便捷访问,WebLogic Integration TPI为所有的企业应用程序提供了一种标准的方式来检索参与贸易伙伴交易所需的信息。结束语

  在本文中,我介绍了贸易伙伴集成,并探讨了WebLogic Integration和WebLogic Workshop所提供的、帮助管理贸易伙伴数据并将其与应用程序集成的解决方案。在本系列的下一篇文章中,我将介绍如何使用贸易伙伴管理控件、数据转换和XQuery访问储存库。我还将深入分析与贸易伙伴集成相关的安全性问题,并演示WebLogic Integration所提供的流程监控特性。

参考资料

原文出处:
Introduction to Trading Partner Integration, Part 1
http://dev2dev.bea.com/pub/a/2005/09/introduction_tradingpartners.html

 作者简介
icon
Hussein Badakhchani
Hussein Badakhchani 是Orbism的资深开发人员和顾问,Orbism是一家系统集成商和BEA合作伙伴。他具有在J2EE平台上进行软件工程的丰富经验,曾经设计、管理和实现了金融、休闲和电信方面的电子商业应用程序。
dot dot dot

dot
  作者其它文章
您对本文的评价
您对这篇文章的看法如何?
太棒了!5分 不错啊 4分 一般般 3分 有待提高 2分 不好 1分