APP下载

基于Web Service的OAI数据资源整合

2011-03-10张雅君

图书馆学刊 2011年2期
关键词:文档子系统检索

张雅君

(郑州航空工业管理学院,河南 郑州 450015)

随着计算机技术的迅猛发展,尤其是网络技术、数据存储技术以及数据传输技术的不断进步与广泛应用,极大丰富了数字图书馆的馆藏资源与共享方式。如何有效整合异构条件下分布式文献资源库,实现跨库信息的统一发现、检索和访问,已成为当前数字图书馆的核心研究内容之一。现阶段关于该方向的研究有多种,比较有代表性的成果有:①利用XML适合于异构数据定义和数据信息交换的特点,基于XML封装资源库中各数据记录,同时利用Web Service适合于标准服务接口封装和远程服务调用的特点,基于Web Service封装各资源库的数据访问协议,从而实现大范围异构资源共享,以计算机技术为显著特点。②充分利用元数据适合于图书馆数据资源描述的特点,设计出满足本馆需求的元数据描述标准,从而实现对本地多数据库、第三方数据库以及传统图书馆OPAC系统数据库的资源整合,以元数据技术为显著特点。③融合前两种解决方案,既利用XML Web Service技术适合于网络资源和网络服务整合的特点,又利用元数据技术适合于图书馆信息描述的特点,提出基于XML Web Service封装的元数据跨库检索解决方案。这是目前最主流的共享解决方案。

笔者以第三种方案为立足点,同时考虑到OAI协议在国际上已被广泛接受并获得普遍应用[1],因此针对支持OAI协议的数据库整合进行研究,其解决思路及研究成果亦适用于其他元数据协议类型,具有良好可推广性。

1 OAI协议框架

OAI协议框架由数据提供者、服务提供者以及元数据搜索协议3部分组成[2]。其基本原理是:首先将数据提供者的本地元数据格式用公共元数据格式进行表达,然后利用开放元数据搜索协议对全局公共元数据进行检索,具体应用时则由第三方服务提供者对搜索协议进行封装,生成面向用户的各种元数据检索公共服务,从而有效解决多资源库在元数据格式上的互异性问题,最终实现多馆藏资源的跨库检索。

在该框架中,Web环境下各数字图书馆资源库就是数据提供者,可采用简单DC元数据格式作为公共映射格式,并将映射结果统一用XML进行编码,形成异构数据描述与交换的物质基础。对于元数据搜索协议,则可采用OAI的开放性元数据采集协议OAI-MHP作为公共通信标准,实现对分布式资源库中各元数据信息的搜索与采集。考虑到网络中不同数字图书馆平台采用的运行环境可能互不相同,因此可采用Web Service作为提供公共基础服务的统一封装标准,在界面层有效消除异构性,最终实现数字图书馆的资源整合。

2 OAI数据资源整合系统设计

简单DC元数据搜索子系统又由结果文档XML封装模块与数据访问Web Service封装模块两部分组成。其中,数据访问模块负责与远程OAI原始数据库建立访问链接,并按照OAI协议框架规定的协议格式发送数据访问请求到远程OAI数据库,从而实现DC格式的元数据搜索。结果文档封装模块负责将数据访问模块搜索到的元数据结果封装成XML文档,并将该文档传送给基于Web Service的查询服务子系统中的XML文档解析模块。解析模块进行解析后,取得DC元数据记录,再存放于中心DC元数据库中,从而实现中心库DC元数据记录的生成。简单DC元数据搜索子系统应在一定时间周期内对各远程OAI数据库执行一次搜索,以便中心库元数据记录得到及时更新。

基于Web Service的查询服务子系统又由Web Service检索服务生成模块、XML文档解析模块以及中心元数据库检索模块3部分组成。其中,服务生成模块负责生成面向用户的基于Web Service的信息检索服务,供所有合法登录的用户执行远程调用。解析模块负责两种类型的XML文档解析工作,一种是接收客户端发送来的XML查询文档,对其解析,形成用户查询语句;另一种是接收简单DC元数据搜索子系统的XML结果文档,获得DC记录。最后,中心库检索模块负责根据解析出的用户查询语句,直接检索中心元数据库中的DC记录,并将检索结果进行XML封装后再返回给客户端。由于中心元数据库中的数据都是由搜索子系统通过远程搜索获取的,因此检索时只需连接中心库即可,无需再远程连接原始库,极大提高了检索效率。

3 简单DC元数据搜索子系统的实现

在上述整合模型中,简单DC元数据搜索子系统与远程OAI数据库的访问协议采用OAI协议框架的OAI-MHP标准协议。该协议首先自动遍历远程数据库在服务器端的注册信息,然后基于HTTP协议建立与远程数据库的访问链接,最后从中抽取符合搜索条件的规范化、结构化元数据记录。

在具体实现时,远程OAI数据库在服务器端的注册信息至少要包括6方面内容,分别是数据库标识符data_id、数据库URL地址data_url、数据库搜索标记data_flag、数据库搜索方式data_method、数据库元数据格式data_format以及数据库OAI版本data_ver。可以直接将其映射成一张六字段的关系表,存放在关系数据库中。

