国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 網絡通信 > 正文

無線應用協議技術中微瀏覽器的設計

2019-11-03 09:28:39
字體:
來源:轉載
供稿:網友
肖波 張翠芳
1.西南交通大學峨眉分校,四川 峨眉 614202;

2.西南交通大學計算機與通信工程學院,四川 成都 610031)摘 要:在無線應用協議(WAP)技術的無線應用環境部分,本文提出一種嵌入移動終端的微瀏覽器的設計方案。在設計中按功能劃分為接口、執行、解析、顯示4個部分,在實現中利用封裝技術,使其易于移植到移動終端內。將實現了的微瀏覽器嵌入到實驗所用的移動終端,實驗表明,該微瀏覽器能成功地解析和顯示無線應用協議網關處理過的網頁。

關鍵詞:無線應用協議;微瀏覽器;無線應用環境;無線標記語言;設計

一、引言 微瀏覽器(Micro-browser) 嵌入在移動終端內,能夠將網頁內容解析和顯示給移動終端用戶,是無線方式接入互聯網的關鍵技術之一。由于移動終端主頻、計算能力都比較小,存儲器容量、顯示屏和輸入設備大小也受到限制[3],因此要求微瀏覽器在設計和實現時必須緊密、清晰。微瀏覽器在無線互聯中得到了廣泛應用,其中著名的有日本的I-mode技術和WAP(Wireless application PRotocol)論壇公布的無線應用協議技術。在無線應用協議技術中,無線應用協議是通過改寫網絡的通信協議,使該協議與現有網絡通信協議兼容,并且更適合于無線應用這一特殊環境而形成的一種協議。本文的微瀏覽器設計方案,是作者所參與的項目組根據WAP論壇公布的微瀏覽器規范進行設計并實現的。

二、微瀏覽器在無線應用協議技術結構中的位置

在無線應用協議技術中,微瀏覽器是無線應用環境(Wireless Application Environment,簡寫為WAE)的一部分,處于WAE的上層。WAP技術就是使用戶能將應用WAP協議軟件的移動終端連接到一個與Internet相連的WAP網關,從而如同使用桌面終端的用戶一樣瀏覽網上的信息。而WAE則是WAP協議棧(WAP Protocol Stack,簡寫為WAPS)的最高層協議,它規劃在整個WAP標準中,其目的是建立一個交互環境,使網絡運營商和網絡提供商能夠有一個在無線平臺上提供服務的有效的方法。WAE定義了標準的內容格式,規定WAP移動終端使用(Wireless Markup Language,簡記為WML)無線標記語言顯示各種文字圖像數據。WML是一種基于擴展標記語言(Extension Markup Language,簡記為xml)的標記語言,主要用于標記和說明WAP移動終端收發的Internet信息和用戶接口。在WAP中,一個WML文檔稱為一個“Deck”,一個“Deck”內包含若干個“Card”,“Card”是用戶瀏覽和交互的基本單元。微瀏覽器在WAP技術中就是實現 WML用戶代理 (WML User Agent) 功能,是WAE的一個重要組件,其實現技術是WAE實現中的核心技術。

三、微瀏覽器的規范、功能和特點

微瀏覽器的規范定義了一個適合于移動終端的功能強大的用戶接口模型。這個規范定義了移動終端如何解釋WML和WMLScript,并且顯示給用戶。用戶通過上移鍵和下移鍵而不是鼠標在各個卡之間來回進行導航。為了保持與標準瀏覽器的一致,微瀏覽器還提供了各種導航功能如Back、Home、書簽等。

基于這些詳盡而明確的規范,微瀏覽器應完成的主要功能是顯示WML疊并且支持WML語言的事件處理,使用戶能在卡和疊間導航。

由于移動終端硬件的特點和WAP網關工作的特性,使得WML瀏覽器無論是在結構方面還是在功能方面,都具有自己獨特之處。一方面,由于移動終端的內存資源有限,要求微瀏覽器在閃存(Flash Memory)和RAM的使用上應盡量節省。并且,微瀏覽器處理的是經過WAP網關編碼的WML文件,因為WAP網關已經在詞法、變量引用、事件合法性等很多方面作了判斷和工作[1]。另一方面,瀏覽器工作在WAP協議棧和用戶界面之間,由于移動終端硬軟件實現差別很大,要求微瀏覽器將與移動終端操作系統有關的東西封裝起來,實現與操作系統和硬件無關。

