next up previous contents
Next: Build your own METKModule Up: METK - The Medical Previous: Visualization concept   Contents


Messaging Concept

One of the most challenging problems on working with the METK is that you don't know which of your module in the network is being processed at the moment. When the Loaded event is sent for example, it is not possible to forecast in which order the modules will process the event. Also--depending on the network--user interactions will cause different module to react.

Thus, it is not possible to forecast when an initiated process has been finished by another module. Especially the mixture of python and C++ code makes it very difficult. To overcome these problems, an own messaging system is provided, besides listening to data-changing-events (DCE).

For synchronized communication between two modules, METKMsgSender and METKMsgReceiver were developed. These two modules are able to send message to each other, which reception (processing) and finishing (done) must be confirmed. There can be arbitrary senders and receivers, with one restriction: If there are more than one METKMsgReceiver listening to the same message, only one receiver will receive the message. It is not defined, which one.

Sender and receiver exchange data by establishing a shared communication channel. If there is no responsible receiver for a message, the transmission is canceled. If there is one, the message data could be sent. After processing the data, the receiver will sent a confirmation to the sender. For more details on sending and receiving data, please have a look into Section 9. The METKManager already uses the messaging concept.


next up previous contents
Next: Build your own METKModule Up: METK - The Medical Previous: Visualization concept   Contents
Subversion User 2009-01-06