论文部分内容阅读
随着计算机系统性能不断提高、存储数据量急剧增加以及信息越来越复杂,用户如何高效组织和管理信息成为信息技术的重要课题。文件系统作为操作系统中存储和管理信息的主要构件,在面对海量的复杂的结构化与半结构化信息时暴露出了缺陷。另一方面,随着计算机网络和硬件的发展,计算机之间的数据交换越发频繁,需要统一的标准来规范数据的传输和交换。在这种背景下出现了可扩展标志性语言(XML),XML具有良好的自描述和跨平台性,因此大量的信息以XML的形式出现。如何高效的存储和管理XML数据成为迫切需要解决的重要课题。本论文首先对典型文件系统,包括FAT、EXT2等开源文件系统,也包括研究性质的SemanticFS,还包括微软公司的NTFS、WinFS等商业文件系统进行了深入的分析,总结了它们的主要设计思想和逻辑结构,发现传统文件系统在存储和管理较复杂的带有语义的结构化和半结构化数据时,将用户数据当作无意义的比特流,通过特定的应用程序来对文件内容进行语义相关操作,这就使得操作系统对信息控制的粒度是文件级的,这表现在传输、修改、压缩、加密、锁定等操作都是以整个文件为单位的。然而,随着信息处理要求的不断提高,操作系统不仅需要更加强大的信息检索和查询能力,而且需要对信息结构进行细粒度的控制。这种要求一方面是出于对信息安全的考虑,另一方面也是为信息内部数据的检索提供支持。显然,传统文件系统急需在信息描述、检索和语义结构方面加强。接着,本论文对XML进行了较为深入的剖析,抽象和总结了它的各种特性。在此基础上,本论文详细分析了存储XML数据的几种方案,包括基于文件系统,支持XML的数据库,纯XML数据库和基于对象管理器,总结了它们的优缺点。从数据库技术的角度阐述了现代文件系统设计中涉及到的几个重要问题及其可行的解决方案,并重点分析了支持XML的数据库和原生数据库的研究内容和技术要点,以及基于文件系统的XML数据存储方式。在基于文件系统的XML数据存储方法中,系统将XML数据视为普通的文本文件来处理,在存储和管理XML数据时有以下缺点:(1)每次访问XML文档时都需要解析它;(2)在查询处理期间,整个被解析的文件都必须驻留在内存里;(3)为了部分解决上述两个问题,可以在XML文档上建立外部索引。但当XML文档被更新时,索引是难以维护的。本论文正是在以上分析的基础上,针对已有XML存储方法(数据库和对象管理器等)的不足,交融数据库技术,语义文件系统和XML特性,对传统文件系统逻辑层的目录/文件模型、存储方法、结构的存储模型以及基于元素和属性的访问接口等问题进行了研究与分析,通过改进文件系统逻辑布局、存储文件语义结构以及提供信息检索与查询功能,给出一种支持XML数据管理的文件系统存储方法,并利用现有文件系统的文件/目录层次模型与XML树状层次模型的相同之处,将他们进行无缝的连接,在现有的ext2的文件/目录结构中,将元素节点视为目录的索引节点,将属性节点视为文件的索引节点,以达到一种高效的实现方案。在以上工作的基础上,通过分析存储和管理XML数据的关键问题,提出一种支持XML数据管理的文件系统构建模型,给出系统的体系结构以及组成模块,并详细描述了各个模块的交互关系,针对每个模块设计了具体的实现方案。本论文工作的新贡献体现在以下4个方面:1.提出了一种在文件系统上基于语义结构的XML数据存储方法。该方法在有效存储XML数据和结构信息的同时,能够深入到XML数据内部进行管理和控制,并使得文件系统具备查询和更新等新的功能。2.提出了一种新的支持XML数据管理的文件系统构建模型。该模型通过在操作系统内核中增加XML解析器、索引器、对象管理器、以及查询分析器等组件,给出各个模块的具体设计技术和实现方案,包括数据结构描述、算法实现以及各个模块的交互关系。该方法使得操作系统能够更好的支持XML数据的直接存储、查询、以及检索等功能。3.实现一种EXT2上基于目录/文件索引节点的XML结构存储方法。该方法无需改进传统文件系统的逻辑结构,对XML的结构信息进行有效的存储和管理。4.将本论文的研究应用在一种基于服务体/执行流模型的操作系统Minicore上。给出了在Minicore操作系统上的支持XML数据管理的文件系统的设计与实现方案,验证了论文研究内容的有效性。