在基于HTTP协议与OAI数据库建立搜索链接时,可使用HTTP中的GET或POST方法来传递请求,该请求至少要包括一个以上的数据参数和一个格式为“verb=OAI方法名”的命令参数。其中OAI方法名可有6种方法值,分别是Identify、ListSets、ListMetadataFormat、ListIdentifiers、GetRecord以及ListRecord,其功能分别是:Identify返回元数据记录的详细描述,如名称、地址等,ListSets返回库中可用资源分组的名称,如文本、图片、视频等,ListMetadataFormat返回存档所用的元数据格式,ListIdentifiers返回满足查询条件的元数据记录标识,GetRecord返回与指定标识对应的元数据记录,ListRecord返回满足查询条件的元数据记录。服务器端对该请求的响应结果也采用HTTP协议进行回传。由此,即实现了基于HTTP协议与OAI-MHP协议的对远程OAI数据库的元数据搜索。

4 基于Web Service查询服务的实现

Web Service采取标准Web协议作为其中间件界面描述和协同描述的规范,完全屏蔽了不同软件运行平台的差异[4]。遵照Web Service标准封装而成的各种应用具有独立性、可扩展性以及模块化等特点,能够通过Internet来描述、发布、定位以及调用,非常适合用于编写OAI数据资源整合系统的各种网络公共服务。笔者选择JAVA语言作为实际开发平台(其版本为jdkl.5.0_04),选择WebLogic 9.0为应用部署服务器,实现OAI数据整合系统查询服务,即:根据整合系统模型,查询服务主要承担两方面功能,第一是接收界面层传递来的用户XML查询文档,对其进行解析并生成用户查询语句;第二是检索中心DC元数据库,形成XML检索结果文档。

4.1 XML查询语句的生成

一般情况下,客户端通过界面层传来的XML查询文档内容较简单,因此可采用DOM方法进行解析。DOM是一种W3C标准,可用一种与平台和语言无关的方式来表示XML查询文档[5]。

(1)卵巢囊肿总计41例,其中单纯囊肿14例,功能性囊肿14例,输卵管系膜副中肾管囊肿10例,白或黄体囊肿出血3例。影像特点为圆形或卵圆形、边缘锐利且光滑的异常信号,T1WI呈信号降低,T2WI呈信号升高。所有病例均诊断为良性病变,良性正确率100%[4]。

设界面层传来的某用户XML查询文档为search.xml,内容如下:

使用JAVA语言,对该XML文档的DOM解析过程如下:

首先,把要解析的XML文档转化为输入流,以便解析。

InputStream xml1=new FileInputStream(search.xml)。

其次,解析该输入流,得到一个文档对象。

Document doc=dombuilder.parse(xml1);

再次,建立该文档对象的根节点,以便通过树结构对XML输入流进行遍历解析。

Element root=doc.getDocumentElement();

最后,在遍历解析中,依次读取输入流文档树的各子节点,获得节点值,这些节点值就是被解析出的各种客户端查询信息。

NodeList dbname=childroot1.getElementsByTagName(“doc.databasename”);

NodeList dbaddress=childroot2.getElementsByTagAddress(“doc.databaseaddr

ess”);

NodeList dbsql=childroot3.getElementsByTagSql (“doc.databasesql”)。

4.2 检索服务的实现

基于Web Service标准,编写检索公共服务代码,作为面向所有用户的检索服务提供者。其平台环境为:设某数字图书馆资源数据库为Oracle 9i,对外提供支持OAI协议的访问接口,编程思路是,定义类ResourceSearchService,在该类中创建方法GetSearchRecord来完成元数据记录提取、文档转换以及数据回传等功能。

该方法中的待搜索数据库地址、标识符、搜索语句等参数均来自于DOM对客户端XML查询文件的解析结果。基于该Web Service,实现了对中心DC元数据库检索服务的封装,最后再将其部署到WebLogic 9.0服务器中,以响应所有客户端的检索请求。

5 结束语

基于Web Service设计了一个数字图书馆OAI资源整合模型。该模型由DC元数据搜索子系统与查询服务子系统组成。对于每一个子系统,又分别给出了各自的实现思想与关键程序代码。实践证明,该模型能很好实现用户对多图书馆多资源库的统一检索,在界面层有效消除异构性,达到了资源整合的目的。

[1]郑建明,陈雅,陆宝益.数字时代图书馆的合作与资源共享——写在《图书馆合作与信息资源共享武汉宣言》发表之后[J].大学图书馆学报,2006(2):2-4.

[2]Herbert Van de Sompel.The Santa Fe convention ofthe Open Archives Initiative[J].D-Lib Magazine,2000(2):12-15.

[3]王权良.数字图书馆OAI数据资源整合系统的研究与实现[D].北京:北京交通大学,2006:23-25.

[4]W3C Working Group Note.Web Services Architecture[EB/OL].[2009-10-11].http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/.

[5]W3C Recommendation.Document Object Model(DOM)Level 1 Specification[EB/OL].[2009-10-28].http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/DOM.pdf.

猜你喜欢

文档子系统检索
不对中转子系统耦合动力学特性研究
浅谈Matlab与Word文档的应用接口
有人一声不吭向你扔了个文档
GSM-R基站子系统同步方案研究
驼峰测长设备在线监测子系统的设计与应用
基于RI码计算的Word复制文档鉴别
专利检索中“语义”的表现
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
车载ATP子系统紧急制动限制速度计算
国际标准检索