一种基于选择性缓存与同步的客户端与服务器数据交互方法与流程

文档序号:12809823阅读:371来源:国知局
一种基于选择性缓存与同步的客户端与服务器数据交互方法与流程

本方法涉及一种在c/s模式下,客户端与服务器之间数据交互的方法,具体涉及一种基于选择性缓存与同步的客户端与服务器数据交互方法。



背景技术:

c/s与b/s模式是两种我们熟知的软件架构方式。c/s架构的全称是client/server,即客户端服务器端结构。其特点是数据的分析和处理任务被合理地分配到客户端和服务器端来实现。而b/s架构则不同,几乎所有的数据分析与处理都被分配到服务器端,作为客户端的浏览器只负责显示,在此,我们重点讨论c/s架构。

由于c/s架构中,数据处理与分析的任务被分配到系统前后两端,所以该架构适合于前端(即客户端)需处理较多复杂和繁重的数据分析与处理任务的情况。也正是由于这个特点,数据被分布在客户端与服务器两地,可想而知,为了保障系统的准确运行,这两地的数据必须要保持同步。

传统的保持两地数据同步的方式侧重于“实时”同步。这样的方式虽然保障了系统的准确运行,但其对两地间通信质量、带宽和网速提出了很高的要求,在一些客户端需要处理大量数据并且对时效性要求十分严格的情况下,若网络质量达不到要求,传统的“实时”同步模式的弊端就显而易见了。如图1所示:传统的客户端与服务器端实时的同步过程下,客户端每进行一个操作都需要与服务器进行一次交互。若完成一个数据分析与处理的阶段需要n个操作,那么整个阶段需要进行n次交互。如图2所示:若一次数据分析任务包含m个相同的测试阶段,则计算下来,整个任务需要n×m次交互。



技术实现要素:

为了克服传统的“实时”同步模式带来的弊端,本发明提出了一种基于选择性缓存与同步的客户端与服务器数据交互方法,采用一种选择性缓存的方式,提高数据交互的高效性和准确性。本方法抛弃了对客户端与服务器端之间所交互的全部数据都进行实时同步的方式,选择服务器对其时效性要求低而客户端对其时效性要求严格的数据缓存于客户端本地,待整个处理阶段结束之后,再将处理结果同步至服务器端。

为达到上述目的,本发明采用如下技术方案:

一种基于选择性缓存与同步的客户端与服务器数据交互方法,包括如下步骤:

1)将客户端与服务器的整个传输过程作为一个处理任务,并将任务分成若干相同或相似的处理阶段;

2)客户端先与服务器进行一次交互,获取一个处理任务下若干个处理阶段所需的基本数据,这些数据将分别为客户端的每一个处理阶段提供类似于参数的作用;获取数据后缓存于客户端本地,等待每一个处理阶段的使用;

3)客户端每次只需调用本地缓存中的数据,完成每个处理阶段的数据分析与处理,处理结果继续缓存于本地,然后继续进行下一个阶段的数据分析与处理;

4)每个处理阶段将会产生一系列的细节数据,这些细节数据将作为一个整体保存在客户端本地,就这些细节数据而言,服务器是不关心的,对于服务器而言,它们都将被隐藏起来;

5)每个处理阶段的细节数据以及最终结果都将在客户端本地以一种适当的方式储存并被管理起来;若有必要,这些被管理的成套的细节数据及数据处理结果能够在客户端查看或导出;

6)客户端中另一个线程将进行网络环境的检测,若其发现网络环境不佳时,则不进行任何操作,若发现网络环境良好,则通知客户端将缓存于本地的各个处理阶段的结果同步至服务器。

在客户端的目录下,每一个任务下有若干数据处理阶段,而这些处理阶段则是缓存与同步的最小单位;每个处理阶段由阶段处理结果和处理细节组成,处理细节随应用场景不同,也将产生不同的一整组细节数据;所述客户端对每个处理阶段的处理过程如下:

1)客户端将单个处理阶段所需的全部数据由本地缓存读取出来,为了减少客户端与服务器的信息交互量,这一组数据需要尽量精简,假设单个处理阶段所需数据为s1,s2,s3,…,sm;

2)获取到这组数据之后,将其像函数的实参一样,代入本地的单个处理阶段过程中;随着此过程的进行,一系列的衍生数据也随之产生p1,p2,p3,…,px,q1,q2,q3,…qy,……;

3)直到整个处理阶段结束,得到了最终的处理结果w1,w2,w3……wn,以及过程中伴随产生的一系列衍生数据p1,p2,p3,…,px,q1,q2,q3,…qy,……;

4)以上产生的处理结果以及一系列衍生数据将会以合适的方式存于本地,它们将以一个整体按照既定的顺序嵌入在某次处理任务当中的一系列处理阶段中,等待客户端将其结果同步至服务器,或者等待客户端在某些特殊情况下打开此阶段,供其查询具体的处理细节。

所述客户端将缓存于本地的各个处理阶段的结果同步至服务器,服务器对各阶段数据的接收过程具体为:

1)在整个交互过程开始时,客户端和服务器的首次交互将整个处理过程所需的数据同步至客户端本地;

2)然后,服务器端等待客户端将各个阶段的处理结果发送过来;

3)服务器将接收到的一系列结果按照特定的顺序进行排列,得到整个数据处理的最终结果。

此方法的特点将体现在以下几个方面:

客户端与服务器数据传输的“非严格实时性”:传统实时同步数据要求所有数据尽可能快速完成同步,但本方法中,只选择必要的数据,且在网络合适的情况下进行同步,网络状况不好,极端情况下出现的断网,则不会进行数据同步。

缓存与同步的选择性:当客户端对某些数据的时效性要求很高,而服务器对该数据时效性要求不高时,将该数据缓存于客户端本地。当客户端完成一个阶段的数据处理后,再将处理结果同步于服务器。

客户端对网络环境的判断:若网络环境适合传输数据,则进行数据传输,否则继续缓存于本地。

客户端对缓存于本地数据的管理:客户端对缓存于本地的数据根据时间或其他标准,将其进行合理有序的存储。操作人员可随时查看或者导出数据细节。

客户端对服务器端不关心的数据处理细节的隐藏:客户端主要用于处理数据,一个处理阶段结束之后,将该处理结果上传即可,而在处理过程中产生的细节对服务器进行隐藏。

与现有技术相比,本发明具有如下的优点:

本方法选择性缓存与同步使得客户端与服务器之间只传递必要的数据,客户端在数据处理与分析过程中产生的衍生数据并不进行传输,因而减少了客户端与服务器之间传输的数据量,节省了带宽。交互过程的非严格实时,降低了对网络质量的要求。单个处理阶段放在客户端本地进行,且所需的数据都已实现缓存于本地,这样满足了系统对于数据时效性的要求,不会因为网络延时而导致本地的处理过程产生错误。处理细节缓存于客户端,既减少了服务器端的存储压力,又允许在客户端本地查看,提高了客户端的独立性。

附图说明

图1为传统实时方式下单个处理阶段的数据交互过程。

图2为传统实时方式下多个处理阶段的数据交互过程。

图3为选择性缓存与同步方法下客户端与服务器的交互过程。

图4为客户端对单个处理阶段的处理过程。

图5为服务器对各阶段数据的接收过程。

具体实施方式

下面结合附图,对本发明的具体实施例做进一步的说明。

如图3所示,一种基于选择性缓存与同步的客户端与服务器数据交互方法,包括如下步骤:

1)将客户端与服务器的整个传输过程作为一个处理任务,并将任务分成若干相同或相似的处理阶段;

2)客户端先与服务器进行一次交互,获取一个处理任务下若干个处理阶段所需的基本数据,这些数据将分别为客户端的每一个处理阶段提供类似于参数的作用;获取数据后缓存于客户端本地,等待每一个处理阶段的使用;

3)客户端每次只需调用本地缓存中的数据,完成每个处理阶段的数据分析与处理,处理结果继续缓存于本地,然后继续进行下一个阶段的数据分析与处理;

4)每个处理阶段将会产生一系列的细节数据,这些细节数据将作为一个整体保存在客户端本地,就这些细节数据而言,服务器是不关心的,对于服务器而言,它们都将被隐藏起来;

5)每个处理阶段的细节数据以及最终结果都将在客户端本地以一种适当的方式储存并被管理起来;若有必要,这些被管理的成套的细节数据及数据处理结果能够在客户端查看或导出;

6)客户端中另一个线程将进行网络环境的检测,若其发现网络环境不佳时,则不进行任何操作,若发现网络环境良好,则通知客户端将缓存于本地的各个处理阶段的结果同步至服务器。

如图4所示,在客户端的目录下,每一个任务下有若干数据处理阶段,而这些处理阶段则是缓存与同步的最小单位;每个处理阶段由阶段处理结果和处理细节组成,处理细节随应用场景不同,也将产生不同的一整组细节数据;所述客户端对每个处理阶段的处理过程如下:

1)客户端将单个处理阶段所需的全部数据由本地缓存读取出来,为了减少客户端与服务器的信息交互量,这一组数据需要尽量精简,假设单个处理阶段所需数据为s1,s2,s3,…,sm;

2)获取到这组数据之后,将其像函数的实参一样,代入本地的单个处理阶段过程中;随着此过程的进行,一系列的衍生数据也随之产生p1,p2,p3,…,px,q1,q2,q3,…qy,……;

3)直到整个处理阶段结束,得到了最终的处理结果w1,w2,w3……wn,以及过程中伴随产生的一系列衍生数据p1,p2,p3,…,px,q1,q2,q3,…qy,……;

4)以上产生的处理结果以及一系列衍生数据将会以合适的方式存于本地,它们将以一个整体按照既定的顺序嵌入在某次处理任务当中的一系列处理阶段中,等待客户端将其结果同步至服务器,或者等待客户端在某些特殊情况下打开此阶段,供其查询具体的处理细节。

如图5所示,所述客户端将缓存于本地的各个处理阶段的结果同步至服务器,服务器对各阶段数据的接收过程具体为:

1)在整个交互过程开始时,客户端和服务器的首次交互将整个处理过程所需的数据同步至客户端本地;

2)然后,服务器端等待客户端将各个阶段的处理结果发送过来;

3)服务器将接收到的一系列结果按照特定的顺序进行排列,得到整个数据处理的最终结果。

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