一种优化大数据传输的方法、装置及相关设备与流程

文档序号:11677572阅读:348来源:国知局
一种优化大数据传输的方法、装置及相关设备与流程

本发明涉及通信技术领域,尤其涉及一种优化大数据传输的方法、装置及相关设备。



背景技术:

随着无线通讯技术的发展以及2g/3g/4g网络的同时覆盖,无线通信系统的管理规模越来越大,管理对象数量呈线性增长,为了保证通信业务稳定运行,需要经常查询管理对象的各种实时运行状态,那么在这个过程当中如何高效地传输大量的运行状态数据和快速地进行呈现界面的刷新就显得十分重要。

目前业界在对通讯管理对象运行状态查询或刷新时的数据传输和界面刷新上通常采用的方法是:把查询到的所有状态数据都进行传输并重新绘制呈现给用户的界面。在管理对象规模庞大,运行状态数据众多,而客户端和服务器之间的带宽又非常有限的情况下,大数据量的数据传输和界面刷新会导致客户端卡死甚至数据传输失败,譬如网管的“时隙状态查询”功能经常会查出几十万条数据,客户端会有卡死现象。



技术实现要素:

本发明要解决的技术问题是,提供一种优化大数据传输的方法、装置及相关设备,提高服务器与客户端间进行大数据传输的效率。

本发明采用的技术方案是,所述优化大数据传输的方法,在服务器侧执行的流程包括:

基于客户端发起的访问请求进行数据查询,根据查询结果确定出有变化的 数据,将所述有变化的数据发送给客户端,以供客户端根据所述有变化的数据呈现查询结果界面。

进一步的,在所述服务器是首次处理所述访问请求的情况下,所述根据查询结果确定出有变化的数据,将所述有变化的数据发送给客户端,包括:

对查询结果中所有的数据进行标注,将所有数据的标注内容反馈给发起所述访问请求的客户端。

进一步的,在所述服务器是首次处理所述访问请求的情况下,所述方法在服务器侧执行的流程,还包括:

初始化查询结果存储空间并存入所述查询结果。

进一步的,在所述服务器是非首次处理所述访问请求的情况下,所述根据查询结果确定出有变化的数据,将所述有变化的数据发送给客户端,包括:

将查询结果与服务器侧的查询结果存储空间中存有的数据进行比较,对发生变化的数据进行标注,并将变化数据的标注内容广播给所有的客户端;所述查询结果存储空间中存有的数据在每次数据查询之后均会基于当次的查询结果进行更新。

进一步的,在所述服务器是非首次处理所述访问请求的情况下,所述根据查询结果确定出有变化的数据,将所述有变化的数据发送给客户端,还包括:

若客户端是首次发起访问请求,则对查询结果中所有的数据进行标注,并将所有数据的标注内容反馈给发起所述访问请求的客户端。

进一步的,对数据进行标注的标注内容包括:数据对象的名称、出自所述查询结果中的该数据对象的状态以及该数据对象发生变化的类型;所述数据对象发生变化的类型,包括:增加、修改或删除;

在所述对查询结果中所有的数据对象进行标注时,采用增加作为所述所有的数据对象发生变化的类型;

在将查询结果与服务器侧的查询结果存储空间中存有的数据进行比较时,对于所述查询结果中有而未见于查询结果存储空间的数据对象,采用增加作为 所述所有的数据对象发生变化的类型;对于所述查询结果以及查询结果存储空间均存在且状态有变化的数据对象,采用修改作为所述所有的数据对象发生变化的类型;对于所述查询结果中未见而存在于查询结果存储空间的数据对象,采用删除作为所述所有的数据对象发生变化的类型。

本发明还提供一种优化大数据传输的方法,在客户端侧执行的流程包括:

向服务器发送访问请求,以供服务器基于所述访问请求进行数据查询并将根据查询结果确定出的有变化的数据发送给客户端;

接收所述有变化的数据,并根据所述有变化的数据呈现查询结果界面。

进一步的,在客户端是首次发起所述访问请求的情况下,所述接收所述有变化的数据,包括:

