唐明伟 蒋 勋
(1.南京审计学院管理科学与工程学院 南京 211815;2.南京大学信息管理学院 南京 210093)
随着互联网技术的高速发展,人类已步入大数据时代。而数字图书馆在经过30多年的高速发展后,也同样面临着信息爆炸、信息利用和共享率低等大数据时代所面临的困境[1]。数字图书馆之间的异构性是造成这一困境的根本原因,要促进各数字图书馆之间的互通互联,提高信息的利用率,则首先必须从技术上找出异构性的成因。
目前,国内外对数字图书馆异构性的研究一般从消除异构性,实现信息集成的角度得到体现。Kriewel[2]等认为数字图书馆在功能、查询语言及用户界面上存在异构,并使用一种名为DAFFODIL的中间件技术来消除异构性。Rao[3]研究了5S框架[4]下数字图书馆的信息表示异构,并提出了一种半自动化的数据映射和浏览技术,以实现集成。Ketchell[5]等研究了生物医学数字图书馆中电子期刊、引用资源、开放资源解析器等数字资源的异构性,并使用元搜索技术实现集成。Beneventano[6]等研究了MILOS[7]在数字资源表示上存在的异构,并使用一种基于XML的中间件技术统一数字资源表示,从而实现MILOS下各类数字资源的集成。
我国学者也进行了大量的研究。孔敬[8]认为数字图书馆在功能、内容及界面上存在异构性,并提出使用Portal架构实现集成。郭瑞华[9]认为数字图书馆在数据源上存在语义异构,并提出分层式本体整合方法来消除异构性。李静云[10]研究了数字图书馆的数据库异构,并提出使用本体建立异构数据映射来实现统一检索。曲克竹[11]等认为DBMS的多样性是造成数字图书馆异构性的原因,并提出使用中间件技术来实现异构数字图书馆之间的数据交换。陈平华[12]则认为数据库异构是造成数字图书馆异构性的原因,并提出使用SOA实现集成。
上述诸多研究虽然指出了数字图书馆在功能、内容、信息表示或数据库等方面的异构性,但并未系统性地研究造成这些异构的主要原因,而这一点却是实现数字图书馆高效集成的基础。鉴于此,本文将从分析数字图书馆系统架构出发,研究数字图书馆之间异构性的形成原因,且对其类型进行分析,并给出消除异构性的对策,从而为实现各数字图书馆之间的信息共享、提高数字资源的利用率作准备。
数字图书馆本质上属于一种特殊业务的管理信息系统,因此,为了找出其造成异构性的主要原因,则必须对数字图书馆的系统架构进行分析,只有对其架构及运行方式有清晰的认识,才能正确地找出造成数字图书馆之间异构性的主要原因。
数字图书馆是一种以图书馆相关业务为中心的,通过计算机网络、数据库等信息技术对相关业务信息进行收集、处理、存储、查询和分析,以辅助图书馆日常工作的信息系统[13-14]。不同的数字图书馆区别主要在于处理业务的不同,其架构则大同小异,如图1所示。
图1 数字图书馆基本架构
如图,一个完整的数字图书馆由数据层、业务层、表示层以及系统的基础运行平台组成。
3.1.1 数据层 数据层通常由数据库和数据操作功能组成。数据库按访问类型可分为文件型数据库和网络型数据库,系统一般均要通过数据库驱动程序才能进行访问。数据操作功能即系统开发人员根据业务需要,利用数据库驱动程序,开发出来的对数据库记录进行增、删、改、查等基本操作的功能。数据操作功能仅关注数据库的操作,以SQL语句作为参数向数据库发送操作请求,操作成功后,数据库再将原始数据返回给数据操作功能。
3.1.2 业务层 业务层主要由各种图书馆业务功能组成,此处的业务功能是指由系统开发人员开发的、与实际业务相对应的系统功能模块。业务功能从表示层接收用户请求,并根据不同的业务,调用数据操作功能,对数据库进行操作,完成相应的业务功能。需要说明的是,数据库中的数据是结构化的,除真正的业务数据外,还包括很多格式信息,这些数据称为原始数据;在原始数据返回之前,数据库驱动程序将对原始数据去格式化,去格式化后的数据称为初步数据;得到初步数据后,数据操作功能将这些数据返回给相应的业务功能,由业务功能对其进行加工处理形成业务数据后,再返回给表示层。
3.1.3 表示层 表示层即系统界面,其将系统的业务功能按照一定的处理流程组织起来,并以较友好的表示引导用户使用。系统界面从业务层获得业务数据后对其进行解析,并以可读性较强的最终数据呈现给用户。系统界面通常有浏览器模式和程序模式两种。浏览器模式是指使用HTML或XML等标记性语言开发的、由浏览器负责解析和界面展示的运行模式;而程序模式则是指用高级程序语言编写的,可以在操作系统层面直接执行的运行模式。业务数据和最终数据在很多情况下,内容相同,只是展示方式不同。比如浏览器模式的系统,其业务数据为HTML,通过浏览器来访问,将得到丰富的超文本多媒体的展示效果,而如果这一层不存在,那么用户得到的将是枯燥的HTML文本代码。
3.1.4 系统基础运行平台 系统的基础运行平台是数字图书馆系统能够运行的基础。使用编程语言开发出来的系统只是一系列代码的集合,而这些代码能够成功运行的关键在于语言对应的基础运行平台。基础运行平台封装了对操作系统底层资源的调用,同时也规定了程序的数据请求、调用、传输、响应等机制,使得由代码集合组成的计算机系统能够按开发人员的开发目标运行。
数字图书馆系统通常由上述4个部分组成,而开发的重点则在于数据层、业务层和表示层,但并不是每个数字图书馆系统都必须同时具备上述3层。一个系统可以没有表示层,如命令行程序;也可以没有数据层,如数据直接存储在内存中的软件;但业务层是每个系统不可缺少的,脱离了业务,系统并不能成为一个系统,只能算是一段没有意义的代码。根据3层的有无和表示层的界面模式,数字图书馆系统可划分为无数据存储的命令行系统、有数据存储的命令行系统、无数据存储的系统、C/S模式系统、静态WEB系统和B/S模式系统,如图2所示。
图2 数字图书馆运行模式划分
上述模式中,命令行系统功能单一、数据量少,集成简单,而C/S和B/S系统则较复杂,且是目前数字图书馆采取的主流模式,因此这两个模式系统的异构性是本文研究的重点。
从上述分析可知,任何一个数字图书馆系统的开发都会涉及到系统开发平台、数据库和信息表示方式的选择,而这三方面选择的不同分别导致了数字图书馆系统之间的基础运行平台异构、信息存储异构和信息表示异构。
3.2.1 基础运行平台异构 基础运行平台异构是由数字图书馆采取的开发技术和运行模式的不同而引起的基础架构上的异构。开发技术通常是指高级程序语言本身及其运行平台,根据源代码编译方式的不同,目前主流的程序语言可分为编译型与混合型两种。前者由程序运行库负责运行,如C/C++。而后者则由虚拟机负责运行,如Java/C#。C/S模式的系统一般使用编译型语言开发,依赖程序运行库运行,而B/S模式的系统一般使用混合型语言开发,依赖Web中间件运行。这三者的依赖关系如图3所示。
图3 基础运行平台之间依赖关系
程序运行库和虚拟机均运行在操作系统之上,其区别在于程序运行库对所编写的程序支持需要调用操作系统的相关资源,如程序界面的绘制;而虚拟机是一种虚拟操作系统,有供程序运行的完整机制,除保障虚拟机本身运行的资源外,其编写的程序不需要调用宿主操作系统的任何资源;Web中间件则也属于一种程序,本身需要程序运行库或虚拟机的支持才能运行,但对运行在中间件上的系统,则同样具有完整的运行资源,不需要调用包括程序运行库、虚拟机和操作系统的任何资源。
上述3类基础运行平台通常并不开放其数据请求与响应方法,如果从这方面解决异构性,必须对基础运行平台的构造、内存管理等机制有比较深入的了解,这种方法有点类似于对系统进行监听攻击,要求较高,其难度和工作量可能远远大于系统开发本身。而对于构建在不同基础运行平台之上的数字图书馆而言,即使两个不同平台都开放了对运行时数据的监听和获取,由于实现方式不同,要实现集成,其难度更大。因此从消除基础运行平台异构性的角度出发,来消除数字图书馆的异构性并不可行。
3.2.2 信息存储异构 信息存储异构是由数字图书馆采用的数据库的异同引起的数据底层结构上的异构。按照访问方式,目前主流的数据库可分为文件型和网络型两种。对于文件型数据库,在同一台服务器上,可以在各自的系统中添加相应的访问驱动来达到集成的目的。但这类数据库本身是操作系统上的一个文件,仅支持单机访问。而对于网络型数据库,理论上只要两个数字图书馆在网络上是连通的,那么就可以互相访问数据库。但网络型数据库一般以自定义端口的TCP作为数据传输协议,这种协议在通常情况下并不能穿透防火墙,因此造成了数据访问上的困难。同时,数据库的集成需要考虑数据存储格式、事务、并发性、安全性等诸多问题,是一项艰巨的工作,要实现异构数据库系统集成、构建统一访问接口无异于对数据库进行重新构建。更重要的是这个角度实现的仅是数据库的集成,并不是数字图书馆的业务,集成后仍然需要再做相应的业务开发,这无疑会大大增加开发的工作量和成本,因此这一方法也不可行。
3.2.3 信息表示异构 信息表示异构是指系统在将业务数据响应给用户时,采取的数据表示技术的不同而引起的访问层面上的异构。数据表示技术取决于系统的运行模式,B/S模式的系统通常使用HTTP作为数据传输协议,以TEXT、HTML、XML、JSON等标记性语言表示数据,而单机或C/S模式的系统则使用与基础运行平台相关的通信协议作为数据传输和表示技术。要从信息表示异构角度出发解决系统间的异构性,则必须使信息满足可获取且易解析的条件。
信息可获取是指用户可以通过第三方程序从系统中获取数据,易解析则是指数据本身具有一定的结构性,第三方程序可以通过解析读懂数据。单机或C/S模式的系统,其数据管理是封闭的,如果系统本身没有开放数据,则只能通过内存监听等非常规手段获取和处理数据,这种做法难度较大,而且破坏了系统本身的安全性,因此并不可行。而B/S模式的系统其数据是开放的,除了可通过浏览器操作数据外,用户还可以通过在浏览器中查看源代码或者使用HTTP客户端获取包括格式在内的所有数据,这些数据通常使用半结构化的HTML或结构化的XML、JSON等格式来表示。由此可见,B/S模式的系统满足上述两个条件,不论数字图书馆系统采取的是何种运行模式,只要将其改造成B/S模式,再统一数据表示格式即可消除异构性。
从上述分析可知,如果一个数字图书馆系统使用HTTP协议传输信息,并以HTML/XML/JSON格式对外发布其信息,那么该系统满足信息可获取并易解析的条件,这意味着其他系统只要遵守HTTP协议,就可以获取该系统发布的信息,再针对其信息格式,使用相关的解析方法就可以将获取的信息变为己用。在这个基础上,对解析后的信息再进行封装、汇总即可消除不同数字图书馆之间的异构性,其思路如图4所示。
如图4,消除数字图书馆异构性的关键在于将原图书馆业务功能以Web方式发布,这一步即通过二次开发,使得可以开发的业务功能使用HTTP协议传输信息,并以XML/JSON格式对外发布信息。完成这个工作后,再开发一个数据采集程序,获取各异构数字图书馆的业务信息,并对其进行解析、封装和汇总,最后返回给目标数字图书馆。该数据采集程序可视为目标数字图书馆的一个功能扩展。该程序可根据请求客户端的不同,返回不同形式的数据。此处客户端主要为数字图书馆和自然人。对于数字图书馆,采集程序返回结构化的XML/JSOM数据,由数字图书馆的相关业务模块接收,并封装成自己的业务功能,到这一步即完成了获取异构数字图书馆的数据,并转为己用。而对于自然人用户,采集程序返回可读性较强的HTML信息,在浏览器中显示。当该方法中的数据采集程序独立存在时,可视为集成中间件,可集成更多的数据,据此则可以构建数字图书馆联盟,实现更大范围的数字资源共享。
图4 数字图书馆异构性解决思路
根据上述技术思路,本文给出如下对策来消除不同数字图书馆之间的异构性。
(1)成立数字图书馆联盟,搭建数字资源共享平台,制定数字资源共享和交互标准。标准用于定义数字资源的元数据描述,建议采用XML、JSON或本体等简单并且具有自描述性的语言来构建。加入数字图书馆联盟的任何成员馆,均需要将可以共享的数字资源按照标准进行描述。
(2)对于拟新建的数字图书馆,其信息管理方式按照面向资源架构的方式进行构建,而数字资源则按照资源共享和交互标准来描述;对于现有数字图书馆,不改变现有系统架构和运行方式,仅将可以共享的数字资源按照共享和交互标准改造成基于面向资源架构的信息管理方式。
(3)数字图书馆联盟管理方定期维护加入的成员馆,检查共享资源的格式和内容,保证共享资源的合法性和完整性。
本文从技术角度总结了数字图书馆的一般架构,并对架构分层进行了描述,总结了数字图书馆的运行模式,根据不同的层次特点及运行模式,分析了数字图书馆的3个主要异构类型,得出从解决信息表示异构的角度解决数字图书馆异构性是较理想的方法,随后从该角度给出了解决数字图书馆异构性的思路及对策。然而本文的研究仅仅是从理论角度出发,还缺乏实际的验证,这将是下一阶段的研究工作。
[1]Tien M.Big Data:Unleashing information[J].Journal of Systems Science and Systems Engineering,2013,22(2):127-151.
[2]Kriewel S,Klas C,Schaefer A,et al.DAFFODIL-Strategic Support for User-Oriented Access to Heterogeneous Digital Libraries[J/OL].D-Lib Magazine,2004,10(6)[2014-11-18].http://www.dlib.org/dlib/june04/kriewel/06kriewel.html.
[3]Rao S.Applying the 5S Framework To Integrating Digital Libraries[D].Blacksburg Virginia USA:Virginia Tech,2006.
[4]Gonalves M,Fox E,Watson L,et al.Streams,structures,spaces,scenarios,societies(5s):A formal model for digital libraries[J].ACM Transactions on Information Systems,2004,22(2):270-312.
[5]Ketchell D,Steinberg R,Yates C,et al.Heilemann.LaneConnex:An Integrated Biomedical Digital Library Interface[J].Information Technology and Libraries,2009,28(1):31-40.
[6]Beneventano D,Gennaro C,Bergamaschi S,et al.A mediator-based approach for integrating heterogeneous multimedia sources[J].Multimedia Tools and Applications,2013,62(2):427-450.
[7]Amato G,Gennaro C,Rabitti F,et al.Milos:a multimedia content management system for digital library applications[C]//Proceedings of the 8th European Conference on research and advanced technology for Digital Libraries(ECDL 2004).Berlin:Springer,2004:14-25.
[8]孔 敬.基于Portal构架的数字图书馆集成框架[J].大学图书馆学报,2005(5):51-56.
[9]郭瑞华.数字图书馆异构数据源的分层式本体整合方法研究[J].图书馆学研究,2009(10):20-22.
[10]李静云.基于Ontology的数字图书馆异构数据库统一检索研究[J].图书馆学研究,2010(11):76-78.
[11]曲克竹,李 鹏,王 萍.数字图书馆异构数据交换中枢应用研究[J].情报科学,2011,29(10):1585-1588.
[12]陈平华.基于SOA的高职院校数字数字图书馆信息集成平台构建[J].图书馆学刊,2013(2):103-104.
[13]张银犬,朱庆华.网格环境下个人数字图书馆信息检索策略[J].中国图书馆学报,2007(3):56-59.
[14]Saracevic T.Digital library evaluation:Toward evolution of concepts[J].Library Trends,2000,49(3):350-369.