Quercus Message Link Developer’s Guide<>

Introduction

Audience

This guide addresses the message driven integration between Quercus and other corporate systems using an event-driven service-oriented architecture (SOA).

This guide is intended for integration architects, developers and IT managers.

Introduction to Quercus integration capabilities

Quercus offers four approaches to integration with third-party systems. Each is designed to meet the specific demands of particular types of systems.

Quercus Message Link

SOA-based, event-driven on-line integration platform for enterprise corporate systems.

This interface is discussed in detail in this guide.

Quercus Live Link

Light interface specifically designed for interactive integration with website and portal technologies (REST/XML).

This interface is not discussed in this guide.

Quercus Embedded Connectors

Out-of-the-box connectors for all major industry infrastructure components.

This interface is not discussed in this guide.

Quercus DB Link

Specialized interface for data intensive integrations like data warehousing.

This interface is not discussed in this guide.

Quercus Message Link architecture

Integration API

Monitors changes in the Quercus database and posts XML-format change-notification messages into advanced queues (AQs).

Incoming messages are constantly dequeued from the AQ and relevant database entities are updated in the Quercus database.

The integration API guarantees that changes made via incoming messages from ESB are not generating outgoing messages as it may cause infinite loops in the ESB.

The API is configurable allowing the enabling or disabling of specific messages on as-needed basis. This eliminates overhead generating XML messages that are not required for integration purposes.

The API itself resides in the Quercus database (PL/SQL code).

Advanced queues

The Oracle Advanced Queuing mechanism is used to temporarily store messages in XML format before they are dequeued. A similar mechanism is used for incoming messages.

This approach decouples Quercus from ESB. Both Quercus and ESB can operate even when the other system is temporarily unavailable without the loss of any data.

Oracle AQ was specifically optimised for robust event-driven messaging. Messages are stored securely in the Oracle database.

Oracle AQ is an industry standard supported my majority of leading enterprise service busses.

Outbound message generation process

An event in Quercus triggers an internal message that is enqueued in a primary queue. The message contains a link to the object that has changed and the type of message it is.

A message dispatcher polls the primary queue, checking if any messages have been queued. If messages are queued then the primary queue is dequeued into the message dispatcher.

The message dispatcher gathers all information for any given object and creates a single XML message for that object.

The single object XML message is then enqueued to a general purpose queue where it can be dequeued and dispatched to the appropriate external systems.

Inbound message process

A message is enqueued on the inbound queue.

A message listener polls the inbound queue checking if any messages have been queued.

The message listener identifies what type of message it is and if the message type is enabled for inbound processing.

According to message type relevant changes are propagated to the Quercus database.

Note: An incoming message never generates an outbound message.