Esteemed colleague Japinder Singh recently explained why TIBCO’s “secret SOA weapon”, TIBCO BusinessWorks (a.k.a. BW, and formally prefixed by “ActiveMatrix”) service orchestration tool, is so compelling in so many event-driven organisations:
- BW makes sense out of diversity and complexity. Regardless of the source of the data (applications, files, databases, TCP packets, casino slot machines, RFID readers, COBOL copybooks etc etc), one gets beautiful, normalized, XML. BW is like some “magic eyeglasses” from a Disney movie, reducing all the complexity and pain in system integration to just plain, simple, XML. Complexity is abstracted to stark and beautiful XML.
- BW flatters developers’ skills. BW is based on XML, and XML is based on schemas. By using XML, BW enforces all XML’s syntactic and structural rules. Developers don’t need to do the “donkey work” like they need to in Java or C#. BW makes sure that all incoming service requests or events are properly formed and have all the correct structures. Schemas, when used appropriately, are a very powerful tool.
- BW lets me write semantic (or system, or business) rules in a environment that is decoupled from the back-end applications. I can write these rules in an abstract way, without being concerned about the back-end applications. BW provides a perfect place to host the logic across “distributed applications” – logic that would otherwise would be silo’d in the service end-points.
- BW provides a perfect layer to direct and route to the “composite applications” that are very closely tied to business requirements.
- BW provides load balancing, fault-tolerance, garbage collection , thread management, job scheduling, and exception handling out of the box. As a developer, I don’t want or need to worry about this “donkey work”.
- BW lets me leverage any Java code (or any other legacy code) and expose it via XML interfaces.
- BW provides a “different and better way to solve” problems.
He then went on to explain how the TIBCO BusinessEvents CEP tool (a.k.a. BE), can be used in scenarios that extend beyond BW applications:
- When developing in BW, I need to explicitly orchestrate every permutation, combination, and exception of the IT process. But in the real world, complex situations exceptions are the norm, and business processes “change”. Real world is messy. Lots of “if then else” are required.
- Predicting every permutation in an orchestration can be very difficult once one gets beyond a certain complexity level.
- Using BE provides for “self orchestrating“, “self-healing”, “self-adjusting”, and “self optimizing” orchestrations. That’s what you get when you add BE’s declarative rules for message/event handling to BW. The wonderful Rete rule engine in BE automatically “creates” the unique orchestration that reflects the real, required, business process flow. No need to write complex, laddered, error-prone if-then-else logic. The rules, events and objects automatically create the “orchestration” that you need. Every “instance” of your process can be unique.
- BE lets you treat your Events as “first class citizens”. The business’ Event Cloud is a very important asset.
Japinder ended with the observation:
I often comment to customers “I know that you like app servers / XYZ to develop applications, but I can show you a better, cheaper and faster way to develop the logic you need. Let me show you how you can eliminate donkey work. Let me show you how you can treat “Events” as “first class citizens”. This is not abstract thinking. I have seen this, in production, at multiple customer sites.