admin 管理员组文章数量: 1086019
2024年3月22日发(作者:编程用哪个linux系统)
图书馆特色资源元数据API实现与比较研究
以WebServiceAPI与WidgetAPI为例
赵增和
(天津市静海县图书馆,天津301600)
[摘要]介绍了特色资源在当前图书馆价值取向转变中所起到的重要作用,分析了图书馆为自
建特色数据库元数据提供API,实现资源开放获取,拓展特色资源服务渠道的迫切需求,以
及资源开放过程中对知识产权的保护,并以某大学开展的学位论文数据库拓展服务为例,介
绍了两种API——基于WCF框架的Web Service API、采用jQuery开发的Widget API方
式,并分析了两种不同方式的优缺点及适用环境。
[关键词]图书馆特色资源API 开放共享安全控制
[分类号]G253
1 引言
随着信息服务网络化的发展以及信息开放理念的兴起,图书馆的价值取向也悄然转变,资源
服务及知识传播已从原有的仅为在校师生提供检索查询转变为信息的开放互动与沟通共享,
这对高校图书馆提出了全新的要求。在Web 2.0的用户参与、互动与分享以及开放图书馆理
念的指导下,大学图书馆需要根据资源的特点,以更开放的心态迎接读者以及信息资源和信
息服务日益泛在化的挑战。在世纪之交的十多年里,大学图书馆的数据信息量越来越庞大,
它依托自身馆藏信息资源,针对用户的信息需求,对某一学科或某一专题的信息进行收集、
归纳、分类、整理、存储,按照一定标准和规范将其数字化,自建了很多特色数据库,并以
互联网为平台,面向广大师生用户提供基于内容的服务,特色数据库成为图书馆不同于互联
网其他信息提供者的优势资源,能够在相关领域为读者提供“专业、精准、高速”的信息检
索。在保护知识产权的前提下,图书馆针对特色资源开发API供第三方调用,是充分挖掘特
色馆藏资源、在更大范围内被其他机构或者用户利用、拓展图书馆服务和体现资源深层价值
的有效方式[1,2],既可以为图书馆特色数据库增加附加值和新的访问点,扩展特色资源的
使用范围和使用价值,又可以使第三方通过混搭的方式使用图书馆资源,实现图书馆服务的
无处不在。
2 特色资源元数据API 技术实现
图书馆特色数据库种类众多,属性和软件架构各异,对于一些特色数据库,图书馆想要为其
添加新的功能或者开放新的接口,必须求助于供应商,或者支付一定的费用,并且有的厂商
并不提供相关的服务。然而如果图书馆一旦“进入”到其架构系统,几乎所有的事情都是可
能的,因此我们尝试借助相关的技术,“强行”进入原本封闭的特色数据库架构系统,实现
拓展特色资源价值的想法。由于图书馆特色数据库的平台各异及版权属性限制,在开发及开
放特色数据库过程中需要在保护知识产权的前提下,尽量使用通用框架,屏蔽图书馆特色数
据库与第三方调用者平台的异构性、开发语言的多样性,并且确保推送过程中的数据资源在
可控范围内被合法、安全利用。
学位论文是高校图书馆特色资源的重要组成部分,笔者以某大学图书馆学位论文数据库拓展
服务为例[3],介绍两种图书馆特色数据库元数据API的实现及比较——基于WCF框架开发
的Web Service API 方式,以及采用jQuery 开发的Widget API 方式。某大学学位论文数
据库以TPI 为平台,Kbase数据库存储数据,系统部署在图书馆本地,TPI属于早年开发的
商用特色资源数据库发布系统,系统开放性较差,通过上述两种技术打破学位论文数据库的
固有围墙,实现学位论文元数据开放共享,拓展学位论文服务范围。
2.1 Web Service API
Web Service是一个URL资源,客户端可以通过编程方式请求得到它的服务,而无需知道所
请求的服务是如何实现的,这一点与传统的分布式组件对象模型不同,其有两层含义:一是
指封装成单个实体并发布到网络上的功能集合体;二是指功能集合体被调用后所提供的服
务。Web Service的体系结构是基于Web服务提供者、请求者、服务管理者(注册中心)三
个角色和服务发布、服务发现、服务绑定三个动作构建而成,如图1所示。简单地说,Web
服务提供者即Web服务的拥有者,它等待为其他服务和用户提供已有的功能;Web服务请求
者即Web服务功能的使用者,它利用SOAP消息向Web服务提供者发送请求以获得服务;Web
服务管理者的作用是把一个Web服务请求者与合适的Web服务提供者联系在一起,它充当管
理者的角色。
(1) 开发实现框架
Web Service API是用所开发的Web Service替换用户对学位论文数据库的直接获取服务,
调用者通过调用所发布的URL获取学位论文元数据。在技术实现环节,采用WCF技术[4]以
面向服务的方式来创建学位论文Web Service API,实现数据的推送服务。WCF最突出的特
点体现在互操作、安全可信赖以及通用性方面,并以一系列协议的定义、实现、发布为流程
和框架实现。
① 定义服务协定
在应用程序中添加接口,以为第三方开放的数据及查询方式为服务协定进行定
义,公布可以对外提供服务的操作、操作返回的数据类型、需要传入的参数个数、参数类型
等。如某大学研究生院要求读者能够在研究生网站上通过专业查询相关导师指导的研究生论
文情况,定义服务协定如下:
[Operation Contract]//定义服务协定,专业代码为参数,返回论文数据集
DataSet GetDataByMajor(string majorCode)
② 实现服务协定
实现服务协定,定义一个类以实现接口中定义的所有服务协定,
并返回相关结果。如,依照研究生院与某大学图书馆的服务协定,实现程序返回给研究生院
导师所辅导论文的学生姓名、论文题目、摘要等:
// 创建数据表函数,用于存储论文元数据的各个属性值并返回:
public DataTable GetDataTable()
{
DataTable dt = new DataTable("sblw");
DataColumn dc1 = new DataColumn("作者名",?Type(" "));
…
(dc1);
…
return dt;
}
//具体的服务协议实现,读取数据库,根据专业代码获取学位论文元数据
[OperationContract]
public DataSet GetDataByMajor(string majorCode){// 详细实现,查询数据库并将结
果保存在GetDataTable实例中返回
…}
③ 搭建宿主,承载服务
公开WCF服务,需要提供一个运行服务的宿主环境,以IIS+.NET framework 4.0+WCF环境
为例,以IIS作为宿主来承载服务,承载于IIS 中的WCF 服务在IIS 应用程序内表示为特
殊内容文件( 文件)。.svc 文件包含WCF 特定的处理指令
(@ServiceHost),该指令允许WCF 承载基础结构激活所承载的服务,以响应传入消
息。.svc 文件的最常见语法如下所示。
<%@ ServiceHost Language="C#" Debug="true" Service="Service"
CodeBehind="~/App_Code/" %>
(2)安全控制机制
API作为一种数据传递方式,数据安全是开发过程中需要首先考虑的。在Web Service API
方式中,采用X509证书[5]作为数据安全认证控制方式,加密通过证书对(服务器客户端各
一个)完成,经过X509证书加密后的输入及获取到的输出内容,均是被加密的密文,在数
据传递过程中无法看到明文,能确保数据传输过程私密、安全、可靠,并且实现这样的加密
操作,在调用上不会受到任何影响,只需在WCF服务以及调用的客户端进行一些文件配置等
操作即可,其实现方式具有高配置型、灵活性的特点,基于X509证书加密的操作流程如图
2所示。
通过.NET的makecert命令为WCF服务应用创建客户证书和服务端的X509证书,命令如
下:
makecert -sr localmachine -ss my -n CN=127.0.0.1 -skyexchange-pe -r
此处“my”为生成的证书名字,CN后为服务器IP地址或服务器机器名称。
在授权调用控制环节,通过调用端和服务器端的证书对匹配,确保数据被合法者调用。在服
务器端,将证书以私钥导出到本地硬盘、授权IIS访问服务器证书,以及将证书导入到服务
器计算机的“受信任的根证书颁发机构”和“受信任人”存储区,给证书加everyone权
限,并将证书颁发给合法的Web Service API调用方。调用端,将证书安装到“受信任的根
证书颁发机构”中,给证书加everyone权限。最后,要确保证书的启用,使X509证书服务
生效,需要在中加入服务器IP。如下:
x509FindType="FindBySubjectName" store?Name="My"/> 其中*.*.*.*为服务器IP。 (3) 调用方式 Web Service作为一个URL资源,客户端无需了解学位论文数据库的结构属性,通过调用 localhost/webser?vice/ ,就可以像调用本地的函数一样调用 WebService接口获取相关资源,通过调用端和服务器端的证书对匹配,确保调用者的合法 性,最终实现异构数据库之间数据的安全通信与共享。 2.2 Widget API Widget技术来源于互联网,其以一种崭新的表现形式超越了浏览器和客户端的传统分类, Web Widget是轻量级的Web应用程序,调用者只需在页面上嵌入相关的Javascript就可以 运行在多种终端之上,并且功能丰富,使用简单,可以方便应用在站内应用、网站、客户端 等应用中。Widget通过API 将两个网站或平台和应用联系起来,打破了网站间的围墙,使 网站不再只是通过超链接的简单连接,便可以实现不同网站之间用户和数据的融合。Widget 主体框架结构可以分为服务层、视图层、应用层(如图3所示),其中服务层即等待为其他 服务和用户提供已有的功能;视图层,即相应的.js和.css文件,实现从服务层获取数据并 以预先设计好的结构展示;应用层即嵌入Javascript的终端网站。 (1)开发实现方式 学位论文Widget API可以看作一种定义好界面的插件,用户只需要在页面上嵌入图书馆提 供的Javascript,便可以在自己的网站上混搭学位论文元数据信息,实现学位论文元数据 和其网站的融合,并自主进行学位论文在自身页面上的展示和重新排版。 ① Widget 服务层 用ASP编写学位论文数据库查询服务器端程序Widget. asp,根据不同的参数查询学位论文数据库,并将查询结果按照字段存入数组中返回给调用 方。 rtype=Request("type") //检索参数属性,如按照专业检索 rkeyword=Request("keyword")//具体的参数值,如汉语汉文学 ……//多个参数 query = "select * from 华东师大硕博士论文数据库where ´" & rtype & "´=´" &rkeyword & "´" ; ReDim a(n,4)//定义数组存储论文元数据查询结果…… a(i,1)=alue("中文论文题名"); a(i,2)=alue("姓名"); ……//读取并存储多个参数 "["""&a(i,1)&""","""&a(i,2)&"""]" ② Widget视图层 采用jQuery技术实现学位论文客户端数据调用和重现,jQuery 语法设计可以使开发更加便 捷,更方便地实现选择DOM元素、事件处理等功能。采用jQuery技术编写供客 户端调用服务器端程序,返回论文信息。 //显示数据 function disp(page,data){ S(´#thesesList´).remove(); var items = []; var item = ´ td width="10%">作者 ´;题名 <学位
(item);
(,function(key,val){
item = ´
(val,function(key,val)
{item+=´
item+=´
(item);
});
item = ´
if(unt>1){item+=´(´+ page + ´/´+
?Count+´)´;}
if(page>1){item+=´+´);">上一页´;}
if(unt > page)
{ item+=´下一页
´;}
关闭’
item += ´
(item);
S(´
(´´)}).ap?pendTo(´#theses´);
}
//检索用户输入的查询词,调用Widget服务器端程序进行检索。
function render(page){
var schString = S(´#thesesLnk´).attr("href").split
(´;´);var type = schString[0].replace(´#´,
´´);
var keyword = schString[1];
N("IP 地址/?callback=?&type="+type+ "
&keyword="+keyword+"&page="+page,function(da?ta){disp(page,data);});}
function show(){ render(1); }
S(document).ready (function(){ S(´#thesesLnk´).click
(show); });
(2)安全控制机制
Widget应用包由大量的Javascript脚本、HTML文件以及CSS文件组成,源码对用户几乎透
明,因此需要防止用户对Widget应用文件的非法篡改和非法调用。Widget分为桌面Widget
和网页Widget,桌面Widget的安全控制机制有很多[6],如数字签名,访问策略控制,采
用独立分发机制,网页Widget方式控制机制较少,且安全性较弱,需要通过浏览器的安全
机制实现,或者在分发中采取人为控制措施。某大学学位论文项目开发的Widget 属于网页
Widget,我们在Widget 应用包首次分发中采用人为控制方式,确保首次分发人为可信用
户,以此保证Widget应用包分发给合法用户;对Widget应用文件进行加密打包,加密密钥
和加密后的Widget包采用不同的分发途径信息分发,以保证用户不进行非法的二次分发,
从而确保学位论文数据被合法者使用。
(3)调用方式
应用层对学位论文Widget API的调用过程相对简单,调用者只需要在自己的网站上嵌入相
关代码,即可以实现在自己的网站上显示学位论文相关元数据,具体过程如下。
① 将该Widget 所需的、css文件引入到需嵌入Widget的页面:
由于该Widget使用了JQuery库,因此需要同时将其引
入:
② 在需嵌入Widget页面中希望呈现论文信息的位置引入以下HTML元素:
文
③ 通过“②”中引入元素的href属性值来配置查询类型,其中:type为检索途径,
keyword为检索词,两者以“;”隔开,可用的检索途径以“检索参数表”文档方式提供给
调用方。
3 WebServiceAPI与WidgetAPI比较
两种方式都打破了系统固有的封闭性,在确保数据能够被合法利用的同时,解决了平台异构
性和开发语言差异性,使系统之间的内容关联性更强,增强了数据嵌入式服务呈现的一致
性,提升了用户体验,减轻了调用方的数据维护工作强度,拓展了图书馆特色数据库资源的
服务渠道。两种技术在实现方式的难易程度、安全认证的灵活性以及适应平台等方面各有千
秋(如表1所示),图书馆可以根据不同特色数据库的特点灵活选择。
4 结语
目前,某大学图书馆通过两种API技术在学位论文数据库领域的实践收到了良好的效果,学
位论文的服务价值得到了很好的拓展,实现了如下应用:
① 将学位论文元数据推送到研究生院门户网站的博硕士招生专业目录查询栏目。研究生院
门户通过对数据进行重新组合描述,使之混搭[7]在自己的网站上,实现与本地数据的无缝
衔接,拓展了学位论文的社会价值,社会考生可以通过在研究生院网站上查询不同专业的学
位论文数量、选题、研究方向、摘要、评价等信息,为学校及专业兴趣的选择提供参考,增
强了考生报考的针对性。
②将学位论文元数据推送到学校门户网站的“教师名录”栏目。实现教师的历年指导学位论
文信息可以动态更新,多渠道展示了教师教学科研成果,从而增强了大学产学研合作机会。
特色数据库已经成为大学图书馆的一大优势资源,图书馆应充分利用自身的特色资源,以更
加开放的心态展现自身优势资源,以API技术为支撑,以内容服务为纽带,提供开放接口,
方便图书馆外其他平台可以无缝地整合图书馆资源内容。图书馆可以根据特色数据库自身特
点,采用以上两种技术框架开发相应接口,拓展特色资源的服务渠道和价值,使特色馆藏资
源得到充分挖掘和利用,增强图书馆的吸引力,以全新的方式迎接互联网的全开放时代,在
汹涌的信息潮流中突显图书馆的独特价值。
参考文献:
[1] 李书宁,贾西兰.国内外图书馆行业相关OpenAPI发展现状调查及分析[J].图书情报工
作,2012(7):11-15.
[2] 贾西兰,郭建峰.图书馆行业OpenAPI利用的权限控制[J].图书情报工作,2012
(7):21-25.
[3] Windows Communication Foundation[EB/OL].[2012]./en-
us/library/.
[4] X509-Wikipedia,the free
encyclopedia[EB/OL].[2012]./wiki/X.509.
[5] 李慧云,陆刚,张凌.Widget安全技术研究[J].广东通信技术,2009(11):9-12.
[6] Nicole . Library Mashups:Exploring New Ways toDeliver Library Data
[M].Information Today,Inc.,2009.
赵增和男,1973年生。本科学历,馆员。研究方向:信息资源建设与服务研究;信息检索
与咨询研究;信息资源与知识产权管理;数字图书馆技术与管理。
(收稿日期:2014-05-12;责编:杨新宽。)
-全文完-
版权声明:本文标题:图书馆特色资源元数据API实现与比较研究-以WebServiceAPI与Widget 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1711112270a589114.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论