级别: 中级 吴敏达 (wuminda@cn.ibm.com), 信息管理软件高级技术顾问, IBM
2007 年 12 月 28 日 本文介绍了企业信息 Mashup 应用的前景和相关技术,通过实例讲解用 IBM Info 2.0 与 DB2 pureXML 相结合来实现企业信息的 Mashup 应用。
企业信息的 Mashup 应用
Web 2.0 是关于简单、信息驱动的技术和模式。Web 2.0 提供了更容易重新组合企业数据和内容来迅速适应新的商业机会的优势。这种重新组合不仅包括企业内部的信息,还包含部门和个人信息,甚至是互联网上的信息。从 Web 2.0 的范畴来看,Mashup 是指利用多个信息源的信息来创建的新的 Web 应用的方式,即网络应用的混搭(Web Application Hybrid)。举例而言,参考资源中的芝加哥警局网站就是一个 Mashup 的应用,它将芝加哥警局在线数据库中的犯罪记录与 Google Maps 上的地图 Mashup 成一个新的应用。用户可以与这个新应用进行交互,选择相关地区得到犯罪案件报表,并在图形界面上显示一个包含图钉的地图,图钉展示相关案件的详细信息。
企业信息的 Mashup 应用给我们带来的是业务驱动的 IT 模式,并能带来真正的业务价值。在 Mashup 应用中能够让业务人员来创造新的应用,能够实现随需应变的业务应用。这样的变革是巨大的,构建企业IT应用的人员不再仅仅是程序员、IT 专家、还有一个新的角色 Knowledge Worker,这就是最了解行业、最了解业务、最了解需求的一线业务人员或业务决策人。有了 Mashup 技术,使得这些不擅长 IT 的 Knowledge Worker 可以把信息自由的拼装组合,完美地实现他们真正想要的业务应用。Info 2.0 和 Mashup 应用的核心就是信息驱动和业务驱动。
Mashup 与 Portal 都属于内容聚合的技术,两者之间最根本的区别是 Mashup 是更新的 Web 2.0 技术范畴,其底层的技术标准是基于 XML 的数据交换标准,如广泛使用的 RSS 和 Atom 标准。XML 是自描述的标签式数据描述方式,数据本身描述自己的含义,从而使数据能够被理解;同时采用层次型(树型)的方式组织数据,通过层次关系体现出数据与数据之间的关系.可以更清晰地描述复杂对象。正是由于 XML 模型天然的易理解和灵活性的特点,使得 XML 在 Web 2.0 和 SOA 的应用被大量使用,如 Mashup 应用的信息源主要就是XML格式。
随着 Web 2.0 技术的深入人心,Mashup 的应用也在以惊人的速度增长, ProgrammableWeb统计表明每天有 2.84 个新的 Mashup 应用产生,然而最近的速度更是翻了一倍,每天的新增 Mashup 应用 6.29 个。Economist Intelligence Unit《经济学家》今年第一季度的 CIO 调查结果显示有 64% 的 CIO 会在未来两年内在企业里面建立 Mashup 应用。
图 1. 最近六个月 Mashup 新应用的增长速度
Mashup 的典型信息源包括第三方的 API 接口(比如 Google Map 的 API),互连网上的信息源(如 RSS 或 Atom),Web Services 等。
对于企业信息 Mashup 应用而言,很重要的信息源就是企业内部的数据源。在竞争激烈的商业环境中,企业有非常迫切的情境应用的需求Situational Applications,即为了一些紧急突然的业务需求来搭建的涉及多个信息源的业务应用,如果按照传统 IT 驱动的模式来做应用开发,根本无法满足这样的需求,而企业信息的 Mashup 则正好极大地满足了这样的需求。
企业信息的 Mashup 应用涉及的信息源会更为广泛,主要包括:
- 互联网的信息源:动态更新的公共网的信息资源和合作伙伴的信息源;
- 部门的信息源:办公文档等;
- 个人的信息源:如表格、文件等;
- 企业的信息源:来自企业 IT 应用,如 Information Server, ECM, DB2, IMS, SAP, Siebel, Peoplesoft 等的信息源。
IBM Info 2.0 简介
IBM Info 2.0 是支持企业信息的 Mashup 应用平台,利用 Info 2.0 能够充分利用企业信息资产从而实现企业信息的 Mashup 应用,获取信息、重新组合信息、按照以下特点发布信息,以实现信息的随需应变:
- 简单:以内容为中心的开发人员;
- 信息驱动:业务价值为中心的内容;
- 可重复组合:按照新的商业机会去组织内容;
- 开放 API:在用户和开发商双方协作建立良性循环;
- 丰富的互联网应用:更好的用户体验获得更好的利润;
- 用户生成内容:鼓励积极参与和自己组织来影响产品的开发。
IBM Info 2.0 的核心内容是把信息从应用中解放出来,很容易地成为服务,被业务人员使用,即 Web 2.0 在信息层面的定义。IBM Info 2.0 包括 Mashup Hub 和 QEDWiki 两个模块,它包含三部分功能:创建、发现和管理信息源、转换信息源和组装使用信息源。
IBM Mashup Hub 提供了企业 Mashup 应用涉及到的信息源和用户界面组件。IBM Mashup Hub 可以用来创建新应用的数据和用户界面组件。IBM Mashup Hub 能完成以下工作:
- 定义来自企业数据源的数据,包括关系型数据库,包含于 Atom feed;
- 注册已经存在的信息源实现共享。
- 上传或者下载用户界面的 Widgets,包含让 QEDWiki 使用的以完成企业 Mashup。Widget 是一种可以被 Mashup 组装者所使用的软件组件,是封装了数据、用户界面和用户交互的 DHTML 代码片断。
- 参与其他 Mashup Hub 用户的社区交互,包括社区标签、评论、评级和查找 Mashup Hub 目录的内容。
IBM QEDWiki 让企业用户可以通过“维基(Wiki)”、“真正简单聚合(RSS)”以及一些简易的网络脚本(Scripting)来实现企业信息的 Mashup 应用。其中 QED(Quick and Easy Done)代表的是快速和易用,即企业业务人员无须 IT 人员帮助,便可创建各种网络应用,搭建自己的情境应用 Situational Applications。
IBM QEDWiki 通过同样一个 Wiki 的框架提供给开发人员和业务人员,开发人员和业务人员都使用同样的 Web 应用框架来开发使用 Web 2.0 的应用。由于非常简单,使得业务人员也能够根据需要创建新的 Mashup 应用。QEDWiki 可以用来生成以下广泛的 Web 2.0 应用:
- 典型的 Wiki 页面的内容管理;
- 面向数据库的 CRUD(Create、Read、Update 和 Delete)的传统表单操作;
- 基于文档的协作;
- 不同服务之间的丰富交互;
- 情境应用和 Mashup。
图 2. IBM Info 2.0 平台支持企业 Mashup 应用的广泛信息源
DB2 pureXML 与 Mashup 应用
众所周知,DB2 从 9 版本开始实现了 pureXML 技术,开辟了 XML 数据存储和管理的新天地,是第一个以 Native 方式同时支持关系型数据和 XML 数据的双引擎数据库。在存储方面,DB2 pureXML 可以将XML进行Native方式存储。在应用访问方面,支持 SQL 和 XQuery 两种访问方式。DB2 pureXML 并且提供了丰富的函数实现关系型数据和 XML 数据的相互转换。
由于 DB2 pureXML 从根本上解决了 XML 模型在数据库上存储、管理和查询的技术问题,极大提高了 XML 模型的性能,这就使得 DB2 pureXML 可以在企业信息的 Mashup 应用大显身手。
首先,IBM Info 2.0 直接支持 DB2 pureXML 的信息源,我们可以直接把存放在 DB2 中的 XML 字段内容作为信息源,不需要额外处理就可以作为 Mashup 应用的信息源。
图 3.用 IBM Info 2.0 创建一个新的信息源
其次,如果企业的信息源如果是 DB2 的关系型数据,也可以利用 pureXML 里面提供的丰富函数(如 XMLELEMENT、XMLATTRIBUTES 等)非常方便的转化为 XML 结果。我们可以看下面一个简单的例子,通过简单的SQL语句实现了关系型数据到 XML 数据的转变。
清单 1. DB2 pureXML 发布关系型的数据为 XML 数据
DB2 DESCRIBE TABLE EMPLOYEE;
LASTNAME VARCHAR
WORKDEPT CHARACTER
HIREDATE DATE
DB2 SELECT XMLELEMENT
(NAME "Department",
XMLATTRIBUTES(e.workdept AS "name" ),
XMLAGG(XMLELEMENT(NAME "Emp",
XMLATTRIBUTES (e.hiredate),e.lastname))
) AS "Dept_list"
FROM employee e
GROUP BY workdept;
Dept_list
<Department name="Accounting">
<Emp HIREDATE="04/30/2000">Mary Smith</Emp>
<Emp HIREDATE="08/24/1995">Bob Walker</Emp>
</Department>
<Department name="Shipping">
<Emp HIREDATE="06/10/1979">John Brown</Emp>
<Emp HIREDATE="10/05/2004">Jane Parker</Emp>
</Department> |
构建一个企业信息的 Mashup 应用
我们用一个实际的例子来详细介绍一下如何用 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。
图 4. Mashup Hub的安装
图 5. 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,配置界面如下图所示。
图 6. 配置 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
<item>
<title>22 CORTLANDT STREET,MANHATTAN,NY, 10007</title>
<description> Precinct ID: 32772161
Arrest Number: 7656124
CRIMINAL MISCHIEF AND RELATED OFFENSES
</description>
</item>
<item>
<title>500 EAST HOUSTON STREET, MANHATTAN,NY,10002</title>
<description> Precinct ID: 32823681
Arrest Number: 7657029
DANGEROUS DRUGS
</description>
</item> |
图 7. DB2 pureXML 数据库里面存放纽约警察局 2007 年 6 月的案件记录
然后在 Mashup Hub 中把 CRIME 表的 XML 字段的内容发布成 Atom 信息源。这需要两个步骤:
- 选择 Enable Table for Feeds,找到 CRIME 表后确定。
图 8. 选择 XML 字段作为 Atom 信息源
- 选择 Crime 的 XML 字段,并指定 XML 字段中相应的 Element 作为信息源的条目。
图 9. 选择 XML 文档的元素作为信息源的条目
经过以上的步骤,就非常容易地创建出一个 pureXML 信息源,URL 是 http://localhost/Atom/getfeed.php?db=SAMPLE&id=61,如下图所示。
图 10. 成功创建 pureXML 信息源
另外一个信息源是互联网 RSS 信息源,如下图所示。
图 11. IC3.gov 上的最新信息记录
转换信息源
在这个例子中涉及到企业数据库 DB2 pureXML 的信息源和互联网上的 RSS 信息源,我们当然可以把这些信息源直接 Mashup 在一个页面中,也可以根据业务需求通过 Mashup Hub 联合和转换信息源,将来的 Mashup 应用会采用经过转换的新信息源。
在 Mashup Hub 转换信息源非常容易,它支持广泛的运算符,如过滤、分组、排序、联合等等。Mashup Hub 支持信息源包括来自互联网的URL和在 Mashup Hub 资料库中注册过的 Catalog 信息源。
图 12. 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。
图 13. 用 Mashup Hub 转换信息源
保存这个转换后会得到提示,新的信息源已经产生,并得到相应的 URL。
图 14. 新信息源的 URL
最后在 Mashup Hub 的页面中选择 New Feeds,输入这个产生的 URL 即可,如下图。
图 15. 创建新的信息源
拼装和使用信息源
首先在 QEDWiki 的页面中选择 QEDExplorer,搜索到前面在 Mashup Hub 完成的 Feeds,选中后点击 Install。
图 16. 安装 Mashup Hub 的 Feeds
然后创建一个新的页面。
图 17. 在 QEDWiki 中创建新的 Mashup 页面
最后的工作简单而又令人兴奋,我们只需要通过鼠标拖拉,就可以使用任意的信息源来做新的 Mashup 应用。
我们把经过转换的新信息源拖到页面中,然后做一些简单的配置,比如下图去掉一些报表中不要的列。
图 18. 设置报表信息源的属性
我们再把 Google Map 拖到页面中。在设置 Google Map 的属性中,很重要的就是要设置地图的位置和报表信息源字段的关联,这样就可以用图钉在 Google Map 上显示出犯罪地点,非常直观。如下图,本例的 title 字段是描述地址信息的。
图 19. 设置 Google Map 的属性
经过非常简单的操作,极富创意和业务价值的 Mashup 成果展现出来了。犯罪报表结合了企业数据和互联网数据,旁边的地图明确标明了犯罪地点。单击报表中单条犯罪纪录,就会得到一个放大的地图。单击地图上的图钉,就会列出犯罪发生的地点和描述。信息的拼装和使用只需要业务人员鼠标拖拽就能完成。
图 20. 犯罪报表 Mashup 应用的页面展示
信息流动的平台 IBM Information Server
 |
