In following pages I am trying to explain 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 IBM Websphere Application 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 here 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 –
Although, This image does not add any such benefit as of now, but 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 different containers within a server –
For the purpose of brevity, we will not include these containers in subsequent figures.
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 –
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.
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.
As you can see in above figure 2 different OS nodes can’t belong to same node group.
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.
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.
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.
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.
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 topology 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.