手机开发实战93——PUSH介绍3
2016-06-07 22:49
288 查看
WAP PUSH应用实例
通知系统实例
PUSH技术最常用于消息通知系统中,而通知系统可以应用于各种行业,如证券、银行和商务网站等。
1 WAPPUSH通知系统模型
WAPPUSH通知系统模型主要由数据库、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 推送消息格式
推送消息一般包括三部分:控制实体、内容实体和能力实体
控制实体包括所有相关的控制信息,含有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//WAP
dhu.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.WAP
forum.org/UAPROF/ccppschema1.0#″>
<--WAP Browser vendor SIte Default
description of WAP properties -->
<rdfDescription>
<prfWAPVerSIon>1.1</prfWAPVerSIon>
<prfWMLDeckSIze>1400 octets</prfWMLDeck
SIze>
<prfWAPDeviceClass>A </prfWAP
DeviceClass>
<prfWAPPUSHMsgSIze>1400 octets</prfWAPPUSH
MsgSIze>
<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标识符组成。客户端标识符主要有用户自定义标识符和设备地址两种,都由标识符本身和地址类型两部分组成。
本系统使用设备地址方式,即手机号码标识符,其格式为:
WAPPUSH =+13818115588/TYPE=PLMN@PPG.carrier.com
其中,客户端标识符即手机号码13818115588,类型为公用陆地移动网(PLMN);PPG标识符为PPG.carrier.com。PPG依据地址寻找PUSH客户端。
电子邮件系统实例
在Internet中,电子邮件系统已相当的普遍,但是收发电子邮件通常还是限制在固定的PC机完成,信息的及时性大打折扣。虽然GSM的短消息功能也可提供邮件功能,但是信息量小(160个字符),类型单一(仅限于文本),远不能满足用户的需要,所以可以利用WAP的推送技术来实现移动电子邮件功能。
希望实现的功能包括:
服务的登记与取消
邮件到来通知(响铃或振动,并提供邮件头部信息)
利用手机阅读邮件
利用手机发送邮件
利用手机配置服务
整个邮件系统由以下几部份组成:
邮件服务器:该部份即位于Internet中的普通的邮件服务器,负责用户邮件的收发工作。
POP3邮件代理:该部份使用POP3协议与邮件服务器进行通信,并负责推送消息的发起,是整个系统运行的核心组成部份。它维护着一个用户数据库,记录所有登记该服务的用户的信息,包括电子邮件地址、POP3服务器地址、账号、配置、手机号码等,采用轮询的机制通过Internet定期检查各邮件服务器,如发现某用户有新邮件,则取得邮件的部份信息(如收发人、时间、主题等)作为指示内容,并以PI的地址作为URI,共同构成服务指示消息,然后依据该用户的手机号对移动设备寻址,使用PAP协议向PPG提出推送请求。
推送代理网关:PPG收到推送消息后对信息进行鉴权,包括消息是否来自合法的推送服务器,用户是否登记,消息格式是否符合DTD语法等。对于合法信息利用WBXML格式进行压缩,然后通过P-OTA协议传送给对应用户的手机。
移动设备:包括邮件应用程序和服务加载器,服务加载器负责监控推送消息的到达,当收到合法的推送消息时,以振动或响铃的方式通知用户新邮件的到达,并将指示消息中邮件头部信息显示给用户。这时候,用户可选择立即启动服务或是推迟服务。
系统的工作流程如下:
⑴ 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功能实现。
四、结语
WAP PUSH技术结合了PUSH技术的优势和移动通信服务的特性,具有良好的应用前景。将PUSH技术应用于移动通信领域可以产生许多电信增值业务这包括移动中收发电子邮件,随时获得股价信息、天气预报、新闻以及位置相关服务等。所有这些服务的共同特点在于用户对信息的及时性要求比较高,用户希望能够通过手机、PDA等移动设备随时随地地得到该种服务。
通知系统实例
PUSH技术最常用于消息通知系统中,而通知系统可以应用于各种行业,如证券、银行和商务网站等。
1 WAPPUSH通知系统模型
WAPPUSH通知系统模型主要由数据库、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 推送消息格式
推送消息一般包括三部分:控制实体、内容实体和能力实体
控制实体包括所有相关的控制信息,含有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//WAP
dhu.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.WAP
forum.org/UAPROF/ccppschema1.0#″>
<--WAP Browser vendor SIte Default
description of WAP properties -->
<rdfDescription>
<prfWAPVerSIon>1.1</prfWAPVerSIon>
<prfWMLDeckSIze>1400 octets</prfWMLDeck
SIze>
<prfWAPDeviceClass>A </prfWAP
DeviceClass>
<prfWAPPUSHMsgSIze>1400 octets</prfWAPPUSH
MsgSIze>
<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标识符组成。客户端标识符主要有用户自定义标识符和设备地址两种,都由标识符本身和地址类型两部分组成。
本系统使用设备地址方式,即手机号码标识符,其格式为:
WAPPUSH =+13818115588/TYPE=PLMN@PPG.carrier.com
其中,客户端标识符即手机号码13818115588,类型为公用陆地移动网(PLMN);PPG标识符为PPG.carrier.com。PPG依据地址寻找PUSH客户端。
电子邮件系统实例
在Internet中,电子邮件系统已相当的普遍,但是收发电子邮件通常还是限制在固定的PC机完成,信息的及时性大打折扣。虽然GSM的短消息功能也可提供邮件功能,但是信息量小(160个字符),类型单一(仅限于文本),远不能满足用户的需要,所以可以利用WAP的推送技术来实现移动电子邮件功能。
希望实现的功能包括:
服务的登记与取消
邮件到来通知(响铃或振动,并提供邮件头部信息)
利用手机阅读邮件
利用手机发送邮件
利用手机配置服务
整个邮件系统由以下几部份组成:
邮件服务器:该部份即位于Internet中的普通的邮件服务器,负责用户邮件的收发工作。
POP3邮件代理:该部份使用POP3协议与邮件服务器进行通信,并负责推送消息的发起,是整个系统运行的核心组成部份。它维护着一个用户数据库,记录所有登记该服务的用户的信息,包括电子邮件地址、POP3服务器地址、账号、配置、手机号码等,采用轮询的机制通过Internet定期检查各邮件服务器,如发现某用户有新邮件,则取得邮件的部份信息(如收发人、时间、主题等)作为指示内容,并以PI的地址作为URI,共同构成服务指示消息,然后依据该用户的手机号对移动设备寻址,使用PAP协议向PPG提出推送请求。
推送代理网关:PPG收到推送消息后对信息进行鉴权,包括消息是否来自合法的推送服务器,用户是否登记,消息格式是否符合DTD语法等。对于合法信息利用WBXML格式进行压缩,然后通过P-OTA协议传送给对应用户的手机。
移动设备:包括邮件应用程序和服务加载器,服务加载器负责监控推送消息的到达,当收到合法的推送消息时,以振动或响铃的方式通知用户新邮件的到达,并将指示消息中邮件头部信息显示给用户。这时候,用户可选择立即启动服务或是推迟服务。
系统的工作流程如下:
⑴ 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功能实现。
四、结语
WAP PUSH技术结合了PUSH技术的优势和移动通信服务的特性,具有良好的应用前景。将PUSH技术应用于移动通信领域可以产生许多电信增值业务这包括移动中收发电子邮件,随时获得股价信息、天气预报、新闻以及位置相关服务等。所有这些服务的共同特点在于用户对信息的及时性要求比较高,用户希望能够通过手机、PDA等移动设备随时随地地得到该种服务。
相关文章推荐
- 玩转Android之Drawable的使用
- 粗浅看 JNDI原理
- 玩转Android之Drawable的使用
- 玩转Android之Drawable的使用
- javascript中闭包的真正作用
- 玩转Android之Drawable的使用
- Spring框架的学习理解
- 内核加载错误module license
- 计算机网络和因特网
- Eclipse中的tomcat怎么加载Maven WEB工程
- 手机开发实战92——PUSH介绍2
- CodeForces 675B Restoring Painting
- 修改、设置mysql的编码方式
- 安卓实现按返回键回到桌面以及再一次按返回键退出应用
- 大数据vs计算机
- Android之PhtoView设置图片放大缩小后,图片显示在界面上左上角的解决办法
- 大数据vs计算机
- SpringMVC静态资源映射配置
- windows消息机制(MFC)
- 手机开发实战91——PUSH介绍1