首页> 中国专利> 用于多主同步环境的基于知识的框架中的质量上的对象变更的表示

用于多主同步环境的基于知识的框架中的质量上的对象变更的表示

摘要

本发明涉及多主同步环境中的网络节点之间的同步,其将基于知识的同步框架扩展至包括对象质量的概念的。在一个实施例中,在对象的给定版本的知识向量上放置表示该对象的质量信息的附加维度,在同步过程期间考虑该质量信息以允许节点决定应向其传递什么类型的质量的对象作为同步过程的一部分。其他实施例包括埋葬对象以避免将来同步由多主同步环境中的其他节点维护的相同对象。有利的是,根据同步框架,端点能够以允许出于知识交换的目的来定义和考虑同步数据的一个或多个对象的质量的方式同步数据。

著录项

  • 公开/公告号CN101933294A

    专利类型发明专利

  • 公开/公告日2010-12-29

    原文格式PDF

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

    申请/专利号CN200980103998.5

  • 申请日2009-01-06

  • 分类号H04L12/28(20060101);H04L7/00(20060101);

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

  • 代理人胡利鸣;钱静芳

  • 地址 美国华盛顿州

  • 入库时间 2023-12-18 01:39:26

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-05-20

    专利权的转移 IPC(主分类):H04L12/28 变更前: 变更后: 登记生效日:20150428 申请日:20090106

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

  • 2013-08-21

    授权

    授权

  • 2011-02-16

    实质审查的生效 IPC(主分类):H04L12/28 申请日:20090106

    实质审查的生效

  • 2010-12-29

    公开

    公开

说明书

技术领域

本发明涉及用于描述对正在用于多主同步环境中的基于知识的同步框架中同步的对象的变更的知识的增强的元数据,其中该增强的元数据包含关于变更的质量信息。

背景

移动计算和通信设备的普及引起对只要用户想要就传递和接收信息的能力的相应的期望。简而言之,无论何地、无论何时以及无论设备各自的能力如何,用户都想要从各种设备对信息和应用程序进行无处不在的访问,另外,用户想要能够在进行中访问和更新这些信息,并且他们想要确保数据尽可能地正确和最新。

存在已尝试使设备和对象彼此共享数据副本的各种分布式数据系统。例如,音乐共享系统可在PC、蜂窝电话、游戏控制台和MP3播放器之间同步音乐。电子邮件数据可在工作服务器、客户PC和便携式电子邮件设备之间进行同步。然而,当今就这些设备彼此同步一组公共信息而言,该同步通常根据设备之间的静态设置来进行。然而,当这些设备变得频繁地或间歇性地断开时,即,当它们是松耦合的以使其可能断开彼此之间的通信,例如,当蜂窝电话在隧道中时,或者当要同步的设备数量是动态的时候,期望具有供设备在其彼此重新连接或在其加入网络时确定每一个其他设备需要什么变更的拓扑结构无关方式。

如图1所示,当今存在其中主节点100以专用方式来与客户机节点110同步的各种示例,诸如在电子邮件服务器与电子邮件客户机同步时等。由于两个设备之间的专用同步,在这两个设备之间同步所需的信息102可由主节点100来跟踪。这一信息102也可任选地由客户机节点110来跟踪,然而,当主节点100和客户机节点110之间的连接有时变为断开时以及当同步设备的数量突然增加或减少时,跨所有这些设备跟踪每一个设备需要的公共信息的必要信息变为难题。

当前解决方案通常将其同步语义仅基于特定节点(例如,电子邮件服务器)而非任意节点的时钟或逻辑水印。这些系统在单个连接节点或主节点的情况下能够运行良好。然而,在节点连接的拓扑结构或模式能够不可预见地改变时,这些系统就会碰到问题。

其他系统为特定种类的数据对象构建专有同步模型,以便跨这些设备跟踪数据格式专用的大量原语元数据以处理该问题。例如,为了同步特定文字处理文档格式的对象,由于文档及其基本原语随时间变化,在表示文档及其基本原语,并且在向希望根据一组公共文字处理文档来同步的其他设备高效地表示该信息上造成了大量开销和复杂性。除了这些系统构建起来是昂贵且复杂的,并且由于其所基于的自定义数据格式而无法扩展之外,这些系统还固有地由于必须生成、分析和跟踪的大量元数据而不可伸缩。

另外,这些解决方案只适用于一个特定域,例如文字处理文档。在考虑所有种类的同步对象(例如,图片、视频、电子邮件、文档、数据库存储等)时,可以看到基于每一种对象类型来实现自定义同步解决方案以便跨多主环境中的所有设备跟踪这些对象的演变在当今是不可行的。因此,这些解决方案不可避免地将同步语义与数据语义链接。

由此,当拓扑结构中的计算机改变它们彼此连接的方式时或者在计算机数量增长时,存在对节点无关同步知识的需求。例如,在媒体播放器的情况下,可能期望在多个计算机和多个网站之间同步。在大多数情况下,大多数应用程序只能在几个公知端点(家庭PC和媒体播放器)之间同步数据。然而,随着设备社区随时间演变,对于媒体播放器应用程序的用户,对这些设备所利用的音乐库的数据同步灵活性的需求增加,由此造成对更稳健的系统的需求。

该需求在考虑许多计算对象在可以发生的各种类型的变更方面不是整体式的时候甚至更为复杂。在当今的复杂计算环境中,对象变更涵盖超出仅仅“向对象添加数据”或“从对象中删减数据”的各种各样的变更。对对象的某些数据的变更还可被认为是删减将要变更的数据和添加反映变更的数据。由此,按照整体式观点,按照对象演变,存在对象可能发生什么的有限视图:由对象表示的数据可用某些新数据来扩充,可以变更对象所表示的数据中的某一些而其余数据保持不变和/或可以删除对象所表示的数据中的某一些。

就此,大量特性也可整个为对象变更。例如,对象的名称、何时最后一次查看对象、对象的字段可允许的长度、对象的模式(例如,联系人模式)、对象的保真度(例如,音频)、应用于对象的压缩方案、对象的分辨率(例如,图像或视频)、对象的文件格式、或者可以在对象上定义的任何其他任意函数都是可以为对象变更的而无法由仅仅通过向对象添加数据或从对象中删减数据的表示充分反映的特性的示例。

就此,不同的设备具有关于表示相同对象的不同要求或限制。例如,表示PC上的对象一般牵涉与表示具有有限存储器的移动电话上的对象不同的要求。作为示例,为给定图像对象在PC上表示10Mb原始图像是更合适的,而具有较小显示器和存储器的移动电话将相同的给定图像对象表示为300Kb图像是更合适的。

