Documentation/Messaging: Difference between revisions
From Commontk
Jump to navigationJump to search
PatrickCheng (talk | contribs) No edit summary |
PatrickCheng (talk | contribs) No edit summary |
||
Line 1: | Line 1: | ||
=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 | |||
* Synchronization: Window/Leveling events in one window should be synchronized across all viewer windows | |||
* 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 | |||
[[File:Amqp.jpg|thumb|300px|<big>AMQP model</big><br>Source: http://upload.wikimedia.org/wikipedia/en/9/9d/The-amqp-model-for-wikipedia.svg]] | |||
==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 | |||
=Implementation= | |||
Using [http://msdn.microsoft.com/en-us/library/ff647328.aspx Message Bus] and [http://msdn.microsoft.com/en-us/library/ff649664(v=pandp.10).aspx Publisher/Subscriber] design pattern for system integration | Using [http://msdn.microsoft.com/en-us/library/ff647328.aspx Message Bus] and [http://msdn.microsoft.com/en-us/library/ff649664(v=pandp.10).aspx Publisher/Subscriber] design pattern for system integration | ||
* OpenIGTLink can be used to define the common message schema, and ZeroMQ can be used to handle the transportation layer abstraction | * OpenIGTLink can be used to define the common message schema, and ZeroMQ can be used to handle the transportation layer abstraction |
Revision as of 19:15, 27 May 2010
Home < Documentation < MessagingUse 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
- Synchronization: Window/Leveling events in one window should be synchronized across all viewer windows
- 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
Implementation
Using Message Bus and Publisher/Subscriber design pattern for system integration
- OpenIGTLink can be used to define the common message schema, and ZeroMQ can be used to handle the transportation layer abstraction
- ZeroMQ is a small and fast implementation of the Advanced Message Queuing Protocol under the LGPL license
- It supports both synchronous and asynchronous messaging mode
- It supportsTCP, Multicast/PGM, Inter-process, and inter-thread transportation
- CMake version of library can be found here http://github.com/PatrickCheng/zeromq2
- API can be found here http://api.zeromq.org/zmq.html