海水正蓝

面朝大海,春暖花开
posts - 145, comments - 29, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

     摘要: 熟悉 Report Studio Report Studio 是用来制作更加精细的专有报表的工具。IBM Cognos Report Studio 是一个基于 Web 的报表创建工具,专业报表创建者和开发人员可使用此工具针对多个数据库创建复杂的、具有多页并且可以进行多项查询的报表。使用 Report Studio,您可以创建公司所需的任何报表,如发票报表、财务报表以及每周销售和库存报表。报表...  阅读全文

posted @ 2013-02-26 14:10 小胡子 阅读(408) | 评论 (0)编辑 收藏

什么是自助式仪表盘

IBM Cognos Business Insight 基于网页的界面可以让您建立先进的交互式的仪表盘,来提供见解并使协同决策变得简单。在 IBM Cognos Business Insight 中创建的仪表盘可以让业务用户将集成的商业智能体验与协作决策相结合。用户可以快速而轻松地完成绝大部分任务。例如可以查看并与报表交互、排列数据或者执 行额外的计算、或者与团队中其他成员共享信息。因为用户对报表和数据有不同的需求,所以可以利用自由形式布局也可以重新排列报表或添加新报表。

定制化内容

当启动 IBM Cognos Business Insight 的时候,您可以选择打开一个已存在的仪表盘或是创建一个仪表盘。在打开的工作区域中,您都可以添加或重新排列新小工具,所有仪表盘都是可编辑的。业务用户 可以将有权限访问各种系统内容组合成一个指定的仪表盘,并可以进行分析。高级业务用户或报表作者可以为一组业务用户创建报表和基础仪表盘,来包含该组用户 工作所需的所有信息。这样,业务用户就能定制仪表盘来契合特殊的需求。这些需求可能包括重排布局,更改图形,将数据排序,添加计算,新建过滤等以及搜索一 份补充报表并添加其到工作区域。

添加新内容

您可以从内容或工具箱标签拖拽新小工具到仪表盘来。使用相同的方式,你可以添加报表、报表组件、度量列表或独立度量、TM1 项目、或者任何小工具中描述的项目。您可以使用 IBM Cognos Business Insight 中增强的搜索功能来寻找并添加相关内容到仪表盘。这个功能是一种全文搜索,类似于流行的搜索引擎。

交互分析能力

除了更改报表中数据的显示,你也可以与报表交互,并自定义其排列。此外,你还可以利用报表中的数据添加基础性运算,可以过滤数据。

高级过滤

使用过滤小工具可以过滤报表中所有与其关联的报表。这样,如果你有一个地区选择过滤器,它过滤所有该地区一项的报表。当然,它只过滤那些与这个过滤器关联的报表中的数据。当你在过滤小工具上选择一个值,报表就会重新刷新来显示你选择的过滤好的数据项。
其他内容

除了报表内容之外,您也可以添加其他内容到仪表盘,例如 Web 页面、图像、我的收件箱、文本、RSS 订阅。

创建注释

对于仪表盘上的一份报表中的内容,评论或注释有助于用户与团队中其他成员进行合作。这些注释可以让其他查看相同报表的用户看见。这些用户也可以添加 关于此报表的进一步注释,来提供额外的信息。例如,注释可以提醒在某个地区调查销售较低的结果,也可以是某些异常数据的一个解释,例如一个最近发布且已在 市场上有数月的产品的销售数据较小。您可以注释实时报表并保存输出版本。当打印一个报表的 PDF 版本或是导出报表为 PDF 或 Excel 输出时,注释也会被包括在其中。

创建第一个自助式仪表盘

  1. 在开始菜单中启动 IBM Cognos BI Developer Edition,运行 Developer Edition Manager,在确保左侧的服务都正常的情况下,点击右上角的启动,选择 Business Insight。在 IBM Cognos Business Insight 的启动页上选择“新建”。
  2. 在右侧的可插入对象中选择下面的“内容”,在“公共文件夹 > 示样 > 模型 > GO 数据仓库 ( 查询 ) > Business Insight 源报表 > 收入数据”路径下,右键选择“Revenue by Country – bar - chart”报表,选择“插入”,如图 1 所示。再用同样的方式,把另外的 Revenue by Product Type - Combination Chart 和 Revenue by Order method - Pie Chart 两张报表插入到仪表盘中。 

    图 1. 选择报表
    选择报表 

  3. 在仪表盘空白处点击右键,选择“排列所有小工具以符合内容的显示尺寸”来调整三张报表在仪表盘的大小和位置。您也可以单独调整每个报表的大小和位置,方法是鼠标移动到报表上,等到小工具菜单显示后选择“调整大小以适合内容”,如图 2 所示。 

    图 2. 调整大小
    调整大小 

  4. 在右侧的可插入对象中选择下面的“工具箱”,可以看到有很多小工具,比如可以添加公司的 Web 页面,添加公司商标图像等。这里我们选择“文本”,输入“公司收入仪表盘”,选择合适的大小,把它添加到仪表盘中,如图 3 所示。 

    图 3. 添加文本
    添加文本 

  5. 点击上方工具栏的保存按钮,保存到我的文件夹中,命名为“第一个交互式仪表盘”。不要关闭 IBM Cognos Business Insight。

您可以在 Business Insight 中保存的任意仪表盘设置为主页。在保存按钮旁边有“主页”按钮,您可以在旁边单击箭头,找到“将仪表盘设为主页”这个选项。

 

查看仪表盘的数据

  1. 选择“Revenue by Country – bar - chart”报表,在上方的小工具操作中选择“更改显示类型”,更改为“列表”,如图 4 所示。在“更改显示类型”旁边的按钮是“更改调色板”,您可以根据喜好来选择不同风格不同类型的显示方式来展现数据。 

    图 4. 更改显示类型
    更改显示类型 

  2. 在列表中选择“中国”、“巴西”、“加拿大”和“法国”,然后在上方小工具操作中选择“过滤器”,过滤条件是“包含中国、巴西、加拿大、法国”,如图 5 所示。 。 

    图 5. 添加本地过滤条件
    添加本地过滤条件 

  3. 在上方的小工具操作中选择“更改显示类型”,更改为“条形图”。这样新的“Revenue by Country – bar - chart”报表就仅仅包含中国、巴西、加拿大、法国了。
  4. 点击左上方的展开按钮,可以查看已应用过滤器和已应用排序,如图 6 所示。点击过滤器右边的删除按钮,把刚才建立的“包含中国、巴西、加拿大、法国”过滤器删除。 

    图 6. 查看本地过滤条件
    查看本地过滤条件 

  5. 在右侧的可插入对象中选择下面的“工具箱”,右键点击“幻灯片过滤器”选择“插入”,把它添加到仪表盘中。在幻灯片过滤器属性窗口中,选择三张报表都有的数据项“收入”,把过滤器的内容设为值范围,修改描述文本后确定,如图 7 所示。 

    图 7. 幻灯片过滤器属性
    幻灯片过滤器属性 

  6. 您可以试着调整页面布局,使得仪表盘更美观。在页面的右上角有一个“内容”按钮,点击可以隐藏或者显示右侧的可插入对象,隐藏右侧的可插入对象可以让仪变盘区域变得更大一些。

    您还可以试着拖拽幻灯片过滤器的滑条杆,仪表盘的三张报表图形都会随着变化。



    图 8. 调整全局过滤条件
    调整全局过滤条件 

选择一张报表点击左上方的展开按钮,可以查看已应用过滤器和已应用排序,如图 9 所示。刚才建立的全局过滤条件已经显示在已应用过滤器中了,如果在这里删除过滤器,那么只会影响当前报表,而不会影响仪表盘中的其他报表,这是和本地过滤条件的区别所在。 

图 9. 查看全局过滤条件
查看全局过滤条件 

 

