一种基于自动售货机的移动无线网络通信系统及方法与流程

文档序号:15233031发布日期:2018-08-21 19:54阅读:331来源:国知局

本发明涉及零售运营模式领域,具体涉及一种基于自动售货机的移动无线网络通信系统及方法。



背景技术:

随着移动支付的发展以及自动售货机数量的增长,后端服务每天承受的访问量,以及操作的数据量不断增大。导致的结果就是后台应用服务负载过大且处理缓慢,更有甚者导致服务器崩溃。极大地影响自动售货机的运营。

目前存在的许多自动售货机通信系统复杂冗余,效率不高,而且并发数量有限,这限制了自动售货机的普及推广。



技术实现要素:

为克服上述现有技术存在通信系统复杂冗余,效率不高,而且并发数量有限的不足,本发明提出一种基于自动售货机的移动无线网络通信系统,具体地所述系统包括:自动售货机单元,socket服务器单元,redis缓存交互层单元,后台应用服务器单元;

自动售货机单元,根据售货指令及相应商品信息,给购买者提供已购买的商品;

socket服务器单元,用于维护自动售货机的工作状态,发送指令,并解析数据信息;

redis缓存交互层单元,用于实现数据信息交互;

或,用于对数据进行缓存;

后台应用服务器单元,用于处理和管理数据信息。

进一步地,所述自动售货机单元包括货道模块、控制处理模块和dtu通信模块;

货道模块,用于输送已购买的商品和发送反馈数据信息至控制处理模块;

控制处理模块,用于控制自动售货机的电机运行、数据处理和业务逻辑;

dtu通信模块,通过gprs方式远程传输数据,将串口上输入的数据转化成网络数据输出回去。

进一步地,所述控制处理模块包括控制板和stm32单片机处理器;

所述控制板用于控制自动售货机的电机器件运行;

所述stm32单片机处理器,用于负责自动售货机的数据处理与业务逻辑。

进一步地,所述dtu通信模块,采用嵌入式操作系统,并封装独立的单片机、ppp拨号协议和tcp/ip协议栈。

进一步地,所述socket服务器单元工作运行进程采用异步方法和io多路复用epoll的方案。

进一步地,所述redis缓存交互层单元采用c语言编写;

所述redis缓存交互层单元读的速度是110000次/s,写的速度是81000次/s。

进一步地,所述后台应用服务器单元设有衍生模块,用于完成下单购买商品,并生成订单和数据。

为达到上述目的,本发明还提供一种基于自动售货机的移动无线网络通信方法,特征在于,所述方法包括如下步骤:

s1,获取下单购买数据信息;

s2,根据数据信息读取自动售货机状态信息,并队列发送出货任务信息;

s3,监听队列任务信息,并解析成自动售货机所接受的数据包;

s4,将网络数据转化成串口数据,并传送给控制处理模块;

s5,根据相应串口数据需求,解析并作出相应的出货动作。

进一步地,所述方法还包括:

于步骤s1中,生成订单和数据信息;

于步骤s2中,将身份信息发送给socket服务器;

于步骤s3中,通过心跳包保活和发送自动售货机状态信息。

与现有技术相比,本发明具有以下有益效果:

本发明基于自动售货机的移动无线网络通信系统及方法,拥有分离的服务器架构,socket服务器、后台应用服务器,通过高速redis缓存数据库和mysql数据库搭配,使接口业务和机器控制分离,并且通过redis数据库相连接降低耦合,缩短开周期,提高了系统效率,分离的架构会使后台业务模块组合或新增更快捷方便。

而且,通过终端集成通讯控制于一块板,选用armcortexm3的stm32系列,并集成独立的dtu通讯模块,以更好的性能、更低的价格得到快速推广,实用性强,专注于核心业务,而且采用tcp传输+缓存数据库来处理数据通信与业务交互,打造低成本高效的通信系统方案。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图;

图1为本发明系统框架示意图;

图2为本发明一种基于自动售货机的移动无线网络通信系统流程示意图;

图3为本发明方法步骤示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。

如图1所示,一种基于自动售货机的移动无线网络通信系统,具体包括自动售货机单元,socket(套接字)服务器单元,redis(key-value数据库)缓存交互层单元,后台应用服务器单元;

自动售货机单元,根据售货指令及相应商品信息,给购买者提供已购买的商品;

socket(套接字)服务器单元,用于维护自动售货机的工作状态,发送指令,并解析数据信息;具体地,socket(套接字)服务器单元工作原理:即专门管理自动售货机socket(套接字)连接的服务器;于自动售货机建立的是长连接,售货机通过心跳包保活,socket(套接字)服务器器负责维护自动售货机的连接、在线和异常等状态。业务功能是向自动售货机发送指令,解析和处理来自自动售货机的数据。

