1.简介

自从1998年推出无线应用协议(WAP)后,该协议得到了包括Nokia、Motorola、Ericssion等多家大公司在内的业界的广泛支持。各公司除尽快的推出自己的产品,以期占有市场外,还在不遗余力的进行着协议的扩充和新应用的开发工作。推送(PUSH),这项在Internet中曾一度引起过轰动的技术,在同移动通信相结合后,再次被认为有着良好的应用前景。

所谓推送技术是一种基于客户服务器机制,由服务器主动的将信息发往客户端的技术,其传送的信息通常是用户所事先预定的。同传统的拉技术(PULL)相比,两者最为主要的区别在于前者的是由服务器主动发送信息,而后者则是由客户机主动请求信息。

2.推送技术与移动通信的结合

推送技术的本质在于让信息去主动的寻找用户,因此其优势在于信息的主动性和及时性,通过使用该技术,可以尽快的将信息推送到用户面前;其弱势在于信息的准确性较差,由于简单的筛选机制取代了人工的选择,必然会使推送信息和用户的需求间存在一定的差异。

推送技术在Internet中没能取得巨大的成功,原因是多方面的。在固定网中,计算机等固定设备为用户提供了足够的资源和能力去查找信息,所以人们通常将它作为一个浏览信息的窗口,而不是被动的信息接收者,用户对于信息准确性的要求也远胜于对其及时性的要求,因此很难期望推送技术在Internet中的成功。

在移动网中,由于存在着网络带宽,移动设备能力及高昂的资费标准等诸多的限制,使得用户无法象在固定网中一样方便的查找信息,这就需要将重要的信息主动及时的推送到用户的移动设备中。移动通信的优点是可以及时方便的发送和接收信息,由于公共通信接入点的普及,使得发送信息的优势不再明显,而及时的接收信息仍然是移动设备所独具的优势。移动的话音业务是将语音信息推送到用户,而WAP中的推送技术则是要将包括文字、声音、图像等在内的数字信息推送给用户。所以,扬长避短正是推送技术同移动通信结合的合理性所在。

将推送技术应用于移动通信领域可以带来许多电信增值业务。这包括移动中收发电子邮件,随时获得股价的涨跌信息,天气预报,及时的新闻报道,位置相关服务等。所有这些服务的共同特点在于用户对信息的及时性的要求比较高,用户希望能够通过手机,PDA等移动设备随时随地的的到该种服务。

3.WAP中的推送技术

无线应用协议在1.2版本的规范中定义了推送技术,提出了一套完整的从服务器到客户端的协议规范,其体系结构图如图一所示。

图一、WAP推送技术体系结构图

推送框架主要包括推送发起者(PI)、推送代理网关(PPG)和推送客户(PC)三个功能部份。PI位于Internet中,通过推送访问协议(PAP)同PPG通信,PPG是Internet网和移动网之间的访问接入点,通过推送空间传输协议(P-OTA)完成从PPG到推送客户的数据传输任务。基本的工作过程如下:当有消息要推送到客户时,PI首先根据消息的内容和性质构造推送消息,通过PAP协议向PPG发出推送请求,PPG收到请求后进行一些必要的处理工作(包括压缩、协议转换、安全认证等),然后通过P-OTA协议将推送内容传送给客户端。客户端收到推送消息后,根据消息内容和服务类型同用户进行交互。WAP的推送协议中针对不同的用户需求定义了服务指示和服务加载两种服务,可根据推送消息的性质选择使用。

从实现的角度看,一般PI是运行于Internet端的一台独立的服务器,负责收集推送信息和发起推送请求。由于PPG和客户端间的通信是由运行于WSP之上的P-OTA协议完成,所以PPG通常是和WAP网关集成在一起。在客户端,为了能够随时收到来自PPG的推送消息,必须在后台始终运行一个推送消息监听程序。另外,由于面向连接的推送请求需要在客户端和服务器端有激活的WSP会话,而WSP连接的建立无法由服务器端发起,所以在客户端中引入了会话初始化程序,以监听来自服务器的会话建立请求,建立并激活WSP会话。

下面分别介绍推送技术的几个关键组成部份:

⑴ 推送代理网关(PPG)

