Every discipline has its diagrams: statisticians have their curves, particle physicists have their dots and wavy lines and software architects have boxes and arrows. Software engineers in particular,1 has a few basic drawings that are used over and over again and I’ll be examining these in the coming weeks.
The first of these irregular articles is The Bus.
The Picture
The Bus is used to show complexity being reduced by moving from point-to-point communications to a sharing a common medium for all communication. Typically, The Bus offers some real advantages, but is oversold.
A full Bus consists of before and after diagrams. These are reproduced below in genuine imitation whiteboard style.2
!/pics/blog/003_arch1_before.gif! Figure 1: Before Using The Bus
The purpose of the “Before” diagram is to convince the reader that point-to-point connections between each element in the problem space is too difficult and too complex. The “Before” picture is omitted in situations where The Bus is the assumed solution to the problem.
!/pics/blog/003_arch1_after.gif! Figure 2: After Using The Bus
The “After” diagram shows a dramatic reduction in complexity and clutter. The reduced number of lines implies reduced costs and better manageability.
Applicability
The Bus is applicable whereever two or more communications mechanisms exist in parallel. For instance:
The most recent incarnation of this is the “Enterprise Service Bus” (see section 3 of this pdf document).
The Pitch
There is often a genuine benefit associated with moving to a common communications medium:
The Lie
This diagram promises to remove all communications barriers between disparate technologies, and in doing so, it lies. One layer up from the amalgamated layer is not integrated. One layer up is still as point-to-point as it ever was.
In other words, The Bus doesn’t solve all the communications problems, just those in certain layers:
Conclusion
The Bus is a powerful tool that every architect should keep in their back pocket. However, if you use it, ensure that your audience understands the limits of the solution you are proposing.
Feedback
Where have you seen the The Bus before? Did it lie? Would you use it?
1 Actually, marketing is worse. If you want a good belly-laugh, have a look at the “Marketing Diagrams” templates in Microsoft Visio 2002. It contains enough nicely shaded pyramid diagrams, quadrant analyses and timelines for five white papers.
2 Sorry, only the black pen was working. All the others ran out.
Comments
Excellent! very very true. I'm always amazed at the diagrams that make it seem so simple, you'd think it wasn't possible. guess what? ..
Did'nt someone say truth is always simple, clear and acceptable? Well, this page is one of those rare evidences of truth.
Its always occurred to me that many bus technologies (ie EAI backbones) allow one to simply move the point to point tangle to within the bus. (Hopefully) the components moved to the bus no longer know exactly who they're communicating with or how (ie, endpoint and transport abstraction), but the point-to-point tangle still exists. It now lives in the bus' logical channel configuration. It got more consistent and more malelable, and maybe even dynamic, but it's still there.
Unless one starts to share logical communication channels within the bus, a la pub/sub, the tangle still exists. More than a little re-architecting is necessary to achieve this, if it can be achieved at all.