newbie question: inter-process communication

Hi everybody,

it is the first time that I use OROCOS.
I would like to use OCL to create an Hardware Abstract Layer.
One process would be a producer (sensor data) and there can be several consumers.
In all the examples in the OCL, there are several tasks which are created within a single process (executable) and can be connected together as explained in the manual.
But I want this connection to be created between 2 or more processes running simultaneously.

They all run on the same PC. Shall I use CORBA? And if I use CORBA, the communication is done in TCP-IP or OROCOS would use shared memory since it is more efficient?

It would be nice if anyone can help me with a simple example.

Regards

Davide

[CORBA]newbie question: inter-process communication

Hi Davide,

Sorry for the delay, your mail was stuck in the orocos-dev moderation queue...

On Tuesday 07 October 2008 17:46:10 faconti [..] ... wrote:
> Hi everybody,
>
> it is the first time that I use OROCOS.
> I would like to use OCL to create an Hardware Abstract Layer.
> One process would be a producer (sensor data) and there can be several
> consumers. In all the examples in the OCL, there are several tasks which
> are created within a single process (executable) and can be connected
> together as explained in the manual. But I want this connection to be
> created between 2 or more processes running simultaneously.
>
> They all run on the same PC. Shall I use CORBA? And if I use CORBA, the
> communication is done in TCP-IP or OROCOS would use shared memory since it
> is more efficient?

As you guessed correctly, the only way (today) to communicate between
processes is by using CORBA. Orocos does not fix which transport CORBA (TAO)
uses. You need to provide program options when running the cdeployer or
deployer-corba to inform the ORB that it may use shared memory.

Notice that TAO will still send a message over a socket anyway to notify
the 'other side' that a message has been written in shared memory. So shared
memory is only more efficient for large messages. It does not make a
difference for small messages.

>
> It would be nice if anyone can help me with a simple example.

There are quite a number of CORBA users, maybe they can share how they setup
their IPC...

Peter