转自:http://qintnt.javaeye.com/blog/122702
Cognos 8体系结构学习笔记之一:层级结构
Cognos8具备一个多层的体系结构。大体可以分为三层:Web server,Application和data。层与层之间可以由防火墙隔开。而Cognos8 user Interfaces则位于这些层的最顶端。
User Interfaces
用户接口有基于web的接口和基于windows的接口两种。基于web的接口有:Cognos Connection,Cognos office Connection,Query studio,Report studio,Analysis studio,Event studio,Metric studio;基于windows的接口有:Framework Manager,Metric Designer,Transformer。
Web Based:
- Cognos Connection。 是Cognos提供的一个Web portal。它是查询,分析和管理数据以及创建报表,scorecards和事件的一个入口。用户可以通过Cognos Connection运行所有基于web的Cognos应用。
- Cognos office Connection。 用户通过Cognos office Connection可以创建和发布Excel工作簿和Power Point演示文稿。
- Query studio。用来快速创建简单报表,对用户专业技能要求很低。
- Report studio。用来创建复杂的专业的报表。它可以创建报表模板提供给Query studio使用,还可以编辑Query studio和Analysis studio中的产出。
- Analysis studio。Analysis studio是浏览,分析,比较多维数据的工具。Query studio根据Analysis studio的分析结果创建专业报表。
- Event studio。Event studio通过创建代理来观察数据,在业务事件或者异常条件发生时执行任务以及通知相关人员。
- Metric studio。用户通过Metric studio可以自定义记分卡环境来观察分析度量数据。
Window Based:
- Framework Manager。 Cognos的元数据建模工具。元数据以一个包为单位发布到报表工具中。
- Metric Designer。抽取数据用于记分卡应用的建模工具。
- Transformer。创建PowerCube的建模工具。
- Map Manager。 管理Map的一个工具。
Web Server
Web Server层包含一个或者多个Cognos Gateway。 一个Gateway就是一个扩展的Web服务端程序。可以是CGI程序,ISAPI,apache mod或者servlet程序。
- 加密密码保证安全性
- 抽取需要的信息并提交给Cognos Server
- 给Web server 附加环境变量
- 给请求增加一个默认的名字空间
- 将请求发送给Cognos dispatcher作处理。
Applications
应用层包含一个或者多个Cognos Servers。Cognos Server执行从Gateway发送过来的查询,分析或者报表请求。Application层包含Application tier component (包含一个操纵服务和路由请求的调度器dispatcher)和Content Manager。
Dispatcher:
Dispatcher可以将请求路由至一个本地service或者路由至一个特定的dispatcher。Dispatcher可以提供负载均衡,故障恢复等功能。每个dispatcher启动时都会与Content Manager注册,dispatcher之间是互相知晓的。Dispathcer管理许多服务:Presentation Service,Report Service,Report Data Service,Batch Report Service,Job Service,Monitoring Service,Log Service,Content Manager Service,Metrics Manager Service,Data Integration Service,Delivery Service,Event Management Service,Agent Service,System Service。
Content Manager:
Content Manager管理用户应用数据的存储。这些数据包括:安全,配置,模型,metrics,代理,语言信息,个人用户信息,报表定义以及报表输出等数据。
ContentManager包含Access Manager。它是Cognos里一个主要的安全组件,提供用户认证,授权,加密,名字空间等功能。
Data
Data层是数据提供者。它包括Content store,data sources,metric store。
Content store:
content store存储报表定义数据,部署的报表模型,包,数据源链接信息,名字空间,计划任务等信息。它不存储日志以及设计时模型信息。
Data Sources:
数据源通常是关系数据库,多维cube,文件等。数据源还可以是Enterprise Information Integrators整合型数据源,例如Cognos composite server。
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请求代理定义以及之前的代理时间列表
- 代理服务通过批量报表服务执行代理条件
- 代理服务比较生成的结果与之前的事件列表,创建并存储更新后的代理事件列表
- 代理服务通过监听服务执行任务
- 监听服务在每一步都创建历史对象,并将请求转发至对应的服务