CN105657049A - 一种增量数据同步方法、装置和移动终端 - Google Patents
一种增量数据同步方法、装置和移动终端 Download PDFInfo
- Publication number
- CN105657049A CN105657049A CN201610109979.5A CN201610109979A CN105657049A CN 105657049 A CN105657049 A CN 105657049A CN 201610109979 A CN201610109979 A CN 201610109979A CN 105657049 A CN105657049 A CN 105657049A
- Authority
- CN
- China
- Prior art keywords
- data
- page
- data volume
- synchronized
- threshold
- 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.)
- Granted
Links
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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种增量数据同步方法,在移动终端中执行,该方法包括:向服务器发起数据同步请求;根据服务器返回的待同步的数据量确定每页请求的数据量;从服务器处依次获取每页数据;对获取的数据进行本地化处理。此外,本发明还公开了采用上述增量数据同步方法的增量数据同步装置以及包含上述增量数据同步装置的移动终端。
Description
技术领域
本发明涉及移动通信领域,尤其涉及一种增量数据同步方法、装置和移动终端。
背景技术
随着移动通信领域技术的不断发展和成熟,移动通信终端日益普及,已成为人们日常生活中不可或缺的一部分。数据同步是移动终端的常用功能,移动终端从服务器处同步数据,来保持数据的实时性和完整性。
数据同步的实现方式可分为两种,一种是全量同步,移动终端全量拉取服务器中的数据,对移动终端的数据进行覆盖更新。这种方法策略简单,但对于大数据量的应用场景,每次同步数据时,发生变化的数据量所占的比例较小,大部分数据均无变化,使同步的时间很长,不仅浪费了客户流量,而且也严重地消耗了移动终端内存。另一种数据同步的实现方式为增量同步,移动终端仅获取上次同步完成到目前为止有变化的数据,没有变化的数据不再同步。增量同步相对于全量同步来说减小了同步的数据量,从而节约了时间和流量,降低了移动终端内存的消耗。但是,增量同步很容易出现移动终端处与服务器处同步数据不一致的情况。此外,对于变化的数据量很大的应用场景,单纯的增量同步仍需要消耗大量时间。为了快速、准确地同步服务器中的数据,需要制定详细的同步策略。
发明内容
为此,本发明提供一种增量数据同步方法、装置和移动终端,以力图解决或者至少缓解上面存在的问题。
根据本发明的一个方面,提供一种增量数据同步方法,在移动终端中执行,该方法包括:向服务器发起数据同步请求;根据服务器返回的待同步的数据量确定每页请求的数据量;从服务器处依次获取每页数据;对获取的数据进行本地化处理。
可选地,在根据本发明的增量数据同步方法中,所述根据服务器返回的待同步的数据量确定每页请求的数据量的步骤具体包括:当待同步的数据量小于第一阈值时,采取如下方法确定每页请求的数据量:若待同步的数据量<第二阈值,则将每页请求的数据量设为第一固定值;若第二阈值≤待同步的数据量<第三阈值,则将每页请求的数据量设为第二固定值;若第三阈值≤待同步的数据量<第一阈值,则将每页请求的数据量设为第三固定值,其中,第二阈值<第三阈值<第一阈值,第一固定值<第二固定值<第三固定值。
可选地,在根据本发明的增量数据同步方法中,当待同步的数据量大于等于第一阈值时,将页数设为第四固定值,每页请求的数据量设为待同步的数据量除以页数所得的值。
可选地,在根据本发明的增量数据同步方法中,当待同步的数据量除以页数所得的值大于第五固定值时,将每页请求的数据量设为第五固定值,且第五固定值大于第三固定值。
可选地,在根据本发明的增量数据同步方法中,所述对获取的数据进行本地化处理的步骤包括:更新每条数据记录的同步时间;所述方法还包括:在本次增量数据同步完成后,更新本次数据同步时间和是否成功标识。
可选地,在根据本发明的增量数据同步方法中,在所述向服务器发起数据同步请求的步骤之后,所述根据服务器返回的待同步的数据量确定每页请求的数据量的步骤之前,还包括:根据每条数据记录的同步时间,上次的数据同步时间和是否成功标识清除移动终端中存在的无效数据。
可选地,在根据本发明的增量数据同步方法中,所述根据每条数据记录的同步时间,上次的数据同步时间和是否成功标识清除移动终端中存在的无效数据包括:若某条数据记录的同步时间在上次的数据同步时间之后,且上次的是否成功标识取值为“否”,则删除该条数据记录。
可选地,在根据本发明的增量数据同步方法中,所述从服务器处依次获取每页数据的步骤包括:采用双线程获取每页数据。
可选地,在根据本发明的增量数据同步方法中,所述双线程包括:页头线程,从页头开始,按页头到页尾的顺序依次请求数据;和页尾线程,从页尾开始,按页尾到页头的顺序依次请求数据。
可选地,在根据本发明的增量数据同步方法中,所述本地化处理包括数据的增加、删除和更新操作。
可选地,在根据本发明的增量数据同步方法中,所述对获取的数据进行本地化处理的步骤包括:采用线程池对数据进行本地化处理。
可选地,在根据本发明的增量数据同步方法中,所述线程池中的线程数量根据移动终端的硬件配置信息确定。
可选地,在根据本发明的增量数据同步方法中,在所述向服务器发起数据同步请求的步骤之前,还包括:判断用户是否首次同步数据,若是,则显示同步进度对话框,所述同步进度对话框根据当前同步完成的数据量向用户展示同步进度。
可选地,在根据本发明的增量数据同步方法中,在所述显示同步进度对话框的步骤之后,还包括:捕获数据同步过程中的错误,将错误信息发送至同步进度对话框,并终止本次数据同步过程。
可选地,在根据本发明的增量数据同步方法中,在所述向服务器发起数据同步请求的步骤之后,在所述根据服务器返回的待同步的数据量确定每页请求的数据量的步骤之前,还包括:判断用户是否正在同步数据,若是,则终止向服务器发起的本次数据同步请求。
根据本发明的一个方面,提供一种增量数据同步装置,驻留在移动终端中,该装置包括:分页数据请求模块,向服务器发起数据同步请求,根据服务器返回的待同步的数据量确定每页请求的数据量,并从服务器处依次获取每页数据;本地化处理模块,适于对获取的数据进行本地化处理;和存储模块,适于存储数据。
可选地,在根据本发明的增量数据同步装置中,所述分页数据请求模块还适于:当待同步的数据量小于第一阈值时,采取如下方法确定每页请求的数据量:若待同步的数据量<第二阈值,则将每页请求的数据量设为第一固定值;若第二阈值≤待同步的数据量<第三阈值,则将每页请求的数据量设为第二固定值;若第三阈值≤待同步的数据量<第一阈值,则将每页请求的数据量设为第三固定值,其中,第二阈值<第三阈值<第一阈值,第一固定值<第二固定值<第三固定值。
可选地,在根据本发明的增量数据同步装置中,所述分页数据请求模块还适于:当待同步的数据量大于等于第一阈值时,将页数设为第四固定值,每页请求的数据量设为待同步的数据量除以页数所得的值。
可选地,在根据本发明的增量数据同步装置中,所述分页数据请求模块还适于:当待同步的数据量除以页数所得的值大于第五固定值时,将每页请求的数据量设为第五固定值,且第五固定值大于第三固定值。
可选地,在根据本发明的增量数据同步装置中,所述本地化处理模块还适于:更新每条数据记录的同步时间;在本次增量数据同步完成后,更新本次数据同步时间和是否成功标识。
可选地,在根据本发明的增量数据同步装置中,还包括容错控制模块,所述容错控制模块适于:根据每条数据记录的同步时间,上次的数据同步时间和是否成功标识清除移动终端中存在的无效数据。
可选地,在根据本发明的增量数据同步装置中,所述容错控制模块进一步适于:若某条数据记录的同步时间在上次的数据同步时间之后,且上次的是否成功标识取值为“否”,则删除该条数据记录。
可选地,在根据本发明的增量数据同步装置中,所述分页数据请求模块还适于:采用双线程获取每页数据。
可选地,在根据本发明的增量数据同步装置中,所述双线程包括:页头线程,从页头开始,按页头到页尾的顺序依次请求数据;和页尾线程,从页尾开始,按页尾到页头的顺序依次请求数据。
可选地,在根据本发明的增量数据同步装置中,所述本地化处理包括数据的增加、删除和更新操作。
可选地,在根据本发明的增量数据同步装置中,所述本地化处理模块还适于:采用线程池对数据进行本地化处理。
可选地,在根据本发明的增量数据同步装置中,所述线程池中的线程数量根据移动终端的硬件配置信息确定。
可选地,在根据本发明的增量数据同步装置中,所述容错控制模块还适于:判断用户是否首次同步数据,若是,则显示同步进度对话框,所述同步进度对话框根据当前同步完成的数据量向用户展示同步进度。
可选地,在根据本发明的增量数据同步装置中,所述容错控制模块还适于:捕获数据同步过程中的错误,将错误信息发送至同步进度对话框,并终止本次数据同步过程。
可选地,在根据本发明的增量数据同步装置中,所述容错控制模块还适于:判断用户是否正在同步数据,若是,则终止向服务器发起的本次数据同步请求。
根据本发明的一个方面,提供一种移动终端,包括如上增量数据同步装置。
根据本发明提供的技术方案,移动终端可以快速、准确地增量同步服务器中的数据。具体来说:根据服务器返回的待同步的数据量确定每页请求的数据量,并从服务器处依次获取每页数据,即根据待同步的数据量制定合理的分页方案,减少了数据请求过程中所消耗的时间;采用双线程,即页头线程和页尾线程获取每页数据,使获取每页数据的时间减半;根据移动终端的硬件配置信息动态地确定对数据进行本地化处理的线程池中的线程数量,在不影响移动终端性能的前提下,最大能力地对数据进行本地化操作,加快同步过程,减少同步时间。
此外,清除无效数据、终止重复的数据同步请求等机制避免了同步数据的重复或丢失,确保数据的准确性和一致性。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了实现根据本发明的增量数据同步装置的示例移动终端100的结构图;
图2示出了根据本发明一个实施例的增量数据同步装置200的结构图;
图3示出了根据本发明一个实施例的分页算法的流程图;
图4示出了根据本发明一个实施例的增量数据同步方法300的流程图;以及
图5示出了根据本发明另一个实施例的增量数据同步方法400的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了实现根据本发明的锁屏时间显示装置的示例移动终端100的结构图。具有多点触摸能力的移动终端100可以包括存储器接口102、一个或多个数据处理器、图像处理器和/或中央处理单元104,以及外围接口106。
存储器接口102、一个或多个处理器104和/或外围接口106既可以是分立元件,也可以集成在一个或多个集成电路中。在移动终端100中,各种元件可以通过一条或多条通信总线或信号线来耦合。传感器、设备和子系统可以耦合到外围接口106,以便帮助实现多种功能。例如,运动传感器110、光传感器112和距离传感器114可以耦合到外围接口106,以方便定向、照明和测距等功能。其他传感器116同样可以与外围接口106相连,例如定位系统(例如GPS接收机)、温度传感器、生物测定传感器或其他感测设备,由此可以帮助实施相关的功能。
相机子系统120和光学传感器122可以用于方便诸如记录照片和视频剪辑的相机功能的实现,其中所述相机子系统和光学传感器例如可以是电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光学传感器。
可以通过一个或多个无线通信子系统124来帮助实现通信功能,其中无线通信子系统可以包括射频接收机和发射机和/或光(例如红外)接收机和发射机。无线通信子系统124的特定设计和实施方式可以取决于移动终端100所支持的一个或多个通信网络。例如,移动终端100可以包括被设计成支持GSM网络、GPRS网络、EDGE网络、Wi-Fi或WiMax网络以及BlueboothTM网络的无线通信子系统124。
音频子系统126可以与扬声器128以及麦克风130相耦合,以便帮助实施启用语音的功能,例如语音识别、语音复制、数字记录和电话功能。
I/O子系统140可以包括屏幕控制器142和/或一个或多个其他输入控制器144。
屏幕控制器142可以耦合到屏幕146。举例来说,该屏幕146和屏幕控制器142可以使用多种触摸感测技术中的任何一种来检测与之进行的接触和移动或是暂停,其中感测技术包括但不局限于电容性、电阻性、红外和表面声波技术。
一个或多个其他输入控制器144可以耦合到其他输入/控制设备148,例如一个或多个按钮、摇杆开关、拇指旋轮、红外端口、USB端口、和/或指示笔之类的指点设备。一个或多个按钮(未显示)可以包括用于控制扬声器128和/或麦克风130音量的向上/向下按钮。
存储器接口102可以与存储器150相耦合。该存储器150可以包括高速随机存取存储器和/或非易失性存储器,例如一个或多个磁盘存储设备,一个或多个光学存储设备,和/或闪存存储器(例如NAND,NOR)。
存储器150可以存储操作系统152,例如Android、IOS或是WindowsPhone之类的操作系统。该操作系统152可以包括用于处理基本系统服务以及执行依赖于硬件的任务的指令。存储器150还可以存储各种应用154。在移动设备运行时,会从存储器150中加载操作系统152,并且由处理器104执行。应用154在运行时,也会从存储器150中加载,并由处理器104执行。应用154运行在操作系统之上,利用操作系统以及底层硬件提供的接口实现各种用户期望的功能,如即时通信、网页浏览、图片管理等。应用可以是独立于操作系统提供的,也可以是操作系统自带的。
在各种应用154中,其中的一种应用为增量数据同步装置200,增量数据同步指的是,在每次数据同步中仅获取上次同步完成到目前为止有变化的数据,没有变化的数据不再同步。增量数据同步装置200使得移动终端100可以快速、准确地增量同步服务器中的数据。具体来说:根据服务器返回的待同步的数据量确定每页请求的数据量,并从服务器处依次获取每页数据,即根据待同步的数据量制定合理的分页方案,减少了数据请求过程中所消耗的时间;采用双线程,即页头线程和页尾线程获取每页数据,使获取每页数据的时间减半;根据移动终端的硬件配置信息动态地确定对数据进行本地化处理的线程池中的线程数量,在不影响移动终端性能的前提下,最大能力地对数据进行本地化操作,加快同步过程,减少同步时间。此外,清除无效数据、终止重复的数据同步请求等机制避免了同步数据的重复或丢失,确保数据的准确性和一致性。
本领域技术人员应当意识到,增量数据同步装置200可以体现为移动终端中的一个独立的APP,也可以作为某个APP的一部分实现增量数据同步功能。本发明对增量数据同步装置200在移动终端中的存在形式不做限制。增量数据同步装置200所同步的数据可以是通讯录、通话记录、客户信息等,本发明对所同步的数据的形式亦不做限制。
图2示出了根据本发明一个实施例的增量数据同步装置200的结构图。如图2所示,增量数据同步装置200包括分页数据请求模块210,本地化处理模块220,存储模块230和容错控制模块240。
分页数据请求模块210适于向服务器发起数据同步请求,并根据待同步的数据量动态确定每页请求的数据量,即分页方案。合理的分页方案能够减少数据请求过程中所消耗的时间。在本发明中,每页请求的数据量由分页算法来实现。
图3示出了根据本发明一个实施例的分页算法的流程图。如图3所示,分页数据请求模块210首先从服务器处获取待同步的数据量,然后根据上述数据量来确定每页请求的数据量。当待同步的数据量较小时,即待同步的数据量<10000条时,采用梯度算法来确定每页请求的数据量,具体来说,当待同步的数据量<2000条时,每页请求的数据量=200条;当2000≤待同步的数据量<5000时,每页请求的数据量=400条;当5000≤待同步的数据量<10000时,每页请求的数据量=500条。当待同步的数据量较大时,例如,待同步的数据量≥10000时,固定页数=20,每页请求的数据量按下式计算:每页请求的数据量=待同步的数据量/页数。但是,当按上式计算得出的每页请求的数据量超过2000时,将每页请求的数据量设为固定值2000,并用下式计算页数:页数=待同步的数据量/每页请求的数据量。根据以上分页算法,可以得到一个较为合理的分页方案,以减少数据请求过程中所消耗的时间。
图3的分页算法仅是一个示例性的实施例。本领域技术人员应当意识到,上述分页算法的描述中涉及的各个数值均可以被替换为其他数值。当然,本领域技术人员也可以受上述分页算法的启发设计其他的分页算法。本发明旨在保护根据待同步的数据量动态确定每页请求的数据量的技术方案,对分页算法中的数值设置及算法设计并无限制。
每页请求的数据量确定后,分页的页数也相应确定(页数=待同步的数据量/每页请求的数据量)。分页数据请求模块210将从服务器处依次获取每页数据。为了减少获取每页数据的时间,采用双线程,即页头线程和页尾线程同时请求数据。页头线程从页头开始,按页头到页尾的顺序依次请求数据;页尾线程从页尾开始,按页尾到页头的顺序依次请求数据。例如,在一次数据同步中,每页请求的数据量为200条,页头线程从第1条数据记录开始请求,页尾线程从最后一条数据记录(即第200条数据记录)开始请求。在同一个移动终端中,页头线程和页尾线程的请求速度大致相当,二者将在一条中间的数据记录(即,第100条数据记录)处相遇,完成该页数据的获取。根据本发明的双线程获取每页数据的方案,可以使获取每页数据的时间减半。
当分页数据请求模块210完成了第一页数据的获取后,将第一页数据交给本地化处理模块220进行处理。此后,分页数据请求模块210每获取一页数据后,都将该页数据发送给本地化处理模块220进行处理。
本地化处理模块220适于对获取的数据进行本地化处理。本地化处理指的是将从服务器处获取的抽象的数据记录映射为对移动终端本地的数据所做的具体操作,即修改存储模块230中存储的数据表。具体来说,本地化处理模块220能够区分从服务器处获取的数据记录的类型,并根据不同的类型,对存储模块230中的数据记录进行增加、删除和更新操作。例如,从服务器处获取的数据记录用datatype字段标记数据类型。若datatype=0,对应的本地化处理为删除操作,即在存储模块230中的数据表中删除该项数据记录;若datatype=1,对应的本地化处理为增加操作,即在存储模块230中的数据表中新增该项数据记录;若datatype=2,对应的本地化处理为更新操作,即在存储模块230中的数据表中更新该项数据记录的某些属性值。
本地化处理模块220采用线程池对数据进行本地化处理,其中,线程池中的线程的数量根据移动终端的硬件配置信息确定。例如,根据移动终端的CPU的核数确定线程数量,线程数量=CPU核数+1,例如,移动终端的型号为三星Note3,其CPU的核数为4,则线程的数量为5。上述线程数量的确定方式是示例性的,本领域技术人员应当意识到,也可以采用其他的算法来确定线程池中线程的数目。本发明对线程池中线程数量的确定算法不做限制。根据移动终端的硬件配置信息动态地确定对数据进行本地化处理的线程池中的线程数量,可以在不影响移动终端性能的前提下,最大能力地对数据进行本地化操作,加快同步过程,减少同步时间。
某条数据记录成功完成本地化处理后,即被成功同步。数据同步完成指的是一次数据同步的终止。若在数据同步终止时,服务器中的所有待同步的数据均被成功同步到移动终端,则本次数据同步成功;若在数据同步终止时,仍有部分数据未成功同步到移动终端,则本次数据同步失败。造成数据同步失败的原因有很多种,包括网络请求超时,数据读取错误,等等。
本地化处理模块220还适于在每条数据记录被成功同步后,更新该条数据记录的同步时间。例如,为存储模块230中存储的每一条数据记录增加字段updateTime,用于标记每条数据记录最新的同步时间。updateTime的初值设为0。当某条数据记录被成功同步后,更新该条数据记录的updateTime值。
此外,本地化处理模块220还适于在每次数据同步完成后,即每次数据同步终止后,更新本次数据同步时间和是否成功标识。例如,定义变量lastUpdateTime,用于标记上次数据同步时间;和isSuccessed,作为数据同步是否成功的标识。lastUpdateTime的初值均设为0,isSuccessed的初值设为False。当然,本领域技术人员也可以采用除上述updateTime,lastUpdateTime和isSuccessed之外的变量名来标记每条数据记录的同步时间、本次数据同步时间和是否成功标识,本发明对上述内容的命名不做限制。
对于每次数据同步,在分页数据请求模块210向服务器发起数据同步请求后,服务器均会返回一个本次同步的服务器时间,若本次数据同步成功,则lastUpdateTime记录本次同步的服务器时间,isSuccessed赋值为为true;若本次数据同步失败,lastUpdateTime的值保持之前的不变,isSuccessed赋值为false。在数据同步过程中,每成功同步一条数据记录,均更新该条数据记录的updateTime,将其设置为本次同步的服务器时间。
对于成功完成的数据同步过程,被同步的每一条数据记录的同步时间应该与本次数据同步时间相同。即,每条数据记录的updateTime字段的值应等于lastUpdateTime变量的值。此外,isSuccessed赋值为True。对于失败的数据同步过程,可能存在部分数据记录被成功同步,而剩下的数据记录未被同步的情况,相应地,同步成功的数据记录的updateTime字段被更新,剩下的未被同步的数据记录的updateTime字段仍保持上次同步的同步时间。由于整个数据同步过程失败,数据同步时间lastUpdateTime仍保持上次数据同步时间,isSuccessed赋值为False。
增量数据同步装置200仅获取上次同步完成到目前为止有变化的数据,没有变化的数据不再同步。也就是说,在进行数据同步时,服务器仅向移动终端发送在lastUpdateTime时刻后发生变化的数据记录。对于失败的数据同步过程,可能存在部分数据记录被成功同步,这些数据记录的updateTime字段被更新,但是,lastUpdateTime仍保持上次数据同步时间,因此,这些被成功同步的数据记录的updateTime字段的值将大于lastUpdateTime的值。这种在失败的数据同步过程中成功同步到移动终端中的数据记录被称为“无效数据”。在下次数据同步请求中,由于增量数据同步装置200仅从服务器处获取lastUpdateTime时刻后发生变化的数据记录,上述无效数据又将被重新获取,造成数据记录的冗余,甚至引发错误,降低了数据同步的效率。因此,在每次开始数据同步之前,容错控制模块240均要清除移动终端中存在的无效数据。
对于成功完成的数据同步过程,每条数据记录的updateTime字段的值均等于lastUpdateTime变量的值。若isSuccessed取值为False,则容错控制模块240把updateTime值大于lastUpdateTime的数据记录判定为无效数据,并将其从存储模块230中删除。通过清除无效数据,容错控制模块240可以保证数据同步的效率和准确性。
例如,移动终端于00:11:22时刻向服务器发起第一次数据同步请求,并同步成功,因此,lastUpdateTime取值为00:11:22,isSuccessed取值为True,不存在无效数据。后来,移动终端于11:22:33时刻发起第二次数据同步请求,同步的数据记录有3条,分别为①②③。由于网络连接问题,11:22:44时刻同步中断,这时,仅①②完成同步,③未完成。这时,①和②的updateTime值均为11:22:33,③的updateTime值为00:11:22。由于同步未成功,lastUpdateTime仍取值00:11:22,isSuccessed取值为False。移动终端于22:33:44时刻发起第三次数据同步请求,在从服务器处获取数据之前,容错控制模块240将删除移动终端中存在的无效数据①和②,因为isSuccessed取值为False,且①和②的updateTime值大于lastUpdateTime值。
一般来说,在移动终端首次同步数据时,同步的数据量较大(相当于全量同步)。为了提高交互体验,在首次同步数据时,容错控制模块240将通过屏幕控制器142控制屏幕146上显示同步进度对话框,根据当前同步完成的数据量向用户展示同步进度。此外,容错控制模块240还可以捕获数据同步过程中的错误,对不同的错误进行分类处理,将错误信息发送至同步进度对话框,并通知本地数据请求模块210终止本次数据同步过程。引发错误的事件有多种,例如网络请求超时,返回错误数据,本地化异常等等。为了处理方便,还可以为各种引发错误的事件分配代号。在发生错误时,容错控制模块240将通知屏幕146显示错误代号和错误事件内容,如图2所示。对于非首次的数据同步请求,由于是增量同步,同步的数据量相对来说比较小,容错控制模块240将不再控制屏幕146显示同步进度对话框。
此外,为了保持数据的一致性,避免数据的重复或丢失,容错控制模块240还用于确保当前有且仅有一个数据同步请求在进行。也就是说,在数据同步的过程中,若用户再次发起数据同步请求,容错控制模块240将直接拒绝本次请求。
图4示出了根据本发明一个实施例的增量数据同步方法300的流程图,该方法在移动终端中执行。如图4所示,该方法始于步骤S310。
在步骤S310中,向服务器发起数据同步请求。
随后,在步骤S320中,根据服务器返回的待同步的数据量确定每页请求的数据量。
根据一种实施例,每页请求的数据量采用图3所示的分页算法来确定。由于待同步的数据量为定值,每页请求的数据量确定后,分页的页数也相应确定。合理的分页方案可以减少数据请求过程中所消耗的时间。
随后,在步骤S330中,从服务器处依次获取每页数据。
根据一种实施例,采用双线程,即页头线程和页尾线程同时请求数据。页头线程从页头开始,按页头到页尾的顺序依次请求数据;页尾线程从页尾开始,按页尾到页头的顺序依次请求数据。双线程获取每页数据的方案,可以使获取每页数据的时间减半。
随后,在步骤S340中,对获取的数据进行本地化处理。每获取一页数据后,都将该页数据进行本地化处理。本地化处理指的是将从服务器处获取的抽象的数据记录映射为对移动终端本地的数据所做的具体操作,即具体的数据记录的增加、删除和更新等操作。每成功本地化一条数据记录,更新移动终端中该数据记录的updateTime字段。
根据一种实施例,采用线程池对数据进行本地化处理,线程池中线程的数量根据移动终端的硬件配置信息确定。例如,根据移动终端的CPU的核数确定线程数量,线程数量=CPU核数+1。
完成所有数据的获取和本地化处理后,本次数据同步完成。更新lastUpdateTime和isSuccessed的值。数据同步过程结束。
图5示出了根据本发明另一个实施例的增量数据同步方法400的流程图。该方法在移动终端中执行。
如图5所示,首先,判断移动终端用户是否首次同步数据。若是,则在移动终端屏幕上显示同步数据对话框,通过该对话框让用户能够实时看到目前同步完成的数据量,提高交互体验;若否,则不显示同步数据对话框。
随后,向服务器发起数据同步请求。在发出数据同步请求后,判断移动终端是否正在进行数据同步。若是,则终止本次数据同步请求;若否,则继续本次数据同步过程。在增量同步时,在一个时间点有且只有一个数据同步请求正在进行,以防止同步的数据重复或丢失,确保数据的一致性。
在成功发起数据同步请求之后,从服务器处获取数据之前,需要清除移动终端中存在的无效数据,无效数据指的是在失败的数据同步过程中成功同步到移动终端中的数据记录。清除无效数据可以借助数据记录的updateTime字段,lastUpdateTime和isSuccessed变量。具体来说,若isSuccessed取值为False,则把updateTime值大于lastUpdateTime的数据记录判定为无效数据,并将其删除。清除无效数据可以保证数据同步的效率和准确性。
无效数据清除完毕后,采用分页算法根据服务器返回的待同步的数据量确定每页请求的数据量和页数,分页算法可以具体如图3所示,合理的分页方案可以减少数据请求过程中所消耗的时间。确定了每页请求的数据量和页数后,从服务器处依次获取每页数据。根据一种实施例,采用双线程,即页头线程和页尾线程同时请求数据。页头线程从页头开始,按页头到页尾的顺序依次请求数据;页尾线程从页尾开始,按页尾到页头的顺序依次请求数据。双线程获取每页数据的方案,可以使获取每页数据的时间减半。
每获取一页数据后,都将该页数据进行本地化处理。本地化处理指的是将从服务器处获取的抽象的数据记录映射为对移动终端本地的数据所做的具体操作,即具体的数据记录的增加、删除和更新等操作。每成功本地化一条数据记录,更新移动终端中该数据记录的updateTime字段。根据一种实施例,采用线程池对数据进行本地化处理,线程池中线程的数量根据移动终端的硬件配置信息确定。例如,根据移动终端的CPU的核数确定线程数量,线程数量=CPU核数+1。
每本地化一页数据后,该页数据同步完成。根据当前同步完成的数据量更新同步进度对话框,并继续从服务器处获取下一页数据。
所有数据均同步完成后,更新lastUpdateTime和isSuccessed的值。数据同步过程结束。
此外,在图5所示的整个增量数据同步方法400中,均实时捕获数据同步过程中的错误(该步骤在图5中未示出),对不同的错误进行分类处理,将错误信息发送至同步进度对话框,并终止本次数据同步过程。错误信息包括错误代号和错误事件内容。引发错误的事件有多种,例如网络请求超时,返回错误数据,本地化异常等等。错误代号是用于标记错误事件的数字。在发生错误时,设置isSuccessed值为False,lastUpdateTime保持不变。
通过上述技术方案,根据待同步的数据量制定合理的分页方案,减少了数据请求过程中所消耗的时间;采用双线程,即页头线程和页尾线程获取每页数据,使获取每页数据的时间减半;根据移动终端的硬件配置信息动态地确定对数据进行本地化处理的线程池中的线程数量,在不影响移动终端性能的前提下,最大能力地对数据进行本地化操作,加快同步过程,减少同步时间。此外,清除无效数据、终止重复的数据同步请求等机制避免了同步数据的重复或丢失,确保数据的准确性和一致性。
A6:A5所述的增量数据同步方法,其中,在所述向服务器发起数据同步请求的步骤之后,所述根据服务器返回的待同步的数据量确定每页请求的数据量的步骤之前,还包括:根据每条数据记录的同步时间,上次的数据同步时间和是否成功标识清除移动终端中存在的无效数据。A7:A6所述的增量数据同步方法,其中,所述根据每条数据记录的同步时间,上次的数据同步时间和是否成功标识清除移动终端中存在的无效数据包括:若某条数据记录的同步时间在上次的数据同步时间之后,且上次的是否成功标识取值为“否”,则删除该条数据记录。A8:A1所述的增量数据同步方法,其中,所述从服务器处依次获取每页数据的步骤包括:采用双线程获取每页数据。A9:A8所述的增量数据同步方法,其中,所述双线程包括:页头线程,从页头开始,按页头到页尾的顺序依次请求数据;和页尾线程,从页尾开始,按页尾到页头的顺序依次请求数据。A10:A1所述的增量数据同步方法,其中,所述本地化处理包括数据的增加、删除和更新操作。A11:A1所述的增量数据同步方法,其中,所述对获取的数据进行本地化处理的步骤包括:采用线程池对数据进行本地化处理。A12:A11所述的增量数据同步方法,其中,所述线程池中的线程数量根据移动终端的硬件配置信息确定。A13:A1所述的增量数据同步方法,其中,在所述向服务器发起数据同步请求的步骤之前,还包括:判断用户是否首次同步数据,若是,则显示同步进度对话框,所述同步进度对话框根据当前同步完成的数据量向用户展示同步进度。A14:A13所述的增量数据同步方法,其中,在所述显示同步进度对话框的步骤之后,还包括:捕获数据同步过程中的错误,将错误信息发送至同步进度对话框,并终止本次数据同步过程。A15:A1所述的增量数据同步方法,其中,在所述向服务器发起数据同步请求的步骤之后,在所述根据服务器返回的待同步的数据量确定每页请求的数据量的步骤之前,还包括:判断用户是否正在同步数据,若是,则终止向服务器发起的本次数据同步请求。
B5:B1所述的增量数据同步装置,其中,所述本地化处理模块还适于:更新每条数据记录的同步时间;在本次增量数据同步完成后,更新本次数据同步时间和是否成功标识。B6:B5所述的增量数据同步装置,其中,还包括容错控制模块,所述容错控制模块适于:根据每条数据记录的同步时间,上次的数据同步时间和是否成功标识清除移动终端中存在的无效数据。B7:B6所述的增量数据同步装置,其中,所述容错控制模块进一步适于:若某条数据记录的同步时间在上次的数据同步时间之后,且上次的是否成功标识取值为“否”,则删除该条数据记录。B8:B1所述的增量数据同步装置,其中,所述分页数据请求模块还适于:采用双线程获取每页数据。B9:B8所述的增量数据同步装置,其中,所述双线程包括:页头线程,从页头开始,按页头到页尾的顺序依次请求数据;和页尾线程,从页尾开始,按页尾到页头的顺序依次请求数据。B10:B1所述的增量数据同步装置,其中,所述本地化处理包括数据的增加、删除和更新操作。B11:B1所述的增量数据同步装置,其中,所述本地化处理模块还适于:采用线程池对数据进行本地化处理。B12:B11所述的增量数据同步装置,其中,所述线程池中的线程数量根据移动终端的硬件配置信息确定。B13:B6所述的增量数据同步装置,其中,所述容错控制模块还适于:判断用户是否首次同步数据,若是,则显示同步进度对话框,所述同步进度对话框根据当前同步完成的数据量向用户展示同步进度。B14:B13所述的增量数据同步装置,其中,所述容错控制模块还适于:捕获数据同步过程中的错误,将错误信息发送至同步进度对话框,并终止本次数据同步过程。B15:B6所述的增量数据同步装置,其中,所述容错控制模块还适于:判断用户是否正在同步数据,若是,则终止向服务器发起的本次数据同步请求。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (10)
1.一种增量数据同步方法,在移动终端中执行,该方法包括:
向服务器发起数据同步请求;
根据服务器返回的待同步的数据量确定每页请求的数据量;
从服务器处依次获取每页数据;
对获取的数据进行本地化处理。
2.如权利要求1所述的增量数据同步方法,其中,所述根据服务器返回的待同步的数据量确定每页请求的数据量的步骤具体包括:当待同步的数据量小于第一阈值时,采取如下方法确定每页请求的数据量:
若待同步的数据量<第二阈值,则将每页请求的数据量设为第一固定值;
若第二阈值≤待同步的数据量<第三阈值,则将每页请求的数据量设为第二固定值;
若第三阈值≤待同步的数据量<第一阈值,则将每页请求的数据量设为第三固定值,
其中,第二阈值<第三阈值<第一阈值,第一固定值<第二固定值<第三固定值。
3.如权利要求2所述的增量数据同步方法,其中,当待同步的数据量大于等于第一阈值时,将页数设为第四固定值,每页请求的数据量设为待同步的数据量除以页数所得的值。
4.如权利要求3所述的增量数据同步方法,其中,当待同步的数据量除以页数所得的值大于第五固定值时,将每页请求的数据量设为第五固定值,且第五固定值大于第三固定值。
5.如权利要求1所述的增量数据同步方法,其中,所述对获取的数据进行本地化处理的步骤包括:
更新每条数据记录的同步时间;
所述方法还包括:在本次增量数据同步完成后,更新本次数据同步时间和是否成功标识。
6.一种增量数据同步装置,驻留在移动终端中,该装置包括:
分页数据请求模块,向服务器发起数据同步请求,根据服务器返回的待同步的数据量确定每页请求的数据量,并从服务器处依次获取每页数据;
本地化处理模块,适于对获取的数据进行本地化处理;和
存储模块,适于存储数据。
7.如权利要求6所述的增量数据同步装置,其中,所述分页数据请求模块还适于:当待同步的数据量小于第一阈值时,采取如下方法确定每页请求的数据量:
若待同步的数据量<第二阈值,则将每页请求的数据量设为第一固定值;
若第二阈值≤待同步的数据量<第三阈值,则将每页请求的数据量设为第二固定值;
若第三阈值≤待同步的数据量<第一阈值,则将每页请求的数据量设为第三固定值,
其中,第二阈值<第三阈值<第一阈值,第一固定值<第二固定值<第三固定值。
8.如权利要求7所述的增量数据同步装置,其中,所述分页数据请求模块还适于:当待同步的数据量大于等于第一阈值时,将页数设为第四固定值,每页请求的数据量设为待同步的数据量除以页数所得的值。
9.如权利要求8所述的增量数据同步装置,其中,所述分页数据请求模块还适于:当待同步的数据量除以页数所得的值大于第五固定值时,将每页请求的数据量设为第五固定值,且第五固定值大于第三固定值。
10.一种移动终端,包括如权利要求6-9中任一项所述的增量数据同步装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610109979.5A CN105657049B (zh) | 2016-02-26 | 2016-02-26 | 一种增量数据同步方法、装置和移动终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610109979.5A CN105657049B (zh) | 2016-02-26 | 2016-02-26 | 一种增量数据同步方法、装置和移动终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105657049A true CN105657049A (zh) | 2016-06-08 |
CN105657049B CN105657049B (zh) | 2019-03-15 |
Family
ID=56492033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610109979.5A Active CN105657049B (zh) | 2016-02-26 | 2016-02-26 | 一种增量数据同步方法、装置和移动终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105657049B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107370803A (zh) * | 2017-07-11 | 2017-11-21 | 福建省天奕网络科技有限公司 | 一种数据同步的方法及终端 |
CN108197170A (zh) * | 2017-12-20 | 2018-06-22 | 五八有限公司 | 主从同步方法、装置、主服务器及存储介质 |
CN108310766A (zh) * | 2018-02-06 | 2018-07-24 | 网易(杭州)网络有限公司 | 数据处理方法和装置、存储介质、处理器及终端 |
CN109766392A (zh) * | 2019-01-21 | 2019-05-17 | 北京字节跳动网络技术有限公司 | 数据处理方法和装置 |
CN111953580A (zh) * | 2020-07-17 | 2020-11-17 | 上海泛微网络科技股份有限公司 | 一种会话发送、会话获取的方法、装置和存储介质 |
CN115190113A (zh) * | 2022-07-07 | 2022-10-14 | 武汉蔚能电池资产有限公司 | 数据同步方法、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102904887A (zh) * | 2012-09-26 | 2013-01-30 | 东软集团股份有限公司 | 一种Web客户端与服务器的数据同步方法和系统 |
CN103678494A (zh) * | 2013-11-15 | 2014-03-26 | 北京奇虎科技有限公司 | 客户端同步服务端数据的方法及装置 |
CN103744906A (zh) * | 2013-12-26 | 2014-04-23 | 乐视网信息技术(北京)股份有限公司 | 一种数据同步系统、方法及装置 |
CN103927288A (zh) * | 2014-04-30 | 2014-07-16 | 惠州Tcl移动通信有限公司 | 一种移动设备之间信息转移和共享的方法及系统 |
CN104182441A (zh) * | 2014-02-27 | 2014-12-03 | 无锡天脉聚源传媒科技有限公司 | 一种数据表同步方法及装置 |
US20150012513A1 (en) * | 2013-07-02 | 2015-01-08 | Alibaba Group Holding Limited | Providing a query results page |
-
2016
- 2016-02-26 CN CN201610109979.5A patent/CN105657049B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102904887A (zh) * | 2012-09-26 | 2013-01-30 | 东软集团股份有限公司 | 一种Web客户端与服务器的数据同步方法和系统 |
US20150012513A1 (en) * | 2013-07-02 | 2015-01-08 | Alibaba Group Holding Limited | Providing a query results page |
CN103678494A (zh) * | 2013-11-15 | 2014-03-26 | 北京奇虎科技有限公司 | 客户端同步服务端数据的方法及装置 |
CN103744906A (zh) * | 2013-12-26 | 2014-04-23 | 乐视网信息技术(北京)股份有限公司 | 一种数据同步系统、方法及装置 |
CN104182441A (zh) * | 2014-02-27 | 2014-12-03 | 无锡天脉聚源传媒科技有限公司 | 一种数据表同步方法及装置 |
CN103927288A (zh) * | 2014-04-30 | 2014-07-16 | 惠州Tcl移动通信有限公司 | 一种移动设备之间信息转移和共享的方法及系统 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107370803A (zh) * | 2017-07-11 | 2017-11-21 | 福建省天奕网络科技有限公司 | 一种数据同步的方法及终端 |
CN107370803B (zh) * | 2017-07-11 | 2020-09-08 | 福建省天奕网络科技有限公司 | 一种数据同步的方法及终端 |
CN108197170A (zh) * | 2017-12-20 | 2018-06-22 | 五八有限公司 | 主从同步方法、装置、主服务器及存储介质 |
CN108310766A (zh) * | 2018-02-06 | 2018-07-24 | 网易(杭州)网络有限公司 | 数据处理方法和装置、存储介质、处理器及终端 |
CN108310766B (zh) * | 2018-02-06 | 2021-12-21 | 网易(杭州)网络有限公司 | 数据处理方法和装置、存储介质、处理器及终端 |
CN109766392A (zh) * | 2019-01-21 | 2019-05-17 | 北京字节跳动网络技术有限公司 | 数据处理方法和装置 |
CN111953580A (zh) * | 2020-07-17 | 2020-11-17 | 上海泛微网络科技股份有限公司 | 一种会话发送、会话获取的方法、装置和存储介质 |
CN115190113A (zh) * | 2022-07-07 | 2022-10-14 | 武汉蔚能电池资产有限公司 | 数据同步方法、设备及存储介质 |
CN115190113B (zh) * | 2022-07-07 | 2024-04-16 | 武汉蔚能电池资产有限公司 | 数据同步方法、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105657049B (zh) | 2019-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105657049A (zh) | 一种增量数据同步方法、装置和移动终端 | |
CN104885055B (zh) | 一种应用数据同步的方法及装置 | |
JP5946973B2 (ja) | テレビ局ロゴ識別方法、装置、テレビ、システム、プログラム及び記録媒体 | |
CN105138376A (zh) | 混合模式应用、其网页资源升级方法、移动终端以及系统 | |
CN110147237B (zh) | 一种冗余资源去除方法和装置 | |
CN103458016A (zh) | 图片管理的方法、装置及终端设备 | |
KR101842558B1 (ko) | 로밍 네트워크 접속 방법 및 장치 | |
CN109976668A (zh) | 数据删除方法、数据删除装置和计算机可读存储介质 | |
US20130297563A1 (en) | Timestamp management method for data synchronization and terminal therefor | |
CN110865837B (zh) | 一种进行系统升级的方法和终端 | |
CN107301052A (zh) | 一种帮助信息的显示方法和移动终端 | |
US20140297586A1 (en) | Device and method for cloud file management | |
US10848558B2 (en) | Method and apparatus for file management | |
CN109597707A (zh) | 克隆卷数据拷贝方法、装置及计算机可读存储介质 | |
CN109117153A (zh) | 应用程序的处理方法、装置、终端和存储介质 | |
CN107592118A (zh) | 可变长编码文件的解码方法以及装置 | |
KR20160086754A (ko) | 펌웨어 리프레시 방법, 장치, 프로그램 및 기록매체 | |
WO2015117356A1 (zh) | 一种开机方法及通信终端 | |
CN112084157A (zh) | 文件恢复方法、装置、计算机设备及存储介质 | |
WO2014135021A1 (zh) | 路径动态链接方法、装置及移动终端 | |
US9753933B2 (en) | Electronic device and method for mounting file system using virtual block device | |
CN114584261B (zh) | 数据处理方法、装置及存储介质 | |
CN105389108A (zh) | 一种移动终端触摸操作的识别方法及装置 | |
CN115544981A (zh) | 文档处理方法、装置、电子设备、存储介质及程序产品 | |
CN108804258A (zh) | 数据恢复方法、装置、移动终端和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |