专注于Blackberry

故技重施:Blackberry Push API

大概是6月初,RIM以很强的声势推出一个新服务,名曰Blackberry Push API。在没有看文档前,我非常憧憬RIM能给我们带来惊喜。但是我看完之后,发现RIM仅仅把原来的技术重新包装了一遍。
从商业的角度讲,我非常赞成RIM的这种做法,现在的很多新概念有很多都是把N年以前的东西拿出来翻新一下,例如AJax,SaaS等,都取得了不错的效果。
但是从技术角度上讲,也确实没什么。
我将该服务总结为一句话,即将Blackberry最具特色的PUSH功能应用到客户的需求上。
即便如此,我还是将我N年以前使用过的技术重温一下,顺便也说说PUSH API 的应用。
应用背景:
先举个例子,未必是真实的。假如上海有家出租车公司小众(不是大众),要通知司机小张,有个客户在人民广场的来福士广场有个客户于14:00需要车,那么小众通过何种方式将这个信息传给小张呢?假如小众公司正在使用Blackberry的服务,那么可以通过Alert的方式来实现。
现在总结一下:

alert
新闻
财经
定单
文档
体育

服务不仅仅限于上面。
原理:
先看张图

简要解释一下:
先解释身份角色:
Push Initiator:相当于小众公司,后面见车简称PI
Blackberry Push Data Server:相当于部署在小众公司的Blackberry服务基础架构,后面简称BPIS
Mobile Client:司机小张的Blackberry终端,简称,MC
再解释一下流程:

PI发送一个push请求,即客户信息
BPIS给出一个返回给PI
BPIS就请求push给MC
MC收到后给出一个ACKnowledge,确认
BPIS给PI一个通知
PI收到后给BPIS一个返回

类似的机制和互联网的三次握手类似,就是Request/ACK/Response.目的就是为了保证大家都收到。
优点
很显然,省电,能够及时送达,安全,包括传送,以及安全送达。
实现

PAP
XML HTTP 请求
几种push,例如submit,cancel,query等,具体技术细节不讲,因为这些又可以单独拿出来了。

综合上述,如果您熟悉PUSH,是不是觉得似曾相识呢。
不管怎么说,从中,我们可以进一步,也更清晰了解Blackberry PUSH这个概念。这在以后的解决方案中提供不少思路。

继续阅读本文 →

  

Confach发表于 June 29, 2009 7:46 pm | 留言(2) |开发 

尚邮(Shangmail)使用评论

我很少对一个软件做出特别详细的评论,但是尚邮Shangmail我想我有必要做一下评论,发表一下我的使用经验和建议。
尚邮Shangmail是国内在Blackberry平台上提供push mail的服务。由北京一家刚成立的巴别塔运营,老板是严天亦女士。很早了解尚邮shangmail是因为其下面的某位员工,通过他我才详细知道尚邮Shangmail这个产品。
现在,针对Blackberry的版本已经是4.3版本了。我使用了一下,感觉还可以。下面详细介绍一下我的使用经历。
安装和使用

下载Service Book

          发送email,必须下载service book,这是每个稍有点Blackberry常识的人都知道的。可以到下面链接去下载。通过Blackberry Desktop Manager里的备份和恢复功能来安装Service Book。http://www.shangmail.com/servicebook.zip

下载Shangmail安装软件

          下载Blackberry的shangmail版本。请到这里http://www.shangmail.com/download.html下载。如果直接是通过blackberry下载,请访问http://wap.shangmail.com来下载。确定你的手机型号啦。

配置你的邮箱

      访问http://www.shangmail.com/register.html注册,如果已经有帐号的话直接登录。里面有个邮箱管理的选项,最多可以添加2个帐号。按理论上支持所有POP3和IMAP的邮箱都。如果你配置的邮箱有特殊之处,请点击下面的显示服务器的checkbox,然后开始配置邮箱。我配置的是SOHU和Gmail的邮箱。SOHU用起来真是不错,但是Gmail刚开始只能发不能收,昨天终于解决了。文章后面给出一些方法以及原理。

登录

    打开Shangmail,出现如下界面。
        
  然后打开菜单,出现如下界面:
     
这里我的已经是登录过的。
如果没有登录过的,会提示让你登录。

接收邮件和发送邮件

          接收的邮件会自动放在消息里面,与短消息一起存放。
          发送消息还是按照BB的发送操作一样, 打开消息,打开菜单,选择Compose Email即可。
           接收到的邮件如下:
          
           编辑邮件如下:
         
           发送成功后的邮件如下:
          

Setting

       如下图
      
Accounts
     
Configure
    
 
Filters
   
 
Working Time
   
Setting
   
Pim Setting
   
Change Password
   

  统计

      统计流量,收发邮件数
     
其实蛮简单的啦。中间最难的是配置邮件。
经验

如何配置Gmail

          网上关于配置Gmail的文章很多,但是我认为很多文章没有说到要点。
         我关注shangmail很长时间了,而且一直试用。遗憾的是我真没有成功收到过gmail的邮件。昨天我决定将之解决掉。还是老办法配置gmail。遗憾的是仍未成功。
        官方Gmail的配置方法如下(这是正确的,但不够详细):

Gmail邮箱的添加同样是以开通pop功能为前提的: 在“设置”->“POP和转发”选项中开启Gmail的POP功能开通pop后,配置信息如下:pop:   pop.gmail.com,端口是995,smtp:smtp.gmail.com,端口是465。PS: 发送/接收服务器端口都需要勾选SSL验证。

        网上有网友成功过,既然别人能成功,为什么我不能成功呢?纳闷。看了shangmail的官方说明:

8.为什么有时候我的网易、QQ和Gmail邮箱收邮件很慢?因为网易邮箱的特殊性,尚邮服务器放缓了访问频率;QQ邮箱服务器与尚邮服务器是网通VS电信的关系,因此通讯速度非常慢,经常出现连接超时的情况。Gmail邮箱因为是国外的服务器,而且需要建立SSL连接,再加上Gmail邮箱服务器对取信频率设了限,因此您可能会遇到通讯时间比较长有时甚至暂时性被封的情况。

    我对此深表怀疑,理由如下:

既然Google推出了POP和IMAP服务,也就证明客户端例如outlook是可以用的,如果设置取信的频率,这是自己打自己嘴巴。 [...]

继续阅读本文 →

  

Confach发表于 September 7, 2008 10:22 pm | 留言(7) |言论 

BlackBerry 应用程序开发者指南 第一卷:基础–第10章 创建Client/Server Push应用程序

10
      第10章 创建Client/Server Push应用程序

Push应用程序
Client/Server push请求
编写一个客户端push应用程序
编写一个服务器端push应用程序
Push应用程序疑难解答

Push应用程序
注:Push应用程序需要3.5以及后续版本的Microsoft Exchange BES,或2.0以及后续版本的IBM Lotus Domino BES,它们需启用BlackBerry MDS服务。
Push应用程序将新的web内容和alert发送到指定的用户。用户不必请求下载数据,因为当信息可用时push应用程序递送这个信息。
有2种push应用程序:
     1.    浏览器 push应用程序:将Web内容发送到BlackBerry设备上。BlackBerry 浏览器配置支持MDS服务push应用程序。WAP浏览器配置支持WAP push应用程序。Internet浏览器配置不支持push应用程序。参看BlackBerry浏览器开发指南获取更多关于编写一个浏览器push 应用程序的信息。
    2.     Client/Server push应用程序:将数据push到一个BlackBerry设备上的客户Java应用程序。Client/Server push应用程序由一个BlackBerry设备上的客户Client应用程序和一个push内容给它的服务器端应用程序组成。和浏览器push应用程序相比,这种方法对这种你可以发送出去的内容以及数据是如何处理并且显示在BlackBerry设备上提供了更多的控制。
Client/Server push请求
应用程序可以使用下面的2种方法将内容push到BlackBerry设备:
   1.         Push Access Protocol(PAP,push访问协议),它是WAP 2.0里的一部分。
   2.        RIM push。
注:MDS服务仅支持1000个 push请求,包括了RIM和PAP push请求。如果它接收超过1000个请求,MDS服务回应服务器一个错误。
这2种push服务的实现都支持下面的任务:

发送一个服务器端push提交(submission)。
为push提交指定一个信任的模式。
为push提交指定一个传递前(deliver-before)的时间戳。
请求一个push提交的结果通知。

PAP的实现还支持下面额外的任务:

为push提交指定一个传递后(deliver-after)时间戳。
取消一个push请求提交。
查询一个push请求提交的状态。

存储push
PAP push存储在数据库中,但是RIM push则存储在RAM中。如果服务器重启,没有递送的RIM push可能会丢失。
代码转换(Transcoding)
如果可用,BlackBerry MDS Data Optimization(BlackBerry MDS数据优化)根据它的代码转换器规则将一个代码转换应用到push请求。
Push请求可以覆写这些规则并使用transfer-encoding头来请求一个指定的代码转换器转化。例如,如果设置了HTTP头transfer-encoding:vnd.wap.wml,那么在它把数据push到BlackBerry设备之前,MDS数据优化服务运行wml代码转换器。
参看190页的“代码转换器”获得更多信息。
信任模式

信任模式

描述

透明层信任模式

当push到达BlackBerry设备时,BlackBerry MDS连接服务启动一个push请求指定的URL连接来通知传送的服务器。手持设备软件3.6或以后版本支持透明层确认。

应用程序级信任模式

当push到达BlackBerry设备时,应用程序确认内容。MDS连接服务启动一个push请求时指定的URL连接来通知传送的服务器。如果遇到错误,MDN连接服务发送一个错误消息到服务器。手持设备软件4.0或以后版本支持应用程序级确认
RIM push提供一个优先应用程序(Application-preferred)的选项,在手持设备软件4.0或以后版本中,它使用应用程序级确认,否则就是透明层确认。
注:3.8以及更早版本的MDS 服务不可以为BlackBerry设备特征查询BES。为了得到BlackBerry设备的特征,MDS连接服务必须在它接收到一个push请求之前接收到一个HTTP请求。
为了提供必要的请求,使用BlackBerry浏览器和一个MDS服务浏览器配置浏览一个web页面。

发送一个RIM push请求
为了使用RIM push将数据push到BlackBerry设备上,使用下面的格式发送一个HTTP POST请求,在这里<destination>是目的PIN或者internet消息地址,<port>是目的端口,<uri>是发送到BlackBerry的URI,<content>是字节流:
/push?DESTINATION=<destination>&PORT=<port>&REQUESTURI=<uri><headers><content>
对于RIM push请求,下列的头是有效的:

HTTP头

描述

X-RIM-Push-ID

这个头指定了一个唯一的消息ID,它可以用来取消或检查消息的状态。典型地,以一个值组合指定URL,例如123@blackberry.com.如果忽略这个头,MDS服务生成一个唯一的消息ID.
注 [...]

继续阅读本文 →

  

Confach发表于 April 23, 2008 6:44 am | 留言 |文档