史延軍
[摘 要]局域網(wǎng)中,不同的工作站之間直接交換屏幕信息,能夠?qū)⑿畔⒔粨Q速度有效提升。而這一技術(shù)則可以應(yīng)用于相應(yīng)的系統(tǒng),并借助于一系列技術(shù),形成基于“前臺可持續(xù)操作”的后臺實時收發(fā)屏幕信息的相應(yīng)系統(tǒng)。
[關(guān)鍵詞]后臺;點對多點廣播;實時接收;Netibos
1系統(tǒng)組成及工作原理
本系統(tǒng)共計有接收播放、后臺廣播發(fā)送、前臺支持三個主體模塊。后兩者在發(fā)送工作站運行,前臺支持模塊主要對TC、WPS等DOS應(yīng)用程序的運行做出保證,后臺廣播發(fā)送模塊主要負(fù)責(zé)廣播發(fā)送和打包、壓縮、采集前臺屏幕數(shù)據(jù)之類;接收播放模塊則在接收工作站運行,主要任務(wù)是接收、拆包、解壓縮數(shù)據(jù)以及前臺播放。其工作原理詳見圖1:
2前臺支持模塊的實現(xiàn)技術(shù)
本系統(tǒng)功能的實現(xiàn)要依托一系列任務(wù)操作系統(tǒng),鑒于DOS的局限性,將前臺支持模塊修改DOS作為其首要任務(wù)。
本模塊中,主要借助中斷技術(shù)實現(xiàn)DOS初始化運行環(huán)境并對通往后臺的功能加以建立。
前者主要以捕獲鍵盤操作、解決DOS問題為主,為此主要設(shè)置了防止系統(tǒng)中斷的現(xiàn)場數(shù)據(jù)保存“自用堆?!薄2ο鄳?yīng)功能加以修改,同時將PSP切換加以實現(xiàn)。使得本模塊可在鍵盤操作時,直接讀取按鍵并操作。
后者主要以18.2s-1次頻率的“定時中斷”為主,同時也調(diào)用相應(yīng)的系統(tǒng)調(diào)用——其又是一條空操作。由此,將后臺廣播發(fā)送模塊設(shè)置為常駐內(nèi)存。在調(diào)用時僅需條件滿足即可對之加以激活,實現(xiàn)自動發(fā)送后臺數(shù)據(jù)。
3后臺廣播發(fā)送和接收模塊
3.1數(shù)據(jù)采集函數(shù)
此方面主要人物為采集屏幕數(shù)據(jù)。為盡快完成采集,其函數(shù)應(yīng)直接讀取數(shù)據(jù)于顯示緩沖區(qū)中。在此過程中,因為顯示模式會因前臺程序而存在差異,故而應(yīng)加以區(qū)別對待——文本模式多為約4kB的“常數(shù)據(jù)量”,而圖形模式則有著較大的數(shù)據(jù)量。應(yīng)怎樣將后者的數(shù)據(jù)在不產(chǎn)生較大動畫感的前提下實時發(fā)送出去則成為了重大問題——為此,本研究先將屏幕信息劃分為可以分別采集的若干由發(fā)送信息幀大小、壓縮方法兩因素決定大小的部分,隨后將之發(fā)送到壓縮函數(shù)。
3.2壓縮函數(shù)
在此方面主要采取的辦法包括RUNLENGTH(行程碼)、JPEG兩種。
因為很多DOS軟件以圖形作為屏幕圖像,故而其數(shù)據(jù)有著很強的“相鄰相同”特點。本身是一種映射的RUNLENGTH(行程碼)的編碼方法簡單、無損壓縮等特點對之最為適合。若其中具有相同值g存在于l個相鄰數(shù)據(jù)中,則可體現(xiàn)為(g,l)。以此法對變換變換所有數(shù)據(jù)(X1,X2,……Xm),即可獲得(g1,l1),(g2,l2)……(gm,lm)這一數(shù)據(jù)對序列的行程碼。其中圖像中數(shù)據(jù)串的“重復(fù)率”和壓縮率成正比關(guān)系,但一旦大部分l小于lm的話,就會發(fā)生一定的壓縮問題。JPEG方法具備較高成熟性,在此解說從略。
3.3信息幀數(shù)據(jù)結(jié)構(gòu)
此方面主要包括打包、后臺發(fā)送函數(shù)等重要活動,考慮到此后該技術(shù)的發(fā)展,本系統(tǒng)主要采取以Noibtos支持作為基礎(chǔ)的編程。Neibtos類屬“標(biāo)準(zhǔn)接口”,其和協(xié)議無關(guān),提供的功能具備“標(biāo)準(zhǔn)性”,在OSI模型中位居會話、表示兩層間。其數(shù)據(jù)報長512B——同時也是打包函數(shù)包長。由于其長度較小且屏幕數(shù)據(jù)量大,同時后臺以“無連接發(fā)送”為主,往往會發(fā)生接收時不按順序的情況。故而本技術(shù)中擴充了Neibtos數(shù)據(jù)報傳輸協(xié)議,給每個數(shù)據(jù)包在打包時加以編號,從而確定其屏幕位置,保證信息實時、完整性。
3.4后臺發(fā)送原理
打包函數(shù)以NCB形式組織數(shù)據(jù)包,隨后向Netbios提交。后者將之置入內(nèi)部待處理隊列。在發(fā)送完成后,則在NcbRteCdoe、NcbCmdClpt等處保存最后結(jié)果。可以中斷處理程序形式處置POST程序,將之地址在執(zhí)行非等待命令時“告訴”Neibtos并返回前臺。而在完成后臺命令時則對POST程序自動執(zhí)行。其Nehtios調(diào)用步驟包括構(gòu)造NCB、在ES:Bx寄存器寫入NCB地址、執(zhí)行scH中斷等。而調(diào)用ST程序時應(yīng)滿足其他寄存器無特別代碼、有最終返回代碼位于ES:Bx寄存器對、有最終返回代碼位于CPU的AL寄存器、全部中斷被屏蔽四個條件。
3.5實現(xiàn)廣播和接收
在網(wǎng)絡(luò)中,NeibtosLAN適配器的區(qū)分辦法在于名字。在發(fā)送信息時,也只有指定的名字(工作站)才可獲得Neibtos信息。如此,主要將同組工作站組名統(tǒng)一化,便可同時獲得Neibtos的信息,從而將“點對多點”廣播發(fā)送加以落實。并且以時鐘中斷激活此后的廣播發(fā)送函數(shù)。
接收函數(shù)方面同樣一以后臺方式為主,以“循環(huán)輪詢”這一辦法對信息加以“監(jiān)聽”,若有則第一時間加以接收。
參考文獻:
[1]鄭迪文,沈立煒,彭鑫,趙文耘.??基于AJAX的Web應(yīng)用構(gòu)件組裝技術(shù)及工具[J].?計算機科學(xué).?2014(11).
[2]曹永鴻.??基于Web的學(xué)校網(wǎng)絡(luò)中心空調(diào)遠(yuǎn)程監(jiān)控[J].?電腦編程技巧與維護.?2014(15).
[3]高鵬,徐小力,吳國新,蔣章雷.??基于Ajax的四層架構(gòu)遠(yuǎn)程監(jiān)測系統(tǒng)設(shè)計[J].?計算機工程與設(shè)計.?2014(02).□(編輯/穆楊)