ESB Market Overlapping ESB Functionality: ● IBM ● Websphere ESB ● Websphere Message Broker ● Websphere Data Power ● Apache ● Apache Service Mix ● Apache Synapse
ESB What is ESB ? Enterprise Service Bus is a modular and component based architecture model used for designing and implementing the interaction and communication between mutually interacting software applications in SOA - Wikipedia
SOA What is SOA ? Service Oriented Architecture is a set of principles and methodologies to design and develop well-defined business functionalities that are built as software components that can be reused - Wikipedia
In-short SOA & ESB SOA: ● Design & develop smaller software components as services for reusability. ESB: ● Communication and interaction between services.
In-short SOA & ESB
EAI Traditional EAI products are based on Hub and Spoke Architecture
Application Layers Enterprise Application Business Logic vs Connectivity Logic
Abstraction Abstracting Connectivity Logic out of Applications ● IMS transactions using adapters ● Cobol copybooks and call Mainframe Stored Procedures ● CICS Transactions ● SMTP, FTP, EJB, JMS
Mule ESB Understanding Mule ESB
Mule Studio Mule ESB Runtime: Runtime Mule Server (Standalone/Embedded) Mule Studio: Integrated Development Environment to develop Mule Flows. Eclipse with Mule ESB Plugin: Integrated Development Environment to develop Mule Flows.
Mule ESB Mule ESB Flows
Mule ESB Mule ESB Flows: Flows are sequences of message-processing events. Image Source
Mule ESB Message Processors Building Blocks Groups ● Endpoints An endpoint in Mule is a channel for receiving or sending data. An endpoint has a specific protocol, such as HTTP or JMS ● Scopes Scopes are processing blocks. e.g., Async, sun-flows, poll ● Components Studio building blocks known as Components fall into three categories: General, Script, and Web Service
Mule ESB Message Processors Building Blocks ● Transformers XML-to-JSON ● Filters Filters determine whether a message can proceed through an application ● Flow Controls Route messages to various destinations in a Mule flow ● Error handlers
Mule Transactions Mule Flow Transactions ● Mule Transaction Manager ● Mule can run both XA/Non-XA Transactions ● Join a existing transaction or Create new ● Uses Spring Framework Transactions Module ● Can be plugged with App Server Transaction manager (Mule Embedded)