CALIS数字图书馆云服务平台模型
2009-09-02王文清陈凌
王文清 陈 凌
摘要结合云计算、SaaS、Web2.0、SOA等技术,基于CALIS“十五”成果和三期建设目标,提出了CALIS云战略和相应的数字图书馆云服务平台(即Nebula平台)模型。该模型适合于构建大型分布式的公共数字图书馆服务网络,能将分布在互联网中各个图书馆的资源和服务整合为一个整体,形成一个可控的自适应的新型服务体系,通过对各种服务进行动态管理和分配,来满足不同层次和规模的数字图书馆需求,支持馆际透明的协作和服务获取,支持多馆资源的共建和共享,具有自适应扩展的能力。文中描述了Nebula云服务平台总体模型和主要服务功能,描述了平台的整合机制(包括开放接口和服务整合方式等),给出数字图书馆公有云、私有云和混合云的构建方式,最后论述该平台需要解决的部分关键问题并介绍其进展情况。
关键词数字图书馆云计算云服务服务集成CALIS
1引言
中国高等教育文献保障系统(China Academic Library Information System,简称CALIS)通过二期(即“十五”)项目建设,已初步建成了分布式中国高等教育数字图书馆系统,其中部分应用系统已经在上百个成员馆和多个省中心部署和使用。
CALIS三期项目的建设目标是为全国近2000个高校成员馆提供标准化、低成本、自适应、可扩展的数字图书馆统一服务和集成平台,这些馆通过彼此互联,构成全国高校数字图书馆三级共建和共享服务以及多馆服务协作的联合体系,共同为高校师生提供全方位的文献服务、咨询服务、电子商务和个性化服务。
CALIS三期建设的难点在于既要建立多级共建共享中心,又要为不同规模的高校图书馆提供低成本、本地化的数字图书馆解决方案,同时,这些中心和图书馆又能彼此互联,具有很好的扩展性和灵活性。
云计算(Cloud Computing)是一种将分布式计算、网格计算、并行计算以及Internet结合起来的新的lT资源提供模式,能将动态、可伸缩的IT计算资源以服务方式通过Internet提供给用户。狭义上的云计算是指用虚拟技术构建的虚拟化数据中心,将分布在大量的计算机和存储设备(包括本地或远程设备)上的计算和存储资源(包括内存、I/O设备、存储、带宽、计算能力等)集中起来成为一个虚拟的资源池,以服务方式按需(免费或租用)提供给网络用户。这种云计算被称为“基础设施即服务”(IaaS,Infrastructure as a Service),也被称为“硬件即服务”(HaaS,Hardware as a Service)。Amazon的E2和E3是这类模式的代表。广义上的云计算还包括软件即服务SaaS(softwre as a Service)、平台即服务PaaS(Platform as a Service)等多种服务模式。SaaS通过浏览器把程序以服务方式交付给用户,向用户收取服务费。用户通过互联网使用程序,降低在服务器和软件授权的购买和系统运维上的成本;供应商只需统一安装和维护一套软硬件系统,如Salesforce.com等。很多SaaS还提供了开放API,让开发者能够开发更多的互联网应用。PaaS把开发环境、应用程序运行环境、数据库环境等作为一种服务来提供给开发商,由后者开发程序并通过互联网提供给用户。这类服务商有Salesforce的网络应用软件平台force.com和Google的应用软件引擎Google AppEngine等。
总之,云计算的内涵非常丰富。云计算不仅包括以服务为交付模式的计算和存储基础设施,还包括虚拟主机租用、应用服务环境租用、数据库环境租用、编程模型、数据服务(Data as a Service)、商业流程服务(Process as a Service)、应用服务(Application as a Service)等各种模式。云计算具有这样的特性:对资源动态分配、以web为中心、交付的是服务。
云计算为CALIS三期建设提供了新的思路和可行的技术路线,应用云计算对于CALIS完成三期建设目标将起到至关重要的作用。
结合云计算、SaaS、Web2.0、SOA等技术,基于CALIS十五成果、三期建设目标和未来发展方向,本文提出了CALIS数字图书馆云战略:即设计和开发CALIS数字图书馆云服务平台(称为Nebula平台),构建多级CALIS数字图书馆云服务中心,为高校用户提供各种类型的数字图书馆服务,同时为图书馆提供本地化的数字图书馆云计算解决方案。而这些服务和解决方案是CALIS和图书馆难以从Google等其他云计算厂商直接得到的。
CALIS数字图书馆云服务平台Nebula适合于构建大型分布式的公共数字图书馆服务网络,能将分布在互联网中各个图书馆的资源和服务整合成为一个整体,形成一个可控的自适应的新型服务体系,通过对各种服务进行动态管理和分配,来满足不同层次和规模的数字图书馆需求,支持馆际透明的协作和服务获取,支持各馆用户的聚合和参与,支持多馆协作的社会化网络的构建,支持多馆资源的共建和共享,具有自适应扩展的能力。
本文主要描述Nebula云服务平台的总体模型、服务架构和主要服务功能、统一开放接口和服务整合方式,给出了分布式部署和集成方式(即公有云、私有云和混合云的构建方式),最后介绍该平台建设的关键问题和进展情况。
2平台总体模型
根据CALIS三期建设要求,结合云计算、SaaS、SOA等技术,提出了CALIS数字图书馆云服务平台(称为Nebula Platform)框架。它以基础设施服务IaaS/HaaS和基础平台服务PaaS为基础,包括以下4个方面的内容:
(1)面向图书馆的CALIS数字图书馆公共服务平台,用于构建CALIS云服务中心;
(2)面向图书馆的CALIS数字图书馆SaaS服务平台,用于为图书馆提供SaaS服务;
(3)面向图书馆的数字图书馆本地服务平台:包括本地应用基础平台和本地应用系统;
(4)面向图书馆的CALIS云联邦服务平台,以便将不同的图书馆本地服务、CALIS公共服务以及第三方公共服务集成起来。
该平台模型如图1所示。
2.1基础设施服务和基础平台服务
这两类服务可以由第三方服务商提供,也可以由自己的云计算中心提供。
CALIS将建设1至多个云服务中心,搭建自己的基础设施平台IaaS;同时,适当利用第三方提供的部分IaaS服务。
2.2CALIS数字图书馆公共服务平台
该公共服务平台(称为Nebula Central Platform)由一组软件构成,可以在云中使用,提供的基本服务包括统一认证服务、计费服务、联合资源检索服务、数据服务、知识服务、数字对象存储和下载服务、元
数据联合编目服务、文献联合订购服务、全局资源调度服务等。
上述服务既可以直接面向图书馆,也可以通过一组Open API提供给图书馆。
CALIS公共服务平台除了在CALIS全国中心部署,也可以在部分省中心部署,用于建立CALIS数字图书馆云服务中心。
2.3 CALIS数字图书馆SaaS服务平台
该SaaS服务平台直接面向图书馆提供最终的应用服务。这类服务包括馆际互借SaaS服务、参考咨询SaaS服务、特色库加工SaaS服务、教参管理SaaS服务、学位论文SaaS服务等。各个馆可以按需租用部分或全部服务。
CALIS数字图书馆SaaS服务平台可在CALIS全国中心和多个省中心部署。
2.4 CALIS本地服务平台
CALIS本地服务平台由CALIS本地应用基础平台、CALIS本地应用系统以及第三方本地应用系统组成。前两类系统能为图书馆提供本地化的云解决方案。
CALIS本地应用基础平台(称为Nebula Main Server)具有统一服务注册和管理、统一监控和日志管理、本地统一认证/授权、单点登录、公共服务发布、外部服务订阅等核心功能。此外,该平台还提供状态管理、负载管理等实时服务,提供简化和自动化的部署和管理方式,保证服务的可获得性和可伸缩性。该基础平台负责与CALIS数字图书馆公共服务平台、CALIS云联邦服务平台进行交互,实现分布式资源和服务的自动注册和发现。CALIS本地应用基础平台是本地化云解决方案的关键所在,起到承上启下、馆内集成、馆间互联的核心作用。
CALIS本地应用系统(统称为Nebula Applica-tion Server)用于为图书馆提供具体的业务功能。这类应用系统包括本地版的门户系统(Portal)、馆际互借系统、文献传递工具、参考咨询系统、特色库加工系统、资源收割系统、资源发布系统、资源仓储服务系统、统一检索系统、资源调度系统等。CALIS本地应用系统内置了标准化接口,能与CALIS本地基础平台无缝集成。
第三方本地应用系统通过支持标准化的统一认证、监控、日志等接口,与CALIS本地基础平台无缝集成,成为本地数字图书馆的一个有机组成部分。
2.5云联邦服务平台
云联邦服务平台(称为Nebula Federation Plat—form,NFP)用于实现跨云的服务集成,也是实现私有云和公有云互操作并形成混合云的关键。它以Open API方式对外提供抽象化的应用服务,还能对CALIS各个中心的Open API提供托管服务。
该平台用于将不同的图书馆本地服务平台、CALIS公共服务平台以及第三方公共服务集成起来,以统一服务接口方式提供给图书馆,供图书馆、CALIS和ISV进行进一步整合(mash-up),降低服务集成难度,从而能形成高度集成的数字图书馆系统,以统一的界面和操作方式为读者提供服务。
综合上述,CALIS数字图书馆云服务平台作为一个载体,承载了图书馆所需的各种服务。图书馆可在云平台上开发和集成新的服务,通过线上线下互动,以更好地满足高校图书馆的内部管理和用户服务的需求。
3服务架构
3.1 SOA架构
面向服务架构(sOA,Service-Oriented Architec—ture)是当前web应用系统有效的建模思想和软件构建方法,通过模块化、集成化、动态组装,使得系统的重用性、可靠性、可扩展性和开发速度大大提高。
OSGi规范为网络服务定义了一个通用的、标准的、面向组件的计算环境。软件组件可以动态地发现和使用其他库或者应用程序。OSGi定义了组件规范和服务规范。服务是组件之间的交互接口。组件可插拔,可动态改变行为,复用能力更强。IBM、SUM、BEA、开源社区等一些中间件和应用系统都开始采用OSGi标准来构建。
CALIS数字图书馆云服务平台的系统架构是以SOA规范为基础,以OSGi标准对各个服务进行统一封装,为服务提供者提供统一的服务发布功能,为服务消费者和提供者之间提供统一的通信方式。
3.2服务模型
CALIS数字图书馆云服务平台由一系列服务功能组成,这些功能分为5个层次:基础层、开发层、核心服务和通用服务层、应用层、门户层。如图2所示。
CALIS数字图书馆云服务平台将各个层次的服务都构建在OSGi框架上,这些服务都封装为OSGi服务,以供其他组件调用。
新开发的应用系统都基于Nebula开发平台进行开发,可以调用已有的核心/通用服务。已有的应用系统通过提供规定的接口纳入整个平台。
部分应用系统(如馆际互借、参考咨询等)需要基于Muhi-Tennant进行改造和接入,统一内部数据,以便能够提供SaaS服务。
门户系统采用portlet作为统一的应用前端组件,调用其他服务,提供统一的用户登入/登出,提供客户自助服务中心,将各种业务功能以统一的界面和操作方式展现给用户。
上述各种服务通过组合,可构成不同的CALIS应用平台或应用系统。
应用服务的运行状态监控、服务切换、服务分配等都由云服务平台中的核心服务实现,以此实现系统的自治。核心服务还提供安全管理、事务管理、容错性、持久化、缓存管理、负载管理、服务调度、大数据分布式存储等服务功能。这些核心服务确保整个云服务平台能提供“云”一样的统一的、规模化的服务。
4整合机制
为实现来自不同服务平台/系统的服务整合,CALIS整个云服务平台需要建立统一基础信息,提供统一开放API,提供统一的API托管,提供统一认证服务。
4.1统一基础信息
整个CALIS数字图书馆云服务平台建立和管理统一的基础信息,包括用户信息、知识库信息、应用/资源/服务/仓储注册信息、数据信息、订阅信息、计费信息等。这些信息为服务整合奠定了基础。
4.2统一API
Open API是web 2.0的一种服务模式,也是云计算的服务方式。利用这些API可以实现对分散数据和服务进行整合(mash-up),能带来具有新价值的web服务。
CALIS云服务平台上的各项服务都是基于CA—LIS自主开发的Nebula OSGi基础框架来实现,遵循OSGi服务接口规范。该基础框架能将这些OSGi服务自动发布成Web Services(格式为REST、SOAP、JSON等),作为统一的API对外服务。这种独特的自动封装技术,一方面大大免除了开发人员的重复性工作,提高了系统可靠性;另一方面能对外提供更多的服务接口。
CALIS云服务平台提供的所有服务分为三个层次:系统内的私有服务、馆内/平台内私有服务、公有
服务,分别为:(1)同一系统内的私有服务的注册和管理由Nebula OSGi基础框架完成。这些服务无需对系统外提供。(2)馆内/平台内的私有服务(即私有API),可以被同一个平台内的其他系统调用。(3)馆/平台的公有服务(即Open API)可以被另一个馆/平台所访问。后面这两类服务都通过应用/服务注册管理和同步机制来实现。
图书馆和独立软件开发商可以很方便地调用上述Open API,构建自己的应用系统和服务,实现对现有海量数据的集成,实现对已有服务的集成,设计更多的业务模式和功能,实现自有应用的快速接入。
4.3统一认证
统一认证是实现服务安全整合的前提。
CALIS云服务平台能为各个云服务中心的所有用户提供统一的用户通行证(即CALIS_ID),使得用户能在各个CALIS云服务中心和图书馆本地平台之间实现跨域的单点登录和身份认证。
CALIS统一认证机制也为CALIS数字图书馆云联邦服务平台NIP提供了API接口的安全调用和身份认证功能,确保图书馆用户能通过NIP安全地访问被托管的受控的API服务。对于需要身份认证的接口,所有调用这些接口的应用系统都需要遵循CALIS统一认证规范,调用CALIS提供的用户身份认证接口。
4.4服务整合和托管
CALIS各云服务中心都提供Open API,部分图书馆和其他独立服务提供商也会提供部分OpenAPI。CALIS需要为这些不同来源的API提供一个统一的API托管服务中心,以方便各个图书馆对它们的调用。
CALIS云联邦服务平台(NFP)能为来自各个CALIS公共服务平台、图书馆本地平台以及其他ISP的服务提供统一的API托管服务,以统一的标准和规范提供给其他图书馆和ISV,以降低服务集成的困难和成本,并为图书馆带来新的服务模式。
该平台提供了各类服务的注册和管理功能,提供了通用的认证、授权、计费和安全等服务,能简化服务集成,支持服务的快速接入和交付。
该平台实际上是一个虚拟化的OpenAPI池,能使服务以标准化、统一的方式被各类应用系统所整合和管理,从而实现各数字图书馆各应用和资源之间的无缝集成,消除数据及应用孤岛,实现内容整合和服务协同。
对于CALIS已有的整合方式和服务接口,需要按照新的Open API规范进行封装和调整,以便能纳入CALIS云平台中。
CALIS云联邦服务平台提供灵活的整合方式,如:用户能创建和定制Mash-up整合方式,能将各种服务(如REST、WSDL、RSS、ATOM、OAI、ODL、SRU/SRW等)集成起来;能够控制整合的范围和权限,既能确保被整合服务的安全性,也能将整合结果共享给协作方。
5应用方式
CALIS数字图书馆云平台能提供标准化、低成本、自适应、可扩展的数字图书馆统一服务和集成解决方案,为CALIS及其成员馆提供了灵活的部署和应用方式,既能满足CALIS构建公有云服务中心的需要,也能满足图书馆构建私有服务云的需要,还能实现对这两类服务云的整合。
5.1本地云平台(私有云)
利用CALIS本地平台(包括CAMS本地基础平台Main Server和应用系统App Server),图书馆能方便构建自己的数字图书馆云平台,支持与第三方应用系统的集成。该本地云平台可以安装在本地HaaS/PaaS上,也可以部分安装在远程的公共PaaS/HaaS平台上。这些图书馆云平台能获取和集成CALIS公共云所提供的各种服务。
部分图书馆的云平台也可以对外开放部分服务。这些服务能被CALIS云服务中心和CALIS云联邦服务平台以及其他图书馆所访问和集成,从而实现各个馆之间的资源和服务的共享和集成。
整个图书馆云平台可以部署在多台集群服务器上(如图3所示),即Main server(主控服务器和)、Nebula App Server(简称N-Server)可以部署在一台或多台服务器上;随着访问量或者存储容量需求的变化,服务器可以灵活增减。同时,对外的服务以及本地平台内的统一认证服务都由Main Server统一提供。此外,第三方应用系统(简称X-Server)可与Main Server和N-Server集成。
5.2 CALIS公有云
利用CALIS公共服务平台PaaS和SaaS服务平台,CALIS各个中心能有效地构建高校数字图书馆公共云。这些公共云既可以架构在CALIS自己的云计算中心中的基础环境(HaaS/PaaS)中,也可以将部分功能放在其他云计算中心提供的远程公共基础设施HaaS或基础平台PaaS上,其部署方式类似于图3所示。
CALIS公有云将自己的服务以PaaS或者SaaS方式对外提供给各个馆,供它们使用。
5.3混合云
在CALIS国家级云中心,部署CALIS云联邦服务平台,能将CALIS各个公有云提供的Open API以托管方式汇集起来,以统一、透明的方式对外服务,提供对各个公有云和私有云的整合方式,供图书馆进行深层次集成,从而形成数字图书馆混合云(hy—brid/federated cloud)。
6结语
CALIS数字图书馆云服务平台具有动态、可管理、自适应的系统组成能力和集成机制,具有很强的自治性,能实现分布式数字图书馆服务的虚拟化,能实现更大程度的资源共享和协作,将使我国数字图书馆应用进入一个新的里程。
云技术在实践中面临着大量的技术难题和工程问题。由于服务的分布式、动态组合、响应性能、可伸缩性等要求,为实现CALIS云服务平台,还需要进一步研究、开发和完善很多关键技术,如分布式缓存、分布式会话管理、大数据的分布式存储、海量数据库的水平或垂直切分、分布式索引、服务动态注册、分布式服务调度与服务质量保证、分布式监控、基于Ma-pReduce的海量数据处理等,以确保整个数字图书馆云平台的可靠性、鲁棒性、安全性和可伸缩性。
此外,CALIS云服务平台的复杂性还在于除了开发集中式的公共服务平台和云联邦服务平台(需据此构建1至多个CAHS云服务中心)之外,还需要能同时为图书馆本身提供本地化、标准化、低成本、自适应的云解决方案,并且这些平台之间都需要能相互集成。
到目前为止,CAHS云服务平台的基本框架已经完成,Nebula OSGi框架、Nebula开发平台、本地基础平台核心版和典型应用系统、统一用户等基础信息库和统一认证机制基本建成、公共服务平台框架、部分核心服务、基于Hadoop的大数据资源存储服务系统(PaaS服务)原型以及已有SaaS系统的改进已初步完成。
在上述框架中,各个系统内部由独立的逻辑组件(OSGi)组成,对外屏蔽系统在内部实现,提供统一的服务接口;各组件之间可以动态组配成一个新系统或者从已有系统中卸载,具有很大的弹性,以满足不同规模的需求。这使得整个系统具备更高性能的服务能力。
上述基础工作的顺利完成,表明了CALIS云服务平台模型的可行性,为CAHS云服务平台的进一步开发以及CALIS三期项目的建设和大规模实施奠定了良好的基础。