www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于XML的移動終端網(wǎng)絡(luò)瀏覽方案

摘要:基于XML的移動終端網(wǎng)絡(luò)瀏覽方案是在傳統(tǒng)客戶/ 服務(wù)器瀏覽模式中插入中間層,中間層在后臺服務(wù)器上運行,接收客戶端服務(wù)請求,并與WEB 服務(wù)器通訊以獲取需要的HTML 文件。并按照規(guī)范過濾此文件,重新組織XML 格式的文件,通過無線網(wǎng)絡(luò)傳入客戶端。客戶端平臺采用嵌入式Linux,根據(jù)需要自由裁減,經(jīng)XML 解析后,調(diào)用GUI 函數(shù)顯示網(wǎng)頁。
關(guān)鍵詞:嵌入式瀏覽器移動終端;XML;解析器

引言

移動終端受移動性和便攜性的制約,CPU 主頻及計算能力較小,存儲器容量、顯示屏和輸入設(shè)備大小也受到限制。同時,無線數(shù)據(jù)網(wǎng)帶寬、連接可靠性及網(wǎng)絡(luò)可預(yù)測性相對較低, 網(wǎng)絡(luò)時延比有線網(wǎng)大。如果將移動終端通過無線方式直接接入Internet,技術(shù)實現(xiàn)有困難。近年業(yè)界提出:一是重寫現(xiàn)有Internet 協(xié)議,使其與現(xiàn)有協(xié)議兼容,讓移動設(shè)備透過微瀏覽器( Micro-Browser) 能通過無線網(wǎng)絡(luò)使用Internet 上所提供的針對WAP 特別定制的資訊及服務(wù)。另是將移動終端當(dāng)作功能簡化的PC,并內(nèi)置HTML 瀏覽器,雖可自由訪問現(xiàn)有網(wǎng)絡(luò), 但由于現(xiàn)有Internet 網(wǎng)站網(wǎng)頁大量采用Flash、Shockwave 等技術(shù),導(dǎo)致其體積龐大, 無線傳輸中耗時長,還要求移動終端具有較強運算能力,硬件投入較高。為此,對上述方式進行改進, 使其既可滿足無線網(wǎng)絡(luò)傳輸中數(shù)據(jù)量小的要求, 又可讓用戶獲取現(xiàn)有網(wǎng)絡(luò)上的絕大部分資源。

基于XML 的移動終端網(wǎng)絡(luò)瀏覽模型

模型概述

基于XML 的WEB 瀏覽方案是在傳統(tǒng)的客戶/服務(wù)器瀏覽模式中插入中間層。中間層接收客戶端的服務(wù)請求,并與WEB 服務(wù)器通訊以獲取所需要的HTML 文件,將此文件按一定規(guī)范進行過濾,去掉客戶端不需要的標(biāo)簽及內(nèi)容,重新組織成XML格式文件通過無線網(wǎng)絡(luò)傳送給客戶端。經(jīng)由XML解析器以后,調(diào)用GUI 圖形接口函數(shù)將網(wǎng)頁顯示在用戶界面上??蛻舳藶g覽器的控制部分負責(zé)響應(yīng)用戶的請求,并處理與用戶的交互。其結(jié)構(gòu)如圖1。

 

在無線網(wǎng)絡(luò)瀏覽中使用XML 的優(yōu)缺點

可擴展標(biāo)記語言(XML: eXtensible MarkupLanguage) 是用來描述其它語言的元語言,定義了應(yīng)用間傳遞數(shù)據(jù)的結(jié)構(gòu), 是能用任何編輯器讀取的文本。利用這種機制,程序員可制定底層數(shù)據(jù)交換的規(guī)范,并在此基礎(chǔ)上開發(fā)整個系統(tǒng)的各個模塊,模塊間傳輸符合既定規(guī)則的數(shù)據(jù),適合計算機間傳送結(jié)構(gòu)化數(shù)據(jù)。

每種瀏覽器內(nèi)置的文檔解析器是最核心的部分之一,影響瀏覽器的運行效率和空間效率。由于XML 統(tǒng)一定義了其文檔解析器的標(biāo)準接口規(guī)范——DOM( Document Object Model),即文檔對象模型,使得應(yīng)用程序可按需選擇、更換合適的解析器,無須對程序本身做大的改動。在瀏覽模型中, 將HTML 解析等計算量大的任務(wù)交由中間層服務(wù)器完成, 客戶端進行較為簡單的XML 解析, 符合瘦客戶機/ 服務(wù)器的信息應(yīng)用體系模式。當(dāng)前使用XML 最大的問題是支持XML 的應(yīng)用程序還不多, 許多具體應(yīng)用還需要開發(fā)人員自行設(shè)計。

中間層實現(xiàn)的機制和原理

選擇VC++ 6.0 為中間層的集成開發(fā)環(huán)境,中間層運行在后臺服務(wù)器上, 采用模塊化的設(shè)計。每個模塊作為一個常規(guī)動態(tài)鏈接庫( Regular DLL )單元, 由后臺服務(wù)器需要時動態(tài)加載。

(1) 數(shù)個無線MODEM通過多串口卡連接在后臺服務(wù)器上構(gòu)成無線MODEM 池,為多個移動終端用戶提供服務(wù)??蛻舳伺c服務(wù)器建立連接時, 先申請MODEM 池中的空閑資源并建立與后臺服務(wù)器連接, 發(fā)送客戶端瀏覽器服務(wù)請求,任務(wù)完成后釋放MODEM 資源。如沒有可用資源,等待一定時間后重新申請。

(2) 后臺服務(wù)器通過有線網(wǎng)絡(luò)接入Internet,使用標(biāo)準WWW 協(xié)議棧(HTTP、TCP/IP 等)。與WEB 服務(wù)器通訊時主要使用CInternetSession,CHttpConnection 和ChttpFile 等3 個MFC 類。核心代碼如下:

C I n t e r n e t S e s s i o n s e s s i o n ;

C H t t p C o n n e c t i o n * p S e r v e r = N U L L ;

C H t t p F i l e * p F i l e = N U L L ;

AfxParseURL(pURL,…);

初始化完成后, 將客戶端的服務(wù)請求轉(zhuǎn)化為標(biāo)準統(tǒng)一資源定位符( URL : Uniform ResourceLocator ), 并調(diào)用全局函數(shù)AfxParseURL 分析映射此URL。

pServer = session.GetHttpConnection();

pFile = pServer->OpenRequest();

pFile->AddRequestHeaders();

pFile->SendRequest();

打開客戶端請求特定HTTP 連接,向WEB 服務(wù)器發(fā)送相應(yīng)HTTP 請求消息。

pFile->ReadString();

WEB 服務(wù)器返回響應(yīng)消息, 調(diào)用CHttpFile類ReadString 函數(shù)取得返回數(shù)據(jù), 完成與WEB 服務(wù)器通訊。

(3) 選擇Dillo project 瀏覽器中的解析引擎作為解析過濾和組裝模塊的核心, 流程如圖2。

 

HTML 解析部分對輸入的HTML 數(shù)據(jù)流按HTML 語法特點逐字符分解成三類:

① Space 數(shù)據(jù)類型: 所有ASCII 碼值在0x09- 0x0d 或0x20 的字符代表空格或占位信息。經(jīng)Space_proces 部分處理,以確定其長度。為保持HTML 排版格式基本不變,此類數(shù)據(jù)全部保存在生成的XML 文件中。

② Tag 數(shù)據(jù)類型: 表示HTML 數(shù)據(jù)流中的所有標(biāo)簽。由于HTML 語法規(guī)則的限制,必須檢查標(biāo)簽的有效性,例如<input> 標(biāo)簽必須存在于<form>標(biāo)簽之中。為此建立一堆棧存放標(biāo)簽信息,堆棧中的所有元素構(gòu)成了當(dāng)前HTML 文本處的現(xiàn)場信息。遇到新標(biāo)簽,首先按照HTML 語法規(guī)則將新標(biāo)簽與當(dāng)前狀態(tài)信息進行比較,確認有效后,將當(dāng)前標(biāo)簽信息( 包括標(biāo)簽名及屬性)入棧,在標(biāo)簽結(jié)束處將此信息出棧,此過程由Tag_process 部分完成。同時建立一數(shù)組保存需要保留的標(biāo)簽名, 數(shù)組具體元素可根據(jù)用戶需要進行增減。將每個經(jīng)檢驗有效的標(biāo)簽與數(shù)組中元素進行逐個對比以確定標(biāo)簽是否加入XML 文件中,通過這樣的篩選, 來減小無線傳輸量。

③ Word 數(shù)據(jù)類型:需要顯示的文本信息。此部分信息經(jīng)Word_process 處理后,全部加入到XML 文件中。

④ 最后將XML 文件通過無線網(wǎng)絡(luò)傳輸給客戶端瀏覽器。由于無線通訊環(huán)境數(shù)據(jù)傳輸?shù)牟淮_定性和不穩(wěn)定性,定義了HTML 轉(zhuǎn)換模塊通訊子模塊-PDA:

協(xié)議格式:FramHead(0x01)+ASCII 數(shù)據(jù)長度( 6bytes) 指令+ 空格+ ASICII 數(shù)據(jù)+ FramTail(0x02)

支持指令OK FAIL

其中第一個字段表示數(shù)據(jù)幀頭第二個字段表示數(shù)據(jù)總長度以10 進制表示最大不超過999999字節(jié)指令字段表示中間層服務(wù)器工作狀態(tài)成功則返回OK 最后為幀尾通過檢驗幀頭和幀尾來確定數(shù)據(jù)傳輸?shù)耐暾院蜏蚀_性。

經(jīng)測試經(jīng)過中間層過濾掉Java Script 和一些動態(tài)圖片并保留了網(wǎng)頁的主要信息前提下網(wǎng)頁體積只有原來的10%左右適宜在GSM 等低速無線網(wǎng)絡(luò)上傳輸。

客戶端瀏覽器的實現(xiàn)機制

客戶端平臺采用嵌入式Linux 工作流程如下

(1) 瀏覽器啟動后首先初始化XmlBrowser結(jié)構(gòu)此結(jié)構(gòu)包括瀏覽器當(dāng)前URL 顯示結(jié)構(gòu)入口指針及保存已瀏覽的歷史URL 成員結(jié)構(gòu)體等初始化后通過客戶端通訊模塊向中間層發(fā)送請求消息其通訊子模塊中間層服務(wù)器通訊子模塊格式如下:

協(xié)議格式FramHead(0x01) 總長度(4bytes)指令空格URL 字符串? [POST DATA]

FramTail(0x02)支持指令GET POST HEAD前兩個字段分別表示幀頭和數(shù)據(jù)長度后四個字段遵循HTTP 協(xié)議支持標(biāo)準HTTP 三種指令最后為幀尾。

(2) 瀏覽器收到中間層返回數(shù)據(jù)后先檢驗數(shù)傳中無數(shù)據(jù)丟失后將此XML 數(shù)據(jù)流送入XML解析器選擇可為Gnome Linux 主要窗口管理環(huán)境之一提供XML 支持的XML Library 中的XML解析器它遵循標(biāo)準DOM 接口可將DOM 看作標(biāo)準的連接文檔和應(yīng)用程序或腳本語言的結(jié)構(gòu)體系其提供給用戶一個接口以裝載定位操作和序列化XML 文檔基于DOM 的XML 解析器將XML 文檔轉(zhuǎn)換成對象模型的集合通常為樹狀結(jié)構(gòu)通過遍歷整棵樹來訪問XML 文檔任意處的內(nèi)容和結(jié)構(gòu)信息。

(3) 從XML 解析到XML 文本的顯示步驟

  

從流程圖圖3 可見底層GUI 接口調(diào)用和上層顯示模塊是分開的顯示模塊完成對全部具體元素的顯示信息的計算后向底層GUI 接口形函數(shù)發(fā)出服務(wù)請求底層GUI 對服務(wù)請求進行響應(yīng)完成屏幕繪制采用該結(jié)構(gòu)應(yīng)用程序開發(fā)員無需了解底層圖形引擎的實現(xiàn)機理和技術(shù)細節(jié)只要保持兩者間的接口不變系統(tǒng)底層圖形函數(shù)庫的升級將不會影響現(xiàn)有軟件。

進入顯示的DOM 數(shù)據(jù)流元素分為兩類一類是在屏幕顯示區(qū)域上顯示的對象如輸入框<input> 鏈接<a>和文本等元素另類為Container容器如表格行<tr> 表格單元<td> 等元素不顯示在屏幕上每個顯示對象都處在特定Container中以此來確定它與其它顯示對象間的相對位置關(guān)系整個屏幕顯示區(qū)域視為最外層的容器包含了實際顯示對象和下層容器以此類推構(gòu)成了整個顯示結(jié)構(gòu)顯示結(jié)構(gòu)完成后計算每個元素的實際顯示位置通過遍歷整個顯示結(jié)構(gòu)依據(jù)顯示區(qū)域長寬計算每個顯示對象的坐標(biāo)超出顯示區(qū)域長度的部分使用滾動條來訪問。

(4) 瀏覽器與用戶交互的管理

該管理由瀏覽器的虛擬控制器完成瀏覽器的整個屏幕除了頁面顯示區(qū)域外還分為滾動條和系統(tǒng)區(qū)域系統(tǒng)區(qū)域上為用戶提供了一些定制的功能如前進后退頁面刷新等通過點擊滾動條區(qū)域可以上下移動屏幕。

結(jié)束語

基于XML 的移動終端網(wǎng)絡(luò)瀏覽方案既考慮到現(xiàn)有網(wǎng)絡(luò)數(shù)據(jù)結(jié)構(gòu)以HTML 為主的現(xiàn)狀又可滿足未來網(wǎng)絡(luò)向XML 方向發(fā)展的趨勢并已在我所自行研發(fā)的移動終端上運行成功滿足了流動性很強的特殊行業(yè)對信息瀏覽和查詢的需要。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

今天,微軟為Win11推送了22H2版本Release預(yù)覽版的KB5019509更新,在現(xiàn)有22H2穩(wěn)定版的基礎(chǔ)上,提前加入了部分新功能。在KB5019509更新中,Win11終于加入了用戶翹首以盼的標(biāo)簽式文件資源管理器...

關(guān)鍵字: WIN 微軟 RELEASE 瀏覽器

北京2022年9月14日 /美通社/ -- 9月5日在北京落幕的2022年中國國際服務(wù)貿(mào)易交易會(CIFTIS)舉辦期間,許多國際企業(yè)與中國簽署了合作協(xié)議,深化服務(wù)貿(mào)易合作,反映了中國市場對外國投資的強大吸引力。 9月...

關(guān)鍵字: 高通公司 BSP COM HTML

近日,信通院公布的移動終端行業(yè)數(shù)據(jù)表明,2022年上半年國內(nèi)智能手機出貨量為1.34億部,同比下降了21.7%,這個數(shù)據(jù)成為了7年以來最低數(shù)據(jù)。而小米等一些手機廠商逐步進入新能源汽車領(lǐng)域,一定程度上表明了移動終端市場的低...

關(guān)鍵字: 手機 新能源汽車 移動終端

北京2022年8月26日 /美通社/ -- 華東地區(qū)江西省南昌縣一年一度的經(jīng)貿(mào)活動“蓮花經(jīng)貿(mào)文化節(jié)”近日開幕,旨在展示當(dāng)?shù)匕l(fā)展情況,招商引資。 圖為2022年8月18日在江西省南昌縣舉行的第六屆蓮花經(jīng)貿(mào)文化節(jié)開幕式。...

關(guān)鍵字: COM HTML 半導(dǎo)體 新材料

北京2022年8月22日 /美通社/ -- 隨著蜜桃產(chǎn)業(yè)的繁榮發(fā)展,中國東部的山東省蒙陰縣的當(dāng)?shù)剞r(nóng)民在夏季不僅享受著蜜桃的芬芳,還獲得可觀的收入。 圖為山東省蒙陰縣兩個果農(nóng)收獲蒙陰蜜桃。[照片提供給新華絲路] 蒙陰擁...

關(guān)鍵字: AD BSP COM HTML

QQ瀏覽器是騰訊科技(深圳)有限公司開發(fā)的一款瀏覽器,其前身為TT瀏覽器。QQ瀏覽器秉承TT瀏覽器1-4系列方便易用的特點,但技術(shù)架構(gòu)不同;交互和視覺表現(xiàn)也重新設(shè)計。

關(guān)鍵字: QQ 瀏覽器 IE

舉個單位的例子吧,我們單位前幾年請外邊的網(wǎng)絡(luò)公司開發(fā)一個網(wǎng)上報賬APP,所有人員報賬只需將相關(guān)報賬票據(jù)上傳網(wǎng)上后,一切審批流程都在網(wǎng)上流轉(zhuǎn)。

關(guān)鍵字: 工程師 IE 瀏覽器

微軟Edge瀏覽器將在2029年或更晚的時間點前繼續(xù)支持IE模式。因此,網(wǎng)站只要與之前的網(wǎng)頁引擎兼容,就不會遇到問題。不過,微軟在推廣Edge瀏覽器時的步子很大。微軟將在未來幾個月“穩(wěn)步”將用戶從IE引導(dǎo)至Edge瀏覽器...

關(guān)鍵字: 微軟 IE 瀏覽器

在2022年6月補丁中,Internet Explorer瀏覽器正式退出歷史舞臺。微軟表示從現(xiàn)在起IE瀏覽器不會有任何的錯誤或者漏洞修復(fù),希望用戶切換到Microsoft Edge瀏覽器上。

關(guān)鍵字: 瀏覽器 Internet Explorer

摘要:近年來,越來越多的智能鎖控系統(tǒng)應(yīng)用于電力系統(tǒng)中,有效提升了電力系統(tǒng)在設(shè)備安全方面的管理水平,提高了工作效率。但當(dāng)前所采用的智能鎖控系統(tǒng)并沒有針對智能鑰匙的遠程授權(quán)問題提供一個安全高效的解決方案。現(xiàn)介紹一種移動終端遠...

關(guān)鍵字: 智能鎖控 移動終端 遠程授權(quán)

嵌入式教程

6897 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