999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式WAP瀏覽器的架構及實現

2009-04-29 00:00:00
電腦知識與技術 2009年4期

摘要:介紹了一種簡單的嵌入式wap瀏覽器架構,具有模塊化、可定制行為、方便擴展的特性。并重點介紹了WML解析、腳本處理、界面顯示等模塊的具體實現,該瀏覽器能夠實現基本的wap瀏覽器功能,具有運行效率高、易于實現的特點。

關鍵詞:無線應用協議;嵌入式;瀏覽器

中圖分類號:TP393.092文獻標識碼:A文章編號:1009-3044(2009)04-0794-02

Wap Browser Embedded in the Structure and Achieve

CHEN Jun

(Chengdu University of Technology,Chengdu 610059,China)

Abstract: A simple framework for embedded wap browser,with modular,customizable,easy to expand the properties.And focuses on the analysis WML,script processing,display interface module to achieve specific,the browser can be achieved basic wap browser functionality,with high efficiency,easy-to-achieve characteristics.

Key words: wireless application protocol; embedded; browser

目前,隨著移動終端設備的普及,利用無線網絡提供因特網上的互動服務越來越受到關注。Wap作為無線應用協議,人們可以體驗真正快捷的互動服務,只要通過WAP上網,就可以進行各項線上業務,如銀行服務、賬單繳費,甚至預訂飯桌或預訂電影等。WAP也可以用于傳送及收發電子郵件,進行文字及語音的數據傳送。用戶更可通過其公司具備WAP特性的內部網,讀取和交流公司的信息,例如庫存、現報價、公司客戶資料等。此外,在娛樂方面,WAP也提供了嶄新的消遣模式,無論在哪里,人們都可以隨心所欲與網友進行聊天(例如WAPQQ聊天),也可以進行網上游戲,分享WAP的樂趣。

隨著無線網絡技術的不斷發展,利用wap提供的服務也越來越豐富,作為應用廣泛的瀏覽器軟件,嵌入式的WAP瀏覽器,因其低成本和可移動的特點,被廣泛應用于移動通信和信息家電等領域。

1 WAP無線應用協議

WAP是Wireless Application Protocol(無線應用協議)的簡稱,WAP協議與現在通行的互聯網協議類似,但專為小屏幕、窄帶的用戶裝置(如移動電話)優化。通過定義一系列將互聯網內容過濾和轉化為適用移動通信的標準,使互聯網內容可以更容易地在移動終端上顯示。

WAP的規范由WAP標準化組織OMA規定,當前的版本是2.0,它增加了新的移動網絡承載,支持在互聯網上廣泛應用的HTTP/TLS/TCP等協議的無線版本,支持動態HTML語言以及CSS等新的Internet技術。WAP2.0擴展增強了原有版本的功能,包括基于服務器的內容及其“推”(PUSH) 機制、用戶代理定制、WTA(無線電話應用) 等。同時WAP2.0新增了很多有用的功能,例如外部功能接口、永久存儲接口、數據同步、支持MMS。

2 嵌入式WAP瀏覽器的總體框架結構

整個瀏覽器可分為3個主要模塊,分別是網絡傳輸模塊,解析模塊和排版顯示模塊(圖1)

WAP瀏覽器框架的基本工作流程為:WAP瀏覽器通過TCP協議從服務器接收WML文件,交給WAP解析器對該文件進行解析,在解析的過程中形成DOM樹和Render樹;最后將解析結果在顯示器上顯示。用戶界面模塊和網絡協議模塊被劃分為兩個單獨的任務,有利于提高系統的并發度。界面任務負責內容處理、接受用戶的輸入輸出,而會話任務主要用于從網絡接收和發送數據。

