4 Converged Application Server Cluster Architecture

This chapter describes the Oracle Communications Converged Application Server cluster architecture.

Overview of Converged Application Server Clusters

A Converged Application Server cluster consists of multiple Converged Application Server server instances running simultaneously and working together to provide increased scalability and reliability. A cluster appears to clients to be a single Converged Application Server instance. The server instances that constitute a cluster can run on the same machine, or be located on different machines. You can increase a cluster's capacity by adding additional server instances to the cluster on an existing machine, or you can add machines to the cluster to host the incremental server instances. Each server instance in a cluster must run the same version of Converged Application Server.

Relationship Between Clusters and Domains

A cluster is part of a particular Converged Application Server domain.

A domain is an interrelated set of Converged Application Server resources that are managed as a unit. A domain includes one or more Converged Application Server instances, which can be clustered, non-clustered, or a combination of clustered and non-clustered instances. A domain can include multiple clusters. A domain also contains the application components deployed in the domain, and the resources and services required by those application components and the server instances in the domain. Examples of the resources and services used by applications and server instances include machine definitions, optional network channels, connectors, and startup classes.

You can use a variety of criteria for organizing Converged Application Server instances into domains. For instance, you might choose to allocate resources to multiple domains based on logical divisions of the hosted application, geographical considerations, or the number or complexity of the resources under management. For additional information about domains see Understanding Domain Configuration for Oracle WebLogic Server.

In each domain, one Converged Application Server instance acts as the Administration Server: the server instance which configures, manages, and monitors all other server instances and resources in the domain. Each Administration Server manages one domain only. If a domain contains multiple clusters, each cluster in the domain has the same Administration Server. All server instances in a cluster must reside in the same domain; you cannot "split" a cluster over multiple domains. Similarly, you cannot share a configured resource or subsystem between domains.

Relationship Between Coherence and WebLogic Server Clusters

Coherence clusters consist of multiple managed Coherence server instances that work together to distribute data in-memory to increase application scalability, availability, and performance. A client interacts with the data in a local cache and the distribution and backup of the data is automatically performed across cluster members.

Coherence clusters are different than Converged Application Server clusters. They use different clustering protocols and are configured separately. A Converged Application Server domain can contain a single Coherence cluster. Multiple Converged Application Server clusters can be associated with a Coherence cluster.

For details on configuring and managing Coherence clusters, see Administering Clusters for Oracle WebLogic Server.

Objects That Can Be Clustered

A clustered application or application component is one that is available on multiple Converged Application Server instances in a cluster. If an object is clustered, failover and load balancing for that object is available. Deploy objects homogeneously—to every server instance in your cluster—to simplify cluster administration, maintenance, and troubleshooting.

Web applications can consist of different types of objects, including Enterprise Java Beans (EJBs), servlets, and Java Server Pages (JSPs). Each object type has a unique set of behaviors related to control, invocation, and how it functions within an application. For this reason, the methods that Converged Application Server uses to support clustering—and hence to provide load balancing and failover—can vary for different types of objects. The following types of objects can be clustered in a Converged Application Server deployment:

  • Servlets

  • JSPs

  • EJBs

  • Remote Method Invocation (RMI) objects

  • Java Messaging Service (JMS) destinations

  • Coherence cluster and managed Coherence servers

  • Timer services

Objects That Cannot Be Clustered

The following APIs and internal services cannot be clustered in Converged Application Server:

  • File services including file shares

Overview of the Cluster Architecture

Converged Application Server itself provides a multi-tier cluster architecture using Oracle Coherence. Coherence clusters consist of multiple managed Coherence server instances that distribute data in-memory to increase application scalability, availability, and performance. An application interacts with the data in a local cache and the distribution and backup of the data is automatically performed across cluster members.

Coherence integration aligns the lifecycle of a Coherence cluster member with the lifecycle of a managed server: starting or stopping a server Java Virtual Machine (JVM) starts and stops a Coherence cluster member. The first member of the cluster starts the cluster service and is the senior member.

Converged Application managed servers that are associated with a Coherence cluster are referred to as managed Coherence servers. Managed Coherence servers in each tier can be individually managed but are typically associated with respective Converged Application Server clusters.

A standard load balancing appliance is used to distribute traffic across the engines in the cluster. It is not necessary that the load balancer be SIP-aware; there is no requirement that the load balancer support affinity between Engines and SIP dialogs or transactions. However, SIP-aware load balancers can provide higher performance by maintaining a client's affinity to a particular engine.

Figure 4-1 shows an example Converged Application Server cluster in which traffic from the IP Network is routed through two load balancers, Load Balancer 1 and Load Balancer 2, which distribute requests to the four Converged Application Server engines in the clusters, Cluster 1 and Cluster 2. Within the same Coherence cluster a single Administration Server handles administration tasks for all of the Converged Application Server engines.

