基于Web Service的数字图书馆资源共建共享模型

2023-11-24 10:34夏祖奇
江苏科技信息 2023年28期
关键词:字段对象数据库

常 璐,夏祖奇

(1.中共江苏省委党校,江苏 南京 210013;2.南京思酷信息科技有限公司,江苏 南京 210012)

0 引言

网络时代的信息资源正呈指数级增长,对传统的信息机构——图书馆来说,无论是传统的书目数据资源,还是专业数据库,都以迅猛的速度增加着,这种改变给图书馆带来了极大的挑战。在数字资源激增的同时,图书馆工作人员没有增加,如果不利用网络平台进行资源的共建共享活动,则要么会淹没在信息海洋中,无所适从;要么需要增加资源的采集经费支出,重复建设。

一般来说,信息资源共建共享可以有3种方式:第一种方式就是集中式,也可以看作是星形拓扑,大家都将数据建到一个数据库中。好处就是减少各处保存,节约硬件设备;坏处是一处出问题,则全部出问题,依赖性强,而且一种方式减少了异样性和灵活性,比如OCLC等[1]。第二种方式则是分散式,也可以看作网络型拓扑结构,各图书馆有自己的数据库,需要别人的数字资源才能共享。这种方式的好处是较为灵活,可以量身定做。第三种方式是分散集中相结合,也就是各信息机构分散建设,集中保存,统一共享[2]。这种方式要求各信息机构联系紧密,有相应的组织机构,比如Calis、Jalis等行业内系统[3]。

可以看到,在当前环境下,采用第一种方式的较少,而且这种依赖性太大。而第三种方式虽然一直在提,但更多侧重于图书馆资源采集的管理上,比如集团采购、联合目录等,并没有真正达到共建共享的目的。因此,在我国国情下,还是以第二种方式为主。本文将讨论在单机环境和网络环境下实现数字资源共建共享的集中模型。

1 图书馆资源共建共享的方式

图书馆数字资源共建共享的发展离不开计算机技术与通信技术的发展。数字图书馆资源按照其来源可以分为三大类:第一类是图书馆馆藏书目数据资源;第二类是各类通过购买获得的专业数据库资源;第三类是自建特色数据库资源。笔者认为,与计算机资源的共享相同,图书馆数字资源的共建共享可以分为以下几个阶段。

1.1 单机时代资源共享——文件型共享(单机版)

在单机版年代,基于文件的共建共享是比较通用的一种共享方式,图书馆数字资源最初的共享也是基于这种方式实现的。一家编目中心完成资源的著录标引工作以后,可以将标引数据存为文档。如其他单位需要该单位已经完成的标引数据,则必须将该文件(或文件的某一部分)利用物理存储介质进行复制,再导入自己的编目文件系统或数据库中即可。为了使共享资源具有通用性,美国国会图书馆在1970年提出了机读编目格式标准——MARC[4],在此基础上,ANSI组织提出了MARC21格式[5]。这种格式的确定,不仅提供了标引数据的标准化,同时也为不同国家和地区图书馆之间的共享书目数据提供了标准格式。因此,在20世纪,大部分数字资源的共享都以MARC文件作为交换单元,在多个图书馆之间利用第三方软件进行数据的导入导出,从而实现数据的共享,其共享方式如图1所示。

图1 文件型共享模型注:C代表计算机终端(computer)。

这种以MARC文件作为交换介质,在不同的数据库之间进行共享的方式存在了很长时间,并且在现在作为各个图书馆与书目提供商之间数据交换的主要方式。其优点在于MARC数据结构已经成为标准,因此共建共享十分方便,只要能够解析MARC数据即可。而且,目前MARC文件在经过50多年的发展后,已经成为图书馆界的标准,只要能够对MARC文件进行解析,就可以实现数字资源的共享。而缺点是MARC数据可读性较差,因此很难用于查询、展现。

1.2 网络时代基于专有协议的资源共享——基于Z39.50的资源共享(C/S网络版)

