1、一种面向服务的数字图书馆体系架构邹 凯 陈添源 ( 湖南湘潭大学管理学院 湘潭 411105)【摘要】 认为 SOA 是数字图书馆实现以用户的信息需求为中心、提供多种功能服务的体系架构的理想解决方案。文中详细介绍了 SOA(service-oriented Architecture,面向服务的体系结构或面向服务架构)的体系架构模型、原 则和实现方式,并回顾分析数字图书馆主流的体系结构及存在的主要问题, 针对这些问题,提出了利用 SOA 实现数字图书馆跨异构、异质资源的“整合 创新和随需而变”的体系架构思路。【关键词】SOA 面向服务 数字图书馆 体系架构A Service-Oriented D
2、igital Library ArchitectureZou Kai Chen Tianyuan(Management School of Xiangtan University Xiangtan 411105)【Abstract】SOA is considered to be an ideal solution for digital libraries to deploy an architecture which focuses on users information requirement and provides multi-function services. This arti
3、cle introduces the model, the principle and the achieving way of SOA (service-oriented Architecture) architecture in details, and analyzes the chief problems of digital libraries mainly architecture at present as well. It sets forth a problem-solving project on the requirement-followed architecture
4、which helps to the conformity and innovation of digital libraries different structure and heterogeneity resources with SOA.【Key Word】SOA;Service-oriented; Digital Library; Architecture引言数字图书馆的基本目标是创造一个良好的信息环境,通过 Internet 提供对分布式存储信息的知识化组织、智能化访问和服务。在数字图书馆的发展推进过程中,由于不同组织建设数字图书馆的目的、方式、运行手段等的不同,导致其采用的操作系
5、统平台、通信协议、软件框架体系结构各不相同。正是数字图书馆这种分布式、异构式的特点决定了当前数字图书馆要实现异质、异构数字资源系统的有效信息整合,必须解决在已有的信息基础设施上设计实现新的软件体系架构,使各种数字信息服务在该架构上达到统一,更好地适应数字图书馆的各类业务服务需求。而当前主流的分布式数字图书馆体系架构采用面向对象的模型,由于面向对象体系结构本身依赖于具体的编程语言、封装粒度小、耦合度高,造成面向对象体系结构难以形成标准和开发规范,不能达到软件重用的可移植性和互操作性要求,结果产生大量的“对象孤岛”和“数字信息孤岛” 。SOA(service-oriented Architectu
6、re,面向服务的体系结构或面向服务架构)作为一种不局限于任何特定技术或厂商的体系架构方法,它能够使组织快速开发、部署和管理一系列可共享的业务服务,从而将数字图书馆中分散的功能单元组合成可互用的、基于标准的服务,实现“整合创新和随需而变”的体系架构理念。1 SOA 概述 1.1 SOA 体系架构模型面向服务的体系结构(service-oriented architecture, SOA)准确地说是一个组件模型,它将应用程序的不同功能单元(也称为服务)通过彼此之间定义良好的接口和契约联系起来。接口采用中立的方式进行定义,并与实现服务本身的硬件平台、操作系统及具体编程语言等无关 1。这种具有中立的接
7、口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松耦合。其具体的协作如图 1 所示。Service RegistryService Consumer Service ProviderFindBind and InvokeService DescriptionPublishServiceService Description图 1 面向服务的体系架构模型SOA 具有类似三角形的结构,其相互支撑的三个顶点分别为服务提供者、服务使用者和服务注册中心,它们各自承担着服务发布、服务查找和服务绑定三项操作。服务提供者向服务注册中心发布服务,服务请求者通过服务注册中心查找所需的服务,并绑定到这些服务
8、上。当然服务提供者也可以直接与服务请求者实现交互。在 SOA 架构下, “服务”成为应用系统的基本组件,使得 IT 技术与业务有机的结合在一起。SOA 中的服务代表的是一个由服务提供者向服务的请求者发布的处理过程,它包含两个层面的含义,其一是它在相对较粗的粒度上对应用服务或业务模块进行封装与重用,实现端到端业务流程的一整套服务;其二是利用显式的、与实现无关的接口来定义服务,以有效支持灵活的、动态重配置的流程。 “服务”是 SOA 的核心,它指的是业务服务,例如更新一项贷款申请是一个业务服务,但更新数据库中的一条记录则不是;服务须连接在一起来实现业务流程,因为业务流程引擎能更容易地将服务组合为业
9、务流程。1.2 SOA 架构原 则、关 键组件及功能为了实现 SOA 架构,部署实施的基础架构必须支持 SOA 原则。这个原则一般可以表述为:SOA 在相对较粗的粒度上对应用服务或业务模块进行封装与重用;服务间保持松散耦合,基于开放的标准,服务的接口描述与具体实现无关;灵活的架构服务的实现细节,服务的位置乃至服务请求的底层协议都应该透明 2。另外一方面,一旦按照SOA 的思想提炼出各种业务服务并且准备对外发布服务,以便随时被服务对象调用。就需要在 SOA 中架构一个中间层,实现在 SOA 架构中不同服务之间的智能化管理。部署时最后要考虑的重要因素是这样的架构能支持对现有 IT 系统的重新利用,
10、先前开发的服务可以被重用,实现“一次组合,多次利用(COLA,ComposeOnceLeverageAnywhere)” 3的高效性,延长现有应用系统的生命周期。服务总线(Service Bus)以提供集成的通信、消息传递以及事件基础架构支持服务交互功能成为 SOA 基础架构的关键组件,有时也被称为分布式基础架构,以企业服务总线(Enterprise Service Bus)为例,如图 2 所示。 “服务总线 ”是一种逻辑体系结构组件,它提供与 SOA 的原则保持一致的集成基础架构,真正体现了 SOA 的理念,一切皆为服务,服务在总线(BUS)中处于平等的地位。在“服务总线”这个关键组件架构上
11、,被集成的对象被明确定义为服务,极大简化了在集成异构性上的考虑,帮助建立以服务为核心的基础架构平台,真正实现“弥合业务服务与 IT 服务之间的鸿沟” 。“服务总线”提供了最基本的功能保障 SOA 系统的运行,这些功能包含如下内容:在总线范畴内对服务的注册命名及寻址管理功能(服务的 Meta-data 管理) ;面向服务的中介功能,例如提供位置透明性的服务路由和定位服务、多种消息传递型式和支持广泛使用的传输协议;支持多种服务集成方式,比如 JCA、Web 服务、Messaging、Adaptor。 对服务管理的支持,如服务调用的记录、测量和监控数据的提供。图 2 分布式 ESB 基础架构 42
12、SOA数字图书馆的新体系架构纵观数字图书馆的发展历程,由传统图书馆向数字图书馆的转变首先经历了图书馆自动化,主要使用集中式计算机系统来实现传统的采编流通以及公共目录查询等大量的 C/S结构的应用;后来又引进了 PC 机和工作站,进而单机联网成为网络系统。在这样的系统中,同时存在着大型机、SUN 工作站、Macintosh 机、PC 机,运行着Windows、Solaris、Unix 以及专用的操作系统和各种类型的数据库,同时各个图书馆的网络体系结构以及采用的通信协议也都有可能不同。在这样的基础之上建设的数字图书馆,网络环境中必然存在异构操作系统、异构网络、异构数据库 5。而我们就是要在如此复杂
13、的网络环境中实现数字资源的整合,实现已有系统的移植和新系统的引入,进而达到基于物理载体的管理向数字资源的管理转变,基于“拥有”的服务向基于“可获得”资源服务的转变,最终实现“动态构建满足各种用户群和业务流程需要的信息服务系统” 6。由于分布式构件技术在异构平台兼容、集成已有系统方面有着独特的优势,当前主流的分布式数字图书馆体系架构如 CORBA、COM/DCOM 和 JavaBean 均采用面向对象的方法给出软件构件的定义,包括一组通用的对象服务以及使用规范,从而提供完整的分布对象运行环境,为快速开发可靠实用的多层数字图书馆 C/S 网络应用创造条件。随着应用技术的快速发展和信息资源个性化需求
14、服务的不断增加,软件架构师和 IT 技术人员开发出针对这些分布式系统的异质组件来实现信息服务业务流程整合。然而,这些异质组件是在对象基础上衍生的组件,是对象的封装体,其特点是通过接口技术将一些相关对象有机地组合在一起,提高了抽象粒度级别,但是由于各种组件技术不兼容而直接影响了在分布式系统中的应用。尽管两者都在努力的改进以便能够互相兼容,但 IT 人员不得不花费大量的精力和时间处理它们的兼容性,从而使支撑信息服务业务流程的 IT 体系架构和环境愈加复杂。即使没有异质组件的兼容问题存在,组件之间仍然需要深度的互相了解。除了知道数据传输协议和数据报文格式以外,还必须知道它的准确位置,并且还要很清楚地
15、了解有关其接口的一切,以便应对接口变化。这种构架模型明显是一种“紧耦合”的模式。SOA 是在面向服务体系结构基础上扩展的新体系结构,形成 SOA 的基本元素是服务,它是组件的封装体,相对于组件来说,服务是更高一级的抽象级别。它在实现时不需要从一个请求到另一请求的信息或状态,也不需要依赖于其他服务的上下文和状态,以一种“松耦合”的模式来促进系统的灵活性和敏捷性,实现整个体系架构对业务需求的快速响应。2.1 SOA 的信息服务理念与数字图书馆的业务服务理念“不谋而合”当前数字图书馆的核心业务服务理念始终围绕着“异质、异构数字资源整合与为信息需求用户提供多样化、个性化的信息服务”之间的矛盾而展开:面
16、对越来越多的异质、异构的数字资源系统,怎样对其进行集成、重组、整合,建立有关联性的资源体系,以解决“数字信息孤岛” ,提高数字资源的利用率一直是当前数字图书馆信息资源整合的研究目标,另外一方面,数字图书馆的服务应是智能化的知识服务,不仅能为用户提供高效、个性化、便捷的检索服务,同时应向用户提供统一的智能化的知识获取手段,向用户主动、及时、准确地提供所需信息和知识 7。信息服务就是 SOA 的核心基因,这一理念的提出本身就是为了应对 IT 环境的变化。它将业务层和技术层之间的信息有效地进行沟通,让企业应用层可以彻底摆脱技术的束缚。通过将注意力放在服务上,应用程序能够集中起来提供更加丰富、更加灵活
17、、目的性更强的信息服务流程,使得基于 SOA 的应用系统更加真实地反映出与业务模型的紧密结合。2.2 SOA 为数字图书馆的异构、异 质信息资源整合“量身定做”在数字图书馆的软件体系结构发展历程中,从分层的体系结构、面向数据和对象的体系结构到知识库体系结构等数次变革来看,这些体系结构无疑都是为了满足读者的信息资源需求,更好地促进图书馆的信息服务业务,从而解决不断增加的复杂程度。从层级结构的观点来分析,当前数字图书馆采用的软件体系结构通常都是在计算机硬件、操作系统和网络基础设施之上构成资源管理、业务逻辑和应用表现三个层次,由于每一次均呈现异构、分布、自主和随需应变等特征,导致了整个体系结构在系统
18、集成方面的复杂性。基于 SOA的体系架构能够将数字图书馆的数据和内容有效整合以应对用户的个性化信息需求,屏蔽一切应用上的困难,比如分布结构和异构障碍,直接提供面向终端的服务。利用现有信息资源,实现、增加程序功能部件的重复利用,减少开发成本,加快新应用的部署,降低实施风险,促进信息服务业务流程的不断优化。3 基于 SOA 的数字图书馆体系架构实现3.1 设计思想及体系架构实现方式设计基于 SOA 的数字图书馆体系结构的目的在于:在众多分布、异构和自主的信息资源系统组成的开放环境中,数字图书馆可以敏捷地根据具体的信息需求用户的个性化需求,发现、解析和调用所需要的资源和服务,按照个性化的服务流程和业
19、务逻辑将信息资源或服务灵活组织起来构成新的服务,从根本上解决业务功能上的“重用”和“互操作”问题,实现数字图书馆服务的动态定制。 在 SOA 这一种革命性的体系架构下,数字图书馆能够整合已有应用系统,释放其功能或数据为可重用的服务与业务流程,实现对各种业务需求的灵活应变。但需要强调的是,尽管 J2EE 和.NET 是目前开发 SOA 应用程序常用的平台,但 SOA 不是 Web 服务, “Web服务是技术规范,而 SOA 是设计原则。特别是 Web 服务中的 WSDL,是一个 SOA 配套的接口定义标准:这是 Web 服务和 SOA 的根本联系。 ” 从本质上来说, SOA 是一种架构模式,而
20、 Web 服务是利用一组标准实现的服务,加上 Web 服务中的 WS-I 协议保证了来自不同厂商的 Web 服务即使运行在不同的平台上,底层的实现机理不同也可以顺利交互,这是以前的任何一种技术如 CORBA,EJB,或 DCOM 都不能做到的。而且, Web 服务的定义与实现是分开描述的,即松散耦合,这就从技术上实现了“整合创新和随需而变”的架构理念。因此,基于 SOA 原则(满足 SOA 的互操作性和平台无关性)并结合 IBM 的参考架构 8,本文设计实现具有高服务质量和 Web 服务标准支持的 SOA 数字图书馆体系架构。3.2 体系架构通信和消息处理、交互和安全性控制、服务质量级别管理和
21、自治、基础架构智能数字图书馆服务总线(Digital Library Service Bus)面向 SOA 开发的高效重用服务Internet 上有用的文献信息资源已建图书馆业务系统数字化特种馆藏商用的网上联机电子出版物或数据库WSDL Interface:SOAP/HTTP RMI/IOP Interface JCA InterfaceXML Interface:XML/MQ个性化服务 检索服务 数字参考咨询服务其他数字图书馆协作服务灵活定制的未来服务数字图书馆门户网站服务基础设施层服务层业务层服务用户层WSDL Interface:SOAP/HTTPWSDL Interface:SOAP/
22、JMSXML Interface:XML/MQ图 3 基于 SOA 的数字图书馆体系架构整个体系结构分为四层,服务基础设施层、服务层、业务层和服务用户层。服务基础设施层 该层是数字图书馆的信息基础设施,在 SOA 架构下分为信息资源部分和应用系统部分。数字图书馆的信息资源主要有图书馆本身的数字化特种馆藏、商用的网上联机电子出版物或数据库和 Internet 上有用的文献信息资源,而现有图书馆的业务系统和面向服务架构的高效重用服务则是应用的基础构件。该层通过对已有应用和信息资源的整合,灵活采用各种适配器技术将已有数字图书馆中的业务逻辑和业务数据以 Web数据封装方式向服务层的“服务总线”提供资源
23、调用。服务层 该层是整个数字图书馆体系架构的核心,主要实现跨越馆内不同的部门、业务单元甚至数字业务合作伙伴进行应用程序集成,即 SOA 架构的关键组件,在此称为数字图书馆服务总线(Digital Library Service Bus) 。其本身可以具备通信和消息处理、交互和安全性控制、服务质量级别管理和自治、基础架构智能等功能。作为很多异类应用程序间的集成中枢,它能提供很多不同的集成技术,并对大量供选择的标准技术加以利用。为业务层提供粗粒度级的服务调用。业务层 该层是整个体系架构实现业务服务的平台。它根据数字图书馆的具体业务的需要灵活组合服务级的应用程序服务,例如用户的个性化服务、检索服务、
24、数字参考咨询服务和其他数字图书馆协作服务等。当然也包括未来的业务需求的灵活定制。服务用户层 该层是整个数字图书馆面向用户的统一检索平台,在业务层构造的逻辑集成信息服务机制之上以门户网站方式提供数字图书馆各类异构、异质资源上的透明访问,为用户提供个性化的信息内容和图书馆业务服务。4 结束语SOA 作为新型的数字图书馆体系架构解决方案,模拟了图书馆现实业务流程中以服务为中心的特点,将信息技术从传统的“以系统为中心”转向“以服务为中心” 。由于传统的数字图书馆体系架构,以软件系统为关注焦点,是一种内向的技术视角,强调整个系统满足确定的功能与性能需求,强调系统的功能与可靠性。而 SOA 则以用户的信息
25、需求业务为关注焦点,是外向的业务视角,强调的是业务需求向信息系统的映射,保证了数字图书馆软件架构上的灵活性,遵循了“业务驱动服务,服务驱动技术”的新理念,实现了“以用户为中心”的业务流程敏捷应变。参考文献1 中科永联.SOA. 2006.6.6.http:/ Sept 20,2006)2 李珉.企业服务总线解决方案剖析,第 1 部分:企业服务总线的基本概念. 2005. 8.1http:/ Sept 22,2006)3 San Jose, Aschheim-Dornach.Pressemeldungen 2005. 2005.6.10. http:/ (Accessed Sept 25,200
26、6)4 李珉.企业服务总线解决方案剖析,第 1 部分:企业服务总线的基本概念. 2005. 8.1http:/ Sept 26,2006)5 李秀.数字图书馆的互操作与分布式构件技术.现代图书情报技术.2002(1):21-246 黄晓斌,钱国富.数字图书馆开发平台及其发展趋势.2005(4):53-577 马文峰.数字图书馆与资源整合.2006 年数字图书馆前沿问题高级研讨班会议讲义.2006.8.168 IBM. WebSphere Business Integration Server Foundation V5.1 Handbook.2004.11.12.http:/ Oct 2,2006)作者简介:邹 凯,男,1965-10,博士,教授,湘潭大学管理学院,湘潭,411105,13973259810,。陈添源,男,1979-9,硕士,助教,湘潭大学 9006#,湘潭,411105,13487609396,。