首页> 中国专利> 用于存档和检索标记语言文档的方法和系统

用于存档和检索标记语言文档的方法和系统

摘要

一种用于对标记语言文档存档的方法、系统和程序产品。所述方法包括步骤:识别在所述文档中的至少一个被引用资源;确定是否所述至少一个识别出的被引用资源存储在存储设备中;以及响应于不成功的确定步骤,将所述至少一个被识别出的被引用资源存储在存储设备中。

著录项

  • 公开/公告号CN1612137A

    专利类型发明专利

  • 公开/公告日2005-05-04

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN200410064141.6

  • 发明设计人 马丁·佩珀;马克·A·斯蒂芬斯;

    申请日2004-08-19

  • 分类号G06F17/30;

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人黄小临;王志森

  • 地址 美国纽约州

  • 入库时间 2023-12-17 16:08:21

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-11-02

    未缴年费专利权终止 IPC(主分类):G06F17/30 授权公告日:20071128 终止日期:20100819 申请日:20040819

    专利权的终止

  • 2007-11-28

    授权

    授权

  • 2005-07-06

    实质审查的生效

    实质审查的生效

  • 2005-05-04

    公开

    公开

说明书

技术领域

本发明涉及数据存档的领域,尤其涉及用于存档和检索标记语言文档的方法和系统。

背景技术

诸如标准通用标记语言(Standard Generalized Markup Language)(SGML)、可扩展标记语言(XML)、超文本标记语言(HTML)等的标记语言被用来在电子文档中定义数据是如何格式化和分类的。SGML是用于定义不同类型电子文档的结构描述的国际标准。SGML非常大、功能强且复杂。它已经在重工业和商务中应用了许多年,并且存在与之相随的专家知识和软件的重要实体。XML是SGML的简装删节版,它保留了其足够的功能使之可用,但是删除了使得SGML对在Web环境中编程太复杂的全部可选特征。设计XML使得通过提供特定工业的厂商中枢数据交换来满足大规模网络内容提供商的需求。HTML是在网上所使用的SGML的最小应用。HTML定义了非常简单的一类报告样式文档,附有章节标题、段落、列表、表格以及图解,附有一些信息和描述项,以及一些超文本和多媒体。

最初的设计是为了迎接大规模的电子出版的挑战,XML在Web和其他地方的各种数据交换中也扮演了越来越重要的角色。当各组织继续采用XML作为表示文档和转发数据的标准时,存在对用于存档该数据的安全、有效和可靠方法的增长的需要。然而,由于XML结构的原因,这种数据类型不能用使用标准存档处理保存传统数据的方法来存档。其原因是存在多个必须与XML文档相关联的外部项目/资源。为了真正存档和检索XML文档,并保持文档的保真度(fidelity),在XML文档中所引用的所有资源必须要么存档,要么在web服务器上可不确定地得到,因此,它们能够由XML文档引用。

XML文档由多个标记符(tag)组成。标记符定义了用于描述一个或者多个数据元素的语法,例如,<day>Monday</day>或者<customer name>IBM</customer name>,其中<day>和<customer name>是定义包括在起始<>标记符和结束</>标记符内的数据类型的标记符,而“Monday”和“IBM”是数据元素。

下面提供了XML文档(EXAMPLE1)的例子。用斜体和下划线所示的是要求用来正确格式化和显示XML文档内容的资源。

EXAMPLE 1

<?xml version=″1.0″encoding=″UTF-8″standalone=″no″?>

<?xml-stylesheet type=″text/css″href=″song.css″?>

<!DOCTYPE SONG SYSTEM″expanded_song.dtd″>

<TITLE>Great song</TITLE>

<PHOTO

xlink:type=″simple″xlink:show=″onLoad″xlink:href=″blogg.jpg

ALT=″Blogg″WIDTH=″100″HEIGHT=″200″/>

<COMPOSER>Bloggs</COMPOSER>

<COMPOSER>Bloggs</COMPOSER>

<PRODUCER>Bloggs</PRODUCER>

<LENGTH>6:20</LENGTH>

<YEAR>1995</YEAR>

<ARTIST>The blogg brothers</ARTIST>

</SONG>

在EXAMPLE1中,能够看到所述XML文档不是孤立文档,而是引用诸如样式表(style sheet)(song.css)、数据类型定义文件(expanded_song.dtd)和图像文件(blogg.jpg)的其他资源。如果blogg.jpg图像文件、song.css样式表和expanded_song.dtd数据类型定义文件没有和XML文档一起存档,则所存档的XML文档在观看时不会正确地显示。这是因为在XML文档里面的引用,即,<?xml-stylesheet type=″text/css″href=″song.css″?>,<!DOCTYPESONG SYSTEM″expanded_song.dtd″>以及xlink:type=″simple″xlink:show=″onLoad″xlink:href=″blogg.jpg″不能够分别定位所引用的资源,即song.css、expanded_song.dtd和blogg.jpg。因此,失去XML文档的保真度。

当试图存档XML时所面临的一个问题是:XML经常引用多个资源(资源可以是图像、音频文件、样式表、数据类型定义文档、数据文件等),因此,和传统的其结构是“扁平(flat)”的数据不同,XML文档具有层次结构。因此,为了完全地存档和检索XML文档,并保持所述数据的保真度,在XML文档中所引用的资源的每一个必须要么被存档,要么在web服务器上在不定量时间可获得。如果前述的情形没有出现,则因为XML文档将是不完整的,所以XML文档不会被正确地显示。

现存的已有技术系统试图通过将XML文档作为XML标记符集合来对待,而不是分析各个XML标记符和在XML文档中所引用的资源,来解决上述问题。本方法的缺点是对于每个XML文档,可以引用多个资源。随着XML文档的数量增加,要求存储的引用资源数量也增加。这又反过来产生资源的复制,并增加要求的数据存储量。

厂商正在采用的另一个解决方案是“允许关系数据库的XML”方法。不幸的是,如果诸如XML文档的层次文档放入关系数据库,则所述关系数据库将使得XML文档具有和XML自身不兼容的结构。为了克服这个问题,用模仿XML存储的外部转换层通过在XML和另一个数据格式之间转换它来配置关系数据库。这种转换是易出错的,并且导致大量的处理开销,尤其增加了事务处理率和XML文档复杂度。这种方法没有提供对诸如样式表和图像的资源的交叉引用和链接,而这对保持XML文档的完整性和保真度是基本的。

已知解决方案的另一个缺点是从数据表示格式而不是文档或者内容表示格式的观点观察XML。这意味着要求已知解决方案的厂商重新设计他们的关系数据库的数据模型,使得可以支持XML文档的复杂的多部分和层次结构。

因此,有需要提供用于存档和检索标记文档的方法和系统,使得所述文档的保真度和完整性不丢失。

发明内容

本发明的第一方面指向一种用于存档标记语言文档的方法,所述标记语言文档包括至少一个被引用资源和用于存储至少一个被引用资源的存储设备,所述方法包括步骤:识别在所述文档中的至少一个被引用资源;确定是否所述至少一个识别出的被引用资源存储在存储设备中;以及响应于不成功的确定步骤,将所述至少一个被识别出的被引用资源存储在存储设备中。

本发明提供能够以用完全保真度检索和显示XML数据这样的方法存档XML文档的能力。通过不仅存档XML文档,而且存档在一个或者多个XML标记符,即样式表、数据类型定义文件和/或图像等里面所引用的资源,能够保持所述XML文档的保真度。

根据本发明,通过解析在XML文档中包含的各个XML标记符识别所述资源。解析器(parser)定位一个或者多个“href”标记符来识别一个或者多个为正确显示XML文档所要求的被引用资源。一旦定位被引用资源,则进行检查以确定每个被引用资源是否已经存在于存储设备中。如果被引用资源已经存在于所述存储设备中,则不存储被引用资源第二次,因为这会产生内容的复制,并增加存储要求。这又反过来保持存储要求最小。

