Interested about the Future of Enterprise Integration with the UltraESB ?
 

Tuesday, 29th May from 09:00 - 10:00 AM PDT, Presented by Asankha Perera, Founder and CTO of AdroitLogic

Register for the Webinar

Skip to end of metadata
Go to start of metadata

The default configuration is the configuration shipped in, in-factory with the Adroitlogic UltraESB. This section describes the key configuration elements of the default configuration in brief, while a more detailed configuration guide on each and every component is in discussion under the User Guide.

Root configuration walk through

The main configuration file that UltraESB looks for by default is the ultra-root.xml file which resides in the conf directory of the ULTRA_HOME. This particular file in brief is as follows;

Note

The following configuration only contains the required key elements. Comments and few other elements were cut off for the clarity in presenting it on the documentation. The actual file varies from this, but should contain all what is displayed here.

The UltraESB component configuration is a spring configuration with a set of spring beans defining each and every component as seen above. The above configuration contains the following bean definitions;

fileCache

The bean identified by the key "fileCache" is the file cache configuration to be used by the transport receivers and senders, for the time being let's not worry about this. The guide discusses this concept in detail under the Architecture and Design and the configuration options under the Configuration and Administration.

http-8280

The bean identified by the key "http-8280" is the HTTP listener or the HTTP transport receiver of the UltraESB configured to be listening on the port 8280, as described by the property named port. Further the file cache bean is passed in to use it with the transport.

https-8443

The bean identified by the key "https-8443" is the HTTPS listener or the HTTPS transport receiver of the UltraESB configured to be listening on the port 8443, as described by the property named port. Apart from the port property there are few other properties which configure SSL. The complete configuration options will be discussed under the Transports configurations in Configuration and Administration. This also uses the same file cache bean.

http-sender

The bean identified by the key "http-sender" is the HTTP transport sender configured with the file cache bean as in the receiver.

https-sender

The bean identified by the key "https-sender" is the HTTPS transport sender configured with the file cache bean as in the receiver.

Note

In the above 4 bean identifiers there is no relation between there protocol and the listening port, just for the clear identification purposes they have given the names according to there protocol and the exposed ports, but they can be any arbitrary strings. Further UltraESB can have more than one transport adapters for a given protocol, for example you can have 2 HTTP listeners running on port 8280 and 8290.

ultra-config

The bean identified by the key "ultra-config" is the bean which provides the main configuration into the UltraESB. It provides proxy service configurations, the mediation configurations into the ESB server and some other key configurations which we will be looking at in detail under the User Guide. This specifies the dynamic sub-contexts you have, which provides the per said proxy service and mediation configurations.

Dynamic Sub-contexts

The idea of having one or more dynamic sub-contexts defining the proxy services and the mediation is the ability to provide configuration update for the proxy services and mediation without any downtime. At a production deployment the user most of the time needs to update the above elements and not transports and so forth, which are treated as more static. So extracting out the dynamic element fragments into a separate sub-context allows the ESB to update that sub-context without affecting the other more static configurations, and most importantly with zero down time. For more information on this regard please refer to the Configuration and Administration.

The dynamic sub-context as defined in the ultra-config bean in the main configuration refers to a file named ultra-dynamic.xml again resides on the conf directory of the ULTRA_HOME.

Dynamic sub-context

This contains the more dynamic configuration elements such as proxy services, sequences, endpoints etc.. as pointed out earlier. The in-factory ultra-dynamic.xml file shipped by default should look like follows;

This again is a spring configuration with a two custom bean configurations with proxy elements qualified with the UltraESB configuration namespace which is http://www.adroitlogic.org/ultraesb and the respective schema can be found at http://schemas.ultraesb.org/ultraesb-1.5.xsd

While the complete configuration and the schema discussion is available at the User Guide, a briefing of these proxy services are as follows.

echo-proxy

The first configuration element defines a proxy service with the name "echo-proxy", which is exposed on the transport identified by the key "http-8280", defined in the above described root configuration. This means that the proxy service is listening for messages on the port 8280 over the HTTP transport with the service URL being http://localhost:8280/service/echo-proxy.

That is about the external interface(s) of the proxy service. The internal mediation and destination configurations of the proxy service is defined in the target, encapsulated within the <u:target> element. This echo-proxy has the following configurations out of the following possible mediation/destination configurations.

  • in sequence - commented out, so not effective. The commented out in sequence how ever refers to a Java class type sequence.
  • in destination - refers to an external type address, http://localhost:9000/service/EchoService, meaning the message will be sent to the EchoService running on port 9000 after the specified incoming mediation.
  • out sequence - specified as a Java fragment type sequence, which prints the response from the EchoService back to the ESB, into the standard output.
  • out destination - specified as a response type address, meaning that the response from the EchoService is going to be sent back to the caller/client after the out going mediation.

Apart from that a proxy service can have meta-data configurations which we will discuss under the Configuration Guide of the proxy service.

The message flow described by this proxy service configuration can be visualize as follows;

echo-back

The second configuration element is also a proxy service and is identified by the key "echo-back". This is a special type of a proxy which belongs to the mock services category and the service exposed on the transports identified by the key "http-8280" and "https-8443", defined in the above described root configuration. It implies that this mock service is listening for messages on the port 8280 over the HTTP transport as well as on the port 8443 over the HTTPS transport, making it's service URLs to be http://localhost:8280/service/echo-back and https://localhost:8443/service/echo-back.

The internal target of this echo-back proxy service contains only and in sequence and no destinations nor out sequence. The target in sequence is a Java fragment type sequence which takes over the message and handles it using the UltraESB Mediation API to provide the response back to the consumer.

The visualization of the echo-back proxy is as follows;

That is the brief walk through of the default in-factory configuration of the UltraESB, and the next section will discuss how to Send a message through the UltraESB using the UltraESB tools.

Labels
  • None