1、基于 XML 格式存储的 WEB 信息系统设计与分析【摘要】本论文首先对传统 WEB 系统进行分析和研究,并提出其缺点和不足,针对这些传统 WEB 系统的缺点,通过对 XML 数据存储方法、XML 相关技术(如 DOM、XML Schema、数据岛技术等)的分析和探讨,提出了以 XML 格式存储的动态 WEB 模型。解决了异构数据共享和服务器端负荷过大问题的解决,提高了 Web 服务器的工作效率。 【关键词】动态 Web ,XML,数据共享 1. 动态 WEB 现状以及所存在的问题 1.2.1 动态 Web 技术现状 总结目前应用比较广泛的动态 Web 系统,我们大致可以从以下三个方面区分:(
2、1)从服务端脚本编程技术角度分,主要有 ASP.NET、PHP和 JSP 等。 (2)从服务器平台角度分,主要有 Microsoft IIS、Apache等。 (3)所使用的服务器角度分,主要有 SQL SEVER、ORACLE、DB2。 当前大部分动态 Web 系统都是通过这三个方面的不同搭配开发出来的。正是由于这样,造成了当前 Web 系统的多平台、多语言、多数据库的现象,虽然有的技术也相当成熟,但是从网络信息的共享和系统的性能角度来看,仍然存在着问题。 1.2.2 当前动态 Web 技术存在的问题 (1) 数据不便共享。Web 服务器向 Web 浏览器提供的信息都是来自有一定结构的数据库
3、,在数据库里,为了检索和管理的方便,信息按照它本身的意义(如姓名、年龄、工作单位等)被存放在相应的字段里,一旦这些数据被调出来,经过 CGI、ASP、JSP、PHP 等转换成 HTML 后,其原来的意义无法转移到 HTML 标记中来,用户也就无法按照信息本来的意义去阅读。并且,由于操作系统以及数据库的不同,不同的系统及应用层面之间要想互相理解对方的数据格式是相当困难的。 (2)服务器端负荷过大、运行效率低。目前数据库发布方式都是通过 Web 服务器调用程序模块或在 HTML 中内嵌程序的办法发布数据库.这些技术有一个共同的缺点,即在获得数据之后在服务器端动态生成超文本网页,再返回给客户端,使得
4、 Web 服务器端任务繁重,负荷过大。 2. XML 技术及问题的解决方法 2.1 问题的解决办法 2.1.1 数据共享问题的解决。由于数据的异构,要想实现异构数据共享,就必须在异构数据之间找到一种平台中立的数据格式,作为它们之间的连接点,或作为它们的替代者。这种数据格式要求能易于通过标准的互联网协议来传输,这正是 XML 的用武之地。我们知道了可以用 XML来解决这一问题之后,下面的工作就是解决如何让传输在网络中的 XML数据存贮的问题。目前存储 XML 数据的方法主要有三种:基于文件系统的存储;基于关系数据库的存储;基于面向对象数据库的存储。如果数据量大,文件系统不便管理,所以很少用到此方
5、法。面向对象数据库的体系结构非常适合存储 XML 数据,但本身技术不太成熟,用的人也不多。所以本论文只介绍 XML 数据基于关系型数据库的存储。 我们可以把 XML 作为大中型数据库(SQL Server、Oracle、MySQL、DB2 等)的 Cache。利用数据映射机制实现数据的通用表示。一般来讲将 XML 文档转换为关系数据库数据我们可以使用如下的映射规则:首先将 XML Schema 文件中的节点映射为一张单独的表。如果其子节点在子树中仅仅出现一次,则该子节点将作为其父亲节点映射表中的一列存在。否则映射为一张表。表中的每一个元组必须包括节点本身的 ID 和父亲节点的 ID。 通过数据
6、库和 XML 之间的映射,可以将数据库的信息映射为 XML 数据格式,同时也可完成相反的操作,进而实现不同数据资源的共享。 2.1.2 服务器端负荷过大问题的解决 XML 的作用除了可以为不同的应用程序提供一个公共数据交流平台外,还可以实现数据内容与应用分离,从而提高效率。总体思路是:将服务器脚本程序的查询结果转变成一个 XML 文件传送给客户端,然后在客户端恢复成纪录集的格式,由客户端进行具体的分页。这样做的优点是浏览器和服务器数据库之间只进行一个往返的数据传输,避免了同样数据反复在网络上传递。另外服务器和数据库只提供一次服务,提高了服务器和数据库的服务效率。 2.2 XML 及相关技术 2
7、.2.1 XML 的优点 (1)实现异构数据源数据的共享,它让使用不同系统和不同编程语言的人们能够相互交流和分享数据。 (2)将大量处理任务转移到客户端,减轻了服务器端的负荷,提高了系统运行效率 (3)形式的分离使 XML 供了一个优秀的方法来标记独立于平台和语言的内容,再用 XSLT 这样的语言就能够轻易的将 XML 文件转换成各种各式文件,比如 HTML,WML,PDF,EDI 等,以便满足不同类型客户端的需求。 2.2.2 XML Schema XML Schema 和 DTD (Document Type Define,文档类型定义)都是用于对 XML 文档的定义,目前 DTD 是应用
8、较广,但它有一些不足,DTD 过于复杂,采用的是非 XML 语法规则,不能用 XML 工具进行操作处理;DTD对数据类型定义支持不够,所定义的数据类型有限;DTD 也不支持名称空间,扩展机制复杂。新的验证机制一 XML Schema,正在逐步取代 DTD。它的优点在于: (1)完全符合 XML 语法,无需另外学习新语法; (2)丰富的数据类型,并且还支持由简单数据类型所生成的复杂数据类型; (3)由用户定义并且可以修改的数据类型(Archetypes,原型)使XML Schema 拥有良好的可扩展性; (4)易被 DOM 等 XML 解析器处理。 2.2.3 可扩展样式语言 XSL。XSL (
9、eXtensible StyleSheet Language)称为可扩展样式语言。XSL 定义了 XML 的语法规范,该语法规范将被用来把 XML 文件转换成 HTML, XHTML,W 或其他格式的文档。 XSL 结构转换的重要思想就是要把 XML 文档视为一种源树,转换的过程就是从源树生成结果树的过程。XSL 样式单就定义了源树和结果树中对应部分的转换规则,每条规则中包含了一个模板,同时对应着一种模式。模式规定了需要进行转换的元素或属性对象,而模板则定义了转换的结果。并且这种转换的方式是双向的,这就为数据的沟通带来了极大的方便。 2.2.4 文档对象模型 DOM。Document Object Model(文档对象模型)简称为 DOM,是对 Web 文档进行应用开发、编程的应用程序接口。作为W3C 公布的一种跨平台、与语言无关的接口规范,DOM 提供了在不同环境和应用中的标准程序接口,可以用任何语言实现。利用 DOM,开发人员可以动态地创建 XML、遍历文档,增(下转 51 页)