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