以一次瀏覽網頁的場景來考察模塊之間的調用關系。用戶在地址欄輸入URL,用戶界面模塊捕獲輸入事件,并請求內容處理模塊處理。內容處理模塊發送URL請求給網絡協議模塊然后立即返回。網絡協議模塊通過WAP協議,向服務器請求數據;經過網絡上一段時間的延遲后,網絡協議模塊接收到數據,以異步方式通知內容處理模塊數據已經到達。內容處理模塊接收數據,判斷是WML的文件格式,于是送往XML語法分析器解析,通過DOM樹接口模塊生成DOM樹。在DOM樹中可能還會存在外部的圖片和樣式表(CSS)鏈接,于是再次通過網絡協議模塊請求數據。接收到的圖片數據會被解碼和緩存起來;而CSS文件先進行語法分析,從而生成CSS規則。根據DOM樹的層次結構,和每個節點的XHTML/WML語義,就可以構建實際要呈現給用戶的顯示對象,稱之為Render樹。將CSS規則應用到Render 樹上,按照屏幕大小、Render節點顯示屬性、以及Render 節點之間的位置相對關系等,對Render 樹進行排版,最后顯示到屏幕上。當用戶對屏幕上的元素進行操作時(如點擊超級鏈接),相應的事件會通過Render節點傳遞到DOM節點上,并繼續在DOM樹上進行事件繁衍或按照預定的事件處理流程進行處理(如跳轉到下一個URL、調用WMLScript 腳本等) 。

3 WML解析模塊

3.1 WML標記語言

無線標記語言(WML)是基于xml(Extensible Markup Language)定義的一種標記語言。其目的是為在窄帶設備上定義內容和界面提供一種合適的方法,所以WML的設計考慮了窄帶設備的一些局限性,這些局限性包括顯示屏小,輸入功能有限,內存少,計算能力差以及網絡連接帶寬低等。WML文檔內容的基本單元是Element元素,它的語法格式如下:(標簽)文本內容(/標簽)。元素由起始標簽、元素內容和結束標簽組成。XML元素中還可以再嵌套別的元素,這樣使相關信息構成層次結構。

3.2 WML的功能

1) 文本呈現和布局

WML支持文本和圖像,支持多種格式和布局命令。

2) 卡片組/卡片組織結構隱喻

WML的所有信息都組織為卡片和卡片組的集合。卡片表示一個或多個用戶交互單元(例如選擇菜單,一屏文本或者一個文本輸入域)。邏輯上講,用戶通過一系列WML卡片進行瀏覽,查看相關的內容,輸入要求的信息,做出選擇,然后轉到另一張卡片。相關的WML卡片組織在一起成為WML卡片組,WML卡片組與HTML頁面類似,可以用URL < Uniform Resource Locators )進行標識,并且是內容傳輸的基本單元。

3) 卡片間瀏覽和鏈接

WML為在卡片和卡片組之間的進行瀏覽提供了明確的管理方法,并且支持在設備上進行事件處理設置。這種設置可能用于瀏覽目的或者執行一段腳本。

4) 字符串參數化和狀態管理

所有的WML卡片組可以采用狀態模型進行參數化在字符串的位置上可以使用變量,并且在運行時進行替換。參數化能夠更有效的利用網絡資源。

3.3 標記語言處理

解析器首先讀入XMLDec、XMLDec與DocTypeDec之間可能的注釋DocTypeDec、跟于DocTypeDec之后的注釋行。該部分即為WML文檔的檔案類型定義部分。之后從根元素開始,讀取WML正文內容,以后的元素均為根元素的直接或間接子元素。每次讀入Element,首先讀取該元素的屬性,包括屬性名稱和屬性值等,屬性由WML文檔的DTD中定義:然后通過一個循環過程讀入該元素的Body(如果該元素有子元素,則該元素存在Body)。對于Body 的讀取,其實又是一個循環讀取Element的過程。這樣,讀Element和讀Body的兩個過程形成了互相調用的遞歸。

經過上述流程對WML文件解釋完畢之后,在內存中就形成了一棵對應該文件的WML語法樹,遍歷該語法樹中的每一個元素的即可完成對頁面元素的顯示。如圖2所示。

4 WMLScript腳本處理

