基于微服务的防伪识别微信小程序
Anti-Counterfeiting Identification WeChat Mini Program Based on Microservices
DOI: 10.12677/CSA.2024.142029, PDF, HTML, XML, 下载: 44  浏览: 134 
作者: 陈子龙, 曹 鹏:北京印刷学院,高端印刷装备信号与信息处理北京市重点实验室,北京
关键词: 微服务架构防伪识别微信小程序印刷量子点Microservice Architecture Anti-Counterfeiting Identification WeChat Mini Program Printed Quantum Dot
摘要: 目的:在数字防伪识别领域应用端,针对传统防伪识别APP存在内部耦合性低、更新迭代成本大、软件体积大、防伪效果差及不适应当下用户使用习惯等问题,设计并实现一款基于移动手机和云端服务的防伪识别微信小程序解决。方法:防伪识别微信小程序采用微服务架构软件设计模式,采用全自动扫描形式对印刷量子点防伪图像进行识别,系统中各服务相互独立且职责单一。结果:具有低耦合、高可用、高性能效果,体积小、无需下载、跨系统等优点,识别速度在2s以内,识别率在90%以上。结论:可提供高体验性的防伪、溯源、防窜、信息增值等多重服务,成本低,安全性高,可广泛用于商品包装、票据等领域,具有极强的实际应用价值。
Abstract: Objective: The work aims to design and implement an anti-counterfeiting identification WeChat mini program based on mobile phones and cloud services to solve the problems of traditional anti-counterfeiting identification APP, such as low internal coupling, high cost of updating and iteration, large software volume, poor anti-counterfeiting effect and inadaptability to current user hab-its. Method: Anti-counterfeiting identification WeChat mini program adopts the design mode of microservice architecture software and uses the form of automatic scanning to identify the printed quantum dot anti-counterfeiting images. Each service in the system is independent and has a single responsibility. Results: It has the advantages of low coupling, high availability, high performance, small size, no need to download, cross-system, etc. The recognition speed is less than 2s, and the recognition rate is more than 90%. Conclusion: It can provide multiple services with high experience, such as anti-counterfeiting, traceability, anti-channeling, information value-added, etc., with low cost and high security, and can be widely used in commodity packaging, bills and other fields, with strong practical application value.
文章引用:陈子龙, 曹鹏. 基于微服务的防伪识别微信小程序[J]. 计算机科学与应用, 2024, 14(2): 288-297. https://doi.org/10.12677/CSA.2024.142029

1. 引言

据世界贸易组织统计,受假冒伪劣产品影响的世界市场已达3000亿美元,假冒伪劣产品的年交易额已占世界贸易总额的10%。在中国,假冒伪劣产品的规模是3000~4000亿人民币,假冒伪劣产品已成为当今市场的关键性难题 [1] [2] 。纵观当前防伪识别软件,普遍存在两类问题。一是从防伪识别软件的普适性与实用性看,随着互联网技术的飞速发展与移动设备的普及,相比于专有识别设备,移动手机具备简便,成本低的优点,成为普通用户的主流选择,但传统防伪识别APP存在耦合性高、迭代不便、安全性低、体积大、无法跨系统等缺陷 [3] 。二是从数字防伪效果上看,如二维码等标签防伪图像存在抗复制性差问题,难以达到很好的防伪效果,容易被不法分子假冒 [4] 。如何解决以上两大问题是防伪识别软件技术发展中的一个极其重要的领域。

本文创新点是采用微服务架构解决单体式防伪识别软件痛点,进行了防伪识别的架构设计,引入微服务组件进行实现;并且以微信小程序的形式进行应用,解决防伪识别APP固有缺陷;在防伪图象上基于印刷量子点图像进行识别,解决抗复制性问题,达到良好的防伪效果,旨在提供一款便携、高效高可用、安全的防伪识软件。

2. 国内外研究现状

