APP下载

基于SpringBoot框架的群养母猪饲喂站管理系统设计与试验

2023-06-17余鹏翔石军锋

中国农机化学报 2023年3期
关键词:专家系统

余鹏翔 石军锋

摘要:母猪的群体养殖是一种能保证动物福利,提高母猪生产性能的重要养殖管理模式。为实现母猪群养过程的数字化及智能化,基于自主研发的群养母猪饲喂站硬件平台,采用B/S模式设计一个群养母猪饲喂站管理系统。系统后端使用基于Java语言的SpringBoot框架作为系统组件管理和运行的主要框架;设计后端数据库中的数据结构,优化后台系統中持久层数据的操作访问;使用Netty实现饲喂站及客户端与后台间的实时通信;基于Spring事务管理,封装可复用的业务逻辑,设计母猪信息管理、饲喂计划专家系统、饲喂站实时监控等系统功能模块。系统前端采用渐进式Vue框架实现用户与各个功能模块的人机交互。试验表明:本系统能实现对群养母猪饲喂站的控制和状态监测,并根据母猪特性和专家知识库动态生成每天的饲喂计划;在基础实验条件下,系统的饲喂站并发量可超过120台,理论最大母猪容纳量超过5 400 头,能够满足大规模母猪饲喂的需求。

关键词:母猪群体养殖;SpringBoot;Netty;专家系统

中图分类号:S24

文献标识码:A

文章编号:2095-5553 (2023) 03-0149-08

Abstract: Group breeding of sows is an important breeding management modewhich can ensure animal welfare and improve sow production performance. In order to realize the digitalization and intelligence of the sow group breeding process, this paper designs a group breeding sow feeding station management system based on the selfdeveloped group breeding sow feeding station hardware platform with B/S mode. The backend of the system uses the SpringBoot framework based on Java language as the main framework for the management and operation of system components; the data structure in the backend database is designed to optimize the operation access of the persistent layer data in the backend system; Netty is used to realize the realtime communication between the feeding station and the client and the backend; based on Spring transaction management, the reusable business logic is encapsulated and sow information management, feeding plan expert system, feeding station realtime monitoring and other system function modules are designed. The frontend of the system adopts the progressive Vue framework to realize the humancomputer interaction between users and each functional module. Experiments show that the system can realize the control and status monitoring of group sow feeding stations, and dynamically generate daily feeding plans according to sow characteristics and expert knowledge base; under the basic experimental conditions, the concurrent capacity of feeding stations of the system can exceed 120 units, and the theoretical maximum sow capacity exceeds 5 400, which can meet the demand of largescale sow feeding.

Keywords: sow group breeding; SpringBoot; Netty; expert system

0引言

过去数十年,畜牧行业的动物福利问题开始引起了人们的关注。在养猪产业,特别是母猪饲喂环节,为保证产仔母猪的福利水平,进而提升其生产性能,出现了母猪的群体养殖管理模式[1]。与传统的单栏饲喂相比,母猪群养要求将数头母猪圈养在同一块较大的猪圈之中,为其提供更大的生活环境,增加自由活动的空间。这种饲喂方式理论上更符合母猪的生理特性,有利于母猪健康生长、进而提升生殖性能[24]。但母猪饲喂是一个精细化过程,其往往需要饲养员根据母猪的现实状况(包括母猪生产周期、胎次、体态、季节等多个要素),制定对应的饲喂计划[56]。群体养殖时大量母猪的同时管理,无疑增加了母猪饲喂的耦合度,有较大的现场管理难度。为解决这一问题,发达国家提出了母猪饲喂站配合管理系统的自动化母猪饲养方案[7]。如加拿大Gestal母猪管理系统以及荷兰Velos系统等[8],这些方案通过在群养猪圈中加入电子母猪饲喂站,用与其配套的智能管理系统实现母猪群养的实时管理监测。

与此相比,国内的相关研究还处在设备研究的阶段。在母猪状态监控领域,熊本海等[9]将电动推杆、定量仓体等的机械机构,结合嵌入式控制系统,实现了哺乳母猪的精准饲喂;杨亮等[10]通过在有身份识别模块的母猪饲养分隔仓上设置观察窗的方式,实现了母猪发情状态的智能化监测。而在母猪群养饲喂设备领域,程维波等研制的ZWZ50C型母猪电子饲喂站、黄昊等[11]研发的智能化母猪饲喂控制系统,都为母猪的群养管理提供了一定程度的硬件基础。但要将这些技术应用于实际生产,配套的饲喂站管理系统软件还不成熟。将先进的智能制造技术应用于母猪饲喂领域,开发出一套适应于中国母猪养殖产业的饲喂站管理系统,对于我国整个生猪养殖产业升级以及母猪饲养理论的相关研究都有着十分深远的现实意义[1213]。

本研究设计的群养母猪饲喂站管理系统,基于SpringBoot和Netty框架,根据预设的通信逻辑与母猪饲喂设备和用户进行通信,实现母猪信息管理、饲喂站设备监控、饲喂决策、用户权限管理等功能,为群养母猪饲喂实践过程中的精细化饲喂以及实时监控提供后台支持。

1系统整体设计

1.1系统拓扑结构

整个系统的拓扑结构如图1所示,分为三层:客户层、网络服务层和感知控制层。服务器部署于拥有公网IP的云服务器中,为客户层和感知执行层提供数据服务。客户层PC端和移动端获取服务器中的前端资源之后,使用HTTP和WebSocket两种协议实现其与后台的数据交互。HTTP用于获取实时性不大的数据资源(母猪大部分属性以及饲喂站注册信息等),用WebSocket传递实时状态资源(饲喂站各硬件状态等)。感知控制层直接使用TCP/IP协议连接后端系统,根据自定义的通信协议进行实时信息传递。感知控制层硬件采用自研的基于嵌入式Linux的母猪电子饲喂站。该饲喂站使用RFID技术判断入站母猪身份信息,可以实现精准饲喂和母猪状态监测[11]。

1.2群养母猪管理系统架构

群养母猪管理系统的主要功能分為两方面。一是提供用户交互的界面,用户可以通过系统提供的交互页面实现对饲喂现场信息的掌握、饲喂计划的设置、生产活动的记录等活动;二是与底层的饲喂站硬件进行实时数据交流,实现对现场的监测和控制。整个管理系统使用SpringBoot框架开发,总体架构如图2所示。其中后台业务逻辑系统按照MVC的软件架构分为6层。

1) 基础环境层,是母猪管理系统运行的基础。本系统使用Tomcat容器作为运行基础,Nginx实现PC端前端的反向代理。与此同时,使用MySQL关系型数据库作为数据持久层环境,为后台数据操作提供持久化平台。

2) 数据持久层,主要实现后台对数据库的操作。持久化层使用MyBatisPlus和Druid,在建立与访问数据库高效连接的同时,将后台业务所需的查询语句封装成对应的方法,方便实际业务调用。

3) 业务层,旨在封装实现应用中各模块功能的业务逻辑,例如母猪注册、饲喂站设定、饲喂计划制定等。有效降低了程序的耦合度,提高了代码复用性。

4) 控制层,定义了与后台交互的数据传输接口。前端应用和饲喂站通过调用这些接口实现实际数据的交互。使用SpringMVC,结合应用前端传入的数据调用业务层;利用Netty设计高并发的数据通信模块,实现客户端与后台之间的连接保活以及全双工数据交互。

5) 前端UI层,主要实现用户与系统之间的信息交互。用户可以通过与这一层的交互管理母猪信息、设置饲喂站参数、调整专家系统决策策略。

6) 执行层,主要指母猪饲喂站。饲喂站在完成饲喂业务逻辑的同时会按照规定的通信协议与管理系统实时进行数据交互。

2数据库设计

群养母猪管理系统的建立离不开数据存储。本系统采用开源的MySQL数据库,用数据库连接池技术优化数据操作的同时,还根据实际情况设计了数据库结构。数据库的主要实体间的关系如图3所示。为实现母猪在群养过程中的管理,以及母猪状态和饲喂站状态的监控,设计了母猪表与饲喂站表。而为了实现生成饲喂计划的专家系统,还单独建立母猪品种和总体饲喂计划表。饲喂计划细则表根据母猪饲喂量的时效性需求而引入。该表通过记录母猪生产不同时期相对时间段的具体饲喂量,从而完善总体饲喂计划。整个数据库表结构设计遵循第三范式原则,其主要信息表如表1所示。这些表为建立母猪信息管理以及饲喂专家系统奠定了数据持久化的基础。

3功能模块设计

3.1系统功能模块设计

根据母猪群养的实际需求,本文设计了母猪群养管理系统的具体业务功能,包括猪场信息管理模块、饲喂站监控模块、饲喂专家系统模块以及系统管理权限模块。具体各系统模块内容如图4所示。

3.2模块功能具体实现

1) 猪场信息管理。图5为本系统模块中母猪信息管理功能的业务活动图,其他功能的实现与其类似。

母猪信息管理是实现母猪精细化饲喂的重中之重。但随着母猪数量的增加,此类的信息管理难度也会急剧上升。猪场信息管理模块就是实现母猪信息管理、统计和分析的模块。本文设计了便于实际饲养员进行信息管理操作的业务逻辑,只要完成母猪的入站注册和信息核对即可实现全体的信息管理。同时,该模块还会整合饲喂站上报的记录信息得出综合的统计图表,并展现给饲养员用户。这将有效减少其在母猪喂养工作中信息管理的难度,使对整个猪场的现状产生更为全面的把握。

2) 饲喂站监控。饲喂站监控模块主要实现饲喂站设备的参数设置、故障报警、状态监控、饲喂记录等功能。此模块以上文猪场管理的数据为基础,处理饲喂站状态数据并将其整理为图表样式,直观地展现给用户。用户通过此模块,可以完成对饲喂站的远程参数配置与状态监测。引入此系统后,饲养员不用到达现场便可得知饲喂设备的实际状态,大大降低了人员在猪舍的流动性和疫病传播的风险,减少了饲养员的工作强度。

3) 饲喂专家系统。专家系统是人工智能领域的一大研究方向,主要用于解决特定类型的问题。完整的专家系统是由知识库、动态库、推理机、解释器以及人机交互界面组成。参考其他领域专家系统的创建经验,饲喂专家系统的建立首先需要确定影响母猪饲喂量的因素以及具体的饲喂量计算模型。在实际生产过程中母猪饲喂量的决策需要考虑很多因素,本系统根据母猪的品种、怀孕胎次、生产周期、体况、季节环境来制定每天的饲喂计划,以此建立母猪饲喂量的计算公式:Fk=Fk0+δ1Fk1+δ2Fk2。其中Fk代表饲料k的饲喂计划量,Fk0表示一定品种母猪具体胎次的主饲喂量,Fk1与Fk2分别代表母猪不同体况下的k饲料调整量以及季节调整量,δ1与δ2分别代表这两种因素的调整参数。

设计的饲喂专家系统结构如图6所示。

本系统将MySQL数据库作为专家系统的知识库载体,将图3中的总体饲喂计划和饲喂计划细则表定义为母猪饲喂专家知识库;前端UI层提供维护专家系统的交互界面;结合系统后端服务层和持久层的架构,封装饲喂计划推理逻辑以及饲喂计划获取逻辑,实现推理机和解释器的功能。当饲喂站向后台发送饲喂计划请求时,后台系统会查询饲喂站下的具体母猪信息,饲喂专家系统将这些信息作为数据输入制定饲喂决策数据,再将该饲喂站中所有母猪的饲喂决策数据汇总成CSV文件,下发给饲喂站主控制器,从而实现专家系统控制下的母猪精准饲喂。

4) 系统权限管理。本系统采用较为主流的JSON Web Token(JWT)令牌校验的方式控制用户登录[15]。而本模块是管理登录用户权限的模块。系统管理员账号可以在这里控制不同用户对所有接口的访问权限。系统会据此判断开放给用户的前端组件以及通信端口。

4前端交互与接口设计

4.1前端框架设计

前端UI使用HTML+CSS+Javascript构建。本系统为简化前端代码中操作页面DOM元素的指令,整体使用Vue前端框架,将实际HTML中的DOM元素和代码中定义的数据model模型数据相绑定(即使用MVVM架构)。与此同时,前端页面与后端的通信部分借由Axios实现,前端根据上文设计的接口实现对系统数据的访问和操作。整个前端工作过程如图7所示。

