通用业务语言-XML在电子商务领域的运用

日期: 2008-03-16 作者:Daniel Rubio 来源:TechTarget中国 英文

Web服务和XML技术使组织可以建立紧密联系合作公司的信息科技,使开发人员不必再考虑提供商、程序语言或平台这些曾经阻碍公司间IT合作的问题。   不过,除了依靠许多隐藏在这些技术后面的知名标准――如简单对象访问协议 (Simple Object Access Protocol, SOAP)、 Schema方案、Web服务器描述语言 (Web Service Description Language,WSDL)、通用描述发现和集成规范 (Universal Description Discovery and Integration,UDDI)和 WS-*等,在两个机构之间建立高层次的业务细节合作……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

Web服务和XML技术使组织可以建立紧密联系合作公司的信息科技,使开发人员不必再考虑提供商、程序语言或平台这些曾经阻碍公司间IT合作的问题。

  不过,除了依靠许多隐藏在这些技术后面的知名标准――如简单对象访问协议 (Simple Object Access Protocol, SOAP)、 Schema方案、Web服务器描述语言 (Web Service Description Language,WSDL)、通用描述发现和集成规范 (Universal Description Discovery and Integration,UDDI)和 WS-*等,在两个机构之间建立高层次的业务细节合作协议也非常关键。由于大家希望在XML的内容中了解这些问题,就产生了通用业务语言UBL(Universal Business Language)。UBL是由 OASIS (“架构化信息标准协进会”)带领开发,目的在促进电子文件格式 (例如订单或发票的格式)的标准化,从而增进企业之间的信息与数据的交流。

  通用业务语言UBL的目的非常简单:通过修改现有 XML 模式库来开发 XML 商业文档(采购订单和发票等等)的标准库,以合并其它现有 XML 商业库的最佳特性。在一个典型的涉及Web 服务的情景中, XML的灵活性是描述商业文档的福星还是阻碍?XML可以创建终端开放的可能性,但是同样也带来无数的不良后果。

  举个简单的例子,如一份实现Web 服务的订单或发票,如果完全听从设计人员的意思,那么在介绍一样的信息时,很可能每个设计人员都会拿出不同的XML结构。尽管限制在同一组织中这是可行的,但是一旦跨出公司,很快会带来经费超支的问题。使用通用业务语言UBL,它的许多商业概念可以在XML模型中任何行业适用,这样就找到了一种表示目录、发票、订单、报价单或运货单等电子商业文档的通用语言。

  如果你曾经接触过软件行业或长时间使用XML,那么你会发现通用业务语言UBL的目的与其他IT语言的目的非常相似,如电子数据交换EDI (Electronic Data Interchange)、商业XML (Commerce XML,cXML)、电子商务标准Electronic Business using XML(ebXML)、XML 通用商业库(XML Common Business Library,xCBL)和RosettaNet。不过,简而言之,通用业务语言UBL不是空想而来,它对上述标准的补充。

  目前的通用业务语言UBL 2.0版本是建立在xCBL的基础之上。它以xCBL3.0为起点,在相互协议所允许的范围内基于与使用其它XML商业库或类似技术(如:EDI)的信息交换的经验对xCBL3.0进行修改。UBL由OASIS 技术委员会支持开发,该组织支持开发了许多Web 服务标准,如ebXML。所以,保证了在整个Web 服务领域的关联度,防止出现技术鸿沟的现象。

  通用业务语言UBL提供30多种商业合同――技术上称为XML Schemas――UBL标准库是以资讯组件概念模型为基础,如业务资讯实体(Business Information Entities,BIE)。然而,面向普通商业流程模型的规范不同,UBL关注的是实施业务资讯实体背后的商业合同。列表1.1举例说明了基于UBL的BIE订单部分:

  列表1.1

  <?xml version="1.0" encoding="UTF-8"?>
  <xsd:schema http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema"
      targetNamespace="urn:oasis:names:specification:ubl:schema:xsd:Order-2"
   
    version="2.0">

  <xsd:element name="Order" type="OrderType">
    <xsd:annotation>
      <xsd:documentation>This element MUST be conveyed as the root element in any instance document based on this Schema
 expression</xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:complexType name="OrderType">

    <xsd:annotation>
      <xsd:documentation>
        <ccts:Component>
          <ccts:ComponentType>ABIE</ccts:ComponentType>
          <ccts:DictionaryEntryName>Order.   Details</ccts:DictionaryEntryName>
          <ccts:Definition>The document used to order goods and   services.</ccts:Definition>
          <ccts:ObjectClass>Order</ccts:ObjectClass>
          <ccts:AlternativeBusinessTerms>Purchase   Order</ccts:AlternativeBusinessTerms>
        </ccts:Component>
      </xsd:documentation>
    </xsd:annotation>

    <xsd:sequence>

      <xsd:element ref="ext:UBLExtensions" minOccurs="0"  maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>A container for all extensions present in the document.</xsd:documentation>
        </xsd:annotation>
      </xsd:element>

      <xsd:element ref="cbc:UBLVersionID" minOccurs="0" maxOccurs="1">
        <xsd:annotation>
          <xsd:documentation>
            <ccts:Component>
              <ccts:ComponentType>BBIE</ccts:ComponentType>
              <ccts:DictionaryEntryName>Order. UBL Version Identifier. Identifier</ccts:DictionaryEntryName>
              <ccts:Definition>The earliest version of the UBL 2 schema for this document type that defines all of the elements
 that might be encountered in the current instance.</ccts:Definition>
              <ccts:Cardinality>0..1</ccts:Cardinality>
              <ccts:ObjectClass>Order</ccts:ObjectClass>
              <ccts:PropertyTerm>UBL Version Identifier</ccts:PropertyTerm>
              <ccts:RepresentationTerm>Identifier</ccts:RepresentationTerm>
              <ccts:DataType>Identifier. Type</ccts:DataType>
              <ccts:Examples>2.0.5</ccts:Examples>
            </ccts:Component>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:element>

    <!-- More elements here -->

    </xsd:sequence>

  </xsd:complexType>
 
  之后,这些XML Schema可以在涉及到Web 服务的各种确认情景中使用,它们可以帮助确保在进行夸行业或夸国家操作时只有唯一的XML语法。可以这样说,由于通用业务语言UBL支持XSLT, XPath和ISO Schematron,所以UBL可以满足交易双方任何苛刻的需求,它支持创建子集和进行适于特定元素和子树的扩展。这些功能使一个标准UBL Schema扩展为一个简单进程。

  尽管通用业务语言UBL是以满足紧迫的多国IT业务需求为目标,要提供透明的界面、合同技术细节,不过,使用Web 服务的中小型企业也应该采用UBL作为大型实体解决方案。事实上,通用业务语言UBL在促进小型企业开放业务流程的过程中是一种完美的催化剂。

  所以,下一次当你要开始设计某个Web 服务时,当你要创建一个XML合同介绍某个业务实体时,记得要想到通用业务语言UBL。通用业务语言UBL不仅可以为你提供广为接受的合同,更能为你节约大量工作,同时,比起定制的解决方案,它更会收到业务合作伙伴的认可。

相关推荐