Re: granularity/definition of a "service"

Pranam Kolari wrote:

>>> Specifically, the other services that WSDL declares:
>>> receive ( one-way operation)
>>> receive, reply ( two-way )
>>> pick, onMessage (one/two-way)
>>> event, messageHandlers (one/two-way)
>>> .....
>>
>>
>>
>> So communication primitives can indeed be classified as services as 
>> per BPEL ?
>>
>>>
>>> Note that "invoke" is not part of WSDL since it is used by the 
>>> composition to invoke external web services and is not
>>> a provided service by the composition. Ofcourse one could argue that 
>>> certain "invokes: could be one-way operations
>>> reporting to external entities.
>>>
>>> So in this sense, a subset of activities (combination of activities) 
>>> are services as they serve clients. 
>>
>>
>>
>> I agree that a combination of activities can indeed represent a 
>> service, but would an individual activity like for example <receive> 
>> be classified as a service?
> 
> 
> I would say a <receive> alone is a service if it represents a one-way 
> operation  in the BPEL composition. <receive> can also be accompanied 
> with a corresponding <reply> in which case both of them put together is 
> a service. A subset of activities ( and a combination of activities) are 
> services based on the way they serve clients.

  I agree that a <receive> or a <send> *can* be offered as a (WSDL) 
service - but for many purposes it seems unnecessarily cumbersome and 
counterintuitive to do so.  I prefer to think of a "service" as an 
interesting unit of functionality that's "packaged up" for external 
invocation and reuse.   If a <receive> or a <send> operation is only 
needed as part of a larger flow of control (e.g., as expressed in BPEL), 
in general it doesn't seem appropriate to have it declared as a service. 
  In that case, it is preferable to think of it just as a WSDL 
*operation*, rather than a service.  I believe this view is consistent 
with Joachim's comment earlier in this thread, that

- a service consists of a collection of (probably related) operations
- BPEL constructs like "invoke" or "receive" refer to such *operations*
(not to the service as a whole)

Regards,
- David

Received on Thursday, 16 September 2004 18:46:59 UTC