周宇
(河南职业技术学院图书馆,河南 郑州 450046)
数字化是众所周知的文献管理系统的发展趋势。随着各种文献管理系统数字化程度的加深,因不同文献管理系统之间由于发展程度不同,缺乏协调统一,随之出现的“数字鸿沟”使得导致各个文献管理系统的数据无法相互访问沟通,形成一个个的数据孤岛[1]。因此,如何建立一个有效的文献数据信息交互机制,是摆在图书资料/文献业界的一个显著问题。笔者经过比较几种导向(资料导向、界面导向、入口导向、方法导向、流程导向、服务导向)的系统整合构架,选择以网络服务(Web Services)为基础的服务导向实现系统整合。
网络服务是一种完全植基于XML的软件技术。它提供了一个标准的方式,不管这些应用程序运行在什么样的平台和使用什么架构。目前Web Services及相关技术是由全球信息网络国际协会(W3C)负责制定规范,W3C把网络服务定义为由一个URI识别的软件系统,通过标准XML信息存取的网络操作。使用这种标准、正式的XML观念来描述和定义,应用系统之间可以通过Internet上传送基于XML的信息进行相互操作。从使用者的角度而言,网络服务实际上是一种部署在Web上的应用组件。
在网络服务技术的架构下,假设我们设计完成了一个程序,而我们也愿意免费/收费的将它提供给他人使用,此时,我们撰写的程序便视为是一个潜在的网络服务,它扮演了服务提供者(Service Provider)的角色[2];此时,若在地球的某一端,正好有一个或多个使用者迫切的需要这个程序,那么这些迫切需要应用程式的人便称他们为服务需求者(Service Requester);在广大的网络中,网络服务的提供者与需求者彼此因事前互不认识,为了让需求者能找到所需要的应用程序,因此还需要一个服务中介(Service Register)。
以往运用在系统交互的相关技术,例如:DCOM、CORBA、RMI等分散式物件的处理技术,也是被设计用来在异质性系统的沟通,若这些异质性系统是使用不同的分散式技术,要整合使彼此能够沟通,则还需另外撰写一个中介软件(Middleware),而网络服务使用SOAP技术,能够充分的解决此问题。在网络服务技术的架构下,可分散式服务的程序可以不需要知道其他的服务程序所在何处就能够相互沟通。使用网络服务的优点是在于程序代码是可流动的、易于维护软件元件、应用程序可再利用并容易取得等。
SOAP是网络服务技术中最重要的一项技术。SOAP是一种架构简单的轻量级(Light Weight)的资料传输协议,用于分散式网络环境下做资料信息交换,只要双方机器都支援并看得懂SOAP,彼此就能够交谈,这也正是Web Services可以跨平台的最佳利器。
SOAP是利用XML的格式来包装及传送与执行远端系统所需的信息,许多讨论SOAP技术的文章常以“SOAP=XML+HTTP”来做诠释,简单来说SOAP是一套简单且有弹性的第二代XML协议的规格。SOAP大大的改善传统分散式技术所遇到的整合困境。当使用这些传统的分散式物件技术来进行整合时,需要另外安装一个让异质平台之间得以沟通所需的中介软件(Message Broker),而由于SOAP使用XML纯文字信息,因此得以去除通过传统整合技术所需的额外步骤。
一般而言,SOAP主要包含三个部份[3]:
⑴SOAP信息:定义信息封包的整体架构,用来描述SOAP信息封包的组成及一些信息处理等信息。
⑵SOAP编码规则:定义特定应用程式间,若要进行资料交换时,所需的信息封包处理方式、应用程式所定义的资料型态与信息封包的编码与交换规则等。
⑶SOAP远端程序呼叫:定义处理远端程序呼叫(Remote Procedure Call,RPC)和回应的相关机制等。
如前所述,SOAP是用来作为传送XML网络服务信息的通信协议,用户端可以在SOAP信息中指定XML网络服务的方法名称与参数来呼叫XML网络服务方法,而客服端会将结果包装于SOAP信息中回传给用户端。当有用户想要向Server取得服务时,首先必须先从 Server取得一份服务的描述文档(WSDL)。用户端依据WSDL中关于服务的描述来建立请求(SOAP Request)信息。然后用户端将服务要求传送到服务端。服务端执行相对的核对程序/版本检查,并且将结果以回应(SOAP Response)的信息封包回传给用户端。
WSDL(Web Services Description Language)也是一份符合XML格式的文件,也称之为网络服务描述语言,主要是用来描述网络服务的中继语言,通过WSDL,网络服务的用户端就可以了解如何建构SOAP信息来呼叫网络服务所提供的方法[4]。通常WSDL是由服务提供者所撰写,然后提供给服务需求者作为要求服务的参考。
根据W3C所定义的WSDL架构,包含以下元素:Type:使用某种语法(如XML模式)的数据类型定义(string、int)。
Message:要传递的数据。
Part:消息参数。
Operation:服务支持的操作的抽象描述。
Port Type/Interface:一个或多个端点支持操作的抽象集。此名称已更改,因此可能会遇到两者中的任何一个。
Binding:特定端口类型的具体协议和数据格式规范。
Port/Endpoint:绑定和网络地址的组合。此名称也已更改,因此可能会遇到两者中的任何一个。
Service:相关端点的集合,包括其关联的接口、操作、消息等。
笔者将以前述的网络服务为基础,说明如何依据W3C所定义的SOAP及WSDL相关技术来建立文献管理系统的信息交互访问机制,并加以定义出符合文献管理系统的XML文件[5]。本研究架构如下图:
其架构可分为两大部份,分别为使用端/服务端及转换端/远端数据管理系统(Data Management Service,DMS),此机制最主要的目的是解决:
⑴图书馆文献管理系统间的资料无法相互的传递。
⑵直接将图书馆文献管理系统信息记录转入DMS。
⑶建立文献管理系统信息资料流,使文献信息资源能达到共享及共用并结合其它的信息应用系统。
以下针对使用端/服务端及转换端/DMS两大部份做进一步的说明。
①服务端
此部分泛指一切数据提供来源,这部份可以是Web Browser、其它信息系统所输出的XML资料。为了使文献管理信息能和外部系统做资料传递和交换,使其可通过所接收到的WSDL来描述网络服务的细节,呼叫的各项功能与提供呼叫的端点(endpoint),并运用SOAP传输协议的标准,传送到DMS。
一开始系统“XML输出/输入”功能会先找寻DMS的服务,并和DMS做链接,服务端向DMS发出一个服务描述的请求之后,DMS发送一个服务描述文件给服务端,服务端则可依服务描述文件里所定义的参数,向DMS提出服务的要求,最后DMS执行服务端所提出的要求,并回报执行结果给服务端。
②使用端
DMS依据使用端的需要,将转换后的XML文件传送至使用端,其使用端请求之过程也是通过XML格式的信息(SOAP信息)来传送资料,并回报执行结果给使用端。
③转换端/DMS
转换端它也是一个特教的单一入口,提供信息交换、查询与储存的地方,所有文献管理系统、信息相关的应用系统均可与它保持联系,在本研究中它是一个信息互通与交换模组,也是各地文献管理系统信息的资料储存库,当DMS接收到服务端(文献管理系统信息相关应用系统)所传送的XML资料,它会将这些资料分类储存进资料库中。如:接收到使用端需输出的文献管理系统信息,DMS便会依使用端所提出之要求,将资料从资料库中取出,并转换成使用端所需要的XML文件格式传送至使用端。
3.2.1 输出符合文献管理系统信息交互标准的XML文件
本研究运用Access资料库先建立出符合图书馆/文献管理细则及“中国数字图书馆标准规范—数字资源检索协议规范”的“数据记录信息”和“数据位置信息”对照表[6],再通过资料库结构的分析,建立可以从数据库的各个位置取得信息的对照表。通过输出的程序,输出成XML文件。
3.2.2 XML文件输送到DMS客服端
将系统所建立的XML文件,通过XML输出/输出的功能,选择XML文件所在位置,通过程序呼叫远端WSDL的描述文件,使其可通过所接收到的WSDL来描述网络服务的细节,并运用SOAP传输协议的标准,将资料传送到远端的DMS客服端,并回传信息到使用端。
未来如有其他信息系统需呼叫本研究所提供的服务,仅需建立一份符合图书馆/文献管理细则及“中国数字图书馆标准规范—数字资源检索协议规范”及“数据记录信息”和“数据位置信息”的XML文件对照表,再通过网络链结至服务所提供的WSDL描述文档,调整描述服务所使用的参数与型态及可呼叫此网络服务。
[1]郑建明,陈雅,陆宝益.数字时代图书馆的合作与资源共享—写在《图书馆合作与信息资源共享武汉宣言》发表之后 [J].大学图书馆学报,2006,(2).
[2]AlexanderDavis,Du Zhang.A Comparative Study of DCOM and SOAP.Proceeding of the IEEE Fourth International Symposium on MutimediaSofterware Engineering(MSE’02)2002.
[3]Adopted ISO/IEC 10181-1(1996):Information Technology—Open Systems Interconnection—Security Frameworks for Open Systems:Overview.
[4]刘壮业,姚郑.基于Web服务的教师管理系统的设计与实现[J].中国科学院研究生院学报,2009,(1).
[5]OASIS Standard.eXtensible Access Control Markup Language (XACML)Version 2.0.1.http://docs.oasis-open.org/xacml/2.0/access_control-xacml-2.0-core-spec-os.pdf.Feb2005.
[6]Fayya,Piatetsky-Shapiro,Smyth.“From Data Mining to Knowledge Discovery:An Overview”,in Fayyad,Piatetsky-Shapiro,Smyth,Uthurusamy, Advances in Knowledge Discovery and Data Mining,AAAI Press/The MIT Press,Menlo Park,CA,1996,pp.1-34.