contents


foreword
foreword
preface
acknowledgments
about this book Part 1  Understanding ESB functionality   
1  The world of open source ESBs   
1.1 Why do you need an ESB?
Benefits of an ESB
Using an ESB from an application perspective
1.2 Explaining the core functionalities of an ESB
Location transparency
Transport protocol conversion
Message transformation
Message routing
Message enhancement
Security
Monitoring and management
Core functionality overview
1.3 Researching the open source ESB market
Demystifying the open source ESB
Overview of open source ESBs
1.4 Why did we choose Mule and ServiceMix?
Defining selection criteria
Assessing the open source ESBs
1.5 Hello world with Mule and ServiceMix
Taking a donkey ride with Mule
Taking a JBI dive with ServiceMix
1.6 Summary
2  Architecture of Mule and    
2.1 Mule architecture and components
Mule components overview
Mule endpoints
Transformers
Routers
Component
Mule deployment models
Mule wrap-up
2.2 JBI, the foundation for ServiceMix
Service engines and binding components
Services and endpoints
Normalized message router
Service description, invocation, and message exchanges
Service unit and service assembly
JBI wrap-up
2.3 ServiceMix architecture and components
ServiceMix overview
Routing and transformations in ServiceMix
ServiceMix deployment models
ServiceMix wrap-up
2.4 Summary
3  Setting up the Mule and ServiceMix    
3.1 Three technologies enhancing the ESB functionality
Using Spring as an object container
XML marshaling with JiBX
Using JMS with the ActiveMQ broker
3.2 Preparing the development environment
Setting up ESBs, tools, and required libraries
Running examples from Eclipse
3.3 Inaugurate the Mule environment
Writing and configuring the Mule components
Running the Mule example
3.4 Inaugurate the ServiceMix environment
Select the necessary JBI components
Configuring the ServiceMix example implementation
Running the ServiceMix example
3.5 Summary
4  The foundation of an integration solution   
4.1 Implementing integration logic with Mule
Creating a logging solution with Mule
Developing a custom transformer with Mule
Integrating Mule and Spring
4.2 Implementing integration logic with ServiceMix
Creating a logging service assembly for ServiceMix
Creating service units and a service assembly
Integrating ServiceMix and Spring
4.3 Constructing message flows with an ESB
What is a message flow?
A message flow case study
4.4 Implementing a message flow with Mule
Implementing the request flow with Mule
Implementing the response flow with Mule
4.5 Implementing a message flow with ServiceMix
Implementing the request flow with ServiceMix
Implementing the response flow with ServiceMix
4.6 Interlude: Spring Integration
A quick example with Spring Integration
4.7 Summary
Part 2  Using ESB core functionalities   
5  Working with messages   
5.1 Routing messages
Fixed router
Content-based router
5.2 Validating messages
Validating messages with Mule
Validating messages with ServiceMix
An alternative way to perform message validation using Synapse
5.3 Transforming messages
Implementing message transformation in Mule
Implementing message transformation in ServiceMix
5.4 Summary
6  Connectivity options   
6.1 File connectivity
Mule File transport
ServiceMix file transport
6.2 Connecting to JMS
Connecting Mule to JMS
Connecting ServiceMix to JMS
6.3 Connecting to a database using JDBC
Connecting Mule to JDBC
Connecting ServiceMix to JDBC
6.4 Connecting to mail servers
Connecting Mule to POP3 and SMTP
Connecting ServiceMix to POP3 and SMTP
6.5 FTP connectivity
FTP and Mule
FTP and ServiceMix
6.6 Connecting to EJB 3
Using EJB 3 from Mule
EJB 3 and ServiceMix
6.7 Summary
7  Web services support   
7.1 Top-down approach web service
Java implementation of the web service
Implementing a top-down web service using Mule
Implementing a top-down web service using ServiceMix
7.2 Bottom-up approach
Bottom-up approach using Mule
Bottom-up approach using ServiceMix
7.3 Consuming web services
Consuming web services with Mule
Consuming web services using ServiceMix
7.4 Web service standards
WS-Security
Using WS-Security with Mule
Using WS-Security with ServiceMix
WS-Addressing
Using WS-Addressing in Mule
Using WS-Addressing in ServiceMix
7.5 Summary
8  Implementing enterprise-quality message flows   
8.1 Handling errors in your message flow
Error handling with Mule
Error handling in ServiceMix
8.2 Securing the ESB environment
Authentication and authorization with Mule
Authentication and authorization with ServiceMix
8.3 Making your message flows transactional
Implementing transactional message flows in Mule
Implementing transactional message flows in ServiceMix
8.4 Summary
Part 3  ESB case studies   
9  Implementing a case study using    
9.1 Introducing a design approach for integration projects
Introducing the Enterprise Integration patterns
Analyzing a pattern-based design approach
9.2 Introducing a restaurant table reservation case study
9.3 Designing the restaurant table reservation solution
Designing a publish-subscribe message flow
Designing a filtering and routing message flow
9.4 Implementing the case study with Mule and ServiceMix
The Spring and Hibernate building blocks
Implementing the Mule message flow
Implementing the ServiceMix message flow
9.5 Testing and deploying the integration solution
Using JUnit to test the Mule and ServiceMix flows
Deploying an integration solution to a production environment
9.6 Summary
10  Managing and monitoring the ESB   
10.1 System-management Enterprise Integration patterns
The Wire Tap pattern
The Message Store pattern
The Detour pattern
10.2 Monitoring using JMX
Using JMX to administer Mule
Monitoring Mule using MC4J
Mule Galaxy and Mule HQ
Using JMX to administer ServiceMix
Monitoring ServiceMix using MC4J
10.3 Summary
11  Implementing a process engine in the ESB   
11.1 Introducing the process engine
The execution environment for processes
Designing processes for a process engine
11.2 A process engine case study: booking a day of scuba diving
11.3 Diving into the messages and services
Designing the case study message definitions
Serializing the case study messages to XML with JiBX
Setting the stage for the case study implementation
11.4 Implementing a process engine with jBPM and jPDL
Orchestrating services with jPDL
Implementing the case study with jBPM and Mule
11.5 Implementing a process engine with Apache ODE and WS-BPEL
Orchestrating services with WS-BPEL
Implementing the case study with Apache ODE and ServiceMix
11.6 Summary

 
appendix A:  ServiceMix 4.0   
appendix B:  Differences between Mule 1.4.x and Mule 2.0.x   
appendix C:  Graphical tool support   
appendix D:  Mule component overview   
appendix E:  ServiceMix component overview   
appendix F:  The Swing test client   
appendix G:  Overview of tools and libraries   
                     index