前端项目根据具体功能细分Vue组件对象,实现业务解耦。除此之外,用户在操作前端界面时,多个组件间的相互切换渲染交由Vuerouter路由进行管理。与此同时,为了实现前端页面的权限访问,本系统自定义前置路由守卫。路由守卫会在用户初次登陆时调取后端系统中用户权限信息,并依照此信息操作路由中的组件注册,从而为不同权限的用户开放不同的系统界面。

4.2接口设计

前端页面主要通过HTTP协议请求数据,因此离不开此种协议下的接口设计。由于前端部署时使用Nginx,可以在实现前端高并发的同时解决前后端的跨域通信问题。所以,在前后端服务均部署在同一服务器的情况下,只要定义本地的接口地址便可满足前后端系统数据交流的要求。本系统定义服务端的配置端口为8101,遵循可寻址原则设计各种接口。这里以饲喂计划设置相关接口为例,如表2所示。從表中可以看出,同一模块的接口前4节url内容相同,即“http://localhost:8101/feedSystem/feedingPlan”。这样做有利于本文母猪管理系统的构建,便于开发管理。

5自定义实时通信协议设计

5.1通信架构设计

整个通信结构PipeLine结构示意图如图8所示。

根据系统架构设计,后端系统在处理前端Web界面的Http请求的同时,还要实现两种形式的实时通信。一种是饲喂站向后台发送请求时的Socket通信,另一种是后台向前端发送设备实时状态信息的WebSocket通信。为解决母猪饲喂站和前端同时带来的高并发连接,系统使用支持异步非阻塞通信的Netty框架。Netty主要基于epoll实现网络通信时的事件驱动[16]。这里构建PipeLine的链式结构处理通信数据。利用IdleStateHandler保证饲喂站连接的心跳监测;定义ChannelChoseHandler判断连接种类,根据连接类型分配WebSocket或者Socket连接的处理模块;HttpServerCodec、HttpObjectAggregator、WebSocketServerHandler处理用户Websocket连接的数据;CRCHandler、TcpDecoder、TcpDealHandler实现饲喂站信息的校验、解码并判断通信信息的具体命令类别,从而进入相应的信息处理业务逻辑。

5.2通信协议设计

为了提高饲喂站与服务器之间交互的实时性,Socket连接采用了自定义的通信协议[17],通信帧格式如图9所示。每个数据帧大小共计n+8个字节(byte)。在实际通信过程中定义数据帧头7E表示数据开始;分配1字节作为消息命令头;1字节为帧序列号;3字节饲喂站编号。实际请求的字段内容会根据命令定义的具体格式分别记录于n个单字节字段之中。最后2字节用于数据CRC校验。不同命令头设计如表3所示。

每个Socket连接的命令发起方发出信息时,应答方需要根据其内容回复确认帧。如果在规定时间内没有收到应答,命令发起方会持续发送数据直至应答方确认。在这种机制下,既能实现饲喂站向后台传递实时组件信息、调取圈内母猪基本信息,又能增强后台向下发送设置指令的可靠性。

6系统试验

6.1系统部署环境

系统运行在国内某云服务运营商提供的入门级云服务器实例之中。通过其自带的公网IP地址,在固定的监听端口监听饲喂站主控的连接请求。服务器中部署安装系统运行所需的serverlet容器、数据库软件等环境。其具体配置如表4所示。

母猪饲喂站安装在重庆市合川区的某试验场。饲喂站直接使用4G路由器接入互联网。前后选择五头生产母猪作为群养母猪的实验对象。实验母猪在经过初期的训练之后,开始了本系统的实际使用实验。饲喂专家系统的知识库由现场饲喂专家设定,饲喂站接收的饲喂计划重置时间设为每日00:00。试验时间从2021年1月至今。

6.2交互界面测试

系统部署完成之后,用户直接访问公网IP下的8080端口即可进入Web页面。登陆系统的用户可在前端页面进行母猪注册、转栏、产仔记录等操作。饲养员不仅能通过前端界面查询饲喂记录以及母猪身体状态,系统还会向用户提供各种异常报警(包括饲喂站设备异常以及母猪体温进食异常)。实际前端交互界面经过日常使用验证,可以完成业务需求。

6.3饲喂专家系统测试

饲喂专家系统是实现母猪精细化饲喂的核心部分之一。为了避免断网等意外故障对整个饲喂系统的影响,专家系统每日00:00点会在服务器存储环境中自动生成连续两日的饲喂计划CSV文件,以便饲喂站调用。这里根据饲喂专家知识库的内容,结合试验母猪的实际状态输入,核对了CSV文件中的决策结果。经过多日的测试,基于饲喂专家系统制定的饲喂计划完全满足母猪日常需求。

