3.Mobile Service的推送完整流程

浏览: 3199

  Mobile Service推送原理其实很简单,调用Report Service执行报表后并保存已执行的历史版本文件(保存在content store库),同时生成mobile 所需特殊元素(上一篇提到过)并生成推送的用户列表。因此仅推送列表中的用户方可在APP端读取推送的指定报表。

  鄙人根据后台mob.log,总结出如下推送工作的总体流程草图,

QQ截图20151010151154.png

现在一步一步详解:

1、  启动mobile任务计划,当然前提是做一个JOB,请参考”CognosMobile工作原理--前端应用”

2、  发送请求到dispatcher,调用reportservice执行报表

3、  保存执行版本到contentstore资料库

同时,读取推送用户清单并写入MOB_USER

mob_user.png

 4、  获取报表已执行版本的history信息并写入MOB_HISOTRY,该表只保存history_ID、event-time信息。前端APP读取时根据historyID去content store获取已生成的报表规范。

MOB_HISTORY.png 

5、  生成mobile特有的元素并写入MOB_BLOBS和MOB_RESOURCE(在此之前会先写入临时表MOB_TEMPSTORAGE,MOB_TEMPSTOREBLOBS)。里面存储的HASH信息被加密处理了,源代码开发人员也看不懂。当然也没必要去理解它,只要知道它存储报表元素即可。

MOB_BLOBS

MOB_BLOBS.png

MOB_RESOURCE

MOB_RESOURCE.png

  一个报表推送会产生很多HASH对象,两表通过HASH关联获取BLOB_VALUE值,并解析生成报表页面。

  6、  生成MOB_RENDERS记录,每次推送后生成的RENDER_ID是唯一的,当然一个推送对象会产生多个RENDER_ID,也是mobile service对象独有的ID。

 mob_renders.png

  生成MOB_RENDER_HISTORY映射记录,用于关联BLOB_HISTORY获取history_id,用于从content store里得到已保存的报表规范。

MOB_RENDER_HISTORY.png

  7、  生成MOB_USER_RENDER映射记录,推送的用户根据RENDER_ID去获取报表对象。

mo_user_render.png

 现在我们可以根据这些个物理表画逻辑关联关系。

QQ截图20151010151213.png

  至此通过几篇文章,我们把MOBILE的工作原理已经全部剖析出来了。当然,以上几篇MOBILE文章纯属个人研究,89%以上正确地涵盖了MOBILE工作原理。而且鄙人相信通过这几篇文章,再加上阁下的理解,您基本上理解透了COGNOS MOBILE了,甚至可以拍着胸脯说,COGNOS MOBILE的任何问题都不在话下了。有了该基础后,下一篇,我们将去解决我在项目上遇到的那一个难题,请继续关注“4、解决The Mobile Service has caught an exception问题”。

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

4 个评论

目前cognos移动这块,企业用户好像用的不多一样的。
跟着贝哥学习,架构,流程这块讲完啊,是不是后续会开始出一系列cognos Mobile 组件使用,操作,做报表这块的文章
有时间会做哈
也不少了,目前主要用于零售行业销售员、银行内部管理层等

要回复文章请先登录注册