内容


WebSphere Application Server V7 的系统管理,第 1 部分

管理增强功能概述

Comments

系列内容:

此内容是该系列 # 部分中的第 # 部分: WebSphere Application Server V7 的系统管理,第 1 部分

敬请期待该系列的后续内容。

此内容是该系列的一部分:WebSphere Application Server V7 的系统管理,第 1 部分

敬请期待该系列的后续内容。

引言

IBM WebSphere Application Server V7 建立在可靠的 V6 实现之上,并具有新功能和增强的功能,包括系统管理方面的许多新功能和增强功能。WebSphere Application Server 管理基于最初在 V5 中采用并在后续版本中得到增强的 JMX 标准。V7 中的系统管理功能集的主要重点领域包括易管理性、可扩展性和管理自动化。本系列文章提供了 WebSphere Application Server V7 中的系统管理增强功能的全面概述。这第一篇文章提供 V7 中的主要新系统管理功能的概述。后续文章将进一步研究各个特定功能的详细信息。

这些文章假设读者熟悉 WebSphere Application Server 系统管理基础结构,并将重点放在 WebSphere 拓扑方面。有关详细信息,请参阅参考资料

本文提供以下系统管理功能的概述:

管理代理

如果您使用 WebSphere Application Server(“基本”版本)或 WebSphere Application Server - Express 直至 Version 6.1,您也许熟悉独立应用程序服务器的概念。作为自包含的实体,独立应用程序服务器提供了一个平台,在此平台上可以在隔离环境中运行应用程序。独立应用程序服务器还包含用于管理和配置服务器的所有必需管理服务。

这种独立模型虽然非常有用,但是在可管理性方面也带来了一组挑战。第一个挑战就是缺乏完整的生命周期管理功能。虽然用户可以远程登录应用程序服务器以管理应用程序或配置服务器,但是他们无法远程停止和启动服务器。其次,在同一计算机上运行多个独立应用程序服务器的用户没有办法将这些应用程序一起进行管理(并且他们可能不需要 WebSphere Application Server Network Deployment 所提供的集中管理的拓扑)。此外,多个独立服务器带来了每个服务器中的重复管理服务开销,从而增加了内存需要以及初始化时间。

WebSphere Application Server V7 引入了新的可选管理服务器,称为管理代理,以通过以下方式处理此类挑战:

  • 多个独立应用程序服务器可以向单个管理代理注册;一经注册,即可通过单个管理代理监视和控制应用程序服务器。
  • 管理代理成为了用于管理同一计算机上的多个独立应用程序服务器的中心入口点。如果用户管理的拓扑包含单台计算机上的大量独立应用程序服务器,则这种方法是极为重要的。
  • 所注册的服务器的管理服务被合并到管理代理中,从而减少了以前的重复服务的内存占用空间。
  • 管理代理执行的管理功能在所注册的应用程序服务器之间保持隔离,从而使得用户能够针对所管理的服务器集合中的特定服务器执行操作。

管理代理旨在作为补充 WebSphere Application Server 基本拓扑的选项,其中的独立应用程序服务器继续为应用程序请求提供服务。只有服务器中的管理服务才合并到管理代理中。对于每个向管理代理注册的 WebSphere Application Server 基本概要,将在管理代理中创建一个管理子系统,以表示该概要的新管理入口点。

图 1. 管理代理
图 1. 管理代理
图 1. 管理代理

为了管理服务器,管理员可以连接到管理代理中的管理子系统,或者与以前一样连接到 WebSphere Application Server 基本概要中的应用程序服务器。在后一种情况下,所注册的应用程序服务器将管理操作请求转发到管理代理。

与 WebSphere Application Server Network Deployment 单元中的节点不一样,向管理代理注册的 WebSphere Application Server 基本概要的配置存储库没有联合到主存储库中。管理代理中的管理服务直接修改各个所注册的基本概要的配置。这还意味着管理代理只能管理运行于同一台计算机上的 WebSphere Application Server 基本概要。

