IBM Cognos 最佳实践: 自动化 IBM Cognos 8 BI 的部署

文档性质:技巧或技术;产品:Event Studio、Cognos Connection;关注领域:升级/迁移

开发和生产环境的部署方法。

Ganapathy Srinivasan Ramanujam, 助理系统工程师, Tata Consultancy Services

Ganapathy Srinivasan Ramanujam 是印度 Tata Consultancy Services 的一名助理系统工程师,具有 4 年 IT 经验。他是通过认证的 IBM Cognos Administrator 和 IBM Cognos Report Designer,在 Cognos Administration 和 IBM Cognos 系列 8v Tools 及 Framework Modeling 方面具有广泛的经验。他参与过 TCS,主要关注的是 Retail BI 解决方案。他的主要专长在 IBM Cognos 8 BI 领域,尤其擅长 IBM Cognos 8 Administration。



2011 年 6 月 02 日

免费下载:IBM® Cognos® Express V9.5 或者 Cognos® 8 Business Intelligence Developer Edition V8.4 试用版
下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

摘要

在稳定的 IBM Cognos 环境中,IBM Cognos 工件从一个 IBM Cognos 环境到另一个 IBM Cognos 环境(例如,开发环境到质量保证环境)的部署可以被自动化,以便最大程度地减少 IBM Cognos 管理员在代码迁移过程中花费的时间和精力,以及为 IBM Cognos 报告开发人员提供提升代码的灵活性。

此方法涉及到在 IBM Cognos Content Manager 配置中提供源和目标 IBM Cognos 环境中的一个公共部署位置。从源环境导出的 IBM Cognos 工件(归档文件)将被放置在这个公共部署位置,到目标环境的导入将从这个公共部署位置挑选工件(归档文件)。

使用这种方法,为了代码被提升到目标 IBM Cognos 环境,用户只需要在源 IBM Cognos 环境中运行 Event Studio 代理即可。用户在源环境中运行的 Event Studio 代理将执行 “export of IBM Cognos Content” 操作,并通过 “Trigger.bat” 实用工具在目标 IBM Cognos 环境中触发一个 Event Studio 代理。在目标环境中触发的代理将执行 “import of IBM Cognos Content” 任务。IBM Cognos 管理员和各个用户群体将接到有关代码部署状态的邮件通知。

针对每个应用程序,需要设计一个特定的代理,设计时需要为代码部署考虑应用程序指定的代码。为了代码被部署到目标环境中,每个应用程序设计人员可以在源环境中运行他们自己的 Event Studio 代理。


简介

使用 IBM Cognos 8 BI 作为报告软件的组织具有部署、质量保证和生产环境,在这些环境中,IBM Cognos 工件需要根据需要从一个 IBM Cognos 环境提升到另一个 IBM Cognos 环境。


用到的组件

  • IBM Cognos 8 Configuration
  • IBM Cognos 8 BI Event Studio
  • IBM Cognos 8 Framework Manager
  • Trigger. bat 实用工具
  • Database Server

体系结构

图中描述了一个样例环境,例中使用源和目标环境中的公共部署位置进行部署。

图中描述了部署流程方法
图中描述了流程流

前提条件

为了让这一技术成功发挥作用,以下几点是必需的。

  1. 网络中一个可以从 IBM Cognos Content Manager 访问到的公共位置(共享驱动器)。
  2. 配置在 IBM Cognos Instances(源和目标)中的一个邮件服务器。
  3. 一个最好由 IBM Cognos 管理团队拥有的数据库服务器。
  4. 需要为应用程序设计人员提供以下功能,以便在源环境中运行 Event Studio 导出任务。
  5. 针对管理任务安全特性的执行权限。
  6. 针对管理安全功能的遍历权限。
  7. 针对内容管理页面的执行和遍历权限。

自动化和状态更新

自动化方法中的步骤包括:

  • 初始设置
    1. 在 Content Manger 的 IBM Cognos Configuration 中配置共享驱动器
    2. 设置 IBM Cognos Trigger.bat 实用工具
    3. 创建运行触发器的存储过程
  • EVENT STUDIO 代理设置
    1. 导出部署策略(创建 Event Studio 导出代理)
    2. 导入部署策略(创建 Event Studio 导入代理)

在 Content Manger 的 IBM Cognos Configuration 中配置共享驱动器

  1. 两个环境(源和目标)的 IBM Cognos Configuration 中的 “Deployment files location” 环境属性被修改为共享位置。修改之后,IBM Cognos Services 被重启。
    configuration manager 中的 Deployment files location 项
  2. 这一共享位置应该位于两个环境中 Content Manager 服务器的同一网络中,运行 IBM Cognos Service 的服务帐户应该对这个共享位置具有访问权限。
  3. 如果 IBM Cognos 环境被配置为具有多个 Content Manager,那么需要针对每个 Content Manager 服务器,在每个 IBM Cognos Configuration 中修改 “Deployment files location”。

设置 IBM COGNOS TRIGGER.BAT 实用工具

