xmltk:一个用于轻量级XML流处理的XML工具箱

SourceForge徽标

概述

XML工具箱由许多实用程序组成,这些实用程序对XML文件执行简单操作。我们已经构建了一个sort实用程序、一个聚合实用程序、一个映射实用程序来将Unix目录层次结构转换为XML,以及一些较小的实用程序。该工具包定义了一种二进制XML格式,它比 XML更紧凑(平均为2倍)。此格式可以作为管道中的通信格式,以实现两倍的加速。工具箱定义了一个新的索引流指数(“SIX”)所有 实用程序检查输入数据是否有预先计算的6,如果可用,则使用它。

工具箱中有两个重要的技术贡献:一个高度可伸缩的XML流处理器和一个XML流索引。这两种工具都有重要的应用,超出了工具箱的范围,应用于XML包路由和信息的选择性传播。XML流处理器实现了大约5.6MB/s的持续吞吐量,并且可以扩展到大量的XPath表达式(在我们的实验中高达1000000个)。由于处理器将所有XPath表达式转换为一个确定的自动机,因此我们进行了详细的理论分析,以证明自动机中的状态数仍然相对较小。流索引是第一次尝试索引流数据,而不是存储的数据。它必须比数据流小(我们的数据流是 6%或更少),并且必须与数据流及时到达。在使用索引处理XML流时,我们测量到的加速倍数高达4倍。

从技术角度来看,XML工具箱命令解析XML数据和处理一组XPath表达式是必不可少的。 作为这些命令的通用库,我们实现了两种新的技术 以实现高强度的XML数据处理:1)懒惰的DFA(延迟构造的确定有限自动机)基于XPath处理器,和2)(XML数据流索引)用于XML解析器。

我们已经在我们自己的标记化(二进制)SAX解析器和xerces1_4_0sax解析器上实现了这些懒惰的DFA和6。

历史

Xmltk最初是作为一个研究项目在华盛顿大学一份慷慨的礼物微软以及丹素秋国家科学基金会的职业资助 0092955和阿尔弗雷德P.斯隆研究奖学金。

该项目现在是一个开源项目

参与其中

演示幻灯片

技术文件

相关工作


评论:tjgreen@users.sourceforge.net