Cognos 8体系结构学习笔记之二:请求流程
访问Cognos8
-
匿名访问
- 用户通过浏览器发起Cognos访问请求,请求被送至Cognos Gateway
- Gateway接收请求并发送给一个dispatcher
- dispatcher发现请求没有附带passport,将请求发送给Content Manager
- Content Manager将请求发送给Access Manager
- Cognos允许匿名访问,于是一个passport附加于该请求,然后请求通过Content Manager返回给dispatcher
- dispatcher处理请求,并发送给展现服务
- 展现服务将欢迎页面通过dispatcher,Gateway发送给最终用户
-
授权的访问
- 用户通过浏览器发起Cognos访问请求,请求被送至Cognos Gateway
- Gateway接收请求并发送给一个dispatcher
- dispatcher发现请求没有附带passport,将请求发送给Content Manager
- Content Manager将请求发送给Access Manager
- Cognos不允许匿名访问,Access Manager将该请求返回并附加一个错误信息
- Content Manager将附带错误信息的请求返回给dispatcher
- dispatcher将请求发送给展现服务
- 展现服务创建合适的登录页面通过dispatcher,Gateway返回给用户
- 用户输入ID和密码等必要信息通过原先的流程发送请求至Access Manager
- 验证通过后,Access Manager产生一个passport附加于请求
- 请求返回给最终用户
查看报表或分析结果
- 用户点击查看报表,请求通过Gateway,dispatcher发送至展现服务
- 展现服务通过dispatcher,Gateway返回Cognos Viewer给浏览器。Cognos Viewer包含一个HTML frame报表展示页面。该报表展示页面的URL指向一个用于展示数据的Content Manager 对象
- 浏览器将这个URL通过Gateway,dispatcher发送给Content Manager
- Content Manager将权限控制列表,执行动作(例如:读),用户信息发送给Access Manager
- Access Manager决定用户是否能执行该动作。Content Manager将报表以HTML或者PDF等文档的形式通过dispatcher,Gateway发送给用户。
运行HTML报表或分析
- 用户点击报表,请求通过Gateway,dispatcher发送给展现服务
- 展现服务将请求通过dispatcher发送给报表服务
- 报表服务通过dispatcher向Content Manager发送报表和元数据请求
- Content Manager将报表XML定义和元数据发送给报表服务。仅当Cognos服务器重启或者报表更新并重新发布后,Content Manager会重新获取元数据
- 报表服务将错误页面或者未准备好页面或者HTML报表或分析其中之一返回给展现服务
- 展现服务将结果通过dispatcher,Gateway发送给浏览器
计划任务执行
- 当计划时间到达时,事件管理器发送请求给Content Manager获取用户credentials,然后以用户的身份登录并获取passport
- 事件管理服务通过dispatcher发送请求给监听服务执行计划任务,后台运行
- 监听服务发送通过dispatcher发送请求给Content Manager创建一个历史对象,该对象用于确保正确的状态在用户接口中显示
- 监听服务将运行请求转发给相关的服务模块,并保持与其异步通信
- 监听服务更新历史对象的状态为“执行”
- 当任务运行完毕时,对应的目标服务存储相关信息(包括报表输出,代理事件列表等)进Content Manager,并结束与监听服务的通信
- 监听服务检测任务的最终状态并更新历史对象
运行代理
- 请求通过Gateway,dispatcher发送给监听服务
- 监听服务验证请求,并在Content Manager中创建一个历史对象
- 监听服务将请求转发至代理服务,并保持异步通信
- 代理服务向Content Manager请求代理定义以及之前的代理时间列表
- 代理服务通过批量报表服务执行代理条件
- 代理服务比较生成的结果与之前的事件列表,创建并存储更新后的代理事件列表
- 代理服务通过监听服务执行任务
- 监听服务在每一步都创建历史对象,并将请求转发至对应的服务