名叫 Trigger.bat 的 IBM Cognos 实用工具对于该流程是必需的。这个实用工具用于从有一组 IBM Cognos Jar 文件可用的远程位置(例如,数据库服务器)触发一个事件。在当前方法中,Trigger.bat 实用工具用于从用户在源环境中运行的 Event Studio 代理触发目标环境中的导入操作。

  1. 该实用工具部署在最好由 IBM Cognos 管理团队拥有的数据库服务器中。
  2. 下面这个屏幕快照展示了放置在安装有 SQL Server Database 的服务器位置中的 Trigger.bat 实用工具文件。(这些文件可以放置在运行数据库服务器的服务帐户对之具有访问权限的服务器上的任何物理位置。)
    包含批文件的目录结构
  3. 上面的文件中,“GoDatawarehouse.bat” 和 “Gosales.bat” 是为该流程创建的文件。这些文件分别代表两个不同的应用程序。所有其他文件是 Trigger.bat 实用工具的一部分。批文件内容应该如下所示。“GoDatawarehouse.bat” 文件将调用 “Trigger.bat” 文件。
    批文件
  4. 目标环境的分派器 URI、对 IBM Cognos Administrator 和相应名称空间具有遍历权限的用户 ID 及密码和一个触发器名称被作为参数,通过这个批文件传递给 Trigger.bat。GoDatwarehouse 是这个批文件中提到的触发器名称,这是用来为 “Event Studio Import Agent” 设置触发器时间表的触发器的名称。这将在后面的第 7.5.6 节中解释。要更多地了解 Trigger.bat 实用工具,请参考附录 B。

创建运行触发器的存储过程

这个存储过程的目的是自动化批文件的执行。为了实现这一目的,在数据库中创建一个存储过程。下面是一个针对 Microsoft SQL Server 2005 的示例存储过程。

CREATE Procedure [dbo].[Bat_execution]
AS
EXEC master.dbo.xp_cmdshell ‘D:\flats\TriggerDeployment\GoDateaWarehouse.bat’

如屏幕快照中所示,这个存储过程本质上是在提供的位置中执行 “GoDatawarehouse.bat”,这个批文件又会利用提供的参数运行 Trigger.bat 实用工具。Trigger.bat 实用工具将触发目标环境中需要的 “Event Studio Import Agent”(它将运行部署的导出和导入)。为了各个应用程序的代码部署,需要专门为每个应用程序创建批文件和存储过程。在为相应应用程序(例如,GoDatwarehouse、Gosales)创建的代理中,可以引用各个存储过程。利用存储过程需要以下条件。

  1. 利用包含存储过程作为源的数据库,在 IBM Cognos 管理页面中创建一个 IBM Cognos 数据源。
  2. 从这个数据源创建一个包,并且为每个应用程序导入 “存储过程”。
  3. 然后,IBM Cognos 包被发布到 IBM Cognos Connection。

导出部署策略

导出内容任务创建

需要导出到目标环境的内容第一次是从 IBM Cognos Administration 页面进行导出,以便为自动化使用相应的导出任务。直到退出任务退出,才能创建 Event Studio 代理,所以必须配置一个初始的导出。记下 IBM Cognos Administration 中的导出名称,因为它在 Event Studio 中是必需的。

EVENT STUDIO 代理创建-导出

Event Studio 代理被设计在发生部署的源环境中。下面是构建该代理所需的步骤。

  1. 前一步中发布的 IBM Cognos 包被用作 Event Studio 代理的源包。
  2. 在事件的第一步会创建一个总是在随后发生的事件。创建这个事件是为了确保,定义在代理中的任务应该被成功执行,无需在每次代理运行时检查任何条件。

创建导出部署

  1. 向代理插入一个 “Run an export” 任务。
    Event Studio 任务创建
  2. 前面在 IBM Cognos Administration 门户中创建的导出被用在这里。选择适当的导出以包含在代理中。
    Event Studio

触发导入任务

  1. 向代理插入一个 “Update a database” 任务。
    Event Studio
  2. 第 6.3 步中发布的包和创建的对应存储过程被配置在这个任务中。
  3. 数据修改存储过程将在数据库服务器上运行 “Trigger.bat” 实用工具,这又会在目标环境中触发导入部署代理。
    Event Studio 数据库更新项

成功时进行邮件通知

  1. “Send an email...” 任务被添加到代理,以便为导出任务的成功完成和目标环境中导入部署的成功触发而发送一个电子邮件通知。
    Event Studio 在任务成功时创建
  2. 在需要时添加电子邮件主体内容和接收人列表,通知任务的成功完成。接收人列表可以包含 IBM Cognos 管理员和应用程序设计人员,他们在部署需要时会运行这个代理。

失败时进行邮件通知

  1. “Send an email...” 任务被添加到代理,以便该代理中的任何任务失败时发送电子邮件通知。
    Event Studio 在任务失败时创建
  2. 在需要时添加电子邮件主体内容和接收人列表,通知任务的失败。接收人列表可以包含 IBM Cognos 管理员和应用程序设计人员,他们在部署需要时会运行这个代理。
  3. 这个电子邮件任务的执行规则由 “Manage the task execution rules” 定义。
    Event Studio Manage execution rules
  4. 这个任务的任务执行规则被配置成 “When the agent or any of it’s tasks fail”,并以这样一种方式进行定义,即只有当代理本身失败或者它的任何任务失败时才会执行该任务。
    Event Studio 执行规则设置

