ipc.pdf ... some remarks (fwd)

Herman Bruyninckx <[email protected]>
Newsgroups gmane.science.robotics.orocos.user
Message-ID <Pine.LNX.4.44.0206201159190.11042-100000@pc25-213.mech.kuleuven.ac.be>
The mail that I forward below is the beginning of a private email
exchange between Christian and myself, about the event and state
machine document. Christian succombed to my insisting to make this
discussion public :-) I will post the whole thread.

Herman

---------- Forwarded message ----------
Date: Thu, 20 Jun 2002 10:04:27 +0200
From: Christian Schlegel <[email protected]>
To: "[email protected]"
    <[email protected]>
Subject: ipc.pdf ... some remarks

Dear Herman,

I am back to work (had some important deadlines at the University of
Ulm) and will now again work on the implementation of my communication
patterns (providing the events). I only had a short look at your new
"ipc.pdf" proposal and because I am not yet sure that I got everything
right I send you this email on your private account.



Many of the concepts described in your paper are exactly what is inside
my communication patterns. Therefore, I assume that you are still
compatible with my communication patterns, right ?

I however got the impression (when browsing your proposal) that you are
concerned very much about various handlers and registering callback
methods. Is that the same what is described in my design document on the
various interfaces at the level of the framework user ? Or do you mainly
describe what then is inside the communication patterns ? What I do with
the communication patterns is to avoid that every consumer registers a
callback method at the producer side because then you have strong
dependencies between producer and consumer.  Where I got confused is
which thread executes which part of the various handlers (section 3.2).
If you look at my UML diagrams you can see that there is a clear
distinction between the user thread, the communication activity etc.
which allows you to provide various user interfaces like callbacks with
handlers or blocking calls etc. without ever blocking communication (by
the way that is the main issue with respect to avoiding deadlocks).

Another point is the "guard" (section 4.1.1). I use a guard at the
producer side of an event to decide whether the event should fire. The
guard itself belongs to the event but the parameters for its activation
check are send by the event activation. This allows one e.g. to get an
event if an activation specific set of parameters gets true. This is
very convenient for events !

Boris and I sent a draft on hierarchical state machines to the mailing
list some weeks ago. Have you looked at it ? What do you think ?


So what I would suggest is to explicitly make clear which parts are
design decisions at the "internal" part of the framework, which policies
are used within communication patterns etc. and which application
programmer policies and communication pattern interfaces result from
those underlying models (I think we are still compatible and you end up
with the proposed interfaces of the communication patterns). If you look
at my sources of the CORBA based implementation you can see how the
producer / consumer (or client / server) part of the patterns commuicate
by calling internal methods of their CORBA representations and how they
are decoupled using condition variables. That decoupling e.g. is very
important and can be found as policy in your proposal as well.


Looking forward to hear from you ....


Christian

--

---------------------------------------------------------------------
Christian Schlegel
FAW Ulm (Research Institute for Applied Knowledge Processing)
PO Box 2060
D-89010 Ulm
Germany

Tel. : ++49 (731) 501 8949
Fax  : ++49 (731) 501 999
email: [email protected]
WWW  : http://www.faw.uni-ulm.de/
---------------------------------------------------------------------
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.