王文清 陳 凌
摘要結合云計算、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三期項目的建設和大規模實施奠定了良好的基礎。