完成时,代理应该装配如下所示的这样一个执行规则。这里应该有四个任务,一个导出部署,一个执行批文件,还有一个对代理或者以前的任何任务的成败进行电子邮件通知。

Event Studio,完成时代理的屏幕快照

导入部署策略

导入内容任务创建

需要导入到目标环境的内容第一次是从 IBM Cognos Administration 页面进行导入,以便为自动化使用相应的导入任务。直到导入任务退出,才能创建 Event Studio 代理,所以必须配置一个初始的导入。记下 IBM Cognos Administration 中的导入名称,因为它在 Event Studio 中是必需的。

EVENT STUDIO 代理创建

如下所示,此代理被设计在 IBM Cognos 内容将被部署到的目标 IBM Cognos BI 环境中。任何 IBM Cognos 包都可以用作这个 Event Studio 代理的源包,因为以前创建的存储过程不用在这个代理中。为了维护完整性,在目标环境中发布相同的部署之后,用于源 IBM Cognos 环境中导出任务 Event Studio 代理的包可以用在这里。

在代理的第一步会创建一个总是在随后发生的事件。创建这个事件是为了确保,定义在代理中的任务应该被成功执行,无需在每次代理运行时检查任何条件。在总是在随后发生的事件之后,代理进一步包含三个任务。

导入部署

  1. 高级任务 “Run an import” 被添加在代理中。
    Event Studio 导入任务创建
  2. 这个任务要求用户选择一个要导入的部署。选择对应于在以前步骤中运行的导出的部署,这也是第 6.5.1 步中配置的导入部署。
    Event Studio 导入部署选择屏幕

在成功时进行邮件通知

  1. “Send an email” 任务被添加到代理,以便为代理中导入任务的成功完成发送一个电子邮件通知。
    Event Studio 通知成功的电子邮件的创建
  2. 在需要时添加电子邮件主体内容和接收人列表,通知任务的成功完成。接收人列表可以包含 IBM Cognos 管理员和应用程序设计人员,他们在部署需要时会运行这个代理。

在失败时进行邮件通知

  1. “Send an email” 任务被添加到代理,以便该代理中的任何任务失败时发送电子邮件通知。
    Event Studio 通知失败的电子邮件的创建
  2. 在需要时添加电子邮件主体内容和接收人列表,通知任务的失败。接收人列表可以包含 IBM Cognos 管理员和应用程序设计人员,他们在部署需要时会运行这个代理。
  3. 这个电子邮件任务的执行规则由 “Manage the task execution rules” 定义。
    Manage task execution rules
  4. 这个任务的任务执行规则被配置成 “When the agent or any of it’s tasks fail”,并以这样一种方式进行定义,即只有当代理本身失败或者它的任何任务失败时才会执行该任务。
    Event Studio 执行规则设置
  5. Event Studio 导入代理现在应该类似于下图。
    完成的导入代理

基于触发器安排事件

Event Studio 导入代理需要基于触发器进行安排。这很好地允许代理被 trigger.bat 实用工具启动。这里提到的 “GoDatwarehouse” 触发器名称是作为参数传递给 IBM Cognos “Trigger.bat” 实用工具的触发器名称(如图 5.0 所示)。

代理安排的屏幕快照

优点

  1. 这个一次性活动大大减少了 IBM Cognos 管理员在代码迁移过程中的手工劳动。
  2. 通过只在源 IBM Cognos 环境中运行 Event Studio 代理,这种方法为 IBM Cognos 设计人员自己执行代码部署提供了灵活性。
  3. 体系架构以这样一种方式进行定义,即部署应该会成功,哪怕在任何已配置的 IBM cognos 环境中出现了 Content Manager Fail-overs。
  4. 任务完成后触发的电子邮件提供部署的状态。
  5. 以上技术的使用消除了使用其他由开发人员专门用于 IBM Cognos 代码迁移的第三方工具的依赖性,并且这还向 IBM Cognos 管理员提供对环境的完全控制。

结束语

通过与审计报告和用户执行的代码部署历史集成,可以进一步增强这一方法。这个自动化的流程将会节省时间,为应用程序用户按照自己的安排迁移工件提供了灵活性。


附录

A. Cognos Administration and Security Guide: Chapter 18, Deployment

B. KB 1022042: How to fire a trigger using the Trigger.bat utility

参考资料

学习

获得产品和技术

讨论

  • 参与 developerWorks 博客 并加入 developerWorks 中文社区,developerWorks 社区是一个面向全球 IT 专业人员,可以提供博客、书签、wiki、群组、联系、共享和协作等社区功能的专业社交网络社区。

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=677890
ArticleTitle=IBM Cognos 最佳实践: 自动化 IBM Cognos 8 BI 的部署
publish-date=06022011