Version: Branch Build
ESB is relatively a new concept where there is no formal definition of what it is. The following definition from Wikipedia seems to be very close, to what UltraESB tries to deliver, yet there is more than that.
Enterprise Service Bus [ESB] refers to a software architecture model used for designing and implementing the interaction and communication between mutually interacting software applications in Service Oriented Architecture. As a software architecture model for distributed computing it is a speciality variant of the more general client-server software architecture model and promotes strictly asynchronous message oriented design for communication and interaction between applications. It’s primary use is in Enterprise Application Integration of heterogeneous and complex landscapes.
Extracted from Wikipedia, the free encyclopedia [http://en.wikipedia.org/wiki/Enterprise_service_bus]
UltraESB is not only focused on this above aspect of an ESB rather it is an AS2 switch, JSON/Data Services and Mock Service container, Security gateway and many more in addition to being a typical ESB in SOA, designed to be better in performance, features and ease of use.
The UltraESB is a lightweight and lean Enterprise Service Bus that facilitates the integration of different systems; both within an organization and beyond. Integration is facilitated via "messages" which maybe received or transmitted over one of many transports, such as;
HTTP/S - Hypertext Transfer Protocol / HTTP-SSL
JMS - Java Messaging Service
AMQP - Advanced Message Queuing Protocol
Email - Electronic Mail
TCP - Transmission Control Protocol
MLLP/S - Minimal Lower Layer Protocol (used by HL7) / MLLP-Secure
FTP/S - File Transfer Protocol / FTP-SSL
SFTP - SSH (Secure) File Transfer Protocol etc.
Messages may carry different types of payloads such as;
SOAP - Simple Object Access Protocol
REST - Representational State Transfer
XML - Extensible Mark-up Language
HTML - Hypertext Mark-up Language
Protocol Buffers - Google protocol buffer binary format
CSV - Comma-Separated Values
EDI - Electronic Data Interchange
HL7 - Health Level 7
AS2 - Applicability Statement 2
By deploying the UltraESB between your partners, clients and users, you can use it to;
validate messages received
filter requests for injection attacks
throttle or rate/quota limiting
etc, and then route it to one or more of your internal services possibly over different transports. The UltraESB can alternatively transform the message payload using;
any other type of transformation or
use your favourite external library or
custom code you’ve developed
to perform a transformation. It can also perform;
between multiple back-end systems, using round robin, weighted, random and other types of algorithms. For example, you could receive SOAP messages over HTTPS, and direct them to a "Text"ual JMS service back-end; or poll an FTP location for a file pattern, process the records when a file appears, and post them to your HL7 back-end systems etc.
By routing all of your external traffic through the UltraESB, you could apply security consistently (e.g. WSSecurity) and efficiently without handling it in your internal code (e.g. PHP etc), mask out sensitive information such as credit card numbers consistently, use multiple identity certificates to communicate with different business partners, transform message formats or switch transports etc.
The UltraESB is an light weight (~ 65MB) Java application and can be installed over any Java 7 or Java 8 supported OS/HW or VM/Cloud configuration.
The UltraESB is configured with a single XML file, and a set of deployment units
The configuration is a standard Spring configuration, and thus offers native Spring support during "mediation" of messages
Supports JTA transactions including suspend/resume, message split/aggregation
Supports clustered deployment with centralized cluster controls
Contains a in-built metrics engine to both collect system metrics as well as user defined custom metrics streams in an efficient manner
Includes a command line interface (UTerm) and extensive JMX support for management and monitoring with built in Zabbix integration
In a nutshell, the UltraESB is a simple, feature rich, easy to configure, high performance Enterprise Service Bus.