简介
应用程序服务器(也称 app server)作为一种为不同位置、使用不同类型计算机的用 户提供信息和服务的方法,正得到越来越多人的青睐。通常,应用程序服务器位于数据库 或其他信息存储(即后端)与终端用户/客户(即客户机)的中间,从而形成一种“三层 架构”。本文讨论如何在一个使用基于 Sun Java Enterprise Edition(J2EE)规范的应 用程序服务器系统中,建立作为该系统后端的 IBM Cloudscape 或 Derby 数据库。在这 里描述的配置中,数据库管理系统(DBMS)也可能被称作 Resource Manager。
如今,大多数应用程序服务器都基于 J2EE 规范,但也有一些属于其他类型。基于 J2EE 的系统的流行起因于它们的非专有性。它们很快为开放源码和开放架构社区所采纳 。这些通用服务器继承了 Java “随处运行”的能力。由于 IBM Cloudscape 引擎(即 Apache Derby 引擎)也是以 Java 实现的,因而可以干净利落地进行集成,并且能不作 修改地在任何有 J2EE 服务器的地方运行。
如果您有应用程序服务器方面的经验,那么可以跳过接下来的段落。否则,还是应该 阅读一下这个段落,因为它简要地给出了应用程序服务器系统的概念,这有助于理解本文 的后续部分。为了理解这个主题,您可以把 J2EE 应用程序服务器想象成“运行”一个或 多个基于 Java 的应用程序的中间软件。它组合(捆绑)了支持应用程序和允许连接到网 络的用户安全地使用应用程序所需的不同技术。应用程序服务器管理中间层组件,这些组 件负责执行大部分重头任务。而客户层通常是使用 Web 浏览器与中间层“交谈”的人。 而在中间层的后面,受中间层保护的是一个业务系统,即后端,最近也被称作 Enterprise Information System (EIS)层。在应用程序服务器中运行的应用程序可以 使用很多种应用程序编程接口(API)来编写,最常见的有 Java(J2SE)例程、Java Server Page(JSP)和 Servlet。无论使用何种 API,应用程序都可以访问为应用程序服 务器环境定义的数据库。图 1 展示了一个描绘这三层和一些组件的简化视图。本文主要 关注中间层和 EIS 层。
图 1. 三层架构
Derby 的不同之处
大多数 J2EE 应用程序都需要存储数据,管理数据的最常见的方法是使用遵从 JDBC 规范的数据库。任何带 JDBC 驱动程序接口的数据库都可以与 J2EE 应用程序服务器集成 ,以创建 J2EE 术语中所谓的“Resource Manager”(RM)。Derby 引擎非常适合 Resource Manager 的角色。它被设计成在较大型系统中使用的关系数据库组件,这正是 常用于描述 Derby 的术语“嵌入式数据库”所指的意思。当在一个 J2EE 服务器中实现 (嵌入)时,它将成为该服务器中实现(部署)的应用程序可以利用的专用工具。
J2EE 服务器为网络通信和安全性提供支持,它们可以根据系统需求进行配置。Derby 引擎不提供这些功能,但是乐于利用服务器环境中的这些服务。很多数据库系统二进制文 件中的很大一部分代码都是支持 J2EE 系统中已经存在的系统安全和网络通信功能。 Derby 占用的内存很少,因为它的库没有包含这些代码。当 Derby 被嵌入到一个 J2EE 服务器中时,只需使整个服务器系统所占的内存增加 2 MB,就可以创建一个功能完备的 遵从 JDBC 的 Resource Manager 。