JBossESB is a pure Java SOA infrastructure. The overall architectural aims are discussed JBoss Transactions and jBPM, JBossESB is a core engine that is small and flexible. It can be easily extended to add more capabilities, as shown below:
JBossESB provides a basic core ESB framework that allows everything else to be configurable. Plug-in modules/components provide the real bones of the product, but all of them are swappable by end users. Interdependencies are not allowed in a hard-coded manner, but are taken care of within the framework in an abstract (and configurable) manner.
The main feature set currently is:
- The ability to call external transformation and rule engines.
- Processors which handle common use-cases like file pollers, SQL table ETL, batch processing, message.
- Configurable listener classes.
- Transport independence, with support for JMS and email, and other implementations to come.
- An event (object) repository of all 'events' that pass-through the ESB.
- LDAP support.
- Notification framework for 'informational' and to support process steps in the event chain.
- Data transformation.
The concept of a single bus (product) that rules the enterprise is wrong and counter to both Web Services and SOA. In fact this was one of the biggest problems with the old style of EAI, which resulted in a lot of legacy systems as vendors moved from one implementation (product) to another, unable to leverage their current investments. JBossESB acknowledges that there will be other ESBs with which we will be interacting, potentially at all levels: federating of the ESB infrastructure has been assumed from the start. A single bus does not scale and may become a bottleneck; as in hardware, multiple buses should be defined for different purposes and priorities.