PUSH,即推送,是指在服务端信息更新后自动通知终端更新的技术。
终端要获取服务器信息,有两种方式,1种是终端发起连接后检查服务器查询是否有更新,如果有则同步更新。另1种就是通过PUSH技术,在服务器有更新后直接将信息PUSH到终端上。
通过PUSH技术,可以使使用者在任何时候都不需要主动发起连接,而能直接获取最新的信息。
目前使用PUSH技术较多的应用是MAIL,Push Mail指的是利用推送技术,将电子邮件直接传送到移动终端。简单的说,就是系统直接将电子邮箱中刚刚收到的邮件即时发送到用户的手机中,不像传统移动邮件系统那样必须依赖移动终端定期接收邮件或用户主动检查邮箱,所以客户终端上时刻都能够与所指定的信箱维持同步的资料,就好像收发短信一样的方便快捷。
PUSH技术的应用不仅仅是MAIL,还有更多,比如说IM应用,RSS应用等等等等。
2、PUSH的难点
PUSH技术的难点在于服务器无法定位终端位置,即服务器在有了更新后,由于不知道终端位置,因此无法将信息推送给终端。
为什么会这样?先从GPRS网络拓扑图说起。
(见最后附件图)
在GPRS网络拓扑图中,注意HLR/AUC,即归属用户位置寄存器/用户鉴权服务器。此服务器的作用为存储手机位置(基站)信息与开机鉴权。
在手机开机后,会向GPRS网络上报IMSI/IMEI/KI数据,网络鉴权通过后,将手机的位置信息存储在HLR中。
在手机的位置发生变化后,也会向网络上报,网络侧会更新相关数据。
通过HLR,在PHONE/MMS业务发生时,网络侧才能及时发现被叫方的位置,及时连接相关业务。
而在数据业务上,就不是这么处理了。
手机与INTERNET的连接是通过GPRS骨干网进行连接,即手机先通过GPRS骨干网获得一个临时IP,而后通过这个临时IP访问INTERNET。
INTERNET对于位置的访问是通过IPV4(IPV6)方案,即IP地址进行访问的。
由于运营商的IP限制,手机在获得临时IP后,若一段时间内没有数据流量产生,则运营商将收回此IP。
通过以上描述,可以理解以下观点:
1、 PHONE/SMS业务,为什么能及时发送到被叫方?因为是通过HLR定位。
2、 INTERNET数据业务是通过IP定位终端,对于手机而言,此IP是临时分配的,在没有数据流量时,此IP被运营商网络回收,这就造成了INTERNET无法获得手机的位置,因此也无法将即时信息PUSH到手机上。
3、PUSH的方案
由于HLR是运营商内部网络的服务器,因此不太可能开放给其他服务提供商。在没有运营商支持的情况下,也有一些“伪push"的方案,以下简单介绍。
3.1、终端定时PUSH
这种PUSH方式是最简单的PUSH,简而言之,就是让终端在设定的时间内,自动连接服务器查询是否有新的信息,如果有就DOWNLOAD,类似FOXMAIL、OUTLOOK的自动收取邮件原理。
如果设定的时间短,则在应用上体现出一种即时收取的效果,例如设定时间为5分钟,则服务器上若有新信息,则这条信息将在5分钟内同步到手机上。
此方案的优点为简单,不需要手机侧、网络侧做更多设计。
此方案的缺点为以下几点:
Ø 产生不必要的流量支出,若服务器无更新,则在同步过程中会产生不必要的流量支出。
Ø 电量损耗增加,频繁的同步会造成电量的损耗。
Ø 及时性不够,若将时间设置较短,则会增加流量费用与电量损耗,若将时间设置较长,则无法及时收取信息。
采用这种方式的PUSH应用有RSS等。
3.2、“心跳”PUSH
这种PUSH方式是指手机一直发起数据业务,挂靠在运营商网络,以达到占用临时IP的目的。在IP固定的情况下,若服务器有信息更新,则直接通过占用的IP将信息PUSH到手机上。
这种方式的实现是指手机在较短的时间内,不停的向运营商网络发送“心跳”数据包,维持网络连接。
此方案的优点为即时性强,是一种真正的PUSH方式。
此方案的缺点为以下几点:
Ø 产生不必要的流量支出,由于要占用IP,因此要发送大量的“心跳”数据包,产生流量支出。
Ø 电量损耗大,此方式一直在维持网络连接,因此需要大量的电力(目前的MODEM技术似乎还没办法将这块功耗降低)。
Ø 占用IP,对运营商的资源也是种浪费。
采用此种方式的PUSH应用有IM软件,如手机QQ、MSN等。
3.3、短信PUSH
这种PUSH方式的构造相对复杂。
这种PUSH方式的原理为,使用者将手机号码与服务帐号(如邮箱帐号)在服务器上绑定登记,服务器在此服务帐号有新信息后,查询绑定的手机号码,通过短信网关给此号码发送特定的短信通知,手机在收到短信通知后,启动数据连接至服务器收取新信息。
此方案的优点为节约电力,即时性强。
此方案的缺点为以下几点:
Ø 产生不必要的短信费用支出,此部分费用若运营商不愿意承担(非运营商主导的业务),则需要服务提供商或用户承担。
Ø 系统构造复杂,在服务器侧,需要构造业务服务器与短信网关,同时对网关的性能压力也需要仔细评估。在手机侧,则需要对通知短信做屏蔽处理(在ANDROID系统中是对FRAMEWORK层进行处理)。
Ø 可提供的应用比较单一,目前使用此类PUSH方式的应用基本上都为MAIL,如需扩展到其他应用,如BLOG,RSS,需要重新规划接口,重复成本较高。
采用此种方式的PUSH应用目前有彩信、MAIL服务。
(注:是否可使用其他运营商提供的基础服务作为通知载体,如USSD协议?)