BES服务器推送机制分析(三)

作者:  邓明轩

 

 

 

M DS/BES 中的 送队

 

 

MDS /BE S    线 MDS /BE S 推送务端 合适 到手 后才 除。

MDS /BE S 队列是 MD S 件, 应用 器端 求, 是否 以对于 M DS 送的 M DS /BE S 送队 列。

MDS /BE S 队列 省为   1 00 0 是说   MD S /BE S 服务

器在   1 0 0 0 深度 端修

同时   MDS / BE S   推送 推送 时间 省为 1 0 个推 MDS / BE S 务器 1 0 分钟

这个 员在 推送 如下:


 

 

BES服务器推送机制分析(三)_第1张图片  

推送 改界

 

 

BES服务器推送机制分析(三)_第2张图片

对于 论是 列后 是推 据在 ,说 情况 的各态中 淡蓝 态为 态为 态的 终止


 

BES服务器推送机制分析(三)_第3张图片  

  MDS /BE S 收到 推送 标用 没有   5 处于暂时 失败

据放 入等 送的 试发 1 0 0 0 的一 失败 用的

然后   MDS / BE S   将数 ,如 备处 机状 MDS /BE S 发送 送数 据变 MDS / BE S 器会 向应 确认消息 据从 队列 意,   MDS / BE S   务器 向应 消息 成功   2 0 0 体是

返回成功 2 0 0 返回失败 40 0 还取 决于因素 我们 章节

如果   MDS / BE S   将数 时候 数据 时失 态的 的队 位置 一个只能 5 失败 的数 据或 说明 MDS / BE S 总共 时失

如果   5   条数 据处 MDS /BE S   收到 该用 的推 数据 每一 的推 会占 用推 1 00 0 都被的时 MDS /BE S 服务 接收 新的 户。

处于 待” 器上   1 0 述,

时间 1 0 状态 的数 过期 状态

  MDS /BE S   用服 这种 认消 代表失败 40 0 1 0 新进 入网 息到 MDS / BE S 服务 经上线 MDS /BE S 务器 会将 失败”和 “等待 数据转成“尝试发送状态 ,重新发送该数据。 要注意的是   1 0   分钟 等待过程中 MDS /BE S 接收 网络息, MDS /BE S 服务 试重 和“ 据。

 

根据 出以

1 当用 线 送会 被马 只在 很短 时间 占用 1 00 0 一个 置。

2   当用线 时, 个用 器在     1 0   分钟 最多


可以 10 0 5 数据 其中 5 “暂 时失 1 0 0 0 条在 等待 中。

3   如果 据发   MDS / BE S 服务   1 0 内重 MDS /BE S

服务 到手 端。

4 如果 MDS / BE S 待队 用户 5 占用 等待队列

5 如果   MDS /BE S   的等 待队 个用 MD S /BE S   务器 户的 送。

 

 

总结 保证 MDS / BE S 工作要保 MDS / BE S 服务 器的 满。

 

手持设备端对 送数 的处理

 

 

M DS /BE S 应用 会将 设备 程序 设备 要一个队列 存数据,则客户端应程序在提前一条数据新到达的据就会直 接丢 的是 列有多深 列行 被系 经过 实手备端 实也 在队 列深   1 0 而且 映在 用层 其中 开发 员注 个队 。关 据队

BES服务器推送机制分析(三)_第4张图片

如图 程序 R 如图 标有   R   形所 示,如果 有更 持设 会被 1 0 条数 据可 中, 1 1 0 。此 被推 设备 的数 圆形 1 1 12 1 3 对于 而言 数据 1 1 1 2 1 3 经被 端不 数据 情况 1 1 0 可以 继续 提取 1 1 1 2 1 3 则丢 了。 对于 送到设备 端的   1 4 15 ,假 网络没有 被推


