食品安全电子溯源中间件建设方案研究
背景及意义
目前,我国食品电子溯源系统多是基于单个企业实际需求定制开发的内部溯源系统,满足本企业溯源需求尚可。由于多个部门通过不同渠道在不同区域推行不同系统,大多数企业但较难与其他部门共享溯源信息,形成溯源区域壁垒。
通过食品安全溯源中间件的实现,一方面,中间件起到了承上启下的作用,解决了企业食品溯源数据的异构性,规范了企业上传食品安全溯源数据的格式,降低了企业上传食品溯源数据的冗余性和杂质,提高了企业上传食品溯源数据的格式和规范,为国家食品监管的各类应用分析提供底层的数据支持;另一方面食品安全溯源中间件的实现,可以屏蔽不同企业ERP系统的差异性,满足企业已建食品溯源系统接入国家食品安全溯源监管平台的需求,减轻已建食品溯源系统企业为了适应国家食品监管平台要求而进行ERP系统个性化改造的成本和负担。
食品安全电子溯源中间件国内外研究
RFID中间件技术对于解决食品安全电子溯源中硬件设备数据采集、不同应用系统数据异构、上层应用系统对底层数据调用等起到关键性的作用,为食品安全电子溯源不同类型数据库的建立提供了强大的软件支持。现在RFID中间件已经广泛应用于食品安全电子溯源的乳品、肉制品、白酒、粮食等领域,为每个食品生产、流通和销售环节的追溯记录起到了关键的作用。
最早提出RFID中间件的是美国,其中代表性产品主要是:BEA的Web Logic RFID Edge Server、Compliance Express、Enterprise Server、基于Savant的RFID中间件和IBM的Web Sphere RFID DeviceInfrastructure 、Premises Server。
BEA RFID中间件产品的介绍主要是对数据采集中间件(Web Logic RFID Edge Server)架构和功能的说明,除了包含IBM RFID中间件产品边缘层的功能,还拓展了数据筛选、数据与现有平台无缝集成等功能。
美国麻绳理工学院自动识别中心在2003年出台了EPC Network相关规范,其中提出把Auto_ID Savant specification1.0作为Savant中间件的相关规范。规范中明确了相关的接口、运行机制和Savant内部模块。
IBM RFID中间件产品架构主要可分为边缘层和集成层。边缘层对接各类硬件设备,实现不同RFID硬件设备的管理、信息的读取和数据过滤,以及产生ALE(应用事件管理协议)事件上传至到集成层。集成层则实现对各类ALE事件的整合和调度分配。
郭洪役、郦苏丹对IBM和BEA的RFID中间件产品的总体架构分别进行了详细的介绍,并对两种产品的性能进行了对比分析,为不同应用场景下RFID中间件产品的选择提供了依据。由于IBM RFID中间件产品和BEA RFID中间件产品都是一套完整的产品集,作者从整体性能对两个产品进行了对比分析,主要不同点集中在WEB服务器支持、缓存重用性和扩展性等方面。
梁嘉、王东指出所有的RFID中间件都应该遵守应用层事件(ALE)标准的接口规范,针对ALE标准在满足应用系统定义获取底层RFID数据的时间、地方、周期、过滤规则等基本功能的基础上,如何为应用系统提供快速可调用的接口方式,提出了一种基于OSGI(Open Systems Gateway Initiative)框架的可重构的ALE引擎实现方式,采用事件驱动方式实现对各类触发器的统一管理,降低各模块之间的耦合度,增强引擎的可扩展性和可维护性。
王冰、陈庭贵为了提高上层应用调用底层设备通讯数据的灵活性和可靠性,构建了Tgent中间件服务程序,和上面梁嘉、王东提出的思想基本一致,只不过采用实现方式不太相同。
需求分析
为了解决已建企业ERP系统(比如金蝶、用户、SAP、oracle等ERP)与IOTIS(物联网信息服务平台)的数据对接问题,如何减少已建溯源系统企业的改造负担,实现各异构溯源数据的统一清洗、转换、处理、传输和存储等,为IOTIS提供统一规范化的食品安全溯源数据,减少上层IOTIS数据处理压力。
根据食品监管部门对食品安全电子溯源的数据需求,开发的数据中间件需要满足下述功能要求:
(1)满足不同类型企业ERP溯源异构数据的动态接入
在食品生产环节中,由于不同企业ERP系统不尽相同,有的是用友、金蝶、Oracle等,不同的ERP系統企业溯源数据格式存在差异,这就要求中间件能够支持异构数据的清洗、处理、转换等,规范不同企业上传的溯源数据格式,为IOTIS提供其所需的溯源数据。且对于上层应用系统,食品安全电子溯源中间件应该具有整合和处理异构数据的能力,实现异构数据间的互联互通。“此外,中间件对于上层应用系统不仅具有汇总异构数据的功能,而且还具备处理异构数据的功能,从而能够完成异构数据之间的通信。”
(2)满足不同类型企业ERP系统间异构数据的可靠性接入
在食品企业的实际生产过程中,因为不同的食品行业相关的企业在实际生产活动中多多少少都会存在着异构数据,所以这就决定了中间件除了高校稳定的数据传递机制之外,更需要提供统一的数据访问接口,从而实现了能够统一传输异构数据,因而保证了数据发送的准确性。至于消息中间件能够实现对异构数据的统一发送,是因为它支持以形式的数据跨平台发送,除此之外,还可以支持异步通信,因而在一定程度上增加了数据发送的响应效率。
(3)适应频繁的数据交互
在面向不同企业的食品溯源系统,上传的溯源数据会出现与中间件频繁的数据交互,在企业ERP系统和iotls之间的过滤机制,主要对不同企业ERP系统上传的食品溯源数据进行过滤,剔除重复和无用数据,减少iotls数据处理压力,提高数据处理效率。
中间件设计方案
根据已建食品安全电子溯源系统企业上传溯源数据的特点,针对企业内部已运行了追溯系统的企业,为了不增加企业负担,有效利用已有的数据资源,有条件的企业可以根据系统对企业数据要求,对原有系统进行改造,达到本系统建设要求,并向公共平台推送数据。特针对已建溯源系统或者ERP系统的企业开发此中间件。
要求溯源企业提供企业ERP管理系统的相关溯源需要的数据接口,包括有:企业基本信息上传接口、原料进厂信息上传接口、原料自检信息上传接口、投入产出信息上传接口、出厂检验信息上传接口、出厂销售信息上传接口、不合格产品处理信息上传接口、产品召回事件信息上传接口、产品召回跟踪信息上传接口、批次、单品信息上传接口等。
iotIS建设中数据格式标准、标识数据内容标准、数据库服务标准、数据接口标准都是按照国际标准进行制定的,而溯源企业内部管理系统ERP是无法直接对接。为减轻企业的开发成本,本文档的目的是制定食品生产企业ERP系统与中间件数据交换的接口规范,满足食品电子溯源网络数据库(iotIS)对数据交换的要求。
中间件软件的总体结构如图所示:
本项目中间件分为三个层次,分别为:食品安全电子溯源中间件接口服务层,食品安全电子溯源中间件数据处理层,食品安全电子溯源中间件数据通信层。
食品安全电子溯源中间件接口服务层面向多样的企业自建ERP系统或者溯源系统,满足对不同技术和接口方式的封装,对上一层数据传输提供了统一的通信接口。且接口服务层面向多样的企业ERP系统,数据格式各异,以规范为标准,将对不同企业上传溯源数据格式的支持封装为对异构数据的支持以为单位进行开发,完成了中间件对不同企业溯源数据动态接入的需求。
食品安全電子溯源中间件数据处理层包含数据过滤和数据格式的统一。冗余数据过滤是建立在企业ERP系统和iotls之间的过滤机制,主要对不同企业ERP系统上传的食品溯源数据进行过滤,剔除重复和无用数据,减少iotls数据处理压力。数据格式的统一是通过调用相应的组件进行数据解析和转换,将不同ERP系统上传的原始溯源数据进行清洗转换和处理,再根据上层iotIS所需要的企业基本信息、原料进厂信息、原料自检信息等进行数据转换和格式规范化处理,然后将规范化之后的数据提交至数据通信层,再对数据进行封装和封发。
食品安全电子溯源中间件数据通信层主要实现中间件和iotIS系统间数据的同步或者异步通信。
本方案中的食品安全电子溯源中间件与RFID中间件还存在一定的不同,主要是满足食品生产企业与食品安全电子溯源物联网信息数据库服务(iotIS)数据交换的需要,满iotIS系统对数据交换的要求。中间件向下对接已建企业不同的ERP或者溯源系统接口,向上对接IOTIS系统,满足食品溯源数据的传输和交换,实现异构数据的统一传输,进一步规范企业溯源数据和监管需求溯源数据之间的交互。