OMBRA

Introduction

OMBRA is a service that runs in Windows that handles the routing of messages received from MSMQ to a variety of locations. OMBRA itself is a framework. The main application merely receives messages and passes them to a series of libraries (called "routers") that handle the routing of messages.

"OMBRA", stands for Outbound Message Box Routing Agent (as it was initially only designed to handle outbound messages from BizTalk). OMBRA refers to:

The OMBRA Service

The OMBRA configuration manager

Default OMBRA routers

System Documentation

Architecture

OMBRA is designed such that the core service does very little, and all logic as to routing is done by a series of plugins known as routers. The following sequence diagram illustrates the process:

An OMBRA thread receives a message on the queue it is listening to

The OMBRA thread locates which router is currently setup to process messages from this queue

OMBRA calls the "route message" function in the router

The router forwards the message wherever it is required

The router returns the result to OMBRA (Success / Fail)

If the router successfully routed the message, OMBRA pops the message off the queue and the process continues

Components

OMBRA has several components. Source code for OMBRA can be located on the Mohawk Visual Source Safe server under the $/OMBRA project

OMBRA Service

The OMBRA service is the heart of the OMBRA system. It runs as the windows service "Outbound Messaging Agent" on many of the EHR project servers. It contains a multi-threaded server that listens to each queue that is configured. Each configured queue spawns a new thread that listens for new messages.

OMBRA Configuration Application

OMBRA also has a configuration application. This application runs as a system tray icon and can be activated by double-clicking the icon in the system tray. This configuration application is used to easily configure OMBRA. For more information about configuration of OMBRA see the Configuration page.

Routers

OMBRA's routers are simply .net class libraries that implement the IRouterCore interface (located in the MohawkCollege.EHR.HIAL.OMBRA.RouterCore.dll class library). On startup, OMBRA will scan it's "routerdir" (located in HKEY_LOCAL_MACHINE\SOFTWARE\MohawkCollege\EHR\HIAL\OMBRA registry key) for any class libraries that contain such a file. This makes it easy to add new routers to the OMBRA system. For more information about OMBRA routers please see the Routers page.

Installation

Installing OMBRA is a very simple process. Simply run the "OMBRA Setup.exe" file. This launches the OMBRA Setup Wizard. Most default parameters will work for a simple installation of OMBRA.

There is one stage of the OMBRA setup process that does require some planning. This is the OID configuration. Some routers will automatically generate a message id based on the MSMQ ID of the message being forwarded. These ID's require a root/extension (see the InstanceIdentifier article for more information). The Root used will be this OID value. Usually this is the OID of the machine OMBRA is installed on, however it may be a different machine's OID (For example: One of OMBRA's duties on the LRS is to forward queued responses to the Message Box database. When this occurs, OMBRA needs to fill in the ID of the message. However, the root of this identifier is not the root of the LRS, it must be the root of the front end processor. So, in this case the OID is that of a different machine)