随着计算机技术和通信技术的发展,C/S模式架构开始出现,人们开始使用网络资源进行资源的共享。正是基于这种背景,图书馆界开始研究自己的应用协议——Z39.50,这是一种以TCP协议作为资源共建共享的通道协议,各个编目中心之间利用Z39.50进行数字资源的共建共享。目前在常用的图书馆集成系统中都内嵌了Z39.50模块,用来进行MARC数据的交换共享,其共享方式如图2所示。

图2 C/S网络型共享模型

这种共享方式的优点是能够在网络上进行资源共建共享,缺点是Z39.50协议实现复杂,而且需要开一个TCP端口,安全性较差。

1.3 基于Web Service方式的资源共建共享模型(网络版)

网络的发展使得数字资源共建共享成为可能,但同时也带来了很多问题,在使用Z39.50协议的过程中,要另开端口,这就给计算机带来了安全问题;而WWW协议的盛行,使得HTTP协议的应用越来越广泛,甚至一些私有的应用协议也可以采用HTTP来实现。因此,笔者认为,可采用Web Service技术,使用通用的基于HTTP的SOAP协议(一种运行于HTTP之上的协议)来实现图书馆资源的共建与共享。

Web Service是一种以SOAP协议作为通信协议,以XML文件作为传输介质的高层协议,其出现本身就是希望能够解决异构数据的交互问题。Web服务被看作是第三代分布式计算模式,基于Web服务技术,人们能在任何时间、任何地点获得所需要的信息资源。Web服务具有互操作性、通用性、易用性,开发人员可以利用常见的技术工具构造出各类综合信息管理平台等,是目前实现信息共享行之有效的技术手段[6]。Web Service是Web 2.0的技术之一,Microsoft、Google、IBM等主流软件公司都在推广这种技术,其共享方式如图3所示。

可以看出,该共享方式大大缩短了数字资源之间进行转换的流程,依托Web服务,直接通过网络发布,可获得性大大增强,并且解决了异构数据库兼容共享的问题。

2 基于Web Service的共建共享系统框架

2.1 传输对象

无论是传统的基于文件格式的共享系统,还是基于Z39.50协议的网络式共享系统,其共享的传输对象都是MARC文件或MARC数据。而MARC格式的定义是在1970年,距今已50多年,其字段定义复杂,可读性差,掌握难度大。因此,本系统不采用MARC的实例化对象作为传输对象。

另一方面,DC元数据作为描述资源的元数据,自20世纪末以来,经过20多年的发展,已经较为成熟。另外,其17个字段通过实践证明可以作为描述对象资源很好的例子。因此,本系统将DC元数据作为传输对象在共建共享系统中使用。

DC元数据在数字图书馆中应用较为成熟与稳定,作为通信格式较为稳妥。因此,可以将DC元数据的17个字段作为传输对象,将设计的对象序列化,可以成为传输对象。

以下为Java版本元数据对象伪码:

public DCMetaData implements Serieable{

public String author;

pubic String titile;

public String abstract;

……

}

在上面的伪码中,本文只列出了题目、作者等字段,其他15个字段也可以此类推。可以看出,以DC元数据定义的对象可读性强,而且17个字段基本可以包括数字资源的特征,采用以DC元数据实例化作为传输对象,比MARC文件或MARC数据具有更大的优势。

2.2 数字图书馆共建共享系统核心接口定义

在定义传输对象后,本文将讨论共建共享的一些基本方法。对于一个共建共享系统来说,其核心接口无非是对资源的查询、增加、删除和修改。下面给出了一个Java版本的核心接口伪码:

public interface WSDigitalLibInf

{

public DCMetaData [] queryResources(DCMetaData condition);

pubic void insertResource(DCMetaData [] arrayNewResource);

public void deleteResource(DCMetaData condition);

public void modifyResource(DCMetaData src, DCMetaData des);

}

对于queryResources接口来说,只要根据用户属于的元数据的condition来进行查询,比如,如果condition的author字段为A,则可以将所有作者为A的元数据返回给查询客户端;当然,对于高级查询,也可以根据构造不同的condition对象实现,这里不再一一叙述。

