劉宇航
(廣西壯族自治區(qū)圖書館,廣西,南寧 530022)
在我國(guó)社會(huì)主要矛盾變化的背景下,將新興技術(shù)應(yīng)用于公共文化服務(wù)體系的建設(shè)是適應(yīng)時(shí)代發(fā)展的必然要求。公共圖書館作為公共文化服務(wù)體系中不可替代的一部分,既是公共文化服務(wù)均等化、標(biāo)準(zhǔn)化的載體,又是堅(jiān)定文化自信的主陣地。因此,研究利用新興技術(shù)構(gòu)建圖書館信息系統(tǒng),既是滿足公共圖書館智慧化的需求,又是適應(yīng)社會(huì)多元化文化服務(wù)的平臺(tái),還是跨行業(yè)融合發(fā)展的必要條件。
我國(guó)圖書館管理信息系統(tǒng)應(yīng)用可追溯到20世紀(jì)90年代,此時(shí)建設(shè)的管理信息系統(tǒng)多是傳統(tǒng)工作模式計(jì)算機(jī)化,以對(duì)圖書館業(yè)務(wù)進(jìn)行管理為主要目的[1]。隨著社會(huì)數(shù)字服務(wù)的發(fā)展,面向管理的信息系統(tǒng)難以滿足時(shí)代的要求。邵波等[2]從公共圖書館業(yè)務(wù)角度出發(fā),采用業(yè)務(wù)流程重組(BPR),將數(shù)據(jù)服務(wù)作為轉(zhuǎn)型的方向,在改造業(yè)務(wù)流程的同時(shí)對(duì)信息系統(tǒng)升級(jí),以滿足智慧化發(fā)展的需要。許新龍等[3]從人、資源、技術(shù)和制度四個(gè)方面論述了智慧圖書館信息系統(tǒng)的組成要素,提出了基于數(shù)據(jù)倉(cāng)庫(kù)的智慧圖書館信息系統(tǒng)架構(gòu),闡明了數(shù)據(jù)集中的重要性。肖錚等[4]以開放、易擴(kuò)展為目標(biāo),以FOLIO為實(shí)例,對(duì)下一代圖書館服務(wù)平臺(tái)的特征、技術(shù)進(jìn)行分析,論證了基于微服務(wù)架構(gòu)方式進(jìn)行構(gòu)建的可行性。周綱等[5]從FOLIO技術(shù)架構(gòu)、生態(tài)環(huán)境、運(yùn)營(yíng)成本等方面進(jìn)行了可行性的論證,認(rèn)為FOLIO的出現(xiàn)為我國(guó)圖書館建設(shè)下一代服務(wù)平臺(tái)提供了新模式和新方向。
圖書館信息系統(tǒng)的構(gòu)建正在從面向管理轉(zhuǎn)變成面向服務(wù),系統(tǒng)架構(gòu)從單體架構(gòu)向微服務(wù)架構(gòu)轉(zhuǎn)變。究其原因主要在兩方面:一是讀者不再滿足傳統(tǒng)的服務(wù)方式,使得原先面向管理建設(shè)的信息系統(tǒng)必須往面向服務(wù)轉(zhuǎn)變;二是新興信息技術(shù)的出現(xiàn)為解決諸多傳統(tǒng)問題提供了新思路。
采用FOLIO為基礎(chǔ)構(gòu)建新型圖書館信息系統(tǒng)成為當(dāng)下的標(biāo)準(zhǔn)模式。它分為系統(tǒng)層、網(wǎng)關(guān)層、應(yīng)用層和界面層[6],采用微服務(wù)架構(gòu),同時(shí)它是開源項(xiàng)目,降低了二次開發(fā)的成本。但是,目前它的實(shí)際應(yīng)用案例少,國(guó)內(nèi)僅有少數(shù)人、財(cái)、物條件均具備的圖書館在探索,距離大范圍推廣應(yīng)用還有很長(zhǎng)的路要走。本文通過對(duì)FOLIO進(jìn)行剖析,發(fā)現(xiàn)了3個(gè)實(shí)際應(yīng)用問題,并對(duì)問題進(jìn)行討論,提出了一種新的系統(tǒng)架構(gòu)。
FOLIO采用微服務(wù)架構(gòu),該架構(gòu)從面向服務(wù)體系架構(gòu)(SOA)的基礎(chǔ)上演變出來[7],雖然它解決了SOA在體系治理、實(shí)時(shí)更新、持續(xù)供服務(wù)和支撐創(chuàng)新業(yè)務(wù)的痛點(diǎn),但在整個(gè)應(yīng)用層都采用微服務(wù)實(shí)現(xiàn),這種強(qiáng)制將業(yè)務(wù)分割成為最小業(yè)務(wù)單元的設(shè)計(jì),是設(shè)計(jì)上陷入沙粒陷阱[8]。另外,為保證高可用性,使用分布式部署解決單點(diǎn)故障,在業(yè)務(wù)單一的場(chǎng)景中,也會(huì)出現(xiàn)“沙?!眴栴}。如何做到使服務(wù)邊界的劃分與現(xiàn)實(shí)業(yè)務(wù)場(chǎng)景相適應(yīng),做到供給與需求結(jié)合[9],這既是微服務(wù)的重點(diǎn),也是難點(diǎn)。
我國(guó)公共圖書館信息化建設(shè)發(fā)展至今,各級(jí)公共圖書館在傳統(tǒng)面向管理的建設(shè)方式上,都已養(yǎng)成穩(wěn)定高效的操作方法,然而讀者更傾向不斷的創(chuàng)新系統(tǒng)服務(wù)方式提高體驗(yàn),這讓館員和讀者在使用習(xí)慣上出現(xiàn)矛盾。
根據(jù)調(diào)查分析,我國(guó)2019年第三季度PC端IE瀏覽器占有率最高,為34.78%,其中以IE7占比最高,為28.78%[10]。FOLIO采用React作為前端截面,在兼容IE8上還存在不確定因素,更難以向下兼容。
FOLIO的架構(gòu)會(huì)使數(shù)據(jù)被分割到各微服務(wù)中,提高了業(yè)務(wù)數(shù)據(jù)分析的門檻,難以對(duì)數(shù)據(jù)進(jìn)行分析、開發(fā)和應(yīng)用。從公共圖書館向智慧化發(fā)展的趨勢(shì)來看,對(duì)業(yè)務(wù)數(shù)據(jù)的分析、開發(fā)和應(yīng)用是必要的、急迫的。大多數(shù)研究都指出圖書館智慧化提升體現(xiàn)在服務(wù)方式、服務(wù)空間和服務(wù)內(nèi)容上[11],而這些方面的提升依賴于物聯(lián)網(wǎng)、機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘等技術(shù)手段實(shí)現(xiàn)。FOLIO作為面向下一代圖書館信息系統(tǒng),并未將數(shù)據(jù)分析、應(yīng)用涵蓋在標(biāo)準(zhǔn)架構(gòu),從而在這方面出現(xiàn)缺失。
應(yīng)對(duì)沙粒陷阱,需要從預(yù)防和治理兩方面出發(fā)。預(yù)防是在設(shè)計(jì)階段充分考慮微服務(wù)邊界。微服務(wù)架構(gòu)是每一個(gè)小型服務(wù)都圍繞著系統(tǒng)中的某一項(xiàng)或一些耦合度較高的業(yè)務(wù)功能進(jìn)行構(gòu)建,并且每個(gè)服務(wù)都維護(hù)自身數(shù)據(jù)存儲(chǔ)、業(yè)務(wù)開發(fā)、自動(dòng)化測(cè)試案例以及獨(dú)立部署機(jī)制[12]。設(shè)計(jì)階段可利用數(shù)據(jù)庫(kù)閉包識(shí)別的方法來解決邊界識(shí)別問題,將業(yè)務(wù)流程中間環(huán)節(jié)出現(xiàn)交叉的業(yè)務(wù)歸為同一集合,當(dāng)任何新業(yè)務(wù)中間環(huán)節(jié)與集合中任何服務(wù)不再交叉時(shí),該集合可以作為單個(gè)微服務(wù),以此在設(shè)計(jì)上解決過度微化的問題。
在治理上,利用統(tǒng)一的接口網(wǎng)關(guān)、日志管理、配置管理達(dá)到運(yùn)行維護(hù)層面的治理。接口網(wǎng)關(guān)可以對(duì)接口路由集中管理;日志管理對(duì)每個(gè)微服務(wù)的系統(tǒng)日志、業(yè)務(wù)日志、運(yùn)行日志進(jìn)行采集、整理和展示;配置中心對(duì)微服務(wù)的配置信息集中管理,實(shí)現(xiàn)在分布式架構(gòu)中實(shí)現(xiàn)配置信息的同步和分發(fā)。
圖書館信息系統(tǒng)用戶分成館員和非館員兩類。利用對(duì)比分析法對(duì)用戶環(huán)境進(jìn)行比較,找到用戶期望的應(yīng)用方式應(yīng)對(duì)習(xí)慣變更。用戶習(xí)慣對(duì)比詳見表1。館員工作使用的信息系統(tǒng)主要依賴PC環(huán)境,而這一環(huán)境又極易受到外設(shè)驅(qū)動(dòng)、瀏覽器、操作系統(tǒng)等環(huán)境因素的影響。館員為保證工作連貫,相較于適應(yīng)環(huán)境因素變更帶來的新操作習(xí)慣,更傾向于穩(wěn)定的操作習(xí)慣。非館員多為現(xiàn)代瀏覽器,對(duì)于HTML5、CSS3、#javascript庫(kù)兼容度高。訪問終端以移動(dòng)端為主,個(gè)人電腦為輔[10],更易接受新技術(shù)帶來的優(yōu)質(zhì)體驗(yàn),較好適應(yīng)習(xí)慣的變更。
表1 館員和非館員用戶習(xí)慣對(duì)比表
在建設(shè)時(shí)需要從實(shí)際應(yīng)用場(chǎng)景出發(fā),將用戶分類處理。對(duì)傳統(tǒng)信息系統(tǒng)進(jìn)行改造,抽象出ILS業(yè)務(wù)中臺(tái),使其適應(yīng)微服務(wù)架構(gòu)的同時(shí),在用戶界面、操作習(xí)慣、外設(shè)驅(qū)動(dòng)等方面不發(fā)生變化。對(duì)非館員使用的業(yè)務(wù)進(jìn)行微服務(wù)化,提高對(duì)外服務(wù)的獨(dú)立性,可以“單業(yè)務(wù)單服務(wù)”的方式進(jìn)行建設(shè),充分發(fā)揮微服務(wù)敏捷開發(fā)的優(yōu)勢(shì),快速適應(yīng)非館員的需求。
數(shù)據(jù)中臺(tái)是為支撐企業(yè)各種數(shù)據(jù)分析和應(yīng)用,解決數(shù)據(jù)定義各異、專業(yè)協(xié)同難、無(wú)法共享等問題的數(shù)據(jù)服務(wù)[13]。其對(duì)業(yè)務(wù)中臺(tái)數(shù)據(jù)、讀者應(yīng)用的業(yè)務(wù)數(shù)據(jù)進(jìn)行采集、分層存儲(chǔ),實(shí)現(xiàn)從數(shù)據(jù)資產(chǎn)的管理到數(shù)據(jù)的開發(fā)利用,再到面向應(yīng)用提供主題式數(shù)據(jù)服務(wù)。
構(gòu)建數(shù)據(jù)中臺(tái)應(yīng)當(dāng)從采集整合、萃取加工、能力展示和能力開放四個(gè)維度出發(fā)。采集整合是對(duì)微服務(wù)離散的數(shù)據(jù)進(jìn)行聚合;萃取加工是從聚合的數(shù)據(jù)中提取主題數(shù)據(jù)域;能力展示是展示加工處理的數(shù)據(jù);能力開放是將數(shù)據(jù)加工后的成果,采用接口形式,提供給上層應(yīng)用使用。
從缺陷與討論出發(fā),文章提出了一種基于微服務(wù)的智慧圖書館信息系統(tǒng)的建設(shè)思路,整體架構(gòu)見圖1。該架構(gòu)由服務(wù)層、接口層、讀者中心、業(yè)務(wù)層、資源層、統(tǒng)一配置中心、數(shù)據(jù)層、支撐層組成,采用自上而下逐層依賴的方式建設(shè),并在核心架構(gòu)的基礎(chǔ)上增加了安全管理體系和日志監(jiān)管與管理兩大保障架構(gòu)。
圖1 智慧圖書館信息系統(tǒng)整體架構(gòu)圖
(1)服務(wù)層
服務(wù)層以讀者為主要服務(wù)對(duì)象,采用微服務(wù)構(gòu)建各種對(duì)外創(chuàng)新服務(wù)。該層微服務(wù)是通過接口層間接調(diào)取讀者中心、業(yè)務(wù)層、資源層等下層支撐服務(wù)提供的接口,實(shí)現(xiàn)業(yè)務(wù)微服務(wù)的快速構(gòu)建,以適應(yīng)智慧圖書館面向服務(wù)、快速適配的要求。
(2)接口層
接口層的本質(zhì)是接口網(wǎng)關(guān),主要工作是對(duì)各邏輯層微服務(wù)的數(shù)據(jù)接口進(jìn)行統(tǒng)一的路由管理、訪問分流、訪問限流、訪問熔斷等控制策略。接口層的出現(xiàn)將內(nèi)部微服務(wù)結(jié)構(gòu)進(jìn)行了封裝,將與多個(gè)微服交互轉(zhuǎn)換成與接口層進(jìn)行交互,避免了內(nèi)部微服務(wù)接口變化后其他依賴該接口的微服務(wù)也必須修改的問題,降低了客戶端與調(diào)用接口之間的耦合度。
(3)讀者中心
讀者中心包含身份認(rèn)證、支付業(yè)務(wù)和單點(diǎn)登錄三大業(yè)務(wù)流。以法定證件為唯一標(biāo)識(shí),將其他外部賬號(hào)、第三方證件作為法定證件的關(guān)聯(lián)項(xiàng)。讀者中心主要的任務(wù)是將各微服務(wù)依賴的身份信息進(jìn)行集中管理,既保證數(shù)據(jù)的鮮活度,又對(duì)享受服務(wù)的身份集中管控。
(4)業(yè)務(wù)層
業(yè)務(wù)層包含流通、典藏、采訪編目等傳統(tǒng)ILS業(yè)務(wù)。在該邏輯層,鑒于傳統(tǒng)業(yè)務(wù)運(yùn)行的穩(wěn)定,可以對(duì)現(xiàn)有ILS系統(tǒng)進(jìn)行改造,將讀者數(shù)據(jù)和資源數(shù)據(jù)分割,抽象出業(yè)務(wù)的數(shù)據(jù)接口后接入接口層,為其他邏輯層提供業(yè)務(wù)的支撐。
(5)資源層
資源層包含由元數(shù)據(jù)資源的生成、存儲(chǔ)、輸出和數(shù)字資源的存儲(chǔ),元數(shù)據(jù)依賴ETL、爬蟲、WebService等技術(shù)持續(xù)對(duì)商業(yè)鏡像資源、紙質(zhì)館藏資源和數(shù)字資源進(jìn)行描述。描述包含有題名、類型、描述、數(shù)字資源原始路徑等,具有解釋性質(zhì)的信息。元數(shù)據(jù)采用都柏林核心(Dublin Core)格式進(jìn)行保存。元數(shù)據(jù)是智慧圖書館信息系統(tǒng)中提高紙質(zhì)文獻(xiàn)、電子文獻(xiàn)相關(guān)服務(wù)質(zhì)量必須要涉及的數(shù)據(jù),是文獻(xiàn)相關(guān)性檢索、讀者協(xié)同過濾推薦等智慧應(yīng)用的“靈魂”。
(6)統(tǒng)一配置中心
統(tǒng)一配置中心集中管理服務(wù)層、接口層、讀者中心、業(yè)務(wù)層和資源層的配置信息。各層的微服務(wù)為保證高可用性,常用容器編排工具借助分布式部署實(shí)現(xiàn)服務(wù)的高可用性,但分布式部署導(dǎo)致配置信息的更新難度與部署數(shù)量呈正比例增長(zhǎng)。利用Apollo配置中心實(shí)現(xiàn)對(duì)微服務(wù)的配置信息的管理,支持配置文件的實(shí)時(shí)生效、版本發(fā)布、配置監(jiān)控等功能。
(7)數(shù)據(jù)層
數(shù)據(jù)層采用中臺(tái)設(shè)計(jì),是整個(gè)架構(gòu)的“大腦”,包含數(shù)據(jù)管理、數(shù)據(jù)開發(fā)、OneData、OneID和OneService體系。數(shù)據(jù)管理是對(duì)數(shù)據(jù)的質(zhì)量、模型規(guī)范、安全等信息進(jìn)行管理;數(shù)據(jù)開發(fā)提供算法開發(fā)、數(shù)據(jù)運(yùn)維、數(shù)據(jù)集成等;OneData對(duì)基礎(chǔ)數(shù)據(jù)依照業(yè)務(wù)場(chǎng)景、維度等要求建立主題數(shù)據(jù)域,為上層提供服務(wù);OneID對(duì)數(shù)據(jù)進(jìn)行萃取,建立與數(shù)據(jù)的統(tǒng)一連接標(biāo)識(shí),實(shí)現(xiàn)數(shù)據(jù)的融合;OneService對(duì)數(shù)據(jù)開發(fā)利用后提供統(tǒng)一的數(shù)據(jù)接口,為上層的業(yè)務(wù)中臺(tái)(讀者中心、資源層、業(yè)務(wù)層)提供數(shù)據(jù)服務(wù)。
(8)支撐層
支撐層是支撐上層運(yùn)轉(zhuǎn)的邏輯層,包含硬件設(shè)備、軟件環(huán)境,以及各類感知服務(wù)對(duì)象的地理位置、移動(dòng)軌跡、自然語(yǔ)言、面部特征等信息的傳感器設(shè)備的集合。硬件部分包含有線網(wǎng)絡(luò)設(shè)備、無(wú)線網(wǎng)絡(luò)設(shè)備、服務(wù)器、存儲(chǔ)等;軟件環(huán)境包含操作系統(tǒng)、數(shù)據(jù)庫(kù)管理系統(tǒng)、虛擬化軟件、外部接口等;IoT設(shè)備包含攝像頭、RFID、麥克風(fēng)、紅外線等。
(9)安全管理體系
安全的信息系統(tǒng)包含安全管理和安全技術(shù)兩個(gè)內(nèi)容,安全管理是從制度、組織、人員等方面進(jìn)行管理,保證操作和運(yùn)維是在合法的狀態(tài)下實(shí)現(xiàn);安全技術(shù)是在環(huán)境、通信、應(yīng)用邊界等方面運(yùn)用安全技術(shù)進(jìn)行監(jiān)控、查漏、補(bǔ)缺。安全管理體系必須是制度和技術(shù)相結(jié)合貫穿整個(gè)信息系統(tǒng)的架構(gòu),是整個(gè)架構(gòu)可靠、穩(wěn)定運(yùn)行的重要保障。
(10)日志監(jiān)控與管理
日志監(jiān)控與管理和安全管理一樣是貫穿整個(gè)信息系統(tǒng)的架構(gòu),它是對(duì)整套架構(gòu)體系的整體監(jiān)控,便于了解各邏輯層、各微服務(wù)運(yùn)行的健康狀況,快速發(fā)現(xiàn)和定位異常,維護(hù)整個(gè)架構(gòu)的可用性。
在整個(gè)建設(shè)實(shí)施周期里,采用螺旋實(shí)施模型進(jìn)行推進(jìn),將螺線放置在笛卡爾坐標(biāo)系中,四個(gè)象限分別是制定計(jì)劃、風(fēng)險(xiǎn)分析、實(shí)施改造、效果評(píng)估,見圖2??傮w實(shí)施將分成三個(gè)階段,第一階段建設(shè)讀者中心和資源層,第二階段建設(shè)接口層、服務(wù)層、統(tǒng)一配置中心、日志監(jiān)控與管理,第三階段建設(shè)數(shù)據(jù)層。業(yè)務(wù)層、支撐層和安全管理體系屬于對(duì)原系統(tǒng)的改造,在每個(gè)建設(shè)階段中將逐步完善。
圖2 智慧圖書館信息系統(tǒng)實(shí)施模型
制定計(jì)劃是每個(gè)實(shí)施階段開始前必須確定的,包含實(shí)現(xiàn)目標(biāo)、階段管理計(jì)劃、范圍管理、進(jìn)度管理等。不同階段計(jì)劃制定側(cè)重點(diǎn)不一樣,一階段應(yīng)該著重考慮資源層中元數(shù)據(jù)如何有效獲取,讀者數(shù)據(jù)在遷移時(shí)進(jìn)行唯一性的校驗(yàn);二階段就必須考慮如何制定規(guī)范的接入標(biāo)準(zhǔn),使得一階段的成果不會(huì)被推翻,同時(shí)帶動(dòng)整體的合理規(guī)劃;三階段考慮數(shù)據(jù)層的合理應(yīng)用。
風(fēng)險(xiǎn)分析是對(duì)整個(gè)階段的風(fēng)險(xiǎn)進(jìn)行識(shí)別,羅列風(fēng)險(xiǎn)清單,對(duì)風(fēng)險(xiǎn)進(jìn)行定性定量分析,制定應(yīng)對(duì)策略。風(fēng)險(xiǎn)分析與制定計(jì)劃不同,上一階段的事件有概率會(huì)影響本階段及后續(xù)工作,如一階段各微服務(wù)之間的日志規(guī)范不統(tǒng)一,就造成了二階段日志監(jiān)控與管理實(shí)現(xiàn)困難、日志缺失的風(fēng)險(xiǎn)。
風(fēng)險(xiǎn)分析和實(shí)施改造存在交集工作,交集部分就是微服務(wù)的開發(fā),因微服務(wù)屬于獨(dú)立創(chuàng)建,不影響現(xiàn)行系統(tǒng)服務(wù),因此放在實(shí)施改造之前,待開發(fā)完成后再進(jìn)行數(shù)據(jù)比對(duì)、遷移和整理。
效果評(píng)估環(huán)節(jié)是針對(duì)階段成果進(jìn)行檢驗(yàn),需要特別注意的是內(nèi)部評(píng)估,因涉及到系統(tǒng)改造,在評(píng)估出現(xiàn)問題需要執(zhí)行彈回計(jì)劃時(shí),階段應(yīng)該撤回到實(shí)施改造環(huán)節(jié),而不是停留在效果評(píng)估環(huán)節(jié)。
服務(wù)行業(yè)向智慧化發(fā)展的潮流勢(shì)不可擋,公共文化服務(wù)作為服務(wù)行業(yè)中以公益性為特點(diǎn),以公民為覆蓋面,以保障基本文化需求為目標(biāo)的服務(wù),必須要適應(yīng)發(fā)展需要。公共圖書館作為公共文化服務(wù)保障的前沿陣地,應(yīng)科學(xué)應(yīng)變、主動(dòng)求變。面向管理的圖書館信息系統(tǒng)在適應(yīng)信息化發(fā)展和讀者新需求上表現(xiàn)羸弱,學(xué)者們也嘗試從業(yè)務(wù)、軟件、物聯(lián)網(wǎng)等多方面嘗試改變這種狀況。FOLIO的出現(xiàn)打破了圖書館行業(yè)的發(fā)展僵局,提供了新的發(fā)展思路,但是在看到FOLIO的優(yōu)勢(shì)同時(shí),也要分析其不足,以問題為導(dǎo)向來優(yōu)化設(shè)計(jì)。既要考慮理想形態(tài),也要考慮如何實(shí)踐與演變。文章提出的基于微服務(wù)的智慧圖書館信息系統(tǒng)以期能夠找到理論與實(shí)踐的兼顧點(diǎn),在順應(yīng)發(fā)展需要的同時(shí),兼顧實(shí)際情況。相信隨著信息技術(shù)的提升和發(fā)展,更多的解決方案將不斷地被發(fā)現(xiàn),基于微服務(wù)的智慧圖書館信息系統(tǒng)也會(huì)不斷迭代更新和推廣應(yīng)用。