ebXML - 快速指南


ebXML - 简介

企业不可避免地以各种方式相互互动。直到最近几年,许多大公司都习惯通过电子数据交换 (EDI) 自动通信,这允许两家公司使用预定信号进行通信。

EDI 的问题在于它非常昂贵,而且最初它是为大型机领域创建的。现在 ebXML 正在取代 EDI。

定义

ebXML代表电子商务可扩展标记语言。_ _ _ 它是电子商务的全球标准,使任何人、任何地方都可以通过互联网与任何人进行商业交易。

特征

ebXML的特点如下:

  • ebXML 是一个端到端的 B2B XML 框架。
  • ebXML 是一组支持模块化框架的规范。
  • ebXML 依赖于 Internet 的现有标准,例如 HTTP、TCP/IP、MIME、SMTP、FTP、UML 和 XML。
  • ebXML 几乎可以在任何计算平台上实施和部署。
  • ebXML 提供具体规范以实现动态 B2B 协作。

ebXML 愿景

ebXML 旨在创建一个全球电子市场,任何规模、任何地点的企业都可以:

  • 通过电子方式找到彼此。
  • 开展业务——
    • 使用 XML 消息交换。
    • 根据标准业务流程顺序。
    • 具有清晰的业务语义。
    • 使用现成的购买的业务应用程序。
    • 根据双方商定的贸易伙伴协议。

为什么选择 ebXML?

  • 现有的 B2B 框架还不够:
    • EDI 和 RosettaNet 太重量级且太僵化。
    • BizTalk 是专有的、单一供应商和单一平台。
  • 简单对象访问协议(SOAP);Web 服务定义语言 (WSDL);仅靠通用描述、发现和集成 (UDDI) 是不够的:
    • WSDL 不解决业务协作问题。
    • SOAP 的基本形式不提供安全可靠的消息传递。
    • UDDI 不提供业务对象的存储库功能。
  • 为了解决以下问题,对标准化业务协作的需求日益增长:
    • 业务流程
    • 业务合作各方及其角色
    • 在业务协作中交换 XML 文档
    • 业务协作的安全性、可靠性、服务质量要求

    所有这些需求都可以通过 ebXML 得到满足。

ebXML 创始组织

ebXML 是 UN/CEFACT 和 OASIS 的联合倡议。

联合国/CEFACT:

  • 它代表联合国贸易便利化和电子商务中心。
  • 它维护电子数据交换 (EDI) 的 UN/EDIFACT 标准。

绿洲:

  • 它代表结构化信息标准促进组织。
  • 它创建并维护 XML 互操作性规范和广泛的行业支持。

ebXML - 架构

根据定义, B2B协作的迭代生命周期包括以下步骤:

  • 流程定义
  • 合作伙伴发现
  • 合作伙伴注册
  • 电子插件
  • 流程执行
  • 流程管理
  • 工艺演变

总体 ebXML 规范旨在涵盖 B2B 协作的几乎整个流程,旨在满足上述需求。

ebXML 团队定义的 ebXML 架构提供:

  • 一种定义业务流程及其相关消息和内容的方法。
  • 一种通过相关消息交换来注册和发现业务流程序列的方法。
  • 一种定义公司简介的方法。
  • 一种定义贸易伙伴协议的方法。
  • 统一的消息传输层。

因此,ebXML的技术架构由五个模块组成:

  • 业务流程规范
  • 合作伙伴简介和协议
  • 注册表和存储库
  • 核心组件
  • 消息服务

这些模块将在接下来的五个章节中介绍。该图显示了 ebXML 的简化架构:

ebXML架构

ebXML - 业务流程

业务流程是企业所做的事情,例如购买计算机零件或销售专业服务。它涉及两个或多个贸易伙伴之间以某种可预测的方式交换信息。

业务流程定义规范使组织能够表达其业务流程,以便其他组织可以理解。它可以实现公司内部或多个公司之间业务流程的集成。

ebXML 业务流程规范架构 (BPSS)提供了描述组织如何开展业务的 XML 文档的定义。ebXML BPSS 是对构成业务流程的合作伙伴、角色、协作、编排和业务文档交换的声明。

下图给出了业务流程的概念视图。

业务流程概述

商业合作

业务协作是一组精心设计的业务交易活动,其中两个贸易伙伴交换文档。

