面向服务的(SOA)数字图书馆,本文主要内容关键词为:数字图书馆论文,SOA论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
随着数字图书馆的不断建设和数字资源的不断丰富,读者准确地在有限的时间内利用图书馆的服务获取到需要的知识,成为体现图书馆服务水平高低的重要因素之一。为读者快速有效的提供服务,不仅取决于馆藏资源、馆员自身的业务技能水平,还需要一种合理架构的图书馆作为系统平台支撑。
目前,数字图书馆的建设已经基本完成前两个阶段:以图书馆自动化系统为中心的第一个阶段和以资源数字化为中心的第二阶段,现在正处于以资源集成为中心的第三个阶段。数字图书馆经历过前两个阶段后,每个应用服务依靠不同的异构技术,构建起了自己的基础应用平台。这些应用服务由于提供商不同,因而不能方便的集成和重用,就像是数字图书馆体系下的多个“信息孤岛”,用户在使用时既会浪费时间又会造成检索结果不全面的缺陷。构建下一代面向服务的SOA数字图书馆的架构、将多个应用系统集成后,用户获取信息将不再是依靠单个的应用、单个系统,重复检索了,而是在一个新的分布式信息存储架构上使用数字图书馆的服务。数字图书馆成为了一种动态可配置的架构体系。
1 面向服务架构的SOA(Service-Oriented Architecture)
1.1 SOA的引入
早在上世纪70年代初就出现过利用SOA构建软件的方法。在1996年,Gartner Group第一次明确提出了SOA的概念,由于受到当时技术条件的限制,SOA的思想无法具体实现。随着Web服务技术的不断完善和发展,2002年12月,Gartner Group再次提出了SOA这一术语,此时引起了业界的广泛关注。Gartner Group从组织方式层面对SOA进行了定义:面向服务的体系结构是一种客户机/服务器软件设计方法,其中应用由软件服务和软件服务使用者组成(也称为客户机或服务请求者)[1]。
关于SOA,目前尚未有一个统一的、广泛接受的定义。一般认为:SOA——面向服务架构是一个组件模型,它将应用程序的不同功能单元(也就是“服务”),通过服务间定义良好的接口和契约联系起来。接口是采用中立的方式定义,独立于具体实现服务的硬件平台、操作系统和编程语言,这样使得构建在系统中的服务可以使用统一和标准的方式进行通信。SOA是一种设计和实现应用程序的方法,这些应用程序处理那些通过定义良好又与平台无关的接口,约定访问松散耦合的、粗粒度的、可重用服务的互通问题[2]。在SOA中,服务(service)是封装成用于业务流程的可重用组件。它提供信息或简化业务数据从一个有效的、一致的状态向另一个状态的转变[3]。用于实现特定服务的流程并不再重要了,任何服务的请求者都可以通过标准的方式去访问一个或多个服务,并将它们连接起来,按需形成有完整功能的系统。
1.2 SOA的技术特性和结构框架
SOA与传统的分布式组件架构相比,有如下几个关键技术特点[4],[5],[6]:
松散耦合。耦合是指两个应用软件之间的相关性和依赖性。传统的软件系统是一种“紧耦合”结构,各子系统、各应用之间拆分和沟通很困难。SOA将应用程序的不同功能单元,通过服务间定义的接口联系起来,接口具有的特征被称为服务之间的松散耦合。松散耦合消除了对子系统间进行紧密控制的需要,就系统的性能、可伸缩性以及高可用性而言,每个系统都可以实现了一种独立管理。这种方式给服务提供者(数字资源供应商)和服务使用者(图书馆馆员、读者等)提供了独立性。
基于行业标准。SOA由于可以利用基于标准的技术实现,因而打破了行业之间的垄断,促进了供应商产品的最优组合。如其中的标准化接口,服务提供者使用标准语言定义服务接口,只要服务接口保持一致后,改动、调整某个应用程序的内部功能或结构框架时对其它应用程序不会产生影响。
互操作性。SOA可以使用任何平台之间的功能,而与编程的语言、操作系统和计算机类型等等无关,可以确保各系统之间的集成性和互操作性。
重用的服务。服务重用避免了重复开发的弊端,同时提高了实现中的一致性。由于使用目的不同,可以将服务分别多次进行组合。在应用中,服务重用比组件重用和类的重用要更容易实现。
面向服务SOA的体系结构可以用下图简单描述:
图1 面向服务SOA的体系结构图
在该结构中,定义了三种角色[7]:
服务代理(注册中心)服务代理是服务发现的支持者,它包含一个可用服务的存储库,并允许感兴趣的服务请求者查找服务提供者接口;
服务提供者 服务提供者将自己的服务和接口契约发布到服务注册中心,以便服务请求者可以发现和访问该服务;
服务请求者服务请求者通常称为客户端,它发起对注册中心服务的查询,通过传输绑定服务,并且执行服务功能。服务请求者根据接口契约来执行服务;
在SOA架构中,服务提供者、服务请求者和服务代理者通过3个基本操作:发布(Publish)、查找(Find)、绑定(Bind)相互作用。服务提供者向服务代理者发布服务;服务请求者通过服务代理者查找所需的服务,并绑定到这些服务上;服务提供者和服务请求者之间可以交互。
2 基于SOA架构的数字图书馆应用集成系统
根据Gartner的预测,到2008年,企业80%的应用都将通过使用SOA来实现,从2006年开始,企业实施SOA将进入高峰期[8]。在企业实施SOA的热潮中,也给研究数字图书馆的科研人员带来了一些思考:数字图书馆中的多个应用系统如同企业中的多种资源,企业利用SOA,是为了管理资源实现资源的重用,从而提高工作效率,最终为了提高企业的核心竞争力;同样,图书馆利用SOA,也是为了管理多个孤立的信息资源,集成了数字资源使用过程中的重用,提高信息资源的查全率和查准率,最终实现图书馆为更多读者提供更优质服务的目的,体现图书馆的价值所在。在图书馆领域内,研究和开发基于SOA架构的新型数字图书馆系统在国外已经开始启动,对数字图书馆系统的建设也在不断的深入研究中[9]。
2.1 SOA与Web服务的契合
基于服务架构的SOA,从本质上来说是一套理念和方法。不同的人会从不同的角度理解SOA。管理人员看业务层面,看到的是最后体现出来的服务;架构设计人员看到的是架构设计的指导思想,一种架构设计风格,存在可模式化、可封装、松耦合、可重用等好处;编程人员看到的就是一种编程模式,最后能够实现什么功能;而对于用户,就是一些流程。实施SOA主要的目标,就是为了能够给用户带来更多的便捷。
过去应用程序系统的设计,通常是从实现的功能出发,而不是依据用户的业务流程的需要(即功能驱动应用),造成尽管实现了用户需要的功能,但用户使用不方便。SOA的提出,解决了这个矛盾,它的核心思想是:业务驱动、面向服务、模式思维。随着数字化信息资源的不断增长,图书馆提供的资源类型和数量也在不断增长,提供的服务也日益多样化和个性化,造成图书馆系统功能的复杂性也在不断增强。设计一个满足用户需求的图书馆应用集成系统,为读者提供高质量的服务,既是为了满足读者的对图书馆的需求,也是图书馆的核心工作之一。
Web服务是建立在开放标准和独立于平台的协议基础上的,通过http协议,在服务提供者和请求者之间进行通信。SOA是独立于技术实现的,有时甚至根本不需要任何附加的技术就能实现SOA架构,显然,SOA并不一定要用Web Service技术实现。但是选择一种技术来实施SOA还是非常重要的,Web服务的发展,在很多层面上能够满足SOA实现的需要,Web自身的特点,使得Web服务成为构建SOA的主要选择[10]:①可重用性和开放性。Web服务是可重用的软件模块,不必关心服务实现的具体细节。Web服务只对它的使用者提供精确定义接口;Web服务所有的公共协议完全是基于开放的标准协议进行描述、传输和交换。②松耦合性和封装性。Web服务是松耦合的,允许自由的进行配置;Web服务封装了离散的功能,一个Web服务本身就是一个应用。③集成性。由于Web服务采用了标准Web服务协议作为组件界面描述和协同描述规范,屏蔽了不同软件平台的差异,无论是采用哪种中间件,都可以通过标准协议进行互操作,实现当前环境下的可集成性。
2.2 构建SOA的数字图书馆的过程
基于SOA架构的数字图书馆,在构建时要遵循以下两个基本原则[11]:①要遵循业务驱动服务、服务驱动技术的设计理念,而不是现在的这种技术驱动服务的应用模式。现在构成数字图书馆中的各种数字资源的使用,都是独立应用的,各个数字资源提供商只是将新技术应用于自己的服务中,提高自己的竞争优势,并不是从用户的角度出发的;②构建的SOA架构,是一个动态结构,并不是一成不变的架构体系,在SOA架构的数字图书馆中,要根据读者需求的不断变化,进行服务组件的重用,满足用户的需求。遵循了以上两个构建原则后,在构建面向服务SOA的数字图书馆时,首先应该将现有的应用服务系统、或者是应用系统的各个应用功能封装成标准的服务组件,这种封装实质上就是在现有的应用系统和外界的应用中增加了一个识别标识,起到一个连接桥梁的作用;其次,对于新增加的应用服务,应该利用Web服务技术进行开发,使服务组件直接就能够在SOA的环境下运行。无论是封装以后还是直接开发的服务组件,都是动态可重用的,都具有标准的开放接口,服务与服务之间可以进行任意组装。这些服务形成一个服务目录在服务代理中注册。
在执行SOA的过程时,数字图书馆首先将能够提供的服务通过Publish注册到服务代理中,以便读者可以使用服务;读者通过Find对注册中心提出查询请求,找到需要的服务后返回具体的URL,通过Bind执行此服务功能。这样,一个完整的基于SOA的操作就完成了。
图2 面向服务SOA的数字图书馆应用集成系统图
在现阶段,图书馆的自动化集成系统、各个数字资源应用系统都是彼此独立、互不联系的。用户要使用图书馆提供的服务,就要分别进入不同的应用系统满足自己的需求。构建了面向服务的SOA架构的数字图书馆系统后,将业务集成系统中的采访系统、编目系统、典藏系统、流通系统、查询系统等进行标准化封装,将应用系统中的检索系统、管理系统等也进行封装,所有这些封装后的服务形成独立的服务组件,由于这些服务都具有开放的接口,图书只需要根据用户的需求任意组合这些服务,构建出一个既能满足用户需求、又能极大的简化工作流程的面向服务的图书馆架构。在SOA架构的图书馆中,对于图书馆的内部工作而言,利用SOA架构中组件的重用性,例如对学位论文系统中的编目工作,不再需要单独进入该应用系统中进行操作,只需要将自动化系统中封装的编目组件通过组配后直接使用即可,这极大地节省了图书馆构建特色数字资源时的人力、物力和财力;对于图书馆外部读者而言,利用SOA架构中的互操作性后,将不会再受数字资源应用平台、编程语言或操作系统等因素的影响,可以一次性的满足查询检索的需要,真正实现了为用户提供高质量服务的理念。
3 结束语
SOA架构实现了网络环境下应用的松耦合、集成性和互操作性。数字图书馆作为数字化信息资源最大的存储者和使用者,找到一个优化的架构提高内部的工作效率、满足外部读者日益增长的使用需求,是促使图书馆界的科研人员不断进行深入理论研究和实践研究的主要动力之一。构建基于SOA架构的数字图书馆,将会成为下一代数字图书馆体系结构的主要研究方向之一。由于SOA正处在不断发展完善中,还有许多需要有待改进的地方,随着标准和实施技术的不断完善,这些问题都将迎刃而解,SOA的应用也将会更加的广泛。
标签:数字图书馆论文; 图书馆论文; soa论文; 面向服务架构论文; 应用架构论文; 用户接口论文; web技术论文; 架构论文;