二维码在当下已被广泛普及,商品包装利用二维码结合密码学加密算法或数字水印可以较低的成本达到一定防伪效果,但该类方法侧重在信息获取后进行数字加密保护或验证,并且保护程度有限,而二维码本身极其容易被复制,防伪效果差 [5] [6] ,区块链防伪技术本质上同样如此,更多的是对前者的延申 [7] 。NFC技术是一种近距离无线通信技术,通过手持NFC移动设备产生无线射频电场,激活商品上携带的NFC标签进行防伪验证,可有效对商品进行防伪溯源 [8] ,但由于NFC技术实现需要额外硬件支持,并且标准和生态不统一,导致NFC防伪技术在功能拓展中隐形成本高,难以大面积推广 [9] 。随着人工智能的发展,将指纹或人脸特征等信息融入防伪图像,通过深度学习的方法判断其检测从而实现防伪效果 [10] [11] ,该类方法在防伪识别效果和速度上有着较大优势,缺陷是只是图像分类,无法承载更多有效信息,在商品溯源上有着明显短板。目前防伪识别软件多为APP形式,且多为单体式或单体式集群架构,北京印刷学院曹鹏教授团队提出印刷量子点技术 [12] 可有效抗复制且能承载复杂信息的防伪图像,其识别APP基于微服务架构 [13] ,但具有APP固有的体积大、需下载、无法跨系统等缺点。

3. 相关技术

3.1. 微服务架构

防伪识别微信小程序采用微服务架构,将软件应用程序划分为一系列小型的、松耦合的服务模块,每个模块运行在它自己的进程中,通过轻量级的通信机制相互通信,从而组合成一个完整的应用系统 [12] 。将业务划分为多个服务,包括扫码服务、产品识别服务、产品绑定服务、产品信息服务、登录验证服务等,与传统的单体式架构相比,在应用的升级与迭代上极大的减少了重复工作,同时当业务愈加复杂时有利于增强系统稳定性。

3.2. 印刷量子点技术

印刷量子点是用于记录信息的不可再分的最小印刷(或打印)成像单元,通常为单个网目调网点。半色调信息隐藏技术是一种通过修改原始图像的半色调值来嵌入待隐藏信息的二进制位的信息隐藏技术。印刷量子点防伪图像是将图像标签、文本或网址等待隐藏信息通过数据处理,形成伪随机化的网点,通过半色调加网的形式植入到载体图像中,使这些信息在满足图像显示效果的基础上实现信息隐藏和信息抗复制的防伪功能 [13] 。该技术可以应用于各种领域,如金融、国防、医疗等以确保机密信息的安全传递和保护。同时,这种技术也可以应用于商品防伪、身份验证等方面,为社会带来更多的便利和安全。

本文小程序可将该技术与企业实际需求相结合,编制含有企业个性化Logo的防伪标签图像用于印刷在包装上,防伪标签图像内隐藏着商品编号信息,通过微信小程序扫码可直接快速识读,载体图像可自主定义,以满足个性化需求。

3.3. 微信小程序云开发

防伪识别微信小程序采用基于Serverless架构 [14] 的云开发模式,配有云函数、数据库、存储管理等云服务等一站式开发服务实现短信验证与发送服务、身份验证服务、数据安全存储、数据加密等,将服务部署与运营环节进行云端托管 [15] 实现小程序的快速上线与更新迭代。小程序部分缓存数据采用微信云数据库,利用微信云数据库特性增强数据的安全性访问、检索速度、自动化备份、异常操作日志等性能。

4. 系统架构设计

防伪微信小程序基于微服务架构将系统设计分为四层,分别为访问层、接口层、服务层、存储层。系统架构如图1所示。

4.1. 访问层

访问层主要用于显示界面和用户进行交互,并且将用户操作的数据接收记录下来,通过请求的方式发送至后台服务模块。访问层的界面采用百分比布局结合Flex布局技术实现了良好的界面适配,能对不同手机屏幕尺寸进行自适应的显示调整,并且达到美观的展示效果。访问层的核心功能是对用的扫码需求进行实现,实现了还原微信扫描效果,方便用户的扫描操作,扫描过程中采用成像技术,实现物体更细微的信息的捕捉,同时对图像清晰度有一定保证。

