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