This article needs additional citations for verification . (January 2017) (Learn how and when to remove this template message) |
Developer(s) | OpenESB Community, formerly Sun Microsystems |
---|---|
Stable release | |
Preview release | |
Written in | Java |
Operating system | Cross-platform: Windows Mac OS Linux supported |
Type | Integration platform Microservice 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.[ citation needed ]
OpenESB consists of 5 parts: the framework, the container, the components, the Integrated Development Environment and the development plugins.
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 (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.
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 many Components 'out of the box'.
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 applications using the 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 |
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.
OpenESB V3.1.2 does not use any container but just a JVM. So, its memory footprint is very low (less than 300 Mo) and allows OpenESB to run in a Raspberry PI or in a many instances on a cloud. Next versions are planned for 2019.
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 |
The term Web service (WS) is either:
Service-oriented architecture (SOA) is an architectural style that supports service orientation. By consequence, it is as well applied in the field of software design where services are provided to the other components by application components, through a communication protocol over a network. A service is a discrete unit of functionality that can be accessed remotely and acted upon and updated independently, such as retrieving a credit card statement online. SOA is also intended to be independent of vendors, products and technologies.
An enterprise service bus (ESB) implements a communication system between mutually interacting software applications in a service-oriented architecture (SOA). It represents a software architecture for distributed computing, and is a special variant of the more general client-server model, wherein any application may behave as server or client. ESB promotes agility and flexibility with regard to high-level protocol communication between applications. Its primary use is in enterprise application integration (EAI) of heterogeneous and complex service landscapes.
Java Business Integration (JBI) is a specification developed under the Java Community Process (JCP) for an approach to implementing a service-oriented architecture (SOA). The JCP reference is JSR 208 for JBI 1.0 and JSR 312 for JBI 2.0. JSR 312 was removed from the JCP balloting process on 17 Dec, 2010 by the submitters without being accepted.
Mule is a lightweight enterprise service bus (ESB) and integration framework provided by MuleSoft. The platform is Java-based, but can broker interactions between other platforms such as .NET using web services or sockets.
In computing, a composite application is a software application built by combining multiple existing functions into a new application. The technical concept can be compared to mashups. However, composite applications use business sources of information, while mashups usually rely on web-based, and often free, sources.
Oracle Fusion Middleware consists of several software products from Oracle Corporation. FMW spans multiple services, including Java EE and developer tools, integration services, business intelligence, collaboration, and content management. FMW depends on open standards such as BPEL, SOAP, XML and JMS.
Service-oriented architectures (SOA) are based on the notion of software services, which are high-level software components that include web services. Implementation of an SOA requires tools as well as run-time infrastructure software. This is collectively referred to as a service-oriented architecture implementation framework or (SOAIF). The SOAIF envisions a comprehensive framework that provides all the technology that an enterprise might need to build and run an SOA. An SOAIF includes both design-time and run-time capabilities as well as all the software functionality an enterprise needs to build and operate an SOA, including service-oriented:
Oracle Enterprise Service Bus, a fundamental component of Oracle's Services-Oriented Architecture suite of products, provides integration of data and enterprise applications within an organisation and their connected enterprises.
Apache Camel is an open source framework for message-oriented middleware with a rule-based routing and mediation engine that provides a Java object-based implementation of the Enterprise Integration Patterns using an application programming interface to configure routing and mediation rules.
Apache CXF is an open-source, fully featured Web services framework. It originated as the combination of two open-source projects: Celtix developed by IONA Technologies and XFire developed by a team hosted at Codehaus. These two projects were combined by people working together at the Apache Software Foundation and the new name CXF was derived by combining "Celtix" and "XFire".
Apache ODE is a software coded in Java as a workflow engine to manage business processes which have been expressed in the Web Services Business Process Execution Language (WS-BPEL) via a website. It was made by the Apache Software Foundation and released in a stable format on March 23, 2018. The software principally communicates with one or more Web services, sending and receiving messages, manipulating data and handling exceptions (errors) as defined by any given process. The engine is capable of running both long and short living processes to coordinate all the services that make up a service or application (orchestration).
Service Component Architecture (SCA) is a software technology designed to provide a model for applications that follow service-oriented architecture principles. The technology, created by major software vendors, including IBM, Oracle Corporation and TIBCO Software, encompasses a wide range of technologies and as such is specified in independent specifications to maintain programming language and application environment neutrality. Many times it uses an enterprise service bus (ESB).
JBoss Tools is a set of Eclipse plugins and features designed to help JBoss and JavaEE developers develop applications. It is an umbrella project for the JBoss developed plugins that will make it into JBoss Developer Studio.
Petals ESB is an open-source ESB developed by Linagora. It is a tool for implementing a service-oriented architecture (SOA). It is standard, modular, and physically distributed, to adapt to large-scale infrastructures.
JBoss Developer Studio (JBDS) is a development environment created and currently developed by JBoss and Exadel.
Java Composite Application Platform Suite is a standards-based enterprise service bus software suite from Oracle Corporation. The suite has several components that help to integrate existing applications and deliver new business services in a service-oriented architecture environment. It is a Java EE compliant platform and provides application-to-application integration, business-to-business integration, business process management along with integrated human workflow, an Enterprise Information Portal, extract transform and load (ETL), business activity monitoring and composite application development.
A canonical model is a design pattern used to communicate between different data formats. Essentially: create a data model which is a superset of all the others ("canonical"), and create a "translator" module or layer to/from which all existing modules exchange data with other modules. The individual modules can then be considered endpoints on an intelligent bus; the bus centralises all the data-translation intelligence.
The JBoss Enterprise SOA Platform is free software/open-source Java EE-based service-oriented architecture (SOA) software. The JBoss Enterprise SOA Platform is part of the JBoss Enterprise Middleware portfolio of software. The JBoss Enterprise SOA Platform enables enterprises to integrate services, handle business events, and automate business processes, linking IT resources, data, services and applications. Because it is Java-based, the JBoss application server operates cross-platform: usable on any operating system that supports Java. The JBoss SOA Platform was developed by JBoss, now a division of Red Hat.