In chapter 2 the RPC model was discussed. In that model, messages are
paired so as to carry parameter values into and out of the remote
procedure. Such a service could be built by
adding some information to the data transferred (probably a sequence
number) to allow replies to be matched correctly to the corresponding
requests. We would then have built a new black box outside the original one.
The black box analysis can be taken in the other direction. Our original
black box may be able to transfer messages of arbitrary length. However,
real systems often impose limits on message length. If we look inside our
black box, we will see another black box corresponding to such
a 'real' system. Our black box builds on the inner black box service (by
fragmenting messages into suitable sized chunks and re-assembling them on
the other side) in order to provide the service we require.
This gives us the basic decomposition of a communications system. It
consists of a series of nested black boxes each of which adds something to
enhance the service offered by the black box it contains. The first task
for the designers of communications system standards is to decompose the
problem into a set of black boxes and make a broad allocation of functions
to each. Next, they can make the definitions of the services offered by the
black boxes precise. Essentially, an object oriented approach is followed.
The designers are specifying what the objects (the black boxes) do not how
they do it. Languages do exist for formally specifying the interface to and
the behavior of communications services, however, most often, reliance is
placed upon a sort of formalized English. We have looked at more formal languages in the previous chapter.
Figure: