当前位置:文档之家› IBM DB2 Connect 简介

IBM DB2 Connect 简介

IBM DB2 Connect 简介: 内有乾坤2005 年 4 月对于那些脱离大型机的应用程序——分布式应用程序来说,IBM® DB2® Connect™ 已成为向它们开放 DB2 for z/OS 数据库以及 zSeries 硬件平台传统公认的所有优点的首选方法。

本文是一个由 5 部分组成的系列中的第一篇文章,这个系列将介绍 DB2 Connect 的一些主要特性,这些特性有助于提高交付随需应变解决方案的能力。

简介1993 年,计算机界的专家们预测大型机(mainframe)将迅速退出历史舞台。

他们宣称,未来的计算基础设施将会是一个高度分布的、松散连接的个人电脑和客户机-服务器系统的集合。

作为该行业的相关参与者,IBM 几乎无立身之处。

我们都知道后来是怎么回事。

IBM 设法在分布式市场重新占得先机,并成为大型机(mainframe)技术的“主要”支持力量。

从价格的角度来看,IBM 大大缩减了大型机的价格。

从技术的角度来看,IBM 放弃了为其大型机提供动力的双极技术(bi-polar technology),而将大量赌注放在 CMOS 芯片技术上,试图通过这种方式,以剧减的价格交付大型机级别的计算。

更重要的是,对于所谓大型机是一种过时的技术,属于大型机的时代已经一去不复返这类荒诞的说法,这是一个直接有力的反击。

如今,企业比以前更多地使用大型机作为其计算基础设施的基础。

与此同时,Linux™、UNIX®、Windows® 和其他客户机-服务器系统(在此处被称作分布式平台)并没有消失,因为大型机又重新为它们在企业中赢得了地位。

实际上,这些分布式计算基础设施经历了一个发展的过程。

最终的结果是,客户希望将分布式平台的简单性和长处与大型机技术无可匹敌的强大性相结合。

如果说信息技术(IT)中有一个领域能让这种结合产生立杆见影的效果,那么这个领域一定是数据库应用领域。

IBM DB2 Universal Database™ for z/OS (DB2 for z/OS) 原本是一种大型机数据库,现在已转型为世界上第一种用于客户机-服务器应用程序的数据库服务器。

在如今的数据中心里,当您使用运行在大型机上的 CICS 或 COBOL 应用程序时,很可能会遇到 DB2 for z/OS 被用作运行在 Windows、UNIX 和 Linux 上的应用程序的数据库服务器的情况。

正是在这种环境下,我发现 IBM DB2 Connect (DB2 Connect) 产品扮演着一个中心角色。

如今,对于那些脱离大型机的应用程序——分布式应用程序来说,DB2 Connect 已成为向它们开放 DB2 for z/OS 数据库和 zSeries 硬件平台的所有传统公认优点的事实上的首选。

为什么当其他产品遭遇失败的时候,DB2 Connect 却能获得成功呢?这个关于DB2 Connect 的系列试图描述 DB2 Connect 的一些关键特性,我们相信正是这些特性使得它不同于其竞争解决方案。

例如,大多数客户都喜欢由单独一个供应商提供的解决方案,因为这样一来,他们只需跟一个地方联系就可以获得支持:可以说是“one neck to choke”。

另外一些客户喜欢 DB2 Connect 的理由是,它来自像 IBM 这样长时间靠得住的大供应商(在连接领域,很多供应商来来去去,或者改换名称)。

在这个系列的文章中,我们将把焦点放在 DB2 Connect 解决方案的技术方面,而把非技术方面的东西留给 IBM 销售人员去解决。

这是一个由 5 部分组成的系列中的第一篇文章,这个系列将向您介绍 DB2 Connect 的一些主要特性,利用这些特性可以大大提高交付随需应变解决方案的能力。

本文的重点不是讨论 DB2 Connect 的打包和许可。

这方面的信息可以参考 Paul C Zikopoulos 和 Leon Katsnelson 合著的哪个版本的 DB2 Connect 适合您?。

DB2 Connect 是什么?本系列概述为了真正理解 DB2 Connect 是什么,也许先告诉您它不是什么要容易一些。

在DB2 Connect 的发展前期,也就是 Distributed Database Connection Server (DDCS) 时期,很多人在描述这个产品的时候,说它是将分布式平台上的 DB2 数据库连接到大型机上的 DB2 数据库的一种方式。

所以让我们首先澄清一点: DB2 Connect 不做那样的事,我们也不知道有哪个产品会像前面所描述的那样“将数据库连接在一起”。

DB2 Connect 存在的目的是将应用程序连接到数据,而不是将一个数据库连接到另一个数据库。

那么,在 DB2 Connect 的上下文中,什么是数据库,什么是应用程序呢?在 IT 界,当我们在一个较高的层次谈论应用程序时,我们通常指的是一个系统或一组系统,它可以帮助我们交付业务解决方案。

例如,我们会谈到 CRM 或 ERP 应用程序。

在讨论 DB2 Connect 时,我们需要在更窄的定义内使用应用程序这个词。

在这个系列的文章中,当我们提到应用程序时,我们谈论的就是整个大应用程序中的一个部分。

更确切地说,我们指的是实现用户界面(UI)和业务逻辑(以及如何让它们访问所请求的数据)的应用程序代码。

换句话说,在这个系列中,当我们说到应用程序时,我们指的是发出针对数据库的查询、处理结果、调用将更改数据库中数据的事务这样一些实际的代码。

例如,一个被连接到 Siebel CRM 应用程序的Microsoft® Excel 电子表格(这个 Siebel CRM 应用程序运行在Windows 服务器上,并与 DB2 相连接),或者运行在一个Linux WebSphere® 服务器上的一组 JSP 和Java™ Bean,它们都属于我们在这几篇关于 DB2 Connect 的文章中所说的应用程序。

注意,上面那些例子指的是不在 z/OS 操作系统控制下运行的计算机代码。

实际上,我们说的是在 Windows、Linux 等系统控制下运行的计算机代码。

这正是 DB2 Connect 的精髓。

它允许从运行在其他平台(Linux、UNIX 和 Windows)上的计算机代码访问在OS/390®、z/OS、i5/OS™、OS/400®、VSE 和 VM 控制下运行的DB2 服务器。

虽然 DB2 Connect 可以连接到所有这些平台上的数据库服务器,但我们主要讨论将应用程序连接到在 z/OS 控制下运行的 DB2。

图 1 描绘出DB2 Connect 的真正工作。

图 1. DB2 Connect 为运行在分布式平台上的应用程序提供一种使用大型机管理的数据的机制图 1. DB2 Connect 为运行在分布式平台上的应用程序提供一种使用大型机管理的数据的机制用 DB2 Connect 将代码连接到数据所以,DB2 Connect 是一个中间件,用于将应用程序代码连接到数据。

那么,它是怎么做到这一点的呢?当您编写与关系数据库(例如 DB2)交互的计算机代码时,必须考虑两个关键要素。

首先,需要选择一种用于与数据库交互的语言。

通常这种语言是 SQL。

其次,还需要选择一种应用程序编程接口(API),此 API 可以将那种语言和您的 SQL 发送到数据库进行处理。

任何与 DB2 打过交道的人都知道,DB2 支持很多有特色的、功能强大的 SQL 语言。

在与 DB2 Connect 一起使用 SQL 时,实际上就是在使用您很可能在其他应用程序中用到的同一种 SQL。

DB2 Connect 只是将 SQL 从应用程序传递到 DB2 数据库进行处理。

它不会重写 SQL,也不会以任何方式更改 SQL。

换句话说,如果您能熟练地构建 SQL 应用程序,那么就也能够编写分布式平台上的 SQL 应用程序,并让这些应用程序使用大型机上的 DB2。

因为 SQL 的实现在整个 DB2 家族的数据库服务器之间都能很好地兼容,所以这些应用程序还可以使用其他平台上的 DB2 服务器。

但是,用 C、Java 或 Visual 编写应用程序的程序员如何将 SQL 提交给 DB2,以便进行处理呢?别忘了,这些编程语言都完全不了解 SQL。

于是 API 就派上用场了。

所有现代编程语言都支持用于将 SQL 提交给关系数据库的 API。

熟悉大型机 SQL 编程的程序员对嵌入式 SQL 应该不会感到陌生。

嵌入式 SQL 也是 DB2 Connect 支持的一种 API。

分布式计算领域中出现的其他一些更流行的基于 SQL 的 API 有:DB2 CLI、ODBC、OLE DB、ADO、、JDBC 和 SQLJ。

DB2 Connect 支持所有这些 API。

这意味着,为 Linux、UNIX、Windows 和其他分布式平台(例如 Mac 操作系统,当我们讨论 Java 时会详细谈到)编写代码的应用程序编程人员,可以用某种方式将 SQL 提交给 DB2,以便进行处理。

而且,他们可以用自己选择的语言来开发他们的应用程序代码,例如 Java、Visual 、C#、COBOL、C++,等等。

我们大多数人都听说过 ODBC、JDBC 和其他一些类似的接口,它们被称作驱动程序。

虽然我们经常听到 ODBC 驱动程序这种说法,但这不完全等同于术语 ODBC API(而且也不应该那样去解释)。

其他接口也一样。

例如,ODBC API 是一组函数调用的一种规范,程序员可以对数据库进行这些函数调用。

例如,C 程序员会调用 SQLExec 函数将要执行的一条 SQL 语句发送到一个关系数据库管理系统。

而 SQLExec 函数和其他 ODBC API 是由 ODBC 驱动程序来实现的。

DB2 Connect 驱动程序DB2 Connect 提供了实现前一段话中提到的所有 API 的驱动程序。

然而,并不是所有 API 都是用驱动程序实现的。

例如,嵌入式 SQL是通过一个预编译器实现的,这个预编译器读取 C 或 COBOL 源代码,并用 C 或 COBOL 编译器能够理解的 C 或 COBOL 函数调用替换 SQL 调用。

这些函数被实现为 DB2 Connect 所提供的一部分库。

有些 API 由相同的驱动程序实现,对于有些 API,可以由多种驱动程序来实现(例如 JDBC)。

表 1 总结了不同的 API 和 DB2 Connect 附带的驱动程序。

表 1. DB2 Connect 附带的 API 和驱动程序表 1. DB2 Connect 附带的API 和驱动程序由于 DB2 Connect 提供了这么广泛的驱动程序,这很可能会导致有人再次对DB2 Connect 的本质产生误解:人们常常相信,DB2 Connect 只是一个驱动程序包,这个产品的功能只有这些。

相关主题