IFS Middleware Server

Overview

 The Application Server, which is used by IFS Applications, is distributed in IFS component "IFS Middleware Server" and is based on Oracle WebLogic Enterprise Edition. Since it is embedded into an IFS component all installation, administration and configuration is performed using IFS supplied tools.

IFS Middleware Server introduces some new keywords and concepts that are important to know in order to understand how the Application Server functions. This page will describe central concepts as Node Manager, Admin Server and Managed Server. It also describes how clustering works with and without an external load balancer and how servers are controlled.

Configuration changes of parameters and cluster of the IFS Middleware Server is made using IFS Admin Console after a fresh install is performed.

Concepts

An IFS Applications instance requires a number of resources such as data sources, messaging queues and enterprise applications in order to be operational. The umbrella under which these resources are managed is called a domain.

Node Manager

Node Manager is a utility that enables starting, shutting down and restarting Admin Server, Managed Servers and HTTP Server on one node either from the host itself or from another node. The Node Manager has low memory footprint and should always run as a service.

Admin Server

The Admin Server is a server that controls the domain configuration. It hosts the IFS Middleware Server Admin Console and IFS System Monitoring Console applications, but no business functionality.

Managed Server

A Managed Server hosts one or more applications. There are two types of Managed Servers - "Main" servers and "Integration" servers.
"Main" servers expose business functionality consumed by interactive clients such as IFS Aurena and IFS Enterprise Explorer.
"Integration" servers implements and exposes functionality with an integration intent (Web Services and IFS Connect). It also implements reporting functionality.

Host

Host is the term used for a physical- or virtual machine, i.e. a computer.

Machine

Machine is the term for the logical representation of a host within the domain.

HTTP Server

The HTTP Server is the entry-point of all applications. The HTTP Server is sometimes referred to as Web Server.

Cluster

There are two types of clustering; vertical and horizontal. Vertical clustering means that there are two or more servers running on the same machine and horizontal clustering means there are two or more servers running on different machines. In IFS Middleware Server it is possible to configure how many servers to run on any machine, thus giving the option to run both a horizontal and a vertical cluster at the same time.

When forming the cluster, one of the hosts in the cluster will act as the master, which will always be the host where you run the IFS Installer in order to apply patches and new functionality. The master will run the Admin Server which is used as the center point for the cluster. The Admin Server holds the master configuration and the other machine will periodically check for any changes and update their local configuration accordingly. Managed Servers can also be started, stopped and monitored using the Admin Server. No other machines will run an Admin Server.

To add host machines to a cluster the script cluster.cmd is run on the Master node. It will create a zip file with all neccesary configuration and software. The zip file is then copied over to all hosts to be added. The zipfile is unzipped and the cluster.cmd is run on all new hosts. The hosts will now register themselfs to the AdminServer. In the Admin Console the new host will be available and new managed servers can be deployed into the MainCluster and the IntCluster on any of the new hosts.  

The number of managed servers each machine will host is configurable, it might not contain any Managed Servers at all, a scenario which would only make sense in case you wish to decrease the load of the master node. Each host will also contain everything necessary to set up an HTTP Server. However, by default it will only run on the master after installation. Additional HTTP Servers can be set up using the IFS Middleware Server Admin Console, but this is really only required in case an external load balancer is used.

Default configuration
The default configuration for IFS Middleware Server is built up using a single machine hosting two managed servers as illustrated below. Note that there are two separate clusters - MainCluster exposing services used by interactive clients and IntCluster exposing integration services. It's this default configuration that is always set up in a fresh install. To extend a default configuration with horizontal or vertical cluster the Admin Console will be used.

Extended configuration
In the example configuration below an additional host has been added hosting two additional managed servers. Note that the two clusters now stretches across two machines. Also note that only the master host runs a HTTP Server, which in this configuration becomes a single point of failure. A real highly available installation would also use an external load balancer as shown in the second image below.

Horizontal cluster with a single HTTP Server.

 

Horizontal cluster with two HTTP Servers and an external load balancer.

 

Load Balancing

The load is always balanced between the application servers by the HTTP Server no matter if there is an external load balancer in front or not. This typically eliminates the need of having more than one HTTP Server running when there is no external load balancer.

Load balancing example for one HTTP Server and five managed servers in a cluster.

While the HTTP Server distributes the load between the application servers, an external load balancer can be used to distribute the load between HTTP Servers, thus increasing the throughput for HTTP calls if this is needed. This means that although the external load balancer forwards your request to Host B you might still end up communicating with a managed server on Host A. The below image describes the load balancing where an external load balancer is used and the HTTP Servers on all hosts are serving requests.

Load balancing example with an external load balancer, three HTTP Servers and five managed servers.

The Node Manager's Role

The Node Manager is acting as an entry point on each machine. Therefore it is important that it is up and running at all times. It also handles server crash recovery if the system goes down or a running server crashes. This is why it is important that the Node Manager is started automatically when the host starts, only then can it start up the servers that terminated unexpectedly. It is also important that managed servers are stopped correctly using the stop scripts if it needs to be stopped for any reason, otherwise they will bounce right up again.

The Admin Server's Role

The Admin Server plays an important role in the cluster. As previously mentioned it is the center point of the entire cluster. It maintains the master configuration and propagates any changes to the application servers; it is responsible for managing new or updated applications and it also starts and stops the managed servers. Should the Admin Server become unavailable, the applications servers will continue to run independently but try to reconnect on a regular basis in order to receive configuration changes.

When starting an application server, the Admin Server is contacted and asked to start the specific server. The Admin Server then contacts the Node Manager on the machine where the application server resides which in turn tells the managed server to start and reports back to the Admin Server. The Admin Server can now communicate directly with the application server and can tell it to stop.

Example of starting or stopping a managed server.

More information about how to control the cluster can be found here.