2.Mobile Service的读取完整流程

浏览: 2762

  Mobile设备作为IBM Cognos的访问终端,比如IPAD,Andorid,IOS移动设备,满足了主流市场需求并提供了丰富的可视化效果,尤其是Active Report的绚丽效果。很多童鞋提到Cognos Mobile首先想到的是active report,其实并不然,mobile service当然也可以让移动设备像访问普通网页一样实时访问Cognos普通报表。其实mobile主要提供了两种报表类型的访问:

1、ad-hoc query 实时查询报表

  这类报表的后台查询工作流和PC访问一样,无非是从网关入口登录 --> 分派器 --> 寻找可用的report service --> 从CM查询报表XML规范 --> 运行报表规范并返回结果到report service --> 返回给分派器 --> 传送结果到prensentation service解析并生成页面 --> 返回结果到终端。大概就是这么个流程,里面细节可以写一本书,鄙人不在赘述。

  顺便说说,鄙人试过没有mobile service也可以在APP "IBM Cognos Mobile"访问普通报表。

2、Managed Report 托管报表,也可以称之为"离线报表"

支持mobile访问的普通报表、Active Report都可以在mobile设备实时查询,亦可离线(先执行后推送)查询。现在我们重点解析从mobile后台读取的工作流:

第一步:启动APP "IBM Cognos Mobile",用户登录Mobile终端连接服务器,再到后台mobile service(以下简称MS)

第二步:MS读取MOB_USERS信息验证该用户是否在推送计划中,也就是当然登录用户是否在该表中有记录。如果不存在,则mobile APP界面看到的是空白。

第三步:MS读取MOB_USER_RENDER信息验证该用户所能查看的RENDERID,这个RENDERID恰好是mobile service后台在推送该对象时所生成的最新历史版本

第四步:根据RENDERID读取MOB_RESOURCES所能查看的所有报表的最新HASH版本。与之相应的MOB_BLOB表,它存储是所有mobile推送的对象历史版本,由于存储的是blob对象,就以HASH标记每一个报表页面Elements。

第五步:MS读取MOB_RENDER_HISTORY保存的报表版本对象

第六步:MS根据HASH读取MOB_BLOBS报表版本元素

第七步:MS调用dispatcher分派器,从CM查询MOB_RENDER_HISTORY对应的报表历史版,结合 MOB_BLOBS的历史版本元素,并最终生成页面返回给mobile 设备终端显示。

下图是简版示意图

Clipboard Image.png

有一点鄙人也没搞懂,为何推送的离线报表元素文件被拆分成了两部分,一部分存储在MOB_BLOB表,一部分存储在CM资料库?而读取时会将两部分内容合并解析生成页面,是否Active Report等离线报表在mobile上显示有一些特殊元素需要单独存储?目前还尚未确认其真正内涵,但也是唯一合理的解释。如果读者您有高见,不妨留言共同探讨,若有欠妥之处,请轻轻地拍一下砖,谢谢O(∩_∩)O。

请继续关注下文“3.Mobile Service的推送完整流程

推荐 1
本文由 贝克汉姆 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

1 个评论

一直关注中,希望老大持续更新 Mobile Service的推送完整流程,谢谢。移动这块最近公司用的比较多。

要回复文章请先登录注册