WMLScript執行體當在WML中要訪問的URL是WMLScript腳本函數,WML執行體將下載的腳本及其URL傳遞給WMLScript執行體編譯器編譯,再傳遞給虛擬機解釋執行,主要涉及編譯器、虛擬機、標準庫三個模塊。虛擬機在解釋執行相應函數時會形成的WMLScript上下文并回調其WMLScript運行庫,而WMLScript執行體最終會調用WML執行體提供的訪問瀏覽器上下文的功能函數、GUI提供的輸入框和提示框函數及標準庫函數完成腳本要求的動作,其中WMLScript運行庫是開放的運行庫,WMLScript包含lang、float、string、URL、WMLBrowser和Dialogs 6個標準庫。

當用戶點擊屏幕上的某一個顯示元素,導致輸入事件再度產生,內容處理模塊根據產生事件的屏幕位置定位到相應的DOM節點。假設此時該DOM元素對應的事件處理是執行一段腳本,這就會導致進入腳本處理模塊的執行環境。腳本執行的結果可能會導致邏輯計算、網頁變化、或產生與用戶交互的對話框等。這樣就達到了網頁的動態效果。WMLScript 解釋器采用上下文無關文法,包括詞法文法、語義文法、數字文法、字串文法和URI文法。采用Unix工具lex和yacc來完成WMLScript 詞法分析和語法分析。

源代碼經過語義分析就生成了語法樹。語法樹中的結點包括編譯單元、函數聲明、代碼塊、語句、變量、表達式、函數體等,對應于編程語言中的相應概念。根據生成的語法樹,從根結點(應當是從WML開始調用的某一個入口函數) 開始,遍歷并執行每個結點的execute()函數,最終達到了對腳本運行的效果。

5 瀏覽器的顯示

圖形顯示模塊中的處理類從WML源碼分析模塊得到WML網頁的樹型結構,根據每個樹節點的標簽,把它們轉成相應的類,并這些類都實現TreeNode接口,得到一個樹型結構;接著,處理類從根節點開始,根據WML語法,分析這個樹型結構。顯示類繼承了面板控件,用于WML元素的圖形化顯示,它將顯示區分成兩部分:一個是正文顯示區,另一個是按鈕區。處理類根據網址,分析收到的WML網頁的某個card,顯示類相應地申請一個面板,處理類將那個card往下分析,如果分析到需要顯示的元素,就調用顯示類的相應函數,把該元素的顯示控件加到card面板上。顯示控件是根據元素的屬性改進了的控件。如用于顯示input元素的控件繼承了文本框控件并進行了改進,從而使input控件不僅能輸入,而且能根據input元素的屬性,只輸入數字,或只輸入固定個數字符等。如果分析到的元素是事件元素(onevent,do,anchor),onevent元素的事件不是由用戶觸發,不需要在界面實現,do和anchor元素通過按鈕控件實現,設定控件的響應事件為元素的事件,anchor元素使用沒有邊界,不凸起的按鈕,并顯示在card面板上,do元素使用普通按鈕顯示在按鈕區。分析完所有元素,這個WML網頁的一個card圖形也出來了,然后把這個card面板加到顯示區,就顯示出來。

6 測試結果

我們通過采用IIS服務器作為WAP服務器,對WAP瀏覽器進行了全面的測試。WAP瀏覽器能夠通過WSP面向鏈接和非鏈接的兩種服務向服務器成功地請求到WML網頁;并且對WML所有元素及其屬性都能正常顯示;能夠正常與用戶交互,正確執行WMLScript語言;實現了預先設想的功能。

7 結論

該文介紹了一個WAP瀏覽器的架構和實現;該瀏覽器具有友好的用戶界面,具有比一般移動終端的瀏覽器更多的功能,既能用于瀏覽WML網頁,也能用于測試WAP網關和WAP服務器。

雖然這個WAP瀏覽器已具備比較完備的功能,但是WAP協議的不斷改進,賦予了WML語言和WMLScript語言更多的內容。因此,WAP瀏覽器也需要不斷完善功能,以實現對最新版本的WML網頁的瀏覽。

參考文獻:

[1] 王會進,邱煒斌.嵌入式WAP解析器的設計與實現[J].計算機工程與設計,2005(5):1012-1014.

[2] 柳洋蔣,澤軍基.基于分層結構的可移植WAP瀏覽器設計[J].科學技術與工程,2006(08):1072-1074.

