一种客户端与服务端数据快速交互方法技术

技术编号:19702661 阅读:22 留言:0更新日期:2018-12-08 14:17
本发明专利技术公开了一种客户端与服务端数据快速交互方法,具体为,在服务端配置客户端报文解析代理服务,所有客户端向客户端报文解析代理服务发出请求报文,客户端报文解析代理服务根据请求报文内容和代号进行解析,服务端根据报文请求内容分别写入相应的缓存队列中,服务端开辟多线程处理服务分别对队列中的请求内容进行响应和分离处理,并将处理结果和状态更新到内存数据库中,后台服务定时将内存数据库中的内容同步到实体数据库中。本发明专利技术客户端与服务端的报文交互通过内存数据库进行处理,不直接与服务端的硬盘和物理数据库交互,这样对大量客户端同时发出的报文请求能及时响应,提升了客户端请求的并发性能。

【技术实现步骤摘要】
一种客户端与服务端数据快速交互方法
本专利技术涉及一种客户端与服务端数据快速交互方法,属于数据处理

技术介绍
目前因业务的需求,需要在办公终端上安装客户端软件,通过服务端监测和管理客户端软件的运行状态,同时实现服务端的策略下发和客户端的数据采集等业务需求,现有的客户端与服务端进行数据交互方式参见图1,具体处理步骤如下:1、客户端向服务端发起注册请求;2、服务端向客户端返回注册码,完成客户端注册;3、客户端主动向服务端发起报文请求(报文内容包含服务端心跳探测、策略请求、数据上传请求);4、服务端开辟子进程或子线程接受报文并解析;5、分析报文内容,根据报文内容调用对应的模块进行处理;6、如果报文内容仅仅是服务端心跳探测,则立即回复服务端正常报文,释放连接资源;7、如果报文内容还包含策略请求,则获取策略请求文件并发送客户端,释放连接资源;8、如果报文内容还包含数据上传请求,则建立数据传输通道,待数据传输完毕后释放连接资源;9、客户端与服务端报文交互结束。这种处理方式在同时处理多个客户端请求情况下,数据处理包括心跳探测报文响应、策略请求与下发、数据采集与写库等操作,在有限资源情况下,只有某个客户端处理结束后才能处理下一个客户端请求,当有新的客户端并发请求时会导致请求无法响应。因现有的处理方式会涉及读写物理数据库、读写物理磁盘等耗时较长操作,比如服务端将客户端在线标志写入物理数据库,其中就涉及到数据库查询与写入操作,由于是物理数据库就涉及到硬盘数据写入操作,其它如策略请求与下发、数据上传也是同样的原理,影响了整个处理时长。无法满足服务端对海量客户端运行状态的在线实时监测和客户端策略下发、数据上传等快速处理要求,无法提升服务端对客户端报文请求并发处理量。
技术实现思路
本专利技术所要解决的技术问题是克服现有技术的缺陷,提供一种客户端与服务端数据快速交互方法,将报文响应与处理进行分离,同时运用内存数据库进行读取与处理,避免了与物理数据库的频繁直接交互,这样对大量客户端同时发出的报文请求能及时响应,提升了客户端请求的并发性能。为解决上述技术问题,本专利技术提供一种客户端与服务端数据快速交互方法,包括以下步骤:1)所有客户端主动向服务端预先配置的客户端报文解析代理服务发出请求报文;所述请求报文包括数据上传请求报文,策略请求报文,心跳探测报文和注册请求报文;2)客户端报文解析代理服务对请求报文进行解析和内容提取;3)如果解析的是注册请求报文,则服务端将注册请求报文写入客户端报文响应队列,服务端对客户端报文响应队列中的注册请求进行处理;如果解析的是心跳探测报文则服务端进行处理后转入步骤4);如果解析的是策略请求报文,则服务端查询对应客户端内存数据库中的策略请求许可标志位,进行处理后转入步骤4);如果解析的是数据上传请求报文,则服务端查询对应客户端内存数据库中的上传需求标志位,进行处理后转入步骤5);4)服务端对策略请求处理队列中的策略请求进行处理,针对策略请求内容从数据库中获取策略请求内容存放至客户端内存数据库中,客户端下次请求时则直接从内存数据库中获取并返回;处理完成后,更新客户端内存策略请求许可标志位;5)服务端对数据上传请求处理队列中的数据上传请求进行处理,将待上传数据校验码写入客户端内存数据库中,客户端下次请求时则返回上传请求许可报文;处理完成后,将处理结果和状态更新到内存数据库中。前述的客户端报文解析代理服务对所有客户端的报文进行解析。前述的步骤3)中,服务端对客户端报文响应队列中的注册请求进行处理,具体为,生成客户端ID号,并把ID号通过返回报文回复给客户端,释放资源,同时在内存数据库中申请客户端内存数据库并更新在线标志位,完成客户端注册;所述客户端内存数据库为一个客户端表空间,数据结构为:ClientID、策略请求许可标志位、策略请求内容、上传需求标志位、上传数据校验码和客户端在线标志位。前述的客户端在线标志位是一个字节空间,用于记录当前客户端在线的时间信息。前述的步骤3)中,对于心跳探测报文,服务端返回响应报文,并在该客户端内存数据库中更新客户端在线标志位,释放资源,然后将该心跳探测报文写入策略请求处理队列。前述的步骤3)中,如果策略请求许可标志位为0,则服务端返回策略请求报文并表示正在处理策略请求,并更新该客户端在线标志位,释放资源,然后将该策略请求报文写入策略请求处理队列;如果策略请求许可标志位为1,则将客户端请求策略内容通过报文进行返回,并将策略请求许可标志位置为空。前述的步骤3)中,如果上传需求标志位为0,则服务端返回上传许可报文,然后服务端更新该客户端在线标志位,释放资源,然后将该数据上传请求报文写入策略请求处理队列;如果上传需求标志位为空,则服务端更新客户端内存数据库中待上传数据校验码,并将数据上传请求报文加入数据上传请求处理队列。前述的策略请求许可标志位为0表示有策略请求许可但策略请求的内容还没有准备好,为1表示有策略请求许可并且请求的内容也已准备好,为空表示该客户端没有策略请求。前述的上传需求标志位为0表示该客户端第一次请求有数据上传请求但服务端还没有准备好上传请求;上传需求标志位为空表示客户端第一次请求没有数据上传请求。前述的步骤5)中,客户端通过SFTP向服务端上传数据,后台解析入库程序则优先计算上传数据的校验码,当与请求的校验码匹配一致则进行解析入库,否则不予处理。本专利技术所达到的有益效果:(1)本专利技术客户端所有请求报文均通过服务端报文解析代理服务进行解析,服务端报文解析代理服务只做解析不对报文请求内容处理,实现解析与处理的分离,大大缩短了报文响应时长,从而很快释放报文响应资源以接受下一个报文请求响应;(2)本专利技术的客户端与服务端的报文交互通过内存数据库对客户端所要读写的数据进行处理,不直接与服务端的硬盘和物理数据库交互,这样对大量客户端同时发出的报文请求能及时响应,提升了客户端请求的并发性能;(3)针对客户端数据上传,本专利技术通过客户端请求报文上传校验码和服务端处理程序验证的方式,防止数据上传之前被篡改或通过SFTP伪造上传数据。附图说明图1为现有的客户端与服务端进行数据交互流程图;图2为本专利技术的客户端与服务端进行数据交互的整体流程图;图3为本专利技术的客户端与服务端进行数据交互的详细流程图。具体实施方式下面对本专利技术作进一步描述。以下实施例仅用于更加清楚地说明本专利技术的技术方案,而不能以此来限制本专利技术的保护范围。本专利技术是在服务端开辟一个内存数据库,内存数据库中含有报文响应队列、客户端请求策略信息、客户端数据向服务端硬盘写入信息的内存数据结构,客户端每次发出的请求由服务端将请求信息放入报文响应队列中,对报文内容要求只解析请求的内容,不作任何处理。将每个客户端的请求信息均放置在报文响应队列中,由后台处理程序(可以分布式处理)进行读取并响应报文请求内容,参见图2和图3,包括以下步骤:1)客户端主动向客户端报文解析代理服务发出请求报文;其中,请求报文中包括数据上传请求报文,策略请求报文,心跳探测报文和注册请求报文。本专利技术中在服务端配置客户端报文解析代理服务,该客户端报文解析代理服务对所有客户端的报文进行解析。2)客户端报文解析代理服务接受客户端的请求报文,并进行解析和内容提取。3)如果解析的是本文档来自技高网
...

