atomic services with no effects or outputs

Hi all,
        There are several atomic services described in the CongoProcess 
file that neither have outputs nor effects. I was wondering how can 
these services be of use to us (entities other than the author). In my 
understanding services either provide you with some information (e.g.. 
ISBN lookup service with the ISBN number as the output) or do some world 
altering activity (e.g. the ExpressCongoBuy service whose execution 
results in the book being shipped to its destination). The former has an 
output and the latter has some effect. Here the output or effect implies 
some sort of a change.
If a service does not indicate a change of state (i.e., if it does not 
have i/e) then how can someone who discovers the service use it (say for 
composition). Something does change when the service is executed but the 
service does not reveal it. I would like to draw an analogy between such 
services with methods that have return type "void". Take the example of 
a program that implements a counter. The increment method in this 
program returns void after incrementing the counter. I further name the 
method foo. If I advertise this method as a web service how will one use 
it since he/she has no idea about its internal workings. But if I return 
a message (add an effect/output) that says "Counter_Incremented" then 
won't it be much easier to comprehend what the service does (assuming 
there is a Genie that maps Counter_Incremented to an my concept of 
counter increment)..
What I make out of this is that as long as I don't provide an output or 
effect, only I, as the writer of the program can use it. By describing 
the effect, I describe the service to the extent that someone else might 
be able to use it.
Do I make any sense or have I completely lost it.

mithun

Received on Friday, 21 March 2003 16:31:26 UTC