灵活的管理

WebSphere Application Server V7 引入了称为灵活的管理的新管理风格,旨在促进大量 WebSphere Application Server 基本版本和可能在地理位置上分散的 Network Deployment 拓扑的管理。这个新的管理模型引入了用于调用管理操作的异步作业排队机制,旨在对现有的 Network Deployment 和基本版本服务器拓扑形成补充。

在 WebSphere Application Server Network Deployment 拓扑中,单个部署管理器服务器是它所管理的一组 WebSphere Application Server 节点的管理入口点。部署管理器维护一个主配置存储库,其中包含所有托管节点的配置信息。配置更改只能在主配置存储库中进行,然后与托管节点进行同步。此模型依赖部署管理器与其托管节点之间的紧密耦合的可靠通信链路。当 Network Deployment 拓扑扩展到具有大量跨越遥远的地理位置和网络的节点时,这样的通信模型可能会带来挑战。

V7 中引入的灵活管理通过引入作业管理器解决了这些可扩展性需求。单个作业管理器可以管理大量作为托管节点向其注册的 WebSphere Application Server 基本版本和 Network Deployment 拓扑。在此模型中,与直接针对独立服务器和部署管理器调用管理操作不同,而是将这些操作作为管理作业提交给作业管理器。然后托管节点按预定义的间隔获取这些管理作业。在 V7 中,作业管理器支持将服务器、集群和应用程序的配置和控制(启动/停止)操作以及执行 wsadmin 脚本作为管理任务。

通过指定作业激活或过期时间、重复执行模式、作业完成时的电子邮件通知等等,可以对作业提交过程进行自定义。

图 2. 灵活的管理
图 2. 灵活的管理
图 2. 灵活的管理

这种新的灵活管理模型提供了许多优点:

  • 作业管理器旨在对 Network Deployment 和基本版本拓扑形成补充。不需要对现有的节点进行重新配置。单个作业管理器可以管理数百个节点,并且与 Network Deployment 拓扑中由部署管理器拥有托管节点不同,给定的节点可以由多个作业管理器管理。
  • 作业管理器管理的拓扑保持它们的自主性,包括它们的安全配置,从而可以使用现有的管理流程直接对其进行管理,例如脚本或管理控制台。
  • 这种模型支持跨多个定义为一个组的托管节点执行协同管理操作。
  • 异步作业提交模型可以促进地理上分散并且只能通过低带宽、高延迟网络进行访问的节点的管理。

业务级应用程序

作为应用程序服务器平台,WebSphere Application Server 可以促进应用程序的部署、管理和操作支持。在 WebSphere Application Server 中,企业应用程序是通过安装单个 Java EE EAR 文件来创建的配置构件。因此,WebSphere Application Server 中的应用程序定义与 Java™ EE 编程和打包模型具有非常密切的关系。在某些情况下,Java EE 包与企业应用程序定义之间的这种一对一关系可能还不足够。提供特定业务用途的应用程序通常可能包括许多相关的包,包括 Java EE EAR 文件和 Java EE 组件使用的库 JAR 文件。WebSphere Application Server V7 引入了一个称为业务级应用程序的新概念,用于独立于打包或编程模型管理应用程序构件。

业务级应用程序(business-level application,BLA)是一个应用程序管理模型,旨在捕获对业务有意义的整个应用程序定义。BLA 体系结构定义了使用应用程序内容(物理二进制)来运行应用程序业务逻辑的应用程序组合。它不表示或包含应用程序二进制,因此不强制特定的打包或编程模型。它旨在提供应用程序二进制管理与要在特定目标环境中运行的应用程序内容配置之间的清楚分离。图 3 显示了一个示例 BLA 组合。

图 3. 业务级应用程序组合
图 3. 业务级应用程序组合
图 3. 业务级应用程序组合

在 WebSphere Application Server V7 中,BLA 组合可以包括一个或多个 Java EE EAR 文件和 Java EE 应用程序所依赖的共享库。BLA 定义为其构成部分提供了操作语义。例如,对某个 BLA 调用启动操作将导致启动该 BLA 中定义的所有企业应用程序和共享库。此外,BLA 体系结构支持按引用的递归组合,从而促进 BLA 和各个所部署构件的层次结构组装。此机制支持为特定的业务用途而定义某个 BLA,同时允许将其完整地包括在许多其他组合中,以便服务于更广泛的用途。

BLA 定义将应用程序二进制与它们在特定部署实例中的配置分离,从而促进应用程序二进制跨多个应用程序定义的重用。可以多次配置单个 EAR 文件或库 JAR,使其成为一个或多个 BLA 的一部分。

通过其可扩展的部署模型,BLA 体系结构提供了对 WebSphere 应用程序部署的重要增强:共享库管理。WebSphere Application Server 中的企业应用程序通常依赖由多个应用程序共享的外部实用工具 JAR。早期版本的 WebSphere Application Server 没有包括对部署和管理这些共享库存档的支持。用户需要将库包传输到 WebSphere 节点,并在那里由该节点上运行的应用程序使用。随着 BLA 的出现,WebSphere Application Server 就像管理 Java EE 应用程序一样管理和分发共享库 JAR,从而极大地减少了管理员必须在 WebSphere 应用程序的上下文中独立地管理的构件数量。

基于属性的配置

从 WebSphere Application Server V5 开始,WebSphere 配置参数存储在一组配置文档中,其中大部分为 XML 格式。这些文档的内容是非常复杂的配置对象,可以使用管理工具对其进行操作,例如 wsadmin 脚本或管理控制台。管理员通常更喜欢使用 wsadmin 脚本将管理任务自动化,从而涉及到编写和测试复杂的 Jacl 或 Jython 脚本片段。虽然 wsadmin 脚本接口提供了用于 WebSphere 管理的全面功能集,但是企业中通常只有少数管理员精通该接口。因此,管理员通常构建接受较简单格式输入的较高级框架,以便这些框架的用户可以避免高深的 wsadmin 脚本组件。此配置模型的一个常见示例是使用属性文件。WebSphere Application Server 管理员通常编写复杂的 wsadmin 脚本,这些脚本从属性文件读取输入参数,或者在属性文件中输出其 WebSphere 配置。开发人员或其他管理员发现,创建、读取或操作这些属性文件,然后又可以将这些属性文件提供给基于 wsadmin 的自动化框架,这样要容易得多。

WebSphere Application Server V7 提供了称为基于属性的配置的重要管理功能,可以简化将管理自动化的体验。使用此功能,管理员可以将 WebSphere 配置提取到属性文件中,属性文件以简单的 <property=value> 格式列出配置参数。所提取的配置的简单格式使得读取和操作它变得非常容易。还可以将属性文件反馈到 WebSphere 管理中,以便将其内容应用于现有的配置。

基于属性的配置功能是通过一组可以通过 wsadmin 脚本执行的管理命令来公开的。基于属性的配置的主要功能包括:

  • 能够创建或删除配置构件,以及读取或操作现有的配置。
  • 预览模式,藉此生成报告,指示如何将属性文件中的数据应用于 WebSphere 配置而不实际更改配置。
  • 变量支持,允许将属性文件中的值定义为可在应用属性文件时进行解析的变量,从而促进给定属性文件跨多个配置的重用。

Java EE 5 部署

WebSphere Application Server V7 是与 Java EE 5 兼容的应用程序服务器。它支持 Java EE 5 应用程序构件以及符合早期版本的 Java EE 规范的应用程序的部署和管理。通过引入各种规范中的注释支持,包括 EJB 3.0 和 Servlet 2.5,Java EE 5 极大地简化了应用程序开发和部署模型。它还使得基于 XML 的部署描述符成为应用程序包的可选组件。WebSphere Application Server 管理接口,例如管理控制台、脚本和基于 JMX 的 Java API 集,已在 WebSphere Application Server V7 中进行了增强,现在可以接受 Java EE 5 包以进行部署。

  • 在 Java EE 应用程序部署期间,管理员通常提供有关 Java EE 应用程序部署描述符中定义的组件和组件引用的特定于供应商的信息。在 WebSphere Application Server 中,此信息通常称为应用程序绑定。在 Java EE 5 以前的 Java 企业应用程序中,这些特定于 WebSphere 的绑定存储在应用程序 EAR 文件中的 .xmi 文件中,需要 IBM 提供的程序才能处理这些 .xmi 文件。从 WebSphere Application Server V7 开始,Java EE 5 应用程序绑定存储在 XML 中,这些绑定文档的模式位于 $WAS_HOME/properties/schemas 目录(WAS_HOME 是包含 WebSphere 产品文件的库)。因此,管理员可以使用 WebSphere 提供的程序(如管理控制台)或首选的 XML 编辑器,生成并打包 Java EE 5 应用程序的应用程序绑定文档。

  • WebSphere Application Server V7 运行时已得到增强,可以为 Java EE 5 应用程序绑定中的各个配置参数选择智能缺省值,从而使它们在部署过程中成为可选的。例如,如果在应用程序部署期间没有为某个 Enterprise JavaBean™ (EJB) Home 指定 Java Naming and Directory Interface (JNDI) 名称,则应用程序服务器将在启动 EJB 应用程序时选择缺省 JNDI 名称。选择这样的缺省值极大地减少了管理员必须在安装应用程序时提供的信息量。

  • 对于 EJB 3.0 应用程序,在部署期间或之前生成 EJB 客户端存根不是必需的。所需的客户端存根将在应用程序客户端调用 EJB 方法时动态地生成和传播。

管理控制台中细粒度的授权

WebSphere Application Server 支持角色定义,这些角色授权管理员执行某些管理操作。WebSphere Application Server V6.1 引入了细粒度的管理授权模型,藉此可以授权管理员仅管理 WebSphere Application Server 拓扑的一部分,例如一个或多个服务器、集群、应用程序或节点。这种细粒度的管理功能是通过 wasdmin 脚本接口公开的。

在 WebSphere Application Server V7 中,管理控制台已得到增强以适应细粒度的管理授权。根据登录到控制台的用户的权限,将显示不同的 UI 面板、操作按钮和链接。例如,如果管理员没有获得启动或停止应用程序服务器的操作员角色授权,则启动和停止按钮不会在控制台上的管理员应用程序服务器视图中显示。

脚本增强功能

WebSphere 管理的一个重要方面是自动化管理操作。Version 5 中引入的 wsadmin 脚本接口为使用 Jacl 和 Jython 脚本语言来管理 WebSphere 拓扑提供了一个广泛的自动化框架。这两种脚本语言在 Version 7 中均受到支持。在 Version 7 中,wsadmin 脚本提供了许多主要集中于易用性的增强功能。其中一个这样的增强功能就是引入了脚本库

要有效地使用通过 wsadmin 脚本提供的丰富功能集,还有许多的内容有待学习。几篇有关 WebSphere Application Server 脚本的文章提供了许多有关 wsadmin 功能集的信息。但是,管理员通常更喜欢使用现有的脚本,这些脚本或者示范了最佳实践,或者可以在各种 WebSphere 配置中工作。WebSphere Application Server V7 附带了用于自动化常见管理操作的广泛 Jython 脚本库。该库包括用于以下操作的脚本:

  • 服务器管理:创建/删除/启动/停止服务器或集群,操作常见服务器配置属性。
  • 安全配置:创建和管理用户和组,管理授权组。
  • 资源配置:创建和管理 JDBC、J2C、JMS 提供者以及资源。
  • 应用程序管理:安装和管理 Java EE 应用程序以及业务级应用程序。

您可以按原样使用这些脚本,或者可以将脚本片段复制到现有的自动化框架中。

混合版本管理

