分离上层应用与底层传输的中间件的方法、装置及电子设备制造方法及图纸

技术编号:38085970 阅读:8 留言:0更新日期:2023-07-06 08:54
本申请提供一种分离上层应用与底层传输的中间件的方法、装置及电子设备,所述方法包括:将上层应用的事件回调接口进行注册;将底层硬件的传输接口进行注册;将底层硬件的定时器接口进行注册;根据应用业务执行上层应用下发数据,对数据进行封装打包并发送;底层硬件上传数据,对数据进行分包解析,以及判断数据合法性操作;中间件事务处理,处理接收队列和发送队列中的命令或应答报文,并处理重发和过滤操作。通过抽象所有设备的底层传输的所有细节,对上层提供统一的接口,使其只关注于上层的应用处理,协议分发等功能,使其代码分层更加清晰明确,极大减少代码冗余量,使系统更加轻量化,简洁化和移植方便,加快产品上市周期。加快产品上市周期。加快产品上市周期。

【技术实现步骤摘要】
分离上层应用与底层传输的中间件的方法、装置及电子设备


[0001]本专利技术涉及计算机
,具体涉及一种分离上层应用与底层传输的中间件的方法、装置及电子设备。

技术介绍

[0002]物联网快速发展,智能家居也如雨后春笋般频频崛起,在庞大的整套系统中,存在各种各样的终端设备,而这些设备所支持的传输协议也都不尽相同,就意味着系统中的中转站(如:网关)需要为每个不同设备定制实现一套从底层到上层的协议,导致系统繁重,充斥着大量冗余的代码,及其不利于后续维护。
[0003]目前市面上针对这种需要接入支持多种协议,多种业务的中转站设备,大多采用的都是针对某种协议,定制化的实现底层到上层的一套逻辑实现。现有技术的缺点主要有:一是导致系统代码量成倍增加,到处充斥着冗余代码,后期难以维护。二是每新增一种新的终端设备时,需要中转站实现一套从底层到业务层的逻辑才能完成对新设备的支持,开发周期太长。

技术实现思路

