求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
  
 
 
 
WebSphere Application Server for z/OS 进程模型概述
 

2010-09-07 作者:Rohith Ashok 来源:IBM

 
本文内容包括:
本文描述了 IBM® WebSphere® Application Server for z/OS® 进程模型。其中详细描述了它与非 z/OS WebSphere Application Server 进程模型之间的区别,以及如何自定义 WebSphere z/OS 进程模型才能最好地适合客户环境。

引言

WebSphere Application Server for z/OS(以下称为 WebSphere z/OS)包含一个 WebSphere Application Server 产品系列所特有的进程模型。此进程模型使 WebSphere Application Server(以下称为 Application Server)可以利用 z/OS 特有的许多服务,并在 z/OS 平台上提供客户期望的服务质量(Quality of Service,QoS)。本概述描述 z/OS 进程模型和其他 WebSphere Application 服务器平台之间的区别。同时介绍如何管理 WebSphere z/OS 进程模型。本文假设您对 z/OS 操作系统有一定的了解。

z/OS 和分布式 WebSphere 概述

非 z/OS 平台(以下称为分布式平台)是在单一的进程模型上构建的。这意味着整个服务器在单一的 Java 虚拟机 (JVM) 进程上运行。然而,WebSphere z/OS 是使用多个 JVM 联合构建的,在不同的操作系统进程上执行的每个 JVM 代表一个服务器进程。

联合中的每个 JVM 都是不相同的,因为只有一个 JVM 会得到优先考虑并拥有服务器的外部端点。此 JVM 称为控制器(控制器区域)。其他 JVM 是 Servant(Servant 区域)或者 Adjunct(控制区域 Adjunct 进程)。Adjunct 进程是 Servant 进程的一个特例。客户安装的应用程序只在 Servant 区域中执行。平台消息传递组件驻留在 Adjunct 进程中。图 1 显示了一个示例服务器及其关联的 JVM。

图 1. WebSphere Application Server for z/OS V6.0.1

图 1. WebSphere Application Server for z/OS V6.0.1

各个区域的含义及用途

在图 1 所示的模型中,除了版本 6 中的 JFAP 和 JCAI 外,所有入站和出站通信均发生在控制器进程中。因此,客户端请求首先到达控制器进程,然后在 z/OS Workload Manager (zWLM) 操作系统组件的帮助下发送到潜在的许多 Servant 进程之一。Servant 进程的数量是由 zWLM 动态管理的。Servant 进程是通过命令增减的,因安装时指定的性能目标而定。这些均通过一个 WLM 策略来表示。

此模型中的每个 Servant 进程都是相同的,它们托管启用 J2EE 应用程序编程模型所必需的应用服务器组件。从这个意义上,Servant 区域与整个分布式平台应用服务器紧密相关。Servant 进程的许多服务都依赖于控制区域,例如通信、安全性和事务控制。

版本 6.0.1 中新增的是 Adjunct 进程,它托管内部消息传递组件并处理 JFAP 和 JCAI 协议。NodeAgent、Proxy Server (v6.0.2) 和 JMSServer (v5.x) 没有 Servant 区域和 Adjunct 区域。它们只存在于控制区域中。在 z/OS 上提供独立的 Location Service Daemon (Daemon)。Daemon 提供 CORBA 位置服务来支持 Remote Method Invocation 和 Internet Inter-ORB Protocol (RMI/IIOP)。

MVS 操作命令

WebSphere 允许您在服务器上执行四种不同的操作:Start、Stop、stopImmediate 和 Terminate。其中每个操作都可以通过管理控制台和 wsadmin 脚本来进行。Start 和 Stop 也有 Shell 脚本驱动接口。

WebSphere z/OS 支持第五种执行所有操作的方式——MVS 系统命令。z/OS 操作员可以在 MVS 控制台上发布命令来启动任何服务器。WebSphere 提供的方法实际上是对这些 MVS 系统命令的封装,因此 MVS 系统命令是启动、停止、立即停止或终止服务器的唯一方式。

START 命令剖析

图 2 显示了一个标准的 START 命令。在本例中,它是应用服务器的缺省 START 命令。

图 2. 应用服务器 START 命令

应用服务器 START 命令

JCL Procedure

启动服务器的 JCL Procedure (PROC) 是在自定义时通过自定义对话框创建的。为每个区域(控制、Servant、Adjunct)和 Daemon 各创建一个。PROC 是通用的,因为它们可以启动给定节点的任何服务器。Deployment Manager 生成自己的 PROC 集,而该节点使用基服务器的 PROC。您可以使用任意 8 个或 8 个以下字符来命名 PROC。缺省名称是 BBO6ACR。

JOBNAME

您可以使用 JOBNAME 来标识服务器。缺省情况下,WebSphere 使用该服务器短名称,除非它被更改。除了附加一个“S”外,Servant 区域的 JOB 名称与控制区域相同。类似地,Adjunct 区域则附加一个“A”。

Control Region Jobname:  BBOS001
Servant Region Jobname:  BBOS001S
Adjunct Region Jobname:  BBOS001A

ENV

ENV 是唯一标识服务器的字符串。该字符串由单元短名、节点短名和服务器短名组成。如果通过管理控制台来更改服务器短名,则相应的 ENV 参数也会更改。

START 示例命令

以下部分显示 WebSphere 服务器的 START 示例命令。

Deployment Manager

START BBO6DCR,JOBNAME=BBODMGR,ENV=PLEX1.PLEX1.BBODMGR

Deployment Manager 的 PROC 与其他任何服务器始终不同(前者是 BBO6DCR,而后者是 BBO6ACR)。Deployment Manager 的缺省 JOB 名称是 BBODMGR。因为 ND 单元中只有一个 Deployment Manager,所以在 JOBNAME 上没有附加数字。

节点代理

START BBO6ACR,JOBNAME=BBON001,ENV=PLEX1.SY1.BBON001

缺省情况下,每个新创建的节点代理都将按顺序赋予下一个未使用的数字,例如从 BBON002、BBON003 到 BBONXXX。

应用服务器

START BBO6ACR,JOBNAME=BBOS001,ENV=PLEX1.SY1.BBOS001

缺省情况下,每个新创建的应用服务器都将按顺序赋予下一个未使用的数字,例如从 BBOS002、BBOS003 到 BBOSXXX。

Proxy Server v6.0.2

START BBO6ACR,JOBNAME=BBOX001,ENV=PLEX1.SY1.BBOX001

缺省情况下,每个新创建的代理服务器都将按顺序赋予下一个未使用的数字,例如从 BBOX002、BBOX003 到 BBOXXXX。

JMS Server v5.x

START BBO6ACR,JOBNAME=BBOJ001,ENV=PLEX1.SY1.BBOJ001

缺省情况下,每个新创建的 JMS 服务器都将按顺序赋予下一个未使用的数字,例如从 BBOJ002、BBOJ003 到 BOJXXX。请注意,启动服务器只需要控制区域 START 命令。如果需要,控制区域会依次启动 Daemon、Servant 和 Adjunct。

STOP 示例命令

所有 WebSphere 服务器(Deployment Manager、NodeAgent、Application Server、Proxy Server 和 JMSServer)都支持 STOP 命令。要发布该命令,请使用如下语法:

STOP BBOS001
P BBOS001

其中 STOP 或 P 为该命令,而 BBOS001 是控制区域 JOBNAME。

CANCEL 示例命令

z/OS 服务器上的立即停止功能映射为 CANCEL 命令。CANCEL 将立即停止一个启动的任务。

CANCEL BBOS001
C BBOS001

其中 CANCEL 或 C 为该取消命令,而 BBOS001 是控制区域的 JOB 名称。

TERMINATE 命令

