数据传输的方法及装置与流程

文档序号:12132547阅读:237来源:国知局
数据传输的方法及装置与流程

本发明涉及互联网技术领域,尤其涉及一种数据传输的方法及装置。



背景技术:

现有技术中,服务器对客户端的管控,采用的是被动式管控。具体的通过心跳间隔模式由客户端向服务器进行定期轮询的管理策略,即客户端定期向服务器发送请求,来向服务器获取任务或者策略等信息。这种定期轮询的管理策略的实现需要客户端每次发送请求前先与服务器建立新的连接,然后将请求发送给服务器,使服务器下发任务或者策略,当完成下发后就释放连接。

在上述被动式的管控方式下,当服务器有新的任务或者策略时,通常需要等待客户端请求时才能下发给客户端,客户端获取新的任务或者策略的实时性差;另外由于服务器是被动的,所以也无法实时获取客户端的进程行为信息、操作注册表等信息。综上可以看到,现有的管控方式实时性差。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据传输的方法及装置。

为解决上述技术问题,一方面,本发明提供了一种数据传输的方法,包括:

服务器与客户端建立套接字socket长连接;

当监测有业务更新时,主动通过所述socket长连接将更新后的业务数据推送给所述客户端,所述业务数据为客户端需要执行的任务或者策略;

实时监控推送的业务数据的相关进程。

另一方面,本发明提供了一种数据传输的装置,包括:

建立单元,用于服务器与客户端建立套接字socket长连接;

推送单元,用于当监测有业务更新时,主动通过所述socket长连接将更新后的业务数据推送给所述客户端,所述业务数据为客户端需要执行的任务或者策略;

监控单元,用于实时监控推送的业务数据的相关进程。

借由上述技术方案,本发明提供的数据传输的方法及装置,能够首先由服务器与客户端建立套接字socket长连接;然后在当监测有业务更新时,主动通过socket长连接将更新后的业务数据推送给客户端,业务数据为客户端需要执行的任务或者策略;并且可以通过socket长连接实时监控推送的业务数据的进程。与现有技术相比,本发明中服务器在监测到业务更新时,可以主动向客户端推送对应的更新后的业务数据,并且由于服务器与客户端之前建立的为socket长连接,长连接可以保持客户端与服务之间持续的连接,因此不需要等待客户端向服务器发送请求时再向服务器获取业务数据,所以可以保证业务数据的实时性。另外,由于服务器与客户端之间可以保持持续的连接,因此服务器可以实时地监控业务推送的进程,进而提高对客户端管控实时性。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本发明实施例提供的一种数据传输的方法流程图;

图2示出了本发明实施例提供的另一种数据传输的方法流程图;

图3示出了本发明实施例提供的又一种数据传输的方法流程图;

图4示出了本发明实施例提供的一种数据传输的装置的组成框图;

图5示出了本发明实施例提供的另一种数据传输的装置的组成框图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

为解决现有对客户端的管控方式实时性差的问题,本发明实施例提供了一种数据传输的方法,如图1所示,该方法包括:

101、服务器与客户端建立套接字socket长连接。

首先需要说明的是本实施例针对服务器对客户端的管理和控制,因此服务器与客户端之间建立连接是实现服务器对客户端管控的基础。本实施例中服务器与客户端建立的是socket长连接,socket长连接是区别于现有的服务器与客户端之间的心跳轮询socket短连接的。现有技术有使用的socket短连接不能保持客户端与服务器之间的持续连接,因为在每次数据传输结束后就会关闭连接;而socket长连接在建立之后,能够保持客户端与服务器之间的持续连接,因为每次数据传输结束后不会关闭连接,而是会通过定时发送数据包来保持客户端与服务器之间的连接,以使下次进行数据传输时不需要重新建立连接。客户端与服务器之间建立socket长连接是后续保证服务器对客户端进行实时管控的实现的基础。具体的服务器与客户端建立socket长连接的过程与现有技术中建立socket长连接的过程是相同的。

