Documentation/Messaging: Difference between revisions

From Commontk
Jump to navigationJump to search
Line 26: Line 26:
#* [http://www.zeromq.org/ ZeroMQ] is a small and fast implementation of the [http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol Advanced Message Queuing Protocol] under the LGPL license
#* [http://www.zeromq.org/ ZeroMQ] is a small and fast implementation of the [http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol Advanced Message Queuing Protocol] under the LGPL license
#* It supports both synchronous and asynchronous messaging mode
#* It supports both synchronous and asynchronous messaging mode
#* It supportsTCP, Multicast/PGM, Inter-process, and inter-thread transportation
#* It supportsTCP, multicast/PGM, inter-process, and inter-thread transportation
#*  CMake version of library can be found here http://github.com/PatrickCheng/zeromq2
#*  CMake version of library can be found here http://github.com/PatrickCheng/zeromq2
#* API can be found here http://api.zeromq.org/zmq.html
#* API can be found here http://api.zeromq.org/zmq.html

Revision as of 07:55, 28 May 2010

Home < Documentation < Messaging

Use cases

Event Management

Each component/application generates many different types of events. A centralized event manager (Hub and Spoke) can be used to aggregate/dispatch events

  1. Synchronization: Window/Leveling events in one window should be synchronized across all viewer windows
  2. Temporal calibration: Different components have different update frequency, a centralized manager can be used to filter UpdateEvents, so the whole system is updating at the same frequency


System Integration

Different system/application have different data format or are running on different physical devices. A event bus can be used for system integration

Solution

  1. UseMessage Broker for event management
  1. Use Message Bus and Publisher/Subscriber design pattern for system integration

Implementation

  1. Message layer: OpenIGTLink
    • OpenIGTLink defines many common data format and message structure
    • It has plain vanilla socket support, might switch to ZeroMQ for transportation
  2. Transportation layer abstraction: ZeroMQ