当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于XML的移动终端网络浏览方案

摘要:基于XML的移动终端网络浏览方案是在传统客户/ 服务器浏览模式中插入中间层,中间层在后台服务器上运行,接收客户端服务请求,并与WEB 服务器通讯以获取需要的HTML 文件。并按照规范过滤此文件,重新组织XML 格式的文件,通过无线网络传入客户端。客户端平台采用嵌入式Linux,根据需要自由裁减,经XML 解析后,调用GUI 函数显示网页。
关键词:嵌入式浏览器移动终端;XML;解析器

引言

移动终端受移动性和便携性的制约,CPU 主频及计算能力较小,存储器容量、显示屏和输入设备大小也受到限制。同时,无线数据网带宽、连接可靠性及网络可预测性相对较低, 网络时延比有线网大。如果将移动终端通过无线方式直接接入Internet,技术实现有困难。近年业界提出:一是重写现有Internet 协议,使其与现有协议兼容,让移动设备透过微浏览器( Micro-Browser) 能通过无线网络使用Internet 上所提供的针对WAP 特别定制的资讯及服务。另是将移动终端当作功能简化的PC,并内置HTML 浏览器,虽可自由访问现有网络, 但由于现有Internet 网站网页大量采用Flash、Shockwave 等技术,导致其体积庞大, 无线传输中耗时长,还要求移动终端具有较强运算能力,硬件投入较高。为此,对上述方式进行改进, 使其既可满足无线网络传输中数据量小的要求, 又可让用户获取现有网络上的绝大部分资源。

基于XML 的移动终端网络浏览模型

模型概述

基于XML 的WEB 浏览方案是在传统的客户/服务器浏览模式中插入中间层。中间层接收客户端的服务请求,并与WEB 服务器通讯以获取所需要的HTML 文件,将此文件按一定规范进行过滤,去掉客户端不需要的标签及内容,重新组织成XML格式文件通过无线网络传送给客户端。经由XML解析器以后,调用GUI 图形接口函数将网页显示在用户界面上。客户端浏览器的控制部分负责响应用户的请求,并处理与用户的交互。其结构如图1。

 

在无线网络浏览中使用XML 的优缺点

可扩展标记语言(XML: eXtensible MarkupLanguage) 是用来描述其它语言的元语言,定义了应用间传递数据的结构, 是能用任何编辑器读取的文本。利用这种机制,程序员可制定底层数据交换的规范,并在此基础上开发整个系统的各个模块,模块间传输符合既定规则的数据,适合计算机间传送结构化数据。

每种浏览器内置的文档解析器是最核心的部分之一,影响浏览器的运行效率和空间效率。由于XML 统一定义了其文档解析器的标准接口规范——DOM( Document Object Model),即文档对象模型,使得应用程序可按需选择、更换合适的解析器,无须对程序本身做大的改动。在浏览模型中, 将HTML 解析等计算量大的任务交由中间层服务器完成, 客户端进行较为简单的XML 解析, 符合瘦客户机/ 服务器的信息应用体系模式。当前使用XML 最大的问题是支持XML 的应用程序还不多, 许多具体应用还需要开发人员自行设计。

中间层实现的机制和原理

选择VC++ 6.0 为中间层的集成开发环境,中间层运行在后台服务器上, 采用模块化的设计。每个模块作为一个常规动态链接库( Regular DLL )单元, 由后台服务器需要时动态加载。

(1) 数个无线MODEM通过多串口卡连接在后台服务器上构成无线MODEM 池,为多个移动终端用户提供服务。客户端与服务器建立连接时, 先申请MODEM 池中的空闲资源并建立与后台服务器连接, 发送客户端浏览器服务请求,任务完成后释放MODEM 资源。如没有可用资源,等待一定时间后重新申请。

(2) 后台服务器通过有线网络接入Internet,使用标准WWW 协议栈(HTTP、TCP/IP 等)。与WEB 服务器通讯时主要使用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,…);

初始化完成后, 将客户端的服务请求转化为标准统一资源定位符( URL : Uniform ResourceLocator ), 并调用全局函数AfxParseURL 分析映射此URL。

pServer = session.GetHttpConnection();

pFile = pServer->OpenRequest();

pFile->AddRequestHeaders();

pFile->SendRequest();

打开客户端请求特定HTTP 连接,向WEB 服务器发送相应HTTP 请求消息。

pFile->ReadString();

WEB 服务器返回响应消息, 调用CHttpFile类ReadString 函数取得返回数据, 完成与WEB 服务器通讯。

(3) 选择Dillo project 浏览器中的解析引擎作为解析过滤和组装模块的核心, 流程如图2。

 

HTML 解析部分对输入的HTML 数据流按HTML 语法特点逐字符分解成三类:

① Space 数据类型: 所有ASCII 码值在0x09- 0x0d 或0x20 的字符代表空格或占位信息。经Space_proces 部分处理,以确定其长度。为保持HTML 排版格式基本不变,此类数据全部保存在生成的XML 文件中。

② Tag 数据类型: 表示HTML 数据流中的所有标签。由于HTML 语法规则的限制,必须检查标签的有效性,例如<input> 标签必须存在于<form>标签之中。为此建立一堆栈存放标签信息,堆栈中的所有元素构成了当前HTML 文本处的现场信息。遇到新标签,首先按照HTML 语法规则将新标签与当前状态信息进行比较,确认有效后,将当前标签信息( 包括标签名及属性)入栈,在标签结束处将此信息出栈,此过程由Tag_process 部分完成。同时建立一数组保存需要保留的标签名, 数组具体元素可根据用户需要进行增减。将每个经检验有效的标签与数组中元素进行逐个对比以确定标签是否加入XML 文件中,通过这样的筛选, 来减小无线传输量。

③ Word 数据类型:需要显示的文本信息。此部分信息经Word_process 处理后,全部加入到XML 文件中。

④ 最后将XML 文件通过无线网络传输给客户端浏览器。由于无线通讯环境数据传输的不确定性和不稳定性,定义了HTML 转换模块通讯子模块-PDA:

协议格式:FramHead(0x01)+ASCII 数据长度( 6bytes) 指令+ 空格+ ASICII 数据+ FramTail(0x02)

支持指令OK FAIL

其中第一个字段表示数据帧头第二个字段表示数据总长度以10 进制表示最大不超过999999字节指令字段表示中间层服务器工作状态成功则返回OK 最后为帧尾通过检验帧头和帧尾来确定数据传输的完整性和准确性。

经测试经过中间层过滤掉Java Script 和一些动态图片并保留了网页的主要信息前提下网页体积只有原来的10%左右适宜在GSM 等低速无线网络上传输。

客户端浏览器的实现机制

客户端平台采用嵌入式Linux 工作流程如下

(1) 浏览器启动后首先初始化XmlBrowser结构此结构包括浏览器当前URL 显示结构入口指针及保存已浏览的历史URL 成员结构体等初始化后通过客户端通讯模块向中间层发送请求消息其通讯子模块中间层服务器通讯子模块格式如下:

协议格式FramHead(0x01) 总长度(4bytes)指令空格URL 字符串? [POST DATA]

FramTail(0x02)支持指令GET POST HEAD前两个字段分别表示帧头和数据长度后四个字段遵循HTTP 协议支持标准HTTP 三种指令最后为帧尾。

(2) 浏览器收到中间层返回数据后先检验数传中无数据丢失后将此XML 数据流送入XML解析器选择可为Gnome Linux 主要窗口管理环境之一提供XML 支持的XML Library 中的XML解析器它遵循标准DOM 接口可将DOM 看作标准的连接文档和应用程序或脚本语言的结构体系其提供给用户一个接口以装载定位操作和序列化XML 文档基于DOM 的XML 解析器将XML 文档转换成对象模型的集合通常为树状结构通过遍历整棵树来访问XML 文档任意处的内容和结构信息。

(3) 从XML 解析到XML 文本的显示步骤

  

从流程图图3 可见底层GUI 接口调用和上层显示模块是分开的显示模块完成对全部具体元素的显示信息的计算后向底层GUI 接口形函数发出服务请求底层GUI 对服务请求进行响应完成屏幕绘制采用该结构应用程序开发员无需了解底层图形引擎的实现机理和技术细节只要保持两者间的接口不变系统底层图形函数库的升级将不会影响现有软件。

进入显示的DOM 数据流元素分为两类一类是在屏幕显示区域上显示的对象如输入框<input> 链接<a>和文本等元素另类为Container容器如表格行<tr> 表格单元<td> 等元素不显示在屏幕上每个显示对象都处在特定Container中以此来确定它与其它显示对象间的相对位置关系整个屏幕显示区域视为最外层的容器包含了实际显示对象和下层容器以此类推构成了整个显示结构显示结构完成后计算每个元素的实际显示位置通过遍历整个显示结构依据显示区域长宽计算每个显示对象的坐标超出显示区域长度的部分使用滚动条来访问。

(4) 浏览器与用户交互的管理

该管理由浏览器的虚拟控制器完成浏览器的整个屏幕除了页面显示区域外还分为滚动条和系统区域系统区域上为用户提供了一些定制的功能如前进后退页面刷新等通过点击滚动条区域可以上下移动屏幕。

结束语

基于XML 的移动终端网络浏览方案既考虑到现有网络数据结构以HTML 为主的现状又可满足未来网络向XML 方向发展的趋势并已在我所自行研发的移动终端上运行成功满足了流动性很强的特殊行业对信息浏览和查询的需要。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