劉俊濤 王美林 張弩



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