Monday, November 24, 2008

CEP and patents

I was recently updating my knowledge base around event processing, CEP and DSMS to have a better view on the current state of the art regarding patent applications around those topics, when I found a fairly recent pending application from Oracle named:

"Processing xml data stream(s) using continuous queries in a data stream management system".

The patent application is available online

It was filed in Nov. 17, 2006, published in May 22, 2008, and also claims to be related to a DBMS SQL/XML related patent filed in 2005 (is that an attempt to claim for anteriority?).

As far as I can sum it up, it organizes its claim around three fundamental findings:
(usual disclaimer here - this is my own view etc)
  1. CQL or SQL-alike continuous event processing languages fall short on dealing with structured data streams
  2. especially XML
  3. both as input event stream and as output event streams (out of the continuous query).
f.e. support for
SELECT RStream(count(*)) FROM StockTradeXMLStream AS
sx [RANGE 1 Hour SLIDES 5 minutes] WHERE XMLExists( ‘/TradeRecord[TradeSymbol = “ORCL” and
TradePrice >= 14.00 and TradePrice <= 16.00]’ PASSING VALUE(sx))

I was a bit surprised by this patent because there is an interesting positionning dilemna. Oracle has publicly advertised its wishes to standardize CQL in some ways, and this patent is now an advertised intent to lock a subset of it.
  • Is it a good way toward standardization consensus?: I don't think so - it blurs your motivation for standardization ("leave XML out, it's patented - more value in my own product and more FUD to yours")
  • Is it a good way to quickly empower the user? I don't think so - more locking deep down to the language (remember all the messy ANSI SQL derivatives right?)
  • Is it a good way to innovate? I don't think so - bring it to end users and call for participation
As to know if there is anteriority or not - let's list some of XML support in different DSMS / CEP products:
  • Coral8, back in Sept. 2006, support the same XMLAgg, XMLTable and alike - see also their XML cookbook
  • Esper, back in August 2006, supports for XML events. The Esper EPL actually does a very nice job at not exposing XPath or XML in the EPL and automates the XPath plumbing - so that the EPL is actually event representation agnostic. I think that is a superior design
  • As a generalization, Esper, since day 1 (somewhere in 2005), supports Object structured event streams - which is a generalization of xml structured streams obviously.
  • iSpheres (now at Avaya) - can't even have a date but likely 2003 or so
And I could keep the list growing...
I am not saying patents are good or evil or a bit of both - that's no the point here. But this one just strikes me for what it is. I'd be curious to hear from Coral8 folks as well as others.

No comments: