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
