|
C. M. Saracco
高级软件工程师, IBM
2005 年 4 月
随 IBM Rational Application Developer (RAD) Version 6 发布的新插件可以帮助 Java™ 程序员加快开发那些嵌入了包含关键企业数据的报表的 Web 应用程序的速度。在本文中,了解如何将 RAD 的新代码生成工具与 WebSphere Information Integrator 的联邦数据服务相结合。
概述
开发周期的缩短,对数据集成服务的需求的增长,促使 Web 开发人员探索新的技术来构建跨多个数据源的可嵌入式报表。生产率的提高,合理的运行时性能,以及对不同数据源的交钥匙(turnkey)式的访问,这些都是需要重点关心的问题。
来自 IBM 和 Business Objects 的软件技术组合试图解决这个问题,方法是使 Java 开发人员能够快速地生成、测试和部署报表组件,这些报表组件将集成来自大型主机数据源、常见的关系数据库管理系统(RDBMS)、特定于行业的数据源以及被广泛部署的已打包应用程序的数据。
在本文中,我们将探索 Java 开发人员如何使用随 IBM 的 Rational Application Developer (RAD) Version 6 发布的 Crystal 插件来与 IBM 的企业信息集成产品 WebSphere Information Integrator(以前称作 DB2® Information Integrator)协同工作。我们将理解这两种技术的基本功能,考虑将它们部署在一起的潜在商业益处,并研究一个示例开发场景。
技术教程
RAD 发布时带有两个可选功能,这两个功能允许程序员将 Crystal 报表嵌入在 Web 组件中,并用一个 Crystal Enterprise 报表服务器管理这些报表。通过安装 Crystal 插件,Java 程序员可以导入已有的报表,或从头开始开发新的报表,将这些报表包含到一个 Java Server Page (JSP) 中,以及使用 RAD 内建的 WebSphere Application Server 测试环境部署、测试和调试这些组件。报表可以充分利用 Crystal 的技术,包括数据的图形化显示,对深入研究分析的支持,以及定制功能。
WebSphere Information Integrator 标准版和高级版为基于 SQL 的产品和应用程序,包括用于 RAD 的 Crystal 插件,提供联邦数据服务。这些联邦数据服务为程序员提供了不同的分布式企业数据源的一个单独、统一的视图,这些数据源包括 XML 文件、Web 服务输出、消息队列数据、RDBMS、文本文件,等等。WebSphere Information Integrator Classic Federation 是基于大型主机的联邦数据服务器,它可以单独地或者和 WebSphere Information Integrator 标准版和高级版一起用于集成来自大型主机数据源的数据,例如 IMS®、VSAM、Datacom/DB、Adabas 和 IDMS。WebSphere Information Integrator Content Edition 还扩展了可用数据源的范围,使之包括更丰富的内容源,例如 DB2 Content Manager、Documentum、FileNet 产品,等等。
商业益处
将 RAD 中基于 Crystal 的技术与 WebSphere Information Integrator 的产品套件的数据联邦服务相结合,可以为 Java 开发人员带来三个关键的潜在好处:更大的数据范围,运行时性能的提高,以及简化的用户环境。
WebSphere Information Integrator 支持很多类型的数据源,其中有很多数据源不能直接通过 RAD 的嵌入式报表组件来访问。然而,由于 WebSphere Information Integrator 为 Java 程序员和应用程序提供了对各种不同数据的单一的 RDBMS 视图,这些附加的数据源对于 Web 应用程序开发人员来说是可以直接访问的。例如,这样的数据源包括大型主机(特别是 IMS、VSAM、Datacom/DB、IDMS 和 Adabas)数据、第三方应用程序(例如 SAP、PeopleSoft 和 Siebel),以及特定于行业的数据源(例如生命科学领域中的 BLAST 和 Entrez)。
全局查询优化技术以及对远程数据本地缓存的支持使 WebSphere Information Integrator 有潜力来提高嵌入式报表的运行时性能,特别是那些涉及复杂查询的性能。的确,Business Objects 做的早期研究就展示了响应时间可以明显缩短。甚至在有的案例中,Information Integrator 通过减少 I/O 和网络上不必要的数据传输,使报表时间减少了 90%。Information Integrator 之所以能取得这样的效果,是因为它在处理查询时只需要一次数据传递,指示远程数据源在本地先过滤较多的数据,并缓存经常被访问的数据。
最后,WebSphere Information Integrator 可以帮助 Java 开发人员简化数据访问环境。它使程序员不必知道各种不同数据的底层格式或位置。管理员可以定义一个单独的虚拟数据库镜像,为程序员提供对不同数据的透明的访问。
图 1 演示了一个示例架构,其中 Crystal 插件已经安装在 RAD 中,并经过一定的配置,可以与 WebSphere Information Integrator 产品提供的联邦数据服务一起使用。
图 1. 示例架构

示例开发场景
通过研究一个示例场景,理解如何使用这些技术,该示例场景包括:
- 创建一个 Web 项目。
- 创建一个 JSP。
- 启动 Crystal 报表向导,创建一个新的 Crystal Report。
- 将这个报表包括在 JSP 中。
- 修改企业应用程序归档(.EAR)的部署描述符,以便引用 WebSphere Information Integrator 联邦数据库。
- 在 RAD 内建的 WebSphere Application Server 测试环境中部署和测试这个 JSP。
在开始之前,值得注意的是,您不需要专门做任何事来配置这些技术,以便使它们可以一起使用。只需按照标准过程安装 RAD 和它的 Crystal 插件。此外,像平常一样安装和配置 WebSphere Information Integrator,以便使用所需的数据源。
我们查看的这个例子是基于安装了 Crystal V10 Professional 和 Embedded Edition 的 RAD V6.0.0 的。您将看到如何配置这个 RAD 镜像,以便构建基于可通过 WebSphere Information Integrator Advanced Edition V8.2 访问的数据的嵌入式报表。
要了解关于如何使用 Crystal 插件开发和管理嵌入式报表的更多信息,请参考 RAD 中包含的在线帮助。请重点参阅关于“Reference/Crystal Reports”的小节,这个小节包含了一些详细说明的教程和参考数据。
步骤 1: 创建一个动态 Web 项目
首先,您需要一个动态的 Web 项目。按照 RAD 的标准过程创建一个这样的项目。如果您以前没有做过这样的事情,那么看看下面的简短概括:
- 打开 Web perspective。单击 Window -> Open Perspective -> Web。
- 单击 File -> New -> 动态 Web 项目。
- 根据自己的喜好输入一个项目名。
- 看到提示的时候添加“Crystal Reports”功能。(参见图 2)
- 单击 Finish。
图 2. 创建一个动态 Web 项目

步骤 2: 创建一个 JSP
现在需要在 Web 项目中包括一个 JSP。您可以按照标准的 RAD 过程,创建 Faces JSP 或基本 JSP。下面是创建简单 JSP 的一种方法:
- 选中您之前创建的动态 Web 项目。单击右键并选择 New -> JSP。
- 看到提示的时候为 JSP 指定一个名称(例如“default”)。
- 单击 Finish。 当向导完成时,就会出现一个 JSP GUI 编辑器,编辑器带有一个工具栏调色板。您可以看到一个带有 Crystal 报表组件的文件夹。参见图 3。
图 3. 即将编辑的示例 JSP

步骤 3: 创建一个新的 Crystal 报表
有了一个 JSP 后,就可以将一个已有的 Crystal 报表导入到工作区,或者就在 RAD 中创建一个供自己使用的新的 Crystal 报表。我们选择后一种。同样要注意的是,这里列出的过程是在 RAD 中创建新 Crystal 报表的标准过程。
- 选中动态 Web 项目,单击鼠标右键。选择 File -> New -> Other -> Crystal Report -> Next。(参见图 4)
- 为报表提供一个名称。
- 选中“Launch Crystal Reports . . .”复选框。
- 单击 Finish。
- 按照标准的 Crystal 报表编写向导:
- 选择一种报表类型。
- 创建到 WebSphere Information Integrator 数据库的一个连接。指定连接类型为“DB2 Server”。务必选中连接选项“synonyms”,以便可以看到昵称(表示远程数据的 Information Integrator 对象)。
- 选择您想要包括到报表中的 WebSphere Information Integrator 对象。
- 构造所需的查询。
如果有必要,可以查询 RAD 在线帮助,以了解关于如何设计和构造新的 Crystal 报表的细节。
图 4. 使用 RAD 插件创建新的 Crystal 报表

步骤 4: 将报表添加到 JSP 中
创建好新报表(或者将已有的报表导入到工作区)之后,就可以将这个报表包括到 JSP 中。RAD 的 Crystal 插件可以为此提供方便。下面简单地概括一下做这件事的标准过程:
- 返回到 JSP 编辑器。
- 从工具调色板中将 Crystal Report Page Viewer 图标拖放到 JSP 上。
- 为 Page Viewer 组件指定一个名称,并从工作区选择一个已有的报表。(参见图 5)
- 单击 Finish。 如果看到提示,则允许 RAD 将报表移到工作区内适当的文件夹中。
图 5. 为 JSP 选择一个 Crystal 报表

步骤 5: 修改部署描述符
因为 JSP 嵌入了一个报表,这个报表将建立到 WebSphere Information Integrator 数据库的运行时连接,因此需要在 .EAR 文件的部署描述符中创建适当的 JDBC Provider 和 DataSource 对象。同样,这里也遵循创建这些对象的标准 RAD 过程。下面简单概括一下需要做的步骤:
- 找到并打开 Web 项目的 EAR 文件的部署描述符。
- 单击 Deployment 标签页。
- 遵循标准过程定义到联邦数据库的 JDBC Provider 和 DataSource 对象(参见图 6)。注意:
- JDBC Provider 应该是基于 DB2 Universal Database (UDB) V8.2 系统的。
- 必须将 DB2 驱动程序库添加到类路径中。
- 可能需要为 DataSource 提供一个 JAAS 映射(用户 ID 别名映射)。
- 可能需要将 WebSphere Information Integrator 数据库的 JNDI 名指定为“mydbname”,而不是更为常见的“jdbc/mydbname”。
图 6. 修改 .EAR 文件的部署描述符

步骤 6: 部署和测试您的工作结果
至此,您应该保存所有的工作,并准备在内建的 WebSphere Application Server(Application Server)测试环境中部署和测试您的 JSP。下面是一个简单的概括:
- 创建一个 Application Server 测试服务器,如果之前没有创建的话。
- 在 Web 项目中找到 JSP 文件,并单击鼠标右键。选择 Run -> Run on Server。
- 为部署指定目标 Application Server 测试服务器。
- 在服务器启动之后测试您的 JSP。您应该可以看到一个报表,这个报表显示从 WebSphere Information Integrator 检索到的数据。(图 7 显示了一个简单的嵌入在 JSP 中的报表。)
图 7. 带嵌入式报表的示例 JSP

结束语
通过结合使用 RAD 的 Crystal 插件和 WebSphere Information Integrator,Java 程序员可以快速生成和测试基于 Web 的报表,这种报表可以集成来自各种范围数据源的数据。程序员可以从头开始创建新的报表,也可以将已有的报表导入到他们的工作区中。通过将 WebSphere Information Integrator 作为虚拟数据访问服务层,程序员可以使用更多类型的数据源,简化他们的工作,以及创建可以从获得极大提高的运行时性能中受益的 Web 组件。
关于作者
Cynthia M. Saracco 在 IBM 硅谷实验室从事数据库管理和 Web 应用程序开发方面的工作。 |