当读到 ebXML 时,很难了解它到底是什么 -- 以及不是什么。ebXML 中的 'eb' 代表“电子商务”,可以将这个短语读成 "electronic business XML"、"e-biz XML"、"e-business XML" 或简单地读成 "ee-bee-ex-em-el"。
一方面,ebXML 似乎要承诺统一商业过程所做的每一件事,以便相互通信。另一方面,人们也可以认为:ebXML 只是现有标准应该遵循的神圣而又空洞的声明。与所有“即将发生的重大事件一样”,答案位于二者中间。
ebXML.org 主页提供了以下简短描述:
ebXML 是一个规范集,这些规范共同实现了模块化电子商务框架。ebXML 的构想是实现一个全球电子市场,其中,不同规模和不同地区的企业可以通过交换基于 XML 的消息来合作和进行商业活动。
换句话说,ebXML 希望成功实现“电子数据交换”,即我们常听到的 EDI。(官方描述趋向于强调从 EDI 学习,而不是摒弃它。)
弄清 ebXML 涉及几个步骤。理解 ebXML 细节所需的第一件事可能是领会新的字首组合词和其它特殊术语。在查看 ebXML 交互的整个“构想”之前,请先了解以下右边侧栏( ebXML 术语)中的一些术语。还有一些术语适合整个系统,但是,这些特殊术语是很好的起点。记住了这个新的词汇表和以下这些有关 ebXML 出处的背景知识,就可以了解 ebXML 中的所有不同过程是如何组合在一起的。
在本文开头描述了 ebXML 做什么(至少是概述说明)之后,最后一节将详细讨论“商业过程规范模式”,该模式构成了 ebXML 底层体系结构的最重要元素之一。
ebXML 是一项倡议,其参与者与认可者包括了您所能想到的世界上每一家大公司和官方标准协会。可能不是您所能想到的 每一个,但确实包括几百家大公司和团体。
计算机/技术公司不是认可 ebXML 的唯一实体;支持者包括大量工业、航运、银行业以及其它综合业务公司。ebXML 的直接赞助者是 OASIS(结构化信息标准促进组织)和 UN/CEFACT(联合国贸易辅助和电子商务中心)。许多标准团体也参与其中,包括 NIST(国家标准和技术学会)和 W3C(World Wide Web Consortium(万维网联盟)。
拥有这样一些支持者,ebXML 看起来注定要统治世界。对于时髦语和广告宣传,我往往采取鄙视的态度。然而,对于 ebXML,我还是希望它能象它所宣传的那样,在未来五年内成为大多数商业事务的通用协议。
照我看来,ebXML 将通过实际允许商家以 不同的方式进行商业活动,尽可能多地将商家 在任意方面的所作所为越来越多地合并到规范中,从而成功地成为通用协议。我不知道,我的判断是对 ebXML 开放性的讽刺还是鼓舞,但是,ebXML 发起人明确抱有一种“接纳现有标准和方法”的态度。
基于“ebXML 技术体系结构规范”(请 参阅 参考资料)的图解( 图 1)可能会在理解 ebXML 对于商业的意义方面给您以很大帮助。
“图 1”中的“公司 A”将首先复查“ebXML 注册表”的内容,特别是可以下载或就地查看的“核心库”。“核心库”(可能还有其它已注册的“商业过程”)将允许“公司 A”确定其自己的 ebXML 实现的要求(以及 ebXML 是否适合于它们的商业需求)。
图 1:两个公司之间 ebXML 交互的高级概述
根据对从“ebXML 注册表”获得的信息的复查,“公司 A”可以构建或购买适合于它所预想的 ebXML 事务的 ebXML 实现。ebXML 倡议的希望是:厂商将支持所有 ebXML 元素。那时,“ebXML 系统”可能只不过是一个预先包装的桌面应用程序。或者更为现实一些,ebXML 系统将至少象商业数据库系统(仍需要一名 DBA)那样可管理。 图 1 暗示着:假想的“公司 B”使用类似于这种预先包装的应用程序。
不管哪种方法,“公司 A”的下一步是创建一个 CPP,并向“注册表”注册它。“公司 A”可能希望向“注册表”添加新的“商业过程”,或只是引用已有的商业过程。CPP 将包含一些信息,潜在的伙伴将使用这些信息确定“公司 A”所感兴趣的商业角色,以及为扮演这些角色,“公司 A”愿意使用哪种协议。
一旦注册了“公司 A”,“公司 B”就可以查看“公司 A”的 CPP,以确定它与“公司 B”的 CPP 和要求兼容。那时,“公司 B”应该在能够顺应 CPP 的基础上自动与 “公司 A”协商 CPA,以及作为 ebXML 标准或建议给出的、双方达成的协议。
最后,这两家公司开始处理实际事务。这些事务可能涉及到符合未来 ebXML 标准和建议的“商业消息”。在所有这些过程中的某一处,可能会发生“现实世界”的活动(例如,从一地向另一地发货,或提供服务)。ebXML 将有助于同意、监控和验证这些现实世界的活动。当然,在我们的“信息经济”中,许多正在进行的事物可能处于 ebXML 领域 -- 可能是特定商业关系中的每件事。
UN/CEFACT Modeling Methodology (UMM) 利用了 UML,它可能对建立“ebXML 商业过程”的模型有所帮助。然而,这种建模只是建议,而不是要求。无论如何,既然本文针对 XML 开发人员并且不讨论 OOD(面向对象的设计),所以在符合“商业过程规范 DTD 和 XML 模式”的 XML 文档中查看模型的表示也更为有趣。在这种情况下,DTD(即 "ebXMLProcessSpecification- v1.00.dtd")就成为主要的规则表示。这个 DTD 和(假设)在语义和语法上都兼容的“W3C XML 模式”都可以在 EbXML_BPschema_1.0 建议中找到(请 参阅 参考资料)。
ebXML 过程规范有一个根元素
ProcessSpecification 。特定的过程规范也许包含了对其它过程规范和文档规范以及其它文档的字节点引用。
ProcessSpecification 的 DTD
声明提供了“商业过程”文档的结构概述:
清单 1:ProcessSpecification DTD 声明
<!ELEMENT ProcessSpecification
(Documentation*,
(Include* | DocumentSpecification* |
ProcessSpecification* | Package |
BinaryCollaboration | BusinessTransaction |
MultiPartyCollaboration)*)>
<!ATTLIST ProcessSpecification
name ID #REQUIRED
version CDATA #REQUIRED
uuid CDATA #REQUIRED >
|
属性
uuid
是过程规范的全局唯一标识;
name 和
version
特定于显示的模型(
name
不应该与嵌套的过程规范冲突)。
在过程规范中,
Package 定义一系列协作,它既可以是
MultiPartyCollaboration 元素,也可以是
BinaryCollaboration
元素。协作反过来也包含团体的各种角色。一段从 EbXML_BPschema_1.0
建议中(请
参阅
参考资料)包含的过程规范摘录的代码有助于理解该结构:
清单 2:协作包
<Package name="Ordering">
<!-- First the overall MultiParty Collaboration -->
<MultiPartyCollaboration name="DropShip">
<BusinessPartnerRole name="Customer">
<Performs authorizedRole="requestor"/>
<Performs authorizedRole="buyer"/>
<Transition fromBusinessState="Catalog Request"
toBusinessState="Create Order"/>
</BusinessPartnerRole>
<BusinessPartnerRole name="Retailer">
<Performs authorizedRole="provider"/>
<Performs authorizedRole="seller"/>
<Performs authorizedRole="Creditor"/>
<Performs authorizedRole="buyer"/>
<Performs authorizedRole="Payee"/>
[...]
<BinaryCollaboration name="Request Catalog">
<AuthorizedRole name="requestor"/>
<AuthorizedRole name="provider"/>
<BusinessTransactionActivity name="Catalog Request"
businessTransaction="Catalog Request"
fromAuthorizedRole="requestor"
toAuthorizedRole="provider"/>
</BinaryCollaboration>
[...]
|
ebXML 规范的批准正在以相当快的速度进行着(对于标准组织当然很快了)。我个人的预测是:要过一两年才能公开这个雄伟构想的所有事项和细节。然而,ebXML 已经花几年的时间来进行广泛使用的推广了。因此,商家现在应该开始真正考虑他们的 ebXML 实现计划了。
- 您可以参阅本文在 developerWorks 全球站点上的
英文原文.
- 请在
UN/CEFACT(联合国贸易辅助和电子商务中心)和
OASIS(结构化信息标准促进组织)上查找
ebXML 的赞助者。
- ebXML 发起人已经创建了许多规范。在
ebXML.org
上查找所有这些规范。随着规范通过它们的批准过程,其确切的 URL
将改变,因此,最好只通过 ebXML
主页浏览。如果指定了此处所提及的文档的更新版本,很显然应该参考那些取代旧版本的新版本:
- 在文档 ebXML Business Process Specification Schema Version 1.0 (EbXML_BPschema_1.0) 中查找有关“商业过程”的详细故事。
- 从 ebXML Technical Architecture Specification 1.04 (ebXML_TA_v1.0.4) 了解整个 ebXML 系统的含义(需要一些工作):
- 在 Bob DuCharme 所著的
building your own SOAP client和 developerWorks
使用 SOAP 进行 XML 消息传递教程中查找更多有关 SOAP
消息传递的信息。
- Uche Ogbuji 在其 developerWorks 专栏
Thinking XML
中讨论了 ebXML 和其它与语意透明性相关的事项。请查看前面的部分:
- Thinking XML #1:XML 和语义:实际情况介绍了 XML 和语义透明性。
- Thinking XML #2:XML 语义:该领域中的新生事物 ... 讨论了那个舞台上的一些演员。
- Thinking XML #3:跟着语义节拍报告了 ebXML 的新进展以及在 2001 年春天发生的相关事情。
- IBM Research 的 R. A. Smith 研究了
ebXML 如何适合电子商务基础设施的结构。
- Partner Agreement Manager 是
IBM WebSphere Business Integrator 的关键部分,他使用另一种协议
RosettaNet 来提供到贸易伙伴的无缝集成。
- 请查看 David Mertz
XML Matters专栏的以前文章。其最新
文章讨论了经由 XML 的 SQL 查询。

David Mertz 了解的商业技术越多,他就越深入地为劳工运动所牵挂。可以通过 mertz@gnosis.cx 与 David 联系;可以在 gnosis.cx/publish/ 上了解他的生活。欢迎提出对本文、以前或将来的文章提出意见和建议。