4.2. 接口层

当小程序用户积累量达到一定大小时,可能出现大量用户同一时间段访问后台服务,此时接口层可能需要承载大量来自小程序的网络请求,单个服务器已不再能满足负载需求,或当业务升级得更为复杂时,不同服务部署可能部署在不同服务器,并且用户的一个请求可能需要不同服务器上的服务配合完成,如何对请求与服务进行高效管理变得尤为重要。为此,设计一个接口层,所有请求在此进行处理。采用Nginx进行负载均衡,Nginx是一种高性能的HTTP和反向代理服务器,有效减轻了服务器的压力。Kong是一个开源分布式的API网关,提供了流量管理、身份认证、权限管理、熔断、代理等多种功能,使用Kong用作API网关,用于身份以及权限验证,避免用户越过接口层直接访问服务进行多次验证的效率问题。

Figure 1. System microservice architecture design diagram

图1. 系统微服务架构设计图

4.3. 服务层

微服务架构中的服务层主要负责实现和提供微服务,将业务按照一定规则进行拆分,即一系列小型、独立的业务功能单元,服务之间通过消息总线进行通信,通过任务控制器完成服务之间的协作控制。本文将小程序防伪业务分解为四个核心服务,分别为扫码服务、识别服务、绑定服务、信息服务,每个服务专注于处理特定的业务逻辑,以提高系统的可维护性、可扩展性和灵活性。扫码服务为距离用户最近的服务,将用户在微信小程序扫描获取的图像等数据进行接收以及处理,处理主要对扫码图像进行预处理。由于图像决定整个流程后续结果,一个用户一次请求服务对应一个图像数据,考虑到多用户并发使用情况下,一个用户的请求可能返回其它用户的数据,为了避免该状况,在微信小程序授权时,获取用户的微信号,同时生成一个随机数,将二者与uuid组合成一个唯一标识符进行对应匹配,并且使用多线程,以提高系统的并发性,同时使用适当的锁机制防止阻塞与结果失配。

识别服务主要对商品隐藏信息进行识别,由于涉及大量图像算法,且需要一些外部库的支持,为了提高后台效率,识别服务的具体实现封装成了外部库,只在后台调用,同时封装为静态方法避免重复调用带来的效率低下。扫码服务与识别服务相互配合组成一个服务集群,达到用户在防伪识别方面的需求。识别服务可对多种场景下的防伪标签进行识别,下图2为几种代表情况图。表1为不同代表情况下识别结果数据,并且和同类防伪识别APP [13] 识别率进行对比,在识别率和识别速度上都有着较大提升。

a 旋转 b 正常 c 畸变 d 旋转加畸变e 抖动 f 光线不足

Figure 2. Identify representative images of different situations

图2. 识别不同情况代表图

Table 1. Identify data results for different situations

表1. 不同情况识别数据结果

绑定服务即实现“一物一码一用户”功能,将商品与防伪图像和扫描该商品上防伪图像的用户唯一绑定起来。用户扫描后可以进行可选项绑定,绑定后该个商品其它用户再次进行扫描,将无法查看商品编号以信息,若无法查看,则表示该个商品已经有人扫描使用过,从而达到防伪的目的。

信息服务则将与商品编号对应的相关产品信息显示给用户,同时具有商品分类的功能,经过合作企业授权,通过扫描微信小程序的防伪图像还可直接进入编号对应的企业官网,实现进一步的直接服务。绑定服务和信息服务组成服务集群,主要对接信息溯源层面。服务组件监控和保护上,为了防止一个服务出错而影响其它服务的使用,采用熔断保护机制,服务之间的协作具有安全性验证,使用日志组件用于监控和记录文件系统中的操作,以便监视和诊断系统性能和安全问题。服务组件治理和配置上,采用Eureka微服务组件用于服务的注册与发现,并且可进行统一配置管理。整个服务层采用Docker、consul、Kubernetes等容器化技术将应用打包成独立的容器,实现在不同环境中运行,更好地实现资源的自动化管理和调度,提高应用程序的可扩展性和稳定性,并降低系统的运维成本。

