Saturday, October 24, 2009

On Proactive Computing

In the picture above you can see some products that are designated to protect your skin from various things under "proactive skin care", actually preventive medicine is also aimed at protecting one's health from future problems.

Mani Chandy has recently posted in his Blog an article about Proactive computing. I thought it is worthwhile to say a few things about this notion.

We can view three types of computing: responsive computing, reactive computing and proactive computing.

Responsive computing is the way most computing is done, I am using now some software for Blog editing, sitting on some server and waiting for me to connect, and use it, in the rest of the time it sits idle (well, the server is, for sure, being used for other important stuff), and does not do anything unless explicitly requested, this is typically the way we are working with Web servers, databases and mostly everything else when using computing.

Reactive computing is the way that event-based systems are working. An event occurs and then it triggers one or more computational processes, without being response to any request. Event processing is a vehicle for doing reactive computing,

Proactive computing is the case when a computing system arrives at a conclusion that some entity will reach an undesirable state, and attempts to eliminate it from getting to this state, or mitigate it by transferring this entity to a more desired state instead.

Some examples of proactive computing:

  • The traffic lights policy are set before a football game is going to end and the traffic is expected to flow in certain directions.
  • A repair technician is late in one of its sessions, and combining with traffic conditions he will be very late to his next customer, something that will cause several chain effects.
  • A progression in the state of a patient will make his treatment protocol inadequate
There are many other examples as well.

As said that we are now at an era of the responsive computing, reactive computing had caught on in some segments, and more segments of computing applications are now discovering it, but it is far from reaching its full potential. Some of the reactive programming applications are aimed at proactive computing, by the fact that some combination of events may be interpreted as getting to some future state that should have some action, and there are some commonality among them, it is still a good idea to look at proactive computing as as its own notion, and understand what a proactive computing application is like, and what are its characteristics.

I'll write more on that later.

Tuesday, October 20, 2009

On the event processing languages experience

I have realized that I have not written in this Blog for over a week, this is neither because I am away, nor because I am dry of topics to write about, but in the last few weeks I spend many hours a day in wrapping up a proposal for creating a project or the European Union program, by a consortium of 16 partners, beside IBM Haifa Research Lab (the organization that pays my salary) the consortium includes SAP Research, Software AG, Thales, Siemens, Nokia Siemens Networks, TXT, CITT and various universities all over Europe, total of 16 partners from 9 countries. I'll write about the proposal itself after we'll submit it. Alas - It turns out that preparing such a proposal is a very time-consuming task, especially if one is the project coordinator, so I reduced anything else in life for a minimum, and working longer days than my usually long days. Luckily, there is a deadline next Monday, after which I'll be able to return to normal life. Doing collaborative research among many partners from different countries, and different types of organizations is very interesting game.

I also started to teach the event processing course in the Technion yesterday. I am using the EPIA book draft as teaching material. The students assignment for this course will be quite interesting. Since we have made the EPIA book language-neutral, and use our own meta-language to define all parts of the application, we also wish to provide the reader with the opportunity to experience with event processing programming that actually runs, we have asked around, and got agreement of six language owners (four commercial products and two open source) to participate in this game. All of them agreed to implement the FFD (Fast Flower Delivery) which is the example that accompanies the EPIA book (see below a slide

The students will be divided to teams, each team will study a language, using the fast flower delivery, and in the process, help stabilize the various implementations for the readers, and play with them. They'll also get a mission to do some extensions of this example on their own, to experience the language also in an active way. This may be an interesting experience in understanding of the various languages that are out there. Will be quite interesting. This is also the first time I am teaching according to the upcoming book. Stay tuned to reports about this experience. More - Later.