另外建立socket长连接相比现有的socket短连接的方式,可以省去多次传输数据需要多次建立新的连接的资源的消耗和时间消耗,并且在服务器与客户端通信有防火墙隔离的情况下,对防火墙也是友好的。因为在socket短连接方式下,需要不断建立新的连接,而当新连接超出一定的数量的情况下,有可能会打破防火墙。

102、当监测有业务更新时,主动通过socket长连接将更新后的业务数据推送给客户端。

当服务器监测到内部有业务更新时,则实时地将更新后的业务数据推送给客户端。服务器可以将更新后的业务数据实时推送给客户端是由于客户端与服务器之间为socket长连接,不需要像现有技术中那样等待客户端轮询时才可以推送更新后的业务数据。服务器及时主动地将更新后的业务数据推送给客户端,客户端便可以及时的获取到更新后的业务数据,因此保证了业务数据推送和获取的实时性,进而保证了更新后的业务数据能够及时发挥作用。需要说明的是,其中的业务数据主要是指业务中的包含的任务或者策略等,这些业务数据是客户端需要执行的任务或者策略。另外需要说明的是,服务器包含有不同的业务,不同的业务分别对应有不同的业务板块,而推送业务数据是由服务器内部统一的推送板块进行推送的。

103、实时监控推送的业务数据的相关进程。

在将更新后的业务数据推送给客户端后,为了能够实时地了解推送的业务数据在传输过程中以及在客户端侧的被执行的相关信息,因此需要实时地监控推送的业务数据的相关进程。具体的推送的业务数据的相关进程主要包括:第一,推送的业务数据在传输过程中的情况,具体的是指推送的业务数据在传送过程中是否正常进行,由于推送的业务数据中可能包含多个数据包,在传送的过程中可能会发生某几个数据包的传送出现故障,导致客户端不能获取到完整的业务数据,因此需要实时监控,以保证及时发现问题及时解决。第二,推送的业务数据在客户端中的相关进程,具体的是指业务数据中包含的任务或者策略的执行情况等,监控业务数据在客户端中的相关进程是为了更好的对客户端进行管控。

本实施例提供的数据传输的方法,能够首先由服务器与客户端建立套接字socket长连接;然后在当监测有业务更新时,主动通过socket长连接将更新后的业务数据推送给客户端,业务数据为客户端需要执行的任务或者策略;并且可以通过socket长连接实时监控推送的业务数据的进程。与现有技术相比,本实施例中服务器在监测到业务更新时,可以主动向客户端推送对应的更新后的业务数据,并且由于服务器与客户端之前建立的为socket长连接,长连接可以保持客户端与服务之间持续的连接,因此不需要等待客户端向服务器发送请求时再向服务器获取业务数据,所以可以保证业务数据的实时性。另外,由于服务器与客户端之间可以保持持续的连接,因此服务器可以实时地监控业务推送的进程,进而提高对客户端管控实时性。

进一步的,作为对图1所示方法的细化及扩展,本发明另一实施例还给出了一种数据传输的方法。如图2所示,该方法包括:

201、服务器与客户端建立套接字socket长连接。

本步骤的实现方式与图1步骤101的实现方式相同,此处不再赘述。

202、当监测有业务更新时,主动通过socket长连接将更新后的业务数据推送给客户端。

本步骤的实现方式与图1步骤102的实现方式相同,此处不再赘述。

203、检测是否收到确认应答。

在将更新后的业务数据推送给客户端后,为了保证数据传输的可靠性,即保证客户端确实收到了服务器推送的业务数据,本实施例通过应答(Acknowledgement,简称ACK)机制来保证数据传输的可靠性,ACK机制是当发送方发送一个自定义信息给接收方时,接收方收到信息后,回复一个ACK给发送方,发送方接收到ACK就知道接收方确实收到了信息。在本实施例中服务器为发送方,客户端为接收方,因此是由服务器检测是否收到确认应答,即是否收到ACK,该确认应答即是由客户端发送的确认收到业务数据的应答。

需要说明的是,本实施例中ACK应答机制的实现是通过对现有的websocket标准协议进行改造实现的。

204、若在预设时段内没有收到确认应答,则重新推送业务数据。

对于步骤203的检测结果进行判断,若接收到了确认应答,则表明客户端接收到了服务器推送的业务数据,因此可以终止业务数据的推送;若在预设时段内没有接收到确认应答,表明客户端没有接收到服务器推送的业务数据,则需要重新向客户端推送更新后的业务数据,直到可以接收到确认应答为止。其中预设时段可以根据实际的应用情况自由设定。

205、根据预设规则将不同的客户端分配到对应的监控区域。

预设规则为均匀散列分配原则,即将所有客户端均匀的分配到不同的监控区域中,以通过不同的监控区域对推送给客户端的业务数据的进程进行监控,具体的监控推送给客户端的业务数据的进程的实现方式与图1步骤103的实现方式相同,此处不再赘述。另外将客户端均匀分配到不同的监控区域中可以提高服务器对客户端进行推送业务数据和监控业务数据的效率。

进一步的,作为对图1以及图2所示方法的细化及扩展,本发明另一实施例还给出了一种数据传输的方法。如图3所示,该方法包括:

301、服务器与客户端建立套接字socket长连接。

本步骤的实现方式与图1步骤101的实现方式相同,此处不再赘述。

302、通过socket长连接接收客户端发送的数据请求。

除了图1中服务器可以向客户端推送更新后的业务数据的模式外,本实施例给出了另外的模式,具体为客户端也可以通过socket长连接主动向服务器发送数据请求,该数据请求为客户端向服务器获取业务数据的请求。该数据请求不限定为请求业务更新后的业务数据。由于客户端与服务器之间是socket长连接,因此客户端是可以随时发送数据请求的。所以当客户端向服务器发送数据请求后,服务器可以通过已经建立的socket长连接接收客户端发送的数据请求。

303、向客户端返回第一确认回应。

当服务器接收到客户端发送的数据请求后,为了告知客户端确认收到了数据请求,需要向客户端返回第一确认回应,以使客户端根据是否接收到了第一确认应答来判断是否向服务器重新发送数据请求。本实施例中项客户端返回第一确认回应,也是因为添加了ACK应答机制。该应答机制与图2步骤203中的应答机制是相同的。其中的第一确认回应相当于图2步骤203中的确认应答。

304、对数据请求进行解析并确定对应数据请求的业务数据的获取地址。

当服务器接收客户端发送的数据请求后需要将对应的业务数据推送给客户端,由于在服务器中业务数据是由推送板块推送的,而需要推送的业务数据是在不同的业务板块中的,因此在获取到数据请求后,需要对数据请求进行解析,确定数据请求中包含不同的业务以及对应的业务数据。当确定数据请求对应的业务以及对应的业务数据后,可以根据对应的业务以及对应的业务数据查找到对应的业务板块,不同的业务板块在服务器中的地址是不同的,然后将对应的业务板块的地址确定为对应数据请求的业务数据的获取地址。

305、获取对应数据请求的业务数据,并将对应数据请求的业务数据推送给客户端。

在确定对应数据请求的业务数据的获取地址后,就可以根据对应的获取地址获取到对应数据请求的业务数据。具体的:由服务器中的推送板块将对应的数据请求按照对应的获取地址发送给对应的业务板块,然后由业务板块根据数据请求向推送板块返回对应数据请求的业务数据。推送板块获取到对应数据请求的业务数据后,将其推送给对应的客户端。

306、检测是否收到第二确认回应。

与图2步骤203的实现方式相同,使用ACK应答机制,在服务器中的推送板块将对应的数据请求的业务数据推送给客户端后,检测是否收到第二确认回应,第二确认回应为客户端发送的确认收到数据请求对应的业务数据的应答。第二确认回应与图2步骤步骤203中的确认应答是相同的,检侧是否收到第二确认回应同样是为了保证业务数据传输的可靠性。

307、若在预设时段内没有收到第二确认应答,则重新推送数据请求对应的业务数据。

该步骤的实现方式与图2步骤204的实现方式是相同的,此处不再赘述。

进一步的,作为对上述各实施例的实现,本发明实施例的另一实施例还提供了一种数据传输的装置,用于实现上述图1、图2以及图3所述的方法。如图4所示,该装置包括:建立单元401、推送单元402以及监控单元403。

建立单元401,用于服务器与客户端建立套接字socket长连接;

推送单元402,用于当监测有业务更新时,主动通过socket长连接将更新后的业务数据推送给客户端,业务数据为客户端需要执行的任务或者策略;

监控单元403,用于实时监控推送的业务数据的相关进程。

进一步的,如图5所示,装置进一步包括:

检测单元404,用于在主动通过socket长连接将更新后的业务数据推送给客户端之后,检测是否收到确认应答,确认应答为客户端发送的确认收到业务数据的应答;

终止单元405,用于若收到确认应答,则终止业务数据的推送;

重新推送单元406,用于若在预设时段内没有收到确认应答,则重新推送业务数据。

进一步的,监控单元403用于:

根据预设规则将不同的客户端分配到对应的监控区域,以通过不同的监控区域对推送给客户端的业务数据的相关进程进行监控。

进一步的,如图5所示,装置进一步包括:

发送单元407,用于通过socket长连接接收客户端发送的数据请求,数据请求为客户端向服务器获取对应的业务数据的请求;

返回单元408,用于向客户端返回第一确认回应,第一确认回应为服务器确认接收到数据请求的回应;

推送单元402,还用于将对应数据请求的业务数据推送给客户端。

进一步的,如图5所示,装置进一步包括:

解析单元409,用于在将对应数据请求的业务数据推送给客户端之前,对数据请求进行解析;

确定单元410,用于确定对应数据请求的业务数据的获取地址;

获取单元411,用于获取对应数据请求的业务数据。

进一步的,装置进一步包括:

检测单元404,还用于在将对应数据请求的业务数据推送给客户端之后,检测是否收到第二确认回应,第二确认应答为客户端发送的确认收到数据请求对应的业务数据的应答;

终止单元405,还用于若收到第二确认回应,则终止业务数据的推送;

重新推送单元406,还用于若在预设时段内没有收到第二确认应答,则重新推送数据请求对应的业务数据。

本实施例提供的数据传输的装置,能够首先由服务器与客户端建立套接字socket长连接;然后在当监测有业务更新时,主动通过socket长连接将更新后的业务数据推送给客户端,业务数据为客户端需要执行的任务或者策略;并且可以通过socket长连接实时监控推送的业务数据的进程。与现有技术相比,本实施例中服务器在监测到业务更新时,可以主动向客户端推送对应的更新后的业务数据,并且由于服务器与客户端之前建立的为socket长连接,长连接可以保持客户端与服务之间持续的连接,因此不需要等待客户端向服务器发送请求时再向服务器获取业务数据,所以可以保证业务数据的实时性。另外,由于服务器与客户端之间可以保持持续的连接,因此服务器可以实时地监控业务推送的进程,进而提高对客户端管控实时性。

本发明的实施例公开了:

A1、一种数据传输的方法,其特征在于,所述方法包括:

服务器与客户端建立套接字socket长连接;

当监测有业务更新时,主动通过所述socket长连接将更新后的业务数据推送给所述客户端,所述业务数据为客户端需要执行的任务或者策略;

实时监控推送的业务数据的相关进程。

A2、根据A1所述的方法,其特征在于,在所述主动通过所述socket长连接将更新后的业务数据推送给所述客户端之后,所述方法进一步包括:

检测是否收到确认应答,所述确认应答为客户端发送的确认收到所述业务数据的应答;

若收到所述确认应答,则终止业务数据的推送;

若在预设时段内没有收到所述确认应答,则重新推送所述业务数据。

A3、根据A1所述的方法,其特征在于,所述实时监控推送的业务数据的相关进程,包括:

根据预设规则将不同的客户端分配到对应的监控区域,以通过不同的监控区域对推送给客户端的业务数据的相关进程进行监控。

A4、根据A1所述的方法,其特征在于,所述方法进一步包括:

通过所述socket长连接接收所述客户端发送的数据请求,所述数据请求为客户端向服务器获取对应的业务数据的请求;

向所述客户端返回第一确认回应,所述第一确认回应为所述服务器确认接收到所述数据请求的回应;并且,

将对应所述数据请求的业务数据推送给所述客户端。

A5、根据A4所述的方法,其特征在于,在所述将对应所述数据请求的业务数据推送给所述客户端之前,所述方法进一步包括:

对所述数据请求进行解析;

确定对应所述数据请求的业务数据的获取地址;

获取对应所述数据请求的业务数据。

A6、根据A4所述的方法,其特征在于,在所述将对应所述数据请求的业务数据推送给客户端之后,所述方法进一步包括:

检测是否收到第二确认回应,所述第二确认应答为客户端发送的确认收到所述数据请求对应的业务数据的应答;

若收到所述第二确认回应,则终止业务数据的推送;

若在所述预设时段内没有收到所述第二确认应答,则重新推送所述数据请求对应的业务数据。

B7、一种数据传输的装置,其特征在于,所述装置包括:

建立单元,用于服务器与客户端建立套接字socket长连接;

推送单元,用于当监测有业务更新时,主动通过所述socket长连接将更新后的业务数据推送给所述客户端,所述业务数据为客户端需要执行的任务或者策略;

监控单元,用于实时监控推送的业务数据的相关进程。

B8、根据B7所述的装置,其特征在于,所述装置进一步包括:

检测单元,用于在所述主动通过所述socket长连接将更新后的业务数据推送给所述客户端之后,检测是否收到确认应答,所述确认应答为客户端发送的确认收到所述业务数据的应答;

终止单元,用于若收到所述确认应答,则终止业务数据的推送;

重新推送单元,用于若在预设时段内没有收到所述确认应答,则重新推送所述业务数据。

B9、根据B7所述的装置,其特征在于,所述监控单元用于:

根据预设规则将不同的客户端分配到对应的监控区域,以通过不同的监控区域对推送给客户端的业务数据的相关进程进行监控。

B10、根据B7所述的装置,其特征在于,所述装置进一步包括:

发送单元,用于通过所述socket长连接接收所述客户端发送的数据请求,所述数据请求为客户端向服务器获取对应的业务数据的请求;

返回单元,用于向所述客户端返回第一确认回应,所述第一确认回应为所述服务器确认接收到所述数据请求的回应;

所述推送单元,还用于将对应所述数据请求的业务数据推送给所述客户端。

B11、根据B10所述的装置,其特征在于,所述装置进一步包括:

解析单元,用于在所述将对应所述数据请求的业务数据推送给所述客户端之前,对所述数据请求进行解析;

确定单元,用于确定对应所述数据请求的业务数据的获取地址;

获取单元,用于获取对应所述数据请求的业务数据。

B12、根据B10所述的装置,其特征在于,所述装置进一步包括:

所述检测单元,还用于在所述将对应所述数据请求的业务数据推送给客户端之后,检测是否收到第二确认回应,所述第二确认应答为客户端发送的确认收到所述数据请求对应的业务数据的应答;

所述终止单元,还用于若收到所述第二确认回应,则终止业务数据的推送;

所述重新推送单元,还用于若在所述预设时段内没有收到所述第二确认应答,则重新推送所述数据请求对应的业务数据。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的发明名称(如数据传输的装置)中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

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