TERMINATE 命令是停止一个正在运行的服务器的最后手段。在 WebSphere 分布式服务器上,Terminate 功能通过调用操作系统的 sigkill 来终止服务器。

在 z/OS 上,当 CANCEL 发布多次未成功之后将使用终止功能。当您对 z/OS 服务器发布 TERMINATE 时,将发布出两个命令。调用的第一个命令是 stopImmediate,而第二个是 TERMINATE 命令。这是在发布 FORCE 前的最后一次 CANCEL 的机会。请注意,发布 FORCE 命令可能需要您重新 IPL 系统。

TERMINATE 命令只从 NodeAgent 发布,这与 Stop 和 stopImmediate 均不同,它们是由目标服务器驱动的。因此,您不能够终止 Deployment Manager 或 Base Application Server。您只能终止托管服务器,例如联合应用服务器、代理服务器和 JMS 服务器。

更改命令

对于特定服务器,所有这些命令(START、STOP、stopImmediate、TERMINATE)都是在 server.xml 文件中定义的。您可以对其进行更改以适合您的特定环境。例如,如果您想要在用户单击管理控制台上的 Stop 时取消服务器,则可以重新定义 STOP 命令。

类似地,客户可能想要对其 stopImmediate (CANCEL) 命令附加参数以追加 ARMREST 参数。这将使通过脚本或管理控制台调用 STOP、stopImmediate 或 TERMINATE 时,WebSphere 能够准确调用适合客户环境的命令。当执行应用程序推出或 RippleStart 时,同样也会调用这些命令。

在管理控制台上使用命令

您可以在每个地址空间的进程定义面板上查看和修改定义的 START、stopImmediate 和 TERMINATE 命令。在控制区域内,您可以找到:

startCommand
START <PROC NAME>
startCommandArgs
JOBNAME=BBOS001,ENV=PLEX1.SY1.BBOS001
stopCommand
STOP BBOS001; CANCEL BBOS001
stopCommandArgs
<empty>
stopImmediate
STOP BBOS001; CANCEL BBOS001
terminateCommand
FORCE BBOS001
terminateCommandArgs
<empty>

您可以更改这些命令中的任何一个。例如,如果您的特殊安装方式需要更短的 START 命令,或者您想要创建更容易记住的类似命令,在这里更改和保存新的 START 命令后,当您单击管理控制台上的 Start 或通过脚本启动服务器时,WebSphere 将会发布该命令。STOP 命令和 stopImmediate 命令存储在相同的 XML stanza 中。它们之间由分号隔开。图 3 显示控制器区域的进程定义面板。使用此管理控制台面板,您可以重新定义 START、STOP、 stopImmediate 和 TERMINATE 命令。

图 3. 管理控制台进程定义面板
管理控制台进程定义面板

结束语

本文介绍了 WebSphere z/OS 进程模型。该进程模型使得在 z/OS 环境中有更大的灵活性和集成度,并保持 z/OS 系统操作员所熟悉的服务器界面。本文还介绍了联合 JVM 模型的各个部分及使用的缺省命名模式。通过使用自定义进程模型的功能,您将能够使 WebSphere z/OS 与客户自己的环境及其公司内部策略更好地集成。

参考资料



专家视角看IT与架构
软件架构设计
面向服务体系架构和业务组件
人人网移动开发架构
架构腐化之谜
谈平台即服务PaaS


面向应用的架构设计实践
单元测试+重构+设计模式
软件架构师—高级实践
软件架构设计方法、案例与实践
嵌入式软件架构设计—高级实践
SOA体系结构实践


锐安科技 软件架构设计方法
成都 嵌入式软件架构设计
上海汽车 嵌入式软件架构设计
北京 软件架构设计
上海 软件架构设计案例与实践
北京 架构设计方法案例与实践
深圳 架构设计方法案例与实践
嵌入式软件架构设计—高级实践
更多...