XML
Server与XML-enabled Web Server介绍
伴随着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
System |
Web
Server |
Servlet
Engine |
JVM |
Debian
Potato or Woody |
Apache
1.3.12 |
JServ
1.1.2 |
IBM JDK
1.1.8 or 1.3 |
RedHat
Linux 6.0 |
Apache
1.3.9 |
Apache
JServ 1.0 |
IBM JDK
1.1.8 |
RedHat
Linux 6.0 |
Apache
1.3.9 |
Apache
JServ 1.1b3 |
IBM JDK
1.1.8 |
RedHat
Linux 6.0 |
Apache
1.3.9 |
Apache
JServ 1.0 |
Blackdown
JDK 1.2pre2 |
RedHat
Linux 6.1 |
Apache
1.3.9 |
JRun
2.3.3 |
IBM JRE
1.1.8 |
RedHat
Linux 6.1 (i686) |
Apache
1.3.11 |
Apache
JServ 1.1 |
Sun JDK
1.2.2 |
RedHat
Linux 6.1 (i686) |
Apache
1.3.11 + mod_ssl 2.5.0 |
Apache
JServ 1.1 |
IBM JDK
1.1.8 |
RedHat
Linux 6.1 |
Apache
1.3.12-2 |
Jserv
1.1.2-2 |
JDK
1.2.2_006 |
RedHat
Linux 6.2 (i686) |
Apache
1.3.12 + mod_ssl 2.6.5 |
JRun
2.3.3 |
Sun JDK
1.2.2 |
RedHat
Linux 6.2 |
Apache
1.3.12-2 |
Tomcat
3.1 |
JDK
1.2.2_006 |
RedHat
Linux 6.2 (i686) |
Apache
1.3.12 |
Resin
1.2.b1 |
Sun JDK
1.2.2 |
SuSE 6.3
Linux |
Apache
1.3.9 |
Apache
JServ 1.1 |
Sun JDK
1.2.2 |
SuSE 7.0
Linux (2.2.16) |
Apache
1.3.12 |
Apache
JServ 1.1.2, Tomcat 3.1 |
IBM JDK
1.3 |
Windows
98 |
Apache
1.3.9 |
Apache
JServ 1.0 |
Sun JDK
1.2.2 |
Windows
98 |
Apache
1.3.9 |
Apache
JServ 1.0 |
IBM JDK
1.1.7 |
Windows
98 |
Apache
1.3.9 |
Apache
JServ 1.1b3 |
Sun JDK
1.2.2 |
Windows
98 |
Apache
1.3.9 |
Apache
JServ 1.1b3 |
IBM JDK
1.1.7 |
Windows
98 |
MS
Personal Web Server |
ServletExec
2.2 |
Sun
JDK 1.2.1 |
Windows
NT 4.0 |
IIS 4.0 |
ServletExec
2.2 |
Sun JDK
1.2.1 |
Windows
NT 4.0 |
IIS 4.0 |
JRun
2.3.3 |
Sun JDK
1.2.1 |
Windows
NT 4.0 |
Apache
1.3.9 |
JRun
2.3.3 |
Sun JDK
1.2.2 |
Windows
NT 4.0 |
Apache
Jakarta Tomcat 3.1 Milestone 1 |
Sun JDK
1.2.2 |
Windows
NT 4.0 SP4 |
BEA
WebLogic Server 5.1 SP3 |
Sun JDK
1.2.2 |
Windows
NT 4.0 SP5 |
IIS 4.0 |
Websphere
3.5 Enterprise |
IBM JDK
1.2.2 |
Windows
NT 4.0 SP6a |
Apache
1.3.11 |
Apache
JServ 1.1 |
Sun JDK
1.2.2 |
Windows
2000 Professional |
Apache
1.3.12 |
Apache
JServ 1.1 |
Sun JDK
1.2.2 |
Windows
2000 Professional |
Apache
1.3.12 |
Tomcat
3.1 |
Sun JDK
1.3 |
Windows
2000 Advanced Server |
Tomcat
3.1 |
JDK 1.3 |
MacOS
8.5+ |
Resin
1.1b |
MRJ 2.2 |
MacOS
8.6 |
Tomcat
3.1 |
MRJ
2.2.2 |
MacOS
8.6 |
WebSTAR
4.0 |
JRun 2.3 |
MrJ
2.1.4 |
MacOS
8.6 |
WebSTAR
4.0 |
ServletExec
2.1 |
Mrj
2.1.4 |
MacOS
8.6 |
Quid Pro
Quo 2.1.3 |
ServletExec
2.2 |
Mrj
2.1.4 |
Solaris
2.5.1 |
Netscape-Enterprise/3.6
SP3 |
ServletExec
2.2 |
Sun JDK
1.2.1 |
SunOS
Netria 5.6 |
Apache
1.3.9 |
Apache
JServ 1.1b3 |
Sun JDK
1.1.7 |
Solaris
8 (SPARC) |
Apache
1.3.12 |
Tomcat
3.1 |
Sun JDK
1.3 Beta Refresh |
Solaris
8 (x86) |
Resin
1.2.b1 |
JDK 1.3
beta |
FreeBSD
3.4 |
Apache
1.3.9 |
Apache
JServ 1.0 |
Blackdown
JDK 1.1.8 |
FreeBSD
3.4-Stable with linux_base-6.1 for linux-emulation |
Jetty
Java HTTP Server v2.3.3 |
Blackdown
jdk-1.2.2-RC4-linux-i386-glibc |
FreeBSD
4.1 (RELEASE) |
Apache
1.3.12 |
Jserv
1.1.2 |
Linux
JDK 1.2.2 |
SCO
OpenServer 5 |
WebLogic
4.5.1 |
SCO JDK
1.1.7A |
OS/2
Warp 4 FP 12 |
Gefion
Software LiteWebServer |
IBM JDK
1.1.8 |
SGI IRIX
6.5.7 |
Apache
1.3.12 |
Apache
JServ 1.1 |
Sun 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的产品,但事实上还有很多其它的产品没有提到,这里我且做个抛砖引玉人吧,希望以后可以看到其他朋友在这方面的文章。
<全文完>
_____________________________________________________________
<来源>经CCID转载自CNXML网站/>
<作者:地藏 />
<日期>2001/01/15</日期>
|