專利名稱:一種多計(jì)算機(jī)的同步控制方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多計(jì)算機(jī)的同步處理領(lǐng)域,特別是涉及一種多計(jì)算機(jī)的同步控制方法、 一種多計(jì)算機(jī)的同步控制系統(tǒng)、 一種多機(jī)多屏的3D同步 顯示方法及一種多機(jī)多屏的3D同步顯示系統(tǒng)。
背景技術(shù):
在分布式產(chǎn)品同步瀏覽、基于網(wǎng)絡(luò)的遠(yuǎn)程故障分析、醫(yī)療會(huì)診等應(yīng) 用領(lǐng)域,經(jīng)常需要將多臺(tái)計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)連接,以同步完成某一種控制 操作?,F(xiàn)有技術(shù)中,這種多計(jì)算機(jī)同步控制的方法通常有以下兩種第 一種為,基于客戶機(jī)/服務(wù)器模式的多計(jì)算機(jī)同步瀏覽控制系統(tǒng)。 在這種系統(tǒng)中,必須有一臺(tái)計(jì)算機(jī)作為服務(wù)器,系統(tǒng)中的其它計(jì)算機(jī)必 須與作為服務(wù)器的計(jì)算機(jī)通信,才能完成所需要的同步控制。其中,作為服務(wù)器的計(jì)算機(jī)和其它計(jì)算機(jī)上所運(yùn)行的軟件不同,并且,為保證系 統(tǒng)的正常運(yùn)行,要求作為服務(wù)器的計(jì)算機(jī)必須首先運(yùn)行,并一直保持運(yùn) 行狀態(tài)。第二種為,基于對(duì)等模式的多計(jì)算機(jī)同步瀏覽控制系統(tǒng)。這種系統(tǒng) 不需要專門(mén)的計(jì)算機(jī)作為服務(wù)器控制其它計(jì)算機(jī),但必須通過(guò)用戶人工 設(shè)置主控計(jì)算機(jī)的控制權(quán),也就是說(shuō),需要由用戶預(yù)先執(zhí)行控制請(qǐng)求命 令,在獲得允許后,相應(yīng)的計(jì)算機(jī)才能被設(shè)定為主控計(jì)算機(jī),以控制操 作;相應(yīng)地,如果需要更換主控計(jì)算機(jī),則需要先執(zhí)行當(dāng)前主控計(jì)算機(jī) 的控制權(quán)放棄命令,再針對(duì)新設(shè)置的主控計(jì)算機(jī)重新執(zhí)行新的控制請(qǐng)求 命令,在獲得允許后,才能完成所述主控計(jì)算機(jī)的更換??梢钥闯?,以上現(xiàn)有技術(shù)的第一種實(shí)現(xiàn)方式存在如下缺點(diǎn)(1) 對(duì)于同一個(gè)系統(tǒng),需要配備不同的兩套軟件服務(wù)器軟件和客 戶機(jī)軟件,增加了不必要的系統(tǒng)開(kāi)銷、浪費(fèi)資源,而且成本較高;(2) 為了保證系統(tǒng)的正常運(yùn)行,必須至少有一臺(tái)特定的計(jì)算機(jī)(服 務(wù)器)先運(yùn)行,且一直處于運(yùn)行狀態(tài),同樣導(dǎo)致了系統(tǒng)開(kāi)銷增加、資源浪費(fèi)和成本較高的問(wèn)題;
(3 )作為實(shí)施控制的主控計(jì)算機(jī)的控制操作,需要先發(fā)送給服務(wù)器, 然后由服務(wù)器再轉(zhuǎn)發(fā)給系統(tǒng)的其它計(jì)算機(jī),會(huì)造成控制的延時(shí),導(dǎo)致系 統(tǒng)的反應(yīng)速度變t曼。
以上現(xiàn)有技術(shù)的第二種實(shí)現(xiàn)方式存在如下缺點(diǎn)
主控計(jì)算機(jī)控制權(quán)的獲得和放棄是由用戶執(zhí)行特定命令實(shí)現(xiàn)的,使 用和操作不方便,且經(jīng)常會(huì)給用戶造成系統(tǒng)失效的感覺(jué),用戶使用體驗(yàn) 較差。
總之,目前需要本領(lǐng)域技術(shù)人員迫切解決的一個(gè)技術(shù)問(wèn)題就是如 何能夠創(chuàng)新的提出 一種多計(jì)算機(jī)的同步控制機(jī)制,用以在減少系統(tǒng)開(kāi)銷 和資源浪費(fèi)、降低成本的基礎(chǔ)上,簡(jiǎn)單、高效地實(shí)現(xiàn)多計(jì)算機(jī)的同步控 制,并使用戶獲得更好的使用體驗(yàn)。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種多計(jì)算機(jī)的同步控制方法及 系統(tǒng),用以在減少系統(tǒng)開(kāi)銷和資源浪費(fèi)、降低成本的基礎(chǔ)上,簡(jiǎn)單、高 效地實(shí)現(xiàn)多計(jì)算機(jī)的同步控制,并使用戶獲得更好的使用體驗(yàn)。
本發(fā)明的另一個(gè)目的是將上述構(gòu)思應(yīng)用于具體的應(yīng)用環(huán)境中,提供 一種多^L多屏的3D同步顯示方法和一種多機(jī)多屏的3D同步顯示系統(tǒng), 從而實(shí)現(xiàn)在由網(wǎng)絡(luò)連接的多臺(tái)計(jì)算機(jī)上,對(duì)同一 3D對(duì)象進(jìn)行無(wú)沖突地同 步顯示控制的功能。
為解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供了 一種多計(jì)算機(jī)的同步控 制方法,所述多臺(tái)計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)連接,所述的方法包括
在網(wǎng)絡(luò)中的各臺(tái)計(jì)算機(jī)上維護(hù)運(yùn)行信息表,所述運(yùn)行信息表中包括 網(wǎng)絡(luò)中所有計(jì)算機(jī)的標(biāo)識(shí)信息、以及對(duì)應(yīng)計(jì)算機(jī)的運(yùn)4亍狀態(tài)信息;
接收用戶在網(wǎng)絡(luò)中任一臺(tái)計(jì)算機(jī)上輸入的同步控制指令;
在所述接收指令的計(jì)算機(jī)的運(yùn)行狀態(tài)信息符合預(yù)置規(guī)則時(shí),對(duì)所述運(yùn)
行信息表中記錄的計(jì)算機(jī)上執(zhí)行所述同步控制操作。
優(yōu)選的,所述運(yùn)行狀態(tài)信息包括對(duì)等狀態(tài)信息、主控狀態(tài)信息或從屬
狀態(tài)信息。優(yōu)選的,所述同步控制指令為同步控制觸發(fā)指令,所述執(zhí)行同步控制
的步驟包括
依據(jù)所述同步控制觸發(fā)指令判斷所述接收指令的計(jì)算機(jī)的運(yùn)行狀態(tài)
信息是否為對(duì)等狀態(tài)信息;
若是,則將所述對(duì)等狀態(tài)信息轉(zhuǎn)換為主控狀態(tài)信息,并提交控制權(quán)請(qǐng) 求消息至所述運(yùn)行信息表中記錄的其它計(jì)算機(jī);
所述其它計(jì)算機(jī)接收所述控制權(quán)請(qǐng)求消息,將其運(yùn)行狀態(tài)信息轉(zhuǎn)換為 從屬狀態(tài)信息。
優(yōu)選的,所述運(yùn)行信息表中還包括優(yōu)先級(jí)參數(shù),所述執(zhí)行同步控制 的步驟還包括
通過(guò)對(duì)比所述接收指令的計(jì)算機(jī)的優(yōu)先級(jí)參數(shù),選取優(yōu)先級(jí)最高的一 臺(tái)計(jì)算機(jī)為需要執(zhí)行所述狀態(tài)判斷步驟的計(jì)算機(jī)。
優(yōu)選的,所述優(yōu)先級(jí)參數(shù)根據(jù)網(wǎng)絡(luò)中計(jì)算機(jī)的啟動(dòng)時(shí)間和地址信息生成。
優(yōu)選的,所述執(zhí)行同步控制的步驟還包括
在網(wǎng)絡(luò)中各計(jì)算機(jī)的運(yùn)行信息表中,記錄所述具有主控狀態(tài)信息的計(jì) 算機(jī)發(fā)出控制權(quán)請(qǐng)求消息的時(shí)間;
確定發(fā)出控制權(quán)請(qǐng)求消息的時(shí)間最早的計(jì)算機(jī),或者,發(fā)出控制權(quán)請(qǐng) 求消息的時(shí)間相同且優(yōu)先級(jí)參數(shù)較高的計(jì)算機(jī),為具有主控狀態(tài)信息的 計(jì)算機(jī),將相應(yīng)的其它計(jì)算機(jī)的運(yùn)行狀態(tài)信息轉(zhuǎn)換為從屬狀態(tài)信息。
優(yōu)選的,所述同步控制指令為同步控制操作指令,所述執(zhí)行同步控制 的步驟還包括
依據(jù)所述同步控制操作指令判斷所述接收指令的計(jì)算機(jī)的運(yùn)行狀態(tài) 信息是否為主控狀態(tài)信息;
若是,則在所述具有主控狀態(tài)信息的計(jì)算機(jī)上執(zhí)行所述指令,并生成 相應(yīng)的控制操作請(qǐng)求發(fā)送至對(duì)應(yīng)的具有從屬狀態(tài)信息的計(jì)算機(jī);
所述具有從屬狀態(tài)信息的計(jì)算機(jī)依據(jù)所述控制操作請(qǐng)求執(zhí)行相應(yīng)的 操作。
優(yōu)選的,所述的方法,還包括
若所述具有主控狀態(tài)信息的計(jì)算機(jī)在預(yù)設(shè)的時(shí)間閾值內(nèi)未接收到同
10步控制指令,則將所述計(jì)算機(jī)的主控狀態(tài)信息轉(zhuǎn)換為對(duì)等狀態(tài)信息,并 發(fā)送控制權(quán)放棄消息至所述運(yùn)行信息表中記錄的具有從屬狀態(tài)信息的計(jì)算機(jī);所述具有從屬狀態(tài)信息的計(jì)算機(jī)依據(jù)所述控制權(quán)放棄消息,轉(zhuǎn)換其運(yùn) 行狀態(tài)信息為對(duì)等狀態(tài)信息。本發(fā)明實(shí)施例還公開(kāi)了一種多計(jì)算機(jī)的同步控制系統(tǒng),其特征在于,所述多臺(tái)計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)連接,所述的系統(tǒng)包括運(yùn)行信息表維護(hù)模塊,用于在網(wǎng)絡(luò)中的各臺(tái)計(jì)算機(jī)上維護(hù)運(yùn)行信息 表,所述運(yùn)行信息表中包括網(wǎng)絡(luò)中所有計(jì)算機(jī)的標(biāo)識(shí)信息、以及對(duì)應(yīng) 計(jì)算機(jī)的運(yùn)行狀態(tài)信息;指令接收處理模塊,用于接收用戶在網(wǎng)絡(luò)中任一 臺(tái)計(jì)算機(jī)上輸入的同 步控制指令;同步控制操作模塊,用于在所述接收指令的計(jì)算機(jī)的運(yùn)行狀態(tài)信息符 合預(yù)置規(guī)則時(shí),對(duì)所述運(yùn)行信息表中記錄的計(jì)算機(jī)上執(zhí)行所述同步控制 操作。優(yōu)選的,所述運(yùn)行狀態(tài)信息包括對(duì)等狀態(tài)信息、主控狀態(tài)信息或從屬 狀態(tài)信息。優(yōu)選的,所述同步控制指令為同步控制觸發(fā)指令,所述同步控制操作 模塊包括對(duì)等狀態(tài)判斷子模塊,用于依據(jù)所述同步控制觸發(fā)指令判斷所述接收 指令的計(jì)算機(jī)的運(yùn)行狀態(tài)信息是否為對(duì)等狀態(tài)信息;若是,則觸發(fā)主控狀態(tài)轉(zhuǎn)換子模塊;主控狀態(tài)轉(zhuǎn)換子模塊,用于將所述對(duì)等狀態(tài)信息轉(zhuǎn)換為主控狀態(tài)信 息,并提交控制權(quán)請(qǐng)求消息至所述運(yùn)行信息表中記錄的其它計(jì)算機(jī);從屬狀態(tài)轉(zhuǎn)換子模塊,用于所述其它計(jì)算機(jī)接收所述控制權(quán)請(qǐng)求消 息,將其運(yùn)行狀態(tài)信息轉(zhuǎn)換為從屬狀態(tài)信息。優(yōu)選的,所述運(yùn)行信息表中還包括優(yōu)先級(jí)參數(shù),所述同步控制操作 模塊還包括第一優(yōu)先級(jí)判斷子模塊,用于對(duì)比所述接收指令的計(jì)算機(jī)的優(yōu)先級(jí)參 數(shù),選取優(yōu)先級(jí)最高的一 臺(tái)計(jì)算機(jī)為需要執(zhí)行所述狀態(tài)判斷步驟的計(jì)算機(jī)。
優(yōu)選的,所述同步控制操作模塊還包括
時(shí)間記錄子模塊,用于在網(wǎng)絡(luò)中各計(jì)算機(jī)的運(yùn)行信息表中,記錄所述
具有主控狀態(tài)信息的計(jì)算機(jī)發(fā)出控制權(quán)請(qǐng)求消息的時(shí)間;
第二優(yōu)先級(jí)判斷子模塊,用于確定發(fā)出控制權(quán)請(qǐng)求消息的時(shí)間最早的
計(jì)算機(jī),或者,發(fā)出控制權(quán)請(qǐng)求消息的時(shí)間相同且優(yōu)先級(jí)參數(shù)較高的計(jì)
算機(jī),為具有主控狀態(tài)信息的計(jì)算機(jī),將相應(yīng)的其它計(jì)算機(jī)的運(yùn)行狀態(tài)
信息轉(zhuǎn)換為從屬狀態(tài)信息。
優(yōu)選的,所述同步控制指令為同步控制操作指令,所述同步控制操作
模塊還包括
主控狀態(tài)判斷子模塊,用于依據(jù)所述同步控制操作指令判斷所述接收 指令的計(jì)算機(jī)的運(yùn)行狀態(tài)信息是否為主控狀態(tài)信息;若是,則觸發(fā)本機(jī) 執(zhí)行發(fā)送子模塊;
本機(jī)執(zhí)行發(fā)送子模塊,用于在所述具有主控狀態(tài)信息的計(jì)算機(jī)上執(zhí)行 所述指令,并生成相應(yīng)的控制操作請(qǐng)求發(fā)送至對(duì)應(yīng)的具有從屬狀態(tài)信息 的計(jì)算機(jī);
同步操作子模塊,用于使所述具有從屬狀態(tài)信息的計(jì)算機(jī)依據(jù)所述控 制操作請(qǐng)求執(zhí)行相應(yīng)的操作。
優(yōu)選的,所述的系統(tǒng),還包括
狀態(tài)更新模塊,用于在所述具有主控狀態(tài)信息的計(jì)算機(jī)在預(yù)設(shè)的時(shí)間 閾值內(nèi)未接收到同步控制指令時(shí),將所述計(jì)算機(jī)的主控狀態(tài)信息轉(zhuǎn)換為 對(duì)等狀態(tài)信息,并發(fā)送控制權(quán)放棄消息至所述運(yùn)行信息表中記錄的具有 從屬狀態(tài)信息的計(jì)算機(jī);并使所述具有從屬狀態(tài)信息的計(jì)算機(jī)依據(jù)所述 控制權(quán)放棄消息,轉(zhuǎn)換其運(yùn)行狀態(tài)信息為對(duì)等狀態(tài)信息。
本發(fā)明實(shí)施例還公開(kāi)了一種多機(jī)多屏的3D同步顯示方法,所述多臺(tái) 計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)連接,所述計(jì)算機(jī)的顯示屏包括主窗口和子窗口 ,所述 的方法包括
依據(jù)進(jìn)入網(wǎng)絡(luò)連接的計(jì)算機(jī)的啟動(dòng)消息,在網(wǎng)絡(luò)中連接的各臺(tái)計(jì)算機(jī) 上維護(hù)運(yùn)行信息表;所述啟動(dòng)消息包括3D對(duì)象信息和顯示視角信息; 所述運(yùn)行信息表中包括網(wǎng)絡(luò)中所有計(jì)算機(jī)的IP地址及其運(yùn)行狀態(tài)信息;所述運(yùn)行狀態(tài)信息包括對(duì)等狀態(tài)信息、主控狀態(tài)信息或從屬狀態(tài)信息; 所述網(wǎng)絡(luò)中的計(jì)算機(jī)上分別依據(jù)所述啟動(dòng)消息加載所述3D對(duì)象,并且,各臺(tái)計(jì)算機(jī)在其主窗口中分別按照對(duì)應(yīng)的顯示視角信息繪制所述3D對(duì)象,同時(shí),各臺(tái)計(jì)算機(jī)分別生成子窗口,在子窗口中繪制網(wǎng)絡(luò)中除本計(jì)算機(jī)外的其它計(jì)算機(jī)的、不同視角的3D對(duì)象;接收用戶在網(wǎng)絡(luò)中任一臺(tái)計(jì)算機(jī)上提交的3D對(duì)象觸發(fā)指令; 若所述接收指令的計(jì)算機(jī)的運(yùn)行狀態(tài)信息為對(duì)等狀態(tài)信息,則將所述對(duì)等狀態(tài)信息轉(zhuǎn)換為主控狀態(tài)信息,并提交控制權(quán)請(qǐng)求消息至所述運(yùn)行信息表中記錄的其它計(jì)算機(jī);所述其它計(jì)算機(jī)接收所述控制權(quán)請(qǐng)求消息,將其運(yùn)行狀態(tài)信息轉(zhuǎn)換為從屬狀態(tài)信息;接收用戶在所述具有主控狀態(tài)信息的計(jì)算機(jī)上提交的3D對(duì)象操作指 令,并根據(jù)所述指令在當(dāng)前計(jì)算機(jī)的主窗口和子窗口中分別更新所述3D 對(duì)象的繪制;依據(jù)所述更新繪制操作生成相應(yīng)的操作請(qǐng)求發(fā)送至對(duì)應(yīng)的具有從屬 狀態(tài)信息的計(jì)算機(jī),所述具有從屬狀態(tài)信息的計(jì)算機(jī)依據(jù)所述操作請(qǐng)求, 分別在其對(duì)應(yīng)的主窗口和子窗口中更新所述3D對(duì)象的繪制。優(yōu)選的,所述運(yùn)行信息表中還包括優(yōu)先級(jí)參數(shù),所述的方法還包括通過(guò)對(duì)比所述接收指令的計(jì)算機(jī)的優(yōu)先級(jí)參數(shù),選取優(yōu)先級(jí)最高的一 臺(tái)計(jì)算機(jī)為需要執(zhí)行所述狀態(tài)判斷步驟的計(jì)算機(jī)。優(yōu)選的,所述優(yōu)先級(jí)參數(shù)根據(jù)網(wǎng)絡(luò)中計(jì)算機(jī)的啟動(dòng)時(shí)間和地址信息生成。優(yōu)選的,所述的方法還包括在網(wǎng)絡(luò)中各計(jì)算機(jī)的運(yùn)行信息表中,記錄所述具有主控狀態(tài)信息的計(jì) 算機(jī)發(fā)出控制權(quán)請(qǐng)求消息的時(shí)間;確定發(fā)出控制權(quán)請(qǐng)求消息的時(shí)間最早的計(jì)算機(jī),或者,發(fā)出控制權(quán)請(qǐng) 求消息的時(shí)間相同且優(yōu)先級(jí)參數(shù)較高的計(jì)算機(jī),為具有主控狀態(tài)信息的 計(jì)算機(jī),將相應(yīng)的其它計(jì)算機(jī)的運(yùn)行狀態(tài)信息轉(zhuǎn)換為從屬狀態(tài)信息。本發(fā)明實(shí)施例還公開(kāi)了一種多機(jī)多屏的3D同步顯示系統(tǒng),所述多臺(tái) 計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)連接,所述計(jì)算機(jī)的顯示屏包括主窗口和子窗口 ,所述的系統(tǒng)包括
運(yùn)行信息表維護(hù)單元,用于依據(jù)進(jìn)入網(wǎng)絡(luò)連接的計(jì)算機(jī)的啟動(dòng)消息, 在網(wǎng)絡(luò)中連接的各臺(tái)計(jì)算機(jī)上維護(hù)運(yùn)行信息表;所述啟動(dòng)消息包括3D 對(duì)象信息和顯示視角信息;所述運(yùn)行信息表中包括網(wǎng)絡(luò)中所有計(jì)算機(jī) 的IP地址及其運(yùn)行狀態(tài)信息;所述運(yùn)行狀態(tài)信息包括對(duì)等狀態(tài)信息、主 控狀態(tài)信息或從屬狀態(tài)信息;
啟動(dòng)單元,用于在所述網(wǎng)絡(luò)中的計(jì)算機(jī)上分別依據(jù)所述啟動(dòng)消息加載 所述3D對(duì)象,并且,使各臺(tái)計(jì)算機(jī)在其主窗口中分別按照對(duì)應(yīng)的顯示視 角信息繪制所述3D對(duì)象,同時(shí),各臺(tái)計(jì)算機(jī)分別生成子窗口 ,在子窗口 中繪制網(wǎng)絡(luò)中除本計(jì)算機(jī)外的其它計(jì)算機(jī)的、不同視角的3D對(duì)象;
觸發(fā)指令接收單元,用于接收用戶在網(wǎng)絡(luò)中任一臺(tái)計(jì)算機(jī)上提交的 3D對(duì)象觸發(fā)指令;
主控狀態(tài)轉(zhuǎn)換單元,用于在所述接收指令的計(jì)算機(jī)的運(yùn)行狀態(tài)信息為 對(duì)等狀態(tài)信息時(shí),將所述對(duì)等狀態(tài)信息轉(zhuǎn)換為主控狀態(tài)信息,并提交控 制權(quán)請(qǐng)求消息至所述運(yùn)行信息表中記錄的其它計(jì)算機(jī);
從屬狀態(tài)轉(zhuǎn)換單元,用于在所述其它計(jì)算機(jī)接收所述控制權(quán)請(qǐng)求消息 時(shí),將其運(yùn)行狀態(tài)信息轉(zhuǎn)換為從屬狀態(tài)信息;
操作指令接收單元,用于接收用戶在所述具有主控狀態(tài)信息的計(jì)算機(jī) 上提交的3D對(duì)象操作指令;
主機(jī)繪制更新單元,用于根據(jù)所述操作指令在當(dāng)前計(jì)算機(jī)的主窗口和 子窗口中分別更新所述3D對(duì)象的繪制;
更新請(qǐng)求單元,用于依據(jù)所述更新繪制操作生成相應(yīng)的操作請(qǐng)求發(fā)送 至對(duì)應(yīng)的具有從屬狀態(tài)信息的計(jì)算機(jī);
從機(jī)繪制更新單元,用于使所述具有從屬狀態(tài)信息的計(jì)算機(jī)依據(jù)所述 操作請(qǐng)求,分別在其對(duì)應(yīng)的主窗口和子窗口中更新所述3D對(duì)象的繪制。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)
首先,本發(fā)明在簡(jiǎn)單的對(duì)等計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境下,實(shí)現(xiàn)了多臺(tái)計(jì)算機(jī)同 步控制操作的處理。本發(fā)明通過(guò)在每一臺(tái)計(jì)算機(jī)中維護(hù)運(yùn)行信息表,動(dòng) 態(tài)地將系統(tǒng)中的計(jì)算機(jī)劃分為不同的狀態(tài);通過(guò)簡(jiǎn)單有效的通信協(xié)議和 明確的協(xié)議處理方法,實(shí)現(xiàn)了系統(tǒng)中各臺(tái)計(jì)算機(jī)都可以自由地對(duì)被控對(duì)象實(shí)施無(wú)沖突的同步控制。應(yīng)用本發(fā)明,系統(tǒng)中各計(jì)算機(jī)運(yùn)行同一個(gè)軟 件,無(wú)須指定某一臺(tái)計(jì)算機(jī)為特殊計(jì)算機(jī),也無(wú)須指定某一臺(tái)計(jì)算機(jī)必 須處于不停機(jī)的運(yùn)行狀態(tài),各計(jì)算機(jī)可以隨時(shí)進(jìn)入和退出系統(tǒng)。用戶對(duì) 控制對(duì)象的操作無(wú)須使用和控制操作不 一致的額外命令,使用和操作方 法簡(jiǎn)單,并有效地減少了系統(tǒng)開(kāi)銷和資源浪費(fèi)、降低了成本、用戶使用 體驗(yàn)好。再者,本發(fā)明針對(duì)實(shí)際中各種多計(jì)算機(jī)沖突的情形,通過(guò)判斷優(yōu)先級(jí) 確定唯一主機(jī)執(zhí)行相應(yīng)操作,操作簡(jiǎn)單、無(wú)需額外資源和系統(tǒng)開(kāi)銷,使 用戶獲得更好體驗(yàn)。最后,本發(fā)明技術(shù)實(shí)現(xiàn)簡(jiǎn)單,無(wú)技術(shù)障礙,無(wú)特殊保密算法。
圖1是本發(fā)明的一種多計(jì)算機(jī)的同步控制方法實(shí)施例的流程圖; 圖2是本發(fā)明的一種多計(jì)算機(jī)的同步控制系統(tǒng)實(shí)施例的結(jié)構(gòu)框圖; 圖3是基于本發(fā)明核心構(gòu)思實(shí)現(xiàn)的一種多機(jī)多屏的3D同步顯示方法 實(shí)施例的流程圖;圖4是本發(fā)明的一種多機(jī)多屏的3D同步顯示系統(tǒng)實(shí)施例的結(jié)構(gòu)框圖;圖5是應(yīng)用本發(fā)明的多機(jī)多屏3D同步顯示系統(tǒng)的一個(gè)具體實(shí)例中的 顯示示意圖1;圖6是應(yīng)用本發(fā)明的多機(jī)多屏3D同步顯示系統(tǒng)的一個(gè)具體實(shí)例中的 顯示示意圖2;圖7是應(yīng)用本發(fā)明的多機(jī)多屏3D同步顯示系統(tǒng)的一個(gè)具體實(shí)例中的 顯示示意圖3;圖8是應(yīng)用本發(fā)明的多機(jī)多屏3D同步顯示系統(tǒng)的 一個(gè)具體實(shí)例中的 顯示示意圖4;圖9是應(yīng)用本發(fā)明的多機(jī)多屏3D同步顯示系統(tǒng)的一個(gè)具體實(shí)例中的 顯示示意圖5;圖10是應(yīng)用本發(fā)明的多機(jī)多屏3D同步顯示系統(tǒng)的一個(gè)具體實(shí)例中 的顯示示意圖6;圖11是應(yīng)用本發(fā)明的多機(jī)多屏3D同步顯示系統(tǒng)的一個(gè)具體實(shí)例中 的顯示示意圖7;
圖12是應(yīng)用本發(fā)明的多機(jī)多屏3D同步顯示系統(tǒng)的一個(gè)具體實(shí)例中 的顯示示意圖8;
圖13是應(yīng)用本發(fā)明的多機(jī)多屏3D同步顯示系統(tǒng)的一個(gè)具體實(shí)例中 的顯示示意圖9;
圖14是應(yīng)用本發(fā)明的多機(jī)多屏3D同步顯示系統(tǒng)的一個(gè)具體實(shí)例中 的顯示示意圖10;
圖15是應(yīng)用本發(fā)明的多機(jī)多屏3D同步顯示系統(tǒng)的一個(gè)具體實(shí)例中 的顯示示意圖11;
圖16是應(yīng)用本發(fā)明的多機(jī)多屏3D同步顯示系統(tǒng)的一個(gè)具體實(shí)例中 的顯示示意圖12。
具體實(shí)施例方式
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合 附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn) 一 步詳細(xì)的說(shuō)明。
本發(fā)明可用于眾多通用或?qū)S玫挠?jì)算系統(tǒng)環(huán)境或配置中。例如個(gè) 人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處 理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程的消費(fèi)電子設(shè)備、網(wǎng) 絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括以上任何系統(tǒng)或設(shè)備的分布式計(jì) 算環(huán)境等等。
本發(fā)明可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的 一般上下文中描 —述,例如程序模塊。 一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽 象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布 式計(jì)算環(huán)境中實(shí)踐本發(fā)明,在這些分布式計(jì)算環(huán)境中,由通過(guò)通信網(wǎng)絡(luò) 而被連接的遠(yuǎn)程處理設(shè)備來(lái)執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊 可以位于包括存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。
本發(fā)明實(shí)施例的核心構(gòu)思之一在于,在由網(wǎng)絡(luò)連接的多臺(tái)計(jì)算機(jī)上, 針對(duì)每一臺(tái)計(jì)算機(jī)維護(hù)一個(gè)運(yùn)行信息表,該信息表包含所有計(jì)算機(jī)的相
關(guān)信息,在用戶對(duì)其中任一臺(tái)計(jì)算機(jī)進(jìn)行同步控制操作時(shí),讀取該臺(tái)計(jì)算機(jī)上的運(yùn)行信息表,根據(jù)操作指令與當(dāng)前計(jì)算機(jī)的運(yùn)行狀態(tài)判斷是否 符合預(yù)置規(guī)則,在符合的條件下,發(fā)起同步控制操作。
參考圖1,示出了本發(fā)明的一種多計(jì)算機(jī)的同步控制方法實(shí)施例的流 程圖,其中,所述多臺(tái)計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)連接,具體可以包括以下步驟
步驟IOI、在網(wǎng)絡(luò)中的各臺(tái)計(jì)算機(jī)上維護(hù)運(yùn)行信息表;
所述運(yùn)行信息表中可以包括網(wǎng)絡(luò)中所有計(jì)算機(jī)的標(biāo)識(shí)信息、以及 對(duì)應(yīng)計(jì)算機(jī)的運(yùn)行狀態(tài)信息。
所謂網(wǎng)絡(luò),通俗地講就是由多臺(tái)計(jì)算機(jī)(或其它計(jì)算機(jī)網(wǎng)絡(luò)設(shè)備) 通過(guò)傳輸介質(zhì)和軟件物理(或邏輯)連接在一起組成的。總的來(lái)說(shuō)計(jì)算 機(jī)網(wǎng)絡(luò)的組成基本上包括計(jì)算機(jī)、網(wǎng)絡(luò)操作系統(tǒng)、傳輸介質(zhì)(可以是 有形的,也可以是無(wú)形的,如無(wú)線網(wǎng)絡(luò)的傳輸介質(zhì)就是空氣)以及相應(yīng) 的應(yīng)用軟件四部分。本發(fā)明主要涉及在應(yīng)用軟件方面作出的改進(jìn)。在本 發(fā)明中,所述網(wǎng)絡(luò)可以為任一種網(wǎng)絡(luò),如局域網(wǎng)、城域網(wǎng)、廣域網(wǎng)和互 聯(lián)網(wǎng)等,優(yōu)選的,可以由以太網(wǎng)連接多臺(tái)計(jì)算機(jī)。所述計(jì)算機(jī)標(biāo)識(shí)信息 則可以為網(wǎng)絡(luò)地址信息。
在實(shí)際中,所述運(yùn)行狀態(tài)信息可以包掉對(duì)等狀態(tài)信息、主控狀態(tài)信 息或從屬狀態(tài)信息。即網(wǎng)絡(luò)中計(jì)算機(jī)啟動(dòng)后所處的狀態(tài)分分別為對(duì)等狀 態(tài)、主控狀態(tài)和從屬狀態(tài)三種。網(wǎng)絡(luò)中的計(jì)算機(jī)處于這三種狀態(tài)中的一 種,并且在特定時(shí)間下,只有一臺(tái)計(jì)算機(jī)是處于主控狀態(tài),也就是說(shuō), 在同一時(shí)刻下,不會(huì)存在多臺(tái)主控狀態(tài)的計(jì)算機(jī)。對(duì)此,本發(fā)明還提出 了 一種全新的沖突防范機(jī)制,將在下文相關(guān)部分進(jìn)行說(shuō)明。
維護(hù)運(yùn)行信息表的操作具體可以包括以下幾種情形
一、網(wǎng)絡(luò)中的某臺(tái)計(jì)算^/L啟動(dòng),將啟動(dòng)消息(如本^/U也址、啟動(dòng)時(shí) 間等信息)以網(wǎng)絡(luò)廣播消息的方式,發(fā)送給網(wǎng)絡(luò)中的其它計(jì)算機(jī);網(wǎng)絡(luò) 上已啟動(dòng)的計(jì)算^L響應(yīng)該消息,并與該新啟動(dòng)的計(jì)算才幾建立連4妻,然后 在所有啟動(dòng)的計(jì)算機(jī)上分別維護(hù)運(yùn)行信息表。具體可以為
通過(guò)計(jì)算機(jī)標(biāo)識(shí)信息(如計(jì)算機(jī)的網(wǎng)絡(luò)地址)判斷運(yùn)行信息表中是 否已有當(dāng)前計(jì)算機(jī)的記錄,如果是,則生成新的信息表記錄(如本機(jī)地 址和啟動(dòng)時(shí)間),用這條新記錄替換相應(yīng)地址的原記錄;如果否,則直接 在運(yùn)4亍信息表中添加所述新記錄。對(duì)于新進(jìn)入網(wǎng)絡(luò)中的計(jì)算機(jī),可以通過(guò)讀取網(wǎng)絡(luò)中其它計(jì)算機(jī)的運(yùn) 行狀態(tài)來(lái)確定本機(jī)的運(yùn)行狀態(tài)。例如,如果網(wǎng)絡(luò)中的其它計(jì)算機(jī)都于對(duì)等狀態(tài),則設(shè)置本機(jī)的運(yùn)行狀態(tài)為對(duì)等狀態(tài);如果本機(jī)啟動(dòng)時(shí),收到網(wǎng)絡(luò)中其它計(jì)算機(jī)發(fā)出的控制權(quán)請(qǐng)求消息,則設(shè)置本機(jī)的運(yùn)行狀態(tài)為從屬 狀態(tài)。二、 網(wǎng)絡(luò)中的某臺(tái)計(jì)算機(jī)退出,將退出消息以網(wǎng)絡(luò)廣播消息的方式,發(fā)送給網(wǎng)絡(luò)中的其它計(jì)算機(jī);網(wǎng)絡(luò)上已啟動(dòng)的計(jì)算機(jī)響應(yīng)該消息,并與 該計(jì)算機(jī)斷開(kāi)連接,然后在啟動(dòng)的計(jì)算上分別維護(hù)運(yùn)行信息表。具體可 以為依據(jù)計(jì)算機(jī)標(biāo)識(shí)信息刪除運(yùn)行信息表中請(qǐng)求退出的計(jì)算機(jī)的對(duì)應(yīng)記 錄;如果該計(jì)算機(jī)退出前的運(yùn)行狀態(tài)為主控狀態(tài),則復(fù)位到對(duì)等狀態(tài)。三、 根據(jù)實(shí)際中各計(jì)算機(jī)運(yùn)行狀態(tài)信息的轉(zhuǎn)換實(shí)時(shí)更新所述運(yùn)行信 息表中相應(yīng)計(jì)算機(jī)的運(yùn)行狀態(tài)信息。例如,在執(zhí)行同步控制過(guò)程中,相應(yīng)計(jì)算從對(duì)等狀態(tài)轉(zhuǎn)換為主控狀 態(tài),從對(duì)等狀態(tài)轉(zhuǎn)換為從屬狀態(tài),或從主控狀態(tài)轉(zhuǎn)換為從屬狀態(tài)等;或 者,在一段時(shí)間沒(méi)有執(zhí)行同步控制操作時(shí),從主控狀態(tài)或從屬狀態(tài)轉(zhuǎn)換 為對(duì)等狀態(tài)等。當(dāng)然,本領(lǐng)域技術(shù)人員根據(jù)實(shí)際需要或經(jīng)驗(yàn)采用任一種方式維護(hù)運(yùn) 行信息表都是可行的,上述方法僅僅用于示例,本發(fā)明對(duì)此不需要進(jìn)行 限定。步驟102、接收用戶在網(wǎng)絡(luò)中任一臺(tái)計(jì)算機(jī)上輸入的同步控制指令;所述同步控制指令可以包括同步控制觸發(fā)指令和同步控制操作指 令??梢岳斫獾氖?,對(duì)于僅控制本地計(jì)算機(jī)機(jī)操作的非同步控制'指令, 則按照現(xiàn)有的計(jì)算機(jī)指令處理方式在本地計(jì)算機(jī)上處理即可,由于其偏 離于本發(fā)明的核心構(gòu)思,在此就不詳述了。步驟103、在所述接收指令的計(jì)算機(jī)的運(yùn)行狀態(tài)信息符合預(yù)置規(guī)則 時(shí),對(duì)所述運(yùn)行信息表中記錄的計(jì)算機(jī)上執(zhí)行所述同步控制操作。處理本步驟的核心構(gòu)思之一在于,在對(duì)等狀態(tài)下,先發(fā)起同步控制 的計(jì)算機(jī)獲得控制權(quán),成為主機(jī);其它計(jì)算機(jī)則成為從機(jī),按主機(jī)的控 制進(jìn)行同步控制處理。對(duì)此,以下列舉幾種執(zhí)行同步控制操作的方法來(lái)進(jìn)一步說(shuō)明。需要說(shuō)明的是,本發(fā)明所述對(duì)等狀態(tài)為具有對(duì)等狀態(tài)信息,主控狀態(tài)為具有主控狀態(tài)信息,從屬狀態(tài)為具有從屬狀態(tài)信息;主機(jī)即對(duì)應(yīng)具有主控狀態(tài)信息的計(jì)算機(jī),從機(jī)即對(duì)應(yīng)具有從屬狀態(tài)信息的計(jì)算 機(jī),對(duì)等機(jī)即對(duì)應(yīng)具有對(duì)等狀態(tài)信息的計(jì)算機(jī)。方法一如果接收到的同步控制指令為同步控制觸發(fā)指令,則可以通過(guò)以下 子步驟執(zhí)行同步控制操作子步驟Al、依據(jù)所述同步控制觸發(fā)指令判斷所述接收指令的計(jì)算機(jī) 的運(yùn)行狀態(tài)信息是否為對(duì)等狀態(tài)信息;子步驟A2、若是,則將所述對(duì)等狀態(tài)信息轉(zhuǎn)換為主控狀態(tài)信息,并 提交控制權(quán)請(qǐng)求消息至所述運(yùn)行信息表中記錄的其它計(jì)算機(jī);子步驟A3、所述其它計(jì)算機(jī)接收所述控制權(quán)請(qǐng)求消息,將其運(yùn)行狀 態(tài)信息轉(zhuǎn)換為從屬狀態(tài)信息。若當(dāng)前計(jì)算機(jī)的運(yùn)行狀態(tài)信息不是對(duì)等狀態(tài)信息,則可能是主控狀 態(tài)信息或從屬狀態(tài)信息。在實(shí)際中,如果是主控狀態(tài)信息,則可以忽略 同步控制觸發(fā)指令,等待用戶發(fā)出同步控制操作指令。如果是從屬狀態(tài) 信息,也可以忽略該同步控制觸發(fā)指令,并提示用戶目前不能操作。當(dāng) 然,以上操作僅僅用于舉例,本發(fā)明對(duì)此不作限制。優(yōu)選的,還可以在計(jì)算機(jī)的對(duì)等狀態(tài)轉(zhuǎn)換為主控狀態(tài)時(shí),啟動(dòng)轉(zhuǎn)換 延時(shí)計(jì)數(shù)器,用以判斷所述主控狀態(tài)的轉(zhuǎn)換是否超時(shí),如果是,則放棄 當(dāng)前計(jì)算機(jī)主控狀態(tài)的轉(zhuǎn)換。方法二在對(duì)等狀態(tài)下,可能出現(xiàn)兩臺(tái)或兩臺(tái)以上的計(jì)算機(jī)同時(shí)進(jìn)行本地同 步控制觸發(fā)操作,此時(shí)將出現(xiàn)沖突。按照上述處理本步驟的核心構(gòu)思, 當(dāng)出現(xiàn)沖突時(shí),需要按照某種規(guī)則,僅使一臺(tái)計(jì)算機(jī)成為主機(jī)。具體而言,如果接收到的同步控制指令為同步控制觸發(fā)指令,可以 在運(yùn)行信息表中添加優(yōu)先級(jí)參數(shù),通過(guò)以下子步驟執(zhí)行同步控制操作子步驟B1、對(duì)比所述接收指令的計(jì)算機(jī)的優(yōu)先級(jí)參數(shù),選取優(yōu)先級(jí) 最高的一臺(tái)計(jì)算機(jī),判斷該計(jì)算機(jī)的運(yùn)行狀態(tài)信息是否為對(duì)等狀態(tài)信息;子步驟B2、若是,則將所述對(duì)等狀態(tài)信息轉(zhuǎn)換為主控狀態(tài)信息,并提交控制權(quán)請(qǐng)求消息至所述運(yùn)行信息表中記錄的其它計(jì)算機(jī);子步驟B3、所述其它計(jì)算機(jī)接收所述控制權(quán)請(qǐng)求消息,將其運(yùn)行狀 態(tài)信息轉(zhuǎn)換為從屬狀態(tài)信息。優(yōu)選的,所述優(yōu)先級(jí)參數(shù)可以根據(jù)網(wǎng)絡(luò)中計(jì)算機(jī)的啟動(dòng)時(shí)間和地址 信息生成。例如,對(duì)于啟動(dòng)時(shí)間在先的計(jì)算機(jī),生成較高的優(yōu)先級(jí)參數(shù); 若啟動(dòng)時(shí)間相同,則對(duì)網(wǎng)絡(luò)地址大的計(jì)算機(jī),生成較高的優(yōu)先級(jí)參凄史。方法三、實(shí)際中另 一種沖突的情形為,由于網(wǎng)絡(luò)傳輸質(zhì)量等引起的傳輸時(shí)間 延遲,可能某一臺(tái)先進(jìn)行同步控制觸發(fā)操作的計(jì)算機(jī)A的控制權(quán)請(qǐng)求消 息到達(dá)另 一 臺(tái)計(jì)算機(jī)B的時(shí)間,比計(jì)算機(jī)B開(kāi)始同步控制觸發(fā)操作的時(shí) 間晚,則這兩臺(tái)計(jì)算機(jī)都會(huì)轉(zhuǎn)換為主控狀態(tài)信息,并向其它計(jì)算機(jī)發(fā)送 控制權(quán)請(qǐng)求消息。在這種情況下,可以通過(guò)以下子步驟執(zhí)行同步控制操作子步驟Cl、依據(jù)所述同步控制觸發(fā)指令判斷所述接收指令的計(jì)算機(jī) 的運(yùn)行狀態(tài)信息是否為對(duì)等狀態(tài)信息;子步驟C2、若是,則將所述對(duì)等狀態(tài)信息轉(zhuǎn)換為主控狀態(tài)信息,并 提交控制權(quán)請(qǐng)求消息至所述運(yùn)行信息表中記錄的其它計(jì)算機(jī);子步驟C3、所述其它計(jì)算機(jī)接收所述控制權(quán)請(qǐng)求消息,將其運(yùn)行狀 態(tài)信息轉(zhuǎn)換為從屬狀態(tài)信息;子步驟C4、在網(wǎng)絡(luò)中各計(jì)算機(jī)的運(yùn)行信息表中,記錄所述具有主控 狀態(tài)信息的計(jì)算機(jī)發(fā)出控制權(quán)請(qǐng)求消息的時(shí)間;子步驟C5、確定發(fā)出控制權(quán)請(qǐng)求消息的時(shí)間最早的計(jì)算機(jī),或者, 發(fā)出控制權(quán)請(qǐng)求消息的時(shí)間相同且優(yōu)先級(jí)參數(shù)較高的計(jì)算機(jī),為具有主 控狀態(tài)信息的計(jì)算機(jī),將相應(yīng)的其它計(jì)算機(jī)的運(yùn)行狀態(tài)信息轉(zhuǎn)換為從屬 狀態(tài)信息。例, 一種確定主才幾過(guò)禾呈可以為記計(jì)算機(jī)響應(yīng)本地同步控制觸發(fā)指令的時(shí)間為T(mén)l,記接收到的控制 權(quán)請(qǐng)求消息的時(shí)間(即發(fā)送該控制^l請(qǐng)求消息的計(jì)算^L響應(yīng)本地同步控 制觸發(fā)指令的時(shí)間)為T(mén)2;當(dāng)Tl < T2時(shí),表示本地計(jì)算機(jī)觸發(fā)同步控制操作的時(shí)間較早,則20將本地計(jì)算機(jī)的運(yùn)行狀態(tài)信息轉(zhuǎn)換為主控狀態(tài)信息。當(dāng)Tl >T2時(shí),表示發(fā)送該控制權(quán)請(qǐng)求消息的遠(yuǎn)程計(jì)算機(jī)響應(yīng)同步控 制的時(shí)間較早,則將遠(yuǎn)程計(jì)算機(jī)的運(yùn)行狀態(tài)信息轉(zhuǎn)換為主控狀態(tài)信息, 將本地計(jì)算機(jī)的運(yùn)行狀態(tài)信息轉(zhuǎn)換為從屬狀態(tài)信息。當(dāng)Tl =T2時(shí),表示本地計(jì)算機(jī)響應(yīng)同步控制觸發(fā)操作的時(shí)間與發(fā)送 該控制權(quán)請(qǐng)求消息的遠(yuǎn)程計(jì)算機(jī)響應(yīng)同步控制觸發(fā)操作的時(shí)間相同,則 再比較兩臺(tái)計(jì)算機(jī)的優(yōu)先級(jí)參數(shù)。如果本地計(jì)算機(jī)的優(yōu)先級(jí)參數(shù)較高, 則將本地計(jì)算機(jī)的運(yùn)行狀態(tài)信息轉(zhuǎn)換為主控狀態(tài)信息;如果遠(yuǎn)程計(jì)算機(jī) 的優(yōu)先級(jí)參數(shù)高,則將遠(yuǎn)程計(jì)算機(jī)的運(yùn)行狀態(tài)信息轉(zhuǎn)換為主控狀態(tài)信息, 將本地計(jì)算機(jī)的運(yùn)行狀態(tài)信息轉(zhuǎn)換為從屬狀態(tài)信息。簡(jiǎn)而言之,對(duì)于方法二所示的沖突情形,相應(yīng)的沖突防范機(jī)制為, 使優(yōu)先級(jí)最高的計(jì)算機(jī)獲得控制權(quán),成為主機(jī)(即獲得主控狀態(tài)信息), 其它計(jì)算機(jī)就成為從機(jī)(即獲得從屬狀態(tài)信息)。對(duì)于方法三所示的沖突 情形,相應(yīng)的沖突防范機(jī)制為,每臺(tái)計(jì)算機(jī)在對(duì)等狀態(tài)下收到本機(jī)用戶 的同步控制觸發(fā)操作時(shí),記錄該時(shí)刻的時(shí)間,并在發(fā)送給其它計(jì)算機(jī)的 控制權(quán)請(qǐng)求消息中包含該時(shí)間。某臺(tái)處于對(duì)等狀態(tài)的計(jì)算機(jī)接收到多個(gè) 控制權(quán)請(qǐng)求消息時(shí),或某臺(tái)主機(jī)收到其它計(jì)算機(jī)的控制權(quán)請(qǐng)求消息時(shí), 通過(guò)比較各控制權(quán)請(qǐng)求消息的時(shí)間,確定成為主機(jī)的計(jì)算機(jī)。在實(shí)際中,從機(jī)的沖突防范處理方法同樣可以參照以上方法??梢?理解,本地計(jì)算機(jī)之所以成為從機(jī),是因?yàn)樗软憫?yīng)了網(wǎng)絡(luò)上某臺(tái)計(jì)算 機(jī)發(fā)送的控制權(quán)請(qǐng)求消息。產(chǎn)生沖突的消息來(lái)源只有一種情況網(wǎng)絡(luò)上 另 一 臺(tái)計(jì)算機(jī)發(fā)送的控制權(quán)請(qǐng)求消息。因此處理沖突的方法可以^J姿照方 法三相同的原理比較當(dāng)前主機(jī)和控制權(quán)請(qǐng)求消息的主機(jī)響應(yīng)同步控制觸 發(fā)操作的時(shí)間和優(yōu)先級(jí),確定新的主機(jī)。若比較的結(jié)果是當(dāng)前主機(jī)還是 主機(jī),則本地計(jì)算機(jī)仍為當(dāng)前主機(jī)的從機(jī),放棄收到的控制權(quán)請(qǐng)求信息。 若比較的結(jié)果是發(fā)出控制權(quán)請(qǐng)求消息的主機(jī)應(yīng)該成為主機(jī),則處理的方 法是本地計(jì)算機(jī)成為該主機(jī)的從機(jī),并用該主機(jī)的信息替換當(dāng)前主機(jī)的4呂息。相應(yīng)地,對(duì)等機(jī)的沖突防范處理方法也可以參照以上方法。處于對(duì) 等狀態(tài)的計(jì)算機(jī)收到?jīng)_突的消息只有一種情況同時(shí)收到網(wǎng)絡(luò)上一臺(tái)以上的計(jì)算機(jī)同發(fā)送的控制權(quán)請(qǐng)求消息。因此處理沖突的方法可以按照方 法三相同的原理比較這些控制權(quán)請(qǐng)求消息響應(yīng)同步控制觸發(fā)操作的時(shí)間 和發(fā)送消,tr計(jì)算機(jī)的優(yōu)先級(jí),從而確定新的主才幾。 方法四、在執(zhí)行所述同步觸發(fā)操作后,通常會(huì)進(jìn)一步執(zhí)行同步控制操作,用 戶在網(wǎng)絡(luò)中任一 臺(tái)計(jì)算機(jī)上輸入同步控制操作指令,則相應(yīng)的同步控制操作可以包括以下子步驟子步驟D1、依據(jù)所述同步控制操作指令判斷所述接收指令的計(jì)算機(jī) 的運(yùn)行狀態(tài)信息是否為主控狀態(tài)信息;子步驟D2、若是,則在所述具有主控狀態(tài)信息的計(jì)算機(jī)上執(zhí)行所述 指令,并生成相應(yīng)的控制操作請(qǐng)求發(fā)送至對(duì)應(yīng)的具有從屬狀態(tài)信息的計(jì)算機(jī);子步驟D3、所述具有從屬狀態(tài)信息的計(jì)算機(jī)依據(jù)所述控制操作請(qǐng)求 執(zhí)行相應(yīng)的操作。若當(dāng)前計(jì)算機(jī)的運(yùn)行狀態(tài)信息不是主機(jī)狀態(tài)信息,則只可能是從屬 狀態(tài)信息。在這種情況下,可以向用戶返回出錯(cuò)信息。本領(lǐng)域技術(shù)人員易于想到上述方法 一——方法四相關(guān)步驟的組合應(yīng) 用,都是本發(fā)明的實(shí)施方案,但是由于篇幅限制,本說(shuō)明書(shū)在此就不一 一詳述了 。在本發(fā)明實(shí)施例中,還可以包括步驟若所述具有主控狀態(tài)信息的計(jì)算機(jī)在預(yù)設(shè)的時(shí)間閾值內(nèi)未接收到同 步控制指令,則將所述計(jì)算機(jī)的主控狀態(tài)信息轉(zhuǎn)換為對(duì)等狀態(tài)信息,并 發(fā)送控制權(quán)放棄消息至所述運(yùn)行信息表中記錄的具有從屬狀態(tài)信息的計(jì)算機(jī);所述具有從屬狀態(tài)信息的計(jì)算機(jī)依據(jù)所述控制權(quán)放棄消息,轉(zhuǎn)換其 運(yùn)行狀態(tài)信息為對(duì)等狀態(tài)信息。例如, 一種運(yùn)行本發(fā)明應(yīng)用軟件的過(guò)程大致可以包括如下步驟 步驟S1:在軟件開(kāi)始運(yùn)行時(shí)執(zhí)行系統(tǒng)組成檢測(cè),它將本機(jī)IP地址、 啟動(dòng)時(shí)間等啟動(dòng)消息以網(wǎng)絡(luò)廣播消息的方式發(fā)送給網(wǎng)絡(luò)中的其它計(jì)算機(jī);
步驟S2:系統(tǒng)運(yùn)行信息表維護(hù)處理。接收系統(tǒng)中其它計(jì)算機(jī)步驟Sl 和步驟S4的消息并進(jìn)行相應(yīng)的處理。
對(duì)于步驟S1的啟動(dòng)消息,如果系統(tǒng)運(yùn)行信息表中沒(méi)有發(fā)送該消息計(jì) 算才幾的IP地址,則用該信息的IP地址和啟動(dòng)時(shí)間生成一個(gè)新的信息表項(xiàng); 如果系統(tǒng)運(yùn)行信息表中存在發(fā)送該消息計(jì)算機(jī)的IP地址,則用該信息的 IP地址和啟動(dòng)時(shí)間替換該信息表中對(duì)應(yīng)項(xiàng)的內(nèi)容,為該表項(xiàng)(對(duì)應(yīng)于發(fā) 送該消息的計(jì)算機(jī))分配新的優(yōu)先級(jí)。然后向發(fā)送該消息的計(jì)算沖幾回送 啟動(dòng)應(yīng)答消息。
對(duì)于步驟S4的退出消息,如果系統(tǒng)信息運(yùn)行表中存在該消息的IP
地址,刪除系統(tǒng)信息運(yùn)行表中的對(duì)應(yīng)項(xiàng),斷開(kāi)與該計(jì)算機(jī)的連接,如果
發(fā)送該消息的計(jì)算機(jī)還是主控計(jì)算機(jī),則復(fù)位主控計(jì)算機(jī)狀態(tài),本機(jī)轉(zhuǎn)
入對(duì)等狀態(tài);如果系統(tǒng)運(yùn)行信息表中沒(méi)有該消息的IP地址,則丟棄該消 自
步驟S3:接受本地用戶輸入的同步控制指令,對(duì)于非同步操作指令、 同步控制觸發(fā)指令和同步控制操作指令三種,分別做如下不同處理 對(duì)于非同步操作指令,轉(zhuǎn)到步驟S4;
對(duì)于同步控制觸發(fā)指令,如果本機(jī)處于對(duì)等狀態(tài),則將本機(jī)轉(zhuǎn)入主 控狀態(tài),啟動(dòng)主控狀態(tài)轉(zhuǎn)換延時(shí)計(jì)數(shù)器,生成控制權(quán)請(qǐng)求消息(該消息 包括本機(jī)IP地址和本機(jī)收到該操作的時(shí)間)并向各計(jì)算機(jī)發(fā)送該消息,
再轉(zhuǎn)到步驟S6。如果本機(jī)處于主控狀態(tài),則復(fù)位狀態(tài)轉(zhuǎn)換定時(shí)器,再轉(zhuǎn) 到步驟S5。如果本機(jī)處于從屬狀態(tài),則放棄該操作,再轉(zhuǎn)到步驟S5。
對(duì)于同步控制操作指令,如果本機(jī)處于主控狀態(tài),則向其它計(jì)算機(jī) 發(fā)送同步控制消息,復(fù)位狀態(tài)轉(zhuǎn)換定時(shí)器,到步驟S6。如果本機(jī)處于從 屬狀態(tài),則放棄該操作,到步驟S5。
步驟S4:用戶非同步操作指令的處理。
如果用戶的操作是退出系統(tǒng)命令,則向系統(tǒng)各計(jì)算機(jī)發(fā)送本機(jī)退出 消息,然后退出程序。如果是非退出系統(tǒng)命令,則執(zhí)行這些命令,到步 驟S5。
步驟S5:接收來(lái)自系統(tǒng)中其它計(jì)算機(jī)(步驟S3)的控制消息,并按控制權(quán)請(qǐng)求消息、同步控制消息和控制權(quán)放棄消息分別做如下不同的處理(1 )控制權(quán)請(qǐng)求消息A、 本機(jī)處于對(duì)等狀態(tài)時(shí)的處理收到其它單個(gè)計(jì)算機(jī)的控制權(quán)請(qǐng) 求消息時(shí),本機(jī)進(jìn)入從屬狀態(tài),發(fā)送消息的計(jì)算機(jī)為主控計(jì)算機(jī),保存 主機(jī)控制權(quán)請(qǐng)求消息的時(shí)間與主機(jī)的優(yōu)先級(jí);同時(shí)收到其它多個(gè)計(jì)算機(jī) 的控制權(quán)請(qǐng)求消息時(shí),對(duì)這些控制權(quán)請(qǐng)求消息的時(shí)間和優(yōu)先級(jí)參數(shù)進(jìn)行 沖突判斷,方法是比較計(jì)算機(jī)控制權(quán)請(qǐng)求消息的時(shí)間,如果控制權(quán)請(qǐng) 求的時(shí)間不同,則時(shí)間早的計(jì)算機(jī)將成為主機(jī);如果控制權(quán)請(qǐng)求的時(shí)間 相同,則優(yōu)先級(jí)高的計(jì)算機(jī)將成為主機(jī)。確定主機(jī)后,保存主才幾控制權(quán) 請(qǐng)求消息的時(shí)間與主機(jī)的優(yōu)先級(jí)。到步驟S2。B、 本機(jī)處于主控狀態(tài)時(shí)的處理將控制權(quán)請(qǐng)求消息的時(shí)間和優(yōu)先 級(jí)參數(shù)與本主機(jī)的對(duì)應(yīng)參數(shù)進(jìn)行沖突判斷,確定新的主機(jī)(方法同本步 驟A中所述),保存主機(jī)控制權(quán)請(qǐng)求消息的時(shí)間與主機(jī)的優(yōu)先級(jí),如果新 主機(jī)不是本機(jī),則本機(jī)轉(zhuǎn)入從屬狀態(tài),關(guān)閉主控狀態(tài)轉(zhuǎn)換延時(shí)計(jì)數(shù)器。 到步驟S2。C、 本機(jī)處于從屬狀態(tài)時(shí)的處理將控制權(quán)請(qǐng)求消息的同步控制時(shí) 間和優(yōu)先級(jí)參數(shù)與當(dāng)前主機(jī)的對(duì)應(yīng)參數(shù)進(jìn)行沖突判斷(方法同本步驟A 中所述),確定新的主機(jī),保存新主機(jī)控制權(quán)請(qǐng)求消息的時(shí)間與新主機(jī)的 優(yōu)先級(jí),本機(jī)仍為從屬狀態(tài)。到步驟S2。(2) 同步操作消息僅處于從屬狀態(tài)的計(jì)算機(jī)會(huì)收到同步操作消息, 從同步操作消息中提取同步控制命令,到步驟S6。(3) 控制權(quán)放棄消息僅處于從屬狀態(tài)的計(jì)算機(jī)會(huì)收到控制權(quán)放棄'' 消息,清除主機(jī)控制權(quán)請(qǐng)求消息的時(shí)間與主機(jī)的優(yōu)先級(jí),本機(jī)轉(zhuǎn)入對(duì)等 狀態(tài)。到步驟S2。步驟S6:用戶同步操作指令的處理。將來(lái)自步驟S3的本地用戶同步 控制命令和來(lái)自步驟S5的同步控制消息命令轉(zhuǎn)化為控制操作,實(shí)現(xiàn)對(duì)本 地計(jì)算機(jī)的同步操作處理。到步驟S7。步驟S7:主控狀態(tài)退出消息處理。如果本機(jī)處于對(duì)等狀態(tài)或從屬狀 態(tài),則到步驟S2。否則,判斷主控狀態(tài)轉(zhuǎn)換延時(shí)計(jì)數(shù)器是否超時(shí),如果超時(shí),則將本機(jī)轉(zhuǎn)入對(duì)等狀態(tài),關(guān)閉主控狀態(tài)轉(zhuǎn)換延時(shí)計(jì)數(shù)器,并向系 統(tǒng)中其它計(jì)算機(jī)發(fā)送控制權(quán)放棄消息。到步驟S2。
可以看出,本發(fā)明在簡(jiǎn)單的對(duì)等計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境下,實(shí)現(xiàn)了多臺(tái)計(jì) 算機(jī)同步控制操作的過(guò)程。通過(guò)在每一臺(tái)計(jì)算機(jī)中設(shè)置運(yùn)行信息表,動(dòng)
態(tài)地將系統(tǒng)中的計(jì)算機(jī)劃分為不同的狀態(tài);通過(guò)簡(jiǎn)單有效的通信協(xié)議和 明確的協(xié)議處理方法,實(shí)現(xiàn)了系統(tǒng)中各臺(tái)計(jì)算才幾都可以自由地對(duì)^皮控對(duì) 象實(shí)施無(wú)沖突的同步控制。因而本發(fā)明可以使系統(tǒng)中各計(jì)算機(jī)運(yùn)行同一 個(gè)軟件,無(wú)須指定某一臺(tái)計(jì)算機(jī)為特殊計(jì)算機(jī),也無(wú)須指定某一臺(tái)計(jì)算 機(jī)必須處于不停機(jī)的運(yùn)行狀態(tài),各計(jì)算機(jī)可以隨時(shí)進(jìn)入和退出系統(tǒng)。用 戶對(duì)控制對(duì)象的搡作無(wú)須使用和控制操作不 一 致的額外命令,使用和操 作方法簡(jiǎn)單。
參考圖2,示出了本發(fā)明的一種多計(jì)算機(jī)的同步控制系統(tǒng)實(shí)施例的結(jié) 構(gòu)框圖,所述多臺(tái)計(jì)算才幾通過(guò)網(wǎng)絡(luò)連接,所述的系統(tǒng)可以包括
運(yùn)行信息表維護(hù)模塊201,用于在網(wǎng)絡(luò)中的各臺(tái)計(jì)算機(jī)上維護(hù)運(yùn)行信 息表,所述運(yùn)行信息表中包括網(wǎng)絡(luò)中所有計(jì)算機(jī)的標(biāo)識(shí)信息、以及對(duì) 應(yīng)計(jì)算機(jī)的運(yùn)行狀態(tài)信息;
指令接收處理模塊202,用于接收用戶在網(wǎng)絡(luò)中任一 臺(tái)計(jì)算機(jī)上輸入 的同步控制指令;
同步控制操作模塊203,用于在所述接收指令的計(jì)算機(jī)的運(yùn)行狀態(tài)信 息符合預(yù)置規(guī)則時(shí),對(duì)所述運(yùn)行信息表中記錄的計(jì)算機(jī)上執(zhí)行所述同步 控制操作。
優(yōu)選的,所述運(yùn)行狀態(tài)信息可以包括對(duì)等狀態(tài)信息、'主控狀態(tài)信息 或/人屬狀態(tài)信息。
本發(fā)明的一種實(shí)施例為,所述同步控制指令為同步控制觸發(fā)指令, 所述同步控制操作模塊可以包括
對(duì)等狀態(tài)判斷子模塊,用于依據(jù)所述同步控制觸發(fā)指令判斷所述接 收指令的計(jì)算機(jī)的運(yùn)行狀態(tài)信息是否為對(duì)等狀態(tài)信息;若是,則觸發(fā)主 控狀態(tài)轉(zhuǎn)換子模塊;
主控狀態(tài)轉(zhuǎn)換子模塊,用于將所述對(duì)等狀態(tài)信息轉(zhuǎn)換為主控狀態(tài)信息,并提交控制權(quán)請(qǐng)求消息至所述運(yùn)行信息表中記錄的其它計(jì)算機(jī);
從屬狀態(tài)轉(zhuǎn)換子模塊,用于所述其它計(jì)算機(jī)接收所述控制權(quán)請(qǐng)求消
息,將其運(yùn)行狀態(tài)信息轉(zhuǎn)換為從屬狀態(tài)信息。
本發(fā)明的另一種實(shí)施例為,所述運(yùn)行信息表中還可以包括優(yōu)先級(jí)
參數(shù),所述接收指令的計(jì)算機(jī)為多個(gè)同時(shí)接收指令的計(jì)算機(jī),所述同步
控制操作模塊包括
第 一優(yōu)先級(jí)判斷子模塊,用于對(duì)比所述接收指令的計(jì)算機(jī)的優(yōu)先級(jí) 參數(shù),選取優(yōu)先級(jí)最高的 一 臺(tái)計(jì)算機(jī)為需要執(zhí)行所述狀態(tài)判斷步驟的計(jì)
算機(jī);
對(duì)等狀態(tài)判斷子模塊,用于依據(jù)所述同步控制觸發(fā)指令判斷所述接
收指令的計(jì)算機(jī)的運(yùn)行狀態(tài)信息是否為對(duì)等狀態(tài)信息;若是,則觸發(fā)主 控狀態(tài)轉(zhuǎn)換子模塊;
主控狀態(tài)轉(zhuǎn)換子模塊,用于將所述對(duì)等狀態(tài)信息轉(zhuǎn)換為主控狀態(tài)信 息,并提交控制權(quán)請(qǐng)求消息至所述運(yùn)行信息表中記錄的其它計(jì)算機(jī);
從屬狀態(tài)轉(zhuǎn)換子模塊,用于所述其它計(jì)算機(jī)接收所述控制權(quán)請(qǐng)求消 息,將其運(yùn)行狀態(tài)信息轉(zhuǎn)換為從屬狀態(tài)信息。
本發(fā)明的另 一種實(shí)施例為,所述同步控制操作模塊可以包括
對(duì)等狀態(tài)判斷子模塊,用于依據(jù)所述同步控制觸發(fā)指令判斷所述接 收指令的計(jì)算機(jī)的運(yùn)行狀態(tài)信息是否為對(duì)等狀態(tài)信息;若是,則觸發(fā)主 控狀態(tài)轉(zhuǎn)換子模塊;
主控狀態(tài)轉(zhuǎn)換子模塊,用于將所述對(duì)等狀態(tài)信息轉(zhuǎn)換為主控狀態(tài)信 息,并提交控制權(quán)請(qǐng)求消息至所述運(yùn)行信息表中記錄的其它計(jì)算機(jī);
從屬狀態(tài)轉(zhuǎn)換子模塊,用于所述其它計(jì)算機(jī)接收所述控制權(quán)請(qǐng)求消 息,將其運(yùn)行狀態(tài)信息轉(zhuǎn)換為從屬狀態(tài)信息;
時(shí)間記錄子模塊,用于在網(wǎng)絡(luò)中各計(jì)算機(jī)的運(yùn)行信息表中,記錄所 述具有主控狀態(tài)信息的計(jì)算機(jī)發(fā)出控制權(quán)請(qǐng)求消息的時(shí)間;
第二優(yōu)先級(jí)判斷子模塊,用于確定發(fā)出控制權(quán)請(qǐng)求消息的時(shí)間最早 的計(jì)算機(jī),或者,發(fā)出控制權(quán)請(qǐng)求消息的時(shí)間相同且優(yōu)先級(jí)參數(shù)較高的 計(jì)算機(jī),為具有主控狀態(tài)信息的計(jì)算機(jī),將相應(yīng)的其它計(jì)算機(jī)的運(yùn)行狀 態(tài)信息轉(zhuǎn)換為從屬狀態(tài)信息。本實(shí)施例中,所述同步控制指令為同步控制操作指令時(shí),所述同步 控制操作模塊還可以包括
主控狀態(tài)判斷子模塊,用于依據(jù)所述同步控制操作指令判斷所述接
收指令的計(jì)算機(jī)的運(yùn)行狀態(tài)信息是否為主控狀態(tài)信息;若是,則觸發(fā)本 機(jī)執(zhí)行發(fā)送子模塊;
本機(jī)執(zhí)行發(fā)送子模塊,用于在所述具有主控狀態(tài)信息的計(jì)算機(jī)上執(zhí) 行所述指令,并生成相應(yīng)的控制操作請(qǐng)求發(fā)送至對(duì)應(yīng)的具有從屬狀態(tài)信 息的計(jì)算機(jī);
同步操作子模塊,用于使所述具有從屬狀態(tài)信息的計(jì)算機(jī)依據(jù)所述 控制操作請(qǐng)求執(zhí)行相應(yīng)的操作。
優(yōu)選的,本發(fā)明實(shí)施例還可以包括
狀態(tài)更新模塊,用于在所述具有主控狀態(tài)信息的計(jì)算機(jī)在預(yù)設(shè)的時(shí) 間閾值內(nèi)未接收到同步控制指令時(shí),將所述計(jì)算機(jī)的主控狀態(tài)信息轉(zhuǎn)換 為對(duì)等狀態(tài)信息,并發(fā)送控制權(quán)放棄消息至所述運(yùn)行信息表中記錄的具 有從屬狀態(tài)信息的計(jì)算機(jī);并使所述具有從屬狀態(tài)信息的計(jì)算機(jī)依據(jù)所 述控制權(quán)放棄消息,轉(zhuǎn)換其運(yùn)行狀態(tài)信息為對(duì)等狀態(tài)信息。
由于圖2所示的系統(tǒng)實(shí)施例可以相應(yīng)于圖1所示的方法實(shí)施例,所 以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。
科學(xué)計(jì)算可視化,是上世紀(jì)80年代后期隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展 而出現(xiàn)的 一 門(mén)新興技術(shù),它通過(guò)把各種復(fù)雜的數(shù)據(jù)轉(zhuǎn)換成直觀的圖形或 圖像,以方便人們正確理解數(shù)據(jù)或過(guò)程的含義。它的主要目的是更加有 效地處理和分析越來(lái)越多的科學(xué)和工程數(shù)據(jù),為科研和工程人員提供一 個(gè)有效、直觀地探索和研究客觀世界的工具??茖W(xué)計(jì)算可視化發(fā)展的初 期,計(jì)算機(jī)硬件的成本較高,而且性能有限。當(dāng)時(shí)的可視化技術(shù)主要集 中在高分辨率、大視野顯示技術(shù)的研究上。在這一階段,國(guó)外公司依靠 其先進(jìn)的硬件制造技術(shù),研發(fā)了高檔專用的可視化系統(tǒng),這類系統(tǒng)配備 著專用軟件,在當(dāng)時(shí)提供了無(wú)以倫比的顯示性能,但系統(tǒng)價(jià)格昂貴,遠(yuǎn) 沒(méi)有達(dá)到普及應(yīng)用的地步。隨著計(jì)算機(jī)技術(shù)的發(fā)展,其硬件成本的不斷 降低和性能的不斷提高為科學(xué)計(jì)算可視化的發(fā)展提供了巨大的推動(dòng)力。
可視化技術(shù)的高層次應(yīng)用主要涉及多機(jī)多屏的3D同步顯示,目前已經(jīng)廣泛應(yīng)用于分布式產(chǎn)品同步瀏覽、基于網(wǎng)絡(luò)的遠(yuǎn)程故障分析、醫(yī)療會(huì)
診等領(lǐng)域。簡(jiǎn)而言之,這種多機(jī)多屏的3D同步顯示技術(shù)就是用于實(shí)現(xiàn), 在由網(wǎng)絡(luò)連接的多臺(tái)計(jì)算機(jī)上,對(duì)同一 3D對(duì)象進(jìn)行同步顯示控制。
參考圖3,示出了基于本發(fā)明核心構(gòu)思實(shí)現(xiàn)的一種多機(jī)多屏的3D同 步顯示方法實(shí)施例的流程圖,所述多臺(tái)計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)連接,所述計(jì)算 機(jī)的顯示屏可以包括主窗口和子窗口 ,本實(shí)施例可以包4舌以下步-驟
步驟301、依據(jù)進(jìn)入網(wǎng)絡(luò)連接的計(jì)算機(jī)的啟動(dòng)消息,在網(wǎng)絡(luò)中連接的 各臺(tái)計(jì)算機(jī)上維護(hù)運(yùn)行信息表;
其中,所述啟動(dòng)消息包括3D對(duì)象信息和顯示視角信息;所述運(yùn)行 信息表中包括網(wǎng)絡(luò)中所有計(jì)算機(jī)的IP地址及其運(yùn)行狀態(tài)信息;所述運(yùn) 行狀態(tài)信息包括對(duì)等狀態(tài)信息、主控狀態(tài)信息或從屬狀態(tài)信息;
步驟302、所述網(wǎng)絡(luò)中的計(jì)算機(jī)上分別依據(jù)所述啟動(dòng)消息加載所述 3D對(duì)象,并且,各臺(tái)計(jì)算機(jī)在其主窗口中分別按照對(duì)應(yīng)的顯示視角信息 繪制所述3D對(duì)象,同時(shí),各臺(tái)計(jì)算機(jī)分別生成子窗口,在子窗口中繪制 網(wǎng)絡(luò)中除本計(jì)算機(jī)外的其它計(jì)算機(jī)的、不同視角的3D對(duì)象;
步驟303、接收用戶在網(wǎng)絡(luò)中任一臺(tái)計(jì)算機(jī)上提交的3D對(duì)象觸發(fā)指
令;
步驟304、若所述接收指令的計(jì)算機(jī)的運(yùn)行狀態(tài)信息為對(duì)等狀態(tài)信 息,則將所述對(duì)等狀態(tài)信息轉(zhuǎn)換為主控狀態(tài)信息,并提交控制權(quán)請(qǐng)求消 息至所述運(yùn)行信息表中記錄的其它計(jì)算機(jī);
步驟305、所述其它計(jì)算機(jī)接收所述控制權(quán)請(qǐng)求消息,將其運(yùn)行狀態(tài) 信息轉(zhuǎn)換為從屬狀態(tài)信息;
步驟306、接收用戶在所述具有主控狀態(tài)信息的計(jì)算機(jī)上提交的3D 對(duì)象操作指令,并根據(jù)所述指令在當(dāng)前計(jì)算機(jī)的主窗口和子窗口中分別 更新所述3D對(duì)象的繪制;
步驟307、依據(jù)所述更新繪制操作生成相應(yīng)的操作請(qǐng)求發(fā)送至對(duì)應(yīng)的 具有從屬狀態(tài)信息的計(jì)算機(jī),所述具有從屬狀態(tài)信息的計(jì)算機(jī)依據(jù)所述 操作請(qǐng)求,分別在其對(duì)應(yīng)的主窗口和子窗口中更新所述3D對(duì)象的繪制。
在對(duì)等狀態(tài)下,先進(jìn)行同步控制的計(jì)算機(jī)獲得控制權(quán),成為主機(jī); 其它的計(jì)算機(jī)則成為從機(jī)并按主機(jī)的控制進(jìn)行同步控制處理。然而在對(duì)等狀態(tài)下,可能出現(xiàn)兩臺(tái)或兩臺(tái)以上的計(jì)算機(jī)同時(shí)進(jìn)行本地同步控制觸 發(fā)操作,此時(shí)將出現(xiàn)沖突。為避免出現(xiàn)沖突,使一臺(tái)計(jì)算機(jī)成為主機(jī), 本實(shí)施例還可以在所述運(yùn)行信息表中設(shè)置優(yōu)先級(jí)參數(shù),則 一種沖突防范
的方法可以為在本實(shí)施例中增加步驟
通過(guò)對(duì)比所述接收指令的計(jì)算機(jī)的優(yōu)先級(jí)參數(shù),選取優(yōu)先級(jí)最高的 一臺(tái)計(jì)算機(jī)為需要執(zhí)行所述狀態(tài)判斷步驟的計(jì)算機(jī)。
關(guān)于本步驟的描述可以參見(jiàn)前述多計(jì)算機(jī)同步控制方法實(shí)施例中的 方法二,在此就不詳述了。
優(yōu)選的,所述優(yōu)先級(jí)參數(shù)根據(jù)網(wǎng)絡(luò)中計(jì)算機(jī)的啟動(dòng)時(shí)間和地址信息 生成。
在實(shí)際中,另一種沖突防范的方法可以為在本實(shí)施例中增加步驟
在網(wǎng)絡(luò)中各計(jì)算機(jī)的運(yùn)行信息表中,記錄所述具有主控狀態(tài)信息的 計(jì)算機(jī)發(fā)出控制權(quán)請(qǐng)求消息的時(shí)間;
確定發(fā)出控制權(quán)請(qǐng)求消息的時(shí)間最早的計(jì)算機(jī),或者,發(fā)出控制權(quán) 請(qǐng)求消息的時(shí)間相同且優(yōu)先級(jí)參數(shù)較高的計(jì)算機(jī),為具有主控狀態(tài)信息 的計(jì)算機(jī),將相應(yīng)的其它計(jì)算機(jī)的運(yùn)行狀態(tài)信息轉(zhuǎn)換為從屬狀態(tài)信息。
關(guān)于本步驟的描述可以參見(jiàn)前述多計(jì)算機(jī)同步控制方法實(shí)施例中的 方法三,在此就不i,述了。
在實(shí)際中,本實(shí)施例可以運(yùn)行在通過(guò)以太網(wǎng)連接的高性能pc計(jì)算機(jī) 上,用以實(shí)現(xiàn)在各計(jì)算機(jī)上按不同的視角同步顯示同 一個(gè)3D數(shù)據(jù)模型, 用戶可以在其中任意一臺(tái)計(jì)算機(jī)上進(jìn)行3D對(duì)象的裝入和瀏覽操作,其它 計(jì)算機(jī)受該計(jì)算機(jī)控制,同步完成對(duì)同一個(gè)3D對(duì)象的裝入和瀏覽操作的 功能。
本實(shí)施例的運(yùn)行狀態(tài)信息分另'J標(biāo)識(shí)計(jì)算機(jī)的三種不同狀態(tài),分別是 對(duì)等狀態(tài)、主控狀態(tài)和從屬狀態(tài)。當(dāng)某臺(tái)計(jì)算機(jī)處于這三種狀態(tài)之一時(shí), 分別可以稱之為對(duì)等機(jī)、主機(jī)和從機(jī)。在某一特定時(shí)刻,某臺(tái)計(jì)算機(jī)只 可能處于三種狀態(tài)中的 一種,且只能有 一 臺(tái)計(jì)算機(jī)是主機(jī)。
網(wǎng)絡(luò)中的計(jì)算才幾可以由其唯一的IP地址互相區(qū)分,且每臺(tái)計(jì)算才幾都 有不同的優(yōu)先級(jí),每臺(tái)計(jì)算機(jī)的優(yōu)先級(jí)也是唯一的。
通常,對(duì)3D對(duì)象的瀏覽操作方法包括旋轉(zhuǎn)操作在非平移狀態(tài)下,按下鼠標(biāo)左鍵,并向不同方向拖動(dòng)鼠標(biāo)。
平移操作在平移狀態(tài)下,按下鼠標(biāo)左鍵,并向不同方向拖動(dòng)鼠標(biāo)。 放大操作鼠標(biāo)中鍵向后滾動(dòng)。 縮小操作鼠標(biāo)中鍵向前滾動(dòng)。
顯示復(fù)位操作單擊鼠標(biāo)右鍵(所顯示的對(duì)象將恢復(fù)初始裝入時(shí)的 顯示位置)。
裝入3D對(duì)象數(shù)據(jù)打開(kāi)指定的3DS數(shù)據(jù)文件。
基于以上操作,可以將用戶對(duì)計(jì)算機(jī)的控制操作分為同步控制觸發(fā) 操作、同步控制操作和非同步控制操作三類。同步控制觸發(fā)操作可以包 括裝入3D對(duì)象數(shù)據(jù)、開(kāi)始對(duì)已裝入的3D對(duì)象的旋轉(zhuǎn)、平移、放縮和 顯示復(fù)位等;同步控制操作可以包括對(duì)已裝入的3D對(duì)象的旋轉(zhuǎn)、平移、 放縮操作;非同步控制操作可以包括設(shè)置本計(jì)算機(jī)顯示的背景顏色、 改變本計(jì)算機(jī)的顯示視角等。同步控制操作是各個(gè)計(jì)算機(jī)要同時(shí)同步進(jìn) 行的處理;同步控制觸發(fā)操作是用戶在某臺(tái)處于對(duì)等狀態(tài)的計(jì)算機(jī)上將 要進(jìn)行同步操作的操作,同步控制觸發(fā)操作將有可能使該計(jì)算機(jī)由對(duì)等 機(jī)變?yōu)橹鳈C(jī);非同步操作則是某臺(tái)計(jì)算機(jī)自己進(jìn)行的處理。
以下對(duì)各個(gè)狀態(tài)下的計(jì)算機(jī)指令操作過(guò)程進(jìn)行說(shuō)明
一、對(duì)等狀態(tài)
軟件啟動(dòng)時(shí),如果網(wǎng)絡(luò)中的計(jì)算機(jī)都處于對(duì)等狀態(tài)時(shí),則本計(jì)算機(jī) 也將處于對(duì)等狀態(tài)。
在對(duì)等狀態(tài)下,如果用戶在計(jì)算機(jī)上進(jìn)行中以下同步控制觸發(fā)操作, 則該計(jì)算機(jī)將成為主機(jī)。同步控制觸發(fā)操作可以包括以下系統(tǒng)消息
*鼠標(biāo)左鍵按下消息
*鼠標(biāo)右鍵按下消息
鼠標(biāo)中鍵滑動(dòng)消息
裝入3DS文件的菜單消息
當(dāng)計(jì)算機(jī)成為主機(jī)后,給網(wǎng)絡(luò)內(nèi)的其它計(jì)算機(jī)發(fā)送控制權(quán)請(qǐng)求消息。 控制權(quán)請(qǐng)求消息的內(nèi)容包括本機(jī)響應(yīng)同步控制觸發(fā)操作的時(shí)間以及本機(jī) 的優(yōu)先級(jí)。其它計(jì)算機(jī)收到控制權(quán)請(qǐng)求消息后即由對(duì)等狀態(tài)轉(zhuǎn)換為從屬狀態(tài),并保存收到控制權(quán)請(qǐng)求消息的時(shí)間和主機(jī)的優(yōu)先級(jí),用以進(jìn)行沖 突判斷。
在對(duì)等狀態(tài)下對(duì)各種消息的處理方法和狀態(tài)轉(zhuǎn)換操作具體可以為 (1 )收到本機(jī)用戶的同步控制觸發(fā)操作。
處理本機(jī)進(jìn)入主控狀態(tài);向其它計(jì)算機(jī)發(fā)送控制權(quán)請(qǐng)求消息。
(2) 收到其它計(jì)算機(jī)的控制權(quán)請(qǐng)求消息。
處理收到其它單個(gè)計(jì)算機(jī)的控制權(quán)請(qǐng)求消息時(shí),本機(jī)進(jìn)入從屬狀 態(tài),保存主機(jī)控制權(quán)請(qǐng)求消息的時(shí)間與主機(jī)的優(yōu)先級(jí)。同時(shí)收到其它多 個(gè)計(jì)算機(jī)的控制權(quán)請(qǐng)求消息時(shí),對(duì)這些控制權(quán)請(qǐng)求消息的同步控制時(shí)間 和優(yōu)先級(jí)參數(shù)進(jìn)行沖突判斷,確定主機(jī),保存主機(jī)控制權(quán)請(qǐng)求消息的時(shí) 間與主才幾的優(yōu)先級(jí)。
(3) 收到其它計(jì)算機(jī)的啟動(dòng)消息。
處理給該計(jì)算機(jī)發(fā)送控制權(quán)請(qǐng)求消息,本機(jī)保持對(duì)等狀態(tài)。
(4) 收到其它計(jì)算機(jī)的退出消息。
處理斷開(kāi)與該計(jì)算機(jī)的連接,本機(jī)保持對(duì)等狀態(tài)。 二、主控狀態(tài)
一臺(tái)計(jì)算機(jī)成為主機(jī)后,用戶就可以在該計(jì)算機(jī)上進(jìn)行同步控制梯: 作。在進(jìn)行同步控制操作的同時(shí),主機(jī)通過(guò)網(wǎng)絡(luò)將控制信息發(fā)送給各從 機(jī)。各從機(jī)響應(yīng)同步控制消息,并按消息進(jìn)行相應(yīng)的同步控制處理,從 而實(shí)現(xiàn)同步瀏覽功能。
用戶停止同步控制操作時(shí),主機(jī)可以啟動(dòng) 一 個(gè)狀態(tài)轉(zhuǎn)換定時(shí)器開(kāi)始 定時(shí)。同步控制操作可以包括以下系統(tǒng)消息
旋轉(zhuǎn)瀏覽過(guò)程中鼠標(biāo)左鍵松開(kāi)消息 '
平移瀏覽過(guò)程中鼠標(biāo)左鍵松開(kāi)消息
放縮瀏覽過(guò)程中鼠標(biāo)中鍵停止滑動(dòng)消息
顯示復(fù)位時(shí)鼠標(biāo)右鍵松開(kāi)消息
裝入3DS文件過(guò)程中成功打開(kāi)并讀入3DS文件后如果狀態(tài)轉(zhuǎn)換 時(shí)間到(通常為0.5秒),主機(jī)將退出主控狀態(tài),進(jìn)入對(duì)等狀態(tài),并給各 從機(jī)發(fā)送控制權(quán)放棄信息。各從機(jī)收到控制權(quán)放棄消息后,將保存的主 機(jī)控制權(quán)請(qǐng)求消息的時(shí)間與主機(jī)的優(yōu)先級(jí)丟棄。如果在狀態(tài)轉(zhuǎn)換定時(shí)時(shí)間內(nèi),用戶再次進(jìn)行同步控制觸發(fā)操作,則 主機(jī)將狀態(tài)轉(zhuǎn)換定時(shí)器復(fù)位,進(jìn)行相應(yīng)的同步控制處理,并將控制信息 發(fā)送給各從機(jī)。主機(jī)繼續(xù)保持在主控狀態(tài)。
在主控狀態(tài)下對(duì)各種消息的處理方法和狀態(tài)轉(zhuǎn)換操作具體可以為
(1) 收到本機(jī)用戶的同步控制觸發(fā)操作和同步控制操作。
處理進(jìn)行相應(yīng)的同步控制處理,向各從機(jī)發(fā)送同步控制消息,復(fù) 位狀態(tài)轉(zhuǎn)換定時(shí)器。
(2) 狀態(tài)轉(zhuǎn)換定時(shí)器時(shí)間到。
處理向各從機(jī)發(fā)送控制權(quán)放棄信息,退出主控狀態(tài),進(jìn)入對(duì)等狀態(tài)。
(3) 收到其它計(jì)算機(jī)的控制權(quán)請(qǐng)求消息。
處理將控制權(quán)請(qǐng)求消息的同步控制時(shí)間和優(yōu)先級(jí)參數(shù)與本主機(jī)的 對(duì)應(yīng)參數(shù)進(jìn)行沖突判斷,確定新的主機(jī)并進(jìn)行相應(yīng)的沖突防范處理。(所 述沖突防范處理的方法可以參見(jiàn)前述多計(jì)算機(jī)同步控制實(shí)施例中方法二 和方法三的相關(guān)描述,本發(fā)明在此不贅述。)
(4) 收到其它計(jì)算機(jī)的程序啟動(dòng)消息。
處理給該計(jì)算機(jī)發(fā)送控制權(quán)請(qǐng)求消息,本機(jī)保持主控狀態(tài)。
(5) 收到其它計(jì)算機(jī)的退出消息。
處理斷開(kāi)與該計(jì)算機(jī)的連接,本機(jī)保持主控狀態(tài)。 三、乂人屬狀態(tài)
某計(jì)算機(jī)啟動(dòng)本軟件時(shí),網(wǎng)絡(luò)有的其它計(jì)算機(jī)都會(huì)給該計(jì)算機(jī)發(fā)送 初始化消息,如果網(wǎng)上已有主機(jī),則本機(jī)將成為從機(jī)。本機(jī)還會(huì)根據(jù)收 到的初始化消息確定其優(yōu)先級(jí)和顯示3D模型的視角。 一臺(tái)處于對(duì)等狀態(tài) 的計(jì)算機(jī)收到控制權(quán)請(qǐng)求消息后,也進(jìn)入從屬狀態(tài),成為從機(jī)。
從機(jī)響應(yīng)主機(jī)發(fā)出的同步控制命令,控制本機(jī)進(jìn)行與主機(jī)相同的同 步控制處理。從機(jī)不會(huì)響應(yīng)本機(jī)用戶的同步控制觸發(fā)操作。當(dāng)從機(jī)收到 主機(jī)的控制權(quán)放棄消息時(shí),將保存的主機(jī)控制權(quán)請(qǐng)求時(shí)間和主機(jī)優(yōu)先級(jí) 丟棄,然后進(jìn)入對(duì)等狀態(tài)。
從機(jī)可以響應(yīng)本機(jī)用戶的非同步控制操作,并進(jìn)行相應(yīng)的處理。
在從屬狀態(tài)下對(duì)各種消息的處理方法和狀態(tài)轉(zhuǎn)換操作具體可以為
32(1 )收到本機(jī)用戶的同步控制觸發(fā)操作和同步控制操作。 處理不處理,保持在從屬狀態(tài)。
(2) 收到其它計(jì)算機(jī)的控制權(quán)請(qǐng)求消息。
處理將控制權(quán)請(qǐng)求消息的同步控制時(shí)間和優(yōu)先級(jí)參數(shù)與當(dāng)前主機(jī) 的對(duì)應(yīng)參數(shù)進(jìn)行沖突判斷,決定新的主機(jī)并進(jìn)行相應(yīng)的處理,本機(jī)仍為 從屬狀態(tài)。(所述沖突防范處理的方法可以參見(jiàn)前述多計(jì)算機(jī)同步控制實(shí) 施例中方法二和方法三的相關(guān)描述,本發(fā)明在此不贅述。)
(3) 收到其它計(jì)算機(jī)的控制權(quán)放棄消息。
處理丟棄當(dāng)前主機(jī)控制權(quán)請(qǐng)求消息的時(shí)間與主機(jī)的優(yōu)先級(jí),進(jìn)入 對(duì)等狀態(tài)。
(4) 收到其它計(jì)算機(jī)的程序啟動(dòng)消息。
處理給該計(jì)算機(jī)發(fā)送控制權(quán)請(qǐng)求消息,本機(jī)保持從屬狀態(tài)。
(5) 收到其它計(jì)算機(jī)的退出消息。
處理斷開(kāi)與該計(jì)算機(jī)的連接,本機(jī)保持從屬狀態(tài)。 在實(shí)施例中,依據(jù)用戶提交的同步控制操作指令進(jìn)行的3D對(duì)象繪制 可以采用OpenGL繪制的方法實(shí)現(xiàn),OpenGL的英文全稱是"Open Graphics Library",顧名思義,OpenGL便是"開(kāi)放的圖形程序接口 ", OpenGL是由 多家大計(jì)算機(jī)公司共同制定的一種開(kāi)放式三維圖形開(kāi)發(fā)標(biāo)準(zhǔn),是目前較
為完善的三維圖形標(biāo)準(zhǔn)。OpenGL是一個(gè)與硬件無(wú)關(guān)的接口 ,它獨(dú)立于窗 口系統(tǒng)、#:作系統(tǒng)和7哽件系統(tǒng),可以應(yīng)用于多種不同的石更件平臺(tái)。OpenGL 還可應(yīng)用于各種網(wǎng)絡(luò)環(huán)境,在客戶端運(yùn)行和發(fā)布OpenGL命令,在服務(wù) 器端接收并且執(zhí)行命令。OpenGL作為一個(gè)圖形硬件的軟件接口 ,擁有多 個(gè)不同的函數(shù),利用這些函數(shù)可以創(chuàng)建各種二維和三維物體原形并對(duì)物 體進(jìn)行各種操作,包括對(duì)物體形狀的描述、模型變換、視點(diǎn)變換、坐標(biāo) 變換、光效果處理、顏色設(shè)定、紋理支持、裁剪、位圖處理、反走樣及 各種增強(qiáng)效果處理等。
例如, 一種OpenGL的繪制過(guò)程可以包括 步驟E1、針對(duì)所述顯示窗口創(chuàng)建設(shè)備上下文; 步驟E2、依據(jù)所述設(shè)備上下文生成OpenGL渲染上下文; 步驟E3、關(guān)聯(lián)所述OpenGL渲染上下文與設(shè)備上下文;步驟E4、將用戶輸入的指令解析成所述為OpenGL上下文環(huán)境下的 繪制命令;
步驟E5 、根據(jù)所述繪制命令依次完成各個(gè)顯示窗口的繪制。 步驟E6、確定繪制的目標(biāo)顯示窗口,將所述顯示窗口的OpenGL上 下文環(huán)境設(shè)置為當(dāng)前OpenGL上下文環(huán)境;
步驟E7、在當(dāng)前OpenGL上下文環(huán)境執(zhí)行所述繪制命令,完成繪制; 步驟E8、釋放所述OpenGL上下文環(huán)境; 步驟E9、觸發(fā)下一個(gè)繪制的目標(biāo)顯示窗口 (如子窗口)。 即首先獲得設(shè)備上下文,再利用 一個(gè)OpenGL函數(shù)wglCreateContext /人所述設(shè)備上下文生成一個(gè)OpenGL的渲染上下文(Render Context) hGLRC;然后調(diào)用wglMakeCurrent把生成的渲染上下文hGLRC跟設(shè)備 上下文hDC關(guān)聯(lián)起來(lái)。
例如,針對(duì)主窗口和子窗口分別創(chuàng)建OpenGL設(shè)備環(huán)境。其中,主 窗口 OpenGL的顯示處理可以在SDI應(yīng)用程序框架的基礎(chǔ)上實(shí)現(xiàn),主窗 口 OpenGL的初始化處理可以放在SDI視窗類的OnCreate()函數(shù)中進(jìn)行, 包括諸如建立所需的像素格式、得到指定設(shè)備環(huán)境的象素模式索引值, 以及據(jù)此聲明一個(gè)象素模式等處理;然后,通過(guò)wglCreateContext()函數(shù), 依據(jù)本窗口關(guān)Jf關(guān)的"i殳備上下文創(chuàng)建一個(gè)OpenGL的渲染上下文,并用 wglMakeCurrent()函數(shù)把生成的OpenGL渲染上下文跟設(shè)備上下文關(guān)聯(lián)起 來(lái),將主窗口 (主窗口 3D顯示)的上下文環(huán)境設(shè)置為當(dāng)前OpenGL的上 下文環(huán)境。
子窗口的3D顯示則可以通過(guò)將之前創(chuàng)建的無(wú);f莫態(tài)對(duì)話框?qū)?yīng)的窗 口分別與新創(chuàng)建的'OpenGL渲染上下文關(guān)聯(lián)實(shí)現(xiàn)。各子窗口 OpenGL的 初始化過(guò)程與上述主窗口的初始化過(guò)程類似,只是應(yīng)放在各對(duì)話框的 OnCreate()函數(shù)中進(jìn)行。
一旦接收到用戶輸入的指令,如,用戶通過(guò)各種輸入設(shè)備輸入的瀏 覽指令,則將這些指令解析成所述三維顯示上下文環(huán)境下的繪制命令。 例如,用戶在不同瀏覽模式下進(jìn)行鼠標(biāo)移動(dòng)操作,系統(tǒng)接收到用戶的鼠 標(biāo)移動(dòng)指令后,則根據(jù)當(dāng)前瀏覽模式,設(shè)置OpenGL的繪制參數(shù),然后 發(fā)出更新繪制的消息。例如,基于主窗口與子窗口的OpenGL上下文環(huán)境,則主窗口的繪制 可以在OnDraw()函數(shù)中進(jìn)行,子窗口的繪制可以在各自的QnPaint()函數(shù) 中進(jìn)行。每個(gè)窗口的繪制開(kāi)始時(shí),可以先用函數(shù)wglMakeCurrent(Hdc, hrc)使該窗口擁有OpenGL上下文環(huán)境,其中Hdc為當(dāng)前窗口的設(shè)備上下文 句柄,hrc是由函數(shù)wglCreateContext(Hdc)創(chuàng)建的適合本窗口的OpenGL繪 制上下文句柄。在完成本窗口所有的OpenGL繪制后,還可以用函數(shù) wglMakeCurrent(NULL, NULL)釋放OpenGL上下文環(huán)境。
主窗口繪制完成后,則利用SendMessage向第 一個(gè)子窗口發(fā)送繪制消 息,每一個(gè)子窗口收到繪制消息之后,進(jìn)行與主窗口類似的繪制過(guò)程, 子窗口繪制完成后,再向下一個(gè)子窗口發(fā)送繪制消息,以此類推。
最后一個(gè)子窗口繪制完成后,利用SendMessage向主窗口發(fā)送繪制 完成消息。如果此時(shí)繪制過(guò)程沒(méi)有結(jié)束,則由主窗口啟動(dòng)下一輪繪制; 如果繪制過(guò)程結(jié)束,則主窗口不再進(jìn)行新的繪制,系統(tǒng)回到等待接收用 戶指令的狀態(tài)。
當(dāng)然,本領(lǐng)域技術(shù)人員根據(jù)經(jīng)驗(yàn)或需要采用任一種繪制方法都是可 行的,本發(fā)明對(duì)此不需要進(jìn)行限定。
需要說(shuō)明的是,對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其 都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并 不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其 他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說(shuō)明書(shū)中所 描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā) 明所必須的。
參考圖4,示出了本發(fā)明的一種多機(jī)多屏的3D同步顯示系統(tǒng)實(shí)施例 的結(jié)構(gòu)框圖,所述多臺(tái)計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)連接,所述計(jì)算機(jī)的顯示屏包括 主窗口和子窗口,所述的系統(tǒng)可以包括以下單元
運(yùn)行信息表維護(hù)單元401,用于依據(jù)進(jìn)入網(wǎng)絡(luò)連接的計(jì)算機(jī)的啟動(dòng)消 息,在網(wǎng)絡(luò)中連接的各臺(tái)計(jì)算機(jī)上維護(hù)運(yùn)行信息表;
其中,所述啟動(dòng)消息包括3D對(duì)象信息和顯示視角信息;所述運(yùn)行 信息表中包括網(wǎng)絡(luò)中所有計(jì)算機(jī)的IP地址及其運(yùn)行狀態(tài)信息;所述運(yùn)行狀態(tài)信息包括對(duì)等狀態(tài)信息、主控狀態(tài)信息或從屬狀態(tài)信息;
啟動(dòng)單元402,用于在所述網(wǎng)絡(luò)中的計(jì)算機(jī)上分別依據(jù)所述啟動(dòng)消息 加載所述3D對(duì)象,并且,使各臺(tái)計(jì)算機(jī)在其主窗口中分別按照對(duì)應(yīng)的顯 示視角信息繪制所述3D對(duì)象,同時(shí),各臺(tái)計(jì)算機(jī)分別生成子窗口,在子 窗口中繪制網(wǎng)絡(luò)中除本計(jì)算機(jī)外的其它計(jì)算機(jī)的、不同視角的3D對(duì)象;
觸發(fā)指令接收單元403,用于接收用戶在網(wǎng)絡(luò)中任一臺(tái)計(jì)算機(jī)上提交 的3D對(duì)象觸發(fā)指令;
主控狀態(tài)轉(zhuǎn)換單元404,用于在所述接收指令的計(jì)算機(jī)的運(yùn)行狀態(tài)信 息為對(duì)等狀態(tài)信息時(shí),將所述對(duì)等狀態(tài)信息轉(zhuǎn)換為主控狀態(tài)信息,并提 交控制權(quán)請(qǐng)求消息至所述運(yùn)行信息表中記錄的其它計(jì)算機(jī);
從屬狀態(tài)轉(zhuǎn)換單元405,用于在所述其它計(jì)算機(jī)接收所述控制權(quán)請(qǐng)求 消息時(shí),將其運(yùn)行狀態(tài)信息轉(zhuǎn)換為從屬狀態(tài)信息;
操作指令接收單元406,用于接收用戶在所述具有主控狀態(tài)信息的計(jì) 算機(jī)上提交的3D對(duì)象操作指令;
主機(jī)繪制更新單元407 ,用于根據(jù)所述操作指令在當(dāng)前計(jì)算機(jī)的主窗 口和子窗口中分別更新所述3D對(duì)象的繪制;
更新請(qǐng)求單元408,用于依據(jù)所述更新繪制搡作生成相應(yīng)的操作請(qǐng)求 發(fā)送至對(duì)應(yīng)的具有從屬狀態(tài)信息的計(jì)算機(jī);
從機(jī)繪制更新單元409,用于使所述具有從屬狀態(tài)信息的計(jì)算機(jī)依據(jù) 所述操作請(qǐng)求,分別在其對(duì)應(yīng)的主窗口和子窗口中更新所述3D對(duì)象的繪 制。
優(yōu)選的,所述運(yùn)行信息表中還可以包括優(yōu)先級(jí)參數(shù),本實(shí)施例還可 以包括第一優(yōu)先級(jí)判斷單元用于通過(guò)對(duì)比所述接收指令的計(jì)算機(jī)的優(yōu) 先級(jí)參數(shù),選取優(yōu)先級(jí)最高的 一 臺(tái)計(jì)算機(jī)為需要執(zhí)行所述狀態(tài)判斷步驟 的計(jì)算機(jī)。
其中,所述優(yōu)先級(jí)參數(shù)可以根據(jù)網(wǎng)絡(luò)中計(jì)算機(jī)的啟動(dòng)時(shí)間和地址信 息生成。
優(yōu)選的,在本實(shí)施例中,還可以包括以下單元 時(shí)間記錄單元,用于在網(wǎng)絡(luò)中各計(jì)算機(jī)的運(yùn)行信息表中,記錄所述 具有主控狀態(tài)信息的計(jì)算機(jī)發(fā)出控制權(quán)請(qǐng)求消息的時(shí)間;第二優(yōu)先級(jí)判斷單元,用于確定發(fā)出控制權(quán)請(qǐng)求消息的時(shí)間最早的 計(jì)算機(jī),或者,發(fā)出控制權(quán)請(qǐng)求消息的時(shí)間相同且優(yōu)先級(jí)參數(shù)較高的計(jì) 算機(jī),為具有主控狀態(tài)信息的計(jì)算機(jī),將相應(yīng)的其它計(jì)算機(jī)的運(yùn)行狀態(tài) 信息轉(zhuǎn)換為從屬狀態(tài)信息。
以下以一種具體的多機(jī)多屏3D同步顯示操作過(guò)程為例進(jìn)一步說(shuō)明 本發(fā)明。
一、啟動(dòng)處理過(guò)程
1 )啟動(dòng)時(shí)沒(méi)有其它計(jì)算機(jī)已啟動(dòng)的信息保持顯示為空,等待用戶 打開(kāi)3D對(duì)象再按默認(rèn)的視角顯示。
假設(shè)網(wǎng)絡(luò)中有ABC三臺(tái)計(jì)算機(jī)要運(yùn)行本系統(tǒng),每一 臺(tái)計(jì)算機(jī)的顯示 區(qū)域分布右邊占屏幕寬一定比例(如1/5)的區(qū)域?yàn)樽哟翱趨^(qū),用于顯 示系統(tǒng)上已經(jīng)運(yùn)行的計(jì)算機(jī)顯示的屏幕,左邊為本機(jī)的3D顯示區(qū)域。
運(yùn)行本步驟,A計(jì)算機(jī)先運(yùn)行并打開(kāi)一個(gè)3D對(duì)象,沒(méi)有收到其它計(jì) 算機(jī)的運(yùn)行消息,因此子窗口為空,此時(shí),A計(jì)算機(jī)的顯示示意圖如圖5 所示,A計(jì)算機(jī)的主窗口顯示3D對(duì)象的正視圖,沒(méi)有子窗口。。
2) 啟動(dòng)時(shí)收到其它計(jì)算機(jī)的啟動(dòng)消息打開(kāi)啟動(dòng)消息指定的3D對(duì) 象,并按本地默認(rèn)的視角顯示;同時(shí)創(chuàng)建對(duì)應(yīng)于已啟動(dòng)計(jì)算機(jī)的子窗口 , 并在子窗口中按已啟動(dòng)計(jì)算機(jī)的視角顯示3D對(duì)象;如果已啟動(dòng)的計(jì)算機(jī) 沒(méi)有打開(kāi)3D對(duì)象,則保持主顯示窗口和子窗口的顯示為空。
即如果B計(jì)算機(jī)運(yùn)行本系統(tǒng),收到A計(jì)算機(jī)的應(yīng)答消息,自動(dòng)裝入 A打開(kāi)的3D對(duì)象,并按默認(rèn)的視角顯示之,同時(shí)繪制一個(gè)與A計(jì)算機(jī)對(duì) 應(yīng)的子窗口,此時(shí),B計(jì)算機(jī)的顯示示意圖如圖6所示,B計(jì)算機(jī)的主窗 口顯示3D對(duì)象的左側(cè)^L圖,有一個(gè)子窗口顯示A計(jì)算才幾主窗口對(duì)應(yīng)的正 視圖。在這種情況下,A收到B的啟動(dòng)消息,按該消息繪制一個(gè)與B計(jì) 算機(jī)對(duì)應(yīng)的子窗口,此時(shí),A計(jì)算機(jī)的顯示示意圖如圖7所示,A計(jì)算機(jī) 的主窗口顯示3D對(duì)象的正^L圖,有一個(gè)子窗口顯示B計(jì)算才幾主窗口對(duì)應(yīng) 的左側(cè)視圖。從圖中可以看出,A計(jì)算機(jī)和B計(jì)算機(jī)各自的子窗口為一 個(gè),每臺(tái)計(jì)算機(jī)上的3D顯示視角是不同的。
3) 啟動(dòng)后收到其它計(jì)算機(jī)的啟動(dòng)信息從該計(jì)算機(jī)的啟動(dòng)信息中獲得其視角,創(chuàng)建新的子窗口。如果系統(tǒng)已打開(kāi)3D對(duì)象,則在該子窗口按 該計(jì)算機(jī)的視角顯示3D對(duì)象;否則保持子窗口的顯示為空。
基于上述A、 B計(jì)算機(jī)已啟動(dòng)的情形,如果還有C計(jì)算機(jī)啟動(dòng)運(yùn)行 本系統(tǒng),則C計(jì)算機(jī)同樣載入相應(yīng)的3D對(duì)象,并按本地默認(rèn)的視角顯示; 同時(shí)創(chuàng)建對(duì)應(yīng)于A、 B計(jì)算機(jī)的兩個(gè)子窗口,并在子窗口中分別按A、 B 計(jì)算機(jī)的視角顯示3D對(duì)象,此時(shí),C計(jì)算機(jī)的顯示示意圖如圖8所示, C計(jì)算機(jī)的主窗口顯示3D對(duì)象的后^L圖,有兩個(gè)子窗口,第一個(gè)子窗口 顯示A計(jì)算機(jī)主窗口對(duì)應(yīng)的正視圖,第二個(gè)子窗口顯示B計(jì)算機(jī)主窗口 對(duì)應(yīng)的左側(cè)^L圖;同時(shí),A、 B計(jì)算機(jī)分別針創(chuàng)建對(duì)應(yīng)該C計(jì)算機(jī)的顯示 視角的子窗口,此時(shí),A計(jì)算機(jī)的顯示示意圖如圖9所示,A計(jì)算機(jī)的主 窗口顯示3D對(duì)象的正視圖,有兩個(gè)子窗口,第一個(gè)子窗口顯示B計(jì)算機(jī) 主窗口對(duì)應(yīng)的左側(cè)視圖,第二個(gè)子窗口顯示C計(jì)算機(jī)主窗口對(duì)應(yīng)的后視 圖;B計(jì)算^L的顯示示意圖如圖IO所示,B計(jì)算^/L的主窗口顯示3D對(duì) 象的左側(cè)視圖,有兩個(gè)子窗口,第一個(gè)子窗口顯示A計(jì)算機(jī)主窗口對(duì)應(yīng) 的正視圖,第二個(gè)子窗口顯示C計(jì)算機(jī)主窗口對(duì)應(yīng)的后視圖。
二、 對(duì)等機(jī)繪制過(guò)程
1 )收到本地用戶的同步控制觸發(fā)操作本機(jī)進(jìn)入主機(jī)狀態(tài),向其它 計(jì)算機(jī)發(fā)送同步控制觸發(fā)指令。
2)收到其它計(jì)算機(jī)的同步控制觸發(fā)指令本機(jī)進(jìn)入從機(jī)狀態(tài)。
三、 主機(jī)繪制過(guò)程
1 )收到本地用戶的同步控制啟動(dòng)操作忽略該操作。(之前的同步 控制啟動(dòng)操作已經(jīng)向其它計(jì)算機(jī)發(fā)送了同步控制觸發(fā)指令,且本機(jī)已進(jìn) 入主機(jī)狀態(tài),其它計(jì)算機(jī)已進(jìn)入從機(jī)狀態(tài)。)
2)收到本地用戶的同步控制操作按同步控制操作的變換設(shè)置 OpenGL的顯示參數(shù),更新OpenGL的3D顯示,并按本次變換操作的參 數(shù)生成同步控制指令,發(fā)送給系統(tǒng)中的其它計(jì)算機(jī)。
四、 /人才幾纟會(huì)制過(guò)程
1 )收到本地用戶的同步控制啟動(dòng)操作忽略該操作并提醒用戶,當(dāng) 前不能進(jìn)行同步操作。
2)收到本地用戶的同步控制操作忽略該操作并提醒用戶,當(dāng)前不能進(jìn)行同步操作。
3)收到當(dāng)前主機(jī)的同步控制指令按指令所含的控制方式和控制參
數(shù)及本地顯示視角設(shè)置OpneGL的顯示參數(shù),更新OpenGL的顯示;或 打開(kāi)指令指定的3D對(duì)象數(shù)據(jù)再按指定的參數(shù)和本地視角顯示。
例如,假設(shè)A計(jì)算機(jī)作為主機(jī)控制3D對(duì)象向前旋轉(zhuǎn)一個(gè)角度,B計(jì) 算機(jī)和C計(jì)算機(jī)作為從機(jī)按同 一個(gè)方向和角度對(duì)3D對(duì)象進(jìn)行旋轉(zhuǎn),此時(shí), A計(jì)算機(jī)的顯示示意圖如圖ll所示,A計(jì)算機(jī)的主窗口顯示向前旋轉(zhuǎn)的 3D對(duì)象的正頂-現(xiàn)圖,有兩個(gè)子窗口,第一個(gè)子窗口顯示B計(jì)算機(jī)主窗口 對(duì)應(yīng)的順時(shí)針旋轉(zhuǎn)的3D對(duì)象的左側(cè)視圖,第二個(gè)子窗口顯示C計(jì)算機(jī)主 窗口對(duì)應(yīng)的向前旋轉(zhuǎn)的3D對(duì)象的后底視圖。
B計(jì)算機(jī)的顯示示意圖如圖12所示,B計(jì)算機(jī)的主窗口顯示順時(shí)針 旋轉(zhuǎn)的3D對(duì)象的左側(cè)視圖,有兩個(gè)子窗口,第一個(gè)子窗口顯示A計(jì)算機(jī) 主窗口對(duì)應(yīng)的向前旋轉(zhuǎn)的3D對(duì)象的正頂視圖,第二個(gè)子窗口顯示C計(jì)算 機(jī)主窗口對(duì)應(yīng)的向前旋轉(zhuǎn)的3D對(duì)象的后底視圖。
C計(jì)算機(jī)的顯示示意圖如圖13所示,C計(jì)算機(jī)的主窗口顯示向前旋 轉(zhuǎn)的3D對(duì)象的后底視圖,有兩個(gè)子窗口,第一個(gè)子窗口顯示A計(jì)算機(jī)主 窗口對(duì)應(yīng)的向前旋轉(zhuǎn)的3D對(duì)象的正視圖,第二個(gè)子窗口顯示B計(jì)算機(jī)主 窗口對(duì)應(yīng)的順時(shí)針旋轉(zhuǎn)的3D對(duì)象的左側(cè)視圖。
可以理解的是,已經(jīng)啟動(dòng)的任一 臺(tái)運(yùn)行本系統(tǒng)的計(jì)算機(jī)退出程序, 則其它計(jì)算機(jī)與之對(duì)應(yīng)的子窗口將消失。
假設(shè)上述A計(jì)算機(jī)退出本系統(tǒng),則B計(jì)算機(jī)的顯示示意圖如圖14 所示,B計(jì)算機(jī)的主窗口顯示順時(shí)針旋轉(zhuǎn)的3D對(duì)象的左側(cè)視圖,有一個(gè) 子窗口,顯示C計(jì)算^L主窗口對(duì)應(yīng)的向前旋轉(zhuǎn)的3D對(duì)象的后底^L圖。C 計(jì)算機(jī)的顯示示意圖如圖15所示,C計(jì)算機(jī)的主窗口顯示向前旋轉(zhuǎn)的3D 對(duì)象的后底視圖,有一個(gè)子窗口,顯示B計(jì)算機(jī)主窗口對(duì)應(yīng)的順時(shí)針旋 轉(zhuǎn)的3D對(duì)象的左側(cè)視圖。
如果此時(shí)B計(jì)算才幾也退出本系統(tǒng),則C計(jì)算^L的顯示示意圖如圖16 所示,C計(jì)算機(jī)的主窗口顯示向前旋轉(zhuǎn)的3D對(duì)象的后底視圖,沒(méi)有子窗 cr 。
其中,OpenGL的繪制過(guò)程具體可以包括步驟F1、創(chuàng)建OpenGL顯示設(shè)備并和當(dāng)前顯示窗口關(guān)聯(lián)。如果有子 窗口存在,還要為每一個(gè)子窗口創(chuàng)建OpenGL顯示設(shè)備并與之關(guān)聯(lián)。
步驟F2、按繪制需要,設(shè)置各窗口的OpenGL的繪制參數(shù)。包括 視點(diǎn)位置(X, Y位置將影響3D對(duì)象的平移;Z位置將影響3D對(duì)象的 放大和縮小)、視角方向(將影響3D對(duì)象的觀察視角)、變換矩陣(將影 響3D對(duì)象的旋轉(zhuǎn))、顯示模式(將決定3D對(duì)象按線模式還是面模式顯示)、 光照設(shè)置等。
步驟F3、調(diào)用指定窗口的Invalidate ()函數(shù)觸發(fā)顯示的更新。 步驟F4、在指定窗口的OnDraw ()或OnPaint ()消息響應(yīng)函數(shù)中 進(jìn)行如下處理
A、 用wglMakeCurrent(m_pDC->GetSafeHdc(), hrc)將對(duì)應(yīng)的OpenGL 上下文環(huán)境設(shè)置為當(dāng)前環(huán)境。
B、 進(jìn)行OpenGL的顯示設(shè)置并用Show3DS();完成OpenGL對(duì)3DS
對(duì)象的繪制處理
其中,包括對(duì)glPushMatrix() 、 glLoadldentity() 、 gluLookAt()、 glMultMatrixf()、其它OpenGL的各種繪制函數(shù)和glPopMatrix()的調(diào)用。
C、 用SwapBuffers(wglGetCurrentDC())交換前后臺(tái)顯示緩沖區(qū)。
D、 用wglMakeCurrent(NULL, NULL)釋放OpenGL上下文設(shè)備環(huán)境。 對(duì)于系統(tǒng)實(shí)施例而言,由于其基本相應(yīng)于方法實(shí)施例,所以描述的
比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。
最后,還需要說(shuō)明的是,在本文中,諸如第一和第二等之類的關(guān)系 術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不 一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順 序。而且,術(shù)語(yǔ)"包括"、"包含"或者其任何其他變體意在涵蓋非排他性的 包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括 那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種 過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下, 由語(yǔ)句"包括一個(gè)......"限定的要素,并不排除在包括所述要素的過(guò)程、方
法、物品或者設(shè)備中還存在另外的相同要素。
以上對(duì)本發(fā)明所提供的 一種多計(jì)算機(jī)的同步控制方法、 一種多計(jì)算機(jī)的同步控制系統(tǒng)、 一種多機(jī)多屏的3D同步顯示方法及一種多機(jī)多屏的 3D同步顯示系統(tǒng)進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原 理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明 的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明 的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本 說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1、一種多計(jì)算機(jī)的同步控制方法,其特征在于,所述多臺(tái)計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)連接,所述的方法包括在網(wǎng)絡(luò)中的各臺(tái)計(jì)算機(jī)上維護(hù)運(yùn)行信息表,所述運(yùn)行信息表中包括網(wǎng)絡(luò)中所有計(jì)算機(jī)的標(biāo)識(shí)信息、以及對(duì)應(yīng)計(jì)算機(jī)的運(yùn)行狀態(tài)信息;接收用戶在網(wǎng)絡(luò)中任一臺(tái)計(jì)算機(jī)上輸入的同步控制指令;在所述接收指令的計(jì)算機(jī)的運(yùn)行狀態(tài)信息符合預(yù)置規(guī)則時(shí),對(duì)所述運(yùn)行信息表中記錄的計(jì)算機(jī)上執(zhí)行所述同步控制操作。
2、 如權(quán)利要求l所述的方法,其特征在于,所述運(yùn)行狀態(tài)信息包括對(duì) 等狀態(tài)信息、主控狀態(tài)信息或從屬狀態(tài)信息。
3、 如權(quán)利要求2所述的方法,其特征在于,所述同步控制指令為同步 控制觸發(fā)指令,所述執(zhí)行同步控制的步驟包括依據(jù)所述同步控制觸發(fā)指令判斷所述接收指令的計(jì)算機(jī)的運(yùn)行狀態(tài)信 息是否為對(duì)等狀態(tài)信息;若是,則將所述對(duì)等狀態(tài)信息轉(zhuǎn)換為主控狀態(tài)信息,并提交控制權(quán)請(qǐng) 求消息至所述運(yùn)行信息表中記錄的其它計(jì)算機(jī);所述其它計(jì)算機(jī)接收所述控制權(quán)請(qǐng)求消息,將其運(yùn)行狀態(tài)信息轉(zhuǎn)換為 從屬狀態(tài)信息。
4、 如權(quán)利要求3所述的方法,其特征在于,所述運(yùn)行信息表中還包括 優(yōu)先級(jí)參數(shù),所述執(zhí)行同步控制的步驟還包括通過(guò)對(duì)比所述接收指令的計(jì)算機(jī)的優(yōu)先級(jí)參數(shù),選取優(yōu)先級(jí)最高的一 臺(tái)計(jì)算機(jī)為需要執(zhí)行所述狀態(tài)判斷步驟的計(jì)算機(jī)。
5、 如權(quán)利要求4所述的方法,其特征在于,所述優(yōu)先級(jí)參數(shù)根據(jù)網(wǎng)絡(luò) 中計(jì)算機(jī)的啟動(dòng)時(shí)間和地址信息生成。
6、 如權(quán)利要求5所述的方法,其特征在于,所述執(zhí)行同步控制的步驟 還包括在網(wǎng)絡(luò)中各計(jì)算機(jī)的運(yùn)行信息表中,記錄所述具有主控狀態(tài)信息的計(jì) 算機(jī)發(fā)出控制權(quán)請(qǐng)求消息的時(shí)間;確定發(fā)出控制權(quán)請(qǐng)求消息的時(shí)間最早的計(jì)算機(jī),或者,發(fā)出控制權(quán)請(qǐng)求消息的時(shí)間相同且優(yōu)先級(jí)參數(shù)較高的計(jì)算機(jī),為具有主控狀態(tài)信息的計(jì) 算機(jī),將相應(yīng)的其它計(jì)算機(jī)的運(yùn)行狀態(tài)信息轉(zhuǎn)換為從屬狀態(tài)信息。
7、 如權(quán)利要求3—6中任一項(xiàng)權(quán)利要求所述的方法,其特征在于,所 述同步控制指令為同步控制操作指令,所述執(zhí)行同步控制的步驟還包括 依 據(jù) 所 述 同 步 控 制操作指令判斷所述接收指令的計(jì)算機(jī)的運(yùn)行狀態(tài)信息是否為主控狀態(tài)信息;若是,則在所述具有主控狀態(tài)信息的計(jì)算機(jī)上執(zhí)行所述指令,并生成 相應(yīng)的控制操作請(qǐng)求發(fā)送至對(duì)應(yīng)的具有從屬狀態(tài)信息的計(jì)算機(jī);所述具有從屬狀態(tài)信息的計(jì)算機(jī)依據(jù)所述控制操作請(qǐng)求執(zhí)行相應(yīng)的操作。
8、 如權(quán)利要求7所述的方法,其特征在于,還包括 若所述具有主控狀態(tài)信息的計(jì)算機(jī)在預(yù)設(shè)的時(shí)間閾值內(nèi)未接收到同步控制指令,則將所述計(jì)算機(jī)的主控狀態(tài)信息轉(zhuǎn)換為對(duì)等狀態(tài)信息,并發(fā)送 控制權(quán)放棄消息至所述運(yùn)行信息表中記錄的具有從屬狀態(tài)信息的計(jì)算機(jī);所述具有從屬狀態(tài)信息的計(jì)算機(jī)依據(jù)所述控制權(quán)放棄消息,轉(zhuǎn)換其運(yùn) 行狀態(tài)信息為對(duì)等狀態(tài)信息。
9、 一種多計(jì)算機(jī)的同步控制系統(tǒng),其特征在于,所述多臺(tái)計(jì)算機(jī)通過(guò) 網(wǎng)絡(luò)連接,所述的系統(tǒng)包括運(yùn)行信息表維護(hù)模塊,用于在網(wǎng)絡(luò)中的各臺(tái)計(jì)算機(jī)上維護(hù)運(yùn)行信息表, 所述運(yùn)行信息表中包括網(wǎng)絡(luò)中所有計(jì)算機(jī)的標(biāo)識(shí)信息、以及對(duì)應(yīng)計(jì)算機(jī) 的運(yùn)行狀態(tài)信息;指令接收處理模塊,用于接收用戶在網(wǎng)絡(luò)中任一 臺(tái)計(jì)算機(jī)上輸入的同 步控制指令;同步控制操作模塊,用于在所述接收指令的計(jì)算機(jī)的運(yùn)行狀態(tài)信息符 合預(yù)置規(guī)則時(shí),對(duì)所述運(yùn)行信息表中記錄的計(jì)算機(jī)上執(zhí)行所述同步控制操 作。
10、 如權(quán)利要求9所述的系統(tǒng),其特征在于,所述運(yùn)行狀態(tài)信息包括 對(duì)等狀態(tài)信息、主控狀態(tài)信息或從屬狀態(tài)信息。
11、 如權(quán)利要求IO所述的系統(tǒng),其特征在于,所述同步控制指令為同步控制觸發(fā)指令,所述同步控制操作模塊包括對(duì)等狀態(tài)判斷子模塊,用于依據(jù)所述同步控制觸發(fā)指令判斷所述接收 指令的計(jì)算機(jī)的運(yùn)行狀態(tài)信息是否為對(duì)等狀態(tài)信息;若是,則觸發(fā)主控狀態(tài)轉(zhuǎn)換子模塊;主控狀態(tài)轉(zhuǎn)換子模塊,用于將所述對(duì)等狀態(tài)信息轉(zhuǎn)換為主控狀態(tài)信息, 并提交控制權(quán)請(qǐng)求消息至所述運(yùn)行信息表中記錄的其它計(jì)算機(jī);從屬狀態(tài)轉(zhuǎn)換子模塊,用于所述其它計(jì)算機(jī)接收所述控制權(quán)請(qǐng)求消息, 將其運(yùn)行狀態(tài)信息轉(zhuǎn)換為從屬狀態(tài)信息。
12、 如權(quán)利要求11所述的系統(tǒng),其特征在于,所述運(yùn)行信息表中還包 括優(yōu)先級(jí)參數(shù),所述同步控制操作模塊還包括第 一優(yōu)先級(jí)判斷子模塊,用于對(duì)比所述接收指令的計(jì)算機(jī)的優(yōu)先級(jí)參 數(shù),選取優(yōu)先級(jí)最高的一臺(tái)計(jì)算機(jī)為需要執(zhí)行所述狀態(tài)判斷步驟的計(jì)算機(jī)。
13、 如權(quán)利要求11所述的系統(tǒng),其特征在于,所述同步控制操作模塊 還包括時(shí)間記錄子模塊,用于在網(wǎng)絡(luò)中各計(jì)算機(jī)的運(yùn)行信息表中,記錄所述 具有主控狀態(tài)信息的計(jì)算機(jī)發(fā)出控制權(quán)請(qǐng)求消息的時(shí)間;第二優(yōu)先級(jí)判斷子模塊,用于確定發(fā)出控制權(quán)請(qǐng)求消息的時(shí)間最早的 計(jì)算機(jī),或者,發(fā)出控制權(quán)請(qǐng)求消息的時(shí)間相同且優(yōu)先級(jí)參數(shù)較高的計(jì)算 機(jī),為具有主控狀態(tài)信息的計(jì)算機(jī),將相應(yīng)的其它計(jì)算機(jī)的運(yùn)行狀態(tài)信息 轉(zhuǎn)換為從屬狀態(tài)信息。
14、 如權(quán)利要求9一13中任一項(xiàng)權(quán)利要求所述的系統(tǒng),其特征在于, 所述同步控制指令為同步控制操作指令,所述同步控制操作模塊還包括主控狀態(tài)判斷子模塊,用于依據(jù)所述同步控制操作指令判斷所述接收 指令的計(jì)算機(jī)的運(yùn)行狀態(tài)信息是否為主控狀態(tài)信息;若是,則觸發(fā)本機(jī)執(zhí) 行發(fā)送子模塊;本機(jī)執(zhí)行發(fā)送子模塊,用于在所述具有主控狀態(tài)信息的計(jì)算機(jī)上執(zhí)行 所述指令,并生成相應(yīng)的控制操作請(qǐng)求發(fā)送至對(duì)應(yīng)的具有從屬狀態(tài)信息的 計(jì)算機(jī);同步操作子模塊,用于使所述具有從屬狀態(tài)信息的計(jì)算機(jī)依據(jù)所述控制操作請(qǐng)求執(zhí)行相應(yīng)的操作。
15、 如權(quán)利要求14所述的系統(tǒng),其特征在于,還包括狀態(tài)更新模塊,用于在所述具有主控狀態(tài)信息的計(jì)算機(jī)在預(yù)設(shè)的時(shí)間 閾值內(nèi)未接收到同步控制指令時(shí),將所述計(jì)算機(jī)的主控狀態(tài)信息轉(zhuǎn)換為對(duì) 等狀態(tài)信息,并發(fā)送控制權(quán)放棄消息至所述運(yùn)行信息表中記錄的具有從屬 狀態(tài)信息的計(jì)算機(jī);并使所述具有從屬狀態(tài)信息的計(jì)算機(jī)依據(jù)所述控制權(quán) 放棄消息,轉(zhuǎn)換其運(yùn)行狀態(tài)信息為對(duì)等狀態(tài)信息。
16、 一種多機(jī)多屏的3D同步顯示方法,其特征在于,所述多臺(tái)計(jì)算機(jī) 通過(guò)網(wǎng)絡(luò)連接,所述計(jì)算機(jī)的顯示屏包括主窗口和子窗口 ,所述的方法包 括依據(jù)進(jìn)入網(wǎng)絡(luò)連接的計(jì)算機(jī)的啟動(dòng)消息,在網(wǎng)絡(luò)中連接的各臺(tái)計(jì)算機(jī) 上維護(hù)運(yùn)行信息表;所述啟動(dòng)消息包括3D對(duì)象信息和顯示視角信息;所 述運(yùn)行信息表中包括網(wǎng)絡(luò)中所有計(jì)算機(jī)的IP地址及其運(yùn)行狀態(tài)信息;所 述運(yùn)行狀態(tài)信息包括對(duì)等狀態(tài)信息、主控狀態(tài)信息或從屬狀態(tài)信息;所述網(wǎng)絡(luò)中的計(jì)算機(jī)上分別依據(jù)所述啟動(dòng)消息加載所述3D對(duì)象,并 且,各臺(tái)計(jì)算機(jī)在其主窗口中分別按照對(duì)應(yīng)的顯示視角信息繪制所述3D對(duì) 象,同時(shí),各臺(tái)計(jì)算機(jī)分別生成子窗口 ,在子窗口中繪制網(wǎng)絡(luò)中除本計(jì)算 機(jī)外的其它計(jì)算機(jī)的、不同視角的3D對(duì)象;接收用戶在網(wǎng)絡(luò)中任一臺(tái)計(jì)算機(jī)上提交的3D對(duì)象觸發(fā)指令;若所述接收指令的計(jì)算機(jī)的運(yùn)行狀態(tài)信息為對(duì)等狀態(tài)信息,則將所述 對(duì)等狀態(tài)信息轉(zhuǎn)換為主控狀態(tài)信息,并提交控制權(quán)請(qǐng)求消息至所述運(yùn)行信 息表中記錄的其它計(jì)算機(jī);所述其它計(jì)算機(jī)接收所述控制權(quán)請(qǐng)求消息,將其運(yùn)行狀態(tài)信息轉(zhuǎn)換為 從屬狀態(tài)信息;接收用戶在所述具有主控狀態(tài)信息的計(jì)算機(jī)上提交的3D對(duì)象操作指 令,并根據(jù)所述指令在當(dāng)前計(jì)算機(jī)的主窗口和子窗口中分別更新所述3D對(duì) 象的繪制;依據(jù)所述更新繪制操作生成相應(yīng)的操作請(qǐng)求發(fā)送至對(duì)應(yīng)的具有從屬狀 態(tài)信息的計(jì)算機(jī),所述具有從屬狀態(tài)信息的計(jì)算機(jī)依據(jù)所述操作請(qǐng)求,分別在其對(duì)應(yīng)的主窗口和子窗口中更新所述3D對(duì)象的繪制。
17、 如權(quán)利要求16所述的方法,其特征在于,所述運(yùn)行信息表中還包 括優(yōu)先級(jí)參數(shù),所述的方法還包括通過(guò)對(duì)比所述接收指令的計(jì)算機(jī)的優(yōu)先級(jí)參數(shù),選取優(yōu)先級(jí)最高的一 臺(tái)計(jì)算機(jī)為需要執(zhí)行所述狀態(tài)判斷步驟的計(jì)算機(jī)。
18、 如權(quán)利要求17所述的方法,其特征在于,所述優(yōu)先級(jí)參數(shù)根據(jù)網(wǎng) 絡(luò)中計(jì)算的啟動(dòng)時(shí)間和地址信息生成。
19、 如權(quán)利要求18所述的方法,其特征在于,還包括 在網(wǎng)絡(luò)中各計(jì)算機(jī)的運(yùn)行信息表中,記錄所述具有主控狀態(tài)信息的計(jì)算機(jī)發(fā)出控制權(quán)請(qǐng)求消息的時(shí)間;確定發(fā)出控制權(quán)請(qǐng)求消息的時(shí)間最早的計(jì)算機(jī),或者,發(fā)出控制權(quán)請(qǐng) 求消息的時(shí)間相同且優(yōu)先級(jí)參數(shù)較高的計(jì)算機(jī),為具有主控狀態(tài)信息的計(jì) 算機(jī),將相應(yīng)的其它計(jì)算機(jī)的運(yùn)行狀態(tài)信息轉(zhuǎn)換為從屬狀態(tài)信息。
20、 一種多機(jī)多屏的3D同步顯示系統(tǒng),其特征在于,所述多臺(tái)計(jì)算機(jī) 通過(guò)網(wǎng)絡(luò)連接,所述計(jì)算機(jī)的顯示屏包括主窗口和子窗口 ,所述的系統(tǒng)包 括運(yùn)行信息表維護(hù)單元,用于依據(jù)進(jìn)入網(wǎng)絡(luò)連接的計(jì)算機(jī)的啟動(dòng)消息, 在網(wǎng)絡(luò)中連接的各臺(tái)計(jì)算機(jī)上維護(hù)運(yùn)行信息表;所述啟動(dòng)消息包括3D對(duì) 象信息和顯示視角信息;所述運(yùn)行信息表中包括網(wǎng)絡(luò)中所有計(jì)算機(jī)的IP 地址及其運(yùn)行狀態(tài)信息;所述運(yùn)行狀態(tài)信息包括對(duì)等狀態(tài)信息、主控狀態(tài) 信息或從屬狀態(tài)信息;啟動(dòng)單元,用于在所述網(wǎng)絡(luò)中的計(jì)算機(jī)上分別依據(jù)所述啟動(dòng)消息加載 所述3D對(duì)象,并且,使各臺(tái)計(jì)算機(jī)在其主窗口中分別按照對(duì)應(yīng)的顯示視角 信息繪制所述3D對(duì)象,同時(shí),各臺(tái)計(jì)算機(jī)分別生成子窗口 ,在子窗口中繪 制網(wǎng)絡(luò)中除本計(jì)算機(jī)外的其它計(jì)算機(jī)的、不同視角的3D對(duì)象;觸發(fā)指令接收單元,用于接收用戶在網(wǎng)絡(luò)中任一臺(tái)計(jì)算機(jī)上提交的3D 對(duì)象觸發(fā)指令;主控狀態(tài)轉(zhuǎn)換單元,用于在所述接收指令的計(jì)算機(jī)的運(yùn)行狀態(tài)信息為 對(duì)等狀態(tài)信息時(shí),將所述對(duì)等狀態(tài)信息轉(zhuǎn)換為主控狀態(tài)信息,并提交控制權(quán)請(qǐng)求消息至所述運(yùn)行信息表中記錄的其它計(jì)算機(jī);從屬狀態(tài)轉(zhuǎn)換單元,用于在所述其它計(jì)算機(jī)接收所述控制權(quán)請(qǐng)求消息時(shí),將其運(yùn)行狀態(tài)信息轉(zhuǎn)換為從屬狀態(tài)信息;操作指令接收單元,用于接收用戶在所述具有主控狀態(tài)信息的計(jì)算機(jī) 上提交的3D對(duì)象操作指令;主機(jī)繪制更新單元,用于根據(jù)所述操作指令在當(dāng)前計(jì)算機(jī)的主窗口和 子窗口中分別更新所述3D對(duì)象的繪制;更新請(qǐng)求單元,用于依據(jù)所述更新繪制操作生成相應(yīng)的操作請(qǐng)求發(fā)送 至對(duì)應(yīng)的具有從屬狀態(tài)信息的計(jì)算機(jī);從機(jī)繪制更新單元,用于使所述具有從屬狀態(tài)信息的計(jì)算機(jī)依據(jù)所述 操作請(qǐng)求,分別在其對(duì)應(yīng)的主窗口和子窗口中更新所述3D對(duì)象的繪制。
全文摘要
本發(fā)明提供了一種多計(jì)算機(jī)的同步控制方法,所述多臺(tái)計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)連接,所述的方法包括在網(wǎng)絡(luò)中的各臺(tái)計(jì)算機(jī)上維護(hù)運(yùn)行信息表,所述運(yùn)行信息表中包括網(wǎng)絡(luò)中所有計(jì)算機(jī)的標(biāo)識(shí)信息、以及對(duì)應(yīng)計(jì)算機(jī)的運(yùn)行狀態(tài)信息;接收用戶在網(wǎng)絡(luò)中任一臺(tái)計(jì)算機(jī)上輸入的同步控制指令;在所述接收指令的計(jì)算機(jī)的運(yùn)行狀態(tài)信息符合預(yù)置規(guī)則時(shí),對(duì)所述運(yùn)行信息表中記錄的計(jì)算機(jī)上執(zhí)行所述同步控制操作。本發(fā)明以在減少系統(tǒng)開(kāi)銷和資源浪費(fèi)、降低成本的基礎(chǔ)上,簡(jiǎn)單、高效地實(shí)現(xiàn)多計(jì)算機(jī)的同步控制,并使用戶獲得更好的使用體驗(yàn)。
文檔編號(hào)H04L12/26GK101291251SQ20081010625
公開(kāi)日2008年10月22日 申請(qǐng)日期2008年5月9日 優(yōu)先權(quán)日2008年5月9日
發(fā)明者劉建明, 胡平平, 峰 趙 申請(qǐng)人:國(guó)網(wǎng)信息通信有限公司