CN108965054B - 一种客户端与服务端数据快速交互方法 - Google Patents
一种客户端与服务端数据快速交互方法 Download PDFInfo
- Publication number
- CN108965054B CN108965054B CN201810761944.9A CN201810761944A CN108965054B CN 108965054 B CN108965054 B CN 108965054B CN 201810761944 A CN201810761944 A CN 201810761944A CN 108965054 B CN108965054 B CN 108965054B
- Authority
- CN
- China
- Prior art keywords
- client
- request
- message
- server
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000012545 processing Methods 0.000 claims abstract description 43
- 230000004044 response Effects 0.000 claims description 18
- 238000001514 detection method Methods 0.000 claims description 17
- 239000000284 extract Substances 0.000 claims description 3
- 230000003993 interaction Effects 0.000 abstract description 8
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种客户端与服务端数据快速交互方法,具体为,在服务端配置客户端报文解析代理服务,所有客户端向客户端报文解析代理服务发出请求报文,客户端报文解析代理服务根据请求报文内容和代号进行解析,服务端根据报文请求内容分别写入相应的缓存队列中,服务端开辟多线程处理服务分别对队列中的请求内容进行响应和分离处理,并将处理结果和状态更新到内存数据库中,后台服务定时将内存数据库中的内容同步到实体数据库中。本发明客户端与服务端的报文交互通过内存数据库进行处理,不直接与服务端的硬盘和物理数据库交互,这样对大量客户端同时发出的报文请求能及时响应,提升了客户端请求的并发性能。
Description
技术领域
本发明涉及一种客户端与服务端数据快速交互方法,属于数据处理技术领域。
背景技术
目前因业务的需求,需要在办公终端上安装客户端软件,通过服务端监测和管理客户端软件的运行状态,同时实现服务端的策略下发和客户端的数据采集等业务需求,现有的客户端与服务端进行数据交互方式参见图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)如果解析的是注册请求报文,则转入步骤4);如果解析的是心跳探测报文则转入步骤5);如果解析的是策略请求报文则转入步骤6);如果解析的是数据上传请求报文则转入步骤7)。
4)如果是注册请求报文,则服务端将注册请求报文写入客户端报文响应队列,服务端对客户端报文响应队列中的注册请求进行处理,生成客户端ID号,并把ID号通过返回报文回复给客户端,释放资源,同时在内存数据库中申请客户端报文内容表空间并更新在线标志位(以下简称:客户端内存数据库),完成客户端注册。
本发明的客户端内存数据库就相当于一个客户端表空间,是写入客户端内存数据库空间中的字段,客户端内存数据库主要数据结构为:
ClientID字段、策略请求许可标志位字段、策略请求内容字段、上传需求标志位字段、上传数据校验码字段、客户端在线标志位字段等等信息。
5)如果是心跳探测报文则服务端返回响应报文,并在该客户端内存中更新在线标志位,释放资源,然后将该心跳探测报文写入策略请求处理队列;然后转入步骤8)。
在线标志位是一个字节空间,用于记录该客户端是否在运行,当客户端第一次通知服务端处于在线状态,则会把当前客户端在线的时间信息写到在线标志位中,这样服务端统计多少客户端在线情况,就只要根据近一个小时之内客户端的在线标志位即可确定。
6)如果是策略请求报文,则服务端查询对应客户端内存策略请求许可标志位,如果标志位为0,则服务端返回策略请求报文并表示正在处理策略请求,并更新该客户端在线标志位,释放资源,然后将该策略请求报文写入策略请求处理队列;如果标志位为1,则将客户端请求策略内容通过报文进行返回,并将策略请求许可标志置为空;其中,策略请求许可标志位为0表示有策略请求许可但策略请求的内容还没有准备好,为1表示有策略请求许可并且请求的内容也已准备好,为空表示该客户端没有策略请求。然后转入步骤8)。
7)如果是数据上传请求报文则服务端查询对应客户端内存的上传需求标志位,如果该客户端第一次请求有数据上传请求则将上传需求标志位设置为0,并表示服务端还没有准备好上传请求;如果客户端第一次请求没有数据上传请求则上传需求标志位设置为空;
如果上传需求标志位为0,则服务端返回上传许可报文,然后服务端更新该客户端在线标志位,释放资源,然后将该数据上传请求报文写入策略请求处理队列;如果上传需求标志位为空,则服务端更新客户端内存待上传数据校验码,并将数据上传请求报文加入数据上传请求处理队列;然后转入步骤9);
其中,数据校验码是在客户端计算好的,通过客户端发给服务端的报文进行传输的。
8)服务端对策略请求处理队列中的策略请求进行处理,针对策略请求内容的处理程序从数据库中获取策略请求内容存放至客户端内存数据库中,客户端下次请求时则直接从内存数据库中获取并返回;处理完成后,更新客户端内存策略请求许可标志位;然后转入步骤10);
9)服务端对数据上传请求处理队列中的数据上传请求进行处理,将待上传数据校验码写入客户端内存数据库中,客户端下次请求时则返回上传请求许可报文,客户端根据服务端返回的许可报文,通过SFTP向服务端传输数据,后台解析入库程序则优先计算上传数据的校验信息,当与请求的校验信息匹配一致则进行解析入库,否则不予处理,该方法可以防止数据伪造或篡改。最终将处理结果和状态更新到内存数据库中。然后转入步骤10)。
10)后台服务定时将内存数据库中的内容同步到实体数据库中。
术语解释
物理数据库:是指数据库的存储介质是磁盘数据。
内存数据库:是在数据库的存储介质是物理内存。
SFTP:即Secure File Transfer Protocol的缩写,安全文件传送协议,可以为传输文件提供一种安全的网络的加密方法服务进行专门传输。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (6)
1.一种客户端与服务端数据快速交互方法,其特征在于,包括以下步骤:
1)所有客户端主动向服务端预先配置的客户端报文解析代理服务发出请求报文;所述请求报文包括数据上传请求报文,策略请求报文,心跳探测报文和注册请求报文;
2)客户端报文解析代理服务对请求报文进行解析和内容提取;
3)如果解析的是注册请求报文,则服务端将注册请求报文写入客户端报文响应队列,服务端对客户端报文响应队列中的注册请求进行处理,具体为,生成客户端ID号,并把ID号通过返回报文回复给客户端,释放资源,同时在内存数据库中申请一个客户端表空间并更新在线标志位,完成客户端注册;
所述客户端表空间数据结构为:
ClientID、策略请求许可标志位、策略请求内容、上传需求标志位、上传数据校验码和客户端在线标志位;
如果解析的是心跳探测报文则服务端返回响应报文,并在客户端表空间中更新客户端在线标志位,释放资源,然后将该心跳探测报文写入策略请求处理队列,然后转入步骤4);
如果解析的是策略请求报文,则服务端查询对应客户端表空间中的策略请求许可标志位,如果策略请求许可标志位为0,则服务端返回策略请求报文并表示正在处理策略请求,并更新该客户端在线标志位,释放资源,然后将该策略请求报文写入策略请求处理队列;如果策略请求许可标志位为1,则将客户端请求的策略内容通过报文进行返回,并将策略请求许可标志位置为空,然后转入步骤4);
如果解析的是数据上传请求报文,则服务端查询对应客户端表空间中的上传需求标志位,如果上传需求标志位为0,则服务端返回上传许可报文,然后服务端更新该客户端在线标志位,释放资源,然后将该数据上传请求报文写入策略请求处理队列;如果上传需求标志位为空,则服务端更新客户端表空间中待上传数据校验码,并将数据上传请求报文加入数据上传请求处理队列,然后转入步骤5);
4)服务端对策略请求处理队列中的策略请求进行处理,针对策略请求内容从数据库中获取策略请求内容存放至客户端表空间中,客户端下次请求时则直接从客户端表空间中获取并返回;处理完成后,更新客户端内存策略请求许可标志位;
5)服务端对数据上传请求处理队列中的数据上传请求进行处理,将待上传数据校验码写入客户端表空间中,客户端下次请求时则返回上传请求许可报文;处理完成后,将处理结果和状态更新到内存数据库中。
2.根据权利要求1所述的一种客户端与服务端数据快速交互方法,其特征在于,所述客户端报文解析代理服务对所有客户端的报文进行解析。
3.根据权利要求1所述的一种客户端与服务端数据快速交互方法,其特征在于,所述客户端在线标志位是一个字节空间,用于记录当前客户端在线的时间信息。
4.根据权利要求1所述的一种客户端与服务端数据快速交互方法,其特征在于,所述策略请求许可标志位为0表示有策略请求许可但策略请求的内容还没有准备好,为1表示有策略请求许可并且请求的内容也已准备好,为空表示该客户端没有策略请求。
5.根据权利要求1所述的一种客户端与服务端数据快速交互方法,其特征在于,所述上传需求标志位为0表示该客户端第一次请求有数据上传请求但服务端还没有准备好上传请求;上传需求标志位为空表示客户端第一次请求没有数据上传请求。
6.根据权利要求1所述的一种客户端与服务端数据快速交互方法,其特征在于,所述步骤5)中,客户端通过SFTP向服务端上传数据,后台解析入库程序则优先计算上传数据的校验码,当与请求的校验码匹配一致则进行解析入库,否则不予处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810761944.9A CN108965054B (zh) | 2018-07-12 | 2018-07-12 | 一种客户端与服务端数据快速交互方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810761944.9A CN108965054B (zh) | 2018-07-12 | 2018-07-12 | 一种客户端与服务端数据快速交互方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108965054A CN108965054A (zh) | 2018-12-07 |
CN108965054B true CN108965054B (zh) | 2019-12-10 |
Family
ID=64483000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810761944.9A Active CN108965054B (zh) | 2018-07-12 | 2018-07-12 | 一种客户端与服务端数据快速交互方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108965054B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112261043A (zh) * | 2020-10-21 | 2021-01-22 | 深圳市思迅软件股份有限公司 | Pos系统数据交互方法、装置、计算机设备及存储介质 |
CN113342820A (zh) * | 2021-06-29 | 2021-09-03 | 傲普(上海)新能源有限公司 | 一种储能工业设备大数据存储的方法 |
CN113721577B (zh) * | 2021-11-02 | 2022-02-11 | 西安热工研究院有限公司 | 面向多任务周期的数据交互方法和系统、设备及存储介质 |
CN117076560A (zh) * | 2023-07-21 | 2023-11-17 | 九为(浙江)网络科技有限公司 | 一种基于药品零售收银系统的数据同步方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7293038B2 (en) * | 2003-02-25 | 2007-11-06 | Bea Systems, Inc. | Systems and methods for client-side filtering of subscribed messages |
CN101877002B (zh) * | 2009-11-30 | 2012-02-01 | 许继集团有限公司 | 基于统一接口的内存数据库分布式访问方法及系统 |
CN104899274B (zh) * | 2015-05-27 | 2018-04-03 | 北方信息控制集团有限公司 | 一种内存数据库高效远程访问方法 |
CN106603598B (zh) * | 2015-10-15 | 2020-12-25 | 阿里巴巴集团控股有限公司 | 处理业务请求的方法及装置 |
-
2018
- 2018-07-12 CN CN201810761944.9A patent/CN108965054B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108965054A (zh) | 2018-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108965054B (zh) | 一种客户端与服务端数据快速交互方法 | |
CN108712426B (zh) | 基于用户行为埋点的爬虫识别方法及系统 | |
KR102167613B1 (ko) | 메시지 푸시 방법 및 장치 | |
CN106021315B (zh) | 一种应用程序的日志管理方法及系统 | |
US20060155857A1 (en) | Deterministic session state management within a global cache array | |
US10425502B2 (en) | System and method for acquiring, processing and updating global information | |
US20190182270A1 (en) | System and method for inquiring ioc information by p2p protocol | |
CN103095819A (zh) | 推送数据信息的方法及数据信息推送系统 | |
US10708379B1 (en) | Dynamic proxy for databases | |
US9910881B1 (en) | Maintaining versions of control plane data for a network-based service control plane | |
CN108446172B (zh) | 数据调取方法、装置、计算机设备和存储介质 | |
CN112714192B (zh) | 数据同步方法、装置、计算机可读介质及电子设备 | |
CN111159233B (zh) | 分布式缓存方法、系统、计算机设备以及存储介质 | |
CN103036910B (zh) | 一种用户Web访问行为控制方法及装置 | |
CN104794190A (zh) | 一种大数据有效存储的方法和装置 | |
CN113835836B (zh) | 动态发布容器服务的系统、方法、计算机设备及介质 | |
US20140006541A1 (en) | Persistent messaging | |
US11397711B1 (en) | Proxy-based database scaling | |
US10545667B1 (en) | Dynamic data partitioning for stateless request routing | |
CN116582365B (zh) | 网络流量的安全控制方法、装置及计算机设备 | |
CN111327680B (zh) | 认证数据同步方法、装置、系统、计算机设备和存储介质 | |
CN105893150B (zh) | 接口调用频度控制、接口调用请求处理方法及装置 | |
CN105574008A (zh) | 应用于分布式文件系统的任务调度方法和设备 | |
CN112181670B (zh) | 进程间通讯方法及装置和Linux设备 | |
CN115017538A (zh) | 一种数据处理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |