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

具有復(fù)制應(yīng)用程序狀態(tài)的客戶機(jī)服務(wù)器網(wǎng)絡(luò)的制作方法

文檔序號:6554049閱讀:151來源:國知局
專利名稱:具有復(fù)制應(yīng)用程序狀態(tài)的客戶機(jī)服務(wù)器網(wǎng)絡(luò)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)處理系統(tǒng),尤其涉及客戶機(jī)服務(wù)器網(wǎng)絡(luò)。
背景技術(shù)
現(xiàn)今使用特殊的數(shù)據(jù)處理系統(tǒng),其中用戶安裝機(jī)頂盒(set-top box, STB),以使用 遠(yuǎn)程應(yīng)用程序服務(wù)器的應(yīng)用程序。機(jī)頂盒是一種例如能夠使電視變?yōu)橐蛱鼐W(wǎng)的用戶界 面、以及能夠使電視接收和解碼數(shù)字電視(digitaltelevision, DTV)廣播的裝置。數(shù)字電 視機(jī)頂盒有時被稱為接收器。機(jī)頂盒對于那些希望通過他們現(xiàn)有的模擬電視機(jī)接收數(shù)字 廣播的電視觀眾是必需的。最近,已出現(xiàn)既支持?jǐn)?shù)字視頻廣播(digital video broadcasting, DVB)、又支持基于因特網(wǎng)協(xié)議(Internet Protocol, IP)視頻的混合機(jī)頂盒。這類裝置允許 用戶觀看數(shù)字電纜編程、以及來自因特網(wǎng)或本地IP網(wǎng)絡(luò)的視頻。IP機(jī)頂盒正在發(fā)展成 為一種在電纜操作員與基于Telco的寬帶提供商之間的競爭中的關(guān)鍵裝置,以向客戶提 供非常重要的音頻、數(shù)據(jù)和視頻的"三重播放"功能。IP STB典型地具有一種網(wǎng)頁瀏 覽器功能、以及諸如遙控接口和視頻播放器之類的附加功能。實(shí)際上,這類IP STB與 具有網(wǎng)頁瀏覽器的PC的差別僅在于以下事實(shí)
—屏幕由電視代替;
—鍵盤和鼠標(biāo)由遙控器代替;
—硬件被安排在相對小的盒子中;以及
_通常在IP STB內(nèi)不存在硬盤。 網(wǎng)頁交互方式事實(shí)上是有限的,即對萬維網(wǎng)的設(shè)計(jì)使用的是一種"客戶端拉(clientpull)" 技術(shù)。這意味著"客戶"需啟動動作,且不可能與"服務(wù)器"方的客戶直接通信。為解 決這一問題,可使用客戶方腳本處理,例如眾所周知的JavaScript。然而,JavaScript代 碼不是在服務(wù)器方運(yùn)行的應(yīng)用程序的一部分,由此并不"知道"應(yīng)用程序的實(shí)際狀態(tài)。 因此,這類"客戶端拉"技術(shù)不是很適用于更高級的交互應(yīng)用。
發(fā)明概述
人們希望建立更適用于高級交互應(yīng)用的客戶機(jī)服務(wù)器網(wǎng)絡(luò)結(jié)構(gòu)。
本發(fā)明提供了包括以下部件的數(shù)據(jù)處理系統(tǒng)-一第一處理裝置,包括用于裝載第一操作系統(tǒng)、以及至少監(jiān)視第一對象變化的第一處 理器;以及
_第二處理裝置,包括用于裝載第二操作系統(tǒng)、以及至少監(jiān)視第二對象變化的第二處 理器。
其中,當(dāng)在第一處理裝置處啟動第一對象變化時,第一處理裝置用于將第一對象變化信 息發(fā)送給第二處理裝置;
當(dāng)在第二處理裝置處啟動第二對象變化時,第二處理裝置用于將第二對象變化信息發(fā)送 給第一處理裝置;以及
第一和第二處理裝置用于處理第一和第二對象的變化,以在第一對象發(fā)生變化之后將第 一對象復(fù)制到第二對象、以及在第二對象發(fā)生變化之后將第二對象復(fù)制到第一對象。
通過共享由兩臺或更多臺裝置使用的對象,有可能設(shè)計(jì)出具有真正雙向通信功能的 多功能客戶機(jī)服務(wù)器環(huán)境(即從雙方啟動的通信)。
第一處理器可用于在第一操作系統(tǒng)上裝載第一虛擬機(jī)(virtual machine, VM),該第一 虛擬機(jī)用于創(chuàng)建第一對象變化信息、并將第一對象變化信息發(fā)送給第二處理裝置。
在VM中實(shí)施本發(fā)明可只需對VM進(jìn)行編程,而無需調(diào)整現(xiàn)有操作系統(tǒng)。
第二處理器可用于在第二操作系統(tǒng)上裝載第二虛擬機(jī),該第二虛擬機(jī)用于創(chuàng)建第二 對象變化信息、并將第二對象變化信息發(fā)送給第一處理裝置。
第一處理裝置可用于執(zhí)行應(yīng)用程序,且第一處理器可用于將應(yīng)用程序給出的賦值翻 譯成第一對象變化信息。這樣,對象內(nèi)容可透明地被復(fù)制到其他數(shù)據(jù)處理裝置中,而無 需由應(yīng)用程序作出特殊動作。
第一處理裝置可以是用于執(zhí)行多個應(yīng)用程序的應(yīng)用程序服務(wù)器。
第一和第二處理裝置可用于通過因特網(wǎng)協(xié)議進(jìn)行通信。這樣,可在作用于現(xiàn)有通信 網(wǎng)絡(luò)的數(shù)據(jù)處理系統(tǒng)中實(shí)施本發(fā)明。
因特網(wǎng)協(xié)議用于通過因特網(wǎng)發(fā)送信息,該信息包括對象變化信息、以及共享有關(guān)對 象的所有裝置的識別信息。因?yàn)橥ㄟ^協(xié)議只可傳輸更新,由此將節(jié)省網(wǎng)絡(luò)帶寬。
第一和第二處理裝置可用于通過廣域網(wǎng)協(xié)議進(jìn)行通信。這樣,這一實(shí)施例中的數(shù)據(jù) 處理系統(tǒng)可作用于未來的通信網(wǎng)絡(luò)。
上述數(shù)據(jù)處理系統(tǒng)可至少包括第一存儲裝置,該第一存儲裝置用于與第一處理裝置 通信、以及儲存第一對象。單獨(dú)的存儲節(jié)點(diǎn)使系統(tǒng)變得更冗余。當(dāng)應(yīng)用程序服務(wù)器經(jīng)歷 諸如停電之類的重大故障時,數(shù)據(jù)以及任何應(yīng)用程序狀態(tài)信息均不會喪失,這是因?yàn)檫@ 一狀態(tài)信息儲存在存儲裝置中。
數(shù)據(jù)處理系統(tǒng)可至少包括第三處理裝置,該第三處理裝置至少在使用中用于執(zhí)行應(yīng) 用程序,且該應(yīng)用程序與第一處理裝置中的應(yīng)用程序相同;第三處理裝置用于至少監(jiān)視 第三對象;其中,第一和第三處理裝置用于向/從存儲裝置發(fā)送/接收數(shù)據(jù),以在第一對 象發(fā)生變化之后將第一對象復(fù)制到第三對象、或在第三對象發(fā)生變化之后將第三對象復(fù) 制到第一對象。這樣,應(yīng)用程序的一個實(shí)例有可能同時被裝載到幾個應(yīng)用程序服務(wù)器上。 一臺服務(wù)器的停機(jī)甚至不會引起用戶的注意。
第一處理裝置可包括用于檢查第一對象是否有效的對象驗(yàn)證器;其中,只有在第一 對象有效的情況下,第一處理裝置才可用于裝載來自存儲裝置的第一對象更新。應(yīng)用程 序服務(wù)器將應(yīng)用程序的狀態(tài)(即對象)儲存在其緩存區(qū)中;如果對象是無效的,存儲裝 置知道發(fā)送給應(yīng)用程序服務(wù)器的最新狀態(tài);如果狀態(tài)是無效的,只需將對象發(fā)送給應(yīng)用 程序服務(wù)器。因此,在數(shù)據(jù)庫與應(yīng)用程序服務(wù)器之間通信最少。
上述數(shù)據(jù)處理系統(tǒng)可包括兩臺或更多臺存儲裝置,這些存儲裝置用于與第一處理裝 置通信、以及儲存第一對象。這樣, 一些節(jié)點(diǎn)包括精確復(fù)制的相同對象。在這種情況下, 第二和第三節(jié)點(diǎn)可作為第一存儲節(jié)點(diǎn)的備份。
根據(jù)前述權(quán)利要求中的任意一項(xiàng)權(quán)利要求所述的數(shù)據(jù)處理系統(tǒng),其中第一處理裝置 用于執(zhí)行桌面應(yīng)用程序。它還可選擇性地用于執(zhí)行視頻應(yīng)用程序。它也可用于執(zhí)行 domotics應(yīng)用禾呈序。
第二處理裝置可用于將第二對象的格式通信給第一處理裝置。這樣,第一處理裝置 知道第二處理裝置使用的對象的精確格式。這使應(yīng)用程序有可能用于全面控制某種類型 的裝置,且在這些裝置的精確實(shí)施方面存在差異(即在對象格式方面存在差異)。智能 應(yīng)用程序有能力適應(yīng)這些差異。因此,相同的應(yīng)用程序可用于控制多臺相同類型的、但 由不同制造商制造的裝置。
本發(fā)明也涉及上述數(shù)據(jù)處理系統(tǒng)的使用。最后,本發(fā)明涉及權(quán)利要求19所述的方法。


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