專利名稱:用于客戶機(jī)-服務(wù)器網(wǎng)絡(luò)中協(xié)作應(yīng)用的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明 一般地涉及計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng),尤其涉及客戶機(jī)-服務(wù)器計(jì) 算機(jī)網(wǎng)絡(luò)。更具體地,本發(fā)明涉及客戶機(jī)-服務(wù)器計(jì)算機(jī)網(wǎng)絡(luò)中的客戶 機(jī)-服務(wù)器確定。
背景技術(shù):
大多數(shù)多客戶機(jī)協(xié)作應(yīng)用通過標(biāo)準(zhǔn)拓樸而被提供,其中在標(biāo)準(zhǔn)拓 樸中,提供專用服務(wù)器(計(jì)算機(jī)系統(tǒng))來支持正被執(zhí)行的應(yīng)用的核心 服務(wù)器級功能。在該拓樸中,每個訪問所述應(yīng)用的客戶機(jī)連接到該專用服務(wù)器,并且直接與該專用服務(wù)器交互。IBM Lotus Notes⑧是這種 應(yīng)用的一個7>知的例子。然而,對于某些更傳統(tǒng)的協(xié)作應(yīng)用,應(yīng)用依賴于以下客戶機(jī)-服 務(wù)器拓樸,即通過該客戶機(jī)-服務(wù)器拓樸,"客戶機(jī)"計(jì)算機(jī)系統(tǒng)之一擔(dān) 任其他客戶機(jī)的"服務(wù)器"的角色,并且作為其他客戶機(jī)的"服務(wù)器"而 操作。這種應(yīng)用的一個例子是聯(lián)機(jī)游戲。存在許多聯(lián)機(jī)游戲,其中游 戲應(yīng)用^皮編寫為4吏得例如啟動"游戲室(gameroom)"的人的計(jì)算枳^ 系統(tǒng)擔(dān)任游戲應(yīng)用的服務(wù)器的角色。另外,許多聯(lián)機(jī)游戲服務(wù)器實(shí)際 上被用于將若干玩家/客戶機(jī)定向到一個客戶機(jī)服務(wù)器,該客戶機(jī)服務(wù) 器實(shí)際上是產(chǎn)生(spawning) /運(yùn)行游戲服務(wù)器類功能的用戶/玩家的 家用PC。這些交互式軟件應(yīng)用通常要求客戶機(jī)服務(wù)器提供某些處理和網(wǎng) 絡(luò)連接能力,這可能給客戶機(jī)服務(wù)器帶來沉重的負(fù)擔(dān)。使用不提供所 要求能力的客戶機(jī)服務(wù)器導(dǎo)致應(yīng)用運(yùn)行于理想操作等級之下,并且負(fù) 面地影響其他客戶機(jī)的體驗(yàn)。 參與交互環(huán)境的每個客戶機(jī)可能具有不同的系統(tǒng)能力。因此,客 戶機(jī)服務(wù)器具有比參與交互應(yīng)用的其他客戶機(jī)中一個或多個客戶機(jī) 差的系統(tǒng)能力并非是不常見的。然而,由于客戶機(jī)服務(wù)器是應(yīng)用的服 務(wù)器級功能的啟動者,所以在進(jìn)行的會話過程中,客戶機(jī)服務(wù)器保持 對應(yīng)用的執(zhí)行的控制。發(fā)明內(nèi)容公開了 一種用于為客戶機(jī)-服務(wù)器網(wǎng)絡(luò)環(huán)境中的協(xié)作應(yīng)用實(shí)時地 動態(tài)確定理想的客戶機(jī)服務(wù)器的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。特別地,理想服務(wù)器實(shí)用程序(Ideal Server utility )將加入的客戶才幾的計(jì) 算機(jī)系統(tǒng)的能力與當(dāng)前客戶機(jī)服務(wù)器的計(jì)算機(jī)系統(tǒng)的能力進(jìn)行比較, 以確定哪個系統(tǒng)被最佳地配備為控制應(yīng)用的執(zhí)行。理想服務(wù)器實(shí)用程 序首先評估應(yīng)用的啟動者/客戶機(jī)服務(wù)器的系統(tǒng)能力,并且存儲評估結(jié) 果。每當(dāng)新客戶機(jī)加入/參與應(yīng)用會話時,理想服務(wù)器實(shí)用程序就評估 新客戶機(jī)(候選客戶機(jī)服務(wù)器)的系統(tǒng)能力,并且將s新客戶機(jī)的系 統(tǒng)能力與當(dāng)前客戶機(jī)服務(wù)器的系統(tǒng)能力進(jìn)行比較。如果新客戶機(jī)具有 比當(dāng)前客戶機(jī)服務(wù)器更好的能力,則為新客戶機(jī)提供客戶機(jī)服務(wù)器的 角色。通過客戶機(jī)服務(wù)器參數(shù)和進(jìn)行中的應(yīng)用數(shù)據(jù)的轉(zhuǎn)移來啟動應(yīng)用 到候選客戶機(jī)服務(wù)器的轉(zhuǎn)移。 一旦完成轉(zhuǎn)移,應(yīng)用就在候選客戶機(jī)服 務(wù)器上繼續(xù)處理,其中候選客戶機(jī)服務(wù)器現(xiàn)在是新的客戶機(jī)服務(wù)器。 以進(jìn)行中應(yīng)用會話不可察覺的停機(jī)時間完成轉(zhuǎn)移。在下面詳細(xì)的描述中將會更加明了本發(fā)明的上述以及附加的目 的、特征和優(yōu)點(diǎn)。
通過參考對示例實(shí)施例的下列詳細(xì)描述,在結(jié)合附圖閱讀時將最 好地理解本發(fā)明自身以及其優(yōu)選使用模式,其他目的和優(yōu)點(diǎn),其中 圖1示出了可以有利地實(shí)現(xiàn)本發(fā)明的特征的數(shù)據(jù)處理系統(tǒng); 圖2示出了根據(jù)本發(fā)明一個示例性實(shí)施例的基本客戶機(jī)-服務(wù)器 網(wǎng)絡(luò);圖3示出了根據(jù)本發(fā)明一個示例性實(shí)施例的包含用于確定相對 系統(tǒng)值的兩個客戶機(jī)系統(tǒng)的系統(tǒng)值參數(shù)的示例性表格;圖4示出了根據(jù)本發(fā)明一個示例性實(shí)施例的具有在批準(zhǔn)客戶機(jī) 服務(wù)器切換的處理中所使用的選擇(彈出)窗口的示例性聯(lián)機(jī)游戲; 和圖5是一個流程圖,其示出了根據(jù)本發(fā)明一個示例性實(shí)施例,理 想服務(wù)器實(shí)用程序在評估和比較計(jì)算機(jī)系統(tǒng)和確定何時啟動客戶機(jī) 服務(wù)器切換中所完成的處理。
具體實(shí)施方式
本發(fā)明提供了一種用于為客戶機(jī)-服務(wù)器網(wǎng)絡(luò)環(huán)境中的協(xié)作應(yīng) 用實(shí)時地動態(tài)確定理想的客戶機(jī)服務(wù)器的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn) 品。特別地,理想服務(wù)器實(shí)用程序?qū)⒓尤氲目蛻魴C(jī)的計(jì)算機(jī)系統(tǒng)的能 力與當(dāng)前客戶機(jī)服務(wù)器的計(jì)算機(jī)系統(tǒng)的能力進(jìn)行比較,以確定哪個系統(tǒng)被最佳地配備為控制應(yīng)用的執(zhí)行。理想服務(wù)器實(shí)用程序首先評估應(yīng) 用的啟動者/客戶機(jī)服務(wù)器的系統(tǒng)能力,并且存儲評估結(jié)果。每當(dāng)新客 戶機(jī)加入/參與應(yīng)用會話時,理想服務(wù)器實(shí)用程序就評估新客戶機(jī)(候 選客戶機(jī)服務(wù)器)的系統(tǒng)能力,并且將新客戶機(jī)的系統(tǒng)能力與當(dāng)前客 戶機(jī)服務(wù)器的系統(tǒng)能力進(jìn)行比較。如果新客戶機(jī)具有比當(dāng)前客戶機(jī)服 務(wù)器更好的能力,則為新客戶機(jī)提供客戶機(jī)服務(wù)器的角色。通過客戶 機(jī)服務(wù)器參數(shù)和進(jìn)行中的應(yīng)用數(shù)據(jù)(會話數(shù)據(jù))的轉(zhuǎn)移來啟動應(yīng)用到 候選客戶機(jī)服務(wù)器的轉(zhuǎn)移。 一旦完成轉(zhuǎn)移,應(yīng)用就在現(xiàn)在作為新的客 戶機(jī)服務(wù)器的候選客戶機(jī)服務(wù)器上繼續(xù)處理。以進(jìn)行中的應(yīng)用會話不 可察覺的停機(jī)時間完成轉(zhuǎn)移。在對本發(fā)明實(shí)施例的下列詳細(xì)描述中,以足以使本領(lǐng)域技術(shù)人員 能夠?qū)崿F(xiàn)本發(fā)明的詳細(xì)描述了其中可以實(shí)現(xiàn)本發(fā)明的特定示例性實(shí) 施例,并且應(yīng)當(dāng)理解,可以利用其他實(shí)施例,并且可以做出邏輯的、 體系結(jié)構(gòu)的、程序的、機(jī)械的、電氣的和其他的改變,而不脫離本發(fā)
明的精神或范圍。因此,下面的詳細(xì)描述不是限制性的,并且僅由所 附的權(quán)利要求限定本發(fā)明的范圍。在附圖的描述中,為相似的元素提供與前面圖中相似的名稱和附 圖標(biāo)記。如果后一個圖在不同的上下文中或以不同的功能使用該元 素,則給該元素提供代表圖號的不同的引導(dǎo)數(shù)字(例如,對于圖1,為lxx;而對于圖2,為2xx)。分配給元素的具體數(shù)字僅僅是為了有 助于描述而被提供的,而不意味著暗示對本發(fā)明的任何限制(結(jié)構(gòu)的 或功能的)。還應(yīng)當(dāng)理解,特定參數(shù)名稱的使用僅是示例性的,并且不意味著 暗示對本發(fā)明的任何限制。因此,本發(fā)明的實(shí)施例可以被提供以用于 描述上述參數(shù)的不同命名/術(shù)語,而沒有限制?,F(xiàn)在參考附圖,圖1示出了在其中可以有利地實(shí)現(xiàn)本發(fā)明的特征 的數(shù)據(jù)處理系統(tǒng)的方框圖。數(shù)據(jù)處理系統(tǒng)(DPS) 100可以被用作客 戶機(jī)服務(wù)器(例如,其執(zhí)行協(xié)作/共享應(yīng)用軟件)或能夠成為客戶機(jī)服 務(wù)器的新客戶機(jī)。然而,在此處的描述中,假設(shè)DPS 100是當(dāng)前的客 戶機(jī)服務(wù)器。DPS 100包括連接到系統(tǒng)總線/互連102的處理器101。同樣被連 接到系統(tǒng)總線/互連102的存儲器控制器105控制對存儲器106的訪 問。另一個存儲設(shè)備104和輸入/輸出控制器(1/0控制器)115也被 連接到系統(tǒng)總線102,其中輸入/輸出控制器(I/O控制器)115控制 多個輸入設(shè)備所進(jìn)行的訪問,其中對于輸入設(shè)備,示出了鼠標(biāo)120和 鍵盤117。 I/O控制器115還控制對輸出設(shè)備的訪問,其中對于輸出 設(shè)備,示出了顯示器118。為了支持可移動存儲介質(zhì)的使用,I/O控 制器115還可以支持諸如USB (通用串行總線)端口 121這樣的一個 或多個端口和諸如壓縮盤讀/寫(CDRW) /數(shù)字浮見頻盤(DVD)驅(qū)動 器這樣的介質(zhì)驅(qū)動器119。DPS 100還包括網(wǎng)絡(luò)接口設(shè)備(NID) 125,其中通過網(wǎng)絡(luò)接口 i殳備(NID)125, DPS 100能夠經(jīng)由網(wǎng)絡(luò)(諸如互聯(lián)網(wǎng)(Internet)) 而與外部設(shè)備(諸如客戶機(jī))連接和通信。NID 125可以是調(diào)制解調(diào)
器或網(wǎng)絡(luò)適配器,并且還可以是無線收發(fā)設(shè)備。DPS100包括用于支 持經(jīng)由NID 125的網(wǎng)絡(luò)連接和通信的軟件和固件機(jī)制。本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)理解,圖1中示出的硬件可以改變。例 如,還可以使用其他外圍設(shè)備,諸如光盤驅(qū)動器等,來作為所示出的 硬件的補(bǔ)充或替換。因此,所示出的例子不意味著暗示對于本發(fā)明的 體系結(jié)構(gòu)限制。圖1示出的數(shù)據(jù)處理系統(tǒng)例如可以是紐約Armonk的 國際商業(yè)機(jī)器公司的產(chǎn)品運(yùn)行高級交互執(zhí)行體(AIX)操作系統(tǒng)或 LINUX操作系統(tǒng)的IBM eServer pSeries系統(tǒng)。本發(fā)明的各種特征被提供作為存儲在存儲器106或其他存儲設(shè) 備104內(nèi)并且由一個或多個處理器101執(zhí)行的軟件代碼。因此,如圖 l所示,除了上述硬件組件之外,DPS 100還包括多個軟件組件,包 括操作系統(tǒng)(OS) 108 (例如,Microsoft 7>司的注冊商標(biāo)Microsoft \¥11^0\¥8@或自由軟件基金會和Linux標(biāo)記組織的注冊商標(biāo) GNU /LinUX )以及一個或多個軟件應(yīng)用和/或?qū)嵱贸绦?。這些軟件應(yīng) 用和實(shí)用程序當(dāng)中有U)協(xié)作應(yīng)用軟件指令A(yù)PP112,其包括(b) 用于提供應(yīng)用的客戶機(jī)服務(wù)器功能的軟件指令,服務(wù)器和會話代碼/ 數(shù)據(jù)114,并且更特定于本發(fā)明的(c)用于使能下面所述的理想服務(wù) 器確定特征的軟件指令。為了簡單起見,用于使能理想服務(wù)器確定特 征的代碼的總體在這里被稱為理想服務(wù)器實(shí)用程序110。在實(shí)際實(shí)現(xiàn) 中,理想服務(wù)器實(shí)用程序110是當(dāng)DPS 100被確定為正執(zhí)行協(xié)作軟件 應(yīng)用的客戶機(jī)服務(wù)器時,在DPS 100上執(zhí)行的協(xié)作應(yīng)用(APP112) 內(nèi)的子例程。在一個可替換實(shí)施例中,理想服務(wù)器實(shí)用程序IIO可以 是安裝在客戶機(jī)-服務(wù)器網(wǎng)絡(luò)環(huán)境內(nèi) 一個或多個客戶機(jī)上的獨(dú)立的軟 件應(yīng)用。協(xié)作應(yīng)用允許客戶機(jī)-服務(wù)器網(wǎng)絡(luò)中的用戶參與正在進(jìn)行中的會 話。因此,在會話過程中,新用戶/參與者可以在各個時刻加入會話。 另外,應(yīng)用具有允許客戶機(jī)服務(wù)器和客戶機(jī)在活動應(yīng)用執(zhí)行過程中切 換關(guān)系的能力(通過理想服務(wù)器實(shí)用程序110)。應(yīng)用軟件例如可以 是聯(lián)機(jī)游戲或在線聊天室。參與應(yīng)用會話的每個客戶機(jī)系統(tǒng)在各自客
戶機(jī)系統(tǒng)上加載某基本軟件(其使能應(yīng)用的執(zhí)行)之后被允許作為參 與者??蛻魴C(jī)服務(wù)器具有服務(wù)器和會話數(shù)據(jù),并且執(zhí)行處理,以使得 能夠在兼容的客戶機(jī)系統(tǒng)上進(jìn)行會話(以基本應(yīng)用軟件)。在操作過程中,OS 108、 APP 112和理想服務(wù)器實(shí)用程序110 位于存儲器106內(nèi),并且在處理器(CPU) 101上被執(zhí)行。根據(jù)該說 明性實(shí)施例,當(dāng)DPS 100作為客戶機(jī)服務(wù)器操作時,APP112提供服 務(wù)器和會話代碼/數(shù)據(jù)114。另外,當(dāng)處理器101執(zhí)行理想服務(wù)器實(shí)用 程序110時,理想服務(wù)器實(shí)用程序110使得DPS 100能夠完成一系列 功能處理,包括(1)評估DPS100和通過客戶機(jī)-服務(wù)器網(wǎng)絡(luò)連接 到DPS 100的新客戶機(jī)計(jì)算機(jī)系統(tǒng)的能力;(2)確定新客戶機(jī)系統(tǒng) 是否具有比DPS 100更好的操作能力(處理能力和網(wǎng)絡(luò)帶寬等)來控 制APP 112的執(zhí)行;(3)當(dāng)新客戶機(jī)系統(tǒng)被確定為具有更好的操作 能力時,將用于APP 112的服務(wù)器和會話代碼/數(shù)據(jù)114從DPS 100 轉(zhuǎn)移到新客戶機(jī)系統(tǒng);以及由圖2-5所示并在下面描述的其他特征/ 功能。圖2示出了根據(jù)本發(fā)明一個示例性實(shí)施例的客戶機(jī)-服務(wù)器網(wǎng)絡(luò)。 客戶機(jī)-服務(wù)器網(wǎng)絡(luò)205包括客戶機(jī)服務(wù)器200 (假設(shè)為DPS 100), 其中客戶機(jī)服務(wù)器200經(jīng)由網(wǎng)絡(luò)201連接到客戶機(jī)2 202和"新"客戶 機(jī)3 203 ??蛻魴C(jī)2 202和客戶機(jī)3 203 二者都可以是與DPS 100類似 配置的計(jì)算機(jī)系統(tǒng),但是具有與客戶機(jī)服務(wù)器100不同的操作特性/ 參數(shù)(例如,處理能力和/或速度和網(wǎng)絡(luò)連接帶寬)。新客戶機(jī)3 203 代表協(xié)作應(yīng)用環(huán)境內(nèi)最近連接的客戶機(jī)。網(wǎng)絡(luò)205例如可以是諸如Internet這樣的廣域網(wǎng)(WAN )或諸 如以太網(wǎng)這樣的局域網(wǎng)(LAN)。在網(wǎng)絡(luò)205中,客戶機(jī)服務(wù)器200 為其他客戶機(jī)(202、 203 )提供協(xié)作應(yīng)用。理想服務(wù)器實(shí)用程序110 在客戶機(jī)服務(wù)器200內(nèi)執(zhí)行,并且使得能夠確定加入正在進(jìn)行中的客 戶機(jī)-服務(wù)器協(xié)作軟件應(yīng)用會話的新客戶機(jī)(例如,客戶機(jī)3 203 )是 否具有比當(dāng)前客戶機(jī)服務(wù)器系統(tǒng)值更高的計(jì)算機(jī)"系統(tǒng)值"(在圖3中 描述)。在下面的描述中,客戶機(jī)服務(wù)器200被稱為"當(dāng)前,,客戶機(jī)服
務(wù)器系統(tǒng),以將客戶機(jī)服務(wù)器200與"候選"客戶機(jī)服務(wù)器系統(tǒng)(諸如 新客戶機(jī)3 203)區(qū)別開。在客戶機(jī)-服務(wù)器協(xié)作軟件應(yīng)用環(huán)境中,啟動應(yīng)用的客戶機(jī)被賦 予服務(wù)器的角色(可能通過客戶機(jī)可訪問的應(yīng)用Web站點(diǎn)),并且 被稱為客戶機(jī)服務(wù)器。Web站點(diǎn)所接收的對于客戶機(jī)參與應(yīng)用的任何 后續(xù)客戶機(jī)請求被定向到客戶機(jī)服務(wù)器。只要參與者的數(shù)目不超過某 個值,Web站點(diǎn)繼續(xù)將會話請求重定向到客戶機(jī)服務(wù)器。Web站點(diǎn) 和/或客戶機(jī)服務(wù)器啟動基本應(yīng)用軟件的下載,以允許發(fā)出請求的客戶 機(jī)參與應(yīng)用會話。 一旦發(fā)出請求的客戶機(jī)已經(jīng)加載了基本軟件,則發(fā) 出請求的客戶機(jī)被允許加入會話。根據(jù)所述實(shí)施例,如果在新客戶機(jī)加入應(yīng)用的正在進(jìn)行中的會話時,新客戶機(jī)具有更好的系統(tǒng)能力(即, 更好的系統(tǒng)值),則客戶機(jī)-服務(wù)器協(xié)作應(yīng)用會話中的客戶機(jī)可以接管 客戶機(jī)服務(wù)器的角色。根據(jù)客戶機(jī)的操作參數(shù)確定客戶機(jī)的系統(tǒng)值。圖3示出了用于客 戶機(jī)服務(wù)器200和新客戶機(jī)3 203 二者的操作參數(shù)的示例性表格。評 估這些系統(tǒng)值,以確定這兩個系統(tǒng)中哪一個具有更好的能力來執(zhí)行當(dāng) 前正在客戶機(jī)服務(wù)器200上執(zhí)行的特定協(xié)作應(yīng)用的客戶機(jī)服務(wù)器角色 /功能。當(dāng)新客戶機(jī)的系統(tǒng)值高于客戶機(jī)服務(wù)器的系統(tǒng)值時,在(服務(wù) 器和會話代碼、數(shù)據(jù)和處理)轉(zhuǎn)移之后,新客戶機(jī)系統(tǒng)被分配以客戶 機(jī)服務(wù)器的角色。轉(zhuǎn)移可能需要由當(dāng)前客戶機(jī)服務(wù)器和新客戶機(jī)(候 選客戶機(jī)服務(wù)器)之一或二者的批準(zhǔn)。 一旦完成轉(zhuǎn)移,新客戶機(jī),即 現(xiàn)在的新客戶機(jī)服務(wù)器系統(tǒng),繼續(xù)協(xié)作應(yīng)用的服務(wù)器級處理,并且使其他客戶機(jī)能夠連接到正在進(jìn)行中的應(yīng)用會話。根據(jù)本發(fā)明的該示例性實(shí)施例,圖3的表格包含由理想服務(wù)器實(shí) 用程序IIO用以確定相對系統(tǒng)值的系統(tǒng)值參數(shù)。表格300包括當(dāng)前客 戶機(jī)服務(wù)器表301和新客戶機(jī)表302。每個表包括多個參數(shù),這些參 數(shù)中的下述參數(shù)被提供用于說明(l)存儲器大??;(2)存儲容量; (3) CPU速度;(4)網(wǎng)絡(luò)連接類型;(5)網(wǎng)絡(luò)連接速度;和(6) 從屬關(guān)系(affiliation),系統(tǒng)值的確定可以將上述系統(tǒng)值參數(shù)中的一
個或多個表示為因子(factor)。例如,在確定網(wǎng)絡(luò)連接值時,如果 客戶機(jī)經(jīng)由撥號調(diào)制解調(diào)器連接到網(wǎng)絡(luò),則相比于經(jīng)由Tl或T3線路 連接的客戶機(jī),該客戶機(jī)被分配以低的網(wǎng)絡(luò)值。如表300內(nèi)所提供的, 新客戶機(jī)表302的參數(shù)中的幾個參數(shù)具有比客戶機(jī)服務(wù)器表301中的 類似參數(shù)更好的值??蛻魴C(jī)服務(wù)器的相對系統(tǒng)值是7,而新客戶機(jī)的 系統(tǒng)值是8.5。因此,由于新客戶機(jī)具有比客戶機(jī)服務(wù)器更好/更高的 相對系統(tǒng)值,所以新客戶機(jī)會被選擇作為新的客戶機(jī)服務(wù)器。表301和302的從屬關(guān)系表項(xiàng)涉及在協(xié)作應(yīng)用環(huán)境中可以被作為 客戶機(jī)服務(wù)器的預(yù)先建立的"安全,,或"可信,,客戶機(jī)系統(tǒng)分組。從屬關(guān) 系值指示客戶機(jī)是否是當(dāng)前客戶機(jī)服務(wù)器的朋友的可信網(wǎng)絡(luò)的成員。 客戶機(jī)可以通過其系統(tǒng)的IP (網(wǎng)際協(xié)議)地址或用戶注冊、或某些其 他形式的標(biāo)識符來唯一地標(biāo)識。客戶機(jī)服務(wù)器保持這些可信客戶機(jī)系 統(tǒng)的列表。對于最初啟動應(yīng)用的客戶機(jī)服務(wù)器,從屬關(guān)系值不是必需 的,或者可以可替換地在最高等級被賦值。然而,原始客戶機(jī)服務(wù)器 (以及隨后的客戶機(jī)服務(wù)器)可以提供可信朋友的列表,以使得能夠 隨后確定候選客戶機(jī)服務(wù)器是否是可信成員(affiliate)或朋友。在一個實(shí)施例中,客戶機(jī)服務(wù)器上的理想服務(wù)器實(shí)用程序114 限制將服務(wù)器代碼/數(shù)據(jù)轉(zhuǎn)移到在可信客戶機(jī)系統(tǒng)的列表內(nèi)未被標(biāo)識 的新客戶機(jī)。如圖3所示,兩個表都通過具有從屬關(guān)系值"l,,而指示 客戶機(jī)服務(wù)器(例如,圖2的客戶機(jī)服務(wù)器200)和新客戶機(jī)(例如, 圖2的新客戶機(jī)3 203)在相同可信網(wǎng)絡(luò)內(nèi)。因此,可以完成客戶機(jī) 服務(wù)器功能到具有更高系統(tǒng)值的新客戶機(jī)的轉(zhuǎn)移。在另 一個實(shí)施例 中,當(dāng)新客戶機(jī)不在可信客戶機(jī)系統(tǒng)的網(wǎng)絡(luò)內(nèi)時,客戶機(jī)服務(wù)器可以 接收到指示在網(wǎng)絡(luò)內(nèi)存在新客戶機(jī)的提示。然后,客戶機(jī)服務(wù)器的用 戶可以確定是否使客戶機(jī)服務(wù)器功能的轉(zhuǎn)移能夠發(fā)生。因此,不同的 從屬關(guān)系級別指示不同的轉(zhuǎn)移選項(xiàng),其范圍從(a)完全立刻轉(zhuǎn)移而 不通知到(b)防止/阻止任何轉(zhuǎn)移?,F(xiàn)在轉(zhuǎn)到圖4,其示出了作為可以通過其來有利地應(yīng)用本發(fā)明特 征的示例性協(xié)作應(yīng)用的聯(lián)機(jī)游戲應(yīng)用的圖形用戶接口 (GUI)的方框 圖表示。顯示窗口 400包括游戲面板401,它是運(yùn)行在客戶機(jī)服務(wù)器 200 (圖2)上的聯(lián)機(jī)游戲應(yīng)用(會話)中的參與者所看到的GUI (圖 形用戶接口 )的例子。在理想服務(wù)器實(shí)用程序110開始將服務(wù)器和會話代碼/數(shù)據(jù)以及 應(yīng)用處理轉(zhuǎn)移到具有更高系統(tǒng)值(即,更好的操作能力)的客戶機(jī)系 統(tǒng)之前,理想服務(wù)器實(shí)用程序IIO啟動一個過程,以確定候選客戶機(jī) 服務(wù)器(例如圖2的客戶機(jī)3 203 )是否批準(zhǔn)應(yīng)用數(shù)據(jù)和處理從當(dāng)前 客戶機(jī)服務(wù)器200轉(zhuǎn)移到候選客戶機(jī)服務(wù)器(203 )。在所示實(shí)施例 中,在候選客戶機(jī)服務(wù)器的顯示器上提供選擇窗口 402,它可以是彈 出窗口。 一旦選擇窗口 402被選擇,在允許繼續(xù)轉(zhuǎn)移過程之前,提示 候選客戶機(jī)服務(wù)器以指示(通過選擇選擇窗口 402內(nèi)的"是,,選項(xiàng))批 準(zhǔn)或認(rèn)可客戶機(jī)服務(wù)器切換。在這個實(shí)施例中,僅要求候選客戶機(jī)服 務(wù)器的批準(zhǔn),并且僅有候選客戶機(jī)服務(wù)器接收批準(zhǔn)選擇窗口 402。例 如,在完成轉(zhuǎn)移的過程中或之后的某個時刻,可以經(jīng)由第二彈出窗口 410將轉(zhuǎn)移通知給原始客戶機(jī)服務(wù)器。 一旦轉(zhuǎn)移已經(jīng)完成,則釋放前 客戶機(jī)服務(wù)器的資源。在一個實(shí)施例中,還提示當(dāng)前客戶機(jī)服務(wù)器(例如,圖2的客戶 機(jī)服務(wù)器200 )批準(zhǔn)轉(zhuǎn)移。在新客戶機(jī)不是客戶機(jī)系統(tǒng)的可信網(wǎng)絡(luò)的 成員的情況下,或在值得進(jìn)行這種批準(zhǔn)的其他情況下,可能要求這種 4比準(zhǔn)。選擇窗口 402在顯示窗口 400內(nèi)的位置可以在顯示窗口 400的 一個角落中或在顯示窗口 400的底部處,以在轉(zhuǎn)移通知被顯示在各個 客戶機(jī)設(shè)備上時最小化應(yīng)用界面的重疊。因此,當(dāng)前客戶機(jī)服務(wù)器或 候選客戶機(jī)服務(wù)器的用戶可以在決定是否允許轉(zhuǎn)移的同時,繼續(xù)與應(yīng) 用會話交互。圖5示出了根據(jù)本發(fā)明一個示例性實(shí)施例,理想服務(wù)器實(shí)用程序 在評估和比較計(jì)算機(jī)系統(tǒng)以及確定何時發(fā)生客戶機(jī)服務(wù)器切換中所 完成的過程。過程在方框501開始,其中一個用戶啟動客戶機(jī)服務(wù)器 協(xié)作應(yīng)用,該用戶的計(jì)算機(jī)最初作為應(yīng)用的客戶機(jī)服務(wù)器。在方框 502,理想服務(wù)器實(shí)用程序評估能力,計(jì)算/確定客戶機(jī)服務(wù)器的系統(tǒng)
值,并且存儲客戶機(jī)服務(wù)器的系統(tǒng)值。過程在方框503繼續(xù),其中理想服務(wù)器實(shí)用程序110檢測到客戶 機(jī)加入客戶機(jī)服務(wù)器應(yīng)用環(huán)境的正在進(jìn)行中的會話。如方框504所示, 理想服務(wù)器實(shí)用程序通過使用與用于確定客戶機(jī)服務(wù)器的系統(tǒng)值(在 上面的方框502 )的那些參數(shù)類似的參數(shù),并且分配相對值,而確定 新客戶機(jī)的系統(tǒng)值。通過使用客戶機(jī)服務(wù)器系統(tǒng)值和客戶機(jī)系統(tǒng)值, 理想服務(wù)器實(shí)用程序110然后在方框505確定新客戶機(jī)系統(tǒng)是否具有 比當(dāng)前客戶機(jī)服務(wù)器更高的系統(tǒng)值(即,對于執(zhí)行應(yīng)用是否是"更好 的客戶機(jī)服務(wù)器系統(tǒng)")。如果在方框505中,客戶機(jī)值不高于客戶 機(jī)服務(wù)器值,則過程前進(jìn)到方框512,其中應(yīng)用繼續(xù)在當(dāng)前客戶機(jī)服 務(wù)器上執(zhí)行,并且理想服務(wù)器實(shí)用程序繼續(xù)監(jiān)視正在進(jìn)行中的應(yīng)用會 話中的新客戶機(jī)。然而,當(dāng)新客戶機(jī)的系統(tǒng)值高于客戶機(jī)服務(wù)器的系統(tǒng)值時,理想 服務(wù)器實(shí)用程序110確定新客戶機(jī)是否是客戶機(jī)服務(wù)器的可信朋友網(wǎng) 絡(luò)的成員,如方框506中所示。如果客戶機(jī)是客戶機(jī)服務(wù)器的可信朋 友,則理想服務(wù)器實(shí)用程序IIO提供出現(xiàn)在新客戶機(jī)(候選客戶機(jī)服 務(wù)器)的顯示器上的選擇(彈出)窗口,如方框507所示。因此,在 理想服務(wù)器實(shí)用程序IIO準(zhǔn)備開始將服務(wù)器和會話數(shù)據(jù)以及應(yīng)用處理 從當(dāng)前客戶機(jī)服務(wù)器轉(zhuǎn)移到候選客戶機(jī)服務(wù)器(具有更高的系統(tǒng)值, 并且是可信朋友網(wǎng)絡(luò)的成員)的同時,理想服務(wù)器實(shí)用程序IIO在方 框508確定候選客戶機(jī)服務(wù)器是否已經(jīng)批準(zhǔn)轉(zhuǎn)移。如上面(圖4)提 供的,候選客戶機(jī)服務(wù)器可以經(jīng)由選擇窗口來指示對轉(zhuǎn)移的批準(zhǔn)。如 果在方框508,候選客戶機(jī)服務(wù)器批準(zhǔn)轉(zhuǎn)移(通過選擇選擇窗口內(nèi)的 "是,,),則通知被提供(給一個或多個客戶機(jī)),以指示服務(wù)器轉(zhuǎn)移 正在進(jìn)行,如方框509所示。如方框510所示,服務(wù)器和會話代碼和 數(shù)據(jù)以及應(yīng)用處理被轉(zhuǎn)移到候選客戶機(jī)服務(wù)器。在后臺完成應(yīng)用處理 的轉(zhuǎn)移,而沒有任何明顯的操作暫停,這使得能夠?qū)?yīng)用處理無縫地 轉(zhuǎn)移到候選客戶機(jī)服務(wù)器。因此,如果有任何中斷的話,會話中的用 戶體驗(yàn)到最小的中斷。
在一個可替換的實(shí)施例中,在轉(zhuǎn)移過程中,應(yīng)用處理被掛起,直 到到候選客戶機(jī)服務(wù)器的服務(wù)器和會話代碼以及數(shù)據(jù)的轉(zhuǎn)移已經(jīng)完 成。在候選客戶機(jī)服務(wù)器(現(xiàn)在是現(xiàn)行的/當(dāng)前的客戶機(jī)服務(wù)器)處啟動應(yīng)用處理,并且向一個或多個客戶機(jī)通知轉(zhuǎn)移的完成,如方框511 所示。 一旦候選客戶機(jī)服務(wù)器被確定為現(xiàn)行/當(dāng)前客戶機(jī)服務(wù)器,客戶 機(jī)服務(wù)器內(nèi)的理想服務(wù)器實(shí)用程序被啟動,并且如方框512所示,現(xiàn) 行/當(dāng)前客戶機(jī)服務(wù)器的理想服務(wù)器實(shí)用程序開始監(jiān)視,以當(dāng)新客戶機(jī) 連接到正在進(jìn)行中的應(yīng)用會話時檢測新客戶機(jī)。在上面的流程圖(圖5)中,雖然以特定順序描述和示出了過程 步驟,但是對特定步驟順序的使用不意味著暗示對本發(fā)明的任何限 制。可以對步驟順序進(jìn)行改變,而不脫離本發(fā)明的精神或范圍。因此, 對特定順序的使用不是限制性的,并且僅由所附的權(quán)利要求限定本發(fā) 明的范圍。作為最后一個問題,重要的是,雖然已經(jīng)并且將繼續(xù)在具有被安 裝軟件的全功能計(jì)算機(jī)系統(tǒng)的上下文中描述本發(fā)明的示例性實(shí)施例, 但是本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,本發(fā)明的示例性實(shí)施例的軟件方面 能夠作為各種形式的程序產(chǎn)品而被分發(fā),并且不論用于實(shí)際執(zhí)行分發(fā) 的信號承載介質(zhì)的具體類型如何,本發(fā)明的示例性實(shí)施例等同地適 用。信號承載介質(zhì)的例子包括可記錄類型介質(zhì),諸如軟盤、硬盤驅(qū)動 器、CDROM;和傳輸類型介質(zhì),諸如數(shù)字和模擬通信鏈路。雖然已經(jīng)參考優(yōu)選實(shí)施例具體地示出并且描述了本發(fā)明,但是本 領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在形式和細(xì)節(jié)方面進(jìn)行各種改變,而 不脫離本發(fā)明的精神和范圍。
權(quán)利要求
1. 一種方法,包括確定步驟,確定耦接到協(xié)作應(yīng)用環(huán)境的下一個客戶機(jī)何時具有比所述協(xié)作應(yīng)用環(huán)境的當(dāng)前客戶機(jī)服務(wù)器高的系統(tǒng)值;和轉(zhuǎn)移步驟,如果所述下一個客戶機(jī)具有更高的系統(tǒng)值,則將服務(wù)器和會話數(shù)據(jù)以及應(yīng)用處理從所述當(dāng)前客戶機(jī)服務(wù)器轉(zhuǎn)移到所述下一個客戶機(jī)。
2. 如權(quán)利要求1的方法,其中所述確定還包括 檢索步驟,檢索所述當(dāng)前客戶機(jī)服務(wù)器的第一操作參數(shù)和所述下一個客戶機(jī)的第二操作參數(shù);第 一評估步驟,利用所述客戶機(jī)服務(wù)器的第 一操作參數(shù)評估客戶 機(jī)服務(wù)器系統(tǒng)值;第二評估步驟,利用所述下一個客戶機(jī)的第二操作參數(shù)評估下一個客戶機(jī)系統(tǒng)值;以及比較步驟,比較所述當(dāng)前客戶機(jī)服務(wù)器系統(tǒng)值和所述下一個客戶 才幾系統(tǒng)值。
3. 如權(quán)利要求2的方法,其中所述第一評估步驟和所述第二評估 步驟包括通過為一個或多個操作參數(shù)分配相對權(quán)重,確定相應(yīng)系統(tǒng) 值,其中所述一個或多個操作參數(shù)包括CPU(中央處理單元)能力和 網(wǎng)絡(luò)連接參數(shù)。
4. 如權(quán)利要求1的方法,還包括當(dāng)所述下 一個客戶機(jī)具有比所迷當(dāng)前客戶機(jī)服務(wù)器高的系統(tǒng)值時確定所述下一個客戶機(jī)是否是可信網(wǎng)絡(luò)的成員; 當(dāng)所述下一個客戶機(jī)是所述可信網(wǎng)絡(luò)的成員時,啟動到所述下一 個客戶機(jī)的轉(zhuǎn)移;和當(dāng)所述下一個客戶機(jī)不是所述可信網(wǎng)絡(luò)的成員時,僅在從所述當(dāng) 前客戶機(jī)服務(wù)器接收到對所述轉(zhuǎn)移的批準(zhǔn)時才使能轉(zhuǎn)移。
5. 如權(quán)利要求4的方法,其中所述確定包括下列步驟之一 將所述下一個客戶機(jī)的從屬關(guān)系值與預(yù)先確定的從屬關(guān)系值標(biāo)尺進(jìn)行比較,其中所述預(yù)先確定的從屬關(guān)系值標(biāo)尺包括觸發(fā)所述轉(zhuǎn)移 的第一值;和對照由所述當(dāng)前客戶機(jī)服務(wù)器所保持的可信客戶機(jī)列表檢查所 述下一個客戶機(jī)的標(biāo)識符(id),以確定所述下一個客戶機(jī)是否是所 述可信網(wǎng)絡(luò)的成員。
6. 如權(quán)利要求4的方法,其中所述使能還包括 在所述下一個客戶機(jī)的顯示器上顯示選擇窗口,其中所述下一個客戶機(jī)可以通過所述選擇窗口指示轉(zhuǎn)移批準(zhǔn);和檢測所述選擇窗口內(nèi)來自所述下一個客戶機(jī)的響應(yīng)。
7. 如權(quán)利要求1的方法,還包括當(dāng)所述下一個客戶機(jī)具有比所述客戶機(jī)服務(wù)器高的系統(tǒng)值時將所迷協(xié)作應(yīng)用的客戶機(jī)服務(wù)器功能的待決轉(zhuǎn)移至少通知給所 述下一個客戶機(jī);在所述下一個客戶機(jī)上觸發(fā)提示,用于所述下一個客戶機(jī)對啟動 到所述下一個客戶才幾的轉(zhuǎn)移的批準(zhǔn);和僅當(dāng)從所述下一個客戶機(jī)接收到所述批準(zhǔn)時,啟動到所述下一個 客戶機(jī)的轉(zhuǎn)移。
8. 如權(quán)利要求1的方法,其中所述完成還包括 在將所述服務(wù)器和會話代碼以及數(shù)據(jù)向所述下一個客戶機(jī)轉(zhuǎn)移之后,暫停所述當(dāng)前客戶機(jī)服務(wù)器上的應(yīng)用處理;和并發(fā)地在所述下一個客戶機(jī)處激活本地應(yīng)用處理,從而以對正在 進(jìn)行中的應(yīng)用會話最小的中斷,提供所述應(yīng)用處理的無縫轉(zhuǎn)移。
9. 一種數(shù)據(jù)處理系統(tǒng),包括 處理器,所述處理器執(zhí)行協(xié)作應(yīng)用;耦接到所述處理器的存儲器系統(tǒng),所述存儲器系統(tǒng)存儲所述協(xié)作 應(yīng)用的代碼和數(shù)據(jù);網(wǎng)絡(luò)連接機(jī)制,用于在協(xié)作應(yīng)用環(huán)境內(nèi)將一個或多個客戶機(jī)計(jì)算 機(jī)系統(tǒng)耦接到所述數(shù)據(jù)處理系統(tǒng);確定裝置,用于確定耦接到所述協(xié)作應(yīng)用環(huán)境的下一個客戶機(jī)何 時具有比當(dāng)前客戶機(jī)服務(wù)器高的系統(tǒng)值的裝置;和用于如果所述下一個客戶機(jī)具有更高的系統(tǒng)值,則將服務(wù)器和會 話數(shù)據(jù)以及應(yīng)用處理從所述當(dāng)前客戶機(jī)服務(wù)器轉(zhuǎn)移到所述下一個客 戶機(jī)的裝置。
10. 如權(quán)利要求9的數(shù)據(jù)處理系統(tǒng),其中所述確定裝置還包括 用于檢索所述當(dāng)前客戶機(jī)服務(wù)器的第一操作參數(shù)和所述下一個客戶機(jī)的第二操作參數(shù)的裝置;用于第一評估的裝置,利用當(dāng)前客戶機(jī)服務(wù)器的第一操作參數(shù)評 估客戶機(jī)服務(wù)器系統(tǒng)值;用于第二評估的裝置,利用所述下一個客戶機(jī)的第二操作參數(shù)評估下一個客戶機(jī)系統(tǒng)值;其中,所述第 一評估和所述第二評估包括通過為 一個或多個操作 參數(shù)分配相對權(quán)重,確定相應(yīng)系統(tǒng)值,所述一個或多個操作參數(shù)包括 CPU (中央處理單元)能力和網(wǎng)絡(luò)連接參數(shù),以及用于將所述當(dāng)前客戶機(jī)服務(wù)器系統(tǒng)值與所述下一個客戶機(jī)系統(tǒng) 值進(jìn)行比較的裝置。
11. 如權(quán)利要求9的數(shù)據(jù)處理系統(tǒng),還包括當(dāng)所述下一個客戶機(jī)具有比所述客戶機(jī)服務(wù)器高的系統(tǒng)值時 用于確定所述下一個客戶機(jī)是否是可信網(wǎng)絡(luò)的成員的裝置; 用于當(dāng)所述下一個客戶機(jī)是所述可信網(wǎng)絡(luò)的成員時,啟動到所述 下一個客戶機(jī)的轉(zhuǎn)移的裝置;和當(dāng)所述下一個客戶機(jī)不是所述可信網(wǎng)絡(luò)的成員時,用于僅當(dāng)從所 述當(dāng)前客戶機(jī)服務(wù)器接收到對所述轉(zhuǎn)移的批準(zhǔn)時,才使能所述轉(zhuǎn)移的 裝置,其中所述用于使能的裝置還包括用于在所述下一個客戶機(jī)的顯示器上顯示選擇窗口的裝置,其中 所述下一個客戶機(jī)可以通過所述選擇窗口指示轉(zhuǎn)移批準(zhǔn);和用于檢測所述選擇窗口內(nèi)來自所述下一個客戶機(jī)的響應(yīng)的裝置。
12. 如權(quán)利要求11的數(shù)據(jù)處理系統(tǒng),其中所述用于確定所述下一 個客戶機(jī)是否是可信網(wǎng)絡(luò)的成員的裝置包括下列裝置之一用于將所述下一個客戶機(jī)的從屬關(guān)系值與預(yù)先確定的從屬關(guān)系 值標(biāo)尺進(jìn)行比較的裝置,所述預(yù)先確定的從屬關(guān)系值標(biāo)尺包括觸發(fā)所 述轉(zhuǎn)移的第一值;和用于對照由所述當(dāng)前客戶機(jī)服務(wù)器保持的可信客戶機(jī)列表檢查 所述下一個客戶機(jī)的標(biāo)識符(ID),以確定所述下一個客戶機(jī)是否是 所述可信網(wǎng)絡(luò)的成員的裝置。
13. 如權(quán)利要求9的數(shù)據(jù)處理系統(tǒng),還包括當(dāng)所述下一個客戶機(jī)具有比所述客戶機(jī)服務(wù)器高的系統(tǒng)值時用于將所述協(xié)作應(yīng)用的客戶機(jī)服務(wù)器功能的待決轉(zhuǎn)移至少通知 給所述下一個客戶機(jī)的裝置;用于在所述下一個客戶機(jī)上觸發(fā)提示,用于所述下一個客戶機(jī)對 啟動到所述下一個客戶機(jī)的轉(zhuǎn)移的批準(zhǔn)的裝置;和用于僅當(dāng)從所述下一個客戶機(jī)接收到所述批準(zhǔn)時,啟動到所述下 一個客戶機(jī)的轉(zhuǎn)移的裝置。
14. 如權(quán)利要求10的數(shù)據(jù)處理系統(tǒng),其中所迷用于完成的裝置還包括用于在將所述服務(wù)器和會話代碼以及數(shù)據(jù)向所述下一個客戶機(jī) 轉(zhuǎn)移之后,暫停所述當(dāng)前客戶機(jī)服務(wù)器上的應(yīng)用處理的裝置;和用于并發(fā)地在所述下一個客戶機(jī)處激活本地應(yīng)用處理,從而以對 正在進(jìn)行中的應(yīng)用會話最小的中斷,提供所述應(yīng)用處理的無縫轉(zhuǎn)移的 裝置。
全文摘要
動態(tài)地確定客戶機(jī)服務(wù)器網(wǎng)絡(luò)環(huán)境中協(xié)作應(yīng)用的理想客戶機(jī)服務(wù)器。理想服務(wù)器實(shí)用程序?qū)⒓尤氲目蛻魴C(jī)的計(jì)算機(jī)系統(tǒng)的能力與當(dāng)前客戶機(jī)服務(wù)器的計(jì)算機(jī)系統(tǒng)的能力進(jìn)行比較,以確定哪個系統(tǒng)被最佳地配置以控制應(yīng)用的執(zhí)行。每當(dāng)新客戶機(jī)加入/參與應(yīng)用會話,理想服務(wù)器實(shí)用程序就評估新客戶機(jī)(候選客戶機(jī)服務(wù)器)的系統(tǒng)能力,并將新客戶機(jī)的系統(tǒng)能力與當(dāng)前客戶機(jī)服務(wù)器的系統(tǒng)能力進(jìn)行比較。如果新客戶機(jī)具有比當(dāng)前客戶機(jī)服務(wù)器更好的能力,則為新客戶機(jī)提供客戶機(jī)服務(wù)器的角色。啟動到候選客戶機(jī)服務(wù)器的應(yīng)用轉(zhuǎn)移。一旦完成轉(zhuǎn)移,應(yīng)用在新客戶機(jī)服務(wù)器上繼續(xù)處理。
文檔編號H04L12/28GK101399832SQ20081014923
公開日2009年4月1日 申請日期2008年9月17日 優(yōu)先權(quán)日2007年9月27日
發(fā)明者G·F·邁克布萊蒂, J·C·穆里洛, J·M·謝爾, S·M·科奧哈涅, S·P·穆倫 申請人:國際商業(yè)機(jī)器公司