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

10.2 身边的XML应用-频道定义格式CDF

传统关系数据库对XML的支持-Xhive

9.4.2.1 Xhive

XHive是由The Connection Factory 开发的XML数据库产品,该数据库是建立在一种面向对象数据库管理系统Objectivity基础之上的。它提供了对事务、缓存、会话池、安全性以及数据和文档的版本控制等机制的支持,另外,还支持XML DOM、XPath、XPointer和XLink的实现。Xhive能够访问JDBC数据库中的数据,除此之外,它还内置了一系列工具用于编辑、管理、装载数据和构造查询语句。尽管Xhive可以用作XML数据库,但是它更多地将被作为下一代文档存储应用的存储引擎。

相关网址:http://www.xhive.com/

传统关系数据库对XML的支持-XML Repository

9.4.2.2 XML Repository

XML Repository是由ozone-db.org开发的一种带有公开源代码性质的XML数据库,该数据库建立在ozone面向对象数据库和MonsterDOM技术的基础之上。对于一组给定的文档,用户可以指定其中每一个文档在分层结构中的位置,就象它们存储于文件系统之中一样。文档之间是相互独立的,但是可以通过其存储路径来访问。尽管每个文档在数据库中仅仅存储一次,但是通过一种类似于UNIX文件系统中符号连接的机制,使得它们可以在分层结构中的不同位置出现。XML Repository的这种机制使得数据库中的文档可以运用XPath来进行查询和定位,进一步扩展了XML文档。

相关网址:http://www.ozone-db.org/xml-repository/xml-repository_contents.html

传统关系数据库对XML的支持-eXcelon

 

 
9.4.2.3 eXcelon

eXcelon公司是总部设在美国Burlington, MA的一家公司,原名Object Design。该公司专门为那些通过Internet进行动态B2B电子商务交易的公司提供相关产品和服务。 eXcelon公司的动态B2B解决方案号称是完全基于标准的,它通过将XML应用于其产品之中,可以帮助客户建立高效的运行环境,从而为选用该方案从事Internet上交易的公司消除了技术上的壁垒。而eXcelon则是eXcelon公司推出的一个XML应用开发环境和发布平台,主要用于开发电子商务应用。

