[摘 要]針對當前高校多校區(qū)圖書資源通借困難、管理效率低下等問題,設計基于微架構(gòu)的圖書通借系統(tǒng)。系統(tǒng)采用“Struts+Spring+Hibernate”開發(fā)框架,后端采用Java EE開發(fā)相關技術(shù),數(shù)據(jù)存儲選用Oracle數(shù)據(jù)庫。系統(tǒng)整體架構(gòu)由終端層、表示層、Web層、邏輯層和服務器層組成。從業(yè)務邏輯功能和數(shù)據(jù)庫設計兩方面闡述系統(tǒng)的技術(shù)實現(xiàn)過程。在進行性能測試和功能測試后發(fā)現(xiàn),系統(tǒng)在響應時間、并發(fā)數(shù)、吞吐量等性能指標中表現(xiàn)較優(yōu),具有顯著的系統(tǒng)功能優(yōu)越性。支持多表示環(huán)境和多系統(tǒng)運行環(huán)境,手機端、PC端等終端可并行登錄,能識別和控制多類型身份,系統(tǒng)的業(yè)務邏輯功能得以實現(xiàn)。能夠滿足跨校區(qū)圖書的通借需求,符合系統(tǒng)設計預期技術(shù)目標。
[關鍵詞]微架構(gòu) 系統(tǒng)設計 Oracle 系統(tǒng)測試
[分類號]TP391
多校區(qū)運作為高校發(fā)展的基本模式,而異校區(qū)圖書館采用總分館、學科館或主題館的協(xié)同模式[1]。在“四新”學科的交叉與融合背景下,跨區(qū)域的圖書通借需求日益增加。限于經(jīng)濟成本、人力資源和管理機制等因素,多數(shù)圖書館缺乏高效的業(yè)務協(xié)同系統(tǒng)、業(yè)務處理進度查詢功能和三方暢通的溝通渠道。且由于缺乏相應技術(shù)和系統(tǒng),目前開展的通借服務通常采用讀者入館填寫跨校區(qū)圖書預約單的形式,費時費力、溝通成本高、服務效能低下。為了解決這些問題,筆者設計了一款跨校區(qū)圖書通借業(yè)務系統(tǒng),其區(qū)別于同類系統(tǒng)的最大技術(shù)優(yōu)勢在于運用微架構(gòu)技術(shù)搭建整體結(jié)構(gòu),將業(yè)務邏輯模塊高度集成,為用戶提供更多的訪問終端入口。
1 圖書通借系統(tǒng)設計
1.1 系統(tǒng)整體架構(gòu)
考慮用戶在局域網(wǎng)內(nèi)和局域網(wǎng)外同時訪問圖書通借系統(tǒng)的利用需求,筆者采用多并發(fā)數(shù)、廣連接性和高開放性的微架構(gòu)模式作為圖書通借系統(tǒng)的底層網(wǎng)絡架構(gòu)[2]。根據(jù)系統(tǒng)設計目標、技術(shù)需求和圖書通借業(yè)務邏輯設計出基于微架構(gòu)的圖書通借系統(tǒng)整體架構(gòu),采用服務器層、邏輯層、Web層、表示層和終端層五級架構(gòu)方法,如圖1所示。
1.2 系統(tǒng)架構(gòu)剖析
1.2.1 終端層
終端層為系統(tǒng)的基礎層和物理層,向用戶展示各類系統(tǒng)服務,實現(xiàn)用戶與系統(tǒng)的友好交互[3]。用戶在終端層體驗和使用系統(tǒng)的圖書通借功能。終端層向表示層提出應用需求,表示層將計算和解析結(jié)果輸出顯示至多種類型的終端界面。在WLAN、LAN、WPAN、GSM、5G和CDPD等多類型組網(wǎng)環(huán)境下,用戶形成通過移動終端、IPAD、PC機和可穿戴設備訪問圖書通借系統(tǒng)的需求,因此筆者設計的圖書通借系統(tǒng)支持用戶多渠道使用,滿足多終端訪問的技術(shù)要求。
1.2.2 表示層
表示層通過域名服務器與Web層建立連接并進行數(shù)據(jù)交互。表示層通過GET、POST或者FTP等請求服務器向Web層發(fā)送HTTP請求,Web層渲染JSON后將圖書通借業(yè)務邏輯HTML網(wǎng)頁數(shù)據(jù)輸出至表示層。在圖書通借系統(tǒng)設計方案可行性分析時,用戶存在校內(nèi)局域網(wǎng)(LAN)和校外廣域網(wǎng)(WAN)兩種訪問模式。設計的系統(tǒng)需具備廣開放、多用戶并發(fā)數(shù)、可移植、易擴展和支持異構(gòu)系統(tǒng)連接等特征。筆者采用的微架構(gòu)網(wǎng)絡模式可以滿足以上技術(shù)特征要求,運用“瘦客戶端”的技術(shù)方案,用戶終端統(tǒng)一采用Browser方式,支持IE、Safari和Firefox等多瀏覽器訪問模式,將系統(tǒng)業(yè)務邏輯的核心部分集中于Web服務器和數(shù)據(jù)庫服務器上,用戶可以在不同網(wǎng)絡環(huán)境、不同校區(qū)、不同學習研究環(huán)境中實現(xiàn)便捷連接和訪問系統(tǒng)。簡化系統(tǒng)開發(fā)、維護和使用流程,較好地改善系統(tǒng)的擴展性、易用性、兼容性和開放性。
1.2.3 Web層
Web層為表示層和邏輯層的銜接層,是實現(xiàn)異物理空間圖書通借功能的關鍵。Web層的重要作用為接受來自表示層的HTTP請求或者域名請求,通過DNS服務系統(tǒng)解析HTTP請求或域名請求中的URL并定位模板文件,運用Apache、IIS、ASP、ADO、.NET和PWS應用程序調(diào)用圖書通借系統(tǒng)邏輯層的各種業(yè)務邏輯模塊。對系統(tǒng)邏輯層的數(shù)據(jù)邏輯處理結(jié)果進行渲染JSON,根據(jù)HTTP請求或域名請求中URL的參數(shù)和模板文件生成HTML文件并返回至表示層。
1.2.4 邏輯層
邏輯層為圖書通借系統(tǒng)的核心層,是圖書通借業(yè)務的承載層,接受來自Web層的業(yè)務邏輯調(diào)用請求,對圖書通借業(yè)務數(shù)據(jù)進行邏輯處理后返回至Web層。為了提高系統(tǒng)的運行效率,邏輯層通過調(diào)用MELINETS系統(tǒng)提取用戶賬戶信息、圖書狀態(tài)信息、圖書館藏信息、圖書索書號和圖書流通狀態(tài)等基礎數(shù)據(jù),并向服務器層發(fā)出SQL請求,申請進一步的業(yè)務數(shù)據(jù)處理和業(yè)務數(shù)據(jù)分析。在前期用戶調(diào)研、文獻調(diào)研和其他信息機構(gòu)實踐路徑分析的基礎上,設計和劃定出系統(tǒng)邏輯層的核心業(yè)務模塊,主要包括身份認證、圖書通借、圖書、進度處理、業(yè)務協(xié)同和反饋互動模塊。
1.2.5 服務器層
服務器層為系統(tǒng)的后端,執(zhí)行系統(tǒng)大多數(shù)事務邏輯和應用邏輯的運算、處理與實現(xiàn)。服務器層的主要作用為接受來自邏輯層的SQL請求,并調(diào)用相應模塊對數(shù)據(jù)進行獨立運算、深度分析后將處理結(jié)果返回至邏輯層,同時支持系統(tǒng)開發(fā)人員通過調(diào)用MELINETS系統(tǒng)對Oracle數(shù)據(jù)庫進行數(shù)據(jù)清洗、信息查詢等技術(shù)功能。服務器層包括硬件模塊(CPU、GPU、UPS)、軟件模塊(代理服務器軟件、服務器管理軟件)、存儲模塊(磁盤陣列)、權(quán)限控制模塊、讀寫模塊(DMA)、計算模塊、解析模塊和輸出模塊(通信設備)等。筆者所選用的微架構(gòu)網(wǎng)絡架構(gòu)將服務器置于廣域網(wǎng)環(huán)境中,保證系統(tǒng)具有高度的開放性和交互性,服務器層安裝Oracle數(shù)據(jù)庫,服務器后臺通過一定的權(quán)限控制實現(xiàn)多用戶有效訪問的技術(shù)目標。在系統(tǒng)服務器后臺進行升級時,系統(tǒng)前端無需升級瀏覽器客戶端軟件,提高了圖書通借系統(tǒng)的易用性和適用性。
1.3 系統(tǒng)運行流程設計
圖書通借指的是用戶在本地分館借閱其他異地分館的圖書[4]。請求響應、處理進度、協(xié)同效率和有效反饋為影響用戶利用圖書通借服務的關鍵因素[5],考慮以上關鍵因素,結(jié)合圖書通借事務的處理邏輯設計出系統(tǒng)的圖書通借流程,如圖2所示。圖書通借的基本流程為:用戶通過MELINETS系統(tǒng)檢索到目標圖書,當該書在本地分館未收錄而在異地分館在架可借時,用戶在圖書通借系統(tǒng)中提交目標圖書預借申請,異地分館接收、審核用戶提交的預借申請信息,之后在書庫中尋找、打包、運送目標圖書至用戶所在分館。用戶所在分館接收、核對目標圖書后在系統(tǒng)中發(fā)送預約圖書取書通知,用戶在系統(tǒng)約定的取書時間范圍內(nèi)取書,并由該分館為其辦理正式圖書借閱手續(xù)。
2 圖書通借系統(tǒng)實現(xiàn)
2.1 系統(tǒng)業(yè)務邏輯功能實現(xiàn)
圖書通借系統(tǒng)的業(yè)務邏輯功能主要包含身份認證、圖書通借、進度處理、業(yè)務協(xié)同和反饋互動模塊。筆者設計的業(yè)務邏輯功能模塊之間存在數(shù)據(jù)關聯(lián),可根據(jù)應用需求切換。
2.1.1 身份認證模塊
通過“admin”數(shù)據(jù)表添加、修改或刪除管理人員的狀態(tài)信息和系統(tǒng)權(quán)限?!癮dmin”記錄管理人員的姓名(real name)、用戶名(login_name)、密碼(password)和權(quán)限等級(level_type)等數(shù)據(jù)字段。在“reader”數(shù)據(jù)表執(zhí)行添加、修改普通讀者的賬戶信息。“reader”記錄姓名(name)、卡號(card_number)和狀態(tài)(status)等數(shù)據(jù)字段。狀態(tài)(status)數(shù)據(jù)字段對讀者的信用積分進行判定,如低于設置的系統(tǒng)最低信用積分將被限制申請請求。
2.1.2 圖書通借模塊
讀者在OPAC中查詢到所需圖書在本地館已全部被借出或無收藏,但在異地分館有收藏且處于可借狀態(tài)時,可通過圖書通借模塊提交圖書通借申請。圖書通借申請網(wǎng)頁(XML/HTML)中包含申請者個人信息、所在校區(qū)、所在分館、目標圖書題名、目標圖書著者和目標圖書ISBN號等狀態(tài)信息,通過“borrow_books_help”數(shù)據(jù)表實現(xiàn)圖書通借功能,該表包括圖書館id(library_id)、圖書詳情鏈接(details_url)和讀者id(reader_id)等字段。讀者通過圖書通借模塊提交具體的目標圖書狀態(tài)數(shù)據(jù),管理人員在接收到圖書通借申請后進行數(shù)據(jù)審核和數(shù)據(jù)校驗。
2.1.3 進度處理模塊
進度處理模塊用以添加、修改、確認和更新業(yè)務邏輯處理的進展情況,具備高度的網(wǎng)絡開放性和系統(tǒng)兼容性,能夠滿足異構(gòu)網(wǎng)絡環(huán)境下異地管理人員同步進行進度處理操作的技術(shù)需求,通過“Progress_processing”數(shù)據(jù)表實現(xiàn)業(yè)務邏輯處理進度控制功能。數(shù)據(jù)表包含分館id(branch_library_id)、圖書預借請求處理(book_pre_loan_request_processing)、圖書驗收(book_acceptance)和物流進度(logistics_progress)等字段,所形成的大量圖書通借業(yè)務進度處理字段數(shù)據(jù)為業(yè)務協(xié)同模塊、反饋互動模塊提供數(shù)據(jù)支撐。
2.1.4 業(yè)務協(xié)同模塊
業(yè)務協(xié)同模塊通過“coordination”數(shù)據(jù)表實現(xiàn)多區(qū)域、跨系統(tǒng)的管理人員協(xié)同處理功能。數(shù)據(jù)表中包含分館id(branch_library_id)、圖書預借協(xié)同處理(book_pre_loan_coordination)和物流協(xié)同處理(logistics_collaboration)等字段。在圖書通借的物流進程、圖書驗收和典藏地點調(diào)整等環(huán)節(jié)中需多分館管理人員通過業(yè)務協(xié)同模塊協(xié)同處理。
2.1.5 反饋互動模塊
通過“Feedback_interaction”數(shù)據(jù)表實現(xiàn)不同類型人員的反饋與互動。主要實現(xiàn)以下功能:系統(tǒng)開發(fā)人員向管理人員發(fā)送技術(shù)指南、升級公告和使用提示;管理人員向系統(tǒng)開發(fā)人員發(fā)送系統(tǒng)運行故障參數(shù)情況;管理人員之間進行圖書代借、物流配送、問題書處理和違約規(guī)則等事宜的溝通;管理人員與普通讀者約定待借書取書時間和讀者使用評價反饋等事宜。數(shù)據(jù)表包含分館id(branch_library_id)、技術(shù)指南(technical_guidelines)、物流進程(logistics_process)、服務約定(service_agreement)和讀者評價(readers'_evaluation)等字段。
2.2 系統(tǒng)數(shù)據(jù)庫設計
在系統(tǒng)業(yè)務邏輯實現(xiàn)過程中,數(shù)據(jù)庫的構(gòu)建尤為重要。數(shù)據(jù)表為數(shù)據(jù)庫中的存儲層和數(shù)據(jù)層模型,在數(shù)據(jù)庫中發(fā)揮著裝載實際業(yè)務邏輯運行數(shù)據(jù)的作用。數(shù)據(jù)庫設計為圖書通借系統(tǒng)實現(xiàn)中的基礎部分,其設計的合理性、有效性和擴展性關系到系統(tǒng)的運行效率和應用拓展,須確保數(shù)據(jù)庫的一致性和完整性,確認數(shù)據(jù)表間的相互關系,盡可能降低數(shù)據(jù)的冗余[5]。筆者設計的數(shù)據(jù)庫包含的主要數(shù)據(jù)如表1所示,其中僅列舉出部分數(shù)據(jù)表名稱和主要字段。
3 圖書通借系統(tǒng)測試驗證與分析
3.1 性能測試
為了評估此圖書通借系統(tǒng)的運行性能,運用常用的性能測試工具LoadRunner模擬多種正常、峰值、負載等條件對多個樣本系統(tǒng)進行性能測試[6]。測試樣本分別為:基于微信公眾號的圖書通借系統(tǒng)(樣本A)、業(yè)務系統(tǒng)嵌入式圖書通借系統(tǒng)(樣本B)、基于微信小程序的圖書通借系統(tǒng)(樣本C)和筆者所設計的系統(tǒng)(樣本D)。LoadRunner包含3個部分,分別為User Generator、Controller和Analysis。User Generator用于設置虛擬用戶和錄制腳本,Controller用于設置和運行場景,Analysis用于分析測試結(jié)果。將測試腳本設置為讀者驗證、業(yè)務請求和狀態(tài)參數(shù)查看,設置虛擬用戶的數(shù)量為200,每15秒啟動5個用戶,用戶啟動完成后運行5分鐘,之后每15秒停止5個用戶,場景設置為手動測試場景。LoadRunner性能測試流程見圖3,性能測試指標以及測試結(jié)果見表2。
3.2 功能測試
為了驗證和測試筆者所設計系統(tǒng)功能的優(yōu)越性,設置系統(tǒng)的功能測試指標,如表3所示。選取200名信息機構(gòu)的用戶按照指標體系對4種樣本系統(tǒng)進行打分,樣本系統(tǒng)的得分依據(jù)為在各項指標中的加權(quán)平均值。
表3 樣本圖書通借系統(tǒng)功能測試指標體系
[一級指標 權(quán)重 二級指標 權(quán)重 a:系統(tǒng)功能 0.55 a1:身份認證 0.05 a2:通借申請 0.15 a3:進度處理 0.12 a4:業(yè)務協(xié)同 0.13 a5:反饋互動 0.10 b:易用性 0.45 b1:易學性 0.15 b2:界面簡潔 0.10 b3:多終端入口 0.10 b4:多網(wǎng)絡環(huán)境 0.10 ]
樣本A的總評分值為6.7,樣本B的總評分值為4.8,樣本C的總評分值為5.4,樣本D的總評分值為8.5。由此可知,筆者所設計的系統(tǒng)在系統(tǒng)功能、易用性兩個核心測試指標方面具有較大的優(yōu)勢,更能滿足用戶的跨區(qū)域圖書通借服務需求,更為接近用戶的圖書通借系統(tǒng)利用期望值。
3.3 測試結(jié)果分析
為了驗證筆者所設計系統(tǒng)的性能優(yōu)勢和功能優(yōu)勢,采用系統(tǒng)性能測試和系統(tǒng)功能測試雙重測試方法。經(jīng)過LoadRunner進行性能測試,發(fā)現(xiàn)其在響應時間、并發(fā)數(shù)、吞吐量等系統(tǒng)性能指標中表現(xiàn)較優(yōu)。運用基于用戶使用評價的方法進行功能測試,發(fā)現(xiàn)其具有更顯著的系統(tǒng)功能優(yōu)越性。
4 結(jié)語
筆者從系統(tǒng)整體架構(gòu)、系統(tǒng)微觀剖析和系統(tǒng)運行流程設計3個視角設計出基于微架構(gòu)的圖書通借系統(tǒng)。從系統(tǒng)業(yè)務邏輯功能和系統(tǒng)數(shù)據(jù)庫設計兩方面闡述系統(tǒng)的具體技術(shù)實現(xiàn)思路和實現(xiàn)過程。經(jīng)過雙重測試,筆者所設計系統(tǒng)在性能和功能兩個維度均有顯著優(yōu)勢,支持多瀏覽器界面表示和多操作系統(tǒng)環(huán)境運行,可供手機端、PC端等多用戶設備并行登錄,可對多類型用戶身份的賬戶進行識別和訪問控制,能實現(xiàn)系統(tǒng)的圖書通借模塊、進度處理控制模塊和反饋互動模塊等業(yè)務邏輯功能。后期本系統(tǒng)可與物聯(lián)網(wǎng)、人工智能技術(shù)結(jié)合,有望實現(xiàn)讀者代借圖書的智能識別、智能暫存和自助提取,以及讀者與系統(tǒng)的智能交互,亦可運用神經(jīng)網(wǎng)絡算法為讀者智能推薦符合其興趣的書目。
參考文獻:
[1] 李燦.高校多校區(qū)圖書館通借通還系統(tǒng)設計與實現(xiàn)[J].圖書館學刊,2010(12):93-95.
[2] 黃海.大數(shù)據(jù)時代圖書館微服務研究[J].河南圖書館學刊,2023(3):59-62.
[3] 張宸,王惠森.基于微服務架構(gòu)的圖書館機構(gòu)知識庫設計研究[J].圖書館學研究,2017(8):59-63,97.
[4] 呂霞,宋嬌,范澤華.多校區(qū)圖書館通借通服務設計與實現(xiàn)——以華中科技大學圖書館為例[J].現(xiàn)代信息科技,2022(10):91-93,98.
[5] 朱東.海量數(shù)據(jù)庫的設計與優(yōu)化[J].電腦知識與技術(shù),2016(28):24.
[6] 林生旭,盤茂杰.軟件測試技術(shù)及其測試工具的研究與應用[J].現(xiàn)代計算機,2023(12):37-43.
杜文龍 男,1986年生。碩士,副研究館員。研究方向:信息技術(shù)與計算機應用。
徐光輝 男,1975年生。碩士,館員。研究方向:計算機技術(shù)與應用。
柴 源 男,1985年生。碩士,副研究館員。研究方向:知識組織。
(收稿日期:2023-05-21;責編:鄧鈺。)