最常见的一种是二元协作,其中两个合作伙伴交换文档。当两方以上交换信息时,就会发生多方协作。

多方协作实际上是精心设计的二元协作。

在最低级别,业务协作可以分解为业务交易。

商业交易

业务事务是业务流程中Atomics级别的工作。它要么成功,要么彻底失败。

商业交易是贸易伙伴实际转让商业文件的交易。

业务文档流程:

业务事务是作为业务文档在请求角色和响应角色之间流动而实现的。总是有一个请求业务文档,并且可选地有一个响应业务文档,具体取决于所需的事务语义,例如单向通知与双向对话。

实际的文档定义是使用 ebXML 核心组件规范来实现的,或者通过 ebXML 外部的某种方法来实现,但会产生 ebXML 业务流程规范可以指向的 DTD 或模式。

编舞:

编排用状态和状态之间的转换来表达。业务活动被称为抽象状态,业务协作和业务交易活动被称为具体状态。使用活动图概念(例如开始状态、完成状态等)在 ebXML 业务流程规范模式中描述编排。

商业文件

业务文档由业务信息对象或先前已识别的较小信息块组成。

当然,这些块或组件不携带任何信息。它们只是定义信息和表示的结构,例如 XML 模式或 DTD。最终结果是一个可预测的结构,信息被放入其中,以便最终文档的接收者可以解释它以提取信息。

业务流程规范示例

下面给出了业务流程规范的部分示例:

<BusinessTransaction name="Create Order">
    <RequestingBusinessActivity name=""
        isNonRepudiationRequired="true"
        timeToAcknowledgeReceipt="P2D"
        timeToAcknowledgeAcceptance="P3D">
    <DocumentEnvelope BusinessDocument="Purchase Order"/ >
    </RequestingBusinessActivity>
    <RespondingBusinessActivity name=""
        isNonRepudiationRequired="true"
        timeToAcknowledgeReceipt="P5D">
    <DocumentEnvelope isPositiveResponse="true"
        BusinessDocument="PO Acknowledgement"/>
    </DocumentEnvelope>
    </RespondingBusinessActivity>
</BusinessTransaction>

结论

业务流程规范:

  • 描述两个合作伙伴之间的协作
  • 定义角色、关系和责任
  • 定义业务文档的编排
  • 以平台和供应商中立格式表示
  • 可以使用 UMM(UN/CEFACT 建模方法)进行建模
  • 由业务流程规范架构 (BPSS) 正式描述
  • 由 CPP 和 CPA 参考。
  • 指业务文档定义。

ebXML - CPP 和 CPA

协作协议简介

协作协议配置文件 (CPP) 提供有关特定贸易伙伴打算如何开展电子商务的所有必要信息。CPP 定义了贸易伙伴的以下属性:

  • 通过业务流程的业务能力。

  • 他们在合作中扮演的角色(买方或保险公司)。

  • 交付渠道和传输协议。(HTTP、SMTP 等)

  • 商业文件的包装方式。

  • 安全限制(SSL、数字证书)。

  • 根据业务流程规范进行每方配置。

CPP 与全局唯一标识符 (GUID) 一起存储在 ebXML 注册表中,业务合作伙伴可以通过注册表找到彼此的 CPP。

CPP 中的信息可供搜索,因此潜在的贸易伙伴可以确定该组织是否有能力开展业务。

CPP 的结构

CPP 在其根元素上定义名称空间和版本以区分任何后续更改。CPP 的结构由根协作协议配置文件元素和以下元素组成:

  • PartyInfo: PartyInfo 元素提供有关组织的信息。

  • 打包:打包元素提供有关消息实际构造方式的信息。消息作为 SOAP 消息进行处理。

  • 签名:文件的可选部分

  • 注释元素:可以包含。

<CollaborationProtocolProfile
xmlns="http://www.ebxml.org/namespaces/tradePartner"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="1.1">
<PartyInfo>
    ...
    <!--REQUIRED, Repeatable-->
...
</PartyInfo>
<Packaging id="ID">
    ...
    <!--REQUIRED-->
    ...
<Packaging>
<ds:Signature>
    ...
    <!--OPTIONAL-->
    ...
</ds:Signature>
<Comment>
    ...
    <!-- OPTIONAL -->
    ...
</Comment>
</CollaborationProtocolProfile>

贸易伙伴协议