仪表盘的数据交互

  1. 在右侧的可插入对象中选择下面的“内容”,在“公共文件夹 > 示样 > 模型 > GO 数据仓库 ( 分析 ) > Report Studio 报表示样”路径下,右键选择“预算与实际”报表,选择“在新仪表盘中打开”。如果提示“是否保存仪表盘”,选择“是”。
  2. 点击上方工具栏的保存按钮,保存到我的文件夹中,命名为“数据交互”。
  3. 右键选择您需要评注的数据,比如美洲户外用品商店的差额百分比 69.16%,选择添加注释,如图 10 所示。 

    图 10. 添加注释
    添加注释 

  4. 注释内容填写“69.16% - 增加预算”,确定以后可以看到在 69.16% 数据项上有红色三角形标记,表明有注释。您要查看注释,可将指针悬停于注释(由红色三角形标记指明)上。具有报表读取权限的所有用户都可以查看注释。 如果同一单元格或报表小工具有多个注释,它们将按逆时序显示。 对于每个注释,您可以看到撰写注释的用户的用户名、撰写日期和时间。 

    图 11. 查看注释
    查看注释 

  5. 点击上方小工具操作的菜单,可以将包含报表内容的报表小工具导出为多种格式。要保存数据的快照,您可以创建报表小工具的 PDF 版本,刚才添加的注释也会保留在导出的 PDF 文件中。当您导出到 PDF 时,小工具将出现在 Adobe Reader 中,因此您必须在计算机上安装 Adobe Reader。 

    图 12. 将仪表盘小工具导出为不同格式
    将仪表盘小工具导出为不同格式 

  6. 您可以查看报表数据项的 lineage 信息,以了解该报表数据项所代表的内容。Lineage 信息通过数据包和数据包使用的数据源追溯项目的元数据。Lineage 还显示报表创建者添加的或在数据模型中定义的所有数据项过滤器。

    IBM Cognos BI Lineage 工具包括两种视图:业务视图和技术视图。业务视图显示了高级语篇信息,该信息描述了数据项及其所来自的数据包。技术视图是选定数据项的 lineage 的图形表示。Lineage 从数据包中的数据项一直跟踪到数据包使用的数据源。



    图 13. 查看报表数据项的传承信息
    查看报表数据项的传承信息 

  7. 下面按住 CTRL 键选中您关心的地区门店,比如“美洲 > 户外用品商店”、“美洲 > 直销”和“美洲 > 百货商店”,然后点击上方小工具操作的计算按钮,选择“+ > 直销 + 户外用品商店 + 百货商店”。您会发现刷新后的仪表盘把计算结果显示在新行中。默认情况下,将使用计算中所用的表达式作为标题名称。计算结果不会存储在基础数据源中。相 反,IBM Cognos Business Insight 会在每次刷新报表时重新运行计算。计算结果始终以数据源中的最新数据为基础。 

    图 14. 增加计算
    增加计算 

您在上方小工具操作的按钮里面还能找到“分组 / 取消分组”、排序等按钮。如果是灰色,表示该功能不适用您目前的报表和数据。

排序按字母或数字的升序或降序组织数据。例如,您可以对列出产品销售额的列按降序进行排序,以便对产品销售额从高到低进行排序。

如果列表报表中的同一列多次出现同一个值,那么您可以将这些相同的值归为一组。分组操作将对选定报表项目的行进行重新排序,这样相同值会一起显示并抑制重 复显示的情况。由于分组的列会显示在未分组的列之前,因此分组和取消分组操作可能会更改报表项目的顺序。但是您可以对列表中的列重新排序来提高报表的可读 性。

总结

     在本系列教程的“第 1 部分,第一次安装”中,您安装了样例数据和样例档案。您可以在“公共文件夹 > 示样 > 模型 > Business Insight 示样”目录下找到六个样例仪表盘。您可以依次打开来进行更深一步地研究和学习。

  • 员工满意度仪表盘

    该报表显示员工满意度的不同度量,例如培训投资、员工调查结果(按部门和按主题,包括与计划调查结果的比较),以及员工奖金列表(按国家 / 地区排序)。滑块过滤器适用于奖金列表。

  • 市场营销仪表盘

    该仪表盘显示不同促销活动的结果。活动名称的选择值过滤器适用于前两个图表。产品系列选择值过滤器适用于广告费图表,年份滑块过滤器适用于广告费交叉表。

  • 招聘仪表盘

    该仪表盘显示针对不同指标(根据组织、部门、分部)的招聘结果(填充职位的平均天数)、年份和有关不同招聘技巧的成功的详细信息。两个选择值过滤器控制其中三个小工具。

  • 收入数据仪表盘

    该仪表盘按区域、国家 / 地区(由选择值过滤器控制)、产品类型(由选择值过滤器控制)及订购方法显示收入。

  • 销售(按年)仪表盘

    该仪表盘显示由滑块过滤器控制的一年范围内不同的销售指标:利润率、毛利润、产品成本、销售数量、区域收入以及实际收入与计划收入之间的比较。滑块过滤器控制所有小工具。

  • 销售仪表盘(交互式)

    该仪表盘显示销售的不同方面:月毛利润、地区毛利润和产品系列毛利润,区域收入以及对该销售做出贡献的销售代表的数目。 该源对象基于“Go 数据仓库 ( 分析 )”数据包和“Go 数据仓库 ( 查询 )”数据包。 该销售仪表盘是交互式的,可以支持向上追溯和向下追溯的功能。

    您可以在报表或报表组成部分中向上追溯或向下追溯。在 IBM Cognos Business Insight 中,对于列表和交叉表,将指针悬停在数据项上时,超链接会标识可追溯项目。在图表中,当您将指针悬停在可追溯项目上时,指针将变为手形,并且工具提示将指 明您将追溯的内容。在 Business Insight 中,仅当您使用按维度结构化的数据时,才能执行向上追溯和向下追溯。

posted @ 2013-02-26 14:06 小胡子 阅读(405) | 评论 (0)编辑 收藏

什么是交互式离线报表

IBM Cognos Active Report 是可以与用户交互的离线报表,包含了数据和展现内容,它在无法访问企业内部网络和数据库的情况下仍然可以通过此类报表分析数据,获得有价值的信息。 IBM Cognos Active Report 非常适合移动办公的情况,如销售体系。使用者在离线的条件下浏览报表,深入挖掘数据,获取额外的信息。IBM Cognos Active Report 拓展了商务智能的应用场景,并让系统户的更好的性能和支持更大的使用规模。

用户使用 IBM Cognos Report Studio 来创建 Active Report。IBM Cognos Active Report 具有很强的交互性和易用性,报表的设计从用户需求出发,并确保的简洁美观流畅的用户体验。 IBM Cognos Active Report 是 IBM Cognos Report Studio 报表的拓展。数据需要以一种简洁易懂的组织方式呈现给客户。有些用户习惯于数字,而另一些则偏好于图表。为了方便设计人员设计出更简洁的报表,IBM Cognos Report Studio 在保持原有功能的同时加入了一些交互式的控件 , 如选项卡、下拉菜单等,用于定义交互报表,对数据进行排序和过滤。

作为一个高级业务人员,可以将刚刚完成的动态报表下载成为本地文件,并转发给公司其它成员 . 文件最终以 mht 格式保存 , 并可以以邮件附件形式发送给同事。

如果正在使用 Microsoft Internet Explorer 6.0,则无法将 MHT 格式的活动报表作为文件打开,交互式离线报表需要 Microsoft Internet Explorer 7 版本以上。要在 Mozilla Firefox 中查看 MHT 格式的活动报表,必须先下载一个 UnMHT 附加组件。

