作者详述了从 DB2 Version 8 到 DB2 9.5 以来 IBM DB2数据服务器连通性选项的演变历史。此外,了解 DB2 9.5 中每个连通性选项的规范:包括指纹(fingerprint)级、轻量级以及会占用全部内存的选项,伴随此过程还将为您介绍一些技巧。
简介
在已发布的几个IBM DB2 for Linux UNIX, 和Windows(DB2)版本中,存在各种各样的DB2客户机和驱动程序允许您将应用程序连接到 DB2 数据服务器。从标准部署到轻量级运行时,再到不需要任何工具而仅要求一个连接字符串的最小化运行时,我们的客户机参数选择范围几乎可以满足用户的任何选择。
在过去的几个发行版中,DB2客户机连通性选项不断演变,试图能够赶上客户机 “在磁盘上” 的参数选择的演变速度。在本文中,我将为您介绍从DB2 9.5发行版开始的可用的DB2客户机和驱动程序的最新信息,并提供一些影响客户机连通性的选项的发展历程,从而使您更清楚地理解DB2 9.5。虽然您可能没有使用DB2 9.5发行版,但是本文可以帮助您了解如何在未来部署中选择连通性选项,同时介绍了连通性软件的发展方向。
最后一个提示:您应该了解的一点是,从DB2 9开始,DB2产品集的服务器组件在绝大多数情况下只接受完整版本或重要升级(例如DB2 9.5)的新功能。相比之下,DB2 (客户机或驱动程序)的连通性选项可以继续更新,并且可以接受维护(补丁)、新版本和单点发行版带来的新功能。开发人员设法确保实现向后兼容性。因此,您可以更加灵活地享受到最新的客户端功能带来的好处。例如,从DB2 9.5 Fix Pack 1开始,Visual Studio 2008支持成为了IBM Database Add-ins for Visual Studio的一部分。我们之所以能够及时地交付Visual Studio 2008支持正是因为有了这种新的客户机交付架构。
DB2客户机连通性简史
DB2 数据服务器的客户机连通性在过去几个发行版中经历了一些变化。虽然名称和特性会让人觉得费解,但是它们确实为数据服务器提供了一系列更加流线化、更加高级、更加灵活的连通性选项。因此我撰写本文的目的就是帮助您更好地理解 DB2 9.5 中的选项。
名称变化
如前文所述,在名称和功能性方面,客户机连通性选项在前面几个DB2发行版中经历了一些变动。
在DB2 8中,可用的最小型的客户机称为DB2 Run-Time Client。在DB2 9中,这种客户机被重命名为 DB2 Runtime Client(注意,客户机名称的说明性部分把 Run-Time 改成了 Runtime)。在 DB2 9.5 中,这个客户机的名称有一次发生了变化,现在称为 IBM Data Server Runtime Client(我将在后文中解释原因)。在本文中,如果我引用的是 DB2 Run-Time 客户机,那么我指的是客户机代码的 DB2 8 版本。如果我引用 DB2 Runtime Client,那么指的是客户机代码的 DB2 9 版本,类似地,我引用 IBM Data Server Runtime Client 时实际指的是客户机代码的 DB2 9.5 版本。我将在本文中对所有不同的客户机连通性组件使用这种命名规则。
另举一个例子,如果我提及 “IBM DB2 Driver for JDBC and SQLJ”,那么我指的是 DB2 9 附带的内容。如果我提及 “IBM Data Server Driver for JDBC and SQLJ”,那么我指的是 DB2 9.5 中相同的驱动程序(虽然它已进行了一些增强)。
为了便于理解,并且如果您在理解这些变化时感觉有一些困难,那么可以使用下面的表格,它总结了在过去几个发行版中 DB2 客户机连通性选项的命名变化:
图1. DB2客户机连通性选项在过去几个DB2发行版中的演变
DB2 8中的客户机
在DB2 Universal Database Version 8 (DB2 8) 中提供了三种可安装的客户机;分别是 DB2 Administration Server Client、DB2 Application Development Client 和 DB2 Run-Time Client。我不会详细研究每种客户机的各个组件,但是它们的名称可以精确地反映各自的功能和使用意图。
此外,对于轻量级 Java 部署来说,Java Common Client (JCC) 是一个大约 2 MB 的 .JAR 文件,因此可以将它部署到需要基于 SQL Java (SQLJ) 或 Java Database Connectivity (JDBC) 访问 DB2 数据服务器的应用程序。JCC 不需要进行安装或维护。只需将它作为应用程序的一部分包含,或者在系统配置中引用,在系统配置中,只需指定将代码中的一个连接字符串指向驱动程序即可。当使用诸如 JCC 这样的瘦驱动程序时,应该注意它仅仅用于连通性。例如,它不提供 DB2 命令行处理程序(DB2 CLP)或工具。最后,这个驱动程序还包含一个免版权费的重新发布许可(和其他所有轻量级驱动程序一样),允许您无需任何支出即可将 IBM 数据服务器连通性嵌入到应用程序内部。
虽然 DB2 8 连通性选项可以满足客户机的功能性需求,但是,如果您运行的不是 Java 程序,就要安装一个 DB2 Run-Time Client。根据其目标用途,这个 DB2 8 Run-Time Client 将占用比较大的内存资源。这会给移动用户带来一些棘手的部署问题。例如,一个移动员工尝试通过一个较慢的 Internet 连接下载数百兆字节的内容,仅仅是为了将应用程序连接到目标 DB2 数据服务器。而这甚至还没有考虑应用程序的大小。简单地说,对于连通性是惟一需求并且应用程序不是基于 Java 的灵活部署环境来说,并不适合使用 Run-Time Client。
DB2 8.2 发行版针对基于 Windows 的部署引入了 DB2 Run-Time Client Lite。DB2 Run-Time Client Lite 提供了一个基于 Windows 的安装程序;此外,一组 Windows Installer Merge Modules 可供使用,因此可以直接将这个客户机嵌入到应用程序中基于 Windows Installer 的安装程序。但是,这个客户机没有迁移支持,也不能和其他 DB2 客户机并存。
如其名称所示,DB2 Run-Time Client Lite 占用的内存资源要小于 DB2 Run-Time Client,因为它没有附带任何工具,只附带了通过受支持 API 访问数据所需的文件,这些受支持的 API 包括 .NET、JDBC、SQLJ、ODBC、CLI 和 OLE DB。
DB2 8.2 还引入了 db2iprune 命令。这个命令可以修改基于 Windows 的安装映像,使它不包含某些特性。这个实用实用程序有其必要性,因为即使您可以自定义安装一个 DB2 客户机,但是在某些参数发生变化时仍要访问完整的安装映像。例如,假设您正在部署一个 DB2 Application Development 客户机的自定义安装。此外,假设您对安装进行了自定义,不希望安装某些图形工具,但希望安装其他工具。例如,在 DB2 8.2 中,您可能希望安装 DB2 Development Center,而不是 DB2 Client Configuration Assistant (DB2 CCA)。使用自定义安装时您可以指定不安装 DB2 CCA。对于大规模的部署,您通常需要为软件发布软件提供一个响应文件,以便在一组目标工作站上远程安装 DB2 Application Development Client。这些目标工作站可以通过 PUSH(系统软件强制在目标工作站上安装)或 PULL(客户机连接到服务器并请求安装)方法实现安装。不管使用哪种方法,您都需要载入完整的安装映像,其中将包括 DB2 CCA,即使您提供给附带安装(accompanying installation)的响应文件并不希望安装这个组件。这样做是为了防止发生由于用户参数发生变化而破坏的安装。这将引起一些发布问题,因为您不必要地挂载了远远大于其目标应用的映像。简单地说,在执行安装时,安装映像必须是任何用户或响应文件可能安装的所有特性的超集。
用 db2iprune 能够修改安装映像以匹配给定的响应文件,这能使映像中只包含您希望安装的特定组件。即使您使用 DB2 图形化安装程序交互式地运行一个安装,并选择进行自定义安装,从安装映像中剔除的组件也不会再次出现。db2iprune 是一个非常优秀的工具,可以帮助缩减任何 DB2 安装映像的大小(并不仅限于 DB2 客户机。从 DB2 9.5 开始也限于 Windows)。但是在 DB2 客户机安装映像中仍然有一些占用空间的组件不能够通过 db2iprune 删除。这一主题将在以后的文章中探讨。
DB2 8 还支持对 DB2 客户机软件 DB2 Thin-Client 进行特殊安装。虽然该客户机通常并不被认为是主流客户机,但是在某些环境下可以满足您的需求。本文末尾的您听说过瘦客户机吗? 小节将介绍这种客户机。
DB2 9中的客户机
DB2 9 简化了客户机家族并为 Open Database Connectivity (ODBC) 和 Call Level Interface (CLI) 应用程序添加了一个轻量级驱动程序。具体来讲,DB2 8.2 DB2 Administration Server Client 和 DB2 Application Development Client 合并为一个 DB2 Client。从 DB2 9 开始,需要应用程序开发特性、工具以及与简单的运行时连通性无关的任何内容,客户机都派得上用场。DB2 Runtime Client 保留了它的名称,但为了缩小体积减少了一些组件。如果对 DB2 8.2 的 B2 Run-Time Client Lite 非常熟悉,就完全可以用它适当地定制 DB2 9 的 DB2 Runtime 客户机。
例如,Configuration Assistant (CA) 工具可以图形化地将客户机连接配置到本地和远程数据服务器、可以配置 CLI 设置以及通过任何受支持的 API 测试数据服务器连接,等等。CA 在 DB2 8 中曾是 DB2 Run-Time Client 的一部分(那时称为 Client Configuration Assistant),但是在 DB2 8.2 中把它去掉了。这是为确保客户机名称可以反映其功能而做出的第一步。我认为这样做很有意义,因为运行时(runtime)这个名称表示获得的是一个简单的运行时环境。简单地说,从选项的角度来看,DB2 9 中的客户机结构有些类似于 Java 环境。如果只运行一个 Java 程序,至少需要一个 Java Runtime Environment (JRE)。JRE 通常很小并随 Java 应用程序一起安装。开发一个 Java 应用程序需要借助 Java Developer’s Kit (JDK), 以完全访问应用程序开发所需的丰富特性。
DB2 8.2 提供的 JCC 驱动程序在 DB2 9 中被重命名为 IBM DB2 Driver for JDBC and SQLJ。这个名称有点长,但更准确地反映了这个驱动程序的功能。更重要的是,引入了一种称为 IBM DB2 Driver for ODBC and CLI 的新瘦驱动程序。轻量级驱动程序部署价值主张以前只用于基于 Java 的应用程序,但这一举措将它扩展到使用 ODBC 或 CLI 接口连接远程 DB2 数据服务器的应用程序。
在 DB2 9 中,获得针对 Visual Studio 2005 的 IBM Database Add-ins 的惟一方式是通过基于 Windows 的 DB2 Client 或是服务器映像。
DB2 9.5中的客户机
DB2 9.5 实现了客户机连通性的又一次演变。您将发现所有的客户机和驱动程序名称中都去掉了前缀 DB2,取代它的是 IBM Data Server。这样做的理由(这也是一个令人兴奋的变化)是从 DB2 9.5 开始,整个 IBM 数据服务器家族(具体指 DB2 for i5/OS、DB2 for z/OS、DB2 for Linux, UNIX, and Windows 和 Informix Dynamic Server [IDS])将使用同一个代码集。这是一次重大的创新,因为它大大减轻了使用多个 IBM 数据服务器家族成员的用户的部署负担。此外,集成的开发环境(IDE)插件也是很通用的,您可以对一组简单的数据访问 API 进行编写,并将应用程序连接到任何一个 IBM 数据服务器家族成员(需要 DB2 Connect 许可才能获取存储在 DB2 for i5/OS 或 DB2 for z/OS 数据服务器上的数据)。
除了降低部署成本以外,新的流线化的 DB2 9.5 客户机基础设施还降低了 IBM 解决方案的总体拥有成本,这是因为使用了通用的 IDE 集成和驱动程序。例如,假设您领导一个 Java 开发人员小组,并且您的企业运行的是 DB2 for z/OS、Informix for AIX 和 DB2 for Windows。从 DB2 9.5 开始,您可以在所有工作站中发布 IBM Data Server Driver for JDBC and SQLJ 并且所有这些工作站可以立即互相连接。此外,可以利用 IBM Data Studio 构建业务逻辑,甚至可以在前面提到的任何一个 IBM 数据服务器中通过单击鼠标来构建 Web 服务。这一切要归功于一组通用的驱动程序、工具集、通用的 SQL API(用于 DB2 数据服务器)、通用的 Web Services 框架、通用的连通性代码等等。这样的例子举不胜数,只是不在本文的范围之内。可以说,DB2 9.5 中的新客户机架构允许 IT 编程人员和部署人员在不同位置之间移动,为 CIO 提供更加灵活的人员安排。一些研究表明,70% 的 IT 预算都与人员成本有关,而只有 30% 与硬件和软件有关,考虑到这一点,您就会发现任何解决方案都会涉及大量的劳动力成本。而 DB2 9.5 中新的客户机基础结构对于降低 IBM 数据服务器解决方案涉及的人员成本起了非常重要的作用。
DB2 9.5 还引入了一种新的瘦驱动程序,称为 IBM Data Server Driver for ODBC, CLI, and .NET。它只能用于 Windows 并专门针对 Windows 客户机设计。它允许实现更轻量级的部署,使基于 Windows 的客户机能够将 .NET 应用程序连接到 DB2 数据服务器。在 DB2 9 中,IBM Data Server Driver for ODBC and CLI 并不支持 .NET 应用程序。因此编写 .NET 应用程序需要部署更大型的 DB2 Runtime Client。新引入的 IBM Data Server Driver for ODBC, CLI, and .NET 可以占用最少的内存实现轻松部署 .NET 应用程序的连通性。可以把它看作是以前在 DB2 9 中使用的 IBM DB2 Driver for ODBC and CLI 的扩展(但在 DB2 9.5 中重新命名)。如果您要连接一个基于 Linux 或基于 UNIX 的客户机,并需要一个瘦驱动程序,那么可以使用 IBM Data Server Driver for ODBC and CLI,因为您显然不会在这些工作站中运行 .NET 应用程序。
选择合适的 DB2 9.5客户机连通性选项
如前所述,DB2 9.5 附带了很多客户机和驱动程序连通性选项。根据您的使用目的选择更适合自己的选项。图 2 展示了我在决定为连通性需求部署哪些 DB2 客户机和驱动程序时使用的决策表,其中考虑到了客户谈到的最常见因素:
图 2. DB2 9.5客户机连通性选项的选择技巧
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
IBM数据库助力山西煤炭工业厅加强监测
太原市精英科技股份有限公司使用IBM产品成功协助山西煤炭工业厅建立了山西省煤矿井下作业人员管理系统联网和安全监管执法网络系统。
-
选择适合自己的DB2 9.5客户机连通性选项(二)
在已发布的几个IBM DB2 for Linux UNIX, 和Windows(DB2)版本中,存在各种各样的DB2客户机和驱动程序允许您将应用程序连接到DB2数据服务器……