Mule is the most widely used open source ESB, providing an alternative to expensive commercial options. "Mule in Action" is a comprehensive tutorial designed for working Java developers and explores the architecture and main features of version Mule 2.
Mule is the most widely used open source ESB, providing an alternative to expensive commercial options. "Mule in Action" is a comprehensive tutorial designed for working Java developers and explores the architecture and main features of version Mule 2.
Paperback
-
SHIP THIS ITEMTemporarily Out of Stock Online
-
PICK UP IN STORE
Your local store may have stock of this item.
Available within 2 business hours
Related collections and offers
Overview
Mule is the most widely used open source ESB, providing an alternative to expensive commercial options. "Mule in Action" is a comprehensive tutorial designed for working Java developers and explores the architecture and main features of version Mule 2.
Product Details
ISBN-13: | 9781933988962 |
---|---|
Publisher: | Manning Publications Company |
Publication date: | 07/15/2009 |
Pages: | 436 |
Product dimensions: | 7.20(w) x 9.00(h) x 0.20(d) |
About the Author
David Dossot is a software engineer, architect, and open source developer who has been using Mule since 2005. He has contributed to Mule core and has created numerous modules and transports for it.
John D'Emic has been working on integration projects in one form or another for several years. He is currently a Solutions Architect at MuleSoft, Inc. In addition to being an extensive end user of Mule, John has submitted patches to the Jetty and XFiretransports. He holds a degree in Computer Science from St. John's University.
Victor Romero is an integration architect and is project despot of the SpEL module for Mule.
Table of Contents
Foreword xv
preface xvii
acknowledgments xix
about this book xxi
about the authors xxiv
about the cover illustration xxv
Part 1 Core Mule 1
1 Discovering Mule 3
1.1 Enterprise Integration Patterns and service-oriented architecture 4
1.2 The Mule project 6
1.3 Competition 7
1.4 Mule: a quick tutorial 8
Installing Mule Studio 9
Designing the flow 13
1.5 Running, testing, and deploying the application 17
Running the application 17
Testing the flow 21
Working with the XML configuration 22
Deploying to the Mule standalone server 23
1.6 Summary 26
2 Processing messages with Mule 27
2.1 Going with the flow 28
The response phase 30
Subflows 31
Private flows 34
2.2 Interacting with messages 35
Message sources 36
Message processors 36
Message exchange patterns 37
Endpoint URIs 39
2.3 Exploring the Mule message 40
Message properties 42
Understanding property scopes 42
Using message attachments 45
2.4 Speaking the Mule Expression Language 46
Using expressions 47
2.5 Summary 49
3 Working with connectors 50
3.1 Understanding connectors 51
Configuring connectors with XML 52
Configuring connectors with Mule Studio 53
3.2 Using the file transport 56
3.3 Using the HTTP transport 58
Sending and receiving data using HTTP 58
Using web services with Mule 61
3.4 Using the JMS transport 67
Sending JMS messages with the JMS outbound endpoint 68
Receiving JMS messages with the JMS inbound endpoint 69
Using selector filters on JMS endpoints 70
Using JMS synchronously 70
3.5 Using email 71
Receiving email with the IMAP transport 71
Sending mail using the SMTP transport 73
3.6 Using the FTP transport 75
Receiving files with inbound FTP endpoints 76
Sending files with outbound FTP endpoints 77
3.7 Using databases 77
Using a JDBC inbound endpoint to perform queries 78
Using a JDBC outbound endpoint to perform insertions 79
NoSQL with MongoDB 80
3.8 Using the VM transport 82
Introducing reliability with the VM transport 83
3.9 Using the Twitter cloud connector 85
Twitter 85
3.10 Summary 86
4 Transforming data with Mule 87
4.1 Working with transformers 88
4.2 Configuring transformers 89
4.3 Using core transformers 91
Dealing with bytes 92
Compressing data 94
Modifying properties, flow variables, and session variables 95
Transforming with expressions 97
Enriching messages 98
Automagic transformation 99
4.4 Using XML transformers 100
XPath and Mule 101
Transforming format with XSL 102
XML object marshaling 104
4.5 Transforming JSON with Mule 105
Querying JSON with MEL 106
JSON object marshaling with Mule 107
4.6 Scripting transformers 109
4.7 Summary 112
5 Routing data with Mule 113
5.1 Deciding how to route a message 115
Using the choice router 115
5.2 Using filters 118
Filtering by payload type and header 119
Filtering text and XML 120
Filtering with expressions 122
Logical filtering 124
Ensuring atomic delivery with the idempotent filter 125
Using the message filter 127
5.3 Routing to multiple recipients 128
Dispatching messages with the all router 128
Scatter/gather IO with the all router 129
Going async with the async processor 130
5.4 Routing and processing groups of messages 131
Splitting up messages 132
Aggregating messages 133
Routing collections 134
5.5 Guaranteed routing 136
Resiliency for unreliable transports 136
Defining failure expressions 137
5.6 Summary 138
6 Working with, components and patterns 139
6.1 Using Mule components 140
Executing business logic 141
Resolving the entry point 143
Configuring the component 146
Annotating components 148
Handling workload with a pool 149
Scripting components 151
Component lifecycle 155
6.2 Simplifying configuration with configuration patterns 157
Using the simple service pattern 158
Using the bridge 162
Using the validator 164
Using the HTTP proxy 167
Using the WS proxy 168
Reusing common configuration elements 170
6.3 Summary 172
Part 2 Running Mule 173
7 Integration architecture with Mule 175
7.1 Structuring integration applications 176
Guerrilla SOA with hub and spoke 176
Mule as the enterprise service bus 177
Mule as a mediation layer 178
7.2 Mule implementation patterns 180
Using a canonical data model 180
Reliability patterns with asynchronous messaging 182
Proxying SOAP requests with CXF 185
7.3 Summary 188
8 Deploying Mule 189
8.1 Deploying standalone Mule applications 190
Packaging a standalone Mule app 194
Deploying applications to Mule 196
Configuring logs 198
Inter-application communication with Mule 200
Embedding web applications in Mule 202
8.2 Deploying Mule to a web container 204
8.3 Deploying applications to CloudHub 206
8.4 Embedding Mule into an existing application 208
8.5 Deploying Mule for high availability 210
High availability via fault tolerance 213
8.6 Summary 216
9 Exception handling and transaction management with Mule 217
9.1 Dealing with errors 219
Using reconnection strategies 219
Creating reconnection strategies 221
Handling exceptions 225
Using exception strategies 227
9.2 Using transactions with Mule 230
Single-resource transaction 232
Transactions against multiple resources 241
Transaction demarcation 247
9.3 Summary 249
10 Securing Mule 250
10.1 Spring Security 3.0 and Mule 251
User security with an in-memory user service 252
User security with LDAP 253
Securing endpoints with security filters 254
10.2 Securing HTTP using SSL 255
Setting up an HTTPS server 255
Setting up an HTTPS client 256
10.3 Securing SOAP with Mule 258
10.4 Message encryption with Mule 259
Using password-based payload encryption 260
Decrypting message pay loads with PGP 261
10.5 Summary 263
11 Tuning Mule 264
11.1 Staged event-driven architecture 265
Roll your own SEDA 266
11.2 Understanding thread pools and processing strategies 267
Processing strategies and synchronicity 269
Transport peculiarities 272
Tuning thread pools 274
Tuning processing strategies 276
11.3 Identifying performance bottlenecks 278
Profiler-based investigation 279
Performance guidelines 281
11.4 Summary 284
Part 3 Traveling Further with Mule 285
12 Developing with Mule 287
12.1 Understanding the Mule context 288
Accessing the Mule context 289
Using the Mule context 290
12.2 Connecting to Mule 293
Reaching a local Mule application 294
Reaching a remote Mule application 295
Reaching out with transports 298
12.3 Using the Mule API 300
Being lifecycle aware 301
Intercepting messages 303
Listening to notifications 307
Configuring Mule data persistence 310
12.4 Testing with Mule 315
Functional testing 315
Behavior stubbing 319
Load testing 323
12.5 Debugging with Mule 328
Logging messages 328
Step debugging a Mule application 331
12.6 Summary 333
13 Writing custom cloud connectors and processors 334
13.1 Simplifying Mule development with the DevKit 335
13.2 Introduction to authoring cloud connectors 337
Rendering extensions configurable 339
Managing connections 340
Creating message processors 343
Creating intercepting message processors 344
Creating simple REST consumers 345
Creating transformers 347
Creating message sources 348
Integrating Mule extensions with Mule Studio 349
13.3 Creating a REST connector 350
13.4 Summary 357
14 Augmenting Mule with orthogonal technologies 358
14.1 Augmenting Mule flows with business process management 359
14.2 Complex event processing 361
Using CEP to monitor event-driven systems 361
Sentiment analysis using Esper and Twitter 363
14.3 Using a rules^ engine with Mule 365
Using Drools for selective message enrichment 366
Message routing with Drools 368
14.4 Polling and scheduling 370
Using the poll message processor 370
Scheduling with the Quartz transport 371
14.5 Summary 372
appendix A Mule Expression Language 373
appendix B Component and transformer annotations quick reference 380
appendix C Mule Enterprise Edition 383
appendix D A sample Mule application 385
index 391