创建第一张交互式离线报表

  1. 在开始菜单中启动 IBM Cognos BI Developer Edition,运行 Developer Edition Manager,在确保左侧的服务都正常的情况下,点击右上角的启动,选择 Report Studio。
  2. 在“Cognos > 公共文件夹 > 示样 > 模型”路径下,选择“ GO 数据仓库 ( 查询 ) ”数据包,进入 IBM Report Studio 后选择“新建”。

    图 1. 选择数据包


    在选择报表类型的时候,选择“活动报表”,点击确定。



    图 2. 选择报表类型

     

  3. 在左侧的可插入对象中先插入一个列表,然后展开“销售和市场营销(查询)”目录,再展开“销售(查询)”命名空间,按住 Control 键后选择“产品”下的产品类型以及“销售资料”下的收入和计划收入,拖动到右边报表页中,如图 3 所示。
         
       

  1. 在列表报表中选中收入和计划收入,然后点击工具栏上的汇总,在输出中汇总选择“总计”选项,如图 4 所示。

    图 4. 汇总

     

  2. 然后在左侧的可插入对象中选择下面的“工具箱”,选择“块”拖入到右侧列表报表的前面。这样是为了有地方来安放控件。接着在“工具箱”空白处,右键选择“活动报表工具箱项目”,如图 5 所示。

    图 5. 工具箱

     

  3. 把“数据下拉列表”控件拖入到右侧“块”区域中。
  4. 在左侧的可插入对象中,选择来源,展开“销售和市场营销(查询)”目录,再展开“销售(查询)”命名空间,选择“产品”下的产品系列,拖动到刚才“数据下拉列表”控件中,如图 6 所示。这时候可以运行报表,有数据但是没有交互控制。所以接下来要配置数据之间的交互。

    图 6. 把数据项目放到控件

     

  5. 在“数据下拉列表”控件中选择“交互式行为”按钮,在弹出的对话框下部选择“创建新连接”,如图 7 所示。

    图 7. 交互式行为



  6. 在连接的对话框中,建立“过滤”方法来连接数据下拉列表和列表报表,如图 8 所示。确定以后会发现列表报表中增加了一个隐藏的列“产品系列”,这是为了进行数据下拉列表和列表报表交互功能而增加的。现在可以运行报表,这时候下拉列表就有作用了。

    图 8. 创建数据下拉列表和列表报表连接

     

  7. 在左侧的可插入对象中选择下面的“工具箱”,选择“数据复选框组”拖入到右侧 “块”区域中。
  8. 在左侧的可插入对象中,选择来源,展开“销售和市场营销(查询)”目录,再展开“销售(查询)”命名空间,选择“时间”下的年份,拖动到刚才“数据复选框组”控件中,如图 9 所示。

    图 9. 增加年份数据复选框

     

  9. 您会发现“数据下拉列表”控件的交互式行为圆圈是浅绿色的,说明已经进行过配置。而新 加的“数据复选框组”控件的交互式行为圆圈是没有颜色的,说明还没有进行配置,选择“交互式行为”按钮,在弹出的对话框下部选择“创建新连接”。在连接的 对话框中,建立“过滤”方法来连接数据复选框组和列表报表,如图 10 所示。注意在左侧需要选择“数据复选框组”,右侧需要选择“列表”,数据项选择“年份”,然后选择“连接”后确定。

    图 10. 创建数据复选框组和列表报表连接

     

  10. 您会发现列表报表中又增加了一个隐藏的列“年份”,这是为了进行数据复选框组和列表报 表的交互功能而增加的。而且 “数据下拉列表”控件和“数据复选框组”控件的交互式行为圆圈都是浅绿色,说明配置已经完成,可以保存您的设计。您运行报表,请从“运行”菜单中单击“运 行活动报表”,不要关闭 Report Studio 窗口。

    图 11. 保存交互式离线报表

     

  11. 要把交互式离线报表本地保存下来,请从“运行”菜单中单击“下载活动报 表”,出现提示时请选择将报表另存为 MHT 文件。在这个例子中,MHT 文件大小为 997 KB。您可以将该报表发送给您的客户,在 Microsoft Internet Explorer 或 Mozilla Firefox 浏览器中可以查看 MHT 文件。

图表互动的交互式离线报表

Cognos BI 10 平台重新研发了新的图形引擎,比 Cognos BI 8 的图形引擎有了质的飞跃。Cognos BI 10 图形引擎支持 3-D 效果,超过 60 种新的预设属性,加强的图形能力,如饼图、环图,提供新的图形,如子弹图,加强的图形风格样式 (调色板,颜色、填充、图片、阴影等),还支持在图例中使用条件格式,汇总小项,图形矩阵布局控制,趋势线等功能。为了在本教程中使用 10 版本新的图形引擎,在 Report Studio 的工具菜单中点击选项,在高级选项标签中,去掉“使用原始图表创建”的选择,如图 12 所示。


图 12. 使用 10 版本的图形引擎
使用 10 版本的图形引擎 

  1. 在 Report Studio 中打开刚才的第一张交互式离线报表,因为要增加图形,所以为了美观,在报表区域空白处单击选中报表,然后在工具栏上的“插入表格”按钮,拖拉生成 1x2 的表格,然后把列表报表拖动到左边的单元格,数据下拉列表和数据复选框组两个控件保持不变。最后用工具栏的顶部对齐功能,让 1x2 的表格顶部对齐,参见图 13 所示。 

    图 13. 插入表格
    插入表格 

  2. 然后在左侧的可插入对象中选择下面的“工具箱”,选择“数据卡片组”拖入到右侧报表区域的右边的单元格。
  3. 在左侧的可插入对象中,选择来源,展开“销售和市场营销(查询)”目录,再展开“销售(查询)”命名空间,选择“产品”下的产品系列和 “时间”下的年份,,拖动到刚才“数据卡片组”控件中的值,如图 14 所示。 

    图 14. 数据卡片组的值
    数据卡片组的值 

  4. 在“数据卡片组”控件中选择“交互式行为”按钮,在弹出的对话框下部选择“创建新连接”。在连接的对话框中,选择数据复选框组和数据卡片组,并用年份数据项做连接,如图 15 所示。 

    图 15. 创建数据卡片组和数据复选框组的连接
    创建数据卡片组和数据复选框组的连接 

  5. 再一次“创建新连接”。在连接的对话框中,选择数据下拉列表和数据卡片组,并用产品系列数据项做连接。这样就在数据卡片组与数据复选框和下拉列表之间创建 了连接,分别用产品系列和年份作为连接数据项。这样在交互式行为对话框中可以看到这两个连接,然后确定。如图 16 所示。 

    图 16. 分别用产品系列和年份作为连接数据项的两个连接
    分别用产品系列和年份作为连接数据项的两个连接 

  6. 在左侧的可插入对象中选择下面的“工具箱”,选择“图表”拖入到“数据卡片组”控件中,如图 17 所示。如果找不到“图表”控件,可以在“工具箱”空白处,右键选择“所有工具箱项目”。在插入图表对话框中选三维饼形图。 

    图 17. 插入图表
    插入图表 

  7. 在左侧的可插入对象中,选择来源,展开“销售和市场营销(查询)”目录,再展开“销售(查询)”命名空间,选择“销售资料”下的收入,拖动到三维饼形图的 默认度量中;选择“订购方法”下的订购方法类型,拖动到三维饼形图的序列中。然后在饼图空白处右键选择“转至查询”,如图 18 所示。 

    图 18. 设置饼图的度量和序列
    设置饼图的度量和序列 

  8. 在左侧的可插入对象中,选择来源,展开“销售和市场营销(查询)”目录,再展开“销售(查询)”命名空间,选择“产品”下的产品系列和“时间”下的年份,拖动到饼图查询的数据项中。接着在页面资源管理器上选择页面 1 回到报表页面。 

    图 19. 增加数据项
    增加数据项 

  9. 在饼图空白处右键选择“主要 / 明细关系”,如图 20 所示。创建“主要 / 明细关系”可以将饼图和数据卡片组组合,其中数据卡片组是主要查询,饼图是明细查询。数据卡片组可以包含产品系列和年份,而此图表可以显示每个产品系列年 份的收入。如果右键菜单找不到“主要 / 明细关系”,则要检查第 6 步,是否已经把饼图插入到数据卡片组控件中。 

    图 20. 设置主要 / 明细关系
    设置主要 / 明细关系 

  10. 建立两个“新建链接”,分别是年份和产品系列的关联。然后保存您的报表设计。 

    图 21. 建立连接
    建立连接 

  11. 您运行报表,请从“运行” 菜单中单击“运行活动报表”。要把交互式离线报表本地保存下来,请从“运行”菜单中单击“下载活动报表”,出现提示时请选择将报表另存为 MHT 文件。在这个例子中,MHT 文件大小为 2265 KB。您可以将该报表发送给您的客户,在 Microsoft Internet Explorer 或 Mozilla Firefox 浏览器中可以查看 MHT 文件,您可以试着选取年份和产品系列来进行交互和查看图表的变化。在本文最后有最终生成的交互式离线图表的 MHT 文件供下载参考。