在 WebSphere Application Server V7 Network Deployment 拓扑中,部署管理器可以管理 WebSphere Application Server V7、V6.x 和 V5.1.x 节点。混合版本管理功能是在 Version 6 中引入的,现已得到增强以适应混合版本 WebSphere 拓扑中的 Version 7 节点。此外,Version 7 中的部署管理器还可以管理使用 Version 6.1 功能包来增强的节点。这支持一次一个节点地升级 WebSphere Application Server 单元,从而最小化对运行在单元中其他节点上的应用程序的影响。图 4 显示了管理具有不同版本和功能的节点的 WebSphere 单元。

图 4. 混合版本管理
图 4.  混合版本管理
图 4. 混合版本管理

混合版本管理从将部署管理器概要迁移到 Version 7 开始。部署管理器必须始终是迁移到 Version 7 的第一个概要,并且它必须始终在单元中的任何节点中处于最高版本、修复和功能级别,以便能够管理单元中的所有节点而不管各个节点的版本级别如何。将部署管理器升级到 Version 7 以后,单元中的所有节点都可以保持不变,仍处于升级部署管理器之前它们所支持的任何版本级别。可以在升级部署管理器以后的任何时间将各个节点升级到 Version 7。

诸如管理控制台或 wasdmin 脚本等管理工具已得到增强,仅公开适合于给定版本的 WebSphere 节点的配置参数。这种 Adapt-A-View 管理模型是在 Version 6 中引入的,并经过了增强以适应 Version 7 配置。应用程序服务器集群可以包含运行任何受支持的 WebSphere Application Server 版本的成员。此外,还准备了许多验证检查,以确保您不会意外地配置应用程序服务器,或在无法运行应用程序的环境中部署应用程序。例如,不能在运行 Version 7 以前的 WebSphere Application Server 版本的服务器或集群上安装 Java EE 5 应用程序。如果管理员尝试这样做,则会引发错误。反过来,也不能将运行 WebSphere Application Server V6 或 V5 的新成员添加到已经安装了 Java EE 5 应用程序的集群。

不允许将 Version 5 节点添加到 Version 6 部署管理器的现有混合版本管理限制也适用于 Version 7 部署管理器。

运行时预置

WebSphere Application Server 用户始终在寻求通过缩短服务器启动时间以及减少应用程序使用的内存来更高效地运行应用程序服务器的方法。在 Version 6.1 中,应用程序服务器经过了重新设计,被划分为一组运行时组件,这些组件合起来构成应用程序服务器。WebSphere Application Server V7 增强了服务器运行时组件化模型,通过允许在应用程序服务器启动时仅启动运行时组件的子集,从而实现动态运行时预置。应用程序服务器需要的运行时组件列表主要受到运行在该服务器上的应用程序的影响。

WebSphere Application Server V7 中的应用程序部署过程已得到增强,可以记录应用程序组件与运行时组件之间的依赖关系。当应用程序服务器启动时,它搜集该服务器上安装的任何应用程序需要的所有运行时组件,并且仅在需要时才启动那些组件。例如,如果给定的应用程序服务器上没有任何运行的应用程序包含 EJB 模块,则不会启动 EJB 容器服务。这种动态运行时预置模型可以帮助改进启动时间以及应用程序服务器的内存使用。

WebSphere Application Server V7 中的动态预置功能在缺省情况下是禁用的。要启用该功能,可以在应用程序服务器详细信息视图中选中 Start components as needed 复选框。

总结

WebSphere Application Server V7 将价值建立在早期版本的 WebSphere Application Server 中引入并增强的基于 JMX 的基础之上。本文提供了此新版本引入的新系统管理功能的概述。本系列中的后续文章将深入探索各个系统管理功能。例如,后续文章将介绍:

  • 管理代理和灵活的管理拓扑。
  • 如何设置和管理新的管理拓扑。
  • 业务级应用程序。
  • 基于属性的配置。
  • wsadmin 脚本增强功能。

相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere
ArticleID=360066
ArticleTitle=WebSphere Application Server V7 的系统管理,第 1 部分: 管理增强功能概述
publish-date=12242008