贸易伙伴协议 (TPA) 是定义贸易关系双方的法律条款和条件以及技术规范的合同。CPA 源自贸易伙伴的 CPP。

电子 TPA 指定的规则独立于任何一方的业务流程。TPA 的条款和条件的技术描述以 XML 文档的形式表达,该文档将每个 IT 系统配置为在协议规则下运行。

TPA 属性包括其名称、合作伙伴名称、开始和结束日期、角色和其他参数。通常,一方生成 CPA 并将其提供给另一方批准。一旦双方达成协议,他们就会各自获取同一 CPA 的电子副本,并用它来配置自己的系统。

CPA 也可以添加到注册表中以供参考,但这不是标准要求。

注册会计师的结构

CPA 在其根元素上定义名称空间和版本以区分任何后续更改。CPP 的结构由根协作协议协议元素以及以下元素组成:

  • 开始和结束:这些元素以协调世界时表示该 CPA 有效期间的开始和结束。

  • PartyInfo: PartyInfo 元素提供有关组织的信息。这里包含协议双方的 PartyInfo 元素。

  • 打包:打包元素提供有关消息实际构造方式的信息。消息作为 SOAP 消息进行处理。

  • 签名:文件的可选部分。

  • 注释元素:可以包含。

<CollaborationProtocolAgreement
xmlns="http://www.ebxml.org/namespaces/tradePartner"
xmlns:ds = "http://www.w3.org/2000/09/xmldsig#"
xmlns:xlink = "http://www.w3.org/1999/xlink"
cpaid="http://www.example.com/cpas/CPAS"
version="1.7">
<Status value = "proposed"/>
<Start>1998-04-07T18:50:00</Start>
<End>1999-04-07T18:50:00</End>
<ConversationConstraints invocationLimit = "150"
concurrentConversations = "10"/>
<PartyInfo>
    ...
    <!--REQUIRED, repeatable-->
    ...
</PartyInfo>
<PartyInfo>
    ...
    <!--REQUIRED, repeatable-->
    ...
    </PartyInfo>
<Packaging id="N20">
    ...
    <!--REQUIRED, repeatable-->
    ...
</Packaging>
<ds:Signature>
    <!--OPTIONAL-->
</ds:Signature>
<Comment xml:lang="en-gb">
    <!--OPTIONAL-->
</Comment>
</CollaborationProtocolAgreement>

ebXML - 注册和存储库服务

什么是注册表和存储库:

ebXML 注册表充当存储库到外部世界的索引和应用程序网关,并且它包含管理各方如何与存储库交互的 API。ebXML 存储库是组件的持有者。

  • ebXML 注册表是 ebXML 架构的核心。

  • 注册表还可以被视为支持 ebXML 电子商务的项目数据库的 API。

  • ebXML 注册表充当数据库,用于共享 ebXML 业务交易的相关公司信息,例如公司能力、业务流程、技术蓝图、订单、发票等。

  • 存储库中的项目是通过向注册表发出的请求来创建、更新或删除的。

  • 存储库为贸易伙伴提供共享的业务语义。

  • ebXML 注册表是用于访问和发现共享业务语义的接口。

  • 注册表接口设计为独立于底层网络协议栈,例如 TCP/IP 上的 HTTP 或 SMTP。

注册表提供了提交内容的稳定、持久存储,其中包括 XML 模式和文档、流程描述、核心组件、上下文描述、UML 模型、有关各方的信息,甚至软件组件。这可以表示为服务的软件堆栈,如下所示:

注册表堆栈

ebXML 注册中心的目标

ebXML 注册中心的目标是使相关方之间能够共享信息,以实现它们之间的业务流程集成。

ebXML 注册表的优点

ebXML 注册表具有以下优点:

  • 发现和维护注册内容。

  • 支持协作开发,用户可以创建 XML 内容并将其提交到注册表以供授权方使用和潜在的增强。

  • 在贸易伙伴之间的交互过程中,Web 服务业务流程执行语言 (WS-BPEL)、WSDL 和业务文档的持久性。

  • 注册内容的安全版本控制。

  • 合作注册机构联合,通过注册内容的无缝查询、同步和重定位来提供注册内容的单一视图。

  • 通过电子邮件或 Web 服务进行事件通知。

遵守

