WAP PUSH浅谈(转载)

WAP Push是要将互联网上的信息主动推送到用户的手机等移动终端上。达到这个目标需要解决如下两个问题:

(1)互联网服务器如何主动地连通位于无线网络上的手机,通信问题。

(2)互联网上的信息内容采用什么格式,数据表现问题。

WAP论坛(现在归到OMG)在2000年时就提出了WAP1.2规范,相比WAP1.1增加的主要内容就是WAPPush的整个体系。WAPPush分为ConfirmedPush,即需要对方回送接收确认信息的Push,和无连接模式的Push,即发送出去后,是否收到不管了。

整个WAP框架包括PI(PushInitiator,即互联网的服务器)、PPG(PushProxyGateway,一般为WAP网关)、移动终端三大部分。PI到PPG之间是基于HTTP的PAP(PushAccessProtocol)协议(PPG和PI互为HTTP服务器),PPG到移动终端之间是OTA(Over-The-Air)协议。

基本流程是互联网的服务器将要发送的信息内容,采用XML表现形式,通过PAP协议发送给WAP网关。这里发生了很多细节过程后(计费、SP标识、访问控制、信息内容二进制压缩编码、终端发现、终端能力特性检查、终端地址解析),通过OTA协议将内容发送到手机上(2.0以下的规范用OTA-WSP,2.0以上的规范用OTA-HTTP)。

这是很理想的目标,可是在目前全球所有运营商部署的无线网络那里,实现这个基本都不现实。第二代无线网络GSM/CDMA95A是基于信令的电路交换的通信技术,并不支持IP协议,能进行WAP这样数据业务,需要先在信令协议栈上借用modem拨号机制封装成IP/PPP包。WAP网关通过信令网找到手机并建立WSP会话的连接,是不可能实现的。第二代半过渡性的网络技术GPRS/CDMA1.x理论上是可以让手机永久在线,拥有固定的IP地址,可现实并不是如此。空中信道的有限容量、计费管理、网络容量等方面都不成熟,所以,移动终端要像一台服务器那样,接收并处理WAP网关随时发起的主动连接请求,只能等到第三代无线网络技术全面普及的那一天了。

正是由于上述局限,目前,在世界各地,所有运营商和所有方案供应商那里,都采用SMS方式承载OTA侧的推送。SMS是信令通道上传输的,处于网络覆盖中的手机通过BTS、BSC、MSC与短信中心随时随地可以相互通信。所以,作为这种服务器到终端的信息传输载体,SMS是最适合不过了。

中国移动和中国联通都对SP提供了WAPPush接口,他们是通过WAP网关与短信中心的接口用SMS发送到手机上。既然他们也是用短消息来实现的,那么,如果我拥有一个短信发送通道,从理论上说,自然而然也可以发送WAPPush。

下面要说的就是WAPPush的信息表现形式问题。WAPPush的内容有两种,一种是SI,serviceindication;另一种SL,serviceloading。这两种内容类型的目的都是发送URL链接到手机上。SI是以异步方式发送一个通知、警示、提醒等信息到手机上,用户会看到屏幕上显示这条通知文字内容,然后,提示你是否去那个页面,如果去,手机将激活为WAP浏览器,打开这个链接,浏览其内容。SL则是直接发送一个URL链接到手机上,手机不会给用户任何提示,自动地启动WAP微浏览器,下载这个URL对应的内容,显示在手机上。让人觉得好像是推送了一个页面下来了似的。MMS就是利用这个机制实现的。

至于为什么不直接发送一个基于XML的WML页面(包括多媒体信息图像、声音),WAP论坛的规范设计者找了一通理由,说这种方式存在很多弊病,所以,WAPPush就没有直接推送内容的规范了。我想未来3G肯定会有这样的规范出台。

目前大部分手机并没有实现对SL的支持,近几年新出的WAP浏览器版本高点的手机基本都支持SI(OEMOpenwave微浏览器的手机如果WAPBrowser版本在4.0以上的都支持)。国产手机基本都是贴牌生产,内核全是国外的,所以,国内手机技术现状基本跟欧洲一样的格局。

中国联通的WAP网关和WAPPush业务都是有Openwave提供,Openwave出于对市场的垄断和控制,在CDMA手机上的WAPPush支持非常封闭保守,有些接口没有遵循国际规范,通过联通的短信中心发送WAPPush的SI消息到CDMA手机上,只能借用联通和OpenWave提供的接口标准。

下面介绍如何,通过中国移动的SMS接口发送SI到其GSM/GPRS手机上?