Twisting the System
Using IBM Integration Bus (formerly WebSphere Message Broker) is a great way to simplify integration with a wide variety of systems, including those legacy systems running on all sort of exotic hardware and using even more exotic character sets.
As powerful and flexible as Integration Bus parsers are, once in a while you’ll come across a message format that’s ever so slightly more exotic and practically unparsable with the standard tools.
We at XQuadro have enormous respect for IBM Integration Bus. It’s a powerful, flexible, very well designed and tuned tool. It’s true that with enough wicked knowledge and determination you can twist your system into some awkward corner and make it actually do the job, but the result will be not easy to maintain, not easy to read and understand, and likely not very well performing. Every tool has its limitations. There is nothing wrong with that. Good tool designers know this and provision ways for their tools to be extended.
Integration Bus offers well-documented options to write custom parsers for message formats that go beyond what is offered out of the box. It doesn’t happen often, but it does. One of these formats is ISO 8583. Attempts to say anything nice about 8583 require great effort, and are generally unproductive as well. 8583 is not nice to boot, but then it gets worse. Just about every software manufacturer twists it ever so slightly, usually failing to document exactly what was done.
This was the bad news.
The good news is that an Integration Bus parser can be written in C, can be written cleanly, and will perform very well even in heavily loaded production installations processing hundreds and perhaps many hundreds of messages per second.
There are other advantages, too. When you’re talking to an ISO 8583, oftentimes what comes down the wire is not what the book says. (Read: documentation is wrong and incomplete in many ways.) Writing a custom parser makes it easy to add logging and debugging facilities that can be switched on and off even while in operation. Anyone who has had to debug protocol documentation will appreciate this.
The other good news is than in more than 15 years of experience building Message Broker and Integration Bus systems, we at XQuadro have not found any other widely accepted message format that needs a custom parser apart from 8583. This is a dubious distinction, but at least it was won honestly!