XML Server与XML-enabled Web Server


(来源:www.ccidnet.com)

伴随着Internet网络的一天天发展壮大,Internet已经成为一个人们不可缺少的工具,而人们为了更有效的利用网络的技术能力,而努力将各式各样的信息以各种不同的方式汇入到这个的bit海洋中,而这个信息的海洋也变得超乎想象的巨大,人们现在被铺天盖地的信息所吞没,以至于感觉到象真正置身在大海中时的那种危险。我们无法简洁有效的利用这个资源,大量的信息垃圾使得分辩信息价值变得有如在深海中寻宝一样艰难。但事实上还有许多种类的信息没有进入或者正准备进入网络,但很明显原有的信息管理技术肯定已经不能满足人们的需要,人们为了解决这个问题,而开发了许多的新的技术,其中就有我们这篇文章里的主角所采用的新技术 -- XML。
  对于XML这种技术,我想大家对它已经有了相当的了解,所以也就不再多介绍了。但是对于如何用XML开发应用,使其能够真正的发挥作用,我感觉这方面的文章还比较的少。因此以此文介绍的两种XML应用--XML Server与XML-enabled Web Server为引,同大家一起探讨如何应用XML技术。

  第一节、什么是XML Server与XML-enabled Web Server?

  什么是XML Server? 准确定义XML Server这个概念是困难的,因为这实在是一个比较新,而且概念很广泛的东西,虽然已经有许多的产品称自己为XML Server,比如:DataChannel公司的DataChannel Server 4.1;Software AG公司的Tamino;Excelon公司的excelon,但在应用的范围上以及功能上,每种产品都各不相同,因此这里也就不为XML Server进行定义,而是归纳这几种产品的共同拥有的一些特点,以说明的方式来向大家解释XML Server这个概念。
  简单地讲,XML Server是一个提供数据的平台,它能够以XML文档的形式与分布式的应用进行数据交互。比如电子商务及B2B这一类的应用。这听上去和传统的数据库非常的相似,它和数据库一样提供数据的存贮与提取功能,但数据的格式的是基于XML的,因此在数据的处理方面,所用的是和传统数据库完全不同的技术了,但抛开这个不谈,广义上我们可以认为它是一个XML数据库。至于为什么叫XML Server而不是XML Database,那是因为XML Database的范围比XML Server所应用的范围更加广泛,根据Ronald Bourret. 在XML Database Products一文中的描述,XML Database中包含有六种类型的产品,分别为:
  1.Middleware
  2.XML-Enabled Databases
  3.XML Servers
  4.XML-Enabled Web Servers
  5.Content Management Systems
  6.Persistent DOM Implementations
  XML Server被认为是XML Database其中的一种。
  XML-enabled Server则相对来讲比较容易理解,因为它本质上就是一个Web Server,对于客户端而言,浏览Web,客户端不会感觉它和传统Web Server有什么太大的区别,但实际上Server端在对REQUEST处理方法上,XML-enabled Web Server和传统Web Server是完全两种不同的方式,这是由于XML文档与HTML文档本身的特性所决定的。我们大家都知道,XML文档是一种以数据为中心的文档,XML文档本身没有格式化的信息,而是通过特定的XSL或者CSS来表现。数据和表现是分离的。而在客户端提交需求后由XML-enabled Web Server将内容与形式结合后把最终结果发布给客户端的Web Server。因此这是一种胖服务器,瘦客户的模式。这种模式同微软将XSL Parser集成到IE中的设计思想是完全不同的。它的优点是能够对不同的设备浏览Web的提供各自相应的格式的文档,而不需要人工的干涉。
  
  
  我们可以从上面的图中可以比较直观的看出XML-enabled Web Server与传统Web Server的不同。

  第二节、我们为什么需要XML Server

  为什么我们需要它?这是因为XML Server采用的是XML技术,我们需要XML理由,同样也是我们为什么需要XML Server的理由,同时,XML Server可以提供比单纯XML文档更强的管理XMl格式数据的能力!而且可以避免用传统数据库时需要进行数据转换的过程,而获得高效。

  第三节、我们为什么需要XML-enabled Web Server?

  能够将数据同表现分离,我想这也许是Web工作人员最大的希望与心愿,对于这我想实在不需要再多说什么了。:)

  第四节、它们的所存在的问题

  任何一项新的技术在没有完全成熟以前都会存在许多的缺点,XML Server同XML-enabled Server也不会例外,除去通常新产品所共有的问题(比如:需要时间学习等)以外。我认为它们分别存在下面一些缺点:
  对于XML Server:
  XML Server的性能如何,是我最关心的问题!因为它采用的是一种全新的数据组织方式,而这种方式在过去还没有得到过广泛的应用。正如我们有理由看好XML Server发展前景的同时,我们也有理由对这种没有经过大范围使用的产品持怀疑态度。事实也证明我的担心不是没有道理,我们可以看一下几种典型XML Server产品的配置需求。
  △ DataChannel Server 4.1 在Windows环境下的硬件要求:
  500MHz or faster Pentium III processor with at least 256MB of RAM
  △ DataChannel Server 4.1 在Windows环境下的硬件要求:
  Sun Ultra 10 or equivalent. At least 256MB of RAM
  △ Tamino 在Windows环境下的硬件要求:
  At least 300MHZ or faster. At least 256MB of RAM
  对于XML-enabled Web Server:
  最大的问题是XML-enabled Web Server太复杂了,比较起原来用Html和传统Web Server建设Web,懂得使用XML这些先进技术的人还是太少了,而且Server的安装也显得太复杂,而开发工具则又太专业了。如何使电脑的初级用户能很快的学会使用它,是它需要解决的另外一个问题。

  第五节、XML Server较典型的产品

  1、DataChannel公司的DataChannel Server 4.1
  一个以提供有效的企业信息管理,发布和重用的企业信息入口。它的特点是:
  ●提供纯XML格式数据的存贮(即XML数据不转换成关系型数据库的形式)
  ●XML层次形的数据结构使得它比关系型数据库管理更高效
  ●支持通过标准Web协议访问数据
  
  从上图我们可以很明了的看出DataChannel的在企业信息管理中扮演的角色。
  Software AG公司的Tamino
  Tamino 是一个便利而高效的电子商务平台,利用先进的XML技术使得电子商务过程更加平易近人。下图描绘了Tamino的一个解决方案图,从中我们可以很清晰的看出Tamino在电子商务的过程中所扮演的角色。
  

  第六节、XML-enabled Web Server 产品

  在XML-enabled Web Server 的产品中,cocoon可能是最为惹人注目的,它是Apache Software Foundation (ASF)小组用纯Java技术开发的一个Free Code的XML-enabled Web Server产品,凭借Apache Web Server的名头,恐怕没有人会不对这个产品感兴趣。
  下面我们简单介绍一下这个产品。
  1、运行环境:cocoon可以运行在下面表格所示的系统中,从中我们可以看出cocoon适用的环境非常广泛。
Operating SystemWeb ServerServlet EngineJVM
Debian Potato or WoodyApache 1.3.12JServ 1.1.2IBM JDK 1.1.8 or 1.3
RedHat Linux 6.0Apache 1.3.9Apache JServ 1.0IBM JDK 1.1.8
RedHat Linux 6.0Apache 1.3.9Apache JServ 1.1b3IBM JDK 1.1.8
RedHat Linux 6.0Apache 1.3.9Apache JServ 1.0Blackdown JDK 1.2pre2
RedHat Linux 6.1Apache 1.3.9 JRun 2.3.3IBM JRE 1.1.8
RedHat Linux 6.1 (i686)Apache 1.3.11Apache JServ 1.1Sun JDK 1.2.2
RedHat Linux 6.1 (i686)Apache 1.3.11 + mod_ssl 2.5.0Apache JServ 1.1IBM JDK 1.1.8
RedHat Linux 6.1Apache 1.3.12-2Jserv 1.1.2-2JDK 1.2.2_006
RedHat Linux 6.2 (i686)Apache 1.3.12 + mod_ssl 2.6.5JRun 2.3.3Sun JDK 1.2.2
RedHat Linux 6.2Apache 1.3.12-2Tomcat 3.1JDK 1.2.2_006
RedHat Linux 6.2 (i686)Apache 1.3.12Resin 1.2.b1Sun JDK 1.2.2
SuSE 6.3 LinuxApache 1.3.9Apache JServ 1.1Sun JDK 1.2.2
SuSE 7.0 Linux (2.2.16)Apache 1.3.12Apache JServ 1.1.2, Tomcat 3.1IBM JDK 1.3
Windows 98Apache 1.3.9Apache JServ 1.0Sun JDK 1.2.2
Windows 98Apache 1.3.9Apache JServ 1.0IBM JDK 1.1.7
Windows 98Apache 1.3.9Apache JServ 1.1b3Sun JDK 1.2.2
Windows 98Apache 1.3.9Apache JServ 1.1b3IBM JDK 1.1.7
Windows 98MS Personal Web ServerServletExec 2.2Sun JDK 1.2.1
Windows NT 4.0IIS 4.0ServletExec 2.2Sun JDK 1.2.1
Windows NT 4.0IIS 4.0JRun 2.3.3Sun JDK 1.2.1
Windows NT 4.0Apache 1.3.9JRun 2.3.3Sun JDK 1.2.2
Windows NT 4.0Apache Jakarta Tomcat 3.1 Milestone 1Sun JDK 1.2.2
Windows NT 4.0 SP4BEA WebLogic Server 5.1 SP3Sun JDK 1.2.2
Windows NT 4.0 SP5IIS 4.0Websphere 3.5 EnterpriseIBM JDK 1.2.2
Windows NT 4.0 SP6aApache 1.3.11Apache JServ 1.1Sun JDK 1.2.2
Windows 2000 ProfessionalApache 1.3.12Apache JServ 1.1Sun JDK 1.2.2
Windows 2000 ProfessionalApache 1.3.12Tomcat 3.1 Sun JDK 1.3
Windows 2000 Advanced ServerTomcat 3.1 JDK 1.3
MacOS 8.5+Resin 1.1bMRJ 2.2
MacOS 8.6Tomcat 3.1MRJ 2.2.2
MacOS 8.6WebSTAR 4.0JRun 2.3MrJ 2.1.4
MacOS 8.6WebSTAR 4.0ServletExec 2.1Mrj 2.1.4
MacOS 8.6Quid Pro Quo 2.1.3ServletExec 2.2Mrj 2.1.4
Solaris 2.5.1Netscape-Enterprise/3.6 SP3ServletExec 2.2Sun JDK 1.2.1
SunOS Netria 5.6Apache 1.3.9Apache JServ 1.1b3Sun JDK 1.1.7
Solaris 8 (SPARC)Apache 1.3.12Tomcat 3.1Sun JDK 1.3 Beta Refresh
Solaris 8 (x86)Resin 1.2.b1JDK 1.3 beta
FreeBSD 3.4Apache 1.3.9Apache JServ 1.0Blackdown JDK 1.1.8
FreeBSD 3.4-Stable with linux_base-6.1 for linux-emulationJetty Java HTTP Server v2.3.3Blackdown jdk-1.2.2-RC4-linux-i386-glibc
FreeBSD 4.1 (RELEASE)Apache 1.3.12Jserv 1.1.2Linux JDK 1.2.2
SCO OpenServer 5WebLogic 4.5.1SCO JDK 1.1.7A
OS/2 Warp 4 FP 12Gefion Software LiteWebServerIBM JDK 1.1.8
SGI IRIX 6.5.7Apache 1.3.12Apache JServ 1.1Sun JDK 1.2.1 (SGI)

  2、cocoon的处理过程:
  cocoon将网站开发分成三个层面:
  ●内容层:编辑用定义好了的DTD或者Schema将内容输入到XML文件
  ●逻辑层:客户需要的XML文件被进行逻辑处理(注意,这里的逻辑处理和我们传统用ASP或者PHP读数据库产生文件的思想是不同的。)
  ●表现层:将通过逻辑处理过后的结果用XSL进行最后的样式加工。
  因此很好的解决了数据与表现分离的问题。因此cocoon支持以pdf,wml,html等常用格式发布xml文档,但是除此以外cocoon同传统的Web Server几乎没有区别了。

  第七节、最后

  目前国内对于XML感兴趣的人越来越多了,但是中文的XML的资料还比较少,希望能够通过此文给各位爱好XML的朋友提供一此我所知道的XML应用方面的知识。文章里介绍了几个典型的XML Server 与XML -enabled Server的产品,但事实上还有很多其它的产品没有提到,这里我且做个抛砖引玉人吧,希望以后可以看到其他朋友在这方面的文章。