I’m a BIG believer in two things: a) work smarter, not harder; 2) keep things simple — avoid complexity. Complex leads to complicated, complicated leads to misunderstanding, misunderstanding leads to chaos. Nonetheless, my guidelines seem easy enough, right? Well, good news then, they are simple and easy to apply in just about anything we face day to day — except in golf. Ah yes, the wonderful world of golf [which currently holds me hostage]. The place where complex instructions, ideas and or suggestions have license to run rampant — like a wild herd of buffalo feasting on the open range. If anyone tells you differently about golf, run. I started hacking away on fairways and driving ranges across this great country 28 years ago. It’s only recently that I finally feel like a hero when I play. But that feeling came at a high price. Golf IS a complex sport to learn, practice and or play. It requires the highest of all levels in humility and stick-to-itiveness. Love that word, stick-to-itiveness [defined as: the quality that allows someone to continue trying to do something even though it is difficult or unpleasant]. But I digress.
Let’s get back to keeping things simple in the blog. What is a pattern, as it applies to WebSphere Message Broker [WMB] and or IIBv9? In short, a pattern is a reusable solution that encapsulates a tested approach to solving a common architecture, design, or deployment task in a particular context. Ever hear of the television show Cupcakes Wars on Food Network? Each show consists of cupcake bakers battling to see who will reign supreme as cupcake baker of the week. In the final bake-off, bakers are required to bake 1,000 cupcakes each. To accomplish this, bakers use commercial cupcake pans, like the one shown to the right. So, how does a cupcake pan apply to patterns in WMB or IIBv9? Easy, the pan is my pattern. The pattern ensures that each artifact [message flows in WMB or IIBv9] are created the same, like a cupcake. Are you now thinking “…what about customization Jason?” Easy, what kind of cupcake does your client like? Vanilla, chocolate or strawberry? Does it need sprinkles and frosting too? In case you’re curious, my fav cupcake is a vanilla, maple syrup and bacon concoction.
According to the IBM Infocenter on Patterns, it states:
A pattern captures a tested solution to a commonly recurring problem, addressing the objectives that you want to achieve. The specification of a pattern describes the problem that is being addressed, why the problem is important (the value statement), and any constraints for the solution. Patterns typically emerge from common usage and the application of a particular product or technology.A WebSphere® Message Broker pattern can be used to generate customized solutions to a recurring problem in an efficient way. WebSphere Message Broker patterns are provided to encourage the adoption of preferred techniques in message flow design, to produce efficient and reliable flows. Patterns provide the following benefits:
- Gives you guidance for the implementation of solutions
- Increase development efficiency, because resources are generated from a set of predefined templates
- Result in higher quality solutions, through reuse of assets and common implementation of programming approaches, such as error handling and logging
My last engagement was healthcare, a HL7 implementation and conversion. Early on in the project, the team decided to leverage the power of pattern development within WMB. Why did we do this? The answer, there were 300+ interfaces required. Remember that commercial cupcake pan, make more sense now? During the initial phase of the project, the majority of our time was spent developing our pattern [the cupcake pan]. Once it was completed, developers could then work independently and simultaneously. Since we created the pattern, the development process was simplified. Step 1, assign an interface to a developer. Step 2, instantiate the pattern into his or he workspace. Step 3, apply the customization [flavor, frosting and sprinkles] and Viola! In short, the next time you’re faced with developing multiple interfaces for a client, consider employing patterns to ease the process. Now, if I could only come up with a reliable pattern for my driver tee shots. They’re either a hero bomb 290+ down the pipe, or wayward left. Looks like I need to take my own advice and simplify things…
Great video here that takes you step by step in IIBv9 using patterns — 10+ minutes
View IBM’s Redbook Patterns: SOA Design Using WebSphere Message Broker and WebSphere ESB