某些常规系统将经历从第一质量到第二质量的质量变更的对象视作分开的的对象,即,通过创建反映该对象到第二质量所经历的变更的全新的第二对象并且维护保持第一质量的第一对象。结果,两个对象都变得进一步同步。可以看到如果不同对象的数量、设备数量和/或不同质量的版本的数量变得非平凡,则这一系统变得昂贵且高度浪费。

由此,因为对象能够以复杂方式变更,尤其在它们跨不同能力的不同设备同步时,所以如上所述用同步元数据来高效地表示这些变更并且同时处理松耦合、多主同步环境中的同步的方式当前是合乎需要的。简而言之,如果变得可能,则在设备的复杂的多主网络拓扑结构中的知识交换中的对象经历质量变更时,表示这些对象的质量的损失和增益的能力对于多种同步情形将会是合乎需要的。

当今同步模型的上述缺点仅旨在提供常规系统的一些问题的概览,并且不旨在是穷尽性的。常规系统的其他问题以及此处所描述的各非限制性实施例的对应的益处可以在审阅以下描述后变得更显而易见。

概述

此处提供了简化概述以帮助能够对以下更详细的描述和附图中的示例性、非限制性实施例的各方面有基本或大体的理解。然而,本概述并不旨在作为详尽的或穷尽的概观。相反,本概述的唯一目的是以简化的形式来提出与一些示例性非限制性实施例相关的一些概念,作为以下各实施例的更为详细的描述的序言。

此处描述了多主同步环境中的多个网络节点之间提供同步的各实施例,这些实施例将基于知识的同步框架扩展成包括对象质量的概念。有利的是,根据同步框架,端点能够以允许出于知识交换的目的来定义同步数据的一个或多个对象的质量的方式来同步数据。

在一个实施例中,在对象的给定版本的知识向量上放置表示该对象版本的增量质量信息的附加维度,在同步过程期间考虑该质量信息以允许节点决定应向其传递什么类型的质量的对象来作为同步过程的一部分。例如,可以埋葬(tomstone)具有对于一节点是不合需要的质量的对象以避免在将来对由多主同步环境中的其他节点来维护的这些对象进行同步。在其他实施例中,在对对象的变更是非破坏性的(如节点所决定的)的情况下,增强该对象的当前版本以反映该当前版本的另一版本,即,表示已变更的对象的质量水平的版本。如果该变更被认为是破坏性的,则由同步元数据来反映该新版本。

这些和其他实施例在下面将更详细地描述。

附图简述

各非限制性实施例参考附图来进一步描述,附图中:

图1示出了在系统中的两个明确定义的端点之间提供同步的专用同步系统;

图2示出了结合包括关于所同步的对象的质量信息的同步元数据的多主同步基础结构的高级框图;

图3是示出用于在存在连接网络和从网络断开的节点的情况下基于质量同步元数据来进行同步的示例性、非限制性过程的流程图;

图4是示出用于基于质量同步元数据来进行同步的示例性、非限制性过程的另一流程图;

图5示出了松连接节点网络中的四个节点之间的示例性、非限制性知识交换;

图6示出了当某些设备变为彼此断开时的松连接节点网络中的四个节点之间的示例性、非限制性知识交换;

图7、8和9示出了在网络中的节点之间共享的多个对象的上下文中的示例性知识交换;

图10是示出用于在网络中的节点之间共享的多个对象的上下文中的知识交换的过程的示例性、非限制性流程图;

图11是示出用于基于知识来请求和传达变更的框架的通用体系结构;

图12是示出用于将质量信息结合到同步元数据中的第一实施例的概略流程图;

图13示出了其中以示例性方式展示埋葬实施例的第一非限制性情形;

图14是示出用于将质量信息结合到同步元数据中的替换实施例的概略流程图;

图15是其中以示例性方式展示版本的版本化实施例的第二非限制性情形;

图16是用于经由可将质量信息作为同步元数据的一部分来传递的一组公共API来执行与另一节点的知识交换的设备的示例性、非限制性实现的框图;

图17是表示其中可实现此处所描述的各实施例的示例性、非限制性联网环境的框图;以及

图18是表示其中可实现此处所描述的各实施例的一个或多个方面的示例性、非限制性计算系统或操作环境的框图。

详细描述

概览

如背景中所讨论的,常规系统针对对象所发生的每一个变更为该对象创建不同的版本,然而,这些系统不捕捉关于对象变更的质量信息,诸如无损变换、代码转换、转录或保真度变更。例如,捕捉关于对象质量或对象的特定版本中的变更的信息作为同步语言本身的一部分将会是合乎需要的,以使得设备可以只与它们需要的对象的质量版本同步而不与具有被该对象拒绝的质量版本的对象同步。

因此,在各非限制性实施例中,不同保真度、变换、编码的对象,即不同的质量版本在多主同步环境中以捕捉关于对象质量的智能的方式同步,以使得多主同步环境中的不同节点可以比较知识并确定要同步哪些对象以及不期望同步哪些对象。

作为以下内容的向导,首先呈现此处所描述的各实施例中的某一些的概览。然后,给出对于用于高效地表示多主数据同步系统中的知识的通用机制的某些补充上下文。接着,更详细地讨论针对补充上下文以及对用于表示关于对象变更的质量信息的多主数据同步系统的替换实施例的理解的示例性、非限制性实施例和特征,之后是其中可实现这些实施例的代表性网络和计算环境。

就此,各实施例涉及用于多主同步环境的节点的数据同步框架,该框架定义用于基于此处被称为知识的概念来进行同步的模型。简而言之,知识是在逻辑上与正在同步的对象分开维护的元数据,其定义副本的基于状态的同步的高效概括,以使得设备能够首先交换其知识并且然后高效地枚举应彼此传递对对象的什么变更。有利的是,每一个节点都可定义其自己的关于期望同步什么质量的对象以及不期望同步什么质量的对象的规则。例如,设备可指定用于确定需要什么版本的测试或者按偏好次序对不同的质量进行排序的栈。

就此,在许多情况下,以以下方式同步数据是有用的:高效地表示多主同步拓扑结构中的每一个设备关于正在进行同步的对象的质量水平(例如,低清晰度对比高清晰度)知道些什么,或者更一般地,每一个设备关于应用于正由该设备维护的对象的任一个或多个变换知道些什么。就此,设备可以高效地传递这些信息作为知识交换的一部分以使得各个端点都可决定是要与较低质量的对象同步(即对象的第一变换)还是找出具有较高质量的对象的设备(即对象的更合适的第二变换)。

