CN108089879B - 增量更新方法、设备及可编程设备 - Google Patents

增量更新方法、设备及可编程设备 Download PDF

Info

Publication number
CN108089879B
CN108089879B CN201611048719.8A CN201611048719A CN108089879B CN 108089879 B CN108089879 B CN 108089879B CN 201611048719 A CN201611048719 A CN 201611048719A CN 108089879 B CN108089879 B CN 108089879B
Authority
CN
China
Prior art keywords
application object
basic elements
information
incremental
application
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
Application number
CN201611048719.8A
Other languages
English (en)
Other versions
CN108089879A (zh
Inventor
韩进巍
郭照敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Original Assignee
Alibaba China Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN201611048719.8A priority Critical patent/CN108089879B/zh
Priority to US15/819,040 priority patent/US20180143823A1/en
Publication of CN108089879A publication Critical patent/CN108089879A/zh
Application granted granted Critical
Publication of CN108089879B publication Critical patent/CN108089879B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种增量更新方法、设备及可编程设备。该增量更新方法包括:根据第一应用程序对象以及第二应用程序对象的数据结构,比较构成第一应用程序对象中的基本元素与构成第二应用程序对象中的基本元素,以确定基本元素的差异信息;根据基本元素的差异信息生成增量信息;将增量信息下发至更新端,使得更新端根据所述增量信息将第一应用程序对象更新为第二应用程序对象。根据本发明,使得增量信息与第一应用程序对象和第二应用程序对象之间存在的基本元素的差异保持一致性,从而具有较小的信息量,极大节省下发增量信息的流量。

Description

增量更新方法、设备及可编程设备
技术领域
本发明涉及计算机技术领域,更具体地,涉及一种增量更新方法、设备及可编程设备。
背景技术
随着计算机技术发展,面向对象(Object Oriented,OO)不仅作为软件开发方法,向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库***、交互式界面、应用结构、应用平台、分布式***、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机技术发展到一定阶段后的产物。而对象,可以是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件,在计算机技术领域,对象通常是指在内存上一段有意义的区域,例如列表、结构体、字符串等等,对象具有状态,可以用数据值来描述对象的状态,对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为,对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。一切事物皆对象,通过面向对象的方式,将现实世界的事物抽象成对象,帮助人们实现对现实世界的抽象与数字建模,利于用人理解的方式对复杂***进行分析、设计与编程。
而随着网络技术发展,将对象转化为二进制数据流以便在网络中传输或者存在网络端点中,是对于对象的常见操作方式,例如,谷歌发布的ProtoBuffer,就是一种将对象二进制序列化技术方案,可以使得将对象转换成二进制流,以便网络传输和文件落地,对应二进制流在内存中经过解析即可像普通对象一样进行操作,该方案具有高解析性能,高压缩比的技术优势,常被用来支撑服务端到客户端的资源下发,客户端本地存储等业务。
但是,基于将对象二进制序列化技术方案来实现服务端到客户端的资源下发时,由于目前网络服务量的快速增长,服务端通常需要下发较大的对象,而服务端通常采用全量下发的方式,这就意味着下发的对象即使只存在一点微小的更新,也需要将更新后的对象全量下发,这就会对服务端带来巨大的带宽压力,目前实测中服务端峰值带宽100Gpbs/分钟,同时也意味着巨大的流量成本。
虽然目前针对这个问题,也提出了类似二进制差分的增量更新方案,对新旧两个对象的二进制序列化后的二进制流进行差分,获取增量信息进行下发,使得接收端可以根据增量信息融合旧对象的二进制流后转化为新对象。但是,由于对象在进行二进制序列化后得到的二进制流时引入了一系列处理操作,对象的差异与对应的二进制流的差异并不能保持一致,例如,Protobuffer文件对二进制格式就无法保持一致,这就意味着,新旧两个对象可能只存在微小的差异,但是对应生成的二进制流之间差异非常大,这样就会造成下发的增量信息也会非常大,通常也会对增量下发端带来巨大的带宽压力,以及巨大的流量成本。
因此,发明人认为,有必要对上述现有技术中存在的问题进行改进。
发明内容
本发明的一个目的是提供一种用于增量更新的新技术方案。
根据本发明的第一方面,提供了一种增量更新方法,包括:
根据第一应用程序对象以及第二应用程序对象的数据结构,比较构成所述第一应用程序对象中的基本元素与构成所述第二应用程序对象中的基本元素,以确定基本元素的差异信息,其中,所述对象的数据结构用于描述所述对象由对应的基本元素构成的方式,所述基本元素的差异信息用于指示第二应用程序对象与第一应用程序对象中存在差异的基本元素;
根据所述基本元素的差异信息生成增量信息,所述增量信息至少包括对所述第一应用程序对象的基本元素的更新信息;
将所述增量信息下发至更新端,使得所述更新端根据所述增量信息,将所述第一应用程序对象更新为所述第二应用程序对象。
可选地,所述根据第二应用程序对象以及第一应用程序对象的数据结构,比较第一应用程序对象中包含的基本元素与所述第二应用程序对象包含的基本元素,以确定基本元素的差异信息的步骤,包括:
根据所述第一应用程序对象的数据结构,将所述第一应用程序对象分解为多个第一层级列表,其中,所述第一层级列表中包含第一应用程序对象的数据结构中对应层级的基本元素;
根据所述第二应用程序对象的数据结构,将所述第二应用程序对象分解为多个第二层级列表,其中,所述第二层级列表中包含第二应用程序对象的数据结构中对应层级的基本元素;
逐个比较所述第一层级列表与所述第二层级列表,确定所述基本元素的差异信息。
可选地,所述基本元素的差异信息至少包括所述存在差异的基本元素的类型、内容、差异类型以及结构路径。
可选地,所述对第一应用程序对象的基本元素的更新信息至少包括对所述第一应用程序对象的基本元素的更新方式、对应更新的基本元素的类型、内容以及结构路径。
根据本发明的第二方面,提供一种增量更新方法,包括:
根据所接收的增量信息,更新第一应用程序对象中对应的基本元素,使得所述第一应用程序对象更新为与所述增量信息对应的第二应用程序对象,其中,所述增量信息至少包括对所述第一应用程序对象的基本元素的更新信息。
根据本发明的第三方面,提供一种增量更新设备,包括:
差异确定单元,用于根据第一应用程序对象以及第二应用程序对象的数据结构,比较构成所述第一应用程序对象中的基本元素与构成所述第二应用程序对象中的基本元素,以确定基本元素的差异信息,其中,所述对象的数据结构用于描述所述对象由对应的基本元素构成的方式,所述基本元素的差异信息用于指示第二应用程序对象与第一应用程序对象中存在差异的基本元素;
增量生成单元,用于根据所述基本元素的差异信息生成增量信息,所述增量信息至少包括对所述第一应用程序对象的基本元素的更新信息;
增量下发单元,用于将所述增量信息下发至更新端,使得所述更新端根据所述增量信息,将所述第一应用程序对象更新为所述第二应用程序对象。
可选地,所述差异确定单元包括:
第一对象分解单元,用于根据所述第一应用程序对象的数据结构,将所述第一应用程序对象分解为多个第一层级列表,其中,所述第一层级列表中包含第一应用程序对象的数据结构中对应层级的基本元素;
第二对象分解单元,用于根据所述第二应用程序对象的数据结构,将所述第二应用程序对象分解为多个第二层级列表,其中,所述第二层级列表中包含第二应用程序对象的数据结构中对应层级的基本元素;
列表比较单元,用于逐个比较所述第一层级列表与所述第二层级列表,确定所述基本元素的差异信息。
根据本发明的第四方面,提供一种增量更新设备,用于根据所接收的增量信息,更新第一应用程序对象中对应的基本元素,使得所述第一应用程序对象更新为与所述增量信息对应的第二应用程序对象,其中,所述增量信息至少包括对所述第一应用程序对象的基本元素的更新信息。
根据本发明的第五方面,提供一种可编程设备,包括存储器和处理器,所述存储器用于存储指令,所述指令用于控制所述处理器进行操作以执行本发明的第一方面提供的增量更新方法。
根据本发明的第六方面,提供一种可编程设备,包括存储器和处理器,所述存储器用于存储指令,所述指令用于控制所述处理器进行操作以执行本发明的第二方面提供的增量更新方法。
本发明的发明人发现,在现有技术中,尚未存在一种增量更新方法、设备及可编程设备,可以根据应用程序对象的数据结构比较确定第一应用程序对象和第二应用程序对象之间存在基本元素的差异以产生增量信息,使得增量信息与第一应用程序对象和第二应用程序对象之间存在的基本元素的差异保持一致性,从而具有较小的信息量,极大节省下发增量信息的流量。因此,本发明所要实现的技术任务或者所要解决的技术问题是本领域技术人员从未想到的或者没有预期到的,故本发明是一种新的技术方案。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1是显示可用于实现本发明的实施例的计算***的硬件配置的例子的框图。
图2示出了本发明第一实施例中提供的增量更新方法的流程图。
图3示出了本发明第一实施例中提供的增量更新方法的又一流程图。
图4示出了本发明第一实施例中提供的增量更新设备的示意性框图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<硬件配置>
图1是示出可以实现本发明的实施例的计算机***1000的硬件配置的框图。
如图1所示,计算机***1000包括计算机1110。计算机1110包括经由***总线1121连接的处理器1120、存储器1130、固定非易失性存储器接口1140、移动非易失性存储器接口1150、用户输入接口1160、网络接口1170、视频接口1190和输出***接口1195。
***存储器1130包括ROM(只读存储器)和RAM(随机存取存储器)。BIOS(基本输入输出***)驻留在ROM内。操作***、应用程序、其它程序模块和某些程序数据驻留在RAM内。
诸如硬盘的固定非易失性存储器连接到固定非易失性存储器接口1140。固定非易失性存储器例如可以存储操作***、应用程序、其它程序模块和某些程序数据。
诸如软盘驱动器和CD-ROM驱动器的移动非易失性存储器连接到移动非易失性存储器接口1150。例如,软盘可以被***到软盘驱动器中,以及CD(光盘)可以被***到CD-ROM驱动器内。
诸如鼠标和键盘的输入设备被连接到用户输入接口1160。
计算机1110可以通过网络接口1170连接到远程计算机1180。例如,网络接口1170可以通过局域网连接到远程计算机。或者,网络接口1170可以连接到调制解调器(调制器-解调器),以及调制解调器经由广域网连接到远程计算机1180。
远程计算机1180可以包括诸如硬盘的存储器,其可以存储远程应用程序。
视频接口1190连接到监视器。
输出***接口1195连接到打印机和扬声器。
图1所示的计算机***仅仅是说明性的并且决不意味着对本发明、其应用或使用的任何限制。应用于本发明的实施例中,计算机1110的所述存储器1130用于存储指令,所述指令用于控制所述处理器1120进行操作以执行本发明实施例提供的任意一项增量更新方法。尽管在图1中对计算机1110示出了多个装置,但是,本发明可以仅涉及其中的部分装置,例如,计算机1110只涉及处理器1120和存储器1130。技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
<第一实施例>
在本实施例中,提供一种增量更新方法,如图2所示,包括:
步骤S2100,根据第一应用程序对象以及第二应用程序对象的数据结构,比较构成所述第一应用程序对象中的基本元素与构成所述第二应用程序对象中的基本元素,以确定基本元素的差异信息,其中,所述对象的数据结构用于描述所述对象由对应的基本元素构成的方式,所述基本元素的差异信息用于指示第二应用程序对象与第一应用程序对象中存在差异的基本元素。
在本实施例中,对象是内存中一段有意义的区域,由若干个基本元素构成。每个对象由基本元素构成的方式可能不同,在本实施例中,对对象赋予数据结构,对象的数据结构用于描述该对象由对应的基本元素构成的方式。具体地,所述对象可以是符合面向对象的编程语言中的对象,例如Java对象,而所述对象的数据结构,可以用Java中定义的类来展现。因此,所述应用程序对象,是指通过符合面向对象的编程语言开发或实现的应用程序(例如手机APP、电脑软件等)对应的程序实体中的所述对象,例如,手机APP对应实体中的对象。而所述第一应用程序对象与所述第二应用程序对象,可以是不同版本或者不同开发时间的同一款应用程序分别对应实体中的对象,例如,第一应用程序对象可以是旧应用程序对应实体中的对象,而第二应用程序对象可以是更新后的该应用程序的对应实体中对象。
而在本实施例中,所述基本元素可以是符合面向对象的编程语言定义的基本数据类型的数据和字符串(string类型),例如,符合Java语言中定义的基本数据类型的数和字符串类型的数据:bool/byte/short/double/float/int/long/string类型的数据。
具体地,一个示意性的例子中,应用程序对象为person:{name=“shangsan”,address=“guangzhou”,age=“25”};该应用程序对象的数据结构是:
Figure BDA0001157991700000081
则该应用程序对象的基本元素为String类型的“shangsan”、“guangzhou”以及int类型“25”,根据数据结构Person构成应用程序对象person。
而在另一个示意性的例子中,应用程序对象为phone:{imei=“123123”,Personowner};该应用程序对象的数据结构是:
Figure BDA0001157991700000082
则该应用程序对象的基本元素为long类型的“123123”、以及构成owner的基本元素(owner的数据结构同前例中的应用程序对象person,在本例中,构成owner的基本元素可以与应用程序对象person相同),这些基本元素根据数据结构Phone构成应用程序对象phone。
又例如,应用程序对象为schoolclass:{name=“class1”,List<Person>students},其中students是一个由50个数据结构为Person的应用程序对象构成的列表;该应用程序对象的数据结构是:
Figure BDA0001157991700000083
则该应用程序对象的基本元素为string类型的“class1”、以及构成students列表的50个具有数据结构Person的应用程序对象中对应的基本元素,这些基本元素根据数据结构SchoolClass构成应用程序对象schoolclass。
在本实施例中,通过比较第一应用程序对象中的基本元素与构成所述第二应用程序对象中的基本元素,确定第二应用程序对象与第一应用程序对象中存在差异的基本元素,得到示第二应用程序对象与第一应用程序对象中存在差异的基本元素的基本元素的差异信息。具体地,可以如图3所示,包括:
步骤S3100,根据所述第一应用程序对象的数据结构,将所述第一应用程序对象分解为多个第一层级列表,其中,所述第一层级列表中包含第一应用程序对象的数据结构中对应层级的基本元素;
步骤S3200,根据所述第二应用程序对象的数据结构,将所述第二应用程序对象分解为多个第二层级列表,其中,所述第二层级列表中包含第二应用程序对象的数据结构中对应层级的基本元素;
步骤S3300,逐个比较所述第一层级列表与所述第二层级列表,确定所述基本元素的差异信息。
在本实施例中,不限制步骤S3100和步骤S3200的前后顺序,两个步骤可以同时进行或者以任意的先后顺序进行。
更具体地,以上文中的应用程序对象person为第一应用程序对象:{name=“shangsan”,address=“guangzhou”,age=“25”},根据数据结构Person,可以被为分解为三个第一层级列表:{name=“shangsan”}、{address=“guangzhou”}、{age=“25”};
假设第二应用程序对象person1为{name=“shangsan”,address=“beijing”,age=“25”},根据数据结构Person,可以被为分解为三个第二层级列表:{name=“shangsan”}、{address=“beijing”}、{age=“25”};
逐个比较第一层级列表{name=“shangsan”}与第二层级列表{name=“shangsan”}、第一层级列表{address=“guangzhou”}与第二层级列表{address=“beijing”}、第一层级列表{age=“25”}与第二层级列表{age=“25”},确定第二应用程序对象与第一应用程序对象中存在差异的基本元素是“address”对应的列表中的基本元素,对应地,基本元素的差异信息用于指示在差异的基本元素是“address”对应的列表中的基本元素,具体地,基本元素的差异信息中,可以包括该基本元素的类型指示(string型),内容“beijing”,该基本元素的结构路径(在应用程序对象的数据结构中的位置是与“address”对应,具体可以是/address),差异类型是内容变化。
又例如,第一应用程序对象为上文中的应用程序对象phone:{imei=“123123”,Person owner},其中owner是具有数据结构Person的嵌套的应用程序对象,具体为{name=“shangsan”,address=“guangzhou”,age=“25”},可以根据数据结构Phone将应用程序对象phone分解为第一层级列表{imei=“123123”}和应用程序对象owner;然后再根据数据结构Phone中指示的person的数据结构将owner分解得到三个第一层级列表:{name=“shangsan”}、{address=“guangzhou”}、{age=“25”},最终得到四个第一层级列表{imei=“123123”}、{name=“shangsan”}、{address=“guangzhou”}、{age=“25”};
假设第二应用程序对象phone1为{imei=“123123”,Person owner},其中owner是具有数据结构Person的嵌套对象,具体为{name=“shangsan”,address=“guangzhou”,age=“26”},第二应用程序对象phone1也可以根据数据结构Phone被分解为四个第一层级列表{imei=“123123”}、{name=“shangsan”}、{address=“guangzhou”}、{age=“26”};
逐个比较第一层级列表与第二层级列表,确定第二应用程序对象与第一应用程序对象中存在差异的基本元素是“age”对应的列表中的基本元素,对应地,基本元素的差异信息用于指示在差异的基本元素是“age”对应的列表中的基本元素,具体地,基本元素的差异信息中,可以包括该基本元素的类型指示(int型),内容“26”,该基本元素的结构路径(在对象数据结构中的位置是与“age”对应,具体可以是/Owner/age),差异类型是内容变化。
或者,以上文中的应用程序对象schoolclass为第一应用程序对象,具体地,schoolclass为{name=“class1”,List<Person>students},其中students是一个由50个数据结构为Person的应用程序对象构成的列表,可以根据数据结构SchoolClass将应用程序对象schoolclass分解为第一层级列表{name=“class1”}以及List<Person>students,而后根据数据结构SchoolClass指示的List<Person>结构,将students分解为50个具有数据结构为Person的应用程序对象,而后再逐个分解这50个具有数据结构为Person的应用程序对象,每个应用程序对象分别对应三个第一层级列表{name=“XX”}、{address=“XX”}、{age=“XX”},其中针对每个数据结构为Person的应用程序对象,具体的“XX”的内容各有不同,不再示意性给出具体内容以免赘述,最终应用程序对象schoolclass可以被分解为151个第一层级列表;
假设第二应用程序对象为schoolclass1,具体地,schoolclass1为{name=“class1”,List<Person>students},其中students是一个由51个具有数据结构为Person的应用程序对象构成的列表,与分解第一应用程序对象schoolclass类似地,根据数据结构SchoolClass,第二应用程序对象schoolclass1被分解为152个第一层级列表;
逐个比较第一层级列表与第二层级列表,确定第二应用程序对象与第一应用程序对象中存在差异的基本元素:是构成第二应用程序对象schoolclass1中students列表中的第51个具有数据结构Person的应用程序对象的基本元素;假设第二应用程序对象schoolclass1中students列表中的第51个具有数据结构Person的应用程序对象具体为:{name=“shangsan”,address=“guangzhou”,age=”25”};
对应地,基本元素的差异信息,可以分别指示这三个存在差异的基本元素:类型string、内容“shangsan”、结构路径/students&index=51/name(列表中第51个与“name”对应的位置)、差异类型为新增基本元素;类型string、内容“guangzhou”、结构路径/students&index=51/address(列表中第51个与“address”对应的位置)、差异类型为新增基本元素;类型int、内容“25”、结构路径/students&index=51/age(列表中第51个与“age”对应的位置)、差异类型为新增基本元素;也可以指示在列表student中应用程序对象的变化,例如指示对象数据结构为Person、内容为{name=“shangsan”,address=“guangzhou”,age=”25”}、结构路径/students&index=51,差异类型为列表对象新增。
类似地,当构成第二应用程序对象的基本元素与构成第一应用程序对象的基本元素相比减少时,也可以通过本实施例中提供的如图2或图3所示的方法确定在第二应用程序对象中减少的基本元素,得到基本元素的差异信息,例如,更具体地,所述基本元素的差异信息中包含的差异类型可以指示为基本元素减少或者列表对象减少。
而在本实施例中,通过上述的如图2或图3所示的方法,对于构成第二应用程序对象的基本元素与构成第一应用程序对象的基本元素比较后,确定存在差异的基本元素,只是第二应用程序对象的数据结构中的具***置发生变化,例如第一应用程序对象具体为[1,2,3,4,7],而第二应用程序对象为[1,7,3,4,2],只是第2个基本元素与第5个基本元素的位置发生互换,可以不认为是第2个基本元素与第5个基本元素都发生更新,而是确定基本元素的差异信息为第2个基本元素与第5个基本元素位置互换,更具体,基本元素的差异信息中只包含结构路径变化例如“index=2||index=5”,以及差异类型为基本元素互换。
通过上述的例子,已经进一步说明了本实施例中基于应用程序对象的数据结构,比较第一应用程序对象和第二应用程序对象之间存在的基本元素的差异以确定基本元素的差异信息。具体地,所述基本元素的差异信息至少包括所述存在差异的基本元素的类型、内容、差异类型以及结构路径,所述结构路径可以是存在差异的基本元素在对应对象的数据结构中的位置。
在步骤S2100中获取基本元素的差异信息后,进入步骤S2200,根据所述基本元素的差异信息生成增量信息,所述增量信息至少包括对所述第一应用程序对象的基本元素的更新信息。
具体地,以上文中的第二应用程序对象为person1,第一应用程序对象为person为例:假设基本元素的差异信息中包括该基本元素的类型指示(string型),内容“beijing”,该基本元素的结构路径(在对象数据结构中的位置是与“address”对应,具体可以是/address),差异类型是内容变化;对应地,生成的增量信息可以包括:对第一应用程序对象中的基本元素的更新方式为内容更新,对应更新的基本元素类型为string型、内容“beijing”以及结构路径是/address。
又例如,以上文中的第二应用程序对象为phone1,第一应用程序对象为phone为例:假设基本元素的差异信息中包括该基本元素的类型指示(int型),内容“26”,该基本元素的结构路径(在对象数据结构中的位置是与“age”对应,具体可以是/Owner/age),差异类型是内容变化;对应地,生成的增量信息可以包括:对第一应用程序对象中的基本元素的更新方式为内容更新,对应更新的基本元素类型为int型、内容“26”以及结构路径是/Owner/age。
或者,以上文中的第二应用程序对象为schoolclass1,第一应用程序对象为schoolclass为例:假设基本元素的差异信息中指示的是在列表student中对象的变化,例如指示对象数据结构为Person(实际可以是数据结构Person在对应的对象中具体的结构类型编号,例如10)、内容为{name=“shangsan”,address=“guangzhou”,age=”25”}、结构路径/students&index=51,差异类型为列表对象新增;对应地,生成的增量信息可以包括:对第一应用程序对象中的基本元素的更新方式为***列表对象,对象类型为Person,内容为{name=“shangsan”,address=“guangzhou”,age=”25”}、结构路径/students&index=51。
类似地,对于第二应用程序对象中与第一应用程序对象比较,存在基本元素的新增、减少、列表对象的减少的情况,也可以通过类似上述的例子中生成增量信息,对应的增量信息中的对第一应用程序对象中的基本元素的更新方式可以为***基本元素、删除基本元素、删除列表对象等。
此外,当发生变化的基本元素为第一应用程序对象中包含的基本元素时,例如,只是第一应用程序对象中基本元素的位置互换,可以在生成的增量信息中,指示第一应用程序对象中的基本元素的更新方式为基本元素重用,指示第一应用程序对象中需更新的元素为可以重用的值(例如设置内容为特殊值,比如1,用于指示为可重用的值)、具体对应的结构路径(例如指示基本元素具体互换的结构路径),而不再实际包含基本元素的内容,进一步降低增量信息的信息大小。
通过上述的例子,所述对第一应用程序对象的基本元素的更新信息可以至少包括对所述第一应用程序对象的基本元素的更新方式、对应更新的基本元素的类型、内容以及结构路径。
更具体地,所述对第一应用程序对象的基本元素的更新信息可以以对象patch来表示,具体的patch的数据结构Patch为:
Figure BDA0001157991700000141
其中,Patch中包括由一系列action构成的action列表,每一个action代表对第一应用程序对象中基本元素的一次更新,例如,将某个基本元素的内容更新、***一个列表对象等,具体地,action的数据结构可以如下:
Figure BDA0001157991700000142
其中,type是具体的更新第一应用程序对象的基本元素的类型,oldValueLocation是更新第一应用程序对象中基本元素的结构路径。
更具体地,Action可以是不同的类型的数据结构,对应不同的第一应用程序对象的更新方式,例如:
(1)对于内容更新,具体的Action为:
class UpdateAction extends Action{
Value targetValue;};
其中,targetValue是具体要修改的内容;
(2)对于***列表对象,具体的Action为:
Figure BDA0001157991700000143
其中,index是***列表对象的具***置索引,targetValue是***列表对象的内容;
(3)对于删除列表对象,具体的Action为:
class ListRemoveAction extends Action{
int index;
};
其中,index是删除列表对象的具***置索引。
此外,Patch中还包括与一系列Action对应的Value,具体的Value的数据结构可以如下:
abstract class Value{
int type;
};
其中,type为具体的更新的第一应用程序对象的基本元素的类型,而对于第一应用程序对象中无法直接重用的基本元素,比如要将"guangzhou"改为"beijing",那么增量信息中必须要包含更新的第一应用程序对象的基本元素的内容"beijing",可以采用如下的数据结构:
class NewValue extends Value{
byte[]obj;
};
其中,obj为具体基本元素的内容;
而对于第一应用程序对象中可以直接重用的基本元素时,可以采用如下的数据结构:
class ExistedValue extends Value{
String valueLocation;
};
其中,valueLocation指示该基本元素的结构路径。
上述数据结构Patch结构仅是示意性地,用于说明本实施例中生成的增量信息可能的具体表示方式。
而在本实施例中,根据基本元素的差异信息生成增量信息,可以使得增量信息与第一应用程序对象和第二应用程序对象存在的基本元素的差异保持一致性,使得增量信息的信息量较小,不会如现有技术的二进制差分的增量更新方案,无法保持增量信息与第一应用程序对象和第二应用程序对象的差异保持一致性,从而出现第一应用程序对象和第二应用程序对象之间只是存在个别基本元素的差异,而生成增量信息的信息量很大的情况。
具体的应用中,对于相同的第一应用程序对象和第二应用程序对象的差异,本实施例中根据基本元素的差异信息生成的增量信息,与现有技术的二进制差分的增量更新方案生成增量信息相比,增量信息的信息量减少了90%以上。
在步骤S2200生成增量信息后,进入步骤S2300,将所述增量信息下发至更新端,使得所述更新端根据所述增量信息,将所述第一应用程序对象更新为所述第二应用程序对象。
在本实施例中提供的增量更新方法,可以适用于任何以面向对象语言开发的***中对象的更新,例如,该***中服务端与客户端之间资源更新、服务端之间的资源同步更新、客户端软件程序的版本更新的等等,所更新的对象可以根据具体应用的场景进行调整。
而所述更新端,可以是台式计算机、手机、平板电脑、笔记本电脑等常见的客户端设备,也可以是刀片服务器等服务端设备,还可以是软件应用程序等等,更新端可以通过无线或有线连接、局域网或者广域网连接与本实施例中具体实施生成增量信息的设备连接。
在本实施例中,并不限制增量信息下发的方式,可以将增量信息通过自定义的文件格式下发,也可以通过如Protobuffer机制将增量信息进行二进制序列化得到二进制数据流下发。但无论采用何种方式下发,由于本实施例中生成的增量信息,与第一应用程序对象和第二应用程序对象之间存在的基本元素的差异保持一致性,可以使得同等条件下,下发增量信息所消耗的流量,远远小于现有技术中二进制差分方案生成的增量信息所消耗的流量,能极大地降低具体实施增量信息下发的设备的带宽压力,此外,也节省下发增量信息所消耗的流量,能极大节省流量成本。
在本实施例中,还提供一种增量更新设备4000,如图4所示,包括:差异确定单元4100、增量生成单元4200以及增量下发单元4300,用于实施本实施例中如图2或图3所示的增量更新方法,在此不再赘述。
增量更新设备4000,包括:
差异确定单元4100,用于根据第一应用程序对象以及第二应用程序对象的数据结构,比较构成所述第一应用程序对象中的基本元素与构成所述第二应用程序对象中的基本元素,以确定基本元素的差异信息,其中,所述对象的数据结构用于描述所述对象由对应的基本元素构成的方式,所述基本元素的差异信息用于指示第二应用程序对象与第一应用程序对象中存在差异的基本元素;
增量生成单元4200,用于根据所述基本元素的差异信息生成增量信息,所述增量信息至少包括对所述第一应用程序对象的基本元素的更新信息;
增量下发单元4300,用于将所述增量信息下发至更新端,使得所述更新端根据所述增量信息,将所述第一应用程序对象更新为所述第二应用程序对象。
可选地,所述述差异确定单元4100包括:
第一对象分解单元4110,用于根据所述第一应用程序对象的数据结构,将所述第一应用程序对象分解为多个第一层级列表,其中,所述第一层级列表中包含第一应用程序对象的数据结构中对应层级的基本元素;
第二对象分解单元4120,用于根据所述第二应用程序对象的数据结构,将所述第二应用程序对象分解为多个第二层级列表,其中,所述第二层级列表中包含第二应用程序对象的数据结构中对应层级的基本元素;
列表比较单元4130,用于逐个比较所述第一层级列表与所述第二层级列表,确定所述基本元素的差异信息。
在本实施例中,并不限制所述增量更新设备4000的具体实施方式,例如,增量更新设备4000可以是服务端设备例如刀片服务器,也可以是与服务端设备形成连接的外置设备,还可以是服务端设备中内置的功能单元,等等。
在本实施例中,提供一种可编程设备,包括存储器和处理器,所述存储器用于存储指令,所述指令用于控制所述处理器进行操作以执行如图2或图3所示的增量更新方法。具体地,所述可编程设备的硬件配置可以如图1中的计算机1110所示,在此不再赘述。
上述已经结合附图和例子说明本实施例中提供增量更新方法,根据对象的数据结构比较第一应用程序对象和第二应用程序对象之间存在的基本元素的差异确定基本元素的差异信息,使得根据基本元素的差异信息生成的增量信息,与第一应用程序对象和第二应用程序对象之间存在的差异具有一致性,信息量远小于现有技术中增量更新方法产生的增量信息,极大降低实施增量更新的设备的下发增量信息的带宽压力。此外,也极大减少下发增量信息所消耗的流量,节省流量成本。
本领域技术人员应当明白,可以通过各种方式来实现增量更新设备4000。例如,可以通过指令配置处理器来实现增量更新设备4000。例如,可以将指令存储在ROM中,并且当启动设备时,将指令从ROM读取到可编程器件中来实现增量更新设备4000。例如,可以将增量更新设备4000固化到专用器件(例如ASIC)中。可以将增量更新设备4000分成相互独立的单元,或者可以将它们合并在一起实现。增量更新设备4000可以通过上述各种实现方式中的一种来实现,或者可以通过上述各种实现方式中的两种或更多种方式的组合来实现。
<第二实施例>
在本实施例,提供一种增量更新方法,根据所接收的增量信息,更新第一应用程序对象中对应的基本元素,使得所述第一应用程序对象更新为与所述增量信息对应的第二应用程序对象,其中,所述增量信息至少包括对所述第一应用程序对象的基本元素的更新信息。
所述增量更新方法,可以通过更新端实施,该更新端具有将本地存储的第一应用程序对象更新为增量信息对应的第二应用程序对象的更新需求,可以是台式计算机、手机、平板电脑、笔记本电脑等常见的客户端设备,也可以是刀片服务器等服务端设备,还可以是软件应用程序等等。
所述接收的增量信息可以通过第一实施例中如图2或图3所示的增量更新方法生成下发的,在此不再赘述。
本实施例中,根据所接收的增量信息,更新第一应用程序对象中对应的基本元素,使得所述第一应用程序对象更新为与所述增量信息对应的第二应用程序对象,例如,所述第一应用程序对象是上文中的对象person时;假设增量信息包括:对第一应用程序对象中的基本元素的更新方式为内容更新,对应更新的基本元素类型为string型、内容“beijing”以及结构路径是/address;对应地,更行person对象的基本元素“guangzhou”为“beijing”,使得对象person被更新为对应person1。
而本实施例中,根据所接收的增量信息,更新第一应用程序对象中对应的基本元素的具体实施方式可以是多种,例如,增量信息是通过Protobuffer机制发送的二进制数据流时,可以根据接收的增量信息的二进制数据流后,对第一应用程序对象在二进制数据格式层面上根据增量信息进行更新,又或者,当第一应用程序对象为Java对象时,可以通过Java的反射机制对第一应用程序对象进行更新,其中,Java的反射机制可以在运行状态中调用任意一个Java对象、或者获取构成该Java对象的基本元素或者该Java对象的数据结构,在此不再一一列举。
本实施例中,所接收的增量信息至少包括对所述第一应用程序对象的基本元素的更新信息,该增量信息和本地的第一应用程序对象与该增量信息对应的第二应用程序对象之间存在的基本元素的差异具有一致性,信息量远小于现有技术中增量更新方法产生的增量信息,能极大地降低实施第一应用程序对象更新的更新端的流量成本。
在本实施例中,还提供一种增量更新设备,用于根据所接收的增量信息,更新第一应用程序对象中对应的基本元素,使得所述第一应用程序对象更新为与所述增量信息对应的第二应用程序对象,其中,所述增量信息至少包括对所述第一应用程序对象的基本元素的更新信息。以此实施本实施例中提供的增量更新方法,在此不再赘述。
在本实施例中,所述增量更新设备可以存在多种实体设备形式,可以是具有对象更新需求的更新端,例如台式计算机、手机、平板电脑、笔记本电脑等常见的客户端设备,也可以是刀片服务器等服务端设备,还可以是软件应用程序等,也可以是与更新端形成连接的外部设备,还可以是内置与更新端的功能单元。
在本实施例中,提供一种可编程设备,包括存储器和处理器,所述存储器用于存储指令,所述指令用于控制所述处理器进行操作以执行本实施例中的增量更新方法。具体地,所述可编程设备的硬件配置可以如图1中的计算机1110所示,在此不再赘述。
根据本实施例,根据所接收的增量信息,将本地的第一应用程序对象更新为与增量信息对应的第二应用程序对象,所接收的增量信息至少包括对所述第一应用程序对象的基本元素的更新信息,该增量信息和本地的第一应用程序对象与该增量信息对应的第二应用程序对象之间存在的基本元素的差异具有一致性,信息量远小于现有技术中增量更新方法产生的增量信息,能极大地降低实施第一应用程序对象更新的更新端的流量成本。
本领域技术人员应当明白,可以通过各种方式来实现本实施例中提供的增量更新设备。例如,可以通过指令配置处理器来实现该增量更新设备。例如,可以将指令存储在ROM中,并且当启动设备时,将指令从ROM读取到可编程器件中来实现该增量更新设备。例如,可以将该增量更新设备固化到专用器件(例如ASIC)中。可以将该增量更新设备分成相互独立的单元,或者可以将它们合并在一起实现。该增量更新设备可以通过上述各种实现方式中的一种来实现,或者可以通过上述各种实现方式中的两种或更多种方式的组合来实现。
本领域技术人员公知的是,随着诸如大规模集成电路技术的电子信息技术的发展和软件硬件化的趋势,要明确划分计算机***软、硬件界限已经显得比较困难了。因为,任何操作可以软件来实现,也可以由硬件来实现。任何指令的执行可以由硬件完成,同样也可以由软件来完成。对于某一机器功能采用硬件实现方案还是软件实现方案,取决于价格、速度、可靠性、存储容量、变更周期等非技术性因素。因此,对于电子信息技术领域的普通技术人员来说,更为直接和清楚地描述一个技术方案的方式是描述该方案中的各个操作。在知道所要执行的操作的情况下,本领域技术人员可以基于对所述非技术性因素的考虑直接设计出期望的产品。
本发明可以是***、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

Claims (9)

1.一种增量更新方法,其特征在于,包括:
根据第一应用程序对象以及第二应用程序对象的数据结构,比较构成所述第一应用程序对象中的基本元素与构成所述第二应用程序对象中的基本元素,以确定基本元素的差异信息,其中,所述第一应用程序对象以及所述第二应用程序对象是指,通过符合面向对象的编程语言开发或实现的应用程序对应的程序实体中的对象,所述对象的数据结构用于描述所述对象由对应的基本元素构成的方式,所述基本元素的差异信息用于指示第二应用程序对象与第一应用程序对象中存在差异的基本元素;
根据所述基本元素的差异信息生成增量信息,所述增量信息至少包括对所述第一应用程序对象的基本元素的更新信息,所述对第一应用程序对象的基本元素的更新信息至少包括对所述第一应用程序对象的基本元素的更新方式、对应更新的基本元素的类型、内容以及结构路径;
将所述增量信息下发至更新端,使得所述更新端根据所述增量信息,将所述第一应用程序对象更新为所述第二应用程序对象。
2.根据权利要求1所述的增量更新方法,其特征在于,所述根据第二应用程序对象以及第一应用程序对象的数据结构,比较第一应用程序对象中包含的基本元素与所述第二应用程序对象包含的基本元素,以确定基本元素的差异信息的步骤,包括:
根据所述第一应用程序对象的数据结构,将所述第一应用程序对象分解为多个第一层级列表,其中,所述第一层级列表中包含第一应用程序对象的数据结构中对应层级的基本元素;
根据所述第二应用程序对象的数据结构,将所述第二应用程序对象分解为多个第二层级列表,其中,所述第二层级列表中包含第二应用程序对象的数据结构中对应层级的基本元素;
逐个比较所述第一层级列表与所述第二层级列表,确定所述基本元素的差异信息。
3.根据权利要求1或2所述的方法,其特征在于,
所述基本元素的差异信息至少包括所述存在差异的基本元素的类型、内容、差异类型以及结构路径。
4.一种增量更新方法,其特征在于,包括:
根据所接收的增量信息,更新第一应用程序对象中对应的基本元素,使得所述第一应用程序对象更新为与所述增量信息对应的第二应用程序对象,其中,所述第一应用程序对象以及所述第二应用程序对象是指,通过符合面向对象的编程语言开发或实现的应用程序对应的程序实体中的对象,所述增量信息至少包括对所述第一应用程序对象的基本元素的更新信息,所述对第一应用程序对象的基本元素的更新信息至少包括对所述第一应用程序对象的基本元素的更新方式、对应更新的基本元素的类型、内容以及结构路径。
5.一种增量更新设备,其特征在于,包括:
差异确定单元,用于根据第一应用程序对象以及第二应用程序对象的数据结构,比较构成所述第一应用程序对象中的基本元素与构成所述第二应用程序对象中的基本元素,以确定基本元素的差异信息,其中,所述第一应用程序对象以及所述第二应用程序对象是指,通过符合面向对象的编程语言开发或实现的应用程序对应的程序实体中的对象,所述对象的数据结构用于描述所述对象由对应的基本元素构成的方式,所述基本元素的差异信息用于指示第二应用程序对象与第一应用程序对象中存在差异的基本元素;
增量生成单元,用于根据所述基本元素的差异信息生成增量信息,所述增量信息至少包括对所述第一应用程序对象的基本元素的更新信息,其中所述对第一应用程序对象的基本元素的更新信息至少包括对所述第一应用程序对象的基本元素的更新方式、对应更新的基本元素的类型、内容以及结构路径;
增量下发单元,用于将所述增量信息下发至更新端,使得所述更新端根据所述增量信息,将所述第一应用程序对象更新为所述第二应用程序对象。
6.根据权利要求5所述的增量更新设备,其特征在于,所述差异确定单元包括:
第一对象分解单元,用于根据所述第一应用程序对象的数据结构,将所述第一应用程序对象分解为多个第一层级列表,其中,所述第一层级列表中包含第一应用程序对象的数据结构中对应层级的基本元素;
第二对象分解单元,用于根据所述第二应用程序对象的数据结构,将所述第二应用程序对象分解为多个第二层级列表,其中,所述第二层级列表中包含第二应用程序对象的数据结构中对应层级的基本元素;
列表比较单元,用于逐个比较所述第一层级列表与所述第二层级列表,确定所述基本元素的差异信息。
7.一种增量更新设备,其特征在于,用于根据所接收的增量信息,更新第一应用程序对象中对应的基本元素,使得所述第一应用程序对象更新为与所述增量信息对应的第二应用程序对象,其中,所述第一应用程序对象以及所述第二应用程序对象是指,通过符合面向对象的编程语言开发或实现的应用程序对应的程序实体中的对象,所述增量信息至少包括对所述第一应用程序对象的基本元素的更新信息,所述对第一应用程序对象的基本元素的更新信息至少包括对所述第一应用程序对象的基本元素的更新方式、对应更新的基本元素的类型、内容以及结构路径。
8.一种可编程设备,其特征在于,包括存储器和处理器,所述存储器用于存储指令,所述指令用于控制所述处理器进行操作以执行根据权利要求1-3中任意一项所述的方法。
9.一种可编程设备,其特征在于,包括存储器和处理器,所述存储器用于存储指令,所述指令用于控制所述处理器进行操作以执行根据权利要求4所述的方法。
CN201611048719.8A 2016-11-21 2016-11-21 增量更新方法、设备及可编程设备 Active CN108089879B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201611048719.8A CN108089879B (zh) 2016-11-21 2016-11-21 增量更新方法、设备及可编程设备
US15/819,040 US20180143823A1 (en) 2016-11-21 2017-11-21 Method, apparatus, and programmable apparatus for incremental update

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611048719.8A CN108089879B (zh) 2016-11-21 2016-11-21 增量更新方法、设备及可编程设备

Publications (2)

Publication Number Publication Date
CN108089879A CN108089879A (zh) 2018-05-29
CN108089879B true CN108089879B (zh) 2021-11-26

Family

ID=62147621

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611048719.8A Active CN108089879B (zh) 2016-11-21 2016-11-21 增量更新方法、设备及可编程设备

Country Status (2)

Country Link
US (1) US20180143823A1 (zh)
CN (1) CN108089879B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110018866B (zh) * 2018-11-06 2022-03-15 蔚来(安徽)控股有限公司 用户界面主题更新方法、装置、***、车机及车辆
CN114402288A (zh) * 2019-11-18 2022-04-26 深圳市欢太科技有限公司 一种增量包生成方法、增量包生成装置及服务器
CN112882733B (zh) * 2021-02-04 2023-09-08 网易(杭州)网络有限公司 应用更新方法及装置、电子设备、存储介质
CN114221958A (zh) * 2021-12-10 2022-03-22 云控智行科技有限公司 一种高精度地图数据增量分发方法、装置及电子设备
US11928460B2 (en) * 2022-04-20 2024-03-12 International Business Machines Corporation Dynamic update of a computer program in memory

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5579223A (en) * 1992-12-24 1996-11-26 Microsoft Corporation Method and system for incorporating modifications made to a computer program into a translated version of the computer program
US5872973A (en) * 1995-10-26 1999-02-16 Viewsoft, Inc. Method for managing dynamic relations between objects in dynamic object-oriented languages
CN102289460A (zh) * 2011-07-13 2011-12-21 中国工商银行股份有限公司 一种向测试环境进行报表元数据同步的方法及***
CN103714163A (zh) * 2013-12-30 2014-04-09 中国科学院信息工程研究所 一种NoSQL数据库的模式管理方法及***
CN104090889A (zh) * 2013-12-12 2014-10-08 深圳市腾讯计算机***有限公司 数据处理方法及***
CN104794177A (zh) * 2015-04-02 2015-07-22 广州神马移动信息科技有限公司 一种数据存储方法及装置
CN105868361A (zh) * 2016-03-29 2016-08-17 中国银行股份有限公司 一种数据更新方法和装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040068523A1 (en) * 2002-10-07 2004-04-08 Keith Robert Olan Method and system for full asynchronous master-to-master file synchronization
US7788662B2 (en) * 2004-07-28 2010-08-31 Microsoft Corporation Automatic upgrade of pluggable components
US20060059140A1 (en) * 2004-09-14 2006-03-16 Logical Information Machines, Inc. Correcting data warehouse with prioritized processing for integrity and throughput
US9176712B2 (en) * 2013-03-14 2015-11-03 Oracle International Corporation Node Grouped Data Marshalling
US11050726B2 (en) * 2016-04-04 2021-06-29 Nxp B.V. Update-driven migration of data
US10613849B2 (en) * 2016-09-23 2020-04-07 Visa International Service Association Update migration system and method

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5579223A (en) * 1992-12-24 1996-11-26 Microsoft Corporation Method and system for incorporating modifications made to a computer program into a translated version of the computer program
US5872973A (en) * 1995-10-26 1999-02-16 Viewsoft, Inc. Method for managing dynamic relations between objects in dynamic object-oriented languages
CN102289460A (zh) * 2011-07-13 2011-12-21 中国工商银行股份有限公司 一种向测试环境进行报表元数据同步的方法及***
CN104090889A (zh) * 2013-12-12 2014-10-08 深圳市腾讯计算机***有限公司 数据处理方法及***
CN103714163A (zh) * 2013-12-30 2014-04-09 中国科学院信息工程研究所 一种NoSQL数据库的模式管理方法及***
CN104794177A (zh) * 2015-04-02 2015-07-22 广州神马移动信息科技有限公司 一种数据存储方法及装置
CN105868361A (zh) * 2016-03-29 2016-08-17 中国银行股份有限公司 一种数据更新方法和装置

Also Published As

Publication number Publication date
US20180143823A1 (en) 2018-05-24
CN108089879A (zh) 2018-05-29

Similar Documents

Publication Publication Date Title
CN108089879B (zh) 增量更新方法、设备及可编程设备
CN111767026B (zh) 业务对象模板的生成方法、装置、设备和介质
US10331423B1 (en) Utilizing cross platform streamable user interfaces to reduce software deployment frequency caused by user interface improvements
CN102968755B (zh) 基元组成
US20160070541A1 (en) Conversion of business suite solutions
CN113076096B (zh) 一种桌面应用程序开发方法、装置、设备及存储介质
CN104685466A (zh) 用于提供多个视图的浏览器级背景页面
US11048485B2 (en) User interface code re-use based upon machine learning of design documents
US11677807B2 (en) System and method to standardize and improve implementation efficiency of user interface content
CN111614490A (zh) 基于顶级容器集群对托管容器集群的管理***及方法
CN114064024A (zh) 微应用的开发方法、装置、设备、存储介质及程序产品
TW201011584A (en) Data schema transformation using declarative transformations
US10318621B2 (en) Collating and intelligently sequencing installation documentation
CN113760276A (zh) 一种生成页面代码的方法和装置
CN107179903B (zh) 用于使用模型驱动开发来开发基于移动的应用的***和方法
CN111752540A (zh) 树组件生成方法、装置、设备和计算机存储介质
CN113780847A (zh) 基于物联网的智慧社区信息处理方法及服务器
US20190196794A1 (en) Visual programming method, system and terminal device
US9614932B2 (en) Managing and implementing web application data snapshots
CN108153564B (zh) 界面管理方法、设备及***和计算机可读存储介质
CN114661274A (zh) 用于生成智能合约的方法和装置
CN113010129A (zh) 虚拟演播厅全流程多终端板书提取方法和装置
CN112346816A (zh) 云平台更新方法和装置
US9971569B2 (en) Generating object model validation rules
CN112422668B (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200526

Address after: 310051 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Alibaba (China) Co.,Ltd.

Address before: 510627 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping B radio square 14 storey tower

Applicant before: GUANGZHOU UCWEB COMPUTER TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant