The Rise of “Diskless databases”

Prof. Zicardi of ODBMS.org (remember ODBMS?[*1]) published an interesting interview with HP Fellow (and past RDBMS architect) Dr Goetz Graefe on the rising importance of “data storage” without the twirling-disks-thing. Of course this is a trend very much in evidence at customers of TIBCO with (“NoSQL”-type, or more accurately, “SQL-optional”) technologies like TIBCO BusinessEvents using distributed DataGrid technology for faster-than-disk / more-scale-than-a-single-process event correlating. And for those  looking to apply “diskless” to SOA as well as EDA, note that TIBCO ActiveSpaces now includes the TIBCO BusinessWorks interface for doing data distribution in BW processes…

With CEP we have long questioned the need to “bung everything onto disk” and instead process it (the incoming events) as they arrive… of course you will want a historic record for some events, but fundamentally you don’t usually want to follow the old-model of “put it in the database then worry about / process it later”. Unless you are an RDBMS sales guy anyway!

Notes:

*1. “Object-oriented” makes perfect sense until one tries too hard on encapsulation (of behavior). For example, a business rule relating new-order events with existing customers could be encapsulated in the order event or the customer event, but in reality should be in neither. Although you might want to be able to refer to related rules from either…

TIBCO BusinessEvents 5.0 is now GA

BE Views 5.0 State DiagramJust a quick note on TIBCO BusinessEvents 5.0 hitting the TIBCO download site. This is a major architectural update for BusinessEvents, which now allows a choice of event-store datagrid providers [*1] out-of-the-box (i.e. the first CEP product with a choice in high performance in-memory distributed data stores).

Other interesting features in this release include:

  • The dashboard tool TIBCO BusinessEvents Views now can visualise State Models for viewing what business entities are in what states. Things like: the states of customers’ orders in some fulfillment process, or the states of some financial transaction.
  • A new option called TIBCO BusinessEvents Express, designed for those who don’t need stateful object management [*2]. This has no object persistence or datagrid features, for those who need just a high performance rules engine or decision management solution comparable with standard “Business Rule Engines” (a.k.a. Rete engines, inference rule engines, production rule engines, etc).

We’ll cover BE 5 in more detail later…

* Notes:

[1] BE 5.0 default is TIBCO BusinessEvents DataGrid, based on TIBCO ActiveSpaces technology. The option is to use Oracle Coherence (/Tangosol), as used in previous releases.

[2] OK, so I guess there are really 3 options for distributed event storage: none, BE DG, and Coherence.

IT Plumbing: the rationale for TIBCO BusinessWorks and BusinessEvents

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:

  1. 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.
  2. 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.
  3. 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.
  4. BW provides a perfect layer to direct and route to the “composite applications” that are very closely tied to business requirements.
  5. 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”.
  6. BW lets me leverage any Java code (or any other legacy code) and expose it via XML interfaces.
  7. 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.