Let's begin the 10 myths of EDA and SOA by attacking a statement from an excellent article by
Jack van Hoof on
“How
EDA extends SOA and why it’s important.” Jack’s article both nails it and
perpetuates some myths, at the same time. He begins by writing that “reading records
from a file is like consuming from a subscription topic. This is asynchronous design.” While this is true, asynchronous design is
not the same as event driven architecture. Later, in a blog post, we see this:
I have my roots in the old
IBM370 JCL. What I like about EDA is that designing an EDA is very similar to
designing batch job flows. Where you write a record to a file, you publish an
event. Reading from a batch file is consuming from a topic. Where you read multiple files in
balance, you come to complex event processing. Batch programs are decoupled.
Programs write records and others read records, without any knowledge of each
other's existence.
Simply said: Just take out the read/write-to-end-of-file loop from a batch
program and the program is modernized to play its real-time role in an EDA.
Although I remember the days of JCL, just because a computer has events
flying around on it doesn’t mean it’s
an event driven architecture. Yes, events have existed since the beginning
of time. JCL can emit events. X-windows event loops emit events. Database stored procedures can emit events. TCP/IP sockets can emit events. Yes, events are as old as the hills.
But the technologies needed to build a proper event driven architecture are new. EDA has been at the heart of innovative academic research and commercial innovation for 10 years. Analysts
have grouped these technologies into the catagory of “event processing."
Modern event processing grew its roots in the mid 1990’s, when academic
research began at Cal Tech (Mani Chandy), Cambridge University (John
Bates), and Stanford University (David Luckham). The focus of this research was to develop a new
approach to identify
complex sequences of events (event A followed by B, then C), with temporal
constraints (within 20 minutes), spatial constraints (within 5 miles of each
other), and to control complex actions as a result of these patterns (begin
warning an operator at code yellow until another event, D, is detected within 5
seconds). In 2002, Luckham published the seminal book in this field called: "The
Power of Events: An Introduction to Complex Event Processing in Distributed
Enterprise Systems" that helped popularize the term “complex event
processing,” or CEP.
Commercial software companies were created based on this research. Chandy’s work spawned the iSpheres (acquired
by Avaya last year), and Bates co-founded Apama with Giles Nelson in
1999. In 2003, two more vendors were founded - Coral8 (Stanford) and StreamBase (MIT / Brown / Brandeis; Michael Stonebraker / Stan Zdonick / Mitch Cherniack). TIBCO BusinessEvents entered the market in 2004 as well. Other CEP firms include Kaskad and Aptsoft.
Software technology typically has a gestation period of about 10 years
from academic research to broad commercial adoption, and that’s where we are now. It's also typical for the capital markets to be on the bleeding edge of new technologies, and for CEP it’s no exception. CEP forms
the basis of algorithmic trading EDAs in top firms like Deutsche Bank, ABN
Amro, and JP Morgan. For a technical
tutorial on the application of CEP to algorithmic trading, read
this article in Doctor Dobb's by John Bates. Recently, CEP’s use has broadened in telecommunications,
healthcare,
retail,
supply
chain, fraud detection, compliance,
and more.
As a result, the event processing market now includes commercial software for complex
event processing (CEP), event driven GUIs (sometimes called BAM dashboards),
and event data management (aka data stream management).
What's the point? All these event processing technologies are designed to monitor, analyze, and act on events, not just transport them (as pub/sub middleware does), or emit them (as a sensor, batch file reader, or an x-windows event loop would). Event processing is about adding intelligence and action to events.
So back to the question of EDA and SOA. Event processing technology must connect to all sources of events. But it doesn't matter where the events come from. As a result, EDA is not a form of SOA; it's agnostic to the existence of SOA. Events come from SOA? Fine. Events come from publish / subscribe middleware, such as TIBCO’s Rendezvous? FIne. An RFID
reader? Fine. TCP/IP socket? FIne. Sensors on a piece of manufacturing equipment? Fine. A business process
management (BPM) tool? Fine. Database? Fine. Or, indeed, the
source of events could be a batch job flow on a mainframe computer, each
event emitted when an record has been read from a file. Fine.
Yes, events are as old as the hills. But EDA, and event processing, is a fresh
approach to processing events of all
types. That's why EDA is emerging as an
important, modern enterprise IT architecture.
But it’s not SOA.