IBM Information Server
IBM Information Server 是一个信息整合的平台,它支持业界最为广泛的数据源,对于企业里面的异构数据(比如 Oracle、SQL Server、Sybase、SAP, Siebel, Peoplesoft 等),IBM Information Server 都可以进行数据联邦和数据处理。
|
|
上面的例子说明了采用 DB2 pureXML 作为企业数据库情况,那么当企业里面有其他数据源,比如 Oracle、SQL Server、Sybase、SAP, Siebel, Peoplesoft 等,那如何发布为 Mashup 应用的信息源呢?
谁来使用 IBM Info 2.0
 |
业务人员 DIY 来搭建 Mashup 应用
信息源的组装和使用不需要程序员介入,通过可视化地鼠标拖拽就能搭建即席的 Mashup 应用,通常是由具有业务知识的 Knowledge Worker 即业务人员完成,这就是 DIY 的精神,由最终的使用人员来构建应用。例如:企业的 CFO 把各部门和分公司的 Widgets 任意 Mashup 出自己需要的仪表盘。
|
|
正如本文反复强调的,Mashup 应用是业务驱动的应用,这是和IT驱动的应用相对应的。Mashup 应用是对信息和内容拼装和聚合,分为三部分的内容:
- 创建和发现信息源;
- 转换信息源;
- 组装和使用信息源。
程序员、IT 开发人员是用来开发可供使用的信息源和 Widget 组件,即创建和发现信息源。
IT 专家、系统分析师会根据需要信息源的转换,也会涉及到创建、发现、组装和使用信息源的内容。
业务人员将负责组装和使用信息源,自由创建符合业务需求的情境应用。业务人员可以把结构化和非结构化、企业部门和个人、互联网的信息根据需要重新组织成信息驱动的业务应用。由业务人员充分使用可以理解的信息,这是 Mashup 应用的核心价值。
图 23. 使用 Info 2.0 构建企业信息的 Mashup 应用的三个角色
总结
“IBM Info 2.0 是 SOA 的最后一公里”,本文涉及的以信息驱动的情境应用 Situational Applications 有别于传统以 IT 驱动的企业应用 Enterprise Applications,业务人员可以更容易的使用和利用信息,这也是 IBM 一直倡导的信息随需应变的含义。DB2 在 XML 模型的无可比拟的优势,更简化和丰富了企业信息的 Mashup 应用。
参考资料 学习
获得产品和技术
关于作者  | |  | 吴敏达现在是 IBM 中国软件部 DB2 pureXML 卓越中心成员,专长是 pureXML、数据仓库相关技术。此前他曾经在 Sybase 中国工作过多年,具有丰富的信息管理软件经验,是经过认证的 DB2 数据库、DB2 数据仓库、WebSphere 应用服务器、WebSphere DataStage 企业版、Sybase ASE 数据库和 Sybase IQ 数据仓库的解决方案专家。 |
对本文的评价
|