Injustice - Developers Among Us (SciFiDevCon 2024)
IBM Websphere concepts
1. IBM Websphere Application Server
concepts: Fitting pieces together
Table of Contents
Introduction .............................................................................................................................................. 2
Server ........................................................................................................................................................ 2
Node .......................................................................................................................................................... 3
Node group ............................................................................................................................................... 3
Cell ............................................................................................................................................................ 4
Deployment manager ............................................................................................................................... 4
Node Agent ............................................................................................................................................... 5
Cluster ....................................................................................................................................................... 6
Profile ........................................................................................................................................................ 6
1|Page
2. Introduction
This document provides information about various Websphere Application Server (referred as WAS from
now on) concepts. I personally feel when people start using WAS; initially they don’t feel comfortable
due to various concepts and terminology used by WAS. In this document, I am trying to fit these
concepts one by one to the big picture. Current document covers Sever, Node, Node group, Cell, Node
agent, Deployment Manager, Profile and Cluster.
Server
Server is the program which handles application operations, user requests and performs various actions
either as response to some user request, or any internal event within the server. WAS is available in
various flavors providing different functionality as per organization requirement. Here we are not
digging into various WAS product available, also most of the discussion in this document uses WAS ND
(Network Deployment) as reference. WAS ND is the high end application server in WAS family of
products, it provides near-continuous availability, centralized deployment and centralized management.
Following image shows a WAS server.
Server A
OS (Linux)
Although, This image does not add any such benefit as of now, but in this document we are going to extend this
image as we add more concepts of WAS.
Any application server description cannot be completed with covering container. A container is by which
application server provides or exposes underlying services. A server has various containers providing
different services. IBM WAS has various containers such as Web, EJB, SIP, OSGi to name a few. Following
figure shows containers within a server.
2|Page
3. EJB Container
Servlet
Container
OSGi
Container
Server A
OS (Linux)
For the purpose of brevity, we will not include these containers in subsequent figures.
Node
Node is not a running entity in WAS. Node is a repository of configuration files (product files, template
to create server etc.) using which various servers can be created. You can create different servers using
different template provided in the node configuration repository. In below figure we added Node -
Server A
Server C
Server B
Node B
Node A
OS (Linux)
As you can see in above figure, you can have multiple nodes within an OS by creating different profiles
but a node has its boundary which is OS.
Node group
A node group is a grouping of similar type of nodes. By similar type of node I mean having similar
functionality in terms of resources such as type of OS. Below is an updated figure which shows node
groups. As you can see node group can spans over OS boundary and normally is the case.
3|Page
4. Server A
Server C
Server D
Server E
Node C
Node D
Node Group 2
Server B
Node Group 1
Node B
Node A
OS (Linux)
OS (Linux)
z/OS
As you can see in above figure 2 different OS nodes can’t belong to same node group.
Cell
A cell is a grouping of node groups, nodes and servers. It is not a running entity. Normally a cell is what
your complete deployment is. It can contain any number of nodes, clusters, servers etc. But, in large
deployment you can have more than one cell. Normally you create more than one cell when you have
applications which require all together a separate management, security and independent of other cell’s
deployment.
Below figure shows a single cell containing different OS, and servers.
Cell 1
Server A
Server C
Server D
Server E
Node C
Node D
Node Group 2
Server B
Node Group 1
Node B
Node A
OS (Linux)
OS (Linux)
z/OS
Deployment manager
It is a special server used to manage a complete cell. You use it when your deployment spans multiple
nodes, servers and you need a single place to manage all components and apply various features to all
components or selective components of your deployment.
4|Page
5. Deployment Manager
*
*
Cell 1
Deployment
Manager Server
Cell Manager Node
Server A
Server C
Server D
Server E
Node C
Node D
Node Group 2
Server B
Node Group 1
Node B
Node A
OS (Linux)
OS (Linux)
z/OS
Node Agent
If you remember, node don’t cross OS boundary so as server. They need some communication
mechanism to interact with each other in bigger deployment. A node agent provides that functionality,
it works with deployment manager to perform various actions as per commanded by deployment
manager. You don’t need to create node agent independently, it is automatically created when you add
a node to the deployment manager. There is a one-to-one mapping between node and node agent, if a
node is added to deployment manager it will have one node agent associated with it. Node agent works
behind the scene and performs various actions such as start/stop server from deployment manager,
synchronize node configuration with central repository i.e. deployment manager repository.
Deployment Manager
*
*
*
Deployment
Manager Server
*
*
Cell Manager Node
*
*
*
Cell 1
*
*
*
Node Agent A
*
Node Agent B
Node Agent C
Node Agent D
*
*
*
*
Server A
Server C
*
*
Server D
*
Server E
Node Group 2
Node Group 1
*
Node C
Server B
Node A
Node B
OS (Linux)
5|Page
Node D
OS (Linux)
z/OS
6. Cluster
A cluster is a grouping of application servers. A Cluster provides high availability as requests are routed
to another server if other server is not available. Normally you create a cell with multiple nodes when
you want to use cluster feature. A cluster also provides management of servers and applications easily,
as you can apply same security and other features to all the servers and applications running on it. If you
remember node group, it is used here, a cluster can’t contain nodes (and in turn inherited servers of
nodes) if they belong to different node group. Following figure represents a simple cluster with 3
servers.
Deployment Manager
*
*
*
Deployment
Manager Server
*
*
Cluster 1
Cell Manager Node
*
*
*
Cell 1
*
*
*
Node Agent A
*
Node Agent B
Node Agent C
Node Agent D
*
*
*
*
Server A
Server C
*
*
Server D
*
Server E
Node Group 2
Node Group 1
*
Node C
Server B
Node A
Node D
Node B
OS (Linux)
OS (Linux)
z/OS
Profile
You create WAS environment by creating profiles. Some people use Node and Profile interchangeable,
and the reason behind it, it also create configuration files. It will prepare configuration files using which
servers can be created. Although, it can create servers and cells for deployment on basis of user
selection, but it, always at least creates a node. Product installation of WAS provides you product files
which can be used to create different deployment topologies and profile is the way to do that. There is a
one to one mapping between node and profile, if you create a profile a node is always get created.
6|Page