torsdag, oktober 04, 2007

What is an Oracle SOA Suite 10.1.3.1+ Cluster?

"Cluster - a number of things of the same kind, growing or held together; a bunch: a cluster of grapes.".

This is how a cluster is defined in the dictionary (http://dictionary.reference.com). Not a particularly exact definition, at least not to me. Then, one often hears that a SOA Suite installation runs in a 'cluster'. But what does this actually means? The definition did not give a particularly good definition. Also, as there are several ways to connect instances together to form a cluster it could be good to know exactly which way that is used in each case. There are (at least) four different ways to form a cluster in Oracle SOA Suite 10.1.3.1+ ; these are:

  • ONS Topology
  • OC4J Group
  • BPEL JGroup Config
  • OC4J Session Replication

Let's now discuss them more in detail.


ONS Topology

This is a group of Oracle Notification Server (ONS) in a farm configured to run in same topology. Basically; two or more loosely connected Oracle Application Server nodes. You can create this by using either of the 4 methods Dynamic node discovery, Static hubs, Connection via gateways or Manual configuration. You can read more about these methods in:

http://download-uk.oracle.com/docs/cd/B32110_01/web.1013/b28950/topology.htm#CHDCAIFD

I assume that this is the way most people refer to when they are talking about an Oracle SOA Suite cluster.


OC4J Group

This is a management concept, which is a set of OC4J instances that belong to the same group. Groups enable you to perform common configuration, administration, and deployment tasks simultaneously on all OC4J instances in a group. Some people might argue that this is not a cluster, but is certainly "a number of things of the same kind held together", so according to the dictionary it would be a cluster.

Read more about OC4J Groups in:

http://download-uk.oracle.com/docs/cd/B32110_01/web.1013/b28950/topology.htm#BIHGICBJ


BPEL JGroup Config

This clustering concept allows defining a topology for BPEL instances, for example new processes. This concept uses an Active / Passive model (for the concerned process). In case of a server failure, another Oracle BPEL Server running on another server resumes the process from the last dehydration point.

Read more about this in:

http://download-uk.oracle.com/docs/cd/B31017_01/integrate.1013/b28980/clusteringsoa.htm


OC4J Session Replication


This is a way to replicate sessions in state across applications. This can also be referred to as an application cluster and is the same set of applications hosted by two or more OC4J instances. It can be enabled either globally for all applications running within an OC4J instance or on application basis. There are three ways to do this: multicast, peer-to-peer or database replication. Read more about these in:

http://download.oracle.com/docs/cd/B31017_01/web.1013/b28950/cluster.htm


To summarize, there are (at least) 4 different ways of creating an Oracle SOA Suite 10.1.3.1 cluster. These are the methods and also the intended purpose of them:

  • ONS Topology: To connect two or more loosely connected Oracle Application Server nodes.
  • OC4J Group: To create a group with a set of OC4J instances.
  • BPEL JGroup Config: A set of BPEL Servers that shares the same dehydration store and listens on the same JGroup channels.
  • OC4J Session Replication: Used to replicate state across an application deployed on two or more OC4J instances.

So, what do you mean when talking about clusters?