缪 纶 叶 茂 王志璋 段媛媛
(中国水利水电科学研究院 中水科信息技术有限公司,北京 100044)
近年来,随着信息技术的飞速发展,数据资源数字化日趋成熟,发展文献资源的网络数字化共享,实现现代图书馆向数字图书馆转变已是必然趋势。目前,水利行业文献资源的数字化程度不高,水利水电藏书及文献资源面临着数字化建设的极大需求。中国水利水电科学研究院水利水电行业国家级综合性研究中心,从2000年就开始从事数字图书馆平台的研究建设,利用网络以及数据库技术开展图书和文献资料的数字化加工、存储。并先后建成了一些文献和图书查询和管理的数字化平台系统。
然而,随着信息技术不断发展,特别是文献资源的日益丰富和用户需求的多样化,使得图书馆业务格局发生了改变,更多的新业务不断地涌现出来。面对这些变化,如何建立一种高效的数字化平台实现对海量的异构数字化信息资源进行充分整合,有效应对不断增加的新业务需求,是目前需要解决的关键问题.。当前国外主流的数字图书馆平台已经开始采用面向服务的体系架构 (Service-Oriented Architecture,SOA),这一架构能有效赋予数字图书馆快速适应业务需求变化的能力。本文在分析中国水利水电科学研究院图书馆馆藏资源及数字化现状的基础上,将SOA的理念引入到水利水电数字图书馆的建设中,意在通过加强文献数字化建设的实践经验为业界提供借鉴。
面向服务的体系结构 (Service-Oriented Architecture,SOA)是一个组件模型,它将应用程序中的不同功能单元作为服务,并通过对这些服务之间定义良好的接口而将其联系起来。接口是采用中立的方式进行定义的,它独立于实现服务的硬件平台、操作系统和编程语言,这使得构建在各种各样的系统中的服务可以以一种统一、通用的方式进行交互。目前,这样的通用接口技术包括COBRA、Java RMI、COM、Web服务等,其中Web服务技术由于其通用性强、开发简单、协议标准、支持丰富等一系列优点,成为实现SOA最广泛的技术[1]。SOA是为了解决在Internet环境下业务集成的需要,通过连接能完成特定任务的独立功能实体实现的一种软件体系架构[2]。因此,SOA特别适合于整合不同的信息应用系统来形成统一的服务体系来供用户使用。对于用户而言,系统的服务是统一的接口,用户并不需要了解SOA如何整合不同的系统来提供这些服务的[3~4]。
对于数字化资源和资源管理系统来说,采用SOA架构可以把不同的资源库和管理作为服务节点,采用Web服务技术形成统一的服务接口,然后通过SOA提供统一的资源管理服务门户,可以最大限度地提高资源使用效率和提供更好的资源服务。同时,统一的服务接口降低了系统之间的耦合度,可方便地实现资源库的扩展和功能的扩充。
图1是一个面向服务的SOA架构,从图中可以看到,在用户和业务层之间引入了一个 “服务”抽象层。用户通过服务层访问业务对象,而不是直接操作业务对象,业务对象作为类库的实例而存在,通过服务加载到内存中。同时,服务层和业务层都处在同一流程中,对业务对象的操作就变得很简单和容易了。可以把服务层中的 “服务”看成一个 “黑盒子”:它实际操作业务对象,然后得出结果,从而减少交互。
图1 面向服务的架构
中国水科院图书馆馆藏图书以水利水电科技图书、期刊等为主。截止到目前,中文藏书10万余册,外文藏书6万余册,中文期刊200余种,外文期刊60余种。此外,图书馆材料室收录全院各种科研文献 (包括科技报告、技术论文、技术译文等)近百万册。如图2所示,水利水电数字图书馆现有文献资源主要包括中文图书、中/外期刊、特色书库和自产文献等,引进资源主要包括有学位论文、会议论文以及需要扩增的期刊资源等[5]。
根据资源体系结构,平台采用基于WEB技术、B/S结构的信息发布管理体系模式,自行开发了中文图书、外文期刊、特殊书库、自产文献管理系统,引进万方数字化期刊、学位论文和会议论文系统[5]。
图2 资源体系[5]
当前水利水电数字图书馆已建和待建的数据库一共有7个,分别部署在5台服务器、2种数据库平台上,与之配套的检索系统有7个,如表1所示。多个资源入口给读者带来困扰,也给检索带来不便,不同系统之间如何实现有效耦合,为用户提供简单、完整的检索服务是当前水利水电数字图书馆急需解决的功能性课题。基于SOA整合图书馆数字资源改变了图书馆传统工作流程模式,在图书馆数字资源整合的基础上为用户提供了完整性服务,其目标是将已经存在的检索功能封装成检索服务,封装的服务将部署在服务器上并向外提供服务声明,供外部调用。
表1 数据库及检索系统
采用良好的架构设计,能降低软件开发成本、提高系统性能。架构设计应该完成的工作是:业务构件分析,应用架构设计,按照面向构件的思想,识别构件、确定构件接口和行为,决定服务构件需求,负责架构归档。“水利水电数字图书馆”基于SOA系统架构,并应用了数据挖掘、智能决策,将先进的技术、思想与实际的应用很好结合,可使分布各地的用户在网上实现数据资源的查询和下载。
“水利水电数字图书馆”的设计与制作以图书馆的基本业务活动为依据,并结合数字图书馆的特点,为读者提供个性化服务,本系统由以下模块构成。
主控模块:作为平台系统的主页,其功能主要是简要介绍各个子模块的功能,链接各个子模块。
资源检索:为用户提供多种途径(模糊检索、书名检索、分类检索及作者检索)检索数字文献的目录和原文。
全文服务:给有访问权限的读者提供全文浏览及下载功能。
编目录入和维护服务:面向数据采编人员及维护人员,使其可以方便地维护数据库。
以上模块都按照高度抽象的法则封装成SOA的服务,其体系架构如图3所示。
图3 基于SOA的体系架构[6]
如图3所示,数字图书馆各应用系统和资源数据库等按照面向服务的思想重新集中和整合,各模块之间采用XML进行数据交换,以 WSDL(Web Services Definition Language)来描述服务,通过UDDI(Universa1 Description,Di8covery and Integration)仓库进行注册。
数据资源信息服务申请者可通过SOAP(Simp1e Object Access Protoc01)提出服务请求并获得服务。
服务组件架构(Service component architecture,SCA)是一种简化面向服务架构(SOA)中的应用程序开发和实现的新技术,借助于SCA能够更容易创建新服务或者将现有的资源(原有的用传统技术开发的管理系统等)转化为可重用的服务,这些服务可以快速适应不断变化的业务需求。
在数字图书馆架构基础上引入SOA架构,构建基于SOA的三层数字图书馆体系架构。
最底层是数据集成层,该层集成了当前水利水电数字图书馆已建的数据库,包括中/外期刊数据库、中文图书库、论文库、特种书库以及代建的资产文献库。
中间层是面向服务的SOA业务逻辑层,它将数字图书馆的各应用系统,屏蔽底层数据的异构性,并内嵌到业务逻辑层中,提供统一的视图和接口。
表示层,它能够提供用户查询服务,并根据需要提供个性化服务,实现户便捷、高效地用户操作。
在这种三层架构中,各层的主要构成模块如下所述。
(1)数据集成层。数据集成层由数字图书馆已建的数据库库组成,它将业务利逻辑从底层数据结构中抽象出来,维护底层数据的结构、位置、格式、同步模式和交叉引用关系。该层利用挖掘管理工具,对已有数据资源进行综合分析,提取有用信息,提供数据集成服务,对数据进行可高的读取和更新。并通过相应的管理手段保证其运行,提高生产率,降低了创建和维护的成本和复杂度。
(2)SOA业务逻辑层。应用集成是基于SOA数字图书馆体系架构的首要问题。在这一层中,各个应用程序的业务逻辑或某些单独的功能被模块化并作为服务呈献给客户端的用户。这些服务采用接口提供独立的功能。对应用开发人员或集成者来说,可以通过组合一个或多个服务来构建应用,而无需理解服务的底层实现。SOA服务通过统一描述,定义和集成 (UDDI,Universa1 Description,Definition,and Integration)登记服务,提供统一的服务列表,并使用 WSDL(Web Service Description Language)来描述具体的服务。而SOAP,作为传输层,用来在表示层和业务逻辑层之间传送消息。表示层的用户提交的查询信息,通过UDDI注册表查找服务,取得服务的WSDL描述,最终通过SOAP来调用服务。
(3)表示层。表示层主要负责与用户之间的交互,包括期刊、图书、论文的查询以及编目维护;表示层与业务逻辑层平台采用XML进行数据交换,并由表示层翻译成客户端浏览器可以识别的格式(如HTML格式)。在这一层,系统为用户提供外观以及查询内容的定制,还可利用相应的工具编制个性化的内容。同时,通过对数据的分类和权限划分,建立统一界面入口,并实现不同用户的多级需求,建立统一访问的界面接口和风格。
在基于SOA水利水电数字图书馆架构中,将数字图书馆已有的各应用系统整合在一起。
通过采用XML标准定义的服务接口,在不改变原有应用系统工作模式的基础上,随时增加业务功能模块,可以用一个服务替换另一个服务而无须关心其底层的实现技术,使系统更加具备可扩展性。
这种架构可以结合历史数据和理论模型及专家经验,实现数据和管理的集成,同时也为用户提供统一的查询平台,同时采用SOA架构实现的应用程序可使水利水电数字图书馆拥有更大的灵活性,应用程序更加简洁和高效。
数字图书馆是现代化图书馆发展的趋势,建设水利数字图书馆是水利信息化建设中的重要课题。本文在研究SOA体系架构及其理论的基础上,探讨了基于SOA的水利水电数字图书馆架构,同时,提出建立统一的数据资源服务体系,整合不同数据库资源,建立统一的信息资源访问接口。本文针对水利信息化对数据资源建设、资源共享的要求,建设性的提出了采用SOA的体系架构实现数字图书馆的构建的思想,具有一定的参考价值,必将推进我国水利水电数字图书馆建设的进程。
[1]柴晓路.Web服务架构与开放互操作技术[M].北京:清华大学出版社,2002
[2]Warawarans S.Web Services p1atform architechcture SOAP,WSDL,WS-Po1icy,WS-Addressing,WSBPEL,WS-Re1iab1emessaging andmore[M].New Jercy:Prentice Ha11,2005:101-120
[3]OASIS.Web Services architecture[EB/OL].[2008-03-26].http://www.w3.org/TR/ws-arch/
[4]G1obus.Open grid services architecture[EB/OL].[2008-03-26].http://www.g1obus.org/ogsa/
[5]王冠华,白静怡,陈煜,朱星明 .数字图书馆体系构架研究及实践(J).中国水利水电科学研究院学报,2005(4):282-286
[6]杨彦辉 .基于SOA的图书馆信息综合服务系统.图书馆学刊(J).2007(2):134-135