Re: granularity/definition of a "service"

>However can the fundamental operations of sending and receiving 
>messages that any service is suppose to perform, irrespective of 
>the core functionalities it offers, be classified as a "service" 
>at its lowest level of granularity?

i think the answer is yes, under certain circumstances,  *if* you assume a 
layered model ( like the ISO-OSI model, the TCP/IP internet protocol stack 
for instance )

* each layer in the model provides a "service" to the layer above it and 
each layer consumes a "service" from the layer below, ie. "vertical 
communication". For instance an FTP or SMTP server (vertically) consumes 
the "services" of its underlying TCP/IP implementation. (i.e. the 
networking functionality it provides)
* Then, there is also the "horizontal communication", which is the 
interaction between two different instances on the *same logical layer* 
(e.g. an FTP server and its client, or two SMTP servers, etc.). 

now, if we have a high level application A , that uses HTTP to send or 
receive messages, then we can say that this application consumes a service 
(from its own network stack) that allows it to send and receive HTTP 
messages (see below). 

However, if we consider the horizontal communication between the instances 
1 and 2 on level 3 (where only the application protocol "proto A" is 
relevant), then the elementary HTTP send/receive functionalitiy becomes 
irrelevant and i would not see any use in explicitely modeling the HTTP 
funcationality on that level. Similarily, when we go another level higher 
in the model (above level 3),, then the HTTP send/receive operations are 
not relevant anymore even for vertical communication (because level 4 
would access level 3, not level 2 directly)


       instance 1                               instance 2
  +------------------+                      +-----------------+
3 | Application A    |      <-proto A->     | Application A   |
  +------------------+                      +-----------------+
2 | HTTP             |       <-http->       | HTTP            |
  +------------------+                      +-----------------+
1 | network stack    |  <-tcp, ip, ppp..->  | network stack   |
  +------------------+----------------------+-----------------+
0 |                pysical transmission of BITs               |
  +-----------------------------------------------------------+


so in short, i would say, that it depends of the layer you are modeling 
and wether you are modeling the vertical or the horizontal communication 
protocol

cheers,
Joachim

Received on Sunday, 19 September 2004 15:39:05 UTC