4.4. 存储层

存储层根据所产生的数据类型进行分别存储,小程序扫描的防伪图像是一种非结构化数据,采用分布式文件系统HDFS (Hadoop Distributed File System)存储,对于扫描结果采用redis数据库用于缓存,提高运行速度,其它数据使用MySQL数据库。

5. 印刷量子点防伪方案设计

印刷量子点技术生成的可自主定义的点阵码防伪标签是整个防伪微信小程序的核心部分,作为验证商品的真伪以及溯源的主要依据。防伪图像的识别对图像数据信息完整性要求较高,在保证防伪识别速度的前提下,加入SHA-256加密技术,保障数据在网络传输过程中被篡改与劫持导致影响最终防伪识别结果。印刷量子点防伪图像生成后将其印刷到商品包装上,通过防伪微信小程序扫描进行云端快速识别。具体流程如下图3所示。

Figure 3. Anti counterfeiting label application solution

图3. 防伪标签应用方案

用户进入微信小程序后有一个首次授权机制,通过后进入主界面启动扫码,在扫描防伪标签过程中有一个高清化处理和自动变焦处理,获取图像数据进行SHA-256哈希单向加密,防止数据被篡改和劫持影响识别结果,云端拿到数据后进行相同的哈希算法比较哈希值,对于验证不通过的加入报警记录,通过安全判断将信息提示给用户,对于验证通过后的数据进行分类存储,缓存和普通存储,然后进行图像预处理并调用算法对点阵信息提取和译码,得到商品编号后进行可选绑定验证,用户A绑定产品a后只有用户A才能对其扫码,达到防伪目的,之后可衍生增值服务或者信息溯源服务。

6. 系统实现与测试

系统基于微服务架构包含多个微服务,实现对带有防伪标签商品的识别。其中最核心的业务接口为扫码识别接口,用户可通过微信小程序对商品标签进行扫描,请求该接口服务完成防伪校验、信息查询、产品绑定、增值服务等功能。

6.1. 功能展示

用户登录微信小程序完成授权后点击启动按钮对商品标签进行扫描,系统信息传至云端,从而完成扫码服务,如图4所示。

a 登录授权 b 扫描标签 c 信息展示

Figure 4. WeChat mini program scan service

图4. 微信小程序扫码服务

云端收到数据信息后进行识别,将隐藏的不同商品编号提取后对后台商品库存进行校验后,用户可查看对应产品信息,并且可对该产品进行绑定,绑定后只有该用户可以扫描查看该产品信息,实现“一物一码一用户”,不法分子对标签进行复制则无法识别隐藏信息从而实现防伪功能,并且基于以上服务可衍生出一系列增值服务,如图5所示。

a 用户绑定 b 他人无法扫描 c 增值服务

Figure 5. Binding and value-added services

图5. 绑定与增值服务

6.2. 系统测试

根据微信小程序官方测试平台“We分析”对防伪识别小程序运行性能报告可知页面切换耗时和总启动耗时均低于同类小程序均值,系统运行速度良好,如图6所示。

Figure 6. System running speed mini program official backend test report

图6. 系统运行速度小程序官方后台测试报告

根据微信小程序官方测试平台“We分析”对防伪识别小程序稳定性能报告可知,网络请求耗时−1 ms,网络请求错误率−100%,异常退出率暂无,性能评估优秀,可稳定支持实际应用,如图7所示。

Figure 7. Official test report on online system stability mini program

图7. 线上系统稳定性小程序官方测试报告

