SlideShare a Scribd company logo
Visit https://ebookultra.com to download the full version and
explore more ebooks
Open Source ESBs in Action 1st Edition Tijs
Rademakers
_____ Click the link below to download _____
https://ebookultra.com/download/open-source-esbs-in-
action-1st-edition-tijs-rademakers/
Explore and download more ebooks at ebookultra.com
Here are some suggested products you might be interested in.
Click the link to download
Activiti in Action Executable business processes in BPMN 2
0 Tijs Rademakers
https://ebookultra.com/download/activiti-in-action-executable-
business-processes-in-bpmn-2-0-tijs-rademakers/
Practical Arduino Cool Projects for Open Source Hardware
Technology in Action 1st Edition. Edition Jonathan Oxer
https://ebookultra.com/download/practical-arduino-cool-projects-for-
open-source-hardware-technology-in-action-1st-edition-edition-
jonathan-oxer/
Open source SOA 1st Edition Jeff Davis
https://ebookultra.com/download/open-source-soa-1st-edition-jeff-
davis/
Open Source Intelligence in a Networked World 1st Edition
Anthony Olcott
https://ebookultra.com/download/open-source-intelligence-in-a-
networked-world-1st-edition-anthony-olcott/
Open by design the transformation of the cloud through
open source and open governance First Edition Davis
https://ebookultra.com/download/open-by-design-the-transformation-of-
the-cloud-through-open-source-and-open-governance-first-edition-davis/
Open Source Software Implementation and Management 1st
Edition Paul Kavanagh
https://ebookultra.com/download/open-source-software-implementation-
and-management-1st-edition-paul-kavanagh/
Open Source Development with CVS 3rd Edition Moshe Bar
https://ebookultra.com/download/open-source-development-with-cvs-3rd-
edition-moshe-bar/
Computer Networks An Open Source Approach 1st Edition
Ying-Dar Lin
https://ebookultra.com/download/computer-networks-an-open-source-
approach-1st-edition-ying-dar-lin/
Open Source Approaches in Spatial Data Handling Advances
in Geographic Information Science 1st Edition Brent Hall
https://ebookultra.com/download/open-source-approaches-in-spatial-
data-handling-advances-in-geographic-information-science-1st-edition-
brent-hall/
Open Source ESBs in Action 1st Edition Tijs Rademakers
Open Source ESBs in Action 1st Edition Tijs Rademakers
Digital Instant Download
Author(s): Tijs Rademakers, Jos Dirksen
ISBN(s): 1933988215
Edition: 1
File Details: PDF, 6.18 MB
Year: 2008
Language: english
Open Source ESBs in Action 1st Edition Tijs Rademakers
Open Source ESBs in Action
Open Source ESBs in Action 1st Edition Tijs Rademakers
Open Source
ESBs in Action
EXAMPLE IMPLEMENTATIONS
IN MULE AND SERVICEMIX
TIJS RADEMAKERS
JOS DIRKSEN
M A N N I N G
Greenwich
(74° w. long.)
For online information and ordering of this and other Manning books, please visit
www.manning.com. The publisher offers discounts on this book when ordered in quantity.
For more information, please contact:
Special Sales Department
Manning Publications Co.
Sound View Court 3B Fax: (609) 877-8256
Greenwich, CT 06830 Email: orders@manning.com
©2009 by Manning Publications Co. All rights reserved.
No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in
any form or by means electronic, mechanical, photocopying, or otherwise, without prior written
permission of the publisher.
Many of the designations used by manufacturers and sellers to distinguish their products are
claimed as trademarks. Where those designations appear in the book, and Manning
Publications was aware of a trademark claim, the designations have been printed in initial caps
or all caps.
Recognizing the importance of preserving what has been written, it is Manning’s policy to have
the books we publish printed on acid-free paper, and we exert our best efforts to that end.
Recognizing also our responsibility to conserve the resources of our planet, Manning books are
printed on paper that is at least 15% recycled and processed elemental chlorine-free
Development Editor: Jeff Bleil
Manning Publications Co. Copyeditors: Liz Welch, Tiffany Taylor
Sound View Court 3B Typesetter: Denis Dalinnik
Greenwich, CT 06830 Cover designer: Leslie Haimes
ISBN: 1933988215
Printed in the United States of America
1 2 3 4 5 6 7 8 9 10 – MAL – 12 11 10 09 08
v
brief contents
PART 1 UNDERSTANDING ESB FUNCTIONALITY..........................1
1 ■ The world of open source ESBs 3
2 ■ Architecture of Mule and ServiceMix 42
3 ■ Setting up the Mule and ServiceMix environments 72
4 ■ The foundation of an integration solution 111
PART 2 USING ESB CORE FUNCTIONALITIES ..........................153
5 ■ Working with messages 155
6 ■ Connectivity options 194
7 ■ Web services support 243
8 ■ Implementing enterprise-quality message flows 280
PART 3 ESB CASE STUDIES.....................................................317
9 ■ Implementing a case study using patterns 319
10 ■ Managing and monitoring the ESB 358
11 ■ Implementing a process engine in the ESB 393
Open Source ESBs in Action 1st Edition Tijs Rademakers
vii
contents
foreword xiii
foreword xvii
preface xix
acknowledgments xxi
about this book xxiii
PART 1 UNDERSTANDING ESB FUNCTIONALITY................1
1 The world of open source ESBs 3
1.1 Why do you need an ESB? 4
Benefits of an ESB 5 ■
Using an ESB from an
application perspective 8
1.2 Explaining the core functionalities of an ESB 12
Location transparency 13 ■
Transport protocol
conversion 14 ■
Message transformation 15
Message routing 16 ■
Message enhancement 17
Security 18 ■
Monitoring and management 19
Core functionality overview 20
1.3 Researching the open source ESB market 21
Demystifying the open source ESB 21 ■
Overview of
open source ESBs 23
CONTENTS
viii
1.4 Why did we choose Mule and ServiceMix? 30
Defining selection criteria 30 ■
Assessing the open
source ESBs 31
1.5 Hello world with Mule and ServiceMix 33
Taking a donkey ride with Mule 34 ■ Taking a
JBI dive with ServiceMix 37
1.6 Summary 40
2 Architecture of Mule and ServiceMix 42
2.1 Mule architecture and components 43
Mule components overview 43 ■
Mule endpoints 46
Transformers 48 ■
Routers 50 ■
Component 53
Mule deployment models 54 ■
Mule wrap-up 55
2.2 JBI, the foundation for ServiceMix 56
Service engines and binding components 57
Services and endpoints 59 ■
Normalized message router 60
Service description, invocation, and message exchanges 62
Service unit and service assembly 64 ■
JBI wrap-up 65
2.3 ServiceMix architecture and components 65
ServiceMix overview 65 ■ Routing and transformations
in ServiceMix 67 ■ ServiceMix deployment models 70
ServiceMix wrap-up 71
2.4 Summary 71
3 Setting up the Mule and ServiceMix environments 72
3.1 Three technologies enhancing the ESB functionality 73
Using Spring as an object container 73 ■
XML marshaling
with JiBX 81 ■
Using JMS with the ActiveMQ broker 89
3.2 Preparing the development environment 94
Setting up ESBs, tools, and required libraries 94
Running examples from Eclipse 96
3.3 Inaugurate the Mule environment 98
Writing and configuring the Mule components 99
Running the Mule example 102
3.4 Inaugurate the ServiceMix environment 103
Select the necessary JBI components 103 ■ Configuring
the ServiceMix example implementation 104 ■ Running the
ServiceMix example 109
3.5 Summary 110
CONTENTS ix
4 The foundation of an integration solution 111
4.1 Implementing integration logic with Mule 112
Creating a logging solution with Mule 112 ■
Developing a
custom transformer with Mule 115 ■
Integrating Mule
and Spring 117
4.2 Implementing integration logic with ServiceMix 120
Creating a logging service assembly for ServiceMix 120
Creating service units and a service assembly 121
Integrating ServiceMix and Spring 125
4.3 Constructing message flows with an ESB 127
What is a message flow? 128 ■
A message flow case study 130
4.4 Implementing a message flow with Mule 131
Implementing the request flow with Mule 132 ■
Implementing
the response flow with Mule 133
4.5 Implementing a message flow with ServiceMix 138
Implementing the request flow with ServiceMix 138
Implementing the response flow with ServiceMix 142
4.6 Interlude: Spring Integration 148
A quick example with Spring Integration 149
4.7 Summary 151
PART 2 USING ESB CORE FUNCTIONALITIES ................153
5 Working with messages 155
5.1 Routing messages 156
Fixed router 156 ■
Content-based router 158
5.2 Validating messages 170
Validating messages with Mule 171 ■
Validating messages
with ServiceMix 175 ■
An alternative way to perform message
validation using Synapse 180
5.3 Transforming messages 182
Implementing message transformation in Mule 182
Implementing message transformation in ServiceMix 188
5.4 Summary 193
CONTENTS
x
6 Connectivity options 194
6.1 File connectivity 196
Mule File transport 196 ■
ServiceMix file transport 198
6.2 Connecting to JMS 202
Connecting Mule to JMS 203 ■
Connecting
ServiceMix to JMS 206
6.3 Connecting to a database using JDBC 209
Connecting Mule to JDBC 210 ■
Connecting ServiceMix
to JDBC 213
6.4 Connecting to mail servers 222
Connecting Mule to POP3 and SMTP 223 ■
Connecting
ServiceMix to POP3 and SMTP 225
6.5 FTP connectivity 229
FTP and Mule 230 ■
FTP and ServiceMix 233
6.6 Connecting to EJB 3 234
Using EJB 3 from Mule 237 ■
EJB 3 and ServiceMix 239
6.7 Summary 242
7 Web services support 243
7.1 Top-down approach web service 244
Java implementation of the web service 250 ■ Implementing a
top-down web service using Mule 252 ■ Implementing a
top-down web service using ServiceMix 256
7.2 Bottom-up approach 259
Bottom-up approach using Mule 260 ■
Bottom-up
approach using ServiceMix 260
7.3 Consuming web services 263
Consuming web services with Mule 263 ■
Consuming web
services using ServiceMix 264
7.4 Web service standards 266
WS-Security 267 ■
Using WS-Security with Mule 267
Using WS-Security with ServiceMix 272 ■
WS-Addressing 274
Using WS-Addressing in Mule 275 ■
Using WS-Addressing
in ServiceMix 277
7.5 Summary 279
CONTENTS xi
8 Implementing enterprise-quality message flows 280
8.1 Handling errors in your message flow 281
Error handling with Mule 281 ■
Error handling
in ServiceMix 284
8.2 Securing the ESB environment 288
Authentication and authorization with Mule 288
Authentication and authorization with ServiceMix 302
8.3 Making your message flows transactional 307
Implementing transactional message flows in Mule 309
Implementing transactional message flows in ServiceMix 312
8.4 Summary 316
PART 3 ESB CASE STUDIES...........................................317
9 Implementing a case study using patterns 319
9.1 Introducing a design approach for integration
projects 320
Introducing the Enterprise Integration patterns 320
Analyzing a pattern-based design approach 322
9.2 Introducing a restaurant table reservation case study 324
9.3 Designing the restaurant table reservation solution 325
Designing a publish-subscribe message flow 325 ■ Designing a
filtering and routing message flow 327
9.4 Implementing the case study with Mule and
ServiceMix 328
The Spring and Hibernate building blocks 328 ■
Implementing
the Mule message flow 332 ■
Implementing the ServiceMix
message flow 339
9.5 Testing and deploying the integration solution 352
Using JUnit to test the Mule and ServiceMix flows 352
Deploying an integration solution to a production
environment 356
9.6 Summary 357
CONTENTS
xii
10 Managing and monitoring the ESB 358
10.1 System-management Enterprise Integration patterns 359
The Wire Tap pattern 359 ■
The Message Store pattern 363
The Detour pattern 368
10.2 Monitoring using JMX 375
Using JMX to administer Mule 376 ■
Monitoring Mule
using MC4J 380 ■
Mule Galaxy and Mule HQ 382
Using JMX to administer ServiceMix 386 ■
Monitoring
ServiceMix using MC4J 388
10.3 Summary 391
11 Implementing a process engine in the ESB 393
11.1 Introducing the process engine 394
The execution environment for processes 395 ■ Designing
processes for a process engine 397
11.2 A process engine case study: booking a day of scuba
diving 400
11.3 Diving into the messages and services 402
Designing the case study message definitions 403 ■
Serializing
the case study messages to XML with JiBX 405 ■
Setting the
stage for the case study implementation 406
11.4 Implementing a process engine with jBPM and jPDL 411
Orchestrating services with jPDL 411 ■
Implementing the
case study with jBPM and Mule 415
11.5 Implementing a process engine with Apache ODE and
WS-BPEL 426
Orchestrating services with WS-BPEL 426 ■
Implementing the
case study with Apache ODE and ServiceMix 429
11.6 Summary 435
appendix A: ServiceMix 4.0 436
appendix B: Differences between Mule 1.4.x and Mule 2.0.x 441
appendix C: Graphical tool support 445
appendix D: Mule component overview 452
appendix E: ServiceMix component overview 469
appendix F: The Swing test client 477
appendix G: Overview of tools and libraries 481
index 484
xiii
foreword
Getting different applications to work together has never been fun. It’s not sexy, the
rewards are limited, and there is no glory. Throughout my career, it seemed as if a stigma
was associated with integration—that it was a dirty job, and you pulled the short straw
if you were working in this area. Personally, I always enjoyed working in integration,
and because enterprises never throw anything away, getting different applications to
work together has become an increasingly essential element of IT.
Things really became interesting when the enterprise service bus (ESB) made its debut.
The concepts on which the ESB is founded have changed over time. Since IBM first
released MQSeries, enterprises have been sold on the benefits of decoupling systems
using point-to-point message queues. When TIBCO brought Rendezvous to the mar-
ket, it expanded the horizons of messaging by introducing the publish-subscribe
model. The Java Message Service (JMS)—born through Sun’s Java Community Process
(JCP)—set out to unify the point-to-point and publish-subscribe messaging models. It
wasn’t long before enterprises required more than just messaging; they also needed a
way to orchestrate messages between systems and perform transformations.
To address this need, major vendors such as IBM, Oracle, and Microsoft built enter-
prise application integration (EAI) brokers that added message brokering and central-
ized transformation engines on top of their existing messaging servers. The problem
with the EAI approach was that it adopted a hub-and-spoke architecture where all data
had to flow through the EAI broker. Although this worked for many applications,
enterprises were soon pushing the boundaries of these systems; it became clear that
something more flexible, scalable, and distributed was required. Enterprises needed
FOREWORD
xiv
connectivity, transaction management, security, and message routing, and they needed
to host services that operated on data moving around their systems. The industry
needed the ESB.
With the advance of service-oriented architecture (SOA) in the last several years,
we’ve seen confusion unfold about what SOA really is. One affirmation that has reso-
nated well in the industry is that the ESB is the foundation of SOA. The term SOA cov-
ers a much broader topic than just technology, but we need technologies like ESBs to
realize the benefits of what service orientation has to offer. The ESB provides an
anchor point for many enterprises that are braving the nebulous ocean of SOA mar-
keting, vendor claims, and vaporware. The ESB bridges the gap between old and new.
It acts as a mediator between application integration and service orientation, enabling
enterprises to build new applications and processes from existing technology.
The ESB has gained in popularity because there is a general understanding of what
an ESB is; but if you’re still confused, this book will definitely provide clarity. The
notion of an ESB involves a common messaging bus that is used to communicate
between different systems within an enterprise. Typically, there is a shared messaging
format on the bus, and adapters between the bus and back-end applications translate
data from the proprietary data formats to the shared message bus format. The power
of this model is that applications can share information while being totally decoupled
from one another. Additionally, the ESB provides a common platform for handling
security, transformations, message routing, transactions, and monitoring. This book
does a great job of covering each of these topics and dives deep into the detail of how
to apply these features in the real world.
I founded the Mule project in 2003 because I was frustrated by the proprietary
nature of products available for building ESB solutions. In 2001, I was working as an
architect for a tier-1 investment bank. I was tasked with building a custom ESB-like
solution to integrate hundreds of legacy and custom applications. Back then, the term
enterprise service bus hadn’t been coined (although by 2002, Sonic Software, Fiorano,
and SpiritSoft all staked claim to the term), but what we built was in fact an ESB. At the
time, the technology choices were limited; you used either an application server or a
heavyweight EAI solution that required a huge upfront investment in infrastructure,
money, and human resources. We wanted something lightweight and easy to deploy
and manage. Like many enterprises at the time, we built our own abstraction on top of
JMS. We discovered early on that building our own was an extreme undertaking and a
huge burden on our developers. After that experience, I realized that the industry
needed an open source solution built on open standards.
The open source model is the perfect choice for developing an ESB. More accu-
rately, open source is perfect for integration. After all, ESBs are about surfacing,
manipulating, and moving data between applications. Application integration is com-
plex on many levels. The permutations of applications, protocols, message formats,
environment restrictions, and nuances in the way an application (or even a standard)
has been implemented cause system integrators an unholy amount of grief. No single
FOREWORD xv
vendor can realistically claim to understand the intricacies of your application envi-
ronment, so all the proprietary vendors have instead chosen to offer products that
make their customers abide by their rules when building an ESB solution. I can say
from experience that this quickly becomes a problem when the vendor’s approach
doesn’t suit your needs. Sometimes, you want to get into the code and customize for
the problem at hand.
By providing access to the source code, open source ESBs can alleviate these prob-
lems—but the benefits don’t stop there. By nature, open source projects are devel-
oped to be lean and modular. Developers working on the project don’t have time to
maintain a huge product, and they want the code base to be accessible to their com-
munity to encourage contributions. Given that the use cases for ESBs and integration
are so varied, it’s impossible to have one vendor test every scenario. It’s far better to
give the code to a community of active users who provide testing and feedback about
their experience with the ESB. That same user community has connectivity and message-
format requirements far beyond what is provided, so it makes sense to enable the
users to build support for the more exotic protocols. These extensions can then be
committed back to the project for the benefit of the rest of the community.
Since the Mule project was founded in 2003, many open source ESBs have emerged.
Each has its own way of doing things, and each focuses on different areas. As examples,
Apache ServiceMix is built on Java Business Integration (JBI), whereas Apache Synapse
is built around the Web Services (WS) standards, and Apache Tuscany uses the Service
Component Architecture (SCA) standard. Mule takes a pragmatic approach by embrac-
ing these standards without forcing the use of any of them, giving the user a great deal
of flexibility when building an ESB solution.
Choice is usually a good thing for consumers, but with so many choices, it can be
difficult to navigate the landscape of open source ESBs. I believe this book is a valuable
resource for those looking to choose an ESB and wanting a stronger grasp on how to
implement an ESB using open source projects. I found the case studies in section 3
particularly useful because they pull together many of the concepts learned through-
out the book.
This book guides you through a logical journey of discovery and demonstration to
deliver a solid understanding of the core ESB concepts and how you can use them in
the real world. I think that armed with this book and the wealth of open source
projects available, you’ll be ready to take on any ESB project. Open source has made
ESBs a lot more interesting. Go and enjoy yourself!
ROSS MASON
Co-Founder & CTO, MuleSource, Inc.
Founder of the Mule Project
Open Source ESBs in Action 1st Edition Tijs Rademakers
xvii
foreword
Enterprise service bus is a loosely defined term, and lots of products are claiming to
implement the ESB concept. This concept is covered in depth in the first chapter of
this book; in short, the goal is to provide a distributed and reliable mediation frame-
work that the different systems in an IT environment can use to communicate, thus
removing the need for a given system to know how to talk to the others in a specific
way. Integration, which is what ESBs are about, is complicated: Each time you add a
system, it needs to talk to all the other systems, and ad-hoc integration between the
systems has long been considered a bad solution.
The concept of EAI emerged as a solution, but it led to another set of problems
related to using a hub-and-spoke architecture, where a single system, the EAI broker,
becomes the center of the system and a single point of failure. The next step of this evo-
lution led to what is now known as an ESB: Data and exchanges are conveyed from sys-
tem to system in a single logical bus, decoupling all the systems from each other. This
leads to a much more maintainable system and can save a lot of time in the long term.
Integration technologies are becoming commodity software, and the rise of open
source integration frameworks is becoming increasingly important. Open source is
now unavoidable; who would think about paying for an XML parser? ESBs aren’t at this
point yet, but most of the underlying technologies in the integration world are avail-
able as open source projects, from JMS brokers to SOAP stacks to ESBs. Companies gener-
ally use ESBs to convey sensitive data, and they sometimes need advice when they’re
developing the applications hosted in the ESBs or when they’re putting these applica-
tions in production. Even if you don’t immediately think of commercial support and
FOREWORD
xviii
open source together, this is one of the main reasons it’s important to have companies
that can provide consulting, training, and support for such projects; this requirement
is now filled by a huge number of open source projects.
In this book, you’ll learn how to use two different open source products classified as
ESBs. Having committed on both Mule and ServiceMix, I think both projects are awe-
some and mature, have good communities, and are backed by vendors that can provide
the needed support. By reading this book, you’ll see that even if the two projects have
different configurations and sometimes different ways of solving the same problem,
you’ll be able to solve your problems with both.
One of the key differentiators is that ServiceMix implements the Java Business Inte-
gration (JBI) specification. JBI defines a framework to connect components and make
them talk together in a standard way. In the JBI world, components can host business
logic (a BPEL engine or a rules engine) or handle a particular protocol (HTTP, JMS, and
so on). The key benefit of JBI is that new components can be wired easily on the bus,
because they all abide by the JBI specification. For example, ServiceMix doesn’t provide
a BPEL engine by itself; instead, you can plug in any JBI-compliant component for BPEL
(such as the one provided by Apache Ode).
Even after you’ve learned how to configure and use ServiceMix, at the end of this
book, you won’t dive too far into the JBI API. The JBI specification doesn’t target end
users, but rather is intended to be implemented by ESB vendors and other software
vendors that want to integrate their products in a JBI-compliant environment, such as
a BPEL engine, a business rules engine, a transformation engine, or another specific
technology. This is, in my mind, the key benefit of JBI.
JBI 1.0 has some shortcomings: the JBI packaging and classloader architecture, the
mandatory use of XML everywhere in the bus, and the fact that writing a JBI compo-
nent isn’t easy. But being part of the Expert Group for JBI 2.0, my hope is that those
shortcomings will be addressed in the next version of the specification—or even ear-
lier, in ServiceMix 4, which is briefly discussed in the appendixes of this book.
That’s why open source is so attractive: The feedback from the community pro-
vides vital input for the next major version of a product, and this usually leads to
better and more innovative products. Enjoy this book and learning from Tijs and Jos
how to work with Mule and ServiceMix in a wide variety of integration challenges.
You’re also invited to work with the community on making these open source ESBs
even better!
GUILLAUME NODET
Principal Engineer IONA
Project Lead Apache ServiceMix
xix
preface
Working on integration projects used to mean working with EAI products, each of
which implemented its own stack of tools with proprietary technology. To switch from
one EAI product to another meant learning the proprietary technology and toolset
from that new product. Then, the market changed from EAI to SOA and ESB products,
with more focus on open standards that emerged in the integration market. Examples
of these open standards are Java Message Service (JMS), SOAP, XML, and WS-*. With
open standards available, more and more open source projects began to implement
these specifications.
Because we enjoyed working with open source frameworks in JEE application devel-
opment, we watched the progress of integration frameworks with a lot of interest. Mule
was one of the first projects that provided a large set of integration functionality; after
a while, it was called an ESB. When we had the chance to design an SOA architecture of a
new solution for our current employer in 2005, we chose Mule as the foundation prod-
uct. It was delightful to work with an open source ESB to solve our integration needs,
because it offered a rich set of integration functionality out of the box. Even when we
had to add nonexistent functionality, the ease of development was striking.
At the same time, the JBI specification (JSR 208) was released. It was intended to
standardize the ESB infrastructure and had the potential to implement an ESB with
products from several vendors, with each product suited for its specific task, such as
routing, transformation, or service orchestration. Although the JBI specification
didn’t really take off, some interesting products were created. Apache ServiceMix is
an excellent example of a JBI implementation; because it makes working with the JBI
PREFACE
xx
specification simple, we think ServiceMix is a great alternative to Mule. Mule focuses
on ease of development with support for all kinds of payloads, and it uses an architec-
ture and design model, which isn’t based on a specification. ServiceMix implements
the JBI specification and therefore focuses on XML payload and the implementation of
binding components and service engines.
Mule and ServiceMix have a lot of differences, but they also have common ground
that’s focused on integration functionality. We noticed the lack of books in the open
source integration area, and it occurred to us that we could write a book that covered
both Mule and ServiceMix; it would provide a good overview of the current state of
open source integration products. Because we’re developers and are working on cli-
ent projects all the time, we decided to provide a lot of examples in the book.
Writing this book has been an intense, but interesting and enjoyable experience. It
took a lot of time to implement every example, but the result is material that’s freely
available to everyone and a good starting point for a Mule or ServiceMix project. While
we were writing this book, we had a hard time keeping up with the fast development
pace of the Mule and ServiceMix projects and emerging frameworks like Apache
Camel and Spring Integration. But we kept up: This book uses Mule 2.0.2 and Service-
Mix 3.2.1. Please note that there has been a new release of ServiceMix with version 3.2.2.
This is just a maintenance release which does not change the contents of this book, nor
the example implementations.
We provide a fully implemented development environment with many additional
frameworks and libraries, and functionality to build and test integration solutions. This
book provides a complete approach to working with Mule and ServiceMix, and we
hope you’ll enjoy reading it and working with the examples.
xxi
acknowledgments
We appreciate the contributions of many people who have helped us make this book a
reality. We couldn’t have written it without the discussions, enthusiasm, remarks, and
code and chapter reviews of these individuals.
Special thanks to Andy Verberne, who provided invaluable feedback about the
chapters and the code examples. We were also happy with the support and feedback
we received from the Mule team, especially Ross Mason and Daniel Feist; and from
the ServiceMix team, particularly Guillaume Nodet and Bruce Snyder. We also want to
thank Guy Crets for his comments in the early stages of writing this book and for his
enthusiasm and support throughout our writing period. We don’t have enough space
to mention all the people involved, but your help is appreciated.
At Manning Publications, we’re grateful to our development editor Jeff Bleiel. Jeff
was great to work with, and his work improved the readability of our manuscript a lot.
We also want to thank publisher Marjan Bace for giving us the opportunity to write
this book and for his no-nonsense comments and remarks, which made this book
what it is. Thanks to the Manning production team for turning our manuscript into a
real book. Finally, we want to thank the reviewers who gave valuable feedback at all
stages during manuscript development: Edmon Begoli, Martyn Fletcher, Valentin
Crettaz, Lajos Moczar, Andrew Oswald, Davide Piazza, Rick Wagner, Christian Siegers,
Craig Borysowich, Jeff Davis, Holger Hoffstätte, Rodney Biresch, Jeroen Benck-
huijsen, John Reynolds, Doug Warren, Steve Smith, Hugh Taylor, Dmitri Maximovich,
Andrew Perepelytsya, Ross Mason, Dave Corun, Glenn Stokol, Scott Stirling, Andrew
Cooke, Emmanuel B. Sangalang, and Dan Alford.
ACKNOWLEDGMENTS
xxii
And very special thanks to Ross Mason and Guillaume Nodet for taking the time out
of their busy schedules to look at the manuscript and to write forewords to our book.
TIJS RADEMAKERS
I would like to thank my girlfriend Ankie, who recently gave birth to our first child,
Liv. Without your support during all the hours of writing, this book would have never
been written. I promise to be more involved in our little family from now on. I also
want to thank my parents Wil and Fieke and in-laws Fer and Annie for their love and
understanding. Jos, thanks for all your commitment, enthusiasm, and knowledge dur-
ing the years of writing and discussing this book. Also thanks to my managers Diego
and Hugo for providing time and freedom in my day-to-day job.
JOS DIRKSEN
Many people have supported me during the writing of this book. In particular I’d like
to thank Tijs for keeping me on my toes during the writing of this book. I’d also like to
thank the team at Manning for helping us to write and produce this book: specifically
Jeff, for reviewing and tidying up the chapters, and of course all the reviewers for taking
the time to offer comments and feedback.
I also want to express my gratitude to Diego, my boss at Atos Origin, for giving me
time to write parts of this book during office hours. Another colleague I’d like to
thank is Andy, who provided us with an extensive review and also spent much of his
time doing the final technical review of the book.
Finally, I want to thank my girlfriend Brigitte—who when this book comes out will
be my wife—for not complaining too much about the evenings and weekends spent
working on the book (and my occasional bad temper).
xxiii
about this book
This book is for everyone interested in open source ESBs in general and Mule and
ServiceMix in particular. For consultants and architects, this book provides an excel-
lent overview of the functionality provided by Mule and ServiceMix and other open
source–based integration frameworks. For developers, this book provides numerous
code examples and a ready-to-go development environment that you can use to start
your projects.
We use Mule 2.0.2 and ServiceMix 3.2.1 in this book. New versions of Mule and
ServiceMix will be released at a constant rate; for example when this book went to
press, ServiceMix had a new maintenance release, version 3.2.2. If you are looking for
updated examples that will work with newer versions of Mule or ServiceMix, please
visit our website at http://www.esbinaction.com.
Roadmap
Part 1 of the book starts by explaining the core functionalities of an ESB and the
project structure and architecture of Mule and ServiceMix, including some basic
examples. Be sure you don’t skip this part!
■ Chapter 1 introduces the functionality that an ESB is expected to provide. We
explain seven core functionalities in detail. We also provide an overview of
the currently available open source ESBs with a detailed comparison. We fin-
ish the chapter with a hello world example that uses Mule and ServiceMix.
ABOUT THIS BOOK
xxiv
■ Chapter 2 explores the architecture of both Mule and ServiceMix. We describe
Mule concepts like endpoints, routers, transformers, and components and work
through examples. With ServiceMix, we introduce the JBI specification and dis-
cuss service engines, binding components, and the Normalized Message Router
(NMR). In this chapter we also provide some examples of how to implement ser-
vice Units to be deployed on ServiceMix.
■ Chapter 3 introduces three technologies that complement the Mule and Service-
Mix open source ESBs: Spring, JiBX, and ActiveMQ. We also set up a develop-
ment environment that includes all the tools and libraries you’ll need
throughout the book. The chapter ends with Mule and ServiceMix examples
that use the three new technologies and test the development environment.
■ Chapter 4 describes how to develop simple integration solutions with Mule and
ServiceMix. We finish this chapter with a description of a message flow and a
more complex example implementation.
Part 2 discusses the core functionalities of Mule and ServiceMix in more detail, with
lots of examples including routing, transformation, connectivity, web services, and
error handling:
■ Chapter 5 shows how to implement routing, validation, and transformation in
Mule and ServiceMix. We also show an alternative implementation for routing
and validation that uses Apache Synapse.
■ Chapter 6 discusses the most common connectivity options for Mule and Service-
Mix. They include JMS, FTP, File, JDBC, and Mail, and we demonstrate their use
with lots of practical examples.
■ Chapter 7 is dedicated to web services functionality. Mule and ServiceMix use
Apache CXF (the successor of XFire) as their main web services platform. We
show examples that use a top-down approach (WSDL to Java) and a bottom-up
approach (Java to WSDL).
■ Chapter 8 explores more complex ESB functionality. We present a number of
examples that involve error handling, showing you Mule’s and ServiceMix’s exten-
sive ability to handle exceptions. We also discuss security and transactions.
In part 3, we introduce a pattern-based design approach and implement a full case
study using Mule and ServiceMix. We also present a monitoring and management envi-
ronment, and we use a case study to demonstrate integration with a process engine:
■ Chapter 9 starts with an introduction to Enterprise Integration patterns and pro-
vides a pattern-based design approach you can use in open source ESB projects.
We also describe a case study with full example implementations in both Mule
and ServiceMix.
■ Chapter 10 talks about the management and monitoring parts of an open source
ESB, related to the case study from chapter 9. We explain how to use JMX and
JConsole to manage your Mule and ServiceMix environment, and we show how
to use MC4J to monitor these open source ESBs.
ABOUT THIS BOOK xxv
■ Chapter 11 introduces the use of a process engine together with an ESB. We show
how you can use jBPM as a process engine, together with Mule as an ESB, to
implement a process-driven integration solution. We also explain how to use
Apache ODE as a process engine, together with ServiceMix as an ESB, for the
same example integration solution.
Code conventions
All source code in listings or in text is in a fixed-width font like this to separate
it from ordinary text. We use two dominant languages and markups in this book—
Java and XML—and we try to adopt a consistent approach. Method and function
names, object properties, XML elements, and attributes in text are presented using
this same font.
In many cases, the original source code has been reformatted; we’ve added line
breaks and reworked indentation to accommodate the available page space in the
book. In rare cases even this was not enough, and listings include line-continuation
markers. Additionally, many comments have been removed from the listings. Where
appropriate, we’ve also cut implementation details that distract rather than help tell
the story, such as JavaBean setters and getters, import and include statements, and
namespace declarations.
Code annotations accompany many of the listings, highlighting important concepts.
In some cases, numbered bullets link to explanations that follow the listing.
Code downloads
Source code for all of the working examples in this book is available for download from
www.manning.com/OpenSourceESBsinAction. Basic setup documentation is provided
with the download.
Because this book covers a wide range of topics related to open source ESBs, we
also introduce many tools and frameworks, including databases, process engines,
LDAP servers, and XML serialization. To make it easier for you to set up the environ-
ment, we’ve provided an Ant build script that downloads all the necessary tools and
frameworks and creates the right directory structure. For a full explanation of the
project structure, read chapter 3.
Author Online
The purchase of Open Source ESBs in Action includes free access to a private web forum
run by Manning Publications, where you can make comments about the book, ask techni-
cal questions, and receive help from the authors and from other users. To access the forum
and subscribe to it, point your web browser to www.manning.com/OpenSourceESB
sinAction. This page provides information about how to get on the forum once you’re
registered, what kind of help is available, and the rules of conduct on the forum.
Manning’s commitment to our readers is to provide a venue where a meaningful
dialogue between individual readers and between readers and the authors can take
ABOUT THIS BOOK
xxvi
place. It isn’t a commitment to any specific amount of participation on the part of the
authors, whose contribution to the forum remains voluntary (and unpaid). We suggest
you try asking the authors some challenging questions lest their interest stray! The
Author Online forum and the archives of previous discussions will be accessible from
the publisher’s website as long as the book is in print.
About the authors
TIJS RADEMAKERS is a software architect with more than six years of experience in
designing and developing Java and EE applications. He works for Atos Origin, a large
European system integrator, where he is responsible for SOA and BPM services and
knowledge development. Tijs has designed and implemented large process- and appli-
cation-integration solutions, primarily focused on open standards. He has extensive
product knowledge of open source as well as closed source SOA and enterprise inte-
gration tools, including Mule, ServiceMix, jBPM, and WebSphere Process Server. Tijs
is a regular speaker at Java conferences, where he talks about open source integration
topics like Mule and ServiceMix. Tijs lives in the Netherlands near Eindhoven with his
girlfriend and his new daughter, Liv.
JOS DIRKSEN has been working with Java and J2EE applications for more than six years
as a software architect. The last couple of years, his focus topics have been open
source, security, and quality. He has worked with various open source and commercial
integration solutions, mostly in the areas of government and healthcare. Jos has a lot
of project experience working with Mule, Apache Synapse, and Apache Axis2 and has
also completed projects based on the integration tooling from IBM. Jos regularly gives
presentation on open source, Mule, and other related topics. He lives in Eindhoven,
the Netherlands, with his wife.
About the title
By combining introductions, overviews, and how-to examples, the In Action books are
designed to help learning and remembering. According to research in cognitive science
the things people remember are things they discover during self-motivated exploration.
Although no one at Manning is a cognitive scientist, we’re convinced that for learn-
ing to become permanent it must pass through stages of exploration, play, and, inter-
estingly, retelling of what is being learned. People understand and remember new
things, which is to say they master them, only after actively exploring them. Humans
learn in action. An essential part of an In Action book is that it’s example-driven. It
encourages the reader to try things out, to play with new code, and explore new ideas.
There is another, more mundane, reason for the title of this book: Our readers are
busy. They use books to do a job or solve a problem. They need books that allow them
to jump in and jump out easily and learn just what they want just when they want it.
They need books that aid them in action. The books in this series are designed for
such readers.
ABOUT THIS BOOK xxvii
About the cover illustration
The figure on the cover of Open Source ESBs in Action is captioned “A traveling sales-
man” and it is taken from a 19th century edition of Sylvain Maréchal’s four-volume
compendium of regional dress customs published in France. Each illustration is finely
drawn and colored by hand.
The rich variety of Maréchal’s collection reminds us vividly of how culturally apart
the world’s towns and regions were just 200 years ago. Isolated from each other, peo-
ple spoke different dialects and languages. In the streets or in the countryside, it was
easy to identify where they lived and what their station in life was just by their dress.
Dress codes have changed since then and the diversity by region, so rich at the
time, has faded away. It is now hard to tell apart the inhabitants of different conti-
nents, let alone different towns or regions. Perhaps we have traded cultural diversity
for a more varied personal life—certainly for a more varied and fast-paced technolog-
ical life.
At a time when it is hard to tell one computer book from another, Manning cele-
brates the inventiveness and initiative of the computer business with book covers
based on the rich diversity of regional life of two centuries ago, brought back to life by
Maréchal’s pictures.
Open Source ESBs in Action 1st Edition Tijs Rademakers
Part 1
Understanding ESB
functionality
An enterprise service bus (ESB) is a confusing topic in the modern world of
IT. Sometimes it’s referred to as an architectural pattern, which describes a flexi-
ble and constructive way to approach integration challenges. The ESB seen as a
pattern can and will be implemented with several different products, each excel-
ling in its own domain like routing, transformation, security, and orchestration.
An ESB from an integration vendor perspective is a product offering that
provides integration functionality, a developer toolset, and a management envi-
ronment. These product offerings often have a background in the enterprise
application integration (EAI) domain.
Another perspective of an ESB is as an important part of a service-oriented
architecture (SOA). From the SOA perspective, an ESB can be used as an integra-
tion platform that enables existing IT assets and applications to be exposed as
services. Because the ESB is based on open standards, the proprietary technology
of legacy applications can be exposed as services based on open and modern
technologies like web services and messaging.
In part 1, we will show the functionality an ESB can offer to solve integration
challenges. We take a close look at open source ESBs and provide an overview of
the open source ESBs currently available. We also introduce two open source
ESBs, Mule and Apache ServiceMix, and show you how to set up a development
environment to work with these ESBs and the examples in this book. Finally, we
take a first look at how to implement integration functionality and message flows
in Mule and ServiceMix.
Open Source ESBs in Action 1st Edition Tijs Rademakers
3
The world of
open source ESBs
If you ask integration specialists and architects to supply one buzzword used in the
integration market today, enterprise service bus (ESB) would be one of the pre-
dominant answers. Concepts like service-oriented architecture (SOA) and business
process management (BPM) would also be mentioned. These buzzwords sound
interesting, but are they just part of the hype in the integration market or do they
represent real business value?
As with every buzzword in the integration industry, a sales pitch is involved, but
these concepts have a business case. Other books are available that focus on SOA
(such as Understanding Enterprise SOA by Eric Pulier and Hugh Taylor [Manning,
2005]). In this book we focus on the enterprise service bus, but we also discuss
some interesting open source products related to SOA and BPM.
There’s a lot of confusion about what an ESB is, so let’s start off with an over-
view of the most important functionality that should be present in a product call-
ing itself an ESB. Many ESB products are available in the market, from vendors like
In this chapter:
■ Typical ESB functionality
■ Open source ESB overview
■ Mule and ServiceMix
4 CHAPTER 1 The world of open source ESBs
IBM, TIBCO, Microsoft, and Oracle. Most ESB vendors offer products that have a back-
ground in the enterprise application integration (EAI) market. As we’ll see in
section 1.1, this is not so strange, because ESB functionality has a lot in common with
the older EAI products.
But there are also a number of products available that have been built from the
ground up. In this group of products we see not only commercial vendors but also
open source projects that deliver the functionality needed in an ESB.
In section 1.5 we examine two open source ESBs (Mule and ServiceMix) that we
use in the examples and case studies presented in this book. These two open source
ESBs have gained a lot of attention in the market and are the two most used open
source ESBs in businesses around the world today. This means that this book is not a
typical cookbook for a specific ESB. Because we show examples involving two ESBs,
we’re confident that you’ll gain the knowledge and experience you need to use any
open source ESB.
1.1 Why do you need an ESB?
We can’t begin a book about open source ESBs without a good discussion about the use
of an ESB within an enterprise. Maybe you’ve already read articles or books that intro-
duced the concept of an ESB. If you want to have a solid background, we recommend
you check out Enterprise Service Bus by David A. Chappell (O’Reilly Media, 2004).
A lot of the early ESB products had a history in the enterprise application integra-
tion market. It was sometimes hard to tell the difference between some ESB products
and their EAI predecessors!
However, we can identify two main differences between EAI and ESB products. The
first is the change from the hub-and-spoke model in EAI products to a bus-based model
in ESB products. The hub-and-spoke model is a centralized architecture, where all data
exchange is processed by a hub, or broker. The hub-and-spoke model can be seen as
the successor of the point-to-point model (which we discuss in figure 1.1 in a moment).
The bus model, on the other hand, uses a distributed architecture, in which the ESB
functionality can be implemented by several physically separated functions.
A second main difference between EAI and ESB products is the use of open stan-
dards. EAI products like WebSphere Message Broker, TIBCO BusinessWorks, and
Sonic XQ were mainly based on proprietary technology to implement messaging func-
tionality and transformation logic. ESB products are based on open standards, such as
Java Message Service (JMS), XML, J2EE Connector Architecture (JCA), and web ser-
vices standards.
As we mentioned earlier, many current ESB products have a background in the EAI
space. So newer versions of WebSphere Message Broker (version 6), TIBCO Business-
Works (version 5), and Sonic ESB (yes, the name has changed) are now marketed as
ESBs but still have a strong foundation in EAI. In addition, a number of ESBs have
been built from the ground up, like WebSphere ESB, Cordys, and TIBCO ActiveMatrix
Service Grid.
5
Why do you need an ESB?
Because open source ESBs were not yet available during the EAI period, they
don’t have a history in the implementation of proprietary technology. Many integra-
tion specifications like JMS and Java Business Integration (JBI) are available, and
open source ESBs use these specifications as the foundation for their open source
product implementations.
But why do you need an ESB? Let’s take some time to explore the benefits of
an ESB. Then, in section 1.1.2 we look in greater detail at the ESB from an applica-
tion perspective.
1.1.1 Benefits of an ESB
In any discussion of the implementation of an ESB within an organization or depart-
ment, there’s a need for a management-level overview of an ESB. In essence, an ESB is
a technical product that solves integration problems. But let’s try to step back from
the technical aspects of an ESB and talk about some high-level benefits. To show the
advantages of an ESB, we start with an overview of how applications are integrated
without the use of an EAI broker or an ESB. This model (see figure 1.1) is known as
point-to-point architecture.
The application landscape example shown in figure 1.1 is still a common way of
dealing with integration problems. In this example, four existing applications are inte-
grated via point-to-point integration solutions. For example, the enterprise resource
planning (ERP) system needs to have billing information from the COBOL application.
Figure 1.1 The point-to-point model describes an environment where applications are integrated
with a unique and custom-made integration solution.
6 CHAPTER 1 The world of open source ESBs
Because the COBOL application is only capable of exporting a file in a batch, a custom-
made integration solution is being used to transfer the billing information from the
exported file to the ERP system. The information also has to be transformed to a data
format that the ERP system is able to process. For every line drawn between the four
existing applications in figure 1.1, a custom integration solution is developed. So an
important downside to the point-to-point model is the number of custom-made inte-
gration solutions that must be developed and maintained.
The complexity and maintenance cost increase when we add a new application to
this application landscape. Imagine that this new application must communicate with
the ERP, customer relationship management (CRM), and COBOL application as
depicted in figure 1.1. This means that we need to implement three new integration
solutions to be able to integrate this new application into the existing environment.
In this kind of application environment, there are many reasons to think about an
integration solution like an ESB (summarized in table 1.1). Is there a business driver
to integrate applications? In most organizations a real business need exists for inte-
grating applications. New products have to be delivered to the market today, not
tomorrow. And the IT environment must be able to facilitate the business to be able to
do this. An ESB can help to increase the flexibility of an IT environment, and there-
fore can help to improve the time-to-market for new products.
Here’s another reason to consider ESBs: the application landscape is heterogonous
when it comes to technologies and protocols. When you have to deal with many differ-
ent protocols—for example, JMS, FTP, HTTP, SOAP, SMTP, and TCP—it’s difficult to
implement new integration solutions between applications. An ESB provides protocol
or technology adapters, which make it easy to deal with a heterogonous IT environment.
A third reason is the reduction of the total cost of ownership of the full application
landscape. In a point-to-point model, the management and maintenance of all the
integration points can be time-consuming and therefore expensive. It would be less
time-consuming to have an ESB solution to deal with integration problems so that
management and maintenance becomes easier.
Table 1.1 Reasons to start thinking about an ESB
Reason Description
Necessity to integrate applications There must be a clear business need to integrate applica-
tions. Time-to-market and real-time reports are examples of
business drivers.
Heterogonous environment When you have to deal with lots of different technologies
and protocols, there is a clear need for a central solution
that’s made to deal with these challenges.
Reduction of total cost of ownership IT departments are forced to cut maintenance costs to be
able to satisfy demands for new products by the business
departments. A central integration solution can help
decrease the management and maintenance costs of the
full application landscape.
7
Why do you need an ESB?
We’ve discussed the point-to-point model and explained the disadvantages of this
model. The introduction of an ESB to an application landscape could help to deal
with the maintenance nightmare and make it easier to add new applications. Let’s go
back to the application environment example described in figure 1.1. The addition of
an ESB to this environment is depicted in figure 1.2.
What’s most striking in figure 1.2 is the reduction in the number of integration
connections among the various applications. Every application is connected to the
ESB, and the integration logic needed to integrate the COBOL application with
the CRM application is implemented within the ESB. Note that the ESB landscape
shown in figure 1.2 is just a high-level picture. The picture hides the complexity of
implementing the integration logic by drawing an ESB layer, but complexity remains
inside this layer that should be dealt with. The big difference with the point-to-point
model is that the ESB is designed to deal with integration challenges. Because an ESB
provides all kinds of integration functionality, workbenches, and management envi-
ronments out of the box, implementing a new integration flow between applications
is made much easier.
Figure 1.2 An application landscape using an ESB to integrate the applications
8 CHAPTER 1 The world of open source ESBs
As shown in figure 1.2, adding a new application is also simpler than ever before. The
new application is connected to the ESB with the transport protocol and technology
adapter suited for this application. The integration flows that connect the new appli-
cation with the three existing applications can be handled within the ESB.
This concludes our discussion about the benefits of an ESB on a high level. Let’s
focus a bit more on the technology aspects of an ESB, as we take a look at the ESB from
an application perspective.
1.1.2 Using an ESB from an application perspective
With the rise of Java Message Service (JMS) as a messaging standard, most of the inte-
gration products that are currently available in the market are built with Java technol-
ogy. The integration vendors, however, hide this Java technology from the integration
specialist by offering fancy integration workbenches, which let you use drag-and-drop
development. Therefore, integration architects and specialists working with these
integration products often don’t have a background in Java and Java Enterprise Edi-
tion (JEE) development.
This book focuses on a specific kind of ESB, the open source ESB. Open source
ESBs are also built on JMS and other Java technologies. Although graphical tools are
also available for most of the open source ESBs, as we’ll see later in this book, open
source ESBs are more focused on Java and XML development. In this book we show
many code examples that include Java and XML snippets, because that’s the typical
place to implement integration logic within an open source ESB. This means that you
shouldn’t be afraid of doing a bit of Java coding and XML configuration when using
an open source ESB.
A COMMON JEE APPLICATION ARCHITECTURE
Because you likely have a Java background, we’ll look at the use of an ESB from a Java
or JEE application in this section. To start this discussion, let’s examine a typical JEE
application architecture, as shown in figure 1.3.
The three-tier architecture approach shown in figure 1.3 is common in JEE or
Microsoft .NET applications developed in business-critical environments. The division
of the application logic into three layers promotes the scalability of an application
and should improve the maintainability. All the functionality needed for the applica-
tion shown in figure 1.3 is implemented in the three layers. The only external part
necessary is a relational database to retrieve and store the information that’s main-
tained in the application. So would this application architecture benefit from intro-
ducing an ESB?
Well, knowing that the logic implemented in this application isn’t used by other
applications, the answer is no. This kind of application can be categorized as an iso-
lated application that doesn’t have the need to communicate with other applications.
In the early years of this century, the architecture of most applications that were devel-
oped for large businesses looked like the example shown in figure 1.3.
9
Why do you need an ESB?
DESCRIBING THE NEED FOR AN INTEGRATION SOLUTION
However, with the demand to improve the flexibility of business processes and the
time-to-market for new products and other business drivers, applications have to be
integrated. The need for a single-client view is an example of the need for application
integration. Information about clients exists in many businesses scattered across dif-
ferent applications, like CRM applications, ERP systems, and legacy applications. When
the call center of such a business needs a complete client overview, information from
all these applications is necessary. And most likely, the call center application is not
the only party interested in the client view. Figure 1.4 shows an overview of this single-
client view example.
The example given in figure 1.4 requires a solution that’s capable of retrieving the
information of a specific client from the ERP, CRM, and COBOL applications and
that’s able to consolidate this information into a single-client view and return it to the
call center application. We have multiple options for implementing such an integra-
tion solution.
ADDING AN ADDITIONAL LAYER TO THE APPLICATION
One option is to enrich the call center application with logic necessary to create the
single-client view. This would mean that the application architecture shown in figure 1.3
should be extended with an integration layer. This integration layer is responsible for
the retrieval of the client information from the three other applications. Although only
three applications need to be integrated, a lot of integration logic is necessary. You can
imagine that the connectivity necessary to integrate the legacy COBOL application is
different from the connectivity needed for the ERP system. This means that the integra-
tion layer of the call center application also needs to support different connectivity pro-
tocols and likely different message formats as well. The architecture of the call center
application would then look like the overview in figure 1.5.
Figure 1.3 Here’s a typical example of an application with a
three-tier architecture. The application logic is divided into three
layers, which can be distributed over multiple physical servers to
improve scalability and performance if necessary.
10 CHAPTER 1 The world of open source ESBs
The architecture shown in figure 1.5 is not bad per se. If the logic or data of the appli-
cations that needs to be integrated won’t be needed in any other application within a
department or enterprise, a separate integration solution may not be necessary. But
implementing different connectivity protocols; supporting various message formats;
and providing messaging, routing, and transformation functionality is a time-consuming
exercise. Furthermore, dedicated software is available to solve an integration prob-
lem. This is where the ESB product comes into the picture.
USING AN ESB TO IMPLEMENT THE INTEGRATION SOLUTION
When we look at the possibilities for adding an ESB to the architecture shown in fig-
ure 1.5, it’s clear that the main difference involves the size of the integration layer and
the abstraction that an ESB can provide. The integration logic needed for the ERP,
CRM, and COBOL applications can be implemented in the ESB solution. Furthermore,
the ESB can implement the logic needed to create a single-client view. What remains
in the integration layer is connectivity logic to communicate with the ESB. The advan-
tage is that ESBs support a wide range of connectivity protocols, including industry
standards like SOAP over JMS or SOAP over HTTP. Figure 1.6 shows the architecture of
the call center application with the addition of an ESB for the integration with the
three back-end applications.
Figure 1.4 Here’s an example where integration between multiple
applications is necessary. The call center application needs a single-
client view from the ERP, CRM, and COBOL applications.
11
Why do you need an ESB?
If we compare figures 1.5 and 1.6, the main difference is where the integration logic
for the back-end applications is implemented. In figure 1.5, the integration layer of the
call center application implements the integration logic, which translates to a lot of cus-
tom development. With the addition of an ESB in figure 1.6, the integration logic is
centralized in a software component that isn’t part of the call center application.
Because ESBs offer an environment that’s focused on providing integration function-
ality, there’s no need for much custom development to implement the integration
with the three back-end applications.
In figure 1.6 we show a simplified overview of a call center application that’s inte-
grated with three back-end applications via an ESB. The advantages of using an ESB
become clearer if we consider multiple applications that need to be integrated with, for
example, the ERP system and the CRM application. The ESB has already implemented
integration logic with these applications, and this logic can be reused for other applica-
tions that need information from the ERP system or to update data in the CRM application.
Figure 1.5 The architecture shown in figure 1.3 is extended with an integration layer that provides
the logic needed to integrate with other applications.
12 CHAPTER 1 The world of open source ESBs
But before we can decide when and when not to use an ESB, let’s first look at the core
functionality of an ESB.
1.2 Explaining the core functionalities of an ESB
ESB is a common integration buzzword nowadays, and there are a lot of definitions
used by integration vendors, market analysts, and business users. If you want to look
for these definitions, just Google “enterprise service bus” and you’ll definitely find
enough resources for a couple of hours’ reading. We provide you with a practical
Figure 1.6 Here we introduce an ESB to the call center architecture. The ESB provides functionality
to communicate with the three back-end applications and to route the message to the right back-
end application.
13
Explaining the core functionalities of an ESB
overview, not an exhaustive list, of what we think are the core functionalities of an
ESB. You can then use this overview to create your own definition of an ESB. Table 1.2
provides a short overview of the seven core functionalities.
Next we explore each of these seven core functionalities. The first functionalities
that we discuss, location transparency and transport protocol conversion, are typical
examples of ESB functionality. The ordering of the other core functionalities is not
really relevant.
1.2.1 Location transparency
When a service consumer communicates with a service provider (you can also think of
an application here) via the ESB, the consumer doesn’t need to know the actual loca-
tion of the service provider. This means that the service consumer is decoupled from
the service provider and that a service provider’s new server location has no impact on
the service consumer. The core functionality of an ESB that provides this capability is
known as location transparency.
Table 1.2 Overview of the core functionalities necessary in an ESB
ESB core functionality Description
Location transparency The ESB helps with decoupling the service consumer from the
service provider location. The ESB provides a central platform
to communicate with any application necessary without cou-
pling the message sender to the message receiver.
Transport protocol conversion An ESB should be able to seamlessly integrate applications
with different transport protocols like HTTP(S) to JMS, FTP to
a file batch, and SMTP to TCP.
Message transformation The ESB provides functionality to transform messages from
one format to the other based on open standards like XSLT
and XPath.
Message routing Determining the ultimate destination of an incoming message
is an important functionality of an ESB that is categorized as
message routing.
Message enhancement An ESB should provide functionality to add missing informa-
tion based on the data in the incoming message by using mes-
sage enhancement.
Security Authentication, authorization, and encryption functionality
should be provided by an ESB for securing incoming messages
to prevent malicious use of the ESB as well as securing out-
going messages to satisfy the security requirements of the
service provider.
Monitoring and management A monitoring and management environment is necessary to
configure the ESB to be high-performing and reliable and
also to monitor the runtime execution of the message flows
in the ESB.
14 CHAPTER 1 The world of open source ESBs
You can implement the location transparency within the ESB with a simple XML
configuration, a database, or a service registry. Your approach depends on your
requirements, such as dynamic configuration capabilities and the need for additional
information about service providers (e.g., quality of service). The simplest implemen-
tation of location transparency is the configuration of service provider endpoints in a
static XML file. This is a common way to implement location transparency in an open
source ESB. When you need dynamic configuration of service provider locations, you
require more advanced configuration options. Dynamic configuration can be imple-
mented with a hot-deployment model for location configuration files or with loca-
tions stored in a database. When you have even more requirements, such as the
definition of quality of service and business information about a specific service pro-
vider, a service registry can provide the necessary capabilities. In this book, we focus
on the static XML file and the hot-deployment options. Figure 1.7 shows a graphical
overview of the options you have available when implementing location transparency
with an ESB.
Figure 1.7 shows a simple case in which an application needs client information from
a CRM application. Because an ESB is used, the location of the client information ser-
vice within the CRM application is transparent to the service consumer. Notice that
when the location of the client information service changes, only the location config-
uration within the ESB has to be updated.
1.2.2 Transport protocol conversion
Another common scenario is one in which we have a service consumer that’s using a
different transport protocol than the service provider is. You can probably think of a
number of cases where you have seen this in practice. Let’s use an example in which
we have a service consumer that’s communicating via JMS. The service provider is a
Figure 1.7 The ESB can use several options to configure and store the location of the CRM client
information service. A common option is an XML file configuration, but there are alternatives, such as a
database or a service registry.
15
Explaining the core functionalities of an ESB
legacy system that’s only capable of importing and exporting files in a batch. Of
course, we can write our own transport protocol conversion logic, but wouldn’t it be
great if it were offered out of the box? An ESB is capable of converting incoming trans-
port protocols to different outgoing transport protocols; we call this ESB core func-
tionality transport protocol conversion. The components in an ESB offering transport
protocol conversion are typically referred to as protocol adapters. Figure 1.8 shows the
transport protocol conversion of the example we have just discussed: JMS to File.
When dealing with environments with many different transport protocols, an ESB
can offer transport protocol conversion, as shown in figure 1.8. Of course, a typical
ESB doesn’t support all of the transport protocols you may come across in complex
integration environments, but it does support a wide variety. For protocols that aren’t
supported out of the box, you can purchase an adapter from third parties or develop
a custom adapter.
1.2.3 Message transformation
Besides the support for a set of transport protocols, implementing the integration
between a service consumer and a service provider often requires a transformation of
the message format. In the example shown in figure 1.8, the content of the JMS mes-
sage can’t be forwarded as is to the legacy application. There is a need for logic that
transforms the message format to the expected format of the service provider. The
ESB core functionality that helps with changing the message format is known as the
message transformation functionality.
A common technology to transform a message from the source to the target for-
mat is Extensible Stylesheet Language Transformation (XSLT). XSLT is a World Wide
Web Consortium (W3C) recommendation widely adopted in the integration industry,
which ensures that message transformations written in XSLT are usable in most of the
ESBs available in the market. Before the age of open standards like XSLT and the use
of ESBs, the EAI products, often referred to as brokers, implemented message transfor-
mation most often with proprietary technology. So message transformation is a good
example of the evolution of open standards used in integration products. Let’s take a
look at a graphical representation of message transformation as a core functionality of
an ESB in figure 1.9.
Figure 1.8 In this example a client application sends a JMS message to the ESB. A JMS adapter accepts
the JMS message and forwards it to the file adapter, which writes the content of the JMS message to
the file system of a legacy application.
16 CHAPTER 1 The world of open source ESBs
Message transformation, as shown in figure 1.9, is one of the most used capabilities in
ESBs. It’s rare that the message format of an incoming message exactly matches the for-
mat expected by the target application. The example used in figure 1.9 shows a transfor-
mation from a SOAP message to an electronic data interchange (EDI) message. The
message transformer that performs the message transformation can be implemented
with an XSLT style sheet as we already mentioned, but it can also be a transformation
tool from a third party that’s dedicated to supporting all kinds of EDI-related transfor-
mations. Alternatively, you can write your own with the application programming inter-
face (API) provided with your ESB product. In chapter 5, we explore how message
transformation can be implemented with a number of examples.
1.2.4 Message routing
In our examples so far, the target destination of the incoming message was just one
possible service provider. But in most integration projects, multiple applications are
involved that could be the target application of a particular incoming message. Based
on many kinds of rules and logic, the ESB has to determine which service provider(s)
a message must be sent to. The core functionality involved with dealing with this kind
of logic is known as message routing.
This message routing functionality is a classification for different kinds of routing
capabilities. There is, for example, content-based routing, which is used for routing
messages to their ultimate destination based on their content. But there is also the
message filter routing functionality, which is used to prevent certain messages from
being sent to a particular destination. A third example is the recipient list routing
capability, which can be used to send a particular message to multiple destinations.
Message routing is the ESB core functionality needed in almost every integration
implementation. Figure 1.10 shows an example of message routing based on the con-
tent of an incoming message.
Message routing can be complex and difficult to implement because knowledge of
the routing rules and logic involved is often spread across different people. It’s diffi-
cult to explain the use of routing rules to businesspeople, although their business
Figure 1.9 An ESB provides the capability to transform the message format of an incoming message to
the format expected by the target application. In this example the ESB transforms the SOAP message
to an EDI message by using a message transformer.
Another Random Scribd Document
with Unrelated Content
400 Epigrams, and about 80 Epitaphs. This writer usually
designated himself by the title of John Davies of Hereford,—See
Censura Literaria, vols. i. ii. v. vi. Brit. Bibliographer, No. VIII,
Beloe's Anecdotes, vol. ii., and Wood's Athenæ Oxon. vol. i. p.
445. He also wrote The Holy Rood, or Christ's Crosse, 1609.
[680:C] These poetical brothers published their poems with the
above title, in a valuable Collection of Metrical Miscellanies, called
"A Poetical Rapsodie," 1602, which will be noticed hereafter. They
are introduced in the Table as being the principal contributors,
and as distinguishing their pieces by a separate title or division.
[681:A] This writer was the most popular ballad-maker of his
day; he was by trade a silk-weaver, and the compiler of various
Garlands, under the titles of "The Garland of Good Will;" "The
Garland of Delight," &c. &c. Nash, in his "Have with you to
Saffron-Walden," 1596, says, that "his muse from the first
peeping forth, hath stood at livery at an alehouse wispe, never
exceeding a penny a quart day nor night; and this deere yeare,
together with the silencing of his looms, scarce that; he being
constrained to betake himself to carded ale: whence it
proceedeth, that since Candlemas, or his jigge of John for the
King, not one merrie dittie will come from him, but The thunder-
bolt against swearers, Repent England repent, and The strange
judgements of God."
[681:B] Drant was a copious Latin Poet, having published two
miscellanies under the titles of Sylva, and Poemata Varia.
[681:C] A quotation from one of the songs or ballads of this
drunken rhymer, is to be found in Much Ado about Nothing,
(Reed's Shakspeare, vol. vi. p. 196.) commencing
"The god of love,
That sits above."
[682:A] This poem, of which a prior edition is noticed in
Censura Literaria, vol. v. p. 349, as published in 4to. 1600, is
conjectured by Ritson, p. 201, to have been the production of
William Evans, who is well known to the lovers of old English
poetry, by his eulogium prefixed to the first edition of Spenser's
"Faerie Queene," 1590. The Thamesiades, which consists of three
books or cantos, is written with vigour, and exhibits some pleasing
poetical pictures.
[682:B] This thin volume of 22 leaves, consists of seven
poetical speeches "spoken before the King and Queens most
excellent Majestie, the Prince his highnesse, and the Lady
Elizabeth's Grace."
[682:C] He contributed also to the previous editions of 1559
and 1563.
[682:D] The "Georgiks" were added to a new version of the
"Bucolikes," forming one volume, 4to. Both are in regular
Alexandrines without rhyme.
[683:A] This production consists of a pastoral and an elegy;
the former being a translation of the Aminta of Tasso.
[683:B] Fraunce also published in a work of his, entitled "The
Lawyers Logicke," 1586, an hexameter version of Virgil's Alexis.
His affectation of Latin metres has condemned him to oblivion, for
as Phillips justly remarks, "they neither become the English, nor
any other modern language."—Edit. apud Brydges, p. 109.
[683:C] Wood tells us (Ath. Oxon. vol. i. p. 398.), that Freeman
was held in esteem by Donne, Daniel, Chapman, and Shakspeare;
and to these poets, and to Spenser, he has addressed epigrams.
For numerous specimens of this poet, see Warton, vol. iv., Ellis,
and Park in Censura Lit. vol. iv. p. 129.
[683:D] This poem was afterwards annexed to Greene's
"History of Arbasto," 1617, where it is termed "a lovely poem." It
was reprinted in 1626. On Greene's authority, I have ranked it
beyond mediocrity.
[684:A] A collection which consists, observes Mr. Park, "of the
saddest trash that ever assumed the name of Epigrams; and
which, with a very slight alteration, well merits the sarcasm
bestowed by Shenstone on the poems of a Kidderminster bard:—
"Thy verses, friend, are linsey woolsey stuff,
And we must own—you've measur'd out enough."
Censura Lit. vol. v. p. 348.
[684:B] The "Popish Kingdome" consists of four books, of
which the last contains a curious and interesting description of
feasts, holidays, and Christmas games; including, of course, many
of the customs, and almost all the amusements of the period in
which it was written.
[684:C] Besides these works, Googe published in 1563,
"Eglogs, Epitaphs, and Sonnets," 12mo.
[685:A] "A Poem in manuscript, of considerable length,
together with some Sonnets, preserved amongst numerous
treasures of a similar nature, which belonged to the late Duke of
Bridgewater, and now belong to the Marquis of Stafford."—Todd's
Spenser, vol. i. p. 87. Mr. Todd has given us a specimen of Sir
Arthur's talents, by the production of a Sonnet from this
manuscript treasure, which indicates no common genius, and
induces us to wish for the publication of the whole.
[685:B] Sir Arthur was the intimate friend of Spenser, who
lamented the death of Lady Gorges in a beautiful elegy entitled
"Daphnaida:" he has recorded, likewise, the conjugal affection
and the talents of her husband, under the name of Alcyon, in the
following elegant lines:—
"And there is sad Alcyon, bent to mourne,
Though fit to frame an everlasting dittie,
Whose gentle spright for Daphne's death doth tourne
Sweet layes of love to endlesse plaints of pittie.
Ah pensive boy, pursue that brave conceipt,
In thy sweet eglantine of Meriflure,
Lift up thy notes unto their wonted height,
That may thy Muse and mates to mirth allure."
Todd's Spenser, vol. viii. p. 23.
[685:C] This poem was printed, says Ritson, at the end of
Kenton's "Mirror of man's life," 1580. Gosson is introduced here in
consequence of the celebrity attributed to him by Wood, who
declares, that "for his admirable penning of pastorals, he was
ranked with Sir P. Sidney, Tho. Chaloner, Edm. Spenser, Abrah.
Fraunce, and Rich. Bernfield."
[685:D] This forms the second part of a work by the same
writer, called "The Golden Aphroditis," and consists of 19 pieces,
four of which are in prose.
[686:A] Greepe's poem has been, through mistake, attributed
by Mr. Beloe to Thomas Greene; and Ritson, by a second error,
charged with its omission.—Vide Anecdotes, vol. ii. p. 89.
[686:B] These pieces, written before 1620, were collected in
his Works, folio, 1633, and in his "Remains," 1670. 8vo.
[686:C] Vide Beloe's Anecdotes, vol. ii. p. 109.
[687:A] Warton observes, that "this translation has no other
merit than that of being the first appearance of a part of the Iliad
in an English dress."—Vol. iii. p. 440.
[687:B] Ritson appears to have confounded these two writers,
Sir William, and William Harbert, and classed them as one. The
latter speaks of his unripened yeares in 1604.—Vide British
Bibliographer, No. IV. p. 300.
[687:C] Beside these Sonnets, amounting to twenty-three,
Harvey was the introducer of the miserable attempts to imitate
the Latin metres, and boasts in this publication of being the first
who exhibited English hexameters.
[687:D] The celebrated sister of Sir Philip Sydney.
[687:E] All that are printed of these, appear in the Paradise of
Daintie Devises, of the date annexed. He had previously
translated three tragedies from Seneca, and died in 1598.
[688:A] A writer known to greater advantage by his Hierarchie
of the Blessed Angels, folio, 1635; a work of singular curiosity and
much amusement.
[688:B] Higgins termed this the first part, merely in reference
to the collection by Baldwin in 1559, which, commencing at a
much later period, was afterwards called "the last part." Higgins's
publication, in 1575, contains 17 Legends from Albanact to
Irenglas; but in 1587 he edited an edition of the Mirrour, including
Baldwin's part, and with the addition of 24 Legends of his own
composition, which carries forward his department to the death of
Caracalla.
[688:C] In the Dedication of this work, the fashionable reading
of the times is thus reprobated:—"Novelties in these days delight
dainty eares, and fine filed phrases to fit some fantasy's, that no
book except it abound with the one or the other, or both of these,
is brooked of them. Some read Gascoyne, some Guevasia, some
praise the Palace of Pleasure, and the like, whereon they bestow
whole days, yea, some whole months and years, that scarce
bestow one minute on the Bible, albeit the work of God."
[688:D] For specimens of this volume, which is supposed to be
unique, see British Bibliographer, No. II. p. 105.
[689:A] An edition of this "famous old ballad" was published by
Thomas Gent of York, about 1740, who tells us, that it was "taken
from an antient manuscript, which was transcribed by Mr. Richard
Guy, late schoolmaster at Ingleton, in Yorkshire." Subsequent
editions have been published by Lambe and Weber.
[689:B] Printed in Ashmole's Theatrum Chemicum Britannicum.
[690:A] Perhaps the only piece above mediocrity in Kendall's
Epigrams is the following which I consider as very happily
rendered:—
"MARTIAL.
To Himselfe.
Martial, the thinges that do attaine
The hapy life be these I finde:
The riches left, not got with paine;
The fruitefull ground, the quiet minde.
The egall frend; no grudge no strife;
No charge of rule, nor governaunce:
Without disease the healthfull life;
The household of continuance.
The mean dyet, no delicate fare;
True wisdome joynd with simplenes;
The night discharged of all care,
Where wine the wit may not oppresse.
The faithfull wife without debate;
Such sleepes as may beguile the night;
Content thyself with thine estate,
Ne wishe for death, nor feare his might."
Fol. 18, b.
[691:A] This writer transcends mediocrity in consequence of
the singular purity and harmony of his diction and versification.
The subsequent lines, forming the prior part of a sonnet, have the
air of being written rather in the 19th than the 16th century:—
"Hard is his hap who never finds content,
But still must dwell with heavy-thoughted
sadnesse:
Harder that heart that never will relent,
That may, and will not turne these woes to
gladnesse;
Then joies adue, comfort and mirth, farewell;
For I must now exile me from all pleasure,
Seeking some uncouth cave where I may dwell,
Pensive and solitarie without measure."
[691:B] For an account of this author, and of a poem of his
printed in 1631, see Wood's Fasti, vol. i. col. 147; and Censura
Literaria, vol. i. p. 291.
[691:C] A poem in Alexandrines, printed at the end of the first
edition of his "Pilgrimage of Princes."
[692:A] The 200 Sonnets are followed by 100, entitled "Sundry
affectionate Sonets of a feeling conscience;" by 20, called "An
Introdution to peculiar prayers," and by 59, termed "Sonnets of
the Author to divers." In "The Return from Parnassus," Lok is
thus, not undeservedly, sentenced to oblivion:—"Locke and
Hudson, sleep you, quiet shavers, among the shavings of the
press, and let your books lie in some old nook amongst old boots
and shoes: so, you may avoid my censure."—Ancient British
Drama, vol. i. p. 49.
[692:B] This is attributed to Markham on the authority of Mr.
Haslewood. See British Bibliographer, No. IV. p. 381.
[692:C] Mr. Park conceives this translation to be the production
of Robert Tofte, rather than of Markham.—Ritson's Bibliographia,
p. 274, note.
[693:A] It is to be regretted that no complete edition of the
Works of Montgomery has hitherto been published. Those printed
by Foulis and Urie in 1751 and 1754, are very imperfect; but
might soon be rendered faithful by consulting the manuscript
collection of Montgomery's Poems, presented by Drummond to
the University of Edinburgh. This MS., extending to 158 pages
4to., contains, beside odes, psalms, and epitaphs, 70 sonnets,
written on the Petrarcan model; and, if we may judge from the six
published by Mr. Irving, exhibiting a considerable portion of poetic
vigour. The Cherrie and the Slae, which, as the critic just
mentioned observes, "has maintained its popularity for the space
of two hundred years," must be pronounced in some of its parts,
beautiful, and, as a whole, much above mediocrity. Sibbald has
printed ten of our author's poems in the third volume of his
Chronicle of Scottish Poetry.
[694:A] The Sonnets of Murray appeared five years anterior to
those of Drummond, and though not equal to the effusions of the
bard of Hawthornden, are yet entitled to the praise of skilful
construction and frequently of poetic expression. A copy is now
seldom to be met with; but specimens may be found in
Campbell's History of Poetry in Scotland, and in Censura Literaria,
vol. x. p. 374, 375.
[694:B] This poet, who, in the former part of his life, practised
as a physician, at Butley, in Cheshire, was a Latin poet of some
eminence, and one of the translators of Seneca's Tragedies,
published in 1581.
[694:C] For a specimen of this poem, see Beloe's Anecdotes,
vol. ii. p. 104.
[694:D] Though said to be the fourth edition, this copy is
supposed by Mr. Neve to be really the first impression. (See
Cursory Remarks on Ancient English Poets, 1789, p. 27.) Few
poems have been more popular than Overbury's "Wife;" owing
partly to the good sense with which it abounds, and partly to the
interesting and tragic circumstances which accompanied the
author's fate. It was speedily and frequently imitated; in 1614,
appeared "The Husband. A poeme expressed in a compleat man,"
by an anonymous writer; in 1616, "A Select Second Husband for
Sir Thomas Overburie's Wife," by John Davies of Hereford; in
1619, "The Description of a Good Wife," by Richard Brathwaite;
and in the same year, "A Happy Husband, or Directions for a Maid
to chuse her Mate," by Patrick Hannay. These pieces are inferior
to their prototype, which, though not displaying much poetic
inspiration, is written with elegance and perspicuity.
[695:A] This work is a composition of verse and prose. Mr.
Douce terms Parkes a "writer of great ability and poetical talents,
though undeservedly obscure." Vide Illustrations, vol. ii. p. 75.
[695:B] Warton, in the Fragment of his fourth volume of the
History of English Poetry, remarks at p. 73, that many of Parrot's
epigrams "are worthy to be revived in modern collections." The
Laquei contain many of the epigrams which he had previously
published.
[696:A] Peele, who will afterwards be noticed as a dramatic
poet, may be classed with Scoggan, Skelton, and Tarleton, as a
buffoon and jester. He died before 1598, and his "Merrie
conceited Jests" were published in 4to. in 1627.
[696:B] An ample analysis of "The Historie of Lord Mandozze,"
has been given in the British Bibliographer, No. X. p. 523.; and
No. XI. p. 587. Of the poetry of this very rare version, little
laudatory can be said.
[696:C] Of this scarce poem, unknown to Ritson, the reader
will find a description by Mr. Haslewood in the British
Bibliographer, No. III. p. 214.
[696:D] Mr. Beloe conjectures this "Commemoration," not
noticed by Ritson, to have been the production of a writer
different from the John Phillip of the Bibliographia (p. 299.), and
assigns for his reason, the signature, at the conclusion, namely,
John Phyllips; but it is remarkable that the inscription, copied by
Mr. Beloe, runs thus: "To all Right Noble, Honorable, Godlye and
Worshipfull Ladyes, John Phillip wisheth," &c. a variation in the
orthography which warrants an inference as to their identity. Vide
Beloe, vol. ii. p. 111. et seq.
[697:A] Mr. Haslewood supposes this poem to have been
written by William Phiston, of London, Student; who is considered
by Herbert, p. 1012., as the same person mentioned by Warton,
vol. iii. p. 308. under the appellation of W. Phist.—See Brit.
Bibliogr. vol. v. p. 569.
[697:B] Ritson, in his Bibliographia, says, that no one except
Warton appears to have met with this publication; extracts from
it, however, may be found in the Monthly Mirror, vol. xiv. p. 17.
[697:C] These Flowers are the production of one of the most
celebrated agriculturists of the 16th century, the author of the
"Jewell House of Art and Nature;" the "Paradise of Flora;" the
"Garden of Eden," &c. &c.; but, in his poetical capacity, they
prove, as Mr. Park remarks, that he "did not attain to 'a plat of
rising ground in the territory of Parnassus.'"—Censura Lit. vol. viii.
p. 7.
[697:D] These are printed in the latter part of the miscellany,
entitled "A Gorgeous Gallery of Gallant Inventions."
[697:E] Beside these verses in honour of Elizabeth, Puttenham
wrote the "Isle of Great Britain," a little brief romance; "Elpine,"
an eclogue; "Minerva," an hymn; and, throughout his "Arte of
Poesie," are interspersed a number of verses, epigrams, epitaphs,
translations, imitations, &c. Mr. Haslewood has prefixed a copy of
the Partheniades to his reprint of "The Arte of English Poesie,"
1811.
[698:A] For specimens of this poem, the British Bibliographer,
No. II. p. 153., may be consulted. Why it was called Dolarny's
Primerose does not appear. Reynolds possesses some merit as a
descriptive poet.
[698:B] Of this work, not mentioned by Ritson, an account has
been given by Mr. Haslewood in Censura Literaria, vol. iv. p. 241.
The "Rewarde of Wickednesse" is written on the plan of the
"Mirror for Magistrates," and was composed during the author's
night-watches as one of the sentinels employed to guard the
unfortunate Mary Queen of Scots. Robinson is supposed to be
author of "The ruffull tragedy of Hemidos and Thelay," licensed in
1570.
[698:C] To Sibbald's Chronicle of Scottish Poetry, vol. iii. p.
287., and to Restituta, No. III. p. 177., I refer the reader for the
only account which I can recollect of this obscure writer. Irving
and Pinkerton merely mention the titles of his poems. Mr. Gillies,
in a very interesting article in the Restituta, has given us an ample
specimen of his "Seven Sages."
[699:A] Ritson says, that this is "a poem in 168 six-line
stanzas, of considerable merit, and with great defects: a 4to. MS.
in the possession of Francis Douce, Esq."—Vide Bibliographia
Poetica, p. 315.
[699:B] Several extracts from this work, consisting of seven
satires, have been given by Warton in his Fragment of Vol. IV. See
also Censura Literaria, vol. vi. p. 277.; and Beloe's Anecdotes, vol.
ii. p. 125., where further notices of this medley may be found. It
went through subsequent editions in 1607 and 1611.
[699:C] This poem and the three succeeding are not recorded
by Ritson. See Censura Lit. vol. ii. p. 150., in an article by Mr.
Gilchrist.
[699:D] For a description of this copy see Brit. Bibliogr., No. V.
p. 548.
[699:E] Curious specimens from this publication have been
given by Mr. Haslewood in the Brit. Bibliographer, No. X. p. 549.
[700:A] Of this voluminous pamphleteer, five more pieces are
enumerated by Ritson, published posterior to 1616. Though a
rapid and careless writer, he occasionally exhibits considerable
vigour, and has often satirized with spirit the manners and follies
of his period. He may be justly classed as surmounting mediocrity,
and he is therefore designated as such at the close of this article.
[700:B] This poem, and the Fisherman's Tale, are written in
blank verse, a species of composition in which Sabie had been
preceded by Surrey, Gascoigne, Turberville, Riche, Peele, Higgins,
Blenerhasset, Aske, Vallans, Greene, Breton, Chapman, Marlowe,
&c. A copious analysis of these pieces has been given by Mr.
Haslewood in No. V. of the British Bibliographer, from p. 488. to
503.; but neither the genius nor the versification of Sabie merit
much notice: his Pan, however, contains some beautiful rhymed
lines.
[700:C] Annexed, says Ritson, to his "Hours of Recreation or
after dinners," 1576, 8vo.
[700:D] The "Four Paradoxes" occupy four portions, each
consisting of 18 six-line stanzas, and the whole is terminated by
three additional ones, entitled his "Resolution." The specimens of
this poem adduced by Mr. Park in Censura Literaria, vol. iii. and
iv., speak highly in its favour, and seem to justify the following
encomium:—"There is much manly observation, forcible truth, apt
simile, and moral pith in the poem itself; and it leaves a lingering
desire upon the mind, to obtain some knowledge of a writer,
whose meritorious production was unheralded by any
contemporary verse-man, and whose name remains unrecorded
by any poetical biographer."—Vol. iii. p. 376.
[701:A] An accurate account of this volume, which was
republished in 1622 and 1640, may be found in Censura Literaria,
vol. iii, p. 381. "From the great disparity of merit between this and
the preceding article," observes Mr. Park, "there is little reason to
suppose them by the same author, though they bear the same
name."
[701:B] A perfect copy of this miserable collection of poems,
consisting of sonnets, elegies, odes, odellets, &c. was purchased,
at a sale, by Mr. Triphook for twelve guineas. The only copy
before known was without a title, from which Ritson has given a
full account, though, at the same time, he terms the author an
"arrogant and absurd coxcomb," and condemns him for his
"wretched style, profligate plagiarism, ridiculous pedantry, and
unnatural conceit."—Vide Bib. Poetica, p. 337. et seq.
[701:C] An ample and interesting description of Stanyhurst,
and his translation, will be found in Censura Literaria, vol. iv. pp.
225. 354., the production of Mr. Haslewood. Nash has not
exaggerated when, alluding to this poet, he says, "whose heroical
poetry infired, I should say inspired, with an hexameter furye,
recalled to life whatever hissed barbarism hath been buried this
hundred yeare; and revived by his ragged quill such carterly
varietie, as no hedge plowman in a countrie but would have held
as the extremitie of clownerie: a patterne whereof I will propound
to your judgment, as near as I can, being part of one of his
descriptions of a tempest, which is thus:—
"Then did he make heaven's vault to rebound
With rounce robble bobble,
Of ruffe raffe roaring,
With thicke thwacke thurly bouncing."
Nash's Preface to Greene's Arcadia.
[702:A] Storer's Life of Wolsey, which is about to be reprinted,
has a claim upon our attention, both for its matter and manner:
he was a contributor also to "England's Helicon," and has been
highly extolled by his friend Fitzgeffrey, in Affanis, lib. i.
[702:B] The most interesting part of this volume, from the
nature of its subject, is "Ane schort Treatise conteining some
Reulis and Cautelis to be observit and eschewit in Scottis Poesie,"
in which the regal critic observes, that "sindrie hes written of it in
English," an assertion which would lead to the supposition that
some of our earliest critics had perished; for Gascoigne's
"Certayne Notes of Instruction concerning the making of Verse or
Rhyme," 1575, appears now to be the only piece of criticism on
poetic composition which preceded James's "Essayes."
[702:C] The Poetical Exercises contain but two poems,—the
"Furies," translated from Du Bartas, and "The Lepanto," an
original piece. Several minor poems, introduced into his own
works and those of others, some sonnets and a translation of the
psalms, were written by James after his accession to the English
throne.
[702:D] Of this far-famed comedian and jester, Fuller says, that
"when Queen Elizabeth was serious (I dare not say sullen) and
out of good humour, he could undumpish her at his pleasure. Her
highest favourites would in some cases go to Tarlton before they
would go to the Queen, and he was their usher to prepare their
advantageous accession to her. In a word, he told the Queen
more of her faults than most of her chaplains, and cured her
melancholy better than all her physicians." Indeed, in the
language of a contemporary,
"Of all the jesters in the lande
He bare the praise awaie."
Vide Ritson Bibl. p. 359.
[703:A] Of this voluminous scribbler, whose rhyming spirit,
remarks Granger, did not evaporate with his youth, who held the
pen much longer than he did the oar, and who was the poetaster
of half a century, I have only been able to insert two of his
earliest productions, the remainder being subsequent to 1616,
and extending to 1653. He was thirty-two when Shakspeare died;
and "the waterman," observes Mr. Chalmers, "must have often
sculled Shakspeare, who is said to have lived on The Bankside."—
Apology, p. 101.
[703:B] The Fruites of Jealousie, a long poem in octave
measure, may be found at the close of The Blazon of Jealousie,
translated from the Italian of Varchi, of which an account is given
in Censura Literaria, vol. iv. p. 403.
[704:A] Beside these anthems, which were licensed to her
printer, Christ. Barker, Nov. 15., her Majesty wrote a variety of
small pieces, some of which have been preserved by Hentzner,
Puttenham, and Soothern, and reprinted by Percy, Ellis, and
Ritson. The fourteenth Psalm also, and the Speech of the Chorus
in the second Act of the Hercules Œtæus of Seneca, have been
published by Mr. Park, the latter poem being a specimen of blank
verse.—Vide Park's Royal and Noble Authors, vol. i. p. 102.
Of the execrable flattery which was systematically bestowed on
this monarch, the following eulogium upon her poetry, is a curious
instance. After enumerating the best poets of his age, Puttenham
thus proceeds:—"But last in recitall and first in degree is the
Queene our soveraigne Lady, whose learned, delicate, noble
Muse, easily surmounteth all the rest that have written before her
time or since, for sence, sweetnesse and subtillitie, be it Ode,
Elegie, Epigram, or any other kinde of poeme, Heroick, Lyricke,
wherein it shall please her Majestie to employ her penne, even by
as much oddes as her owne excellent estate and degree
exceedeth all the rest of her most humble vassalls."—The Arte of
English Poesie, reprint, p. 51.
[704:B] A Collection of Epigrams.
[705:A] These poems were published in a tract entitled "The
Right Way to Heaven, and the true testimony of a faithfull and
loyall subject," 1601.
[705:B] This copy is without date, but a second edition was
printed in 1617; it is a miserable paraphrase of Warner's exquisite
episode.
[705:C] Of this Collection Lord Hailes published a specimen in
1765; in 1801, Mr. J. Gr. Dalyell reprinted the whole, with the
Scotish poems of the 16th century. Edin. 2 vols. 12mo.; and Mr.
Irving has given some notices of the author in his Scotish poets, 2
vols. 8vo. 1804.
[706:A] Wenman's Legend and Poems have lately been printed
by Mr. Fry, in an octavo volume, from a quarto manuscript of 52
leaves. The Legend appears to have been intended for insertion in
the Mirror for Magistrates.
[706:B] For a very full account of "The Rocke of Regard," by
Mr. Park, see Censura Lit. vol. v. p. 1.
[706:C] This poem of 90 seven-line stanzas, is annexed to
Bindley's "Mirror of True Honour and Christian Nobility," &c. 1585.
4to.
[706:D] Of Whitney's Emblemes, which, being printed at
Leyden, is a very rare book, a description will be found in Censura
Lit. vol. v. p. 233.
[706:E] Willet's Emblems were written before 1598, as Meres
alludes to them in his "Palladis Tamia."
[707:A] These biographical poems were added to the author's
"True use of Armorie," 1592, 4to. Of the first poem an extract is
given in Censura Lit. vol. i. p. 149, 150.
[707:B] A copy of these poems, apparently unique, is in the
possession of Mr. Park, who has communicated a description of it
in Censura Lit. vol. iii. p. 175.
[707:C] This romance, which abounds with poetry, is of the
pastoral species; it is written on the plan of Sidney's Arcadia, and,
like it, exhibits many beautiful passages both in prose and verse:
twenty-seven of its poetical effusions have been inserted in
"England's Helicon," and several have been lately reprinted in
"Restituta," No. VII. accompanied by some interesting remarks
from the pen of Sir Egerton Brydges.
[707:D] For a specimen of this poem, which "is a concise
geographical description of three-quarters of the world, Asia,
Africa, and Europe, in the manner of Dionysius," and which Mr.
Beloe believes to be unique, see his Anecdotes, vol. ii. p. 74.
[710:A] Sidney's Works, 7th edit., fol., 1629, p. 561.
[711:A] May-Day; a wittie comedie. Divers times acted at "The
Blacke Fryers;" 4to. Act iii. fol. 39.
[711:B] A copy of this Miscellany, of the edition of 1580, sold
at the Roxburghe Sale, for 55l. 13s.!
[713:A] Reprint by Sir Egerton Brydges, 1810. p. 44.
[714:A] Reprint, p. 42.
[714:B] Preface to his reprint, p. vi.
[714:C] Reprint, p. 55.
[714:D] Reed's Shakspeare, vol. xx. p. 222. Act iv. sc. 5.
[715:A] Reprint, p. 57, 58.
[715:B] Ibid. p. 66.
[715:C] Ibid. p. 14. 37. 87.
[716:A] Vide Heliconia, Part I. Advertisement.
[717:A] For a notable instance of this figure, we refer the
reader to "The Lover in Bondage," at p. 50. of Mr. Park's reprint.
Not Holofernes himself could more "affect the letter."
[717:B] Quoted by Mr. Park in the Advertisement to his reprint.
[718:A] Heliconia, Part II. p. 85.
[720:A] Heliconia, Part III. Advertisement.
[723:A] England's Helicon, reprint of 1812, Introduction, p. xx.
xxi. xxii.
[724:A] Preface, pp. 8, 9. This Collection of Hayward's had
three different titles; the last dated 1741. The second edition is
called "The Quintissence of English Poetry."
[727:A] The curious Preface, from which we have given this
long extract, is only to be found in the first edition of the
Belvedere; its omission in the second is a singular defect, as it
certainly forms the most interesting part of the impression of
1600.
[727:B] See Malone's Inquiry.
[728:A] Supplement to Shakspeare, vol. i. p. 732.
[730:A] See Censura Literaria, vol. i. p. 229.
[732:A] Vide Morley's Plaine and easie Introduction to Practical
Musick.
[733:A] For specimens of these interesting collections, I refer
my reader to Censura Literaria, vol. ix. p. 1. et seq.; vol. x. pp.
179. 294.; and to the British Bibliographer, No. IV. p. 343.; No. V.
p. 563.; No. VI. p. 59.; No. IX. p. 427.; No. XI. p. 652.; No. XII. p.
48.; and No. XV. p. 386. A well-chosen selection from the now
scarce volumes of these Professors of Vocal Music would be a
valuable present to the lovers of English poetry.
END OF THE FIRST VOLUME
Printed by A. Strahan,
Printers-Street, London.
INDEX.
*** The Roman Numerals refer to the Volumes; the Figures to the
Pages of each Volume.
A
Acheley (Thomas), a minor poet of the age of Shakspeare, i.
676.
Acting, art of, consummately known to Shakspeare, i. 423.
Parts chiefly performed by him, 424, 425.
Actors, companies of, when first licensed, ii. 202.
Placed under the superintendence of the masters of the
revels, 203.
Their remuneration, 204.
Patronized by the court, 205,
and also by private individuals, whose names they bore,
205, 206.
Days and hours of their performance, 215, 216.
Their remuneration, 223, 224.
Admission to the theatre, in the time of Shakspeare, prices of, ii.
216, 217.
Adonis, beautiful address of Venus to, ii. 25, 26.
See Venus and Adonis.
Ægeon, exquisite portrait of, in the Comedy of Errors, ii. 288.
Æschylus, striking affinity between the celebrated trilogy of, and
Shakspeare's Macbeth, ii. 472, 473.
Affection (maternal), exquisite delineation of, ii. 421.
Affections (sympathetic), account of, i. 373, 374.
Agate stone, supposed virtue of, i. 368.
Agnus Dei, a supposed charm against thunder, i. 364.
Air, spirits of, introduced into the Tempest, ii. 524.
Akenside's "Pleasures of the Imagination" quoted, i. 321, 322.
Alchemistry, a favourite pursuit of the age of Shakspeare, ii.
154.
Alderson (Dr.), opinion of, on the cause of spectral visitations, ii.
405, 406.
His application of them to the character of Hamlet, 408.
Ale, synonymous with merry making, i. 175.
Different kinds of Ales, 176.
Leet-ale, 176.
Clerk-ale, ibid.
Church-ales, 177-179.
Alehouses, picture of, in Shakspeare's time, ii. 216-218.
Alfs, or bright and swart elves of the Scandinavians, account of,
ii. 308, 309.
All-Hallow-Eve, festival of, i. 341.
Fires kindled on that eve, ibid.
Prayers offered for the souls of the departed, 342.
Supposed influence of fairies, spirits, &c. 342-344.
Spells practised on that eve, 344-347.
Alliterations, in the English language, satirised by Sir Philip
Sidney, i. 444.
All's Well that Ends Well, probable date of, ii. 422.
Analysis of its characters,—the Countess of Rousillon, 423.
Helen, ib. 424, 425.
Remarks on the minor characters, 425.
Passages of this drama, which are illustrated in this work.
Act i. scene 3., ii. 424.
Act ii. scene 1., i. 108. 175. ii. 434.
scene 2., i. 143. 159.
scene 5., ii. 434.
scene 7., ii. 434.
Act iii. scene 2., ii. 107. 425.
Act iv. scene 10., i. 362.
scene 12., ii. 192.
All Saints' Day, festival of, i. 341.
Superstitious observances on its vigil, 341-347.
Allot (Robert), "English Parnassus," i. 723.
List of contributors to this collection of poems, 724.
Critical remarks on the merits of his selection, ibid. 725.
Amadis of Gaul (Romance of), popularity of, i. 515.
Notice of English translations of it, 546, 547.
Amusements of the fairies, ii. 342-345.
Amusements, national, in the age of Shakspeare, enumerated, i.
246, 247.
Account of the itinerant stage, 247-252.
The Cotswold games, 252-254.
Hawking, 255.
Hunting, 272.
Fowling, 287.
Bird-batting, 289.
Fishing, 289.
Horse-racing, 297.
The Quintaine, 300.
Wild-goose chace, 304.
Hurling, 305.
Shovel-board, 306.
Shove-groat, 307.
Juvenile sports, 308-312.
Amusements of the metropolis and court, ii. 168.
Card playing, 169.
Tables and dice, 171.
Dancing, 172.
Bull-baiting and bear-baiting, 176.
Archery, 178.
Frequenting of Paul's Walk, 182.
Sagacious horses, 186.
Masques and pageants, 187.
Royal progresses, 193.
Dramatic performances, 201-226.
Anderson (James), a minor poet of the age of Shakspeare, i.
676.
Andrewe (Thomas), a minor poet of the age of Shakspeare, i.
676.
Angels, different orders of, i. 335.
Account of the doctrine of guardian angels prevalent in
Shakspeare's time, 336.
Supposed number of angels, 337-339.
Remarks on this doctrine by Bishop Horsley, 339, 340.
The supposed agency of angelic spirits, as believed in
Shakspeare's time, critically analysed, ii. 399-405.
And applied to the introduction of the spirit in Hamlet, 407-
416.
Superiority of Shakspeare's angelic spirits over those of all
other dramatists, ancient or modern, 417, 418.
Angling, notice of books on the art of, i. 290, 291.
Contemplations of an angler, 292, 293.
His qualifications described, 294-296.
Encomium on, by Sir Henry Wotton, 297.
Beautiful verses on, by Davors, 614.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
Let us accompany you on the journey of exploring knowledge and
personal growth!
ebookultra.com

More Related Content

PDF
Open Source ESBs in Action 1st Edition Tijs Rademakers
PDF
Open Source ESBs in Action 1st Edition Tijs Rademakers
PDF
Open Source ESBs in Action 1st Edition Tijs Rademakers
PDF
Open Source ESBs in Action 1st Edition Tijs Rademakers
PDF
Getting MEAN with Mongo Express Angular and Node 1st Edition Simon Holmes
PDF
Getting MEAN with Mongo Express Angular and Node 1st Edition Simon Holmes
PDF
Download full ebook of Azure in Action 1st Edition Chris Hay instant download...
PDF
React in Action 1st Edition Mark Tielens Thomas
Open Source ESBs in Action 1st Edition Tijs Rademakers
Open Source ESBs in Action 1st Edition Tijs Rademakers
Open Source ESBs in Action 1st Edition Tijs Rademakers
Open Source ESBs in Action 1st Edition Tijs Rademakers
Getting MEAN with Mongo Express Angular and Node 1st Edition Simon Holmes
Getting MEAN with Mongo Express Angular and Node 1st Edition Simon Holmes
Download full ebook of Azure in Action 1st Edition Chris Hay instant download...
React in Action 1st Edition Mark Tielens Thomas

Similar to Open Source ESBs in Action 1st Edition Tijs Rademakers (20)

PDF
SOA Governance in Action REST and WS Architectures Jos Dirksen
PDF
Programming Windows Server 2003 Robert Hill Foster
PDF
Programming Windows Server 2003 Robert Hill Foster
PDF
React in Action 1st Edition Mark Tielens Thomas
PDF
WebWork in Action In Action First Edition Patrick Lightbody
PDF
Go Web Programming 1st Edition Sau Sheong Chang
PDF
WebWork in Action In Action First Edition Patrick Lightbody
PDF
Go Web Programming 1st Edition Sau Sheong Chang
PDF
Openstack In Action 1st Edition V K Cody Bumgardner
PDF
Testing Microservices With Mountebank 1st Edition Brandon Byars
PDF
ASP NET MVC in Action 1st Edition Jeffrey Palermo
PDF
ASP NET MVC in Action 1st Edition Jeffrey Palermo
PDF
Download full Managing Kubernetes operating Kubernetes clusters in the real w...
PDF
PowerShell in Depth An administrator s guide Don Jones
PDF
WebWork in Action In Action First Edition Patrick Lightbody
PDF
Nim in Action 1st Edition Dominik Picheta
PDF
[Ebooks PDF] download Ajax in Practice 1st Edition Dave Crane full chapters
PDF
Android in Action 3rd Edition W. Frank Ableson
PDF
Ext JS in Action 1st Edition Jesus Garcia
PDF
Android in Action 3rd Edition W. Frank Ableson
SOA Governance in Action REST and WS Architectures Jos Dirksen
Programming Windows Server 2003 Robert Hill Foster
Programming Windows Server 2003 Robert Hill Foster
React in Action 1st Edition Mark Tielens Thomas
WebWork in Action In Action First Edition Patrick Lightbody
Go Web Programming 1st Edition Sau Sheong Chang
WebWork in Action In Action First Edition Patrick Lightbody
Go Web Programming 1st Edition Sau Sheong Chang
Openstack In Action 1st Edition V K Cody Bumgardner
Testing Microservices With Mountebank 1st Edition Brandon Byars
ASP NET MVC in Action 1st Edition Jeffrey Palermo
ASP NET MVC in Action 1st Edition Jeffrey Palermo
Download full Managing Kubernetes operating Kubernetes clusters in the real w...
PowerShell in Depth An administrator s guide Don Jones
WebWork in Action In Action First Edition Patrick Lightbody
Nim in Action 1st Edition Dominik Picheta
[Ebooks PDF] download Ajax in Practice 1st Edition Dave Crane full chapters
Android in Action 3rd Edition W. Frank Ableson
Ext JS in Action 1st Edition Jesus Garcia
Android in Action 3rd Edition W. Frank Ableson
Ad

Recently uploaded (20)

PPTX
A powerpoint presentation on the Revised K-10 Science Shaping Paper
PDF
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
PDF
CISA (Certified Information Systems Auditor) Domain-Wise Summary.pdf
PDF
BP 704 T. NOVEL DRUG DELIVERY SYSTEMS (UNIT 1)
PPTX
Onco Emergencies - Spinal cord compression Superior vena cava syndrome Febr...
PDF
IGGE1 Understanding the Self1234567891011
PDF
FORM 1 BIOLOGY MIND MAPS and their schemes
PDF
David L Page_DCI Research Study Journey_how Methodology can inform one's prac...
PDF
FOISHS ANNUAL IMPLEMENTATION PLAN 2025.pdf
PDF
Practical Manual AGRO-233 Principles and Practices of Natural Farming
PPTX
20th Century Theater, Methods, History.pptx
PDF
RTP_AR_KS1_Tutor's Guide_English [FOR REPRODUCTION].pdf
PDF
What if we spent less time fighting change, and more time building what’s rig...
PDF
medical_surgical_nursing_10th_edition_ignatavicius_TEST_BANK_pdf.pdf
PDF
احياء السادس العلمي - الفصل الثالث (التكاثر) منهج متميزين/كلية بغداد/موهوبين
PDF
1_English_Language_Set_2.pdf probationary
PDF
Weekly quiz Compilation Jan -July 25.pdf
PDF
MBA _Common_ 2nd year Syllabus _2021-22_.pdf
PDF
Computing-Curriculum for Schools in Ghana
PPTX
Introduction to Building Materials
A powerpoint presentation on the Revised K-10 Science Shaping Paper
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
CISA (Certified Information Systems Auditor) Domain-Wise Summary.pdf
BP 704 T. NOVEL DRUG DELIVERY SYSTEMS (UNIT 1)
Onco Emergencies - Spinal cord compression Superior vena cava syndrome Febr...
IGGE1 Understanding the Self1234567891011
FORM 1 BIOLOGY MIND MAPS and their schemes
David L Page_DCI Research Study Journey_how Methodology can inform one's prac...
FOISHS ANNUAL IMPLEMENTATION PLAN 2025.pdf
Practical Manual AGRO-233 Principles and Practices of Natural Farming
20th Century Theater, Methods, History.pptx
RTP_AR_KS1_Tutor's Guide_English [FOR REPRODUCTION].pdf
What if we spent less time fighting change, and more time building what’s rig...
medical_surgical_nursing_10th_edition_ignatavicius_TEST_BANK_pdf.pdf
احياء السادس العلمي - الفصل الثالث (التكاثر) منهج متميزين/كلية بغداد/موهوبين
1_English_Language_Set_2.pdf probationary
Weekly quiz Compilation Jan -July 25.pdf
MBA _Common_ 2nd year Syllabus _2021-22_.pdf
Computing-Curriculum for Schools in Ghana
Introduction to Building Materials
Ad

Open Source ESBs in Action 1st Edition Tijs Rademakers

  • 1. Visit https://ebookultra.com to download the full version and explore more ebooks Open Source ESBs in Action 1st Edition Tijs Rademakers _____ Click the link below to download _____ https://ebookultra.com/download/open-source-esbs-in- action-1st-edition-tijs-rademakers/ Explore and download more ebooks at ebookultra.com
  • 2. Here are some suggested products you might be interested in. Click the link to download Activiti in Action Executable business processes in BPMN 2 0 Tijs Rademakers https://ebookultra.com/download/activiti-in-action-executable- business-processes-in-bpmn-2-0-tijs-rademakers/ Practical Arduino Cool Projects for Open Source Hardware Technology in Action 1st Edition. Edition Jonathan Oxer https://ebookultra.com/download/practical-arduino-cool-projects-for- open-source-hardware-technology-in-action-1st-edition-edition- jonathan-oxer/ Open source SOA 1st Edition Jeff Davis https://ebookultra.com/download/open-source-soa-1st-edition-jeff- davis/ Open Source Intelligence in a Networked World 1st Edition Anthony Olcott https://ebookultra.com/download/open-source-intelligence-in-a- networked-world-1st-edition-anthony-olcott/
  • 3. Open by design the transformation of the cloud through open source and open governance First Edition Davis https://ebookultra.com/download/open-by-design-the-transformation-of- the-cloud-through-open-source-and-open-governance-first-edition-davis/ Open Source Software Implementation and Management 1st Edition Paul Kavanagh https://ebookultra.com/download/open-source-software-implementation- and-management-1st-edition-paul-kavanagh/ Open Source Development with CVS 3rd Edition Moshe Bar https://ebookultra.com/download/open-source-development-with-cvs-3rd- edition-moshe-bar/ Computer Networks An Open Source Approach 1st Edition Ying-Dar Lin https://ebookultra.com/download/computer-networks-an-open-source- approach-1st-edition-ying-dar-lin/ Open Source Approaches in Spatial Data Handling Advances in Geographic Information Science 1st Edition Brent Hall https://ebookultra.com/download/open-source-approaches-in-spatial- data-handling-advances-in-geographic-information-science-1st-edition- brent-hall/
  • 5. Open Source ESBs in Action 1st Edition Tijs Rademakers Digital Instant Download Author(s): Tijs Rademakers, Jos Dirksen ISBN(s): 1933988215 Edition: 1 File Details: PDF, 6.18 MB Year: 2008 Language: english
  • 7. Open Source ESBs in Action
  • 9. Open Source ESBs in Action EXAMPLE IMPLEMENTATIONS IN MULE AND SERVICEMIX TIJS RADEMAKERS JOS DIRKSEN M A N N I N G Greenwich (74° w. long.)
  • 10. For online information and ordering of this and other Manning books, please visit www.manning.com. The publisher offers discounts on this book when ordered in quantity. For more information, please contact: Special Sales Department Manning Publications Co. Sound View Court 3B Fax: (609) 877-8256 Greenwich, CT 06830 Email: orders@manning.com ©2009 by Manning Publications Co. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by means electronic, mechanical, photocopying, or otherwise, without prior written permission of the publisher. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in the book, and Manning Publications was aware of a trademark claim, the designations have been printed in initial caps or all caps. Recognizing the importance of preserving what has been written, it is Manning’s policy to have the books we publish printed on acid-free paper, and we exert our best efforts to that end. Recognizing also our responsibility to conserve the resources of our planet, Manning books are printed on paper that is at least 15% recycled and processed elemental chlorine-free Development Editor: Jeff Bleil Manning Publications Co. Copyeditors: Liz Welch, Tiffany Taylor Sound View Court 3B Typesetter: Denis Dalinnik Greenwich, CT 06830 Cover designer: Leslie Haimes ISBN: 1933988215 Printed in the United States of America 1 2 3 4 5 6 7 8 9 10 – MAL – 12 11 10 09 08
  • 11. v brief contents PART 1 UNDERSTANDING ESB FUNCTIONALITY..........................1 1 ■ The world of open source ESBs 3 2 ■ Architecture of Mule and ServiceMix 42 3 ■ Setting up the Mule and ServiceMix environments 72 4 ■ The foundation of an integration solution 111 PART 2 USING ESB CORE FUNCTIONALITIES ..........................153 5 ■ Working with messages 155 6 ■ Connectivity options 194 7 ■ Web services support 243 8 ■ Implementing enterprise-quality message flows 280 PART 3 ESB CASE STUDIES.....................................................317 9 ■ Implementing a case study using patterns 319 10 ■ Managing and monitoring the ESB 358 11 ■ Implementing a process engine in the ESB 393
  • 13. vii contents foreword xiii foreword xvii preface xix acknowledgments xxi about this book xxiii PART 1 UNDERSTANDING ESB FUNCTIONALITY................1 1 The world of open source ESBs 3 1.1 Why do you need an ESB? 4 Benefits of an ESB 5 ■ Using an ESB from an application perspective 8 1.2 Explaining the core functionalities of an ESB 12 Location transparency 13 ■ Transport protocol conversion 14 ■ Message transformation 15 Message routing 16 ■ Message enhancement 17 Security 18 ■ Monitoring and management 19 Core functionality overview 20 1.3 Researching the open source ESB market 21 Demystifying the open source ESB 21 ■ Overview of open source ESBs 23
  • 14. CONTENTS viii 1.4 Why did we choose Mule and ServiceMix? 30 Defining selection criteria 30 ■ Assessing the open source ESBs 31 1.5 Hello world with Mule and ServiceMix 33 Taking a donkey ride with Mule 34 ■ Taking a JBI dive with ServiceMix 37 1.6 Summary 40 2 Architecture of Mule and ServiceMix 42 2.1 Mule architecture and components 43 Mule components overview 43 ■ Mule endpoints 46 Transformers 48 ■ Routers 50 ■ Component 53 Mule deployment models 54 ■ Mule wrap-up 55 2.2 JBI, the foundation for ServiceMix 56 Service engines and binding components 57 Services and endpoints 59 ■ Normalized message router 60 Service description, invocation, and message exchanges 62 Service unit and service assembly 64 ■ JBI wrap-up 65 2.3 ServiceMix architecture and components 65 ServiceMix overview 65 ■ Routing and transformations in ServiceMix 67 ■ ServiceMix deployment models 70 ServiceMix wrap-up 71 2.4 Summary 71 3 Setting up the Mule and ServiceMix environments 72 3.1 Three technologies enhancing the ESB functionality 73 Using Spring as an object container 73 ■ XML marshaling with JiBX 81 ■ Using JMS with the ActiveMQ broker 89 3.2 Preparing the development environment 94 Setting up ESBs, tools, and required libraries 94 Running examples from Eclipse 96 3.3 Inaugurate the Mule environment 98 Writing and configuring the Mule components 99 Running the Mule example 102 3.4 Inaugurate the ServiceMix environment 103 Select the necessary JBI components 103 ■ Configuring the ServiceMix example implementation 104 ■ Running the ServiceMix example 109 3.5 Summary 110
  • 15. CONTENTS ix 4 The foundation of an integration solution 111 4.1 Implementing integration logic with Mule 112 Creating a logging solution with Mule 112 ■ Developing a custom transformer with Mule 115 ■ Integrating Mule and Spring 117 4.2 Implementing integration logic with ServiceMix 120 Creating a logging service assembly for ServiceMix 120 Creating service units and a service assembly 121 Integrating ServiceMix and Spring 125 4.3 Constructing message flows with an ESB 127 What is a message flow? 128 ■ A message flow case study 130 4.4 Implementing a message flow with Mule 131 Implementing the request flow with Mule 132 ■ Implementing the response flow with Mule 133 4.5 Implementing a message flow with ServiceMix 138 Implementing the request flow with ServiceMix 138 Implementing the response flow with ServiceMix 142 4.6 Interlude: Spring Integration 148 A quick example with Spring Integration 149 4.7 Summary 151 PART 2 USING ESB CORE FUNCTIONALITIES ................153 5 Working with messages 155 5.1 Routing messages 156 Fixed router 156 ■ Content-based router 158 5.2 Validating messages 170 Validating messages with Mule 171 ■ Validating messages with ServiceMix 175 ■ An alternative way to perform message validation using Synapse 180 5.3 Transforming messages 182 Implementing message transformation in Mule 182 Implementing message transformation in ServiceMix 188 5.4 Summary 193
  • 16. CONTENTS x 6 Connectivity options 194 6.1 File connectivity 196 Mule File transport 196 ■ ServiceMix file transport 198 6.2 Connecting to JMS 202 Connecting Mule to JMS 203 ■ Connecting ServiceMix to JMS 206 6.3 Connecting to a database using JDBC 209 Connecting Mule to JDBC 210 ■ Connecting ServiceMix to JDBC 213 6.4 Connecting to mail servers 222 Connecting Mule to POP3 and SMTP 223 ■ Connecting ServiceMix to POP3 and SMTP 225 6.5 FTP connectivity 229 FTP and Mule 230 ■ FTP and ServiceMix 233 6.6 Connecting to EJB 3 234 Using EJB 3 from Mule 237 ■ EJB 3 and ServiceMix 239 6.7 Summary 242 7 Web services support 243 7.1 Top-down approach web service 244 Java implementation of the web service 250 ■ Implementing a top-down web service using Mule 252 ■ Implementing a top-down web service using ServiceMix 256 7.2 Bottom-up approach 259 Bottom-up approach using Mule 260 ■ Bottom-up approach using ServiceMix 260 7.3 Consuming web services 263 Consuming web services with Mule 263 ■ Consuming web services using ServiceMix 264 7.4 Web service standards 266 WS-Security 267 ■ Using WS-Security with Mule 267 Using WS-Security with ServiceMix 272 ■ WS-Addressing 274 Using WS-Addressing in Mule 275 ■ Using WS-Addressing in ServiceMix 277 7.5 Summary 279
  • 17. CONTENTS xi 8 Implementing enterprise-quality message flows 280 8.1 Handling errors in your message flow 281 Error handling with Mule 281 ■ Error handling in ServiceMix 284 8.2 Securing the ESB environment 288 Authentication and authorization with Mule 288 Authentication and authorization with ServiceMix 302 8.3 Making your message flows transactional 307 Implementing transactional message flows in Mule 309 Implementing transactional message flows in ServiceMix 312 8.4 Summary 316 PART 3 ESB CASE STUDIES...........................................317 9 Implementing a case study using patterns 319 9.1 Introducing a design approach for integration projects 320 Introducing the Enterprise Integration patterns 320 Analyzing a pattern-based design approach 322 9.2 Introducing a restaurant table reservation case study 324 9.3 Designing the restaurant table reservation solution 325 Designing a publish-subscribe message flow 325 ■ Designing a filtering and routing message flow 327 9.4 Implementing the case study with Mule and ServiceMix 328 The Spring and Hibernate building blocks 328 ■ Implementing the Mule message flow 332 ■ Implementing the ServiceMix message flow 339 9.5 Testing and deploying the integration solution 352 Using JUnit to test the Mule and ServiceMix flows 352 Deploying an integration solution to a production environment 356 9.6 Summary 357
  • 18. CONTENTS xii 10 Managing and monitoring the ESB 358 10.1 System-management Enterprise Integration patterns 359 The Wire Tap pattern 359 ■ The Message Store pattern 363 The Detour pattern 368 10.2 Monitoring using JMX 375 Using JMX to administer Mule 376 ■ Monitoring Mule using MC4J 380 ■ Mule Galaxy and Mule HQ 382 Using JMX to administer ServiceMix 386 ■ Monitoring ServiceMix using MC4J 388 10.3 Summary 391 11 Implementing a process engine in the ESB 393 11.1 Introducing the process engine 394 The execution environment for processes 395 ■ Designing processes for a process engine 397 11.2 A process engine case study: booking a day of scuba diving 400 11.3 Diving into the messages and services 402 Designing the case study message definitions 403 ■ Serializing the case study messages to XML with JiBX 405 ■ Setting the stage for the case study implementation 406 11.4 Implementing a process engine with jBPM and jPDL 411 Orchestrating services with jPDL 411 ■ Implementing the case study with jBPM and Mule 415 11.5 Implementing a process engine with Apache ODE and WS-BPEL 426 Orchestrating services with WS-BPEL 426 ■ Implementing the case study with Apache ODE and ServiceMix 429 11.6 Summary 435 appendix A: ServiceMix 4.0 436 appendix B: Differences between Mule 1.4.x and Mule 2.0.x 441 appendix C: Graphical tool support 445 appendix D: Mule component overview 452 appendix E: ServiceMix component overview 469 appendix F: The Swing test client 477 appendix G: Overview of tools and libraries 481 index 484
  • 19. xiii foreword Getting different applications to work together has never been fun. It’s not sexy, the rewards are limited, and there is no glory. Throughout my career, it seemed as if a stigma was associated with integration—that it was a dirty job, and you pulled the short straw if you were working in this area. Personally, I always enjoyed working in integration, and because enterprises never throw anything away, getting different applications to work together has become an increasingly essential element of IT. Things really became interesting when the enterprise service bus (ESB) made its debut. The concepts on which the ESB is founded have changed over time. Since IBM first released MQSeries, enterprises have been sold on the benefits of decoupling systems using point-to-point message queues. When TIBCO brought Rendezvous to the mar- ket, it expanded the horizons of messaging by introducing the publish-subscribe model. The Java Message Service (JMS)—born through Sun’s Java Community Process (JCP)—set out to unify the point-to-point and publish-subscribe messaging models. It wasn’t long before enterprises required more than just messaging; they also needed a way to orchestrate messages between systems and perform transformations. To address this need, major vendors such as IBM, Oracle, and Microsoft built enter- prise application integration (EAI) brokers that added message brokering and central- ized transformation engines on top of their existing messaging servers. The problem with the EAI approach was that it adopted a hub-and-spoke architecture where all data had to flow through the EAI broker. Although this worked for many applications, enterprises were soon pushing the boundaries of these systems; it became clear that something more flexible, scalable, and distributed was required. Enterprises needed
  • 20. FOREWORD xiv connectivity, transaction management, security, and message routing, and they needed to host services that operated on data moving around their systems. The industry needed the ESB. With the advance of service-oriented architecture (SOA) in the last several years, we’ve seen confusion unfold about what SOA really is. One affirmation that has reso- nated well in the industry is that the ESB is the foundation of SOA. The term SOA cov- ers a much broader topic than just technology, but we need technologies like ESBs to realize the benefits of what service orientation has to offer. The ESB provides an anchor point for many enterprises that are braving the nebulous ocean of SOA mar- keting, vendor claims, and vaporware. The ESB bridges the gap between old and new. It acts as a mediator between application integration and service orientation, enabling enterprises to build new applications and processes from existing technology. The ESB has gained in popularity because there is a general understanding of what an ESB is; but if you’re still confused, this book will definitely provide clarity. The notion of an ESB involves a common messaging bus that is used to communicate between different systems within an enterprise. Typically, there is a shared messaging format on the bus, and adapters between the bus and back-end applications translate data from the proprietary data formats to the shared message bus format. The power of this model is that applications can share information while being totally decoupled from one another. Additionally, the ESB provides a common platform for handling security, transformations, message routing, transactions, and monitoring. This book does a great job of covering each of these topics and dives deep into the detail of how to apply these features in the real world. I founded the Mule project in 2003 because I was frustrated by the proprietary nature of products available for building ESB solutions. In 2001, I was working as an architect for a tier-1 investment bank. I was tasked with building a custom ESB-like solution to integrate hundreds of legacy and custom applications. Back then, the term enterprise service bus hadn’t been coined (although by 2002, Sonic Software, Fiorano, and SpiritSoft all staked claim to the term), but what we built was in fact an ESB. At the time, the technology choices were limited; you used either an application server or a heavyweight EAI solution that required a huge upfront investment in infrastructure, money, and human resources. We wanted something lightweight and easy to deploy and manage. Like many enterprises at the time, we built our own abstraction on top of JMS. We discovered early on that building our own was an extreme undertaking and a huge burden on our developers. After that experience, I realized that the industry needed an open source solution built on open standards. The open source model is the perfect choice for developing an ESB. More accu- rately, open source is perfect for integration. After all, ESBs are about surfacing, manipulating, and moving data between applications. Application integration is com- plex on many levels. The permutations of applications, protocols, message formats, environment restrictions, and nuances in the way an application (or even a standard) has been implemented cause system integrators an unholy amount of grief. No single
  • 21. FOREWORD xv vendor can realistically claim to understand the intricacies of your application envi- ronment, so all the proprietary vendors have instead chosen to offer products that make their customers abide by their rules when building an ESB solution. I can say from experience that this quickly becomes a problem when the vendor’s approach doesn’t suit your needs. Sometimes, you want to get into the code and customize for the problem at hand. By providing access to the source code, open source ESBs can alleviate these prob- lems—but the benefits don’t stop there. By nature, open source projects are devel- oped to be lean and modular. Developers working on the project don’t have time to maintain a huge product, and they want the code base to be accessible to their com- munity to encourage contributions. Given that the use cases for ESBs and integration are so varied, it’s impossible to have one vendor test every scenario. It’s far better to give the code to a community of active users who provide testing and feedback about their experience with the ESB. That same user community has connectivity and message- format requirements far beyond what is provided, so it makes sense to enable the users to build support for the more exotic protocols. These extensions can then be committed back to the project for the benefit of the rest of the community. Since the Mule project was founded in 2003, many open source ESBs have emerged. Each has its own way of doing things, and each focuses on different areas. As examples, Apache ServiceMix is built on Java Business Integration (JBI), whereas Apache Synapse is built around the Web Services (WS) standards, and Apache Tuscany uses the Service Component Architecture (SCA) standard. Mule takes a pragmatic approach by embrac- ing these standards without forcing the use of any of them, giving the user a great deal of flexibility when building an ESB solution. Choice is usually a good thing for consumers, but with so many choices, it can be difficult to navigate the landscape of open source ESBs. I believe this book is a valuable resource for those looking to choose an ESB and wanting a stronger grasp on how to implement an ESB using open source projects. I found the case studies in section 3 particularly useful because they pull together many of the concepts learned through- out the book. This book guides you through a logical journey of discovery and demonstration to deliver a solid understanding of the core ESB concepts and how you can use them in the real world. I think that armed with this book and the wealth of open source projects available, you’ll be ready to take on any ESB project. Open source has made ESBs a lot more interesting. Go and enjoy yourself! ROSS MASON Co-Founder & CTO, MuleSource, Inc. Founder of the Mule Project
  • 23. xvii foreword Enterprise service bus is a loosely defined term, and lots of products are claiming to implement the ESB concept. This concept is covered in depth in the first chapter of this book; in short, the goal is to provide a distributed and reliable mediation frame- work that the different systems in an IT environment can use to communicate, thus removing the need for a given system to know how to talk to the others in a specific way. Integration, which is what ESBs are about, is complicated: Each time you add a system, it needs to talk to all the other systems, and ad-hoc integration between the systems has long been considered a bad solution. The concept of EAI emerged as a solution, but it led to another set of problems related to using a hub-and-spoke architecture, where a single system, the EAI broker, becomes the center of the system and a single point of failure. The next step of this evo- lution led to what is now known as an ESB: Data and exchanges are conveyed from sys- tem to system in a single logical bus, decoupling all the systems from each other. This leads to a much more maintainable system and can save a lot of time in the long term. Integration technologies are becoming commodity software, and the rise of open source integration frameworks is becoming increasingly important. Open source is now unavoidable; who would think about paying for an XML parser? ESBs aren’t at this point yet, but most of the underlying technologies in the integration world are avail- able as open source projects, from JMS brokers to SOAP stacks to ESBs. Companies gener- ally use ESBs to convey sensitive data, and they sometimes need advice when they’re developing the applications hosted in the ESBs or when they’re putting these applica- tions in production. Even if you don’t immediately think of commercial support and
  • 24. FOREWORD xviii open source together, this is one of the main reasons it’s important to have companies that can provide consulting, training, and support for such projects; this requirement is now filled by a huge number of open source projects. In this book, you’ll learn how to use two different open source products classified as ESBs. Having committed on both Mule and ServiceMix, I think both projects are awe- some and mature, have good communities, and are backed by vendors that can provide the needed support. By reading this book, you’ll see that even if the two projects have different configurations and sometimes different ways of solving the same problem, you’ll be able to solve your problems with both. One of the key differentiators is that ServiceMix implements the Java Business Inte- gration (JBI) specification. JBI defines a framework to connect components and make them talk together in a standard way. In the JBI world, components can host business logic (a BPEL engine or a rules engine) or handle a particular protocol (HTTP, JMS, and so on). The key benefit of JBI is that new components can be wired easily on the bus, because they all abide by the JBI specification. For example, ServiceMix doesn’t provide a BPEL engine by itself; instead, you can plug in any JBI-compliant component for BPEL (such as the one provided by Apache Ode). Even after you’ve learned how to configure and use ServiceMix, at the end of this book, you won’t dive too far into the JBI API. The JBI specification doesn’t target end users, but rather is intended to be implemented by ESB vendors and other software vendors that want to integrate their products in a JBI-compliant environment, such as a BPEL engine, a business rules engine, a transformation engine, or another specific technology. This is, in my mind, the key benefit of JBI. JBI 1.0 has some shortcomings: the JBI packaging and classloader architecture, the mandatory use of XML everywhere in the bus, and the fact that writing a JBI compo- nent isn’t easy. But being part of the Expert Group for JBI 2.0, my hope is that those shortcomings will be addressed in the next version of the specification—or even ear- lier, in ServiceMix 4, which is briefly discussed in the appendixes of this book. That’s why open source is so attractive: The feedback from the community pro- vides vital input for the next major version of a product, and this usually leads to better and more innovative products. Enjoy this book and learning from Tijs and Jos how to work with Mule and ServiceMix in a wide variety of integration challenges. You’re also invited to work with the community on making these open source ESBs even better! GUILLAUME NODET Principal Engineer IONA Project Lead Apache ServiceMix
  • 25. xix preface Working on integration projects used to mean working with EAI products, each of which implemented its own stack of tools with proprietary technology. To switch from one EAI product to another meant learning the proprietary technology and toolset from that new product. Then, the market changed from EAI to SOA and ESB products, with more focus on open standards that emerged in the integration market. Examples of these open standards are Java Message Service (JMS), SOAP, XML, and WS-*. With open standards available, more and more open source projects began to implement these specifications. Because we enjoyed working with open source frameworks in JEE application devel- opment, we watched the progress of integration frameworks with a lot of interest. Mule was one of the first projects that provided a large set of integration functionality; after a while, it was called an ESB. When we had the chance to design an SOA architecture of a new solution for our current employer in 2005, we chose Mule as the foundation prod- uct. It was delightful to work with an open source ESB to solve our integration needs, because it offered a rich set of integration functionality out of the box. Even when we had to add nonexistent functionality, the ease of development was striking. At the same time, the JBI specification (JSR 208) was released. It was intended to standardize the ESB infrastructure and had the potential to implement an ESB with products from several vendors, with each product suited for its specific task, such as routing, transformation, or service orchestration. Although the JBI specification didn’t really take off, some interesting products were created. Apache ServiceMix is an excellent example of a JBI implementation; because it makes working with the JBI
  • 26. PREFACE xx specification simple, we think ServiceMix is a great alternative to Mule. Mule focuses on ease of development with support for all kinds of payloads, and it uses an architec- ture and design model, which isn’t based on a specification. ServiceMix implements the JBI specification and therefore focuses on XML payload and the implementation of binding components and service engines. Mule and ServiceMix have a lot of differences, but they also have common ground that’s focused on integration functionality. We noticed the lack of books in the open source integration area, and it occurred to us that we could write a book that covered both Mule and ServiceMix; it would provide a good overview of the current state of open source integration products. Because we’re developers and are working on cli- ent projects all the time, we decided to provide a lot of examples in the book. Writing this book has been an intense, but interesting and enjoyable experience. It took a lot of time to implement every example, but the result is material that’s freely available to everyone and a good starting point for a Mule or ServiceMix project. While we were writing this book, we had a hard time keeping up with the fast development pace of the Mule and ServiceMix projects and emerging frameworks like Apache Camel and Spring Integration. But we kept up: This book uses Mule 2.0.2 and Service- Mix 3.2.1. Please note that there has been a new release of ServiceMix with version 3.2.2. This is just a maintenance release which does not change the contents of this book, nor the example implementations. We provide a fully implemented development environment with many additional frameworks and libraries, and functionality to build and test integration solutions. This book provides a complete approach to working with Mule and ServiceMix, and we hope you’ll enjoy reading it and working with the examples.
  • 27. xxi acknowledgments We appreciate the contributions of many people who have helped us make this book a reality. We couldn’t have written it without the discussions, enthusiasm, remarks, and code and chapter reviews of these individuals. Special thanks to Andy Verberne, who provided invaluable feedback about the chapters and the code examples. We were also happy with the support and feedback we received from the Mule team, especially Ross Mason and Daniel Feist; and from the ServiceMix team, particularly Guillaume Nodet and Bruce Snyder. We also want to thank Guy Crets for his comments in the early stages of writing this book and for his enthusiasm and support throughout our writing period. We don’t have enough space to mention all the people involved, but your help is appreciated. At Manning Publications, we’re grateful to our development editor Jeff Bleiel. Jeff was great to work with, and his work improved the readability of our manuscript a lot. We also want to thank publisher Marjan Bace for giving us the opportunity to write this book and for his no-nonsense comments and remarks, which made this book what it is. Thanks to the Manning production team for turning our manuscript into a real book. Finally, we want to thank the reviewers who gave valuable feedback at all stages during manuscript development: Edmon Begoli, Martyn Fletcher, Valentin Crettaz, Lajos Moczar, Andrew Oswald, Davide Piazza, Rick Wagner, Christian Siegers, Craig Borysowich, Jeff Davis, Holger Hoffstätte, Rodney Biresch, Jeroen Benck- huijsen, John Reynolds, Doug Warren, Steve Smith, Hugh Taylor, Dmitri Maximovich, Andrew Perepelytsya, Ross Mason, Dave Corun, Glenn Stokol, Scott Stirling, Andrew Cooke, Emmanuel B. Sangalang, and Dan Alford.
  • 28. ACKNOWLEDGMENTS xxii And very special thanks to Ross Mason and Guillaume Nodet for taking the time out of their busy schedules to look at the manuscript and to write forewords to our book. TIJS RADEMAKERS I would like to thank my girlfriend Ankie, who recently gave birth to our first child, Liv. Without your support during all the hours of writing, this book would have never been written. I promise to be more involved in our little family from now on. I also want to thank my parents Wil and Fieke and in-laws Fer and Annie for their love and understanding. Jos, thanks for all your commitment, enthusiasm, and knowledge dur- ing the years of writing and discussing this book. Also thanks to my managers Diego and Hugo for providing time and freedom in my day-to-day job. JOS DIRKSEN Many people have supported me during the writing of this book. In particular I’d like to thank Tijs for keeping me on my toes during the writing of this book. I’d also like to thank the team at Manning for helping us to write and produce this book: specifically Jeff, for reviewing and tidying up the chapters, and of course all the reviewers for taking the time to offer comments and feedback. I also want to express my gratitude to Diego, my boss at Atos Origin, for giving me time to write parts of this book during office hours. Another colleague I’d like to thank is Andy, who provided us with an extensive review and also spent much of his time doing the final technical review of the book. Finally, I want to thank my girlfriend Brigitte—who when this book comes out will be my wife—for not complaining too much about the evenings and weekends spent working on the book (and my occasional bad temper).
  • 29. xxiii about this book This book is for everyone interested in open source ESBs in general and Mule and ServiceMix in particular. For consultants and architects, this book provides an excel- lent overview of the functionality provided by Mule and ServiceMix and other open source–based integration frameworks. For developers, this book provides numerous code examples and a ready-to-go development environment that you can use to start your projects. We use Mule 2.0.2 and ServiceMix 3.2.1 in this book. New versions of Mule and ServiceMix will be released at a constant rate; for example when this book went to press, ServiceMix had a new maintenance release, version 3.2.2. If you are looking for updated examples that will work with newer versions of Mule or ServiceMix, please visit our website at http://www.esbinaction.com. Roadmap Part 1 of the book starts by explaining the core functionalities of an ESB and the project structure and architecture of Mule and ServiceMix, including some basic examples. Be sure you don’t skip this part! ■ Chapter 1 introduces the functionality that an ESB is expected to provide. We explain seven core functionalities in detail. We also provide an overview of the currently available open source ESBs with a detailed comparison. We fin- ish the chapter with a hello world example that uses Mule and ServiceMix.
  • 30. ABOUT THIS BOOK xxiv ■ Chapter 2 explores the architecture of both Mule and ServiceMix. We describe Mule concepts like endpoints, routers, transformers, and components and work through examples. With ServiceMix, we introduce the JBI specification and dis- cuss service engines, binding components, and the Normalized Message Router (NMR). In this chapter we also provide some examples of how to implement ser- vice Units to be deployed on ServiceMix. ■ Chapter 3 introduces three technologies that complement the Mule and Service- Mix open source ESBs: Spring, JiBX, and ActiveMQ. We also set up a develop- ment environment that includes all the tools and libraries you’ll need throughout the book. The chapter ends with Mule and ServiceMix examples that use the three new technologies and test the development environment. ■ Chapter 4 describes how to develop simple integration solutions with Mule and ServiceMix. We finish this chapter with a description of a message flow and a more complex example implementation. Part 2 discusses the core functionalities of Mule and ServiceMix in more detail, with lots of examples including routing, transformation, connectivity, web services, and error handling: ■ Chapter 5 shows how to implement routing, validation, and transformation in Mule and ServiceMix. We also show an alternative implementation for routing and validation that uses Apache Synapse. ■ Chapter 6 discusses the most common connectivity options for Mule and Service- Mix. They include JMS, FTP, File, JDBC, and Mail, and we demonstrate their use with lots of practical examples. ■ Chapter 7 is dedicated to web services functionality. Mule and ServiceMix use Apache CXF (the successor of XFire) as their main web services platform. We show examples that use a top-down approach (WSDL to Java) and a bottom-up approach (Java to WSDL). ■ Chapter 8 explores more complex ESB functionality. We present a number of examples that involve error handling, showing you Mule’s and ServiceMix’s exten- sive ability to handle exceptions. We also discuss security and transactions. In part 3, we introduce a pattern-based design approach and implement a full case study using Mule and ServiceMix. We also present a monitoring and management envi- ronment, and we use a case study to demonstrate integration with a process engine: ■ Chapter 9 starts with an introduction to Enterprise Integration patterns and pro- vides a pattern-based design approach you can use in open source ESB projects. We also describe a case study with full example implementations in both Mule and ServiceMix. ■ Chapter 10 talks about the management and monitoring parts of an open source ESB, related to the case study from chapter 9. We explain how to use JMX and JConsole to manage your Mule and ServiceMix environment, and we show how to use MC4J to monitor these open source ESBs.
  • 31. ABOUT THIS BOOK xxv ■ Chapter 11 introduces the use of a process engine together with an ESB. We show how you can use jBPM as a process engine, together with Mule as an ESB, to implement a process-driven integration solution. We also explain how to use Apache ODE as a process engine, together with ServiceMix as an ESB, for the same example integration solution. Code conventions All source code in listings or in text is in a fixed-width font like this to separate it from ordinary text. We use two dominant languages and markups in this book— Java and XML—and we try to adopt a consistent approach. Method and function names, object properties, XML elements, and attributes in text are presented using this same font. In many cases, the original source code has been reformatted; we’ve added line breaks and reworked indentation to accommodate the available page space in the book. In rare cases even this was not enough, and listings include line-continuation markers. Additionally, many comments have been removed from the listings. Where appropriate, we’ve also cut implementation details that distract rather than help tell the story, such as JavaBean setters and getters, import and include statements, and namespace declarations. Code annotations accompany many of the listings, highlighting important concepts. In some cases, numbered bullets link to explanations that follow the listing. Code downloads Source code for all of the working examples in this book is available for download from www.manning.com/OpenSourceESBsinAction. Basic setup documentation is provided with the download. Because this book covers a wide range of topics related to open source ESBs, we also introduce many tools and frameworks, including databases, process engines, LDAP servers, and XML serialization. To make it easier for you to set up the environ- ment, we’ve provided an Ant build script that downloads all the necessary tools and frameworks and creates the right directory structure. For a full explanation of the project structure, read chapter 3. Author Online The purchase of Open Source ESBs in Action includes free access to a private web forum run by Manning Publications, where you can make comments about the book, ask techni- cal questions, and receive help from the authors and from other users. To access the forum and subscribe to it, point your web browser to www.manning.com/OpenSourceESB sinAction. This page provides information about how to get on the forum once you’re registered, what kind of help is available, and the rules of conduct on the forum. Manning’s commitment to our readers is to provide a venue where a meaningful dialogue between individual readers and between readers and the authors can take
  • 32. ABOUT THIS BOOK xxvi place. It isn’t a commitment to any specific amount of participation on the part of the authors, whose contribution to the forum remains voluntary (and unpaid). We suggest you try asking the authors some challenging questions lest their interest stray! The Author Online forum and the archives of previous discussions will be accessible from the publisher’s website as long as the book is in print. About the authors TIJS RADEMAKERS is a software architect with more than six years of experience in designing and developing Java and EE applications. He works for Atos Origin, a large European system integrator, where he is responsible for SOA and BPM services and knowledge development. Tijs has designed and implemented large process- and appli- cation-integration solutions, primarily focused on open standards. He has extensive product knowledge of open source as well as closed source SOA and enterprise inte- gration tools, including Mule, ServiceMix, jBPM, and WebSphere Process Server. Tijs is a regular speaker at Java conferences, where he talks about open source integration topics like Mule and ServiceMix. Tijs lives in the Netherlands near Eindhoven with his girlfriend and his new daughter, Liv. JOS DIRKSEN has been working with Java and J2EE applications for more than six years as a software architect. The last couple of years, his focus topics have been open source, security, and quality. He has worked with various open source and commercial integration solutions, mostly in the areas of government and healthcare. Jos has a lot of project experience working with Mule, Apache Synapse, and Apache Axis2 and has also completed projects based on the integration tooling from IBM. Jos regularly gives presentation on open source, Mule, and other related topics. He lives in Eindhoven, the Netherlands, with his wife. About the title By combining introductions, overviews, and how-to examples, the In Action books are designed to help learning and remembering. According to research in cognitive science the things people remember are things they discover during self-motivated exploration. Although no one at Manning is a cognitive scientist, we’re convinced that for learn- ing to become permanent it must pass through stages of exploration, play, and, inter- estingly, retelling of what is being learned. People understand and remember new things, which is to say they master them, only after actively exploring them. Humans learn in action. An essential part of an In Action book is that it’s example-driven. It encourages the reader to try things out, to play with new code, and explore new ideas. There is another, more mundane, reason for the title of this book: Our readers are busy. They use books to do a job or solve a problem. They need books that allow them to jump in and jump out easily and learn just what they want just when they want it. They need books that aid them in action. The books in this series are designed for such readers.
  • 33. ABOUT THIS BOOK xxvii About the cover illustration The figure on the cover of Open Source ESBs in Action is captioned “A traveling sales- man” and it is taken from a 19th century edition of Sylvain Maréchal’s four-volume compendium of regional dress customs published in France. Each illustration is finely drawn and colored by hand. The rich variety of Maréchal’s collection reminds us vividly of how culturally apart the world’s towns and regions were just 200 years ago. Isolated from each other, peo- ple spoke different dialects and languages. In the streets or in the countryside, it was easy to identify where they lived and what their station in life was just by their dress. Dress codes have changed since then and the diversity by region, so rich at the time, has faded away. It is now hard to tell apart the inhabitants of different conti- nents, let alone different towns or regions. Perhaps we have traded cultural diversity for a more varied personal life—certainly for a more varied and fast-paced technolog- ical life. At a time when it is hard to tell one computer book from another, Manning cele- brates the inventiveness and initiative of the computer business with book covers based on the rich diversity of regional life of two centuries ago, brought back to life by Maréchal’s pictures.
  • 35. Part 1 Understanding ESB functionality An enterprise service bus (ESB) is a confusing topic in the modern world of IT. Sometimes it’s referred to as an architectural pattern, which describes a flexi- ble and constructive way to approach integration challenges. The ESB seen as a pattern can and will be implemented with several different products, each excel- ling in its own domain like routing, transformation, security, and orchestration. An ESB from an integration vendor perspective is a product offering that provides integration functionality, a developer toolset, and a management envi- ronment. These product offerings often have a background in the enterprise application integration (EAI) domain. Another perspective of an ESB is as an important part of a service-oriented architecture (SOA). From the SOA perspective, an ESB can be used as an integra- tion platform that enables existing IT assets and applications to be exposed as services. Because the ESB is based on open standards, the proprietary technology of legacy applications can be exposed as services based on open and modern technologies like web services and messaging. In part 1, we will show the functionality an ESB can offer to solve integration challenges. We take a close look at open source ESBs and provide an overview of the open source ESBs currently available. We also introduce two open source ESBs, Mule and Apache ServiceMix, and show you how to set up a development environment to work with these ESBs and the examples in this book. Finally, we take a first look at how to implement integration functionality and message flows in Mule and ServiceMix.
  • 37. 3 The world of open source ESBs If you ask integration specialists and architects to supply one buzzword used in the integration market today, enterprise service bus (ESB) would be one of the pre- dominant answers. Concepts like service-oriented architecture (SOA) and business process management (BPM) would also be mentioned. These buzzwords sound interesting, but are they just part of the hype in the integration market or do they represent real business value? As with every buzzword in the integration industry, a sales pitch is involved, but these concepts have a business case. Other books are available that focus on SOA (such as Understanding Enterprise SOA by Eric Pulier and Hugh Taylor [Manning, 2005]). In this book we focus on the enterprise service bus, but we also discuss some interesting open source products related to SOA and BPM. There’s a lot of confusion about what an ESB is, so let’s start off with an over- view of the most important functionality that should be present in a product call- ing itself an ESB. Many ESB products are available in the market, from vendors like In this chapter: ■ Typical ESB functionality ■ Open source ESB overview ■ Mule and ServiceMix
  • 38. 4 CHAPTER 1 The world of open source ESBs IBM, TIBCO, Microsoft, and Oracle. Most ESB vendors offer products that have a back- ground in the enterprise application integration (EAI) market. As we’ll see in section 1.1, this is not so strange, because ESB functionality has a lot in common with the older EAI products. But there are also a number of products available that have been built from the ground up. In this group of products we see not only commercial vendors but also open source projects that deliver the functionality needed in an ESB. In section 1.5 we examine two open source ESBs (Mule and ServiceMix) that we use in the examples and case studies presented in this book. These two open source ESBs have gained a lot of attention in the market and are the two most used open source ESBs in businesses around the world today. This means that this book is not a typical cookbook for a specific ESB. Because we show examples involving two ESBs, we’re confident that you’ll gain the knowledge and experience you need to use any open source ESB. 1.1 Why do you need an ESB? We can’t begin a book about open source ESBs without a good discussion about the use of an ESB within an enterprise. Maybe you’ve already read articles or books that intro- duced the concept of an ESB. If you want to have a solid background, we recommend you check out Enterprise Service Bus by David A. Chappell (O’Reilly Media, 2004). A lot of the early ESB products had a history in the enterprise application integra- tion market. It was sometimes hard to tell the difference between some ESB products and their EAI predecessors! However, we can identify two main differences between EAI and ESB products. The first is the change from the hub-and-spoke model in EAI products to a bus-based model in ESB products. The hub-and-spoke model is a centralized architecture, where all data exchange is processed by a hub, or broker. The hub-and-spoke model can be seen as the successor of the point-to-point model (which we discuss in figure 1.1 in a moment). The bus model, on the other hand, uses a distributed architecture, in which the ESB functionality can be implemented by several physically separated functions. A second main difference between EAI and ESB products is the use of open stan- dards. EAI products like WebSphere Message Broker, TIBCO BusinessWorks, and Sonic XQ were mainly based on proprietary technology to implement messaging func- tionality and transformation logic. ESB products are based on open standards, such as Java Message Service (JMS), XML, J2EE Connector Architecture (JCA), and web ser- vices standards. As we mentioned earlier, many current ESB products have a background in the EAI space. So newer versions of WebSphere Message Broker (version 6), TIBCO Business- Works (version 5), and Sonic ESB (yes, the name has changed) are now marketed as ESBs but still have a strong foundation in EAI. In addition, a number of ESBs have been built from the ground up, like WebSphere ESB, Cordys, and TIBCO ActiveMatrix Service Grid.
  • 39. 5 Why do you need an ESB? Because open source ESBs were not yet available during the EAI period, they don’t have a history in the implementation of proprietary technology. Many integra- tion specifications like JMS and Java Business Integration (JBI) are available, and open source ESBs use these specifications as the foundation for their open source product implementations. But why do you need an ESB? Let’s take some time to explore the benefits of an ESB. Then, in section 1.1.2 we look in greater detail at the ESB from an applica- tion perspective. 1.1.1 Benefits of an ESB In any discussion of the implementation of an ESB within an organization or depart- ment, there’s a need for a management-level overview of an ESB. In essence, an ESB is a technical product that solves integration problems. But let’s try to step back from the technical aspects of an ESB and talk about some high-level benefits. To show the advantages of an ESB, we start with an overview of how applications are integrated without the use of an EAI broker or an ESB. This model (see figure 1.1) is known as point-to-point architecture. The application landscape example shown in figure 1.1 is still a common way of dealing with integration problems. In this example, four existing applications are inte- grated via point-to-point integration solutions. For example, the enterprise resource planning (ERP) system needs to have billing information from the COBOL application. Figure 1.1 The point-to-point model describes an environment where applications are integrated with a unique and custom-made integration solution.
  • 40. 6 CHAPTER 1 The world of open source ESBs Because the COBOL application is only capable of exporting a file in a batch, a custom- made integration solution is being used to transfer the billing information from the exported file to the ERP system. The information also has to be transformed to a data format that the ERP system is able to process. For every line drawn between the four existing applications in figure 1.1, a custom integration solution is developed. So an important downside to the point-to-point model is the number of custom-made inte- gration solutions that must be developed and maintained. The complexity and maintenance cost increase when we add a new application to this application landscape. Imagine that this new application must communicate with the ERP, customer relationship management (CRM), and COBOL application as depicted in figure 1.1. This means that we need to implement three new integration solutions to be able to integrate this new application into the existing environment. In this kind of application environment, there are many reasons to think about an integration solution like an ESB (summarized in table 1.1). Is there a business driver to integrate applications? In most organizations a real business need exists for inte- grating applications. New products have to be delivered to the market today, not tomorrow. And the IT environment must be able to facilitate the business to be able to do this. An ESB can help to increase the flexibility of an IT environment, and there- fore can help to improve the time-to-market for new products. Here’s another reason to consider ESBs: the application landscape is heterogonous when it comes to technologies and protocols. When you have to deal with many differ- ent protocols—for example, JMS, FTP, HTTP, SOAP, SMTP, and TCP—it’s difficult to implement new integration solutions between applications. An ESB provides protocol or technology adapters, which make it easy to deal with a heterogonous IT environment. A third reason is the reduction of the total cost of ownership of the full application landscape. In a point-to-point model, the management and maintenance of all the integration points can be time-consuming and therefore expensive. It would be less time-consuming to have an ESB solution to deal with integration problems so that management and maintenance becomes easier. Table 1.1 Reasons to start thinking about an ESB Reason Description Necessity to integrate applications There must be a clear business need to integrate applica- tions. Time-to-market and real-time reports are examples of business drivers. Heterogonous environment When you have to deal with lots of different technologies and protocols, there is a clear need for a central solution that’s made to deal with these challenges. Reduction of total cost of ownership IT departments are forced to cut maintenance costs to be able to satisfy demands for new products by the business departments. A central integration solution can help decrease the management and maintenance costs of the full application landscape.
  • 41. 7 Why do you need an ESB? We’ve discussed the point-to-point model and explained the disadvantages of this model. The introduction of an ESB to an application landscape could help to deal with the maintenance nightmare and make it easier to add new applications. Let’s go back to the application environment example described in figure 1.1. The addition of an ESB to this environment is depicted in figure 1.2. What’s most striking in figure 1.2 is the reduction in the number of integration connections among the various applications. Every application is connected to the ESB, and the integration logic needed to integrate the COBOL application with the CRM application is implemented within the ESB. Note that the ESB landscape shown in figure 1.2 is just a high-level picture. The picture hides the complexity of implementing the integration logic by drawing an ESB layer, but complexity remains inside this layer that should be dealt with. The big difference with the point-to-point model is that the ESB is designed to deal with integration challenges. Because an ESB provides all kinds of integration functionality, workbenches, and management envi- ronments out of the box, implementing a new integration flow between applications is made much easier. Figure 1.2 An application landscape using an ESB to integrate the applications
  • 42. 8 CHAPTER 1 The world of open source ESBs As shown in figure 1.2, adding a new application is also simpler than ever before. The new application is connected to the ESB with the transport protocol and technology adapter suited for this application. The integration flows that connect the new appli- cation with the three existing applications can be handled within the ESB. This concludes our discussion about the benefits of an ESB on a high level. Let’s focus a bit more on the technology aspects of an ESB, as we take a look at the ESB from an application perspective. 1.1.2 Using an ESB from an application perspective With the rise of Java Message Service (JMS) as a messaging standard, most of the inte- gration products that are currently available in the market are built with Java technol- ogy. The integration vendors, however, hide this Java technology from the integration specialist by offering fancy integration workbenches, which let you use drag-and-drop development. Therefore, integration architects and specialists working with these integration products often don’t have a background in Java and Java Enterprise Edi- tion (JEE) development. This book focuses on a specific kind of ESB, the open source ESB. Open source ESBs are also built on JMS and other Java technologies. Although graphical tools are also available for most of the open source ESBs, as we’ll see later in this book, open source ESBs are more focused on Java and XML development. In this book we show many code examples that include Java and XML snippets, because that’s the typical place to implement integration logic within an open source ESB. This means that you shouldn’t be afraid of doing a bit of Java coding and XML configuration when using an open source ESB. A COMMON JEE APPLICATION ARCHITECTURE Because you likely have a Java background, we’ll look at the use of an ESB from a Java or JEE application in this section. To start this discussion, let’s examine a typical JEE application architecture, as shown in figure 1.3. The three-tier architecture approach shown in figure 1.3 is common in JEE or Microsoft .NET applications developed in business-critical environments. The division of the application logic into three layers promotes the scalability of an application and should improve the maintainability. All the functionality needed for the applica- tion shown in figure 1.3 is implemented in the three layers. The only external part necessary is a relational database to retrieve and store the information that’s main- tained in the application. So would this application architecture benefit from intro- ducing an ESB? Well, knowing that the logic implemented in this application isn’t used by other applications, the answer is no. This kind of application can be categorized as an iso- lated application that doesn’t have the need to communicate with other applications. In the early years of this century, the architecture of most applications that were devel- oped for large businesses looked like the example shown in figure 1.3.
  • 43. 9 Why do you need an ESB? DESCRIBING THE NEED FOR AN INTEGRATION SOLUTION However, with the demand to improve the flexibility of business processes and the time-to-market for new products and other business drivers, applications have to be integrated. The need for a single-client view is an example of the need for application integration. Information about clients exists in many businesses scattered across dif- ferent applications, like CRM applications, ERP systems, and legacy applications. When the call center of such a business needs a complete client overview, information from all these applications is necessary. And most likely, the call center application is not the only party interested in the client view. Figure 1.4 shows an overview of this single- client view example. The example given in figure 1.4 requires a solution that’s capable of retrieving the information of a specific client from the ERP, CRM, and COBOL applications and that’s able to consolidate this information into a single-client view and return it to the call center application. We have multiple options for implementing such an integra- tion solution. ADDING AN ADDITIONAL LAYER TO THE APPLICATION One option is to enrich the call center application with logic necessary to create the single-client view. This would mean that the application architecture shown in figure 1.3 should be extended with an integration layer. This integration layer is responsible for the retrieval of the client information from the three other applications. Although only three applications need to be integrated, a lot of integration logic is necessary. You can imagine that the connectivity necessary to integrate the legacy COBOL application is different from the connectivity needed for the ERP system. This means that the integra- tion layer of the call center application also needs to support different connectivity pro- tocols and likely different message formats as well. The architecture of the call center application would then look like the overview in figure 1.5. Figure 1.3 Here’s a typical example of an application with a three-tier architecture. The application logic is divided into three layers, which can be distributed over multiple physical servers to improve scalability and performance if necessary.
  • 44. 10 CHAPTER 1 The world of open source ESBs The architecture shown in figure 1.5 is not bad per se. If the logic or data of the appli- cations that needs to be integrated won’t be needed in any other application within a department or enterprise, a separate integration solution may not be necessary. But implementing different connectivity protocols; supporting various message formats; and providing messaging, routing, and transformation functionality is a time-consuming exercise. Furthermore, dedicated software is available to solve an integration prob- lem. This is where the ESB product comes into the picture. USING AN ESB TO IMPLEMENT THE INTEGRATION SOLUTION When we look at the possibilities for adding an ESB to the architecture shown in fig- ure 1.5, it’s clear that the main difference involves the size of the integration layer and the abstraction that an ESB can provide. The integration logic needed for the ERP, CRM, and COBOL applications can be implemented in the ESB solution. Furthermore, the ESB can implement the logic needed to create a single-client view. What remains in the integration layer is connectivity logic to communicate with the ESB. The advan- tage is that ESBs support a wide range of connectivity protocols, including industry standards like SOAP over JMS or SOAP over HTTP. Figure 1.6 shows the architecture of the call center application with the addition of an ESB for the integration with the three back-end applications. Figure 1.4 Here’s an example where integration between multiple applications is necessary. The call center application needs a single- client view from the ERP, CRM, and COBOL applications.
  • 45. 11 Why do you need an ESB? If we compare figures 1.5 and 1.6, the main difference is where the integration logic for the back-end applications is implemented. In figure 1.5, the integration layer of the call center application implements the integration logic, which translates to a lot of cus- tom development. With the addition of an ESB in figure 1.6, the integration logic is centralized in a software component that isn’t part of the call center application. Because ESBs offer an environment that’s focused on providing integration function- ality, there’s no need for much custom development to implement the integration with the three back-end applications. In figure 1.6 we show a simplified overview of a call center application that’s inte- grated with three back-end applications via an ESB. The advantages of using an ESB become clearer if we consider multiple applications that need to be integrated with, for example, the ERP system and the CRM application. The ESB has already implemented integration logic with these applications, and this logic can be reused for other applica- tions that need information from the ERP system or to update data in the CRM application. Figure 1.5 The architecture shown in figure 1.3 is extended with an integration layer that provides the logic needed to integrate with other applications.
  • 46. 12 CHAPTER 1 The world of open source ESBs But before we can decide when and when not to use an ESB, let’s first look at the core functionality of an ESB. 1.2 Explaining the core functionalities of an ESB ESB is a common integration buzzword nowadays, and there are a lot of definitions used by integration vendors, market analysts, and business users. If you want to look for these definitions, just Google “enterprise service bus” and you’ll definitely find enough resources for a couple of hours’ reading. We provide you with a practical Figure 1.6 Here we introduce an ESB to the call center architecture. The ESB provides functionality to communicate with the three back-end applications and to route the message to the right back- end application.
  • 47. 13 Explaining the core functionalities of an ESB overview, not an exhaustive list, of what we think are the core functionalities of an ESB. You can then use this overview to create your own definition of an ESB. Table 1.2 provides a short overview of the seven core functionalities. Next we explore each of these seven core functionalities. The first functionalities that we discuss, location transparency and transport protocol conversion, are typical examples of ESB functionality. The ordering of the other core functionalities is not really relevant. 1.2.1 Location transparency When a service consumer communicates with a service provider (you can also think of an application here) via the ESB, the consumer doesn’t need to know the actual loca- tion of the service provider. This means that the service consumer is decoupled from the service provider and that a service provider’s new server location has no impact on the service consumer. The core functionality of an ESB that provides this capability is known as location transparency. Table 1.2 Overview of the core functionalities necessary in an ESB ESB core functionality Description Location transparency The ESB helps with decoupling the service consumer from the service provider location. The ESB provides a central platform to communicate with any application necessary without cou- pling the message sender to the message receiver. Transport protocol conversion An ESB should be able to seamlessly integrate applications with different transport protocols like HTTP(S) to JMS, FTP to a file batch, and SMTP to TCP. Message transformation The ESB provides functionality to transform messages from one format to the other based on open standards like XSLT and XPath. Message routing Determining the ultimate destination of an incoming message is an important functionality of an ESB that is categorized as message routing. Message enhancement An ESB should provide functionality to add missing informa- tion based on the data in the incoming message by using mes- sage enhancement. Security Authentication, authorization, and encryption functionality should be provided by an ESB for securing incoming messages to prevent malicious use of the ESB as well as securing out- going messages to satisfy the security requirements of the service provider. Monitoring and management A monitoring and management environment is necessary to configure the ESB to be high-performing and reliable and also to monitor the runtime execution of the message flows in the ESB.
  • 48. 14 CHAPTER 1 The world of open source ESBs You can implement the location transparency within the ESB with a simple XML configuration, a database, or a service registry. Your approach depends on your requirements, such as dynamic configuration capabilities and the need for additional information about service providers (e.g., quality of service). The simplest implemen- tation of location transparency is the configuration of service provider endpoints in a static XML file. This is a common way to implement location transparency in an open source ESB. When you need dynamic configuration of service provider locations, you require more advanced configuration options. Dynamic configuration can be imple- mented with a hot-deployment model for location configuration files or with loca- tions stored in a database. When you have even more requirements, such as the definition of quality of service and business information about a specific service pro- vider, a service registry can provide the necessary capabilities. In this book, we focus on the static XML file and the hot-deployment options. Figure 1.7 shows a graphical overview of the options you have available when implementing location transparency with an ESB. Figure 1.7 shows a simple case in which an application needs client information from a CRM application. Because an ESB is used, the location of the client information ser- vice within the CRM application is transparent to the service consumer. Notice that when the location of the client information service changes, only the location config- uration within the ESB has to be updated. 1.2.2 Transport protocol conversion Another common scenario is one in which we have a service consumer that’s using a different transport protocol than the service provider is. You can probably think of a number of cases where you have seen this in practice. Let’s use an example in which we have a service consumer that’s communicating via JMS. The service provider is a Figure 1.7 The ESB can use several options to configure and store the location of the CRM client information service. A common option is an XML file configuration, but there are alternatives, such as a database or a service registry.
  • 49. 15 Explaining the core functionalities of an ESB legacy system that’s only capable of importing and exporting files in a batch. Of course, we can write our own transport protocol conversion logic, but wouldn’t it be great if it were offered out of the box? An ESB is capable of converting incoming trans- port protocols to different outgoing transport protocols; we call this ESB core func- tionality transport protocol conversion. The components in an ESB offering transport protocol conversion are typically referred to as protocol adapters. Figure 1.8 shows the transport protocol conversion of the example we have just discussed: JMS to File. When dealing with environments with many different transport protocols, an ESB can offer transport protocol conversion, as shown in figure 1.8. Of course, a typical ESB doesn’t support all of the transport protocols you may come across in complex integration environments, but it does support a wide variety. For protocols that aren’t supported out of the box, you can purchase an adapter from third parties or develop a custom adapter. 1.2.3 Message transformation Besides the support for a set of transport protocols, implementing the integration between a service consumer and a service provider often requires a transformation of the message format. In the example shown in figure 1.8, the content of the JMS mes- sage can’t be forwarded as is to the legacy application. There is a need for logic that transforms the message format to the expected format of the service provider. The ESB core functionality that helps with changing the message format is known as the message transformation functionality. A common technology to transform a message from the source to the target for- mat is Extensible Stylesheet Language Transformation (XSLT). XSLT is a World Wide Web Consortium (W3C) recommendation widely adopted in the integration industry, which ensures that message transformations written in XSLT are usable in most of the ESBs available in the market. Before the age of open standards like XSLT and the use of ESBs, the EAI products, often referred to as brokers, implemented message transfor- mation most often with proprietary technology. So message transformation is a good example of the evolution of open standards used in integration products. Let’s take a look at a graphical representation of message transformation as a core functionality of an ESB in figure 1.9. Figure 1.8 In this example a client application sends a JMS message to the ESB. A JMS adapter accepts the JMS message and forwards it to the file adapter, which writes the content of the JMS message to the file system of a legacy application.
  • 50. 16 CHAPTER 1 The world of open source ESBs Message transformation, as shown in figure 1.9, is one of the most used capabilities in ESBs. It’s rare that the message format of an incoming message exactly matches the for- mat expected by the target application. The example used in figure 1.9 shows a transfor- mation from a SOAP message to an electronic data interchange (EDI) message. The message transformer that performs the message transformation can be implemented with an XSLT style sheet as we already mentioned, but it can also be a transformation tool from a third party that’s dedicated to supporting all kinds of EDI-related transfor- mations. Alternatively, you can write your own with the application programming inter- face (API) provided with your ESB product. In chapter 5, we explore how message transformation can be implemented with a number of examples. 1.2.4 Message routing In our examples so far, the target destination of the incoming message was just one possible service provider. But in most integration projects, multiple applications are involved that could be the target application of a particular incoming message. Based on many kinds of rules and logic, the ESB has to determine which service provider(s) a message must be sent to. The core functionality involved with dealing with this kind of logic is known as message routing. This message routing functionality is a classification for different kinds of routing capabilities. There is, for example, content-based routing, which is used for routing messages to their ultimate destination based on their content. But there is also the message filter routing functionality, which is used to prevent certain messages from being sent to a particular destination. A third example is the recipient list routing capability, which can be used to send a particular message to multiple destinations. Message routing is the ESB core functionality needed in almost every integration implementation. Figure 1.10 shows an example of message routing based on the con- tent of an incoming message. Message routing can be complex and difficult to implement because knowledge of the routing rules and logic involved is often spread across different people. It’s diffi- cult to explain the use of routing rules to businesspeople, although their business Figure 1.9 An ESB provides the capability to transform the message format of an incoming message to the format expected by the target application. In this example the ESB transforms the SOAP message to an EDI message by using a message transformer.
  • 51. Another Random Scribd Document with Unrelated Content
  • 52. 400 Epigrams, and about 80 Epitaphs. This writer usually designated himself by the title of John Davies of Hereford,—See Censura Literaria, vols. i. ii. v. vi. Brit. Bibliographer, No. VIII, Beloe's Anecdotes, vol. ii., and Wood's Athenæ Oxon. vol. i. p. 445. He also wrote The Holy Rood, or Christ's Crosse, 1609. [680:C] These poetical brothers published their poems with the above title, in a valuable Collection of Metrical Miscellanies, called "A Poetical Rapsodie," 1602, which will be noticed hereafter. They are introduced in the Table as being the principal contributors, and as distinguishing their pieces by a separate title or division. [681:A] This writer was the most popular ballad-maker of his day; he was by trade a silk-weaver, and the compiler of various Garlands, under the titles of "The Garland of Good Will;" "The Garland of Delight," &c. &c. Nash, in his "Have with you to Saffron-Walden," 1596, says, that "his muse from the first peeping forth, hath stood at livery at an alehouse wispe, never exceeding a penny a quart day nor night; and this deere yeare, together with the silencing of his looms, scarce that; he being constrained to betake himself to carded ale: whence it proceedeth, that since Candlemas, or his jigge of John for the King, not one merrie dittie will come from him, but The thunder- bolt against swearers, Repent England repent, and The strange judgements of God." [681:B] Drant was a copious Latin Poet, having published two miscellanies under the titles of Sylva, and Poemata Varia. [681:C] A quotation from one of the songs or ballads of this drunken rhymer, is to be found in Much Ado about Nothing, (Reed's Shakspeare, vol. vi. p. 196.) commencing "The god of love,
  • 53. That sits above." [682:A] This poem, of which a prior edition is noticed in Censura Literaria, vol. v. p. 349, as published in 4to. 1600, is conjectured by Ritson, p. 201, to have been the production of William Evans, who is well known to the lovers of old English poetry, by his eulogium prefixed to the first edition of Spenser's "Faerie Queene," 1590. The Thamesiades, which consists of three books or cantos, is written with vigour, and exhibits some pleasing poetical pictures. [682:B] This thin volume of 22 leaves, consists of seven poetical speeches "spoken before the King and Queens most excellent Majestie, the Prince his highnesse, and the Lady Elizabeth's Grace." [682:C] He contributed also to the previous editions of 1559 and 1563. [682:D] The "Georgiks" were added to a new version of the "Bucolikes," forming one volume, 4to. Both are in regular Alexandrines without rhyme. [683:A] This production consists of a pastoral and an elegy; the former being a translation of the Aminta of Tasso. [683:B] Fraunce also published in a work of his, entitled "The Lawyers Logicke," 1586, an hexameter version of Virgil's Alexis. His affectation of Latin metres has condemned him to oblivion, for as Phillips justly remarks, "they neither become the English, nor any other modern language."—Edit. apud Brydges, p. 109. [683:C] Wood tells us (Ath. Oxon. vol. i. p. 398.), that Freeman was held in esteem by Donne, Daniel, Chapman, and Shakspeare; and to these poets, and to Spenser, he has addressed epigrams.
  • 54. For numerous specimens of this poet, see Warton, vol. iv., Ellis, and Park in Censura Lit. vol. iv. p. 129. [683:D] This poem was afterwards annexed to Greene's "History of Arbasto," 1617, where it is termed "a lovely poem." It was reprinted in 1626. On Greene's authority, I have ranked it beyond mediocrity. [684:A] A collection which consists, observes Mr. Park, "of the saddest trash that ever assumed the name of Epigrams; and which, with a very slight alteration, well merits the sarcasm bestowed by Shenstone on the poems of a Kidderminster bard:— "Thy verses, friend, are linsey woolsey stuff, And we must own—you've measur'd out enough." Censura Lit. vol. v. p. 348. [684:B] The "Popish Kingdome" consists of four books, of which the last contains a curious and interesting description of feasts, holidays, and Christmas games; including, of course, many of the customs, and almost all the amusements of the period in which it was written. [684:C] Besides these works, Googe published in 1563, "Eglogs, Epitaphs, and Sonnets," 12mo. [685:A] "A Poem in manuscript, of considerable length, together with some Sonnets, preserved amongst numerous treasures of a similar nature, which belonged to the late Duke of Bridgewater, and now belong to the Marquis of Stafford."—Todd's Spenser, vol. i. p. 87. Mr. Todd has given us a specimen of Sir Arthur's talents, by the production of a Sonnet from this manuscript treasure, which indicates no common genius, and induces us to wish for the publication of the whole.
  • 55. [685:B] Sir Arthur was the intimate friend of Spenser, who lamented the death of Lady Gorges in a beautiful elegy entitled "Daphnaida:" he has recorded, likewise, the conjugal affection and the talents of her husband, under the name of Alcyon, in the following elegant lines:— "And there is sad Alcyon, bent to mourne, Though fit to frame an everlasting dittie, Whose gentle spright for Daphne's death doth tourne Sweet layes of love to endlesse plaints of pittie. Ah pensive boy, pursue that brave conceipt, In thy sweet eglantine of Meriflure, Lift up thy notes unto their wonted height, That may thy Muse and mates to mirth allure." Todd's Spenser, vol. viii. p. 23. [685:C] This poem was printed, says Ritson, at the end of Kenton's "Mirror of man's life," 1580. Gosson is introduced here in consequence of the celebrity attributed to him by Wood, who declares, that "for his admirable penning of pastorals, he was ranked with Sir P. Sidney, Tho. Chaloner, Edm. Spenser, Abrah. Fraunce, and Rich. Bernfield." [685:D] This forms the second part of a work by the same writer, called "The Golden Aphroditis," and consists of 19 pieces, four of which are in prose. [686:A] Greepe's poem has been, through mistake, attributed by Mr. Beloe to Thomas Greene; and Ritson, by a second error, charged with its omission.—Vide Anecdotes, vol. ii. p. 89. [686:B] These pieces, written before 1620, were collected in his Works, folio, 1633, and in his "Remains," 1670. 8vo.
  • 56. [686:C] Vide Beloe's Anecdotes, vol. ii. p. 109. [687:A] Warton observes, that "this translation has no other merit than that of being the first appearance of a part of the Iliad in an English dress."—Vol. iii. p. 440. [687:B] Ritson appears to have confounded these two writers, Sir William, and William Harbert, and classed them as one. The latter speaks of his unripened yeares in 1604.—Vide British Bibliographer, No. IV. p. 300. [687:C] Beside these Sonnets, amounting to twenty-three, Harvey was the introducer of the miserable attempts to imitate the Latin metres, and boasts in this publication of being the first who exhibited English hexameters. [687:D] The celebrated sister of Sir Philip Sydney. [687:E] All that are printed of these, appear in the Paradise of Daintie Devises, of the date annexed. He had previously translated three tragedies from Seneca, and died in 1598. [688:A] A writer known to greater advantage by his Hierarchie of the Blessed Angels, folio, 1635; a work of singular curiosity and much amusement. [688:B] Higgins termed this the first part, merely in reference to the collection by Baldwin in 1559, which, commencing at a much later period, was afterwards called "the last part." Higgins's publication, in 1575, contains 17 Legends from Albanact to Irenglas; but in 1587 he edited an edition of the Mirrour, including Baldwin's part, and with the addition of 24 Legends of his own composition, which carries forward his department to the death of Caracalla.
  • 57. [688:C] In the Dedication of this work, the fashionable reading of the times is thus reprobated:—"Novelties in these days delight dainty eares, and fine filed phrases to fit some fantasy's, that no book except it abound with the one or the other, or both of these, is brooked of them. Some read Gascoyne, some Guevasia, some praise the Palace of Pleasure, and the like, whereon they bestow whole days, yea, some whole months and years, that scarce bestow one minute on the Bible, albeit the work of God." [688:D] For specimens of this volume, which is supposed to be unique, see British Bibliographer, No. II. p. 105. [689:A] An edition of this "famous old ballad" was published by Thomas Gent of York, about 1740, who tells us, that it was "taken from an antient manuscript, which was transcribed by Mr. Richard Guy, late schoolmaster at Ingleton, in Yorkshire." Subsequent editions have been published by Lambe and Weber. [689:B] Printed in Ashmole's Theatrum Chemicum Britannicum. [690:A] Perhaps the only piece above mediocrity in Kendall's Epigrams is the following which I consider as very happily rendered:— "MARTIAL. To Himselfe. Martial, the thinges that do attaine The hapy life be these I finde: The riches left, not got with paine; The fruitefull ground, the quiet minde. The egall frend; no grudge no strife; No charge of rule, nor governaunce:
  • 58. Without disease the healthfull life; The household of continuance. The mean dyet, no delicate fare; True wisdome joynd with simplenes; The night discharged of all care, Where wine the wit may not oppresse. The faithfull wife without debate; Such sleepes as may beguile the night; Content thyself with thine estate, Ne wishe for death, nor feare his might." Fol. 18, b. [691:A] This writer transcends mediocrity in consequence of the singular purity and harmony of his diction and versification. The subsequent lines, forming the prior part of a sonnet, have the air of being written rather in the 19th than the 16th century:— "Hard is his hap who never finds content, But still must dwell with heavy-thoughted sadnesse: Harder that heart that never will relent, That may, and will not turne these woes to gladnesse; Then joies adue, comfort and mirth, farewell; For I must now exile me from all pleasure, Seeking some uncouth cave where I may dwell, Pensive and solitarie without measure." [691:B] For an account of this author, and of a poem of his printed in 1631, see Wood's Fasti, vol. i. col. 147; and Censura
  • 59. Literaria, vol. i. p. 291. [691:C] A poem in Alexandrines, printed at the end of the first edition of his "Pilgrimage of Princes." [692:A] The 200 Sonnets are followed by 100, entitled "Sundry affectionate Sonets of a feeling conscience;" by 20, called "An Introdution to peculiar prayers," and by 59, termed "Sonnets of the Author to divers." In "The Return from Parnassus," Lok is thus, not undeservedly, sentenced to oblivion:—"Locke and Hudson, sleep you, quiet shavers, among the shavings of the press, and let your books lie in some old nook amongst old boots and shoes: so, you may avoid my censure."—Ancient British Drama, vol. i. p. 49. [692:B] This is attributed to Markham on the authority of Mr. Haslewood. See British Bibliographer, No. IV. p. 381. [692:C] Mr. Park conceives this translation to be the production of Robert Tofte, rather than of Markham.—Ritson's Bibliographia, p. 274, note. [693:A] It is to be regretted that no complete edition of the Works of Montgomery has hitherto been published. Those printed by Foulis and Urie in 1751 and 1754, are very imperfect; but might soon be rendered faithful by consulting the manuscript collection of Montgomery's Poems, presented by Drummond to the University of Edinburgh. This MS., extending to 158 pages 4to., contains, beside odes, psalms, and epitaphs, 70 sonnets, written on the Petrarcan model; and, if we may judge from the six published by Mr. Irving, exhibiting a considerable portion of poetic vigour. The Cherrie and the Slae, which, as the critic just mentioned observes, "has maintained its popularity for the space of two hundred years," must be pronounced in some of its parts,
  • 60. beautiful, and, as a whole, much above mediocrity. Sibbald has printed ten of our author's poems in the third volume of his Chronicle of Scottish Poetry. [694:A] The Sonnets of Murray appeared five years anterior to those of Drummond, and though not equal to the effusions of the bard of Hawthornden, are yet entitled to the praise of skilful construction and frequently of poetic expression. A copy is now seldom to be met with; but specimens may be found in Campbell's History of Poetry in Scotland, and in Censura Literaria, vol. x. p. 374, 375. [694:B] This poet, who, in the former part of his life, practised as a physician, at Butley, in Cheshire, was a Latin poet of some eminence, and one of the translators of Seneca's Tragedies, published in 1581. [694:C] For a specimen of this poem, see Beloe's Anecdotes, vol. ii. p. 104. [694:D] Though said to be the fourth edition, this copy is supposed by Mr. Neve to be really the first impression. (See Cursory Remarks on Ancient English Poets, 1789, p. 27.) Few poems have been more popular than Overbury's "Wife;" owing partly to the good sense with which it abounds, and partly to the interesting and tragic circumstances which accompanied the author's fate. It was speedily and frequently imitated; in 1614, appeared "The Husband. A poeme expressed in a compleat man," by an anonymous writer; in 1616, "A Select Second Husband for Sir Thomas Overburie's Wife," by John Davies of Hereford; in 1619, "The Description of a Good Wife," by Richard Brathwaite; and in the same year, "A Happy Husband, or Directions for a Maid to chuse her Mate," by Patrick Hannay. These pieces are inferior
  • 61. to their prototype, which, though not displaying much poetic inspiration, is written with elegance and perspicuity.
  • 62. [695:A] This work is a composition of verse and prose. Mr. Douce terms Parkes a "writer of great ability and poetical talents, though undeservedly obscure." Vide Illustrations, vol. ii. p. 75. [695:B] Warton, in the Fragment of his fourth volume of the History of English Poetry, remarks at p. 73, that many of Parrot's epigrams "are worthy to be revived in modern collections." The Laquei contain many of the epigrams which he had previously published. [696:A] Peele, who will afterwards be noticed as a dramatic poet, may be classed with Scoggan, Skelton, and Tarleton, as a buffoon and jester. He died before 1598, and his "Merrie conceited Jests" were published in 4to. in 1627. [696:B] An ample analysis of "The Historie of Lord Mandozze," has been given in the British Bibliographer, No. X. p. 523.; and No. XI. p. 587. Of the poetry of this very rare version, little laudatory can be said. [696:C] Of this scarce poem, unknown to Ritson, the reader will find a description by Mr. Haslewood in the British Bibliographer, No. III. p. 214. [696:D] Mr. Beloe conjectures this "Commemoration," not noticed by Ritson, to have been the production of a writer different from the John Phillip of the Bibliographia (p. 299.), and assigns for his reason, the signature, at the conclusion, namely, John Phyllips; but it is remarkable that the inscription, copied by Mr. Beloe, runs thus: "To all Right Noble, Honorable, Godlye and Worshipfull Ladyes, John Phillip wisheth," &c. a variation in the orthography which warrants an inference as to their identity. Vide Beloe, vol. ii. p. 111. et seq.
  • 63. [697:A] Mr. Haslewood supposes this poem to have been written by William Phiston, of London, Student; who is considered by Herbert, p. 1012., as the same person mentioned by Warton, vol. iii. p. 308. under the appellation of W. Phist.—See Brit. Bibliogr. vol. v. p. 569. [697:B] Ritson, in his Bibliographia, says, that no one except Warton appears to have met with this publication; extracts from it, however, may be found in the Monthly Mirror, vol. xiv. p. 17. [697:C] These Flowers are the production of one of the most celebrated agriculturists of the 16th century, the author of the "Jewell House of Art and Nature;" the "Paradise of Flora;" the "Garden of Eden," &c. &c.; but, in his poetical capacity, they prove, as Mr. Park remarks, that he "did not attain to 'a plat of rising ground in the territory of Parnassus.'"—Censura Lit. vol. viii. p. 7. [697:D] These are printed in the latter part of the miscellany, entitled "A Gorgeous Gallery of Gallant Inventions." [697:E] Beside these verses in honour of Elizabeth, Puttenham wrote the "Isle of Great Britain," a little brief romance; "Elpine," an eclogue; "Minerva," an hymn; and, throughout his "Arte of Poesie," are interspersed a number of verses, epigrams, epitaphs, translations, imitations, &c. Mr. Haslewood has prefixed a copy of the Partheniades to his reprint of "The Arte of English Poesie," 1811. [698:A] For specimens of this poem, the British Bibliographer, No. II. p. 153., may be consulted. Why it was called Dolarny's Primerose does not appear. Reynolds possesses some merit as a descriptive poet.
  • 64. [698:B] Of this work, not mentioned by Ritson, an account has been given by Mr. Haslewood in Censura Literaria, vol. iv. p. 241. The "Rewarde of Wickednesse" is written on the plan of the "Mirror for Magistrates," and was composed during the author's night-watches as one of the sentinels employed to guard the unfortunate Mary Queen of Scots. Robinson is supposed to be author of "The ruffull tragedy of Hemidos and Thelay," licensed in 1570. [698:C] To Sibbald's Chronicle of Scottish Poetry, vol. iii. p. 287., and to Restituta, No. III. p. 177., I refer the reader for the only account which I can recollect of this obscure writer. Irving and Pinkerton merely mention the titles of his poems. Mr. Gillies, in a very interesting article in the Restituta, has given us an ample specimen of his "Seven Sages." [699:A] Ritson says, that this is "a poem in 168 six-line stanzas, of considerable merit, and with great defects: a 4to. MS. in the possession of Francis Douce, Esq."—Vide Bibliographia Poetica, p. 315. [699:B] Several extracts from this work, consisting of seven satires, have been given by Warton in his Fragment of Vol. IV. See also Censura Literaria, vol. vi. p. 277.; and Beloe's Anecdotes, vol. ii. p. 125., where further notices of this medley may be found. It went through subsequent editions in 1607 and 1611. [699:C] This poem and the three succeeding are not recorded by Ritson. See Censura Lit. vol. ii. p. 150., in an article by Mr. Gilchrist. [699:D] For a description of this copy see Brit. Bibliogr., No. V. p. 548.
  • 65. [699:E] Curious specimens from this publication have been given by Mr. Haslewood in the Brit. Bibliographer, No. X. p. 549. [700:A] Of this voluminous pamphleteer, five more pieces are enumerated by Ritson, published posterior to 1616. Though a rapid and careless writer, he occasionally exhibits considerable vigour, and has often satirized with spirit the manners and follies of his period. He may be justly classed as surmounting mediocrity, and he is therefore designated as such at the close of this article. [700:B] This poem, and the Fisherman's Tale, are written in blank verse, a species of composition in which Sabie had been preceded by Surrey, Gascoigne, Turberville, Riche, Peele, Higgins, Blenerhasset, Aske, Vallans, Greene, Breton, Chapman, Marlowe, &c. A copious analysis of these pieces has been given by Mr. Haslewood in No. V. of the British Bibliographer, from p. 488. to 503.; but neither the genius nor the versification of Sabie merit much notice: his Pan, however, contains some beautiful rhymed lines. [700:C] Annexed, says Ritson, to his "Hours of Recreation or after dinners," 1576, 8vo. [700:D] The "Four Paradoxes" occupy four portions, each consisting of 18 six-line stanzas, and the whole is terminated by three additional ones, entitled his "Resolution." The specimens of this poem adduced by Mr. Park in Censura Literaria, vol. iii. and iv., speak highly in its favour, and seem to justify the following encomium:—"There is much manly observation, forcible truth, apt simile, and moral pith in the poem itself; and it leaves a lingering desire upon the mind, to obtain some knowledge of a writer, whose meritorious production was unheralded by any
  • 66. contemporary verse-man, and whose name remains unrecorded by any poetical biographer."—Vol. iii. p. 376. [701:A] An accurate account of this volume, which was republished in 1622 and 1640, may be found in Censura Literaria, vol. iii, p. 381. "From the great disparity of merit between this and the preceding article," observes Mr. Park, "there is little reason to suppose them by the same author, though they bear the same name." [701:B] A perfect copy of this miserable collection of poems, consisting of sonnets, elegies, odes, odellets, &c. was purchased, at a sale, by Mr. Triphook for twelve guineas. The only copy before known was without a title, from which Ritson has given a full account, though, at the same time, he terms the author an "arrogant and absurd coxcomb," and condemns him for his "wretched style, profligate plagiarism, ridiculous pedantry, and unnatural conceit."—Vide Bib. Poetica, p. 337. et seq. [701:C] An ample and interesting description of Stanyhurst, and his translation, will be found in Censura Literaria, vol. iv. pp. 225. 354., the production of Mr. Haslewood. Nash has not exaggerated when, alluding to this poet, he says, "whose heroical poetry infired, I should say inspired, with an hexameter furye, recalled to life whatever hissed barbarism hath been buried this hundred yeare; and revived by his ragged quill such carterly varietie, as no hedge plowman in a countrie but would have held as the extremitie of clownerie: a patterne whereof I will propound to your judgment, as near as I can, being part of one of his descriptions of a tempest, which is thus:— "Then did he make heaven's vault to rebound With rounce robble bobble,
  • 67. Of ruffe raffe roaring, With thicke thwacke thurly bouncing." Nash's Preface to Greene's Arcadia. [702:A] Storer's Life of Wolsey, which is about to be reprinted, has a claim upon our attention, both for its matter and manner: he was a contributor also to "England's Helicon," and has been highly extolled by his friend Fitzgeffrey, in Affanis, lib. i. [702:B] The most interesting part of this volume, from the nature of its subject, is "Ane schort Treatise conteining some Reulis and Cautelis to be observit and eschewit in Scottis Poesie," in which the regal critic observes, that "sindrie hes written of it in English," an assertion which would lead to the supposition that some of our earliest critics had perished; for Gascoigne's "Certayne Notes of Instruction concerning the making of Verse or Rhyme," 1575, appears now to be the only piece of criticism on poetic composition which preceded James's "Essayes." [702:C] The Poetical Exercises contain but two poems,—the "Furies," translated from Du Bartas, and "The Lepanto," an original piece. Several minor poems, introduced into his own works and those of others, some sonnets and a translation of the psalms, were written by James after his accession to the English throne. [702:D] Of this far-famed comedian and jester, Fuller says, that "when Queen Elizabeth was serious (I dare not say sullen) and out of good humour, he could undumpish her at his pleasure. Her highest favourites would in some cases go to Tarlton before they would go to the Queen, and he was their usher to prepare their advantageous accession to her. In a word, he told the Queen more of her faults than most of her chaplains, and cured her
  • 68. melancholy better than all her physicians." Indeed, in the language of a contemporary, "Of all the jesters in the lande He bare the praise awaie." Vide Ritson Bibl. p. 359. [703:A] Of this voluminous scribbler, whose rhyming spirit, remarks Granger, did not evaporate with his youth, who held the pen much longer than he did the oar, and who was the poetaster of half a century, I have only been able to insert two of his earliest productions, the remainder being subsequent to 1616, and extending to 1653. He was thirty-two when Shakspeare died; and "the waterman," observes Mr. Chalmers, "must have often sculled Shakspeare, who is said to have lived on The Bankside."— Apology, p. 101. [703:B] The Fruites of Jealousie, a long poem in octave measure, may be found at the close of The Blazon of Jealousie, translated from the Italian of Varchi, of which an account is given in Censura Literaria, vol. iv. p. 403. [704:A] Beside these anthems, which were licensed to her printer, Christ. Barker, Nov. 15., her Majesty wrote a variety of small pieces, some of which have been preserved by Hentzner, Puttenham, and Soothern, and reprinted by Percy, Ellis, and Ritson. The fourteenth Psalm also, and the Speech of the Chorus in the second Act of the Hercules Œtæus of Seneca, have been published by Mr. Park, the latter poem being a specimen of blank verse.—Vide Park's Royal and Noble Authors, vol. i. p. 102. Of the execrable flattery which was systematically bestowed on this monarch, the following eulogium upon her poetry, is a curious
  • 69. instance. After enumerating the best poets of his age, Puttenham thus proceeds:—"But last in recitall and first in degree is the Queene our soveraigne Lady, whose learned, delicate, noble Muse, easily surmounteth all the rest that have written before her time or since, for sence, sweetnesse and subtillitie, be it Ode, Elegie, Epigram, or any other kinde of poeme, Heroick, Lyricke, wherein it shall please her Majestie to employ her penne, even by as much oddes as her owne excellent estate and degree exceedeth all the rest of her most humble vassalls."—The Arte of English Poesie, reprint, p. 51. [704:B] A Collection of Epigrams. [705:A] These poems were published in a tract entitled "The Right Way to Heaven, and the true testimony of a faithfull and loyall subject," 1601. [705:B] This copy is without date, but a second edition was printed in 1617; it is a miserable paraphrase of Warner's exquisite episode. [705:C] Of this Collection Lord Hailes published a specimen in 1765; in 1801, Mr. J. Gr. Dalyell reprinted the whole, with the Scotish poems of the 16th century. Edin. 2 vols. 12mo.; and Mr. Irving has given some notices of the author in his Scotish poets, 2 vols. 8vo. 1804. [706:A] Wenman's Legend and Poems have lately been printed by Mr. Fry, in an octavo volume, from a quarto manuscript of 52 leaves. The Legend appears to have been intended for insertion in the Mirror for Magistrates. [706:B] For a very full account of "The Rocke of Regard," by Mr. Park, see Censura Lit. vol. v. p. 1.
  • 70. [706:C] This poem of 90 seven-line stanzas, is annexed to Bindley's "Mirror of True Honour and Christian Nobility," &c. 1585. 4to. [706:D] Of Whitney's Emblemes, which, being printed at Leyden, is a very rare book, a description will be found in Censura Lit. vol. v. p. 233. [706:E] Willet's Emblems were written before 1598, as Meres alludes to them in his "Palladis Tamia." [707:A] These biographical poems were added to the author's "True use of Armorie," 1592, 4to. Of the first poem an extract is given in Censura Lit. vol. i. p. 149, 150. [707:B] A copy of these poems, apparently unique, is in the possession of Mr. Park, who has communicated a description of it in Censura Lit. vol. iii. p. 175. [707:C] This romance, which abounds with poetry, is of the pastoral species; it is written on the plan of Sidney's Arcadia, and, like it, exhibits many beautiful passages both in prose and verse: twenty-seven of its poetical effusions have been inserted in "England's Helicon," and several have been lately reprinted in "Restituta," No. VII. accompanied by some interesting remarks from the pen of Sir Egerton Brydges. [707:D] For a specimen of this poem, which "is a concise geographical description of three-quarters of the world, Asia, Africa, and Europe, in the manner of Dionysius," and which Mr. Beloe believes to be unique, see his Anecdotes, vol. ii. p. 74. [710:A] Sidney's Works, 7th edit., fol., 1629, p. 561. [711:A] May-Day; a wittie comedie. Divers times acted at "The Blacke Fryers;" 4to. Act iii. fol. 39.
  • 71. [711:B] A copy of this Miscellany, of the edition of 1580, sold at the Roxburghe Sale, for 55l. 13s.! [713:A] Reprint by Sir Egerton Brydges, 1810. p. 44. [714:A] Reprint, p. 42. [714:B] Preface to his reprint, p. vi. [714:C] Reprint, p. 55. [714:D] Reed's Shakspeare, vol. xx. p. 222. Act iv. sc. 5. [715:A] Reprint, p. 57, 58. [715:B] Ibid. p. 66. [715:C] Ibid. p. 14. 37. 87. [716:A] Vide Heliconia, Part I. Advertisement. [717:A] For a notable instance of this figure, we refer the reader to "The Lover in Bondage," at p. 50. of Mr. Park's reprint. Not Holofernes himself could more "affect the letter." [717:B] Quoted by Mr. Park in the Advertisement to his reprint. [718:A] Heliconia, Part II. p. 85. [720:A] Heliconia, Part III. Advertisement. [723:A] England's Helicon, reprint of 1812, Introduction, p. xx. xxi. xxii. [724:A] Preface, pp. 8, 9. This Collection of Hayward's had three different titles; the last dated 1741. The second edition is called "The Quintissence of English Poetry." [727:A] The curious Preface, from which we have given this long extract, is only to be found in the first edition of the Belvedere; its omission in the second is a singular defect, as it
  • 72. certainly forms the most interesting part of the impression of 1600. [727:B] See Malone's Inquiry. [728:A] Supplement to Shakspeare, vol. i. p. 732. [730:A] See Censura Literaria, vol. i. p. 229. [732:A] Vide Morley's Plaine and easie Introduction to Practical Musick. [733:A] For specimens of these interesting collections, I refer my reader to Censura Literaria, vol. ix. p. 1. et seq.; vol. x. pp. 179. 294.; and to the British Bibliographer, No. IV. p. 343.; No. V. p. 563.; No. VI. p. 59.; No. IX. p. 427.; No. XI. p. 652.; No. XII. p. 48.; and No. XV. p. 386. A well-chosen selection from the now scarce volumes of these Professors of Vocal Music would be a valuable present to the lovers of English poetry. END OF THE FIRST VOLUME Printed by A. Strahan, Printers-Street, London.
  • 73. INDEX. *** The Roman Numerals refer to the Volumes; the Figures to the Pages of each Volume. A Acheley (Thomas), a minor poet of the age of Shakspeare, i. 676. Acting, art of, consummately known to Shakspeare, i. 423. Parts chiefly performed by him, 424, 425. Actors, companies of, when first licensed, ii. 202. Placed under the superintendence of the masters of the revels, 203. Their remuneration, 204. Patronized by the court, 205, and also by private individuals, whose names they bore, 205, 206. Days and hours of their performance, 215, 216. Their remuneration, 223, 224. Admission to the theatre, in the time of Shakspeare, prices of, ii. 216, 217. Adonis, beautiful address of Venus to, ii. 25, 26. See Venus and Adonis.
  • 74. Ægeon, exquisite portrait of, in the Comedy of Errors, ii. 288. Æschylus, striking affinity between the celebrated trilogy of, and Shakspeare's Macbeth, ii. 472, 473. Affection (maternal), exquisite delineation of, ii. 421. Affections (sympathetic), account of, i. 373, 374. Agate stone, supposed virtue of, i. 368. Agnus Dei, a supposed charm against thunder, i. 364. Air, spirits of, introduced into the Tempest, ii. 524. Akenside's "Pleasures of the Imagination" quoted, i. 321, 322. Alchemistry, a favourite pursuit of the age of Shakspeare, ii. 154. Alderson (Dr.), opinion of, on the cause of spectral visitations, ii. 405, 406. His application of them to the character of Hamlet, 408. Ale, synonymous with merry making, i. 175. Different kinds of Ales, 176. Leet-ale, 176. Clerk-ale, ibid. Church-ales, 177-179. Alehouses, picture of, in Shakspeare's time, ii. 216-218. Alfs, or bright and swart elves of the Scandinavians, account of, ii. 308, 309. All-Hallow-Eve, festival of, i. 341. Fires kindled on that eve, ibid. Prayers offered for the souls of the departed, 342.
  • 75. Supposed influence of fairies, spirits, &c. 342-344. Spells practised on that eve, 344-347. Alliterations, in the English language, satirised by Sir Philip Sidney, i. 444. All's Well that Ends Well, probable date of, ii. 422. Analysis of its characters,—the Countess of Rousillon, 423. Helen, ib. 424, 425. Remarks on the minor characters, 425. Passages of this drama, which are illustrated in this work. Act i. scene 3., ii. 424. Act ii. scene 1., i. 108. 175. ii. 434. scene 2., i. 143. 159. scene 5., ii. 434. scene 7., ii. 434. Act iii. scene 2., ii. 107. 425. Act iv. scene 10., i. 362. scene 12., ii. 192. All Saints' Day, festival of, i. 341. Superstitious observances on its vigil, 341-347. Allot (Robert), "English Parnassus," i. 723. List of contributors to this collection of poems, 724. Critical remarks on the merits of his selection, ibid. 725.
  • 76. Amadis of Gaul (Romance of), popularity of, i. 515. Notice of English translations of it, 546, 547. Amusements of the fairies, ii. 342-345. Amusements, national, in the age of Shakspeare, enumerated, i. 246, 247. Account of the itinerant stage, 247-252. The Cotswold games, 252-254. Hawking, 255. Hunting, 272. Fowling, 287. Bird-batting, 289. Fishing, 289. Horse-racing, 297. The Quintaine, 300. Wild-goose chace, 304. Hurling, 305. Shovel-board, 306. Shove-groat, 307. Juvenile sports, 308-312. Amusements of the metropolis and court, ii. 168. Card playing, 169. Tables and dice, 171. Dancing, 172. Bull-baiting and bear-baiting, 176. Archery, 178.
  • 77. Frequenting of Paul's Walk, 182. Sagacious horses, 186. Masques and pageants, 187. Royal progresses, 193. Dramatic performances, 201-226. Anderson (James), a minor poet of the age of Shakspeare, i. 676. Andrewe (Thomas), a minor poet of the age of Shakspeare, i. 676. Angels, different orders of, i. 335. Account of the doctrine of guardian angels prevalent in Shakspeare's time, 336. Supposed number of angels, 337-339. Remarks on this doctrine by Bishop Horsley, 339, 340. The supposed agency of angelic spirits, as believed in Shakspeare's time, critically analysed, ii. 399-405. And applied to the introduction of the spirit in Hamlet, 407- 416. Superiority of Shakspeare's angelic spirits over those of all other dramatists, ancient or modern, 417, 418. Angling, notice of books on the art of, i. 290, 291. Contemplations of an angler, 292, 293. His qualifications described, 294-296. Encomium on, by Sir Henry Wotton, 297. Beautiful verses on, by Davors, 614.
  • 78. Welcome to our website – the ideal destination for book lovers and knowledge seekers. With a mission to inspire endlessly, we offer a vast collection of books, ranging from classic literary works to specialized publications, self-development books, and children's literature. Each book is a new journey of discovery, expanding knowledge and enriching the soul of the reade Our website is not just a platform for buying books, but a bridge connecting readers to the timeless values of culture and wisdom. With an elegant, user-friendly interface and an intelligent search system, we are committed to providing a quick and convenient shopping experience. Additionally, our special promotions and home delivery services ensure that you save time and fully enjoy the joy of reading. Let us accompany you on the journey of exploring knowledge and personal growth! ebookultra.com