数字资源统一检索与链接系统的设计与实现_j2ee论文

数字资源统一检索和链接系统的设计与实现,本文主要内容关键词为:链接论文,数字论文,系统论文,资源论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。

1、引言

随着数字化技术和网络技术的发展,数字图书馆数字资源日益丰富。目前这些资源基本上是处于各自独立的业务系统之中,彼此分离。不同的平台给读者使用它们带来不便。

一方面,读者对各种资源的检索要分别进入不同的检索系统。如果能够为这些系统提供一个统一的检索界面,读者输入检索词后,检索到的书目、电子图书和随书光盘等信息能够在同一个界面上返回给读者,这样就使得读者在检索时不必进入各自的系统而快速地获得信息。另一方面,读者检索到某个数据库系统中的信息后,并不知道其他数据库系统中是否存在相关的信息。如检索到书目系统中的书目信息并不包含相关的电子图书和随书光盘信息,如果能够提供直接指向相关电子图书和随书光盘的超文本链接,这将为读者的服务提供便利。

本文将从这两个方面出发,并以中南大学图书馆的书目资源、电子图书和随书光盘为例,采用基于J2EE平台的EJB组件技术来分析和设计数字资源的统一检索和链接系统。

2、J2EE系统体系结构

J2EE[1] (Java 2 Platform Enterprise Edition)作为一种技术规范,给开发人员提供了一种工作平台,它定义了整个标准的应用开发体系结构和一个部署环境。在这个体系结构中,应用开发者的注意力集中在封装商业逻辑和商业规则上,一切基础结构问题以及低层分配问题都由应用程序容器或者服务器来处理。因而,J2EE应用程序开发人员可以集中考虑应用程序的逻辑和相关的服务,而把所有的基础结构相关的服务交由运行环境实现。基于WEB应用的J2EE的基本体系结构分为四层[2],如图1所示。

附图

图1 基于Web应用的J2EE应用编程模型

2.1 运行在客户端机器上的客户层组件

这一层对应于J2EE应用程序的客户端。可以是基于Web方式的(如Web页面,Applet),可以是基于传统方式的(如Java应用程序)。

2.2 运行在J2EE服务器上的Web层组件

J2EE的Web层组件可以是JSP页面或Servlets,也可能包含某些JavaBean对象来处理用户输入,并把输入发送给运行在业务层上的Enterprise-Beans进行处理。

2.3 运行在J2EE服务器上的业务逻辑层组件

业务层组件主要指的是EJB(Enterprise Java Beans)。EJB2.0规范中定义了3种EJB[1]:会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(Message Driver Bean)。会话Bean描述了与客户端的一个短暂的会话。当客户端的执行完成后,会话Bean和它的数据都将消失,按照是否维护客户端的状态信息可分为有状态的和无状态的。实体Bean描述了存储在数据库的表中的一行的持久稳固的数据。如果客户端终止或者服务结束,底层的服务会负责实体Bean数据的存储。消息驱动Bean结合了会话Bean和信息服务(JMS)信息监听者的功能,它允许一个商业组件异步地接受JMS消息。

2.4 运行在EIS服务器上的企业信息系统层软件

企业信息系统(Enterprise Information System,EIS)层处理企业信息系统软件并包含诸如主机事务处理、数据库系统和其他传统系统这样的底层系统。

本文在下面数字资源的统一检索和链接系统设计主要集中于业务逻辑中企业bean的设计。

3、统一检索与链接系统设计分析

3.1 信息检索系统现状

目前,在图书馆的书目资源、电子图书资源和随书光盘的管理与服务一般处于异构平台的环境中,如在中南大学图书馆,书目资源采用ILASII系统进行管理,独立运行于一台SUN服务器中,其数据库管理系统采用专用的LDBMS[3];电子图书有超星、方正和书生之家等,它们都有各自的管理和服务平台,后台数据库采用SQL Server2000、Oracle等;随书光盘采用的是广州汉能公司所提供的光盘数据管理系统,读者在检索到所需的光盘后,可以直接从网上浏览和下载光盘中的内容,其采用的也是SQL Server2000数据库系统。

书目资源、电子图书以及随书光盘这些资源信息之间既是相互独立的又存在紧密的关联,它们之间的关系如下图2。

附图

图2 图书及相关资源关系

按数字图书馆的标准对数字资源的描述应采用DC的15个核心元数据来描述[4],但是各个电子图书数据厂商所提供的元数据参差不一,如何把这些数据整合起来也成为一个关键问题。

3.2 系统设计目标

馆藏书目及相关资源统一检索与链接系统的设计的目标是实现书目、电子图书和随书光盘三位一体的资源整合。主要包括两个方面:一是统一检索服务,实现在同一个界面上对三种资源的统一检索;二是统一参考链接服务,实现三种互相匹配资源之间的参考链接。

3.3 设计思路

对统一检索系统,设计时首要考虑的问题就是元数据的整合,数字资源的整合有三种方式:应用层整合、数据层整合以及数据层和应用层相结合的整合。[5]

附图

图3 应用层数据整合

应用层数据整合如图3所示,用户输入的检索词通过检索代理分别对各个数据库系统进行检索后,将检索的结果经过加工处理(如排序、分类、合并、过滤等)[6] 后,返回给用户。

数据层整合如图4所示,它是将异构平台的数据通过一个同步网关映射到一个数据库中,这样检索代理不必对各个数据库系统进行检索,而是直接通过中间数据库来检索数据。这种方式的整合更易于完成检索结果的排序、分类和去重。但有些信息检索系统后台不是采用通用的数据系统,无法实现数据的同步,如ILAS书目系统,这时可以考虑采用应用层和数据层相结合的整合方式。

本文所设计的检索系统采用第三种整合方式应用层和数据层相结合,对存贮在SQL Server、Oracle和DB2等数据库中的电子图书数据和随书光盘数据通过同步网关映射到一个数据库中(数据库如TRS Server,同步网关如TRS Gate[7]),达到数据层的整合,再和ILAS中的书目数据进行应用层的整合。

附图

图4 数据层数据整合

对于信息资源的链接,由于没有唯一的主键来映射,在设计时,本系统采用ISBN、题名、作者和价格来对各个数据库的记录进行映射。具体方法是,有ISBN号的书目记录则用ISBN号来匹配,没有ISBN号的记录用题名和作者来匹配,如果检索出来匹配的记录有多条,再加上价格来匹配。这种方式虽然无法做到记录的一一对应,但从实践来看,在查全和查准上非常有效。

在此思路上,采用J2EE技术来设计和实现图书及相关资源统一检索和链接系统。

4、资源统一检索与链接系统实现

资源统一检索与链接系统中有很大一部分高度交互性页面,所有请求都被传送到一个对象中进行处理,为一个MainServlet,它截取和分发这些请求到相应的EJB进行处理,最后将运行结果返回给Jsp页面,程序结构如图5所示。MainServlet实现如下。

MainServlet.java

Public class MainServlet extends HttpServlet{

Public void doPost(HttpServletRequest request,HttpServletResponse response)throws

IOException,ServletException

{doGet(request,response);}

public void doGet((HttpServletRequest request,HttpServletResponse response)throws

IOException,ServletException

{//从Brower的JSP页面读取查询请求信息。//将请求信息转发给相应的EJB进行处理。//EJB处理完毕后将运行结果返回。}

附图

图5 资源统一检索与链接系统构成图

另一个问题就是一个查询处理对多个EJB的调用。如果这些调用在客户端完成,那么当EJB或业务逻辑发生变化时,必须对每一个客户端进行修改,应用越复杂,这种麻烦就越大[8]。解决的办法是通过一个会话Bean为一系列的EJB提供统一的接口实现流程,客户端只需要使用这个接口就可以触发流程,客户端的逻辑将非常简单。如果流程中做了任何改变,都只需要修改此会话Bean,客户端接口完全不用改动。

在系统中为用户提供数字资源统一检索和链接功能,是一个业务过程,与用户的状态无关,不需要保存结果状态。因此用无状态Bean表示。会话Bean处理实体Bean中的业务数据。书目、电子图书和随书光盘数字信息对应着客观世界中的实体,代表的是一些商业数据,要求持久化保存,因此自然地映射为实体Bean。实现上述对象和数据库记录之间的映射。具体实现如下:

UniformSearchAndLink Bean一个无状态的会话Bean,作为外界访问实体Bean的接口。其主代码如下:

public class UniformSearchAndLink Bean implements SessionBean{

SessionContext sessionContext;

Private OpacBean myOpac=null;

Private OpacBeanHome myOpacHome=null;

Private TrsServerBean myTrsServer=null;

Private TrsServerBeanHome myTrsServerHome=null;

Private SqlServerBean mySqlServer=null;

Private SqlServerBeanHome mySqlServerHome=null;

Public Object getOpacBySearchWords(Stringsearchword){

Try{//实现书目OPAC信息的检索,传入检索词,返回概览信息

myOpac=(Opac)myOpacHome.findBySearchword(searchword);

}catch(Exception e){e.printStackTrace();}

return new Opac(myopic.getOutline());

public Object getOpacByLinkwords(String URIID,String linkword){

try{//实现基于OPAC信息的相关资源链接

myopic=(Opac)myOpacHome.findByPrimaryKey(URI_ID,linkword);

}catch(Exception e){e.printStackTrace();}

return new Opac(myopic.getdetail());

public Object getTrsServerBySearchWords(){

//实现TRSServer数据的检索}

public Object getTrsServerByLinkWords(){//实现基于电子图书的相关资源链接}

public Object getSqlServerBySearchWords(){

//实现SqlServer数据库数据的检索

public Object getSqlServerByLinkWords(){

//实现基于随书光盘的相关资源链接}}

5、实验结果

本系统是在Windows2000 Server环境下,应用服务器采用Tomcat4.0,用Jbuilder9进行开发,实现了OPAC书目、超星、方正、书生电子图书和随书光盘的统一检索与参考链接。

统一检索可以显示用户提交检索参数后,通过EJB从各个数据库系统中所检索出来的结果信息。参考链接显示出用户检索到的某一本书的详细信息和馆藏信息的同时,也显示出与这本书相关的电子图书、随书光盘信息,用户可以通过这个界面直接阅览到电子图书并下载随书光盘。

6、结束语

本文阐述了采用J2EE技术设计和开发书目及相关数字资源的统一检索与链接系统的理论依据和解决方案。实践表明,基于J2EE的EJB组件技术对数字图书馆分布式异构信息资源的整合提供了技术基础。

标签:;  ;  ;  ;  ;  ;  

数字资源统一检索与链接系统的设计与实现_j2ee论文
下载Doc文档

猜你喜欢