admin 管理员组

文章数量: 1184232


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+=´´+val+´´;});

item+=´´

(item);

});

item = ´´;

if(unt>1){item+=´(´+ page + ´/´+

?Count+´)´;}

if(page>1){item+=´+´);">上一页´;}

if(unt > page)

{ item+=´下一页

´;}

item+=´

关闭

item += ´´;

(item);

S(´

´,{"id":"thesesList",html:

(´´)}).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;责编:杨新宽。)

-全文完-


本文标签: 服务 图书馆 资源 数据 实现

更多相关文章

高效率应对 WMI Provider Host 占用 CPU 的挑战

1月前

WMI Provider Host(WmiPrvSE.exe)高CPU占用原因及处理详解WMI Provider Host(进程名 WmiPrvSE.exe)是 Windows 系统的重

一不小心误删了音量图标?快速找回方法,一键搞定!

1月前

一、解决重启丢失小喇叭 如果开机后就找不到音量控制图标,手动找回音量图标后,下次开机又会重新丢失,一般是系统的声音服务出了问题,可通过下面的方法来解决。1、 右键单击“我的电脑”选择“管理”,打开“计算机管理”窗口

在32位与64位之间:操作系统的内存与处理器挑战

1月前

64位系统和32位系统的区别:操作系统只是硬件和应用软件中间的一个平台 32位操作系统针对的32位的CPU设计 64位操作系统针对的64位的CPU设计 我们的CPU从原来的8位,16位,

解锁32位与64位操作系统的幕后知识:如何选择适合你的系统

1月前

64位系统和32位系统的区别:操作系统只是硬件和应用软件中间的一个平台 32位操作系统针对的32位的CPU设计 64位操作系统针对的64位的CPU设计 我们的CPU从原来的8位,16位,

NRG文件不再难:Flash开发者指南与实战技巧

1月前

NRG 文件是光盘映像文件的一种,通常用于存储光盘的完整副本,包括数据、文件系统和光盘的结构。在本文中,我将向您介绍如何打开和编程处理 NRG 文件。 要处理 NRG 文件,您可以使用开源的工具或库来读取和提取其中的数据。下面

智能提取:VLOOKUP跨表数据检索的高效实践指南

1月前

说明我下面简单说明匹配数据,详细使用方式也可以参考下面文库哈EXCEL表中如何利用VLOOKUP将2张工作表的数据匹配? countif 方式1 A列数据在B列中出现的次

从基础到进阶:VLOOKUP在Excel中的运用与优化策略

1月前

说明我下面简单说明匹配数据,详细使用方式也可以参考下面文库哈EXCEL表中如何利用VLOOKUP将2张工作表的数据匹配? countif 方式1 A列数据在B列中出现的次

解析Canon CR2文件:揭秘cr2 ifd0的关键

1月前

首先是8个字节的文件头。 CR2的前2个字节是"II",代表INTEL格式的存储顺序,即低字节在前,高字节在后。 接下来是固定的2个字节:0x2a00。 最后的4个字节的整数是指向第一个IFD(I

厂区热门聚焦:即时解读SWF、Flash中心、Adobe Flash Player的热点事件

1月前

1 今日内容 1.1 定时计算与实时计算 1.2 今日内容 kafkaStream 什么是流式计算 kafkaStream概述 kafkaStream入门案例

即时更新:厂里Flash中心的最热文章,深度剖析Adobe Flash Player的前沿技术

1月前

1 今日内容 1.1 定时计算与实时计算 1.2 今日内容 kafkaStream 什么是流式计算 kafkaStream概述 kafkaStream入门案例

机械硬盘损坏,数据还能起死回生吗?揭秘数据恢复秘籍

1月前

电脑硬盘坏了数据可以恢复吗?对于这种问题,还需要具体问题具体分析的,一般是可以恢复。 硬盘损坏可以分为物理损坏和逻辑损坏两种情况: 1.逻辑损坏 这通常是由于软件问题,如文件系统错误、病毒攻击、误删除、格式化等

SWF硬盘测评汇总:帮你选到最合适的硬盘

1月前

硬盘天梯排行榜数据集成指南 引言 硬盘天梯排行榜数据为开发者和企业提供了硬盘性能的权威参考,涵盖SSD、HDD等各类存储设备的读写速度、耐用性、性价比等关键指标。通过API集成这些数据,用户可以快速获取最新的硬盘排名信

掌握SWF文件,驾驭Adobe Flash Player的无限可能

1月前

一、Application Data简介Applicaion Data相当于桌面应用的注册表,存储一些用户配置信息,如运行时状态,用户喜好等,需要注意的时, 当卸载应用时,这些数据会被删除,所以不要存储重要数

掌握IMX6U启动过程:内部Boot ROM、IVT、Boot data、DCD与led.bin文件详解

1月前

参考:Linux之ARM(IMX6U)裸机之I.MX6ULL镜像烧写以及启动头文件的详解作者:一只青木呀发布时间: 2020-08-09 17:10:00网址:BOOT R

启动之路:深入ARM I.MX6ULL的内部机制 - 内部BOOT ROM、IVT、Boot Data、DCD与led.bin揭秘

1月前

参考:Linux之ARM(IMX6U)裸机之I.MX6ULL镜像烧写以及启动头文件的详解作者:一只青木呀发布时间: 2020-08-09 17:10:00网址:BOOT R

Go与Linux网络通信:strace下read操作的本质解析

1月前

大家好,我是码农先森。 前言 各种编程语言百花齐放、百家争鸣,但是 “万变不离其中”。对于网络通信而言,每一种编程语言的实现方式都不一样;但其实,调用的底层逻辑都是一样的。linux 系统底层向上提供了统一的 Sock

「智能数据搬家」:如何通过阿里云盘整体迁移MySQL数据库至系统盘

1月前

前言:需求 办公室和家里的两台电脑做同一个项目,必然牵扯到数据库文件的迁移问题,用阿里云做中介吧,安全快速。 一、数据库文件备份到阿里云 1.1关闭本地MySQL服务 为了重新配置MySQL,需要首先关

移动硬盘无法读取是怎么回事?解决方法看这里!_读取外置硬盘

1月前

在日常办公生活中,我们仅仅使用电脑的话,已经远远不够存储我们的重要数据,这时候我们会采用移动硬盘、U盘等外置数据储存设备。它们虽然都有着小巧的体积,但是能够存储大量的信息和数据,随时和电脑连接实现数据互通,给我们的电脑工作带来极大的便

有关webscraper的问题,看这个就够了_web scraper

1月前

视频教程: 可能有朋友不知道webscraper,我再介绍一下: webscraper 一一款谷歌插件,可以方便的抓取网页上的内容:文字、链接、图片、表格等,而无需写一行代码。 webscrap

net framework 3.5 3.5官方完整版_net3.5占多大空间

1月前

net framework 3.5是在Windows运行的,一个针对.net开发的一个开发环境,也就是一个平台。.net程序开发必要的一款编程软件。我们都知道在这个越来越发达的信息时代,互联网将代替一切,应用程序将成为人们的最大发展潜

发表评论

全部评论 0
暂无评论