Another talk at DEBS that threatened to be on-the-ball was Douglas Schmidt’s keynote [*1] on model-driven event processing. Although it was not mentioned, most commercial CEP software systems [*2] can be considered model-driven (e.g. draw a diagram, and the system generates the appropriate code or engine controls).
Every EP researcher has an “angle”, and Vanderbilt’s appears to be “Distributed and Realtime Embedded (DRE) systems”, defined as resource-constrained, typically microcontroller-based, systems. The presenter introduced “Model Driven Engineering” as a common solution, traditionally using state models, process/data flows, and petri nets, all of which (20-40 years ago) had a large semantic gap
to the Fortran / Assembler etc. code of yesteryear. Recent developments in compilers etc have given us fast Java and associated frameworks; the problem (for this domain) is that too much still needs to be coded “outside of the model”, and exploiting the libraries and frameworks is too much like a lesson in complexity management. So the “semantic gap” remains.
Well, somewhat. In the CEP space for business systems, that gap is targeted by the commercial CEP-tool community (and filled, with varying degrees of success).
The presenter mentioned 2 possible solutions: one is the OMG MDA-based approach, which unfortunately he termed “UML Profiles” (aka subsets of UML for a specific domain or use). These combinations of activity diagrams, state models, and “action semantics” [*3] are considered by Vanderbilt as “domain independent languages”. Well they can be, but they can also be domain-specific (and to prove the point, an email just arrived in my inbox announcing the development of an UML profile for XBRL financial reporting – about as “domain specific” as you get).
Instead, the team at Vanderbilt proposes domain specific languages which they call “metamodels”. Which is confusing, as in reality metamodels can be domain independenent *or* specific. The OMG Model Integrated Computing group was mentioned as a guiding light for semi-automated translations of models to code [*4]. Also mentioned were examples of technologies that supported DSLs, such as Eclipse GMF.
The next notion was that of being “distributed” – in DRE parlance this translates to “Ultra Large Scaleability” systems, which in turn sounds very related to the commercial notion of XTP… and hence the work on the following technology pieces to assist with managing complex distributed systems [*5] and which may also be relevant to CEP:
- Runtime performance evaluation from models, sort of in-situ performance verification, through things called System Execution Modeling (SEM) tools [*6]
- These express design rules (as constraints) that can be tested in the model
- Configuration of large numbers of components (100s of 1000s etc) managed via XML configuration files
- Hence the Platform Independent Component Modeling Language or PICML that uses OCL constraints to provide visualization of system dependancies [*6 again]
- Middleware configuration models using constraints for QOS (Quality of Service), transmit times, etc etc
- Hence a QoS Modeling Lang called DQML
The title of this keynote was “Meeting the Challenges of Mission-Critical Distributed Event-Based Systems with Q0S-enabled Middleware and Model Driven Engineering”, but was really an introduction to Vanderbilt (et al)’s work on these (somewhat specialist) DRE systems. No harm in that, as it was interesting to learn what they are up to, even it turns out to be orthogonal to CEP per se.
Notes
[1] From Vanderbilt University in good ‘ole Nashville, who also happen to be hosts for DEBS 2009. Some of the Europeans were a little bemused by the announcement for DEBS 2009′s location, due to comments like “… and we have such-and-such, which is really great to visit, only 350 miles away…”. So better bring your pushbike, then.
[2] Unless you are having to hand-code a streaming query, of course!
[3] One example of commercial MDE is TIBCO BusinessEvents, using UML-based models for concepts (UML Class models), and state (UML State models). In lieu of action semantics (which I guess are directly equivalent to what we call Rule Functions) we prefer to use declarative production rules (and queries). Which are transformed into compiled constructs for efficient event-driven runtimes…
[4] Compare and contrast with the Knowledge-Based Engineering group in the manufacturing part of OMG.
[5] Sounds awfully like those pesky agents again…
[6] Not a common enough term to have a Wikipedia description, though…



Hi Paul!
Beyond the overlap, I think XBRL and XBRL GL in particular can be used as a way to illustrate the importance of rules standardization. You are aware of all the challenges we had in the past pushing this topic, but I think some progress has been made thanks to RuleML, PRR, RIF, and many other efforts. We had a number of discussions and explored the integration of a Rules standard to XBRL. There is still more work to be done, and RIF needs to mature and gain adoption. As you suggested below, BPM, Rules, XBRL, CEP, are all very important for Regulatory Compliance and the GRC field (Governance Risk and Compliance) in general.
I am not sure if you mentioned it in your previous posts, the upcoming RuleML 2008 Conference will focus on many of these topics with a Keynote by David Luckham and Paul Haley. I am looking forward to some productive discussions.
Hi Said – certainly XBRL (business reporting domain language) and financial events (which drive reports, and need to be reported on) have a strong overlap. Good to hear of the RuleML work – it would be really good if XBRL signed up to use / be compatible with a rules std (probably the W3C RIF). And of course this is also relevant to regulatory compliance… [Said is co-chair of the OMG Regulatory Compliance SIG].
Cheers
Excellent post Paul and I appreciate the clarification from Eric. I actually wanted to add to add that XBRL and CEP have more in common than we think. Paul, by the way, thanks for being articulate when using the term ‘declarative’. I had the opportunity to explore XBRL and XBRL GL in more details for over a year and a half and built a few declarative rule-based applications integrating XBRL and RuleML, I was very surprised to discover the horizontal nature of XBRL. When you think of transaction (or streaming market data for example), one can imagine a number of applications outside of business reporting or finance. An example is in manufacturing where one of the largest companies around is using it to monitor and improve its business processes.
Eric – thanks for the clarification, and the comment on the likelihood of XBRL events being relevant to CEP. I’ll keep a look out for CEP applications that make use of XBRL schemas!
Cheers
You wrote: ‘an email just arrived in my inbox announcing the development of an UML profile for XBRL financial reporting – about as “domain specific” as you get).’
A small clarification – the UML Profile is for XBRL’s Global Ledger Framework (XBRL GL). XBRL GL is XBRL, however, not all XBRL is financial reporting (hence being XBRL, not XFRML, the original name) – much to most people’s surprise.
XBRL GL is actually far more relevant to CEP – it is a global, holistic, generic, standardized way to represent business events in detail – capturing what flows in from business documents, events and triggers in one generic format – in detail – to bridge between proprietary industry and document formats through an ERP-type system – and then bridge directly to those aforementioned XBRL end (“financial” and other) reports.
That makes XBRL GL less domain specific than “FR”; business reporting detail, yes; but not limited to accounting, operational or financial, capable of capturing the detail related to accounting, sustainability, operations, metrics and KPIs, etc. Do you want to track 500 machine cycles, 300 worker hours, 2 spotted owls helped and 3 officers indicted during the manufacture of 400 red widgets? Not a problem.
Anyone with an interest in this area is asked to read, and as appropriate respond to, the RFI found at http://www.omg.org/cgi-bin/doc?finance/2008-05-01 .
To learn more about XBRL GL, you can visit the XBRL Web Site (http://www.xbrl.org/GLTaxonomy), and instructive webcasts and annotated examples can be found at http://gl.iphix.net – our Global Ledger Practices Guide for Study (GaLaPaGoS).