【技术保护点】
1.一种客户端与服务端数据快速交互方法,其特征在于,包括以下步骤:1)所有客户端主动向服务端预先配置的客户端报文解析代理服务发出请求报文;所述请求报文包括数据上传请求报文,策略请求报文,心跳探测报文和注册请求报文;2)客户端报文解析代理服务对请求报文进行解析和内容提取;3)如果解析的是注册请求报文,则服务端将注册请求报文写入客户端报文响应队列,服务端对客户端报文响应队列中的注册请求进行处理;如果解析的是心跳探测报文则服务端进行处理后转入步骤4);如果解析的是策略请求报文,则服务端查询对应客户端内存数据库中的策略请求许可标志位,进行处理后转入步骤4);如果解析的是数据上传请求报文,则服务端查询对应客户端内存数据库中的上传需求标志位,进行处理后转入步骤5);4)服务端对策略请求处理队列中的策略请求进行处理,针对策略请求内容从数据库中获取策略请求内容存放至客户端内存数据库中,客户端下次请求时则直接从内存数据库中获取并返回;处理完成后,更新客户端内存策略请求许可标志位;5)服务端对数据上传请求处理队列中的数据上传请求进行处理,将待上传数据校验码写入客户端内存数据库中,客户端下次请求时则返回上传请求许可报文;处理完成后,将处理结果和状态更新到内存数据库中。...