6.4饲喂站通信测试

饲喂站与后台的通信是整个系统运作的纽带。为了验证后台系统在高并发状态下的可靠性,这里采用安装了jMeter工具的测试机模拟大量饲喂站连接[18]。测试机采用安装Java1.8的计算机,使用4G路由器将其接入外网环境。将jMeter工具定义的线程看作是饲喂站的模拟,以饲喂站状态报告的命令帧为测试数据进行数据交互。记录不同并发量下的连接建立时间、响应回复时间以及相应信息误差率。测试得到此时的系统响应测试结果如图10与表5所示。

试验数据表明,在控制服务器硬件配置与网络环境不变的前提下,当饲喂站并发量的上升到一定量时,随着其数值的上升,会导致数据传输异常率、系统响应、连接用时的增加。由此判断是系统后台服务器的配置(这与云服务器的网络带宽、核心性能、内存大小有关)造成了数据传输的瓶颈。这里将开始出现性能瓶颈的并发量数看作系统通信性能的拐点。可以看出这个拐点在120~140之间,因此可以認为保证后台通信稳定的饲喂站最大并发量为120,连接平均用时和平均响应时间分别为80.90 ms和343 ms。按照每个群养饲喂站的最大母猪容量(45头)进行估算,本条件下的理论最大母猪容量为5 400头母猪。完全可以满足中大型猪场的母猪饲养需求。因为此并发瓶颈与云服务器性能有关,如果母猪养殖单位需要更大并发量,适当提升云服务器配置即可。

7结论

1) 本文基于SpringBoot+Vue框架,设计出了一套切实解决母猪群养精准管理问题的后台管理系统。系统按照前后端分离的MVVC结构进行设计,将后端的业务代码、控制代码和持久化代码分离,有效降低了程序的耦合度;前端使用Vue.js实现模型与虚拟Dom元素间的绑定,用事件驱动页面渲染,提高了前端动态性能。

2) 同时,该系统还使用Netty框架,自定义了饲喂站和后台间的通信协议,可以保证在实际的4G网络环境下长时间、多饲喂站的实时并发通信。试验表明,实验环境下的后端服务在数据大量并发的情况下,产生通信瓶颈的并发量在120~140之间,平均连接用时和响应时间分别为80.90 ms和343 ms。即可以实现对120台饲喂站设备的稳定通信控制。足以满足大型活猪生产单位的大规模母猪生产需求。

3) 经过一年左右的试验,系统不仅实现了对饲喂站设备的状态监控,还实现了母猪信息管理和饲喂专家系统功能。这对于养猪产业智能化,饲喂设备物联网领域有着重要的现实意义,也对“双疫”影响下广受关注的人畜分离的实现提供了技术支持。

参考文献

[1]Broom D M, Mendl M T, Zanella A J. A comparison of the welfare of sows in different housing conditions [J]. Animal Science, 1995, 61: 369-385.

[2]Choe J, Kim S, Cho J H, et al. Effects of different gestation housing types on reproductive performance of sows [J]. Animal Science Journal, 2018, 89(4): 722-726.

[3]Liu Xin, Song Pengkang, Yan Hua, et al. A comparison of the behavior, physiology, and offspring resilience of gestating sows when raised in a group housing system and individual stalls [J]. Animals, 2021, 11(7): 2076.

[4]Min Y, Choi Y, Kim J, et al. Comparison of the productivity of primiparous sows housed in individual stalls and group housing systems[J]. Animals, 2020, 10(11): 1940.

[5]雷江. 母猪饲养管理技术要点[J]. 养殖与饲料, 2021, 20(10): 39-40.

[6]王振勇, 王丹, 胡国清, 等. 不同饲喂模式对妊娠母猪生产性能的影响[J]. 饲料工业, 2018, 39(16): 28-31.

Liangxi Huizi, Chen Bingqi, Jiang Qiuhui, et al. Detection method of navigation route of corn harvester based on image processing [J]. Transactions of the Chinese Society of Agricultural Engineering, 2016, 32(22): 43-49.

Wang Zhenyong, Wang Dan, Hu Guoqing, et al. Effect of the different feeding patterns on the production performance of pregnant sows[J]. Feed Industry, 2018, 39(16): 28-31.

[7]彭健. 丹麦猪营养与管理技术及其对中国养猪业的启示[J]. 饲料工业, 2016, 37(21): 1-8.

Peng Jian. Swine nutrition and management in Denmark and their enlightenments on Chinese pork production [J]. Feed Industry, 2016, 37(21): 1-8.

[8]陈冲, 刘星桥, 黄邵春, 等. 国内外家猪精细养殖研究进展[J]. 江苏农业科学, 2019, 47(06): 1-4.

[9]熊本海, 杨亮, 郑姗姗, 等. 哺乳母猪精准饲喂下料控制系统的设计与试验[J]. 农业工程学报, 2017, 33(20): 177-182.

Xiong Benhai, Yang Liang, Zheng Shanshan, et al. Design and test of precise blanking control system for lactating sows [J]. Transactions of the Chinese Society of Agricultural Engineering, 2017, 33(20): 177-182.

[10]杨亮, 裴孟侠, 肖强, 等. 母猪发情监测装置的设计[J]. 现代农业装备, 2019, 40(5): 40-43.

Yang Liang, Pei Mengxia, Xiao Qiang, et al. Design of estrus monitoring device for sow [J]. Modern Agricultural Equipment, 2019, 40(5): 40-43.

[11]黄昊, 刘俊灵, 胡腾达, 等. 智能化母猪饲喂控制系统设计与试验[J]. 中国农机化学报, 2021, 42(10): 78-86.

Huang Hao, Liu Junling, Hu Tengda, et al. Design and experiment of intelligent sow feeding control system [J]. Journal of Chinese Agricultural Mechanization, 2021, 42(10): 78-86.

[12]冯跃进, 韩华, 王浚峰, 等. 母猪智能化管理系统(ESF Compident)的应用前景[J]. 黑龙江畜牧兽医, 2015(21): 110-113.

Feng Yuejin, Han Hua, Wang Junfeng, et al. Application prospect of COMPIDENT electronic sow feeding[J]. Heilongjiang Animal Science and Veterinary Medicine, 2015(21): 110-113.

[13]熊学振, 杨春, 马晓萍. 中国畜牧业发展现状与高质量发展策略选择[J]. 中国农业科技导报, 2022, 24(3): 1-10.

Xiong Xuezhen, Yang Chun, Ma Xiaoping. Situation of Chinas animal husbandry development and highquality development strategy selection [J]. Journal of Agricultural Science and Technology, 2022, 24(3): 1-10.

[14]吴凡. 妊娠母猪的科学饲养及产前护理[J]. 新农村, 2021(10): 29-30.

[15]李凯. 基于JSON Web Token的无状态账户系统的设计[J]. 现代计算机(专业版), 2016(16): 59-62.

Li kai. Design of stateless account system based on JSON web token [J]. Modern Computer, 2016(16): 59-62.

[16]毛文华, 韩少云, 赵博, 等. 基于Netty和Marshalling的青饲机工况远程监测系统研究[J]. 农业机械学报, 2020, 51(8): 145-151.

Mao Wenhua, Han Shaoyun, Zhao Bo, et al. Study of remote monitoring system for silage harvester working condition based on netty and marshalling [J]. Transactions of the Chinese Society for Agricultural Machinery, 2020, 51(8): 145-151.

[17]刘俊灵, 石军锋. 智能母猪饲喂系统的高效可靠数据通信协议设计[J]. 中国农机化学报, 2020, 41(8): 185-190, 210.

Liu Junling, Shi Junfeng. Design of efficient and reliable data communication protocol for intelligent sows feeding system [J]. Journal of Chinese Agricultural Mechanization, 2020, 41(8): 185-190, 210.

[18] 張亿军. JMeter测试应用研究[J]. 信息技术与信息化, 2021(10):61-64.

猜你喜欢

专家系统
TCDS地面专家系统的应用和存在问题
数控机床液压系统故障诊断专家系统的研究
水中兵器故障诊断方法研究
FCCU精馏塔故障诊断专家系统的研究与开发
基于LabVIEW和Access的陀螺仪组故障诊断专家系统
火电机组汽轮机故障诊断方法总结研究