Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.

  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint
Share this Page URL
Help

Foreword

Foreword

Languages are a critical aspect of software development. They give us the vocabulary to express what a program should do. They force us to encode our requirements in precise and non-ambiguous terms. Lastly, they enable the sharing of knowledge between developers. No, I’m not talking about Java, Haskell, or PL/1. I’m talking about the languages we use to communicate from human to human, from developer to developer, or from end user to product manager. For a long time, the world of enterprise integration (or EAI, as it was commonly known in the “dark ages of integration”) lacked such a vocabulary. Each vendor offered a proprietary solution, which not only failed to integrate at a technical level with other vendors’ offerings, but also used a different language to describe the main components and their functions. This not only caused confusion, but was also a key inhibitor to creating a community of developers that could span the vast space of enterprise integration. Each “tribe” was essentially held hostage by the language bestowed upon them. Ironically, integration developers were faced with the same “tower of Babel” problem that their software was designed to solve!

Establishing a common vocabulary that enables knowledge sharing and collaboration was the key motivator for us to write Enterprise Integration Patterns (EIPs). Each of the 65 patterns has a descriptive name, which represents the solution to a design challenge in the integration space. Besides supporting effective communication, this vocabulary also raises the level of abstraction at which we can describe integration problems and solutions.

A shared vocabulary is a big step forward, but a giant step we could not imagine at the time was that our language would spur the development of a whole family of open source messaging and enterprise service bus (ESB) products. These tools embrace the EIP vocabulary by implementing many patterns directly in the platform. With Apache Camel, a Splitter pattern translates directly into a “split” element in the Camel DSL. We couldn’t have wished for a more direct translation of the pattern language into an implementation platform.

Claus and Jon bring the saga to a grand finale by showing us how to use the Camel pattern language to compose real-life messaging solutions. In doing so, they not only cover fundamental concepts like routing and transformation, but also dig into often-neglected parts of the development process, including testing, monitoring, and deploying. They find the right balance of the pattern language, Camel core concepts, and running code to help you build easy-to-understand and robust messaging solutions.

GREGOR HOHPE

COAUTHOR OF ENTERPRISE INTEGRATION PATTERNS

WWW.EAIPATTERNS.COM

  • Safari Books Online
  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint