Saturday, February 9, 2013

StreamInsight as a cloud service

The idea of using event processing in "software as a service" mode is not new;  thanks to Marco's Blog,  I came across an article describing the StreamInsights cloud service.  The rationale behind it is that it should be used in cases that it is more cost-effective to customer relative to purchasing expensive hardware needed for processing large volumes of events.    This is part of the general trend to use the cloud for various purposes.  I assume that this will be one of the main ways that event processing will be consumed in the future. 

Tuesday, February 5, 2013

IFTTT - additional cool event-driven tool

I have written earlier this week about "world stream computing" as the new web paradigm, where the web becomes event-driven based on streams of events.   We can see some mobile based applications that conform with the paradigm.  I have written before about On{X}which is based on "event-action" recipes.
Another member in this family is IFTTT (acronym for: if this than that).  Like On{X}, IFTTT also uses the term recipes, it has a large set of shared recipes, which have visual icons (e.g. the Twitter Icon, the Facebook icon and more). 
Some recipes examples are:
Turn off light (on the mobile) when sun rises 
When sometimes tags my name on Instagram, send me SMS
If I check-in into an office, create LinkedIn status

As one can see the events can be events related to various social media, or other feeds (such as weather feeds),  and the actions are actually of the same type.

I have gave as an assignment for students in a seminar last semester to experiment with some tools, and experiment on people who are not IT professionals, if they can get it.  One of the student teams chose IFTTT, and succeeded to get two non IT professional people to download it, use it, and create some new  recipes.  It took them some iterations to learn it (it is not that trivial), but after an hour, they could generate recipes without problem, and noted that it is working smoothly.  

I guess that these are relatively simple tools that precede the new "active" web wave...

Sunday, February 3, 2013

World Stream computing to replace the Web

I came across an interesting article by David Gelernter.  Gerlenter, a Yale Professor, who co-introduced the term "lifestreams" in the 199o-ies, proceeds in the same spirit and talks about "worldstreams" which he defines as a collection of heterogeneous real-time messaging stream  (may be thought as a collection of streams).   His prophecy is that this will be a disruptive technology for the web, browsers, search, operating systems.  We will no longer surf in sites and search the web,  but we'll browse the worldstream, and ask the worldstream to bring us what we want, in the time we want it, instead of search for it.    The event processing grand challenge, which was part of the event processing manifesto,  and talked about the "event fabric" was similar in nature, but the manifesto authors did not claim that the web will be replaced,  it will probably not happen in one step anyway.    However -- certainly interesting observation, and promises bright future...



On event model and decision model



In the article about "event model" by Luckham and Schulte, on which I have reported last week,   the term "decision model" was referenced as one of the complementary models to an event model.  This has created some discussion within the DMN LinkedIn group, the discussion was created by Paul Vincent who is one of the persons behind the DMN standard work.   I am following the DMN work, though not in an active way, and participated in the kick-off meeting in March 2011,  and also written on "decision models and event processing"  following the talk on "The Decision Model" by KPI at the same event. 

In order to view the relationship between "event model" and "decision model", we need first to understand what is a decision that a decision model is modeling 
 The DMN presentation defines decision as "A Decision is the act of applying decision logic to one or more inputs and produce one output".    This can relate to modeling a collection of business rules, which gets a request with an associated input and returns a result  ("concluded fact") or to a result of some quantitative model (such a scoring model or optimization model). 

In comparison event model is modeling event-driven logic, which is based on deriving situations or derived events based on filtering, transformation, aggregations, and pattern detection over a collection of input events.   

The question is what is the relationship between these two terms?  
we can start by looking at the relationship between business rules and event processing,  there have been long discussions about it in the past, the position I expressed was that related to a discussion with James Taylor in 2008, stated that event processing and decision management are different issues.  A decision may not be related to event, and an event processing may not trigger any decision.  However, there are also relations between them.   
In my recent presentations about event-driven applications I am using the "4 D" that coined by Jeff Adkins: 



 I found out that this is an easy way to explain both IT and business persons who are not familiar with event-based systems what it is in a nutshell.      Referring to this picture, an event model deals with the "detect" and "derive" phases.    The derived event may also by itself denote a decision (since it is obvious what to do if this situation is detected and does not require further decision),  or that the detection of this situation triggers a decision that can be modeled by a decision model (note that the situation may trigger a task, and then the decision may be embedded inside a business process model).  In the example referred to in the slide above,  the  "derive" phase detects that a traffic jam is coming, and the "decide" phased determines how to reset the traffic light policies in order to reduce the traffic jam -- in this case they are complimentary.

Another interesting point is that "decision" in the common interpretation is "request driven",  I have recently written about the distinction between "event driven" and "request driven".   One may claim that a request is an event (which is sometimes semantically doubtful), or that there is always some event that causes a person or a system to make a request (may be metaphysically true, but the event is not explicitly exposed).  However, request-driven is taking an action by request (a passive approach), while event-driven is taking an action without a specific request, due to either occurrence of event or detection of situation (an active approach).    An event can take 

Bottom line:  decision models and event model are complementary models.   I'll discuss similarities and differences in the content of what is modeled in a later phase.