ebXML 快速指南



ebXML 简介

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

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

定义

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

特点

ebXML 的特点如下:

  • ebXML 是一个端到端的 B2B XML 框架。
  • ebXML 是一套规范,可以实现模块化框架。
  • ebXML 依赖于互联网现有的标准,例如 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) 的一项联合倡议。

联合国贸易便利化和电子商务中心 (UN/CEFACT)

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

结构化信息标准促进组织 (OASIS)

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

ebXML 架构

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

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

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

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

  • 定义业务流程及其相关消息和内容的方法。
  • 注册和发现具有相关消息交换的业务流程序列的方法。
  • 定义公司配置文件的方法。
  • 定义贸易伙伴协议的方法。
  • 统一的消息传输层。

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

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

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

ebXML Architecture

ebXML 业务流程

业务流程是企业执行的某项活动,例如购买电脑部件或销售专业服务。它涉及以某种可预测的方式在两个或多个贸易伙伴之间交换信息。

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

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

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

Business Process Overview

业务协作

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

最常见的是二元协作,其中两个伙伴交换文档。当信息在多于两个方之间交换时,就会发生多方协作。

多方协作实际上是编排的二元协作。

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

业务交易

业务交易是业务流程中工作的原子级别。它要么完全成功,要么完全失败。

业务交易是贸易伙伴实际传输业务文档的交易。

业务文档流

业务交易实现为在请求方和响应方角色之间流动的业务文档。总会有一个请求业务文档,并且根据所需的交易语义(例如,单向通知与双向对话),可以选择一个响应业务文档。

实际的文档定义是使用 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(联合国贸易便利化和电子商务中心建模方法)建模
  • 由业务流程规范模式 (BPSS) 正式描述
  • 由 CPP 和 CPA 引用。
  • 引用业务文档定义。

ebXML - CPP 和 CPA

协作协议配置文件

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

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

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

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

  • 业务文档的打包方式。

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

  • 对业务流程规范的每方配置。

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

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

CPP 的结构

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

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

  • **Packaging:**Packaging 元素提供有关实际构建消息的方式的信息。消息作为 SOAP 消息处理。

  • **Signature:**文档的可选部分。

  • **注释元素:**可以包含。

<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 的结构

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

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

  • 参与方信息(PartyInfo):PartyInfo元素提供有关组织的信息。此处包含参与协议的双方参与方信息。

  • 打包(Packaging):Packaging元素提供有关消息实际构造方式的信息。消息作为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模型、有关各方信息,甚至软件组件。这可以表示为如下图所示的服务软件栈。

Registry Stack

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注册中心中的元数据提供高级蓝图。这可以表示为服务软件栈或如下图所示的服务金字塔。信息模型的元素表示关于内容的元数据,而不是资源库中的内容本身。注册中心信息模型定义了存储和组织在注册中心中的对象类型。

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

RIM Stack

ebXML 核心组件

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

…由Eric Chiu简化的xbXML定义

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

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

从业务流程中的特定业务文档中,我们可以参考核心组件,它包含最少的一组电子商务信息。如果业务流程是电子商务术语中的动词,则核心组件表示名词和形容词。

核心组件可用于多个业务部门,但它也可以成为特定业务领域的上下文专用,例如单个行业领域。

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

工具和参考

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

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

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

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

  • 核心组件字典:本文件分为几个部分。每个部分都从关于适用类别和核心组件类型的资料开始。

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

核心组件示例

  • 核心组件A

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

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

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

结论

核心组件是 -

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

ebXML 消息服务

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

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

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

消息设计标准

根据消息服务规范,ebXML消息服务的設計目标是:

  • 尽可能利用现有标准。

  • 易于实现。

  • 支持各种规模的企业。

  • 支持各种通信协议(HTTP、SMTP、FTP等)。

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

  • 支持可靠的消息传递。

  • 确保安全。

消息架构

ebXML消息服务的设计是在ebXML计划的整体背景下进行的。但是,ebXML技术架构是模块化的,消息服务可以独立于ebXML使用。

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

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

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

  • 消息传输接口 (MTI):它旨在通过各种网络和应用程序级通信协议发送消息。传输接口将ebXML特定数据转换为网络服务和协议携带的其他形式。这涉及双方之间的完整交换, piggybacking on top of existing protocols in the network stack. (这句话翻译略有调整,因为直接翻译显得不通顺)

下图显示了ebXML消息架构。

ebXML Architecture

消息格式

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

结论

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

ebXML消息 -

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

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

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

ebXML 使用示例

下图显示了一个ebXML场景,这使得更容易理解ebXML的概念。此示例取自技术架构规范。

Usage Example

此示例展示了组织如何准备ebXML,搜索新的贸易伙伴,然后参与电子商务。

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

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

  • 公司A将其CPP提交到ebXML注册表。 从那时起,公司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中定义的业务流程。

广告