IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Information Management | Lotus | XML | SOA and Web services  >

IBM Mashup Center 和 InfoSphere MashupHub,第 1 部分: InfoSphere MashupHub 入门

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

英文原文

英文原文


级别: 中级

Hardeep Singh, 高级技术开发, Systems Documentation, Inc. (SDI)

2008 年 9 月 08 日

本文是对作为 IBM® Mashup Center 产品的一部分的 InfoSphere™ MashupHub 的一个介绍。您将了解该产品的架构,以及其中的不同工具和实用程序。然后,探索一个简单的用例场景,该场景展示了不同的组件,并演示了使用 Web 2.0 概念的优点,例如企业中的数据提要和提要 mashup。本文是一个包含两部分的系列中的第 1 部分,该系列的内容与 IBM Mashup Center 相关,但主要关注 InfoSphere MashupHub。第 2 部分将讨论 Mashup Editor 及其架构的细节,并扩展第一篇文章中的用例,以解释每种操作符的用法及原因。

简介

长期以来,将跨越组织边界的不同源中的信息集成到一起是企业的痛苦,同时也是高价顾问的快乐。Internet 使个人和组织得以通过 Web 站点和电子邮件与他人共享信息,如今,它正在革新在企业中共享和利用数据的方式。





回页首


IBM Mashup Center

IBM Mashup Center 为个人与组织中的其他人共享存储在文档或本地数据库中的结构化和半结构化的信息提供了便利。在这里,可以对来自多个数据源的数据进行合并、过滤、排序、分组和转换,以创建提要 mashup。然后,其他应用程序可以使用标准的 HTTP 调用来访问这些 mashup 中的数据,或者也可以使用 Lotus Mashups 将这些数据呈现在 Web 浏览器中。

IBM Mashup Center 由两个工具组成,它们通过一个公共目录松散地耦合。第一个工具是 InfoSphere MashupHub,它用于创建提要和提要 mashup,第二个工具是 Lotus Mashup,它可用于创建使用预先装配的小部件创建显示数据提要的 Web 页面。





回页首


InfoSphere MashupHub

本文主要讨论 InfoSphere MashupHub,它包含的工具集中在两个功能领域:

  • 用于创建来自不同数据源的数据提要的工具
  • 将多个提要集成为单个数据提要的 Mashup Editor

使用一个公共目录来存储和发布这些提要。提供一些实用程序对目录中的提要进行搜索、排序和分类。


图 1. InfoSphere MashupHub 的架构
InfoSphere MashupHub 的架构




回页首


应用服务器

InfoSphere MashupHub 应用服务器构建在 WebSphere 应用服务器和相关的 J2EE 技术之上。它将一个 REST API 向其客户机公开,这些客户机可以通过一个安全(HTTPS)连接访问器服务。

尽管该服务器提供了一个嵌入式 Derby 数据库来创建 mashup catalog 的默认储存库,但它也 支持其他关系数据库。WebSphere 应用服务器管理服务可用于身份验证和角色管理。

该服务器支持很多用于数据源的插件以及用于提要 mashup 引擎和 mashup 目录储存库的插件。来自内部和外部数据源的所有提要数据都会被缓存。

服务器向 mashup 客户机以及第三方提要阅读器甚至其他应用服务器或客户机提供服务。当创建一个提要或提要 mashup 时,MashupHub 客户机与服务器通信,以便从数据源抓取数据,预览部分 mashup,并保存提要或提要 mashup。任何被发布到目录中的提要都可以直接从 MashupHub 客户机上进行访问和查看。还可以从 Web 浏览器、提要阅读器或任何其他使用标准 HTTP 协议的应用程序中调用提要 URL。

注意:被指定为私有或自定义的提要可以通过使用 SSL 的 HTTP 基本身份验证来访问。





回页首


客户机

InfoSphere MashupHub 客户机是一个基于浏览器的集成开发环境(IDE),它为构建提要和提要 mashup 提供了一个快速应用程序开发环境。它是使用 Ajax(Dojo 工具包)实现的,并使用 REST 调用与应用服务器通信。


图 2. InfoSphere MashupHub 客户机
InfoSphere MashupHub 客户机

MashupHub 客户机的不同组件是由深悉预期用户和潜在使用场景的领域专家设计的。例如,打算从关系数据库创建提要的开发人员至少需要对数据库模式和 SQL 拥有基本的了解。另一方面,一个销售主管可能更习惯于从一个 Excel 电子表格创建提要。而业务分析员可能感兴趣的是将已有的提要组合起来,创建一个更具分析性的提要 mashup。





回页首


社区和目录

社区开发中对 Web 2.0 的关注已影响到表示层和用户体验。遵从这一范例,InfoSphere MashupHub 除了为开发人员提供创建和编辑提要和 mashup 的传统起始点之外,还使他们可以对已有的提要和 mashup 进行搜索和评价,并分享他们的观点。


图 3. MashupHub 目录
MashupHub 目录




回页首


创建提要

InfoSphere MashupHub 客户机提供了用于从结构化和半结构化的数据源创建数据提要的工具。这些提要可以被发布为 RSS、ATOM 或纯 XML 数据流,可以通过 Internet 或 Intranet 使用 HTTP URL 对它们进行访问。