redis(key-value数据库)缓存交互层单元,用于实现数据信息交互;或,用于对数据进行缓存;具体地,redis(key-value数据库)缓存交互层单元(简称,redis、redis数据库等)工作原理为:redis(key-value数据库)是一个开源的使用ansic语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的api。在本发明系统redis(key-value数据库)主要是利用其提供的功能用于与其他服务器交互,或做数据的缓存,是一个中间件。

后台应用服务器单元,用于处理和管理数据信息。具体地,后台应用服务器单元主要负责自动售货机管理系统与运维系统等的实现,是所有数据处理的中心、业务中心和管理中心。

在本发明实施例中,所述自动售货机单元包括货道模块、控制处理模块和dtu通信模块;

货道模块,用于输送已购买的商品和发送反馈数据信息至控制处理模块;

控制处理模块,用于控制自动售货机的电机运行、数据处理和业务逻辑;

dtu通信模块,通过gprs方式远程传输数据,将串口上输入的数据转化成网络数据输出回去。

较佳地,所述控制处理模块包括控制板和stm32单片机处理器;所述控制板用于控制自动售货机的电机器件运行;所述stm32单片机处理器,用于负责自动售货机的数据处理与业务逻辑。也就是说,控制处理模块是自动售货机核心,是由控制板和stm32单片机处理器组成,控制板可以控制整机的电机等器件,处理器负责售货机的数据处理与业务逻辑。

所述dtu通信模块,采用嵌入式操作系统,并封装独立的单片机、ppp拨号协议和tcp/ip协议栈。具体地,dtu通信模块(简称dtu)工作原理:采用低功耗设计,通过gprs方式远程传输数据,封装独立的单片机、ppp拨号协议以及tcp/ip协议栈并且具有嵌入式操作系统,它提供了基于串口传输的控制与配置的协议,工作中将串口上输入的数据转化成网络数据输出回去,反之亦然。

在本发明实施例中,所述socket(套接字)服务器单元工作运行进程采用异步方法和io多路复用epoll的方案。

所述redis(key-value数据库)缓存交互层单元采用c语言编写;较佳地,所述redis(key-value数据库)缓存交互层单元读的速度是110000次/s,写的速度是81000次/s。

所述后台应用服务器单元设有衍生模块,用于完成下单购买商品,并生成订单和数据。具体地,公众号/h5页面/小程序就是后台应用服务器的衍生,作为实现业务逻辑的模块存在即客户端,运维人员或者用户通过它们管理或购买具体售货机的商品。

较佳地,在本发明系统中,具体工作原理如下:控制处理模通过协议向dtu配置服务器地址和端口,dtu会将它记住,实现断线自动重连,并将配置结果返回给控制处理模块。连接到socket(套接字)服务器单元后,控制处理模块将身份信息发送给socket(套接字)服务器单元,验证通过后才加入了系统在线的机器,并通过心跳包保活和发送机器状态;socket(套接字)服务器单元通过redis(key-value数据库)同后台应用服务器单元进行交互,后台应用服务器单元则处理所有数据与业务,并对公众号/h5页面/小程序服务模块提供接口,将各个独立模块或服务器串起进行高效协同工作。

也就是说,用户通过公众号/h5页面/小程序下单购买商品后,将在后台应用服务器单元生成订单和数据,后台应用服务器单元通过redis(key-value数据库)读取机器状态,并向redis(key-value数据库)队列发送出货任务。socket(套接字)服务器单元监听着redis(key-value数据库)队列,当拿到任务后解析成自动售货机所接受的数据包,并通过soket(套接字)发送至自动售货机的dtu,dtu将网络数据转化成串口数据传给控制处理模块,此时控制处理模块终端响应数据请求,最后解析并作出相应的动作。

具体地,如图2所示,自动售货机端包括货道,控制与处理模块和dtu模块组成,其中,货道里设有电机,使用ttl串口与控制处理模块相连,每成功转一圈会发送反馈信号给控制处理模块;控制处理模块是自动售货机的核心,dtu是独立网络模块,它们之间通过ttl和com串口交互数据,自动售货机和socket(套接字)服务器通过tcp连接,与后台应用服务器通过redis(key-value数据库)数据库进行业务交互。

后台应用服务器则提供模块功能和各种接口,各个模块相互独立亦可以相互协作完成工作。

较佳地,终端集成通讯控制于一块板,选用armcortexm3的stm32系列,并集成独立的dtu通讯模块,以更好的性能、更低的价格得到快速推广,实用性强,专注于核心业务,采用tcp传输+缓存数据库来处理数据通信与业务交互,打造低成本高效的通信系统方案。