根据 ebXML 注册表服务规范,如果注册表实现满足以下条件,则它符合 ebXML 规范:

  • 它支持 ebXML 注册表信息模型。

  • 它支持注册表接口和安全性的语法和语义。

  • 它支持 ebXML 注册表 DTD。

  • 对注册表中 SQL 查询的语法和语义的支持是可选的。

如果注册表客户端实现满足以下条件,则它符合 ebXML 规范:

  • 它支持 ebXML CPA 和引导过程。

  • 注册表客户端接口的语法和语义。

  • ebXML 错误消息 DTD。

  • ebXML 注册表 DTD。

注册表对象和元数据

注册表对象

指提交给注册表进行存储和保管的对象

  • 称为“存储库项目”

  • XML 文档或 DTD、业务流程模型、CPP 等。

元数据

  • 注册表使用它来分类和管理注册表对象。

  • 它由注册表项表示

注册信息模型 (RIM)

注册表信息模型 (RIM) 为 ebXML 注册表中的元数据提供了高级蓝图。这可以表示为服务软件堆栈或服务Pyramid,如下图所示。信息模型的元素表示有关内容的元数据,而不是存储库中的内容本身。注册表信息模型定义了注册表中存储和组织的对象的类型。

信息模型是元数据类型和元数据之间关系的路线图。注册表信息模型可以被映射到关系数据库模式、对象数据库模式或一些其他物理模式。

RIM 堆栈

ebXML - 核心组件

“核心组件捕获有关现实世界业务概念的信息,以及该概念与其他业务概念之间的关系。核心组件可以是单个业务信息,也可以是一系列业务信息。它是核心,因为它发生在许多不同领域的工业/商业信息交换”

...Eric Chiu 简化的 xbXML 定义形式

核心组件是一个基本的、可重用的构建块,其中包含表示业务概念的信息。采购订单各部分的核心组件的一些示例包括采购订单日期、销售税和总金额。

一般来说,核心组件用于许多不同的领域、行业和业务流程。在 ebXML 环境中,核心组件是消息和文档中使用的 XML 语义和业务词汇的构建块。

从业务流程中的特定业务文档中,我们可以引用核心组件,它保存着最小的电子商务信息集。如果说业务流程是电子商务术语中的动词,那么核心组件就代表了名词和形容词。

核心组件可以跨多个业务部门使用,但它也可以变得特定于业务领域(例如单个行业领域)的上下文。

核心组件与注册表一起使用,因为它可以使用标准 ebXML 注册表进行存储和检索。中央核心组件库可作为跨行业业务流程的常见业务实践的参考文档。

工具和参考

ebXML为业务和技术分析师提供的核心组件的基本参考和工具列表如下:

  • 上下文和核心组件的可重用性:本文档包含上下文定义、分类值列表的来源以及描述核心组件和上下文描述符关系的图形模型。

  • 上下文驱动程序目录:本文档提供上下文驱动程序目录。

  • 文档组装和上下文规则:这描述了使用上下文驱动的核心组件组装文档的过程和模式。

  • 核心组件词典:本文档分为几个部分。每个部分都以有关适用类别和核心组件类型的信息开始。

  • 核心组件编辑器和浏览器:这些工具可帮助分析师浏览现有核心组件并将其集成,以定义贸易伙伴之间交换的 XML 消息的格式,并正确定义和应用上下文规则。

核心组件示例:

  • 核心组件A:

    • 供应商(行业1)
    • 制造商(行业2)
    • 供应商(行业 3)
  • 核心组件B:

    • 经销商(行业1)
    • 批发商(行业2)
    • 商家(行业3)
  • 核心组件C:

    • 商店(行业1)
    • 出口(行业2)
    • 零售商(行业 3)

结论

核心组件是 -

  • 唯一可识别。
  • 可重用的低级数据结构
    • -例如,政党、地址、电话、日期、货币
    • -上下文相关
  • 用于定义业务流程和信息模型。
  • 促进不同系统之间的互操作性。
  • ebXML 中的核心组件可以包含另一个核心组件。

ebXML - 消息传递服务

一条完整的消息称为消息包,它是一个多用途 Internet 邮件扩展 (MIME) 对象。消息包包含两个主要部分:

  • SOAP 消息容器:这是消息的必需部分,包含 ebXML 的 SOAP 扩展元素,例如路由信息、贸易伙伴信息、消息标识和传递语义信息。

  • 有效负载容器:这是消息的可选部分,可以包含要在各方之间交换的任何类型的信息。

