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.


Unknown said...

Another example of proactive computing is in the new "flow management" internet routers (like the Anagran FR-1000 described in IEEE Spectrum July 2009) which looks at incoming packets and proactively sets up cache tables preparing for streaming videos about to start. As opposed to current routers which treats each packet independently, which works ok until P2P traffic overwhelms the network.

This is similar to your traffic light example...

Hans said...

It looks like you use a different terminology than Prof. Chandy. His proactive seems to encompass both your reactive and proactive. Not a big deal I guess, just pointing it out.