本发明的进一步优点是,在XML文档的XML标记符里面包含要求解释XML文档的结构和资源,因此不需要由数据库结构来复制。对XML标记符进行解析以识别要求来解释和显示XML文档的一个或者多个引用资源,使得本发明的数据模型能非常简单。

本发明的第二方面指向一种用于从存储设备检索存档的标记语言文档的方法,所述方法包括步骤:接收搜索请求以从所述存储设备检索存档的文档;识别在所请求的存档文档中的一个或者多个被引用资源;确定在所述存储设备中是否存储一个或者多个被引用资源;以及从所述存储设备检索请求的存档文档和所述一个或多个被引用资源。

有利的是,因为进行检查来确定请求的资源是否已经加载到文档高速缓冲存储器中,所以能够将请求的XML文档以更快的响应时间加载到多个客户设备中。如果所请求资源已经定位在文档高速缓冲存储器中,那么它对多个客户设备变成可得到的,使得请求的资源对任何给定数的客户设备能仅仅检索一次。将任何近来检索的资源高速缓存到用于增强的性能能力的服务器。

本发明的第三方面指向一种用于存档标记语言文档的系统,所述系统包括:XML索引器,用于解析所述文档以识别一个或者多个被引用资源;以及存储设备,用于至少将所述文档和所述每个被引用资源存储在存储设备中。

本发明的第四方面指向一种用于检索存档的标记语言文档的系统,包括:用于接收对存档的文档的请求的系统;XML检索器,用于在所述文档中确定至少一个被引用资源;以及加载部件,用于从存储设备加载所述文档和所述至少一个被引用资源。

本发明的第五方面提供一种能直接加载到数字计算机的内部存储器中的计算机程序产品,包括软件代码部分,用于当所述产品在计算机上运行时执行如上所述的方法。

附图说明

现在参照附图,仅仅通过举例的方式描述本发明的实施例,其中:

图1是根据本发明的XML文档存档系统的示意性概览;

图2是详述根据本发明的XML文档存档处理的操作步骤的流程图;

图3是根据本发明的XML文档检索系统的示意性概览;以及

图4是详述根据本发明的XML文档检索处理的操作步骤的流程图。

具体实施方式

参照图1,解释服务器100,所述服务器100包括:存档系统105,用于将XML文档100存档到根据本发明的存储设备115。可以经由任何现在已知或者以后开发的能够产生/提供XML文档的设备/资源,提供XML文档110。例如,在此实施例中,通过HTTP服务器120在因特网125上提供用于在客户设备130(例如,使用浏览器134)显示的XML文档110。客户设备130可以包括计算机、服务器、PDA、寻呼机、移动电话等。尽管如所示包括分离的系统,但是应该注意可以包括服务器100作为HTTP服务器120的部分。

在图1中也示出了对应于XML文档110的示范显示的网页132。通过HTTP服务器120将由XML文档110所调用的资源存储在存储设备135。存储设备135可以包括磁介质、光学介质、随机存取存储器(RAM)等,并且可以放置在单个的包括一个或者多个类型的数据存储器的物理位置,或者可以各种形式分布在多个物理系统。

一旦请求客户设备130或者管理器(administrator)140,则将XML文档110提供给用于通过存档系统105存档的服务器100。所述请求可以包括手动和/或自动请求(例如,定时的备份)。管理器140可以关联于或者访问HTTP服务器120、服务器100和/或客户设备130。例如,可以经由诸如因特网125的网络从客户设备130将请求发送到HTTP服务器120以将所请求的XML文档110加载到在客户设备130上运行的浏览器134中。客户设备130将进一步的要求发送到HTTP服务器120请求存档所加载的XML文档110。HTTP服务器120接着发送请求到服务器100以存档XML文档110。如果请求被准许,则将XML文档110和其相关联的资源提供给用于通过存档系统105存档的服务器100。

存档系统105包括用于在标准加载处理中将XML文档110加载到存储设备115的第一加载系统145。如同存储设备135的情形一样,存储设备115可以包括磁介质、光学介质、随机存取存储器(RAM)等,并且可以放置在单个的包括一个或者多个类型的数据存储器的物理位置,或者可以各种形式分布在多个物理系统。

