This section gives an index of all the available Sample Use Cases categorized by the the level of the users. There are few levels to which all the samples belongs to.
Introductory level samples are the ones that a newbie should/can have a look at and understand the UltraESB by samples. These samples most of the time concentrates on only one aspect or a feature of the UltraESB.
Proxying JAX-WS (Fast-Infoset) Messages — I have a XML service (typical web service) and I want to mediate the invocation of this service with the ESB, such that the service is available to be accessed as a JAX-WS service over Fast-Infoset. Request messages going into the service via ESB needs to be converted from Fast-Infoset into (possibly) XML and any response going through ESB from this service needs to be converted back to Fast-Infoset.
Proxying Text Responses — I have a service that returns text format responses and I want to proxy this text service and mediate the text responses. The UltraESB can be used to proxy any type of payload, including SOAP 1.1/1.2, XML, Text, HTML, Hessian, EDI, CSV, binary etc.. this example shows how a plain text response of a Servlet could be proxied through the UltraESB.
Schema Validation and Error Handling — I want to validate the request messages with XML payloads over an XSD schema in the UltraESB before further processing it. Additionally I want the UltraESB to perform error handling and recovery of a particular flow defined in the configuration and direct the error cases into another flow treating it as an error handler.
Restful Proxy Services — I have a REST service and I want to mediate the invocation of this REST service with the ESB. Any response going with HTTP "Location" headers from the back end REST service needs to be switched to ESB, so that all traffic to the REST service goes through the ESB.
Proxying SOAP Messages — I have a web service and I want to mediate the invocation of this web service with the ESB. Web services use SOAP as there application level protocol and my proxy service should expose itself as a SOAP aware proxy service which also acts as a web service, where clients see it as the actual public API of my service.
Invoking a back-end service via WebSocket — I have clients sending SOAP messages through WebSocket connections established between UltraESB and clients and I want to send these SOAP messages to a Web Service via HTTP and send back the reply received from Web Service to WebSocket clients.
Integrating WebSocket with other Transports — I have a HTTP client sending HTTP requests to UltraESB and I want to send the content of this HTTP request to WebSocket clients connected to a particular subscriber path and a HTTP 200 response back to the HTTP client
Intermediary level samples should/can be followed by the users who have a basic understanding of what UltraESB is. These samples most of the time concentrates on only one feature but possibly integrate more than one aspect of the UltraESB.
Sending and Receiving AS2 Messages — AS2 (Applicability Statement 2) is a specification [RFC4130] on how to transport data securely and reliably over the Internet. Security is achieved by using digital certificates and encryption. This articles explains a sample configuration that demonstrates sending and receiving of messages over AS2 with the UltraESB. To make this sample simple, we will first only concentrate on the receipt and sending of files, without mediation or transport/data format conversions.
Hessian Binary Message Proxying — I want to proxy a binary Hessian message over HTTP with the ESB. At the same time, if the Hessian classes are available to the runtime, I want to read and process (mediate) the message in transit with a pre compiled Java class.
HTTP Basic and Digest Authentication — I have a proxy service developed with the UltraESB and now I want to enforce Transport Level Security (TLS) to this service which is exposed over HTTP. Using HTTP Basic or Digest authentication the service needs to be password protected. Also the use information needs to be extracted in the service for processing in the mediation logic.
Restful Mock Services — I want to quickly create some mock services to respond to my REST calls with GET, POST, PUT and DELETE requests, for testing purposes to emulate a real back-end.
Broadcasting Messages — I want to broadcast a message to all the WebSocket clients connected to a particular subscriber path periodically.
JSON Data Services — I want to expose results of specified SQL queries as RESTful JSON data, and/or create CRUD style Data Services to manipulate a relational database using a REST interface
Proxying and Load Balancing requests to Tomcat — Traditionally the Apache web server has been used to proxy requests to Tomcat servers using mod_jk or mod_proxy etc. This usually entails configuring multiple configuration files at different locations after making the necessary modules available to Apache. This sample describes how the UltraESB can be used to load balance and fail-over requests to Tomcat servers, and compares the configuration with a similar configuration with Apache2 using mod_jk.
Invoking a Web Service via Email — The UltraESB supports polling both POP3 and IMAP email boxes, according to a schedule specified as a repeating delay, or as a fully customizable CRON expression. In this example, we will poll a Gmail account "firstname.lastname@example.org" every 10 seconds and forward any messages found to the SimpleStockQuoteService hosted using the test ToolBox.
Advanced level samples should/can be followed by the users who have a good understanding of what UltraESB is and the domain of ESB in general. These samples most of the time describes advance technology/features and it might use more than one aspect of the UltraESB.
HTTP Basic, Digest, NTLM and AWS S3 Authentication — The HTTP protocol supports transport level request authentication, and the most common schemes are: Basic Authentication and the more secure Digest Authentication scheme and NTLM authentication. With large scale use of the Amazon S3 infrastructure, the AWS S3 authentication over REST is also being used in many systems connecting with the Amazon S3 infrastructure. This article explains these authentication schemes, and describes how Proxy services deployed on the UltraESB could use Basic or Digest authentication to secure backend services, and also shows how Basic, Digest, NTLM or AWS S3 secured services can be accessed through the UltraESB - by allowing the ESB to perform transparent authentication on behalf of the clients. Each of these schemes maybe used over HTTPS as well.
WS-Security Gateway — I want the UltraESB to act as a high performance WS-Security gateway, providing a secure interface to the clients for non secure services, and a non secure plain interface to the secure service allowing a plain client to access the secure services. The UltraESB should be able to either add or verify and remove security as signed and/or encrypted messages with time-stamp validation.
Database look-ups and XQuery Transformations — I want to look-up values from a database and enrich the message coming in with an XQuery transformation, to respond back to the client. I also want to use the ETag and process the messages as per the ETag of the in coming messages.
Building an interactive application using WebSocket — I want to build an interactive application where a set of instructions will be executed based on the inputs received from the WebSocket clients.
Reverse Proxy or Web Proxy — I have some random content, (could be a web site or anything that can be transferred on the network) and I want the ESB to act as a reverse proxy and possibly mediate the requests/response with any scripting language. Any response going with HTTP "Location" headers from the back end server needs to be switched to ESB, so that all traffic to the back end goes through the ESB. In other words I want my ESB to act as a web proxy for my web site.
Advanced level samples should/can be followed by the users who have a through understanding of what UltraESB is and the domain of ESB in general. These samples might go to a great depth of certain features/technologies while using more than one aspect of the UltraESB.
Building a web chat application using WebSocket — I want to build a chat application where websocket clients which belongs to certain chat rooms can communicate with each other.
Transactional ESB use cases made simple with the UltraESB — Demonstrates the ease of handling both JTA and non-JTA (i.e. local) transactions - or both at the same time, with the UltraESB. In addition to the ease of use, the power to suspend and resume transactions by different threads, or to operate with multiple transactions within a message flow allows any requirement to be met much more easily.
Transactions spanning multiple resources - an Example with JMS, JDBC and File systems with JTA — Shows JMS transactional read and JDBC transactional updates using JTA XA transactions. Further, transactions performing updates to the file system and rollback are described.