Java ES 组件分为不同的类型,如《Sun Java Enterprise System 5 技术概述》中所述。相应地,系统服务组件提供主要的 Java ES 基础结构服务,而服务质量组件用于增强这些系统服务。本文将这两种类型的 Java ES 组件统称为产品组件,可在 Java ES 安装程序内选择这些组件。
每个产品组件均依赖于一个或多个称为 Java ES 共享组件的本地共享库。共享组件会在产品组件安装期间由 Java ES 安装程序自动安装,具体安装哪些共享组件视所安装的产品组件而定。它们并不是在部署 Java ES 产品组件期间所逐个选择、安装或配置的。
为什么对 Java ES 使用区域?集中论述了 Java ES 产品组件对区域的使用:即,可在 Java ES 安装程序中明确选择并可在不同区域中安装和配置以实现所需的部署体系结构和功能的那些组件。但是,产品组件所依赖的共享组件对于如何在多区域环境中部署 Java ES 方面施加了许多限制。关于 Java ES 共享组件和区域有两个问题:
测试和支持 Java ES 共享组件与 Java ES 产品组件之间的大量(30 个左右)复杂交互具有一定的困难,它要求单一操作系统实例中的所有共享组件均同步为同一个 Java ES 版本。换言之,安装在非区域环境或 Solaris 10 环境内任一区域中的所有 Java ES 共享组件必须属于同一个版本。这一要求对于如何在多区域环境中使用 Java ES 方面施加了一定的限制。
这一同步要求包含以下含义:
不同版本的 Java ES 共享组件只能驻留在不同的区域中。例如,您可在一个区域中安装 Java ES 发行版本 4 共享组件,而在另外一个区域中安装 Java ES 发行版本 5 共享组件,但不能将这二者合并到同一个区域中。
如果升级了区域中的任何共享组件或新引入了更高版本的任何共享组件,则还要必须同时升级该区域中的所有其他共享组件。(共享组件必须向后兼容,所以发行版本 4 产品组件与发行版本 5 共享组件可以协同工作。)例如,假定在驻留有一个或多个发行版本 4 产品组件的区域中安装一个发行版本 5 产品组件。由于发行版本 5 产品组件需要一定数量的发行版本 5 共享组件,所以同步要求意味着必须在安装发行版本 5 产品组件的同时将驻留在该区域中的所有发行版本 4 共享组件均升级到发行版本 5。即使要安装的发行版本 5 产品组件需要的共享组件与事先安装在该区域中的那些共享组件不同,也要这样做。
在全局区域中安装共享组件并从中向外传播时(参见Java ES 传播策略),需特别注意使所有区域中的共享组件保持同步。否则,可能会出现早期版本的共享组件与已从全局区域传播过来的发行版本 5 共享组件在非全局区域中并存的情况。(特别注意通常表示共享组件生命周期管理只在全局区域中进行。有关更多信息,参见表 A–2 和共享组件特殊案例。)
共享组件同步要求对 Java ES 安装程序在多区域环境中的行为施加了限制(有关更多信息,参见Java ES 安装程序中的区域支持),还会对在多区域环境中安装和升级 Java ES 产品组件的过程产生影响。
影响在多区域环境中使用 Java ES 的另一个问题是,由于稀疏根区域中存在只读文件系统,因而许多共享组件都无法安装在稀疏根区域中。因此,必须将基目录为 /usr(默认情况下由全局区域共享的目录)的那些共享组件安装在全局区域中,以便能够在稀疏根区域中使用。
许多 Java ES 共享组件不能安装在稀疏根区域中意味着:要将依赖于此类共享组件的产品组件成功安装到稀疏根区域中,必须首先将这些共享组件安装到全局区域中然后再传播到非全局区域。
为什么对 Java ES 使用区域?中针对在多区域环境中使用 Java ES 所论述的一些目标及其必然会涉及的使用方案会利用全局区域的传播功能来简化 Java ES 产品组件的生命周期管理。例如,此类使用方案会要求 Java ES 产品组件的生命周期管理由全局管理员在全局区域中执行,而这些组件的配置和运行时管理则由区域管理员在非全局区域中执行。
换言之,产品组件将在全局区域中安装和升级,而实例将在非全局区域中配置和运行。该使用方案将集中式生命周期管理的优点与非全局区域所提供的隔离和安全性相结合。
但是,此方案取决于每个产品组件能否在全局区域中安装而在非全局区域中配置和运行。这种分离取决于如何实现每个产品组件的配置、在何处存储配置和动态应用程序数据、如何通过执行二进制文件查找配置数据以及如何执行升级。例如,分离可能取决于安装前或安装后脚本或者升级前或升级后脚本所要完成的任务:它们是启动或停止组件实例、设置指向配置数据的链接,或是执行淡化生命周期管理与配置管理之间差异的其他任务。
这种分离还取决于配置是在完全根区域还是在稀疏根区域中执行。例如,如果产品组件的配置脚本向稀疏根区域中的只读文件系统(如 /usr)写入内容,或如果将非默认文件系统(如 /opt)与稀疏根区域共享,组件的配置可能会失败。
几乎所有 Java ES 产品组件都安装在 /opt(默认情况下,它在稀疏根区域中是可写的)之下。有关更多信息,参见《适用于 UNIX 的 Sun Java Enterprise System 5 安装参考》
目前,在全局区域与非全局区域之间,尚未建立使 Java ES 产品组件(约 20 个)中的任一组件支持分离生命周期管理和配置/运行时管理的功能。不同产品组件采用的配置和升级方法不同。考虑到这种情况,目前尚不支持 Java ES 产品组件(Message Queue 除外)的传播。有关更多信息,参见Java ES 传播策略。