一种基于流的移动数据实时转换系统.pdf
http:/ -1-一种基于流的移动数据实时转换系统一种基于流的移动数据实时转换系统 李淑卿,杨俊 北京邮电大学计算机科学与技术学院,北京(100876)E-mail:, 摘摘 要:要:文章提出并实现了一种基于流模式将 WEB 内容实时转换为 WAP 内容的新方案。该方案能够为用户保留 Cookie,维持 Session,提高用户再次访问相同资源的速度,并且支持移动终端的自动适配显示,并且支持中文显示。经过测试,该方案在性能和转换效果的表现上优于其它系统。关键词:关键词:转换,HTML,WML,WAP,DOM 中图分类号:中图分类号:TP391 1.引言引言 随着移动互联网的不断发展,移动用户渴望得到像 Internet 上一样丰富的内容。WAP(Wireless Application Protocol)1的出现使移动用户能快速、安全地访问 Internet。但是,由于 WAP 使用的语言是 WML(Wireless Markup Language)2和 XHTML3(The Extensible Hypertext Markup Language),而 WEB 使用 HTML 语言,并且很多 WEB 网站是为 PC 用户设计的。所以目前 WAP 用户只能浏览专门的 WAP 网页,不能访问海量的 HTML 网页。另一方面,由于移动设备的传输速度、网络带宽、网络稳定性、显示屏幕的大小和分辨率、应用环境都有所不同,如何突破现有的终端设备、网络、政策等诸多限制是内容传输必须考虑的问题。考虑到兼容原来的数据,把以往积累下来的 HTML 文档在新的环境下继续使用,将这些文档向 WML 转换无疑是一个解决办法。HTML 向 WML 转换还有利于对网页信息进行集成、提取、检索、过滤或挖掘分析。目前能够将 WEB 内容转换为 WAP 内容的转换系统有:Infogin、Mobileware、Volantis和 Picsel,但多数只提供英文网站的转换,或者对中文支持的不完善;Haygo,它提供了特定网页的转换,但不具有通用性。为了使移动用户能够访问目前海量的 WEB 内容,本文提出了一个基于流的实时转换系统。该系统通过修改终端用户的请求来实现不同用户终端访问它们在通常情况下难以访问的数据内容,支持中文网页的转换,支持终端适配;保留客户端的 Cookie,维持 Session;对WEB 内容进行适当的过滤,过滤垃圾信息,以适合客户小屏幕的特点;基于结构和文本的转换相结合,转换的速度快,效果好;同时支持 WML 和 XHTML 两种转换。2.转换系统的总体方案转换系统的总体方案 用移动设备访问 WEB 内容的策略可分为两种:1)内容处理,包括内容定制和内容转换,前者通过为现有的 WEB 页面生成新版本的 WAP 页面从而适合移动终端访问,后者则通过转换既有的 WEB 页面,使之适合于移动设备访问。2)访问模式,包括客户端处理模式和服务器端处理模式。前者指通过移动设备内的浏览器直接访问 HTML 格式的 WEB 页面,并直接在浏览器上进行布局显示,类似于 PC 的浏览器策略实现访问,而后者指在浏览器和原始 WEB 服务器之间增加转换服务器。所有的请求发送给转换服务器,转换服务器将对指定的 WEB 内容进行分析转换,并将目标响应回传给移动设备。本文提出的转换系统是基于内容转换和服务器端处理模式相结合的一种方案,网络部署如图1所示:http:/ -2-Internet VLAN 图1 网络部署图 该方案的目的是为网络数据服务提供一个桥梁,即通过转换系统完成接受请求、生成响应等一系列操作。转换系统在接收到用户的请求后,将对请求的内容进行剪裁,产生响应,对响应进行过滤和编码转换,并将目标响应回传给用户,这一系列操作是特定的模块完成的。系统的核心架构将为这些模块服务。系统启动后,客户端只需将本系统所在的主机设置为代理服务器,或者提供给客户端一个特殊的链接,用户就可以访问传统互联网上的网页。依据数据转换的基本原理,基于通用性和可扩充性的特点来设计本系统,系统结构如图 2所示。图2 HTML-WML自适应转换处理过程图 整个系统采用插件体系结构,每个功能形成一个插件。系统核心的插件管理器为管理和注册插件提供服务。如信息过滤和畸变校正等插件等。可以在配置文件中设定所使用的插件以及插件的启用与关闭。添加新的功能模块只需编写好插件后在配置文件中设置即可。插件体系结构使得系统具有良好的可扩展性。系统启动时会装载插件,用户的请求到来后各个插件会按照优先级和触发条件依次处理请求、生成响应、对响应进行修改。http:/ -3-3.转换系统的核心技术转换系统的核心技术 3.1 畸形网页校正畸形网页校正 从网络数据资源中获取一个 HTML 文档的内容,对该 HTML 文档进行规范化检验。所谓规范化是指网页中是否含有没有完全符合 W3C 发布标准的地方。不规范网页如:没有结束标记的标签以及交叉使用的标签等,这些在 HTML 规范中是允许的,然而在 WML 中是不允许的。畸形网页校正可以通过 HTML Tidy4等工具分析一个 HTML 文件的代码,还可以自动进行必需的修改以使代码符合相关标准的要求。若是仍然不符合需求或是还不规范,则可以生成新的插件进行修复,以便得到一个规范化的 HTML 文档。HTML-WML 转换的实现就是基于规范化的 HTML 文档的。3.2 信息过滤信息过滤 信息过滤一方面为过滤掉不良信息,另一方面是考虑到用户移动终端设备的显示和速度的限制,简化页面,提高用户体验。本系统采用的过滤方法是基于文本的。抽取网页内容形成一个字符串,采用正则表达式的方法,针对该字符串进行操作,对正则表达式匹配到的内容在原来的字符串中打上标记,各种匹配结束后,再对打上标记的字符串进行后处理。过滤的信息包括:敏感词、广告等。过滤的内容可以针对特定网页订制,也可以有一个统一的过滤模板。过滤信息的正则表达式符合 java 正则表达式的书写规范,能够存储在配置文件便于修改。下面是针对特定过滤内容的正则表达式的例子:敏感词:女性|房产|旅游、彩铃 等;广告:<ahref="?http:/.*?ad.*?"?.*?>.*?</a>3.3 DOM 树树 DOM 是 document object model(文档对象模型),如果将文档看成一个单独的对象,DOM就是如何用 HTML 或者 XML 对这个对象进行操作和控制的标准。使用 DOM 能够对 HTML文件进行解析和处理,使其符合系统的需求。本文提出的转换系统能够根据 http 请求的头信息判断设备支持的语言类型,如果支持xhtml 则不需要生成 DOM 树,直接转到分页处理插件;否则,需要生成 DOM 树。使用 XML Parser5对规范化后的 HTML 文档进行解析。形成一棵基于文档对象模型即 DOM 的解析树(如图 3)。DOM 树显示了 HTML 文档的层次结构,可以从根节点开始对 HTML 文档进行深度优先遍历,即沿着文档流的方向进行遍历。从而可以到达 HTML DOM 树中的任意一个节点。可以依据 XML Parsre 提供的 API 定义一组函数,以方便访问 DOM 树中的节点:如:将一个节点的所有子节点移动到另一个节点下面并删除该节点。http:/ -4-图 3 DOM 树示例 3.4 HTML 转换为转换为 WML 该模块是本系统的关键所在,转换系统在遇到不同的节点时,根据节点的类型,调用不同的转换规则函数,将 html 标签转换成相应的 wml 标签或者做相应的处理,就能够将 HTML格式文档转换成 WML 格式文档。下面是一些比较重要的转换规则:?HTML:转换成 WML 标签,并将 HTML 的所有子节点移动到 WML 节点下面;?BODY:利用后面的 FONT 节点删除隐形字,转换成带有 P 子节点的 CARD标签,将 BODY 的子节点移动到 P 下面;?HEAD:如果有 base 属性设置一些环境变量并删除,否则直接删除;?META:根据 META 的属性进行处理最后删除该节点:?FORM:根据配置文件中指定的属性是否转换为链接,将 CHECKBOX 转换为下拉框,TEXTAREA 转换为 TEXT,调整布局;?IMG:根据配置文件中的设置转换为文字链接加快页面下载速度;或者将图片调整为适合终端设备的大小,转换灰度并降低其分辨率进行显示;?LI DL DT DD OL UL MENU:消除列表,将列表中的元素以换行隔开显示;?TABLE:删除 WML 不支持的标签,转换为列表。当一个节点处理完成后,如果它的后面有兄弟节点,则对兄弟节点进行处理;否则,返回父节点,对父节点的下一个兄弟节点进行处理。依次递归调用直到整棵树遍历完毕。整个 HTML 文档处理结束后,这一树结构被转换为一个或多个 WML 层面,每个 WML 层面包括一组 WML 卡片。每个 WML 卡片有一个到其直接祖先卡片和下一个子卡片的链接,层次结构的深度不受限制。3.5 自适应终端自适应终端 转换的过程中对不同的终端设备或浏览器的请求,实行不同的自适应转换处理,转换成面向特定设备的网页文件,如手机、移动计算或其它类型的移动终端。例如:转换过程中取得终端设备的分辨率及 decksize 等属性,根据取得的设备的属性对图片作出相应的大小和规格的转换。设备的属性是从开源的 wurfl(Wireless Universal Resource File)6文件中取得的。本系统设计的通用性也体现在这里。3.6 分页处理分页处理 由于终端设备的内存有限,不可能一下接收整个转换后的 WML 文档。取出移动终端的http:/ -5-mexdecksize,根据这个值将转换后的 WML 内容进行分页,如果是 WML 设备的话,每次传一个 deck 缓存到设备中,每次显示一个 card;如果是 XHTML 设备的话,每次传一个maxdecksize 大小的内容到设备中,设备通过拖动滚动条浏览信息。4.系统分析系统分析 本系统的测试过程如下:1)用 Python 编写测试工具;2)将 上 1,2,3 级的所有链接抽取出来,作消重处理,提取其中的非 hao123 的链接作为测试网站;3)将测试网站的首页,及首页上的链接提取,进行消重处理后作为最终测试链接。所有的测试链接将按 HOST 名进行分类集中。4)对所有测试链接网页用多线程方法下载到本地,去除不合法的链接。下载到本地可以保证测试结果可以重复,不会因为网络或者网站本身的变化而影响测试结果。5)通过在 html 文档中加上 http 头来模拟原有网站,测试本系统的转换效果。不重复的主机有 509 个,把无效和超时的链接(下载的大小为零,DNS 解析出错等)去掉,再去掉一些下载速度特别慢的网址(超过 180 秒的),剩余 478 个作为测试网站。网站首页的测试结果:表 1 测试网站的测试结果 网站本身原因导致转换结果为空 0.62%因 JavaScript 转换为空或者畸形或者提示错误 8.40%转换错误网页 1.04%正常转换网页 89.94%从 509 个网址得到 51333 个链接,其中 48510 个链接是可以测试的。这其中测试中使用的链接为 29456,其它的链接,由于文件或者是网络原因,并没有参与到测试中去。下面是测试结果:表 2 测试链接的测试结果 网站本身原因导致转换结果为空 1.05%因 JavaScript 转换为空或者畸形或者提示错误 16.37%转换错误网页 2.20%正常转换网页 80.38%网页中的JavaScript一般是用来增强网页的视觉效果,在本系统中根据自适应转换规则,如果移动终端不支持 JavaScript,则会被过滤掉,同时给用户一个友好的提示;否则保留。转换之前在移动设备上的显示是:排版混乱、乱码或者是不能显示,使用引言中提到的只支持英文网站的系统进行转换的话得到的结果也是这样的。下面是转换之后在手机上的显示效果:http:/ -6-图 4 转换后的手机效果图 在测试的过程中,发现了以下几个问题:1)由于移动设备不支持 JavaScript,使得部分页面得不到有效的动态生成,因此转换出来的结果可能为空,或者是畸形或者是提示页面有错误。2)目前使用的 XML Parse 不足以满足 HTML 最新规范的需求,其容错性也不是很好,3)分页的效果也不是很好,没有加上页码和实现页码之间的跳转以达到比较通用的设计要求。因此,后续的工作主要针对以上几个问题进行展开,使转换的效果更好。5.总结总结 本文提出的方案能够将 WEB 内容实时转换为 WAP 内容,其独创之处主要体现在为用户保留 Cookie,维持 Session,加快用户下次访问相同资源的速度,并且支持中文显示,支持终端适配,以及过滤垃圾信息和同时支持 WML 和 XHTML 等方面,测试结果表明本系统对于主流网页来说具有转换的速度快、效果好等特点。未来在 JavaScript、容错性和分页效果等方面将进一步改进。参考文献参考文献 1(美)Sandeep Singhal 等,移动互联应用开发技术WAP 无线应用协议,机械工业出版社,2002-4 2 弗罗斯特,WML 与 WMLScript 入门,中国电力出版社,2002-3-1 3(美)Steven Holzner,XHTML 技术内幕,机械工业出版社,2001-09 4 HTML Tidy,http:/ wurfl,http:/ 6 Apache,Xerces Parser,http:/xerces.apache.org/7 沈向峰等,基于 Web 内容的自适应页面转换助理,计算机应用,2001,(4):22-24 8 张文斌等,一种基于多叉树的 HTML 到 XML 的转换方法,小型微型计算机系统.2003,(9):1617-1620 9 袁娲等,基于 Web 的新型 WAP 网关服务器研究,北京工商大学学报(自然科学版),2005,(23):63-65 10 Mark Pilgrim,Dive Into Python 中文版(HTML)http:/ -7-A Real-time Mobile Data Transformation Proposal Based on Stream Li Shuqing,Yang Jun College of Computer Science and Technology,Beijing University of Posts and Telecommunications,Beijing(100876)Abstract This paper puts forward a real-time proposal of transforming web content to wap content based on stream.This proposal can retain cookie and maintain session for users,so it accelerates the speed of visiting the same resources next time;support web content being displayed automaticly adapted to the mobile terminals,support Chinese demonstration.The test result demonstrates that the system designed based on the proposal has better performance and transfomation effect than the other existing systems Keywords:Transformation,HTML,WML,WAP,DOM 作者简介:李淑卿,女,河北衡水人,北京邮电大学在读硕士研究生,计算机科学与技术专业,研究方向为计算机应用;杨俊,男,四川成都人,北京邮电大学计算机网络中心副教授,硕士研究生导师。