專利名稱:即時通信對象存儲的制作方法
技術領域:
本發明涉及計算機通信。特別是涉及即時通信對象存儲。
(2)背景技術即時通信正成為計算機裝置用戶中很流行的通信工具。即時通信(IM)應用程序(例如華盛頓州,雷蒙德的微軟公司的WINDOWS信使(WINDOWSMessenger)系統,Yahoo!信使,AOL即時信使(AIM)等等)使用戶能與一個或多個在用戶的私人聯系人列表中標識的聯系人進行實時對話。私人列表通常存儲在服務器上,例如交換器或中繼服務器,通過該服務器建立對話。然后,交換器服務器將入站消息路由至合適的接收方。
隨著即時消息系統的改進,它們通常提供更多的特征,使即時消息對話成為更豐富的經歷。除了文本之外,這些特征在不同類型的數據對象上操作。例如客戶的用戶貼圖特征使用戶能生成和傳送一個在另一用戶計算機上唯一地表示該用戶的客戶的用戶貼圖。這種特征對象的傳送通常需要比文本更高的帶寬,來無差錯地顯示給接收方。另外,在對話期間表示一個用戶的對象和訪問該對象的頻率相比通常很少改變。
不幸的是,傳統的即時通信應用程序,在防止這些對象的竄改時,不提供機構來有效地管理特征對象。例如如果用戶要向第二用戶簡單地發送他/她獨特的客戶的用戶貼圖,該第二用戶可改變第一用戶的貼圖,這樣該貼圖就不再以他/她想要被代表的方式代表第一用戶。
(3)發明內容描述了解決上述問題和其它問題的示例實施。
一個實施包括用于通過接收一個與遠程計算機上的用戶相關聯的名字傳送對象數據的方法,該名字包括位置數據和散列值,該散列值唯一地與一對象數據相關聯,該數據對象代表用戶,并根據散列值或由位置數據標識的位置,從本地高速緩沖存儲器中的一個檢索數據對象。
另一個實施包括用于管理在即時通信對話中代表用戶的對象的系統,其中所述系統包括一代表用戶的數據對象,該數據對象具有一對象名,包括位置標識符和散列值。該對象名允許且可操作用于根據位置標識符標識的位置檢索的數據對象,并在散列值的基礎上將該數據對象存儲在本地高速緩沖存儲器中。
(4)
圖1示出利用對象存儲進行即時通信對話的示例網絡環境。
圖2為具有在信使平臺上示例性的實施以提供對象管理用的對象存儲的示例類的類圖。
圖3示出具有用于建立對象和用對象存儲存儲對象的示例操作的存儲對象操作流程圖。
圖4為具有用于選擇具體化,邀請另一用戶來將所述具體化顯現給用戶的裝置,并初始化用于將所述具體化在用戶裝置呈現的專用的資源的示例操作的流程圖。
圖5示出一示例的對象檢索情況500,其中請求的數據位于本地文件系統中。
圖6示出另一示例的對象檢索情況600,其中請求的對象數據位于網絡存儲器裝置上。
圖7示出另一示例的對象檢索情況700,其中請求的對象數據位于對等計算機上。
圖8示出一示例系統,它提供一個利用管理特征對象的對象存儲來參與即時通信對話的合適的操作環境。
(5)具體實施方式
見附圖,其中相同的參考號指相同的元件,示出多種在合適的計算機環境中實施的方法。盡管沒有要求,將在計算機可執行指令(例如由個人電腦和/或計算裝置執行的程序模塊)的總的背景下對多種示例的方法進行描述。程序模塊通常包括例執行特定任務或實施特定抽象數據類型的例行程序、程序、對象、組件、數據結構等等。另外,本領域的技術人員將理解可將多種示例的方法與其它計算機系統配置一起應用,包括手提裝置、多處理器系統、基于微處理器的或可編程的消費電子產品、網絡PC機、小型計算機、大型計算機等等。還可以將多種示例的方法用于分布式計算機環境,其中任務是由通過通信網絡鏈接的遠程處理裝置執行的。在分布式的計算機環境中,可將程序模塊放置在本地及遠程的存儲器裝置。
在這里的一些圖中,在各個的“方框”中綜合了多種算法動作。這些方框描述了當過程處理進行時作出并執行的特定動作或決定。在運用了微處理器(或等同物)的地方,這里出現的流程圖為“控制程序”或可被這樣的微控制器(或等同物)用來完成理想控制的軟件/固件提供了基礎。由于過程被作為可存儲在存儲器中的機器可讀指令實施,結果當由處理器執行時,執行方框中示出的多種動作。
本領域的技術人員在這些流程圖和在這里提出的其它說明的基礎上可以容易地寫出這樣的控制程序。應該理解這里描述的主體不僅包括在編程執行下述動作時的裝置和/或系統,還有配置成編程微控制器的軟件,及可以在其上包含所述軟件的任何和所有計算機可讀媒體。這些計算機可讀媒體的范例包括,但不限定于,軟盤、硬盤、CD、RAM、ROM、閃存等等。
綜述揭示了在即時通信系統中管理對象的示例方法、系統和裝置。通常,對象存儲提供一個一次寫入,多次讀取的對象存儲和檢索系統,其中對象是不變的。對象存儲提供一個界面,通過該界面,特征應用程序能用對象名存儲或檢索對象。該對象存儲編碼對象數據以建立一個唯一的標識符,通過該標識符對象存儲從本地高速緩沖存儲器,或從多個位置中的一個訪問該對象。可以本地地或遠程地存儲該對象。該對象存儲能解碼對象名以取得位置和/或創建者信息,以從本地或遠程存儲器檢索該對象。
用于在即時通信情況中存儲對象的示例系統圖1示出用于即時通信對話的示例網絡環境100。兩個客戶機102和104通常能通過網絡106或直接通過直接連接108相互通信。交換器服務器110促進通過網絡106在客戶機(1)102和客戶機(2)104之間的通信。客戶機(1)102和/或客戶機(2)104可連接至交換器服務器110,以建立一個即時通信對話。用直接連接108,不需要通過交換器服務器110路由數據,而可以以對等的方式在客戶機(1)102和客戶機(2)104之間傳送數據。
即時通信(IM)平臺112使客戶機(1)102和客戶機(2)104能進行即時通信對話。IM平臺112的用戶通過用戶界面(未示出)與IM平臺112相互作用來將消息發送到客戶機(2)104,和從客戶機(2)104接收消息。該IM平臺112包括一個或多個特征114(也叫作最終用戶特征(EUF))、對象存儲116、對象高速緩沖存儲器管理程序和傳輸協議棧120。該傳輸協議棧提供一應用編程界面(API)122,籍此,諸如特征114和對象存儲116之類的更高層次的功能就可以用傳輸協議棧120中的功能來發送和接收數據。
傳輸協議棧120和傳輸API122通常為客戶機(1)102提供以對等的方式在網絡106上和/或直接連接108上與客戶機(2)104進行通信的方法。該傳輸協議棧120建立用于傳送包括與特征114和對象存儲116相關聯的數據在內的即時通信數據的必要連接。該傳輸協議棧120和傳輸API122的示例實施將在未決美國專利申請號_________,名稱“用于即時通信的傳輸系統(Transport System forInstant Messaging)”中進行詳細描述。
特征114是包含在IM應用程序中,或由IM應用程序執行的功能或應用程序,以呈現與特征114相關聯的數據。可用特征114表現的數據類型、呈現數據的方式、特征114可在數據上執行操作和/或特征114提供給用戶來與數據相互作用的交互式選項來表征特征114。例如客戶的用戶貼圖特征114將圖象數據呈現在用戶界面上的屏幕貼圖中;文件傳送特征114使用戶能選擇文件,并將文件發送到即時通信聯絡人。作為示例而非限定,特征114可包括客戶表情圖標、印色、插入圖像和其它應用等等。
特征114在即時通信對話中使用對象顯現數據。對象由對象存儲116管理。對象存儲116提供方法和數據,用于存儲、訪問或管理在即時通信中使用的數據對象。例如客戶的表情圖標特征114可使用對象存儲204在客戶機(1)102上顯示來自客戶機(2)104的客戶的表情圖標。如以下將要進一步詳細討論的,對象存儲116能通過加密數據(例如通過散列與對象相關聯的標識符數據)提供數據安全度。
客戶機(1)102包括文件系統124和高速緩沖存儲器126。可以將對象存儲在文件系統124和高速緩沖存儲器126中。文件系統124是用于分類在客戶機(1)102中的文件的標準計算機文件系統。高速緩沖存儲器126包括諸如硬盤或軟盤、和/或隨機存取存儲器(RAM)之類的存儲器。對象高速緩沖存儲器管理程序118管理高速緩沖存儲器126中的對象。
對象高速緩沖存儲器管理程序118的一個實施使用由微軟公司的因特網資源管理器使用的WinINET高速緩沖存儲器。在這個實施中,當從網址中檢索到一個對象時(例如一個統一資源定位器URL)),WinINET會自動將對象寫入WinINET高速緩沖存儲器。如果從URL位置以外的位置檢索對象,對象高速緩沖存儲器管理程序118將請求傳輸協議棧120檢索該對象,且對象高速緩沖存儲器管理程序118將該對象寫入WinINET高速緩沖存儲器。
網絡106包括存儲器128,它也能保存能被客戶機102和104使用的對象數據。客戶機(1)102可以通過網絡106訪問網絡存儲器128,以檢索對象。客戶機(2)104可檢索和使用在客戶機(1)102上的對象,反之亦然。如以下將進一步討論的,對象存儲116通過確定請求的對象在哪里和從確定的位置檢索它們,來處理對對象的請求。因此,如圖1所示,對象存儲116可確定對象是在本地高速緩沖存儲器126中,在本地文件系統124中,在網絡存儲器128中,和/或在遠程客戶機(2)104上。
盡管未示出,與那些包含在客戶機(1)102上的模塊相似的模塊包括在客戶機(2)104上。因此,客戶機(2)104包括信使平臺、特征、對象存儲、對象高速緩沖存儲器管理程序、傳輸協議棧、文件系統和高速緩沖存儲器。
盡管圖1中的示例環境100僅描述了在一個對話中的兩個客戶機102和104,應理解的是一個對話中可以包含兩個以上的客戶機。兩個或兩個以上的客戶機可以多點的方式進行通信,其中每個客戶機可具有到兩個或兩個以上其它客戶機的連接。以下提供可以用在網絡環境100中的示例操作和系統的更詳細的說明。
圖2示出具有可在信使平臺中(例如IM平臺112,圖1)示例性實施以提供對象管理的示例類的類圖200。一個類是代表客戶機(例如客戶機(1)102,圖1)上的對象存儲(例如對象存儲116,圖1)的ObjectStore類202。該ObjectStore類202使用一個代表存儲的對象的StoreObject類204。類型枚舉器206定義一種或多種對象。那些在本領域的技術人員將熟悉面向對象軟件的設計及諸如圖2中的類圖200之類的類圖設計。
信使應用程序(例如IM平臺112,圖1)中的特征(例如特征114,圖1)與ObjectStore類202(或ObjectStore類的一個范例)接口,以存儲和檢索StoredObject類204的范例。在一個具體的實施中,該ObjectStore類是一個靜態的單獨個體,這意味著只有對象存儲類202中的一個范例是建立用來處理來自所有可能被執行的特征的請求。
StoredObjectTypeEnum206中提供了示例的對象類型。如圖2的具體實施中示出的,該枚舉的類型為客戶表情圖標、用戶的貼圖、背景、具體化和共享文件。這些類型可涉及用戶能生成的代表該用戶的對象。用戶可建立一個諸如客戶表情圖標、具體化、或貼圖那樣的對象,它對用戶來說唯一的。
如圖2所示,ObjectStore類202提供三個函數GetObject(StoredObject)、StoreObject(StoredObject)和DeleteObject(StoredObject)。如函數名所指示的,特征可通過調用GetObject函數檢索一存儲的對象,通過調用StoreObject函數存儲一對象,通過調用DeleteObject函數刪除一個對象。每個函數包括StoredObject類204中的一個參數。
StoredObject類204指數據的對象。在對象中的數據是由任何尺寸和或類型的數據中的任何二進制大對象(BLOB)組成的。StoredObject類204的范例不需要用范例所引用的對象數據存儲。例如客戶機(1)102(圖1)可具有一個引用存儲在網絡存儲器128(圖1)或諸如客戶機(2)104(圖1)之類的其它客戶機上的對象數據的StoredObject2類204的范例。對象數據的實際位置對使用對象存儲類202和StoredObject類204的范例的特征是透明的。
StoredObject類204描述對象數據的對象元數據。該示例的元數據208包括Name(名字)字段、Type(類型)字段、FriendlyName字段、Hash1字段、Hash2字段、Creator字段和Location字段。該名字是一個標識對象的字符串。在一個實施中,Name字段是一個或多個對象元數據208字段的組合。Type字段是指定對象類型的StoredObjectTypeEnum206中的類型之一。FriendlyName字段是用戶能給對象的用戶可讀名字。
在一個實施中,Hash1字段具有一個唯一地與對象數據相關聯的值,并且可用于定位在高速緩沖存儲器中的對象數據。hash1值是用加密的散列函數產生的,例如安全散列算法1(SHA1)。SHA1函數將對象數據作為輸入,以生成hash1值。調用SHA1函數的簽名(Signature)的范例是SHA1(數據),其中數據指要存儲的對象數據。
SHA1是用于計算對象數據的‘壓縮代表’的算法。該‘壓縮代表’是固定長度的,并稱為‘報文摘要’或‘指紋’。hash1字段的一般固定長度為160比特,這實際上保證了hash1值對每個對象都會是唯一的。hash1值的唯一性使hash1值能作為對象數據的‘指紋’,以保證數據的完整性考慮到數據比較核查。例如在下載對象數據時,可以計算hash1值并將其與先前的hash1值相比較,以確保對象數據未被更改。hash1值還可以用作到高速緩沖存儲器的索引,以定位先前存儲的對象數據。
可以用諸如R.L.Rivest教授研制的報文摘要算法5(MD5)之類的其它已知的算法計算hash1值。用MD5、SHA1或類似的算法,散列值是不可逆的,意味著不能從hash1值生成對象數據。對那些本領域的技術人員來說,可以很容易地將資源用于實施散列法和報文摘要算法,例如SHA或MD。SHA1算法的一個具體實施的細節可以在D.E.Eastlake,III,和P.E.Jones寫的2001年9月由因特網社會出版的Requests for Comments 3174(RFC3174)中找到。2002年8月1日的FederalInformation Processing Standards Publication(FIPS)180-2還列出了安全散列標準。
hash2字段是在將元數據字段(即,Creator字段、Type字段、FriendlyName字段、Location字段和hash1字段)輸入至散列函數(例如上面討論的SHA1函數)時得出的散列值。
StoredObject類204的Creator字段代表用戶、對等者、或建立該對象的客戶機。該Creator字段可以是具有創建者名字、電子郵件地址、或任何其它指定對象的創建者的標識符的字符串。StoredObject類204的Location字段指定該對象數據的位置。如圖2所示,該位置是由統一資源定位器(URL)給出。通常都知道,URL是定義到在網上或任何其它網絡設備上的數據的路由的地址。如以下將詳細討論的,ObjectStore類202可使用創建者和Location字段來檢索對象數據。
示例的StoredObject類204的一個范例提供一個過載函數“(Create)創建”函數,籍此,可以創建多種類型的存儲的對象。因此,當用ID調用創建函數時,建立了具有ID的對象;當用文件處理調用創建函數時,用參考的文件建立對象,等等。
StoredObject類204的一個范例具有一個“GetData()”函數。當調用“GetData()”函數時,返回由StoredObject類204參考的對象數據。因此,當特征需要顯示對象時,該特征可調用GetData()來得到正確的數據,不論該數據定義一個客戶表情圖標、具體化、用戶貼圖、文件、背景或其它。
用對象存儲來存儲和檢索對象的示例操作圖3示出具有示例操作的存儲對象操作流程圖300,用于用對象存儲建立一個對象并存儲該對象,例如對象存儲116,圖1和/或ObjectStore類202,圖2。在一個情況中,特征與ObejctStore類202和StoredObject類204相互作用,以建立和存儲對象。該特征從對象存儲接收對象名,該特征以后可用它來檢索對象。
在啟動操作302之后,創建操作304建立一個對象。在創建操作304的一個實施中,建立了StoredObject類204(圖2)的一個范例。用對要存儲的數據的索引調用Create()函數。例如用戶可使用客戶表情圖標特征來建立客戶表情圖標類型的StoredObject。客戶表情圖標特征用一個對客戶表情圖標的索引來調用Create()函數。
計算操作306計算出一個對應于與StoredObject(在創建操作304中建立的)相關聯的數據的第一散列值。該計算機操作306可在StoredObject中的元數據字段的基礎上計算一個第二散列值。以上描述了計算散列值的多種資源和算法,這里就不再重復了。存儲操作308將對象數據存儲在本地高速緩沖存儲器中。該對象數據存儲在高速緩沖存儲器中與第一散列值相對應的位置,因此以后可以容易地從高速緩沖存儲器中檢索到該對象數據。
設置操作310設置StoredObject的元數據(見圖2中的元數據字段)中的字段。可以在用戶注冊設置的基礎上設置對象元數據的Creator字段和Location字段。Type字段被設置成存儲的對象數據的類型。可由用戶指定FriendlyName。hash1字段和hash2字段分別設置成第一散列值和第二散列值,在計算操作302計算。
返回操作312返回一個對象名。對象名是元數據中一個或多個字段的串聯,該元數據是在設置操作310中設置的。在一個實施中,返回的對象名包括Creator字段和Location字段。Creator字段和Location字段會使ObjectStore能在必要的時候,隨后從本地高速緩沖存儲器的位置之外的位置檢索對象數據。
在返回操作312中返回的名字可以是以特定的格式,例如統一資源標識符(URI)和統一資源名字(URN)。URI是可以標識因特網上的包括圖象、文本、視頻、音頻和程序在內的任何種類的資源的字符串。URI的普通版本是統一資源定位器(URL)。URN被定義成用于對象的永久的,全局唯一的名字。以下示出示例的URI和URNURI//[Creator]/[Type]/[Hash1]/[Hash2]?fn=/[FriendlyName]&URI=[Location];URN:[Type]:[Creator]:[FriendlyName]:[Location]:[Hash1]:[Hash2]圖4為具有用于檢索可存儲在計算機網絡上任何位置的對象的示例操作的檢索對象操作流程400。如參照圖1討論的,可以將對象和對象數據存儲在本地高速緩沖存儲器、本地文件系統、網絡存儲器(例如在網絡服務器的盤上)、和/或遠程客戶機、或對等計算機中。操作流程400通過確定對象的位置響應向對象的請求,并接著從該位置檢索該對象。
請求操作402用對象名(例如在返回操作310(圖3)中返回的對象名)請求對象數據。該請求操作402可以傳入一個從遠程客戶機或網絡服務器得到的對象名。假定該對象名包括指定請求的對象的位置的位置信息(例如URL或StoredObject204中的Location字段,圖2)。對象名還包括唯一地與請求的對象相關的散列值。該請求操作402可包括調用ObjectStore202(圖2)的GetObject()函數。
查詢操作404確定該請求對象是否是本地高速緩沖存儲器。在查詢操作404中一個實施中,輸入名中的hash1值被用來確定該對象是否在本地高速緩沖存儲器中。hash1值是與StoredObject相關聯的數據的一個散列。因此,hash1僅基于要檢索的對象數據,并不依賴于任何其它與對象相關聯的Name數據。因為hash1值是到本地高速緩沖存儲器中去的唯一索引,可以用hash1值確定與hash1值相關聯的數據是否存儲在本地高速緩沖存儲器中。如果請求的對象確定在本地高速緩沖存儲器中,則檢索對象操作400通過分支“是”到檢索操作406。檢索操作406用散列值來索引到本地高速緩沖存儲器,并檢索該對象數據。
第一次訪問對象時,對象數據也許不在本地高速緩沖存儲器中。如果確定請求的對象不在本地高速緩沖存儲器中,則檢索對象操作400經過分支“否”到檢索操作408。檢索操作408從本地高速緩沖存儲器以外的位置檢索請求的對象。該位置由Location字段在輸入Name中指定。以下呈現的幾個情況示出Location字段是如何用于從本地高速緩沖存儲器以外的位置檢索請求的對象的。
在從本地高速緩沖存儲器以外的位置檢索到請求的對象之后,存儲操作410將該對象存儲在從本地高速緩沖存儲器中。在從本地高速緩沖存儲器中檢索到了請求的對象,或將請求的對象存儲在本地高速緩沖存儲器中之后,返回操作412返回該請求的對象。
示例的對象檢索情況圖5示出一個示例的對象檢索情況500,其中請求的對象數據位于本地文件系統中。特征502通過將對象名傳遞給對象存儲504來從對象存儲504請求對象數據。對象存儲504確定,請求的對象是出在本地高速緩沖存儲器506中。在情況500中,假定沒有在本地高速緩沖存儲器506中找到請求的對象。對象存儲504解析對象名以確定請求的對象數據的位置。在情況500中,在對象名中的位置數據指定該位置為一本地文件系統508。
因此,訪問本地文件系統508來檢索請求對象數據。隨后該請求對象數據被存儲在本地高速緩沖存儲器506中,并被返回到請求特征502。因此,可以理解,示例的情況500完全發生在一個單個的客戶機上。
圖6示出另一個示例的對象檢索情況600,其中請求的對象數據位于網絡存儲器裝置上。特征602通過傳入一個具有散列值和位置信息的對象名來從對象存儲604請求對象數據。對象存儲604用請求的對象數據的散列值來確定該請求的對象是否在本地高速緩沖存儲器606中。假定在示例的情況中請求的對象不在本地高速緩沖存儲器606中。對象存儲604從位置信息確定,請求的對象存儲在網絡608上的一個位置。
該位置是由指定網絡存儲器610的URL給出的。請求的對象是從網絡存儲器610檢索到的。接著,將請求的對象存儲在本地高速緩沖存儲 606中,并返回到請求特征602。
圖7示出示例的對象檢索情況700的另一個實施,其中請求的對象數據位于一個對等計算機上。在客戶機1上運行的特征702通過傳入一個具有散列值和位置數據的對象名從對象存儲704請求對象數據。該對象存儲704確定該請求的對象數據不在本地高速緩沖存儲器706中。通過解析對象名,對象存儲704確定該請求對象數據是在客戶機2上。
向傳輸協議棧708發送了一個請求,以從客戶機2檢索請求的對象數據。該傳輸協議棧利用一個連接到客戶機2上的傳輸協議棧710的對等連接。向客戶機2上的傳輸協議棧710發送一個請求對象數據的請求。傳輸協議棧71O向客戶機2上的遠程對象存儲710發出一個回叫。遠程對象存儲712從客戶機2上的遠程文件系統714檢索該請求的對象數據。
接著,通過傳輸協議棧708和710將請求的對象數據從客戶2傳送至客戶機1。在客戶機1上,請求對象數據存儲在本地高速緩沖存儲器706中。因此,不必采取對等請求就可以很容易地從本地高速緩沖存儲器706滿足以后的請求對該對象數據的請求。然后,請求的對象數據返回到請求特征702。
示例的操作環境圖8和相應的討論是為了提供可以實施所述存儲和檢索對象的方案和過程的合適的計算機環境的概述。示例的計算機環境820僅僅是合適的計算機環境的一個范例,不意味著對所述主題的使用和功能的范圍作出的任何限定。不應將計算機環境820解釋成對示例的計算機環境820中示出的部件中的任何一個或其組合具有依賴性或需要。
管理網絡環境中的對象的示例配置和程序可用眾多其它通用或專用計算機系統環境或配置進行操作。已知適合與所述主題物一起使用的計算機系統、環境和/或配置包括,但不限于,個人電腦、服務器計算機、瘦客戶機、胖客戶機、手提或膝上裝置、多處理器系統、基于微處理器的系統、大型計算機、諸如服務器園及公司內聯網等包括任何上述系統和裝置的分布式計算機環境。
計算機環境820包括以計算機830形式的通用計算裝置。計算機830可包括和/或作為上述對象存儲的示例實施服務。計算機830的部件可包括,但不局限于,一個或多個處理器或處理單元832、系統存儲器834、和將包括系統存儲器834在內的多種系統耦合到處理器832的總線836。
總線836代表幾種總線結構(包括存儲器總線或存儲器控制器、外圍總線、加速的圖形端口、或使用多種總線結構中的任何一個的處理器或本地總線)中的一種或多種。作為示例,而非限定,這種結構包括工業標準體系結構(ISA)總線、微通道體系結構(MCA)總線、增強ISA(EISA)總線、視頻電子標準協會(VESA)局部總線、和外圍設備互連(PCI)總線,也叫作夾層總線。
計算機830通常包括多種計算機可讀媒體。這種媒體可以是可由計算機830訪問的任何可用媒體,且它包括易失性和非易失性媒體,可移除和不可移除媒體。
系統存儲器包括以易失性存儲器形式的諸如隨機存取存儲器(RAM)840之類的計算機可讀媒體和/或諸如只讀存儲器(ROM)838之類的非易失性存儲器。基本輸入輸出系統(BIOS)842存儲在ROM838中,它包括如在啟動期間幫助在計算機830的部件之間傳送信息的基本例程。RAM840通常包括可由處理器832立即存取和/或當前由處理器832操作的數據和/或程序模塊。
計算機830還可包括其它可移除和不可移除,易失性和非易失性計算機存儲器媒體。僅作為示例,圖8示出用于從不可移除的非易失性磁媒體讀出或寫入不可移除的非易失性磁媒體的硬盤驅動器844(未示出,并通常稱為“硬盤驅動器”),用于從可移除的非易失性磁媒體848(例如軟盤)的磁盤驅動器846,及用于從可移除的非易失性光盤852(例如CD-ROM,DVD-ROM或其它光媒體)讀出或寫入可移除的非易失性光盤852的光盤驅動器850。硬盤驅動器844、磁盤驅動器846和光盤驅動器850中的每一個都由一個或多個接口854連接到總線836。
驅動器及與它們相關聯的計算機可讀媒體提供計算機可讀指令、數據結構、程序模塊和其它用于計算機830的數據的非易失性存儲器。盡管這里描述的示例環境使用了硬盤、可移除磁盤848和可移除光盤852,本領域的技術人員應理解也可以將能存儲可由計算機存取的數據的諸如磁帶盒、閃存卡、數字視頻盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)等等之類的計算機可讀媒體用于示例的操作環境中。
可以在硬盤、磁盤848、光盤852、ROM838、或RAM540上存儲的若干程序模塊,作為示例,包括但不限于操作系統858、一個或多個應用程序860、其它程序模塊862和程序數據864。應用程序860可包括具有特征應用程序的即時通信程序、對象存儲和在此描述的傳輸協議棧。
用戶可將命令和信息通過諸如鍵盤866和定位設備868(例如“鼠標”)之類的可選擇輸入裝置輸入到計算機830。其它輸入裝置(未示出)可包括麥克風、操縱桿、游戲墊、圓盤式衛星天線、串行接口、掃描儀等等。這些和其它輸入裝置通過一個耦合到總線836的用戶輸入界面連接到處理單元832,但可以由其它諸如并行接口、游戲接口或通用串行總線(USB)之類的接口和總線結構連接。
可選的監視器872和其它類型的顯示裝置是通過諸如視頻適配器874之類的接口連接到總線836的。除了監視器之外,個人電腦通常包括其它外圍輸出設備(未示出),例如可以通過輸出外圍接口875連接的揚聲器和打印機。
可以利用到一個或多個諸如遠程計算機882之類的遠程計算機的邏輯連接,在聯網的環境中操作計算機830。該遠程計算機882可包括許多在這里參照計算機830描述的許多或全部元件和特征。如圖8所示的邏輯連接為局域網(LAN)877和普通廣域網(WAN)879。LAN877和WAN879可以是有線網絡,無線網絡,或是有線或無線網絡的任何組合。這種網絡環境在辦公室、企業范圍計算機網絡、企業內聯網和因特網中很常見。
當用于LAN網絡環境中時,計算機830通過網絡接口或適配器886連接到LAN877。當用于WAN網絡環境中時,計算機830通常包括調制解調器878或其它用于在WAN879上建立通信的裝置。調制解調器878(可以是內置式的或外接式的)可以通過用戶輸入接口870或其它合適的機構連接到系統總線836。圖8所示的是一個通過因特網的WAN的特定實施。計算機830通常包括調制解調器878或其它用于在因特網880上建立通信的裝置。調制解調器878通過接口870連接至總線836。
在聯網的環境中,相對于個人電腦830描述的程序模塊,或其一部分,可以存儲在遠程存儲器裝置中。作為示例而非限定,圖8示出駐留在遠程計算機882的存儲器裝置上的遠程應用程序889。將理解,示出和描述的網絡連接是示例性的,也可以使用在計算機之間建立通信鏈接的其它裝置。
結論盡管采用專用于結構特征和/或方法操作的語言描述所述方案、過程和組件,應理解在所附權利要求書中定義的主題并不一定限于所述的特定特征或操作。而是,將特定的特征和操作作為實施要求保護的當前主題的優選的形式揭示。
權利要求
1.一種傳送對象數據的方法,其特征在于,包括在代表本地計算機的用戶的對象數據的基礎上生成一個散列值;在存儲器位置存儲該對象數據;和返回一個具有所述散列值和標識存儲器的位置的位置標識符的對象名,該對象名使遠程計算機的用戶能訪問該對象數據。
2.如權利要求1所述的方法,其特征在于,還包括接收請求對象數據的請求,該請求包括所述對象名;和根據散列值從本地高速緩沖存儲器檢索對象數據。
3.如權利要求1所述的方法,其特征在于,還包括接收請求對象數據的請求,該請求包括所述對象名;和響應于接收該請求,用位置標識符從該位置檢索該對象數據。
4.如權利要求1所述的方法,其特征在于,還包括接收一個請求對象數據的請求,該請求包括所述對象名;和根據散列值確定該請求的對象數據是否在本地高速緩沖存儲器中;和如果該請求的對象數據在本地高速緩沖存儲器中,則從本地高速緩沖存儲器中檢索該對象數據,否則,從由位置標識符標識的位置檢索該請求的對象數據。
5.如權利要求4所述的方法,其特征在于,所述從由位置標識符標識的位置檢索該請求的對象數據包括從網絡存儲器檢索請求的對象數據。
6.如權利要求4所述的方法,其特征在于,所述從由位置標識符標識的位置檢索該請求的對象數據包括從本地文件系統檢索請求的對象數據。
7.如權利要求4所述的方法,其特征在于,所述從由位置標識符標識的位置檢索該請求的對象數據包括從遠程文件系統檢索請求的對象數據。
8.如權利要求7所述的方法,其特征在于,所述從遠程文件系統檢索請求的對象數據包括通過一個對等的連接訪問遠程文件系統。
9.如權利要求7所述的方法,其特征在于,所述從遠程文件系統檢索請求的對象數據包括通過一個交換器服務器經過連接訪問遠程文件系統。
10.在其上存儲了計算機可執行指令的計算機可讀媒體,其特征在于,所述指令執行以下方法接收一個與遠程計算機上的用戶相關聯的名字,該名字包括唯一地與代表用戶的數據對象相關聯的位置數據和散列值;和根據散列值或由位置數據標識的位置從本地高速緩沖存儲器中檢索該對象數據。
11.如權利要求10所述的計算機可讀媒體,其特征在于,根據所述散列值或由位置數據標識的位置從本地的一個高速緩沖存儲器中檢索該對象數據包括根據散列值確定對象數據是否在本地高速緩沖存儲器中;和如果該數據對象在本地高速緩沖存儲器中,則從本地高速緩沖存儲器檢索該數據對象;否則,從由位置數據標識的位置檢索該數據對象。
12.如權利要求11所述的計算機可讀媒體,其特征在于,所述從由位置數據標識的位置檢索該數據對象包括從遠程文件系統檢索該數據對象。
13.如權利要求11所述的計算機可讀媒體,其特征在于,所述從由位置數據標識的位置檢索該數據對象包括從本地文件系統檢索該數據對象。
14.如權利要求11所述的計算機可讀媒體,其特征在于,所述從由位置數據標識的位置檢索該數據對象包括從網絡存儲器檢索該數據對象。
15.如權利要求11所述的計算機可讀媒體,其特征在于,所述從由位置數據標識的位置檢索該數據對象包括通過一個對等連接訪問遠程計算機。
16.一種用于在即時通信對話中管理代表用戶的對象的系統,其特征在于,該系統包括代表用戶的數據對象,該數據對象具有一個包括與對象名相關的位置標識符和散列值的對象名;和對象存儲,可用于從由位置標識符標識的位置檢索數據對象,并根據散列值將該數據對象存儲在一個本地高速緩沖存儲器中。
17.如權利要求16所述的系統,其特征在于,所述對象名還包括一個標識數據對象的創建者的創建者標識符。
18.如權利要求16所述的系統,其特征在于,還包括一個傳輸協議棧,它使對象存儲能通過一個對等的連接從遠程存儲器位置檢索該數據對象。
19.如權利要求16所述的系統,其特征在于,所述數據對象還包括描述數據對象的元數據描述。
20.如權利要求19所述的系統,其特征在于,元數據包括一個友好的名字字段;一個表明一種數據對象的類型字段;和根據元數據的散列值。
21.如權利要求16所述的系統,其特征在于,所述位置標識符包括一個統一資源定位器(URL)。
22.如權利要求16所述的系統,其特征在于,所述位置標識符包括一個統一資源識別器(URI)。
全文摘要
一種方法,包括接收一個與在遠程計算機上的用戶相關聯的名字,該名字包含唯一地與代表用戶的數據對象相關聯的位置數據和散列值,并根據散列值或由位置數據標識的位置從本地高速緩沖存儲器中的一個中檢索該數據。一種用于在即時通信對話中管理代表用戶的對象的系統,包括代表用戶的數據對象,該數據對象具有包括位置標識符和對象名允許的散列值的對象名,且可操作一個對象存儲來從由位置標識符標識的位置檢索數據對象,并根據所述散列值將該數據對象存儲在本地高速緩沖存儲器中。
文檔編號G06F17/30GK1578279SQ200410063278
公開日2005年2月9日 申請日期2004年6月30日 優先權日2003年7月1日
發明者D·M·米勒, J·霍姆斯, W·馮柯奇 申請人:微軟公司