亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

標識媒體設備內容的改變的制作方法

文檔序號:6454129閱讀:131來源:國知局
專利名稱:標識媒體設備內容的改變的制作方法
標識媒體設備內容的改變
背景
數碼照相機、個人媒體播放器、移動電話、以及其他設備在全世界范圍內 持續(xù)變得日益流行。用戶照相、聽音樂、看視頻等等,并且經常在這些設備與 諸如計算機等的其他設備之間共享數據。例如,音樂文件可首先被下載到計算 機并且然后被傳輸到便攜式音樂播放器。可以拍攝數碼圖片然后傳輸到計算設 備。持續(xù)存在的延及全部的問題是以高效的并且合乎用戶需要的方式來標識給 定設備的數據的改變。
考慮兩個說明性示例數碼照相機和數字音樂播放器。在數碼照相機的情 況下,用戶可能拍攝幾十或幾百張圖片但期望在已經上傳了先前一組圖片后僅 將一部分上傳到計算機?;蛘咴诒銛y式音樂播放器的情況下,可以操控其內容, 并且期望發(fā)生的無論什么改變都在計算機上復制。至少兩種情況正在加劇該問 題電子設備的存儲容量的巨大增長,以及對一個設備與許多發(fā)起的應用程序 進行通信的需求。
便攜式音樂播放器,以及其他設備例行地存儲數十億字節(jié)的信息,并且存 儲容量將毫無疑問地繼續(xù)增長。歷史上,當傳輸速度已線性增長時存儲容量已 平方級地增長。傳送存儲在電子設備上的關于數百億字節(jié)的數據的信息比傳送 關于數百萬字節(jié)的數據的信息要困難得多。當前,處理該問題的一種方式是詢 問電子設備以確定其組件的完整映射,并且然后讓做出請求的應用程序確定如 何管理該設備的內容。在這一范例中,沒有假設存在設備與PC之間的關系。 PC通過從該設備下載內容來獲悉在連接設備上的信息。
盡管各種技術已試圖利用設備與計算機之間增長的數據傳輸速度,但是僅 僅增長的傳輸速度出于各種原因并不是適當的解決方案。第一,毫無必要地將
數百億字節(jié)的信息發(fā)送到PC本身是浪費的。第二,使得用戶等待比存在適當
的替換方案的情況下必要的等待時間更久。并且最重要的是,多個應用程序競 爭對耦合的設備上的內容的訪問。例如,只要便攜式音頻播放器一耦合到計算 機,多個音頻文件應用程序就將試圖建立與該播放器的通信鏈路。如果每個播
放器都單獨行動,則每個播放器都不得不下載耦合的設備上的所有信息以獲悉 該耦合的設備上的內容。
在某些設置中,在計算機和電子設備之間存在一對一的關系。這使得事情 變得更容易但有明顯的缺點。例如,某些媒體播放應用程序被設計為只與特定 品牌的媒體播放設備一起工作。在這種情形下,可以假設在計算機設備和電子 設備之間存在一種關系。這使得同步數據庫的選項可用。數據庫存在于計算設 備上并且數據庫也存在于電子設備上。當任一數據庫發(fā)生改變時,規(guī)定將對一 個數據庫做出的無論什么改變復制到另一個數據庫,反之亦然。但是當在該計 算設備上的兩個或更多應用程序試圖傳輸關于在耦合的電子設備上的數據的 信息時,該范例是不可行的。這個難以解決并且公知的問題被稱為多主同步問 題。再者,同步存儲數十億字節(jié),并且遲早存儲數萬億字節(jié)的數據庫或信息是 資源敏感的,并且如將所示的,是不必要的。
概括地,在計算設備和電子設備之間同步數據的兩種主要的方法是制造每 個設備上的數據庫的鏡像,或者接收耦合到計算設備的電子設備上的所有內容 的完整映射。這些方式中沒有一個提供快速及高效地獲悉設備的內容而不必實 際上傳輸該設備的所有媒體內容的有效方式。例如,在將數百張圖片留在數碼 照相機上后,用戶可能只拍攝一些額外的圖片并將該照相機重新連接到計算設 備。這些方法中沒有一個提出接收只有少數最近的圖片是新的的指示以及將向 用戶呈現操控改變的內容的選項的能力提供給計算設備的通用方式。這類問題
對于諸如移動電話、PDA、便攜式媒體播放器等各種設備是普遍的。
概述
提供本概述以便以簡化的形式介紹將在以下詳細描述中進一步描述的一 些概念。本概述并不旨在標識要求保護的主題的關鍵特征或必要特征,也不旨 在用于幫助確定所要求保護的主題的范圍。
本發(fā)明描述高效地接收和呈現與諸如電子設備等的媒體設備上的特定數 據對象有關的對象信息的各種方法和數據結構。數據對象包括諸如媒體文件 (音頻、視頻、圖片等等)等的項目。使用面向對象的原語(對象元數據、設 備元數據、以及運算)來僅僅展示允許多個請求應用程序執(zhí)行與設備的基于同 步的交互(選擇性枚舉、獲取、放置等等)所必需的信息。當對象發(fā)生改變時,
該對象接收可稍后用于關連地確定改變何時發(fā)生的序列指示符。該方法并不依 賴于諸如同步時鐘或改變日志等的在設備之間所建立的任何伙伴關系或共享 信息。本發(fā)明在本技術領域中具有若干實際應用,包括減少與標識各種類型電 子設備上的改變的、新的、以及刪除的內容相關聯的時間和資源。 附圖簡述
以下將參考附圖詳細描述本發(fā)明的各實施例,附圖通過引用結合于此,并 且其中


