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 设备终端显示。
下图是简版示意图
有一点鄙人也没搞懂,为何推送的离线报表元素文件被拆分成了两部分,一部分存储在MOB_BLOB表,一部分存储在CM资料库?而读取时会将两部分内容合并解析生成页面,是否Active Report等离线报表在mobile上显示有一些特殊元素需要单独存储?目前还尚未确认其真正内涵,但也是唯一合理的解释。如果读者您有高见,不妨留言共同探讨,若有欠妥之处,请轻轻地拍一下砖,谢谢O(∩_∩)O。
请继续关注下文“3.Mobile Service的推送完整流程”
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞7
添加新评论3 条评论
2016-01-19 13:55
2015-12-09 15:26
2015-08-26 22:46