总结

您可以使用 IBM Cognos Report Studio 创建交互式离线报表,又称为活动报表或 Active Report。交互式离线报表是传统 IBM Cognos 报表的扩展。 您可以利用现有报表,并通过添加交互式行为将其转换为活动报表,从而为最终用户提供一个易用的界面。

您使用构建其他报表类型的相同对象来构建活动报表。 但是,有些对象专用于活动报表。这些对象归为两类:

  • 活动报表控件,比如本教程中使用的数据复选框、下拉列表、数据卡片组控件。
  • 活动报表变量,变量与活动报表控件搭配使用,以便向报表添加交互性。 对控件执行的操作(例如选择控件中的某个项目或选择某个控件本身)可以设置变量值。 反过来,控件可以响应变量值中的更改,例如过滤控件中的数据。



posted @ 2013-02-26 10:49 小胡子 阅读(362) | 评论 (0)编辑 收藏

准备工作

IBM Cognos Business Intelligence 10.1 是最新的商业智能解决方案,用于提供查询、报表、分析、仪表板和记分卡功能,并且可通过规划、方案建模、预测分析等功能进行扩展。它可以在人们尝试了解业绩并使用工具做出决策时,在思考和工作方式方面提供支持,以便人们可以搜索和组合与业务相关的所有方面,并与之进行交互。

  • 查询和报表功能为用户提供根据事实做出决策所需的信息。
  • 仪表板使任何用户都能够以支持其做出决策的方式来访问内容、与之交互,并对其进行个性化设置。
  • 分析功能使您能够从多个角度和方面对信息进行访问,从而可以查看和分析信息,帮助您做出明智的决策。
  • 协作功能包括通信工具和社交网络,用于推动决策过程中的意见交流。
  • 记分卡功能可实现业务指标的捕获、管理和监控的自动化,使您可将其与自己的战略和运营目标进行比较。

在开始体验 Cognos BI 10.1 之前,您需要到 IBM developerWorks 去下载 Cognos 10.1 的试用版。IBM Cognos BI Developer Edition V10.1.0 下载地址是:http://www.ibm.com/developerworks/cn/downloads/im/cognosbi/。 您需要下载两个文件,IBM Cognos BI Developer Edition 10.1.0 Windows English 的下载文件名是 CZS56EN.tar.gz,IBM Cognos Business Intelligence Samples V10.1.0 for DB2 LUW Windows English 的下载文件名是 CZQ90EN.tar.gz。IBM Cognos BI Developer Edition V10.1.0 有 30 天的使用时间,足够让您完成本教程的学习了。

根据试用版的系统需求,您需要用 Windows 操作系统来进行安装,要求 Windows XP SP3 或者更高的版本。另外您要安装 Windows 的 Internet 信息服务 IIS,并且把浏览器 IE 升级到 7 版本以上。建议内存有 2G 以上,有 1.5 G 以上的临时空间和 2G 以上的磁盘空间来进行安装。

由于本教程需要数据库来存放 Cognos BI 10.1 的样例数据,所以您还需要到 IBM developerWorks 去下载 DB2 的社区版。DB2 Express-C 9.7.4 for Windows 下载地址是:http://www.ibm.com/developerworks/cn/downloads/im/udbexp/。下载文件名是 db2exc_974_WIN_x86.exe。

安装 DB2

双击 db2exc_974_WIN_x86.exe 然后选择任意目录进行解压缩。解压成功后点击 setup.exe 进入 DB2 安装启动板。


图 1. DB2 安装启动板
 

点击“安装新产品”,进入到安装向导界面,点击“下一步”继续。阅读并接受许可协议,点击“下一步”继续。


图 2. 选择安装类型
 

本教程选择典型安装,这个选项将安装 DB2 的主要部件和功能。


图 3. 选择创建响应文件
 

选择不创建响应文件而只进行安装,点击“下一步”继续。


图 4. 选择安装文件夹
 

一般使用默认的驱动器和目录设置就可以了,确保有 560 MB 可用空间,点击“下一步”继续。


图 5. 设置用户信息
 

安装 DB2 之后,某些 DB2 进程会作为系统服务运行。为了运行这些服务,需要一个操作系统帐户。在本教程中,使用默认的 db2admin 用户帐户,密码为 cognos,DB2 安装程序会在操作系统中创建它。当然您也可以指定使用一个现有的帐户,但是这个帐户必须具有本地管理员权力。点击“下一步”继续。


图 6. 配置 DB2 实例
 

可以认为 DB2 实例是数据库的容器。必须有一个实例,然后才能创建数据库。在 Windows 上进行安装时,会自动创建一个称为 DB2 的实例。在默认情况下,DB2 实例监听端口 50000 上的 TCP/IP 连接。可以点击配置来查看,在本教程中一切保持默认配置即可。点击“下一步”继续。


图 7. 开始复制文件
 

检查前面选择的安装选项。单击“安装”。结束以后,点击“完成”即可。


 

安装 Cognos

解压文件 CZS56EN.tar.gz,然后点击运行 Cognos 10 BI Server 安装程序 install.exe。


图 8. IBM Cognos BI Developer Edition 安装界面
IBM Cognos BI Developer Edition 安装界面 

选择简体中文后,点击“OK”。在简介这一步骤中,阅读许可协议并选择接受协议条款。


图 9. 选择安装文件夹
选择安装文件夹 

选择缺省文件夹即可以,要保证有可用空间。快捷方式文件夹是指产品图标的程序组,也可以采用缺省的 IBM Cognos BI Developer Edition。


图 10. 配置
配置 

在配置界面中可使用默认的端口。然后给 Cognos 的管理员设定用户名和密码,在本教程中设定管理员为 administrator,密码为 cognos。


图 11. 安装摘要
安装摘要 

在安装摘要中可以看到整个安装需要 1.5G 以上的磁盘空间,点击“安装”继续。


图 12. 完成安装
完成安装 

完成安装界面时候,勾选启动 IBM Cognos BI Developer Edition Manager,然后点击“完成”。IBM Cognos BI Developer Edition Manager 是开发版特有的组件,可以用来安装和配置 IBM Cognos BI 和 Framework Manager,也可以用来管理用户和启动停止服务。


图 13. IBM Cognos Developer Edition Manager 第一次启动界面
IBM Cognos Developer Edition Manager 第一次启动界面 

第一次启动 IBM Cognos BI Developer Edition Manager,点击“完成”让 Manager 进行初始化的安装和配置。


图 14. 安装 IBM Cognos Developer Edition Manager
安装 IBM Cognos Developer Edition Manager 

安装过程可能需要十几分钟,耐心等待直到登陆界面出现。


图 15. 登陆 IBM Cognos Developer Edition Manager
登陆 IBM Cognos Developer Edition Manager 

在登陆界面中输入在 图 10所示的用户名和密码,在本教程中是 administrator 和 cognos,然后点击确定。


图 16. 安装 Cogos BI Suite
安装 Cogos BI Suite 

选择 BI Suite,然后进行安装。IBM Cognos BI Suite 赋予了您完整的自助服务报告和即席查询能力,使其可以访问、修改和创建报表。访问任意类型的数据,包括关系 OLAP、分析 OLAP 或桌面文件。并通过 Web、PDF、Excel、电子邮件或门户发送您的报表。安装过程可能需要半小时,耐心等待直到直到登陆界面出现。在登陆界面中输入在图 10 所示的用户名和密码,在本教程中是 administrator 和 cognos,然后点击确定。


图 17. 安装 Framework Manager
安装 Framework Manager 

选择 Framework Manager,然后进行安装,这个步骤非常快就完成了。Framework Manager 是元数据建模工具。它使得建模者可以创建和管理业务相关的元数据,以便在所有 Cognos BI 应用程序中使用。Framework Manager 的主要用户为数据仓库开发人员和数据建模者。

配置 Cognos

首先需要把 C:\Program Files\IBM\SQLLIB\java 目录下的 db2jcc.jar 和 db2jcc_license_cu.jar 拷贝到 C:\Program Files\IBM\Cognos Developer\tomcat\lib 目录下,然后在 IBM Cognos Developer Edition Manager 重启 Cognos 服务。

安装样例数据

解压文件 CZQ90EN.tar.gz,然后点击运行 install_DB2_samples.exe 进行安装。在 Instruction 这一步骤中,阅读许可协议并选择接受协议条款。


图 18. 选择安装路径
选择安装路径 

安装路径采用缺省的,这样会和 IBM Cognos BI Developer Edition 安装在同一目录下。完成安装后,样例数据文件会放在 C:\Program Files\IBM\Cognos Developer\webcontent\samples\datasources\db2,找到数据文件 GS_DB.tar.gz,并进行解压缩。

然后在点击开始菜单,选择运行,输入 db2cmd 再确定,进入到 DB2CLP 的窗口。安装过程可能需要五分钟,具体操作命令和显示参见清单 1。在这个过程中需要输入 DB2 的用户名和密码,在本教程是 db2admin 和 cognos。


清单 1. 创建数据库并导入数据

				     >CD C:\Program Files\IBM\Cognos Developer\webcontent\samples\datasources\db2\GS_DB\win   >GOSalesConfig.bat   >setupGSDB.bat   -------------------------------------------------------------------   DB2 version 9 or later detected - using DB2 Version 9 syntax   -------------------------------------------------------------------   Press Enter at the prompts to accept the default value shown   Default values can be specifed in the file GOSalesConfig.sh   -------------------------------------------------------------------   Please enter the name of the database ( or the alias ) to be used for the   GOSales sample data (default=GS_DB) :   -------------------------------------------------------------------   This script can create the GS_DB database.    Creating the database will cause any existing databases  with the same name to be dropped.   If you choose not to recreate the database,   existing objects within the database will be dropped.   Would you like to create the database GS_DB (Y/N) Default=Y :   Please wait ...   Starting GOSALES_RUN_SCRIPTS   Dropping existing database GS_DB if found   Creating database GS_DB   Please wait ...   Starting GOSALES_RUN_SCRIPTS   Connecting to GS_DB  输入 db2admin 的当前密码:cognos   数据库连接信息  数据库服务器         = DB2/NT 9.7.4   SQL 授权标识         = DB2ADMIN   本地数据库别名       = GS_DB   Error dropping existing tables   Creating tables.   Loading data.   Creating primary keys   Creating indexes   Creating constraints.   Creating stored procedures   Creating views   Granting permissions   Updating statistics   Verifying row counts   Table row count validation successful   Adding table comments

 


创建数据源连接

在开始菜单中启动 IBM Cognos BI Developer Edition,运行 Developer Edition Manager,在确保左侧的服务都正常的情况下,点击右上角的启动,如图 19 所示选择 IBM Cognos Administration。


图 19. 启动 Cognos Administration
启动 Cognos Administration 

在 IBM Cognos Administration 界面中选择配置页,选中“数据源连接”,点击右上角的图标,如图 20 所示新建数据源。


图 20. 在 Cognos Administration 中添加数据源
在 Cognos Administration 中添加数据源 

  1. 在指定名称和说明 - 新建数据源向导中,名称中输入“great_outdoors_sales”,点击下一步。
  2. 在指定连接 - 新建数据源向导中,选择类型为“IBM DB2”,点击下一步。
  3. 在指定 IBM DB2 连接字符串 - 新建数据源向导中,DB2 数据库名称写为“GS_DB”,在登陆勾选“密码”,用户 ID 中写为 “db2admin”,密码和确认密码写为 “cognos”。然后点击“测试连接”如图 21 所示。测试成功后点击下一步。如果测试有问题的时候,可以重启 Cognos 服务或者重启系统。 

    图 21. 指定 IBM DB2 连接字符串
    指定 IBM DB2 连接字符串 

  4. 在指定命令 - 新建数据源向导中,保持缺省,点击完成。
  5. 重复 1 到 4 的步骤,再创建“great_outdoors_warehouse”数据源,即名称为“great_outdoors_warehouse”,其余内容“great_outdoors_sales”一样。
  6. 在指定名称和说明 - 新建数据源向导中,名称中输入“sales_and_marketing”,点击下一步。
  7. 在指定连接 - 新建数据源向导中,选择类型为“IBM Cognos PowerCube”,点击下一步。
  8. 指定 IBM Cognos PowerCube 连接字符串 - 新建数据源向导中,Windows 位置输入“C:\Program Files\IBM\Cognos Developer\webcontent\samples\datasources\cubes\PowerCubes\EN \sales_and_marketing.mdc”。然后点击“测试连接”,测试成功后点击完成。
  9. 重复 6 到 8 的步骤,再创建“great_outdoors_sales_en”数据源,即名称为 “great_outdoors_sales_en”,Windows 位置输入“C:\Program Files\IBM\Cognos Developer\webcontent\samples\datasources\cubes\PowerCubes\EN \great_outdoors_sales_en.mdc”。
  10. 重复 6 到 8 的步骤,再创建“employee_expenses”数据源,即名称为“employee_expenses”,Windows 位置输入“C:\Program Files\IBM\Cognos Developer\webcontent\samples\datasources\cubes\PowerCubes\EN\ employee_expenses.mdc”。
  11. 重复 6 到 8 的步骤,再创建“go_accessories”数据源,即名称为“go_accessories”,Windows 位置输入“C:\Program Files\IBM\Cognos Developer\webcontent\samples\datasources\cubes\PowerCubes\EN\ go_accessories.mdc”。
  12. 重复 6 到 8 的步骤,再创建“go_americas”数据源,即名称为“go_americas”,Windows 位置输入“C:\Program Files\IBM\Cognos Developer\webcontent\samples\datasources\cubes\PowerCubes\EN\ go_americas.mdc”。
  13. 重复 6 到 8 的步骤,再创建“go_asia_pacific”数据源,即名称为“go_asia_pacific”,Windows 位置输入“C:\Program Files\IBM\Cognos Developer\webcontent\samples\datasources\cubes\PowerCubes\EN\ go_asia_pacific.mdc”。

 

 

回页首

导入示例档案库

接下来要把示例的部署档案库导入到 Cognos 环境中来。这些档案库的位置在 C:\Program Files\IBM\Cognos Developer\webcontent\samples\content\db2 目录下。选择拷贝三个文件到 C:\Program Files\IBM\Cognos Developer\deployment 目录下准备进行部署。 这三个文件是 IBM_Cognos_Samples.zip,本教程主要的 Great Outdoors 公司例子; IBM_Cognos_DrillThroughSamples.zip, Great Outdoors 公司显示钻透功能的例子; IBM_Cognos_PowerCube.zip 多维立方体的例子。

  1. 在 IBM Cognos Administration 界面中选择配置页,选中“内容管理”,点击右上角的图标,如图 22 所示新建导入。 

    图 22. 新建导入向导
    新建导入向导 

  2. 在部署档案库中,首先选择 IBM_Cognos_Samples,点击下一步。
  3. 在指定名称和说明 - 新建导入向导,按照默认的名字,点击下一步。
  4. 在公共文件夹内容中,勾选档案库的内容“示样”,点击下一步。
  5. 在指定常规选项 - 新建导入向导,保留默认选项,点击下一步。
  6. 复查汇总 - 新建导入向导,点击下一步。
  7. 在选择操作 - 新建导入向导中,选择“保存并运行一次” ,点击完成。
  8. 在运行使用选项 - IBM_Cognos_Samples 中,选择“现在”,点击运行。
  9. 重复 1 到 8 的步骤,选择 IBM_Cognos_PowerCube 进行导入。

       10. 重复 1 到 8 的步骤,选择 IBM_Cognos_DrillThroughSamples 进行导入。

 

 

第一张简单报表

