Skip to end of metadata
Go to start of metadata

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 Wikipidia, 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.

Integrate different systems both within an organization and beyond

The UltraESB is a Free and Open Source 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
  • Files
  • 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
  • JSON - JavaScript Object Notation
  • Text
  • Binary
  • Protocol Buffers - Google protocol buffer binary format
  • CSV - Comma-Separated Values
  • EDI - Electronic Data Interchange
  • HL7 - Health Level 7
  • Hessian
  • AS2 - Applicability Statement 2
  • Maps etc.,

and the UltraESB can accept messages over one transport in one format, and forward it to another system over another transport and another format. Messages passing through the UltraESB can be "mediated" via fragments of Java code or JSR 223 Scripting languages such as Ruby, Groovy, JavaScript and many many others as listed at java.net/projects/scripting/sources/svn/content/trunk/www/index.html?raw=true. Thus the "mediation" logic could easily be written in any Java IDE the user is familiar with, execute and debug the configuration all from within the IDE utilizing the IDE features such as step through debugging. 

Acting as a gateway between your organization and your partners

By deploying the UltraESB between your partners, clients and users, you can use it to;

  • validate messages received
  • verify security
  • perform decryption
  • filter requests for injection attacks
  • throttle or rate/quota limiting
  • response caching

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;

  • XSLT
  • XQuery
  • Milyn
  • Java
  • Groovy or
  • 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;

  • load balancing
  • fail­-over

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. WS­Security) 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.

Lean and simple to configure

The UltraESB is an extremely light weight (~ 35MB) Java application and can be installed over any Java 6 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
  • The "mediation" logic maybe written as a Java code fragment (no compiling, Jar/bundling or deploying - ­ just write and run) or any JSR­ 223 scripting language such as Groovy, Ruby, JavaScript, etc. alternatively you can write mediation in compiled Java classes too.
  • 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 web based console (UConsole), 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, open source Enterprise Service Bus.

  • No labels