推送技术的主要处理工作基本都集中在PPG中,作为Internet到移动网的访问接入点,即要与PI通信,又要负责通过无线信道传输推送信息,所以必须负责所有相关的协议转换和编码工作。概括讲,PPG所提供的主要服务包括:

q PI的标识和鉴权,访问控制。

q 对推送内容进行语法分析,并依据DTD检错纠错。

q 客户寻址与信息的传输。

q PAP与P-OTA间的协议转换。

q 为提高无线信道中的传输效率,对信息进行处理(如压缩、编译等)。

另外,PPG还可以通过别名机制实现组播和广播,即将某些特定的地址别名映射到组播或广播操作,具体的实现方案可以由系统实现者决定。不同的客户端,其能力是不同的,PPG还要负责响应PI的客户能力查询请求,以便于PI针对不同的客户端构造合适的内容格式。

⑵ 推送访问协议(PAP)

PAP是PI与PPG间的通信协议,它使用XML作为消息的描述语言,通过简单的请求响应机制完成数据的传输。PAP可以实现在多种通信协议之上,包括HTTP,SMTP等。目前的WAP版本仅给出了利用HTTP隧道机制实现PAP的规范。PAP支持的操作包括:

q 推送消息提交:PI使用该操作向PPG提交推送请求,推送消息包括XML格式的控制信息,消息体和一个可选的客户能力描述三部份,共同组成一个多部相关的消息(multipart/related)。

q 确认通知:当PI请求确认的推送时,该操作用于传输确认消息。

q 推送取消:PI请求PPG取消先前的推送请求。

q 状态查询:PI利用该操作查询先前的推送请求的执行状况。

q 客户能力查询:PI可利用该操作查询客户端的能力,以调整传送给用户的推送内容及格式。

⑶ 推送空间传输协议(P-OTA)

P-OTA是运行于WSP之上的一层较为简单的协议层,负责从PPG到客户代理的数据传输。P-OTA可使用面向连接的会话和无连接会话两种WSP层服务,对于使用连接会话的推送,需要在PPG和客户端间预先存在一个激活的会话上下文;对于无连接的推送,则通过预留的端口完成通信。

⑷ 服务指示(SI)和服务加载(SL)

推送消息送到移动设备后,通常只需显示给用户即可,但用户可能会有些不同的需求。WAP的推送协议中定义了服务指示和服务加载两项服务,以给用户和网络运营者更多的选择。服务加载是将一项服务的URI推送给用户,然后客户端自动的使用拉技术根据该URI启动服务。服务指示是将新信息的指示和相关的URI推送给用户,由用户选择是立即处理信息或以后处理。两种服务的区别在于用户是否介入推送信息的处理过程。SL对推送信息的处理对用户来说是透明的,而SI则在指示用户的同时,请用户对随后的处理做出选择。

4.WAP推送技术的实现

本节以一个电子邮件系统为例,简单的探讨了WAP推送技术的实现。在Internet中,电子邮件系统已相当的普遍,但是收发电子邮件通常还是限制在固定的PC机完成,信息的及时性大打折扣。虽然GSM的短消息功能也可提供邮件功能,但是信息量小(160个字符),类型单一(仅限于文本),远不能满足用户的需要,所以可以利用WAP的推送技术来实现移动电子邮件功能。基本的设计构想如图二所示。

图二、移动email系统设计构想

希望实现的功能包括:

q 服务的登记与取消

q 邮件到来通知(响铃或振动,并提供邮件头部信息)

q 利用手机阅读邮件

q 利用手机发送邮件

q 利用手机配置服务

整个邮件系统由以下几部份组成:

q 邮件服务器:该部份即位于Internet中的普通的邮件服务器,负责用户邮件的收发工作。

q POP3邮件代理:该部份使用POP3协议与邮件服务器进行通信,并负责推送消息的发起,是整个系统运行的核心组成部份。它维护着一个用户数据库,记录所有登记该服务的用户的信息,包括电子邮件地址、POP3服务器地址、账号、配置、手机号码等,采用轮询的机制通过Internet定期检查各邮件服务器,如发现某用户有新邮件,则取得邮件的部份信息(如收发人、时间、主题等)作为指示内容,并以PI的地址作为URI,共同构成服务指示消息,然后依据该用户的手机号对移动设备寻址,使用PAP协议向PPG提出推送请求。

