徐華
摘 要:當(dāng)前,各高校自建圖書館管理系統(tǒng),其可靠性和可擴(kuò)展性較低,不能適應(yīng)圖書管理工作快速發(fā)展的要求。文章基于微服務(wù)、DevOps、虛擬化等技術(shù),提出了基于微服務(wù)的體系架構(gòu)、基于數(shù)據(jù)中臺(tái)的數(shù)據(jù)共享框架兩個(gè)設(shè)計(jì)思路,圖書館能力開放平臺(tái)架構(gòu)包括基礎(chǔ)資源層、數(shù)據(jù)共享層、應(yīng)用融合層;其次,對(duì)架構(gòu)的基礎(chǔ)資源層、數(shù)據(jù)共享層、應(yīng)用融合層進(jìn)行了詳細(xì)設(shè)計(jì),并分析了各層的技術(shù)實(shí)現(xiàn)方法。通過應(yīng)用分析,文章驗(yàn)證了該能力開放平臺(tái)架構(gòu)具有較好的敏捷開發(fā)能力、持續(xù)集成能力以及彈性擴(kuò)展能力。
關(guān)鍵詞:圖書館;能力開放平臺(tái);微服務(wù);虛擬化
0 ? 引言
隨著社會(huì)發(fā)展和科技進(jìn)步,圖書館在知識(shí)積累和知識(shí)查詢工作中的作用越來越重要。為提升圖書館資源的利用率,方便讀者對(duì)知識(shí)的查詢和使用,數(shù)字圖書館已成為圖書館資源管理的發(fā)展趨勢(shì)[1-2]。這種背景下,各個(gè)高校開始自建圖書館管理系統(tǒng),對(duì)數(shù)字資源進(jìn)行管理和使用。如何建設(shè)更加高效的圖書館管理系統(tǒng),已成為當(dāng)前的一個(gè)研究重點(diǎn)。楊思洛等[3]分析了國內(nèi)外圖書館的發(fā)展趨勢(shì),研究結(jié)果表明,大數(shù)據(jù)和人工智能技術(shù)是圖書館數(shù)據(jù)資源管理和使用的關(guān)鍵技術(shù)?!笆奈濉币?guī)劃綱已將大數(shù)據(jù)、人工智能等核心技術(shù)與各產(chǎn)業(yè)深度融合作為今后行業(yè)發(fā)展的方向。以教學(xué)工作為例,程玉等[4]提出了學(xué)生畫像、個(gè)性化學(xué)習(xí)、學(xué)習(xí)效果評(píng)價(jià)等方面的大數(shù)據(jù)應(yīng)用發(fā)展路徑??紤]到圖書館數(shù)字資源的體量大、數(shù)據(jù)類型多樣,曾文等[5]分析了科技大數(shù)據(jù)領(lǐng)域數(shù)據(jù)的特點(diǎn),提出了提升數(shù)據(jù)清洗、存儲(chǔ)效率的關(guān)鍵技術(shù)措施。為提升數(shù)字圖書館知識(shí)發(fā)現(xiàn)的效率,李潔[6]研究了知識(shí)發(fā)現(xiàn)算法,提出了數(shù)字圖書館知識(shí)發(fā)現(xiàn)服務(wù)的模式和策略。
通過對(duì)已有研究分析可知,當(dāng)前研究主要集中在如何提升單個(gè)圖書館管理系統(tǒng)的效率。但是,每個(gè)圖書館建立自己的信息化平臺(tái),在資源利用率、成本開銷方面存在局限性。為了提升圖書館系統(tǒng)的可靠性和可擴(kuò)展性,本文提出構(gòu)建圖書館能力開放平臺(tái)。首先提出了基于微服務(wù)的體系架構(gòu)、基于數(shù)據(jù)中臺(tái)的數(shù)據(jù)共享框架兩個(gè)能力開放平臺(tái)架構(gòu)的設(shè)計(jì)思路。其次,提出了圖書館能力開放平臺(tái)架構(gòu),該架構(gòu)包括基礎(chǔ)資源層、數(shù)據(jù)共享層、應(yīng)用融合層。其次,對(duì)基礎(chǔ)資源層、數(shù)據(jù)共享層、應(yīng)用融合層3個(gè)層面進(jìn)行了詳細(xì)設(shè)計(jì),并給出了實(shí)施建議。最后,對(duì)基于微服務(wù)架構(gòu)的圖書館能力開放平臺(tái)的應(yīng)用方法進(jìn)行了分析,驗(yàn)證了體系架構(gòu),較好地實(shí)現(xiàn)了圖書數(shù)字資源的敏捷開發(fā)、持續(xù)集成和彈性擴(kuò)展。
1 能力開放平臺(tái)架構(gòu)設(shè)計(jì)
1.1 設(shè)計(jì)思路
為提升圖書館對(duì)數(shù)字資源的管理能力,本文提出基于微服務(wù)架構(gòu)的圖書館能力開放平臺(tái)。該平臺(tái)需要實(shí)現(xiàn)資源的可擴(kuò)展、可維護(hù)、可共享3個(gè)目標(biāo)。為實(shí)現(xiàn)3個(gè)目標(biāo),本文提出基于微服務(wù)的體系架構(gòu)、基于數(shù)據(jù)中臺(tái)的數(shù)據(jù)共享框架兩個(gè)設(shè)計(jì)思路,下面進(jìn)行詳細(xì)介紹。
在基于微服務(wù)的體系架構(gòu)方面,考慮到微服務(wù)架構(gòu)與傳統(tǒng)體系架構(gòu)的區(qū)別是服務(wù)小、易擴(kuò)展。微服務(wù)技術(shù)可以根據(jù)業(yè)務(wù)需求,將圖書管理系統(tǒng)劃分為多個(gè)獨(dú)立的小服務(wù),從而降低圖書管理系統(tǒng)修改和維護(hù)的難度。另外,基于微服務(wù)技術(shù),可以使平臺(tái)支持Docker容器技術(shù)。在Docker容器技術(shù)環(huán)境下,虛擬機(jī)的粒度更小,可以根據(jù)需要進(jìn)行遷移、關(guān)閉、擴(kuò)容,從而顯著降低資源消耗,提升硬件資源的利用率。
基于數(shù)據(jù)中臺(tái)的數(shù)據(jù)共享框架方主要利用數(shù)據(jù)中臺(tái)的功能豐富、便于共享兩個(gè)優(yōu)勢(shì)。隨著知識(shí)經(jīng)濟(jì)的到來,知識(shí)共享已成為推動(dòng)社會(huì)發(fā)展和進(jìn)步的關(guān)鍵要素。圖書館作為知識(shí)積累和共享的關(guān)鍵途徑,數(shù)據(jù)共享已成為其發(fā)展的必然趨勢(shì)。在數(shù)據(jù)共享領(lǐng)域,數(shù)據(jù)的安全是數(shù)據(jù)共享相關(guān)方最關(guān)注的問題。為了提升數(shù)據(jù)安全共享的能力,本文采用大數(shù)據(jù)技術(shù)對(duì)數(shù)據(jù)進(jìn)行安全管理,采用數(shù)據(jù)中臺(tái)技術(shù)實(shí)現(xiàn)數(shù)據(jù)的安全共享。
1.2 體系架構(gòu)
圖書館平臺(tái)架構(gòu)如圖1所示。從圖1可知,現(xiàn)有的圖書館系統(tǒng)架構(gòu)如圖1(a)所示,每個(gè)圖書館構(gòu)建自己的硬件平臺(tái)、系統(tǒng)軟件、應(yīng)用軟件。這種架構(gòu)存在資源浪費(fèi)、可維護(hù)性差等缺點(diǎn)。本文提出的圖書館能力開放平臺(tái)架構(gòu)如圖1(b)所示,該架構(gòu)包括基礎(chǔ)資源層、數(shù)據(jù)共享層、應(yīng)用融合層。
基礎(chǔ)資源層包括云計(jì)算平臺(tái)和PAAS平臺(tái)兩個(gè)模塊。云計(jì)算平臺(tái)層采用虛擬化技術(shù),可以提升資源利用率和資源可靠性。云計(jì)算平臺(tái)的按需擴(kuò)展和動(dòng)態(tài)遷移技術(shù),可以根據(jù)每個(gè)圖書館的業(yè)務(wù)需求,對(duì)資源進(jìn)行動(dòng)態(tài)調(diào)整。數(shù)據(jù)處理層主要包括大數(shù)據(jù)平臺(tái)層和數(shù)據(jù)中臺(tái)層。大數(shù)據(jù)平臺(tái)層主要實(shí)現(xiàn)數(shù)據(jù)的采集、傳輸、存儲(chǔ)、管理等功能。數(shù)據(jù)中臺(tái)層主要實(shí)現(xiàn)數(shù)據(jù)處理的共用功能。應(yīng)用融合層包括微服務(wù)架構(gòu)和DevOps架構(gòu)。微服務(wù)架構(gòu)可以將圖書館的系統(tǒng)進(jìn)行拆分,得到多個(gè)互相獨(dú)立的微服務(wù)。這種架構(gòu)可以便于圖書館開發(fā)新功能。DevOps架構(gòu)是基于微服務(wù)架構(gòu)實(shí)現(xiàn)一站式開發(fā)的一組過程和方法。在DevOps架構(gòu)下,圖書館系統(tǒng)的開發(fā)人員和IT運(yùn)維人員可以整合為同一技術(shù)人員。在這種背景下,軟件模塊的開發(fā)、測(cè)試、發(fā)布、維護(hù)、更新的效率更高,更能適應(yīng)當(dāng)前的開發(fā)環(huán)境。
2 各層的設(shè)計(jì)與實(shí)現(xiàn)
2.1 基礎(chǔ)資源層設(shè)計(jì)與實(shí)現(xiàn)
基礎(chǔ)資源層的實(shí)現(xiàn)主要采用云計(jì)算技術(shù)和Docker容器技術(shù)。在云計(jì)算平臺(tái)層,通過采用虛擬化技術(shù),可以實(shí)現(xiàn)服務(wù)器、網(wǎng)絡(luò)設(shè)備、存儲(chǔ)設(shè)備的按需擴(kuò)展和動(dòng)態(tài)遷移。在服務(wù)器虛擬化方面,平臺(tái)可以提供的資源包括計(jì)算資源池、彈性主機(jī)服務(wù)。在網(wǎng)絡(luò)設(shè)備虛擬化方面,平臺(tái)可以提供網(wǎng)絡(luò)資源池、通信鏈路資源池。在存儲(chǔ)設(shè)備虛擬化方面,平臺(tái)可以提供存儲(chǔ)資源池、異地容災(zāi)資源池。為保障云計(jì)算平臺(tái)的可靠性和穩(wěn)定性,平臺(tái)提供負(fù)載均衡、安全管控等性能管理設(shè)備。
PAAS主要功能是根據(jù)業(yè)務(wù)需求,提供靈活的中間件服務(wù)。中間件服務(wù)主要采用Docker容器技術(shù)實(shí)現(xiàn)。Docker容器可以在云計(jì)算平臺(tái)上申請(qǐng)資源。Docker容器的最大優(yōu)點(diǎn)是申請(qǐng)的資源容量小、部署速度快,可以滿足小型業(yè)務(wù)的計(jì)算資源、網(wǎng)絡(luò)資源、存儲(chǔ)資源的需求。采用Docker容器技術(shù)后,可以有效提升云計(jì)算平臺(tái)資源的利用率和便捷性。
2.2 數(shù)據(jù)處理層設(shè)計(jì)與實(shí)現(xiàn)
數(shù)據(jù)處理層主要包括大數(shù)據(jù)平臺(tái)和數(shù)據(jù)中臺(tái)兩個(gè)模塊。大數(shù)據(jù)平臺(tái)模塊主要包括數(shù)據(jù)的基礎(chǔ)操作功能、數(shù)據(jù)中間件兩個(gè)子模塊。數(shù)據(jù)的基礎(chǔ)操作功能包括數(shù)據(jù)采集和傳輸、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)治理等基本功能。數(shù)據(jù)治理主要是根據(jù)圖書館的預(yù)定規(guī)則,對(duì)數(shù)據(jù)進(jìn)行規(guī)范化處理,便于數(shù)據(jù)在圖書館業(yè)務(wù)中使用。數(shù)據(jù)中間件模塊主要包括數(shù)據(jù)處理的消息隊(duì)列、提升數(shù)據(jù)處理速度的緩存服務(wù)等功能。
數(shù)據(jù)中臺(tái)主要完成數(shù)據(jù)匯聚、數(shù)據(jù)可視化、數(shù)據(jù)提純加工等數(shù)據(jù)處理的公共工作,便于各個(gè)圖書館可以快速方便地對(duì)數(shù)據(jù)進(jìn)行處理。本文中數(shù)據(jù)中臺(tái)主要功能包括常用的機(jī)器學(xué)習(xí)算法、語音識(shí)別算法、圖像識(shí)別算法、數(shù)據(jù)可視化等數(shù)據(jù)處理功能。
在數(shù)據(jù)處理層的技術(shù)實(shí)現(xiàn)方面,當(dāng)前大數(shù)據(jù)框架主要包括Hadoop,Spark,Storm,F(xiàn)link,Samza,Presto五種。根據(jù)對(duì)各種框架的應(yīng)用場(chǎng)景、用戶人數(shù)等特征比較,本文選擇Hadoop作為數(shù)據(jù)存儲(chǔ)平臺(tái),Spark作為大數(shù)據(jù)分析架構(gòu)。Hadoop主要技術(shù)包括MapReduce、HDFS、Yarn三種。其中,MapReduce作為分布式計(jì)算技術(shù),HDFS作為分布式文件存儲(chǔ)系統(tǒng),Yarn作為高效的資源調(diào)度工具。在Spark架構(gòu)方面,平臺(tái)可以采用Scala,Java,Python等語言作為數(shù)據(jù)分析語言??紤]到人工智能技術(shù)領(lǐng)域使用最多的語言為Python,所以本文采用Python語言作為數(shù)據(jù)分析語言。
2.3 應(yīng)用融合層設(shè)計(jì)與實(shí)現(xiàn)
應(yīng)用融合層主要功能是為圖書館提供常用的應(yīng)用開放功能。例如,圖書館數(shù)據(jù)業(yè)務(wù)功能服務(wù)接口、業(yè)務(wù)接口開發(fā)規(guī)范、大數(shù)據(jù)應(yīng)用子系統(tǒng)、知識(shí)圖譜算法庫等常用的應(yīng)用接口和子系統(tǒng),主要由微服務(wù)架構(gòu)和DevOps架構(gòu)兩種技術(shù)實(shí)現(xiàn)。微服務(wù)架構(gòu)的實(shí)現(xiàn)一般包括服務(wù)注冊(cè)、服務(wù)發(fā)現(xiàn)、服務(wù)負(fù)載均衡、服務(wù)網(wǎng)關(guān)4個(gè)關(guān)鍵要素。當(dāng)前可以實(shí)現(xiàn)微服務(wù)架構(gòu)的管理框架較多,Dubbo和Spring Cloud是當(dāng)前使用比較廣泛的兩種架構(gòu)[7]。
考慮到平臺(tái)的易用性,本文選擇Spring Cloud作為微服務(wù)架構(gòu)的管理框架。在服務(wù)注冊(cè)和服務(wù)發(fā)現(xiàn)方面,平臺(tái)使用Eureka實(shí)現(xiàn)注冊(cè)中心功能。Eureka可以為用戶提供開放的API,便于用戶將服務(wù)注冊(cè)到注冊(cè)中心,用戶也可以在注冊(cè)中心查找感興趣的服務(wù),并通過API進(jìn)行調(diào)用。在采用Eureka實(shí)現(xiàn)注冊(cè)中心功能時(shí),平臺(tái)通過構(gòu)建Eureka Server,Service Provider,Service Consumer 3個(gè)角色,可以實(shí)現(xiàn)服務(wù)的注冊(cè)和使用。Eureka Server可以實(shí)現(xiàn)服務(wù)的注冊(cè)和發(fā)現(xiàn)功能,Service Provider可以實(shí)現(xiàn)服務(wù)的提供功能,Service Consumer可以實(shí)現(xiàn)服務(wù)的使用功能。在服務(wù)的負(fù)載均衡方面,平臺(tái)使用Ribbon組件實(shí)現(xiàn)服務(wù)的負(fù)載均衡功能。Ribbon組件根據(jù)服務(wù)使用情況,可以自動(dòng)執(zhí)行服務(wù)負(fù)載均衡策略、服務(wù)超時(shí)重試策略,從而平衡已注冊(cè)的各個(gè)服務(wù)的調(diào)用關(guān)系,提升系統(tǒng)的性能。在服務(wù)網(wǎng)關(guān)的配置方面,本文使用Zuul技術(shù)來實(shí)現(xiàn)。Zuul組件可以采用RESTAPI接口對(duì)外提供服務(wù),有效降低各個(gè)服務(wù)之間因接口不同導(dǎo)致服務(wù)訪問失敗的概率,提升了服務(wù)的可靠性。
3 應(yīng)用分析
為提升本文提出的基于微服務(wù)架構(gòu)的圖書館能力開放平臺(tái)的可用性,本小節(jié)對(duì)如何使用此平臺(tái)進(jìn)行分析說明。從本文提出的平臺(tái)設(shè)計(jì)框架可知,搭建平臺(tái)的基礎(chǔ)資源層、數(shù)據(jù)共享層、應(yīng)用融合層,可以提升圖書館資源管理平臺(tái)的可擴(kuò)展性、可維護(hù)性、可共享性。
搭建基礎(chǔ)資源層需要支持虛擬化技術(shù)的硬件環(huán)境。所以,在采購基礎(chǔ)網(wǎng)絡(luò)資源、服務(wù)器資源、存儲(chǔ)資源時(shí),需要首先考慮的參數(shù)指標(biāo)是對(duì)虛擬化技術(shù)的支持。在數(shù)據(jù)共享層面,平臺(tái)考慮到大數(shù)據(jù)技術(shù)和數(shù)據(jù)中臺(tái)技術(shù)包含的內(nèi)容較多,在部署數(shù)據(jù)共享層時(shí),盡量采用市場(chǎng)占有率較高的開源技術(shù)。這種部署策略可以有效提升數(shù)據(jù)共享層的可靠性和可擴(kuò)展性,也便于后期對(duì)平臺(tái)的維護(hù)和使用。對(duì)于應(yīng)用融合層,微服務(wù)的架構(gòu)和相關(guān)技術(shù)已在文中描述。需要注意的關(guān)鍵問題是應(yīng)用的微服務(wù)化。因?yàn)槲⒎?wù)主要的優(yōu)勢(shì)是將大型軟件劃分為多個(gè)獨(dú)立的子模塊,便于一站式開發(fā)和應(yīng)用。但是,如何進(jìn)行服務(wù)的劃分,是一個(gè)比較有挑戰(zhàn)性的工作。所以,在應(yīng)用融合層,盡量邀請(qǐng)實(shí)施經(jīng)驗(yàn)豐富的業(yè)務(wù)專家和技術(shù)專家對(duì)業(yè)務(wù)需求進(jìn)行分析,制定符合業(yè)務(wù)發(fā)展需要和技術(shù)架構(gòu)的應(yīng)用融合功能。通過上述分析可知,本文提出的基于微服務(wù)架構(gòu)的圖書館能力開放平臺(tái),較好地提升了圖書數(shù)字資源管理平臺(tái)的敏捷開發(fā)能力、持續(xù)集成能力以及彈性擴(kuò)展能力。
4?結(jié)語
隨著信息技術(shù)的發(fā)展,圖書館中的數(shù)字資源快速增加。圖書館為了滿足數(shù)字資源的存儲(chǔ)和使用需求,開始加大圖書館軟硬件資源的建設(shè)。但是,自建圖書館管理系統(tǒng)存在可靠性低,不便于擴(kuò)展等問題,不能有效滿足當(dāng)前圖書管理工作快速發(fā)展的要求。為解決此問題,本文提出構(gòu)建圖書館能力開放平臺(tái),對(duì)該平臺(tái)的基礎(chǔ)資源層、數(shù)據(jù)共享層、應(yīng)用融合層進(jìn)行了詳細(xì)設(shè)計(jì),并給出了實(shí)施建議。在大數(shù)據(jù)時(shí)代下,圖書館的數(shù)字資源需要共享和使用,才能發(fā)揮數(shù)字資源的價(jià)值。下一步工作中,基于本文的研究成果,采用大數(shù)據(jù)挖掘和人工智能分析技術(shù),研究圖書館數(shù)字資源的共享機(jī)制,從而發(fā)揮圖書館數(shù)字資源的價(jià)值。
[參考文獻(xiàn)]
[1]王秀艷.國外智慧圖書館研究的熱點(diǎn)主題和發(fā)展趨勢(shì)分析[J].情報(bào)探索,2019(8):129-134.
[2]尚麗,李玉巧.我國智慧圖書館研究演進(jìn)路徑、熱點(diǎn)與趨勢(shì)分析[J].圖書情報(bào)導(dǎo)刊,2019(10):68-73.
[3]楊思洛,董嘉慧.國內(nèi)外智慧圖書館研究熱點(diǎn)及發(fā)展趨勢(shì)探究[J].現(xiàn)代情報(bào),2020(11):167-177.
[4]程玉,胡凡剛,吳運(yùn)明.教育大數(shù)據(jù)價(jià)值體現(xiàn)、問題反思與發(fā)展路徑[J].軟件導(dǎo)刊,2020(5):281-284.
[5]曾文,車堯.科技大數(shù)據(jù)的情報(bào)分析技術(shù)研究[J].情報(bào)科學(xué),2019(3):93-96.
[6]李潔.數(shù)據(jù)驅(qū)動(dòng)下數(shù)字圖書館知識(shí)發(fā)現(xiàn)服務(wù)創(chuàng)新模式與策略研究[D].吉林:吉林大學(xué),2019.
[7]張樹新,吳海斌,蒙輝,等.基于SpringCloud的航運(yùn)EDI平臺(tái)IT生態(tài)環(huán)境設(shè)計(jì)[J].中國儲(chǔ)運(yùn),2018(2):100-103.
(編輯 王永超)