数字图书馆统一检索的实现

来源 :现代情报 | 被引量 : 0次 | 上传用户:xyzsoft
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘 要]本文主要介绍利用.net平台和C#语言,基于Web服务技术,实现统一检索系统的方法。基于Web服务的统一检索系统实现简单,时空性能好,可扩展性强,能兼顾各数据源的特点实现全局优化。
  [关键词]统一检索;Web服务;数字图书馆
  DOI:10.3969/j.issn.1008-0821.2010.07.028
  [中图分类号]G250.76 [文献标识码]B [文章编号]1008-0821(2010)07-0099-04
  Implementation of Digital Library Unified SearchLi Weifeng
  (Library,Jiangsu Teachers University of Technology,Changzhou 213001,China)
  [Abstract]This article described a design for unified search system based on Web service and an implementation based on.net and c#.Based on this design,unified search system could be implemented easily with good spatio-temporal performance.
  [Keywords]unified search;web service;digital library
  
  数字图书馆的数字资源越来越丰富,各数字资源的检索相对独立,使得检索相对来说越来越复杂,如何屏蔽各数字资源平台,系统环境,内部数据结构等方面的差异,对统一的数据模式进行描述,进行无缝连接,进行统一检索,是数字图书馆发展中需要解决的一个重要问题。
  本文通过Web服务技术把数字图书馆各个数字资源进行包装,并发布相应的Web服务;用户在统一检索界面发布检索请求后,将用户请求分析后分解成功能子查询,并包装为SOAP消息,调用相应的Web服务;Web服务执行具体查询任务,并返回结果;查询结果集成器分析查询得到的各个XML文档并组合成统一的查询结果,用户界面把最终结果展示给用户。
  1 统一检索系统体系结构
  统一检索系统采用B/S架构实施,能够灵活集成Web服务。用户可以在一个统一的查询界面输入查询请求,得到集成数据源的信息,返回结果也在同一界面上显示。
  利用层次结构模型来描述统一检索体系结构,主要包括客户界面层、中间层、服务层和数据层4个层次,如图1所示。图1 统一检索体系结构2 .NET中服务层Web服务的实现
  我们图书馆中目前本地资源主要有汇文图书数据库(ORACLE数据库),超星数字图书馆(SQL SERVER数据库)、书生之家(SQL SERVER数据库)和自建数据库(SQL SERVER数据库)等。下面以工艺美术自建数据库的Web服务实现为例进行说明。
  2.1 .NET中工艺美术自建数据库Web服务的创建
  下面简要介绍在Microsoft的Visual Studio.net 2005的平台下自建数据库建立Web服务的步骤:
  在起始页创建网站中选择ASP.NET Web服务,工具自动产生默认的Web服务,名为Service,右方的解决方案资源管理器中包括两个文件夹:AppCode,AppData;两个文件:Service.asmx和Service.cs。
  在自建工艺美术数据库的Web服务,Service.cs包含的关键代码如下:
  (1)添加引用
  using System.Data;
  using System.Data.SqlClient;
  (2)更改命名空间
  [WebService(Namespace=″http:∥gymszyk.jstu.edu.cn/″)]
  (3)编写用户调用方法,提供用户服务功能
  例如查询工艺美术资源库中名称是变量title的Web服务功能代码如下:
  [WebMethod]
  public System.Data.DataSet GetTitleResults(string title)
  {
  ∥建立查询字符串和数据库连接
  string strQuery=″select distinct*from gyp where mingcheng like’%″+title+″%’″;
  SqlConnection myConnection=new SqlConnection(″Server=192.168.24.28;database=gymszyk;User ID=sa″);
  ∥执行查询
  SqlDataAdapter myCommand=new SqlDataAdapter(strQuery,myConnection);
  ∥定义DataSet对象,并将结果存入DataSet对象中
  System.Data.DataSet ds=new System.Data.DataSet();
  myCommand.Fill(ds,″gyp″);
  ∥返回结果DataSet对象
  return ds;
  }
  在调试过程中,可以通过CTRL+F5生成服务,进入服务测试界面,查看结果是否符合要求。
  2 .NET中自建数据库Web Service的部署
  ASP.NET Web服务是由作为所谓的IIS虚拟应用程序运行的资源集合组成的。在使用VS.NET创建Web服务项目时,可以自动完成这种虚拟应用程序的配置。IIS的虚拟目录成为ASP.NET应用程序很好的容器。因此只需要在IIS上新建一个应用程序目录,并包括我们创建Web服务时的目录,就可以通过IIS来引用这个Web服务。下面把工艺美术资源数据库的Web服务部署在IIS上,具体步骤如下:
  (1)在Internet Services Manager管理单元中新建一个虚拟目录,别名gymszyk,指定对应的目录为Web服务开发的目录,在设置访问权限时,把“执行”权限打勾,完成后则该虚拟目录就被配置成为一个IIS虚拟应用程序。
  (2)在新建的虚拟目录根目录下手工添加bin目录。因为bin目录是.NET查找已编程序集的第一个位置,新建这个目录就是为了存放Web服务编译产生的DLL文件。
  (3)利用CSC命令编译源代码。
  例如在VS 2005命令提示中,可以在源代码目录中执行以下命令进行源代码编译:
  Csc/out:binService.dll/target:library/r:System.Web.Services.dll Service.cs
  3 .NET中中间层统一检索网站的实现
  在Microsoft的Visual Studio.net 2005的平台下网站建立步骤如下:
  在起始页创建网站中选择ASP.NET网站,目录位置定为我们新建的存入网站内容的目录d: yjs。工具将自动产生AppCode目录和Default.aspx、Default.aspx.cx和Web.Config文件。界面设计和功能实现设计主要都会在这3个文件中完成。
  3.1 .NET中网站界面的设计
  网站界面设计即用户界面,它是系统的用户接口部分,是用户与系统交互信息的窗口,主要功能是向用户展示与系统功能有关的操作和服务,并根据用户操作请求显示操作结果,因此,一般情况下对客户端的设计要求都是:简单直观,智能方便。根据这个原则设计界面。
  3.2 .NET中网站功能的实现
  3.2.1 .NET中Web服务的访问
  .NET中使用Web服务模式采用了客户代理,这些客户代理是一些.NET类型,为客户封装了向Web服务发出SOAP调用的过程。特定服务的代理类通常是从它的WSDL文档创建的。一旦创建了这个代理类,你需要做的就是在项目中引用它,就像使用其他任何程序集或COM对象一样。然后,对Web服务的所有调用都将通过代理对象的一个实例进行处理,这个实例实现了与服务器SOAP的对话。工艺美术资源数据库Web服务代理的创建步骤如下:
  (1)从统一检索站点解决方案内查看,在菜单“网站”中选择“添加Web引用”。
  (2)查找工艺美术资源数据库Web服务后,选中,设Web引用名Gymszyk,单击添加引用。平台将自动生成了文件目录AppWebReferences,为每个服务增加一个目录和扩展名为disco,discomap,wsdl的3个文件。
  添加了代理之后,只要在代码中添加引用,就能方便地访问Web服务里面的服务了。
  访问工艺美术资源数据库Web服务的关键代码如下:
  (1)添加引用
  using Gymszyk;∥Gymszyk是Web服务引用名。
  (2)调用代码
  System.Data.DataSet ds;
  Service gy=new Service();
  ds=gy.GetCreatorResults(Scontent.Text);
  GridView1.DataSource=ds;
  3.2.2 检索的分解实现
  分解算法如图2:
  图2 查询分解流程
   程序实现流程基本如下:
  If (GYCheck.Checked)∥如果工艺美术资源数据库选中
  {
  If(SType.SelectedIndex==0)∥如果选中标题
   ? {
  ∥访问工艺美术资源数据库Web服务中按名称查询功能
  }
  Else If(SType.SelectedIndex==1)∥如果选中作者
  {
  ∥访问工艺美术资源数据库Web服务中按作者查询功能
  }
  }
  If (HWCheck.Checked)
  {
  If(SType.SelectedIndex==0)∥如果选中标题
   ? {
   ?
  ∥访问汇文图书数据库Web服务中按名称查询功能
   ?
  }
  Else If(SType.SelectedIndex==1)∥如果选中作者
   ?
  {
   ?
  ∥访问汇文图书数据库Web服务中按作者查询功能
   ?
  }
  }
  If(CXCheck.Checked)
  {
   ?
  If(SType.SelectedIndex==0)∥如果选中标题
   ?
  {
   ?
  ∥访问超星数据库Web服务中按书名查询功能
   ?
  }
   ?
  Else If(SType.SelectedIndex==1)∥如果选中作者
   ?
  {
   ?
  ∥访问超星数据库Web服务中按作者查询功能
   ?
  }
  }
  3.2.3 结果融合和显示
  结果融合和显示的实现流程如图3所示。
  开始↓根据制订的元数据标准建立一个类型化DataSet↓根据分解算法得到查询结果后,依次将结果合并入类型化DataSet↓对类型化DataSet排序显示↓结束图3 结果副合和显示流程
  (1)类型化DataSet的建立
  首先参照DC制订的全局元数据是:
  题名(Ttitle):存放资源名称。
  创建者(Tcreator):对创造资源知识内容负主要责任的个人或机构。
  日期(Tdate):指与创建或使资源成为可利用状态相关的日期。
  类型(Ttype):资源的类别。
  来源(Tsource):资源的出处,当前资源可以从来源资源中获取详细资源。
  来自的数据库(Tcontributor):资源来自何数据库。
  根据这个元数据标准建立个具体预定结构的DataSet。方法如下:
  第一步,创建类型化表的模式文档tDataSet.xsd。
  第二步,利用模式文档生成类型化的DataSet。
  在.NET环境DOS命令行如下命令:
  Xsd tDataSet.xsd/d/l:cs
  运行后将生成一个文件tDataSet.cs,包括一个类型化的tDataSet类,我们就可以像其他任何DataSet一样实例化和使用这个类了。
  (2)结果融合和显示实现
  结果融合算法思路如下:
  设Web服务WSi返回结果Ri,UR存放结果集。
  (1)取出Web服务WSi返回结果集Ri;
  (2)合并、去重表Ri,得到结果集元数据表UR;
  (3)对结果集元数据表UR进行排序,按时间进行降序排;
  (4)返回结果显示。
  实现具体关键步骤如下:
  第一步,定义一个公共的类型化DataSet变量。
  tDataSet shareDs=new tDataSet();
  第二步,将Web调用结果导入DataSet变量。
  ∥ds是Web服务返回的DataSet结果集
  for(int i=0;i  {
  ? DataRow tempData=shareDs.Tables[0].NewRow();
  ∥把ds中的数据读出一行
  ? tempData[″Ttitle″]=ds.Tables[0].Rows[i][″mingcheng″].ToString();
  ? tempData[″Tcreator″]=ds.Tables[0].Rows[i][″zuoze″].ToString();
  ? tempData[″Ttype″]=ds.Tables[0].Rows[i][″type″].ToString();
  ? tempData[″Tcontributor″]=″工艺美术资源数据库″;
  ? tempData[″Tdate″]=ds.Tables[0].Rows[i][″niandai″].ToString();
  ? tempData[″Tsource″]=ds.Tables[0].Rows[i][″identifier″].ToString();
  ? ∥把ds中数据读出一行加入到公共DataSet中
  ? shareDs.Tables[0].Rows.Add(tempData);
  }
  第三步,显示排序结果集。
  排序显示关键代码:
  shareDs.Tables[0].DefaultView.Sort=″Tdate desc″;∥按时间排序
  GridView1.DataSource=shareDs;∥绑定到数据控件显示
  GridView1.DataBind();
  ……
  4 结束语
  本文结合我馆本地数据库,基于Web服务技术,利用.NET和C#工具,进行了系统设计与开发。通过Web服务将各个异构数据库进行包装处理,并在ASP.NET平台将Web服务进行融合,以统一的形式为用户提供检索的服务,为资源库的用户提供了一种更好的统一检索服务 。集成更多数据源检索接口,对结果融合算法进行优化,是今后工作的重点。
  
  参考文献
  [1]韩炳黎.数字图书馆统一检索研究及开发[J].现代情报,2006,(3):25-27.
  [2]周慧贞,廖先军.军校图书馆统一检索系统的研究与设计[J].现代图书情报技术,2006,(10):34-37.
  [3]李安渝.Web Services技术与实现[M].北京:国防工业出版社,2003.1.
  [4]柴晓路.web服务架构与开放互操作技术[M].北京:清华大学出版社,2002.
  [5]Christian Nagel,Bill Evjen,Jay Glynn.C#高级编程.2006.
其他文献
本文借助于期望激励理论,强调了高期望的因人而异性,分析了期望激励理论的应用方式及在应用过程中应当注意的问题,并针对高校中存在的问题提出了一些有价值的建议,主张高校教
目的:探讨胃十二指肠溃疡急性穿孔的最佳治疗方法。方法:回顾性分析资料完整的340例胃十二指肠溃疡急性穿孔患者的诊治情况。提出在诊断上不要过分依赖病史、腹部X线检查及腹
"完善中国特色社会主义制度,推进国家治理体系和治理能力现代化",是党的十八届三中全会明确提出的全面深化改革的总目标。在这一宏观背景下,如何推进我国高等学校内部治理体系
ue*M#’#dkB4##8#”专利申请号:00109“7公开号:1278062申请日:00.06.23公开日:00.12.27申请人地址:(100084川C京市海淀区清华园申请人:清华大学发明人:隋森芳文摘:本发明属于生物技
本研究将基于华南师范大学外语教学语料库,综合运用定性定量研究与文献综述方法,探究了广东省2010年英语高考大作文~because和SO的使用情况。基于调查结果,本研究为英语教学提供
随着电子技术的飞速发展,电子产品的自动化测试技术也得到快速发展。伴随着社会个性化需求的增加,为了满足电子产品的多配置、小批量的特性需求,本文在自动化测试的基础上,引
ue*M#’#dkB4##8#”专利申请号:00109“7公开号:1278062申请日:00.06.23公开日:00.12.27申请人地址:(100084川C京市海淀区清华园申请人:清华大学发明人:隋森芳文摘:本发明属于生物技
体育舞蹈是高校体育课程体系中一门新兴的课程,该课程将体育活动和舞蹈融为一体,在增强学生身体素质的同时,也实现了学生艺术修养的培养。我国高校体育舞蹈课程的设置时间不
目的:普查少数民族眼各直肌的正常值,确定生理值基础,为研究及防治工作提供正确依据方法:采用b—scan型a/b)超在双眼平视静止状态下,采用横切面、纵切面对13~15岁年龄组哈萨克族正常
目的 探讨行气化瘀中药联合西药治疗原发性高血压瘀血内阻证的临床疗效及对病人同型半胱氨酸(Hcy)、25羟维生素D[25(OH)D]水平的影响。方法 选取我院2014年1月—2016年7月收治的原