如何构建一个企业信息的Mashup 应用(图)
导读:我们用一个实际的例子来详细介绍一下如何用 ibm Info 2.0 和 db2 pureXML 来构建一个犯罪报表的 Mashup 应用,这个例子的业务场景类似于 参考资源 中的芝加哥警局网站,会把犯罪记录报表和地图信息结合起来进行展示,不同的是会涉及到更多的信息源,并示例如何进行信息源的转换。这个例子 Mashup 的信息源包括:db2 pureXM
我们用一个实际的例子来详细介绍一下如何用 ibm Info 2.0 和 db2 pureXML 来构建一个犯罪报表的 Mashup 应用,这个例子的业务场景类似于 参考资源 中的芝加哥警局网站,会把犯罪记录报表和地图信息结合起来进行展示,不同的是会涉及到更多的信息源,并示例如何进行信息源的转换。
这个例子 Mashup 的信息源包括:
db2 pureXML 的信息源,在企业 db2 数据库里面存放纽约警察局 2007 年 6 月的案件记录;
互联网上的 RSS 信息源,在参考资源中的 RSS 信息源是 IC3.gov 上的最新纪录,IC3 是指互联网犯罪举报中心(Internet Crime Complaint Center);
Google Map,由 Google 提供的地图信息。
安装和配置
首先下载 Zend Core for IBM 进行安装。安装完后,需要建立两个 pureXML 数据库 HUBDB 和 QEDWIKI,这两个数据库是为了给 ibm Mashup Hub 和 QEDWiki 使用的,参见下图。注意安装后一定要按照安装文档修改 php.ini 和 httpd.conf 配置文件,以保证 ibm Info 2.0 安装成功。
然后下载 IBM Mashup Starter Kit 进行安装。IBM Mashup Starter Kit 的安装分为两个部分,Mashup Hub 和 QEDWiki。
图 1. Mashup Hub的安装
图 2. QEDWiki的安装

为了使用 db2 pureXML 的 XML 数据作为 Mashup 信息源,还需要执行以下步骤:
解开压缩包 ibmmsk/mashuphub/server/plugins/pureXML/pureXML_files.zip,把它拷贝到 SQLLIB/FUNCTION 目录下。
连接到 Mashup 信息源所在的数据库,在本例即是指存放纽约警察局 2007 年 6 月的案件记录的数据库 Sample,运行以下脚本:
table.db2
storproc.db2
atom_c_enable_store_procedure.db2
安装配置结束,就可以用 Info 2.0 来构造 Mashup 应用了。Mashup Hub 的缺省链接是 http://localhost/ibmmsk/mashuphub/client/hub/show,而QEDWiki的缺省链接是 http://localhost/ibmmsk/qed/wiki_web_app/page/show。
为了保证 QEDWiki 可以访问到 Mashup Hub 注册的信息源信息,还需要配置 QEDWiki 和 Mashup Hub 的通讯,在 QEDExplorer 中添加一个 Remote Repository,配置界面如下图所示。
图 3. 配置 QEDWiki 和 Mashup Hub 的通讯创建和发现信息源

创建和发现信息源
首先在 db2 数据库中建表 CRIME,该表的 XML 字段中存放纽约警察局 2007 年 6 月的犯罪记录。
清单 2. DB2 pureXML 数据库里面存放纽约警察局 2007 年 6 月的案件记录
db2 DESCRIBE table CRIME;
CRIMEDESC XML
db2 SELECT CRIMEDESC FROM CRIME;
CRIMEDESC
Precinct ID: 32772161
Arrest Number: 7656124
CRIMINAL MISCHIEF AND RELATED OFFENSES
Precinct ID: 32823681
Arrest Number: 7657029
DANGEROUS DRUGS
图 4. DB2 pureXML 数据库里面存放纽约警察局 2007 年 6 月的案件记录

