Open ESB

From Wikipedia, the free encyclopedia
Jump to: navigation, search
OpenESB
Developer(s) OpenESB Community. formerly Sun Microsystems
Stable release v 2.3 [1] / April 21, 2013 (2013-04-21)
Written in Java
Operating system Cross-platform: Windows Mac OS Linux supported
Type Enterprise Service Bus
License CDDL
Website http://www.open-esb.net/

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 (Java Business Integration), 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 (Total Cost of Ownership).

It used to be owned by Sun Microsystems, but after Oracle and Sun Microsystems merged (see: Sun acquisition by Oracle), the OpenESB Community was created to maintain, improve, promote and support OpenESB.

Architecture[edit]

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

Framework[edit]

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 [Java virtual machine | JVM] work well and are in progress (2012 Q2). 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 (NMR). This is a powerful asynchronous intelligent communication channel between components.

Components[edit]

The JBI specification defines 2 component types: The services engine (SE) and the binding component (BC). 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 'out of the box' many Components.

OpenESB Binding components

Binding Component Name Description Supported
HTTP BC Sends and receives messages through HTTP (get, post,...) Yes
SOAP BC Sends and receives SOAP messages through HTTP Yes
FTP BC Sends and receives messages from and to FTP servers Yes
Database BC Full access to Database through JDBC Yes
JMS BC Sends and Receives messages from and to JMS Brokers Yes
LDAP BC Full Access to LDAP server Yes
Email BC Receives message from POP, IMAP servers and send messages to SMTP server Yes
REST BC Exposes and Invokes services through REST channel Yes
HL7 BC Used to communicate with Healthcare application with HL7 protocol Yes
TCP/IP BC Use TCP/IP to send and receive messages Yes
Scheduler BC Scheduler based on Quartz to trigger any business process Yes
Bespoke BC You can develop your own Binding component On demand

OpenESB Service Engines

Service Engine Name Description Supported
BPEL SE Highly scalable orchestrator based on BPEL 2.0. Yes
XSLT SE Embedded XSLT in Business processes Yes
IEP SE Intelligent Event Processor yes
POJO SE Transform any Java class into an OpenESB component Yes
JEE SE Transform any EJB or Servlet into an OpenESB component Yes
WLM SE Provides task management and human intervention in a business process On demand
ETL SE ETL for OpenESB On demand
Bespoke SE You can develop your own Service engine Yes

Integrated Development Environment & Plugins[edit]

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[edit]

At present, OpenESB comes with Glassfish V2 as a container. OpenESB on Glassfish is reliable, easily manageable and very scalable with or without Clusters. A benchmark on a 10 € per day machine on the cloud showed that OpenESB processes more than 10 million complex messages on an elaborate multichannel complex business-to-business process (File, FTP, SOAP, JMS). At the same time, it generates more than 12 million complex messages for external partners. benchmark report. With an extra configuration effort, OpenESB runs on JBoss V4 and V5 and set up for production uses. Today, OpenESB development is focused on new containers Glassfish V3-V4, JBoss V7, OSGI. Next versions are planned for 2013.

OpenESB kick-off[edit]

This section helps you to get started with OpenESB. OpenESB can be downloaded here. For those new to OpenESB, we suggest you use the last stable version. Dozens of papers and tutorials on OpenESB can be found on the documentation web page.

OpenESB community[edit]

The table below lists the web sites and forum managed by OpenESB community

Web site Description
Community portal Info, Event Download, Documentation, Blog, Forum...
Sources repository All source code and builds: registration required
OpenESB community forum Technical forum with thousands of posts
OpenESB LinkedIn group Discussions on OpenESB

See also[edit]

References[edit]

Java Business Integration

JBI specification

External links[edit]