Re: About component architectures...

Herman Bruyninckx <[email protected]>
Newsgroups gmane.science.robotics.orocos.user
Message-ID <Pine.LNX.4.44.0204251125560.1226-100000@pc25-213.mech.kuleuven.ac.be>
On Thu, 25 Apr 2002, Anthony Mallet <Anthony Mallet wrote:

> Herman Bruyninckx wrote :
> | I am not too happy with a `supervisor' because that is such a general
> | name that covers too many different things we want to separate.
> 
> I think what you really want is an "execution control layer", which can
> be made of several components: 'configurator', 'resource management',
> 'consistency checks' (e.g. checking that you are not doing things with
> the 'functional components' that are not allowed), 'communication
> management' (e.g. some of the functionalities of an ORB), etc...

These are all part of configuration, aren't they? But I agree that
they represent different aspects (`roles') of configuration.

> | - Configurator (what the people in LAAS call ``control flow'' I guess),
> 
> Not really: the control flow is much more general. With our terminology,
> the control flow represents all the service requests that are made to the
> 'functional components'. 
> | - Mediator (``data flow'') that accepts service requests from
> |   the user and divides those into actions for its sub-components.
> 
> [ Services requests are part of the control flow ]

Ok, I understand my misunderstanding.

> Your Mediator is what I called 'communication management' above. And it
> must take care of both the data and the control flow.

Communication is not concrete enough, I think: configuring how
sub-components must communicate is one thing, but deciding how an
incoming service request is to be executed by the available
sub-components is another thing. The latter has to be done for every
incoming request (hence `mediator'); the former only once at
`configuration'.

> Let's say you have a component A that can produce data (A.ouput) and a
> component B that need data (B.input).
> 
> The control flow represents the floowing actions:
> "tell A to start producing A.output"
> "tell B to read B.input from A.output"
> "tell B to start using B.input"

Ok. This is configuration.


> | Should we make separate sub-component for each of these ``roles'' or
> | should we do just that: call it supervisor, and give it different
> | roles (Configurator, Mediator) to play?
> 
> No, I think it's a good idea to make separate sub-components :)

And how do we decide what sub-component will be active when? By
another `supervisor' on top of them....? It looks simpler to me to
give the Configurator the possibility to perform various roles,
instead of branching of a new sub-component for each of these roles.

> But I wouldn't call 'supervisor' the set of the sub-components you are
> talking about. In the literature, the supervisor is the one that makes
> decisions about the services to activate whithin the functional layer.

That depends on which part of the literature you read :-)

> I think we are really talking about the 'execution control layer' of the
> 3 layered architectures.

No, I am talking about the _internals_ of _all_ three layers...
Irrespective of what their functional purposes are. Of course, there
will be differences between the architectures of components with
different functional purposes, but I do think they will have lots of
structure in common; it's this structure I want to specify now...

Herman

-- 
K.U.Leuven, Mechanical Engineering, Robotics Research Group
<http://www.mech.kuleuven.ac.be/~bruyninc>  +32 16 322480
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.