在一个实施例中,只要端点接收到不可接受的变换、编码、保真度等的版本,该端点就可埋葬该不可接受的对象版本,实际上从同步进程中删除项目,同时端点维护关于不可接受版本的元数据以使得将来的同步避免再次接受不可接受的版本。然而,随着时间的流逝,这些埋葬元数据将不可接受地增长是可能。简而言之,设备并非真的需要维护它曾经与其交互的它不喜欢的所有事物的记录,尤其是对于可能将拒绝很多对象的具有有限功能的设备。

在采用这种类型的知识的高效表示的其他实施例中,实现质量信息在节点之间的共享通过版本化各数据版本来实现。这些实施例还可通过对于两层版本化各版本的各版本,对于三层版本化各版本的各版本的各版本等来扩展至应用于对象的变换或质量水平的任何数量的水平或层。各个端点被允许决定对对象的特定变更是表示无需版本化各版本的典型变更(对计时单元计数的普通增量或应用新版本),还是改为表示通过版本化当前计时单元计数所表示的版本来表示的保真度或变换变更。

经由版本来高效地捕捉和表示关于对象已经变更了什么的信息的能力加上捕捉并表示关于如何变换这些对象的信息的能力,实际上向端点告诉对象的特定版本对于该端点将多有用。通过在知识表示中包括版本信息的版本化来增强知识因此是实现向对象传递关于变换的质量信息的目的的另一种方式。

如上所述,还可实现埋葬实施例,以使得当一对象接收到它不想要的项目(例如,分辨率对于该设备的存储器而言太高)时,该设备可埋葬该项目以使得它不会再次接受该项目,但可传递它知道该项目但已删除该项目的知识。由此,各实施例将对象的变换或代码转换的质量的概念结合到同步语言本身中,以使得关于对象的不同质量的信息被定义为同步知识的一部分。

图2是概括地示出在多主同步环境中同步的对象的概念的框图,其中这些对象根据为这些对象定义的同步元数据而具有不同的质量。如图所示,设备200和设备210被示为在经由网络220相互连接后分别经由同步组件202、212来进行同步。每一个同步组件202、212将对象分别存储在存储204、214中以及分别维护这些对象的同步知识206、216,如将在下文中更详细地描述的。就此,用于独立于数据类型和网络拓扑结构来同步的同步知识206、216可被扩充为包括描述对象质量的元数据。

在元数据描述对象质量的情况下,这意味着可以捕捉关于对象的不同变换的质量信息以便同步对象。例如,如图所示,可以在设备200和设备210上表示相同的对象X,分别被表示为对象230和230’。对象230具有质量Q1而对象230’具有与质量Q1不同的质量Q2。根据结合各实施例描述的基于知识的多主同步协议,同步知识206、216由此包括除了对象变更的版本化之外的、描述对象的相同版本的不同质量的信息。

例如,对象X 230可以是WMA格式的歌曲,而对象X 230’可以是同一首歌,但被编码为AAC格式。此处的各实施例启用指示这是相同的版本,但存在与该版本相关联的不同质量的知识表示,而不是将两个对象都表示为这首歌的不同版本。由此,节点可基于包含在同步元数据中的质量信息来决定是否应同步给定质量版本。

虽然歌曲被用作示例,但对象的类型是不相干的。可以在声明对象的版本可被认为具有不同的质量特性是有用的任何时刻应用相同的技术。例如,PC上的Outlook中的联系人项目可包括比移动电话上的联系人项目多得多的字段。前者可被节点认为是比后者质量高的联系人版本。在这种情况下,本质上,这是该联系人项目所表示的数据量的保真度或分辨率的变更。由此,实际上任何项目可被分成牵涉相同对象的变换的变更,例如,相同程序的不同编码或不同编程语言代码转换等。因此,虽然此处的某些实施例为了概念简明起见在音频或视频的上下文中描述,但任何类型的对象都可被认为经历质量变换,并且每一个端点都可出于其目的来定义它在同步方面意味着什么。

图3是描述出于在多主同步环境中的各个节点之间进行同步的目的而使用关于对象的“质量”信息的概略流程图。在300,在某一时刻,定义关于具有不同质量的对象版本的同步元数据。在310,一节点经由根据多主同步环境中的任何网络拓扑结构来安排的一个或多个网络来连接到另一节点。在320,该节点可获悉同步元数据,即通过从另一节点接收,或向另一节点请求并从该另一节点接收,或者该节点可向另一节点发送同步元数据,其中该元数据描述关于要同步的一组对象的版本化信息并且包括关于应用于对象的变换的质量特性的质量信息。

在330,将两个节点的包括质量信息的同步元数据进行比较以确定关于这些对象的质量信息的集体知识。在340,基于关于对象集的质量信息的集体知识,节点可选择要同步哪些对象。在350,在比较后,节点可任选地对对象集中的未满足为该节点定义的质量准则的对象采取动作(例如删除),但还维护描述所采取的动作的同步元数据以便将来与其他节点高效地交换知识。

例如,节点可选择仅保存对象的最高质量版本。例如,对于图像而言,如果对象具有5Mb版本,则可以删除作为较低的分辨率的300Kb版本,假设在该节点上对两个版本均支持。对于另一节点,300Kb可能是该节点所支持的最高分辨率,应且因此该节点可定义拒绝比300Kb高的对象的质量版本。类似地,相同数据的不同编码可以在不同节点处按照兼容性来不同地应用,因此有利的是,在同步元数据中包括质量元数据可改进每一个节点可具有的关于可获取的不同种类的对象的视觉,并且与此同时,启用供节点表达什么质量版本是不合需要的机制。

在360,可任选地,可以在同步元数据中埋葬已经根据步骤350来删除的某些对象以指示该对象已经在本地设备上删除,该节点已在过去获悉具有该质量的项目,但该节点不希望在将来再次获悉该项目。在一个实施例中,节点实际上通过维护关于具有已拒绝的质量的项目的信息,但也信令将来不想要该项目来谎报具有该项目。例如,可以为这些对象置位指示先前获悉该对象但在将来的知识交换期间出于同步知识的比较的目的拒绝该对象的布尔标志。

图4是示出用于在多主环境中进行同步的知识交换框架中的同步元数据中的质量信息的代表性实现的流程图。如图所示,设备300和设备410连接并希望同步。为了示例简明起见,图4示出一个对象402、412正分别在设备400和410之间同步,但可针对任何对象集扩展这些技术。如上所述,根据此处所描述的各实施例,分别由设备400和410为对象402和412维护同步知识404和414。就此,同步知识404表示质量Q1适用于对象402,而同步知识414表示质量Q2适用于对象412。

如450所示,在一节点经由根据多主同步环境中的任何网络拓扑结构来安排的一个或多个网络连接到另一节点后,设备410可从设备410接收同步知识414。在452,设备400根据以下更详细地描述的知识交换原理来将知识404与知识414进行比较。

就此,在454,设备400可决定同步知识414中所表示的版本Q2是否是合乎需要的。如果是,则在456用知识414的质量信息Q2来更新本地知识404。接着,在458,设备400请求设备400感兴趣的对象的更新,并且已更新的知识404被发送到设备410。设备410进而在460将已更新的知识404与知识414进行比较并在462决定具有质量Q1的设备400的版本是否是合乎需要的。在464,更新知识414以包括已更新的知识414以便完成知识交换。在466,如果已更新的知识404指示Q2对于设备400是合乎需要的,则设备400在468接收这些更新,设备400在470存储这些更新。类似地,设备410从设备400接收它想要的变更。以此方式,同步知识交换使得设备能够就它在同步期间接收到的版本的质量进行选择。

高效知识表示和交换

作为描述根据各非限制性实施例的、经由被表示为多主同步环境中的知识的同步元数据的对象的质量的表示的前序部分,在本节中,呈现用于高效地表示数据同步框架中的知识的通用机制的概览。

该通用同步机制包括(1)通过只向第二节点要求发送第一节点所需的最少数据的连接设备之间的高效知识交换;(2)高效地且正确地识别第一节点和第二节点之间的数据状态不符(即,冲突)的能力;(3)同步任意数量的节点的能力;以及(4)经由任何其他节点来同步任何节点的能力,即,在对等、多主同步环境中工作的能力。

有了该通用机制,可以对将要在两个设备之间共享的某些信息作出任何数量的变更。在这两个设备变成连接的任何时候,它们可通过彼此交换它们的知识来变得知道重构彼此知道和不知道的内容所需的至少最少量的信息以便于设备之间的变更。注意,在涉及多于两个设备的情况下,知识可能是将要共享的更大信息库中的不完整的知识,但随着在多个设备之间共享的知识越来越多,集体知识继续由设备在其随着时间连接到其他设备时积累。

有利的是,在各非限制性实施例中,执行对全都对维护对象集的最新版本感兴趣的一组设备或设备子集执行同步,但也允许这些设备对这些设备可以在计算生态系统中与其同步的不同对象作出质量结论。只要一设备经由一个或多个网络来与该组设备中的其他设备重新连接,该设备就可重新获得与用其集体知识表示的其他设备一样新的集体知识。以此方式,即使松连接设备也可与一组设备连接或断开连接,并且然后通过开始与拥有一组最新集体知识的任一组设备联系来重新获悉遗漏的所有知识。

图5示出知识交换可被推广或缩放到任何数量的设备。如图所示,作为设备的非限制性数量,四个设备500、510、520和530被示为具有知识表示502、512、522和532,这些知识表示分别指示每一个设备所知道和不知道的关于将要跨设备共享的一组公共信息的内容。

有利的是,如图6所示,即使在网络中的连接变成断开的情况下,所有这些设备500、510、520和530仍然能够获得一组完整的知识,只要对于其他设备直接或间接存在至少一个连接。例如,设备530的知识532仍然经由与设备520的知识交换,然后经由设备520和510之间的知识交换,并且最后经由设备510和500之间的知识交换到达设备500。

在更多的设备共享关于将要共享的公共信息的知识时,所有设备都因为根据各非限制性实施例的知识交换对该集体知识来自哪一个设备不可知的而受益。这些设备各自独立操作以试图从其连接到的其他设备中的任一个获得尽可能多的关于将要在这些设备之间共享的信息的知识。

在示例性、非限制性细节中,更详细地描述供两个节点参与对话并在对话结束时具有关于所关心的数据集的等价知识的方法。该方法可通过为进入对等网络/多主环境的每一个新设备创建知识交换能力来缩放超过两个节点。

因此,如图7所示,具有任何数量的节点的对等网络中的节点700想要与节点710交换数据。节点A通过向节点710请求变更来开始并且为此节点700将其知识(表示为KN700)发送到节点710,如图所示。

设备或节点的知识通过用字母标识符来标记将要在设备之间共享的每一个对象,并且然后尾号表示该对象的最新版本来表示。例如,如图7所示的KN700包括各自将要在节点700和710之间同步的对象A、B、C和D,并且每一个对象后的数字表示在该设备上已知的该对象的最新版本。例如,在时刻t=1时,知识KN700包括A的第5个版本、B的第4个版本、C的第7个版本和D的第1个版本,在图7中表示为A4、B3、C6、D0。相反,在时刻t=1时,知识KN710可包括A的第4个版本、B的第7个版本、C的第7个版本和D的第3个版本,在图7中表示为A3、B6、C6、D2。

如图8所示,在时刻T=2,节点710将从节点700接收到的知识KN700与其自己的知识KN710进行比较并且确定需要向节点700发送什么。在该示例中,结果,节点710将向节点700发送与B和D相关的变更,因为节点700的知识B3、D0在节点710的知识B6和D2之后。在节点710向节点700发送B6和B3之间的变更以及D2和D0之间的变更时,节点710还发送它所具有的知识的最新版本KN710(反映何时对节点710作出最后变更)。

如图9所示,表示时刻t=3,将知识KN710发送到节点700允许节点700在它稍后发现节点700和节点710两者都在一对象处于相同版本时对该对象作出变更的情况下检测冲突(例如,存储冲突以便稍后解决)。这允许在节点遇到变更并交换变更时进行自主更新、高效枚举以及正确的冲突检测。例如,在该示例中,如果C6在知识KN700和KN710中不是相同对象,例如,如果两者都是独立地从C5演变为C6,则可留出哪一个C6是正确的C6以便例如根据适合同步情形和所涉及的设备的预设策略解决方案来解决冲突。

使用上述通用机制的分布式多主同步环境中的任何两个节点之间的示例性知识交换过程在图10的流程图中示出。在1000,节点A请求与节点B同步,由此向节点B要求节点A不知道的变更。为了装备(equip)节点B,在1010,节点A将其知识发送到节点B。在1020,节点B将从节点A接收到的知识与其自己的知识进行比较以确定应发送给节点A的节点B所知道的变更。在1030,节点B将这些变更发送到节点A,另外,节点B将其知识发送到节点A以使得节点A能够在1040执行类似的知识比较。根据此处所描述的各实施例。不同步具有根据元数据的对于设备是不合需要(或者因为设备的限制或者因为这些质量特性不助设备实现目标)的质量特性的对象,。

在1050,在独立版本演变在节点A和节点B上发生的情况下,节点A检测节点的中所反映的最新版本和节点A的知识中所反映的最新版本之间的任何潜在冲突。可任选地,可应用任何冲突解决策略以确定在冲突的情况下哪一个节点胜过另一个节点。在1060,将节点B所没有的来自节点A的最新变更发送到节点B。冲突解决策略将另外指示是否有任何改变从节点B发送到节点A或从节点A发送给节点B,以便维护节点之间的公共信息。如果独立版本化是可以的或者是所期望的,则没有冲突解决是另一选择。根据此处所描述的各实施例,不同步具有根据元数据的对于设备是不合需要(或者因为设备的限制或者因为这些质量特性不帮助设备实现目标)的质量特性的对象,。

图11示出了用于在经过滤的知识是可能的时候(即,在要将一节点的知识的子集与其他节点中的一个或多个同步的情况下)交换知识的一般化机制。如图所示,每一副本A和B都具有同步提供者PA和提供者PB。就此,每一副本A和B分别维护知识KA和KB,并且可能还维护经过滤的知识FA和FB。类似于不构造子集(subsetting)的情况,任一副本都能够请求另一副本的变更1100并响应于该另一副本传送变更来接收变更1110。如图所示,副本A可在1100处请求对给定范围的对象集的变更,发送其包括关于该集合中的对象的质量的信息的知识。类似地,在1110,基于对知识KA和KB的分析,在1110,将副本B知道但副本A不知道的对在其质量内的对象的变更发送到副本A。如果经过滤的知识FA和经过滤的知识FB具有相同范围,则如同一般化的知识交换:

KA=KA∪KB

如果如果经过滤的知识FA和经过滤的知识FB不具有相同范围,则该知识应变于现有知识加上投影到其各自的经过滤的知识FA和FB的交集上的另一副本的知识,如下:

KA=KA∪(KB→(FA∩FB))

用于这些类型的经过滤的知识的示例性、非限制性应用以及其他应用用于过滤列、或者同步框架的任何变更单元。这特别适用,因为列变更不太可能遭受系统中的移动操作。对于该情形存在两个值得注意的考虑事项:经过滤的知识表示和知识合并。

对于经过滤的知识表示,对于不移动经过滤的知识的情况的经过滤的知识表示如下。每一经过滤的知识都被表示为该经过滤的知识中所包含的变更单元的列表。该表示提供方便的表示手段以及在必要时组合经过滤的知识的能力。组合经过滤的知识的能力对于合并知识是有用的。

对于知识合并,为了将知识保持在其最简洁的形式,必须维护合并知识的能力。就此,能够合并经过滤的知识的片段以使得能够以其最紧凑的形式维护知识。

考虑组合经过滤的知识的能力,因为经过滤的知识可被表示为变更单元集,所以可通过隔离存在于两个经过滤的知识中的变更单元集来协调经过滤的知识中的重叠。

而且,因为经过滤的知识的向量应用于该经过滤的知识下的各个变更单元中的每一个,所以可通过找出两个经过滤的知识中的每一个变更单元的变更单元组合向量来执行经过滤的知识的组合。然后一旦知道所有向量,就将具有公共向量的变更单元重新组合成新的经过滤的知识。

过滤器是一种控制在设备之间同步什么信息的方式,但过滤器一般不处理项目质量的表征作为如以下更详细地描述的实现中所提供的同步元数据的一部分。

因此,知识的概念可用于高效地表示用于多主同步网络中的多个节点之间的知识交换的数据,这些节点中的任一节点都可独立地演化公共信息或公共信息的子集以便跨节点同步。可以针对多主同步环境实现上述基于知识的框架并且如以下更详细地描述的,该框架可扩展成结合经由高效同步元数据的对象的版本的质量的概念。

对象质量的基于知识的表示

在各实施例中,提供设备在多主同步拓扑结构中对数据的高效同步,其中设备知道正在同步的对象的质量水平(例如,第一音频格式对第二音频格式、或者第一分辨率对第二分辨率、或者遵循第一方案或遵循第二方案),或者更一般而言,其中每一个设备都知道应用于对象的一个版本的一个或多个变换。设备可以高效地传递这些信息作为知识交换的一部分,以使得各个端点可决定是与具有第一质量的对象版本同步(即该对象版本的第一变换)还是找出具有不同质量的对象版本的设备(即该对象版本的更合适的第二变换)。

经由版本来高效地捕捉和表示关于对象已经变更了什么的信息的能力加上捕捉并表示关于如何以质量方式变换这些对象的信息的能力,实际上向端点告诉对象的特定版本对于该端点将多有用——比仅仅对象“已变更”或“不同”的事实有更多的信息可用。

例如,iPod无法消费所有种类的音频文件,并且最适合播放其自己专有格式的音频文件。相反,大多数其他MP3播放器无法播放iPod专有格式的音频文件。因此,作为同步语言本身的一部分,让设备决定是否期望同步诸如不同的音频文件编码等相同对象的不同质量版本作为知识交换的一部分将会是合乎需要的。

在第一组实施例中,实现埋葬,由此当一对象接收到它不想要的项目时(例如,分辨率对于该设备的存储器而言太高、或者对象的版本遵循该设备不支持的不同模式、或者该设备无法对编码进行解码等),该设备可埋葬该项目以使其同步元数据反映该设备不想再次接收到该项目。只要端点接收到不可接受的变换、编码、保真度等的版本,该端点就可埋葬该不可接受对象版本,实际上从与该设备的同步进程中删除该项目。

该项目也可因为不想要而由该设备删除,或者可以对该对象采取其他适当的动作。另一适当的动作的示例可以是如果对象版本具有对于该设备不适当的编码,则该设备不具有对于该对象版本的解码器,但该设备可能仍然具有将不适当的编码代码转换成对于该设备是可理解的编码的代码转换器。在这种情况下,该设备可将该对象变换成另一编码并且在同步元数据中表示该变换或新质量水平,而不是删除该对象。

就此,该端点继续维护关于不可接受版本的元数据以使得将来的同步避免再次接受该不可接受版本。然而,随着时间的流逝,这些埋葬元数据将不可接受地增长是可能。简而言之,维护设备曾经与其交互的它不喜欢的所有事物的记录是不高效的,尤其是对于拒绝很多对象的具有有限功能的设备,或者对于将很少遇到的质量的对象。

然而,对于特定计算同步生态系统,这组实施例可以很好地起作用,例如,在其中设备一般是兼容的,具有相似的应用程序和相似的存储器和处理能力的同步环境中,不太可能产生拒绝,因为每一个设备很有可能将想要知道其他设备所知道的每一事物。随着设备在硬件和/或软件特征方面变得越来越不同,设备将不想知道其他设备所知道的每一事物变得更有可能。该情形类似于说不同语言的人。很多交流障碍将在彼此说不同语言的人之间发生直到一个人开始说另一个人可以理解的语言。

就此,对象版本的质量的概念可被扩展至作为对象本身的源的设备。例如,随着时间的流逝,设备可获悉来自特定节点的通信中的大部分或全部具有低或不兼容质量并因此拒绝很多通信。在这种情况下,该设备可随时间选择不与具有低质量的另一设备同步,并且等待具有关于该设备的更多相关知识的更高质量设备。例如,MP3播放器可以在获悉iPod只具有iPod专有格式的歌曲后选择不与该iPod同步,从而使该设备在将来无需执行与该iPod的知识交换和比较。

如上所述,一种表示关于对象版本的质量信息的方式是在设备变得知道并拒绝不适于这些设备的对象版本时埋葬这些对象。在发生大量拒绝的情况下,在每一个设备的基础上存储的关于每一个设备在将来不想接收什么的信息的量可随着对象数量显著地增长而成为问题。

埋葬实施例由图12的流程图来概括地示出。在1200,各节点可根据不同的多主同步环境中的任何拓扑框架来相互连接。在1210,两个或更多节点经由知识交换来开始同步。在1220,对于从其他节点接收到的每一个对象版本,每一个节点确定该对象版本所表示的质量对于该节点是否是合乎需要的。在1230更新同步元数据以包括所遇到的版本的知识,无论是否是合乎需要的。在1240,如果该版本是合乎需要的,则该版本继续同步,即,关于该对象版本的同步在将来的知识交换中继续不变。在1250,如果该节点确定该对象不是合乎需要的,则虽然维护该版本的知识(为了防止该对象在将来的知识交换中被同步到该节点),但在1260,可以删除不合需要的对象版本,或者可对该对象版本采取诸如转换等其他动作。

埋葬实施例的操作在图13中概括地示出。如图所示,最初节点A 1300和节点C 1320在1302处同步并且同步两个节点都支持的高清晰度对象O1。然而,在1304,在节点A 1300和节点B 1310同步时,节点B 1310在1314处确定其无法存储高清晰对象版本,并因此删除该对象或者将该对象变换成较低清晰度版本。在该示例中,为了简明起见,该对象由节点B 1310删除。在1312,节点B扩充其同步知识以反映节点B 1310不希望再次与该对象版本同步。

有利的是,然后在节点C 1320在1322处与节点B 1310同步时,将不同步高清晰度对象O1,因为节点B 1310具有反映该版本的不合需要性的知识。然而,在稍后节点D 1330在1332处与节点B 1310同步时,节点D 1330将低清晰度对象版本O1同步到节点B 1310,因为在该低清晰度版本上不存在异常。以此方式,每一个节点都可随时间反映其对于不同质量的各个数据版本的厌恶,并且更智能地同步而不重复对造成不必要的同步通信的不受支持的项目的工作。

在一组替换实施例中,在同步元数据中通过版本化数据版本来表示质量,其中确定一数据版本已经历质量变换,与具有新的独立版本的破坏性变更形成对比。除了版本化各版本以表示应用于对象版本的一层变换或质量水平之外,这些实施例还可被扩展至任何数量的水平或层,例如,对于两层版本版本化各版本,对于三层版本版本化各版本等。

有利的是,各个端点被允许决定对对象的特定变更是表示典型变更,即以使得创建新版本,例如不触发各版本的版本化的对计时单元计数的递增,还是改为表示通过版本化当前对象版本,例如版本化当前计时单元计数所表示的对象版本来表示的类型的保真度或变换变更。通过在知识表示中包括版本信息的版本化来增强知识因此是实现向对象传递关于变换的质量信息的目的的另一种方式。

用于版本化版本信息的示例性实施例在图14的流程图中示出。在1400,变更作为一组对象的一部分来同步的对象版本的质量特性。在1410,扩充同步元数据以包括反映对该对象版本的质量变更的质量信息,例如,对于质量变更,版本被版本化。对于两层质量信息,版本化各版本的版本,且对于附加层以此类推。在1420,节点连接到多主同步环境中的另一节点。

在1430,节点经由知识交换来同步,该知识交换包括关于对象集中的正在同步的各对象版本的质量版本信息的交换。然后在1440,每一个节点根据知识交换来枚举并接收更新。然后,对于该对象的每一个版本,每一个节点考虑质量信息以及该节点是否想要该版本的具有不同质量特性的各个版本。

表示对象版本的不同版本以便对应于相同对象的不同的质量版本的效率在图15的框图中进一步示出。在图15中,最初节点A 1500具有对象O的相同版本的三个不同的质量版本。如图所示,O1Q1是描述表示对象O的第一个版本的元数据的记法,并且Q1指示它是对象版本O1的第一质量版本。由此,节点A 1500包括对象O1的三个不同的质量版本Q1、Q2、Q3。然后,在T1处,在T1处的节点A 1500和节点B 1510之间的知识交换后,节点B指定它只想要版本Q1和Q2,然后同步这两个版本。然后在T2和T3处的其他同步中,对象C 1520只想要具有质量Q1的版本,而对象D 1530只想要具有质量Q2的版本。不同质量的表示由此给予每一个设备决定要在多主同步环境中同步什么版本的机会,以避免大量不必要且浪费的对象同步。

图16是用于经由一组API来执行完整或部分知识交换的设备1600的示例性、非限制性实现的框图。如图所示,设备1600包括同步模块1620,该同步模块执行根据各非限制性实施例的用于与另一设备同步对象集1630的知识交换技术。对象集1630也可被存储在高速缓存(未示出)中以便高效操作,并且然后对象集1630可稍后由离线应用程序更新。同步模块1620可包括同步通信模块1622,该同步通信模块用于一般根据知识交换技术来发送向其他节点发送数据并从其他节点接收数据,如此处所描述的。

同步通信模块1622还可包括同步启动模块1624,该同步启动模块可在例如经由可任选的授权模块1640而被授权的情况下启动与该第二设备的同步,并连接到第二设备。同步模块1622还可包括I/O模块1626,该I/O模块通过经由API向第二设备发送关于对象集1630的完整和/或部分知识1602来响应同步启动,例如以便获取或发送知识或者以便获取或发送变更。类似地,I/O模块1626可接收第二设备的所请求的知识或变更1612以及源自该第二设备的对该对象集1630作出的变更。进而,同步分析模块1628操作以应用将要对该对象集1630作出的变更并且将从第二设备接收到的知识1612与第一设备的知识1602进行比较以确定要在本地作出的或要发送给该第二设备的变更以完成设备之间的同步。

根据此处的各实施例,对象集1630中的节点所拥有的知识1602,诸如结合图5到11描述的版本化知识1603,被扩充为包括质量知识1604,该知识定义关于应用于基于知识的框架中的对象的变换的质量信息。

如上所述,此处通过扩充包括在知识框架中的元数据来提供基于知识的对象的各版本的质量的各实施例,这些实施例的概览在上文中提供。为了避免疑义,如此处所使用的术语“质量”的意思是广泛的,并且指可根据影响关于数据的质量特性的一个或多个变换或功能来变换数据的任何方式。由此,术语质量通常是上下文或应用程序专用的。就此,通过在作为如上所述的知识交换的一部分来交换的同步元数据中包括对象的不同质量版本的概念,每一个端点都可以在其开始在计算系统中同步时决定对不同的版本做什么。

类似地,术语“变换”和术语“代码转换”指的是用于变更数据的任何功能。另外,术语“分辨率”或“保真度”的变更泛指变更任何对象以包括更多或更少细节。此处描述了在多主同步环境中的多个网络节点之间提供同步的各实施例,这些实施例将基于知识的同步框架扩展成包括同步对象的质量变换的概念。

因此,各实施例的增强的元数据表示使得端点能够高效地获悉并传递关于对象的知识,包括应用于对象的变更是否以使得节点能够决定是否期望将对象的相同版本的不同质量版本从其他节点同步到该节点的质量方式变换对象。于是,知识交换可包括对所涉及的节点最期望的是对象版本的哪些质量的分析,并防止对将该对象的不合需要的质量版本发送到不想接收该对象的那些质量版本的其他节点的不必要的重复。

示例性联网和分布式环境

本领域普通技术人员可以理解,此处所描述的同步基础结构的各实施例可以结合任何计算机或其它客户机或服务器设备来实现,该任何计算机或其它客户机或服务器设备可作为计算机网络的一部分来部署或者被部署在分布式计算环境中,并且可以连接到任何种类的数据存储。就此,此处所描述的各实施例可以在具有任意数量的存储器或存储单元以及出现在任意数量的存储单元上的任意数量的应用程序和进程的任何计算机系统和环境中实现。这包括但不限于具有部署在具有远程或本地存储的网络环境或分布式计算环境中的服务器计算机和客户计算机的环境。

分布式计算通过计算设备和系统之间的通信交换提供了计算机资源和服务的共享。这些资源和服务包括信息的交换、对于诸如文件等对象的高速缓存存储和盘存储。这些资源和服务还包括多个处理单元之间的处理能力共享以便进行负载平衡、资源扩展、处理专门化,等等。分布式计算利用网络连接,从而允许客户机利用它们的集体力量来使整个企业受益。就此,各种设备可具有可使用如参考本发明的各实施例描述的同步基础结构的应用程序、对象或资源。

图17提供了示例性的联网或分布式计算环境的示意图。该分布式计算环境包括计算对象1710、1712等以及计算对象或设备1720、1722、1724、1726、1728等,这些计算对象或设备可包括如由应用程序1730、1732、1734、1736、1738表示的程序、方法、数据存储、可编程逻辑等。可以理解,对象1710、1712等以及计算对象或设备1720、1722、1724、1726、1728等可包括不同的设备,诸如PDA、音频/视频设备、移动电话、MP3播放器、个人计算机、膝上型计算机等。

每一个对象1710、1712等以及计算对象或设备1720、1722、1724、1726、1728等可通过通信网络1740直接或间接与一个或多个其他对象1710、1712等以及计算对象或设备1720、1722、1724、1726、1728等进行通信。即使在图17中被示为单个元件,但网络1740可包括向图17的系统提供服务的其他计算对象或解释设备,和/或可表示未示出的多个互连网络。每一个对象1710、1712等或1720、1722、1724、1726、1728等还可包含诸如应用程序1730、1732、1734、1736、1738等应用程序,该应用程序可利用API或适用于与根据本发明的各实施例来提供的同步基础结构进行通信或适用于该同步基础结构的实现的其他对象、软件、固件和/或硬件。

存在支持分布式计算环境的各种系统、组件和网络配置。例如,计算系统可以由有线或无线系统、本地网络或广泛分布的网络连接在一起。当前,许多网络被耦合至因特网,后者为广泛分布的计算提供了基础结构并包含许多不同的网络,但任何网络基础结构可用于变得与如各实施例中所描述的同步基础结构相关联的示例性通信。

因此,可以利用诸如客户机/服务器、对等、或混合体系结构等网络拓扑结构和网络基础结构的主机。“客户机”是使用与它无关的另一类或组的服务的一个类或组中的成员。客户机可以是进程,即大致上是请求由另一程序或进程提供的服务的一组指令或任务。客户机进程利用所请求的服务,而不必“知道”有关其他程序或服务本身的任何工作细节。

在客户机/服务器体系结构中,尤其在网络化系统中,客户机通常是访问由例如服务器等另一计算机提供的共享的网络资源的计算机。在图17的图示中,作为非限制性示例,计算机1720、1722、1724、1726、1728等可被认为是客户机而计算机1710、1712等可被认为是服务器,其中服务器1710、1712等提供数据服务,诸如从客户机计算机1720、1722、1724、1726、1728等接收数据、存储数据、处理数据、向客户机计算机1720、1722、1724、1726、1728发送数据等,但任何计算机都可取决于环境而被认为是客户机、服务器或两者。这些计算设备中的任一个可以处理数据,同步或请求可指示如此处参考一个或多个实施例描述的同步基础结构的服务或任务。

服务器通常是可通过诸如因特网或无线网络基础架构等远程网络或本地网络访问的远程计算机系统。客户机进程可以在第一计算机系统中活动,而服务器进程可以在第二计算机系统中活动,它们通过通信介质彼此通信,从而提供分布式功能并允许多个客户机利用服务器的信息收集能力。按照同步基础结构来利用的任何软件对象可以单独提供或分布多个计算设备或对象上。