圖1是根據本發(fā)明的實施例的適于操作的說明性發(fā)起設備的框圖; 圖2A是是根據本發(fā)明的實施例的描繪說明性操作環(huán)境的框圖2B示出了根據本發(fā)明的實施例的存儲在存儲設備上的數據對象的各方
面并示出了維護的刪除列表;
圖3A和3B示出了根據本發(fā)明的實施例的包括用于接收序列標識字段的 保留位置的數據結構的幾乎無限的變型的兩種表示;
圖4描繪了根據本發(fā)明的實施例的從設備的操作的說明性流程;
圖5描繪了根據本發(fā)明的實施例的結合描繪從設備的說明性操作的狀態(tài) 圖來參考的流程圖6是根據本發(fā)明的實施例的描繪從設備向潛在地許多請求應用程序展 示其內容的一種方法的流程圖7是根據本發(fā)明的實施例的描繪應用程序接收關于存儲在從設備上的 對象的信息的說明性方法的流程圖8A和8B提供由本發(fā)明的一個實施例執(zhí)行的示例性過程的更詳細的綜述。
詳細描述
將要描述的各技術的確切實現能夠變化而不會背離所附權利要求書的范 圍。提供了允許標識在其中對象在設備上被改變(包括創(chuàng)建和刪除)的序列的 屬性,該屬性還與允許標識序列中的當前位置的至少一個屬性相關聯。注意, 此處所使用的"序列"、"順序"、以及其他變型并不是指具有公差的連續(xù)數 列或一組連續(xù)值。相反,充分考慮了間隙。因此,集合{1, 4, 897, 6987}將會
是此處所使用的序列中的值。這允許向請求設備快速地呈現諸如對于落入序列 的期望范圍(例如,大于某個值)的特定對象的句柄列表等信息。
貫穿本發(fā)明的說明書,使用若干縮寫和簡寫符號來幫助理解關于相關聯的 系統和服務的特定概念。這些縮寫和簡寫符號只是出于提供交流此處所表達的 概念的簡單的方法的目的且并不意味著限制本發(fā)明的范圍。以下是這些縮寫的 列表
縮寫 短語
MSVI
最大序列值指示 符
OSI
對象序列指示符
簡略的解釋,但可査看說明書來 得到完整的解釋
可從中確定一組值的最大序列
值的指示符,能夠提供確定后續(xù)OSI
的基礎。其最初與從設備相關聯,指 示對應于在該設備上的給定的一組 對象的最大對象序列指示符并且也 由主設備來接收,該設備可以跟蹤在 當前連接的設備的當前最大序列值 指示符和/或在上一次的已知連接的 設備的前一個最大序列值指示符。
指定至少相對于最大序列值指 示符,但在某些實施例中相對于其他 對象的改變,對象何時發(fā)生改變(包 括新的和刪除的對象)的屬性。
本發(fā)明的各說明性方面都會在以下詳細描述。列出某些方面不應被認為是 其他方面不存在的指示。但是出于說明性目的提供了選擇列表。
在第一說明性方面中,提供了一種用于使主設備執(zhí)行用于接收關于在從設 備上的各種對象的對象信息的方法的計算機程序產品。在一個實施例中,從設 備上的每個對象都與一單調序列指示符相關聯。該方法包括從主設備檢索指示 從設備上一次何時與主設備進行通信的前一個最大序列值指示符。基于該前一 個最大序列值指示符以及各種對象的對象序列指示符,能夠接收與從設備上的
新的或自從從設備上一次與主設備進行通信以來已經改變的一組對象相關聯 的信息。
在第二說明性方面中,提供了一種用于協助將關于電子設備的對象的信息 呈現給另一設備的具體化的數據結構。對于設備上的每一個數據對象有一數據
結構。還提供了與該組對象相關聯的最大序列值指示符(MSVI)。該數據結
構不但包括描述對象的各方面的各種屬性,而且包括用指示相對于最大序列值
指示符數據對象何時發(fā)生改變的對象序列指示符(OSI)填充的序列標識字段。 創(chuàng)建新對象被包括在"改變"的范圍中。在第三說明性方面中,提供了一種用于存儲與包含在存儲介質上的、關連 于至少一個MSVI的一組數據對象相關聯的信息的方法。該方法包括從多個做 出請求的應用程序接收多個相應的獨立對象信息請求,其中每個請求都針對關 于至少一部分數據的信息;從每個請求中標識指示從設備上一次何時與相應的
做出請求的應用程序進行通信的相應的前一個MSVI;以及結合相應的前一個 最大序列值指示符來利用先前存儲的對象序列指示符以滿足每一個這樣的請 求以使得每個做出請求的應用程序接收只關于其相應的對象序列指示符相對 于最大序列值指示符滿足準則的那些數據對象的信息。
在第四說明性方面中,提供了一種用于標識在其中數據對象在設備上被改 變或創(chuàng)建的序列的方法。該方法包括提供序列位置指示符與每個數據對象的關 聯,該序列位置指示符相對于一組先前分配的序列位置指示符單調地變化。該 方法還包括提供對應于一組對象的一組對象引用的通信,該對象包括新創(chuàng)建的 對象以及其至少一個屬性在定義的時間點后已改變的對象。
在最后一個說明性方面中, 一實施例采用了便于從設備與主設備之間的信 息交換的具體化的指令的形式。提供了與從設備上的一組一個或多個對象相關 聯的基準序列指示符的接收。每個對象分別與一單調序列指示符相關聯。還提 供了基于基準指示符對在從設備上有什么對象的確定。
本發(fā)明可以在計算機代碼或機器可使用指令的一般上下文中描述,該機器 可使用指令包括由諸如個人數據助理或其他手持式設備等執(zhí)行的諸如程序模 塊等的計算機可執(zhí)行指令。 一般而言,包括例程、程序、對象、組件、數據結 構、協議等的程序模塊指的是執(zhí)行特定任務或實現特定抽象數據類型的代碼。
本發(fā)明可以在各種系統配置中實施,這些系統配置包括手持式設備、消費電子 產品、通用計算機、更專用計算設備等等。本發(fā)明也可以在其中任務由通過通 信網絡鏈接的遠程處理設備執(zhí)行的分布式計算環(huán)境中實施。
具體地參考圖1,提供了示例性主設備100的各方面。主設備100可以是
計算機或計算設備、游戲控制臺、立體聲汽車音響本體等等,并且只是合適的 操作環(huán)境的一個示例。并不旨在對本發(fā)明的使用范圍或功能提出任何限制。不 應存在關于所示的組件的任何一個或組合的任何依賴或需要的解釋。
參考圖l,主設備100包括直接或間接地耦合以下設備的總線110:存儲
器112、 一個或多個處理器114、 一個或多個呈現接口 116、輸入/輸出端口 118、 輸入/輸出組件120、以及說明性電源122??偩€110可以是一條或多條總線(諸 如地址總線、數據總線、或其組合)。盡管為了清楚起見用線條示出了圖1的 各框,但是,實際上,描繪各組件并不是那樣清楚,并且用比喻方法,線條更 精確地將是灰色的和模糊的。例如,人們可以將諸如顯示設備等的呈現組件認 為是I/0組件。同樣,處理器具有存儲器??梢哉J識到,這是本領域的特性并 且重申圖1只是例示可結合本發(fā)明的一個或多個實施例來使用的示例性主設 備。在諸如"工作站"、"服務器"、"膝上型計算機"、"手持式設備"等 分類之間沒有區(qū)別,因為所有都被認為是在圖1的范圍之內的并且被引用為作 為一種類型的計算機的主設備。
主設備100通常包括各種計算機可讀介質。作為示例而非限制,計算機可 讀介質可以包括隨機訪問存儲器(RAM);只讀存儲器(ROM);電可擦除 可編程只讀存儲器(EEPROM);閃存或其他存儲器技術;磁帶盒、磁帶、磁 盤存儲或其他磁存儲設備;諸如拇指型驅動器、閃存卡等的可移動介質;以及 載波或可用于對所需信息進行編碼并且可由主設備100訪問的任何其他介質。 存儲器112包括易失性和/或非易失性存儲器形式的計算機存儲介質并且包括 上述介質類型中的任一個。
主設備100包括從諸如存儲器112或I/O組件120等各種實體讀取數據的 一個或多個處理器。呈現接口 116向用戶或其他設備呈現數據指示并且可以成 為設備100的一部分或耦合到設備100。示例性呈現組件包括顯示設備、揚聲 器、打印組件、振動組件等等。1/0端口 118允許主設備100邏輯上耦合至包
括I/O組件120的其他設備,其中某些可以是內置的。說明性組件包括話筒、
操縱桿、游戲手柄、圓盤式衛(wèi)星天線、掃描儀、無線設備等等。
現在轉到圖2A,示出了耦合到主設備212的媒體設備210。媒體設備210 能夠讀取由參考標號211A和211B指定的一個或多個機器可讀媒體。該媒體 如上所述可以是永久的或可移動的。在各實施例中,媒體設備210可以采用電 子設備的形式,諸如數碼照相機214、 PDA 216、移動電話218、便攜式音樂播 放器220、或便攜式媒體播放器222、或者未示出但指示為由省略號224來構 想的各種其他設備。下文中,媒體設備210將被稱為從設備210,因為在本發(fā) 明的上下文中,它作為相對于主設備212的從設備來操作。主設備212包括用 于執(zhí)行本發(fā)明的各功能方面的一組機器可讀指令225。主設備212可以釆用膝 上型計算機226、無線電汽車音響本體228、游戲控制臺230、某一其他形式的 計算設備232、或者未示出但也由省略號來表示的某一其他主設備。
主設備212被示為包括由參考標號234、 236、和238指定的多個做出請 求的應用程序。這并不是對等環(huán)境,因為從設備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具有結合各自的
200780007485.5
說明書第8/18頁
序列指示符來使用以向諸如應用程序234等的說明性應用程序呈現信息的最大
序列值指示符。
在本發(fā)明的實施例中,使用基于對象屬性的協議(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 (媒體傳輸協議)"的規(guī)范中。這三個文獻中的每一 個至少出于所描述的目的通過引用明確結合于此。
在基于對象的協議中,對象作為整個對象來傳輸。S卩,對對象做出請求。 這一方案的優(yōu)點是所請求的文件對于諸如文件結構和操作系統之類的事情變 得不可知。因此,文件能夠跨不同的操作系統和文件系統來傳送。文件變成簡 單地從一個設備傳輸到另一個設備的互存在。注意,當此處對于傳輸文件做出 引用時,旨在包括傳輸文件的副本的概念而不是實際上移動文件。這在本領域 中是公認的,并且在本申請全文中闡明每個區(qū)別會模糊本發(fā)明。
在一個實施例中,主設備212是在控制之下的,并且從設備210將試圖展 示其內容。在對等環(huán)境中,其角色可以是顛倒的。g卩,主設備也可以是從設備 而從設備也可以是主設備。本發(fā)明涉及解決呈現出不同于對等環(huán)境的問題的問
題的一對多環(huán)境中相關聯的問題。本發(fā)明的適用操作環(huán)境包括向媒體播放器請 求其內容的汽車無線電、請求耦合到其上的設備的信息的游戲控制臺、以及都
明確地在圖2A中示出的大量其他示例、以及本領域的普通技術人員在閱讀本
發(fā)明時可構想的許多其他設置。
如上所述,本發(fā)明要解決的問題之一 (不是唯一)是能夠向電子設備的做 出請求的應用程序快速地展示新的或改變的內容。對于該問題有許多方面,并 且進一步的目標是能夠標識出在一改變序列中至少相對于該設備上一次與主
設備212進行通信的時間一特定對象何時發(fā)生了特定改變。各種方法將不起作
用。例如,數碼照相機上的時鐘不是圖片實際上何時拍攝的可靠指示符,不提
供相對于上一次與做出請求的設備進行通信何時發(fā)生改變的指示,并且甚至可
能不提供足夠的粒度以唯一地標識何時拍攝圖片的序列位置。不幸的是,許多 消費者簡單地不設置其數碼照相機上的時鐘。
此外,當人們穿過時區(qū),尤其是向西旅行時,甚至設置其時鐘的人將最終 向后設置其時鐘,這可導致某張圖片是在另一張之前拍攝的錯誤指示,而實際 上它是在另一張之后拍攝的。該時鐘也不提供關于該設備上一次何時與主設備 212進行通信的任何相對測量。
使用時鐘作為潛在的序列指示符的另一個說明性缺點是該時鐘可能不夠 精確。某些高端照相機具有快速連續(xù)地拍攝多張圖片的能力,包括作為保守估 計的每秒若干張圖片。如果時鐘只將時間維持到秒,則快速連續(xù)地用高速快門 速度拍攝的十張圖片將得到所有圖片上的相同的時間戳。
注意諸如并包括對等同步技術的現有技術將不會對確定能夠通用地標識 可歸于諸如從設備210等的電子設備上的對象的關系序列屬性有任何指導。因 為已經在不同的范例中完成的舊方式想法并不有助于應用到解決包括對象集 242和許多發(fā)起應用程序234、 236、以及238之間的一對多關系在內的本發(fā)明 的操作環(huán)境中的問題,所以這一傳統邏輯實際上混淆了該問題。再一次,問題 之一是能夠快速地標識改變的對象(包括屬性已改變的對象)以及新創(chuàng)建的對 象而不必在主設備212上完整地制作從設備210的內容(以及或許對應于所存 在的那樣多的主應用程序的其許多實例)的鏡像并且不必枚舉電子設備的完整 內容。 圖2B示出了從設備210的某些對象在其他對象改變(修改或新的)時如 何能夠保持不變。例如,由參考標號260表示的對象是未改變對象;即,相對 于從設備210上一次與主設備212進行通信的時間沒有改變。在某些實施例中, 該指定可以是用戶控制的或設備控制的,以使得僅僅將從設備210連接到主設 備212并不用作通信事件。
改變的對象由參考標號262來指示。如此處所使用的,"改變的"對象是 修改的或包括新創(chuàng)建的對象的對象。還示出了已刪除文件列表264,這提供了 跟蹤從從設備210刪除的對象的一種方式。該列表可被設置為預設長度以使其 不消耗比所需更多的空間。例如,它可被配置為跟蹤最后N個對象。該列表能 夠簡單地由主設備212來請求以標識哪些對象已被刪除。在一個實施例中,該 列表采用由標識已刪除對象的標識符以及相應的序列指示符組成的2 x N數組 265的形式,其中序列指示符指示至少相對于從設備的最大序列值指示符248 或250,并且還相對于對現有對象何時做出改變或新對象何時被創(chuàng)建,對象何 時被刪除。
在本發(fā)明的一個實施例中,標識修改的對象或新創(chuàng)建的對象262通過提供 每個對象上的額外屬性來實現,該屬性在一個實施例中接收可用于標識相對于 其他對象的改變,并且在某些實施例中僅僅至少相對于基準指示符(可以是最 大序列值指示符) 一對象何時發(fā)生改變的對象序列指示符(OSI)。該序列指 示符可以是單調遞增或單調遞減的。在兩種情形中,后續(xù)值至少與所有先前的
值一樣極端。單調指示符是非遞增或非遞減的。非遞減值從不減少,但相鄰的 值可能是相同的。類似地,非遞增值從不減少,但相鄰的值可能是相同的。在 一個實施例中,序列指示符是非遞減的。即,該值始終增加,從不振蕩。但是 在所附權利要求書的范圍內可以構想可以從一個極大的數字開始并隨著時間 繼續(xù)而減小。因此,在一個實施例中,本發(fā)明釆用具體化的數據結構的形式, 一個說明性的此類數據結構在圖3A中由標號300來引用。
圖3A描繪了可結合本發(fā)明的一個實施例來使用的數據結構的說明性表 示。該數據結構包括一新的字段,即包括序列指示符312作為其屬性之一的序 列標識字段310。數據結構300還包括由標號314引用的一組其他數據對象屬 性,這些屬性說明性地包括文件名屬性316、分辨率屬性(視情況而定)318、
以及由標號320說明性地表示的各種其他屬性。本發(fā)明還提供凈荷改變指示符 字段322以接收指示當與其相應屬性中的一個比較時媒體凈荷326本身是否已 經改變的相應的屬性324。例如,如果媒體凈荷的實際內容已改變,則凈荷改 變指示符322可以是"1",而如果與凈荷相關聯的屬性而不是凈荷本身改變, 則該指示符可以是"0"。
如將在以下討論的,當數據對象改變或新創(chuàng)建時,其序列標識字段310 用序列指示符312來填充。設備可能存儲數百、數千、或甚至更多的數據對象, 其每一個都具有相應的序列標識字段310和序列指示符312。這些序列指示符 的集合將結合通常與設備相關聯的、而且還可與相應的數據對象集相關聯的最
大序列值指示符來使用,以使得能夠標識出序列中相對于最大序列值指示符和 /或相對于彼此(視情況而定)對各對象發(fā)生的改變。圖3B僅僅描繪了由標號 300A引用的表達數據結構300的可選方式。該數據結構也包括序列標識字段 310A以及相應的序列指示符312A。本領域的普通技術人員可以理解,存在多 種描繪圖3A的數據結構的方式,該多種方式并不意味著本質上是限制的,而 是意味著僅示出將額外的屬性關聯到對象以使得該屬性指示在改變的序列中 即時對象何時發(fā)生改變的具體化的概念。
因此,在一個實施例中,本發(fā)明利用基于對象屬性的協議中的單調遞增屬 性來標識于其做出改變的序列,并進一步利用與一組對象和/或與設備本身相關 聯的基準指示符來標識在該序列中發(fā)生改變的位置。這提供了檢索已創(chuàng)建或諸 如在上一次與主設備212進行通信之后等在某一事件后已改變的對象列表的能力。
本發(fā)明的許多優(yōu)點中的一個是其提供了對于如何將數據存儲在從設備 210上的實現細節(jié)的高度的靈活性。只要對象是以使每個對象都附帶有諸如字 段310A等的序列標識字段(主設備212知道以便進行査找的字段)的方式來 存儲的,就可給予開發(fā)者許多自由。數據(例如,242、 246、 248、以及250) 可以用各種方式來存儲,但是它以標準形式呈現給主設備212。設備210跟蹤 改變的方式能夠跨各種設備而變化,并且可留給設備制造商決定。這實際上是 本發(fā)明的益處。通過建立用于表達對這些改變的跟蹤的公共平臺而不管設備如 何在內部存儲它,在設備類型和做出請求的應用程序之間的一對一關系就不是
必需的,并且不需要專有解決方案。因此,重要的是理解先前所提及的圖3A
和3B的說明性數據結構并不是輕率地被稱為說明性的。它們僅僅是非常說明 性的??梢岳酶鞣N存儲方案,但僅出于解釋的目的只提供兩種。
首先參考圖4來提供從設備210可以存儲其數據的僅僅一種方式的額外細 節(jié)。圖4的方法400示出了在步驟410處提供將與設備或數據對象集相關聯的 最大序列值指示符。因此,在一個實施例中,最大序列值指示符將對應于圖2A 上的參考標號248,并且數據對象集將對應于參考標號242。最大序列值指示 符是具有特定值的基準指示符。最大序列值指示符的值可基于各種情況而改 變。例如,在一個實施例中,該值在與主設備212進行通信后更新。在其他實 施例中,該值在對象的序列指示符被更新后更新。在另外一些實施例中,該值 可以自動地周期性地更新。將首先提供對于在其中最大序列值指示符在每次從 設備210上的對象發(fā)生一個或一組改變時更新的實施例的解釋。
回到圖4,在步驟412處,為每個數據對象242提供包括序列標識字段的 數據結構。因此,可以使用圖3A所示格式的數據結構。在步驟414處,做出 關于是否已經改變或新創(chuàng)建了任何對象242的判斷。本發(fā)明能夠跟蹤現有對象 的改變以及跟蹤新對象何時被創(chuàng)建。對象的改變包括與該對象相關聯的屬性的 改變。
如果對象沒有發(fā)生改變,則處理繼續(xù)到步驟416,在其中相應的對象的序 列指示符312被設為比最大序列值指示符248大。本領域的技術人員可以理解 實現類似功能的方式,這些方式被認為是在所附權利要求書的范圍之內。已經 描述了從一個非常大的數字開始并使所有數字相對于起始數字減小的說明性 示例。在該實施例中,在步驟418處最大序列值指示符在處理回到在其中從設 備210等待(420)直到對象改變或已被創(chuàng)建的狀態(tài)前更新。
現在將參考圖5提供對于本發(fā)明的實施例的更詳細的解釋。圖5描繪了一 流程圖以及一組數據對象的三個狀態(tài)以及由標號510、 512、和514引用的其相 應的對象序列指示符(OSI)。狀態(tài)510、 512、和514表示從設備210上的對 象的不同狀態(tài)。在第一個狀態(tài)510中, 一組對象序列指示符與相應的一組對象 518相關聯。
對象序列指示符516具有值"1001"、 "1002"、 "1003"、以及"1004"。 從圖例520可以看出,每個對象都處于未改變狀態(tài)。步驟522指示集合518中 的一個對象發(fā)生了改變。在該示例中,假設由標號526引用的對象524改變狀 態(tài)。流程圖500示出了在步驟528處從未改變狀態(tài)到已改變狀態(tài)的轉換通過由 參考標號528所指示的更新對象的相應的對象序列指示符來表示。此處,對象 524的對象序列指示符從"1002"更新到"1006"。數字"1006"是通過引用 那時的當前最大序列值指示符530 (具有值"1005")并且將對象526的對象 序列指示符設置為比最大序列值指示符530的值大的值來選擇的。參考標號 532所示的判定步驟指示最大序列值指示符基于本發(fā)明的各實施例可以被更新 或不更新。例如,在第一實施例中最大序列值指示符沒有被更新,并且處理將 繼續(xù)到步驟534,該步驟是指示最大序列值指示符值"1005"在更新對象526 的相應的對象序列指示符后繼續(xù)的占位符步驟。因為從設備210上一次與主設 備212進行通信時也將其最大序列值指示符530 "1005"傳送到主設備212, 所以這種情況是有可能的。
因此,在主設備212希望發(fā)現其上一次與從設備210進行通信之后的所有 改變的情況下,只要在與主設備212進行通信之后發(fā)生的改變用比前一個最大 序列值指示符530大的序列指示符來表示,主設備就將能夠發(fā)現所有這樣的改 變。包括該解釋以示出基于實現者的期望這一范例是可能的。
但在另一個實施例中,最大序列值指示符自動地或伴隨著對對象的對象序 列指示符的更新而更新。在這種情況下,處理將繼續(xù)到步驟536,其示出了其 中最大序列值指示符被更新,例如加2的一個實施例,其中對象的對象序列指 示符被更新為只比初始最大序列值指示符530大1。再一次,狀態(tài)514示出被 創(chuàng)建為可能具有甚至是與對象526的對象序列指示符相同的值的對象序列指示 符1006的新對象538。但在另一個實施例中,對象538的對象序列指示符將采 用比對象序列指示符"1006"大的值。在該實施例中,最大序列值指示符仍然 還將加l,采用由參考標號540引用的值"1007"。在最大序列值指示符在每 個對象的對象序列指示符被更新后沒有更新的情況下,它將在從設備210被耦 合到主設備212時更新并且被給予比對象序列指示符516中的任何一個都大的 值。
現在轉向圖6,提供了概括地由標號600引用的供從設備210向主設備212 展示關于一組對象242的信息的說明性方法。在步驟610處,從設備210能夠 從諸如234、 236、以及238等多個做出請求的應用程序接收多個對象信息請求 (諸如241A、 241B、以及241C所指示的那些請求等)。這是本發(fā)明的另一 個優(yōu)點,即能夠向多個應用程序而不是僅僅向單個應用程序提供諸如與各對象 的改變相關聯的序列信息等信息。
當從設備210被耦合到主設備212時,許多應用程序可能試圖與從設備 210進行通信。例如,如果從設備210采用音頻播放器220的形式,則各廠商 所創(chuàng)建的各種音頻播放應用程序將都感測到從設備210到主設備212的連接并 試圖詢問該設備。諸如241A、 B、 C的那些請求等的請求將被發(fā)送到從設備 210以供其或許列出所有新的內容,或只列出滿足特定準則的內容。
為了滿足這些請求,在步驟612處從設備210將確定正確的前一個最大序 列值指示符。例如,如果從設備從應用程序234接收到一個請求,則該從設備 將確定與應用程序234相關聯的正確的最大序列值指示符是由標號234A指示 的最大序列值指示符。類似地,如果請求241B來自于應用程序236,則應用 程序236將體提供邏輯以使得從設備210將知道最大序列值指示符236A是正 確的最大序列值指示符。
在步驟614處,從設備210使用做出請求的應用程序的最大序列值指示符 以及一組對象的序列指示符(諸如242或246的序列指示符)來滿足每個請求。 例如,如果做出請求的應用程序238將請求241C發(fā)送到從設備210以列出在 集合246中是新的所有那些對象,則從設備210將比較對象246中的每一個的 序列標識字段310并且傳回與其序列指示符比238A的序列指示符大的那些對 象相關聯的信息243C。應用程序238可以是具有最大序列值指示符"973"的 攝影應用程序。如果從設備210是照相機,并且具有組成參考標號246所指示 的集合的幾千張圖片,但是只有兩張圖像具有比"973"大的對象序列指示符, 則只與那兩張圖片相關聯的信息將被發(fā)送到設備212上的做出請求的應用程序 238。
類似地,如果應用程序238請求其在某一事件之前或之后刪除的所有對象 的指示,則從設備210能夠引用其刪除日志264以滿足這一請求。在另一個示
例中,應用程序可以請求只被通知對象的實際的二進制文件或媒體凈荷326是 否已經改變。在這種情況下,從設備210能夠引用各對象的凈荷改變指示符322 以快速指示哪些對象的媒體凈荷已經改變。
如上所述,關于在從設備210上存儲信息的各方面的較低級細節(jié)能夠變 化,且如何將信息存儲并且甚至呈現給主設備212的較低級細節(jié)也能夠變化。 例如,在一個實施例中,每次對對象做出改變,并且更新該對象的相應的對象 序列指示符時,可以將該對象的指示符316添加到用作快速引用以滿足做出請 求的應用程序的信息請求的日志。在其他實施例中,伴隨著接收請求可在數據 上執(zhí)行査詢。在該實施例中,如果做出請求的應用程序請求例如具有比某一數 字大的序列指示符的所有數據對象,則可基于所提供的準則快速查詢元數據 314、 310、 322。更重要的是,應結合基于對象的協議來提供數據結構以使得 序列標識字段310與對象相關聯并且伴隨著在該對象的改變而填充以使得可至 少相對于基準指示符,但在其他實施例中相對于對其他對象所做出的改變,來 確定這一對象的時序。
現在轉向圖7,提供了流程700作為主設備能夠執(zhí)行用于接收關于存儲在 從設備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處關于所確定的對象執(zhí)行所需 的任何操作。說明性操作可包括獲取、放置、以及改變檢測操作。主設備212 可能希望接收在信息243A中所指示的對象的副本。主設備212可能希望刪除 一組對象。此處可包括大量示例,而這樣做是不切實際的,但是本領域的普通 技術人員將容易理解當應用程序234能夠基于在數據300存在的情況下提供的 序列準則接收與對象集242的特定對象相關聯的信息234A的情況下有大量的 可能性適用以滿足該準則。在步驟718處,主設備212接收從設備的當前最大 序列值指示符248,該指示符現在被存儲為前一個最大序列值指示符。因此在 步驟720處,基于該設備的當前最大序列值指示符來更新前一個最大序列值指 示符。
現在將參考包括本發(fā)明的各方面的圖8A和8B提供最一個說明性示例。 出于該示例的目的,做出請求的應用程序將被假定為234,而適用的數據集將 會是與最大序列值指示符248相關聯的數據242。在圖8A本身中還提供了具 體的示例,并且這些示例將用出現在圖8A和/或8B中的新標號來引用。首先 轉向圖8A,在步驟810處,從設備210被耦合到主設備212。狀態(tài)812表示具 有相應的對象序列指示符816的對象814的說明性狀態(tài)。如圖所示,對象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的狀態(tài)由狀態(tài) 842來表示。可以看出,新圖片844具有比該設備的先前的最大序列值指示符 818大的相應的對象序列指示符846。在這種情況下,新圖片具有對象序列指 示符"00152" 、 "00154"、以及"00156"。還如狀態(tài)842所示,從設備210 的設備最大序列值指示符已被更新到值"00157"。
繼續(xù)至圖8B,假設在步驟848處用戶重新連接到主設備212。在一個實 施例中,保留從設備的最大序列值指示符,如由狀態(tài)852中的參考標號850所 指示的。與相應的做出請求的應用程序相關聯的前一個最大序列值指示符仍舊 是"00151"。在步驟854處,表示為具有標號0052至0054的圖片844被識 別為相關的,因為其各自的對象序列指示符846比主設備的前一個最大序列值 指示符"00151"大。在步驟856處,如果需要可以只在相關的對象上可任選 地執(zhí)行操作。在步驟858處,主設備212的前一個最大序列值指示符被更新為 從設備210的最大序列值指示符"00157"。在步驟860處,假設該用戶斷開 連接但然后改變了 pic—0050的分辨率。如狀態(tài)862所指示的,pic_0050的對象 序列指示符864被更新為具有比值為"00157"的該設備的當前基準指示符850 大的值。從設備210的最大序列值指示符被更新為如參考標號866所指示的值 "00159"。步驟868指示當重新連接時,pic_0050將被識別為相關的,因為 其具有比前一個最大序列值指示符"00156"大的相應的對象序列指示符。主 設備將存儲從設備的最大序列值指示符"00159"。
此處已對執(zhí)行諸如確定什么對象具有比某一基準值大的值等的分析做出 了參考。當然,人們也可基于什么值大于或等于該值或某一其他變型來執(zhí)行分
析。但在所有情況下,結合一組序列標識值來使用某一基準值。如何精確地使 用那些值可能變化,但是利用它們被認為是在所附權利要求書的范圍之內的。 在某些實施例中,最大序列值指示符可以自動地并獨立于改變主動地增大。
以上某些示例是在作為主設備212的計算設備的上下文中提供的。但是如
上所簡述,主設備并不限于是計算機。本發(fā)明的各實施例適用于在其中改變由 標準格式的序列指示符來標記,并且將這些序列指示符與基準指示符相比較以 確定相關對象的任何環(huán)境。
所描繪的各組件以及未示出的組件的許多不同的安排都是可能的,而不背 離本發(fā)明的精神和范圍。已帶著說明而非限制的意圖描述了本發(fā)明的各實施 例。不背離其范圍的各替換實施例將對本領域的技術人員是顯而易見的。技術 人員可以開發(fā)實現上述改進的各替換手段而不背離本發(fā)明的范圍。例如,最大 序列值指示符的當前和前一個值可以在主設備、從設備、或其組合上維護。并 且最大序列值指示符可用于確定最大對象序列標識符(或其范圍,例如,"最
大對象序列標識符比X小"),但其本身并不需要比所有對象序列標識符大。 更重要的是,利用該最大對象序列標識符來確定下一個正確的對象序列標識 符。
可以理解,特定的特征和子組合是有用的,并且可以使用而無需參考其他 特征和子組合并且被認為是在權利要求書的范圍之內的。并非需要以所描述的 特定次序來執(zhí)行在各附圖中所列出的所有步驟。
權利要求
1. 一種利用用于在主設備(212)和從設備(210)之間通信的基于對象的協議的方法700,所述方法包括幫助與所述從設備的通信鏈接,所述從設備包括,(1)分別與一組相應的對象序列指示符(312、830、846)相關聯的一個或多個對象(242、246);以及(2)指示所述從設備上的最大對象序列指示符的當前最大序列值指示符(248、250);基于指示所述從設備(210)前一次何時與所述主設備(212)進行通信的前一個最大序列值指示符,來傳送對于關于所述從設備(210)上的對象的信息的請求;基于所述前一個最大序列值指示符(826)以及所述對象序列指示符(312、830、846),來接收與滿足所述請求的對象相關的信息(243A、243B、243C)。
2. 如權利要求l所述的方法,其特征在于,所述主設備包括計算設備,并 且其中所述從設備包括媒體播放設備。
3. 如權利要求2所述的方法,其特征在于,所述媒體播放設備是播放音頻 文件、視頻文件、或其他數據文件中的一個或多個的設備。
4. 如權利要求1所述的方法,其特征在于,所述對象序列指示符是一組值 中的一個值,在該組值中,對于任意兩個值,后面的值至少與前面的值一樣極 端。
5. 如權利要求4所述的方法,其特征在于,結合所述對象序列指示符來利 用所述前一個最大序列值指示符包括確定其相應的對象序列指示符超過所述 前一個最大序列值指示符的第一對象集。
6. 如權利要求4所述的方法,其特征在于,還包括以下的一個或多個 將對所述第一對象集的引用傳送到所述主設備;或者 將所述第一對象集傳送到所述主設備。
7. 如權利要求1所述的方法,其特征在于,所述前一個最大序列值指示符 由所述主設備來提供。
8. 如權利要求7所述的方法,其特征在于,還包括從所述從設備接收其當 前最大序列值指示符并且將其存儲為所述前一個最大序列值指示符。
9. 如權利要求1所述的方法,其特征在于,還包括標識從所述主設備刪除 的一組對象。
10. —種或多種有形機器可讀介質(211A、 211B),其上包含有一組一 個或多個數據對象(242)、分別與每個數據對象相關聯的數據結構(300)、 以及用于協助呈現關于所述數據對象的信息的與所述一組一個或多個數據對 象(242)相關聯的最大序列值指示符(248),所述數據結構(300)包括與第一數據對象相關聯的第一屬性集(314);以及 也與所述第一對象相對應的并且用指示相對于所述最大序列值指示符 (248)所述第一數據對象何時發(fā)生改變的對象序列指示符(312)來填充的序 列標識字段(310),所述改變包括新數據對象的創(chuàng)建。
11. 如權利要求10所述的介質,其特征在于,所述最大序列值指示符 被更新為至少與所述數據結構的對象序列指示符中的任一個一樣極端。
12. 如權利要求10所述的介質,其特征在于,所述數據對象發(fā)生的改 變包括與所述對象相關聯的屬性的改變。
13. 如權利要求10所述的介質,其特征在于,還包括已刪除對象的指 示,該指示包括指示至少相對于所述最大序列值指示符一對象何時被刪除的相 應對象序列指示符。
14. 一種用于標識從設備的新創(chuàng)建的對象、修改的對象、或刪除的對象 中的一個或多個的方法,包括利用如權利要求IO所述的數據結構。
15. —種或多種具有包含在其上的一組機器可讀指令的有形機器可讀 介質(211A、 211B),當由從設備(210)來處理所述指令時,使得所述從設 備執(zhí)行向在主設備(212)上運行的一個或多個做出請求的應用程序(234、 236、 238)展示關于一組數據對象(242)的信息(243A、 243B、 243C)的方法400, 所述方法包括從所述做出請求的應用程序(234、 236、 238)接收多個獨立對象信息請 求(241A、 241B、 241C),所述對象信息請求中的每一個都針對關于所述數 據對象集中的至少一部分數據對象的信息; 從每個請求(241A、 241B、 241C)中標識指示所述從設備(210)上一次 何時與相應的做出請求的應用程序(234、 236、或238)進行通信的相應的前 一個最大序列值指示符(248);以及結合所述相應的前一個最大序列值指示符(248)來利用先前存儲的對象 序列指示符(516)以滿足所述多個對象信息請求(241A、 241B、 241C)中的 每一個,以使得每個做出請求的應用程序接收只關于其相應的對象序列指示符 相對于所述最大序列值指示符(248)滿足準則的那些數據對象的信息(243A、 243B、 243C)。
16. 如權利要求15所述的介質,其特征在于,所述對象序列指示符是 在一組單調遞增的值中的值。
17. 如權利要求16所述的介質,其特征在于,所述對象序列指示符指 示相對于其他數據對象的改變何時發(fā)生了改變。
18. 如權利要求16所述的介質,其特征在于,所述對象序列指示符甚 至在時間戳不指示唯一的序列位置時指示相對于其他數據對象的改變何時發(fā) 生了改變。
19. 如權利要求15所述的介質,其特征在于,所述機器可讀指令還包 括用于標識已刪除對象以及相對于所述前一個最大序列值指示符所述已刪除 對象何時被刪除的指令。
20. 如權利要求15所述的介質,其特征在于,所述機器可讀指令還包 括用于將對所述數據對象的至少一部分的一個或多個引用從所述從設備傳送 到所述主設備的指令。
全文摘要
提供了一種向主設備展示關于一組數據對象的信息的方法。結合每個都與數據對象(諸如設備上的媒體文件)相關的一組序列指示符來使用基準序列指示符以滿足對關于滿足傳送自多個做出請求的應用程序的序列準則的特定對象的信息的多個獨立請求。一種具體化的數據結構包括與數據對象相關聯的一組屬性以及也與該數據對象相對應的并且用指示數據對象何時發(fā)生改變的數據對象指示符填充的序列標識字段。
文檔編號G06F15/16GK101395591SQ200780007485
公開日2009年3月25日 申請日期2007年1月23日 優(yōu)先權日2006年3月3日
發(fā)明者B·D·曼德斯 申請人:微軟公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1