接收到服务器反馈的对所述查询结果中所有的数据进行标注的标注内容。

进一步的,在客户端是非首次发起所述访问请求的情况下,所述接收所述有变化的数据,包括:

接收到服务器广播的变化数据的标注内容,所述变化数据的标注内容是服务器将查询结果与服务器侧的查询结果存储空间中存有的数据进行比较后对发生变化的数据进行标注的内容;所述查询结果存储空间中存有的数据在每次数据查询之后服务器均会基于当次的查询结果进行更新。

进一步的,对数据进行标注的标注内容包括:数据对象的名称、出自所述查询结果中的该数据对象的状态以及该数据对象发生变化的类型;所述数据对象发生变化的类型,包括:增加、修改或删除。

进一步的,在客户端是首次发起所述访问请求的情况下,所述根据所述有变化的数据呈现查询结果界面,包括:

针对查询操作的访问请求,基于接收到的所述所有数据的标注内容更新客户端侧的查询结果存储空间中的数据,并根据客户端侧的查询结果存储空间中的数据初始化呈现查询结果界面;

在客户端是非首次发起所述访问请求的情况下,所述根据所述有变化的数据呈现查询结果界面,包括:

针对查询操作的访问请求,基于接收到的所述变化数据的标注内容更新客户端侧的查询结果存储空间中的数据,并根据客户端侧的查询结果存储空间中的数据初始化呈现查询结果界面;

针对刷新操作的访问请求,基于接收到的所述变化数据的标注内容更新客户端侧的查询结果存储空间中的数据,并根据所述变化数据的标注内容找到已呈现的查询结果界面上对应的界面数据进行刷新。

本发明还提供一种优化大数据传输的装置,设置于服务器侧,所述装置包括:

数据查询模块,用于基于客户端发起的访问请求进行数据查询;

数据处理模块,用于根据查询结果确定出有变化的数据,将所述有变化的数据发送给客户端,以供客户端根据所述有变化的数据呈现查询结果界面。

进一步的,在所述服务器是首次处理所述访问请求的情况下,所述数据处理模块,具体用于:

对查询结果中所有的数据进行标注,将所有数据的标注内容反馈给发起所述访问请求的客户端。

进一步的,在所述服务器是首次处理所述访问请求的情况下,所述数据处理模块,还用于:

初始化查询结果存储空间并存入所述查询结果。

进一步的,在所述服务器是非首次处理所述访问请求的情况下,所述数据处理模块,具体用于:

将查询结果与服务器侧的查询结果存储空间中存有的数据进行比较,对发生变化的数据进行标注,并将变化数据的标注内容广播给所有的客户端;所述查询结果存储空间中存有的数据在每次数据查询之后均会基于当次的查询结果 进行更新。

进一步的,在所述服务器是非首次处理所述访问请求的情况下,所述数据处理模块,还用于:

若客户端是首次发起访问请求,则对查询结果中所有的数据进行标注,并将所有数据的标注内容反馈给发起所述访问请求的客户端。

进一步的,对数据进行标注的标注内容包括:数据对象的名称、出自所述查询结果中的该数据对象的状态以及该数据对象发生变化的类型;所述数据对象发生变化的类型,包括:增加、修改或删除;

所述数据处理模块,具体用于:在所述对查询结果中所有的数据对象进行标注时,采用增加作为所述所有的数据对象发生变化的类型;

在将查询结果与服务器侧的查询结果存储空间中存有的数据进行比较时,对于所述查询结果中有而未见于查询结果存储空间的数据对象,采用增加作为所述所有的数据对象发生变化的类型;对于所述查询结果以及查询结果存储空间均存在且状态有变化的数据对象,采用修改作为所述所有的数据对象发生变化的类型;对于所述查询结果中未见而存在于查询结果存储空间的数据对象,采用删除作为所述所有的数据对象发生变化的类型。

本发明还提供一种优化大数据传输的装置,设置于客户端侧,所述装置包括:

发送模块,用于向服务器发送访问请求,以供服务器基于所述访问请求进行数据查询并将根据查询结果确定出的有变化的数据发送给客户端;

接收模块,用于接收所述有变化的数据;

界面模块,用于根据所述有变化的数据呈现查询结果界面。

进一步的,在客户端是首次发起所述访问请求的情况下,所述接收模块,用于:

接收到服务器反馈的对所述查询结果中所有的数据进行标注的标注内容。

进一步的,在客户端是非首次发起所述访问请求的情况下,所述接收模块,用于:

接收到服务器广播的变化数据的标注内容,所述变化数据的标注内容是服务器将查询结果与服务器侧的查询结果存储空间中存有的数据进行比较后对发生变化的数据进行标注的内容;所述查询结果存储空间中存有的数据在每次数据查询之后服务器均会基于当次的查询结果进行更新。

进一步的,对数据进行标注的标注内容包括:数据对象的名称、出自所述查询结果中的该数据对象的状态以及该数据对象发生变化的类型;所述数据对象发生变化的类型,包括:增加、修改或删除。

进一步的,在客户端是首次发起所述访问请求的情况下,所述界面模块,用于:

针对查询操作的访问请求,基于接收到的所述所有数据的标注内容更新客户端侧的查询结果存储空间中的数据,并根据客户端侧的查询结果存储空间中的数据初始化呈现查询结果界面;

在客户端是非首次发起所述访问请求的情况下,所述界面模块,用于:

针对查询操作的访问请求,基于接收到的所述变化数据的标注内容更新客户端侧的查询结果存储空间中的数据,并根据客户端侧的查询结果存储空间中的数据初始化呈现查询结果界面;

针对刷新操作的访问请求,基于接收到的所述变化数据的标注内容更新客户端侧的查询结果存储空间中的数据,并根据所述变化数据的标注内容找到已呈现的查询结果界面上对应的界面数据进行刷新。

本发明还提供一种服务器,包括上述设置于服务器侧的优化大数据传输的装置。

本发明还提供一种客户端,包括上述设置于客户端侧的优化大数据传输的 装置。

采用上述技术方案,本发明至少具有下列优点:

本发明所述优化大数据传输的方法、装置及相关设备,针对大多数查询变化的对象和状态并不多、有时候甚至没有变化的现状,只需要传输和刷新变化的对象和状态即可,避免数据传输的浪费,有效的减少数据查询和刷新时客户端和服务器之间的大数据传输的数据量,并提高用户界面刷新速度,特别是对管理对象规模庞大的系统有很高的实用价值。

附图说明

图1为本发明第一实施例的优化大数据传输的方法流程图;

图2为本发明第二实施例的优化大数据传输的方法流程图;

图3为本发明第三实施例的优化大数据传输的装置组成结构示意图;

图4为本发明第四实施例的优化大数据传输的装置组成结构示意图;

图5为本发明第七实施例的优化大数据传输的系统的组成结构示意图;

图6为本发明第七实施例的系统初始化情况示意图。

具体实施方式

为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。

本发明第一实施例,一种优化大数据传输的方法,如图1所示,在服务器侧执行的流程包括以下具体步骤:

步骤s101,基于客户端发起的访问请求进行数据查询。

步骤s102,根据查询结果确定出有变化的数据,将所述有变化的数据发送给客户端,以供客户端根据所述有变化的数据呈现查询结果界面。

具体的,根据服务器侧是否是首次处理所述访问请求,分以下两种情况对 步骤s102进行详细描述:

第一种情况:在所述服务器是首次处理所述访问请求的情况下,此时,客户端必然也是首次发起访问请求,步骤s102,包括:

对查询结果中所有的数据进行标注,将所有数据的标注内容反馈给发起所述访问请求的客户端。

优选的,所述方法在服务器侧执行的流程,还包括:

初始化查询结果存储空间并存入所述查询结果。

第二种情况:在所述服务器是非首次处理所述访问请求的情况下,此时,客户端可能是首次发起访问请求,也可能是非首次发起访问请求,步骤s102,包括:

一方面,将查询结果与服务器侧的查询结果存储空间中存有的数据进行比较,对发生变化的数据进行标注,并将变化数据的标注内容广播给所有的客户端;所述查询结果存储空间中存有的数据在每次数据查询之后均会基于当次的查询结果进行更新。

另一方面,步骤s102,还包括:

若客户端是首次发起访问请求,则对查询结果中所有的数据进行标注,并将所有数据的标注内容反馈给发起所述访问请求的客户端。

在本发明实施例中,对数据进行标注的标注内容包括:数据对象的名称、出自所述查询结果中的该数据对象的状态以及该数据对象发生变化的类型;所述数据对象发生变化的类型,包括:增加、修改或删除;本发明实施例的技术方案可以应用于无线通信领域对管理对象运行状态的查询和界面刷,也可适用于包含通信技术在内的多个领域。

进一步的,在第一种情况和第二种情况下,在所述对查询结果中所有的数据对象进行标注时,采用增加作为所述所有的数据对象发生变化的类型;

在第二种情况下,在将查询结果与服务器侧的查询结果存储空间中存有的数据进行比较时,对于所述查询结果中有而未见于查询结果存储空间的数据对 象,采用增加作为所述所有的数据对象发生变化的类型;对于所述查询结果以及查询结果存储空间均存在且状态有变化的数据对象,采用数据对象的最新状态进行标注,并采用修改作为所述所有的数据对象发生变化的类型;对于所述查询结果中未见而存在于查询结果存储空间的数据对象,采用删除作为所述所有的数据对象发生变化的类型。

本发明第二实施例,一种优化大数据传输的方法,如图2所示,在客户端侧执行的流程以下具体步骤:

步骤s201,向服务器发送访问请求,以供服务器基于所述访问请求进行数据查询并将根据查询结果确定出的有变化的数据发送给客户端;

步骤s202,接收所述有变化的数据,并根据所述有变化的数据呈现查询结果界面。

具体的,根据客户端侧是否是首次发起所述访问请求,分以下两种情况对步骤s202进行详细描述:

第一种情况:在客户端是首次发起所述访问请求的情况下,步骤s202中的接收所述有变化的数据,包括:接收到服务器反馈的对所述查询结果中所有的数据进行标注的标注内容。本领域技术人员公知的,客户端首次发起的必定是查询请求,不会是刷新请求。

第二种情况:在客户端是非首次发起所述访问请求的情况下,步骤s202中的接收所述有变化的数据,包括:

接收到服务器广播的变化数据的标注内容,所述变化数据的标注内容是服务器将查询结果与服务器侧的查询结果存储空间中存有的数据进行比较后对发生变化的数据进行标注的内容;所述查询结果存储空间中存有的数据在每次数据查询之后服务器均会基于当次的查询结果进行更新。

在本实施中,对数据进行标注的标注内容包括:数据对象的名称、出自所述查询结果中的该数据对象的状态以及该数据对象发生变化的类型;所述数据 对象发生变化的类型,包括:增加、修改或删除。

进一步的,在第一种情况下,步骤s202中的根据所述有变化的数据呈现查询结果界面,包括:

针对查询操作的访问请求,基于接收到的所述所有数据的标注内容更新客户端侧的查询结果存储空间中的数据,并根据客户端侧的查询结果存储空间中的数据初始化呈现查询结果界面;

在第二种情况下,步骤s202中的根据所述有变化的数据呈现查询结果界面,包括:

针对查询操作的访问请求,基于接收到的所述变化数据的标注内容更新客户端侧的查询结果存储空间中的数据,并根据客户端侧的查询结果存储空间中的数据初始化呈现查询结果界面;

针对刷新操作的访问请求,基于接收到的所述变化数据的标注内容更新客户端侧的查询结果存储空间中的数据,并根据所述变化数据的标注内容找到已呈现的查询结果界面上对应的界面数据进行刷新。

本发明第三实施例,本实施例介绍一种优化大数据传输的装置,设置于服务器侧,如图3所示,该装置包括以下组成部分:

1)数据查询模块301,用于基于客户端发起的访问请求进行数据查询;

2)数据处理模块302,用于根据查询结果确定出有变化的数据,将所述有变化的数据发送给客户端,以供客户端根据所述有变化的数据呈现查询结果界面。

具体的,根据服务器侧是否是首次处理所述访问请求,分以下两种情况对数据处理模块302的功能进行详细描述:

第一种情况:在所述服务器是首次处理所述访问请求的情况下,此时,客户端必然是首次发起访问请求,数据处理模块302,具体用于:

对查询结果中所有的数据进行标注,将所有数据的标注内容反馈给发起所 述访问请求的客户端。

优选的,数据处理模块302,还用于:

初始化查询结果存储空间并存入所述查询结果。

第二种情况:在所述服务器是非首次处理所述访问请求的情况下,数据处理模块302,具体用于:

一方面,将查询结果与服务器侧的查询结果存储空间中存有的数据进行比较,对发生变化的数据进行标注,并将变化数据的标注内容广播给所有的客户端;所述查询结果存储空间中存有的数据在每次数据查询之后均会基于当次的查询结果进行更新。

另一方面,数据处理模块302,还用于:

若客户端是首次发起访问请求,则对查询结果中所有的数据进行标注,并将所有数据的标注内容反馈给发起所述访问请求的客户端。

在本发明实施例中,对数据进行标注的标注内容包括:数据对象的名称、出自所述查询结果中的该数据对象的状态以及该数据对象发生变化的类型;所述数据对象发生变化的类型,包括:增加、修改或删除;

进一步的,数据处理模块302,具体用于:在所述对查询结果中所有的数据对象进行标注时,采用增加作为所述所有的数据对象发生变化的类型;

在将查询结果与服务器侧的查询结果存储空间中存有的数据进行比较时,对于所述查询结果中有而未见于查询结果存储空间的数据对象,采用增加作为所述所有的数据对象发生变化的类型;对于所述查询结果以及查询结果存储空间均存在且状态有变化的数据对象,采用数据对象的最新状态进行标注,并采用修改作为所述所有的数据对象发生变化的类型;对于所述查询结果中未见而存在于查询结果存储空间的数据对象,采用删除作为所述所有的数据对象发生变化的类型。

本发明第四实施例,本实施例介绍一种优化大数据传输的装置,设置于客 户端侧,如图4所示,该装置包括以下组成部分:

1)发送模块401,用于向服务器发送访问请求,以供服务器基于所述访问请求进行数据查询并将根据查询结果确定出的有变化的数据发送给客户端;

2)接收模块402,用于接收所述有变化的数据;

具体的,根据客户端侧是否是首次发起所述访问请求,分以下两种情况对接收模块402的功能进行详细描述:

第一种情况:在客户端是首次发起所述访问请求的情况下,接收模块402,用于:接收到服务器反馈的对所述查询结果中所有的数据进行标注的标注内容。

第二种情况:在客户端是非首次发起所述访问请求的情况下,所述接收模块,用于:

接收到服务器广播的变化数据的标注内容,所述变化数据的标注内容是服务器将查询结果与服务器侧的查询结果存储空间中存有的数据进行比较后对发生变化的数据进行标注的内容;所述查询结果存储空间中存有的数据在每次数据查询之后服务器均会基于当次的查询结果进行更新。

在本实施例中,对数据进行标注的标注内容包括:数据对象的名称、出自所述查询结果中的该数据对象的状态以及该数据对象发生变化的类型;所述数据对象发生变化的类型,包括:增加、修改或删除。

3)界面模块403,用于根据所述有变化的数据呈现查询结果界面。

具体的,在客户端是首次发起所述访问请求的情况下,界面模块403用于:

针对查询操作的访问请求,基于接收到的所述所有数据的标注内容更新客户端侧的查询结果存储空间中的数据,并根据客户端侧的查询结果存储空间中的数据初始化呈现查询结果界面;

在客户端是非首次发起所述访问请求的情况下,界面模块403用于:

针对查询操作的访问请求,基于接收到的所述变化数据的标注内容更新客户端侧的查询结果存储空间中的数据,并根据客户端侧的查询结果存储空间中的数据初始化呈现查询结果界面;

