7 min read

Introducing Oracle Service Bus (OSB)

In any distributed system, components that run on a distributed platform need to communicate or exchange messages with each other. In SOA based systems, services need to interact or exchange messages with other services also. Oracle Service Bus is a product that provides a platform for interaction and message exchange between services.

Integration of disparate services can be a challenge. There could be a difference in messaging models—some services may support the synchronous model, whereas other services may support the asynchronous model. Some services may support HTTP protocol, whereas other services may support JMS protocol. Oracle Service Bus provides helps in solving many of these challenges by providing the following features:

  • Support for different protocols, such as HTTP(s), FTP, JMS, E-mail, Tuxedo, and so on
  • Support for different messaging models, such as point-to-point model, publish-subscribe model
  • Support for different message formats, such as SOAP, E-mail, JMS, XML, and so on
  • Support for different content types such as XML, binary, and so on
  • Data transformation using XLST and Xquery—data mapping from one format to another format through declarative constructs

Besides the integration support, OSB provides features that help in managing runtime for the integration of services. Some features are:

  • Load balancing: Load balancing is very important when traffic volume between services is very high. Load balancing also helps to achieve high availability.
  • Content-based routing: Routing to appropriate service based on content is very valuable in the changing business environment.

OSB provides loosely-coupled bus architecture, where all services and consumers of services can be plugged into, and OSB becomes a central place for defining mediation rules between services and consumers, as shown next:


Middleware Management with Oracle Enterprise Manager Grid Control 10g R5

At implementation level, OSB is a set of J2EE applications that run on top of WebLogic J2EE container. It uses various J2EE constructs like Enterprise Java Bean, data source, connectors, and so on. OSB uses a database for storing the reporting data.

OSB can be deployed in a single server model or clustered server model. Generally, in a production environment a clustered model is used, where multiple WebLogic Servers are used for load balancing and high-availability. In such setups, multiple WebLogic Servers are front-ended by a load balancer. The following figure depicts one such clustered deployment.

Middleware Management with Oracle Enterprise Manager Grid Control 10g R5

OSB constructs

There are some constructs specific to OSB—let’s learn about those constructs.

Proxy service

OSB provides mediation between consumer and provider services. This mediation is loosely coupled where a consumer service makes a call to intermediate service, and the intermediate service performs some transformation and routes it to producer service. This intermediate service is hosted by OSB and called Proxy service.

Business service

Business service is a representation of actual producer service. Business service controls the call to business service, it knows about the business service endpoint. In case of failure in calling producer service, it can retry the operation. In case there are multiple producer services, it knows about the endpoint of each producer service and provides load balancing across those endpoints.

Message flow

Message flow is a set of steps that are executed by the proxy service before it routes to the business service. It includes steps for data transformation, validation, reporting, and so on.

Supported versions

Enterprise Manager provides OSB management from release 10.2.0.5 onwards. The following is the support matrix for EM against different versions of OSB management:

EM Version

OSB 2.6

OSB 2.6.1

OSB 3.0

OSB 10gR3

10.2.0.5

Yes

Yes

Yes

Yes

To manage or monitor OSB from Enterprise Manager 10.2.0.5, some patches are needed on OSB servers. The following table lists the patch number for each supported OSB release:

OSB version

Patch ID

2.6, 2.6.1

B8SZ

3.0

SWGQ

10gR3

7NPS

The SmartUpdate patching tool that comes with WebLogic installation can be used to apply these patches. Before downloading or applying these patches, check Enterprise Manager documentation for any updates on patch Ids.

Discovery of Oracle Service Bus

Oracle Service Bus gets discovered as part of WebLogic domain, managed server discovery.We know how Enterprise Manager Agent discovers WebLogic domain and managed servers. Along with domain, cluster and managed server targets, OSB targets are also created and persisted in the Enterprise Manager repository.

Just like WebLogic domain and server targets, OSB can also be discovered and monitored, either by remote agent or local agent. In case you want to use OSB service’s provisioning feature you will need to discover/monitor OSB in the local agent mode. In the local agent mode, the agent is installed where the domain admin server is running. In the remote agent mode, the agent can be on any other host on the same network.

After discovery you will see the Oracle Service Bus target on the Middleware tab of the EM homepage. The following screenshot shows the OSB target on the Middleware tab.

Middleware Management with Oracle Enterprise Manager Grid Control 10g R5

Monitoring OSB and OSB services

Under the BPEL monitoring section, we learnt about the BPEL eco system that included BPEL PM, dehydration store, database listener, host, and so on, and how Enterprise Manager provides support for modeling of BPEL eco system as system. Enterprise Manager provides similar support for managing and monitoring OSB eco system.

Monitoring OSB

For monitoring OSB, you can go to the OSB homepage, where you can see the status and availability of OSB. It shows some other details like the host, name of the WebLogic Server Domain where OSB is installed. It also shows some coarse-grained historical view of traffic metrics—where it shows message/error/security violation rates for all the services.

On the Home page there is an option to create an infrastructure system and service. The steps for creating an infrastructure system service is exactly the same as BPEL, so we will not repeat those steps and will leave it as an exercise. The following screenshot shows one such homepage after the infrastructure system services are created.

Middleware Management with Oracle Enterprise Manager Grid Control 10g R5

OSB uses Java Message Service (JMS) queues for receiving, scheduling, dispatching of messages, it’s very important to monitor JMS queues for OSB. From the OSB homepage, click on JMS Performance, and you will see the performance of JMS queues used by OSB. The following screenshot shows one such page. You can see the metrics for message inflow and messages pending.

Middleware Management with Oracle Enterprise Manager Grid Control 10g R5

Monitoring OSB services

OSB service monitoring can be divided into two parts—proxy service that receives the requests and business service that dispatches the requests. Proxy service metrics also include the metrics in message flow, where message flow processes the request.

Monitoring proxy services

Performance of proxy services represents the performance seen by consumers of OSB. Besides that, proxy services are hosted by OSB servers. Enterprise Manager collects some very useful metrics for proxy services. These metrics are:

  • Status of proxy service
  • Throughput metrics at proxy service and endpoint level
  • Performance metrics at proxy service level and endpoint level
  • Error metrics at service level and end point level
  • Security violation at proxy service level

To monitor the performance of message flow, there are some fine-grained metrics available, these metrics include throughput, error rate, and performance at each step in the message flow.

Let’s go through the console screens for OSB service monitoring. Go to the OSB Services tab from OSB homepage, on that page you will see a listing of all the services that include proxy as well as business services.

You will see every proxy and business services is part of some project. OSB provides a construct project under which different services can be created; project is just a means to categorize different services.

The following screenshot shows such a page where you can see the list of all the projects and services. For each service you see metrics related to throughput, errors, violations, and performance.

Middleware Management with Oracle Enterprise Manager Grid Control 10g R5

Once you click on one of the services, you will see a page where the metrics and other details of proxy service are listed. On this page, you can see the throughput and performance chart for the proxy service. You will also see a section for the EM service model that represents a proxy service. This model is similar to the model that we had for the BPEL process. This mode has three entities:

  • Infrastructure service: This service represents all of the components in the OSB eco system.
  • Availability service: This service represents all of the availability tests for an OSB proxy service endpoint, it could include SOAP tests, Web transactions etc.
  • Aggregate service: This service is just an aggregate of the previous two services. Using this service, you can monitor all of the required metrics in one place. You can see the performance of your IT infrastructure as well as the performance of partner links in one place.

LEAVE A REPLY

Please enter your comment!
Please enter your name here