劉俊濤 王美林 張弩
摘要:隨著萬物互聯(lián)時(shí)代到來,實(shí)驗(yàn)室信息管理系統(tǒng)LIMS(Library Information Management System)面臨檢驗(yàn)檢測項(xiàng)目逐漸增多,智能檢測設(shè)備與手段不斷更新需求。為了能夠適應(yīng)此類需求,有必要使用更易維護(hù)、可擴(kuò)展的軟件技術(shù)開發(fā)LIMS。通過對比了單體框架、SOA框架和微服務(wù)框架的優(yōu)缺點(diǎn),提出了一個(gè)基于微服務(wù)架構(gòu)的LIMS方案。本方案采用微服務(wù)組件擴(kuò)展來應(yīng)對業(yè)務(wù)需求的增加,提高LIMS的高效服務(wù)擴(kuò)展能力。本系統(tǒng)基于Spring Cloud框架,把系統(tǒng)解耦成各個(gè)微服務(wù),且各個(gè)微服務(wù)可以集成部署和擴(kuò)展升級(jí)等,具有良好的可擴(kuò)展性。實(shí)踐表明,本方案的LIMS系統(tǒng)降低了系統(tǒng)內(nèi)部的耦合程度,有利于業(yè)務(wù)功能的擴(kuò)展和完善,降低開發(fā)維護(hù)的難度,體現(xiàn)了一定的現(xiàn)實(shí)意義和使用價(jià)值。
關(guān)鍵詞:實(shí)驗(yàn)室信息管理系統(tǒng);數(shù)據(jù)管理;微服務(wù);實(shí)驗(yàn)室信息化
中圖分類號(hào):TP301? 文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1009-3044(2022)17-0001-03
1 引言
隨著信息科技的發(fā)展,實(shí)驗(yàn)室信息管理模式無論是在樣品數(shù)量、檢測周期、檢測項(xiàng)目和數(shù)據(jù)準(zhǔn)確性等方面都體現(xiàn)了更高的要求[1]。目前,我國檢驗(yàn)檢測行業(yè)存在整體數(shù)字化水平仍偏低的問題,在新冠肺炎疫情沖擊下,只有部分檢驗(yàn)檢測機(jī)構(gòu)因?yàn)檩^早進(jìn)行數(shù)字化轉(zhuǎn)型,所以抵御住了檢驗(yàn)檢測任務(wù)的激增,并利用物聯(lián)網(wǎng)技術(shù)實(shí)現(xiàn)了檢測過程實(shí)時(shí)查詢和電子報(bào)告自主下載等服務(wù)[2],而且以物聯(lián)網(wǎng)技術(shù)為依托的LIMS相較于傳統(tǒng)型可大大降低經(jīng)濟(jì)成本[3]。在面臨業(yè)務(wù)場景擴(kuò)展、精度要求提升與檢測項(xiàng)目擴(kuò)容等場景時(shí),LIMS產(chǎn)生了不斷增加相應(yīng)的業(yè)務(wù)功能和對接新的儀器設(shè)備的需求。得益于當(dāng)今物聯(lián)網(wǎng)技術(shù)快速發(fā)展,實(shí)驗(yàn)室的儀器設(shè)備在逐漸智能化,儀器設(shè)備與LIMS連接也變得更加復(fù)雜緊密,基于物聯(lián)網(wǎng)技術(shù)的LIMS已是實(shí)驗(yàn)室管理的重要工具[4]。因此設(shè)計(jì)一個(gè)易擴(kuò)展的系統(tǒng)架構(gòu)顯得尤為必要。當(dāng)前國內(nèi)LIMS研究工作相對滯后,目前大部分系統(tǒng)仍然是單體式的C/S或B/S架構(gòu),所以存在難以擴(kuò)展業(yè)務(wù)功能、數(shù)據(jù)信息連接和分享能力有限等問題[1]。綜上所述,目前主流LIMS系統(tǒng)存在業(yè)務(wù)適應(yīng)能力不強(qiáng),可擴(kuò)展性差的問題。
目前主流的軟件體系包括單體式框架、SOA框架和微服務(wù)框架等。單體架構(gòu)存在耦合度太高,難以擴(kuò)展功能和不易維護(hù)的問題;SOA架構(gòu)的服務(wù)總線關(guān)注于異構(gòu)系統(tǒng)集成問題,且往往實(shí)現(xiàn)服務(wù)總線高;而微服務(wù)架構(gòu)[5]思想是將原來業(yè)務(wù)服務(wù)按照一定的規(guī)則,將業(yè)務(wù)領(lǐng)域劃分為獨(dú)立的微服務(wù),每個(gè)微服務(wù)之間相互獨(dú)立,每個(gè)服務(wù)之間使用輕量級(jí)的HTTP協(xié)議進(jìn)行通信,從而保障了每個(gè)微服務(wù)的獨(dú)立性和系統(tǒng)的高可擴(kuò)展性[6]。微服務(wù)框架優(yōu)化并解決了SOA框架過度依賴于企業(yè)服務(wù)總線的問題,成為一個(gè)真正意義上去中心化的分布式架構(gòu)[7]。
本論文針對此問題,提出一個(gè)基于Spring Cloud微服務(wù)框架的LIMS系統(tǒng),并設(shè)計(jì)了相應(yīng)的業(yè)務(wù)微服務(wù)體系,可以靈活實(shí)現(xiàn)智能檢測儀器、檢測業(yè)務(wù)的擴(kuò)展。
2 業(yè)務(wù)層設(shè)計(jì)
2.1 LIMS業(yè)務(wù)特點(diǎn)
LIMS系統(tǒng)使用的一般流程,基本都是委托訂單、完成采樣、檢驗(yàn)檢測、結(jié)果校核和出報(bào)告等步驟;其他業(yè)務(wù)功能有用戶體系和授權(quán)管理、物料庫存管理和統(tǒng)計(jì)查詢管理等。
本文針對的LIMS系統(tǒng)業(yè)務(wù)分兩種情況,一種是LIMS的系統(tǒng)基本業(yè)務(wù),包括用戶及其權(quán)限、物料庫存管理、訂單管理等基本不變的業(yè)務(wù),另一種是需要靈活應(yīng)對新增業(yè)務(wù)場景進(jìn)行靈活擴(kuò)展的業(yè)務(wù)功能。其中每個(gè)新增業(yè)務(wù)場景的一般檢測業(yè)務(wù)流程仍然為采樣、檢測、校核和出報(bào)告等基本步驟,但每個(gè)步驟都有不同的檢測工序和處理方式。如針對焦化行業(yè)場地檢測和石化行業(yè)場地檢測等,它們的采樣方式包含人工采樣和物聯(lián)網(wǎng)自動(dòng)采樣等,檢測方法包含人工檢測、智能設(shè)備檢測和物聯(lián)網(wǎng)采樣即時(shí)檢測等,校核方式包括返工重做和確認(rèn)簽名等,出報(bào)告需要分公開和保密等情況。
2.2 基于微服務(wù)的LIMS業(yè)務(wù)體系設(shè)計(jì)
對于微服務(wù)的拆分粒度沒有統(tǒng)一的標(biāo)準(zhǔn),粒度太細(xì)會(huì)導(dǎo)致微服務(wù)之間的通信冗余和調(diào)試?yán)щy,過粗就不能體現(xiàn)微服務(wù)的優(yōu)勢,所以服務(wù)拆分還需要考慮單一職責(zé)、服務(wù)自治、輕量級(jí)通信和內(nèi)聚耦合等基本原則[8]。
LIMS業(yè)務(wù)層是實(shí)現(xiàn)全部業(yè)務(wù)功能的地方,通過分析整體業(yè)務(wù)模塊之間關(guān)系,設(shè)計(jì)出各個(gè)獨(dú)立微服務(wù)組件,最終通過微服務(wù)組件組合實(shí)現(xiàn)全部業(yè)務(wù)功能。根據(jù)業(yè)務(wù)特點(diǎn),這些微服務(wù)組件可分為兩大類,分別為通用的基礎(chǔ)微服務(wù)組件和面向業(yè)務(wù)流程功能且易擴(kuò)展的業(yè)務(wù)微服務(wù)組件。通用的微服務(wù)組件,解決系統(tǒng)用戶身份及權(quán)限等問題。根據(jù)可以靈活擴(kuò)展的微服務(wù)組件是本系統(tǒng)的架構(gòu)設(shè)計(jì)重點(diǎn)。這些組件根據(jù)不同的業(yè)務(wù)場景,解決檢驗(yàn)檢測業(yè)務(wù)和儀器設(shè)備不斷增加所產(chǎn)生的業(yè)務(wù)需求,實(shí)現(xiàn)新的業(yè)務(wù)功能,如石化行業(yè)場地實(shí)驗(yàn)室和焦化行業(yè)場地實(shí)驗(yàn)室等的樣品微服務(wù)、任務(wù)微服務(wù)和報(bào)告微服務(wù)等(如圖1)。
如圖1所示,如果新增業(yè)務(wù)場景和業(yè)務(wù)需求,可針對新增的檢驗(yàn)檢測類型和儀器設(shè)備開發(fā)新業(yè)務(wù)功能的微服務(wù)組件,接入到相應(yīng)的微服務(wù)體系。這樣一方面可以提高對新業(yè)務(wù)功能的開發(fā)效率,另一方面可以降低業(yè)務(wù)功能之間的耦合程度,體現(xiàn)易維護(hù)、易部署的特點(diǎn)。
核心業(yè)務(wù)模塊業(yè)務(wù)功能如下。
1)樣品微服務(wù)
本模塊優(yōu)化了傳統(tǒng)采樣工作流程和樣品管理,使得本系統(tǒng)的樣品信息管理更加詳細(xì)與明確,有利于提高數(shù)據(jù)采集質(zhì)量,提高了樣品的可溯源性、可信度和管理水平。采樣方法有人工采樣和物聯(lián)網(wǎng)采樣兩種方式。人工采樣流程要求采樣人員在采樣過程中拍攝采集完成的樣品和地點(diǎn)環(huán)境,終端設(shè)備會(huì)自動(dòng)添加經(jīng)緯度信息于照片和系統(tǒng)中,并在現(xiàn)場打印出樣品號(hào),貼注于樣品容器上用于確定樣品的唯一編號(hào),極大降低了樣品之間混淆出錯(cuò)的可能性。物聯(lián)網(wǎng)采樣是指通過與LIMS連接的物聯(lián)網(wǎng)終端設(shè)備采集、保留樣品。
2)任務(wù)微服務(wù)
任務(wù)微服務(wù)是一類處理檢驗(yàn)檢測任務(wù)流程的微服務(wù)的統(tǒng)稱,包含了檢測任務(wù)和校核任務(wù)等的具體工作流程。本方案根據(jù)不同的業(yè)務(wù)場景劃分任務(wù)微服務(wù)并進(jìn)行集中管理,對新增的檢驗(yàn)檢測類型、儀器設(shè)備需要的業(yè)務(wù)功能進(jìn)行開發(fā)擴(kuò)展新功能,避免了影響其他的業(yè)務(wù)微服務(wù)進(jìn)行,實(shí)現(xiàn)了便于維護(hù)和升級(jí)的優(yōu)點(diǎn)。每個(gè)任務(wù)微服務(wù)是實(shí)驗(yàn)室信息處理的核心功能,負(fù)責(zé)管理所對應(yīng)的檢驗(yàn)檢測類型的具體工作細(xì)節(jié),與其他微服務(wù)進(jìn)行交換信息,最終完成每一個(gè)檢測任務(wù)流程。本模塊保存任務(wù)的工作流程和檢測結(jié)果的結(jié)構(gòu)化數(shù)據(jù),有利于對數(shù)據(jù)進(jìn)行歸類、提煉和挖掘,能夠極大提高數(shù)據(jù)的分析利用能力。
3)報(bào)告微服務(wù)
報(bào)告微服務(wù)將會(huì)在某一委托訂單的采集樣品、檢驗(yàn)檢測完成并確定生成結(jié)果報(bào)告后,根據(jù)樣品信息、檢驗(yàn)檢測項(xiàng)目結(jié)果生成結(jié)果報(bào)告 ,并存儲(chǔ)在系統(tǒng)之中。報(bào)告結(jié)果分為公開和保密等兩種類型。公開類型的報(bào)告文件可以通過API接口被第三方應(yīng)用調(diào)用獲取數(shù)據(jù)信息;保密類型則是只能實(shí)驗(yàn)室內(nèi)部人員查看、使用和打印,未經(jīng)允許不對外泄露的數(shù)據(jù)和結(jié)果報(bào)告。同時(shí),因?yàn)椴粩嗌纱罅拷Y(jié)果報(bào)告和歷史積累會(huì)導(dǎo)致服務(wù)器存儲(chǔ)巨量文件數(shù)據(jù),所以獨(dú)立部署的報(bào)告微服務(wù)設(shè)計(jì)可以提高結(jié)果報(bào)告的處理效率而盡量不影響其他微服務(wù)組件運(yùn)行。
4)基礎(chǔ)微服務(wù)
基礎(chǔ)微服務(wù)組件主要實(shí)現(xiàn)通用的業(yè)務(wù)功能,包括用戶及其權(quán)限、物料庫存管理、訂單管理、操作歷史和統(tǒng)計(jì)查詢等基本不變的業(yè)務(wù)。系統(tǒng)會(huì)根據(jù)用戶身份認(rèn)證及權(quán)限,提供相應(yīng)的資源和服務(wù),限制了用戶可操作范圍,減少了意外操作的發(fā)生和保證了系統(tǒng)信息安全。
3 系統(tǒng)設(shè)計(jì)
3.1 系統(tǒng)結(jié)構(gòu)
本文LIMS系統(tǒng)的結(jié)構(gòu)如圖2所示,分為應(yīng)用層、業(yè)務(wù)層、數(shù)據(jù)服務(wù)層、微服務(wù)平臺(tái)層和基礎(chǔ)設(shè)施層。
各個(gè)層的功能如下:
應(yīng)用層:根據(jù)業(yè)務(wù)需求,面向不同的系統(tǒng)用戶和業(yè)務(wù)場景,通過瀏覽器和移動(dòng)終端調(diào)用不同的API服務(wù)管理訂單、用戶權(quán)限、任務(wù)分配等各個(gè)業(yè)務(wù)模塊功能。
API網(wǎng)關(guān):主要負(fù)責(zé)連接應(yīng)用層和后臺(tái)業(yè)務(wù)服務(wù)層,通過提供安全可控的統(tǒng)一訪問接口,聚合業(yè)務(wù)服務(wù),提升系統(tǒng)平臺(tái)性能。
業(yè)務(wù)層:按照業(yè)務(wù)需求、調(diào)度顆粒度等因素拆分出來的獨(dú)立微服務(wù)組件,是單一業(yè)務(wù)功能且不可分割的服務(wù),共同完成實(shí)驗(yàn)室信息管理的流程工作。
數(shù)據(jù)服務(wù)層:主要涉及實(shí)驗(yàn)室的各類檢驗(yàn)檢測設(shè)備系統(tǒng)的物聯(lián)接入,并通過不同協(xié)議對設(shè)備檢驗(yàn)檢測數(shù)據(jù)進(jìn)行采集、交互和存儲(chǔ),并且可以提供給上層業(yè)務(wù)系統(tǒng)或第三方應(yīng)用進(jìn)行數(shù)據(jù)讀寫服務(wù)。
微服務(wù)平臺(tái)層:通過微服務(wù)架構(gòu)技術(shù)把現(xiàn)有的第三方組件資源封裝成微服務(wù)組件,實(shí)現(xiàn)微服務(wù)的統(tǒng)一管理,為微服務(wù)的注冊、路由、調(diào)用、容錯(cuò)及治理提供技術(shù)支持,實(shí)現(xiàn)資源管理的優(yōu)化和負(fù)載均衡。
其中業(yè)務(wù)層的核心業(yè)務(wù),根據(jù)擴(kuò)展需要,分成以下微服務(wù):
樣品微服務(wù):主要負(fù)責(zé)實(shí)現(xiàn)和管理樣品的采集、信息的錄入等流程。
任務(wù)微服務(wù):主要負(fù)責(zé)實(shí)現(xiàn)對樣品的預(yù)處理、檢驗(yàn)檢測、判斷結(jié)果和存儲(chǔ)傳輸數(shù)據(jù)等流程。
報(bào)告微服務(wù):主要負(fù)責(zé)生成報(bào)告、共享和發(fā)布報(bào)告等流程。
4 系統(tǒng)實(shí)現(xiàn)
LIMS在基于Spring Cloud微服務(wù)架構(gòu)進(jìn)行開發(fā)后,業(yè)務(wù)層的微服務(wù)都是采用Spring Boot框架進(jìn)行開發(fā)實(shí)現(xiàn);使用Nacos作為注冊配置中心;使用Spring Cloud Gateway實(shí)現(xiàn)過濾、監(jiān)控功能和動(dòng)態(tài)路由的功能;Ribbon組件使用輪詢策略將請求均勻的分配至一個(gè)微服務(wù)的不同服務(wù)實(shí)例;Hystrix組件提供了降級(jí)、隔離和熔斷功能,避免了服務(wù)故障的連鎖反應(yīng),保護(hù)整個(gè)系統(tǒng)功能的穩(wěn)定性。為了更好地支撐微服務(wù)架構(gòu),Docker容器引擎技術(shù)使每一個(gè)微服務(wù)均可以獨(dú)立部署,體現(xiàn)了高效部署、服務(wù)發(fā)現(xiàn)、資源調(diào)度等功能,而使用Kubernetes對容器進(jìn)行規(guī)劃、更新、維護(hù)等功能。
因?yàn)楸鞠到y(tǒng)面對完全獨(dú)立且不同的業(yè)務(wù)模型和場景,所以在開發(fā)使用過程中的最佳策略是根據(jù)各個(gè)應(yīng)用場景開發(fā)相應(yīng)的業(yè)務(wù)微服務(wù),比如樣品微服務(wù)、任務(wù)微服務(wù)、報(bào)告微服務(wù)和統(tǒng)計(jì)查詢微服務(wù)等,這樣保證了在不影響其他業(yè)務(wù)代碼和功能的情況下進(jìn)行開發(fā)、部署、維護(hù)和升級(jí),靈活擴(kuò)展系統(tǒng)功能。
本系統(tǒng)案例在開發(fā)中,首先面對焦化行業(yè)場地,實(shí)驗(yàn)室負(fù)責(zé)檢驗(yàn)檢測和管理場地周邊物體和人體樣本,本系統(tǒng)取得了良好的使用效果和體驗(yàn);而后新增了針對石化行業(yè)場地土壤污染的實(shí)驗(yàn)室信息管理需求,在場地樣本和人體樣本基礎(chǔ)上,新增了水體樣本。因?yàn)楸鞠到y(tǒng)松耦合的架構(gòu)體系、開發(fā)效率快,及時(shí)解決了業(yè)務(wù)擴(kuò)展問題,減少了各個(gè)微服務(wù)的相互影響,提高了系統(tǒng)的穩(wěn)定性并降低了系統(tǒng)優(yōu)化所需時(shí)間。
5 結(jié)束語
本項(xiàng)目基于Spring Cloud架構(gòu)思想設(shè)計(jì)開發(fā)的實(shí)驗(yàn)室信息管理系統(tǒng),相比于單體框架和SOA框架,可快速擴(kuò)展業(yè)務(wù)微服務(wù)組件,接入使用第三方的組件技術(shù),降低了投入成本,并提高了開發(fā)、維護(hù)和使用的效率,有利于系統(tǒng)功能持續(xù)擴(kuò)展,滿足業(yè)務(wù)不斷新增的需求,提高了平臺(tái)系統(tǒng)的服務(wù)水平,可有效提高實(shí)驗(yàn)室數(shù)字化水平。
參考文獻(xiàn):
[1] 王文雙,楊雅君.實(shí)驗(yàn)室信息管理系統(tǒng)發(fā)展綜述[J].電子產(chǎn)品可靠性與環(huán)境試驗(yàn),2021,39(S2):60-63.
[2] 陳雷,張茂帆,劉慧偉.檢驗(yàn)檢測行業(yè)數(shù)字化轉(zhuǎn)型發(fā)展的若干思考[J].質(zhì)量與認(rèn)證,2021(6):50-52.
[3] 朱俊杰,李勇,鄭志安,等.基于信息深度融合的智慧型實(shí)驗(yàn)室管理系統(tǒng)[J].實(shí)驗(yàn)室研究與探索,2021,40(11):228-232.
[4] 龍海洋,夏彬偉,姜永東,等.實(shí)驗(yàn)室管理平臺(tái)的建設(shè)與實(shí)踐[J].實(shí)驗(yàn)室研究與探索,2021,40(10):252-255.
[5] Spring Team. Spring Cloud[EB/OL]. [2018-07-24] https://springcloud.ccl.
[6] 楊建新,姚志強(qiáng),宋旭杰,等.基于微服務(wù)架構(gòu)的生產(chǎn)管控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].新技術(shù)新工藝,2021(9):28-33.
[7] 代飛,劉國志,李章,等.微服務(wù)技術(shù):體系結(jié)構(gòu)、通信和挑戰(zhàn)[J].應(yīng)用科學(xué)學(xué)報(bào),2020,38(5):761-778.
[8] 江鄭,王俊麗,曹芮浩,等.一種基于微服務(wù)架構(gòu)的服務(wù)劃分方法[J].計(jì)算機(jī)科學(xué),2021,48(12):17-23.
收稿日期:2022-02-18
基金項(xiàng)目:國家自然科學(xué)基金(U1701266);廣東省科技計(jì)劃(2019A050513011、2017B090901056);廣州市科技計(jì)劃(202002030386)
作者簡介:劉俊濤(1995—),男,廣東廣州人,在讀研究生,主要研究方向?yàn)榇髷?shù)據(jù)與工業(yè)物聯(lián)網(wǎng);通訊作者:王美林(1975—),副教授,博士,主要的研究方向?yàn)楣I(yè)物聯(lián)網(wǎng)與智能制造;張弩(1977—),碩士,主要的研究方向?yàn)楣I(yè)物聯(lián)網(wǎng)與智能制造。