贝克汉姆
作者贝克汉姆·2015-08-26 21:40
软件开发工程师·IBM

2.Mobile Service的读取完整流程

字数 1408阅读 1825评论 3赞 7

  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 设备终端显示。

下图是简版示意图

读取工作流.jpg

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

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

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

7

添加新评论3 条评论

amu0722amu0722CEO打毛党
2016-01-19 13:55
在cognos11 中取消了 普通报表在app里显示
xfz56123xfz56123其它tiuweb
2015-12-09 15:26
给力
hikeplayguitarhikeplayguitar研发工程师山东城市商业银行联盟
2015-08-26 22:46
拜读
Ctrl+Enter 发表

作者其他文章

相关问题

相关资料

X社区推广