【技术特征摘要】
1.一种客户端与服务端数据快速交互方法,其特征在于,包括以下步骤:1)所有客户端主动向服务端预先配置的客户端报文解析代理服务发出请求报文;所述请求报文包括数据上传请求报文,策略请求报文,心跳探测报文和注册请求报文;2)客户端报文解析代理服务对请求报文进行解析和内容提取;3)如果解析的是注册请求报文,则服务端将注册请求报文写入客户端报文响应队列,服务端对客户端报文响应队列中的注册请求进行处理;如果解析的是心跳探测报文则服务端进行处理后转入步骤4);如果解析的是策略请求报文,则服务端查询对应客户端内存数据库中的策略请求许可标志位,进行处理后转入步骤4);如果解析的是数据上传请求报文,则服务端查询对应客户端内存数据库中的上传需求标志位,进行处理后转入步骤5);4)服务端对策略请求处理队列中的策略请求进行处理,针对策略请求内容从数据库中获取策略请求内容存放至客户端内存数据库中,客户端下次请求时则直接从内存数据库中获取并返回;处理完成后,更新客户端内存策略请求许可标志位;5)服务端对数据上传请求处理队列中的数据上传请求进行处理,将待上传数据校验码写入客户端内存数据库中,客户端下次请求时则返回上传请求许可报文;处理完成后,将处理结果和状态更新到内存数据库中。2.根据权利要求1所述的一种客户端与服务端数据快速交互方法,其特征在于,所述客户端报文解析代理服务对所有客户端的报文进行解析。3.根据权利要求1所述的一种客户端与服务端数据快速交互方法,其特征在于,所述步骤3)中,服务端对客户端报文响应队列中的注册请求进行处理,具体为,生成客户端ID号,并把ID号通过返回报文回复给客户端,释放资源,同时在内存数据库中申请客户端内存数据库并更新在线标志位,完成客户端注册;所述客户端内存数据库为一个客户端表空间,数据结构为:ClientID、策略请求许可标志位、策略请求内容、上传需求标志位、上传数据校验码和客户端在线标志位。4.根据权利要求3所述的一种客户端与服务端数据...

【专利技术属性】
技术研发人员:从正海于雷刘凯乐赵嘉莅杨维永赖业宁王博文季叶飞朱进郭靓
申请(专利权)人:南瑞集团有限公司南京南瑞信息通信科技有限公司国家电网有限公司国网江苏省电力有限公司
类型:发明
国别省市:江苏,32

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

1