Figure 4-1 Example Converged Application Cluster

Surrounding text describes Figure 4-1 .

Note:

There is no arbitrary limit to the number of engines or physical servers within a Coherence cluster.

Geographically-Redundant Installations

Converged Application Server can be installed in a geographically-redundant configuration for implementations that employ distributed data centers, and require continuing operation even after a catastrophic site failure.

The geographically-redundant configuration enables multiple Converged Application Server installations to replicate call state transactions between one another. If a particular site's installation were to suffer a critical failure, the administrator could choose to redirect all network traffic to the secondary, replicated site to minimize lost calls.

For information on configuring geographical redundancy, see "Configuring Geographically-Redundant Installations" in Converged Application Server Administrator's Guide.

Administration Server

You manage a Converged Application Server domain using an Administration Server. The Administration Server hosts the Administration Console interface, which you use to configure, deploy, and monitor the Converged Application Server installation.

Oracle recommends the following best practices for configuring Administration Server and Managed Server instances in your Converged Application Server domain:

  • Run the Administration Server instance on a dedicated machine. The Administration Server machine should have a memory capacity similar to Managed Server machines, although a single central processing unit (CPU) is generally acceptable for administration purposes.

  • Configure all Managed Server instances to use Managed Server Independence. This feature allows the Managed Servers to restart even if the Administration Server is unavailable. For more information, see Oracle Fusion Middleware Administering Server Startup and Shutdown for Oracle WebLogic Server for more information.

  • Configure the Node Manager utility to automatically restart all Managed Servers in the Converged Application Server domain. See Oracle Fusion Middleware Understanding the WebLogic Scripting Tool for more information.

If an Administration Server fails, only configuration, deployment, and monitoring features are affected, but Managed Servers continue to operate and process client requests. See "Monitoring, Tuning, and Troubleshooting" in Oracle Communications Converged Application Server Administrator's Guide for more information.

Engines

Converged Application Server engines reside in clusters and host the SIP Servlets and other applications that provide features to SIP clients.

The primary goal of engine clusters is to provide maximum throughput and low response time to SIP clients. As the number of calls, or the average duration of calls to your system increases, you can easily add additional engines to your clusters to manage the additional load.

Although engine cluster consists of multiple Converged Application Server instances, you manage each cluster as a single, logical entity; SIP Servlets are deployed uniformly to all server instances (by targeting the cluster itself) and the load balancer need not maintain an affinity between SIP clients and servers in the engine tier.

Note:

Converged Application Server start scripts use default values for many JVM parameters that affect performance. For example, JVM garbage collection and heap size parameters may be omitted, or may use values that are acceptable only for evaluation or development purposes. In a production system, you must rigorously profile your applications with different heap size and garbage collection settings in order to realize adequate performance. See "Monitoring, Tuning, and Troubleshooting the JVM" in Converged Application Administrator's Guide for suggestions about maximizing JVM performance in a production domain.

Diameter Support

Converged Application Server supports the Diameter base protocol. It supports the IMS Sh interface provider on engines, which then act as Diameter Sh client nodes. SIP Servlets deployed on the engines can use the profile service API to initiate requests for user profile data, or to subscribe to and receive notification of profile data changes. The Sh interface is also used to communicate between multiple IP Multimedia Subsystem (IMS) Application Servers.

One or more server instances may be also be configured as Diameter relay agents, which route Diameter messages from the client nodes to a configured Home Subscriber Server (HSS) in the network, but do not modify the messages. Oracle recommends configuring one or more servers to act as relay agents in a domain. The relays simplify the configuration of Diameter client nodes, and reduce the number of network connections to the HSS. Using at least two relays ensures that a route can be established to an HSS even if one relay agent fails.

The relay agents included in Converged Application Server perform only stateless proxying of Diameter messages; messages are not cached or otherwise processed before delivery to the HSS.

Note:

In order to support multiple HSSs, the 3rd Generation Partnership Project (3GPP) defines the Dh interface to look up the correct HSS. Converged Application Server does not provide a Dh interface application, and can be configured only with a single HSS.

Note that relay agent servers do not function as engines: they should not host applications, store call state data, maintain SIP timers, or even use SIP protocol network resources (sip or sips network channels).

In summary, Converged Application Server supports the following Diameter functions:

  • Diameter Sh interface client node (for querying a Home Subscriber Service)

  • Diameter Rf interface client node (for offline charging)

  • Diameter Ro interface client node (for online charging)

  • Diameter relay node

  • HSS simulator node (suitable for testing and development only, not for production deployment)

Converged Application Server also provides a simple HSS simulator that you can use for testing Sh client applications. You can configure a Converged Application Server instance to function as an HSS simulator by deploying the appropriate application.

For information on developing Diameter applications for Converged Application Server, see the Converged Application Server Diameter Application Development Guide.