Web 浏览器正迅速成为从联机目录到内部网应用程序等等一切事物的标准界面。 对于简单的 Web 应用程序,一个独立的 Web 服务器可能就够用了。对于可能需要数据库存取和事务处理的大量应用程序, IBM 提供了一些解决方案,它们使用 DB2 Connect 通过 Web 来管理大量的并行事务。
本节描述了通过使用 DB2 Connect 而受益的、 基于 Web 的商业解决方案。
万维网 (WWW) 上的电子商务应用程序通常使用“公共网关接口”(CGI) 来使用户可查询后端数据库。许多公司还在内部使用 Web 应用程序, 而这些程序通常也有后端数据库。
用户在 Web 页上填好表格,这些表格通过 CGI 被提交至 Web 服务器上的应用程序或脚本。接下来, 脚本将使用提供的数据库 API 来将 SQL 查询提交至主机数据库。然后,同一脚本可使用查询的结果来构建 Web (HTML) 页,并返回给用户的 Web 浏览器显示。例如,一个联机目录,用户可在其中查询特定商品或服务是否可以得到以及它们的当前价格。
CGI 应用程序的设计简单并且易于维护。因为 CGI 标准同时独立于操作系统和语言, 所有它几乎可用于所有计算平台。CGI 程序可用 C++ 或诸如 Perl 之类的脚本语言编写。
虽然 CGI 可能看起来好象是基于 Web 的应用程序的理想解决方案, 但它也有明显的缺点。CGI 的程序设计环境并不象其他 API 那样完善。此外, 有一个可缩放性问题,将影响任何大规模的电子贸易操作。每次调用 CGI 应用程序时, 将在 Web 服务器上创建一个新进程。每个实例必须建立它自己至数据库的连接, 且提交它自己的查询。在大量的事务性环境中, 此局限可能会产生严重的性能问题。
可将 DB2 Connect 与 Web 服务器配合使用以创建坚固的、大量的电子贸易应用程序。 DB2 Connect 提供了一些解决方案来改进基于 Web 的应用程序的性能。 存储过程(参见Web 服务器上的 DB2 Connect) 允许 DB2 Connect 用户减少要发送到数据库的查询数。
连接存储池(参见将连接存入存储池)降低了连接至数据库和从数据库断开连接的频率。 对于受 CGI 的局限性影响比较大的大型操作,参见 IBM Net.Data(参见Net.Data),WebSphere (参见IBM WebSphere)提供了与大型企业应用程序的非 CGI 连接。
IBM 为 HTTP (Web) 服务器提供了所有 DB2 Connect 产品的 OS/2 版、UNIX 版、Windows NT 版和 Windows 2000 版。DB2 Connect 企业版 提供了对 Apache 或 Lotus Domino Go Web 服务器的额外的支持, 它还可配合任何其他 Web 服务器(如“Microsoft Internet 信息服务器”或“Netscape 企业服务器”)使用。
如果正使用在 OS/390、AS/400、VM 和 VSE 系统上运行的 DB2 系列数据库, 则在 Web 服务器上 DB2 Connect 企业版是必须的。DB2 Connect 企业版将提供库和通信接口以使 Web 服务器可存取这些主机和 AS/400 平台。TCP/IP 或 SNA 可用来在 Web 服务器与 OS/390、AS/400、VM 或 VSE 上运行的数据库之间进行通信。
注意: | IBM Web 解决方案提供了在同一 CGI 脚本或 CGI 脚本中的同一事务内使用多个数据库的能力。 |
下面两节讨论了可用于存取 DB2 数据库的 CGI 应用程序的性能增强功能。 后面几节将探讨标准 CGI 的替代方法(如 Java)。
象在客户机/服务器环境中一样, Web 应用程序的一个重要考虑事项是尽量减少发生在 HTTP 服务器与后端数据库之间的通信量。此考虑事项在大量事务性处理中特别重要, 这种处理是大部分电子商务应用程序的核心。
推荐的方法是将存储过程中包括的程序设计和业务逻辑与 CGI 应用程序设计综合在一起。OS/2、UNIX 和 Windows 上的 DB2 通用数据库, 以及 OS/390、AS/400 和 VSE 上的 DB2 共享调用存储过程的同一参数约定。
与使用常规 CGI 时一样,Web 浏览器还将表格提交给 Web 服务器,CGI 脚本在该服务器上运行。但是, 不是将每个单独的 SQL 语句发送至 DB2 数据库,而是发送执行存储过程的请求。 此存储过程包括了许多 SQL 语句;如果不用存储过程,这些语句将要单独地运行。 存储过程降低了在 CGI 脚本和后端数据库之间流动的信息数。
存储过程的主要优点是减少了 HTTP 服务器与 DB2 数据库后端间的网络通信量。有关存储过程的详情, 参考 Application Development Guide 或“DB2 存储过程构建器”联机帮助。
建立 DB2 Connect 服务器至主机的连接需要计算资源和时间。 在这样的环境:数以千计的客户机通过 DB2 Connect 服务器频繁地连接至主机和从主机断开连接, 大部分处理时间都用在建立连接和卸下连接上了。
将 DB2 Connect 的连接放入存储池使这种环境中的性能有了显著的改进。DB2 Connect 在可用存储池中维护数据库的开放式连接。 客户机请求连接时,从此存储池中可以提供已准备好的连接。将连接存入存储池显著降低了通常用在打开和关闭这些连接的额外开销。
有关将连接存入存储池如何工作的详情,参见连接入池。
CGI 的许多缺点可通过放弃使用 CGI 而使用 Java 来克服。IBM 提供了 applet 和应用程序,允许您在 Web 事务的每一阶段用 Java 来替代 CGI。IBM 提供的解决方案允许使用混合的技术,这意味着可使用脚本解决方案(如 Net.Data 和带有 DB2 的 Microsoft Active Server Pages),或转而使用 Java 应用程序服务器(如 IBM WebSphere)提供的更加坚固的实现方案。
为 Java 程序员提供了两种“应用程序设计接口”(API)。第一个是 JDBC,它支持使用 Java 来开发数据已知的 Java Applet、 Java 应用程序和 Java servlet、 Java 服务器页 (JSP) 和企业 Java Bean (EJB)。JDBC 是调用层或方法调用 API。另一个 Java API 是 SQLJ。SQLJ 提供了在 Java 程序内指定 SQL 内联的能力。 DB2 可在 Web 事务的客户机方或服务器方同时使用这两种 API。
在客户机方,applet、数据已知的 applet 和应用程序是受支持的。在数据库方,Java 启用包括数据库对象(如用户定义函数)和存储过程。
对于 DB2 OS/390 版、DB2 VSE 版和 VM 版,以及 DB2 OS/400 版, 有两个不同的方法来部署 Java 应用程序。可使用 DB2 Connect 个人版提供的直接连接(使用 TCP/IP 或 SNA); 或选择通过 DB2 Connect 企业版服务器来进行,该服务器提供至主机或 AS/400 后端的连接。
在两种情况下,Web 上的用户不需要任何特殊的软件来存取数据库, 只需标准的 Web 浏览器即可。仅需要安装 DB2 Connect 服务器或任何工业标准 Web 服务器。如果 Web 服务器和 DB2 Connect 不在同一物理机器上,则需要在 Web 服务器上安装 DB2 客户机。
对于 DB2 OS/390 版,关键部件是在中间层服务器上运行的 DB2 Connect 企业版。该部件除连接至 DB2 OS/390 版、VSE 版和 VM 版或 AS/400 服务器之外, 还将提供 JDBC 服务器启用。客户机的 Web 浏览器也不需要任何特殊的软件。
IBM 提供了大批工具,用于开发 Java 应用程序和 applet。对于数据库连接, “DB2 开发人员版”提供了完整的工具箱,包含了“VisualAge for Java 专业人员版”、 “WebSphere 应用程序服务器”、 Net.Data 以及用于测试的“DB2 通用数据库”和 DB2 Connect。“IBM VisualAge for Java 企业版”还包含用于大规模的企业应用程序的开发工具。第三方工具(如 Borland JBuilder 或 Symantec Visual Cafe)也可以与 IBM 的数据库解决方案配合使用。
Net.Data 是“DB2 通用数据库”和 DB2 Connect 系列的一部分, 它是一组应用程序开发工具,被设计用来协助您创建和维护基于 Web 事务应用程序的。可使用 Net.Data 来存取和改变存储在 DB2 UDB OS/2 版、Windows NT 版、Windows 2000 版、UNIX 版、OS/390 版、 VM 版、VSE 版和 OS/400 版上的数据。使用 Net.Data 创建的应用程序存储在 Web 服务器上, 且可通过 Web 浏览器来激活。
Net.Data 使用宏或模板以使基本了解 HTML 和 SQL 的用户可构建非常复杂的 Web 应用程序。宏是文本文件,可以由 Java、Java Scripts、HTML 标记和内置函数组成。然后, 这些宏可用来生成具有预定义布局、变量和函数的动态 Web 页。
Net.Data 的主要特征(特别是对于 DB2)是不需要任何客户机部署。 此实现方案中的客户机仅仅是 Web 浏览器。
Net.Data 处理器与“DB2 通用数据库”一起安装在 Windows NT、Windows 2000、OS/2 或 UNIX 工作站以及 Web 服务器上。 连接至 DB2 OS/390、DB2 VSE 版和 VM 版,以及 400 版时, Net.Data 的所有基础结构都在 DB2 Connect 服务器和 Web 服务器上部署。
IBM WebSphere 提供了可能比使用传统的 CGI 程序设计更完整的电子商务解决方案。 WebSphere 应用程序服务器不仅执行 CGI 的各种可能的脚本, 而且允许您通过 Web 并使用 servlet、Active Server Pages 和企业 JavaBean 提供复杂的、高端的服务。借助 WebSphere,您可:
WebSphere 不是单个产品,而是面向三个不同目标市场的三个产品的系列。 WebSphere 解决方案的中心部分是 WebSphere 应用程序服务器。
WebSphere 应用程序服务器提供用于三种对象的环境。 一种是 Java 服务器页,它类似于 Active Server Page。第二种由 Java servlet 组成,而第三种是企业 JavaBean。企业 JavaBean 是新出现的部署大规模的、坚固的企业类应用程序的标准。
此外,Data Access JavaBean 提供非常复杂的数据库函数, 它们是专门为 DB2 定制的。DB2 还可通过 JDBC 和 SQLJ 直接存取。而且, COM+ 和 CORBA 都是受支持的。
可在与 Web 服务器和“DB2 通用数据库”相同的平台上部署 WebSphere 应用程序。 对于 DB2 OS/390 版、VM 版、VSE 版和 AS/400 版,WebSphere 是在与 DB2 Connect 企业版相同的平台上部署的。
有多个 WebSphere 解决方案,以及 Web Studio 和 WebSphere Performance Pack。三个 WebSphere 版本为: