Tijs Rademakers, Jos Dirksen9781933988214, 1933988215
Open Source ESBs in Action shows you how to implement and use two open source ESB implementations: Mule and ServiceMix. The authors introduce you to these freely-available ESB tools and present practical examples of how to use them in real-world scenarios. You will learn how the various features of an ESB such as transformation, routing, security, connectivity and more can be implemented using Mule and ServiceMix. You will also learn how to solve common enterprise integration problems using a structured approach.
Beyond simply learning how Mule and Service Mix work, you’ll learn the core techniques of ESB implementation such as Process Choreography, or the implementation of complex business processes through an ESB, and Service Orchestration, or exposing a set of services as a single service. The book shows you the fundamentals of ESB-based event processing and Quality of Service concerns like security, reliable delivery, and transaction management.
Working in integration projects is exciting, with new technologies and paradigms arriving every day. Open Source technologies like Mule and ServiceMix both offer lower-cost solutions and a higher degree of innovation than commercial ESB implementations. Open Source ESBs in Action will help you master ESB-driven integration techniques quickly and will provide you with knowledge you need to work effectively with Mule and ServiceMix.
Table of contents :
contents……Page 8
foreword……Page 14
foreword……Page 18
preface……Page 20
acknowledgments……Page 22
about this book……Page 24
Part 1 – Understanding ESB functionality……Page 30
The world of open source ESBs……Page 32
1.1 Why do you need an ESB?……Page 33
1.1.1 Benefits of an ESB……Page 34
1.1.2 Using an ESB from an application perspective……Page 37
1.2 Explaining the core functionalities of an ESB……Page 41
1.2.1 Location transparency……Page 42
1.2.2 Transport protocol conversion……Page 43
1.2.3 Message transformation……Page 44
1.2.4 Message routing……Page 45
1.2.5 Message enhancement……Page 46
1.2.6 Security……Page 47
1.2.7 Monitoring and management……Page 48
1.2.8 Core functionality overview……Page 49
1.3.1 Demystifying the open source ESB……Page 50
1.3.2 Overview of open source ESBs……Page 52
1.4.1 Defining selection criteria……Page 59
1.4.2 Assessing the open source ESBs……Page 60
1.5 Hello world with Mule and ServiceMix……Page 62
1.5.1 Taking a donkey ride with Mule……Page 63
1.5.2 Taking a JBI dive with ServiceMix……Page 66
1.6 Summary……Page 69
Architecture of Mule and ServiceMix……Page 71
2.1.1 Mule components overview……Page 72
2.1.2 Mule endpoints……Page 75
2.1.3 Transformers……Page 77
2.1.4 Routers……Page 79
2.1.5 Component……Page 82
2.1.6 Mule deployment models……Page 83
2.1.7 Mule wrap-up……Page 84
2.2 JBI, the foundation for ServiceMix……Page 85
2.2.1 Service engines and binding components……Page 86
2.2.2 Services and endpoints……Page 88
2.2.3 Normalized message router……Page 89
2.2.4 Service description, invocation, and message exchanges……Page 91
2.2.5 Service unit and service assembly……Page 93
2.3.1 ServiceMix overview……Page 94
2.3.2 Routing and transformations in ServiceMix……Page 96
2.3.3 ServiceMix deployment models……Page 99
2.4 Summary……Page 100
Setting up the Mule and ServiceMix environments……Page 101
3.1.1 Using Spring as an object container……Page 102
3.1.2 XML marshaling with JiBX……Page 110
3.1.3 Using JMS with the ActiveMQ broker……Page 118
3.2.1 Setting up ESBs, tools, and required libraries……Page 123
3.2.2 Running examples from Eclipse……Page 125
3.3 Inaugurate the Mule environment……Page 127
3.3.1 Writing and configuring the Mule components……Page 128
3.3.2 Running the Mule example……Page 131
3.4.1 Select the necessary JBI components……Page 132
3.4.2 Configuring the ServiceMix example implementation……Page 133
3.4.3 Running the ServiceMix example……Page 138
3.5 Summary……Page 139
The foundation of an integration solution……Page 140
4.1.1 Creating a logging solution with Mule……Page 141
4.1.2 Developing a custom transformer with Mule……Page 144
4.1.3 Integrating Mule and Spring……Page 146
4.2.1 Creating a logging service assembly for ServiceMix……Page 149
4.2.2 Creating service units and a service assembly……Page 150
4.2.3 Integrating ServiceMix and Spring……Page 154
4.3 Constructing message flows with an ESB……Page 156
4.3.1 What is a message flow?……Page 157
4.3.2 A message flow case study……Page 159
4.4 Implementing a message flow with Mule……Page 160
4.4.1 Implementing the request flow with Mule……Page 161
4.4.2 Implementing the response flow with Mule……Page 162
4.5.1 Implementing the request flow with ServiceMix……Page 167
4.5.2 Implementing the response flow with ServiceMix……Page 171
4.6 Interlude: Spring Integration……Page 177
4.6.1 A quick example with Spring Integration……Page 178
4.7 Summary……Page 180
Part 2 – Using ESB core functionalities……Page 182
Working with messages……Page 184
5.1.1 Fixed router……Page 185
5.1.2 Content-based router……Page 187
5.2 Validating messages……Page 199
5.2.1 Validating messages with Mule……Page 200
5.2.2 Validating messages with ServiceMix……Page 204
5.2.3 An alternative way to perform message validation using Synapse……Page 209
5.3.1 Implementing message transformation in Mule……Page 211
5.3.2 Implementing message transformation in ServiceMix……Page 217
5.4 Summary……Page 222
Connectivity options……Page 223
6.1.1 Mule File transport……Page 225
6.1.2 ServiceMix file transport……Page 227
6.2 Connecting to JMS……Page 231
6.2.1 Connecting Mule to JMS……Page 232
6.2.2 Connecting ServiceMix to JMS……Page 235
6.3 Connecting to a database using JDBC……Page 238
6.3.1 Connecting Mule to JDBC……Page 239
6.3.2 Connecting ServiceMix to JDBC……Page 242
6.4 Connecting to mail servers……Page 251
6.4.1 Connecting Mule to POP3 and SMTP……Page 252
6.4.2 Connecting ServiceMix to POP3 and SMTP……Page 254
6.5 FTP connectivity……Page 258
6.5.1 FTP and Mule……Page 259
6.5.2 FTP and ServiceMix……Page 262
6.6 Connecting to EJB 3……Page 263
6.6.1 Using EJB 3 from Mule……Page 266
6.6.2 EJB 3 and ServiceMix……Page 268
6.7 Summary……Page 271
Web services support……Page 272
7.1 Top-down approach web service……Page 273
7.1.1 Java implementation of the web service……Page 279
7.1.2 Implementing a top-down web service using Mule……Page 281
7.1.3 Implementing a top-down web service using ServiceMix……Page 285
7.2 Bottom-up approach……Page 288
7.2.2 Bottom-up approach using ServiceMix……Page 289
7.3.1 Consuming web services with Mule……Page 292
7.3.2 Consuming web services using ServiceMix……Page 293
7.4 Web service standards……Page 295
7.4.2 Using WS-Security with Mule……Page 296
7.4.3 Using WS-Security with ServiceMix……Page 301
7.4.4 WS-Addressing……Page 303
7.4.5 Using WS-Addressing in Mule……Page 304
7.4.6 Using WS-Addressing in ServiceMix……Page 306
7.5 Summary……Page 308
Implementing enterprise- quality message flows……Page 309
8.1.1 Error handling with Mule……Page 310
8.1.2 Error handling in ServiceMix……Page 313
8.2.1 Authentication and authorization with Mule……Page 317
8.2.2 Authentication and authorization with ServiceMix……Page 331
8.3 Making your message flows transactional……Page 336
8.3.1 Implementing transactional message flows in Mule……Page 338
8.3.2 Implementing transactional message flows in ServiceMix……Page 341
8.4 Summary……Page 345
Part 3 – ESB case studies……Page 346
Implementing a case study using patterns……Page 348
9.1.1 Introducing the Enterprise Integration patterns……Page 349
9.1.2 Analyzing a pattern-based design approach……Page 351
9.2 Introducing a restaurant table reservation case study……Page 353
9.3.1 Designing a publish-subscribe message flow……Page 354
9.3.2 Designing a filtering and routing message flow……Page 356
9.4.1 The Spring and Hibernate building blocks……Page 357
9.4.2 Implementing the Mule message flow……Page 361
9.4.3 Implementing the ServiceMix message flow……Page 368
9.5.1 Using JUnit to test the Mule and ServiceMix flows……Page 381
9.5.2 Deploying an integration solution to a production environment……Page 385
9.6 Summary……Page 386
Managing and monitoring the ESB……Page 387
10.1.1 The Wire Tap pattern……Page 388
10.1.2 The Message Store pattern……Page 392
10.1.3 The Detour pattern……Page 397
10.2 Monitoring using JMX……Page 404
10.2.1 Using JMX to administer Mule……Page 405
10.2.2 Monitoring Mule using MC4J……Page 409
10.2.3 Mule Galaxy and Mule HQ……Page 411
10.2.4 Using JMX to administer ServiceMix……Page 415
10.2.5 Monitoring ServiceMix using MC4J……Page 417
10.3 Summary……Page 420
Implementing a process engine in the ESB……Page 422
11.1 Introducing the process engine……Page 423
11.1.1 The execution environment for processes……Page 424
11.1.2 Designing processes for a process engine……Page 426
11.2 A process engine case study: booking a day of scuba diving……Page 429
11.3 Diving into the messages and services……Page 431
11.3.1 Designing the case study message definitions……Page 432
11.3.2 Serializing the case study messages to XML with JiBX……Page 434
11.3.3 Setting the stage for the case study implementation……Page 435
11.4.1 Orchestrating services with jPDL……Page 440
11.4.2 Implementing the case study with jBPM and Mule……Page 444
11.5.1 Orchestrating services with WS-BPEL……Page 455
11.5.2 Implementing the case study with Apache ODE and ServiceMix……Page 458
11.6 Summary……Page 464
The new architecture of ServiceMix 4……Page 465
A new project structure with Servicemix 4……Page 466
A little background in OSGi……Page 467
Getting started with ServiceMix 4……Page 468
XSD-based configuration……Page 470
Transport-specific endpoints……Page 472
API changes……Page 473
Graphical tool support with Mule IDE 2.0……Page 474
Graphical tool support with the Enterprise Integration Designer……Page 477
Mule core elements……Page 481
Mule BPM elements……Page 489
Mule email elements……Page 490
Mule file elements……Page 491
Mule HTTP elements……Page 492
Mule IMAP elements……Page 493
Mule JMS elements……Page 494
Mule POP3 elements……Page 495
Mule RMI elements……Page 496
Mule VM elements……Page 497
ServiceMix bean elements……Page 498
ServiceMix drools elements……Page 499
ServiceMix EIP elements……Page 500
ServiceMix FTP elements……Page 501
ServiceMix JMS elements……Page 502
ServiceMix Quartz elements……Page 503
ServiceMix TrueZIP elements……Page 504
ServiceMix XMPP elements……Page 505
Starting the Swing test client……Page 506
Using the Swing test client……Page 508
Tools……Page 510
Libraries……Page 511
A……Page 513
D……Page 514
E……Page 515
J……Page 516
M……Page 518
P……Page 522
S……Page 523
W……Page 527
X……Page 528
Reviews
There are no reviews yet.