Mule in Action

Mule in Action

Mule in Action

Mule in Action

Paperback(1st Edition)

$44.99 
  • SHIP THIS ITEM
    Qualifies for Free Shipping
  • PICK UP IN STORE
    Check Availability at Nearby Stores

Related collections and offers


Overview

Mule is the most widely used open source ESB-with millions of downloads-providing an alternative to expensive commercial options. Mule in Action is a comprehensive tutorial designed for working Java developers. This authoritative book explores the architecture and the main features of version Mule 2 through numerous running examples. It starts with a quick overview of ESB technology and a bit of Mule history-including the key changes between Mule 1.x and Mule 2. Readers learn to configure Mule and then get straight to the good stuff-putting Mule to work.

Because the core of an ESB system is handling message traffic, the book dives into the way Mule handles data with chapters on sending and receiving, routing, and transforming data. Next, it takes a close look at Mule's standard components and how you can roll out custom ones. The book closes with a set of chapters on the nuts and bolts of working with Mule. Readers can take Mule farther by learning techniques for testing, performance tuning, BPM orchestration, and even a touch of Groovy scripting.

Product Details

ISBN-13: 9781933988962
Publisher: Manning
Publication date: 08/07/2009
Edition description: 1st Edition
Pages: 436
Product dimensions: 7.20(w) x 9.00(h) x 0.20(d)

About the Author

David Dossot is the project "despot" of the JCR Transport and has worked with Mule since 2005.

John D'Emic is Chief Integration Architect at OpSource Inc., where he has used Mule since 2006.

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

From the B&N Reads Blog

Customer Reviews