Proxy Services

This section describes the proxy services architectural overview, refer to the Proxy Service Configuration to get an understanding of how you can develop proxy services within the UltraESB.

A Proxy Service is the basic unit of deployment on the UltraESB. A Proxy Service is identified by a unique name, and specifies one or more transports over which it expects to receive messages. Optionally the service may also specify a specific address over the transport/s at which it expects the messages (e.g. for HTTP/S a custom URL), and other properties that will configure its behavior against the transport (e.g. Email/JMS etc).

simple proxy

When a message arrives at the proxy service as per its transport configuration, the UltraESB hands over the message to the 'In Sequence' of the service for mediation. Specification of a mediation sequence is optional, and the mediation sequence could analyze the message headers and/or payload to make content based routing, logging, reporting or transformations, or any other mediation or third party call etc. After mediation, the message maybe forwarded to another service / endpoint - which typically is a real service provider in many use cases. This external service maybe passed the message over the same transport as the received message, or via any of the other transports supported by the UltraESB. The outgoing message endpoint maybe selected during the mediation sequence, or specified as the inDestination - i.e. the default destination for an incoming message. This service may be a synchronous service or an asynchronous service (e.g. one way JMS, email etc), and an endpoint may provide one or more addresses - with load balancing, fail-over and other semantics. If/when the external service responds back with a response message, it is handed over to the 'Out Sequence' of the Proxy Service for mediation. Typically after a received response message is mediated, it will be sent back to the original requester by the proxy service via the outDestination - i.e. the default destination for an outgoing message.

A 'Destination' or 'Endpoint' is a definition of an external service endpoint to the UltraESB. A Sequence is a set of mediation steps - specified in the Java programming language as a fragment, Class, Spring bean or any JSR 223 scripting language fragment or file - such as Groovy, JavaScript, etc - using the public API exposed by the UltraESB. Destinations and Sequences maybe defined locally for a Proxy Service (i.e. in-lined within the proxy service definition itself), or defined globally so that multiple proxy services may re-use them by reference via the IDs. A Proxy Service may also define an 'Error Sequence' which is invoked by the UltraESB when an un-handled exception occurs during mediation or at an endpoint.

Support for Enterprise Integration Patterns [EIP] are discussed in the reference guide.

In this topic
In this topic
Contact Us