3.5.  Configure WebSphere messaging (e.g., SIBus bus members and destinations).

[Note]

Service integration buses

A service integration bus is a group of one or more application servers or server clusters in a WebSphere Application Server cell that cooperate to provide asynchronous messaging services. The application servers or server clusters in a bus are known as bus members. In the simplest case, a service integration bus consists of a single bus member, which is one application server.

Usually, a cell requires only one bus, but a cell can contain any number of buses. The server component that enables a bus to send and receive messages is a messaging engine.

A service integration bus provides the following capabilities:

Different service integration buses can, if required, be connected. This allows applications that use one bus (the local bus) to send messages to destinations in another bus (a foreign bus). Note, though, that applications cannot receive messages from destinations in a foreign bus.

An application can connect to more than one bus. For example, although an application cannot receive messages from destinations in a foreign bus, if the application connects to that bus, the bus becomes a local bus and then the application can receive messages.

For example, in the following diagram, the application can send messages to destination A and destination B, but it cannot receive messages from destination B:

Figure 3.4. An application that is connected to bus A

An application that is connected to bus A


In the following diagram, the application can send messages to, and receive messages from, destination A and destination B:

Figure 3.5. An application that is connected to bus A and bus B

An application that is connected to bus A and bus B


A service integration bus comprises a SIB Service, which is available on each application server in the WebSphere Application Server environment. By default, the SIB Service is disabled. This means that when a server starts it cannot undertake any messaging. The SIB Service is enabled automatically when you add a server to a service integration bus. You can choose to disable the service again by configuring the server.

A service integration bus supports asynchronous messaging, that is, a program places a message on a message queue, then proceeds with its own processing without waiting for a reply to the message. Asynchronous messaging is possible regardless of whether the consuming application is running, or whether the destination is available. Also, point-to-point and publish/subscribe messaging are supported.

After an application connects to the bus, the bus behaves as a single logical entity and the connected application does not have to be aware of the bus topology. In many cases, connecting to the bus and defining bus resources is handled by an application programming interface (API) abstraction, for example the administered JMS connection factory and JMS destination objects.

The service integration bus is sometimes referred to as the messaging bus if it provides the messaging system for JMS applications that use the default messaging provider.

Many scenarios require a simple bus topology, for example, a single server. If you add multiple servers to a single bus, you increase the number of connection points for applications to use. If you add server clusters as members of a bus, you can increase scalability and achieve high availability. Servers, however, do not have to be bus members to connect to a bus. In more complex bus topologies, multiple buses are configured, and can be interconnected to form complex networks. An enterprise might deploy multiple interconnected buses for organizational reasons. For example, an enterprise with several independent departments might want separately administered buses in each location.

Multiple-server bus with clustering

You can have a bus consisting of multiple servers, some or all of which are members of a cluster. When a server is a member of a cluster, it allows servers to run common applications on different machines. Installing an application on a cluster that has multiple servers on different machines provides high availability. If one machine fails, the other servers in the cluster do not fail.

When you configure a server bus member, that server runs a messaging engine. For many purposes, this is sufficient, but such a messaging engine can run only in the server it was created for. The server is therefore a single point of failure; if the server cannot run, the messaging engine is unavailable. By configuring a cluster bus member instead, the messaging engine can run in one server in the cluster, and if that server fails, the messaging engine can run in an alternative server.

Figure 3.6. Service integration bus with clustered server

Service integration bus with clustered server


Another advantage of configuring a cluster bus member is the ability to share the workload associated with a destination across multiple servers. You can deploy additional messaging engines to the cluster. A destination deployed to a cluster bus member is partitioned across the set of messaging engines that the cluster servers run. The messaging engines in the cluster each handle a share of the messages arriving at the destination.

Figure 3.7. Service integration bus with partitioned destinations

Service integration bus with partitioned destinations


To summarize, with a cluster bus member you can achieve high availability (through failover). You can also configure a cluster to achieve workload sharing or workload sharing with high availability, depending on the policies that you configure for the messaging engines.

Bus member types and their effect on high availability and workload sharing

You can add a server to a service integration bus, to create a server bus member. You can also add a cluster to a service integration bus, to create a cluster bus member. A cluster bus member can provide scalability and workload sharing, or high availability, but a server bus member cannot.

Professional hosting         Free 'Oracle Certified Expert Web Services Developer 6' Guide     Free SCDJWS 5.0 Guide