在开始菜单中启动 IBM Cognos BI Developer Edition,运行 Developer Edition Manager,在确保左侧的服务都正常的情况下,点击右上角的启动,选择 Report Studio,如 图 19所示。

在“Cognos > 公共文件夹 > 示样 > 模型”路径下,选择“ GO 数据仓库 ( 查询 ) ”数据包,进入 IBM Report Studio 后选择“新建”。


图 23. 选择数据包
选择数据包 

在选择报表类型的时候,选择“列表”,点击确定。


图 24. 选择报表类型
选择报表类型 

在左侧的可插入对象中,展开“销售和市场营销(查询)”目录,再展开“销售(查询)”命名空间,选择“产品”下的产品系列、产品类型和产品,选择“销售资料”下的数量和收入,一个一个拖动到右边的列表中。


图 25. 选择项目
选择项目 

剩下的工作就是点击工具栏的运行按钮,来等待您的第一张简单报表出炉了,如图 26 所示。


图 26. 运行报表
运行报表 

报表运行结果如图 27 所示。


图 27. 第一张简单报表
第一张简单报表

总结

在整个安装过程中,DB2 是用户数据源,我们把本教程的样例数据放在了 DB2 的 GS_DB 数据库中,并在 Cognos Administration 进行了数据源的配置。

Cognos Connection 是 Cognos 门户,提供信息的集成和用户访问的统一入口。管理员可以通过他实现用户、角色管理,服务器配置,权限控制等各种管理功能;最终用户可以通过 Cognos Connection 访问到文件夹、报表、个性化展现、访问 Cognos Viewer、Report Studio、Business Insight 和 Event Studio 的内容。

Report Studio 是专业的报表制作模块。报表制作人员可以通过他制作各种类型的报表,包括中国特色的非平衡报表,地图,动态仪表盘,KPI 报表等。报表制作人员可以分页面设计,每页可以有多个查询,每个查询可以连接多个数据源,甚至异构数据源。报表的内容采用的是化繁为简的方式,可以精确控 制报表中每一个对象的各种属性。

Business Insight 是业务用户的自定义仪表盘工具,用户可以拖拽任意 Cognos BI 内容(包含查询,报表,分析,TM1 数据集等)形成自定义的仪表盘。

Cognos Framework Manager 是一个专门对元数据进行管理的客户端开发工具。他可以连接多个数据源,能够连接 OLAP 和数据库等各种数据源,并提供对元数据的定制和管理以及安全性控制等相关控制。


图 28. IBM Cognos BI Developer Edition 架构和工作原理
IBM Cognos BI Developer Edition 架构和工作原理 

当您运行第一张简单报表的时候,IBM Cognos BI Developer Edition 是按照下面步骤来运行的:

  1. 在 IBM Cognos Framework Manager 工具中,建模人员确保元数据是按照业务人员可以理解的方式来进行组织的。建模人员把元数据从一个或多个数据库中导入,并按照业务需求添加到模型中。
  2. 建模人员把模型数据包发布到 IBM Cognos Connection,这样开发报表人员就可以利用它们来进行创建报表和仪表盘了。比如在本教程中的“ GO 数据仓库 ( 查询 ) ”数据包。
  3. 业务人员和报表开发人员利用已经发布的数据包来理解业务数据。
  4. 用户在 IBM Cognos Connection 运行、查看和管理他们的内容。根据不同的权限,他们可以简单运行和查看报表,或者管理计划、门户展示等。

源文出自:http://blog.csdn.net/thy822/article/details/7608305

posted @ 2013-02-26 09:46 小胡子 阅读(1240) | 评论 (0)编辑 收藏

两种方法一样,只是写法不同
第一种写法
1 listeners:{  
2         beforeedit:function(e){  
3             if(...) e.cancel = true;//true表示不可编辑
4         }  
5 }

第二种写法
1 grid.on('beforeedit',function(e)){
2   var record = e.record;
3   if(...){
4     e.cancel = true;//true表示不可编辑
5   }
6 }

posted @ 2013-02-21 16:10 小胡子 阅读(1062) | 评论 (0)编辑 收藏

1.首先看效果
2.需要一个合计插件GridSummary.js GridSummary 插件,下载后将后缀名该为 js
3.页面需要引用的文件
 1     <link rel="stylesheet" type="text/css" href="include/ext-3.4.0/resources/css/ext-all.css" />
 2     <link rel="stylesheet" type="text/css" href="include/ext-3.4.0/ux/css/ux-all.css" />
 3     <script type="text/javascript" src="include/ext-3.4.0/adapter/ext/ext-base.js"></script>
 4     <script type="text/javascript" src="include/ext-3.4.0/ext-all.js"></script>
 5     <script type="text/javascript" src="include/ext-3.4.0/ux/ux-all.js"></script>
 6     <script type="text/javascript" src="include/ext-3.4.0/locale/ext-lang-zh_CN.js"></script>
 7     <script type="text/javascript" src="include/ext-3.4.0/ux/GridSummary.js"></script> <!-- 合计插件 -->
 8     <script type="text/javascript" src="demo.js"></script> <!-- 示例js -->


4.Grid代码
    var url = "RequestAction/AT/Req_CT_SHIPMENTS.aspx?Action=GetDetailAll&S_SHIPMENTS_M_GUID=" + guid;
    
//复选框
    var sm = new Ext.grid.CheckboxSelectionModel();
    
var textFileldVehicle = new Ext.form.TextField
        ({
            allowBlank: 
false,
            blankText: 
"请输入车号",
            maxLength: 
50
        });

        
var numField = new Ext.form.NumberField({
            allowNegative: 
false,
            allowDecimals: 
true,
            allowFormat: 
true,
            decimalPrecision: 
2,
            allowBlank: 
false,
            blankText: '金额必须大于零'

        });
    
//字段集合
    var fields =
            [            
            { name: 'S_VEHICLE_NUMBER' },
            { name: 'N_QUANTITY' },
            { name: 'N_FREIGHT' },
            { name: 'S_GUID' },
            { name: 'S_SHIPMENTS_M_GUID' }
            ];
    
var proxy = new Ext.data.HttpProxy({ url: url });
    
//数据读取器
    var reader = new Ext.data.JsonReader({
        totalProperty: 
"totalPorperty"//数据总条数
        root: "rows",    //将要显示数据的数组
        id: "S_GUID",    //每一行数据的唯一记录
        fields: fields
    });

    
//列集合 其中 summaryType: 'sum' 为求和
    var cm = new Ext.grid.ColumnModel
    ({ columns: [sm,
        new Ext.grid.RowNumberer({ header: 'NO', width: 30, align: 'center' }),
        { header: '车号', dataIndex: 'S_VEHICLE_NUMBER', editor: textFileldVehicle, summaryRenderer: function (v, params, data) { return '合计'; } },
        { header: '重量', dataIndex: 'N_QUANTITY', summaryType: 'sum', renderer: formatNumberDefault, align: 'right', editor: numField },
        { header: '运费', dataIndex: 'N_FREIGHT', summaryType: 'sum', renderer: formatNumberDefault, align: 'right', editor: numField}
    ]
    });

//如果全部列都可排序否则单个设置
    cm.defaultSortable = false;

    
//创建一个store
    var shipmentsDetailstore = new Ext.data.Store({
        proxy: proxy,
        reader: reader,
        autoDestroy: 
true,
        autoLoad: { params: { start: 
0, limit: pageSize} }
    });

    
//插入行按钮
    var btn_Insert = new Ext.Button({ text: '插入行', iconCls: 'insert', handler: function () {
        
//定义一个recode对象  
        var initValue = createShipmentDetailRow();
        grid.stopEditing();
        
var maxRowIndex = grid.getStore().getCount();
        grid.getStore().insert(maxRowIndex, initValue); 
//在第一个位置插入 
        grid.view.refresh();
        grid.getSelectionModel().selectLastRow();
        grid.getView().focusRow(maxRowIndex); 
//焦点标记行
        grid.startEditing(maxRowIndex, 2); //单元格转换成编辑状态
    }
    });
    
