CN105637841B - 用于适应性同步的数据分类 - Google Patents

用于适应性同步的数据分类 Download PDF

Info

Publication number
CN105637841B
CN105637841B CN201480056896.3A CN201480056896A CN105637841B CN 105637841 B CN105637841 B CN 105637841B CN 201480056896 A CN201480056896 A CN 201480056896A CN 105637841 B CN105637841 B CN 105637841B
Authority
CN
China
Prior art keywords
synchronous
item
data
priority
calculating equipment
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
CN201480056896.3A
Other languages
English (en)
Other versions
CN105637841A (zh
Inventor
J·万图伦诺特
J·沃兹沃思
Y·张
R·S·巴德
E·阿克塞尔罗德
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105637841A publication Critical patent/CN105637841A/zh
Application granted granted Critical
Publication of CN105637841B publication Critical patent/CN105637841B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements

Abstract

在一个实施例中,应用模块114的同步引擎116可以基于数据项的隐含数据分类来调整同步方案306。同步引擎116可以检测由用户针对数据项402执行的用户动作406。同步引擎116可以确定用户动作406的动作类型408。同步引擎116可以基于动作类型406指派项同步优先级给数据项402。基于该优先级以及执行同步引擎的设备的运行状态来执行同步。运行状态可以是电池状态或网络连通性状态。

Description

用于适应性同步的数据分类
背景技术
随着更多的用户开始利用云服务来存储随时间持续更新的数据,所存储的数据可以在多个设备上同步。用户可以使用智能电话、平板设备、膝上型计算机、台式计算机、或其它计算设备。这些设备中的每个可以在变化的环境中运行,例如功率等级、活动等级、网络连接、以及其它因素。用户可以寻求对数据的同步而无论运行情况中的这些变化。
发明内容
提供本发明内容以通过简化的形式介绍将在以下具体实施方式中进一步描述的概念的选集。本发明内容不是要标识要求保护的主题的关键特征或实质特征,也不是要用于限制要求保护的主题的范围。
下文讨论的实施例涉及基于数据项的隐含数据分类来调整同步方案。同步引擎可以检测由用户执行的关于数据项的用户动作。同步引擎可以确定用户动作的动作类型。同步引擎可以基于动作类型来指派项同步优先级给数据项。
附图说明
为了对在其中可以获得上文引述的优点和特征以及其它优点和特征的方式进行描述,通过参考在附图中示出的特定实施例阐述并将呈现更具体的描述。应当理解,这些附图仅描绘了典型实施例并且因此不应被认为限制其范围,通过使用附图将利用额外的具体性和细节来描述并说明实施方式。
图1在框图中示出了数据网络的一个实施例。
图2在框图中示出了计算设备的一个实施例。
图3在框图中示出了计算设备的软件架构的一个实施例。
图4在框图中示出了数据管理系统的一个实施例。
图5a-b在框图中示出了同步优先级记录的实施例。
图6在流程图中示出了利用操作系统来确定计算设备的运行状态的方法的一个实施例。
图7在流程图中示出了针对应用模块设置同步分配的方法的一个实施例。
图8在流程图中示出了针对应用模块确定同步方案的方法的一个实施例。
图9在流程图中示出了利用同步服务器建立同步方案的方法的一个实施例。
图10在流程图中示出了针对数据项建立项同步优先级的方法的一个实施例。
图11在流程图中示出了针对数据容器建立容器同步优先级的方法的一个实施例。
图12在流程图中示出了基于数据分类来创建同步方案的方法的一个实施例。
具体实施方式
下文详细讨论实施例。虽然讨论了特定的实施方式,但是应当理解这仅仅是为了示出的目的。相关领域技术人员将意识到可以使用其它组件和配置而不背离本公开的主题的精神和范围。实施方式可以是机器实现的方法、其上存储有详细描述了用于至少一个处理器的方法的一组指令的有形的机器可读介质、或计算设备的同步管理器。
通过使用整体方式来进行数据同步,可以以高效的方式跨多个设备共享数据。整体数据同步程序可以将设备情况和用户将最优数量的数据进行同步的期望、以及数据的最优集合作为因素考虑。数据同步程序可以使用设备情况以基于设备情况而向同步引擎提供同步分配。接着同步引擎可以使用数据分类系统来以最接近于用户的期望的模式来高效地应用同步分配。
传统上,数据同步程序没有基于不同的设备形状因子和代码执行成本来适应行为,这潜在地负面影响了用户体验。数据同步实施方式可以是倾向于特定于设备的。如果数据同步实施方式跨越多种设备类型,则该数据同步实施方式可以被设计为在最差资源鲁棒性平台上工作。通过将实施方式集中于最低的共同点(lowest common denominator),用户可能被骗走更丰富的用户体验。
数据同步实施方式可以使用诸如处理、存储、和网络能力的计算资源来执行任务。每种资源可以影响电池寿命和网络带宽。另外,计算设备的资源可用性可能随时间变化。根据总体成本影响来适应同步行为可允许单个同步实施方式跨设备类型和运行情况而放缩(scale),这为用户提供了关于功能和资源使用两者的最佳可得的体验。
操作系统可以将各种运行状态因素映射至对同步资源的同步分配,以允许应用使用同步资源的有限的集合。操作系统的状态模块可以使用各种算法以基于影响诸如功率、网络连接、处理器使用率、以及其它运行情况的运行状态的各种输入来确定执行代码的运行状态。每个运行状态因素可以被分成等级。例如,功率状态可以被描述为在插入电力网时是低成本、当使用电池电力且屏幕开启时是中等成本、并且当使用电池电力且屏幕关闭时是高成本。操作系统可以区分应用模块,以将不同的同步分配指派给不同的应用模块。
在操作系统等级处定义运行状态可以允许应用基于可用的资源来确定最优同步方式。将资源确定集中在操作系统处可以将应用从不得不注意其它应用的动作中释放出来。将资源确定集中还可以将应用从跟踪资源和特性以确定运行状态中释放出来。
一旦应用已经从操作系统接收到了同步分配,接着应用就可以选择最优地使用可用同步资源的同步方案。同步方案描述了待由同步引擎遵循的用于在同步期间基于分配来放缩同步协议的步骤,例如同步的时间、同步的频率、同步的范围、以及同步的持续时间。同步引擎可以实现同步方案而不影响基础同步协议。同步协议是用于应用的同步的一组网络规则,例如互联网消息访问协议(IMAP)、交换活动同步(EAS)或邮局协议版本3(POP3)。应用可以确定要被更频繁地同步的数据的范围、通知的范围、或者同步会话的频率和持续时间。例如,商用通信软件可以频繁地同步日历模块和邮件模块,而同时较不经常地同步联系人列表。邮件模块内的各个邮件文件夹可以相比于其它文件夹被更频繁地同步。
此外,应用的同步引擎可以基于由同步所使用的数据负载来调整同步方案。例如,如果计算设备在具有针对数据业务的高成本的计价网络上时,同步引擎可以延迟大型数据同步,直到与更便宜的网络建立连接为止。平板可以在移动并且连接到蜂窝数据网络的同时使用有限的同步,接着在连接到用户的局域网且同时插入到电力网中时提供更丰富的同步。
应用可以针对设备运行状态的变化来调整。操作系统可以监测设备运行状态并且随着环境的变化而调整应用的同步分配。接着应用可以相应地调整同步方案。此外,应用和操作系统两者都可以监测应用状态,确定应用是处于活跃使用中、在后台执行、或休眠。随着应用状态变化,同步分配和同步方案可以改变。
同步引擎可以进一步将针对被同步数据的数据分类方案作为因素考虑在同步方案中。应用模块可以控制待同步的一个或多个数据项,例如数据文件、文档、数字图像、数字视频文件、音频文件、电子邮件、日历事件、联系人、或可执行文件。应用模块可以将数据项分组到一个或多个数据容器中,其中每个数据容器描述数据项的分类特征。同步引擎可以基于各个标准而向每个数据项或每个数据容器应用同步优先级。数据项的同步优先级可以影响相关联的数据容器的同步优先级,反之亦然。
用户可以通过选择用于同步的数据项来明确地向数据项应用同步优先级。可替代地,用户可以明确地将数据项指定为受青睐的(favored)数据项,这隐含地指示数据项的高同步优先级。
如果用户还没有向数据项明确地应用同步优先级或者还没有明确地将数据项指定为受青睐的数据项,则同步引擎可以基于用户对数据项所执行的动作来隐含地确定同步优先级。同步引擎可以同步最近访问的数据文件或数据容器。同步引擎可以基于用户最近执行在数据项上的用户动作的类型来向数据项应用同步优先级。每个动作类型可以具有特定的优先级加权,以允许每个动作进行聚合,跨保存数据项的数据容器添加进一步的加权。同步优先级越高,数据项的同步更频繁或者同步的范围更丰富。
随着时间推移,同步引擎可以提升或降低数据项的同步优先级。明确的同步优先级指定或某些主动动作类型可以引起数据项的同步优先级的快速提升。如果经过了衰退(decay)时段而没有任何进一步的用户动作或者具有有低加权的动作类型的用户动作,则同步引擎可以降低数据项的同步优先级。不同的优先级等级可以具有不同的衰退时段。例如,较低的同步优先级可以具有较短的衰退时段,以加速降低过程。如果用户执行了足够的动作类型的足够的用户动作而达到了下一同步优先级等级的最小限度,则同步引擎可以将数据项提升至下一同步优先级等级。此外,在一同步优先级等级处的数据项的数量可以由项限制来约束以防止该同步优先级等级过于拥挤。数据项的提升可以视下一同步优先级等级的可用性而定。
因此,在一个实施例中,应用模块的同步引擎可以基于数据项的隐含数据分类来调整同步方案。同步引擎可以检测由用户对数据项执行的用户动作。同步引擎可以确定用户动作的动作类型。同步引擎可以基于动作类型而指派项同步优先级给数据项。
图1在框图中示出了数据网络100的一个实施例。计算设备110可以执行操作系统112。操作系统112是管理由应用模块114对硬件资源的使用以及应用模块114之间的交互的软件应用的集合。应用模块114是软件应用、或软件应用的一方面。
应用模块114可以管理可以与存储在云上的远程数据集合进行同步的用户的本地数据集合。应用模块114可以具有同步引擎(sync引擎)116,同步引擎116将本地数据集合与云数据集合进行同步。同步引擎116可以经由数据网络连接130连接到同步服务器(sync服务器)120。同步服务器120可以指代可以访问云数据集合的单个服务器或服务器的分布式集合。可替代地,点对点网络中的一端可以执行同步服务器120的与计算设备110的同步的功能。数据网络连接130可以是互联网连接、广域网连接、局域网连接、或其它类型的数据网络连接。同步引擎116可以通过数据网络连接130使同步服务器警惕针对同步方案的任何调整或接收任何同步。
图2示出了可以作为同步管理器的示例性计算设备200的框图。计算设备200可以将硬件、软件、固件、以及片上系统技术中的一个或多个进行组合以实现同步管理器。计算设备200可以包括总线210、处理器220、存储器230、数据存储设备240、输入/输出设备250、以及通信接口260。总线210或其它组件互连可以允许计算设备200的组件之间的通信。
处理器220可以包括翻译并执行指令的集合的至少一个常规处理器或微处理器。存储器230可以是随机存取存储器(RAM)或存储信息和供处理器220执行的指令的另一类型的动态数据存储设备。存储器230还可以存储在由处理器220执行指令期间使用的临时变量或其它中间信息。数据存储设备240可以包括常规ROM设备或存储用于处理器220的静态信息和指令的另一类型的静态数据存储设备。数据存储设备240可以包括任何类型的有形机器可读介质,例如,诸如数字视频盘的磁或光记录介质、以及其相对应的驱动器。与信号相反,有形机器可读介质是存储机器可读代码或指令的物理介质。如在本文中所描述的,使指令存储在计算机可读介质上是可区别于使指令传播或发送的,这是因为相对于将指令进行存储(例如可以发生在计算机可读介质具有存储于其上的指令的情况下),传播将指令进行传送。因此,除非另有说明,否则以这种或类似的形式提及计算机可读介质具有存储于其上的指令,指的是其上可以存储或保留数据的有形介质。数据存储设备240可以存储详述方法的指令的集合,当由一个或多个处理器执行时,所述指令的集合使得一个或多个处理器执行该方法。
输入/输出设备250可以包括允许用户向计算设备200输入信息的一个或多个常规机构,例如键盘、鼠标、语音识别设备、麦克风、耳机、手势识别设备、触摸屏等。输入/输出设备250可以包括向用户输出信息的一个或多个常规机构,包括显示器、打印机、一个或多个扬声器、耳机、或诸如存储器、或磁或光盘以及相对应的盘驱动器的介质。通信接口260可以包括任何类似收发器的机构,其使得计算设备200能够与其它设备或网络进行通信。通信接口260可以包括网络接口或收发器接口。通信接口260可以是无线、有线、或光学接口。
计算设备200可以响应于处理器220执行包含在计算机可读介质中的指令的序列来执行这样的功能,计算机可读介质可以是例如存储器230、磁盘、或光盘。可以从诸如数据存储设备240的另一计算机可读介质中将这样的指令读入存储器230中,或者经由通信接口260从分离的设备将这样的指令读入存储器230中。
图3在框图中示出了计算设备110的软件架构300的一个实施例。操作系统112可以具有确定计算设备110的运行状态的状态模块302。运行状态可以将功率状态、屏幕状态、网络状态、预算状态、处理状态、或计算设备110的其它运行描述符作为因素考虑。功率状态描述计算设备110的功率的源,例如电力网或电池。屏幕状态描述计算设备110的显示屏的亮度等级,例如高、低、或关闭。网络状态描述计算设备110到数据网络的连通性,以及网络的类型。预算状态描述计算设备110的任何资源是否是具有预算的(budgeted)例如电池预算或网络预算。处理状态描述计算设备110的处理功率的使用。
状态模块302可以向应用模块114发送同步分配304。同步分配304使应用模块114警惕关于可供应用模块114使用的同步资源的量。同步分配304可以被呈现为梯度或分组的等级集合,例如高等级分配、中等级分配、或低等级分配。同步引擎116可以与状态模块302通信以基于由应用模块114控制的每个数据项的数据分类而调整应用模块114之间的同步分配304。
应用模块114的同步引擎116可以接着基于同步分配304和数据分类来开发或调整同步方案306。同步方案306描述用于将本地数据集合与云数据集合进行同步的规则。同步方案306可以描述同步范围、同步调度、同步持续时间、同步数据限额、以及其它度量。同步范围可以描述在同步会话期间要被同步的特定子模块,例如,所同步的电子邮件是否包括任何附件。同步调度可以描述同步的时间和频率。同步持续时间描述同步会话的时间的长度。同步数据限额描述在同步会话期间发送的数据的量。同步服务器120可以基于由同步引擎116提供的同步方案306来向同步引擎发送同步更新308。
图4在框图中示出了数据管理系统400的一个实施例,同步引擎116可以使用该数据管理系统400来对应用模块114的专有数据进行分类。应用模块114可以管理、编辑、或控制一个或多个数据项402的集合。数据项402是由应用模块114处理的数据对象,例如文件、文档、数字图像、数字视频文件、音频文件、电子邮件、日历事件、联系人、可执行文件、或其它数据对象。数据项402可以由多个应用模块114控制。每个数据项402可以被分组到一个或多个数据容器404中。数据容器404是数据项402的分类分组。例如,数据文件是可以与其它数据文件分组到诸如数据文件夹的数据容器404中的数据项402。可替代地,电子邮件是可以被分组到表示电子邮件的发送者的数据容器404中,同时也可以被分组到表示电子邮件的主题的不同数据容器404中的数据项402。
用户可以使用应用模块114来执行针对数据项402或数据容器404的用户动作406。每个用户动作406可以具有描述用户动作406、特别是描述在用户动作406中用户参与等级的动作类型408。例如,读电子邮件可以被认为是被动动作类型408,答复电子邮件可以被认为是主动动作类型408,并且删除电子邮件可以被认为是负动作类型408。同步引擎116可以向每个动作类型408指派优先级加权410。用户动作406的优先级加权410可以改变作为用户动作406的目标的数据项402或数据容器404的同步优先级。
同步引擎可以维持同步记录以跟踪数据项402或数据容器404的同步优先级。图5a在框图中示出了项同步优先级记录500的一个实施例。项同步优先级记录500可以具有数据项字段502,该数据项字段502标识该项同步优先级记录500表示的数据项402。项同步优先级记录500可以具有数据容器字段504,该数据容器字段504标识与数据项402相关联的数据容器404。项同步优先级记录500可以具有项同步优先级字段506,该项同步优先级字段506描述数据项402的项同步优先级。项同步优先级可以用于确定数据项402的同步的范围和频率两者。具有较高同步优先级的数据项402相比于具有较低同步优先级的数据项402可以被更频繁地同步或者可以以更大的丰富性被同步。项同步优先级记录500可以具有项衰退时段字段508,该项衰退时段字段508描述在数据项402的项同步优先级被降低为更低的项同步优先级之前没有被用户动作406定为目标的时间的量。
图5b在框图中示出了容器同步优先级记录550的一个实施例。容器同步优先级记录550可以具有数据容器字段504,其标识容器同步优先级记录550表示的数据容器404。容器同步优先级记录550可以具有数据项字段502,其标识与数据容器404相关联的数据项402。容器同步优先级记录550可以具有容器同步优先级字段552,其描述数据容器404的容器同步优先级。容器同步优先级可以用于确定数据容器404的同步范围和频率两者。具有较高同步优先级的数据容器404中的数据项402可以相比于具有较低同步优先级的数据容器404中的数据项402被更频繁地同步或者可以以更大的丰富性被同步。容器同步优先级记录550可以具有容器衰退时段字段554,其描述在数据容器404的容器同步优先级被降低为更低的容器同步优先级之前没有被用户动作406定为目标的时间的量。
图6在流程图中示出了利用操作系统112来确定计算设备110的运行状态的方法600的一个实施例。操作系统112的状态模块302可以将功率状态作为因素考虑在运行状态中(块602)。状态模块302可以将屏幕状态作为因素考虑在运行状态中(块604)。状态模块302可以将网络状态作为因素考虑在屏幕状态中(块606)。状态模块302可以将预算状态作为因素考虑在运行状态中(块608)。状态模块302可以将处理状态作为因素考虑在运行状态中(块610)。
图7在流程图中示出了针对应用模块114设置同步分配304的方法700的一个实施例。操作系统112可以确定计算设备110的运行状态(块702)。操作系统112可以区分应用模块114之间的同步分配304,例如将应用模块114的同步分配304与从属应用模块114的从属同步分配304进行区分(块704)。在区分后,从属应用模块114可以相比于应用模块114的同步分配304接收更高或更低的同步分配304。操作系统112可以将同步分配304表示为高等级分配、中等级分配、或低等级分配中的至少一个(块706)。操作系统112可以设置应用模块114的优先级等级,以描述哪个应用模块总体上首先接收同步(块708)。用户或开发者可以设置应用模块114的优先级等级。可替代地,同步引擎116可以使应用模块114的优先级等级以在应用模块114上执行的用户动作406的动作类型408为基础。操作系统112可以确定应用模块114的应用(APP)状态(块710)。应用状态描述应用模块114的活动等级,例如活跃、后台、或休眠。操作系统112可以将应用状态作为因素考虑在同步分配304中(块712)。操作系统112可以基于运行状态指派同步分配304给应用模块114(块714)。操作系统112可以将同步分配304传输至应用模块114(块716)。如果状态模块302识别出运行状态的状态变化(块718),则操作系统112可以基于运行状态的状态变化来调整同步分配304(块720)。
图8在流程图中示出了针对应用模块114实现同步方案306的方法800的一个实施例。应用模块114可以识别应用状态(块802)。应用模块114的同步引擎116可以基于从操作系统112接收到的同步分配304而制定同步方案306(块804)。应用模块114可以基于同步分配来确定同步引擎116的同步范围(块806)。应用模块114可以基于同步分配来确定同步引擎116的同步调度(块808)。应用模块114可以基于同步分配来确定同步引擎116的同步持续时间(块810)。应用模块114可以基于同步分配来确定同步引擎116的同步数据限额(块812)。应用模块114可以指派每个应用子模块114的同步子方案,例如基于同步分配304为主应用子模块指派主同步子方案并且为从属子模块指派从属同步子方案(块814)。应用子模块是应用模块114的一方面,例如商用通信程序的邮件功能和日历功能。例如,邮件功能的同步子方案可以不同于日历功能的同步子方案。应用模块114的同步引擎116可以基于同步分配来针对应用模块114实现同步方案306(块816)。如果应用模块114的应用状态发生变化(块818),则应用模块114可以基于应用状态的变换来调整主同步子方案和从属同步子方案以反映新的应用状态(块820)。
图9在流程图中示出建立数据项402的项同步优先级的方法900的一个实施例。同步引擎116可以将数据项402与数据容器404相关联(块902)。如果同步引擎116从用户接收到针对数据项402的项同步优先级指定(块904),则同步引擎116可以指派指定的项同步优先级给数据项402(块906)。同步引擎116可以检测由用户执行的针对数据项402的用户动作406(块908)。同步引擎116可以确定用户动作406的动作类型408(块910)。同步引擎116可以将优先级加权410与动作类型408相关联(块912)。同步引擎116可以基于动作类型408指派项同步优先级给数据项402(块914)。同步引擎116可以基于项同步优先级指派容器(CONT)同步优先级给与数据项402相关联的数据容器404(块916)。如果达到项衰退时段而没有足够的后续用户动作406来达到最小优先级限度(块918),则在项衰退时段之后,同步引擎116可以降低数据项402的项同步优先级(块920)。否则,如果用户已经执行了针对数据项402的足够的动作类型408的足够的后续用户动作406(块922)并且同步引擎116确定下一项同步优先级等级还没有达到项限制(块924),则在后续用户动作406之后,同步引擎116可以提升数据项402的项同步优先级(块926)。每个项同步优先级等级可以具有项限制,该项限制描述可以被指派该项同步优先级等级的数据项的最大数量。
图10在流程图中示出了建立数据容器404的容器同步优先级的方法1000的一个实施例。同步引擎116可以将数据容器404与数据项402相关联(块1002)。如果同步引擎116从用户接收针对数据容器404的容器同步优先级指定(块1004),则同步引擎116可以指派指定的容器同步优先级给数据容器404(块1006)。同步引擎116可以基于容器同步优先级指定而改变与数据容器404相关联的任何数据项402的项同步优先级。数据容器404的类型可以影响针对数据容器404的用户动作406对相关联的数据项402的项同步优先级产生影响的量。同步引擎116可以检测由用户执行的针对数据容器404的用户动作406(块1008)。同步引擎116确定用户动作406的动作类型408(块1010)。同步引擎116可以将优先级加权410与动作类型408相关联(块1012)。同步引擎116可以基于动作类型408指派容器同步优先级给数据容器404(块1014)。同步引擎116可以基于容器同步优先级指派项同步优先级给与数据容器404相关联的数据项402(块1016)。如果达到项衰退时段而没有足够的后续用户动作406来达到最小优先级限度(块1018),则在项衰退时段之后,同步引擎116可以降低数据容器404的容器同步优先级(块1020)。否则,如果用户已经执行了针对数据容器404的足够的动作类型408的足够的后续用户动作406(块1022)并且同步引擎116确定下一容器同步优先级等级还没有达到容器限制(块1024),则在后续用户动作406之后,同步引擎116可以提升数据容器404的容器同步优先级(块1026)。每个容器同步优先级等级可以具有容器限制,该容器限制描述可以被指派该容器同步优先级等级的数据容器的最大数量。
图11在流程图中示出了基于由应用模块114控制的数据项402和数据容器404的数据分类来创建同步方案306的方法1100的一个实施例。同步引擎116可以基于项同步优先级而开发同步方案306(块1102)。同步引擎116可以基于容器同步优先级而开发同步方案306(块1104)。同步引擎116可以基于项同步优先级指派同步调度(块1106)。同步引擎116可以基于项同步优先级指派同步范围(块1108)。同步引擎116可以基于容器同步优先级指派同步调度(块1110)。同步引擎116可以基于容器同步优先级指派同步范围(块1112)。
图12在流程图中示出了利用同步服务器120建立同步方案306的方法1200的一个实施例。应用模块114可以从操作系统112接收基于计算设备110的运行状态的同步分配304(块1202)。应用模块114可以确定应用模块的应用状态(块1204)。应用模块114的同步引擎116可以确定由应用模块114控制的数据项402和数据容器404的数据分类(块1206)。应用模块114的同步引擎116可以基于同步分配304和数据分类而针对应用模块114实现同步方案306(块1208)。应用模块114的同步引擎116可以向同步服务器120发送同步方案306(块1210)。如果应用模块114在运行状态发生变化时从操作系统112接收到更新的同步分配304(块1212),则应用模块114的同步引擎116可以基于更新的同步分配304来调整同步方案306(块1214)。在调整同步方案306时,应用模块114的同步引擎116可以使同步服务器120警惕更新的同步方案306(块1216)。可替代地,应用模块114的同步引擎116可以执行懒同步方案更新,以在从同步服务器120接收到同步更新308时,使同步服务器120警惕同步方案306(块1218)。
尽管已经以特定于结构特征和/或方法行为的语言描述了主题,但是应当理解,所附权利要求中的主题并不一定限于上述具体特征或行为。相反,上文描述的具体特征和行为被公开为实现权利要求的示例形式。
本发明的范围内的实施例还可以包括用于承载或使计算机可执行指令或数据结构存储于其上的计算机可读存储介质。这样的计算机可读存储介质可以是可以由通用或专用计算机访问的任何可用介质。通过示例而非限制的方式,这样的计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM、或其它光盘存储设备、磁盘存储设备、或其它磁数据存储设备、或可以用于以计算机可执行指令或数据结构的形式承载或存储期望的程序代码单元的任何其它介质。以上的组合应当也被包括在计算机可读存储介质的范围内。
还可以在分布式计算环境中实践实施例,其中由通过通信网络链接(通过硬接线链路、无线链路、或通过其组合)的本地和远程处理设备来执行任务。
计算机可执行指令包括例如使得通用计算机、专用计算机、或专用处理设备执行某个功能或某组功能的指令和数据。计算机可执行指令还包括由在单独或网络环境中的计算机执行的程序模块。大体上,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件以及数据结构等。计算机可执行指令、相关联的数据结构以及程序模块表示用于执行本文中公开的方法的步骤的程序代码单元的示例。这样的可执行指令或相关联的数据结构的特定序列表示以这样的步骤实现所描述的功能的对应的行为的示例。
尽管上述描述可以包含具体细节,但是它们不应以任何方式被解释为限制权利要求。所描述的实施例的其它配置是本公开的范围的部分。例如,本公开的原理可以应用于每个个体用户,其中每个用户可以单独部署这样的系统。这使得每个用户能够利用本公开的益处,即使大量的可能的应用中的任意一个不使用本文中所描述的功能。电子设备的多个实例每个都可以以各种可能的方式处理内容。实现方式不一定在一个系统中由所有终端用户使用。由此,所附权利要求和它们的合法等同物应当仅定义本发明而不是给出的任何具体示例。

Claims (13)

1.一种被配置有同步管理器的计算设备,所述同步管理器包括:
数据存储设备,其被配置为存储与数据容器相关联的数据项;
通信接口,其被配置为连接至针对所述数据项的同步服务器;
输入设备,其被配置为接收动作类型的用户动作;以及
处理器,其被配置为执行基于所述动作类型来指派项同步优先级给所述数据项并且基于所述项同步优先级来实现同步方案的同步引擎,其中所述项同步优先级描述同步的范围和频率,
其中,所述同步引擎被配置为从操作系统接收基于计算设备的运行状态的同步分配,其中,所述操作系统是管理由应用模块对硬件资源的使用的软件应用的集合,并且
其中,所述操作系统被配置为确定应用状态,所述应用状态描述所述应用模块的活动等级,并且将所述应用状态作为因素考虑在所述同步分配中。
2.根据权利要求1所述的计算设备,其中,所述同步引擎被配置为基于所述项同步优先级指派容器同步优先级给与所述数据项相关联的数据容器。
3.根据权利要求1所述的计算设备,其中,所述输入设备被配置为从所述用户接收针对所述数据项的项同步优先级指定。
4.根据权利要求1所述的计算设备,其中,所述同步引擎被配置为将优先级加权与所述动作类型相关联。
5.根据权利要求1所述的计算设备,其中,在衰退时段后,所述同步引擎被配置为降低所述数据项的所述项同步优先级。
6.根据权利要求1所述的计算设备,其中,所述同步引擎被配置为确定下一项同步优先级等级还没有达到项限制。
7.根据权利要求1所述的计算设备,其中,在后续用户动作后,所述同步引擎被配置为提升所述数据项的所述项同步优先级。
8.一种计算设备,其具有被配置为存储与数据容器相关联的数据项的数据存储设备,所述计算设备被配置为检测由用户针对数据容器执行的用户动作,所述计算设备还被配置为确定所述用户动作的动作类型,所述计算设备进一步被配置为基于所述动作类型指派容器同步优先级给所述数据容器,其中所述容器同步优先级描述同步的范围和频率,并且所述计算设备进一步被配置为基于所述容器同步优先级实现同步方案,
其中,所述计算设备被配置为基于运行状态指派同步分配给控制所述数据容器的应用模块,
其中,所述计算设备执行操作系统,所述操作系统是管理由应用模块对硬件资源的使用的软件应用的集合,并且所述操作系统被配置为确定应用状态,所述应用状态描述所述应用模块的活动等级,并且将所述应用状态作为因素考虑在所述同步分配中。
9.根据权利要求8所述的计算设备,其中,所述计算设备被配置为将所述数据容器与数据项相关联,并且基于所述容器同步优先级指派项同步优先级给所述数据项。
10.根据权利要求8所述的计算设备,其中,所述计算设备被配置为从所述用户接收针对所述数据容器的容器同步优先级指定。
11.根据权利要求9所述的计算设备,其中,所述计算设备被配置为将优先级加权与所述动作类型相关联。
12.一种机器实现的方法,包括:
在应用模块中检测由用户针对数据项执行的用户动作;
利用同步引擎确定所述用户动作的动作类型;
利用所述同步引擎,基于所述动作类型指派项同步优先级给对所述数据项,其中所述项同步优先级描述同步的范围和频率;
从操作系统接收基于计算设备的运行状态的同步分配;并且
基于所述同步分配和所述项同步优先级,针对应用模块实现同步方案,
其中,所述操作系统是管理由应用模块对硬件资源的使用的软件应用的集合,并且
其中,所述操作系统被配置为确定应用状态,所述应用状态描述所述应用模块的活动等级,并且将所述应用状态作为因素考虑在所述同步分配中。
13.根据权利要求12所述的方法,还包括:
在项衰退时段后,利用所述同步引擎降低所述数据项的所述项同步优先级。
CN201480056896.3A 2013-10-17 2014-10-13 用于适应性同步的数据分类 Active CN105637841B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/056,883 US9588983B2 (en) 2013-10-17 2013-10-17 Data classification for adaptive synchronization
US14/056,883 2013-10-17
PCT/US2014/060211 WO2015057536A1 (en) 2013-10-17 2014-10-13 Data classification for adaptive synchronization

Publications (2)

Publication Number Publication Date
CN105637841A CN105637841A (zh) 2016-06-01
CN105637841B true CN105637841B (zh) 2018-11-30

Family

ID=51866315

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480056896.3A Active CN105637841B (zh) 2013-10-17 2014-10-13 用于适应性同步的数据分类

Country Status (5)

Country Link
US (1) US9588983B2 (zh)
EP (1) EP3058705B1 (zh)
KR (1) KR102273414B1 (zh)
CN (1) CN105637841B (zh)
WO (1) WO2015057536A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9519490B2 (en) 2013-03-07 2016-12-13 Microsoft Technology Licensing, Llc Adaptive data synchronization
JP5783301B1 (ja) 2014-06-11 2015-09-24 富士ゼロックス株式会社 通信端末、通信システム及びプログラム
US10225810B2 (en) 2014-08-06 2019-03-05 Samsung Electronics Co., Ltd. Method and apparatus for transmitting/receiving synchronization signal in device-to-device communication system
EP3198956B1 (en) 2014-09-25 2022-04-06 Samsung Electronics Co., Ltd. Synchronization procedure and resource control method and apparatus for communication in d2d system
CN106569917B (zh) * 2016-11-07 2020-06-16 Oppo广东移动通信有限公司 一种数据备份方法及移动移动终端
US11032367B2 (en) 2018-07-16 2021-06-08 Microsoft Technology Licensing, Llc Long upload time detection and management

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101167069A (zh) * 2005-04-22 2008-04-23 微软公司 文件对等同步的系统和方法
EP2207328A1 (en) * 2002-04-30 2010-07-14 Visto Corporation Adaptive synchronization of service data

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100201806B1 (ko) 1994-10-19 1999-06-15 윤종용 무선호출수신기의전원 절약장치 및 방법
JP3573546B2 (ja) 1995-10-27 2004-10-06 富士通株式会社 並列計算機における並列プロセススケジューリング方法および並列計算機用処理装置
US5768585A (en) 1995-11-21 1998-06-16 Intel Corporation System and method for synchronizing multiple processors during power-on self testing
US7594017B1 (en) 2000-05-25 2009-09-22 Palmsource Inc. Method and system for adaptive data synchronization and transport across multiple data transport infrastructures
US6601076B1 (en) * 2001-01-17 2003-07-29 Palm Source, Inc. Method and apparatus for coordinated N-way synchronization between multiple database copies
US7461163B2 (en) 2002-08-16 2008-12-02 Infrastructure Innovations Llc Real time mesh measurement system stream latency and jitter measurements
US7203853B2 (en) 2002-11-22 2007-04-10 Intel Corporation Apparatus and method for low latency power management on a serial data link
AU2005299366A1 (en) * 2004-10-25 2006-05-04 Empower Technologies Inc., A Washington Corporation System and method for global data synchronization
US7664788B2 (en) 2005-01-10 2010-02-16 Microsoft Corporation Method and system for synchronizing cached files
US7725093B2 (en) 2006-03-29 2010-05-25 Intel Corporation Method and apparatus for a power-efficient framework to maintain data synchronization of a mobile personal computer to simulate a connected scenario
US7710975B2 (en) * 2006-05-12 2010-05-04 International Business Machines Corporation Synchronization technique for exchanging data with a mobile device that conserves the resources of the mobile device
US20080005249A1 (en) 2006-07-03 2008-01-03 Hart Matt E Method and apparatus for determining the importance of email messages
US8121585B2 (en) 2006-08-25 2012-02-21 International Business Machines Corporation Technique for synchronizing data with a mobile device based on a synchronization context
US8045977B2 (en) 2007-11-01 2011-10-25 Honeywell International Inc. Method for maintaining datalink network throughput by delaying lower priority messages
US20090282169A1 (en) 2008-05-09 2009-11-12 Avi Kumar Synchronization programs and methods for networked and mobile devices
US20090300169A1 (en) * 2008-06-03 2009-12-03 Microsoft Corporation Synchronization throttling based on user activity
US7793002B2 (en) 2008-06-06 2010-09-07 Fisher-Rosemount Systems, Inc. Methods and apparatus for implementing a sequential synchronization hierarchy among networked devices
US9027027B2 (en) 2008-06-09 2015-05-05 Microsoft Technology Licensing, Llc Thread management based on device power state
US8112475B2 (en) 2008-06-27 2012-02-07 Microsoft Corporation Managing data delivery based on device state
WO2010033784A2 (en) 2008-09-19 2010-03-25 Mailrank, Inc. Ranking messages in an electronic messaging environment
EP2347347B1 (en) * 2008-10-21 2017-12-06 Google LLC Search based specification for data synchronization
JP5515331B2 (ja) * 2009-03-09 2014-06-11 ソニー株式会社 情報提供サーバ、情報提供システム、情報提供方法及びプログラム
US8291036B2 (en) * 2009-03-16 2012-10-16 Microsoft Corporation Datacenter synchronization
CN101635728B (zh) 2009-09-02 2012-09-26 中兴通讯股份有限公司 内容分发网络中数据同步的方法及系统
US8688826B2 (en) 2009-11-30 2014-04-01 Motorola Mobility Llc Mobile computing device and method with intelligent pushing management
GB0921559D0 (en) * 2009-12-09 2010-01-27 Omnifone Ltd Behaviour-adaptive intelligent synchronisation of media content files
US20120149352A1 (en) * 2010-07-26 2012-06-14 Ari Backholm Context aware traffic management for resource conservation in a wireless network
US8645574B2 (en) * 2010-08-02 2014-02-04 Blackberry Limited Method and system for management of synchronization of a mobile electronic device
US8312096B2 (en) * 2010-12-08 2012-11-13 Google Inc. Priority inbox notifications and synchronization for mobile messaging application
US20120173993A1 (en) 2010-12-30 2012-07-05 International Business Machines Corporation Point of interest preview for electronic mail
US20120179896A1 (en) 2011-01-10 2012-07-12 International Business Machines Corporation Method and apparatus for a hierarchical synchronization barrier in a multi-node system
US8676906B2 (en) 2011-02-25 2014-03-18 Qualcomm Incorporated Email access manager for a wireless communication device
US8538926B2 (en) * 2011-03-08 2013-09-17 Rackspace Us, Inc. Massively scalable object storage system for storing object replicas
EP2624577B1 (en) * 2012-02-01 2016-11-02 EchoStar UK Holdings Limited Remote viewing of media content using layered video encoding
US20130205001A1 (en) 2012-02-02 2013-08-08 Motorola Mobility, Inc. Modifying application data synchronization based on application usage frequency
TWI497948B (zh) 2012-02-14 2015-08-21 Htc Corp 行動裝置的動態郵件同步方法、系統及電腦程式產品
US8407306B1 (en) 2012-06-25 2013-03-26 Google Inc. Systems and methods for managing message delivery based on message priority
US20140092757A1 (en) 2012-10-01 2014-04-03 Futurewei Technologies, Co. Controlling Data Synchronization and Backup Services
US9106721B2 (en) 2012-10-02 2015-08-11 Nextbit Systems Application state synchronization across multiple devices
US9858052B2 (en) * 2013-03-21 2018-01-02 Razer (Asia-Pacific) Pte. Ltd. Decentralized operating system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2207328A1 (en) * 2002-04-30 2010-07-14 Visto Corporation Adaptive synchronization of service data
CN101167069A (zh) * 2005-04-22 2008-04-23 微软公司 文件对等同步的系统和方法

Also Published As

Publication number Publication date
WO2015057536A1 (en) 2015-04-23
US20150112924A1 (en) 2015-04-23
EP3058705A1 (en) 2016-08-24
KR20160074489A (ko) 2016-06-28
KR102273414B1 (ko) 2021-07-05
US9588983B2 (en) 2017-03-07
CN105637841A (zh) 2016-06-01
EP3058705B1 (en) 2018-01-17

Similar Documents

Publication Publication Date Title
CN105637841B (zh) 用于适应性同步的数据分类
US11847576B2 (en) Methods and system for managing predictive models
WO2019174595A1 (zh) 资源配置方法、装置、终端及存储介质
EP2893444B1 (en) Quota-based resource management
TWI575372B (zh) 行動裝置基於熱條件之動態調整
CN103140831B (zh) 在处理器处执行线程的系统和方法
US10491535B2 (en) Adaptive data synchronization
CN107111632B (zh) 用于调节移动通信设备处的通信的方法和系统
CN109716736B (zh) 应用数据共享和决策服务平台
CN112380020A (zh) 一种算力资源分配方法、装置、设备及存储介质
CN109343902A (zh) 音频处理组件的运行方法、装置、终端及存储介质
CN103546266A (zh) 用于同步应用的智能预定同步方法
US11494231B2 (en) Electronic device for processing background task by using external input and storage medium thereof
US11422857B2 (en) Multi-level scheduling
CN108984290A (zh) 任务调度方法和系统
US11893420B2 (en) Dynamic usage of storage and processing unit allocation
Song et al. Intelligent smart cloud computing for smart service
KR102596273B1 (ko) 의료기기특성과 의료인 조작 경험을 기초로한 의료기기 스케쥴링 방법 및 장치
Song et al. User Adaptive Application Program Management for Personal Cloud Services
WO2023024894A1 (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