Based on my latest postings, you might have noticed that am heavily of favor of a true integration of thing into the Internet. That does not only mean to have an Internet of Things, but more to “Thingyfy the Internet”. Using advanced IPv6 compatible protocol any device gets an IP address, and you start from there: Simple machine to machine communication. Add a transport layer and you have your processes communicating with each other. Forget about Gateways! Zigbee was nice, but it was too fast and too early.
Having stated that, this draws quite some consequences: You can’t rely on the infrastructure in between. You IP packet travels through the Internet, and you don’t know who is handling it. This means any computational processing needs to be performed at the edges: Either on the Smart Thing (sensor node, or whatever you want) or on the (cloud)server. E.g. in sensor networks, in-network-processing, which was subject to heavy investigations throughout the past years, might become obsolete/impossible. (So the end-to-end communication paradigm has its downsides, too!)
This draws the question, of where to do the processing? E.g. how much context processing do you want to do on the Smart Thing? How much on the server? I simply throw an answer in the ring: Limit you communication effort, and try to do as much processing on the server! Smart Things/sensor nodes usually have energy and resource constraints. So it will depend on the application developer: Depending on the scenario, she will have to balance Smart Item processing and communication efforts.
- Esper – http://esper.codehaus.org/
- Corel8 – http://www.coral8.com/
- StreamBase – http://www.streambase.com/
- Aleri – http://www.aleri.com/
As you can see, competition is fierce! You can download and try all of the products for free! They aren’t even limited in functionality. But if you want to use them in Production only Esper continues to be free (GPL license).
Further reading:
- Event Stream Processing and Event Driven Architectures (Whitepaper, log-in required)
- Survey of Event Processing (December 2007)
- Stonebraker M., Çetintemel U., and Zdonik Z.: “The 8 Requirements of Real-Time Stream Processing“, ACM SIGMOD Record 34, 4 (Dec 2005), 42-47.
- Esper: High Volume Event Stream Processing and Correlation in Java, July 2006
- BEA WebLogic (Esper) Event Server, Blog entry, on how BEA (now Oracle) has been or is using Esper as part of their own commercial product.