当由第一加载系统145执行标准加载处理时,为了解析XML文档110,基于包含在XML文档110里面的各个XML标记符,调用XML索引器150(例如,以JAVA servlet的形式)。具体地说,如图1所示,配置XML索引器150以提取在XML文档110中对资源的引用,并将这些引用放入索引文件155。随后在第二加载处理160中,将由XML索引器程序150所识别的资源存储在存储设备115。在索引文件155中的资源引用(例如,在网页132中所显示的样式表165、徽标(logo)170和图像文件175)包括如在XML文档110中引用的资源的全路径名和文件名。

存档系统105使得XML文档110和资源(例如,样式表165、徽标170和图像文件175)能存档到存储设备115,如由系统的管理器140建立的一组规则定义的那样。存档系统105在扩展的时间段管理在存储设备115上的XML文档110和其相关联的资源的保存,并允许XML文档110在以后的日期以完全保真度被检索和正确地显示。

如果XML文档110要以完全保真度显示,在XML文档110中的每个XML标记符就定义需要和XML文档110一起存档的资源。例如,参照下面的EXAMPLE2,XML文档110包括多个XML标记符(例如,‘href’),其中,每个标记符定义诸如客户名、帐户号码、客户地址和发票金额的资源。在本发明中,将从XML文档110中提取的每个资源存储在存储设备115,并在索引文件155中索引,以致所述数据随后能够例如通过客户名容易地被检索。

EXAMPLE2<?xml version=″1.0″encoding=″UTF-8″standalone=″no″?><?xml-stylesheet type=″text/css″href″=″invoice.css″?><!DOCTYPE Invoice″expanded_invoice.dtd″><TITLE>Customer Invoice</TITLE><PHOTOxlink:type=″simple″xlink:show=″onLoa d″ xlink:href=″company_logo.jpg″ALT=″Customer invoice for services supplied″WIDTH=″100″HEIGHT=″200″/><Customer account number>012345</Customer account number><Customer name>Martin Pepper</Customer name><Addressl>64 Merrington Avenue</Addressl><Address2>Winchester</Address2><Invoice amount>£980</Invoice amount></Invoice>

可以将资源印记(stamp)由XML索引器150添加到XML文档110,例如,2003年3月10日产生的38KB大小的resourcel/docs/stylesheets/song.css。添加此附加引用允许所述资源的版本控制。在此方面来说,当从存储设备115检索资源时,能够进行检查以确定例如公司现在是否正在他们的发票上使用新的徽标。在旧的徽标和更新版本的资源属性之间进行比较。如果属性中的任何一个即资源的大小和/或日期已经变化,则所述系统能够确定将使用新版本。

在图2中示出了详述根据本发明的XML文档110的存档处理的操作步骤的流程图200。在步骤S1,由服务器100接收XML文档110。在步骤S2,将XML文档110存储在存储设备115。也将XML文档110提供给XML索引器150,所述XML索引器150提取在XML文档110中的外部资源的引用(步骤S3)。在步骤S4,XML索引器150进行查询以确定所提取的资源中的任何一个是否已经在先存储在存储设备115。具体地讲,在由XML索引器150已经从XML文档110提取所述资源引用之后,XML索引器150检查索引文件155以确定所提取的资源的任何一个的引用是否已经在先附加到索引文件155,指示该资源已经存储在存储设备115。如果所提取资源的引用在索引文件155中没有找到,则将所述资源的引用添加到索引文件155(步骤S5),并由第二加载处理160将所述资源存储在存储设备115(步骤S6)。如果所提取资源的引用在索引文件155中找到,则所述资源在存储设备115中在第二次不存储。对在XML文档110中的每个提取的资源重复此处理。

