OpenESB


OpenESB is a Java-based open-source enterprise service bus. It can be used as a platform for both enterprise application integration and service-oriented architecture. OpenESB allows you to integrate legacy systems, external and internal partners and new development in your Business Process. OpenESB is the unique open-source ESB relying on standard JBI, XML, XML Schema, WSDL, BPEL and Composite application that provides you with simplicity, efficiency, long-term durability, and savings on your present and future investments with a very low TCO.
It used to be owned by Sun Microsystems, but after Oracle and Sun Microsystems merged , the was created to maintain, improve, promote and support OpenESB.

Architecture

OpenESB consists of 5 parts: the framework, the container, the components,the Integrated Development Environment and the development plugins.

Framework

The framework consists of a lightweight JBI implementation in Java. This implementation is container-agnostic and can work on any platform and any container. Even if development and support are mainly focused on Glassfish V2 and V3 platforms, beta projects on JBoss and standalone JVM work well and are in progress. In addition to the OpenESB framework being lightweight, it is also reliable and highly scalable. It is embedded in a Java virtual machine and communicates with other framework instances through Binding components. This architecture matches perfectly with new cloud architectures and allows easy deployment and management on very complex infrastructures. The framework is fully manageable with any JMX-based tool such as Jconsole or more sophisticated tools like Opsview or Nagios.
The framework implements a virtual bus known as the Normalised Message Router. This is a powerful asynchronous intelligent communication channel between components.

Components

The JBI specification defines 2 component types: The services engine and the binding component. The SE and BC implement the same interface contract, however, they behave differently:
- Binding components act as the interface between the outside world and the bus, being able to generate bus messages upon receipt of stimuli from an external source, or generate an external action/interaction in response to a message received from the bus.
- Service engines receive messages from the bus and send messages to the bus. SE's have no direct contact with the outside world. They rely on the bus for interaction with other components, whether binding components or other service engines.
OpenESB includes many Components 'out of the box'.
OpenESB Binding Components
Binding Component NameDescriptionSupported
HTTP BCSends and receives messages through HTTP Yes
SOAP BCSends and receives SOAP messages through HTTPYes
FTP BCSends and receives messages from and to FTP serversYes
Database BCFull access to Database through JDBCYes
JMS BCSends and Receives messages from and to JMS BrokersYes
LDAP BCFull Access to LDAP serverYes
Email BCReceives message from POP, IMAP servers and send messages to SMTP serverYes
REST BCExposes and Invokes services through REST channelYes
BCUsed to communicate with Healthcare applications using the HL7 protocolYes
TCP/IP BCUse TCP/IP to send and receive messagesYes
Scheduler BCScheduler based on Quartz to trigger any business processYes
Bespoke BCYou can develop your own Binding componentOn demand

OpenESB Service Engines
Service Engine NameDescriptionSupported
BPEL SEHighly scalable orchestrator based on BPEL 2.0.Yes
XSLT SEEmbedded XSLT in Business processesYes
IEP SEIntelligent Event Processoryes
POJO SETransform any Java class into an OpenESB componentYes
JEE SETransform any EJB or Servlet into an OpenESB componentYes
WLM SEProvides task management and human intervention in a business processOn demand
ETL SEETL for OpenESBOn demand
Bespoke SEYou can develop your own Service engineYes

Integrated Development Environment & Plugins

OpenESB offers a set of graphical tools to ease complex SOA and integration developments. Powerful XLM, XML Schema, WSDL, BPEL editor, data mapping and Composition Applications graphical editors are proposed with OpenESB. Similarly, build, deploy, un-deploy, run, test and debug tasks are managed by graphical tools. OpenESB provides the best ergonomics for ESB and SOA developments.

Container

OpenESB V3.1.2 does not use any container but just a JVM. So, its memory footprint is very low and allows OpenESB to run in a Raspberry PI or in a many instances on a cloud.
Next versions are planned for 2019.

OpenESB community

The table below lists the web sites and forum managed by OpenESB community
Web siteDescription
Info, Event Download, Documentation, Blog, Forum...
All source code and builds: registration required
Technical forum with thousands of posts
Discussions on OpenESB