Documentation/Messaging: Difference between revisions
From Commontk
Jump to navigationJump to search
PatrickCheng (talk | contribs) |
PatrickCheng (talk | contribs) m (→Implementation) |
||
Line 13: | Line 13: | ||
# Use[http://msdn.microsoft.com/en-us/library/ff648849(v=pandp.10).aspx Message Broker] for event management | # Use[http://msdn.microsoft.com/en-us/library/ff648849(v=pandp.10).aspx Message Broker] for event management | ||
# Use [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 | # Use [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 | ||
# | # Message layer: [http://www.na-mic.org/Wiki/index.php/OpenIGTLink OpenIGTLink] | ||
# | #* OpenIGTLink defines many common data format and message structure | ||
# | #* It has plain vanilla socket support, might switch to ZeroMQ for transportation | ||
# | # Transportation layer abstraction: [http://www.zeromq.org/ ZeroMQ] | ||
# | #* [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 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 | ||
[[File:Message bus.gif|thumb|none|300px|<big>Message Bus</big><br>Source: http://i.msdn.microsoft.com/dynimg/IC97398.gif]] | [[File:Message bus.gif|thumb|none|300px|<big>Message Bus</big><br>Source: http://i.msdn.microsoft.com/dynimg/IC97398.gif]] |
Revision as of 19:34, 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
- UseMessage Broker for event management
- Use Message Bus and Publisher/Subscriber design pattern for system integration
- Message layer: OpenIGTLink
- OpenIGTLink defines many common data format and message structure
- It has plain vanilla socket support, might switch to ZeroMQ for transportation
- Transportation layer abstraction: ZeroMQ
- 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