技术中心
 
 

基于XML的移动终端网络浏览方案

   日期:2008-03-25     作者:管理员    

  摘要:基于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 的优缺点

  可扩展标记语言(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.GetHttpCo

nnection();

  pFile = pServer->OpenRequest();

  pFile->AddRequestHeaders();

  pFile->SendRequest();

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

  pFile->ReadString();

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

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

基于XML的移动终端网络浏览方案如图

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

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

  ② Tag 数据类型: 表示HTML 数据流中的所有

标签。由于HTML 语法规则的限制,必须检查标签的有效性,例如 标签必须存在于

示在屏幕上每个显示对象都处在特定Container中以此来确定它与其它显示对象间的相对位置关系整个屏幕显示区域视为最外层的容器包含了实际显示对象和下层容器以此类推构成了整个显示结构显示结构完成后计算每个元素的实际显示位置通过遍历整个显示结构依据显示区域长宽计算每个显示对象的坐标超出显示区域长度的部分使用滚动条来访问。

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

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

  结束语

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


 

 
  
  
  
  
 
更多>同类技术
 
全年征稿 / 资讯合作
 
推荐图文
推荐技术
可能喜欢