四、微瀏覽器設計方案

1.微瀏覽器總體設計方案

從總體結構上,將整個微瀏覽器劃分為4個大部分:Interface(接口)部分、Executive(執行)部分、Parser(解析)部分和View(顯示)部分。其設計原理如圖1所示,其設計實現如圖2所示。





這種劃分實際上是按照微瀏覽處理的功能進行的,各部分完成特定的功能,并向其它相關部分的接口傳遞必要的信息。各部分的主要功能和模塊設計如下:

(1) Interface部分是微瀏覽器的入口,在這一部分通過移動終端人機接口的輸入控制得到用戶的按鍵事件,針對這一事件設計一個與按鍵有關的輸入模塊,它可以是一個線程,也可以是一個不斷循環的程序段,還可以利用中斷實現。利用這個模塊將系統的輸入部分封裝起來。同時,為Interface部分設計一個執行體模塊,在該模塊中設置一個狀態機,根據不同的狀態,對事件進行分類和分派,把接收到的按鍵消息發給不同的模塊處理。另外,設計運行模塊,以實現Do菜單事件,它利用Parser部分生成的Do表,在用戶按下某一鍵時激活Do菜單,出現WML作者在當前卡中定義的Do任務,用戶選定Do后,發相應消息給Executive完成任務處理。在實現上述主要功能的同時,Interface部分還要完成界面的初始化,實現系統菜單。

(2) Executive部分處理WML文本中的事件(即在疊/卡中定義的事件)。Interface部分接收到的與WML文本有關的事件觸發信息都轉給Executive部分,由它完成與事件綁定的節點的查找和相關事件處理函數的執行。根據Executive部分必須完成的功能要求,設計事件處理模塊,確定在Parser部分生成的事件表的事件號,根據事件號查找事件表中的相關表項;同時,設計5種事件處理函數,實現前進、后退、刷新、輸入、選擇5種事件的處理。而這五種事件處理函數為了完成事件處理,都需調用一個任務微函數模塊,該模塊中定義了一系列的原子函數。其設計原理是根據規范中的卡間導航參考運行步驟規定,可以將事件處理函數分解為多個原子函數,通過原子函數的不同組合,完成不同的事件處理。

(3) Parser部分是整個用戶代理的基礎,它將接收到的編碼后的二進制文本解析成為一棵以元素為節點的Deck樹。并生成其它部分運行時需要用到的數據結構。由此將解析部分設計為解析執行模塊和解析樹遍歷模塊。在解析執行模塊中完成將WAP網關中取回的WML文本進行處理,設計解析樹的建立函數和查詢函數,并對外提供統一封裝后的接口。在解析樹的遍歷模塊實現生成和處理事件表、變量表、Do表,并對內存管理。

(4)View部分根據Deck樹完成對WML文本顯示格式的解釋和顯示。接收到上下鍵的按鍵信息時改變虛窗口,瀏覽整個頁面。接收到確認鍵的按鍵信息時,根據當前的顯示內容確定該觸發的事件,將此事件反饋給Executive。當事件完成時,如果有變量被改變,Executive會通知View部分重顯屏幕。由此將View部分設計為初始化模塊、瀏覽處理模塊。在View部分的初始化模塊中分析由Parser部分生成的樹,建立事件顯示表和初始的顯示區。瀏覽處理模塊則完成上移、下移鍵按下時的處理,改變顯示區內容和反顯的事件。當按上移鍵時,根據新的坐標顯示新的內容;當按下移鍵時,根據新的顯示內容決定當前應該聚焦的事件,將與該事件有關的顯示內容(文本或是圖片)反顯。

2.微瀏覽器典型處理流程

在上述的功能劃分和消息傳遞機制下,一次微瀏覽器的典型的處理流程是:

(1)執行微瀏覽器程序,Interface獲得執行權,此時,如果瀏覽器設置了HomePage,Interface向Executive發出信息,取回HomePage并分析、顯示。如果瀏覽器沒有設置HomePage,Interface進入空等狀態,等待用戶輸入需訪問的URL;

(2)Executive調用WAPP提供的接口函數,取得指定的Deck,交由Parser完成解析,生成樹和表;

(3)Parser生成的樹提交給View部分顯示,執行權重交給Interface,系統進入等待用戶輸入狀態;

(4)Interface接收到用戶輸入,對按鍵信息分類,一部分按鍵被截獲,激活系統菜單;一部分被發送給View,改變瀏覽區,或者激活事件,事件號發給Executive,完成事件處理;

(5)可能發生的事件分為2類,一類要獲取另外的Deck,一類只要改變當前微瀏覽器的上下文。當發生第二類事件時,Executive 部分完成事件處理并告知Interface要不要刷新顯示區,Interface調用View部分完成顯示區處理。第二類事件發生時,Executive 取回Deck,分析、建樹,通過Interface告知View部分重新分析樹,建立初始顯示區。事件完成后進入等待用戶按鍵狀態;

(6)用戶激活系統菜單,選擇“退出”,釋放申請的內存塊,用戶代理結束。

3.微瀏覽器設計和實現中的技術難點及其解決辦法

(1)WML的解碼

WML文本在傳送之前要按照規范所述進行編碼,減小容量以適應窄帶寬的傳輸。編碼時對所有的元素和屬性及部分屬性值進行編碼。在編碼時用幾個特殊的標記表明變量引用和字符串的開始。編碼之后的文本是上下文有關的,除了全局標記之外,在不同狀態下遇到相同的標記對應于不同的解釋。經過編碼后,WML文本表示成特殊結構的二進制流。因為編碼的方法和編碼后文件的格式都嚴格遵守編碼規范,所以解碼的工作相當清晰。在Deck樹建立和信息引用的時候,將當前信息的8位值與編碼比較,由此確定對當前信息的操作及以后幾個字節的操作。

(2)Deck樹的生成

WML文本的一個Deck可以表示為一棵樹,樹中包含了標簽和標簽屬性的信息,在對文本進行分析生成樹時,使用遞歸下降分析。因為WML文本格式很固定,不會有回溯,并且沒有太多的嵌套。在生成Deck樹時采用遞歸下降分析法,思路清晰,實現容易。

(3)實現整塊內存使用策略

先根據WML文本的大小,一次性向操作系統申請一塊空間,保留此空間的起始指針和大小,由微瀏覽器的程序對這一塊內存進行分配和管理。這樣在操作系統看來,Deck樹是一個完整的塊,而塊內則是由指針相連而形成的一棵樹。當用戶轉到其他的Deck,要丟棄當前Deck時可以一次性在回收整個塊。這一方法的優點是:一方面使用指針進行信息的復用,避免對重復信息生成另外的一個拷貝帶來的內存浪費,最大程度地復用了內存;另一方面,在內存復用過程中,要進行內存回收,由于多個指針指向同一塊內存,有可能會出現指針懸掛的情況,但現在采用了一次性分配的方法,指針懸掛問題就完全可以得到避免。

(4)封裝功能的實現

在整個微瀏覽器軟件的設計實現過程中,雖然用的是Standard C,但把處理每一個數據結構的模塊作為一個對象來看待,建立完善和統一的接口,同時注意到在其他的模塊中避免對此模塊的數據的直接使用。這樣,在沒有面向對象編譯器的支持下實現了部分的面向對象思想,雖然只有一個封裝的功能,但是程序在可維護性、可剪裁性、可重用性上有了很大的改善。

五、結束語

該微瀏覽器的設計與實現嚴格按照規范進行,在設計和實現中充分考慮了與移動終端硬件的無關性、與操作系統的無關性,能夠方便地嵌入到移動終端里面。將所實現的微瀏覽器成功移植到實驗用的移動終端康佳7218型手機上,實驗證明,微瀏覽器實現了WML用戶代理功能,能夠正確地解析和顯示經過WAP網關處理過的網頁。

摘自《北極星電力電信網》
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 政和县| 台北县| 梅州市| 静海县| 宁阳县| 得荣县| 东兰县| 巴林右旗| 光泽县| 镇雄县| 闸北区| 抚远县| 莱西市| 罗甸县| 溧水县| 广昌县| 大英县| 北海市| 台前县| 林甸县| 工布江达县| 类乌齐县| 永胜县| 吴旗县| 三明市| 乐业县| 遵义市| 卓尼县| 榆社县| 云霄县| 钟山县| 来安县| 庆云县| 常德市| 泰和县| 西宁市| 临西县| 潍坊市| 尉氏县| 化德县| 济南市|