技术开发 频道

专家访谈: Connie Nelin谈DB2应用程序开发

Connie Nelin 负责数据库应用程序开发工具的策略,包括WebSphere Studio、DB2 Development Center和Visual Studio .NET。读过这篇对Connie的访谈后,你可以向她提交有关DB2开发工具策略和实现方面的问题。

Photo: Connie Nelin

Connie Nelin 是 IBM Database Advanced Technology 领域的一名杰出工程师。从 1987 年至今,她一直在 IBM 工作,主要从事数据库应用程序开发支持和工具技术(tooling)。Connie 目前全面负责针对 DB2 产品家族的应用程序开发环境战略、架构和开发。这包括 DB2 Development Center、DB2 SQL Assistant 以及将特定于 DB2 的特性整合到 WebSphere Studio、Microsoft Visual Studio 和 Microsoft Office 产品中。

如果您有 任何问题要问 Connie,请使用 这种格式 提交这些问题。Connie 将在未来的期刊中尽可能多地回答这些问题。

Q: 在过去,IBM 在易用性方面并不十分出名。然而,最近发布的一些版本却似乎很关注用于管理和用于应用程序开发的 GUI 工具。您有没有发现,这种关注给团队中的开发者带来了生产率的提高?

A: 对于我们加强应用程序开发支持领域的举措,开发者们给予了良好的反馈。这项工作始于 DB2 UDB V6 中的 Stored Procedure Builder,它为基于 GUI 工具开发针对 DB2 家族,包括z/OS™  平台上的 DB2® Universal Database™  的 Java(R) 和 SQL 存储过程提供了简单的手段。接着,同样水准的支持被整合到 IBM Visual Age® for Java 当中,以便在纯 J2EE 开发环境的上下文中提供 DB2 开发支持。

在过去的几年时间当中,随着针对 SQL 存储过程的源代码级(source level)调试支持以及 DB2 UDB V8 中的 Development Center 的引入,这一支持得到了显著的增强。DB2 UDB V8 中的 Development Center 大大地扩充了 Stored Procedure Builder 的特性。此外,如果结合使用 WebSphere® Studio 小组,我们将可以在 WebSphere Studio 产品家族中提供丰富的 DB2 开发支持,不管这些产品是在 Windows® 平台下,还是在 Linux 平台下。这种支持包括 DB2 服务器端对象,例如表、视图、存储过程、用户定义函数(UDF)等等的开发,以及对基于 J2EE、Web 和 Web 服务的应用程序开发的完全支持,这些应用程序要访问 DB2 数据和逻辑。最近,我们引入了类似的 DB2 开发支持,这种支持被深入地整合到 Microsoft® Visual Studio .NET 中。

然而,事情决不会止于此。这是一个正在进行中的重要领域,需要我们的关注,我们将以提高性能和实用性为出发点,继续创造出新的特性。

Q: 您能解释 IBM 在数据管理应用程序开发上的战略吗?例如,为什么在 DB2 Development Center、WebSphere Studio 和 Microsoft Visual Studio 中提供了相似的功能?

A: 在与客户的讨论中,我们发现他们存在着一些很强的开发偏好,J2EE 开发者希望有在各种 Java 开发环境中的支持,而 .NET 开发者则希望有在 Microsoft IDE 中的支持,以便他们可以使用自己选择的编辑器。此外,开发者希望在不同的操作系统平台,包括 Windows、 Linux 和其他 UNIX® 操作系统上工作。为了解决这些不同的需求,我们有三个主要的整合点,用以提供应用程序开发环境:

  • 以 DB2 Development Center 的形式与基本 DB2 “中心”的整合。
  • 整合到 WebSphere Studio 中。
  • 整合到 Microsoft Visual Studio中。

 

每一个整合点都是针对于一个略微不同的开发社区的:

  • DB2 Development Center,与其他的 DB2 管理工具,例如 DB2 Control Center 一起整合,主要是针对存储过程和 UDF 形式的 DB2 服务器端开发。主要的使用者是关心应用程序的核心数据库部分的管理员和开发者。它被设计成对于这一类用户来说十分自然的那种形式。这种支持在 Windows、Linux、AIX® 和 Solaris 平台上都有提供。
  • 与 WebSphere Studio 的整合为存储过程和 UDF 提供了相同的服务器端开发,不过现在是将它与纯 J2EE 开发环境相整合,这就使得在相同的开发环境中开发服务器端函数以及开发 J2EE 应用程序和 Web 服务应用程序十分容易。这种环境被设计成对于 Java 和 Web 开发者来说比较自然的形式,这些开发者选择的开发平台是 Windows 或者 Linux。
  • 与 Microsoft Visual Studio 产品家族的整合为将 DB2 应用程序和服务器端开发整合到适合构建使用 Microsoft 支持的应用程序的开发环境中创造了条件。这种环境被设计成对于 Microsoft 开发者来说比较自然的形式。

 

虽然我们主要关注用于提供最深层次的整合的三大整合点,但是实际上 DB2 还提供了通过各种流行的 API——JDBC、ODBC、OLE DB、ADO 和 ADO.NET 访问客户机的途径,这使得使用大量其他的流行开发工具,包括基本编辑器和命令行来开发 DB2 应用程序成为可能。

Q: 好,这里有一个关于 Rational® 产品的问题。开发者怎样才能够在开发 DB2 应用程序时使用 Rational 产品?

A: 现今的 Rational 产品,例如 Rational XDE,拥有对 DB2 开发的强力支持。例如,Rational 产品完全支持 DB2 模式的正向工程(forward engineering)和逆向工程(reverse engineering)的同时使用、逻辑数据建模以及与实体模型(physical model)和模式之间的双向转化,并且还支持 DB2 应用程序的设计和开发。这种加工既可以运行在 WebSphere Studio 环境中,又可以运行在 Microsoft Visual Studio .NET 环境中。此外,Rational 还提供了源代码管理工具 ClearCase,它可以整合到像 WebSphere Studio 家族和 Microsoft Visual Studio.NET 家族这样的开发环境中,可用于管理 DB2 应用程序的所有组件,不仅包括应用程序的源文件,还包括存储过程、用户定义函数以及任何其他的 SQL DDL 或 DML 脚本。接下来,我们将致力于 Rational 和 DB2 工具之间的更紧密的整合,以提供更多的功能。

Q: 是否存在这样一种工具,开发者可以用它来为早期的 z/OS 开发存储过程?

A: IBM 在对 DB2 z/OS 存储过程的开发支持中没有提供相应的工具,不过有些其他供应商提供的工具可以在这一领域起作用。然而,在 DB2 Version 8.1.2 (和 V7.2 的 下载版本)中,我们引入了一种使用新功能 DB2BUILD 构建客户机脚本的方法,DB2BUILD 可以运行在工作站上,用以创建 DB2 z/OS 上的 SQL 存储过程。有了这种支持,用户就可以在文件中构建脚本和源代码,他们可以在传统的源代码控制系统中管理这些文件。并且,用户可以利用这种支持来构建多种用途的 SQL 存储过程。DB2BUILD 提供了对删除、创建和更改 SQL 存储过程的源代码的支持。

Q: 开发者们确实喜欢使用 SQL 过程语言构建存储过程时的易用性。不过,他们并不喜欢其中要求附带的 C 编译器。那么,在不久之后,是否可以去掉那样的要求呢?

A: 我们理解大家对用于 SQL 过程的 C 编译器要求的关注。在 Windows 和 UNIX 平台下的 DB2 中,我们已经引入了 GET_ROUTINE_SAR 和 PUT_ROUTINE_SAR 功能,这一功能让开发者或 DBA 可以提取和部署 SQL 存储过程到像 DB2 服务器这样的平台上,而不必要求在目标服务器上有 C 编译器。此外,对于 Windows 和 UNIX 上的 DB2,我们已经启动了开发工作,以期完全去掉 C 编译器要求。

Q: IBM 一直以来都是 SQLJ 的强力倡导者,而且最近发布的 DB2 UDB 8.1 也真正使 SQLJ 成为非大型主机 DB2 的可用选项。但是 JDBC 有一个优点,那就是它可以整合到许多工具中。您将采取什么措施使得 SQLJ 也具有这样的可访问性呢?

A: 对于即将发布的 WebSphere Studio (Application Developer),我们将一起提供整合的 SQLJ 支持。这包括对编辑、编译(同时包括 SQLJ 翻译和编译)、定制以及 SQLJ 源代码级的调试的完全整合的支持。此外,您还可以开发使用 SQLJ 的 Java 存储过程。

Q:Java 存储过程如何适合通用 J2EE 框架呢?为什么开发者们应该考虑使用 Java 存储过程?

A: Java 存储过程,或者说通常意义上的存储过程,有着许多的优点,包括在服务器上固化数据库密集逻辑的能力,这样将可以提高性能和减少锁(locking)问题,因为消除了处理时间中的网络开销。重量级的处理(heavy processing)在服务器上进行,结果只返回给调用者。此外,逻辑只写一次,只有一个位于数据库服务器上的版本。因而在很多运行在相同或不同机器上的应用程序中,逻辑易于重用。

存储过程与 J2EE 框架融合得很好。一个存储过程可以自然地映射为一个 EJB 会话 bean 方法,并且我们还在 WebSphere Studio 的 Application Developer 中提供了工具,以便可以轻易地生成调用存储方法的会话 bean 方法。在将来,还可以将 CMP 方法映射为存储过程。此外,JSP 可以轻易地调用存储过程。基本上,当可以使 J2EE 编程模式中的逻辑更接近采取了存储过程方式的数据库的时候,您都可以这样做。

Q: 当下是否正在开发专门的工具,以使得针对各种不同的联邦后端数据源的开发更加容易,例如我需要将 XML 和 SQL 数据结合在一起?

A: 与 DB2 Information Integrator™ 产品一起,我们在 DB2 Control Center 中提供了附加的工具,用以配置联邦数据源和将数据映射到昵称。除了支持大量的关系数据库供应商之外,通过这种联邦层还可以访问 Life Sciences 数据源、以及像纯文本文件、Excel 文件这样的通用数据源。XML 数据也能够通过这个中间联邦层进行存取。一旦呢称被建立,应用程序开发人员将能够像使用其他关系数据库中的表那样来存取它们,并可以通过 WebSphere Studio 或者 Visual Studio .Net 很容易地构建联邦应用程序。

再往后面,我们将整合 XML 支持,包括对数据库的更加紧密的 XML 查询支持。当前,我们正在与其他业内的供应商一道从事 XQJ 规范 JSR 225 方面的工作。XQJ 是用于查询 XML 数据的 Java API。我们还将不断地增强我们的 tooling 支持,以支持这些新的 API 和特性。

Q: 你们对于 tooling 是否正在进行更多的工作以支持 DB2 UDB 和 WebSphere MQ 的整合?

A: 我们提供了一套基本的 UDF,它们使得开发者可以轻易地将消息传送操作与 SQL 处理结合起来。例如,开发者可以编写一条 SQL 语句,这条语句从 WebSphere MQ 消息队列中读出消息,并将消息插入到 DB2 表中,或者从一个表中选择数据并将其作为 MQ 消息进行发送。 在 WebSphere Studio 或 Microsoft Visual Studio 这样的开发环境中,可以轻易地使用这些功能来构建应用程序。我们还提供了一些向导,以便一步一步地引导一些常见消息格式的映射;我们还提供了用于生成表函数或/和视图的向导,表函数使用基本 DB2 MQ UDFs 来读取消息、分解消息并将分解后的消息作为表函数的结果返回。

最近,在 V8.1.2中,MQ listener 添加了一个新的整合点。有了这一功能,用户就可以建立他们的 DB2 工作站系统,以便当消息到达队列时消息的内容可以自动地被分派给用户提供的一个存储过程,以处理消息的内容。

Q: Web 服务在应用程序架构中正变得越来越重要。你们是否做了专门的工作以支持开发访问 DB2 数据的 Web 服务?

A: DB2 提供了对结合数据库和 Web 服务的支持。您可以轻易地开发访问 DB2 数据和存储过程的 Web 服务。 WebSphere Studio 的应用程序开发者配置提供了对开发、测试和部署这些 Web 服务的整合的支持。此外,DB2 还支持通过使用 Web 服务用户定义的函数来调用 Web 服务,作为 SQL 语句处理的一部分。WebSphere Studio 包括一个向导,它允许您轻易地从已有的 Web 服务创建这些 UDF。在将来,我们将不断地将对 DB2 Web 服务开发的支持整合到其他的 IDE 中。

Q: 我在哪里可以找到更多的信息?

A:除了产品文档外,在 developerWorks DB2 产品专区 我们已经登出了大量有关开发主题的各方面的文章,当一些新的特性变得可用时,我们将继续登出更多的彰显新特性的文章。以下是一些有用的内容:

Java:

.NET:

Development Center:

Web 服务:

WebSphere MQ:


0
相关文章