具体地参考图1,提供了示例性主设备100的各方面。主设备100可以是计算机或计算设备、游戏控制台、立体声汽车音响本体等等,并且只是合适的操作环境的一个示例。并不旨在对本发明的使用范围或功能提出任何限制。不应存在关于所示的组件的任何一个或组合的任何依赖或需要的解释。
参考图1,主设备100包括直接或间接地耦合以下设备的总线110:存储器112、一个或多个处理器114、一个或多个呈现接口116、输入/输出端口118、输入/输出组件120、以及说明性电源122。总线110可以是一条或多条总线(诸如地址总线、数据总线、或其组合)。尽管为了清楚起见用线条示出了图1的各框,但是,实际上,描绘各组件并不是那样清楚,并且用比喻方法,线条更精确地将是灰色的和模糊的。例如,人们可以将诸如显示设备等的呈现组件认为是I/O组件。同样,处理器具有存储器。可以认识到,这是本领域的特性并且重申图1只是例示可结合本发明的一个或多个实施例来使用的示例性主设备。在诸如“工作站”、“服务器”、“膝上型计算机”、“手持式设备”等分类之间没有区别,因为所有都被认为是在图1的范围之内的并且被引用为作为一种类型的计算机的主设备。
主设备100通常包括各种计算机可读介质。作为示例而非限制,计算机可读介质可以包括随机访问存储器(RAM);只读存储器(ROM);电可擦除可编程只读存储器(EEPROM);闪存或其他存储器技术;磁带盒、磁带、磁盘存储或其他磁存储设备;诸如拇指型驱动器、闪存卡等的可移动介质;以及载波或可用于对所需信息进行编码并且可由主设备100访问的任何其他介质。存储器112包括易失性和/或非易失性存储器形式的计算机存储介质并且包括上述介质类型中的任一个。
主设备100包括从诸如存储器112或I/O组件120等各种实体读取数据的一个或多个处理器。呈现接口116向用户或其他设备呈现数据指示并且可以成为设备100的一部分或耦合到设备100。示例性呈现组件包括显示设备、扬声器、打印组件、振动组件等等。I/O端口118允许主设备100逻辑上耦合至包括I/O组件120的其他设备,其中某些可以是内置的。说明性组件包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、无线设备等等。
现在转到图2A,示出了耦合到主设备212的媒体设备210。媒体设备210能够读取由参考标号211A和211B指定的一个或多个机器可读媒体。该媒体如上所述可以是永久的或可移动的。在各实施例中,媒体设备210可以采用电子设备的形式,诸如数码照相机214、PDA216、移动电话218、便携式音乐播放器220、或便携式媒体播放器222、或者未示出但指示为由省略号224来构想的各种其他设备。下文中,媒体设备210将被称为从设备210,因为在本发明的上下文中,它作为相对于主设备212的从设备来操作。主设备212包括用于执行本发明的各功能方面的一组机器可读指令225。主设备212可以采用膝上型计算机226、无线电汽车音响本体228、游戏控制台230、某一其他形式的计算设备232、或者未示出但也由省略号来表示的某一其他主设备。
主设备212被示为包括由参考标号234、236、和238指定的多个做出请求的应用程序。这并不是对等环境,因为从设备210与主设备212上的做出请求的应用程序234-238是一对多的关系。每个主应用程序各自包括分别由参考标号234A、236A、和238A来表示的前一个最大序列值指示符(MSVI)。它将在以下更详细地解释,但是前一个最大序列值指示符是由从设备210提供的,并且在其连接到主设备212时指示该设备的最大序列指示符。在某些实施例中,维护两个基准指示符:前一个最大序列值指示符和当前最大序列值指示符,其中当前最大序列值指示符采用来自新耦合的从设备210的当前值,而前一个最大序列值指示符存储最近替换的当前最大序列值指示符。同样地,这将在以下具体参考图8来更详细地解释。
主设备212启动对从设备210的请求,从设备210用与在其上的各种对象相关联的信息来进行响应。从设备210描绘了比较不复杂的实施例更复杂的实施例。例如,从设备210描绘了两个分离的对象集,第一对象集242和第二对象集246。对象集242包括相应的最大序列值指示符248。类似地,对象集246包括相应的最大序列值指示符250。在该应用中,将解释各种情形。并且将对对象集242做出不需要更复杂的解释参考的情况,对象集242具有结合各自的序列指示符来使用以向诸如应用程序234等的说明性应用程序呈现信息的最大序列值指示符。
在本发明的实施例中,使用基于对象属性的协议(OPB)来便于信息243A、243B、和243C(诸如对象句柄、其他引用、概要信息、以及对象本身等等)向主设备212的传送,并且如果适用的话,便于响应于相应的信息请求241A、241B、和241C向相应的做出请求的应用程序234、236、和238的传送。
此处所使用的OPB协议是在其中所有元素被呈现为对象并由属性来描述而不必检索对象本身的任何协议。内容被展示为对象并由与对象分离的属性来描述。基于对象的协议是使用操作、响应、以及(可任选地)事件的组合来提供对设备及其内容的访问的协议。设备使用这些来描述其以对象形式表示的内容。对象由用于在协议中称呼对象的指示符(例如,对象句柄、文件名、或对象名);描述对象并且可检索而不必检索二进制净荷本身的一些元数据(例如,属性);以及包含组成对象主体的二进制文件的一个或多个二进制资源组成。存在仅由属性组成并且不具有二进制分量的对象。这些对象被称为抽象对象。
一个说明性的这样的协议包括媒体传输协议(MTP),该协议连同关于在电子设备之间同步数据的额外信息一起在以下文献中更全面地描述:1)2004年5月3日提交的美国专利申请第10/836,260号,2)2004年5月5日提交的美国申请第10/839,299号中,3)在可以从MSDN.Microsoft.com得到的题为“Media Transfer Protocol(媒体传输协议)”的规范中。这三个文献中的每一个至少出于所描述的目的通过引用明确结合于此。
在基于对象的协议中,对象作为整个对象来传输。即,对对象做出请求。这一方案的优点是所请求的文件对于诸如文件结构和操作系统之类的事情变得不可知。因此,文件能够跨不同的操作系统和文件系统来传送。文件变成简单地从一个设备传输到另一个设备的互存在。注意,当此处对于传输文件做出引用时,旨在包括传输文件的副本的概念而不是实际上移动文件。这在本领域中是公认的,并且在本申请全文中阐明每个区别会模糊本发明。
在一个实施例中,主设备212是在控制之下的,并且从设备210将试图展示其内容。在对等环境中,其角色可以是颠倒的。即,主设备也可以是从设备而从设备也可以是主设备。本发明涉及解决呈现出不同于对等环境的问题的问题的一对多环境中相关联的问题。本发明的适用操作环境包括向媒体播放器请求其内容的汽车无线电、请求耦合到其上的设备的信息的游戏控制台、以及都明确地在图2A中示出的大量其他示例、以及本领域的普通技术人员在阅读本发明时可构想的许多其他设置。
如上所述,本发明要解决的问题之一(不是唯一)是能够向电子设备的做出请求的应用程序快速地展示新的或改变的内容。对于该问题有许多方面,并且进一步的目标是能够标识出在一改变序列中至少相对于该设备上一次与主设备212进行通信的时间一特定对象何时发生了特定改变。各种方法将不起作用。例如,数码照相机上的时钟不是图片实际上何时拍摄的可靠指示符,不提供相对于上一次与做出请求的设备进行通信何时发生改变的指示,并且甚至可能不提供足够的粒度以唯一地标识何时拍摄图片的序列位置。不幸的是,许多消费者简单地不设置其数码照相机上的时钟。
此外,当人们穿过时区,尤其是向西旅行时,甚至设置其时钟的人将最终向后设置其时钟,这可导致某张图片是在另一张之前拍摄的错误指示,而实际上它是在另一张之后拍摄的。该时钟也不提供关于该设备上一次何时与主设备212进行通信的任何相对测量。
使用时钟作为潜在的序列指示符的另一个说明性缺点是该时钟可能不够精确。某些高端照相机具有快速连续地拍摄多张图片的能力,包括作为保守估计的每秒若干张图片。如果时钟只将时间维持到秒,则快速连续地用高速快门速度拍摄的十张图片将得到所有图片上的相同的时间戳。
注意诸如并包括对等同步技术的现有技术将不会对确定能够通用地标识可归于诸如从设备210等的电子设备上的对象的关系序列属性有任何指导。因为已经在不同的范例中完成的旧方式想法并不有助于应用到解决包括对象集242和许多发起应用程序234、236、以及238之间的一对多关系在内的本发明的操作环境中的问题,所以这一传统逻辑实际上混淆了该问题。再一次,问题之一是能够快速地标识改变的对象(包括属性已改变的对象)以及新创建的对象而不必在主设备212上完整地制作从设备210的内容(以及或许对应于所存在的那样多的主应用程序的其许多实例)的镜像并且不必枚举电子设备的完整内容。
图2B示出了从设备210的某些对象在其他对象改变(修改或新的)时如何能够保持不变。例如,由参考标号260表示的对象是未改变对象;即,相对于从设备210上一次与主设备212进行通信的时间没有改变。在某些实施例中,该指定可以是用户控制的或设备控制的,以使得仅仅将从设备210连接到主设备212并不用作通信事件。
改变的对象由参考标号262来指示。如此处所使用的,“改变的”对象是修改的或包括新创建的对象的对象。还示出了已删除文件列表264,这提供了跟踪从从设备210删除的对象的一种方式。该列表可被设置为预设长度以使其不消耗比所需更多的空间。例如,它可被配置为跟踪最后N个对象。该列表能够简单地由主设备212来请求以标识哪些对象已被删除。在一个实施例中,该列表采用由标识已删除对象的标识符以及相应的序列指示符组成的2 x N数组265的形式,其中序列指示符指示至少相对于从设备的最大序列值指示符248或250,并且还相对于对现有对象何时做出改变或新对象何时被创建,对象何时被删除。
在本发明的一个实施例中,标识修改的对象或新创建的对象262通过提供每个对象上的额外属性来实现,该属性在一个实施例中接收可用于标识相对于其他对象的改变,并且在某些实施例中仅仅至少相对于基准指示符(可以是最大序列值指示符)一对象何时发生改变的对象序列指示符(OSI)。该序列指示符可以是单调递增或单调递减的。在两种情形中,后续值至少与所有先前的值一样极端。单调指示符是非递增或非递减的。非递减值从不减少,但相邻的值可能是相同的。类似地,非递增值从不减少,但相邻的值可能是相同的。在一个实施例中,序列指示符是非递减的。即,该值始终增加,从不振荡。但是在所附权利要求书的范围内可以构想可以从一个极大的数字开始并随着时间继续而减小。因此,在一个实施例中,本发明采用具体化的数据结构的形式,一个说明性的此类数据结构在图3A中由标号300来引用。
图3A描绘了可结合本发明的一个实施例来使用的数据结构的说明性表示。该数据结构包括一新的字段,即包括序列指示符312作为其属性之一的序列标识字段310。数据结构300还包括由标号314引用的一组其他数据对象属性,这些属性说明性地包括文件名属性316、分辨率属性(视情况而定)318、以及由标号320说明性地表示的各种其他属性。本发明还提供净荷改变指示符字段322以接收指示当与其相应属性中的一个比较时媒体净荷326本身是否已经改变的相应的属性324。例如,如果媒体净荷的实际内容已改变,则净荷改变指示符322可以是“1”,而如果与净荷相关联的属性而不是净荷本身改变,则该指示符可以是“0”。
如将在以下讨论的,当数据对象改变或新创建时,其序列标识字段310用序列指示符312来填充。设备可能存储数百、数千、或甚至更多的数据对象,其每一个都具有相应的序列标识字段310和序列指示符312。这些序列指示符的集合将结合通常与设备相关联的、而且还可与相应的数据对象集相关联的最大序列值指示符来使用,以使得能够标识出序列中相对于最大序列值指示符和/或相对于彼此(视情况而定)对各对象发生的改变。图3B仅仅描绘了由标号300A引用的表达数据结构300的可选方式。该数据结构也包括序列标识字段310A以及相应的序列指示符312A。本领域的普通技术人员可以理解,存在多种描绘图3A的数据结构的方式,该多种方式并不意味着本质上是限制的,而是意味着仅示出将额外的属性关联到对象以使得该属性指示在改变的序列中即时对象何时发生改变的具体化的概念。
因此,在一个实施例中,本发明利用基于对象属性的协议中的单调递增属性来标识于其做出改变的序列,并进一步利用与一组对象和/或与设备本身相关联的基准指示符来标识在该序列中发生改变的位置。这提供了检索已创建或诸如在上一次与主设备212进行通信之后等在某一事件后已改变的对象列表的能力。
本发明的许多优点中的一个是其提供了对于如何将数据存储在从设备210上的实现细节的高度的灵活性。只要对象是以使每个对象都附带有诸如字段310A等的序列标识字段(主设备212知道以便进行查找的字段)的方式来存储的,就可给予开发者许多自由。数据(例如,242、246、248、以及250)可以用各种方式来存储,但是它以标准形式呈现给主设备212。设备210跟踪改变的方式能够跨各种设备而变化,并且可留给设备制造商决定。这实际上是本发明的益处。通过建立用于表达对这些改变的跟踪的公共平台而不管设备如何在内部存储它,在设备类型和做出请求的应用程序之间的一对一关系就不是必需的,并且不需要专有解决方案。因此,重要的是理解先前所提及的图3A和3B的说明性数据结构并不是轻率地被称为说明性的。它们仅仅是非常说明性的。可以利用各种存储方案,但仅出于解释的目的只提供两种。
首先参考图4来提供从设备210可以存储其数据的仅仅一种方式的额外细节。图4的方法400示出了在步骤410处提供将与设备或数据对象集相关联的最大序列值指示符。因此,在一个实施例中,最大序列值指示符将对应于图2A上的参考标号248,并且数据对象集将对应于参考标号242。最大序列值指示符是具有特定值的基准指示符。最大序列值指示符的值可基于各种情况而改变。例如,在一个实施例中,该值在与主设备212进行通信后更新。在其他实施例中,该值在对象的序列指示符被更新后更新。在另外一些实施例中,该值可以自动地周期性地更新。将首先提供对于在其中最大序列值指示符在每次从设备210上的对象发生一个或一组改变时更新的实施例的解释。
回到图4,在步骤412处,为每个数据对象242提供包括序列标识字段的数据结构。因此,可以使用图3A所示格式的数据结构。在步骤414处,做出关于是否已经改变或新创建了任何对象242的判断。本发明能够跟踪现有对象的改变以及跟踪新对象何时被创建。对象的改变包括与该对象相关联的属性的改变。
如果对象没有发生改变,则处理继续到步骤416,在其中相应的对象的序列指示符312被设为比最大序列值指示符248大。本领域的技术人员可以理解实现类似功能的方式,这些方式被认为是在所附权利要求书的范围之内。已经描述了从一个非常大的数字开始并使所有数字相对于起始数字减小的说明性示例。在该实施例中,在步骤418处最大序列值指示符在处理回到在其中从设备210等待(420)直到对象改变或已被创建的状态前更新。
现在将参考图5提供对于本发明的实施例的更详细的解释。图5描绘了一流程图以及一组数据对象的三个状态以及由标号510、512、和514引用的其相应的对象序列指示符(OSI)。状态510、512、和514表示从设备210上的对象的不同状态。在第一个状态510中,一组对象序列指示符与相应的一组对象518相关联。
对象序列指示符516具有值“1001”、“1002”、“1003”、以及“1004”。从图例520可以看出,每个对象都处于未改变状态。步骤522指示集合518中的一个对象发生了改变。在该示例中,假设由标号526引用的对象524改变状态。流程图500示出了在步骤528处从未改变状态到已改变状态的转换通过由参考标号528所指示的更新对象的相应的对象序列指示符来表示。此处,对象524的对象序列指示符从“1002”更新到“1006”。数字“1006”是通过引用那时的当前最大序列值指示符530(具有值“1005”)并且将对象526的对象序列指示符设置为比最大序列值指示符530的值大的值来选择的。参考标号532所示的判定步骤指示最大序列值指示符基于本发明的各实施例可以被更新或不更新。例如,在第一实施例中最大序列值指示符没有被更新,并且处理将继续到步骤534,该步骤是指示最大序列值指示符值“1005”在更新对象526的相应的对象序列指示符后继续的占位符步骤。因为从设备210上一次与主设备212进行通信时也将其最大序列值指示符530“1005”传送到主设备212,所以这种情况是有可能的。
因此,在主设备212希望发现其上一次与从设备210进行通信之后的所有改变的情况下,只要在与主设备212进行通信之后发生的改变用比前一个最大序列值指示符530大的序列指示符来表示,主设备就将能够发现所有这样的改变。包括该解释以示出基于实现者的期望这一范例是可能的。
但在另一个实施例中,最大序列值指示符自动地或伴随着对对象的对象序列指示符的更新而更新。在这种情况下,处理将继续到步骤536,其示出了其中最大序列值指示符被更新,例如加2的一个实施例,其中对象的对象序列指示符被更新为只比初始最大序列值指示符530大1。再一次,状态514示出被创建为可能具有甚至是与对象526的对象序列指示符相同的值的对象序列指示符1006的新对象538。但在另一个实施例中,对象538的对象序列指示符将采用比对象序列指示符“1006”大的值。在该实施例中,最大序列值指示符仍然还将加1,采用由参考标号540引用的值“1007”。在最大序列值指示符在每个对象的对象序列指示符被更新后没有更新的情况下,它将在从设备210被耦合到主设备212时更新并且被给予比对象序列指示符516中的任何一个都大的值。
现在转向图6,提供了概括地由标号600引用的供从设备210向主设备212展示关于一组对象242的信息的说明性方法。在步骤610处,从设备210能够从诸如234、236、以及238等多个做出请求的应用程序接收多个对象信息请求(诸如241A、241B、以及241C所指示的那些请求等)。这是本发明的另一个优点,即能够向多个应用程序而不是仅仅向单个应用程序提供诸如与各对象的改变相关联的序列信息等信息。
当从设备210被耦合到主设备212时,许多应用程序可能试图与从设备210进行通信。例如,如果从设备210采用音频播放器220的形式,则各厂商所创建的各种音频播放应用程序将都感测到从设备210到主设备212的连接并试图询问该设备。诸如241A、B、C的那些请求等的请求将被发送到从设备210以供其或许列出所有新的内容,或只列出满足特定准则的内容。
为了满足这些请求,在步骤612处从设备210将确定正确的前一个最大序列值指示符。例如,如果从设备从应用程序234接收到一个请求,则该从设备将确定与应用程序234相关联的正确的最大序列值指示符是由标号234A指示的最大序列值指示符。类似地,如果请求241B来自于应用程序236,则应用程序236将体提供逻辑以使得从设备210将知道最大序列值指示符236A是正确的最大序列值指示符。
在步骤614处,从设备210使用做出请求的应用程序的最大序列值指示符以及一组对象的序列指示符(诸如242或246的序列指示符)来满足每个请求。例如,如果做出请求的应用程序238将请求241C发送到从设备210以列出在集合246中是新的所有那些对象,则从设备210将比较对象246中的每一个的序列标识字段310并且传回与其序列指示符比238A的序列指示符大的那些对象相关联的信息243C。应用程序238可以是具有最大序列值指示符“973”的摄影应用程序。如果从设备210是照相机,并且具有组成参考标号246所指示的集合的几千张图片,但是只有两张图像具有比“973”大的对象序列指示符,则只与那两张图片相关联的信息将被发送到设备212上的做出请求的应用程序238。
类似地,如果应用程序238请求其在某一事件之前或之后删除的所有对象的指示,则从设备210能够引用其删除日志264以满足这一请求。在另一个示例中,应用程序可以请求只被通知对象的实际的二进制文件或媒体净荷326是否已经改变。在这种情况下,从设备210能够引用各对象的净荷改变指示符322以快速指示哪些对象的媒体净荷已经改变。
如上所述,关于在从设备210上存储信息的各方面的较低级细节能够变化,且如何将信息存储并且甚至呈现给主设备212的较低级细节也能够变化。例如,在一个实施例中,每次对对象做出改变,并且更新该对象的相应的对象序列指示符时,可以将该对象的指示符316添加到用作快速引用以满足做出请求的应用程序的信息请求的日志。在其他实施例中,伴随着接收请求可在数据上执行查询。在该实施例中,如果做出请求的应用程序请求例如具有比某一数字大的序列指示符的所有数据对象,则可基于所提供的准则快速查询元数据314、310、322。更重要的是,应结合基于对象的协议来提供数据结构以使得序列标识字段310与对象相关联并且伴随着在该对象的改变而填充以使得可至少相对于基准指示符,但在其他实施例中相对于对其他对象所做出的改变,来确定这一对象的时序。
现在转向图7,提供了流程700作为主设备能够执行用于接收关于存储在从设备210上的对象的信息的方法的示例性方式。在步骤710处,主设备212接收从设备210被耦合到主设备212的指示。在步骤712处,主设备212从存储中检索可能特定于应用程序的,与某一应用程序相关联的前一个最大序列值指示符。因此如果应用程序234是相关的应用程序,则该应用程序将接收最大序列值指示符234A。类似地,应用程序236将检索最大序列值指示符236A。应用程序238也一样。
如上所述,主设备212,或更具体地,诸如应用程序234等的应用程序可能涉及两个基准指示符:前一个基准指示符和当前基准指示符。在这一方案中,前一个最大序列值指示符将用作用于测试从设备210上的对象的对象序列指示符的基准,而当前最大序列值指示符将接收该设备的最大序列值指示符的当前值。将参考图8更详细地解释该方面。
在步骤714处,主设备212将接收诸如来自从设备210的信息243A等的信息。该信息将例如基于对象序列指示符以及所检索的最大序列值指示符来与集合242的特定数据对象相关。再一次,或许做出请求的应用程序234简单地请求例如所有新的图片。在该情况下,做出请求的应用程序234会将其前一个最大序列值指示符234A传递给从设备210,从设备210将使用该指示符来比较对象集242的对象序列指示符并且返回只与那些对象相关联的信息243A。信息234A可包括对象242或其子集的句柄,或对那些对象的一部分的其他引用或与该对象相关联的元数据。无论主设备212请求以及可由从设备210来检索什么,都包括在信息243A的范围内。
接收到这些信息允许主设备212在步骤716处关于所确定的对象执行所需的任何操作。说明性操作可包括获取、放置、以及改变检测操作。主设备212可能希望接收在信息243A中所指示的对象的副本。主设备212可能希望删除一组对象。此处可包括大量示例,而这样做是不切实际的,但是本领域的普通技术人员将容易理解当应用程序234能够基于在数据300存在的情况下提供的序列准则接收与对象集242的特定对象相关联的信息234A的情况下有大量的可能性适用以满足该准则。在步骤718处,主设备212接收从设备的当前最大序列值指示符248,该指示符现在被存储为前一个最大序列值指示符。因此在步骤720处,基于该设备的当前最大序列值指示符来更新前一个最大序列值指示符。
现在将参考包括本发明的各方面的图8A和8B提供最一个说明性示例。出于该示例的目的,做出请求的应用程序将被假定为234,而适用的数据集将会是与最大序列值指示符248相关联的数据242。在图8A本身中还提供了具体的示例,并且这些示例将用出现在图8A和/或8B中的新标号来引用。首先转向图8A,在步骤810处,从设备210被耦合到主设备212。状态812表示具有相应的对象序列指示符816的对象814的说明性状态。如图所示,对象814包括三张图片,每张都具有相应的对象序列指示符,并且还包括设备最大序列值指示符818“00151”。在步骤820处,主设备212参考其具有如“00145”的说明性值的前一个最大序列值指示符(诸如由标号248表示的最大序列值指示符)。在某些实施例中,一个或多个设备最大序列值指示符可在此时被更新。在其他实施例中,主设备可以只跟踪单个基准指示符。在这一实施例中,主设备的单个最大序列值指示符将在与从设备210的通信会话后更新。但是在该实施例中,在当前最大序列值指示符字段824中保留从设备210的最大序列值指示符818。如上所述,该设备234的前一个最大序列值指示符值826是“00145”。在步骤828处,主设备212确定图片0049到0051是相关的,因为其各自的对象序列指示符830都比主设备前一个最大序列值指示符“00145”大。
在步骤832处,用户选择复制所有图片但也选择将它们留在该设备上。在步骤832处这些图片也被复制到主设备212。这是在其中可更新主设备212的一个或多个最大序列值指示符的步骤834处的一个说明性要点。如图所示,前一个最大序列值指示符字段836现在具有曾经是当前最大序列值指示符并且是从设备210的基准指示符248的值“00151”。在步骤838处,用户断开该设备并且再拍摄了三张图片。对象及其相应的对象序列指示符840的状态由状态842来表示。可以看出,新图片844具有比该设备的先前的最大序列值指示符818大的相应的对象序列指示符846。在这种情况下,新图片具有对象序列指示符“00152”、“00154”、以及“00156”。还如状态842所示,从设备210的设备最大序列值指示符已被更新到值“00157”。
继续至图8B,假设在步骤848处用户重新连接到主设备212。在一个实施例中,保留从设备的最大序列值指示符,如由状态852中的参考标号850所指示的。与相应的做出请求的应用程序相关联的前一个最大序列值指示符仍旧是“00151”。在步骤854处,表示为具有标号0052至0054的图片844被识别为相关的,因为其各自的对象序列指示符846比主设备的前一个最大序列值指示符“00151”大。在步骤856处,如果需要可以只在相关的对象上可任选地执行操作。在步骤858处,主设备212的前一个最大序列值指示符被更新为从设备210的最大序列值指示符“00157”。在步骤860处,假设该用户断开连接但然后改变了pic_0050的分辨率。如状态862所指示的,pic_0050的对象序列指示符864被更新为具有比值为“00157”的该设备的当前基准指示符850大的值。从设备210的最大序列值指示符被更新为如参考标号866所指示的值“00159”。步骤868指示当重新连接时,pic_0050将被识别为相关的,因为其具有比前一个最大序列值指示符“00156”大的相应的对象序列指示符。主设备将存储从设备的最大序列值指示符“00159”。
此处已对执行诸如确定什么对象具有比某一基准值大的值等的分析做出了参考。当然,人们也可基于什么值大于或等于该值或某一其他变型来执行分析。但在所有情况下,结合一组序列标识值来使用某一基准值。如何精确地使用那些值可能变化,但是利用它们被认为是在所附权利要求书的范围之内的。在某些实施例中,最大序列值指示符可以自动地并独立于改变主动地增大。
以上某些示例是在作为主设备212的计算设备的上下文中提供的。但是如上所简述,主设备并不限于是计算机。本发明的各实施例适用于在其中改变由标准格式的序列指示符来标记,并且将这些序列指示符与基准指示符相比较以确定相关对象的任何环境。
所描绘的各组件以及未示出的组件的许多不同的安排都是可能的,而不背离本发明的精神和范围。已带着说明而非限制的意图描述了本发明的各实施例。不背离其范围的各替换实施例将对本领域的技术人员是显而易见的。技术人员可以开发实现上述改进的各替换手段而不背离本发明的范围。例如,最大序列值指示符的当前和前一个值可以在主设备、从设备、或其组合上维护。并且最大序列值指示符可用于确定最大对象序列标识符(或其范围,例如,“最大对象序列标识符比X小”),但其本身并不需要比所有对象序列标识符大。更重要的是,利用该最大对象序列标识符来确定下一个正确的对象序列标识符。
可以理解,特定的特征和子组合是有用的,并且可以使用而无需参考其他特征和子组合并且被认为是在权利要求书的范围之内的。并非需要以所描述的特定次序来执行在各附图中所列出的所有步骤。