摘要:在移动网络中应用的推(PUSH)技术——WAP PUSH既有信息发送主动、及时的特点,又有可随时随地接收信息的优势,因而具有良好的应用前景。介绍了WAP PUSH系统框架、推送协议和推送方式;通
过WAP PUSH在消息通知系统中的应用实例,说明了信息推送过程,给出了系统模型、工作流程和消息格式。
关键词:无线应用协议,推技术,推送代理网关,服务指示
<script language=JavaScript>
</script>
<script language=JavaScript>
</script>
过WAP PUSH在消息通知系统中的应用实例,说明了信息推送过程,给出了系统模型、工作流程和消息格式。
关键词:无线应用协议,推技术,推送代理网关,服务指示
一、WAP PUSH技术简介
1. WAP PUSH的概念
所谓推(PUSH)技术是一种基于客户服务器机制、由服务器主动将信息发往客户端的技术,其传送的信息通常是用户事先预订的。同传统的拉(PULL)技术相比,最主要的区别在于前者是由服务器主动向客户机发送
信息,而后者则是由客户机主动请求信息。PUSH技术的优势在于信息的主动性和及时性,而弱势则是信息的准确性较差。
PUSH技术在Internet中没能取得大的成功,原因是多方面的。在固定网中计算机等固定设备为用户提供了足够的资源和能力去查找信息所以用户通常将它作为一个浏览信息的窗口,而不是被动的信息接收者
。固定网用户对于信息准确性的要求远甚于对其及时性的要求。
而在移动网中,由于存在着网络带宽、移动设备能力以及高昂的资费标准等诸多限制,用户无法像在固定网中一样方便地查找信息,如果将重要的信息主动及时地推送到用户的移动设备上无疑会大大方便用户。移动通信的
优点是移动设备能够随时随地接收信息因此PUSH技术可以在移动网中大显身手,WAP PUSH正是PUSH技术和移动通信两者扬长避短相结合的产物。
WAP PUSH是在移动网络中应用的PUSH技术它既具有一般PUSH技术的特点又拥有移动网络的特点。它的系统框架、使用协议和服务方式与固定网上的PUSH技术有很大不同。
2. WAP PUSH系统框架
WAP PUSH框架主要包括推送发起者(PI:PUSH Initiator)、推送代理网关PPG:PUSH Proxy Gateway和推送客户PC:PUSH Client三个功能部分。P
I位于Internet中,而PC在WAP领域,PI和WAP客户端所使用的协议是不同的,需要在中间建立一个协议转换网关即PPG。PPG通过推送访问协议(PAP:PUSH Access Protocol)
与PI通信,通过推送空间传输协议(PUSH OTA:PUSH over-the-Air)完成向客户推送信息的数据传输任务。
PPG完成推送体系结构中的大部分工作,包括从Internet到移动网的访问接入,以及与其有关的认证、安全、客户端控制等所有工作。概括地讲,PPG所提供的主要服务包括:
·PI的标识、鉴权和访问控制;
·对推送内容进行语法分析,并依据数据类型定义(DTD)检错纠错;
·客户寻址与信息传输;
·PAP与PUSH OTA间的协议转换;
·为提高无线信道中的传输效率,对信息进行压缩、编译等处理。
另外,PPG还可以通过别名机制实现组播和广播,即将某些特定的地址别名映射到组播或广播的操作中,具体方案可以由系统实现者决定。不同的客户端,其能力是不同的,PPG还要负责响应PI的客户能力查询请求,
以便于PI针对不同的客户端构造合适的内容格式。
3. 推送协议
PAP是PI与PPG间的通信协议,它使用可扩展标记语言(XML)作为消息的描述语言,通过简单的请求响应机制完成数据的传输。PAP可以在多种通信协议(包括超文本传输协议(HTTP)、简单邮件传输协议
(SMTP)等)之上实现。
而PUSH OTA是运行于无线会话协议(WSP)之上的一个较为简单的协议层,负责从PPG到客户代理的数据传输。PUSH OTA可使用面向连接的会话和无连接会话两种WSP层服务,对于使用连接会话的推
送,需要在PPG和客户端间预先有一个激活的会话上下文;对于无连接的推送,则通过预留的端口来完成通信。
4. 推送服务方式
WAP的推送协议中定义了服务指示(SI:Service Indication)和服务加载SL:Service Load两项服务,以给用户和网络运营者更多的选择。服务指示是将新信息的指示和相关的
通用资源标识符(URI)推送给用户,由用户选择是立即处理信息还是以后处理。服务加载是将一项服务的URI推送给用户,然后客户端自动地使用PULL技术根据该URI启动服务。两种服务的区别在于用户是否介入推
送信息的处理过程。SL对推送信息的处理对用户来说是透明的,而SI则在指示用户的同时,请用户对随后的处理做出选择。
1. WAP PUSH的概念
所谓推(PUSH)技术是一种基于客户服务器机制、由服务器主动将信息发往客户端的技术,其传送的信息通常是用户事先预订的。同传统的拉(PULL)技术相比,最主要的区别在于前者是由服务器主动向客户机发送
信息,而后者则是由客户机主动请求信息。PUSH技术的优势在于信息的主动性和及时性,而弱势则是信息的准确性较差。
PUSH技术在Internet中没能取得大的成功,原因是多方面的。在固定网中计算机等固定设备为用户提供了足够的资源和能力去查找信息所以用户通常将它作为一个浏览信息的窗口,而不是被动的信息接收者
。固定网用户对于信息准确性的要求远甚于对其及时性的要求。
而在移动网中,由于存在着网络带宽、移动设备能力以及高昂的资费标准等诸多限制,用户无法像在固定网中一样方便地查找信息,如果将重要的信息主动及时地推送到用户的移动设备上无疑会大大方便用户。移动通信的
优点是移动设备能够随时随地接收信息因此PUSH技术可以在移动网中大显身手,WAP PUSH正是PUSH技术和移动通信两者扬长避短相结合的产物。
WAP PUSH是在移动网络中应用的PUSH技术它既具有一般PUSH技术的特点又拥有移动网络的特点。它的系统框架、使用协议和服务方式与固定网上的PUSH技术有很大不同。
2. WAP PUSH系统框架
WAP PUSH框架主要包括推送发起者(PI:PUSH Initiator)、推送代理网关PPG:PUSH Proxy Gateway和推送客户PC:PUSH Client三个功能部分。P
I位于Internet中,而PC在WAP领域,PI和WAP客户端所使用的协议是不同的,需要在中间建立一个协议转换网关即PPG。PPG通过推送访问协议(PAP:PUSH Access Protocol)
与PI通信,通过推送空间传输协议(PUSH OTA:PUSH over-the-Air)完成向客户推送信息的数据传输任务。
PPG完成推送体系结构中的大部分工作,包括从Internet到移动网的访问接入,以及与其有关的认证、安全、客户端控制等所有工作。概括地讲,PPG所提供的主要服务包括:
·PI的标识、鉴权和访问控制;
·对推送内容进行语法分析,并依据数据类型定义(DTD)检错纠错;
·客户寻址与信息传输;
·PAP与PUSH OTA间的协议转换;
·为提高无线信道中的传输效率,对信息进行压缩、编译等处理。
另外,PPG还可以通过别名机制实现组播和广播,即将某些特定的地址别名映射到组播或广播的操作中,具体方案可以由系统实现者决定。不同的客户端,其能力是不同的,PPG还要负责响应PI的客户能力查询请求,
以便于PI针对不同的客户端构造合适的内容格式。
3. 推送协议
PAP是PI与PPG间的通信协议,它使用可扩展标记语言(XML)作为消息的描述语言,通过简单的请求响应机制完成数据的传输。PAP可以在多种通信协议(包括超文本传输协议(HTTP)、简单邮件传输协议
(SMTP)等)之上实现。
而PUSH OTA是运行于无线会话协议(WSP)之上的一个较为简单的协议层,负责从PPG到客户代理的数据传输。PUSH OTA可使用面向连接的会话和无连接会话两种WSP层服务,对于使用连接会话的推
送,需要在PPG和客户端间预先有一个激活的会话上下文;对于无连接的推送,则通过预留的端口来完成通信。
4. 推送服务方式
WAP的推送协议中定义了服务指示(SI:Service Indication)和服务加载SL:Service Load两项服务,以给用户和网络运营者更多的选择。服务指示是将新信息的指示和相关的
通用资源标识符(URI)推送给用户,由用户选择是立即处理信息还是以后处理。服务加载是将一项服务的URI推送给用户,然后客户端自动地使用PULL技术根据该URI启动服务。两种服务的区别在于用户是否介入推
送信息的处理过程。SL对推送信息的处理对用户来说是透明的,而SI则在指示用户的同时,请用户对随后的处理做出选择。
二、WAP PUSH应用实例
PUSH技术最常用于消息通知系统中,而通知系统可以应用于各种行业,如证券、银行和商务网站等。本文以通知系统模型为例描述WAP PUSH技术的工作原理。
1. WAP PUSH通知系统模型
WAP PUSH通知系统模型主要由数据库、WAP服务器(也是PI)、PPG和手机浏览器组成。数据库主要由地址信息表组成, WAP服务器以无线标记语言(WML)网页形式存储通知内容,同时WAP服务器
还充当PI。PPG收到推送消息后对信息进行鉴权、编码和协议转换。而手机浏览器则用来接收推送消息和浏览通知页面。
2. 系统的工作流程
当要加入新的通知时,管理人员通过人机界面以WML网页形式把通知添加到WAP服务器中,同时将条件输入到信息地址表中搜索适合条件的通知对象及其手机号码。地址信息表中含有用户预订的信息。WAP服务器得到
通知对象地址表后,向PPG发送SI消息。SI消息包括通知WML链接和推送对象的地址表。SI的具体发送步骤如下:
(1)PI通过PAP协议指令PPG发送一个SI到移动客户端,PI给SI提供适当的消息和指向通知服务的URI;
(2)PPG对推送的消息进行鉴权和格式检查后,压缩成适合无线链路传输的二进制消息,并使用PUSH OTA协议发送给指定的用户;
(3)移动客户端收到这个包含SI的推送信息后,把SI中的消息显示给用户客户端给用户提供两种选择:立即访问或推迟访问。本流程以立即访问为例;
(4)移动客户端依据SI中携带的URI,用无线会话协议请求方法(WSP GET)向PI发出请求,即传统的PULL方式;
(5)PPG对WSP GET请求进行协议转换,并用超文本传输协议请求方法(HTTP GET)向WAP服务器发出文本请求;
(6)WAP服务器响应HTTP GET请求,向PPG发送WML文件;
(7)PPG把WML文本文件编译成二进制码,传给客户端;
(8)客户端接收WML文件并浏览会议通知。
3. 推送消息格式
推送消息一般包括三部分:控制实体、内容实体和能力实体6。在多部分(multipart)消息中,控制实体包括所有相关的控制信息,内容实体包括发给无线设备的内容,能力实体则包括用户代理结构(USP
ROF)格式的客户能力。控制实体含有PAP单元的XML文档,每个PAP请求和响应中必须有控制实体。内容实体的类型可以是任何类型,只要它被多用途网际邮件扩充协议(MIME)描述过。内容实体仅包含在推送提
交的消息中。能力实体包含PI假定的无线设备或用户代理的能力,如果不存在就按默认值确定无线设备或用户代理的能力。以下是PI向PPG发送的SI消息,如果把内容实体改成SL的内容,则消息就成为SL消息。
PUSH技术最常用于消息通知系统中,而通知系统可以应用于各种行业,如证券、银行和商务网站等。本文以通知系统模型为例描述WAP PUSH技术的工作原理。
1. WAP PUSH通知系统模型
WAP PUSH通知系统模型主要由数据库、WAP服务器(也是PI)、PPG和手机浏览器组成。数据库主要由地址信息表组成, WAP服务器以无线标记语言(WML)网页形式存储通知内容,同时WAP服务器
还充当PI。PPG收到推送消息后对信息进行鉴权、编码和协议转换。而手机浏览器则用来接收推送消息和浏览通知页面。
2. 系统的工作流程
当要加入新的通知时,管理人员通过人机界面以WML网页形式把通知添加到WAP服务器中,同时将条件输入到信息地址表中搜索适合条件的通知对象及其手机号码。地址信息表中含有用户预订的信息。WAP服务器得到
通知对象地址表后,向PPG发送SI消息。SI消息包括通知WML链接和推送对象的地址表。SI的具体发送步骤如下:
(1)PI通过PAP协议指令PPG发送一个SI到移动客户端,PI给SI提供适当的消息和指向通知服务的URI;
(2)PPG对推送的消息进行鉴权和格式检查后,压缩成适合无线链路传输的二进制消息,并使用PUSH OTA协议发送给指定的用户;
(3)移动客户端收到这个包含SI的推送信息后,把SI中的消息显示给用户客户端给用户提供两种选择:立即访问或推迟访问。本流程以立即访问为例;
(4)移动客户端依据SI中携带的URI,用无线会话协议请求方法(WSP GET)向PI发出请求,即传统的PULL方式;
(5)PPG对WSP GET请求进行协议转换,并用超文本传输协议请求方法(HTTP GET)向WAP服务器发出文本请求;
(6)WAP服务器响应HTTP GET请求,向PPG发送WML文件;
(7)PPG把WML文本文件编译成二进制码,传给客户端;
(8)客户端接收WML文件并浏览会议通知。
3. 推送消息格式
推送消息一般包括三部分:控制实体、内容实体和能力实体6。在多部分(multipart)消息中,控制实体包括所有相关的控制信息,内容实体包括发给无线设备的内容,能力实体则包括用户代理结构(USP
ROF)格式的客户能力。控制实体含有PAP单元的XML文档,每个PAP请求和响应中必须有控制实体。内容实体的类型可以是任何类型,只要它被多用途网际邮件扩充协议(MIME)描述过。内容实体仅包含在推送提
交的消息中。能力实体包含PI假定的无线设备或用户代理的能力,如果不存在就按默认值确定无线设备或用户代理的能力。以下是PI向PPG发送的SI消息,如果把内容实体改成SL的内容,则消息就成为SL消息。
Content-Type multipart/related
type=″application/xml″
Content-Type application/xml
<﹖xml version=″1.0″﹖>
<DOCTYPE pap PUBLIC ″-//WAPFORUM//DTD PAP 1.0//EN″
″http//www.wapforum.org/DTD/pap_1.0.dtd″>
<pap>
<push-message push-id=″9fjeo39jf084@wap.dhu.edu.cn″>
<address address-value=″wappush=13818115588/TYPE=PLMN @ppg.carrier.com ″>
</address>
</push-message>
</pap>
Content-Type application/xml
<﹖xml version=″1.0″﹖ >
<DOCTYPE si PUBLIC ″-//WAPFORUM//DTD SI 1.0//EN″
″http//www.wapforum.org/DTD/si.dtd″>
<si>
<indication href=http//wapdhu.edu.cn/notice/100.wml>
created=″2002-09-01T15.23.15Z″
si-expires=″ 2002-09-05T00.00.00Z″
You have a new meeting notice.
</indication>
</si>
Content-Type application/xml
<﹖xml version=″1.0″﹖>
<rdfRDF xmlnsrdf=″http//www.w3.org/1999/02/22-rdf-syntax-ns#″
xmlnsprf=″http//www.wapforum.org/UAPROF/ccppschema1.0#″>
<--WAP Browser vendor site Default description of WAP properties -->
<rdfDescription>
<prfWapVersion>1.1</prfWapVersion>
<prfWmlDeckSize>1400 octets</prfWmlDeckSize>
<prfWapDeviceClass>A </prfWapDeviceClass>
<prfWapPushMsgSize>1400 octets</prfWapPushMsgSize>
<prfWmlVersion>
<rdfBag>
<rdfli>1.1</rdfli>
</rdfBag>
</prfWmlVersion>
</rdfDescription>
</rdfRDF>
<script language=JavaScript>
</script>
type=″application/xml″
Content-Type application/xml
<﹖xml version=″1.0″﹖>
<DOCTYPE pap PUBLIC ″-//WAPFORUM//DTD PAP 1.0//EN″
″http//www.wapforum.org/DTD/pap_1.0.dtd″>
<pap>
<push-message push-id=″9fjeo39jf084@wap.dhu.edu.cn″>
<address address-value=″wappush=13818115588/TYPE=PLMN @ppg.carrier.com ″>
</address>
</push-message>
</pap>
Content-Type application/xml
<﹖xml version=″1.0″﹖ >
<DOCTYPE si PUBLIC ″-//WAPFORUM//DTD SI 1.0//EN″
″http//www.wapforum.org/DTD/si.dtd″>
<si>
<indication href=http//wapdhu.edu.cn/notice/100.wml>
created=″2002-09-01T15.23.15Z″
si-expires=″ 2002-09-05T00.00.00Z″
You have a new meeting notice.
</indication>
</si>
Content-Type application/xml
<﹖xml version=″1.0″﹖>
<rdfRDF xmlnsrdf=″http//www.w3.org/1999/02/22-rdf-syntax-ns#″
xmlnsprf=″http//www.wapforum.org/UAPROF/ccppschema1.0#″>
<--WAP Browser vendor site Default description of WAP properties -->
<rdfDescription>
<prfWapVersion>1.1</prfWapVersion>
<prfWmlDeckSize>1400 octets</prfWmlDeckSize>
<prfWapDeviceClass>A </prfWapDeviceClass>
<prfWapPushMsgSize>1400 octets</prfWapPushMsgSize>
<prfWmlVersion>
<rdfBag>
<rdfli>1.1</rdfli>
</rdfBag>
</prfWmlVersion>
</rdfDescription>
</rdfRDF>
4.PPG处理SI消息的流程
PPG是整个推送过程的关键。PPG首先要鉴别PI的合法性,鉴别PI的方法主要有:使用会话层的认证(如传输层安全(TLS)和安全套接层(SSL)协议)以及对象层认证(签名和加密)等,然后再根据SI的
DTD格式检查SI的语法,最后根据SI所提供的客户端地址发送紧凑的二进制码格式的SI消息。如果未能通过,就将发送失败的原因发回PI。
PI 要能够发送相同的消息给多个接收者,而不应分别向每个接收者提交多个相同的推送消息。PI提交有多个地址的消息后,PPG必须在结果通知里包含每个接收者的情况。
客户端寻址是PPG的一项重要任务。PI使用特定的文本地址格式来标识客户端,PPG必须把这些地址转换成可以在无线网络中传输的形式;相反,PPG必须能把符合无线网络规定的地址转换成文本地址形式,用来同
PI通信。客户端地址由客户端标识符和PPG标识符组成。客户端标识符主要有用户自定义标识符和设备地址两种,都由标识符本身和地址类型两部分组成7。本系统使用设备地址方式,即手机号码标识符,其格式为:
WAPPUSH =+13818115588/TYPE=PLMN @ppg.carrier.com
其中,客户端标识符即手机号码13818115588,类型为公用陆地移动网(PLMN);PPG标识符为ppg.carrier.com。PPG依据地址寻找PUSH客户端。
三、结 语
WAP PUSH技术结合了PUSH技术的优势和移动通信服务的特性,具有良好的应用前景。将PUSH技术应用于移动通信领域可以产生许多电信增值业务这包括移动中收发电子邮件,随时获得股价信息、天气预报
、新闻以及位置相关服务等。所有这些服务的共同特点在于用户对信息的及时性要求比较高,用户希望能够通过手机、PDA等移动设备随时随地地得到该种服务。本文中的通知系统正是WAP PUSH的一个应用实例,它能
够向用户及时地发送通知,具有很大的实用价值。但是,WAP PUSH技术仍然存在着一些亟待解决的问题,如信息的鉴权与认证、信息的准确性、如何避免垃圾信息等。如何解决好这些问题将是WAP PUSH技术成功
的关键。另外,随着GPRS技术和3G无线通信技术的发展,无线信道的带宽将逐步增大,WAP PUSH也将能进一步推送多媒体信息。
<script language=JavaScript>
</script>
PPG是整个推送过程的关键。PPG首先要鉴别PI的合法性,鉴别PI的方法主要有:使用会话层的认证(如传输层安全(TLS)和安全套接层(SSL)协议)以及对象层认证(签名和加密)等,然后再根据SI的
DTD格式检查SI的语法,最后根据SI所提供的客户端地址发送紧凑的二进制码格式的SI消息。如果未能通过,就将发送失败的原因发回PI。
PI 要能够发送相同的消息给多个接收者,而不应分别向每个接收者提交多个相同的推送消息。PI提交有多个地址的消息后,PPG必须在结果通知里包含每个接收者的情况。
客户端寻址是PPG的一项重要任务。PI使用特定的文本地址格式来标识客户端,PPG必须把这些地址转换成可以在无线网络中传输的形式;相反,PPG必须能把符合无线网络规定的地址转换成文本地址形式,用来同
PI通信。客户端地址由客户端标识符和PPG标识符组成。客户端标识符主要有用户自定义标识符和设备地址两种,都由标识符本身和地址类型两部分组成7。本系统使用设备地址方式,即手机号码标识符,其格式为:
WAPPUSH =+13818115588/TYPE=PLMN @ppg.carrier.com
其中,客户端标识符即手机号码13818115588,类型为公用陆地移动网(PLMN);PPG标识符为ppg.carrier.com。PPG依据地址寻找PUSH客户端。
三、结 语
WAP PUSH技术结合了PUSH技术的优势和移动通信服务的特性,具有良好的应用前景。将PUSH技术应用于移动通信领域可以产生许多电信增值业务这包括移动中收发电子邮件,随时获得股价信息、天气预报
、新闻以及位置相关服务等。所有这些服务的共同特点在于用户对信息的及时性要求比较高,用户希望能够通过手机、PDA等移动设备随时随地地得到该种服务。本文中的通知系统正是WAP PUSH的一个应用实例,它能
够向用户及时地发送通知,具有很大的实用价值。但是,WAP PUSH技术仍然存在着一些亟待解决的问题,如信息的鉴权与认证、信息的准确性、如何避免垃圾信息等。如何解决好这些问题将是WAP PUSH技术成功
的关键。另外,随着GPRS技术和3G无线通信技术的发展,无线信道的带宽将逐步增大,WAP PUSH也将能进一步推送多媒体信息。