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