iamcxl

记录自己的工作和习惯

[Feature phone系列]浏览器软件架构和实现原理

2007年在手机游览器领域,WAP是主流标准. 当时全球掌握WAP浏览器核心技术的公司大概只有4家:
美国的Openwave(Motorola);

瑞典的Teleca(Obigo);

日本的Access(Netfront);

韩国的Infraware;

手机上浏览器的实现架构分析:

UC,  最先推出C/S(客户端/服务器)处理架构,将主要数据处理内容交由中间件服务器去做,手机端只负责简单的数据加/解密以及页面重排展示,解放了软件对手机硬件的依赖.
Obigo浏览器, 直接在手机本地进行数据解析,对手机硬件性能以及网络状况依赖很大.
EMCS mBrowser, 直接在手机本地进行数据解析,对手机硬件性能以及网络状况依赖很大
Opera Mini,使用C/S架构,但软件对手机硬件有一定的要求.
NetFront, 直接在手机本地进行数据解析,对手机硬件性能以及网络状况依赖很大.

WAP浏览器架构和实现原理:


移动嵌入式设备的局限性:

由于嵌入式设备的CPU能力、屏幕大小、网络环境、内容容量限制等问题,手机上的浏览器的软件架构和实现要比PC复杂一些.

1.CPU:

    一般的feature phone上的主频在104MHz或以上.因此要确保手持设备上的浏览器能够访问web,那么该浏览器应该能够工作在104MHz一下的主频环境.

2.内存:

   目前的feature phone上的RAM配置一般是在4M RAM 和16~32M Nor Flash.

3.显示屏:

   在mobile上,LCD都是比较小的比如:176X220 , 240X320等,现在的智能机很多都开始朝大屏幕发展.由于显示屏的大小的限制,那么UI排版方面就要根据具体的LCD大小做调整.

4.操作方式:

   mobile上的浏览器操作方式已经从键盘操作方式开始往触屏方式演进了.因此对触摸屏gesture事件的支持是必须的.更有甚者还要达到多点触控的效果.

5.低功耗:

    对电池的续航能力是一大考验.


移动嵌入式设备上浏览器的技术点剖析:

1.通信协议:

   Feature phone上必须支持WAP协议[目前的WAP2.0],而且现在也必须要对HTTP协议的完全支持.如果有敏感数据的交互的话,需要使用SSL协议[secure sockets layer].

2.技术规范:

   a. HTML的支持,未来看HTML5了,  [超文本标记语言,Hypertext Markup Language];

   b. CSS的支持,未来看CSS3了,  [Cascading Style Sheets, 层叠样式表单];

   c. XML的支持,支持DOM[Document Object Mode,文档对象模型],W3C 文档对象模型[DOM]是一个使程序和脚本有能力动态地访问和更新文档的内容、结构以及样式的平台和语言中立的接口, 使用DOM接口便捷的访问XML;

   d. JavaScript的支持, JavaScript是一种广泛用于客户端网页开发的脚本语言,最常是于HTML上使用,用来给HTML网页添加动态功能。

   e. 图片和动画格式的支持, Jpeg,BMP,PNG,GIF 和Flash格式的支持;

    f. POP3 和SMTP的支持,这个是可选功能;

目前流行的移动浏览器:

    Opera/UC浏览器/腾讯浏览器/但是这几个都是Smart phone上的弄潮儿.

     Feature phone上有:

     Access EMCS WAP 2.0浏览器:

      

           Teleca的 Obigo浏览器:

                                  

WAP网络架构图:

                                     

WWW模型:

            传统浏览器的客户端服务模式:

                                                                           

                                                                                              WWW logical model


                                                                  

                                                                                        www programming model


WAP model:

                                                                   

                                                                                                 WAP programming model

                                    

                                                                                        Feature/Performance-Enhancing Proxy

WAP Proxy提供了很多功能,包括:
1.Protocol Gateway, 协议网关翻译来自无线协议栈的request到WWW协议[HTTP和TCP/IP].网关同时也根据client请求的URL执行DNS查找服务名.
2.Content Encoder and Decoder, 内容编码被用来转换WAP内容为一种压缩格式,便于压缩后更好的利用下层链路.
3.User Agent Profile Management, 提交给应用程序的描述客户端的容量和性能的配置文件.
4.Caching Proxy, 通过维护频繁访问资源的cache,来提升性能和网络利用率的体验.


WAE模型:

                  WAE是基于无线通讯网络开发应用和服务的一个行业标准和规范, 是一个在手持移动终端上被标记语言[包括WML和XHTML]、脚本、层叠样式表、电话服务以及编程接口使用的微型浏览器环境.

                                       

                                                                                                WAE Model



WAE环境架构:

         从下图来看,WAE包含两个逻辑层:

         1> User agents, which includes such items as browsers, phonebooks, message editors, etc;
         2> Services and Formats, which include common elements and formats accessible to user agents such as WML, WMLScript, image formats, vCard and vCalendar formats, etc.

                                               

                                                                                        WAE Client Components

用户代理是在移动终端上用于解释和执行内容的软件。 WAE中的用户代理包括WML用户代理和WTA(无线电话应用)用户代理,当然也可以有对应于其他应用的其他用户代理。

WML用户代理,是基本的用户代理,支持WML和 WMLScript,可以向WAP网关发出请求,接收WAP网关发送过来的内容(WBXML或 WMLScript字节码),正确解释、执行并显示

WTA[Wireless Telephony Application] user agent,  是一组对电话呼叫和特征控制机制所做的特定扩展,向内容创建者和最终用户提供高级移动网络服务.


WML 用户代理逻辑架构

                                                  

                                                                                           WML User Agent Logical Architecture

WML 是WAP定义的一种XML文档类型,它以HTML 和HDML为基础,针对无线网络和移动终端的特点做了简化和优化,因此,从语法、语义到文档结构都与HTML非常相似.

在WAP中,一个WML文档称为一个“deck”,一个 “deck”内包含若干个“card”,“card”是用户浏览和交互的单元,包含了呈现给用户的信息以及用于收集用户输入的指令.

WMLScript 是用于 WML 页面的脚本语言;
WML 页面可以在 WAP 浏览器中显示;
WMLScript 用于验证用户输入、生成对话框、显示出错消息以及访问用户代理设备等等;

WMLScript在WAP浏览器运行之前,需要先在Server上编译成字节码;

WMLScript并不嵌在WML页面中,WML页面仅仅包含对WMLScript URL的引用;


WAP客户端架构

                                                                

                                                                                                        WAP Client Architecture

WIM,Wireless Identity Module,包含设备标识符和加密信息,意味着
EFI,External Functionality Interface


WAP 详细架构

                                                     

                                                                                                            WAP stack architecture

WAP1.x 和WAP2.0协议架构比较

                                   

                                        WAP1.x                                                                                                                                                      WAP2.0 

          现在基本上都是双栈架构.


浏览器工作原理:

                      

                                                                                                   浏览器的软件架构

现在开始看看WAP browser的架构:

                        

                                                                                             WAP浏览器的软件架构


其实看上面两个架构其实很相似的,只是WAP浏览器多了WML的解析,以及WML script引擎.因为WAP的页面格式就是基于WML的,而且脚本语言是基于WML script的.

随着手机终端的硬件的不断提升,以及未来网络带宽的升级.WAP浏览器和PC端的浏览器差异会越来越小.


WAP浏览器的访问网络的过程

          1.设置接入点名称[APN]:

              // APN, Access Point Name

               AT+CGDCONT=1,"IP","CMNET" //通发送AT指令来设置移动网关的接入点

           2.拨号

              ATD*98#   //通过PPP协议拨号连接, 连接成功后手机终端就可以访问网络了.

           整个过程和PC拨号上网过程一样.


到此,关于WAP浏览器的实现原理和架构大概就这些.

              

 

阅读更多
版权声明:本文为博主原创文章,未经博主允许可以随意转载。 https://blog.csdn.net/iamcxl369/article/details/7731773
个人分类: 手机软件开发笔记
上一篇[Feature phone 系列]字符信息的显示和绘制原理
下一篇[Ubuntu, ThinkPad E420] Wifi 不能联网问题
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