專利名稱:具有復制應用程序狀態(tài)的客戶機服務器網絡的制作方法
技術領域:
本發(fā)明涉及數據處理系統,尤其涉及客戶機服務器網絡。
背景技術:
現今使用特殊的數據處理系統,其中用戶安裝機頂盒(set-top box, STB),以使用 遠程應用程序服務器的應用程序。機頂盒是一種例如能夠使電視變?yōu)橐蛱鼐W的用戶界 面、以及能夠使電視接收和解碼數字電視(digitaltelevision, DTV)廣播的裝置。數字電 視機頂盒有時被稱為接收器。機頂盒對于那些希望通過他們現有的模擬電視機接收數字 廣播的電視觀眾是必需的。最近,已出現既支持數字視頻廣播(digital video broadcasting, DVB)、又支持基于因特網協議(Internet Protocol, IP)視頻的混合機頂盒。這類裝置允許 用戶觀看數字電纜編程、以及來自因特網或本地IP網絡的視頻。IP機頂盒正在發(fā)展成 為一種在電纜操作員與基于Telco的寬帶提供商之間的競爭中的關鍵裝置,以向客戶提 供非常重要的音頻、數據和視頻的"三重播放"功能。IP STB典型地具有一種網頁瀏 覽器功能、以及諸如遙控接口和視頻播放器之類的附加功能。實際上,這類IP STB與 具有網頁瀏覽器的PC的差別僅在于以下事實
—屏幕由電視代替;
—鍵盤和鼠標由遙控器代替;
—硬件被安排在相對小的盒子中;以及
_通常在IP STB內不存在硬盤。 網頁交互方式事實上是有限的,即對萬維網的設計使用的是一種"客戶端拉(clientpull)" 技術。這意味著"客戶"需啟動動作,且不可能與"服務器"方的客戶直接通信。為解 決這一問題,可使用客戶方腳本處理,例如眾所周知的JavaScript。然而,JavaScript代 碼不是在服務器方運行的應用程序的一部分,由此并不"知道"應用程序的實際狀態(tài)。 因此,這類"客戶端拉"技術不是很適用于更高級的交互應用。
發(fā)明概述
人們希望建立更適用于高級交互應用的客戶機服務器網絡結構。
本發(fā)明提供了包括以下部件的數據處理系統-一第一處理裝置,包括用于裝載第一操作系統、以及至少監(jiān)視第一對象變化的第一處 理器;以及
_第二處理裝置,包括用于裝載第二操作系統、以及至少監(jiān)視第二對象變化的第二處 理器。
其中,當在第一處理裝置處啟動第一對象變化時,第一處理裝置用于將第一對象變化信 息發(fā)送給第二處理裝置;
當在第二處理裝置處啟動第二對象變化時,第二處理裝置用于將第二對象變化信息發(fā)送 給第一處理裝置;以及
第一和第二處理裝置用于處理第一和第二對象的變化,以在第一對象發(fā)生變化之后將第 一對象復制到第二對象、以及在第二對象發(fā)生變化之后將第二對象復制到第一對象。
通過共享由兩臺或更多臺裝置使用的對象,有可能設計出具有真正雙向通信功能的 多功能客戶機服務器環(huán)境(即從雙方啟動的通信)。
第一處理器可用于在第一操作系統上裝載第一虛擬機(virtual machine, VM),該第一 虛擬機用于創(chuàng)建第一對象變化信息、并將第一對象變化信息發(fā)送給第二處理裝置。
在VM中實施本發(fā)明可只需對VM進行編程,而無需調整現有操作系統。
第二處理器可用于在第二操作系統上裝載第二虛擬機,該第二虛擬機用于創(chuàng)建第二 對象變化信息、并將第二對象變化信息發(fā)送給第一處理裝置。
第一處理裝置可用于執(zhí)行應用程序,且第一處理器可用于將應用程序給出的賦值翻 譯成第一對象變化信息。這樣,對象內容可透明地被復制到其他數據處理裝置中,而無 需由應用程序作出特殊動作。
第一處理裝置可以是用于執(zhí)行多個應用程序的應用程序服務器。
第一和第二處理裝置可用于通過因特網協議進行通信。這樣,可在作用于現有通信 網絡的數據處理系統中實施本發(fā)明。
因特網協議用于通過因特網發(fā)送信息,該信息包括對象變化信息、以及共享有關對 象的所有裝置的識別信息。因為通過協議只可傳輸更新,由此將節(jié)省網絡帶寬。
第一和第二處理裝置可用于通過廣域網協議進行通信。這樣,這一實施例中的數據 處理系統可作用于未來的通信網絡。
上述數據處理系統可至少包括第一存儲裝置,該第一存儲裝置用于與第一處理裝置 通信、以及儲存第一對象。單獨的存儲節(jié)點使系統變得更冗余。當應用程序服務器經歷 諸如停電之類的重大故障時,數據以及任何應用程序狀態(tài)信息均不會喪失,這是因為這 一狀態(tài)信息儲存在存儲裝置中。
數據處理系統可至少包括第三處理裝置,該第三處理裝置至少在使用中用于執(zhí)行應 用程序,且該應用程序與第一處理裝置中的應用程序相同;第三處理裝置用于至少監(jiān)視 第三對象;其中,第一和第三處理裝置用于向/從存儲裝置發(fā)送/接收數據,以在第一對 象發(fā)生變化之后將第一對象復制到第三對象、或在第三對象發(fā)生變化之后將第三對象復 制到第一對象。這樣,應用程序的一個實例有可能同時被裝載到幾個應用程序服務器上。 一臺服務器的停機甚至不會引起用戶的注意。
第一處理裝置可包括用于檢查第一對象是否有效的對象驗證器;其中,只有在第一 對象有效的情況下,第一處理裝置才可用于裝載來自存儲裝置的第一對象更新。應用程 序服務器將應用程序的狀態(tài)(即對象)儲存在其緩存區(qū)中;如果對象是無效的,存儲裝 置知道發(fā)送給應用程序服務器的最新狀態(tài);如果狀態(tài)是無效的,只需將對象發(fā)送給應用 程序服務器。因此,在數據庫與應用程序服務器之間通信最少。
上述數據處理系統可包括兩臺或更多臺存儲裝置,這些存儲裝置用于與第一處理裝 置通信、以及儲存第一對象。這樣, 一些節(jié)點包括精確復制的相同對象。在這種情況下, 第二和第三節(jié)點可作為第一存儲節(jié)點的備份。
根據前述權利要求中的任意一項權利要求所述的數據處理系統,其中第一處理裝置 用于執(zhí)行桌面應用程序。它還可選擇性地用于執(zhí)行視頻應用程序。它也可用于執(zhí)行 domotics應用禾呈序。
第二處理裝置可用于將第二對象的格式通信給第一處理裝置。這樣,第一處理裝置 知道第二處理裝置使用的對象的精確格式。這使應用程序有可能用于全面控制某種類型 的裝置,且在這些裝置的精確實施方面存在差異(即在對象格式方面存在差異)。智能 應用程序有能力適應這些差異。因此,相同的應用程序可用于控制多臺相同類型的、但 由不同制造商制造的裝置。
本發(fā)明也涉及上述數據處理系統的使用。最后,本發(fā)明涉及權利要求19所述的方法。
將只通過實例、并結合附圖對本發(fā)明的實施例作描述,且附圖中的參考符號代表 對應的部件,其中
—圖1為本發(fā)明一實施例的數據處理系統示意圖; —圖2為在第一處理裝置內的處理器的一些功能構件的示意圖; 一圖3為第一處理裝置的虛擬機的內部工作示意圖; _圖4為在圖3所示虛擬機內的REP處理機的構件示意一圖5為REP路由器及其與兩臺裝置的交互示意一圖6為在第二處理裝置內的處理器的一些功能構件的示意一圖7為第二處理裝置的虛擬機的內部工作示意一圖8為RIP信息處理機的構件示意一圖9為RIP代理的功能結構示意圖;以及
一圖10為中心對象儲存器(Central Object Store)示意圖。
具體實施例方式
圖1為本發(fā)明一實施例的數據處理系統1的示意圖,該數據處理系統1包括第一 處理裝置2和第二處理裝置4。第一處理裝置2包括用于處理指令的處理器(未示 出)、以及用于儲存數據和指令的存儲器(未示出)。第一處理裝置2例如可以是應 用程序服務器2,該應用程序服務器2用于執(zhí)行諸如文字處理器應用程序之類的特定 應用程序。根據一實施例,裝置2的處理器用于至少監(jiān)視第一對象,該第一對象包括 數據及/或應用程序指令。對象可儲存在諸如本地RAM之類的應用程序服務器2的存 儲器中,但也可儲存在一或多個存儲節(jié)點內,詳見下文。
在一實施例中使用對象導向編程語言對應用程序編程。在這種情況下,第一對象可 包括應用程序使用的特定對象的數據。如果應用程序不是對象導向的,第一對象例如可 包括應用程序使用的所有數據。除數據外,第一對象也可包括與對象中的數據有關的指 令。
第二處理裝置4用于儲存第二對象。在下文中,第二處理裝置4也將被稱為客戶 端裝置4。在一實施例中,客戶端裝置4是STB 4。 STB 4包括用于儲存第二對象的 存儲器。STB 4還可包括用于裝載操作系統的處理器。在圖1所示的實施例中,STB 4 通過諸如因特網之類的基于IP的通信網絡6與應用程序服務器2連接。此外,STB4 與TV 8以及諸如鍵盤10之類的I/O裝置10連接。應用程序服務器2通過負載平 衡器12、 一些代理14和16、以及一些路由器18和20與通信網絡6連接,詳見 下文。
在一實施例中,數據處理系統1也包括第三處理裝置22,該第三處理裝置22用 于執(zhí)行與在應用程序服務器2上執(zhí)行的應用程序相同的應用程序。應用程序服務器2 禾口 22均可與中心對象儲存器(Central Object Store, COS) 25連接,參見圖1。 COS 25 用于將第一對象儲存到例如對象導向數據庫內,正如本領域技術人員所知道的那樣。
在一實施例中,將特定對象從應用程序服務器2復制(即拷貝)到客戶端裝置4, 反之亦然。被復制的對象被稱為'共享對象'。根據一實施例,共享對象的更新是通過
基于IP的網絡、使用被稱為遠程事件協議(Remote Event Protocol, REP)的特定協議發(fā) 送的。
圖2為應用程序服務器2的一個實例的示意圖。應用程序服務器2包括操作系統 40和虛擬機42,且該虛擬機42至少在使用中被裝載在操作系統40的頂部。虛擬機 42是應用程序實際運行時所處的環(huán)境。在這一實例中,應用程序服務器2用于執(zhí)行兩 個應用程序X和Y。在圖2中,應用程序X被不同的用戶裝載了兩次,由此得到兩 個應用程序實例44和46。應用程序Y被裝載了一次,由此得到應用程序實例48。 在下文中,除非需強調特殊的語義差異,否則術語"應用程序"將同時用于應用程序和 應用程序實例中。
虛擬機42對應用程序44、 46、 48隱藏實際操作系統40。虛擬機42向應用程序 44、 46、 48提供的環(huán)境與平臺非常無關。虛擬機42及其諸如OS相依層41之類的 軟件模塊的具體實施方案與平臺相關,這是因為它需與操作系統40及/或其實體運行所 在的硬件進行交互作用。
現在參考圖3突出顯示虛擬機42的內部工作。虛擬機42與諸如Java虛擬機之 類的已知虛擬機部分相似,但它與已知虛擬機的不同之處在于它可對對象解譯的方式。 大多數其他虛擬機只執(zhí)行基本的CPU功能,即機器指令。已知虛擬機的實施方案是只 通過模擬基本機器指令的形式實現虛擬機,且'不知道'被處理的對象;與此不同的是, 這一實施例中的虛擬機42能夠監(jiān)視對象的變化。在虛擬機42的核心是指令處理器 50,其操作很像是高級編程語言的解譯器。指令處理器50用于處理在應用程序44、 46、 48內的對象轉換,但它也執(zhí)行需與OS相依層41接口的指令、或運行其他與虛 擬機42連接的可能元件。
指令處理器50用于完成標準任務、以及具有各種"賦值"和"求值"的附加任務。 在目前的電腦程序中,對變量(無論是否為對象的一部分)賦值使該值被儲存在存儲器 內。如果該值稍后用于指令,該值將從存儲器中被讀取,并暫時儲存在寄存器中。隨后 將執(zhí)行指令,且如果指令引起對象變化,指令的結果將被寫入到存儲器內。指令處理器 50用于處理這些指令(這就是所謂的標準任務)。處理包括剖析指令、識別與指令有 關的對象、以及執(zhí)行指令。它一旦識別出對對象的'讀,或'寫,請求,就將從事附加 任務。這一附加任務包括將對象變化復制到共享對象的客戶機。
由于在對象導向應用程序中、所有應用程序數據均被儲存在對象中(它與應用程序 是否對此認知無關),賦新值并不意味著對象已變化。當應用程序44、 46、 48使用特 殊指令中的存儲值時,它們需在對象可被用于該指令之前、從對象中取回數據。
請注意,在運行于傳統操作系統上的傳統應用程序中,所有對象均被儲存在本地存 儲器內。賦新值意味著新值將被儲存在存儲器內。如果由應用程序處理包括這一對象的 存儲值在內的指令,這意味著必須從存儲器中取回該值。在大多數情形下,儲存和取回 該值的處理可留給操作系統完成。從應用程序的角度看,本實施例中的虛擬機42完全 透明。無需在應用程序中作調整。
虛擬機42還包括應用程序存儲處理機52、以及用于與所述指令處理器50和應用 程序存儲處理機52通信的應用程序緩存區(qū)54。應用程序緩存區(qū)54用于存儲(即儲 存)讀出請求。虛擬機42也包括用于儲存來自所述指令處理器50的指令的指令緩存 區(qū)56。此外,虛擬機42包括所謂的對象調査器58、以及兩臺被稱為'REP信息處 理機,60和'RIP信息處理機,62的信息處理機。REP信息處理機60和RIP信息 處理機62與指令處理器50和外部裝置通信,這些未被示出。REP信息處理機60也 接收來自對象調査器58的輸入,參見箭頭61。
應用程序存儲處理機52用于與中心對象儲存器25通信,也可參見圖1。它處理 I/O請求,并確保成功處理存儲事務。應用程序存儲處理機52接收來自COS 25的對 象(更新),參見箭頭53。它也可將對象儲存到COS 25內,參見箭頭51。如果應用 程序存儲處理機52從COS 25之一收到'對象無效'的信息,它將該信息傳送給應用 程序緩存區(qū)54,參見箭頭55。應用程序緩存區(qū)54隨后將確認收到(參見箭頭49), 并由于對應的緩存對象不再有效而從其存儲器中移除它。這樣,只有有效對象才被儲存 在應用程序緩存區(qū)54中。使用應用程序緩存區(qū)54大大提高了虛擬機42的處理速 度。
在應用程序緩存區(qū)54內的對象一旦已在虛擬機42的范圍之外被更新,就變?yōu)闊o 效。例如,如果對象已由在另一應用程序服務器上的另一虛擬機更新。對象無效請求被 作為REP信息、由已更新某一對象的虛擬機發(fā)送。這些REP信息被發(fā)送給使用相同 對象的所有處理裝置的虛擬機。這樣,所有裝置均可被通知對象無效。如果對象無效, 需從COS 25中取回該對象。
指令處理器50將應用程序44、 46、 48給出的所有賦值均傳送給對象調査器58, 參見箭頭71。調査器將確認收到,參見箭頭76。 一賦值實例如下
對象—1.屬性—20 :=值—1 (Object—1.property—20 : = value—1);
這一賦值使對象—1 (ObjectJ)從對象—1IB (Object—l。ld)被轉換為對象—l新 (Object—lnew)。對象調査器58用于將在轉換之前存在的參與賦值的舊對象與轉換之后 的新對象作比較。對于對象調查器58發(fā)現變化的對象,向應用程序存儲處理機52發(fā)
送更新請求,參見箭頭64。更新請求64只包含更新,因此在上述實例中更新請求包 括對象—1.屬性_20 :=值—1 (Object—l.property—20 :=value_l)。然而,在一些諸如創(chuàng)建
新對象之類的情形下,更新請求包含全部對象,例如
對象—2 :=新對象(Object—2 : -NewObject)。
如果發(fā)生變化的對象是共享對象,對象調査器58也向REP信息處理機60發(fā)送 信息,該信息包含對象更新,參見箭頭61。 REP信息處理機60將該信息轉發(fā)給共享 該對象的所有客戶端裝置4,參見箭頭66。在一實施例中,共享對象包含"索引", 這是共享特定對象的裝置列表、以及這些裝置在該對象上具有的權限。這一索引是該對 象的一部分,且將只由設計與多客戶端裝置共享對象的應用程序使用。REP信息處理 機60也用于接收來自其他裝置的REP請求(即包含請求的信息),參見箭頭68。 REP信息處理機60向指令處理器50發(fā)送入局REP請求,參見箭頭70。指令處理 器50通過執(zhí)行在收到的REP信息中描述的請求而對該請求采取行動。在大多數情況 下,請求將包含對象更新。但也有可能在REP信息內包含一些其他請求,例如請求創(chuàng) 建新對象或刪除現有對象。
指令處理器50可向/從應用程序緩存區(qū)54 (參見箭頭72)、以及向/從REP信息 處理機60 (參見箭頭70)發(fā)送[正確 ]/接收對象(或對象更新)。在兩種情形下, 對象(更新)可包含數據及/或與數據有關的指令。對象指令由指令處理器50儲存在指 令緩存區(qū)56內,參見箭頭74。這些指令隨后從指令緩存區(qū)56載入(參見箭頭73), 且由指令處理器50執(zhí)行,以更新應用程序44、 46、 48的狀態(tài)。
該序列(即模塊52->54->50->56->50)對于每個對象更新重復。在指令緩存區(qū)56已 被填滿之后,指令處理器50開始執(zhí)行包含在指令緩存區(qū)56內的指令。對這些指令的 執(zhí)行實際上是應用程序44、 46、 48的執(zhí)行中心。執(zhí)行與對象更新有關的指令可造成 新的對象變化,如果是共享對象,這些新的對象變化將在客戶端裝置4上被更新,以 反映新的狀態(tài)。
RIP處理機62用于接收和發(fā)送RIP信息。它接收來自指令處理器50的創(chuàng)建 RIP信息的請求,且該請求被轉發(fā)給RIP代理,該代理隨后將這一信息傳送給目標, 以作進一步處理。
圖4為圖3中虛擬機42的REP信息處理機60的構件示意圖、以及圖1所示 的REP路由器18之一的示意圖。REP路由器18通過REP協議向包括在REP信 息處理機60內的REP信息I/O模塊90發(fā)送REP信息,參見箭頭91。 REP路由
器18也通過REP協議接收來自REP信息I/O模塊90的REP信息,參見箭頭 92。 REP信息I/O模塊90將入局REP信息放到入局REP隊列94內,參見箭頭 95。 REP信息I/O模塊90從出局REP隊列98收到最高信息,參見箭頭96。對象 解壓器100從入局REP隊列94得到序列化的REP信息(參見箭頭101),并將它 轉換成應用程序可識別的對象。對象壓縮器10得到"系統對象",將它序列化成REP 信息,并放到出局REP隊列98內,參見箭頭102。對象解壓器100解序列化REP信 息,并將得到的對象轉發(fā)給REP呼叫調度器106,參見箭頭107。如果解序列化失敗, 一錯誤信息將被發(fā)送給REP呼叫生成器110,參見箭頭121。REP呼叫調度器106將 認證請求109發(fā)送給REP認證器108。 REP認證器108處理請求,并由此得到下列 答復
一成功可繼續(xù)處理。 一失敗不能繼續(xù)處理。
如果REP認證器108報告一失敗結果,一失敗REP信息將被生成并轉發(fā)給REP 呼叫生成器110,參見箭頭111。 REP呼叫調度器106査看用于注冊"呼叫"或"事 件"的REP呼叫注冊表112, 一旦對象的某個項目發(fā)生變化(例如名稱為"keyboard" 的對象的"keyboard.keydown"屬性),就必須執(zhí)行這些"呼叫"或"事件",參見箭 頭113和114。如果在REP呼叫注冊表112中未注冊定義的呼叫,REP呼叫調度器 106將中止處理。陳述"REP呼叫"由于無注冊呼叫而不能被處理的失敗信息(參見 箭頭115)、將通過REP呼叫生成器110和對象壓縮器104被注入到出局REP隊 列98內,參見箭頭116。如果在REP信息內定義的特殊呼叫被相關的應用程序注冊, REP呼叫調度器106將呼叫對應的函數調用(參見箭頭117),并將對應對象傳送給 該呼叫。裝載在指令處理器50上的應用程序44、 46、 48將向REP呼叫調度器106 回報這一呼叫的結果,參見箭頭70:
一成功呼叫成功。
一失敗呼叫未成功,此外,將向REP呼叫生成器110發(fā)送請求(參見箭頭115), 以向原發(fā)送器創(chuàng)建REP信息,該信息包含陳述呼叫失敗原因的錯誤代碼。
應用程序44、 46、 48生成所謂的"REP事件",并將它傳送給REP呼叫生成器 110,參見箭頭120。 REP呼叫生成器110將向應用程序44、 46、 48報告 一成功信息已被成功注入到出局REP隊列內。
一失敗信息注入失敗,此外, 一陳述注入失敗原因的錯誤代碼將被傳送給應用程序 44、 46、 48。
REP呼叫生成器110將隨后通過對象壓縮器104傳送對象變化,并將對象變化 序列化為REP信息。該REP信息隨后被發(fā)送給REP路由器18、 20,參見箭頭92。 圖5為REP路由器18、 20的一個實例的示意圖,也可參見圖1。 REP路由器 18、 20包括一些構件。在圖5中給出一實例,其中一 REP信息從應用程序服務器2、 22被發(fā)送到客戶端裝置4。應用程序服務器2、 22的虛擬機42的REP處理機60 (也可參見圖3)向包括在REP路由器18、 20內的REP信息注入器線程142發(fā)送 REP信息(參見箭頭140) 。 REP信息注入器線程142將向REP信息隊列144傳 送信息,參見箭頭146。 REP信息隊列144向優(yōu)先級排程器148發(fā)送信息146 ,參 見箭頭150。優(yōu)先級排程器148用于根據在REP信息內的優(yōu)先級旗標確定在隊列中 的位置。優(yōu)先級排程器148隨后向REP信息隊列144內插入信息,參見箭頭152。 REP信息隊列144將傳送準備向REP遞送線程154遞送的信息,參見箭頭156。 REP遞送線程154將査看REP注冊表數據庫158,參見箭頭160。 REP注冊表數據 庫158包括在數據處理系統內的REP處理機的地址列表。REP注冊表數據庫158確 定有關的接收REP處理機164的物理地址,并將它發(fā)送給REP遞送線程154,參見 箭頭162。 REP遞送線程154將試圖向接收REP處理機164遞送REP信息。在這 一實例中,接收REP處理機164被包括在客戶端裝置4中。如果接收REP處理機 164產生一錯誤(參見箭頭168) , REP信息將被發(fā)送給失敗處理器170,參見箭頭 172。失敗處理器170確定REP信息的結局
一如果REP信息已在REP信息隊列144中太久(即超過預定的超時閾值),新REP 信息隨目標一同生成,且由該信息的原始發(fā)送器(即應用程序服務器2、 22)陳述REP 信息已由于超時而從隊列中被刪除;以及
—如果REP信息在預定超時閾值之前,REP信息將再次被注入到REP信息隊列 144內。
圖6為客戶端裝置4的一個實例的示意圖,也可參見圖1??蛻舳搜b置4可包括 能與電視連接的STB 4、或例如可以是諸如微波爐之類的家用裝置的處理模塊??蛻舳?裝置4包括用于裝載客戶端操作系統180和客戶端虛擬機182的處理器??蛻舳颂?擬機包括OS相依層183,該OS相依層183用于將客戶端虛擬機182接收到的對 象更新復制到操作系統180、并將來自操作系統180的更新復制到虛擬機180。
圖7為一實施例中客戶端虛擬機182的功能構件圖。如圖5所示,客戶端虛擬 機182包括指令處理器200、指令緩存區(qū)202、對象調查器204、 RIP信息處理機206、 以及REP信息處理機164??蛻舳颂摂M機182的構件按與在應用程序服務器2的虛 擬機42內的對應構件相同的方式進行交互作用,參見圖3。由于在客戶端裝置4上
未裝載應用程序,客戶端虛擬機182既無需應用程序存儲處理機,也無需應用程序緩 存區(qū),正如在應用程序服務器2的虛擬機42中所示,參見圖3。
如上所述,客戶端裝置4用于儲存對象。為儲存對象,客戶端裝置4可包括諸 如RAM或ROM之類的存儲器。包含在對象內的指令被儲存在指令緩存區(qū)202中。 包含在對象內的對象數據被儲存在對象緩存區(qū)中,且未示出。在一實施例中,OS相依 層183用于發(fā)布某些對象,即可使客戶端裝置4的虛擬機182可用到某些對象。OS 相依層183發(fā)布與特定客戶端裝置4有關的對象(例如屏幕對象、鍵盤對象、鼠標對 象)。
應用程序對象可被劃分為共享對象,以便它們在每個更新之后、通過REP協議被 復制到例如應用程序服務器2??晒蚕淼膶ο箢愋涂扇Q于客戶端裝置的類型。對象類 型可變化。 一個可能的對象類型可以是高級"圖形API",它是存在于大多數現代客戶 端裝置中的通常選項。 一個實例是Windows GUI。
OS相依層183也作用于從操作系統180收到的某些對象更新(注意,這只有在 操作系統180能處理對象本身時才適用,因為并不是所有的通用操作系統均可做到這 一點)。當OS相依層183例如接收到來自操作系統180的信號時,它也可觸發(fā)對象 更新自身。
令人注意的是,客戶端裝置4也可具有對象緩存區(qū)(未示出),以通過在客戶端 裝置4與應用程序服務器2之間的REP通信、避免對對象數據的不斷査詢。
在一實施例中,應用程序服務器2與客戶端裝置4使用被稱為遠程接口協議 (Remote Interface Protocol, RIP) 的第二協議進行通信。虛擬機42 (參見圖3)和客戶 端虛擬機(參見圖7)均可包括RIP信息處理機62、 206。 RIP信息處理機62、 206的 構件如圖8所示。RIP信息處理機62、 20包括RIP信息分析器210、入局RIP隊 列212、出局RIP隊列214、以及應用程序RIP信息處理機216。應用程序RIP信 息處理機216用于通過RIP代理14、 16與在其他裝置內的RIP信息處理機通信, 也可參見圖1。入局RIP隊列212和出局RIP隊列214均用于暫時儲存RIP信息。 RIP信息分析器210用于與應用程序44、 46、 48通信。應用程序44、 46、 48可創(chuàng) 建請求,以形成新的RIP信息,這被稱為來自應用程序209的RIP呼叫,參見圖4。 該呼叫被發(fā)送給RIP信息分析器210,以作進一步處理。 一旦已從RIP信息分析器 210收到答復,包含答復的信息就被送回至應用程序44、 46、 48。
在一實施例中,應用程序服務器2內的RIP信息處理機62用于通過RIP代理 14、 16之一與客戶端裝置4的RIP信息處理機206通信。圖9為RIP代理14、 16的功能結構示意圖。RIP代理14、 16處理來自客戶端裝置4的所有入局RIP呼
叫。RIP代理14、 16對于在應用程序服務器2、 22上的應用程序起到代理作用。每 個RIP代理14、 16包括RIP請求處理機230、請求認證器232、以及RIP應用程 序注冊表234。RIP信息通信可如下文所述。在客戶端裝置4處的RIP處理機206將 RIP信息發(fā)送給RIP請求處理機230,參見箭頭236。 RIP處理機230將該信息傳送 給請求認證器232,參見箭頭238。請求認證器232查驗信息,并返回下列狀態(tài),參 見箭頭240:
一成功請求可被認證,并將被授權作進一步處理; 一失敗請求無法被認證,且將被中止。
隨后,RIP請求處理機230將在RIP應用程序注冊表234中查找RIP請求的 目標,參見箭頭242。 RIP應用程序注冊表234將報告下列結果,參見箭頭244: —成功可找到目標,另外物理地址被退回到RIP請求處理機230; —失敗在RIP應用程序注冊表234中未能找到目標。
在成功的情況下,RIP信息將被轉發(fā)到預定的應用程序RIP處理機62,參見箭 頭246。 一旦收到,應用程序RIP處理機62將報告下列結果之一,參見箭頭248: 一成功伴隨以RIP呼叫結果; —失敗請求失敗,此外將傳送錯誤代碼。 RIP請求處理機230將進行以下操作,參見箭頭250: 一如果失敗,將該失敗回報給RIP處理機206; —如果有來自應用程序RIP處理機的結果,回報該結果。
RIP協議包括載體協議,且可在OSI兼容網絡棧(例如IP)的第3層或第4層 上執(zhí)行。在IP環(huán)境中,它將作為在TCP上執(zhí)行的協議作用于第4層上、用于非時間 關鍵通信,以及作為關鍵通信在UDP上執(zhí)行。RIP協議包含固定大小的標頭,該標頭 描述應用程序源ID 、裝置目標ID、以及裝置源ID。此外,它還包含序列信息(序列 標識符)和凈負荷描述信息,例如信息類型(目前定義為新應用程序會話、認證、應 用程序凈負荷和錯誤)。通常使用標準加密技術對凈負荷加密。凈負荷本身幾乎可以是 任何協議,但已對它進行最優(yōu)化,以攜帶諸如RDP和ICA會話之類的時間敏感數據。 除RIP夕卜,也可使用其他協議,例如XUL, ICA (Citrix), RDP (Microsoft), VNC (RealVNC)或甚至XWindows。 RIP協議可用于通過通信網絡6傳達顯示更新。然而, 也可將顯示更新作為REP信息向客戶端裝置4傳達。與RIP信息相反,REP信息不 包含用于屏幕更新的位圖數據,而是描述"對象"中的屏幕。
根據一實施例,在應用程序服務器2處的虛擬機42未儲存"計算機存儲器"中的 對象數據,但它將該任務分配給COS 25。圖10為COS 25模塊以及在應用程序服務 器2處的虛擬機42的應用程序存儲處理機52的示意圖。COS25包括一或多個存儲 處理機節(jié)點24、以及一或多個存儲節(jié)點302、 304、 306和308。存儲節(jié)點24包括事 務處理機314、事務緩存區(qū)312、請求認證器314、以及對象失效器316。對于來自應 用程序44、 46、 48的對象請求,應用程序存儲處理機52向中心對象儲存器發(fā)送"事 務處理請求",參見箭頭320。對象請求可以如下 —新對象在數據庫中創(chuàng)建新對象; 一更新對象更新數據庫中的現有對象; 一刪除對象刪除數據庫中的現有對象;以及 一讀出對象從數據庫中讀出對象。
應用程序存儲處理機52從事務處理機310得到響應(參見箭頭322),可能的
響應如下
一成功成功完成事務處理;如果請求的類型是"讀出",也將返回得到的對象;以 及
一失敗未完成事務處理,此外將傳送錯誤號碼。
事務通過函數調用被傳送給請求認證器314,參見箭頭324。請求認證器314發(fā) 回下列信息之一,參見箭頭326: 一成功請求被驗證并授權進行; 一禁止請求被禁止;以及
一失敗發(fā)生內部失敗,此外將傳送錯誤號碼。
如果請求的類型是"讀出",請求將被傳送給事務緩存區(qū)312,參見箭頭328。 事務緩存區(qū)312將下列信息之一傳回事務處理機310,參見箭頭330: 一成功如果事務可與在事務緩存區(qū)312中出現的'事務緩存區(qū)LRU列表,匹配; 得到的對象也將被送回到事務處理機;以及 一失??;必須從存儲節(jié)點302、 304、 306、 308取回對象。
事務處理機310將向連接的節(jié)點前端302n、 304n、 306n、 308n之一傳送請求。 將根據下列因素確定節(jié)點前端
一節(jié)點前端必須被注冊在事務處理機內,并被標記為"活動"; 一具有最低請求/第二速率的節(jié)點前端;以及
一如果兩個節(jié)點具有相同的負載,將選擇可得到的第一個節(jié)點。
如果請求的類型是"更新",將等候來自所有在線對象失效器的響應。結果將被回事務處理機310,參見箭頭340、 342、 344、 346,結果可以如下 —成功如果請求是"讀出"類型,將伴隨以得到的對象;以及 一失敗請求未成功,錯誤代碼也將被傳送。
如果請求的類型是"讀出",對象將從文件系統儲存器302f、 304f、 306f、 308f之 一被讀出。如果請求的類型是"新"或"更新",更新將被保存到所有存儲節(jié)點302、 304、 306、 308中。通過始終將新或更新的對象儲存到所有存儲節(jié)點內,在這些節(jié)點之 間的數據將保持一致。
如果向節(jié)點前端的請求是"更新"類型,將向存儲處理機節(jié)點24的對象失效器316 發(fā)送無效信息,參見箭頭350、 352、 354、 356; —旦信息已被成功處理,對象失效器316 將發(fā)送響應。如果在超時幀內未收到信息,節(jié)點前端302n、 304n、 306n、 308n將向事 務處理機310傳送錯誤。對象失效器316將從最近最少使用(Least Recently Used, LRU)的事務緩存區(qū)312的列表中移除對象。 一旦這成功完成,對象失效器316將通 過事務緩存區(qū)312和事務處理機310將信息發(fā)回到應用程序存儲處理機52,參見箭 頭360、 330和322。
根據一實施例,被稱為應用程序服務器22的第三處理裝置22也以與應用程序 服務器2相同的方式用于與COS通信。應用程序服務器2、 22不在其自身的存儲裝 置中儲存對象,而是將對象儲存在COS的中心。它不僅包括相同的應用程序實例,還 具有完全相同的應用程序狀態(tài)。
在下文中將討論三個應用程序,這些應用程序可通過如上所述的數據處理系統被 執(zhí)行。這三個應用程序被用作實例,且無論如何未旨在限制本發(fā)明的范圍。
例1:文字處理器
在本發(fā)明的一實施例中,第一臺處理裝置2用于運行一文字處理器。文字處理器 是一種計算機軟件程序,用于通過使用諸如個人計算機之類的自動裝置書寫文本文檔。 最熟知的文字處理器是Microsoft Word,其他眾所周知的產品為WordPerfect和Star Office Writer。大多數現代文字處理器也執(zhí)行附加功能,例如文本格式化、字體選擇、 拼寫檢査和"所見即所得"。傳統的文字處理器是例如在單一計算機上運行的獨立應用 程序。在一"基于終端"的解決方案中,應用程序在遠程服務器、以及例如在單臺服務 器上運行,只有輸入和輸出被中繼到遠程客戶計算機。
為更好地理解文字處理器的內部工作,將對所使用的一些組成部分進行討論。文
字處理器的主要特征是以大的輸入區(qū)為特色的一個大窗口 ,在此顯示正在編輯的文本文 檔。也可在這一窗口對文件內容作處理。大多數現代文字處理器也以諸如下拉式菜單之 類的附加輸入控制為特色,以操作文字處理器的功能,例如本文格式化、載入和保存文 件等。
大多數現代文字處理器使用對象導向編程(object oriented programming, OOP)執(zhí) 行軟件。從"高空"看文字處理器,只有少數對象用于定義應用程序的狀態(tài)。最重要的 對象是包含正在處理的文件內容的對象。該對象被稱為文件對象。另外,定義了 "視見 區(qū)",視見區(qū)是用戶可見的文件塊,它將是文件對象的一屬性。此外,還可有屏幕對象。 屏幕對象代表顯示在屏幕上的數據。令人注意的是,在窗口和大多數其它操作系統中, OS為這類對象提供框架,正如本領域技術人員所將知道的那樣。對象通常被儲存在計 算機的存儲器內,通常為RAM存儲器,因為這具有短的存取等待時間。 一旦軟件被啟 動,它將設定文件對象的新實例。如果請求打開現有文件,這一文件的內容將從文件被 裝載到對象中。 一旦用戶開始鍵入,操作系統將為每一鍵入生成事件。操作系統將這些 事件發(fā)送給按鍵被預定用于的應用程序事件處理機。應用程序接收事件,并將在這些事 件類型的基礎上確定該做什么。例如,如果你按下了 "下頁"按鈕,它將例如更新文件 對象的內容或調整視見區(qū)的位置。
在每一事件之后,應用程序將評估是否必須更新屏幕顯示。如果已更新文件對象, 這在大多數情形下對于向用戶顯示的數據具有隱含的意義。因此這隱含屏幕對象必須被 相應更新,以代表在屏幕上文件對象的變化。當然,文字處理器的特點在于具有遠多于 上述的功能性,但它仍遵循以下指導方針
一應用程序通過操作系統接收事件。該事件可由在鼠標上的點擊、以及在鍵盤或任何 其他輸入裝置上的鍵入生成;
一應用程序評估事件的含意,并操作相應有關的對象;以及
—應用程序檢査這些變化是否隱含對終端用戶顯示信息的變化,并在需要時更新該信 息。
上述簡單"算法"是大多數現代應用程序的主要應用程序回路。 本發(fā)明保持應用程序的傳統構建觀念不變。在上述文字處理器實施例中,文字處 理器應用程序可仍使用其自身的對象儲存其'狀態(tài),,且無需調整。這與要求"從里向 夕卜"執(zhí)行的目前網絡應用程序的情形不同。傳統的網絡應用程序不可能直接與客戶通信, 由此使編程樣式復雜化,該樣式幾乎完全不同于構建應用程序的傳統對象導向方式。就 得到的代碼而言,它看起來差不多似乎是"從里向外"構建應用程序的。這是由于需處 理"瀏覽器事務"、而非使用對象造成的。在目前的網絡應用程序中,在客戶與服務器
之間不可能存在真正的雙向通信。
根據一實施例,對象不是儲存在本地計算機(即應用程序服務器)的RAM中, 而是儲存在中心對象儲存器(central object store, COS)中。如上所述,應用程序服務器2 可與客戶端裝置4共享對象狀態(tài)。這類共享對象的實例是屏幕以及諸如鍵盤之類的輸 入裝置。 一旦將對象標記為"共享",該對象的狀態(tài)將在客戶端裝置4與COS之間 被復制。
現在將針對文字處理器應用程序、對一實施例中的這一機制的內部工作作說明。 首先,客戶端裝置4將通過與客戶端裝置4連接的I/O裝置10接收命令??蛻舳?裝置4隨后將啟動用以開始文字處理器新實例的請求。該請求將通過REP信息被中 繼到負責處理該請求的應用程序服務器2。所選擇的應用程序服務器2隨后將執(zhí)行在 中心對象儲存器300、 302中建立實例環(huán)境的任務。 一旦應用程序返回到等候狀態(tài),對 于執(zhí)行線程的控制將被移交給應用程序的線程管理器。此外,將由應用程序服務器2的 虛擬機42創(chuàng)建一些共享對象; 一個是屏幕對象,而另一個是被稱為"輸入對象"的對 象。輸入對象包括數據和指令,以處理所有收到的用于應用程序的輸入。如果發(fā)生鍵入 或其他輸入事件,這將在客戶端裝置4上引起輸入對象的變化/更新。這一對象更新將 通過REP呼叫被通信給在應用程序服務器2處的REP處理機60。 一旦REP處理 機60已收到REP信息,REP處理機60將相應更新在中心對象儲存器中的對象。此 后,更新將被傳送給應用程序44、 46、 48。應用程序44、 46、 48隨后采取相應行動, 例如向文件對象中添加按壓鍵、或改變一段文本的字體類型。在該文件對象的更新期間, 必須重繪屏幕,以與文件的更新版本匹配。在應用程序服務器2處的應用程序相應地 操作屏幕對象。由于這一屏幕對象是共享對象,該對象(的狀態(tài))將被復制到客戶端裝 置4。 一旦對象已在中心對象儲存器中被更新,REP處理機60將向客戶端裝置4發(fā) 送屏幕更新REP呼叫;此外,還可生成一或多個包含屏幕信息的RIP信息。可使用 REP協議保持共享對象同步,但屏幕對象相對較大,因此通過專用RIP協議使用更有 效的復制方式。應注意的是,可使用另一協議,例如XUL或即將推出的XAML協議。 也有可能使用RDP或ICA的改編版本。
例2:視頻播放器
在一實施例中,第一處理裝置2用于執(zhí)行視頻播放器應用程序。視頻播放器應用 程序是一特案。在視頻播放器的實施方案中,必須在客戶端裝置4上進行大多數的處
理。但為保持對視頻播放器的控制,視頻播放器獨創(chuàng)性地利用以下事實,即本發(fā)明提供 "分布但同步"的對象框架。
窗口媒體播放器(Windows Media Player)是非常熟知的傳統視頻播放器實例,或 在這種情況下它也恰巧是用于播放視頻的媒體播放器。傳統視頻播放器是相當簡單的程 序。它們可打開視頻文件,或有時也可打開網絡流,并在用戶屏幕和音頻系統上播放。 大多數視頻播放器具有某種控制功能,這使通過視頻進行巡覽成為可能。視頻播放器使 用編碼解碼器解碼從盤片或網絡流收到的視頻數據。未經處理的視頻和音頻數據需極大
的存儲空間及/或網絡帶寬。大多數編碼解碼器使用某種方式壓縮這些數據,以使儲存變 得更有效、以及使網絡傳輸更可行。全功能全屏幕視頻會很容易就占用100mbit/s或更 多的視頻帶寬,這使視頻流對于目前的寬帶網絡無法使用?,F代編碼解碼器可將視頻壓 縮40因子、并使余下視頻的質量對于消費者而言仍足夠好?,F在首先討論一現有視頻 播放器,在這種情況下,該視頻播放器播放通過寬帶連接得到的流。如同上文提到的文 字處理器,現代視頻播放器也將具有"對象模型"的特點。主要對象如下 _視頻源,在這種情況下,為一網絡流; 一屏幕輸出;
-—編碼解碼器對象;以及
_"控制對象",代表諸如"播放"、"快進"之類的控制按鈕。
應用程序一旦被啟動,它將初始化上述對象,告知視頻源它已準備好接收視頻、
以及它將隨后啟動如下主要應用程序回路
_查找任何新事件,例如在控制按鈕上的按壓;
一對于"控制事件"采取適當動作,例如使視頻前進或停止播放;
一使來自網絡源的數據進入到"視頻源"對象中;
一如果視頻仍在播放,從"視頻源"讀出下一幀的數據;
—通過編碼解碼器發(fā)送要解碼的數據;
_更新"控制對象",以反映諸如新的幀號碼之類的新狀態(tài);以及 —將數據從編碼解碼器發(fā)送到"屏幕對象",以重繪屏幕。
現在描述一實施例中的視頻播放器應用程序。對于該實施例中的程序員和視頻播 放器用戶,該實施方案只與現有技術存在細微的差別。主要原理將是相同的,但在屏幕 后發(fā)生的卻有很大不同。首先,用于本發(fā)明的對象將與傳統對象相同。主要差異在于, 這些對象中的一些將被共享,還有一些將為"客戶本地(client local)"。客戶本地意味 著,這些對象的內容將不被復制到中心對象儲存器300、 302。"屏幕輸出"和"視頻 源"以及"編碼解碼器"將全部是客戶本地對象,因此這些對象不"居住"在中心對象
儲存器中。只有"控制對象"將是共享對象??刂茖ο蟀ㄓ糜?播放"、"暫停"、 "快進"等的控制器。此外,控制對象還包括"目前幀"屬性,該屬性包括目前正被播 放的幀??刂茖ο蟛⑽窗ㄒ曨l應用程序的全部狀態(tài),而只描述了與狀態(tài)重建有關的狀 態(tài),這一狀態(tài)重建是在客戶端裝置4失去其與應用程序服務器2的連接的情況下進行
的??刂茖ο蟀ㄅc描述視頻播放器狀態(tài)有關的所有數據,這些數據可以如下 播放器狀態(tài)(播放、暫停、快進等);
一目前被播放的幀;以及 —目前音量。
主要應用程序回路基本上與實例1中的相同,所以在這里將不作討論。只有這一 控制信息、而非應用程序的全部屏幕數據均被復制的原因在于,是為了節(jié)省大量的帶寬 及/或基礎設施的"服務器"和"客戶機"雙方的處理能力??刂茖ο蟮膹椭品绞綄⑴c對 象在文字處理器應用程序中被復制的方式相同。如果"屏幕"對象將被共享,未經處理 的電影屏幕數據將在只進行最小量壓縮的情況下被傳送,由此產生大的數據流。如果對 視頻流進行更高程度的壓縮,它將在基礎設施的服務器部分造成更高的CPU使用率, 且也將進一步降低視頻流的質量。
例3:微波
在又一實施例中,第一臺處理裝置2用于運行一家用裝置,例如微波操作系統。 大多數現代微波爐以微處理器為特征,即通過運行某種程序烹調食物。這類程序 可以是非常直接的,例如使磁控管在y瓦特下打開x秒,其中的x和y由用戶選擇。 一更復雜些的程序可以是我們稱之為"慢烹飪"的程序,其中磁控管在x的前半部分 將在0.5y瓦特下運行、在x的后半部分將在y瓦特下運行。大多數微電波還具有門、 一些輸入控制器、旋轉臺、通風機和燈。也可通過"對象導向"的方式査看傳統微波。 可定義下列對象
*門開著或關閉;
*控制對象代表輸入控制器;
*磁控管負責加熱物品;
*燈使食物在黑暗中可視;以及 ' *通風機使裝置冷卻,并除去食物產生的氣味和煙。
簡單微波程序的"主要應用程序回路"例如看起來如下 *從控制對象讀取數值 *如果檢測到啟動信號、且門關閉
O將磁控管設定到指定的瓦特數
O打開燈
O打開通風機
O如果"烹調食物回路"執(zhí)行以下動作,啟動
E檢査是否有人按下"停止"
曰檢査是否已超過指定的時間 O關閉磁控管 O關閉燈 O關閉通風機
微波實施例可被分成不同的實施方案。下文討論其中的兩個。 第一實施方案
第一個是"完全網絡化的微波",其中用于微波的程序邏輯在后端(即第一處理
裝置2)上運行,且對象狀態(tài)的更新將通過REP協議被復制,就像它是在上文討論的 字處理應用程序中完成的一樣。如果在后端上的程序啟用磁控管,REP通信將確保該 正式更新被復制到微波爐中。微波爐隨后將打開磁控管,并開始烹飪食物等。這樣,用 戶如果可到達后端,就可遠程控制其微波。該到達例如可通過將第二客戶端裝置與后端 連接而實現。第二客戶端裝置可以是裝載有例如特別設計用于遠程控制微波的控制程序 的計算機??刂瞥绦蚩删哂写韺嶋H微波控制的屏幕對象。控制程序將通過REP協議 與后端通信。所以,當用戶按下在屏幕上的按鈕時,在第二客戶端裝置中將發(fā)生對象變 化(例如微波.通電:=真(Microwave.Power-on := true));對象變化隨后被復制到共享 特定對象的所有裝置中。在這種情況下,這些裝置將為后端和第一客戶端裝置。在第一 客戶端裝置4 (即微波)中,對象變化隨后將使微波操作系統180啟動微波。
完全網絡化的微波只有當存在與應用程序服務器2 (即后端)關聯的任務時才工 作。在這一實施方案中,客戶端裝置4使用的對象將全部是共享對象。
微波4的OS相依層183接收共享對象的更新。共享對象"加熱"的一屬性可 以是"功率",這將被稱為"加熱.功率(heating.power)"。該屬性描述了磁控管發(fā)出的 瓦特數(微波的實際"加熱模塊")。 一旦屬性"加熱.功率"發(fā)生變化,OS相依層就
用于更新某一指令。這一指令將在硬件中設定某一寄存器,所以磁控管將被設定在某一 功率水平。
第二實施方案
在一個不甚完美的世界中,客戶端裝置4不能與后端(即第一處理裝置2和 COS)穩(wěn)定連接,但本發(fā)明仍可用于遠程控制微波應用程序。在這種情況下,微波程序 在后端上運行,但它也將在微波4本身上運行。這允許微波為單機裝置,由此每當存 在連接時、可更新它到后端和中心對象儲存器的狀態(tài)。與第一實施方案(即完全網絡化 微波)比較存在的差異在于,在這種情況下,第二處理裝置4 (在這種情況下為微波) 是應用程序的主機,而后端被作為"客機"。此外,所有有關對象都將為共享對象,但 具有"可得就同步(sync when available)"旗標設定。在對象上的這一旗標允許對象不同 步。然而,應用程序可以不使用未能被"認證"為"同步中(in-sync)"的對象。所以, 當對象是"可得"且同步化的時,在后端上的應用程序只能操作微波的狀態(tài)。因此,每 當微波被斷開連接時,在中心對象儲存器中的狀態(tài)不能變化,但在微波上的狀態(tài)可變化。
這樣,每當可遠程控制微波的應用程序與后端連接時,就執(zhí)行該應用程序,但也 應認識到它可被斷開連接的事實。當在遠程初始化的食物烹飪期間斷開連接時,為避免 食物被過度烹飪,可執(zhí)行在微波程序內的一些安全措施。
上文描述了本發(fā)明的具體實施例,以其他方式實施本發(fā)明也將是可能的。例如, 數據處理系統可包括多個客戶端裝置,這些客戶端裝置運行相同的應用程序,例如電腦 游戲。每個客戶端裝置將具有在不同客戶端裝置處發(fā)生變化的共享對象。這些對象變化 隨后被發(fā)送到使用REP協議的其他客戶機。此外,有可能共享操作系統的狀態(tài)、而非 應用程序狀態(tài)。
上文描述旨在例證說明,而非限制。因此,對于本領域技術人員將顯而易見的是, 可在未背離下文所述權利要求范圍的情況下、對本發(fā)明作修改。
權利要求
1. 一種數據處理系統(1),包括—第一處理裝置(2),包括用于裝載第一操作系統(40)、以及至少監(jiān)視第一對象變化的第一處理器;以及—第二處理裝置(4),包括用于裝載第二操作系統(180)、以及至少監(jiān)視第二對象變化的第二處理器;其特征在于當在所述第一處理裝置(2)處所述第一對象的變化被啟動時,所述第一處理裝置(2)用于將第一對象的變化信息發(fā)送給所述第二處理裝置(4);當在所述第二處理裝置(4)處所述第二對象的變化被啟動時,所述第二處理裝置(4)用于將第二對象的變化信息發(fā)送給所述第一處理裝置(2);以及所述第一和所述第二處理裝置(2,4)用于處理所述第一和所述第二對象的變化,以在所述第一對象發(fā)生變化之后將所述第一對象復制到所述第二對象、以及在所述第二對象發(fā)生變化之后將所述第二對象復制到所述第一對象。
2. 根據權利要求1所述的數據處理系統,其特征在于所述第一處理器用于在所述第一操作系統上裝載第一虛擬機,且所述第一虛擬機用于創(chuàng)建所述第一對象變化信息、并 將所述第一對象變化信息發(fā)送到所述第二處理裝置。
3. 根據前述權利要求中任意一項權利要求所述的數據處理系統,其特征在于所述第 二處理器用于在所述第二操作系統上裝載第二虛擬機,且所述第二虛擬機用于創(chuàng)建所述 第二對象變化信息、并將所述第二對象變化信息發(fā)送到所述第一處理裝置。
4. 根據前述權利要求中任意一項權利要求所述的數據處理系統,其特征在于所述第 一處理裝置(2)用于執(zhí)行應用程序,且所述第一處理器用于將所述應用程序作出的賦值 翻譯成所述第一對象的變化信息。
5. 根據權利要求4所述的數據處理系統,其特征在于所述第一處理裝置為用于執(zhí)行 多個應用程序的應用程序服務器。
6. 根據權利要求4所述的數據處理系統,其特征在于所述第一和第二對象至少包括 所述應用程序的數據和指令之一。
7. 根據前述權利要求中任意一項權利要求所述的數據處理系統,其特征在于所述第 一和所述第二處理裝置用于使用因特網協議進行通信。
8. 根據權利要求7所述的數據處理系統,其特征在于所述因特網協議用于通過因特 網發(fā)送信息,且所述信息包括以下種類一對象變化信息;以及 一共享有關對象的所有裝置的識別信息。
9. 根據前述權利要求中任意一項權利要求所述的數據處理系統,其特征在于所述第 一和所述第二處理裝置用于使用廣域網協議進行通信。
10. 根據前述權利要求中任意一項權利要求所述的數據處理系統,其特征在于該數據處理系統至少包括第一存儲裝置(302),該第一存儲裝置(302)用于與所述第一處理裝 置(2)通信、以及儲存所述第一對象。
11. 根據權利要求10所述的數據處理系統,其特征在于該數據處理系統至少包括第三處理裝置,該第三處理裝置至少在使用中用于執(zhí)行應用程序,且該應用程序與在所述第一處理裝置上運行的所述應用程序相同;所述第三處理裝置用于至少監(jiān)視第三對象; 所述第一和所述第三處理裝置用于向/從所述存儲裝置(302)發(fā)送/接收信息,以在所述 第一對象發(fā)生變化之后將所述第一對象復制到所述第三對象、以及在所述第三對象發(fā)生 變化之后將所述第三對象復制到所述第一對象。
12. 根據權利要求11所述的數據處理系統,其特征在于所述第一處理裝置包括用于 檢查所述第一對象是否有效的對象認證器;所述第一處理裝置只有在所述第一對象有效 的情形下、才用于裝載來自所述存儲裝置的所述第一對象的更新。
13. 根據權利要求10所述的數據處理系統,其特征在于該數據處理系統包括兩臺或 更多臺用于與所述第一處理裝置通信、以及儲存所述第一對象的存儲裝置。
14. 根據前述權利要求中任意一項權利要求所述的數據處理系統,其特征在于所述第一處理裝置用于執(zhí)行桌面應用程序。
15. 根據前述權利要求中任意一項權利要求所述的數據處理系統,其特征在于所述第一處理裝置用于執(zhí)行視頻應用程序。
16. 根據前述權利要求中任意一項權利要求所述的數據處理系統,其特征在于所述第一處理裝置用于執(zhí)行domotics應用程序。
17. 根據前述權利要求中任意一項權利要求所述的數據處理系統,其特征在于所述第二處理裝置(4)用于將所述第二對象的格式通信給所述第一處理裝置(2)。
18. 根據前述權利要求中任意一項權利要求所述的數據處理系統的應用,
19. 一種在數據處理網絡中的處理對象方法,該數據處理網絡包括第一處理裝置(2) 和第二處理裝置(4),所述方法包括一監(jiān)視在所述第一處理裝置內的對象變化; _監(jiān)視在所述第二處理裝置內的對象變化;一將在所述第一處理裝置處啟動的對象變化發(fā)送給所述第二處理裝置;以及 —將在所述第二處理裝置處啟動的對象變化發(fā)送給所述第一處理裝置。
全文摘要
具有復制應用程序狀態(tài)的客戶機服務器網絡,本發(fā)明涉及數據處理系統(1),包括第一處理裝置(2),包括用于裝載第一操作系統(40)、以及至少監(jiān)視第一對象變化的第一處理器;以及第二處理裝置(4),包括用于裝載第二操作系統(180)、以及至少監(jiān)視第二對象變化的第二處理器;其特征在于當在所述第一處理裝置(2)處啟動所述第一對象的變化時,所述第一處理裝置(2)用于將第一對象變化信息發(fā)送給所述第二處理裝置(4);當在所述第二處理裝置(4)處啟動所述第二對象的變化時,所述第二處理裝置(4)用于將第二對象變化信息發(fā)送給所述第一處理裝置(2);以及所述第一和所述第二處理裝置(2,4)用于處理所述第一和所述第二對象的變化,以在所述第一對象發(fā)生變化之后將所述第一對象復制到所述第二對象、以及在所述第二對象發(fā)生變化之后將所述第二對象復制到所述第一對象。
文檔編號G06F9/46GK101384998SQ200580052503
公開日2009年3月11日 申請日期2005年12月1日 優(yōu)先權日2005年12月1日
發(fā)明者馬克·維瑞基霍夫, 馬克·艾肯, 馬賽爾·凡·伯格蘭 申請人:數碼公司