针对刷新操作的访问请求,基于接收到的所述变化数据的标注内容更新客户端侧的查询结果存储空间中的数据,并根据所述变化数据的标注内容找到已呈现的查询结果界面上对应的界面数据进行刷新。

本发明第五实施例,一种服务器,可以作为实体装置来理解,包括第三实施例所述的优化大数据传输的装置。

本发明第六实施例,一种客户端,可以作为实体装置来理解,包括第四实施例所述的优化大数据传输的装置。

本发明第七实施例,本实施例是在上述实施例的基础上,结合附图5~6介绍几个本发明的应用实例。

本发明实施例中,对于技术方案的理解上需要注意的是,客户端有可能第一次发起访问请求,服务器也有可能第一次进行数据查询,为了区分客户端以及服务器是否是首次操作,分别设置不同的标志位,通过标志位的赋值变化来区分应执行的不同处理流程。本发明实施例中涉及的优化大数据传输的系统的组成结构如图5所示。

应用实例一:

系统运行,第一次进行查询时:

步骤1:如图6所示,系统开始运行时,客户端会进行系统初始化并设置clientfirstreq=1,服务器进行系统初始化并设置serverfirstreq=1,datachange=0,并启动监听模块的操作监听器和数据变化监听器,实时地监听用户发起的操作请求和数据变化广播消息。

具体的,clientfirstreq表示客户端是否是首次向服务器发起访问请求的标志位,clientfirstreq=1表示首次访问,clientfirstreq=0表示非首次访问。

serverfirstreq表示服务器端是否是首次响应访问请求的标志位, serverfirstreq=1表示首次响应,serverfirstreq=0表示非首次响应。

datachange表示本次查询结果与上一次的相比是否发生变化,datachange=0表示无变化,datachange=1表示有变化。凡是存在新增、删除和修改中的至少之一,则表示有变化。

步骤2:操作监听器接收到查询操作请求,构造查询请求消息发送给服务器端的数据查询模块。

步骤3:数据查询模块收到查询请求消息后进行数据查询,获取到查询结果后通知数据处理模块。

步骤4:数据处理模块收到通知后,判断serverfirstreq为1,用接收到的查询结果数据初始化中间存储模块,并用add标注所有的查询结果数据,按照<obj,status,add>的格式进行标注得到各数据对象obj对应的三元组,设置serverfirstreq=0,把标注后的三元组集合作为标注后的变化数据以<datachange,标注后的变化数据>格式发送给客户端,标注后的变化数据即为标注后的三元组集合。

步骤5:客户端的界面呈现模块收到数据处理模块发送的应答消息,判断clientfirstreq为1,取出接收到的变化数据去掉标签后更新中间数据模块中的数据,设置clientfirstreq=0,并用中间数据模块中的数据初始化呈现给用户的查询结果界面。

应用实例二:

系统已正常运行,客户端非第一次查询且两次查询之间有数据变化时:

这种场景前提是,系统已经在正常运行当中,客户端监听模块的操作监听器和数据变化监听器已经启动,在正常监听用户的操作请求和数据变化广播,已经进行过查询操作,clientfirstreq和serverfirstreq都已被设置为0,中间数据模块和中间存储模块中已经有上一次的查询结果数据。

步骤1:操作监听器接收到查询操作请求,构造查询请求消息发送给服务器端的数据查询模块。

步骤2:数据查询模块收到查询请求消息后进行数据查询,获取到查询结果后通知数据处理模块。

步骤3:数据处理模块收到通知后,判断serverfirstreq为0,从中间存储模块中取出上一次的查询结果跟接收到的当前查询结果进行对比,根据对比结果进行变化数据标注,譬如有三条记录有变更:<obj1,status,add>,<obj2,status,mod>,<obj3,status,del>,设置datachange=1,用当前查询结果更新中间存储模块中的数据,并广播对比后打了标签的变化数据给所有客户端,判断请求消息中的clientfirstreq为0,把标注后的三元组集合作为变化数据以<datachange,标注后的变化数据>格式发送给客户端。