基于目前市场三种手机系统测试,测试小程序在三类代表机型及对应系统上的正常使用率,测试数据及结果如下表2所示。

Table 2. Identify data results for different situations

表2. 不同手机及系统兼容性测试结果

采用专业压力测试工具Postman分别在60、40、20秒内模拟发送10万条请求至后台如下图8所示,响应时间均未超过1.6秒,可支持一定规模并发量,能够满足多用户并发使用,具有较强的实际应用能力。

Figure 8. Line chart for concurrent performance testing

图8. 并发性能测试折线图

7. 结束语

防伪识别微服务架构设计通过引入微服务组件进行实现,实现高性能高可用、低耦合的目的,可为未来升级迭代做铺垫,并且以微信小程序的形式进行应用,解决防伪识别APP固有缺陷,在防伪图象上基于印刷量子点图像进行识别,提高防伪效果。实际应用上,用户只需打开微信小程序,扫描商品包装上的防伪标签即可实现防伪溯源、信息服务、绑定服务、增值服务等多重功能。未来将继续完善架构并且提高并发性能,同时对扫描体验进行优化,加入训练后的基于YOLO-V5的深度学习进行识别分类,以应对在各种复杂场景下的识别效率。

参考文献

[1] 郑火国. 食品安全可追溯系统研究[D]: [博士学位论文]. 北京: 中国农业科学院, 2012.
[2] 林延昌. 基于区块链的食品安全追溯技术研究与实现[D]: [硕士学位论文]. 南宁: 广西大学, 2017.
[3] Abgaz, Y., McCarren, A., Elger, P., et al. (2023) Decomposition of Monolith Applications into Microservices Architectures: A Systematic Review. IEEE Transactions on Software Engineering, 49, 4213-4242.
https://doi.org/10.1109/TSE.2023.3287297
[4] Wang, T.Y., Zheng, H., You, C.H., et al. (2023) A Tex-ture-Hidden Anti-Counterfeiting QR Code and Authentication Method. Sensors, 23, 795-795.
https://doi.org/10.3390/s23020795
[5] 苏桐. 基于MD5加密的二维码学历防伪系统研究[J]. 信息记录材料, 2023, 24(3): 195-198.
[6] 毛新光. 基于二维码图像的数字水印算法的研究[J]. 网络安全技术与应用, 2022(2): 29-31.
[7] Lee, H. and Yegon, C. (2021) Blockchain-Based Traceability for Anti-Counterfeit in Cross-Border E-Commerce Transactions. Sustainability, 13, Article 11057.
https://doi.org/10.3390/su131911057
[8] 孙惠芳, 张俊, 黎海凌. 基于NFC技术的防伪溯源系统设计[J]. 计算机时代, 2022(5): 134-137.
[9] 曾之理. 手机NFC功能为什么没有大面积普及[J]. 大众用电, 2022, 37(10): 72.
[10] 沈超, 何希平. 基于纹理特征增强和轻量级网络的人脸防伪算法[J]. 计算机科学, 2022, 49(S1): 390-396.
[11] 王海霞, 潘栋, 梁荣华, 等. 基于注意力残差网络的OCT指纹防伪方法[J]. 计算机辅助设计与图形学学报, 2022, 34(3): 392-402.
[12] 曹鹏, 王育军. 印刷量子点信息编码方法以及解码方法[P]. CN202011517506.1. 2023-07-07.
[13] 张博儒. 基于微服务的防伪溯源系统[D]: [硕士学位论文]. 北京: 北京印刷学院, 2023.
[14] Gu, H.J., Yang, S.L., Gu, M.D., et al. (2022) Research on Online Teaching Platform System Based on Microservice Architecture. MATEC Web of Conferences, 355, Article No. 03058.
https://doi.org/10.1051/matecconf/202235503058
[15] 池稼轩, 曹鹏, 王明飞. 基于PWM占空比的印刷量子点图像信息识读[J]. 包装工程, 2022, 43(13): 282-295.