消息传递设计标准

根据消息服务规范,ebXML 消息服务的设计目标是:

  • 尽可能利用现有标准。

  • 实施起来要简单。

  • 支持各种规模的企业。

  • 支持多种通讯协议(HTTP、SMTP、FTP等)

  • 支持任何类型的有效负载(XML、EDI 交易、二进制数据等)

  • 支持可靠的消息传递。

  • 确保安全。

消息传递架构

ebXML 消息服务被设计为在 ebXML 计划的整体环境中工作。但ebXML技术架构是模块化的,消息服务可以独立于ebXML使用。

ebXML 消息服务在业务应用程序和网络协议之间具有三个逻辑架构级别:

  • 消息服务接口 (MSI):它是业务应用程序调用消息处理程序功能来发送和接收消息的应用程序接口。与 ODBC、JDBC 和其他抽象服务接口类似,它将消息处理程序功能公开为业务应用程序开发人员定义的 API 集。

  • 消息服务处理程序(MSH):它具有基本服务,例如标头处理、标头解析、安全服务、可靠消息服务、消息打包和错误处理。

  • 消息传输接口 (MTI):它旨在通过各种网络和应用程序级通信协议发送消息。传输接口将 ebXML 特定数据转换为网络服务和协议承载的其他形式。这涉及两方之间的完整交换,依托网络堆栈中的现有协议。

ebXML 消息传递架构如下图所示。

ebXML架构

消息格式:

ebXML 消息必须根据 ebXML 消息服务规范进行格式化,并且必须符合 MIME 语法、格式和编码规则。XML 元素的定义由 XML 模式提供,该模式扩展 SOAP 以定义 ebXML 消息标头、跟踪标头、清单、状态和确认。

结论

ebXML 消息必须根据 ebXML 消息服务规范进行格式化,并且必须符合 MIME 语法、格式和编码规则。XML 元素的定义由 XML 模式提供,该模式扩展 SOAP 以定义 ebXML 消息标头、跟踪标头、清单、状态和确认。

ebXML 消息传递 -

  • 使用带有附件的 SOAP 作为负载信封。

  • 运行在各种通信协议上,例如 HTTP、SMTP、FTP。

  • 支持业务事务中所需的高级语义。(安全可靠)

ebXML - 使用示例

下图显示了 ebXML 场景,这使得您可以轻松掌握 ebXML 的概念。该示例取自技术架构规范。

使用示例

该示例展示了组织如何为 ebXML 做准备、寻找新的贸易伙伴,然后从事电子商务。

  • A 公司浏览 ebXML 注册表以查看在线可用的内容。最好的情况是,A 公司可以重用其行业中已存储在 ebXML 注册表中的所有现有业务流程、文档和核心组件。否则,A 公司设计缺失的部分,将它们存储在 ebXML 注册表中,并提供给其行业合作伙伴。

  • A 公司决定以 ebXML 方式开展电子商务,并考虑实施本地 ebXML 兼容应用程序。ebXML 业务服务接口 (BSI) 提供公司与外部 ebXML 世界之间的链接。该公司必须创建一个协作协议配置文件 (CPP),它描述支持的业务流程功能、约束和技术 ebXML 信息,例如加密算法的选择、加密证书和传输协议的选择。

  • A 公司向 ebXML 注册机构提交其 CPP。从那时起,公司 A 在 ebXML 注册表中公开列出,并且很可能被查询新贸易伙伴的其他公司发现。

  • B 公司已在 ebXML 注册处注册,并正在寻找新的贸易伙伴。公司 B 查询 ebXML 注册表并接收​​公司 A 的 CPP。然后,公司 B 拥有两个 CPP:公司 A 的 CPP 和其自己的 CPP。两家公司必须就如何开展业务达成一致,这在 ebXML 术语中称为协作协议协议 (CPA)。B 公司使用 ebXML CPA 形成工具根据两个 CPP 的要求导出 CPA

  • 在该场景中,B公司直接与A公司沟通,将新创建的CPA发送给A公司接受。A公司同意CPA后,双方就可以开展电子商务了。

  • 然后,公司使用底层 ebXML 框架并交换符合 CPA 的业务文档。这意味着两家公司都遵循 CPA 中定义的业务流程。