Sun Java System Application Server 为 Java EE 应用程序和 Java Web 服务的开发和部署提供了 Java EE 兼容的服务器。主要功能包括可伸缩的事务管理、容器管理持久性运行时、优秀的 Web 服务、群集、高可用性、安全性以及集成功能。本节包括以下主题:
每个管理域都与标识该域功能的用法配置文件关联。Application Server 提供了以下配置文件:
开发者:如果在开发环境中运行域,而且应用程序不需要 NSS 密钥库或群集功能(如负载平衡和会话持久性),请使用此配置文件。
群集:如果需要创建群集但不需要高可用性数据库 (high-availability database, HADB) 或 NSS 密钥库,请使用此配置文件。
企业:如果需要 HADB 和 NSS,请使用此配置文件。仅当单独安装 HADB 和 NSS 或者将 Application Server 作为 Java Enterprise System (JES) 的一部分安装时,才能够使用此配置文件。有关如何将企业配置文件与 Application Server 9.1 一起使用的信息,请参见使用企业配置文件
只有企业配置文件才支持从 Application Server 8.x Enterprise Edition 升级。如果要从 Application Server 8.x Platform Edition 升级,请使用开发者配置文件。有关升级过程的更多信息,请参见《Sun Java System Application Server 9.1 Update 1 Upgrade and Migration Guide》中的第 2 章 “Upgrading an Application Server Installation”。
域为用户应用程序提供了预配置的运行时。用法配置文件便于区分 Application Server 二进制文件和运行时配置。通过配置文件,可以使用 Application Server 的相同安装,利用适合特定需要的配置文件创建不同的域。例如,某个开发者可能希望使用 Application Server 了解最新的 Java EE 规范。此开发者无需严格的安全设置。另一个希望在生产环境中部署应用程序的用户需要本身安全的环境。
表 1–1 列出了每个配置文件提供的功能:
表 1–1 每个配置文件提供的功能
功能 |
开发者配置文件 |
群集配置文件 |
企业配置文件 |
---|---|---|---|
安全存储 |
JKS |
JKS |
NSS |
群集/独立实例 |
不可用 |
可用 |
可用 |
安全管理器 |
已禁用 |
已启用 |
已启用 |
HADB |
不可用 |
不可用 |
可用 |
负载平衡 |
不可用 |
可用 |
可用 |
节点代理 |
不可用 |
可用 |
可用 |
要使用企业配置文件,请执行以下任务:
分别下载并安装 NSS 和 HADB。
修改 asenv.conf 文件,如下所示:
AS_HADB 指向在其中安装了 HADB 的文件夹。
AS_NSS 指向提供 NSS 共享对象的文件夹。
AS_NSS_BIN 指向存储 NSS 二进制文件(如 certutil)的文件夹。
可以使用 start-domain 命令将 Application Server 8.x 或 9.0 域升级到 Application Server 9.1。使用以下方法之一升级域:
执行 Application Server 二进制文件的就地 (in-place) 升级。
在指向 Application Server 早期版本的域上运行 start-domain 时,asadmin 将调用 asupgrade 命令,自动地就地 (in-place) 升级域。
执行 Application Server 二进制文件的并行 (side-by-side) 升级。
在早期安装的域上运行 start-domain。asupgrade 命令将域升级到最新 Application Server 安装的域根目录。在此方案中,在 asenv.conf 的 AS_DEF_DOMAINS_PATH 中定义升级的目标目录。
Application Server 是支持从 Web 发布到企业规模事务处理等多项服务,同时使开发者能够建立基于 JavaServer Pages (JSPTM)、Java Servlets 和 Enterprise JavaBeansTM (EJBTM) 技术的应用程序的平台。
Application Server 9.1 群集和企业配置文件提供了高级群集和故障转移技术。这些功能可以帮助您运行可伸缩的且具有高可用性的 Java EE 应用程序。
群集-群集是一组应用服务器实例,它们作为一个逻辑实体一起工作。群集中的每个 Application Server 实例都具有相同的配置,并被部署了相同的应用程序。
通过将 Application Server 实例添加到群集来提高系统性能,从而实现了水平缩放。可以在不中断服务的情况下将 Application Server 实例添加到群集。HTTP、RMI/IIOP(通过基于 Internet 的 ORB 间协议的远程方法调用)和 JMS(Java(TM) 消息服务) 负载平衡系统会将请求分发到群集中正常运行的 Application Server 实例中。
高可用性-可用性允许对群集中的 Application Server 实例进行故障转移保护。一个 Application Server 实例出现故障时,其他 Application Server 实例将接管指定给该故障服务器的会话。会话信息存储在高可用性数据库 (HADB) 中。HADB 支持 HTTP 会话和有状态会话 Bean 的持久性。
本节介绍了图 1–1,该图显示了 Application Server 高级体系结构。
容器-容器是一种运行时环境,它为 Java EE 组件提供安全性和事务管理等服务。图 1–1 显示了两种 Java EE 容器:Web 和 EJB。Web 组件(如 JSP 页面和 Servlet)在 Web 容器内运行。企业 Bean(EJB 技术的组件)在 EJB 容器内运行。
客户机访问-在运行时,浏览器客户机通过 HTTP(在 Internet 中使用的协议)与 Web 服务器进行通信来访问 Web 应用程序。HTTPS 协议用于需要安全通信的应用程序。Enterprise Bean 客户机通过 IIOP 或 IIOP/SSL(安全)协议与对象请求代理 (Object Request Broker, ORB) 进行通信。Application Server 具有分别用于 HTTP 协议、HTTPS 协议、IIOP 协议和 IIOP/SSL 协议的侦听器。每个侦听器独占使用特定的端口号。
Web 服务-在 Java EE 平台上,可以部署一个 Web 应用程序,该应用程序提供由 Java API for XML-Based RPC ( JAX-RPC) 实现的 Web 服务。Java EE 应用程序或组件还可以是其他 Web 服务的客户机。应用程序通过用于 XML 注册表的 Java API (JAXR) 访问 XML 注册表。
用于应用程序的服务-Java EE 平台旨在使容器为应用程序提供服务。图 1–1 显示了以下服务:
Java EE 平台使应用程序能够访问应用服务器之外的系统。应用程序通过称为资源的对象连接到这些系统。管理员的职责之一是资源配置。Java EE 平台使得可以通过以下 API 和组件访问外部系统:
JDBC-数据库管理系统 (Database Management System, DBMS) 提供了用于存储、组织和检索数据的工具。大多数商业应用程序将数据存储在关系数据库中,这些应用程序通过 JDBC API 访问关系数据库。由于数据库中的信息保存在磁盘上并在应用程序结束之后仍然存在,因此通常将数据库中的信息称为持久性信息。Application Server 包包括 Java DB 数据库。
消息传送-消息传送是软件组件或应用程序之间的一种通信方法。消息传送客户机可以向任何其他客户机发送消息,也可以从任何其他客户机接收消息。应用程序通过 Java 消息传送服务 (Java Messaging Service, JMS) API 访问消息传送提供者。Application Server 包含一个 JMS 提供者。
连接器-Java EE 连接器体系结构使 Java EE 应用程序和现有企业信息系统 (Enterprise Information Systems, EIS) 之间实现了集成。应用程序通过称为连接器或资源适配器的可移植 Java EE 组件访问 EIS。
JavaMail-应用程序通过 JavaMail API 连接到 SMTP(简单邮件传输协议)服务器以发送和接收电子邮件。
服务器管理-图 1-1 的右下角显示了由 Application Server 管理员执行的一些任务。例如,管理员部署(安装)应用程序并监视服务器的性能。这些任务通过 Application Server 提供的管理工具来执行。
Application Server 提供了以下管理工具和 API:
管理控制台是一种基于浏览器的工具,具有易于浏览的界面和联机帮助。要使用管理控制台,管理服务器(也称为域管理服务器或 DAS)必须处于运行状态。要启动管理控制台,必须知道管理服务器的主机名和端口号。安装 Application Server 时,选择了服务器的端口号,或者使用了默认端口 4848。还指定了用户名和主密码。
要启动管理控制台,请在 Web 浏览器中键入以下内容:
http://hostname:port |
例如:
http://kindness.sun.com:4848 |
如果管理控制台在安装了 Application Server 的计算机上运行,请将 localhost 指定为主机名。
在 Windows 中,从“开始”菜单启动 Application Server 管理控制台。
安装程序将创建默认管理域(名为 domain1),并使用默认端口号 4848,还会创建一个与域管理服务器 (domain administration server, DAS) 分开的实例。安装之后,还可以创建其他管理域。每个域都有自己的域管理服务器,该服务器具有唯一的端口号。为管理控制台指定 URL(统一资源定位器)时,请确保使用要管理的域的端口号。
如果配置中包括远程服务器实例,请创建节点代理以便管理和简化远程服务器实例。节点代理负责创建、启动、停止和删除服务器实例。使用命令行界面 (command line interface, CLI) 命令可以设置节点代理。
asadmin 实用程序是 Sun Java System Application Server 的命令行界面。使用 asadmin 实用程序及其关联命令可以执行管理控制台所提供的相同管理任务集。Solaris 上的默认安装根目录是 /opt/SUNWappserver。
要启动 asadmin 实用程序,请转至 as-install/bin 目录并输入以下内容:
$ ./asadmin |
要列出 asadmin 中的可用命令,请使用:
asadmin> help |
也可以在 shell 的命令提示符下发出 asadmin 命令:
$ asadmin help |
要查看命令的语法和示例,请在命令名称后面键入 help。例如:
asadmin> help create-jdbc-resource |
给定命令的 asadmin help 信息将显示该命令的 UNIX 手册页。在《Sun Java System Application Server 9.1 Reference Manual》中,这些手册页还以 HTML 和 PDF 格式提供。
在 Java 2, Platform Standard Edition 5.0 中,引入了 Java 监视和管理控制台 (JConsole)。JConsole 用于监视 Sun Java System Application Server。您可以使用 JConsole 的“远程”选项卡或“高级”选项卡来连接到 Application Server。
“远程”选项卡:标识用户名、密码、管理服务器主机和 JMS 端口号(默认为 8686),并选择“连接”。
“高级”选项卡:将 JMXServiceURL 标识为 service:jmx:rmi:///jndi/rmi://host:jms-port/jmxrmi,并选择“连接”。JMXServerURL 输出在 server.log 文件中,同时还在域创建命令的命令窗口中输出。
Application Server Management eXtension 是一个 API,公开 Application Server 的所有配置,并将 JMX 管理的 Bean 当作实现 AMX 接口的、易于使用的客户端动态代理进行监视。
有关使用 Application Server Management Extension 的更多信息,请参见《Sun Java System Application Server 9.1 Developer’s Guide》中的第 20 章 “Using the Application Server Management Extensions”。