//删除行按钮
    var btn_Remove = new Ext.Button({ text: '删除行', iconCls: 'delete', handler: function () {
        grid.stopEditing();
        
var rows = grid.getSelectionModel().getSelections();
        
if (rows == undefined || rows.length == 0) {
            setShipmentStatusBarText('error', '请选择需要删除的行!');
            
return//判断记录集是否为空,为空返回   
        }
        grid.getStore().remove(rows);
        grid.view.refresh();
    }
    });

    
//工具栏
    var tbar = new Ext.Toolbar({
        cls: 'top
-toolbar',
        items: [btn_Insert, '
-', btn_Remove]
    });
    
var summary = new Ext.ux.grid.GridSummary();
    
//创建GRID
    var grid = new Ext.grid.EditorGridPanel
        ({
            id: 'ShipmentsDetailGirdPanel',
            deferredRender: 
false,
            enableColumnHide: 
false,
            enableHdMenu: 
false,
            columnLines: 
true,
            enableColumnMove: 
false,
            store: shipmentsDetailstore,
            sm: sm,
            cm: cm,
            loadMask: 
true,
            
//自适应宽度 参数为列数
            //            autoExpandColumn: 4,
            //超过长度带自动滚动条
            autoScroll: true,
            border: 
false,
            nocache: 
false,
            timeout: 
10,
            clicksToEdit: 
1,
            scripts: 
true,
            loadMask: { msg: '正在加载数据,请稍侯……' },
            tbar: tbar,
            view: 
new Ext.ux.grid.BufferView({
                rowHeight: 
25,
                scrollDelay: 
true,
                forceFit: 
true,
                deferEmptyText: 
true,
                emptyText: 
"无数据"
            }),
            
plugins: summary
        });

5.此时会看到合计行字体偏小
添加样式
.x-grid3-summary-row .x-grid3-cell-inner {
    FONT: 12.5px tahoma,arial,helvetica,sans-serif
}

6.此示例Ext版本为 3.4.0





posted @ 2013-02-21 15:51 小胡子 阅读(922) | 评论 (0)编辑 收藏

人们对软件架构存在非常多的误解,其中一个最为普遍的误解就是:将架构(Architecture)和框架(Framework)混为一谈。
   

   框架是一种特殊的软件,它并不能提供完整无缺的解决方案,而是为你构建解决方案提供良好的基础。框架是半成品。典型地,框架是系统或子系统的半成品;框架中的服务可以被最终应用直接调用,而框架中的扩展点是供应用开发人员定制的“可变化点”。

   软件架构不是软件,而是关于软件如何设计的重要决策。软件架构决策涉及到如何将软件系统分解成不同的部分、各部分之间的静态结构关系和动态交互关系等。经 过完整的开发过程之后,这些架构决策将体现在最终开发出的软件系统中;当然,引入软件框架之后,整个开发过程变成了“分两步走”,而架构决策往往会体现在 框架之中。或许,人们常把架构和框架混为一谈的原因就在于此吧!

        
      节选自《软件架构设计》书稿
原文出自:
http://blog.csdn.net/lovingprince/article/details/3347248

posted @ 2013-02-21 09:27 小胡子 阅读(270) | 评论 (0)编辑 收藏

Web集群是由多个同时运行同一个web应用的服务器组成,在外界看来就像一个服务器一样,这多台服务器共同来为客户提供更高性能的服务。集群更标准的定 义是:一组相互独立的服务器在网络中表现为单一的系统,并以单一系统的模式加以管理,此单一系统为客户工作站提供高可靠性的服务。
    而负载均衡的任务就是负责多个服务器之 间(集群内)实现合理的任务分配,使这些服务器(集群)不会出现因某一台超负荷、而其他的服务器却没有充分发挥处理能力的情况。负载均衡有两个方面的含 义:首先,把大量的并发访问或数据流量分担到多台节点上分别处理,减少用户等待响应的时间;其次,单个高负载的运算分担到多台节点上做并行处理,每个节点 设备处理结束后,将结果汇总,再返回给用户,使得信息系统处理能力可以得到大幅度提高
    因此可以看出,集群和负载均衡有本质上的不同,它们是解决两方面问题的不同方案,不要混淆。
   
    集群技术可以分为三大类:
    1、高性能性集群(HPC Cluster)
    2、高可用性集群(HA Cluster)
    3、高可扩展性集群
   
 一、高性能性集群(HPC Cluster)
     指以提高科学计算能力为目标的集群技术。该集群技术主要用于科学计算,这里不打算介绍,如果感兴趣可以参考相关的资料。
 二、高可用性集群(HA Cluster)
     指为了使群集的整体服务尽可能可用,减少服务宕机时间为目的的集群技术。如果高可用性集群中的某节点发生了故障,那么这段时间内将由其他节点代替它的工作。当然对于其他节点来讲,负载相应的就增加了。
    为了提高整个系统的可用性,除了提高计算机各个部件的可靠性以外,一般情况下都会采用该集群的方案。
    对于该集群方案,一般会有两种工作方式:
     ①主-主(Active-Active)工作方式
       这是最常用的集群模型,它提供了高可用性,并且在只有一个节点时也能提供可以接受的性能,该模型允许最大程度的利用硬件资源。每个节点都通过网络对客户机 提供资源,每个节点的容量被定义好,使得性能达到最优,并且每个节点都可以在故障转移时临时接管另一个节点的工作。所有的服务在故障转移后仍保持可用,但 是性能通常都会下降。
    

       这是目前运用最为广泛的双节点双应用的Active/Active模式。

        支撑用户业务的应用程序在正常状态下分别在两台节点上运行,各自有自己的资源,比如IP地址、磁盘阵列上的卷或者文件系统。当某一方的系统或者资源出现故障时,就会将应用和相关资源切换到对方的节点上。

这种模式的最大优点是不会有服务器的“闲置”,两台服务器在正常情况下都在工作。但如果有故障发生导致切换,应用将放在同一台服务器上运行,由于服务器的处理能力有可能不能同时满足数据库和应用程序的峰值要求,这将会出现处理能力不够的情况,降低业务响应水平。

    
     ②主-从(Active-Standby)工作方式
      为了提供最大的可用性,以及对性能最小的影响,主-从工作方式需要一个在正常工作时处于备用状态的节点,主节点处理客户机的请求,而备用节点处于空闲状态,当主节点出现故障时,备用节点会接管主节点的工作,继续为客户机提供服务,并且不会有任何性能上影响。
         
 

  两节点的Active/Standby模式是HA中最简单的一种,两台服务器通过双心跳线路组成一个集群。应用Application联合各个可选的系统组件如:外置共享的磁盘阵列、文件系统和浮动IP地址等组成业务运行环境。

PCL为此环境提供了完全冗余的服务器配置。这种模式的优缺点:

  • 缺点:Node2在Node1正常工作时是处于“闲置”状态,造成服务器资源的浪费。
  • 优点:当Node1发生故障时,Node2能完全接管应用,并且能保证应用运行时的对处理能力要求。
 三、高可扩展性集群
     这里指带有负载均衡策略(算法)的服务器群集技术。带负载均衡集群为企业需求提供了更实用的方案,它使负载可以在计算机集群中尽可能平均地分摊处理。而需 要均衡的可能是应用程序处理负载或是网络流量负载。该方案非常适合于运行同一组应用程序的节点。每个节点都可以处理一部分负载,并且可以在节点之间动态分 配负载, 以实现平衡。对于网络流量也是如此。通常,单个节点对于太大的网络流量无法迅速处理,这就需要将流量发送给在其它节点。还可以根据每个节点上不同的可用资 源或网络的特殊环境来进行优化。
  负载均衡集群在多节点之间按照一定的策略(算法)分发网络或计算处理负载。负载均衡建立在现有网络结构之上,它提供了一种廉价有效的方法来扩展服务器带宽,增加吞吐量,提高数据处理能力,同时又可以避免单点故障。

前面已经说过负载均衡的作用是在多个节点之间按照一定的策略(算法)分发网络或计算处理负载。负载均衡可以采用软件和硬件来实现。一般的框架结构可以参考下图。
  

 后 台的多个Web节点上面有相同的Web应用,用户的访问请求首先进入负载均衡分配节点(可能是软件或者硬件),由它根据负载均衡策略(算法)合理地分配给 某个Web应用节点。每个Web节点相同的内容做起来不难,所以选择负载均衡策略(算法)是个关键问题。下面会专门介绍均衡算法。

  web 负载均衡的作用就是把请求均匀的分配给各个节点,它是一种动态均衡,通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把请求理分配出去。对于不 同的应用环境(如电子商务网站,它的计 算负荷大;再如网络数据库应用,读写频繁,服务器的存储子系统系统面临很大压力;再如视频服务应用,数据传输量大,网络接口负担重压。),使用的均衡策略 (算法)是不同的。 所以均衡策略(算法)也就有了多种多样的形式,广义上的负载均衡既可以设置专门的网关、负载均衡器,也可以通过一些专用软件与协议来实现。在OSI七层协 议模型中的第二(数据链路层)、第三(网络层)、第四(传输层)、第七层(应用层)都有相应的负载均衡策略(算法),在数据链路层上实现负载均衡的原理是 根据数据包的目的MAC地址选择不同的路径;在网络层上可利用基于IP地址的分配方式将数据流疏通到多个节点;而传输层和应用层的交换(Switch), 本身便是一种基于访问流量的控制方式,能够实现负载均衡。
   目前,基于负载均衡的算法主要有三种:轮循(Round-Robin)、最小连接数(Least Connections First),和快速响应优先(Faster Response Precedence)。
  ①轮循算法,就是将来自网络的请求依次分配给集群中的节点进行处理。
  ②最小连接数算法,就是为集群中的每台服务器设置一个记数器,记录每个服务器当前的连接数,负载均衡系统总是选择当前连接数最少的服务器分配任务。 这要比"轮循算法"好很多,因为在有些场合中,简单的轮循不能判断哪个节点的负载更低,也许新的工作又被分配给了一个已经很忙的服务器了。
  ③快速响应优先算法,是根据群集中的节点的状态(CPU、内存等主要处理部分)来分配任务。 这一点很难做到,事实上到目前为止,采用这个算法的负载均衡系统还很少。尤其对于硬件负载均衡设备来说,只能在TCP/IP协议方面做工作,几乎不可能深入到服务器的处理系统中进行监测。但是它是未来发展的方向。

 
 上面是负载均衡常用的算法,基于以上负载均衡算法的使用方式上,又分为如下几种:

  1、DNS轮询
   最早的负载均衡技术是通过DNS来实现的,在DNS中为多个地址配置同一个名字,因而查询这个名字的客户机将得到其中一个地址,从而使得不同的客户访问不同的服务器,达到负载均衡的目的。

   DNS负载均衡是一种简单而有效的方法,但是它不能区分服务器的差异,也不能反映服务器的当前运行状态。当使用DNS负载均衡的时候,必须尽量保证不同的 客户计算机能均匀获得不同的地址。由于DNS数据具备刷新时间标志,一旦超过这个时间限制,其他DNS服务器就需要和这个服务器交互,以重新获得地址数 据,就有可能获得不同IP地址。因此为了使地址能随机分配,就应使刷新时间尽量短,不同地方的DNS服务器能更新对应的地址,达到随机获得地址,然而将过 期时间设置得过短,将使DNS流量大增,而造成额外的网络问题。DNS负载均衡的另一个问题是,一旦某个服务器出现故障,即使及时修改了DNS设置,还是 要等待足够的时间(刷新时间)才能发挥作用,在此期间,保存了故障服务器地址的客户计算机将不能正常访问服务器
  2、反向代理服务器
    使用代理服务器,可以将请求转发给内部的服务器,使用这种加速模式显然可以提升静态网页的访问速度。然而,也可以考虑这样一种技术,使用代理服务器将请求均匀转发给多台服务器,从而达到负载均衡的目的。

   这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部服务器,而这种代理方式是代理多个客户访问内部服务器,因此也被称为反向代理模式。虽然实现这个任务并不算是特别复杂,然而由于要求特别高的效率,实现起来并不简单。

   使用反向代理的好处是,可以将负载均衡和代理服务器的高速缓存技术结合在一起,提供有益的性能。然而它本身也存在一些问题,首先就是必须为每一种服务都专门开发一个反向代理服务器,这就不是一个轻松的任务。

   代理服务器本身虽然可以达到很高效率,但是针对每一次代理,代理服务器就必须维护两个连接,一个对外的连接,一个对内的连接,因此对于特别高的连接请求, 代理服务器的负载也就非常之大。反向代理方式下能应用优化的负载均衡策略,每次访问最空闲的内部服务器来提供服务。但是随着并发连接数量的增加,代理服务 器本身的负载也变得非常大,最后反向代理服务器本身会成为服务的瓶颈。
 
  3、地址转换网关
    支持负载均衡的地址转换网关,可以将一个外部IP地址映射为多个内部IP地址,对每次TCP连接请求动态使用其中一个内部地址,达到负载均衡的目的。很多 硬件厂商将这种技术集成在他们的交换机中,作为他们第四层交换的一种功能来实现,一般采用随机选择、根据服务器的连接数量或者响应时间进行选择的负载均衡 策略来分配负载。由于地址转换相对来讲比较接近网络的低层,因此就有可能将它集成在硬件设备中,通常这样的硬件设备是局域网交换机。

原文出自:
http://blog.csdn.net/lovingprince/article/details/3290871

posted @ 2013-02-21 09:24 小胡子 阅读(395) | 评论 (0)编辑 收藏

[代码] [JavaScript]代码

1//先看bug

[图片] EXT-bug1.png

[图片] EXT-bug2.png

[代码] [JavaScript]代码

//修复办法,谷歌浏览器中,table的单元格实际宽度=指定宽度+padding,所以只要重写gridview里的一个方法,如下:

 1 //修复办法,谷歌浏览器中,table的单元格实际宽度=指定宽度+padding,所以只要重写gridview里的一个方法,如下:
 2 Ext.override(Ext.grid.GridView,{
 3         getColumnStyle : function(colIndex, isHeader) {
 4             var colModel  = this.cm,
 5                 colConfig = colModel.config,
 6                 style     = isHeader ? '' : colConfig[colIndex].css || '',
 7                 align     = colConfig[colIndex].align;
 8             
 9             if(Ext.isChrome){
10                 style += String.format("width: {0};", parseInt(this.getColumnWidth(colIndex))-2+'px');
11             }else{
12                 style += String.format("width: {0};"this.getColumnWidth(colIndex));
13             }
14             
15             if (colModel.isHidden(colIndex)) {
16                 style += 'display: none; ';
17             }
18             
19             if (align) {
20                 style += String.format("text-align: {0};", align);
21             }
22             
23             return style;
24         },
25     });
26 

[代码] [JavaScript]代码

//看看修复过后的效果

原文出自:
http://www.oschina.net/code/snippet_201314_15163



posted @ 2013-01-30 15:30 小胡子 阅读(1009) | 评论 (1)编辑 收藏

使用AES加密时,当密钥大于128时,代码会抛出java.security.InvalidKeyException: Illegal key size or default parameters

Illegal key size or default parameters是指密钥长度是受限制的,java运行时环境读到的是受限的policy文件。文件位于${java_home}/jre/lib/security

这种限制是因为美国对软件出口的控制。


解决办法:

去掉这种限制需要下载Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files.网址如下。

下载包的readme.txt 有安装说明。就是替换${java_home}/jre/lib/security/ 下面的local_policy.jar和US_export_policy.jar

jdk 5: http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-plat-419418.html#jce_policy-1.5.0-oth-JPR

jdk6: http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html


参考http://stackoverflow.com/questions/6481627/java-security-illegal-key-size-or-default-parameters
原文出自:http://blog.csdn.net/shangpusp/article/details/7416603

posted @ 2013-01-28 09:57 小胡子 阅读(346) | 评论 (1)编辑 收藏

仅列出标题
共15页: 上一页 1 2 3 4 5 6 7 8 9 下一页 Last