手持 服务 数据 1 4 1 5 处理。 对于 (图 圆形所示 处理 确认 节中再作

论。

 

 

从这 果是 未必 程序提取 客户 快提 据的 客户 再被 处理 会尝

 

 

异步确认消息 应用依赖和非用依赖

 

 

手持 数据 MDS / BE S 务器 这时 MDS /BE S 器会 最初 定的   U RL   息, 告知 送数 结果 息。 息以 h t t p 协议 消息 2 0 0 代表 数据 40 0 代表 数据 败。

异步 器判 效工 员因 异步 解错使 致数 需要 息的 制。

要讨 作机 依赖 依赖 推送 和非 的异 是不 的。

 

下面 场景 使用 如果 为成 到达 手持

设备 MDS /BE S 认为 给应 2 0 0 如果 不在线 1 0 钟内 M DS /BE S 保留 1 0 备重 MDS / BE S 送该 数据

据到 MDS / BE S 服务服务 器发认消   2 00

如果 1 0 手设 接入网络数据 MDS / BE S 器会 丢弃 据, 送异认消 40 0

可以 推送 端应 在非 用依 赖的 式下 MDS /BE S 返回 2 0 0 不能 认为 。如

                                                   

MDS /BE S 已成 端应 没有 取推 送数 出的 MDS / BE S 数据 已成 4 0 0 息可 到数

如果接收   2 0 0 ,只 到了 据。

 

 

从以 依赖 用于 于可 靠性 要知 否接 赖的 式就 是为 送是 以客 成功 要在 MD S /BE S 送成 务器 确认 2 0 0

有关 确认 端接 有描

单而 序通 调用   MDSP us hI np ut St re am     ac ce pt   到, 在接 调用 ac cept   MDS /BE S   服务器


据推 服务 器发认消 400 过的 ac c ept 函数 调用 只有 In putSt r e am St re am Co nn ect io n 发送 MDS /BE S 务器 一点 息的 果。

下面 景: 如果 线 客户 端后 有程

序侦 没有会调 ac ce pt 数, MDS /BE S 会认 送失 送异认消 40 0

如果 线 端应 据后   ac ce pt   直接 连接 此时 MDS / BE S 器同 异步 确认 40 0 在这景下 使 端接 服务 因为成功

志的   ac c ept 有调 用。

如果 线 端应 据后 用了   ac c ept   并关 接, MDS / BE S 会认 应用 消息 2 0 0

对于 持设 线的 况, 果与 依赖 似, 1 0   分钟 手持 备不 网络据会 MDS /BE S MDS /BE S 服务 步确认消 40 0

如果 1 0 新接 MDS /BE S 服务 器会 设备 还是以   ac c ept   为推 数据 客户

ac ce pt ,则 MDS /BE S 向应务器 发送 2 0 0 对于 是溢数据 序能 该数

    ac cept   MDS /BE S   服务 待到     1 0   用服 送异 消息

4 0 0

一个特殊的情况是客户端应用程序在接收到数据后调用   ac cept ,但是没有关 In putSt re am St re am Co nn ect io n 。此时 M DS /BE S 务器 理数 续等待。等待 时候 1 0 钟, M DS /BE S 认为推送 应用

    4 0 0   1 0        In putSt re am    St re am Co nn ect ion 者是 网络中断, MDS /BE S 服务 用服 务器 20 0

下面 下的 例:


 

 

BES服务器推送机制分析(三)_第5张图片  

结合 况下 一些

MDS /BE S 数据 R 、数 1 数据 1 3 后出 户端 正在取数 R 此时 1 数据 1 0   被保 序在 R 续读 数据 1 数据 1 0 如果 取了 ac ce pt 产生 图中认消 R 1 认消

  1 0 断, 到达   M DS /BE S   。如 果网   10 钟内没有恢 MDS /BE S   服务器上所 等待确 认消息的记录都认识是 过期 MDS /BE S 会向 确认 4 0 0 使网 络恢 R 确认 消息 1   到确 1 0 再有

在这况下 即使 客户 用了   ac cept MDS / BE S

服务 推送 功。

 

 

根据 赖的 户端 ,在 应用 M DS /BE S 返回 2 0 0 消息 可以 数据 因为 2 0 0 确认 程序   ac ce pt   的, 在确 到后 调用   ac c ept   通知 成功 收到 据数 ac c ept 用服 务器 收。

收到 20 0 消息 可以 到数 如果接收 40 0 消息 ,只 有收

 

 

因此,应用依赖的 式更适合可靠性要应用,如果应用服   2 0 0 确认 事务 如果 4 0 0 息则 需要重发 直到 2 0 0 户端 一定 收到 需要


如何保证数据推送的可靠性

 

 

通过 ,我   MDS /BE S   服务机制 保证 推送 法完 应用

对于 了解 因素 在应 用编 障出 点进 发人 要实 现额 发, 情况 故障点的影响

 

应用依赖和非 用依赖的比较

 

 

在实 首要 赖与 择。 应用 靠性 赖的形式 赖的

MDS /BE S 器的 端应 复杂。 非应 势在 ,对 MDS / BE S   的压 力相

小。

非应 某种 广播协议 器向 端发 重客 数据 应用的推 更适 报价 这些 客户 的多 不大 不会 1 1 1 1 零七 有何 同。

应用 似于 服务 时也 关注 应用适合   O A E RP   应用 新的 能到应用 条待 整个 的停

再从 差别 额外 它的 势在 于它 应用 依赖 步还 实现 额外 MDS /BE S 确认 发。

应用 结合 重发 据可 性的 最好 法。

 

M DS 接收线程限制的处理

 

 

不管使 ,应 MD S 线 不过 现在 正常 HT TP 求可 十毫 成,少量 HTTP 于构

需要 端的程序 中不 态组 会浪 h t t p 资源 织好 HT TP 接后 数据

此外 推送线 避免 启动 的线

程进 造成 况。

从网 用服 器与 MDS /BE S   器之 是避 种问方法 的范 间可 送线


长的 MDS / BE S 有足原有 的连 使 用了 法调 要对 务器

现网 以组 当然 数据 重发 塞。

 

M DS 推送队列限制的处理

 

 

相对 M DS 列限 制造 败比 M DS 接收 更常 已经 是周 机, 于推列中 填满   MDS /BE S   应新 期时 有新 有大 新占

对于 MD S ,直 数进 的, 员可 期时

过期 不正 管理 于将 期时间被 大后 数据 时间 MD S 送队 被占

所以 行调 期时 待数 据占用队列的 间就越 MD S   推送队列 占满 可能性就越小 但是, 期时间也 过小 会导 使应 多的重发 比如间调 1 钟, 道都 败。

对于 向是     100 0   整到     20 0 0 。此

MDS /BE S 间可 大队 列深 会让 MDS /BE S   器保 占用 对服 更大 列深 运行 用。

从应 应用 MD S 是尽 送。 送第 数据 其它 的时 间间

对于 MD S 应用 服务 MDS /BE S 回的 5 0 3 错误 进行处理 5 0 3 错的重发 同样 考虑 重发 行判 用户 重发 数据。

 

手持设备端接 队列的处

 

 

手持 从文 据测 手持 备端 目前 调整 序设 手持 列。

开发 手持 可溢 从接 列出 无法 在客 要注 推送 数据 过程 杂的 快读 条数 据。 和计 线程 成。

因为溢出数据对客 用而言不可见,所溢出时在客户端应不会有异 常。 务器 知道


对于 除了 机制 行补 充。

 

 

应用依赖的客 户端

 

 

对于 ac ce pt I np ut St re am

  St re am Co nn ect io n 闭。

如之 使 依赖使   MDS /BE S   务器 步确 是否 应用 要保 调用 ac cept 数。

另外 如果   In putSt re am   St re am Co nn ect io n 关闭 ac cept 发出 确认

  MDS / BE S      In putSt re am    St re am Co nn ect io n     ca t ch        In putSt re am    St re am Co nn ect io n 闭处

 

异步确认消息 处理

 

 

异步 据是 端应 使 消息 首先 要保 接收所有 MDS /BE S 器发 息。

异步是一 HTTP 接收 过程 面是 异步

R eceiv e d not ifi ca t io n: G ET / HT TP / 1 . 1

Us er -Ag en t : RIM M DS CS A cc ept : * /*

X - RIM-P us h-ID : pus hI D: 20 8 1 7 7 3 7 6 8

X - RIM-P us h-D e s t in a t io n: m m t e s t @ bj.s e arb.c n

X - RIM-P us h-S t a t us : 40 0

Hos t : lo c al ho s t :77 78

 

中最 键是 获取属   X - RIM-P us h-S t a t us 该属 的值 断数 是成

2 00 4 0 0 X - RIM-P us h-ID 也非 定该 确认 对哪 的。

如果 认消 ,则 X - RIM-P us h-ID   新组

 

 
 

 

 

BlackBerry SDK下载

 

  • BlackBerry Java Plug-in for Eclipse v1.1
  • Java Plug-in for Eclipse Update Site
  • BlackBerry Web Plug-in v2.0
  • BlackBerry Widget SDK v1.0
  • BlackBerry Theme Studio v5.0
  • Plazmic Content Developer’s Kit v4.7
  • BlackBerry smartphone simulators
  •  

    相关链接:

    BES服务器推送机制分析(一)

    BES服务器推送机制分析(二)

    BES服务器推送机制分析(三)

    你可能感兴趣的:(eclipse,应用服务器,工作,网络,服务器,BlackBerry)