本处理的一个特征是,在将资源(例如,图像、徽标、样式表和/或数据类型定义文档等)存储在存储设备115之前,XML索引器150确定所述资源还没有存储在存储设备115。如果资源已经在索引文件155中引用,表明资源已经存储在存储设备115中,则不再将所述资源存储在存储设备115。如果另一方面,资源还没有在索引文件155中引用,表明资源还没有存储在存储设备115中,则将所述资源的引用添加到索引文件155,并由第二加载处理160将所述资源存储在存储设备115。这种处理通过防止相同资源的重复存储而加速存储处理,并因为每个资源仅仅在存储设备115中存储一次,所以也显著地节约了存储空间。这能够通过参照下面的EXAMPLE 3来做进一步的解释。

EXAMPLE 3

一组织以XML数据格式维护其所有的发票。所述组织每天产生10,000张发票。每个XML文档110(在此例子中称作为XML发票110)有相同的布局,并且仅仅诸如客户名、总金额、日期等的数据元素不同。所述发票的每一个有3个相同资源:徽标、样式表和图像。在图1中示出这样一种发票132,包括资源165(样式表)、170(徽标)和175(图像)。

当由第一加载处理145将第一XML发票110(图1)加载到(图2,步骤S2)存储设备115时,XML索引器150被启动,并提取(步骤S3)在XML发票110中的资源165、170、175的引用,并进行检查(步骤S4),以确定所引用的资源165、170、175的任何一个是否已经在先存入到存储设备115。在此例子中,发现在第一XML发票110中所引用的资源165、170、175在先还没有存入到存储设备115。这样,将资源165、170、175的全路径名和文件名放入到索引文件155(步骤S5),并通过第二加载处理160将引用165、170、175加载到(步骤S6)存储设备115。

随后将引用和第一XML发票110相同的资源165、170、175的第二XML发票110加载到(步骤S1)存储设备115。当加载第二XML发票110时,XML索引器150为外部资源的引用解析(步骤S3)第二XML发票110,并检查索引文件155(步骤S4),以确定所述资源是否已经存储在存储设备115。在此例子中,因为在第二XML发票110中所引用的资源165、170、175和在第一XML发票110中所引用的那些相同,并事先存储在存储设备115中,所以XML索引器155不将这些引用的第二引用添加到索引文件155中,并不将资源165、170、175第二次存储到存储设备115。

对剩余的9,998个XML发票110的每一个重复上面的处理。于是,在10,000个发票已经处理并存档之后,仅仅3个资源(即样式表165、徽标170和图像175)已经加载到存储设备115。即,代替在存储设备115中存储每个资源165、170、175 10,000次,仅仅存储每个资源165、170、175的单个实例。

在图3中解释了根据本发明的XML文档检索处理的示意性概览。

在图3中,用户利用例如在客户设备130上运行的浏览器134对特定文档进行搜索。在浏览器134中显示搜索命中列表,并且用户点击将要从HTTP服务器120检索并在客户设备130上显示的文档。因为所请求的文档对应在服务器100的存储设备115上所存档的XML文档110,所以,HTTP服务器120在发送所请求的文档到客户设备120之前,必须从存储设备115检索XML文档110和由XML文档110所引用的资源。

开始,由在HTTP服务器120上的加载处理315从存储设备115检索XML文档110,并提供给包括XML索引器305的检索系统300。和如图1所示的XML索引器155类似,配置XML索引器305以基于在所检索的XML文档110中包含的各个XML标记符(例如,“href”)解析所检索的XML文档110,并识别出与XML标记符相关联的资源。可以按例如JAVA servlet或者任何其他的适合形式提供XML索引器305。同样也配置加载处理315以检索由XML文档110所引用的资源,并将所述资源放置在由XML文档110所引用的相同位置(例如,在HTTP服务器120中的存储设备135中)。这将允许XML文档110找出所引用资源而不必以任何形式编辑或者改变。尽管如所述在HTTP服务器120中放置,但是检索系统300可以放在服务器100,或者可访问到HTTP服务器120的其他位置。