相应地,终端的dtu模块与控制处理模块集成却又相互独立,集成带来的优势是更稳定,占用空间很小,dtu自带单片机保证了通信模块与控制模块互不影响,dtu通讯模块通过协议(串口数据双向传输;串口传输配置dtu命令;串口中断功能)与核心处理模块协同工作,并通过串口(类型波特率为57600)传输数据与操作指令,dtu不同于通用的网络模块,它只精简成核心和必要的通信功能,也就是说,内部集成tcp/ip协议栈:dtu内部封装了ppp拨号协议和tcp/ip协议栈,并且具有嵌入式操作系统,它具备gprs拨号上网以及tcp/ip数据通信的功能。

在本发明实施例中,还提供串口数据双向转换功能(包括配置命令):具体地,dtu提供了串行通信接口,将串口上的原始数据转换成tcp/ip数据包进行发送,也可以将收到的数据通过串口传回来,因此效率和成本均衡至最优,可向dtu配置socket(套接字)服务器地址并连接传输数据。另外还具有下载文件,收发数据包功能。

dtu采用tcp协议与socket(套接字)服务器进行通信,通过简化可靠的协议进行通信,较佳地,为了实现稳定可靠,数据包通过头包+数据体+尾包形式组织,且字节包都通过算法进行加解密,并且终端连接时需要通过预先注册的id验证才能连上socket(套接字)服务器,保证了安全性的基础上,通信流量也大幅降低。

在本发明实施例中,socket(套接字)服务器专注于处理与机器交互,核心都是采用异步方法实现,具体地,异步表现为:各个模块都是独立的线程或者进程。连接模块处理用户连接请求,将请求发到认证模块进行认证,认证通过的发送到待读线程进行监听。另外还有发送命令模块可以对连接认证通过的机器进行指令操作。各个模块都是异步进行的。同时还采用io多路复用epoll的方案,很好的处理大量句柄数据请求并发的问题,较佳地,根据上述异步流程,当处理高并发情况时,epoll(io多路复用)更加灵活,没有描述符限制io效率不随fd数目增加而线性下降。epoll(io多路复用)使用一个文件描述符管理多个描述符,使用mmap(一种内存映射文件的方法)加速内核与用户空间的消息传递:将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统cpu利用率,而不用遍历所有fd;

相应地,通过redis(key-value数据库)与上层业务模块进行业务交互,使用redis(key-value数据库)的队列建立生产消费模型,即建立生产消费队列:由后台应用服务器产生订单执行指令,放入redis(key-value数据库)队列。socket(套接字)服务器从redis(key-value数据库)队列拿到执行指令后对相应的自动售货机进行操作。售货机执行状态提交给socket(套接字)服务器后,再放到redis(key-value数据库)订单执行状态队列里,由后台应用服务器进行处理,在本发明实施例中,由于是key-value存储系统,且存储在内存,有着快速存取的特点,且可以持久化,较好的满足且合适这套系统。

利用redis(key-value数据库)本身特性降低了耦合,平衡了不同服务器之间数据安全与速度的问题,具体地,redis(key-value数据库)本身特性包括,读写性能优异,较佳地,redis(key-value数据库)能读的速度是110000次/s,写的速度是81000次/s。其次,redis(key-value数据库)不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

原子–redis(key-value数据库)的所有操作都是原子性的,同时redis(key-value数据库)还支持对几个操作全并后的原子性执行;相应地,还支持数据持久化,支持aof和rdb两种持久化方式,支持主从复制,主机会自动将数据同步到从机,可以进行读写分离。

也就是说,通过以上特性带来的是:提高了性能、查找数据更快、数据操作原子信,不用锁资源,持久化加上主备同步数据更安全。

如图3所示,本发明还提供了一种基于自动售货机的移动无线网络通信方法,具体包括如下步骤:

s1,获取下单购买数据信息;

s2,根据数据信息读取自动售货机状态信息,并队列发送出货任务信息;

s3,监听队列任务信息,并解析成自动售货机所接受的数据包;

s4,将网络数据转化成串口数据,并传送给控制处理模块;

s5,根据相应串口数据需求,解析并作出相应的出货动作。

相应地,所述方法还包括:

于步骤s1中,生成订单和数据信息;

于步骤s2中,将身份信息发送给socket(套接字)服务器;

于步骤s3中,通过心跳包保活和发送自动售货机状态信息。

本发明基于自动售货机的移动无线网络通信系统及方法,拥有分离的服务器架构,socket(套接字)服务器、后台应用服务器,通过高速redis(key-value数据库)缓存数据库和mysql(关系型数据库)数据库搭配,使接口业务和机器控制分离,并且通过redis(key-value数据库)数据库相连接降低耦合,缩短开周期,提高了系统效率,分离的架构会使后台业务模块组合或新增更快捷方便。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所以的实施方式予以穷举。凡在本发明的精神和原则之内,所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1