eXcelon框架结构包括:eXcelon工具箱、eXcelon数据服务器、eXcelon Xconnects。

  • eXcelon工具箱:开发基于XML电子商务应用的集成工具包,简单易用,可以开发数据驱动的Web页面和XML应用。其中又包含了四个工具:

    • eXcelon Studio能够可视化地定义XML Schema、生成html Form、数据驱动的Web页面、XSL 样式单以及eXcelon服务器扩展。

    • eXcelon Explorer可以用于存储、查询、组织、更新(包括增加、删除、修改)XML数据。

    • eXcelon Manager可以用来创建、管理XML Store,配置Cache、优化存取,设置用户安全性、文件的访问权限以及eXcelon活动审核。

    • Stylus XSL Editor是一个可视化的XSL编辑器,利用它,可以方便快捷地根据已有的XML文档创建XSL样式单以便将XML文档转换成html或其它XML文档。

  • eXcelon数据服务器:一个高性能的支持电子商务应用的数据引擎。内置XML数据库,可存储、管理、发布XML数据。eXcelon借助ObjectStore这一面向对象数据库系统存储XML数据。同其它基于XML数据库系统不同,eXcelon在存储XML数据时并不要求Schema或DTD约束,从而提供一一定的灵活性。另外,非XML数据(如图像、Word文档、PDF文档等)在ObjectStore中是作为BLOB(Binary Large Object)来存储的。

  • eXcelon Xconnects:可用于连接任意数据源

  • eXcelon提供了一套完整的开发机制和开发包,帮助开发者创建各种不同的应用系统,包括:COM Client API, COM Server Extension API, Java Server Extension API, Web Server Extension。

    • COM Client API
      提供了一组开发XML应用的COM接口。eXcelon Manager, eXcelon Explorer, eXcelon web Server extension都是利
      用COM Client API作为同eXcelon Server的接口。使用该API时,首先要初始化一个eXcelon Client Factory 对象(在xlnisapi.dll中定义):Set eXcelon = CreateObject(“ODI.eXcelon”);接着获得一个Session用于访问XMLStores:Set session = eXcelon.GetSession(“”, 0)或一个eXcelon系统实现来管理eXcelon:Set system = eXcelon.GetSystem(“”, 0)……

    • COM Server Extension API和Java Server Extension API
      Server Extension实际上是在eXcelon Server中的一组Java或COM代码,它通过DOM来来操作XMLStore中的数据,并且返回XML以及其他类型数据。EXcelon提供了两种Server Extension API:COM Server Extension API和Java Server Extension API。前者用于实现一个或多个eXcelon Java接口,它决定着eXcelon调用的方法;后者则用于实现IXInServerExtension IXInServerExtensio接口,当一个eXcelon客户程序调用COM Server Extension时,eXcelon将创建该COM Server Extension对象并访问IXInServerExtension接口,如果该对象支持这一接口,那么eXcelon将会调用相应的方法来执行该extension;否则操作失败。开发Server Extension的步骤如下:

    • 使用Java Server Extension API或COM Server Extension API编写代码。EXcelon提供相应的调试环境。

    • 安装(Java 代码)或注册(COM组件)。

    • 在XMLStore中创建一个Server Extension引用(Server Extension Reference)。

    • 使用COM Client API编写客户程序来调用该Server Extension。

    • Web Server Extension

      Web Server Exntension为开发者提供了由Web客户端访问XMLStores的机制,其优点在于简化了Web客户端的开发工作量。这时的Web客户端可以是各种Web浏览器,也可以是其它的基于HTTP的客户应用系统。最直接的Web Server Extension的使用是在Web浏览器中以URL的方式存取XMLStores,另外也可以通过GET和POST的方式进行。语法定义如下:

    http://hostname/dirname/servicename/filename
    [?requesttype= value]
    [&optargs]
    [&exql= query]
    [&xlnupdate= expression]
    [&xslsheet=xslfilepath&export=HTML]

    最后,我们来看一看eXcelon所具有的优点:

    • 易用性:能够可视化地定义XML Schema、生成HTML Form、数据驱动的Web页面、XSL 样式单以及eXcelon服务器扩展。

    • 可扩展性:eXcelon借助XML的可扩展性,提供一定的灵活性和可扩展性。

    • 数据的高度集成:eXcelon可处理结构化和非结构化数据,并且将数据以一种单一性的逻辑视图进行管理,因此可以允许应用程序查询整个XML数据,而不仅仅是若干孤立的XML片断。

    • 标准性:eXcelon遵循国际标准,支持W3C制定的标准和草案:XML、DOM、XSLT、Xpath、XQL。

    相关网址:http://www.odi.com/%20http://www.exceloncorp.com/

    9.3 XML数据交换技术-WDDX Web分布式数据交换

    9.3.9 WDDX Web分布式数据交换

    WDDX,英文全称为Web Distributed Data Exchange,译为中文则是Web分布式数据交换。WDDX是一种基于XML的技术,有了它即使是再复杂的数据也都可以在Web应用程序间相互交换,进而构建所谓的"Web网络联盟"。所谓“Web网络联盟”是基于这样一种概念,也就是说,它描述了一种业务运作方式和操作环境。在这种环境下,一个Web站点团体的内容和商业资产可以被作为一种服务和数据提供给其他Web 站点,并允许这些站点同其他站点结盟。从这种意义上讲,Web网络联盟则是集成了内容和事务以产生更高整体价值的Web站点网络。现在已经有一些典型的Web网络联盟,比如象 Amazon.com的加盟计划,Web诚意计划,以及后台支付处理(如Cybercash)。 WDDX对Web网络联盟的支持是通过在Web系统之间提供一种简单而又透明的粘合剂以传输数据来完成的。利用WDDX,一个采用perl构建的动态Web站点可以非常方便地同基于其他平台的Web 系统交换数据库数据甚至数据库事务和过程,而不论这种异构系统采用的是ASP还是ColdFusion;反之亦然。

    Allaire 发布WDDX的目的是用来解决在Web应用间传输关键数据。需要特别指出的是,最初,Simeon Simeonov-Allaire的语言技术设计师创造了WDDX,用以解决在ColdFusion中遇到的分布计算问题。后来,这项工作进一步发展,演变成为一种跨语言的框架结构,并且最终导致了WDDX SDK和WDDX.org的诞生。WDDX SDK是由一位独立Web开发者-Nate Weiss开发成功的,当然其成功是同Allaire以及其他一些第三方的大力支持分不开的。

    讲到这里,也许你要问:WDDX是一种标准吗?它是否被W3C或者其他标准组织采纳?需要指出,WDDX并不是一种正式的标准,并且尚未提交给W3C或其他标准组织。但这并不是说,WDDX没有利用价值。相反,它具有相当光明的前景。第一,它是一种免费软件,可以被自由地使用和发布;第二,它是根据开放、基于标准的技术,如XML 1.0,来制定的;第三,WDDX是技术与智慧的结晶,对于分布式Web应用具有巨大的推动作用。那么,WDDX究竟有哪些具体的优点呢?

  • WDDX可以给Web开发者带来好处。它解决了在不同Web应用环境(如javascript、 ColdFusion、 perl、 ASP/COM和Java)之间交换数据中的关键问题,不同的应用可以通过WDDX方便地进行跨语言、跨系统、跨平台的复杂数据共享。开发者能够更加方便地构建系统用于在浏览器和服务器或者不同的应用服务器间交换数据,集中精力处理应用规则和算法,而不必关心不同应用的语言环境。
  • WDDX可以使利用Web进行通讯和电子商务的公司受益。WDDX给他们带来的首要好处在于能够产生新的商业和客户关系。比如说,Web零售商可以方便地将他们的产品通过其他站点发布到客户手中,然后再将他们产品的销售和市场运作转至那些更加易于直接同客户打交道的Web转售商网络。举例来说,某个大型厨具零售商希望利用WDDX将产品发布到其他站点,另外一个站点可以通过他们的站点来提供原始零售商的产品--厨具。不过,实际的商业交易还是在原始零售商的Web站点来管理和运作的。对于客户来说,他们将从特定的商品供应和惬意的购物经历中获取满意的商品;对于中间站点来讲,他们可以通过提供自己并未直接供应的产品和服务来受益;而零售商则可以通过利用网络联盟发布产品来接触更多的客户。同样,类似的模型也可以适用于传统的供应链业务和企业对企业外部网,因为在这些应用中,企业也是需要将其销售、产品等信息发布到供货商或者合作伙伴。
  • WDDX由两大部分组成,第一部分是根据XML 1.0 DTD规范制定的一种语言独立的数据描述,第二大部分是为那些使用WDDX的语言而制定的一组模块。熟悉Web应用的人都知道,目前Web领域几乎所有的标准的开发环境(如ColdFusion,Perl,ASP,Java,javascriptphp,etc)都包含内在数据结构,比如数组(array)、 纪录集(record sets)和数据对(value pairs)。 WDDX为每一种语言提供了一个模块,可以自动地将这些内在数据结构加以序列化或者翻译成一种精炼的基于XML的描述;反之亦然。举个典型例子,利用WDDX程序员可以在ColdFusion中获取一个复杂数组的值,将其序列化成为XML,然后将其发送给ASP服务器,最后再通过反序列化将XML转换成一个VBScript的数组对象,而原先的所有数据类型都被无损转换。这样一来,通过将所有的XML处理和交互过程转移至WDDX模块中,开发者就不必再对XML文档本身进行编程和处理,从而使得这种语言之间的转换过程对于开发者相对更加透明。

    WDDX的开发需要借助WDDX SDK。WDDX SDK是一个软件开发包,它允许Web应用开发者使用WDDX开发分布式Web应用和Web网络联盟。WDDX SDK同时也是一种自由软件,它在http://www.wddx.org/网站发布。 WDDX并不需要开发者事先了解如何使用XML。WDDX的一个重要优点就是开发者可以在Web上任意交换结构化数据而不必直接编写XML,从这个意义上讲,WDDX是一种"XML中间件",编程语言是将其做为一种在数据间交换的传送工具来使用。目前WDDX SDK包含了一些模块,用以提供对多语言的支持。WDDX同时也适用于非Web应用或Windows应用。将WDDX同COM相结合,开发者可以使用任何流行的Windows应用开发环境,包括Visual Basic、delphi、PowerBuilder、C++和Java,进行分布式数据访问和数据存储。

    在数据传输方面,WDDX广泛支持基于原文数据传输的协议,如HTTP、SMTP、POP、FTP等等。由于WDDX是建立在XML和HTTP的核心之上,因此也就相应继承了Web环境的安全性模型。WDDX数据包可以在具有SSL的HTTP上安全传送,并且由于WDDX数据包仅仅是一些数据串,因此,开发者可以非常方便地利用加密技术对其进行加密和解密。开发者构建能够远程访问需要授权的WDDX数据的分布式应用时,将需要利用Web服务器或应用服务器内在的验证机制以及面向用户的安全服务。

    一般来说,任何需要通过Web同其他应用共享数据的应用都可以利用WDDX来构建。比较典型的应用是Web网络联盟和企业对企业内部网和外部网应用,因为在这些应用中企业都需要发布数据,如产品信息、供应链数据、客户数据、订单数据等等。由于WDDX是语言独立并且是通过HTTP传送,因此开发者可以利用ColdFusion或者ASP构建应用,并且发布数据到支持WDDX的过程应用中,再由这些过程应用使用Perl,ColdFusion,ASP或者其他支持WDDX的语言来访问数据。这样一来,就消除了在使用不同语言环境的合作伙伴间共享数据所造成的开销和复杂度。除此之外,连接传统Windows桌面系统和Web系统的应用也可以利用WDDX来构建,这对于那些涉及重要的、离线数据输入与收集的应用很有用。

    最后,我们将WDDX同其他相关技术作一个简单的比较。

    首先来看一下WDDX同标准的XML数据存取的区别。标准的XML数据存取利用DOM API访问和管理XML文档,而在DOM开发模型中,开发者可以通过编程对任意的XML文档结构进行存取。利用WDDX,开发者不会直接操作XML数据,而是借助特定的语言模块对从其他语言转换来的数据进行存取。通常情况下,基于DOM的XML数据存取同基于WDDX的数据交换具有不同的适用范畴。

    关于WDDX同Vignette的ICE的比较。ICE是一种由Vignette开发和赞助的技术,主要用于在Web上进行Web内容联盟。ICE 是以事先预定好的并且互相信任的前提为基础,在有内容交易的合作伙伴间构造起一种特定的应用用以共享内容。ICE不适用于做为一种跨语言的通用协议,而WDDX 本身也不能象ICE那样做为一种结盟应用。但是,通过定制的Web应用却可以利用WDDX同其他Web应用共享数据,进而构建Web结盟网络。

    我们再来看一下WDDX同WebMethods的WIDL的比较。Web接口定义语言(WIDL)是WebMethods制定的一种基于XML技术,用于描述一种同现有的文档(如html或XML文档)的编程接口。WIDL本身并不是一种在编程语言间交换数据的技术,相反,WDDX却可以在编程语言间实时地交换数据,虽然不会从现有的Web内容中提取数据。
    下面是WDDX同XML-RPC机制的比较。RPC的意思是远程过程调用,它是一种用于分布式对象系统如DCOM和CORBA的机制,而XML-RPC机制,如DataChannel的WebBroker,致力于利用XML和HTTP以提供一个完全分布式的对象协议。介于二者之间,WDDX则是用于为Web编程语言提供一个简单的、轻型的数据交换机制。

    WDDX技术相关的网址是:http://www.wddx.org/