提供了对不同数据源的支持,例如基于文件的半结构化文档、关系和层次数据库、Web 和目录服务,以及应用服务器和事务服务器。


图 4. 支持创建提要的数据源
支持创建提要的数据源

关于如何为所有受支持的数据源创建提要的详细说明,请单击主页上的帮助链接。





回页首


场景

为了理解该产品以及过程,请看一个示例场景,该场景创建 2 个提要。其中一个提要从一个 Excel 文档创建,另一个提要从一个关系数据库创建。然后,使用 mashup Editor 将这两个提要集成,以创建一个复合提要 mashup。

一家公司从事银器的生产,并根据需求将银器发送给它的供应商。由于原材料的价格几乎涨了一倍,管理层希望控制库存成本。

销售主管在个人的电子表格中维护不同产品的销售机会,直到有客户下订单。生产经理希望访问销售机会信息,以更好地预测库存需求。

通过使用 InfoSphere MashupHub,生产经理计划访问存储在销售主管个人电子表格中的信息,并将其与数据库中的产品信息相结合,以更清晰地了解库存需求。

注意:本场景经过了简化,以突出 mashup 模型的威力和过程的简单性。

步骤

为了构建库存反映 mashup,生产经理首先根据存储在产品表中的数据创建一个提要。接着,销售主管从他们包含销售机会信息的电子表格创建提要。当所有这些提要就绪时,生产经理就可以合并来自这两种提要的数据,以反映库存需求。





回页首


来自关系数据库的提要

产品细节存储在一个关系数据库中,这个关系数据库是库存管理系统的一部分。

连接到数据库

为了从产品表创建新的提要,生产经理首先单击主页上的 New Feed 链接,并从受支持数据源列表中选择 Relation Database Query (SQL)。然后输入数据库名称,或者从下拉列表中选择一个数据库(如果是本地数据库的话),并单击 Next


图 5. 关系数据库连接信息
关系数据库连接信息

创建 SELECT 查询

数据库中所有符合范围的表都被列出,通过单击前面的复选框,可以选择其中的任何表。

产品信息存储在 SQLPRODUCT 表中,当这个表被选中时,右侧的列表显示这个表中的列。这里会生成一条 SQL 语句,用于查询表中被选中的列。

注意:熟悉 SQL 的用户可以在高级视图 SQL 文本框中直接输入查询。


图 6. 为提要数据创建 SELECT 查询的向导
为提要数据创建 SELECT 查询的向导

将提要发布到目录

在接下来的页面上,输入提要标题和描述,以及其他属性,例如公共或私有访问、搜索关键词标签或缓存时间。

注意:可以将提要指定为私有,或者进一步定制访问权限。


图 7. 为目录定义提要标题和属性的向导
为目录定义提要标题和属性的向导

完成的提要最后被保存到 InfoSphere MashupHub 目录中,现在,任何有权限调用它的人都可以访问它。





回页首


来自电子表格的提要

第二步是获得对销售主管个人计算机中的销售机会数据的访问权。为此,销售主管需要从他们的电子表格创建提要,并将这些提要的读权限提供给生产经理。


图 8. 销售机会信息电子表格的示例
销售机会信息电子表格的示例

为了创建提要,销售主管需要从数据源列表中选择 Excel Workbook,然后单击 Next

在图 8 中显示的示例电子表格中,生产经理只对前 4 列感兴趣,因此销售主管将选择从 C2 到 F13 的单元格范围,以包含产品 ID、名称、数量和暂定购买日期。


图 9. 定义用于创建提要的电子表格参数的向导
定义用于创建提要的电子表格参数的向导

剩下的步骤类似于从关系表创建提要的过程。





回页首


提要 mashup

创建好所有的销售提要之后,生产经理现在可以组合来自所有提要的数据,并将这些数据与产品提要集成,以计算潜在的库存需求。

注意:为简单起见,这个例子只考虑一个销售数据提要。本系列的第 2 部分将展示如何组合多个销售提要,并使用 combinegrouptransform 操作符计算每种产品的总量。

添加产品和电子表格提要源

在第一步中,生产经理通过从操作符面板将两个源操作符拖放到画布上来装载数据提要。当拖放第一个源操作符时,会自动打开细节窗口。

注意:也可以单击被拖放的操作符或者从操作符上下文中打开细节窗口。

当将第一个源操作符拖放到空白的画布上时,会自动创建一个发布操作符。该操作符被当作 mashup 提要 的端点,可用于将提要类型设置为 RSS、ATOM 或简单的 XML(默认)。

每个源操作符都会被分配一个相关的名称,在画布中,这个名称也反映在操作符的标题中。


图 10. 将源操作符拖放到画布中
将源操作符拖放到画布中

连接到目录数据提要

可以通过选择 From Catalog 单选按钮并单击 Browse 打开 catalog explorer 对话框。

对于两个源操作符,分别选择 sales leadsproduct list 提要。


图 11. 从目录中选择提要源
从目录中选择提要源

每个提要中的示例数据都被装载到源操作符中,并显示在 Preview 选项卡中。