在其中通信网络/总线1740是因特网的网络环境中,服务器1710、1712等可以是客户机1720、1722、1724、1726、1728等通过诸如超文本传输协议(HTTP)等多种已知协议中的任一种与其通信的web服务器。服务器1710、1712等也可担当客户机1720、1722、1724、1726、1728等,这是分布式计算环境的特性。

示例性计算设备

如上所述,有利的是,此处所描述的技术可适用于其中期望与计算系统中的其他对象同步的任何设备。因此,应当理解,构想了结合各实施例使用的所有种类的手持式、便携式和其它计算设备和计算对象,即,在设备可同步的任何地方。因此,以下在图18中描述的通用远程计算机只是计算设备的一个示例。

尽管并非所需,但各实施例可以部分地经由操作系统来实现,以供设备或对象的服务开发者使用,和/或被包括在用于执行此处所描述的各实施例的一个或多个功能方面的应用软件中。软件可以在由诸如客户机工作站、服务器或其他设备等一个或多个计算机执行的诸如程序模块等计算机可执行指令的通用上下文中描述。本领域的技术人员可以理解,计算机系统具有可用于传递数据的各种配置和协议,并因此没有特定配置或协议应被认为是限制性的。

因此,图18示出了其中可实现各实施例的一个或多个方面的合适的计算系统环境1800的一个示例,尽管如上所述,计算系统环境1800仅为合适的计算环境的一个示例,并非对使用范围或功能提出任何限制。也不应该将计算环境1800解释为对示例性操作环境1800中示出的任一组件或其组合有任何依赖性或要求。

参考图18,用于实现一个或多个实施例的示例性远程设备包括计算机1810形式的通用计算设备。计算机1810的组件可以包括,但不限于,处理单元1820、系统存储器1830和将包括系统存储器在内的各种系统组件耦合至处理单元1820的系统总线1822。

计算机1810通常包括各种计算机可读介质,并可以是可由计算机1810访问的任何可用介质。系统存储器1830可以包括诸如只读存储器(ROM)和/或随机存取存储器(RAM)等易失性和/或非易失性存储器形式的计算机存储介质。作为示例而非限制,存储器1830还可以包括操作系统、应用程序、其他程序模块、和程序数据。

用户可以通过输入设备1840向计算机1810输入命令和信息。监视器或其他类型的显示设备也经由接口,诸如输出接口1850连接至系统总线1822。除监视器之外,计算机还可以包括其他外围输出设备,如扬声器和打印机,它们可以通过输出接口1850连接。

计算机1810可使用至一个或多个远程计算机,诸如远程计算机1870的逻辑连接在网络化或分布式环境中操作。远程计算机1870可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见网络节点、或任何其他远程媒体消费或传输设备,并且可以包括上面关于计算机1810所描述的任何或全部元件。图18所示的逻辑连接包括诸如局域网(LAN)或广域网(WAN)等的网络1872,但也可以包括其他网络/总线。这样的联网环境在家庭、办公室、企业范围计算机网络、内联网和因特网中是常见的。

如上所述,尽管结合各种计算设备和网络体系结构描述了各示例性实施例,但基本概念可被应用于其中期望同步的任何网络系统和任何计算设备或系统。

而且,存在实现相同或相似功能的多种方法,例如适当的API、工具箱、驱动程序代码、操作系统、控件、独立或可下载软件对象等,它们使得应用程序和服务能够使用该同步基础结构。由此,此处的各实施例从API(或其他软件对象)的观点以及从提供同步能力的软件或硬件对象构想。因此,此处描述的各实施例可以具有完全采用硬件、部分采用硬件并且部分采用软件、以及采用软件的方面。

在本文中使用的词语“示例性”意味着用作示例、范例或说明。为避免疑惑,本文公开的主题不受限于这样的示例。此外,本文描述为“示例性”的任何方面或设计不必解释成优于其他方面或设计或比其他方面或设计有利,它也不旨在排除本领域的普通技术人员所知的等效示例性结构和技术。而且,就术语“包括”、“具有”、“包含”和其他类似的词语在详细描述或权利要求书中的使用而言,为避免疑惑,这样的术语旨在以类似于术语“包括”作为开放的过渡词的方式解释而不排除任何附加或其他元素。

术语“有限质量”应指对对象在同步系统中的存在的限制以使得对象的存在的开始和/或结束是受限的。

如上所述,此处所述的各种技术可结合硬件或软件,或在适当时以两者的组合来实现。如在此所使用的,术语“组件”、“系统”等同样指的是计算机相关实体,或者是硬件、硬件和软件的组合、软件或执行中的软件。例如,组件可以是,但不限于是,在处理器上运行的进程、处理器、对象、可执行码、执行的线程、程序和/或计算机。作为说明,运行在计算机上的应用程序和计算机本身都可以是计算机组件。一个或多个组件可以驻留在进程和/或执行的线程中,并且组件可以位于一个计算机内和/或分布在两个或更多的计算机之间。

已经关于若干组件之间的交互描述了前述系统。应该理解,这样的系统和组件可以包括根据前述的各种置换和组合的那些组件或指定的子组件、指定的组件或子组件中的某一些、和/或另外的组件。子组件也可以被实现为通信耦合至其它组件而非被包括在父组件(分层)内的组件。另外,应注意到一个或多个组件可被组合成提供聚集功能的单个组件,或被分成若干单独的子组件,且诸如管理层等任何一个或多个中间层可被设置成通信耦合到这样的子组件以便提供集成功能。此处描述的任何组件也可以与在此未具体描述但本领域的技术人员公知的一个或多个其他组件交互。

考虑到以上描述的示例性系统,参考各附图的流程图将可以更好地理解依照所描述的主题实现的方法。尽管出于说明简单的目的,各方法被显示和描述为一系列框,但应该理解和领会,所要求保护的主题不受框次序的限制,因为一些框能够以不同的次序和/或与在此描绘和描述的其他框并发地发生。尽管经由流程图示出了非顺序或分支的流程,但可以理解,可实现达成相同或类似结果的各种其他分支、流程路径和框次序。而且,并非所有示出的框都是实现以下描述的方法所必需的。

除了此处所描述的各实施例之外,可以理解,可以使用其他相似的实施例或者可对所述实施例作出修改和添加以便执行对应的实施例的相同或等效的功能而不背离这些实施例。此外,多个处理芯片或多个设备可共享此处所描述的一个或多个功能的执行,并且类似地,存储可以跨多个设备实现。因此,本发明不应限于任何单个实施例任一组实施例,而是应该根据所附权利要求书的广度、精神和范围来解释。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号