q 推送代理网关:PPG收到推送消息后对信息进行鉴权,包括消息是否来自合法的推送服务器,用户是否登记,消息格式是否符合DTD语法等。对于合法信息利用WBXML格式进行压缩,然后通过P-OTA协议传送给对应用户的手机。

q 移动设备:包括邮件应用程序和服务加载器,服务加载器负责监控推送消息的到达,当收到合法的推送消息时,以振动或响铃的方式通知用户新邮件的到达,并将指示消息中邮件头部信息显示给用户。这时候,用户可选择立即启动服务或是推迟服务。

系统的工作流程如下:

⑴ POP3代理以一定的时间间隔,使用POP3协议检查各用户是否有新邮件到达,若有则取回邮件的头部信息。

⑵ POP3代理作为推送的发起者,依据收到的邮件头部信息和数据库信息向相应的用户发起推送请求。

⑶ PPG对推送的消息进行鉴权和格式检查后,压缩成适合无线链路传输的二进制消息发送给指定的用户。

⑷ 客户端的服务加载器检测到推送消息后,提醒用户新邮件的到达,然后根据用户的选择启动或推迟服务。

⑸ 若用户选择立即阅读邮件,则将启动客户端的邮件程序,以用户账号作为参数,依据指示消息中携带的URI向PI发出WSP GET请求。

⑹ PPG对WSP请求进行协议转换,向POP3代理发出HTTP GET请求。

⑺ POP3代理收到请求后,代理客户从对应的POP3服务器上取得邮件,并构造成WML页面,然后作为请求的响应返回客户端。

从具体的实现上看,现有的许多WAP网关产品,如Nokia WAP Server,都集成了PPG的功能,提供了对推送技术的支持,另外,越来越多的移动设备开始支持WAP协议,推送功能也在逐渐的得到支持,所以实现的重点就集中在了POP3代理上。这部份的功能可实现在一台同PPG和Internet同时有连接的计算机上。需要运行两个服务器程序,一个支持text/wml类型的WEB服务器,用以响应PPG的HTTP请求,返回邮件页面。另一个特定的监控程序,用以不断的检测与接收新邮件,构造推送消息和WML页面。需要另外说明的是,以上的设计主要是针对利用推送功能实现邮件的接收,对于邮件的发送,则可使用基本的WSP功能实现。

5.发展前景

推送技术结合了自身的优势和移动通信服务的特性,应将有着良好的应用前景。但是推送技术仍然存在着一些亟待解决的问题,如信息的鉴权与认证、信息的准确性问题、如何避免垃圾信息等。如何解决好这些问题将是推送技术成功的关键。另外,随着GPRS技术和3G无线通信技术的发展,无线信道的带宽将逐步增大,在无线信道上推送多媒体信息也将成为可能。

