基于微服务框架的实验室信息管理系统的设计与实现

2022-08-31 08:11刘俊涛王美林张弩
电脑知识与技术 2022年17期
关键词:微服务数据管理

刘俊涛 王美林 张弩

摘要:随着万物互联时代到来,实验室信息管理系统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—),硕士,主要的研究方向为工业物联网与智能制造。

猜你喜欢
微服务数据管理
企业级BOM数据管理概要
定制化汽车制造的数据管理分析
海洋环境数据管理优化与实践
CTCS-2级报文数据管理需求分析和实现
列控数据管理平台的开发
微信公众平台在医院图书馆的应用现状调查
从单一模式系统架构往微服务架构迁移转化技术研究
基于云计算的数据管理技术研究