Conversive Services Part 2

21 05 2009

In my last post I talked about the concept of dynamic services holding a conversation to achieve a goal rather than just the usual request and response service calls that many of us are familiar with.

Why bother to hold a conversation between services?

Well, when two people meet for the first time it is good to get to know one another. What interests both parties have in common or an exchange of ideas and opinions. In system terms it is good to get to know the service consumer so that you understand them better and can put their requests into context.

In the previous post I discussed the example of a currency service not being able to convert two currencies. In this example the service can identify the context, monetry conversion for going on holiday, and make a decision on how to handle the request. If the request, as in this case, is obviously for tourism, then the service may behave in one of several ways.

  1. It may decide that it should not process obvious tourism related requests (based on context) and redirect the consumer elsewhere.
  2. It may gracefully redirect the consumer to an affiliate service that can process the request once it discovers that it cannot convert the currencies.
  3. It may log the context, the type of exception and then reply gracefully that it does not understand the consumers request.

This requires two things.

  1. Intelligent services that can be configured to understand not only the request but the context of that request so that it can decide if it is the best agent to carry out the task.
  2. Intelligent consumers that can communicate with and manage connections with intelligent services.

The next part of this blog will cover how services and consumers can find one another.

Stay tuned.