WAP中推送技术的分析与设计相关推荐

  1. Web端服务器推送技术原理分析及dwr框架简单的使用

    转载:http://blog.csdn.net/shimiso/article/details/8151362 1 背景 "服务器推送技术"(ServerPushing)是最近We ...

  2. 服务器推送技术原理分析及dwr框架简单的使用

    1        背景 "服务器推送技术"( ServerPushing)是最近 Web技术中最热门的一个流行术语.它是继" Ajax "之后又一个倍受追捧的  ...

  3. 新浪微博技术架构分析和设计

    第一部分:新浪微博技术架构 新浪微博在2014年3月公布的月活跃用户(MAU)已经达到1.43亿,2014年新年第一分钟发送的微博达808298条,如此巨大的用户规模和业务量,需要高可用(HA).高并 ...

  4. Android之基于xmpp openfire smack开发之Android消息推送技术原理分析和实践[4]

    http://blog.csdn.net/shimiso/article/details/8156439 前面几篇给大家系统讲解的有关xmpp openfire smack asmack相关的技术和使 ...

  5. 软考高级-系统架构师-案例分析-架构设计

    本篇博文目录: 考点分析 一.软件架构风格 1.基本概念 2.真题案例分析 二.质量属性与架构评估 1.基本概念 2.案例分析 三.Web架构综合考查 1.Web服务器技术演变 (1) 负载均衡技术 ...

  6. 网络流量分析 NetFlow是什么 详解 科普 ~互联网业务流量监测技术的应用和设计---perfect

    前言 随着宽带互联网在中国的迅速发展,全国各大电信运营商的网络规模都在不断扩张,网络结构日渐复杂,网络业务日趋丰富,网络流量高速增长.电信运营商需要通过可靠.有效的网络业务流量监测系统对其网络以及网络 ...

  7. SaaS模式、技术与案例详解——第9章 SaaS平台基础组件分析与设计

    本章导读语] 所有真正杰出的设计一旦被设计好,看起来都是那么的简单和显而 易见.但是在获得杰出设计的过程中,需要付出令人难以置信的努力 ________Michael Abrash<波斯王子:时 ...

  8. webservice入参是一个对象_程序员技术精进:面向对象与服务的分析与设计

    面向对象分析与设计 面向对象分析与设计是指根据面向对象方法学对软件系统进行分析与设计.在面向对象分析与设计的定义中有三个关键词:面向对象.分析.设计.所以,为了更好地理解面向对象分析与设计的作用,我们 ...

  9. UML2面向对象分析与设计 -- 面向对象思维(概念、面向对象技术的发展历史、对象和类、面向对象技术的相关原则:抽象 封装 分解 泛化 多态 分层 复用)

    文章目录 1. UML2面向对象分析与设计 学习目标 2. 面向对象思维 2.1 学习目标 2.2 什么是面向对象 2.3 面向对象技术的发展历史 2.4 面向对象技术的优势 2.4.1 便于沟通:在 ...

  10. 数据中心液冷技术发展分析

    电力信息与通信技术,中国知网 | 来源 数据中心液冷技术发展分析 | 题目 王艳松1,张琦2,孙聪3,庄泽岩2,黄子轩2,翟天一4 | 作者 1国网北京市电力公司,2华为技术有限公司,3中国信息通信研 ...

最新文章

  1. 日访问量百亿级的应用如何做缓存架构设计
  2. EL表达式 (详解)
  3. python PyQt5 QVBoxLayout 垂直布局管理
  4. 寄存器(内存访问)---汇编学习笔记
  5. [pytorch ] (a) must be greater or equal to the number of dimensions (b)
  6. 【小米校招笔试】给定一些线段,线段有起点和终点,求这些线段的覆盖长度,重复的部分只计算一次
  7. sqoop把mysql数据导入hive
  8. nfsd linux是什么进程,Linux 下的 NFS 系统简介
  9. 新AirPods渲染图曝光:采用黑白灰金四种配色
  10. java-----抽象类与接口
  11. 初识STM32与其选型
  12. 基于Java毕业设计中国古诗词学习平台源码+系统+mysql+lw文档+部署软件
  13. Log Parser Lizard(日志分析工具)v6.7.1官方版
  14. applicationContext.xml的头文件
  15. Java 数据持久化系列之JDBC
  16. python控制示波器获取波形_三种方法教你用示波器快速捕获异常
  17. 【超详细】全国大学生软件测试大赛:移动应用测试参赛指南
  18. AI上推荐 之 SDM模型(建模用户长短期兴趣的Match模型)
  19. PythonOCC封装:2.重新封装pythonocc
  20. mysql utl_file_利用UTL_FILE包实现文件I/O操作

热门文章

  1. 零基础如何学习C语言
  2. 微信小程序 购物车代码
  3. JSP实用教程 第三章 JSP内置对象
  4. ★★★★★手把手教你如何利用凤凰实现破 解后台权限以及升级固件(刷机)★★★★★
  5. 山东科技大学c语言答案,C语言练习题(山东科技大学吐血整理)
  6. 简单返回顶部代码及注释说明
  7. 【求助】想知道Xcode怎么像devc一样调试程序
  8. 服务器VM虚拟机更换序列号,修改vmware虚拟机硬盘序列号id 献给初学者:谈谈如何学习Linux操作系统(3)...
  9. aix查询服务器内存序列号_AIX查看cpu_内存序列号
  10. 14道Python基础练习题(附答案)