步骤4:客户端的数据变化监听器监听到服务器端广播的变化数据广播,判断clientfirstreq为0,用广播的变化数据更新中间数据模块中的数据。

步骤5:客户端的界面呈现模块收到数据处理模块发送的应答消息,判断clientfirstreq为0,再判断datachange为1,说明有数据变化,则取出接收到的变化数据根据标签快速更新中间数据模块中的数据,并用中间数据模块中的数据初始化呈现给用户的查询结果界面。

应用实例三:

系统已正常运行,在查询界面上发起刷新且有数据变化时:

这种场景前提是,系统已经在正常运行当中,客户端监听模块的操作监听器和数据变化监听器已经启动,在正常监听用户的操作请求和变化数据广播,客户端进行了一次查询操作且没有关闭查询结果界面,在查询结果界面上发起的刷新操作,clientfirstreq和serverfirstreq都已被设置为0,中间数据模块和中间存储模块中已经有上一次的查询结果数据。

步骤1:操作监听器接收到刷新操作请求,构造刷新操作对应的查询请求消息(跟查询操作的消息一样)发送给服务器端的数据查询模块。

步骤2:数据查询模块收到查询请求消息后进行数据查询,获取到查询结果后通知数据处理模块。

步骤3:数据处理模块收到通知后,判断serverfirstreq为0,从中间存储模块中取出上一次的查询结果跟接收到的当前查询结果进行对比,根据对比结果进行变化数据标注,譬如有三条记录有变更:<obj1,status,add>,<obj2,status,mod>,<obj3,status,del>,设置datachange=1,用当前查询结果更新中间存储模块中的数据,并广播对比后打了标签的变化数据给所有客户端,判断请求消息中的clientfirstreq为0,把标注后的三元组集合作为变化数据以<datachange,标注后的变化数据>格式发送给客户端。

步骤4:客户端的数据变化监听器监听到服务器端广播的变化数据广播,判断clientfirstreq为0,用广播中的变化数据更新中间数据模块中的数据。

步骤5:客户端的界面呈现模块收到数据处理模块发送的应答消息,判断clientfirstreq为0,再判断datachange为1,说明有数据变化,则取出接收到的变化数据根据标签快速更新中间数据模块中的数据,判断当前为刷新操作,界面已经初始化过,用标注后的变化数据<obj1,status,add>,<obj2,status,mod>,<obj3,status,del>根据标签找到对应的界面数据根据标签进行刷新即可。

应用实例四:

系统已正常运行,在查询界面上发起刷新且没有数据变化时:

这种场景前提是,系统已经在正常运行当中,客户端监听模块的操作监听器和数据变化监听器已经启动,在正常监听用户的操作请求和变化数据广播,客户端进行了一次查询操作且没有关闭查询结果界面,在查询结果界面上发起的刷新操作,clientfirstreq和serverfirstreq都已被设置为0,中间数据模块和中间存储模块中已经有上一次的查询结果数据。

步骤1:操作监听器接收到刷新操作请求,构造刷新操作对应的查询请求消息(跟查询操作的消息一样)发送给服务器端的数据查询模块。

步骤2:数据查询模块收到查询请求消息后进行数据查询,获取到查询结果后通知数据处理模块。

步骤3:数据处理模块收到通知后,判断serverfirstreq为0,从中间存储模 块中取出上一次的查询结果跟接收到的当前查询结果进行对比,没有数据变化,设置datachange=0,判断请求消息中的clientfirstreq为0,以<datachange,null>的格式作为数据发送应答给客户端。

步骤4:客户端的界面呈现模块收到数据处理模块发送的应答消息,判断clientfirstreq为0,再判断datachange为0,说明没有数据变化,判断当前为刷新操作,界面已经初始化过,不做任何操作结束。

应用实例五:

系统已正常运行,假设有两个用户分别在客户端a和客户端b上进行相同的查询操作,客户端a第一次查询,客户端b是非第一次查询,且两次查询都有数据变化:

这种场景前提是,系统已经在正常运行当中,客户端监听模块的操作监听器和数据变化监听器已经启动,在正常监听用户的操作请求和变化数据广播,客户端a的clientfirstreq已被设置为1,客户端b的clientfirstreq已被设置为0,服务端的serverfirstreq已被设置为0,客户端b的中间数据模块和服务器端的中间存储模块中已经有上一次的查询结果数据,查询模块收到请求消息后放到队列中进行串行处理。

步骤1:客户端a和b的操作监听器接收到查询操作请求,构造操作对应的查询请求消息发送给服务器端的数据查询模块。

步骤2:数据查询模块收到查询请求消息后放到队列中排队,假设客户端a的请求消息在前客户端b的请求在后,先取出客户端a的请求消息进行数据查询,获取到查询结果后通知数据处理模块,再取出客户端b的请求消息做同样的处理。

步骤3:数据处理模块收到客户端a的请求消息查询结果通知后,判断serverfirstreq为0,从中间存储模块中取出上一次的查询结果跟接收到的当前查询结果进行对比,根据对比结果进行变化数据标注,譬如有三条记录有变更:<obj1,status,add>,<obj2,status,mod>,<obj3,status,del>,设置datachange=1, 用当前查询结果更新中间存储模块中的数据,并广播对比后打了标签的变化数据给所有客户端,判断请求消息中的clientfirstreq为1,用add标注所有的查询结果数据作为标注后的变化数据以<datachange,标注后的变化数据>格式发送给客户端a。

步骤4:客户端a和客户端b的数据变化监听器分别监听到服务器端广播的变化数据,判断客户端a的clientfirstreq为1,不需要更新客户端a的中间数据模块,客户端b的clientfirstreq为0,用广播的变化数据更新客户端b的中间数据模块,使得客户端b缓存的上一次结果与服务器端一致。

步骤5:客户端a的界面呈现模块收到数据处理模块发送的应答消息,判断clientfirstreq为1,取出接收到的变化数据去掉标签后用来初始化中间数据模块,设置clientfirstreq=0,并用中间数据模块中的数据初始化呈现给用户的查询结果界面。

步骤6:数据处理模块收到客户端b的请求消息查询结果通知后,判断serverfirstreq为0,从中间存储模块中取出上一次的查询结果跟接收到的当前查询结果进行对比,根据对比结果进行变化数据标注,譬如有三条记录有变更:<obj1,status,add>,<obj2,status,mod>,<obj3,status,del>,设置datachange=1,用当前查询结果更新中间存储模块中的数据,并广播变化数据给所有客户端,判断请求消息中的clientfirstreq为0,用对比后打了标签的变化数据以<datachange,标注后的变化数据>格式发送给客户端b。

步骤7:客户端a和客户端b的数据变化监听器分别监听到服务器端广播的变化数据,判断客户端a和b的clientfirstreq都为0,分别用广播的变化数据更新客户端a和b的中间数据模块。

步骤8:客户端b的界面呈现模块收到数据处理模块发送的应答消息,判断clientfirstreq为0,取出接收到的标注后的变化数据根据标签快速更新中间数据模块,并用中间数据模块中的数据初始化呈现给用户的查询结果界面。

总的来说,本发明实施例中客户端发起的访问请求分为首次查询操作请求、 非首次查询操作请求和刷新操作请求,这三种请求对于服务器端进行数据查询来说并不用区分,而对于客户端进行界面显示时,会区分查询操作和刷新操作而界面显示处理的方式有所不同。对于客户端首次发起查询请求而服务器是非首次响应的这种特殊情况,在服务器端将变化数据的标注内容对所有客户端进行广播的同时,还需要专门针对发起该首次查询请求的客户端反馈查询结果中所有数据的标注内容。

本发明实施例所述的优化大数据传输和刷新的方法,利用缓存机制以及在服务器端进行数据差异比较得到变化数据并使用add、mod和del三种标签进行标注,仅传输标注后的变化数据到客户端,客户端界面刷新时只使用标注后的变化数据进行刷新,从根本上减少服务器端和客户端之间的传输数据量,减少客户端界面刷新时的比较次数和控件刷新次数,提高数据查询和刷新效率。

通过具体实施方式的说明,应当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明加以限制。

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