專利名稱:一種基于瀏覽器的遠(yuǎn)程控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及遠(yuǎn)端設(shè)備控制領(lǐng)域,尤其涉及一種基于瀏覽器的遠(yuǎn)程控制方法。
背景技術(shù):
以往開發(fā)遠(yuǎn)程設(shè)備操作或?qū)崟r(shí)數(shù)據(jù)采集系統(tǒng)時(shí),大多采用C/S (client/ server)結(jié)構(gòu)開發(fā)軟件。C/S是編程的一種模式客戶端加上服務(wù)器。客戶端直接 和服務(wù)器建立網(wǎng)絡(luò)連接,向服務(wù)器發(fā)送命令,接收返回結(jié)果并顯示。而現(xiàn)在軟 件開發(fā)逐漸向B/S (browser / server)結(jié)構(gòu)演變。B/S結(jié)構(gòu)的軟件系統(tǒng)減少了在客 戶端安裝軟件的麻煩。
但是在B/S結(jié)構(gòu)的軟件中,尤其是異步的,長(zhǎng)時(shí)間的操作,^艮難做好服務(wù) 器端執(zhí)行狀態(tài)和客戶端顯示界面的同步。B/S結(jié)構(gòu)的軟件系統(tǒng)是基于無(wú)狀態(tài)和 非連接的,服務(wù)器端命令的執(zhí)行狀態(tài)無(wú)法推送到客戶端顯示。另外服務(wù)器端連 續(xù)采集獲取的數(shù)據(jù)也無(wú)法持續(xù)推送到客戶端。這種時(shí)候只能通過(guò)刷新頁(yè)面的方 法重新向服務(wù)器端請(qǐng)求數(shù)據(jù),并重新生成顯示頁(yè)面。這樣做的一個(gè)問(wèn)題是頁(yè)面 刷新閃爍比較頻繁,而且要保持頁(yè)面當(dāng)前狀態(tài)也比較困難。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例的目的在于提供一種基于瀏覽器的遠(yuǎn)程控制方法,旨在通過(guò) 使用同步或異步請(qǐng)求技術(shù),在后臺(tái)向服務(wù)器提起數(shù)據(jù)請(qǐng)求,完成操作命令,或 者獲得服務(wù)器連續(xù)返回的數(shù)據(jù)。
本發(fā)明實(shí)施是這樣實(shí)現(xiàn)的, 一種基于瀏覽器的遠(yuǎn)程控制方法,所述方法包 括下述步驟服務(wù)器接收從客戶端的瀏覽器發(fā)出的操作命令,所述操作命令在 JavaScript中生成一個(gè)Ajax對(duì)象;服務(wù)器在接收到操作命令后,將命令發(fā)到遠(yuǎn)方設(shè)備;及服務(wù)器將遠(yuǎn)方設(shè)備返回的執(zhí)行結(jié)果組織成一個(gè)執(zhí)行結(jié)果對(duì)象,以
JSON格式將該對(duì)象返回到客戶端。
本發(fā)明實(shí)施還提供一種基于瀏覽器的異步遠(yuǎn)程控制方法,其特征在于,所
述方法包括下述步驟服務(wù)器接收到命令請(qǐng)求后,生成命令對(duì)象,并放入待執(zhí) 行命令隊(duì)列;定時(shí)檢測(cè)待執(zhí)行隊(duì)列中是否有命令,如有就逐個(gè)取出來(lái)執(zhí)行,執(zhí) 行完畢把執(zhí)行結(jié)果生成結(jié)果對(duì)象,放入執(zhí)行完畢數(shù)據(jù)結(jié)果對(duì)象隊(duì)列;服務(wù)器接 收客戶端的Ajax查詢對(duì)象,檢索結(jié)果對(duì)象隊(duì)列,如果該隊(duì)列中有結(jié)果對(duì)象,則 將對(duì)象取出,按JSON格式發(fā)送給客戶端。
本發(fā)明實(shí)施例結(jié)合使用了 Ajax, JSON等web開發(fā)領(lǐng)域的最新技術(shù),為開 發(fā)web樣式的實(shí)時(shí)控制系統(tǒng)或數(shù)據(jù)監(jiān)測(cè)系統(tǒng)提供了新的開發(fā)方法。該方法簡(jiǎn)單 有效,能極大地簡(jiǎn)化程序流程,減少服務(wù)器負(fù)擔(dān),減少網(wǎng)絡(luò)流量負(fù)載,并很好 地改善客戶操作體驗(yàn)和界面顯示效果。
圖1示出了本發(fā)明實(shí)施例基于瀏覽齊的遠(yuǎn)程控制方法的執(zhí)行一個(gè)同步命令 時(shí)的架構(gòu)示意圖2示出了本發(fā)明實(shí)施例基于瀏覽齊的遠(yuǎn)程控制方法的定時(shí)執(zhí)行異步命令 刷新數(shù)據(jù)的架構(gòu)示意圖3示出了本發(fā)明實(shí)施例基于瀏覽齊的遠(yuǎn)程控制方法的執(zhí)行批量異步命令 時(shí)的架構(gòu)示意圖。
具體實(shí)施例方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí) 施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅 僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
在對(duì)本發(fā)明實(shí)施例進(jìn)行闡述之前,對(duì)本發(fā)明實(shí)施例所涉及的概念進(jìn)行介紹JavaScript: Javascript就是一種嵌入到網(wǎng)頁(yè)Html代碼中的,可在瀏覽器客 戶端運(yùn)行的一種用于開發(fā)動(dòng)態(tài)網(wǎng)頁(yè)的編程語(yǔ)言。
xmlHttpRequest:可在JavaScript中創(chuàng)建的客戶端ActiceX對(duì)象,使用該對(duì) 象可向服務(wù)器發(fā)起請(qǐng)求,獲取數(shù)據(jù)。
Ajax: 是Asynchronous JavaScript and XML (異步JavaScript和XML)的
縮寫,是指一種創(chuàng)建交互式網(wǎng)頁(yè)應(yīng)用的網(wǎng)頁(yè)開發(fā)技術(shù),其中主要使用了
XML:是extensible Markup Language (擴(kuò)展標(biāo)記語(yǔ)言)的縮寫。XML是 一種簡(jiǎn)單的數(shù)據(jù)存儲(chǔ)語(yǔ)言,使用一系列簡(jiǎn)單的標(biāo)記描述數(shù)據(jù)。簡(jiǎn)單來(lái)說(shuō)就是一 種描述數(shù)據(jù)結(jié)構(gòu)的格式。
JSON:是JavaScript Object Notation ( JavaScript原生對(duì)象)是一種輕量級(jí) 的凄t才居交^灸才各式。它基于JavaScript Programming Language。 JSON采用完全《蟲 立于語(yǔ)言的文本格式。JSON和XML類似,也是一種描述數(shù)據(jù)結(jié)構(gòu)的格式,但 在JavaScript中使用時(shí)比XML更筒單方便。
圖1示出了本發(fā)明實(shí)施例基于瀏覽齊的遠(yuǎn)程控制方法的執(zhí)行同步命令時(shí)的 架構(gòu)示意圖,現(xiàn)詳述如下
操作員在瀏覽器網(wǎng)頁(yè)上提起一個(gè)操作命令,JavaScript中生成一個(gè)Ajax對(duì) 象,向服務(wù)器發(fā)起一個(gè)同步請(qǐng)求,可附帶命令參數(shù)。請(qǐng)求發(fā)出后在當(dāng)前網(wǎng)頁(yè)上 顯示一個(gè)命令正在執(zhí)行的執(zhí)行等待提示。
服務(wù)器接收到命令請(qǐng)求后,從請(qǐng)求數(shù)據(jù)中提取命令參數(shù),然后通過(guò)通訊通 道將命令發(fā)送到遠(yuǎn)方設(shè)備。
遠(yuǎn)方設(shè)備執(zhí)行命令,返回執(zhí)行結(jié)果給服務(wù)器。
服務(wù)器將執(zhí)行結(jié)果組織成一個(gè)執(zhí)行結(jié)果對(duì)象,其中包含命令執(zhí)行結(jié)果,執(zhí) 行時(shí)間,執(zhí)行失敗的錯(cuò)誤提示信息等,然后以JSON格式將該對(duì)象返回到客戶端。
客戶端Ajax對(duì)象檢測(cè)到服務(wù)器執(zhí)行完畢返回,首先關(guān)閉顯示命令正在執(zhí)行
6的對(duì)話框,然后調(diào)用一個(gè)JavaScript回調(diào)函數(shù)解析返回的JSON格式的數(shù)據(jù),將 命令執(zhí)行結(jié)果對(duì)象還原。根據(jù)執(zhí)行結(jié)果顯示命令執(zhí)行成功。或者顯示命令執(zhí)行 失敗及錯(cuò)誤提示信息。
圖2示出了本發(fā)明實(shí)施例基于瀏覽齊的遠(yuǎn)程控制方法的定時(shí)執(zhí)行異步命令 刷新數(shù)據(jù)的架構(gòu)示意圖,現(xiàn)詳述如下
在JavaScript腳本中創(chuàng)建一個(gè)定時(shí)器,定時(shí)調(diào)用Ajax對(duì)象向服務(wù)器發(fā)起查 詢實(shí)時(shí)數(shù)據(jù)的異步請(qǐng)求。
月良務(wù)器接收到命令請(qǐng)求后,對(duì)遠(yuǎn)方設(shè)備進(jìn)行實(shí)時(shí)數(shù)據(jù)召測(cè)。如果設(shè)備自動(dòng) 定時(shí)上傳實(shí)時(shí)數(shù)據(jù)到服務(wù)器內(nèi)存中,也可從服務(wù)器內(nèi)存數(shù)據(jù)中取出最新數(shù)據(jù)返 回。
服務(wù)器將數(shù)據(jù)集合對(duì)象以JSON格式返回到客戶端。
客戶端Ajax對(duì)象檢測(cè)到服務(wù)器執(zhí)行完畢返回,調(diào)用一個(gè)JavaScript回調(diào)函 數(shù)解析返回的JSON格式的數(shù)據(jù)。如果查詢數(shù)據(jù)成功,則刷新界面上的數(shù)據(jù)區(qū)。
圖3示出了本發(fā)明實(shí)施例基于瀏覽齊的遠(yuǎn)程控制方法的執(zhí)行批量異步命令 時(shí)的架構(gòu)示意圖,現(xiàn)詳述如下
操作員在瀏覽器頁(yè)面上提起一個(gè)操作命令,JavaScript中生成一個(gè)Ajax對(duì) 象,向服務(wù)器發(fā)起一個(gè)異步請(qǐng)求,該操作命令可附帶命令參數(shù)。發(fā)送完畢后該 頁(yè)面即可關(guān)閉。
服務(wù)器接收到操作命令后,從請(qǐng)求數(shù)據(jù)中提取命令參數(shù),然后生成命令對(duì) 象,并放入待執(zhí)行命令隊(duì)列。
服務(wù)器的命令調(diào)度執(zhí)行程序定時(shí)檢測(cè)待執(zhí)行隊(duì)列中是否有命令,如有就逐 個(gè)取出來(lái)執(zhí)行。執(zhí)行完畢把執(zhí)行結(jié)果(可攜帶數(shù)據(jù))生成結(jié)果對(duì)象,放入執(zhí)行 完畢數(shù)據(jù)結(jié)果對(duì)象隊(duì)列。
客戶端的另一個(gè)顯示異步命令執(zhí)行結(jié)果的網(wǎng)頁(yè)定時(shí)異步調(diào)用Ajax對(duì)象,向 服務(wù)器檢索結(jié)果對(duì)象隊(duì)列,如果該隊(duì)列中有結(jié)果對(duì)象,則服務(wù)器將對(duì)象取出, 按JSON格式返回給客戶端??蛻舳薃jax對(duì)象檢測(cè)到服務(wù)器返回,從JSON格式的返回?cái)?shù)據(jù)中判斷是否 有返回?cái)?shù)據(jù)。如有,則將命令執(zhí)行結(jié)果逐個(gè)寫入到網(wǎng)頁(yè)中,同時(shí)可播放聲音, 顯示動(dòng)畫等提醒操作員有異步命令執(zhí)行完畢。
本發(fā)明實(shí)施例所采用的瀏覽器指正6瀏覽器,但不限于在其他瀏覽器(如 firefox ),在其他瀏覽器中實(shí)現(xiàn)的時(shí)候部分JavaScript腳本可能不同。
本發(fā)明結(jié)合使用了 Ajax, JSON等web開發(fā)領(lǐng)域的最新技術(shù),為在web上 開發(fā)實(shí)時(shí)控制系統(tǒng)或數(shù)據(jù)監(jiān)測(cè)系統(tǒng)提供了新的開發(fā)方法。該方法筒單有效,能 極大地簡(jiǎn)化程序流程,減少服務(wù)器負(fù)擔(dān),減少網(wǎng)絡(luò)流量負(fù)載,并很好地改善客 戶操作體驗(yàn)和界面顯示效果。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā) 明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明 的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種基于瀏覽器的遠(yuǎn)程控制方法,其特征在于,所述方法包括下述步驟服務(wù)器接收從客戶端的瀏覽器發(fā)出的操作命令,所述操作命令在JavaScript中生成一個(gè)Ajax對(duì)象;服務(wù)器在接收到操作命令后,將命令發(fā)到遠(yuǎn)方設(shè)備;及服務(wù)器將遠(yuǎn)方設(shè)備返回的執(zhí)行結(jié)果組織成一個(gè)執(zhí)行結(jié)果對(duì)象,以JSON格式將該對(duì)象返回到客戶端。
2、 如權(quán)利要求l所述的方法,其特征在于,所述方法進(jìn)一步包括瀏覽器 在操作命令發(fā)出后在瀏覽器上顯示一個(gè)命令正在執(zhí)行的等待提示。
3、 如權(quán)利要求l所述的方法,其特征在于,所述方法進(jìn)一步包括客戶端 Ajax對(duì)象在檢測(cè)到服務(wù)器返回后,解析返回的JSON格式的數(shù)據(jù),將命令執(zhí)行 結(jié)果對(duì)象還原并在瀏覽器上顯示。
4、 如權(quán)利要求l所述的方法,其特征在于,所述方法進(jìn)一步包括定時(shí)調(diào) 用Ajax對(duì)象向服務(wù)器發(fā)起操作命令。
5、 如權(quán)利要求l所述的方法,其特征在于,所述方法進(jìn)一步包括在遠(yuǎn)方 設(shè)備自動(dòng)定時(shí)上傳實(shí)時(shí)數(shù)據(jù)到服務(wù)器內(nèi)存中時(shí),從服務(wù)器內(nèi)存數(shù)據(jù)中取出最新 數(shù)據(jù)返回。
6、 如權(quán)利要求1所述的方法,其特征在于,所述操作命令中附帶命令參數(shù)。
7、 一種基于瀏覽器的遠(yuǎn)程控制方法,其特征在于,所述方法包括下述步驟 服務(wù)器接收到操作命令后,生成命令對(duì)象,并放入待執(zhí)行命令隊(duì)列; 服務(wù)器定時(shí)檢測(cè)待執(zhí)行隊(duì)列中是否有命令,如有就逐個(gè)取出來(lái)執(zhí)行,執(zhí)行完畢把執(zhí)行結(jié)果生成結(jié)果對(duì)象,放入執(zhí)行完畢數(shù)據(jù)結(jié)果對(duì)象隊(duì)列;接收客戶端的Ajax對(duì)象,檢索結(jié)果對(duì)象隊(duì)列,如果該隊(duì)列中有結(jié)果對(duì)象, 則將對(duì)象取出,按JSON格式發(fā)送給客戶端。
8、 如權(quán)利要求7所述的方法,其特征在于,所述方法進(jìn)一步包括 客戶端Ajax對(duì)象檢測(cè)到服務(wù)器返回,從JSON格式的返回?cái)?shù)據(jù)中判斷是否有返回?cái)?shù)據(jù),如有,則將命令執(zhí)行結(jié)果逐個(gè)還原并在瀏覽器上顯示。
9、如權(quán)利要求7所述的方法,其特征在于,所述操作命令中附帶命令參數(shù)。
全文摘要
本發(fā)明適用于遠(yuǎn)端設(shè)備控制領(lǐng)域,提供了一種基于瀏覽器的遠(yuǎn)程控制方法,所述方法包括下述步驟服務(wù)器接收從客戶端的瀏覽器發(fā)出的操作命令,所述操作命令在Java Script中生成一個(gè)Ajax對(duì)象;服務(wù)器在接收到操作命令后,將命令發(fā)到遠(yuǎn)方設(shè)備;服務(wù)器將遠(yuǎn)方設(shè)備返回的命令執(zhí)行結(jié)果組織成一個(gè)執(zhí)行結(jié)果對(duì)象,以JSON格式將該對(duì)象返回到客戶端??蛻舳隧?yè)面解析返回結(jié)果并顯示。本發(fā)明實(shí)施結(jié)合使用了Ajax,JSON等web開發(fā)領(lǐng)域的最新技術(shù),為在web上開發(fā)實(shí)時(shí)控制系統(tǒng)或數(shù)據(jù)監(jiān)測(cè)系統(tǒng)提供了新的開發(fā)方法。該方法簡(jiǎn)單有效,能極大地簡(jiǎn)化程序流程,減少服務(wù)器負(fù)擔(dān),減少網(wǎng)絡(luò)流量負(fù)載,并很好地改善客戶操作體驗(yàn)和界面顯示效果。
文檔編號(hào)H04L12/28GK101442515SQ20071007741
公開日2009年5月27日 申請(qǐng)日期2007年11月22日 優(yōu)先權(quán)日2007年11月22日
發(fā)明者許曉飛 申請(qǐng)人:深圳市科陸電子科技股份有限公司