创建产品提要上的过滤器

在之前的查询中,提要数据被无条件地装载。但是,要计算销售机会提要中一个选定产品的库存需求,则只需要那种产品的产品数据。

注意:这相当于在 SQL SELECT 语句中增加一个 where 子句。

从操作符面板中将过滤操作符拖放到画布上,并将其重命名为 searchPID。由于产品提要需要过滤,所以通过将源操作符的插头拖动到过滤操作符的插槽上,连接产品源并作为过滤操作符的输入。

注意:可以使用产品源操作符的上下文菜单连接两个操作符。

选择要过滤的提要

过滤器信息是在 Properties 选项卡的条件网格中设置的。网格的第一列(Input element)定义需要比较并过滤的输入提要中的路径。在这个列中,单击一行会下拉出输入产品提要中一个示例条目的树型表示。当选择树中的一个节点时,就会生成那个节点的路径,并添加到过滤条件的左侧。

注意:这相当于在 SQL 语句的 where 子句中选择一个数据库列。


图 12. 将过滤条件添加到输入提要中的一个路径
将过滤条件添加到输入提要中的一个路径

在过滤条件中添加运行时变量

由于过滤条件中选定的路径上的预期值是在执行时才确定的,因此需要将它定义为一个变量。

注意:这一步类似于用 SQL 创建参数化查询。

通过单击条件行的 Value 列,并在下拉框中选择 Use a variable to return the value,可以打开变量关联对话框。


图 13. 通过为过滤条件创建一个变量启用参数绑定
通过为过滤条件创建一个变量启用参数绑定

变量的值可以在运行时从另一个操作符(如下一步所示)甚至 mashup URL 传递。

注意:该变量需要有一个默认值,以便预览过滤操作的结果。

获得电子表格提要中的条目的产品细节

为了计算销售机会提要中每个条目的库存需求,生产经理需要创建一个主细(master detail)数据结构。这可以通过使用 For Each 操作符,以电子表格源作为主提要,以经过过滤的产品源作为详细提要来完成。

对于 “hardeeps leads” (主/外部)提要中的每个条目,可以从经过过滤的产品(细/内部)提要中获得详细信息。每个销售条目的产品 ID(PID)被传递给 PID 变量,该变量是在产品提要的过滤条件中创建的。

注意:这相当于在 SQL 查询中用 PID 作为键创建连接条件。


图 14. 传递销售提要中的产品 ID 以在产品提要中选择一个条目,从而创建主细数据结构
传递销售提要中的产品 ID 以在产品提要中选择一个条目,从而创建主细数据结构

从结果中删除无关数据

ForEach(主细)操作会为每个条目产生 2 个记录(行)。其中一个记录包含来自销售电子表格的条目信息,另一个记录则包含那个条目的产品详细信息。

在这些行中,有些信息是重复的,或者与库存反映无关。可以使用 Transform 操作符来调节 ForEach 操作的结果。

从操作符面板中拖出 Transform 操作符,将 ForEach(主细)操作符的输出插入到它里面。左侧的树中将显示来自主细 Input 的示例条目,而右侧的树则定义转换的 Output 模板。

可以使用 Output 树的上下文菜单修改输出模板,为其添加新的节点,或者从 Input 树中拖放已有的节点。

将一个名为 “item” 的新元素添加到 Output 树的 entry 节点。从 Input 树中拖放相关节点,作为该元素的子元素。


图 15. 通过删除冗余数据转换结果
通过删除冗余数据转换结果

发布 mashup

转换后的 mashup 现在包含对生产经理有用的所有信息。Transform 操作符的输出被插入到 Publish(端点)操作符,mashup 则被保存到目录中。

现在,可以在 Lotus Mashup Editor 中将它与小部件关联,以创建一个 Web 页面,该页面以表格或图形化方式显示 mashup 信息。

还可以从其他客户机工具(例如 Web 浏览器)或者使用 HTTP 协议访问数据源的应用程序中调用 URL。


图 16. 从浏览器中打开 mashup
从浏览器中打开 mashup




回页首


结束语

IBM Mashup Center 利用 Web 2.0 的 mashup 模型,使组织可以使用雇员个人积累的半结构化信息,并将它与来自常规数据源的结构化数据集成。现在,可以跨越公司边界以数据提要的形式修改、转换和迁移这种共享信息,从而有效地将公司的 Intranet 转变成松散耦合的数据库。

本系列的第 2 部分将详细讨论 Mashup Editor 及其架构。第 2 部分将扩展本文中的用例,以解释每种操作符的用法和原因。



参考资料

学习

获得产品和技术
  • IBM Mashup Center:在这里可以找到一个易于使用的企业 mashup 解决方案,这种解决方案支持动态情景应用程序的业务线组装 — 具有 IT 所需的管理、安全和治理功能。

  • 使用可直接从 developerWorks 下载的 IBM 试用软件 构建您的下一个开发项目。


关于作者

照片:Hardeep Singh

Hardeep Singh 是高级技术小组的成员。他是 InfoSphere MashupHub Mashup Editor 的架构师。他拥有超过 24 年的行业经验。




对本文的评价










回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款