[0004]本申请旨在提供一种分离上层业务与底层传输的方法,通过抽象所有设备的底层传输的所有细节,对上层提供统一的接口,使其只关注于上层的应用处理,协议分发等功能,使其代码分层更加清晰明确,极大减少代码冗余量,使系统更加轻量化,简洁化和移植方便,加快产品上市周期。
[0005]根据本申请的一方面,提出一种分离上层应用与底层传输的中间件的方法,包括:
[0006]将上层应用的事件回调接口进行注册,所述事件回调接口,用于中间件将处理结果或底层硬件状态反馈给上层;
[0007]将底层硬件的传输接口进行注册,所述传输接口用于中间件发送数据时调用;
[0008]将底层硬件的定时器接口进行注册,所述定时器接口用于中间件处理队列事务时或发送数据时调用;
[0009]根据应用业务执行上层应用下发数据,对数据进行封装打包并发送;
[0010]底层硬件上传数据,对数据进行分包解析,以及判断数据合法性操作;
[0011]中间件事务处理,处理接收队列和发送队列中的命令或应答报文,并处理重发和过滤操作。
[0012]根据一些实施例,所述方法包括:
[0013]所述根据应用业务执行上层应用下发数据,对数据进行封装打包并发送,包括:
[0014]接收上层应用的业务数据;
[0015]对所述业务数据进行打包封装,得到数据包,将所述数据包存放到发送队列中;
[0016]通过所述底层硬件的传输接口将所述数据包发送给底层硬件。
[0017]根据一些实施例,所述方法包括:
[0018]所述底层硬件上传数据,对数据进行分包解析,以及判断数据合法性操作,包括:
[0019]接收来自底层硬件的数据;
[0020]将接收的数据存放到接收缓冲区中;
[0021]对缓冲区中的数据进行拆包并进行合法性验证,将合法的数据存放到接收队列中,将不合法的数据从接收缓冲区中删除;
[0022]通过所述定时器接口启动定时器。
[0023]根据一些实施例,所述方法包括:
[0024]所述通过所述定时器接口启动定时器,包括:
[0025]如果所述启动定时器失败,通过所述上层应用的事件回调接口,告知上层应用。
[0026]根据一些实施例,所述方法包括:
[0027]所述中间件事务处理,处理接收队列和发送队列中的命令或应答报文,并处理重发和过滤操作,包括:
[0028]遍历所述接收队列,判断当前数据是命令数据包还是应答数据包;
[0029]如果是命令数据包,将所述命令数据包的ID添加到命令包过滤器中,将数据传送给上层应用,并等待上层的应答;
[0030]接收上层的应答数据,封装成应答数据包,并将所述应答数据包和对应的命令数据包的ID添加到应答包过滤器中;
[0031]发送所述应答数据到底层硬件。
[0032]根据一些实施例,所述方法包括:
[0033]所述中间件事务处理,处理接收队列和发送队列中的命令或应答报文,并处理重发和过滤操作,还包括:
[0034]遍历所述发送队列,判断是否存在等待响应的命令数据包;
[0035]如果存在,判断所述命令数据包是否已经超时;
[0036]如果超时,从所述发送队列中移除所述命令数据包;
[0037]如果未超时,发送所述命令数据包到底层硬件;
[0038]判断当前所述发送队列是否为空,如果为空,通过所述底层硬件的定时器接口,停止定时器。
[0039]根据一些实施例,所述方法包括:
[0040]所述发送所述命令数据包到底层硬件,包括:
[0041]如果发送失败,通过所述上层应用的事件回调接口,告知上层应用。
[0042]根据本申请的另一方面,提供一种分离上层应用与底层传输的中间件的装置,包括:
[0043]接口注册模块,用于将上层应用的事件回调接口、底层硬件的传输接口和定时器接口进行注册;
[0044]上层应用下发数据处理模块,用于处理来自上层下发的数据,对数据进行封装打包并发送;
[0045]底层硬件上传数据处理模块,用于处理接收来自底层硬件收到的数据,对数据进行分包解析,以及判断数据合法性等操作;
[0046]中间件事务处理模块,用于处理接收队列和发送队列中的命令或应答报文,并处
理重发和过滤等操作。
[0047]根据本申请的另一方面,提供一种电子设备,包括:
[0048]存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法中任一项所述的方法。
[0049]根据本申请的另一方面,提供一种计算机程序产品,包括计算机程序或指令,该计算机程序或指令被处理器执行时实现上述方法中任一项所述的方法。
[0050]根据本申请示例实施例,通过抽象所有设备的底层传输的所有细节,对上层提供统一的接口,使其只关注于上层的应用处理,协议分发等功能,使其代码分层更加清晰明确,极大减少代码冗余量,使系统更加轻量化,简洁化和移植方便,加快产品上市周期。
[0051]应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
[0052]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
[0053]图1示出根据本申请示例实施例的分离上层应用与底层传输的中间件的方法流程图。
[0054]图2示出根据本申请示例实施例的分离上层应用与底层传输的中间件的下行流程图。
[0055]图3示出根据本申请示例实施例的分离上层应用与底层传输的中间件的上行流程图。
[0056]图4A和图4B示出根据本申请示例实施例的分离上层应用与底层传输的中间件的事务处理流程图。
[0057]图5示出根据本申请示例实施例的分离上层应用与底层传输的中间件的总体方法流程图。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分离上层应用与底层传输的中间件的方法,其特征在于,包括:将上层应用的事件回调接口进行注册,所述事件回调接口,用于中间件将处理结果或底层硬件状态反馈给上层;将底层硬件的传输接口进行注册,所述传输接口用于中间件发送数据时调用;将底层硬件的定时器接口进行注册,所述定时器接口用于中间件处理队列事务时或发送数据时调用;根据应用业务执行上层应用下发数据,对数据进行封装打包并发送;底层硬件上传数据,对数据进行分包解析,以及判断数据合法性操作;中间件事务处理,处理接收队列和发送队列中的命令或应答报文,并处理重发和过滤操作。2.根据权利要求1所述的方法,其特征在于,所述根据应用业务执行上层应用下发数据,对数据进行封装打包并发送,包括:接收上层应用的业务数据;对所述业务数据进行打包封装,得到数据包,将所述数据包存放到发送队列中;通过所述底层硬件的传输接口将所述数据包发送给底层硬件。3.根据权利要求2所述的方法,其特征在于,所述底层硬件上传数据,对数据进行分包解析,以及判断数据合法性操作,包括:接收来自底层硬件的数据;将接收的数据存放到接收缓冲区中;对缓冲区中的数据进行拆包并进行合法性验证,将合法的数据存放到接收队列中,将不合法的数据从接收缓冲区中删除;通过所述定时器接口启动定时器。4.根据权利要求3所述的方法,其特征在于,所述通过所述定时器接口启动定时器,包括:如果所述启动定时器失败,通过所述上层应用的事件回调接口,告知上层应用。5.根据权利要求3所述的方法,其特征在于,所述中间件事务处理,处理接收队列和发送队列中的命令或应答报文,并处理重发和过滤操作,包括:遍历所述接收队列,判断当前数据是命令数据包还是应答数据包;如果是命令数据包,将所述命令数据包的ID添加到命令包过滤器中,将数据传送给上层应用,并等...

【专利技术属性】
技术研发人员:惠行行刘娟黄金尚
申请(专利权)人:国民技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1