然后在 Mashup Hub 中把 CRIME 表的 XML 字段的内容发布成 Atom 信息源。这需要两个步骤:
1、选择 Enable table for Feeds,找到 CRIME 表后确定。
图 5. 选择 XML 字段作为 Atom 信息源

2、选择 Crime 的 XML 字段,并指定 XML 字段中相应的 Element 作为信息源的条目。
图 6. 选择 XML 文档的元素作为信息源的条目

经过以上的步骤,就非常容易地创建出一个 pureXML 信息源,URL 是 http://localhost/Atom/getfeed.php?db=SAMPLE&id=61,如下图所示。
图 7. 成功创建 pureXML 信息源

另外一个信息源是互联网 RSS 信息源,如下图所示。
图 8. IC3.gov 上的最新信息记录

转换信息源
在这个例子中涉及到企业数据库 db2 pureXML 的信息源和互联网上的 RSS 信息源,我们当然可以把这些信息源直接 Mashup 在一个页面中,也可以根据业务需求通过 Mashup Hub 联合和转换信息源,将来的 Mashup 应用会采用经过转换的新信息源。
在 Mashup Hub 转换信息源非常容易,它支持广泛的运算符,如过滤、分组、排序、联合等等。Mashup Hub 支持信息源包括来自互联网的URL和在 Mashup Hub 资料库中注册过的 Catalog 信息源。
图 9. Mashup Hub 支持的运算符和信息源

在 Mashup Hub 的页面中选择 Mashup Feeds 来转换信息源,下图可以看到完整的设计界面。首先把这两个不同的信息源进行联合,然后用过滤操作符只保留 6 月份的数据,本例中通过表达式 ./pubDate[ contains( text() , 'Jun' ) ]
将会过滤掉 IC3.gov 非 6 月份的信息记录,最后经过排序后发布成一个新的信息源。
其中企业 pureXML 的信息源和互联网上 RSS 信息源的 URL 分别是 http://localhost/Atom/getfeed.php?db=SAMPLE&id=61 和 http://www.ic3.gov/rss/news.xml。
图 10. 用 Mashup Hub 转换信息源

保存这个转换后会得到提示,新的信息源已经产生,并得到相应的 URL。
图 11. 新信息源的 URL

最后在 Mashup Hub 的页面中选择 New Feeds,输入这个产生的 URL 即可,如下图。
图 12. 创建新的信息源

拼装和使用信息源
首先在 QEDWiki 的页面中选择 QEDExplorer,搜索到前面在 Mashup Hub 完成的 Feeds,选中后点击 Install。
图 13. 安装 Mashup Hub 的 Feeds

然后创建一个新的页面。
图 14. 在 QEDWiki 中创建新的 Mashup 页面

最后的工作简单而又令人兴奋,我们只需要通过鼠标拖拉,就可以使用任意的信息源来做新的 Mashup 应用。
我们把经过转换的新信息源拖到页面中,然后做一些简单的配置,比如下图去掉一些报表中不要的列。
图 15. 设置报表信息源的属性

我们再把 Google Map 拖到页面中。在设置 Google Map 的属性中,很重要的就是要设置地图的位置和报表信息源字段的关联,这样就可以用图钉在 Google Map 上显示出犯罪地点,非常直观。如下图,本例的 title 字段是描述地址信息的。
图 16. 设置 Google Map 的属性

经过非常简单的操作,极富创意和业务价值的 Mashup 成果展现出来了。犯罪报表结合了企业数据和互联网数据,旁边的地图明确标明了犯罪地点。单击报表中单条犯罪纪录,就会得到一个放大的地图。单击地图上的图钉,就会列出犯罪发生的地点和描述。信息的拼装和使用只需要业务人员鼠标拖拽就能完成。
图 17. 犯罪报表 Mashup 应用的页面展示

- 相关文章
-
- 让Web 2.0开始工作2008-05-16 15:02:16
- IBM Info 2.0:SOA 的最后一公里2008-05-09 15:20:38





发表评论