对于insertResource接口来说,其作用就是将用户属于的元数据数组进行转换插入自己的数据库。对于deleteResource接口来说,其结果就是将满足condition条件的元数据删除掉。对于modify Resource来说,可以先调用deleteResource(src),再调用insertResource(des)来实现。

2.3 数字图书馆共建共享系统核心接口的实现

作为数字图书馆软件提供商,只要实现以上接口,再以Web Service的方式进行发布,即可以在不同的系统间进行数字资源的共建共享。

这部分可以说是数字图书馆共建共享系统的核心,但目前各数字图书馆采用不同的数字存储方式。在图书馆集成系统方面有汇文、ILAS等软件,其对应的数据格式是MARC;在自建特色数据库方面有TRS、TPI等软件,其内核有ACCESS、ORACLE、SQLSERVER等,往往有自己定义的数据格式,有基于纯文本的,有基于图片的;而在购买的商业数据库方面就更多了,其内核涉及商业机密,往往不提供接口。这种差异性就必须要求采用不同的方式来访问数字资源存储文件或数据库服务器。本文无法一一展开叙述取数据的过程,可以说明的是,实现取数据的业务逻辑无非是把存贮的数字资源使用DC元数据的方式进行表示,实现一些简单的增加、删除、修改以及查询操作。这些步骤应该与Z39.50协议取数据或插入数据的步骤是一致的。

因此,不管数字图书馆采用的是ORACLE,或是MARC文件,还是SQLSERVER,只要将数字资源转化为DC元数据描述的对象,并且都实现了2.2中定义接口的核心方法,即可以通过Web Service发布,实现共享。

2.4 基于Web Service数字图书馆资源共建共享系统的发布

不同的Web服务器对于Web Service采用的方法是不同的。比如对于基于.NET架构的IIS来说,其不需要进行任何配置,只要用户在开发中指定其是Web Service即可。而对于基于Java架构的Web Server来说,支持Web Service需要一些第三方库。以Tomcat为例,通常将Axis作为Tomcat支持Web Service的第三方库,只要修改一些配置文件即可。

检查一个Web Service是否发布成功,可以直接使用浏览器输入其WSDL,如果Web服务器可以返回该接口的WSDL,则表明发布成功。

2.5 基于Web Service的数字图书馆共建共享系统Client端的设计

一般来说,只要客户端能够获取某个Web Service的WSDL文件,一些高级编程工具,比如VC.NET、JBuilder + Axis,即可以自动生成调用Web Service的客户端代码。因为接口定义的标准化,其调用相当简单且标准化。

对于调用的流程来说,客户端可以先利用查询的Web Service确认某编目中心是否有自己需要的数字资源,若返回的元数据数组个数大于0,则将数组转换为自己数据库的格式,再插入数据库即可。

3 3种数字资源共享模型之间的比较

3种数字资源共享模型之间的比较如表1所示。

表1 几种共享模式的比较

4 结语

本文提出了一种以XML作为传输单元,以DC元数据的数据抽象作为接口之间的介质,以Web Service作为系统架构的一种数字图书馆资源共建共享系统。这种系统的好处就是只要实现了本文提出的WSDigitalLibInf的4种方法,并将这4种方法以Web Service的方式进行Web发布,则可以在Internet上以SOPA/HTTP协议进行访问,只要有一个Web Service的client端即可实现资源的共建共享。该基于Web Service的共建共享系统实现简单,是Web 2.0的典型应用。但是,如何对这些接口进行权限限制也是亟待解决的问题。今后的研究方向是采用SOA架构,结合区块链技术建立一个分布式的去中心化数据库[7],并采取订阅-发布式将数字资源以异步方式进行共享。

猜你喜欢
字段对象数据库
神秘来电
图书馆中文图书编目外包数据质量控制分析
攻略对象的心思好难猜
数据库
基于熵的快速扫描法的FNEA初始对象的生成方法
数据库
数据库
区间对象族的可镇定性分析
数据库
CNMARC304字段和314字段责任附注方式解析