Jeff Genender is CTO and chief architect at Savoir Technologies Inc., a consulting, training and support company offering open source solutions. He is an active committer and Project Management Committee (PMC) member for Apache Geronimo, a 'committer' on OpenTerracotta, OpenEJB, ServiceMix and Mojo (Maven plugins), and the author of several books.
Any discussion of SOA needs to start with a solid foundation. What are the basic building blocks of a successful SOA infrastructure?
Genender: A message bus/JMS container; some service end points, typically Web services; routing – you need to route your messages and have guaranteed messages; orchestration; and data transformation – some kind of code that transforms data from one component or one state to another.
What are the aspects of SOA infrastructure that organizations tend to struggle with?
Genender: They tend to think everything should be based purely on Web services instead of looking at enterprise integration patterns. You can plug in any type of component, but they will use an ESB as a glorified container. Sometimes the SOA initiative is solely based on Web services.
They’re missing the key aspects, such as lack of the need to be point-to-point. When we show them how to use Web services and routing data through messages—removing the point-to-point—the lights tend to turn on for them.
Another struggle, which goes hand in hand with that, is not understanding enterprise integration patterns, SOA patterns, and how to apply them to their own business processes. Understanding patterns like a message filter or a routing pattern – the lower levels of enterprise integration patterns – make their migration to SOA easier. [SOA] won’t do what they want it to do until they understand all the patterns they can apply to the architecture.
You’d be surprised at the large companies we go into that are putting the entire infrastructure on an ESB and using it as a glorified Web services container. It’s shocking.
This is part two of a two-part interview with Jeff Genender. In part one, he talked about working with AcitveMQ, a popular open source JMS container.