本发明是一种通用协议网关tcpudp服务器软件实现方法,属于通讯领域。
背景技术:
现有技术中,目前大多数的物联网网关系统实现算法结构不清晰,耦合性太大,序列化与反序列化方式不优雅。由于结构的杂乱,在实际开发中遇到问题开发者的纠错维护成本高,功能开发效率低下,代码误码率高,已经系统的网关与物联网终端设备通信相应速度慢。
技术实现要素:
针对现有技术存在的不足,本发明目的是提供一种通用协议网关tcpudp服务器软件实现方法,以解决上述背景技术中提出的问题。
为了实现上述目的,本发明是通过如下的技术方案来实现:一种通用协议网关tcpudp服务器软件实现方法,包括如下步骤:
s1:设备管理平台将指令下发到指令暂存空间;
s2:指令暂存空间将指令传递到指令处理器;
s3:指令处理器将指令分发到指令或回复分发器;
s4:指令或回复分发器将指令或回复分发到解码编码器;
s5:解码编码器将响应或指令下发到设备。
进一步地,在s2中,指令暂存空间过滤无效与过期指令。
进一步地,解码编码器将请求委托给请求分发器,请求分发器匹配合适的请求处理器,请求处理器将回复委托给指令或回复分发器,请求处理器将处理复杂的操作委托给长时任务处理器。
进一步地,解码编码器将请求委托给请求分发器,请求分发器匹配合适的请求处理器,请求处理器将回复委托给指令或回复分发器,请求处理器将处理复杂的操作委托给长时任务处理器。
进一步地,将串联的长时任务和回复任务分解成两个处理块,并将长时任务块推送到长时处理队列通过多线程异步处理任务队列的方式的方式实现快速回复设备。
本发明的有益效果:本发明的一种通用协议网关tcpudp服务器软件实现方法,提供默认的处理流程和方法降低网关开发难度;提高良好的代码结构降低维护成本;提供协议模板减少重复开发,降低维护成本。无需采用硬编码的方式逐个创建并初始化协议,采用spring经典的注解解耦的方式。增加代码的重用率。
例如协议80又有协议88只需要在协议类上注解@proto("80")以及@proto("88")就能的到对应的协议实例无需主动查询与创建协议,并能将不同的协议处理类分离开来不会把多个协议处理方法集中写在同一块代码中,这样使得处理方法的代码较于集中写在同一个代码块中更简洁清晰。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明一种通用协议网关tcpudp服务器软件实现方法的结构示意图。
具体实施方式
为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。
请参阅图1,本发明提供一种技术方案:一种通用协议网关tcpudp服务器软件实现方法,包括如下步骤:
s1:设备管理平台将指令下发到指令暂存空间;
s2:指令暂存空间将指令传递到指令处理器;
s3:指令处理器将指令分发到指令或回复分发器;
s4:指令或回复分发器将指令或回复分发到解码编码器;
s5:解码编码器将响应或指令下发到设备。
其中在s2中,指令暂存空间过滤无效与过期指令。
另外解码编码器将请求委托给请求分发器,请求分发器匹配合适的请求处理器,请求处理器将回复委托给指令或回复分发器,请求处理器将处理复杂的操作委托给长时任务处理器。
解码编码器将请求委托给请求分发器,请求分发器匹配合适的请求处理器,请求处理器将回复委托给指令或回复分发器,请求处理器将处理复杂的操作委托给长时任务处理器,通过模仿mvc的方式为协议匹配合适的处理器。
将串联的长时任务和回复任务分解成两个处理块,并将长时任务块推送到长时处理队列通过多线程异步处理任务队列的方式的方式实现快速回复设备。
实施例:设备管理平台将指令下发到指令暂存空间;指令暂存空间将指令传递到指令处理器;指令处理器将指令分发到指令或回复分发器;指令或回复分发器将指令或回复分发到解码编码器;解码编码器将响应或指令下发到设备,其中解码编码器将请求委托给请求分发器,请求分发器匹配合适的请求处理器,请求处理器将回复委托给指令或回复分发器,请求处理器将处理复杂的操作委托给长时任务处理器,解码编码器将请求委托给请求分发器,请求分发器匹配合适的请求处理器,请求处理器将回复委托给指令或回复分发器,请求处理器将处理复杂的操作委托给长时任务处理器,串联的长时任务和回复任务分解成两个处理块,并将长时任务块推送到长时处理队列通过多线程异步处理任务队列的方式的方式实现快速回复设备,在这过程中采用java的反射原理,协议的包装类将会包含协议的名称信息,程序就能根具包装类中协议的名称寻找并自动生成对应的协议。例如现有包装类wrapper其中包含属性(协议名)protoname的值为80,表示该包装类内部的协议名称为80,程序会自动寻找被@proto("80")注解的类,生成并初始化该协议(假设该协议名为p80),然后将该协议的实例(p80)传递给被@reqmapping("80")注解的处理方法,假如该处理方法耗时过长需要在程序内部利用长时处理器异步处理消息以达到快速响应设备的目的。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点,对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。