提供高速缓冲存储器310以存储近来从存储设备115所检索的资源。所检索资源暂存在高速缓冲存储器310预定时间量。在从存储设备115检索由XML文档110所引用的任何资源之前,XML索引器305检查高速缓冲存储器310以确定所述资源是否最近已经被检索。如果在高速缓冲存储器310中能得到由XML文档110所引用的资源,该资源不从存储设备115检索,而直接从高速缓冲存储器310访问。如果在高速缓冲存储器310中不能得到由XML文档110所引用的资源(例如,所述资源在先没有从存储设备115检索或者所述资源从高速缓冲存储器过期等),该资源从存储设备115检索并被存储在高速缓冲存储器310中。随后由HTTP服务器120将XML文档110和检索的由XML文档110所引用的资源发送到客户设备130,以便显示。高速缓冲存储器310的使用增加检索系统300的性能(例如,更快地提供XML文档110和相关的资源到客户设备130)。

在图4中解释了详述根据本发明的用于检索XML文档110的处理的操作步骤的流程图400。

在步骤S1,例如在搜索中请求XML文档110。在步骤S2,从存储设备115访问所请求的XML文档110,并由服务器100发送到检索系统300的XML索引器305。配置XML索引器305以基于包含在所检索的XML文档110中的各个XML标记符(例如“href”),解析(步骤S3)所检索的XML文档110,并识别出与XML标记符相关联的资源(例如,在图1中所示的资源165(样式表)、170(徽标)和175(图像))。

在从存储设备115检索由XML文档110所引用的任何资源之前,XML索引器305检查(步骤S4)高速缓冲存储器310以确定所引用的任何资源是否存储在高速缓冲存储器310。如果在高速缓冲存储器310中能得到由XML文档110所引用的资源,该资源不从存储设备115检索,而直接从高速缓冲存储器310访问(步骤S5)。如果在高速缓冲存储器310中不能得到由XML文档110所引用的资源,则从存储设备115检索该资源(步骤S6)、存储在高速缓冲存储器310中并访问。随后由HTTP服务器120将XML文档110和检索的由XML文档110所引用的资源发送到客户设备130(步骤S7),以便显示。

下面参照EXAMPLE 4能够进一步解释该处理。

EXAMPLE 4

利用和EXAMPLE 3相同的情景,第一用户利用运行在客户设备130上的浏览器134执行对发票的搜索。用户在搜索结果中定位所想要的发票,并点击所述发票以便显示(步骤S1,图4)。从存储设备115检索对应于请求的发票的XML发票110,并发送到(步骤S2)XML索引器305。XML索引器305解析(步骤S3)XML发票110以识别出由XML发票110引用的资源。

在步骤S4,检查高速缓冲存储器310,并访问在高速缓冲存储器310中可得到的资源(步骤S5)。如果所引用的任何资源不在高速缓冲存储器310,则从存储设备115检索(步骤S6)那些资源,存储在高速缓冲存储器310,并访问(步骤S5)。接着将XML文档110和在XML文档110中所引用的资源发送到(步骤S7)客户设备130,并显示所述发票。

第二用户(其可能在与第一用户不同的建筑物或者不同的国家)对相同类型而不同的发票(例如,包括相同样式表165、徽标170和图像175而不同客户名、总金额、日期等的发票)进行搜索。从存储设备115检索与请求的发票相对应的XML发票110,并发送到XML索引器305,所述XML索引器305解析XML发票110以识别出由XML发票110所引用的资源。接着检查高速缓冲存储器310,看在高速缓冲存储器310中是否存储任何引用的资源。在此情形,在高速缓冲存储器310中定位全部的引用的资源。接着将高速缓存的资源与XML发票110一起发送到客户设备130,以便立即显示。如果存在在上面的EXAMPLE 3中所述的10,000张XML发票110,并且为了显示又从存储设备115检索剩余的9,998 XML发票的每一个,则因为在高速缓冲存储器310中可立即得到所述资源,所以不必从存储设备115再次检索所述资源(例如,样式表165,徽标170和图像175)。

出于解释和描述的目的,已经提出了本发明各个方面的前面的描述。它不意味着是详尽的或者将本发明限制为所披露的明确形式,而且显然,许多的修改和变化是可能的。对本领域技术人员可能显而易见的这样的修改和变化视为包括在如由所附的权利要求所定义的本发明范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号