While there is no built-in CORBA interface for DX, there are hooks in DX to
support asynchronous input.  The trick in DX is that modules generally are
scheduled for execution when their input has changed.  Typically, this
input consists of data arrving on the
inputs of the modules - the wires connecting a module to its precursors.
In the case of asynchronous input, what you do is to create a module that
has two functions.  One, a "watcher" procedure,  keeps an eye on an input
stream, and kicks DX to let it know that input has arrived.  The other is
the module itself, which actually reads the input  when it runs, creates a
DX data object from the input, and  passes it on down the network.


In the samples, you'll find a prototype in outboard/watchsocket.c.   This
sample module (as you might guess) watches for data input arriving on a
socket.   It opens the socket, and then registers the fd along with the
"worker" procedure, to the list of fds that DX watches.  When input arrives
on that fd, DX calls the worker procedure, which in turn calls
DXReadyToRun, passing in the module's identifier.  This indicates that
input has changed on that module, and next time DX executes (immediately,
if DX is in ExecuteOnChange mode) the module will execute.  The module then
reads the input off the socket, creates an object, and passes it out.

This scenario can be generalized easily.  Your module spawns a thread that
blocks waiting for input in whatever manner is appropriate for the
communications medium you are using.  When input arrives, your thread
releases and calls DXReadyToRun, just as in the sample.

I hope this makes sense.

Greg

GENE <[EMAIL PROTECTED]>@opendx.watson.ibm.com on 02/12/2000 02:18:04 PM

Please respond to [email protected]

Sent by:  [EMAIL PROTECTED]


To:   [email protected]
cc:
Subject:  Re: [opendx-users] Dx and CORBA



Harry Mangalam wrote:

...

> Second, is there a way for DX servers to communicate via CORBA to make
data
> resources, analyses, and requirements known?  It seems that this would be
> generally useful.   I'm trying to use it as the basis of distributed
> processing of gene expression data and since a lot of our other services
> are CORBA-based, it would be of interest to us to hear if others have
tried
> it or if the DX-gurus could suggest an approach to do this.

...

Let me add two cents more, and ask if there is an existing real-time
interface

capability in opendx which would support a streaming data source, such as
radar observation reports, continuously being reported?  Secondly, if the
notion
of continuously updating a visualization from real-time data is not
anethema
to
the opendx data model, where in the opendx hierarchy of modules, etc. would
one look to begin to fashion a "real-time"  CORBA IDL-defined interface?

Pardon me if this is more suitable material for the dev group - just trying
to

latch onto the Mangalam theme above.

Gene Montgomery





Reply via email to