[3] 陳華良,孔令海,陳增強,劉慮信,袁著祉.一種基于Java的WAP瀏覽器的設計及實現[J].計算機工程,2005(13):206-208.

[4] 羅蕾,王慶,譚羅麗.WAP安全構架研究及WTLS的實現[J].電子科技大學學報,2002,31(4):387-392.

[5] Andrew S.Tandenbaum computer networks(3rd edition)[M].Prentice Hall,1996.

[6] 任立勇,盧顯良.Internet擁塞控制研究[J].電子科技大學學報,2002,31(1):48-51.

[7] 張惠媛.移動互聯網與WAP技術[M].北京:電子工業出版社,2002.

[8] 李允,熊光澤,楊玉平.一種嵌入式瀏覽器設計技術[J].微型機及應用,2001,20(12):57-59.

[9] BRAY T,etal.Extensible Markup Language(XML),W3C Proposed Recommendation 10-February-1998,REC-xml-19980210[EB/OL].http://www.w3.org/TR/REC-xml,1998-04-10.

[10] BUSCHMANN F.面向模式的軟件體系結構卷1:模式系統[M].北京:機械工業出社,2003.

[11] 張祿林,等.WAP技術及其應用[M].北京:人民郵電出版社,2001.

[12] WAP FORUM.WAP-210-wapArch-20010712[EB/OL].http://www.wapforum.org/.2001-07-12.

[13] WAP FORUM. WAP-193-101-WMLS-20010928-a[EB/OL].http://www.wapforum.org/.2001-09-28.

主站蜘蛛池模板: 精品一区二区三区中文字幕| 国产色伊人| 成人午夜视频网站| 亚洲精品黄| 亚洲精品免费网站| 色男人的天堂久久综合| 精品久久国产综合精麻豆| 欧美区日韩区| 老司机午夜精品视频你懂的| 中文字幕在线视频免费| 亚洲av日韩av制服丝袜| 久久久久人妻一区精品色奶水| 久久久久亚洲精品无码网站| 久草中文网| 午夜无码一区二区三区| 97视频在线精品国自产拍| 国产精品自在在线午夜区app| 永久免费AⅤ无码网站在线观看| 高清亚洲欧美在线看| 日韩毛片在线视频| 老司国产精品视频| 在线精品自拍| www.91在线播放| 欧美一区精品| 亚洲AⅤ波多系列中文字幕| 国产黑丝一区| 全部免费毛片免费播放| 国产一级二级三级毛片| 免费女人18毛片a级毛片视频| 国产午夜无码片在线观看网站| 日韩在线网址| 91探花在线观看国产最新| 人妻无码中文字幕第一区| 免费中文字幕一级毛片| 国产精品女同一区三区五区| 亚洲全网成人资源在线观看| 国产极品嫩模在线观看91| 亚洲男人天堂2020| 成人免费午夜视频| 尤物在线观看乱码| 国产极品美女在线播放| 国产91视频免费| 午夜不卡视频| 亚洲人成成无码网WWW| 爽爽影院十八禁在线观看| 亚洲电影天堂在线国语对白| 国产成人久久777777| swag国产精品| 亚洲男人在线| 黄片一区二区三区| 久久精品免费国产大片| 亚洲国产成人在线| 四虎影视永久在线精品| 久久不卡国产精品无码| 国产成人精品第一区二区| 亚洲精品桃花岛av在线| 19国产精品麻豆免费观看| 四虎综合网| 亚洲综合18p| 成人日韩精品| 免费xxxxx在线观看网站| 日韩欧美网址| 激情综合网址| 91青青草视频在线观看的| 亚洲品质国产精品无码| 小蝌蚪亚洲精品国产| 欧美精品伊人久久| 色综合狠狠操| 久久久久国产一区二区| 婷婷99视频精品全部在线观看| 在线看片免费人成视久网下载| 久热精品免费| 亚洲综合色婷婷中文字幕| 精品视频一区二区观看| 国产成人成人一区二区| 国产综合在线观看视频| 真实国产乱子伦高清| 中文字幕调教一区二区视频| 欧美综合区自拍亚洲综合绿色| 国产av色站网站| 精品国产免费观看一区| 九九热精品视频在线|