首页> 中国专利> 用于设备和WEB服务的多主控方离线和协作所需要的最小扩展

用于设备和WEB服务的多主控方离线和协作所需要的最小扩展

摘要

所要求保护的主题提供了便于连同多个设备一起管理数据一致性的系统和/或方法。设备集合可与用户相关联。WEB服务可经由接口组件从至少一个设备接收一部分数据,其中WEB服务可主控该部分数据并将该部分数据与用户的账户相关。主同步组件可利用来自至少一个设备的计算资源以便在以下的至少一个情况保持数据一致性:与用户相关联的设备集合中的两个或多个设备之间;或由WEB服务主控的账户和与用户相关联的设备集合中的两个或多个设备之间。

著录项

  • 公开/公告号CN102132270A

    专利类型发明专利

  • 公开/公告日2011-07-20

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN200980134288.9

  • 申请日2009-08-18

  • 分类号G06F17/00(20060101);G06F15/16(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人陈斌

  • 地址 美国华盛顿州

  • 入库时间 2023-12-18 03:04:41

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-05-20

    专利权的转移 IPC(主分类):G06F17/00 变更前: 变更后: 登记生效日:20150506 申请日:20090818

    专利申请权、专利权的转移

  • 2014-03-12

    授权

    授权

  • 2011-08-31

    实质审查的生效 IPC(主分类):G06F17/00 申请日:20090818

    实质审查的生效

  • 2011-07-20

    公开

    公开

说明书

背景技术

计算机技术(例如,微处理器速度、存储器容量、数据传输带宽、软件功能等)的进步一般有助于各行业中的计算机应用的增长。通常提供常被配置为服务器阵列的甚至更强大的服务器系统来服务源自诸如万维网等外部源的请求。

由于这些进步,可用电子数据的量增长,且以方便用户友好和快速的数据搜索和检索的可管理方式来储存这些数据变得愈发重要。当今,一种常见的方法是将电子数据存储在一个或多个数据库或数据存储中。一般而言,典型的数据存储可被称作经组织的信息集合,其数据被结构化使得计算机程序可例如快速搜索和选择期望的数据段。通常,数据存储内的数据是经由一张或多张表来组织的。这些表被排列为行和列的数组。

每一个个别的数据段本身一般并不具有非常丰富的信息。数据存储应用使得数据更有用,因为它们帮助用户组织和处理数据。数据存储应用允许用户比较、分类、排序、合并、分离和互连数据,使得可从数据生成并可由数据呈现有用的信息。数据库的容量和多功能性已难以置信地增长,以允许利用数据库的实际上无止境的存储容量。然而,典型的数据库系统受限于以有效且流水线化的方式来传递信息或详细资料。例如,必须在详细视图中选择数据文件以便呈现诸如文件名、文件大小、创建日期、被存取、被修改、位置、属性等信息。

随着终端用户持续且日益增长的数据的创建,围绕查找、相关、操纵和储存这些数据的问题和困难也逐步增加。终端用户编写文档、储存照片、从光盘中抓取音乐、接收电子邮件、保留已发送邮件的副本等等。例如,在创建音乐光盘的简单过程中,最终用户可创建兆字节的数据。从光盘中抓取音乐、将文件转换成合适的格式、创建首饰盒封面,以及设计光盘标签,都需要数据的创建。

此外,由于围绕开发者和/或用户的无限量的数据,因此保持各种不同机器和/或系统之间的数据一致性会是一个复杂且难以实现的任务。例如,用户能够利用各种设备(如膝上型机器、台式机等),其中数据一致性和/或同步是必须考虑的问题。更具体地,由于每个机器和/或系统生成大量的数据,因此对这些数据进行同步是一个极其困难的目标。

发明内容

下面呈现了本发明的摘要,以便提供此处所描述的某些方面的基本概念。此小结不是所要求保护的主题的详尽的概述。既没有指出所要求保护的主题的关键性元素,也没有描述本发明的范围。唯一的目的是以简化形式呈现所要求保护的主题的某些概念,作为稍后呈现的比较详细的描述的前奏。

本发明涉及便于多个设备和web服务之间同步数据的系统和/或方法。主同步组件可允许两个或多个设备之间无缝且通用的数据同步。具体来说,主同步组件可通过仅仅利用与两个或多个设备中的至少一个有关的计算资源来在这些设备之间提供数据一致性。而且,主同步组件可在web服务和两个或多个设备之间提供数据改变和/或更新。通过利用并实施项目级元数据和集合级元数据,主同步组件能够以无缝且非侵入的方式为多个设备以及多个设备和/或web服务提供数据同步。

而且,本发明可允许正确的冲突检测和解决传播。一般来说,提供了一种算法,其中web服务可实现以便允许对等能力或离线能力,而不必重新重建这种web服务。在所要求保护的主题的其他方面,提供了便于管理与某一实体相关联的多个设备之间的数据一致性的方法。

下面的描述和附图详细地阐述了所要求保护的主题的某些说明性方面。然而,这些方面只是表示可以使用本发明的原理的各种方式中的一些方式,并且所要求保护的主题旨在包括所有这些方面和等效内容。通过与附图一起阅读下面的本发明的详细描述,所要求保护的主题的其他优点和新颖的特点将变得显而易见。

附图说明

图1例示出便于多个设备和web服务之间同步数据的示例性系统的框图。

图2例示出便于在连同一web服务检测到数据改变时维持用户设备之间的数据一致性的示例性系统的框图。

图3例示出便于使web服务适合于两个或多个用户设备之间无缝且通用的数据同步的示例性系统的框图。

图4例示出便于管理与某一实体相关联的多个设备之间的数据一致性的示例性系统的框图。

图5例示出便于增强标识数据更新和将这些更新渗透到各种设备和/或web服务的示例性系统的框图。

图6例示出便于自动化管理多个设备和/或设备与web服务之间数据同步的示例性系统的框图。

图7例示出用于管理与某一实体相关联的多个设备之间的数据一致性的示例性方法。

图8例示出便于使web服务适合于两个或多个用户设备之间无缝且通用的数据同步的示例性方法。

图9示出了其中可以使用所要求保护的主题的新颖方面的示例性网络环境。

图10示出了根据所要求保护的主题的可以使用的示例性操作环境。

具体实施方式

现在参考附图来描述所要求保护的主题,在所有附图中使用相同的附图标记来指代相同的元素。在以下描述中,为解释起见,阐明了众多具体细节以提供对本发明的全面理解。然而,很明显,所要求保护的主题可以在没有这些具体细节的情况下实施。在其他情况下,以框图形式示出了各个已知的结构和设备以便于描述本发明。

如在此使用的,术语“组件”、“系统”、“数据存储”、“服务”、“云”、“设备”、“账户”、“处理器”、“解决器”、“实体”等意图指代计算机相关的实体,它们可以是硬件、软件(例如,执行中的)和/或固件。例如,组件可以是在处理器上运行的进程、处理器、对象、可执行码、程序、函数、库、子例程,和/或计算机或者软件和硬件的组合。作为说明,在服务器上运行的应用程序和服务器两者都可以是组件。一个或多个组件可以驻留在进程中,且组件可以位于一个计算机上和/或分布在两个或更多计算机之间。应该理解在给定的二方同步中可存在多个主控方,以及能以近似任意的拓扑(如具有至少一个主控方的对等)同步数据。

此外,所要求保护的主题可以使用用于产生控制计算机以实现所公开的主题的软件、固件、硬件或其任意组合的标准编程和/或工程技术来实现为方法、装置或制品。在此使用的术语“制品”旨在涵盖可以从任何计算机可读设备、载体或介质访问的计算机程序。例如,计算机可读介质可以包括,但不仅限于,磁存储设备(例如,硬盘、软盘、磁条)、光盘(例如,紧致盘(CD)、数字多功能盘(DVD))、智能卡,以及闪存设备(例如,卡、棒、键驱动器...)。另外,应该理解,可以使用载波来携带计算机可读电子数据,诸如在传输和接收电子邮件或在访问诸如因特网或局域网(LAN)之类的网络时所使用的那些。当然,本领域的技术人员将会认识到,可在不背离所要求保护的主题的范围或精神的情况下对此配置进行许多修改。此外,在此使用词语“示例性”意指用作示例、实例或说明。在此被描述为“示例性”的任何方面或设计并不一定要被解释为相比其他方面或设计更优选或有利。

现在转到附图,图1例示出便于多个设备和web服务之间同步数据的系统100。系统100可包括主同步组件102,主同步组件可在两个或多个设备106之间和/或web服务104与所述两个或多个设备106之间实施数据一致性。一般来说,主同步组件102可采用多设备数据同步以及多个设备和web服务104之间的数据同步。具体来说,主同步组件102可利用与至少一个设备相关联的计算资源以便保持两个或多个设备106内的数据一致性。而且,主同步组件102可通过利用与两个或多个设备106有关的计算资源实现web服务104和两个或多个设备106之间的数据同步。换言之,系统100能够以无缝且web服务无关的方式提供数据同步。

例如,用户可拥有或使用智能电话、膝上型计算机、台式计算机以便存储数据(例如文件、图片、图像、视频、音频等)。本发明可允许智能电话、膝上型计算机、台式计算机之间的数据一致性。换言之,基于用户设置(如要包括哪些设备、要同步哪些数据等),可评估设备和相应的数据以便确保:智能电话上的数据包括于膝上型计算机和台式计算机;膝上型计算机上的数据包括在智能电话和台式计算机上;台式计算机上的数据包括在智能电话和膝上型计算机上。

在另一个例子中,用户可利用设备(如智能电话、膝上型计算机、台式计算机)来收集、捕捉、存储等诸如图像之类的数据,其中这些数据可连同与图像相关联的web服务被使用。Web服务可使得用户能够设置账户,以及上传图像供查看、共享、编辑等。然而,图像可分散或存储在诸如智能电话、膝上型计算机和/或台式计算机之类的各种设备上。通过利用各设备的计算资源,可提供数据同步以独立于web服务而确保数据一致性。换言之,可确保web服务具有精确且复制的数据,如下:用于该用户的web服务上的数据被包括在智能电话、膝上型计算机和台式计算机上;智能电话上的数据被包括在用于该用户的web服务、台式计算机和膝上型计算机上;膝上型计算机上的数据被包括在用于该用户的web服务、智能电话和台式计算机上;台式计算机上的数据被包括在用于该用户的web服务、智能电话和膝上型计算机上。

此外,系统100可包括任何合适的和/或必要的接口组件108(在此被称为“接口108),该接口组件提供各种适配器、连接器、通道、通信路径等,以将主同步组件102集成到实际上任何操作和/或数据库系统中,和/或彼此集成。另外,接口108可以提供各种适配器、连接器、通道、通信路径等,它们提供与主同步组件102、web服务104、设备集合106中的至少一个设备、以及与系统100相关联的任何其他设备和/或组件交互。

图2例示出便于在连同一web服务检测到数据改变时维持用户设备之间的数据一致性的系统200的框图。系统200可包括主同步组件102,主同步组件可在两个或多个设备106之间以及两个或多个设备106与web服务104之间使用数据同步。一般来说,系统100可利用数据复制技术以便确保与两个或多个设备106和/或web服务104相关联的数据基本相似。Web服务104可包括与某一用户相关联的用户账户202。该用户可提供担保信息或凭证(如用户名、口令等)以便访问web服务104。应该理解,该用户可将一部分数据传送到web服务104用于对这些web服务的使用。

应该理解,可以有任何合适数量设备,诸如设备1到设备N,其中N是正整数。设备可以是但不限于智能电话、膝上型计算机、台式机、计算机、机器、便携数字助理(PDA)、蜂窝设备、寻呼机、双向设备、手持设备、移动设备、浏览设备、无线设备、便携游戏设备、游戏控制台、媒体播放器、便携媒体播放器、笔式驱动器、硬盘驱动器、数据存储、数字照相机、图像采集设备、视频采集设备、视频摄像机、音频采集设备、音频录音机、全球定位系统(GPS)、便携web浏览器等。此外,应该理解本发明可提供与任何适用的web服务的数据同步。Web服务可以是但不限于图像web服务、视频web服务、存储web服务、音频文件web服务、数据备份web服务、社交网络服务等。

系统200可进一步包括数据存储204,数据存储可包括由主同步组件102、web服务104、所述两个或多个设备106、接口108等利用和/或存取的任何合适的数据。例如,数据存储204可包括但不限于包括同步数据、同步设置、用户偏好、时间戳数据、版本数据、web服务设置、设备列表、项目元数据要求、项目元数据要求集合、更新算法、冲突检测技术、冲突解决技术、更新数据(如时间、源、位置等)等。而且,尽管将数据存储204描述为独立的组件,但是应理解数据存储204可以是独立的组件,结合到主同步组件102、某一设备、接口108之中,和/或它们的任何合适的组合。

应该理解,数据存储器204可以是,例如,易失性存储器或非易失性存储器,或者可包括易失性和非易失性存储器两者。作为例示,而不是限制,非易失性存储器可包括只读存储器(ROM)、可编程序ROM(PROM)、电可编程序ROM(EPROM)、电可擦可编程序ROM(EEPROM)或闪存。易失性存储器可包括充当外部高速缓冲存储器的随机存取存储器(RAM)。作为说明而不是限制,RAM可以有许多形式,如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据速率SDRAM(DDR SDRAM)、增强的SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、直接型存储器总线(Rambus)RAM(RDRAM),直接型存储器总线(Rambus)动态RAM(DRDRAM),以及存储器总线(Rambus)动态RAM(RDRAM)。本系统和方法的数据存储器204旨在包括,而不仅限于,这些以及任何其他合适类型的存储器。另外,还可以理解,数据存储器204可以是服务器、数据库、硬盘驱动器、笔式驱动器、外部硬盘驱动器、便携式硬盘驱动器等等。

图3例示出便于使web服务适合于两个或多个用户设备之间无缝且通用的数据同步的系统300。系统300可包括主同步组件102,主同步组件可在两个或多个设备106之间或web服务104与两个或多个设备106之间提供数据同步。系统300可提供多主控方同步能力,能以完全连接网格将web服务104扩展到多个端点(如设备、组件等)之间的离线或协作情形。例如,web服务104可使得富客户机从各种位置(如工作、家庭、汽车、度假等)同步,以及与多个设备同步。

主同步组件102可允许端点解释多主控方同步系统中所需的同步元数据。具体来说,web服务104可提供API或利用现有的API,其中该API可实施项目和集合级同步元数据。通过使用项目和集合级同步元数据,web服务104可提供对等(P2P)或离线能力(包括数据同步),而无需重建此类web服务104(如客户机侧上的独立数据同步)。

系统300可包括实施项目(如照片、个人联系人、图像文件、数据的一部分、视频的一部分、音频的一部分、图形的一部分、文本的一部分等)的元数据特性的项目组件302。项目组件302可允许对同步元数据(例如要作为权标、小的数据团等处理)的存储和取回。项目级元数据可包括一个对(如第一个数、第二个数、小的数、大的数等)以表示更新版本结构。例如,更新版本结构可包括最后更新者(如提供了数据改变/更新的实体)以及端点作出改变的本地时间中的实际更新时间。例如,项目组件302可使用可由特定冲突解决和检测情形以及墓碑清除(例如下文中更为详细讨论的)所采用的创建版本。在另一个例子中,项目组件302可使用BOOL作为删除标志或墓碑标记中的至少一个。

系统300还可包括集合处理器304,集合处理器可实施同步项目集合(如专辑、地址簿、文件夹等)的元数据特性。集合处理器304可允许串行化同步元数据的存储和取回,其中串行化同步元数据可被客户机用作改变枚举和冲突检测的基础。在一个示例中,墓碑清除可用作清除远程删除(例如从数据存储等)的策略。该集合级元数据可以是可用于多主控方同步系统中的权标,如时钟向量。集合处理器304可使用版本向量和扩展信息一起允许部分更新、中断、过滤等。

系统300可包括冲突解决器306,冲突解决器可使用更新算法来允许正确的冲突检测和解决传播。冲突解决器306可采用这样一种算法,该算法允许web服务104参与同步并允许在更新存在冲突时端点能够合理解释。当更新由启用非同步的客户机(如web用户接口、现有应用、第三方等)作出时,冲突解决器306可擦除正被更新的项目的更新版本信息,同时保持剩余的元数据(如创建版本)完整无缺。应理解,这可允许端点确定项目是否被更新过(如用户更新他们早已“看到”的项目)。当允许同步的端点作出对项目的更新时,冲突解决器306可利用端点的API来设置该项目的版本信息。Web服务104可尊重该条目而不修改或操纵该版本信息。冲突解决器306可进一步处理删除和墓碑。具体来说,冲突解决器306可保持同步元数据的副本,并在项目被删除时给予对被删除项目的访问。而且,冲突解决器306可给予对从更新时分配的附加同步元数据的访问。而且,允许同步的端点还可作出集合级元数据的副本,按照同步的快照来取得。

图4例示出便于管理与某一实体相关联的多个设备之间的数据一致性的系统400。系统400可包括主同步组件102,主同步组件可实施项目和项目集合的元数据要求,以便确保多个设备404的数据同步。具体来所,多个设备404可与用户402相关联。例如,多个设备404可由用户402使用、访问、拥有等。而且,应理解用户402可以是能够与至少一个设备交互或通信的任何合适的实体。例如,实体可以是但不限于个人、一组人、机器、网站、公司、企业、社区、家庭、网络、服务器等。

用户402可与各种设备交互或利用各种设备,以便收集、操纵、管理、通信、浏览、编辑等数据和/或项目。在该特定示例中,多个设备可包括台式计算机406、膝上型计算机408、数字照相机410、平板计算机412、智能电话414、便携数字助理(PDA)416、视频摄像机418、蜂窝电话420。主同步组件102可允许所述多个设备404中的两个或更多设备之间的数据一致性和同步。通过允许两个或更多设备数据同步,用户402可以无缝且通用的方式来管理数据。换言之,每个设备上的数据可以一致,以便向每个设备提供基本类似的数据。而且,应理解用户402可提供用户偏好和/或设置。这些个人化的设置可包括要同步哪些数据、要与哪些设备同步、安全设置(如用户名、口令等)、同步频率、和/或与数据一致性相关联的任何其他适用的设置。

图5例示出便于增强标识数据更新和将这些更新渗透到各种设备和/或web服务的系统500。系统500可进一步使用云502,云502可结合注释聚合器102、POI(未示出)、接口108、具有标识的POI数据504的地图的至少一个,和/或它们的任何合适的组合。应该理解,云502可包括与本发明相关联的任何合适的组件、设备、硬件、和/或软件。云502可以指由某一方(例如,场外、现场、第三方等)维护并可以由所标识的用户504通过网络(例如,因特网、无线、LAN、蜂窝、Wi-Fi、WAN等)访问的资源(例如,硬件、软件、其组合等)的任何集合。云502旨在包括任何服务、网络服务、云服务、资源集合等并可由所标识的用户经由网络来访问。例如,两个或更多个用户(如用户504)可以访问、加入云502和/或与其交互,并且进而访问、加入主同步组件102、接口108的至少一个,和/或它们的任何合适的组合,和/或与其交互。例如,用户504可与云502通信以便访问web服务506的集合中的web服务。而且,在与web服务506的这种通信期间,云502可经由主同步组件102提供数据同步。另外,云502可以向任何合适数量的用户和/或客户机提供任何合适数量的服务。具体来说,云502可包括在与某一用户相关联的两个或多个设备之间,或web服务和与某一用户相关联的两个或多个设备之间,提供数据一致性的资源和/或服务。具体来说,云502可利用与至少一个设备相关联的资源以便提供数据同步,其中云502可独立于来自web服务的资源而自动并动态地确保数据一致性。

图6例示出采用智能来便于管理多个设备和/或设备与web服务之间数据同步的系统600。系统600可包括主同步组件102、两个或多个设备106、web服务104以及接口108,它们可以类似于先前的图中所描述的相应的组件、设备、服务和接口。系统600还包括智能组件602。智能组件可由主同步组件102使用来便于同步数据。例如,智能组件602可推断项目的元数据特性、项目集合的元数据特性、同步设置、冲突检测、冲突解决、与项目级元数据相关联的权标数据、与集合级元数据相关联的权标数据、更新版本结构、元数据对、串行化同步元数据、时钟向量数据、版本数据向量、端点数据等。

智能组件602可以采用信息值(VOI)计算,以便标识用于同步的最佳数据和与之相关联的特性。例如,通过使用VOI,可在两个或多个设备106或web服务104与两个或多个设备106之间同步最理想和/或合适的数据。此外,可以理解,智能组件602可以从经由事件和/或数据捕捉到的一组观察结果,推理或推断出系统、环境和/或用户的状态。可以使用推断来识别特定上下文或动作,也可以生成例如状态上的概率分布。推断可以是概率性的——即,基于对数据和事件的考虑来计算在感兴趣状态上的概率分布。推断也可以是指用于从一组事件和/或数据构成较高级事件的技术。这样的推断导致从一组观察到的事件和/或存储的事件数据构建新的事件或动作,而不管事件在时间接近度上是否紧密相关,以及事件和数据是来自一个还是若干个事件和数据源。可以与结合所要求保护的主题执行的自动和/或推断操作相结合地使用各种分类(显式地和/或隐式地训练的)方案和/或系统(例如,支持向量机、神经网络、专家系统、贝叶斯信任网络、模糊逻辑、数据融合引擎,等等)。

分类器是将输入属性矢量x=(x1,x2,x3,x4,xn)映射到该输入属于一个类的置信度的函数,即f(x)=置信度(类)。这样的分类可以使用基于概率和/或统计的分析(例如,分解成分析效用和成本)来预测或推断用户希望自动地执行的动作。支持矢量机(SVM)是可以使用的分类器的一个示例。SVM通过发现可能的输入的空间中的超曲面来操作,该超曲面试图将触发准则与非触发事件分离。直观地,这使得分类可以校正与训练数据接近但又不完全相同的测试数据。其他有向和无向模型分类方法包括,例如,朴素贝叶斯、贝叶斯网络、决策树、神经网络、模糊逻辑模型,且也可以使用提供不同独立性模式的概率分类模型。如这里所使用的分类还包括被用来开发优先级模型的统计回归。

主同步组件102还可利用提供各种类型的用户界面来方便用户和耦合到主同步组件102的任何组件之间的交互的呈现组件604。如图所示,呈现组件604是可以与主同步组件102一起利用的单独实体。然而,可以理解,呈现组件604和/或类似的查看组件可以被结合到主同步组件102中和/或是一独立单元。呈现组件604可以提供一个或多个图形用户界面(GUI)、命令行界面等等。例如,可以向用户呈现提供用于加载、导入、读取等等数据的区域或手段,并可包括呈现这样的操作的结果的区域的GUI。这些区域可以包括已知文本和/或图形区域,包括对话框、静态控件、下拉菜单、列表框、弹出式菜单,编辑控件、组合框、单选按扭、复选框、按钮,以及图形框。另外,还可以使用便于呈现的实用程序,诸如用于导航的垂直和/或水平滚动条以及工具条按扭以确定某一区域是否可查看。例如,用户可以与耦合到和/或结合到主同步组件102中的一个或多个组件交互。

用户还可以与区域进行交互以经由各种设备(诸如,例如,鼠标、滚球、触摸板、键区、键盘、触摸屏、笔和/或话音激话、人体运动检测)来选择和提供信息。通常,可在输入了信息之后采用诸如键盘上的按钮或回车键等机制。然而,可以理解,所要求保护的主题没有这样的限制。例如,只突出显示复选框可以发起信息传达。在另一示例中,可以使用命令行界面。例如,命令行界面可以经由提供文本消息向用户(例如,经由显示器上的文本消息和音频音调)提示信息。然后,用户可以提供合适的信息,如与界面提示中所提供的选项相对应字母数字输入或对在提示中提出的问题的回答。可以理解,可结合GUI和/或API使用命令行界面。另外,还可以结合具有有限图形支持和/或低带宽通信信道的硬件(例如,视频卡)和/或显示器(例如,黑白、EGA、VGA、SVGA等等)来使用命令行界面。

图7-8示出根据所要求保护的主题的方法和/或流程图。为简洁起见,方法被描绘并描述为一系列动作。可以理解和明白,本发明不仅限于所示出的动作和/或动作的顺序。例如,一些动作可以按各种顺序和/或并发地进行,并带有此处未呈现和描述的其他动作。此外,并非所有的所示出的动作都是实现根据所要求保护的主题的方法所必需的。另外,本领域的技术人员将了解和明白,方法也可以替代地经由状态图或事件表示为一系列相互相关联的状态。另外,还应该进一步理解,下面以及整个说明书中所公开的方法能够被存储在一种制品中,以促进将这样的方法传送和传输到计算机中。在此使用的术语“制品”旨在涵盖可以从任何计算机可读设备、载体、或介质访问的计算机程序。

图7例示出便于管理与某一实体相关联的多个设备之间的数据一致性的方法700。在参考标号702,可将两个或多个设备标识为连接的网格中的端点。例如,设备可以是但不限于智能电话、膝上型计算机、台式机、计算机、机器、便携数字助理(PDA)、蜂窝设备、寻呼机、双向设备、手持设备、移动设备、浏览设备、无线设备、便携游戏设备、游戏控制台、媒体播放器、便携媒体播放器、笔式驱动器、硬盘驱动器、数据存储、数字照相机、图像采集设备、视频采集设备、视频摄像机、音频采集设备、音频录音机、全球定位系统(GPS)、便携web浏览器等。

在参考标号704,可对与至少一个设备相关联的数据的一部分使用数据改变。例如,数据改变可以是添加数据、删除数据、操纵数据、编辑数据、和/或对数据的任何其他合适的修改。在参考标号706,使用来自至少一个设备的资源对连接的网格中的两个或多个设备实现数据改变。例如,可使用设备资源来跨连接的网格内的两个或多个设备使用数据同步。在另一实施例中,可在web服务和连接的网格内的两个和多个设备之间进行数据同步。而且,应理解来自web服务的计算资源无需被利用来提供与之的数据同步。

图8例示出用于使web服务适合于两个或多个用户设备之间无缝且通用的数据同步的方法800。在参考标号802,可实施项目级同步元数据来表示项目更新的更新版本结构。该项目可以是例如照片、个人联系人、图像文件、数据的一部分、视频的一部分、音频的一部分、图形的一部分、文本的一部分等。具体来说,项目级同步元数据可以是一个对,如第一个数和第二个数(如小的数和大的数等)。而且,版本结构可包括最新进的更新者和端点作出改变或项目更新的本地时间中的实际更新时间。

在参考标号804,项目级同步元数据可被串行化并用作用于改变枚举和冲突检测的时钟向量。例如,串行化的项目级同步元数据可由客户机用于改变枚举和冲突检测的基础。此外,串行化的项目级同步元数据可被定义成带有扩展信息的版本向量,以允许部分更新、中断、过滤等。

在参考标号806,如果更新是由启用非同步的客户机作出的,则可对正被更新的项目移除更新版本信息。换言之,与更新版本结构有关的信息可被移除,以允许端点(如设备等)确定已被看见或访问的项目已被更新。例如,启用非同步的客户机可以是,但不限于,web UI、现有应用、第三方等。在参考标号808,可使用端点来设置正由启用同步的端点更新的项目的版本信息(如与更新版本结构有关)。在一个例子中,当项目被更新时,可使用与端点有关的API来设置项目的版本信息。

为了提供用于实现所要求保护的主题的各个方面的附加的上下文,图9-10以及下面的讨论旨在提供其中可以实现本发明的各个方面的合适的计算环境的简要的、一般描述。例如,如先前的附图所述的利用通用算法在多个设备之间进行数据同步的主同步组件可在此类合适的计算环境中实现。尽管以上已在可以在本地计算机和/或远程计算机上运行的计算机程序的计算机可执行指令的一般上下文中描述了所要求保护的主题的,但是,本领域技术人员将认识到,也可结合其他程序模块来实现本发明。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构等。

此外,本领域技术人员将了解,可以利用其他计算机系统配置来实施本发明的方法,包括单处理器和/或多处理器计算机系统,小型计算机、大型计算机,以及个人计算机,手持式计算设备、基于微处理器和/或可编程消费电子产品等等,上述每一种设备都可以可操作地与一个或多个相关联的设备进行通信。所要求保护的主题的所说明的方面也可以在其中某些任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。然而,本发明的某些方面,如果不是所有方面的话,可以在独立计算机上实施。在分布式计算环境中,程序模块可以位于本地和/或远程存储器存储设备中。

图9是所要求保护的主题可以与其进行交互的示例计算环境900的示意框图。系统900包括一个或多个客户机910。客户机910可以是硬件和/或软件(例如,线程、进程、计算设备)。系统900还包括一个或多个服务器920。服务器920可以是硬件和/或软件(例如,线程、进程、计算设备)。服务器920可以,例如,通过使用本发明来保存执行变换的线程。

客户机910和服务器920之间的一种可能的通信可以是适用于在两个或更多计算机进程之间传输的数据包的形式。系统900包括通信框架940,该通信框架1050可以被用来促进客户机910和服务器920之间的通信。类似地,客户机910可操作地连接到一个或多个客户机数据存储950,这些数据存储可用于存储客户机910本地的信息。类似地,服务器920可操作地连接到一个或多个服务器数据存储930,这些数据存储可用于存储服务器920本地的信息。

参考图10,用于实现所要求保护的主题的各方面的示例性环境1000可以包括计算机1012。计算机1012包括处理单元1014、系统存储器1016,以及系统总线1018。系统总线1018将系统组件——包括但不仅限于系统存储器1016耦合到处理单元1014。处理单元1014可以是各种处理器中的任一种。还可以使用双微处理器及其他多处理器体系结构作为处理单元1014。

系统总线1018可以是若干类型的总线结构中的任一种,包括使用各种可用的总线体系结构中的任一种的存储器总线或存储器控制器、外围总线或外部总线,以及局部总线,总线体系结构包括,但不仅限于,工业标准体系结构(ISA)、微通道体系结构(MCA)、扩展的ISA(EISA)、智能驱动器电子(IDE)、VESA局部总线(VLB)、外围组件互连(PCI)、卡总线、通用串行总线(USB)、高级图形端口(AGP)、个人计算机存储器卡国际联合会总线(PCMCIA)、火线(IEEE 1394),以及小型计算机系统接口(SCSI)。

系统存储器1016包括易失性存储器1020和非易失性存储器1022。基本输入/输出系统(BIOS)被存储在非易失性存储器1022中,包含例如在启动过程中帮助在计算机1012内的元件之间传输信息的基本例程。作为说明,而不是限制,非易失性存储器1022可包括只读存储器(ROM)、可编程序ROM(PROM)、电可编程序ROM(EPROM)、电可擦可编程序ROM(EEPROM)或闪存。易失性存储器1020包括充当外部高速缓冲存储器的随机存取存储器(RAM)。作为说明而不是限制,RAM可以有许多形式,如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据速率SDRAM(DDR SDRAM)、增强的SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、直接型存储器总线(Rambus)RAM(RDRAM),直接型存储器总线(Rambus)动态RAM(DRDRAM),以及存储器总线(Rambus)动态RAM(RDRAM)。

计算机1012还包括可移动的/不可移动、易失性/非易失性的计算机存储介质。图10示出了例如磁盘存储器1024。磁盘存储器1024包括但不限于,诸如磁盘驱动器、软盘驱动器、磁带驱动器、Jaz驱动器、Zip驱动器、LS-100驱动器、闪存卡或记忆棒之类的设备。另外,磁盘存储器1024可包括存储介质——分开地或与其他存储介质相结合——包括,但不限于,诸如紧致盘ROM设备之类的光盘驱动器(CD-ROM)、CD可记录驱动器(CD-R驱动器)、CD可重写驱动器(CD-RW驱动器)或数字多功能盘ROM驱动器(DVD-ROM)。为便于磁盘存储设备1024连接到系统总线1018,通常使用诸如接口1026之类的可移动或不可移动接口。

可以理解,图10描述了在合适的操作环境1000中在用户和所描述的基本计算机资源之间充当中介的软件。这样的软件包括操作系统1028。可以存储在磁盘存储器1028上的操作系统1024用于控制和分配计算机系统1012的资源。系统应用程序1030利用由操作系统1028通过存储在系统存储器1016中或者存储在盘存储1024上的程序模块1032和程序数据1034对资源的管理。可以理解,所要求保护的主题可以利用各种操作系统或操作系统的组合来实现。

用户通过输入设备1036向计算机1012输入命令或信息。输入设备1036包括,但不限于,诸如鼠标、跟踪球、指示笔、触摸板之类的指示设备、键盘、麦克风、游戏杆、游戏手柄、圆盘式卫星天线、扫描仪、TV调谐器卡、数码相机、数字视频摄像机、网络摄像头等等。这些及其他输入设备通过系统总线1018经由接口端口1038连接到处理单元1014。接口端口1038包括,例如,串行端口、并行端口、游戏端口,以及通用串行总线(USB)。输出设备1040与输入设备1036使用一些相同类型的端口。如此,例如,可以使用USB端口来向计算机1012提供输入,以及从计算机1012向输出设备1040输出信息。提供了输出适配器1042,以示出有诸如监视器、扬声器、以及打印机之类的一些输出设备1040,还有需要专用适配器的其他输出设备1040。输出适配器1042包括,作为说明而不是限制,在输出设备1040和系统总线1018之间提供连接手段的视频卡和声卡。应该注意,其他设备和/或设备的系统提供诸如远程计算机1044之类的输入和输出两种能力。

计算机1012可以使用到诸如远程计算机1044之类的一个或多个远程计算机的逻辑连接来在联网环境中操作。远程计算机1044可以是个人计算机、服务器、路由器、网络PC、工作站、基于微处理器的电器、对等设备或其他公共网络节点等等,并且通常包括就计算机1012所描述的许多或全部元件。为简洁起见,与远程计算机1046一起,只示出了存储器设备1044。远程计算机1044通过网络接口1048在逻辑上连接到计算机1012,然后,经由通信连接1050在物理上连接。网络接口1048包含诸如局域网(LAN)和广域网(WAN)之类的有线或无线通信网络。LAN技术包括光纤分布式数据接口(FDDI)、铜线分布式数据接口(CDDI)、以太网、令牌环等等。WAN技术包括,但不限于,点对点链路、电路交换网,如综合业务数字网(ISDN)及其变体,分组交换网络,以及数字订户线(DSL)。

通信连接1050是指用来将网络接口1048连接到总线1018的硬件/软件。尽管为清楚起见通信连接1050被示为在计算机1012内部,但是,它也可以位于计算机1012外部。连接到网络接口1048所需的硬件/软件包括,只作示例,内部和外部技术,诸如,调制解调器,包括常规电话级调制解调器、电缆调制解调器和DSL调制解调器、ISDN适配器,以及以太网卡。

上文所描述的包括本发明的示例。当然,不可能出于描述所要求保护的主题的目的而描述组件或方法的每个可构想的组合,但是,本领域普通技术人员可以认识到,本发明的许多进一步的组合和置换都是可能的。因此,所要求保护的主题旨在包含在所附权利要求书的精神和范围内的所有这样的更改、修改和变化。

特别地,对于由上述组件、设备、电路、系统等执行的各种功能,除非另外指明,否则用于描述这些组件的术语(包括对“装置”的引用)旨在对应于执行所描述的执行此处在所要求保护的主题的示例性方面中所示的功能的组件的指定功能(例如,功能上等效)的任何组件,即使这些组件在结构上不等效于所公开的结构。关于这一点,还应认识到,本发明还包括了具有用于执行所要求保护的主题的各种方法的动作和/或事件的计算机可执行指令的系统以及计算机可读介质。

有多种实现本发明的方式,例如,使应用程序和服务能使用本发明的广告技术的适当的API、工具包、驱动程序代码、操作系统、控件、独立或可下载的软件对象等等。所要求保护的主题构想从API(或其他软件对象)的观点来看,以及从根据本发明的根据广告技术操作的软件或硬件对象来看的用途。如此,此处所描述的本发明的各种实现可以具有完全以硬件,部分以硬件且部分以软件,以及以软件来实现的方面。

如前所述的系统是利用多个组件之间的交互来描述的。可以了解,这样的系统和组件可以包括这些组件或其中指定的子组件,某些指定的组件或子组件,和/或附加的组件,并根据前述的内容的各种置换和组合。子组件也可以作为可通信地耦合到其他组件的组件来实现,而不是包括在父组件内(层次性)。另外,应该注意,一个或多个组件也可以组合到提供聚合功能的单个组件中,或者也可以分成若干个单独的子组件,并且可以提供诸如管理层之类的任何一个或更多中间层,以可通信地耦合到这样的子组件,从而提供集成的功能。此处所描述的任何组件也可以与一个或多个此处没有专门描述的但本领域技术人员广泛地知道的其他组件进行交互。

另外,尽管可相对于若干实现中的仅一个实现来公开本发明的一个特定特征,但是这一特征可以如对任何给定或特定应用所需且有利地与其它实现的一个或多个其它特征相组合。而且,就术语“包括”、“含有”、“具有”、“包含”、其变型以及其他类似单词在详细描述或权利要求书中的使用而言,这样的术语旨在以类似于术语“包括”作为开放的过渡词的方式为包含性的而不排除任何附加或其他元素。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号