CN109660602B - 数据增量传输方法及装置 - Google Patents
数据增量传输方法及装置 Download PDFInfo
- Publication number
- CN109660602B CN109660602B CN201811430775.7A CN201811430775A CN109660602B CN 109660602 B CN109660602 B CN 109660602B CN 201811430775 A CN201811430775 A CN 201811430775A CN 109660602 B CN109660602 B CN 109660602B
- Authority
- CN
- China
- Prior art keywords
- data
- information
- attribute
- lightweight format
- format 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
Images
Classifications
-
- 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
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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
- H04L67/565—Conversion or adaptation of application format or content
- H04L67/5651—Reducing the amount or size of exchanged application data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提出一种数据增量传输方法及装置,其中,该方法实现了当待传输的原始轻量级格式数据非首次传输时,数据采集端只需向数据应用端传输与待传输的原始轻量级格式数据对应的各个更改信息的描述,后续数据应用端根据各个更改信息的描述对预先缓存的上一次原始轻量级格式数据进行解析,便可得到待传输的原始轻量级格式数据。由于数据采集端只需向数据应用端传输当前待传输的原始轻量级格式数据相比上一次原始轻量级格式数据的更改信息的描述,而无需向数据应用端传输整个当前待传输的原始轻量级格式数据,有效地解决了数据传输过程中数据量大的问题,进而能够保证小程序在数据传输过程中的稳定性,确保了小程序的产品性能。
Description
技术领域
本公开涉及数据处理技术领域,尤其涉及一种数据增量传输方法及装置。
背景技术
随着前端程序技术的发展,涌现出越来越多的应用程序,其中,不少应用程序在进行数据传输时,均采用轻量级格式数据进行数据传输。以JSON(JavaScript ObjectNotation,JavaScript对象表示法)为例,JSON是一种轻量级的文本数据交换格式,使用Javascript语法来描述数据对象,具有自我描述性,容易理解。
图1为示例性的应用于平台级App的应用程序的开发架构。如图1所示,应用程序的开发架构比较普遍的形式为系统层、逻辑层、视图层,逻辑层、视图层通过系统层的JSBridge模块与系统层进行数据交互。当视图层或逻辑层需要数据(数据格式为JSON格式数据)时,系统层的JSBridge模块会将得到数据整个传输给视图层或逻辑层进行相应的数据处理。举例来说,对于某个应用程序,视图层的webview.js模块负责管理应用程序的渲染,系统层的appservice.js模块负责管理应用程序的数据采集,当应用程序需要更新页面时,appservice.js模块采集更新页面需要的数据,例如加载一个新的列表,将列表内容传输给webview.js模块,然后webview.js模块使用该数据刷新页面。
对于应用于平台级App(Application,应用程序)中的小程序来说,当数据量比较大时,传输整个数据会很可能会导致小程序不稳定,当小程序很出现不稳定时,小程序会出现诸如“数据传输长度已经超过最大长度”的报错,然后阻止大量数据的传输。以视图层或逻辑层需要处理无限长的列表数据为例,当列表太长时,传输的过程中很有可能就会使小程序出现不稳定,使小程序会出现诸如“数据传输长度已经超过最大长度”的报错,然后阻止大量数据的传输。显然,如何进行数据传输以保证小程序的稳定性成为亟待解决的技术问题。
发明内容
本公开提供一种数据增量传输方法及装置,能够解决现有技术中应用于平台级App中的小程序因数据传输过程中数据量大导致的不稳定的技术问题。
本公开的第一个目的在于提出一种数据增量传输方法。
本公开的第二个目的在于提出一种数据增量传输方法。
本公开的第三个目的在于提出一种数据增量传输装置。
本公开的第四个目的在于提出一种数据增量传输装置。
本公开的第五个目的在于提出一种电子设备。
本公开的第六个目的在于提出一种计算机可读存储介质。
为达上述目的,本公开第一方面实施例提出了一种数据增量传输方法,包括:
获取待传输的原始轻量级格式数据,其中,所述待传输的原始轻量级格式数据包括多个属性的当前信息;
获取预先缓存在所述数据采集端中的上一次原始轻量级格式数据,其中,所述上一次原始轻量级格式数据包括多个属性的历史信息;
根据每个属性的当前信息和历史信息确定每个属性的更改信息;
采用预先配置的通用描述规则对每个所述更改信息进行描述,得到每个所述更改信息的描述;
向数据应用端发送各个所述描述,以使所述数据应用端根据各个描述对预先缓存在所述数据应用端中的上一次原始轻量级格式数据进行解析,得到所述待传输的原始轻量级格式数据。
本公开实施例的数据增量传输方法,实现了当待传输的原始轻量级格式数据非首次传输时,数据采集端只需向数据应用端传输与待传输的原始轻量级格式数据对应的各个更改信息的描述,后续数据应用端根据各个更改信息的描述对预先缓存的上一次原始轻量级格式数据进行解析,便可得到待传输的原始轻量级格式数据。由于数据采集端只需向数据应用端传输当前待传输的原始轻量级格式数据相比上一次原始轻量级格式数据的更改信息的描述,而无需向数据应用端传输整个当前待传输的原始轻量级格式数据,有效地解决了数据传输过程中数据量大的问题,进而能够保证小程序在数据传输过程中的稳定性,确保了小程序的产品性能。
为达上述目的,本公开第二方面实施例提出了一种数据增量传输方法,包括:
接收数据采集端发送的各个描述,其中,各个描述是所述数据采集端根据预先配置的通用描述规则对待传输的原始轻量级格式数据的各个更改信息进行描述得到的;
根据各个描述对预先缓存在所述数据应用端中的上一次原始轻量级格式数据解析,得到所述待传输的原始轻量级格式数据。
本公开实施例的数据增量传输方法,数据应用端接收数据采集端发送的各个描述,根据各个描述对预先缓存在所述数据应用端中的上一次原始轻量级格式数据解析得到所述待传输的原始轻量级格式数据。由于数据应用端只需从数据采集端接收当前待传输的原始轻量级格式数据相比上一次原始轻量级格式数据的更改信息的描述,便可得到整个当前待传输的原始轻量级格式数据,无需接收整个当前待传输的原始轻量级格式数据,有效地解决了数据传输过程中数据量大的问题,进而能够保证小程序在数据传输过程中的稳定性,确保了小程序的产品性能。
为达上述目的,本公开第三方面实施例提出了一种数据增量传输装置,包括:
第一获取模块,用于待传输的原始轻量级格式数据,其中,所述待传输的原始轻量级格式数据包括多个属性的当前信息;
第二获取模块,用于获取预先缓存在所述数据采集端中的上一次原始轻量级格式数据,其中,所述上一次原始轻量级格式数据包括多个属性的历史信息;
更改确定模块,用于根据每个属性的当前信息和历史信息确定每个属性的更改信息;
描述模块,用于采用预先配置的通用描述规则对每个所述更改信息进行描述,得到每个所述更改信息的描述;
发送模块,用于向数据应用端发送各个所述描述,以使所述数据应用端根据各个描述对预先缓存在所述数据应用端中的上一次原始轻量级格式数据解析得到所述待传输的原始轻量级格式数据。
本公开实施例的数据增量传输装置,实现了当待传输的原始轻量级格式数据非首次传输时,数据采集端只需向数据应用端传输与待传输的原始轻量级格式数据对应的各个更改信息的描述,后续数据应用端根据各个更改信息的描述对预先缓存的上一次原始轻量级格式数据进行解析,便可得到待传输的原始轻量级格式数据。由于数据采集端只需向数据应用端传输当前待传输的原始轻量级格式数据相比上一次原始轻量级格式数据的更改信息的描述,而无需向数据应用端传输整个当前待传输的原始轻量级格式数据,有效地解决了数据传输过程中数据量大的问题,进而能够保证小程序在数据传输过程中的稳定性,确保了小程序的产品性能。
为达上述目的,本公开第四方面实施例提出了一种数据增量传输装置,包括:
接收模块,用于接收数据采集端发送的各个描述,其中,各个描述是所述数据采集端根据预先配置的通用描述规则对待传输的原始轻量级格式数据的各个更改信息进行描述得到的;
解析模块,用于根据各个描述对预先缓存在所述数据应用端中的上一次原始轻量级格式数据解析,得到所述待传输的原始轻量级格式数据。
本公开实施例的数据增量传输装置,数据应用端接收数据采集端发送的各个描述,根据各个描述对预先缓存在所述数据应用端中的上一次原始轻量级格式数据解析得到所述待传输的原始轻量级格式数据。由于数据应用端只需从数据采集端接收当前待传输的原始轻量级格式数据相比上一次原始轻量级格式数据的更改信息的描述,便可得到整个当前待传输的原始轻量级格式数据,无需接收整个当前待传输的原始轻量级格式数据,有效地解决了数据传输过程中数据量大的问题,进而能够保证小程序在数据传输过程中的稳定性,确保了小程序的产品性能。
为达上述目的,本公开第五方面实施例提出了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如上所述的数据增量传输方法。
为了实现上述目的,本公开第六方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的数据增量传输方法。
本公开附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。
附图说明
本公开上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为示例性的应用于平台级App的应用程序的开发架构;
图2为本公开实施例所提供的一种数据增量传输方法的流程示意图;
图3为本公开实施例所提供的又一种数据增量传输方法的流程示意图;
图4为本公开实施例所提供的又一种数据增量传输方法的流程示意图;
图5为本公开实施例所提供的又一种数据增量传输方法的流程示意图;
图6为本公开实施例所提供的一种数据增量传输装置的结构示意图;
图7为本公开实施例所提供的一种数据增量传输装置的结构示意图;
图8为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本公开的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本公开,而不能理解为对本公开的限制。
下面参考附图描述本公开实施例的数据增量传输方法及装置。
图2为本公开实施例所提供的一种数据增量传输方法的流程示意图。本实施例提供了一种数据增量传输方法,该方法应用在数据采集端,其执行主体为数据增量传输装置,该执行主体由硬件和/或软件组成。
如图2所示,该数据增量传输方法包括以下步骤:
S101、获取待传输的原始轻量级格式数据。
在本实例中,数据采集端获取待传输的原始轻量级格式数据的方式可为实时接收外部所发送的待传输的原始轻量级格式数据,也可以先将外部所发送的待传输的原始轻量级格式数据进行保存,获取保存的待传输的原始轻量级格式数据,但并不以此为限。
在本实施例中,待传输的原始轻量级格式数据包括多个属性的当前信息。其中,每个属性的当前信息可以包括属性名、属性的节点信息、属性的当前数据类型、属性值的当前值、属性值的当前数据类型,但并不限于此。
以轻量级格式数据为JSON数据为例,JSON数据的结构可以理解成无序的、可嵌套的key-value键值对集合,这些key-value键值对是以结构体或数组的形式来组织的。其中,key可以理解为属性,value可以理解为对应的属性值。
在本实施例中,数据采集端可以理解为应用程序负责数据采集的这一侧,以开发架构为系统层、逻辑层、视图层的某款应用程序为例,数据采集端可以理解为负责数据采集和数据传输的系统层。
S102、获取预先缓存在数据采集端中的上一次原始轻量级格式数据。
在本实施例中,上一次原始轻量级格式数据包括多个属性的历史信息。其中,每个属性的历史信息可以包括属性名、属性的节点信息、属性的历史数据类型、属性值的历史值、属性值的历史数据类型,但并不限于此。数据采集端每次对待传输的原始轻量级格式数据都进行缓存,后续数据采集端从缓存中获取上一次原始轻量级格式数据。
以应用程序的某项功能更新为例,在实际开发阶段和应用阶段等阶段中,应用程序的某项功能需要不断的更新。应用程序更新某项功能时,待传输的原始轻量级格式数据可以理解为该功能的新数据,上一次原始轻量级格式数据可以理解为该功能的旧数据。每次更新时,数据采集端会获取该功能的新数据;同时,每次更新完后,都会将该新数据进行缓存;等到下一次更新时,获取待传输的原始轻量级格式数据即新数据,同时获取缓存的上一次原始轻量级格式数据即旧数据。
举例来说,第一次原始轻量级格式数据为A1,第二次原始轻量级格式数据为A2,第三次原始轻量级格式数据为A3,第四次原始轻量级格式数据为A4,依次类推。当应用程序为第3次更新功能项时,应用程序获取待传输的原始轻量级格式数据即第三次原始轻量级格式数据,所获取的上一次原始轻量级格式数据即第二次原始轻量级格式数据。
S103、根据每个属性的当前信息和历史信息确定每个属性的更改信息。
在本实施例中,更改信息指示了以下信息中多种:属性的节点信息、属性的数据类型、属性的操作信息、操作数据的数据类型、操作数据、操作数据的位置信息。
其中,解析轻量级格式数据可以得到对应的树形结构,遍历树形结构确定属性的节点信息。以JSON数据为例,解析JSON数据可以得到对应的JSON树形结构,遍历JSON树形结构,可以确定每个属性的节点信息,节点信息包括该属性是哪些属性的根节点,该属性包括哪些叶子节点等,节点信息用于表征属性在JSON数据对象中的具体位置,例如,属性a为JSON数据对象的一个根节点。
其中,属性的数据类型包括以下数据类型中的一种:数字、逻辑值、字符串、数组、对象等。
其中,属性的操作信息包括以下操作中的一种:增加、删除、替换。
其中,操作数据的位置信息可以理解为:当属性的数据类型为数组或者字符串时,定义的操作数据在数组或者字符串中的位置。
在本实施例中,步骤S103的具体实现方式为:若每个属性存在当前信息但不存在历史信息,则根据当前信息生成新增属性的更改信息;若每个属性不存在当前信息但存在历史信息,则根据历史信息生成删除属性的更改信息;若每个属性存在当前信息且存在历史信息,则根据当前信息和历史信息生成更改信息。
举例来说,应用程序第三次进行某些功能项的更新,在第三次原始轻量级格式数据中存在属性a,但在第二次原始轻量级格式数据不存在,说明属性a相比第二次原始轻量级格式数据是该增加的属性,这时更改信息根据属性a的对应信息进行生成。
在第三次原始轻量级格式数据中不存在属性a,但在第二次原始轻量级格式数据存在,说明属性a相比第二次原始轻量级格式数据是该删除的属性,这时更改信息根据属性a的对应信息进行生成。
在第三次原始轻量级格式数据中存在属性a,以及在第二次原始轻量级格式数据存在,这时更改信息根据属性a的当前信息和历史信息进行生成。
S104、采用预先配置的通用描述规则对每个所述更改信息进行描述,得到每个所述更改信息的描述。
在本实施例中,采用预先配置的通用描述规则描述各个更改信息,得到对应的描述,该描述的具体形式可以为命令语句,通过解析该命令语句就可以获知相应的更改信息。需要说明的是,通用描述规则由用户自定义,也可以是系统默认规则,在此不做限制。
具体地,预先配置的通用描述规则可以包括第一变量、第二变量、第三变量、第四变量、第五变量、第六变量等,利用各个变量对更改信息进行相应的描述。
其中,采用第一变量对每个更改信息中的属性的节点信息进行描述,以及采用第二变量对每个更改信息中的属性的数据类型进行描述,并采用第三变量对每个更改信息中的操作信息进行描述。
作为一种示例,基于第一变量variable1、第二变量variable2、第三变量variable3的命令语句的结构形式可以为:variable1-variable2-variable3。其中,变量之间用操作符-连接。第一变量variable1的赋值为属性的节点信息,用于描述被操作的属性在JSON数据对象中的位置;第二变量的赋值为属性的数据类型,用于描述被操作的属性的数据类型;第三变量的赋值为操作信息,用于描述对属性所执行的操作。
下面以轻量级格式数据为JSON数据,对应的通用描述规则为用户自定义的规则为例进行举例说明:
举例来说,第一次原始轻量级格式数据存在根节点属性a,但第二次原始轻量级格式数据不存在根节点属性a,生成的更改信息指示:删除根节点属性a,属性a对应的JSON数据为{"a":30}。基于该更改信息生成的JSON描述为:root:a-number-delete。
其中,采用第四变量对每个所述更改信息中的操作数据进行描述,以及第五变量对每个所述更改信息中的所述操作数据的数据类型进行描述。
下面以轻量级格式数据为JSON数据,对应的通用描述规则为用户自定义的规则为例进行举例说明:
作为一种示例,基于第一变量variable1、第二变量variable2、第三变量variable3、第四变量variable4、第五变量variable5的命令语句的结构形式可以为:variable1-variable2-variable3-variable4-variable5。其中,变量之间用操作符-连接。第一变量variable1的赋值为属性的节点信息,用于描述被操作的属性在JSON数据对象中的位置;第二变量的赋值为属性的数据类型,用于描述被操作的属性的数据类型;第三变量的赋值为操作信息,用于描述对属性所执行的操作;第四变量的赋值为操作数据,用于描述对属性进行操作的操作数据;第五变量的赋值为操作数据的数据类型,用于描述操作数据的数据类型。
举例来说,第一次原始轻量级格式数据存在根节点属性a,对应的JSON数据为{"a":30},第二次原始轻量级格式数据存在根节点属性a,但对应的JSON数据为{"a":24},生成的更改信息指示:替换根节点属性a的属性值。基于该更改信息生成的JSON描述为:root:a-number-replace-number-24。
其中,采用第六变量对每个更改信息中的操作数据的位置信息进行描述。
需要说明的是,当属性的数据类型为数组或者字符串时,需要描述操作数据在数组或者字符串中的位置。
下面以轻量级格式数据为JSON数据,对应的通用描述规则为用户自定义的规则为例进行举例说明:
作为一种示例,基于第一变量variable1、第二变量variable2、第三变量variable3、第六变量variable6的命令语句的结构形式可以为:variable1|variable6-variable2-variable3。其中,第一变量与第六变量之间用操作符|连接,其他变量之间用操作符-连接。第一变量variable1的赋值为属性的节点信息,用于描述被操作的属性在JSON数据对象中的位置;第二变量的赋值为属性的数据类型,用于描述被操作的属性的数据类型;第三变量的赋值为操作信息,用于描述对属性所执行的操作;第六变量的赋值为操作数据的位置信息,用于当被操作的属性的数据类型为数组或者字符串时,描述操作数据在数组或者字符串中的位置。
举例来说,将属性a的当前信息对应的数值称为新数组,将属性a的历史信息对应的数值称为旧数组,其中,旧数组为:"a":[1,2,3],新数组为"a":[1],即新数组在旧数组的基础上,删除了第2个元素以及第3个元素,则删除操作的描述命令语句分别为:root:a|2-array-delete,该语句的释义为删除旧数组的第2个元素;root:a|3-array-delete,该语句的释义为删除了旧数组的第3个元素。
作为一种示例,基于第一变量variable1、第二变量variable2、第三变量variable3、第四变量variable4、第五变量variable5、第六变量variable6的命令语句的结构形式可以为:variable1|variable6-variable2-variable3-variable4-variable5。其中,第一变量与第六变量之间用操作符|连接,其他变量之间用操作符-连接。第一变量variable1的赋值为属性的节点信息,用于描述被操作的属性在JSON数据对象中的位置;第二变量的赋值为属性的数据类型,用于描述被操作的属性的数据类型;第三变量的赋值为操作信息,用于描述对属性所执行的操作;第四变量的赋值为操作数据,用于描述对属性进行操作的操作数据;第五变量的赋值为操作数据的数据类型,用于描述操作数据的数据类型。第六变量的赋值为操作数据的位置信息,用于当被操作的属性的数据类型为数组或者字符串时,描述操作数据在数组或者字符串中的位置。
举例来说,将属性a的当前信息对应的数值称为新数组,将属性a的历史信息对应的数值称为旧数组,其中,旧数组为:"a":[1,2,3],新数组为"a":[1,3,2,3],即新数组在旧数组的基础上,在第2个元素的位置插入了一个元素,则增加操作的描述命令语句为:root:a|2-array-add-number-3,该语句的释义为在旧数组的第2个元素位置上插入数字3。
S105、向数据应用端发送各个所述描述,以使所述数据应用端根据各个描述对预先缓存在所述数据应用端中的上一次原始轻量级格式数据进行解析,得到所述待传输的原始轻量级格式数据。
下面以轻量级格式数据为JSON数据,对应的通用描述规则为用户自定义的规则为例进行举例说明:
针对根据属性的当前信息生成新增属性的更改信息,对应的JSON描述如下:
variable1-variable2-add-variable4-variable5。
针对根据属性的历史信息生成删除属性的更改信息,对应的JSON描述如下:variable1-variable2-delete。
针对根据当前信息和历史信息生成的更改信息,对应的JSON描述分为以下几种情形:
第一种情形为属性的数据类型为数字,若更改信息指示属性值不一致时,采用预先配置的JSON通用描述规则基于更改信息产生替换操作的描述命令语句。举例来说,若数字型的属性a的当前value为24,历史value为20,当前value和历史value不一致,替换操作的描述命令语句为:root:a-number-replace-number-24。
第二种情形为属性的数据类型为逻辑值(true或false),若更改信息指示属性值不一致时,采用预先配置的JSON通用描述规则基于更改信息产生替换操作的描述命令语句。举例来说,逻辑值型的属性a的当前value为true,历史value为false,当前value和历史value不一致,则替换操作的描述命令语句为root:a-boolean-replace-boolean-true,该语句的释义为将a的属性对应的值替换为true。
第三种情形为属性的数据类型为字符串,若更改信息指示属性值不一致时,采用预先配置的JSON通用描述规则基于更改信息产生替换操作的描述命令语句。举例来说,字符串型的属性a的当前value为"apple",历史value为"banana",当前value和历史value不一致,则替换操作的描述命令语句为root:a-string-replace-string-apple,该语句的释义为将a的属性对应的值替换为apple。
第四种情形为属性的数据类型为数组,将属性a的当前信息对应的数值称为新数组,将属性a的历史信息对应的数值称为旧数组:
若更改信息指示新数组是旧数组的真子集,则采用预先配置的JSON通用描述规则基于更改信息产生删除操作的描述命令语句。举例来说,旧数组为:"a":[1,2,3],新数组为"a":[1],即新数组在旧数组的基础上,删除了第2个元素以及第3个元素,则删除操作的描述命令语句为:root:a|2-array-delete,该语句的释义为删除旧数组的第2个元素;root:a|3-array-delete,该语句的释义为删除了旧数组的第3个元素。
若更改信息指示旧数组是新数组的真子集,则采用预先配置的JSON通用描述规则基于更改信息产生增加操作的描述命令语句。举例来说,旧数组为:"a":[1,2,3],新数组为"a":[1,3,2,3],即新数组在旧数组的基础上,在第2个元素的位置插入了一个元素,则增加操作的描述命令语句为:root:a|2-array-add-number-3,该语句的释义为在旧数组的第2个元素位置上插入数字3。
若更改信息指示新数组的全部元素均没有包含在旧数组中,则采用预先配置的JSON通用描述规则基于更改信息产生替换操作的描述命令语句,举例来说,旧数组为:"a":[1,2,3],新数组为"a":[5,6,7],即新数组的全部元素均没有包含在旧数组中,则替换操作的描述命令语句为:root:a-array-replace-array-[5,6,7],该语句的释义为旧数组替换为新数组[5,6,7]。
第五种情形为属性的数据类型为对象,对象可以包含多个key/value(键/值)对。将属性a的当前信息对应的对象称为新对象,将属性a的历史信息对应的对象称为旧对象:
若更改信息指示新对象是旧对象的真子集,则采用预先配置的JSON通用描述规则基于更改信息产生删除操作的描述命令语句。举例来说,旧对象为:myObj={a:1,b:2},新对象为:myObj={a:1},即新对象在旧对象的基础上,删除了属性b,则删除操作的描述命令语句为:root:b-object-delete。该语句的释义为删除旧对象中的属性b。
若更改信息指示旧对象是新对象的真子集,则采用预先配置的JSON通用描述规则基于更改信息产生增加操作的描述命令语句。举例来说,旧对象为:myObj={"a":1},新对象为:myObj={"a":1,"b":2},即新对象在旧对象的基础上,增加了属性b,则增加操作的描述命令语句为:root-object-add-object-{b:2}。该语句的释义为在旧对象的基础上增加一个根节点属性b。
若更改信息指示对象中的同一属性的当前信息和历史信息不一致时,分为两种情形,一种是属性的数据类型不同,另一种是属性的数据类型相同,属性值不同。
对于属性的数据类型不同,则采用预先配置的JSON通用描述规则基于更改信息产生替换操作的描述命令语句,举例来说,新对象为:myObj={"a":’1’,"b":2},旧对象为myObj={"a":1,"b":2},在比对时,在新对象中,属性a的数据类型为字符串,在旧对象中,属性a的数据类型为数字,则产生的替换操作的描述语句为:root:a-string-replace-number-1。该语句的释义为将旧对象中的属性a的属性值替换为1。
对于属性的数据类型相同,而属性值不同的情形,又分为以下几种情形:
若属性的数据类型为数字,若更改信息指示属性值不一致时,采用预先配置的JSON通用描述规则基于更改信息产生替换操作的描述命令语句。举例来说,新对象为myObj={"a":1,"b":2},旧对象为myObj={"a":3,"b":2},在比对时,在新对象中属性a的属性值为1,在旧对象中属性a的属性值为3,则产生的替换操作的描述语句为:root:a-number-replace-number-1。该语句的释义为将旧对象中的属性a的属性值替换为1。
若属性的数据类型为逻辑值(true或false),若更改信息指示属性值不一致时,采用预先配置的JSON通用描述规则基于更改信息产生替换操作的描述命令语句。举例来说,新对象为myObj={"a":true,b:2},旧对象为myObj={"a":false,b:2},在比对时,在新对象中属性a的属性值为true,在旧对象中属性a的属性值为false,则产生的替换操作的描述语句为:root:a-boolean-replace-boolean-true。该语句的释义为将旧对象中的属性a的属性值替换为true。
若属性的数据类型为字符串,若更改信息指示属性值不一致时,采用预先配置的JSON通用描述规则基于更改信息产生替换操作的描述命令语句。举例来说,新对象为myObj={"a":"apple",b:2},旧对象为myObj={"a":"banana",b:2},在比对时,在新对象中属性a的属性值为"apple",在旧对象中属性a的属性值为"banana",则产生的替换操作的描述语句为:root:a-string-replace-string-apple。该语句的释义为将旧对象中的属性a的属性值替换为apple。
若属性的数据类型为数组时,若更改信息指示属性值不一致时,将对象中的属性a的当前信息对应的数值称为新数组,将对象中的属性a的历史信息对应的数值称为旧数组:
若更改信息指示新数组是旧数组的真子集,则采用预先配置的JSON通用描述规则基于更改信息产生删除操作的描述命令语句。举例来说,旧数组为:"a":[1,2,3],新数组为"a":[1],即新数组在旧数组的基础上,删除了第2个元素以及第3个元素,则删除操作的描述命令语句为:root:a|2-array-delete,该语句的释义为删除旧数组的第2个元素;root:a|3-array-delete,该语句的释义为删除了旧数组的第3个元素。
若更改信息指示旧数组是新数组的真子集,则采用预先配置的JSON通用描述规则基于更改信息产生增加操作的描述命令语句。举例来说,旧数组为:"a":[1,2,3],新数组为"a":[1,3,2,3],即新数组在旧数组的基础上,增加了第2个元素的位置插入了一个元素,则增加操作的描述命令语句为:root:a|2-array-add-number-3,该语句的释义为在旧数组的第2个元素位置上插入数字3。
若更改信息指示新数组的全部元素均没有包含在旧数组中,则采用预先配置的JSON通用描述规则基于更改信息产生替换操作的描述命令语句,举例来说,旧数组为:"a":[1,2,3],新数组为"a":[5,6,7],即新数组的全部元素均没有包含在旧数组中,则替换操作的描述命令语句为:root:a-array-replace-array-[5,6,7],该语句的释义为旧数组替换为新数组[5,6,7]。
在本实施例中,数据采集端分析待传输的原始轻量级格式数据和上一次原始轻量级格式数据以获取更改信息,并采用预先配置的通用描述规则形成各个更改信息的描述,数据采集端只需向数据应用端发送各个描述,数据应用端根据各个描述对缓存的上一次原始轻量级格式数据进行解析,得到待传输的原始轻量级格式数据。
进一步地,数据采集端根据各个描述形成描述集合,并向数据应用端发送描述集合,后续数据应用端根据描述集合中的各个描述对对缓存的上一次原始轻量级格式数据进行解析,得到待传输的原始轻量级格式数据。在本实施例中,数据采集端向数据应用端发送描述集合,后续数据应用端利用各个描述对对缓存的上一次原始轻量级格式数据进行解析,得到待传输的原始轻量级格式数据。
本公开实施例的数据增量传输方法,获取待传输的原始轻量级格式数据,其中,所述待传输的原始轻量级格式数据包括多个属性的当前信息;获取预先缓存在所述数据采集端中的上一次原始轻量级格式数据,其中,所述上一次原始轻量级格式数据包括多个属性的历史信息;根据每个属性的当前信息和历史信息确定每个属性的更改信息;采用预先配置的通用描述规则对每个所述更改信息进行描述,得到每个所述更改信息的描述;向数据应用端发送各个所述描述,以使所述数据应用端根据各个描述对预先缓存在所述数据应用端中的上一次原始轻量级格式数据进行解析,得到所述待传输的原始轻量级格式数据。该方法实现了当待传输的原始轻量级格式数据非首次传输时,数据采集端只需向数据应用端传输与待传输的原始轻量级格式数据对应的各个更改信息的描述,后续数据应用端根据各个更改信息的描述对预先缓存的上一次原始轻量级格式数据进行解析,便可得到待传输的原始轻量级格式数据。由于数据采集端只需向数据应用端传输当前待传输的原始轻量级格式数据相比上一次原始轻量级格式数据的更改信息的描述,而无需向数据应用端传输整个当前待传输的原始轻量级格式数据,有效地解决了数据传输过程中数据量大的问题,进而能够保证小程序在数据传输过程中的稳定性,确保了小程序的产品性能。
图3为本公开实施例所提供的另一种数据增量传输方法的流程示意图。本实施例提供了一种数据增量传输方法,该方法应用在数据采集端,其执行主体为数据增量传输装置,该执行主体由硬件和/或软件组成。
如图3所示,该数据增量传输方法包括以下步骤:
S201、获取待传输的原始轻量级格式数据。
需要指出的是,本实施例中的步骤S201的实现方式与图1所示实施例中的步骤S101的实现方式相同,在此不在赘述。
S202、判断待传输的原始轻量级格式数据是否为首次传输,若是,执行步骤S203,若否,执行步骤S205;
在本实施例中,数据采集端将首次传输的原始轻量级格式数据直接向数据应用端传输,提高了数据采集首次传输的原始轻量级格式数据的传输效率。
S203、标识待传输的原始轻量级格式数据为首次传输的原始轻量级格式数据,并向数据应用端发送带标识的原始轻量级格式数据。
在本实施例中,数据采集端对首次传输的原始轻量级格式数据在进行标识处理后,直接向数据应用端传输,提高了数据采集首次传输的原始轻量级格式数据的传输效率。
在本实施例中,后续数据应用端解析带标识的原始轻量级格式数据获知待传输的原始轻量级格式数据为首次传输,这时,数据应用端直接应用首次传输的原始轻量级格式数据进行数据处理,提高了数据应用端应用首次传输的原始轻量级格式数据进行数据处理的处理效率。
举例来说,待传输的原始轻量级格式数据中添加了isFirst字段来标识是否为首次传输,当该isFirst的值为true时,说明待传输的原始轻量级格式数据为首次传输,反之,当该isFirst的值为false时,说明待传输的原始轻量级格式数据不是首次传输。当然,标识首次传输的方法不限于举例说明。
S204、缓存带标识的原始轻量级格式数据。
在本实施例中,带标识的原始轻量级格式数据为首次传输的原始轻量级格式数据,即第一次原始轻量级格式数据。
数据采集端向数据应用端传输带标识的原始轻量级格式数据之后,缓存带标识的原始轻量级格式数据。后续数据采集端接收到待传输的第二次原始轻量级格式数据时,将第二次原始轻量级格式数据与带标识的原始轻量级格式数据(即第一次原始轻量级格式数据)进行比较,得到各个更改信息的描述,向数据应用端发送各个描述,以使所述数据应用端根据各个描述对预先缓存在数据应用端中的带标识的原始轻量级格式数据进行解析,得到第二次原始轻量级格式数据。
S205、获取预先缓存在所述数据采集端中的上一次原始轻量级格式数据。
需要指出的是,本实施例中的步骤S205的实现方式与图1所示实施例中的步骤S102的实现方式相同,在此不在赘述。
S206、根据每个属性的当前信息和历史信息确定每个属性的更改信息。
需要指出的是,本实施例中的步骤S206的实现方式与图1所示实施例中的步骤S103的实现方式相同,在此不在赘述。
S207、采用预先配置的通用描述规则对每个所述更改信息进行描述,得到每个所述更改信息的描述。
需要指出的是,本实施例中的步骤S207的实现方式与图1所示实施例中的步骤S104的实现方式相同,在此不在赘述。
S208、向数据应用端发送各个所述描述。
在本实施例中,向数据应用端发送各个所述描述以使所述数据应用端根据各个描述对预先缓存在所述数据应用端中的上一次原始轻量级格式数据进行解析,得到所述待传输的原始轻量级格式数据。
需要指出的是,本实施例中的步骤S208的实现方式与图1所示实施例中的步骤S105的实现方式相同,在此不在赘述。
S209、缓存待传输的原始轻量级格式数据。
数据采集端向数据应用端发送当前原始轻量级格式数据的描述之后,缓存当前原始轻量级格式数据。后续数据采集端接收到待传输的下一次原始轻量级格式数据时,将下一次原始轻量级格式数据与缓存的原始轻量级格式数据进行比较,得到各个更改信息的描述,向数据应用端发送各个描述,以使数据应用端根据各个描述对预先缓存在数据应用端中的原始轻量级格式数据进行解析,得到下一次原始轻量级格式数据。
举例来说,数据采集端向数据应用端发送第二次原始轻量级格式数据的各个描述之后,缓存第二次原始轻量级格式数据。当数据采集端获取到第三次原始轻量级格式数据之后,将第三次原始轻量级格式数据与缓存的第二次原始轻量级格式数据进行比较,得到各个更改信息的描述,向数据应用端发送各个描述,以使数据应用端根据各个描述对预先缓存在数据应用端中的第二次原始轻量级格式数据进行解析,得到第三次原始轻量级格式数据,依次类推。
本公开实施例的数据增量传输方法,当待传输的原始轻量级格式数据为首次传输时,对待传输的原始轻量级格式数据进行首次传输标识,数据采集端直接向数据应用端发送带标识的原始轻量级格式数据,后续数据应用端解析带标识的原始轻量级格式数据为首次传输时,数据应用端直接基于带标识的原始轻量级格式数据进行数据处理。该方法在数据采集端对首次传输的原始轻量级格式数据在进行标识处理后,直接向数据应用端传输,提高了数据采集首次传输的原始轻量级格式数据的传输效率,也提高了数据应用端应用首次传输的原始轻量级格式数据进行数据处理的处理效率。
图4为本公开实施例所提供的另一种数据增量传输方法的流程示意图。本实施例提供了一种数据增量传输方法,该方法应用在数据应用端,其执行主体为数据增量传输装置,该执行主体由硬件和/或软件组成。
如图4所示,该数据增量传输方法包括以下步骤:
S301、接收数据采集端发送的各个描述。
在本实施例中,数据应用端可以理解为应用程序负责数据应用的这一侧,以开发架构为系统层、逻辑层、视图层的某款应用程序为例,数据应用端可以理解为逻辑层或视图层。
其中,各个描述是所述数据采集端根据预先配置的通用描述规则对待传输的原始轻量级格式数据的各个更改信息进行描述得到的。
需要指出的是,关于如何得到各个描述详见上述实施例的介绍,在此不在赘述。
S302、根据各个描述对预先缓存在所述数据应用端中的上一次原始轻量级格式数据解析,得到所述待传输的原始轻量级格式数据。
在本实施例中,当待传输的原始轻量级格式数据非首次传输时,从数据采集端接收到的是待传输的原始轻量级格式数据的各个描述。
进一步地,数据应用端接收数据采集端发送的描述集合,其中,描述集合包括各个描述。在本实施例中,数据采集端向数据应用端发送描述集合,数据应用端利用各个描述对对缓存的上一次原始轻量级格式数据进行解析,得到待传输的原始轻量级格式数据。
本公开实施例的数据增量传输方法,数据应用端接收数据采集端发送的各个描述,根据各个描述对预先缓存在所述数据应用端中的上一次原始轻量级格式数据解析得到所述待传输的原始轻量级格式数据。由于数据应用端只需从数据采集端接收当前待传输的原始轻量级格式数据相比上一次原始轻量级格式数据的更改信息的描述,便可得到整个当前待传输的原始轻量级格式数据,无需接收整个当前待传输的原始轻量级格式数据,有效地解决了数据传输过程中数据量大的问题,进而能够保证小程序在数据传输过程中的稳定性,确保了小程序的产品性能。
图5为本公开实施例所提供的另一种数据增量传输方法的流程示意图。本实施例提供了一种数据增量传输方法,该方法应用在数据应用端,其执行主体为数据增量传输装置,该执行主体由硬件和/或软件组成。
如图5所示,该数据增量传输方法,包括以下步骤:
S401、判断数据采集端是否发送带标识的原始轻量级格式数据,若是,执行步骤S402,若否,执行步骤S403。
在本实施例中,当待传输的原始轻量级格式数据非首次传输时,从数据采集端接收到的是待传输的原始轻量级格式数据的各个描述。而当待传输的原始轻量级格式数据首次传输时,从数据采集端接收到的是带标识的原始轻量级格式数据,即第一次原始轻量级格式数据。
在本实施例中,数据应用端解析带标识的原始轻量级格式数据获知待传输的原始轻量级格式数据为首次传输,这时,数据应用端直接应用首次传输的原始轻量级格式数据进行数据处理,提高了数据应用端应用首次传输的原始轻量级格式数据进行数据处理的处理效率。
S402、缓存带标识的原始轻量级格式数据。
后续当数据应用端接收到第二次原始轻量级格式数据的各个描述时,根据各个描述对预先缓存在数据应用端中的带标识的原始轻量级格式数据进行解析,得到第二次原始轻量级格式数据。
S403、接收数据采集端发送的各个描述。
需要指出的是,本实施例中的步骤S403的实现方式与图1所示实施例中的步骤S301的实现方式相同,在此不在赘述。
S404、根据各个描述对预先缓存在所述数据应用端中的上一次原始轻量级格式数据解析得到所述待传输的原始轻量级格式数据。
需要指出的是,本实施例中的步骤S404的实现方式与图1所示实施例中的步骤S302的实现方式相同,在此不在赘述。
S405、缓存待传输的原始轻量级格式数据。
在本实施例中,数据应用端每次在解析得到待传输的当前原始轻量级格式数据之后,缓存当前原始轻量级格式数据。后续数据应用端接收到待传输的下一次原始轻量级格式数据对应的各个描述时,利用各个描述对缓存的原始轻量级格式数据进行比较,得到待传输的下一次原始轻量级格式数据。
举例来说,数据应用端接收到第二次原始轻量级格式数据的各个描述之后,利用各个描述对缓存的第一次原始轻量级格式数据进行解析,得到第二次原始轻量级格式数据。缓存解析得到第二次原始轻量级格式数据。当接收到第三次原始轻量级格式数据的各个描述之后,利用各个描述对缓存的第二次原始轻量级格式数据进行解析,得到第三次原始轻量级格式数据。缓存解析得到第三次原始轻量级格式数据,依次类推。
本公开实施例的数据增量传输方法,数据应用端解析带标识的原始轻量级格式数据为首次传输时,数据应用端直接基于带标识的原始轻量级格式数据进行数据处理。该方法提高了数据应用端应用首次传输的原始轻量级格式数据进行数据处理的处理效率。
本公开实施例还提出一种数据增量传输装置。图6为本公开实施例所提供的一种数据增量传输装置的结构示意图。如图6所示,该数据增量传输装置包括:第一获取模块11、第二获取模块12、更改确定模块13、描述模块14和发送模块15。
第一获取模块11,用于待传输的原始轻量级格式数据,其中,所述待传输的原始轻量级格式数据包括多个属性的当前信息。
第二获取模块12,用于获取预先缓存在所述数据采集端中的上一次原始轻量级格式数据,其中,所述上一次原始轻量级格式数据包括多个属性的历史信息。
更改确定模块13,用于根据每个属性的当前信息和历史信息确定每个属性的更改信息;
描述模块14,用于采用预先配置的通用描述规则对每个所述更改信息进行描述,得到每个所述更改信息的描述。
发送模块15,用于向数据应用端发送各个所述描述,以使所述数据应用端根据各个描述对预先缓存在所述数据应用端中的上一次原始轻量级格式数据解析得到所述待传输的原始轻量级格式数据。
需要说明的是,前述对数据增量传输方法实施例的解释说明也适用于该实施例的数据增量传输装置,此处不再赘述。
进一步地,描述模块14,具体用于:采用第一变量对每个所述更改信息中的属性的节点信息进行描述,以及采用第二变量对每个所述更改信息中的属性的数据类型进行描述,并采用第三变量对每个所述更改信息中的操作信息进行描述。
进一步地,描述模块14,还具体用于:采用第四变量对每个所述更改信息中的操作数据进行描述,以及第五变量对每个所述更改信息中的所述操作数据的数据类型进行描述。
进一步地,描述模块14,还具体用于:采用第六变量对每个所述更改信息中的操作数据的位置信息进行描述。
进一步地,更改确定模块13,具体用于:若每个属性存在当前信息但不存在历史信息,则根据当前信息生成新增属性的更改信息;若每个属性不存在当前信息但存在历史信息,则根据历史信息生成删除属性的更改信息;若每个属性存在当前信息且存在历史信息,则根据当前信息和历史信息生成更改信息。
进一步地,数据增量传输装置还包括第一缓存模块。
第一缓存模块,用于缓存待传输的原始轻量级格式数据。
进一步地,数据增量传输装置还包括第一判断模块、标识模块。
第一判断模块,用于判断待传输的原始轻量级格式数据是否为首次传输,若是,触发标识模块,若否,触发第二获取模块12。
标识模块,用于标识待传输的原始轻量级格式数据为首次传输的原始轻量级格式数据,并向数据应用端发送带标识的原始轻量级格式数据。
进一步地,第一缓存模块,还用于缓存带标识的原始轻量级格式数据。
本公开实施例的数据增量传输装置,通过获取待传输的原始轻量级格式数据,其中,所述待传输的原始轻量级格式数据包括多个属性的当前信息;获取预先缓存在所述数据采集端中的上一次原始轻量级格式数据,其中,所述上一次原始轻量级格式数据包括多个属性的历史信息;根据每个属性的当前信息和历史信息确定每个属性的更改信息;采用预先配置的通用描述规则对每个所述更改信息进行描述,得到每个所述更改信息的描述;向数据应用端发送各个所述描述,以使所述数据应用端根据各个描述对预先缓存在所述数据应用端中的上一次原始轻量级格式数据进行解析,得到所述待传输的原始轻量级格式数据。实现了当待传输的原始轻量级格式数据非首次传输时,数据采集端只需向数据应用端传输与待传输的原始轻量级格式数据对应的各个更改信息的描述,后续数据应用端根据各个更改信息的描述对预先缓存的上一次原始轻量级格式数据进行解析,便可得到待传输的原始轻量级格式数据。由于数据采集端只需向数据应用端传输当前待传输的原始轻量级格式数据相比上一次原始轻量级格式数据的更改信息的描述,而无需向数据应用端传输整个当前待传输的原始轻量级格式数据,有效地解决了数据传输过程中数据量大的问题,进而能够保证小程序在数据传输过程中的稳定性,确保了小程序的产品性能。
本公开实施例还提出一种数据增量传输装置。图7为本公开实施例所提供的一种数据增量传输装置的结构示意图。如图7所示,该数据增量传输装置包括:接收模块21、解析模块22。
接收模块21,用于接收数据采集端发送的各个描述,其中,各个描述是所述数据采集端根据预先配置的通用描述规则对待传输的原始轻量级格式数据的各个更改信息进行描述得到的;
解析模块22,用于根据各个描述对预先缓存在所述数据应用端中的上一次原始轻量级格式数据解析得到所述待传输的原始轻量级格式数据。
进一步地,数据增量传输装置还包括:第二缓存模块。
第二缓存模块,用于缓存待传输的原始轻量级格式数据。
进一步地,数据增量传输装置还包括:第二判断模块。
第二判断模块,用于判断数据采集端是否发送带标识的原始轻量级格式数据,若是,触发第二缓存模块,若否,触发接收模块。
第二缓存模块,还用于:缓存带标识的原始轻量级格式数据。
需要说明的是,前述对数据增量传输方法实施例的解释说明也适用于该实施例的数据增量传输装置,此处不再赘述。
本公开实施例的数据增量传输装置,数据应用端接收数据采集端发送的各个描述,根据各个描述对预先缓存在所述数据应用端中的上一次原始轻量级格式数据解析得到所述待传输的原始轻量级格式数据。由于数据应用端只需从数据采集端接收当前待传输的原始轻量级格式数据相比上一次原始轻量级格式数据的更改信息的描述,便可得到整个当前待传输的原始轻量级格式数据,无需接收整个当前待传输的原始轻量级格式数据,有效地解决了数据传输过程中数据量大的问题,进而能够保证小程序在数据传输过程中的稳定性,确保了小程序的产品性能。
图8为本公开实施例提供的一种电子设备的结构示意图。该电子设备包括:
存储器1001、处理器1002及存储在存储器1001上并可在处理器1002上运行的计算机程序。
处理器1002执行所述程序时实现上述实施例中提供的数据增量传输方法。
进一步地,电子设备还包括:
通信接口1003,用于存储器1001和处理器1002之间的通信。
存储器1001,用于存放可在处理器1002上运行的计算机程序。
存储器1001可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器1002,用于执行所述程序时实现上述实施例所述的数据增量传输方法。
如果存储器1001、处理器1002和通信接口1003独立实现,则通信接口1003、存储器1001和处理器1002可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended IndustryStandard Architecture,简称为EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器1001、处理器1002及通信接口1003,集成在一块芯片上实现,则存储器1001、处理器1002及通信接口1003可以通过内部接口完成相互间的通信。
处理器1002可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本公开实施例的一个或多个集成电路。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的数据增量传输方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本公开的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本公开的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本公开的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本公开的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本公开各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本公开的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本公开的限制,本领域的普通技术人员在本公开的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种数据增量传输方法,应用于数据采集端,其特征在于,包括以下步骤:
获取待传输的原始轻量级格式数据,其中,所述待传输的原始轻量级格式数据包括多个属性的当前信息;
获取预先缓存在所述数据采集端中的上一次原始轻量级格式数据,其中,所述上一次原始轻量级格式数据包括多个属性的历史信息;
根据每个属性的当前信息和历史信息确定每个属性的更改信息;
采用预先配置的通用描述规则对每个所述更改信息进行描述,得到每个所述更改信息的描述;
向数据应用端发送各个所述描述,以使所述数据应用端根据各个描述对预先缓存在所述数据应用端中的上一次原始轻量级格式数据进行解析,得到所述待传输的原始轻量级格式数据;
其中,当所述更改信息指示对象中的同一属性的当前信息和历史信息不一致时,分为属性的数据类型不同和属性的数据类型相同,属性值不同;
所述采用预先配置的通用描述规则对每个所述更改信息进行描述,包括:采用第二变量对每个所述更改信息中的属性的数据类型进行描述,采用第五变量对每个所述更改信息中的操作数据的数据类型进行描述。
2.根据权利要求1所述的方法,其特征在于,所述采用预先配置的通用描述规则对每个所述更改信息进行描述,包括:
采用第一变量对每个所述更改信息中的属性的节点信息进行描述,采用第三变量对每个所述更改信息中的操作信息进行描述。
3.根据权利要求2所述的方法,其特征在于,所述采用预先配置的通用描述规则对每个所述更改信息进行描述,还包括:
采用第四变量对每个所述更改信息中的操作数据进行描述。
4.根据权利要求2所述的方法,其特征在于,所述采用预先配置的通用描述规则对每个所述更改信息进行描述,还包括:
采用第六变量对每个所述更改信息中的操作数据的位置信息进行描述。
5.根据权利要求1所述的方法,其特征在于,所述根据每个属性的当前信息和历史信息确定每个属性的更改信息,包括:
若每个属性存在当前信息但不存在历史信息,则根据当前信息生成新增属性的更改信息;
若每个属性不存在当前信息但存在历史信息,则根据历史信息生成删除属性的更改信息;
若每个属性存在当前信息且存在历史信息,则根据当前信息和历史信息生成更改信息。
6.一种数据增量传输方法,应用于数据应用端,其特征在于,包括以下步骤:
接收数据采集端发送的各个描述,其中,各个描述是所述数据采集端根据预先配置的通用描述规则对待传输的原始轻量级格式数据的各个更改信息进行描述得到的;
根据各个描述对预先缓存在所述数据应用端中的上一次原始轻量级格式数据解析,得到所述待传输的原始轻量级格式数据;
其中,当所述更改信息指示对象中的同一属性的当前信息和历史信息不一致时,分为属性的数据类型不同和属性的数据类型相同,属性值不同;
所述根据预先配置的通用描述规则对各个所述更改信息进行描述,包括:采用第二变量对每个所述更改信息中的属性的数据类型进行描述,采用第五变量对每个所述更改信息中的操作数据的数据类型进行描述。
7.一种数据增量传输装置,其特征在于,包括:
第一获取模块,用于待传输的原始轻量级格式数据,其中,所述待传输的原始轻量级格式数据包括多个属性的当前信息;
第二获取模块,用于获取预先缓存在数据采集端中的上一次原始轻量级格式数据,其中,所述上一次原始轻量级格式数据包括多个属性的历史信息;
更改确定模块,用于根据每个属性的当前信息和历史信息确定每个属性的更改信息;
描述模块,用于采用预先配置的通用描述规则对每个所述更改信息进行描述,得到每个所述更改信息的描述;
发送模块,用于向数据应用端发送各个所述描述,以使所述数据应用端根据各个描述对预先缓存在所述数据应用端中的上一次原始轻量级格式数据解析,得到所述待传输的原始轻量级格式数据;
其中,当所述更改信息指示对象中的同一属性的当前信息和历史信息不一致时,分为属性的数据类型不同和属性的数据类型相同,属性值不同;
所述采用预先配置的通用描述规则对每个所述更改信息进行描述,包括:采用第二变量对每个所述更改信息中的属性的数据类型进行描述,采用第五变量对每个所述更改信息中的操作数据的数据类型进行描述。
8.一种数据增量传输装置,其特征在于,包括:
接收模块,用于接收数据采集端发送的各个描述,其中,各个描述是所述数据采集端根据预先配置的通用描述规则对待传输的原始轻量级格式数据的各个更改信息进行描述得到的;
解析模块,用于根据各个描述对预先缓存在数据应用端中的上一次原始轻量级格式数据解析,得到所述待传输的原始轻量级格式数据;
其中,当所述更改信息指示对象中的同一属性的当前信息和历史信息不一致时,分为属性的数据类型不同和属性的数据类型相同,属性值不同;
所述根据预先配置的通用描述规则对各个所述更改信息进行描述,包括:采用第二变量对每个所述更改信息中的属性的数据类型进行描述,采用第五变量对每个所述更改信息中的操作数据的数据类型进行描述。
9.一种电子设备,其特征在于,包括:
存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-5中任一所述的数据增量传输方法或如权利要求6中任一所述的数据增量传输方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的数据增量传输方法或如权利要求6中任一所述的数据增量传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811430775.7A CN109660602B (zh) | 2018-11-28 | 2018-11-28 | 数据增量传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811430775.7A CN109660602B (zh) | 2018-11-28 | 2018-11-28 | 数据增量传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109660602A CN109660602A (zh) | 2019-04-19 |
CN109660602B true CN109660602B (zh) | 2022-08-09 |
Family
ID=66111817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811430775.7A Active CN109660602B (zh) | 2018-11-28 | 2018-11-28 | 数据增量传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109660602B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110457614B (zh) * | 2019-07-03 | 2020-06-16 | 南方电网数字电网研究院有限公司 | 降低数据并发量的数据增量更新方法、装置和计算机设备 |
CN112235333B (zh) * | 2019-07-15 | 2023-05-26 | 北京字节跳动网络技术有限公司 | 一种功能包管理方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103718154A (zh) * | 2011-06-01 | 2014-04-09 | 施耐德电气It公司 | 用于执行设备控制的系统和方法 |
CN107294803A (zh) * | 2017-06-15 | 2017-10-24 | 北京小度信息科技有限公司 | 响应信息一致性测试方法及装置 |
CN107408135A (zh) * | 2015-03-26 | 2017-11-28 | 微软技术许可有限责任公司 | 用于对加密数据进行查询处理的数据库服务器和客户端 |
CN108388613A (zh) * | 2018-02-08 | 2018-08-10 | 竞技世界(北京)网络技术有限公司 | 一种缓存数据的更新方法 |
CN108829727A (zh) * | 2018-05-09 | 2018-11-16 | 上海陆家嘴国际金融资产交易市场股份有限公司 | 数据存储方法、装置、计算机设备和存储介质 |
CN108874418A (zh) * | 2018-05-23 | 2018-11-23 | 北京五八信息技术有限公司 | Ui组件的更新方法、装置、终端及计算机可读存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103002010B (zh) * | 2012-10-29 | 2016-09-28 | 北京奇虎科技有限公司 | 一种基于增量数据的数据更新方法、装置和系统 |
CN105740259B (zh) * | 2014-12-09 | 2019-04-09 | 阿里巴巴集团控股有限公司 | 一种增量数据的处理方法和装置 |
US10614087B2 (en) * | 2017-01-17 | 2020-04-07 | International Business Machines Corporation | Data analytics on distributed databases |
CN107291879B (zh) * | 2017-06-19 | 2020-04-28 | 中国人民解放军国防科学技术大学 | 一种虚拟现实系统中三维环境地图的可视化方法 |
CN108132965A (zh) * | 2017-11-23 | 2018-06-08 | 努比亚技术有限公司 | 一种信息管理方法、服务器、终端及计算机可读存储介质 |
CN108108400B (zh) * | 2017-12-05 | 2020-12-11 | 厦门哨子科技有限公司 | 一种api基于本地数据增量的方法 |
CN108156253A (zh) * | 2018-01-05 | 2018-06-12 | 中汇信息技术(上海)有限公司 | 一种数据传输方法、装置及系统 |
-
2018
- 2018-11-28 CN CN201811430775.7A patent/CN109660602B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103718154A (zh) * | 2011-06-01 | 2014-04-09 | 施耐德电气It公司 | 用于执行设备控制的系统和方法 |
CN107408135A (zh) * | 2015-03-26 | 2017-11-28 | 微软技术许可有限责任公司 | 用于对加密数据进行查询处理的数据库服务器和客户端 |
CN107294803A (zh) * | 2017-06-15 | 2017-10-24 | 北京小度信息科技有限公司 | 响应信息一致性测试方法及装置 |
CN108388613A (zh) * | 2018-02-08 | 2018-08-10 | 竞技世界(北京)网络技术有限公司 | 一种缓存数据的更新方法 |
CN108829727A (zh) * | 2018-05-09 | 2018-11-16 | 上海陆家嘴国际金融资产交易市场股份有限公司 | 数据存储方法、装置、计算机设备和存储介质 |
CN108874418A (zh) * | 2018-05-23 | 2018-11-23 | 北京五八信息技术有限公司 | Ui组件的更新方法、装置、终端及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109660602A (zh) | 2019-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109144696B (zh) | 一种任务调度方法、装置、电子设备及存储介质 | |
US20170102986A1 (en) | Automatic correlation of dynamic system events within computing devices | |
CN112367211B (zh) | 一种设备命令行生成配置模板方法、装置及存储介质 | |
EP3556067B1 (en) | System and method for address-mapped control of field programmable gate array (fpga) via ethernet | |
CN109660602B (zh) | 数据增量传输方法及装置 | |
CN111563199B (zh) | 一种数据处理方法及装置 | |
CN107330031B (zh) | 一种数据存储的方法、装置及电子设备 | |
CN104895817B (zh) | 一种基于snmp进行服务器风扇控制的方法 | |
KR100747467B1 (ko) | 로그 관리 객체를 이용한 장치관리 시스템 및 해당시스템에서의 로깅 데이터 생성 및 제어 방법 | |
CN105094857A (zh) | 用于应用加载的方法和系统 | |
CN107870925B (zh) | 一种字符串过滤方法和相关装置 | |
CN112291212B (zh) | 静态规则的管理方法、装置、电子设备和存储介质 | |
CN111736848B (zh) | 包冲突定位方法、装置、电子设备及可读存储介质 | |
CN112579006A (zh) | 一种数据存储生命周期管理方法及系统 | |
CN114356404A (zh) | 接口文档生成方法、系统和计算机可读存储介质 | |
CN110119351B (zh) | 一种测试用例执行方法及装置 | |
CN105511910A (zh) | 接口配置方法和装置 | |
CN111159162A (zh) | 数据库配置方法及设备 | |
CN109885542A (zh) | 项目文件管理方法、装置及存储介质 | |
CN116055191B (zh) | 一种网络入侵检测方法、装置、电子设备和存储介质 | |
US10374898B2 (en) | Network revision evaluator | |
CN112748945B (zh) | 一种数据存储方法、装置及电子设备 | |
CN117176839B (zh) | 遥测报文传输方法、装置、通信设备及存储介质 | |
CN118555086A (zh) | 访问控制列表规则修改的方法、网络设备、可读介质 | |
CN113190224B (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 |