您正在查看: 前端开发 分类下的文章

10.3 XML与电子商务-基于XML的电子商务标准

10.3.3 基于XML的电子商务标准

当前,基于XML的电子商务标准比较多,一般也比较复杂。在5.3.5小节中我们简要地介绍了其中的几个,本节仍不打算深入标准的内部去探讨其实现,任何一个标准的深入介绍都足以形成一本专著,我们只帮助大家归纳一下这些主要标准的体系构架。

当前的电子商务标准可以分为以下三类:

  • 体系结构相关的标准:这类标准关心的是整个电子商务的体系结构,包括通用XML消息的标准,schema库等;
  • 功能相关的标准:这类标准关心供应链中各个环节的数据交换;
  • 业界相关的标准:这类标准与所涉及的行业相关,是某个行业内部的数据交换标准。
  • 体系结构相关的标准
  • 这类标准主要包括几个正在制定和已经完成的体系。

    • BizTalk
      BizTalk是Microsoft发起的电子商务的schema库,配合的产品有Microsoft的BizTalk服务器。在3.2.3节中我们曾给出了关于它的详细介绍。
    • ebXML
      ebXML是联合国UN/CEFACT小组和OASIS共同发起的计划,要在15-18个月内制定出基于XML的全球范围的电子商务数据交换的标准。ebXML涉及的方面比较广,包括:
      • 体系结构
      • 核心部件
      • 消息的封装和传输
      • 注册和保存schema的库
      • 业务处理模式

      这个标准正在制定中,期望会是一个比较全面的标准。它的Requirment、消息封装和传输已经有草案。

    • eCo
      eCo是CommerceNet 1998年就开始的一个计划,CommerceNet是由银行、通讯公司、增值网提供商、ISP、在线服务,软件和服务公司和最终用户等组成的协会,现有成员600多家公司和组织,其目的是促进B2B电子商务的发展。eCo的体系结构有点儿象网络的分层结构,它分为七层:
      • 网络(networks)
      • 市场(markets)
      • 业务(businesses)
      • 服务(services)
      • 交互作用(interactions)
      • 文档(documents)
      • 信息项(information items)

      每一层都有类型注册,接口是向外发布的,文档要包裹一层(document wrapper),发布的接口必须有一些必要的方法进行查询,查询返回的文档是特定的DTD的xml文档,每层的方法和返回的文档的结构都在规范中有描述。
      后两层eCo推荐使用simple_EDI和xCBL这两种XML的交换格式。

    • RosettaNet的PIP(Partner Interface Process)和RosettaNet应用网络标准。
      RosettaNet由诸多IT业的巨子组成的一个标准化组织,目前会员包括象Cisco Systems、Compaq、GE、HP、IBM、Intel、Microsoft、NEC、Oracle等60个企业,目的是制定一个适用于IT产品,通过WEB技术在网络上实时进行企业级交易的电子商务标准。这个标准也是分层结构,包括:
      • 动作(Action)
      • 事务(Transaction)
      • 处理(Process)
      • 服务(Sservices)
      • 消息处理(Message Handling)
      • 代理(Agent)
      • 传输(Transfer)
      • 安全(Security)

      每一层的消息都会加一些信息上去,如header,它的消息都是http的MIME消息,其中的XML正文是内容。这个标准比较注重事务处理和安全性。RosettaNet用guideline定义和约束供应链中的消息。guideline其实就是消息的DTD及其说明,但其描述能力比DTD强。

  • 功能相关的标准
  • 这类标准关心电子商务的具体环节的数据交换。XML/EDI就是这一类的标准,另外,我们前面讲到的xCBL、tpaML、cXML、WIDL(Web界面定义语言)和OTP(开放贸易协议)也都属于此类。

  • 业界相关的标准
  • 这类标准主要涉及一个行业,定义行业内部的词汇表。由于它们涉及的是特定的行业,因此数量非常的多,而且随着时间的推移,这类标准将更多。这里给出两个典型的例子:

    • 开放金融交换格式(Open Financial Exchange Format,简写为OFX),是一种用于描述保存在个人财务软件中的金融数据的标准。
    • 个性化印刷置标语言(Personalized Print Markup Language,简写为PPML),是PODi组织于2000年2月发布的个性化印刷格式语言,并已开发出相应的产品,该标准用于按需印刷(ondemand-print)。

    10.4 XML与跨媒体出版-网络出版

    10.4.1 网络出版

    随着网络的飞速发展,互联网已经成为继报刊、电台、电视台之后的一种新型媒体。在1998年5月举行的联合国新闻委员会年会上,互联网被正式冠以“第四媒体”的称号。

    相对于传统媒体,数字化的第四媒体具有难以比拟的优点。它具有信息的综合性和丰富性、充分的互动性与开放性、信息传递的快捷与超时空以及信息的大容量和灵活性。因此,互联网出现以来,就受到一些传统媒体如美联社、路透社、CNN等的关注,它们迅速登陆互联网,利用互联网提供新闻和经济信息服务。现在的网络媒体基本上可以划分为以下几类:传统媒体上网、传统媒体与其他行业共建网站、无传统媒体依托的网络媒体。也正是由于传统媒体和网络媒体的广泛合作,使得跨媒体出版愈来愈成为一种趋势。

    网络出版自从出现以来,用于信息发布的主要是html技术,但是这种方式在跨媒体出版时遇到了极大的困难。比如现在的报纸大多需要同时在网上发布和印刷发行,报社不得不需要两组人力,同时进行印刷组版和网络组版。下图示意了大多数报纸的现行作业:

    如果能够将筛选编辑过程合并,然后分别进行组版,就可以节省人力,从而达到降低成本的目的,如下图:

    另外,随着后PC时代的到来,各种如信息家电、手机、PDA等新的上网设备层出不穷。单独的html已经不能满足网络出版的需求,显示语言也各不相同。如果根据显示设备的要求制作多个版本会造成人力物力的巨大浪费,系统需要一种制作一次出版多次的技术。XML的内容与显示相分离的特点,使得它在跨媒体出版上有着得天独厚的优势,如图所示:

    传统关系数据库对XML的支持-SoftwareAG的Tamino Server

    9.4.3 SoftwareAG的Tamino Server

    Software AG是德国的一家多年从事系统软件、ERP、电子商务产品和应用解决方案的软件厂商。Software AG以MainFrame和数据库技术起家,代表产品有两大类:Enterprise Transaction Suite包括ADABAS、NATURAL(4GL),Power Suite for Internet包括Tamino、Bolero、EntireX。该公司设计开发的企业资源规划(ERP)产品Prodis可以在Unix、Windows NT以及IBM AS/400等操作系统上运行,适用于编制从销售到生产的规划,并可用Software AG的Natural程序设计语言进行修改使之适应公司的具体需要。另外,Software AG还通过从微软获得授权进行DCOM的跨系统移植工作,从而使得其基于DCOM的产品支持包括Sun Solaris、OS/390、Digital Unix、IBM AIX、OpenVMS和linux在内的6种操作系统。Tamino Server是Software AG进军电子商务市场的又一武器。

    Tamino是一种基于XML的信息服务器,可以用于电子商务系统的应用和开发。Tamino实现了完整的XML数据库系统,而不仅仅提供一种在数据库管理系统同Web应用间的转换接口。Tamino使得异构数据的存取变得更加容易,这些数据可以是简单的文本,也可以是声音、图像、视频等多媒体数据;数据的来源将不受限制,不论数据是来自于原始XML资料库(XML Store和X-Machine),还是从现有的文档甚至各种数据库系统来源读取。通过预先定义一组文档类型描述格式,再借助系统内置的Tamino Schema Editor,使得开发者可以方便地定义需要的底层数据结构;基于URL方式的数据存取方式更是大大方便了XML数据的存储与检索,使得程序员可以从编写繁琐的XML语法分析器代码中解放出来;Tamino Server提供Server Extensions编程接口,允许用户利用Visual Studio开发COM组件,通过在组件对象中嵌入商业逻辑,从而开发出适合于用户自己的应用系统。

    Tamino Server的结构如下:

    由图可以看出,Tamino提供如下功能:

    • 通过XML Store和X-Machine实现XML对象的存储与检索机制
    • 通过SQL Store 和SQL Engine实现SQL数据的存储与检索机制
    • 通过X-Node实现同外部异构数据源和应用间的接口
    • 通过Data Map管理XML数据的存取机制
    • 通过Tamino Manager进行多个Tamino服务器的Internet远程管理

    Tamino Server具有几个显著的优点:

    • 使得跨平台、跨系统间异构数据的交换与存取成为可能。在这里,XML起着不可忽视的作用。
    • 高效。作为XML引擎的X-Machine使得Tamino可以快速高效地处理大量的数据。XML数据直接以原始的对象型格式存储,无需转换成其他格式,减少了中间环节,大大提高了数据处理的效率。
    • 可扩展性。X-Node的引入,使得Tamino可以同多种数据源和应用系统联结,进一步拓展了Tamino的应用环境。Server Extension 编程接口使得开发者可以开发适合自己需要的应用系统。
    • 可管理性。通过Tamino Manager可以进行多个Tamino服务器的Internet远程管理。
    • 开放式标准。Tamino遵循开放式DBMS原理提供如OLE-DB、DCOM、ODBC和JDBC等标准接口。交换数据格式采用W3C标准XML,查询所采用的W3C草案XQL相信也会在不久的将来成为国际标准。
    • 支持全文检索。

    与此同时,Tamino Server也有它自己的弱点:

    • Tamino在XML元素内容上支持多内码,但不支持元素标记的多内码转换;另外,Tamino 工具也不支持多内码的显示。
    • 不支持URL直接的XSL样式化输出
    • URL-Based的XML数据更新功能较弱

    最后,来说说Tamino Server应用。Tamino是一种基于XML的数据管理系统,实现了XML数据的存储与检索。在电子商务、跨平台计算、信息发布等领域有较好的应用。利用Tamino开发的步骤如下:

  • 需求分析:设计出数据字典和商业规则
  • 定义数据结构:利用Tamino Schema Editor完成数据结构的定义。通过指定相应的Map-type类型,设置数据的存储方式:XML Store或SQL Store。
  • 编写代码:
    • 利用URL编写XML数据处理脚本。
      原理:在客户端通过Script动态生成XML片断或XQL语句,然后以GET或POST方式发送至Web服务器处理。
    • 利用Tamino Server Extensions编写消息处理代码
      原理:利用Visual Studio开发COM组件。Tamino Server Extensions支持下面两种类型的函数(SXF):Mapping函数和事件函数。其中Mapping函数又包括Mapping In函数,即当XML数据存储入Tamino Server 时由文档处理器调用的函数;Mapping Out函数,即当从Tamino Server检索XML数据时调用的函数。事件函数主要用于通知Server Extensions有关事件的发生,包括事务事件(如Commit/Rollback)、会话事件(如会话结束)、Server事件(如断开与Server的连接)。
  • 第十章 XML的应用和发展前景-10.1 XML应用概述

    10.1 XML应用概述

    截至目前为止,我们已经介绍了与XML相关的各种标准和技术。限于篇幅,对其中许多内容未能展开介绍,只是起到一个领路的作用,还需要各位读者在进行实际开发中,再参考更详细更权威的资料。在最后一章里,我们将简要介绍一下目前XML在各个领域的应用以及它的发展前景。一方面,XML的广泛应用和广阔前景恰恰是我们学习XML的最好理由;另一方面,我们曾经在各个章节中曾经反反复复地强调了XML的优点,而XML在实际应用中所发挥的巨大作用也正是对前面内容最好的证明和总结。

    虽然人们对XML的某些技术标准尚有争议(也许这就是许多标准迟迟不能推出的原因),但是人们已经普遍认识到XML的作用和巨大潜力。作为SGML的简化子集,XML在SGML的应用领域依然有它的用武之地,如:文档、信息管理、出版系统等。另外,XML自身的特点决定了它在SGML的应用领域外拓展出了更为广阔的天地。

    考察现在的XML应用,可以将它们分为以下几类。需要大家注意的是,这个分类并没有涵盖所有的XML应用,只是希望利用这个分类为读者提供一个XML应用的概况,而且随着时间的推移,XML的应用范围和方式必将会极大地拓展。

  • 设计置标语言
  • 作为元置标语言,XML为用户提供了定义本行业本领域的置标语言的最好工具。目前这一应用的成功例子比比皆是,例如化学领域的CML,数学领域的MathML,移动通信领域的WML等。

  • 文件保值
  • XML良好的保值性和自描述性使它成为保存历史档案,如政府文件、公文、科学研究报告等的最佳选择。

  • 数据交换
  • 数据交换无疑是XML最令人激动的应用。数据交换的核心问题是信息的标准化,主要解决信息的可理解性问题,包括人和机器对信息的理解。而且,更重要的是机器对信息的识别,并能根据数据进行自动处理。XML的出现,为信息的标准化提供了有力的工具。

    由于不同的应用领域对数据的要求千差万别,因此要想制订一个放之四海而皆准的数据交换标准是不现实的,同时也是不必要的。最典型的作法是在同一应用领域制订一个标准,参与者按照这个标准组织数据,就可以进行数据交换。比如,IBM、UNISYS和其他合作伙伴定义的XMI(XML Metadata Interchange)是一个存储和共享面向对象的程序设计信息的标准。Microsoft和Marimba合作提出的开放软件描述(Open Software Description,简写为OSD)是用于描述软件的一个XML标准。

    由于数据交换在电子商务尤其是企业-企业电子商务的核心作用,XML为电子商务带来了新的机遇和活力。

    • 替代传统的EDI
      电子数据交换(Electronic Data Interchange,简称为EDI)是XML出现以前的数据交换标准,用于在异构系统间交换数据并进行事务处理,但由于EDI难于使用和实施费用昂贵等缺点使得它没有成为数据交换的主流技术。XML的出现,使得数据交换更为廉价和方便。
    • 智能代理
      智能代理能够理解接收到的数据,然后作出相应的反应。如果数据是结构化的XML数据,智能代理就能够非常容易利用已有的知识库理解数据。XML的出现,为智能代理的发展提供了新的推动力。
  • Web应用
  • 由于XML是由SGML特别为Web简化的,因此XML文档将成为Web资源的重要组成部分,XML使得搜索引擎更为智能和准确。XML还可以用于建立多层Web应用。

    • 集成不同数据源
      XML文档可以用来描述包含在不同应用的数据,从Web页面到数据库记录等,Web应用的中间层服务程序将这些用XML表示的数据组合起来,然后提交给客户端或者下一步的应用。XML还提供了客户端包含机制,可以将多个来源的数据集成在一个文档内显示。
    • 本地计算
      XML数据传输到客户端后,客户端可以利用XML分析器对数据进行解析和操作,在完成系统所需功能的同时,合理分配客户端和服务器的负荷。比如:数据库记录可以直接传输到客户端,然后再进行排序,传统的html就无法做到这一点。
    • 数据的多种显示
      XML将内容与表现分离,XML只描述数据的结构和语义,显示外观则通过样式单文件(CSS或XSL)进行描述。因此,只需在显示时配置不同的样式单,即可实现多种显示效果。
    • 网络出版
      随着互联网的发展,网络已经成为一种新的媒体,人们在网络上发布各种信息,信息的发布形式和发布语言也多种多样,其中基于XML的显示技术和显示语言发挥了重要作用。比如eBook、eNewspaper等,就利用了XML的显示语言。
    • 支持Web应用的互操作和集成
      Web界面定义语言(Web Interface Definition Language,简称为WIDL)是webMethods定义的一个XML应用,它是一个能够用于Web的资源和企业应用接口的语言标准。通过它,Web应用可以自动存取Web资源和企业应用。

    10.2 身边的XML应用-资源描述框架RDF

    10.2.1 资源描述框架RDF

    其实,XML的应用在现阶段虽然不能称之为随处可见,但是只要留心一下,就可以发现身边其实早就存在着XML应用。

    在Netscape Navigator 4.06以后的版本中,有一项功能称为“What s Related”,用来指示与当前浏览的网页相关的站点或网页,在其中起作用的关键技术,除了数据库和搜索引擎外,就是资源描述框架RDF(Resource Description Framework)。RDF是用于处理元数据的XML应用。当用户按下“What s Related”的菜单或按钮时,浏览器将当前浏览的网页的网址传递到Netscape公司的服务器上,服务器数据库中找到该网页,并且将与这个网页关系最密切的其他网页和相关资料,以RDF格式传送回浏览器。然后以菜单方式呈现给使用者,供使用者选择。那么,究竟什么是RDF呢?它又是如何在这一应用中发挥作用的呢?

    RDF是一个处理元数据的XML应用,所谓元数据,就是“描述数据的数据”或者“描述信息的信息”。也许这样解释元数据有些令人难以理解,举个简单的例子,书的内容是书的数据,而作者的名字、出版社的地址或版权信息就是书的元数据。数据和元数据的划分不是绝对的,有些数据既可以作为数据处理,也可以作为元数据处理,例如可以将作者的名字作为数据而不是元数据处理。

    众所周知,对资源的描述是领域和应用相关的,比如对一本书的描述和对一个Web站点的描述是不一样的,即对不同资源的描述需要采取不同的词汇表。因此RDF规范并没有定义描述资源所用的词汇表,而是定义了一些规则,这些规则是各领域和应用定义用于描述资源的词汇表时必须遵循的。当然,RDF也提供了描述资源时具有基础性的词汇表。

    通过RDF,人们可以使用自己的词汇表描述任何资源,但人们更乐意将它用于描述Web站点和页面,由于使用的是结构化的XML数据,搜索引擎可以理解元数据的精确含义,使得搜索变得更为智能和准确,完全可以避免当前搜索引擎经常返回无关数据的情况。当然前提是RDF和标准化的RDF词汇表在Web上广泛使用,而且搜索引擎需要能够理解使用的词汇表。

    简单而言,一个RDF文件包含多个资源描述,而一个资源描述是由多个语句构成,一个语句是由资源、属性类型、属性值构成的三元体,表示资源具有的一个属性。资源描述中的语句可以对应于自然语言的语句,资源对应于自然语言中的主语,属性类型对应于谓语,属性值对应于宾语。由于自然语言的语句可以是被动句,因此前面的简单对应仅仅是一个概念上的类比。

    下面的例子描述了三个知名的XML站点,其中使用的词汇表是Dublin Core定义的元素集合,由命名空间http://purl.org/DC/指定,标记CREATOR表示资源的人员或组织,标记TITLE表示资源的名称。Dublin Core元素集合还包括其他已经确定的元素,另有一些元素还处于实验阶段,感兴趣的读者可以查阅相关资料。

    <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:dc="http://purl.org/DC/ ">
    <rdf:Description about="http://www.w3.org/XML/">
    <dc:CREATOR>World Wid Web Consortium</dc:CREATOR>
    <dc:TITLE>W3C XML Resource</dc:TITLE>
    </rdf:Description>
    <rdf:Description about="http://www.XML.org">
    <dc:CREATOR>OASIS GROUP</dc:CREATOR>
    <dc:TITLE>XML.org</dc:TITLE>
    </rdf:Description>
    <rdf:Description about="http://www.XML.com ">
    <dc:CREATOR>XML.commune</dc:CREATOR>
    <dc:TITLE>XML.com</dc:TITLE>
    </rdf:Description>
    </rdf:RDF>

    关于RDF的深入讨论,已经超出了本节的范畴,有兴趣的读者可以参考http://www.w3.org/TR/rdf-schema和http://www.w3.org/TR/REC-rdf-syntax,这两个文件是W3C定义的RDF规范。