publish/subscribe/message architecture using boost

Hi all, I 'm currently looking at redesigning an application and changing to boost/c++11 library components. The application reads data from an input, processes the data and then send it to an output. The current architecture is one thread per "device" where a device is a pair of input/output ports and one processing stage. What I'd like to do is move this to either a publish/subscribe model or some form of message-based system where an input comes in and a message is then sent to the next stage of the process. All stages will happen on the same physical/virtual machine. Are there any good pub/subscribe or message-based components using the boost architecture that works on mac osx/win32. Any help appreciated. Regards Sean.

Hello,
On Sat, Apr 6, 2013 at 4:52 AM, Sean Farrow
Hi all,****
I‘m currently looking at redesigning an application and changing to boost/c++11 library components.
The application reads data from an input, processes the data and then send it to an output.****
The current architecture is one thread per “device” where a device is a pair of input/output ports and one processing stage.****
What I’d like to do is move this to either a publish/subscribe model or some form of message-based system where an input comes in and a message is then sent to the next stage of the process.****
All stages will happen on the same physical/virtual machine. ****
Are there any good pub/subscribe or message-based components using the boost architecture that works on mac osx/win32.****
We're looking into something around infrastructure as well for a producer/consumer data generator, as well as event brokering type architecture. I wouldn't artificially constrain yourself to boost-based alone. Although we're using boost, several have come to mind: looks like ZeroMQ is a strong horse in that race. Crossroads I/O (XS) popped up as a plausible fork in the ZeroMQ road, but I am discovering it seems to be a dead thing. XS' would-be successor Nanomsg is a work in progress: would ignore it until it's released. Which leaves ZMQ. There may be others, like ZeroC Ice (lighter weight successor to CORBA-esque RPC), but that might be overkill for what you need. For us anyway ecosystem is a concern, so cross platform cross language is a key element as well. Although any of these work just fine in one address space (intra-process), as well as inter-process, and between systems, etc. HTH
Any help appreciated.****
Regards****
Sean.****
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users

Le 06/04/13 11:52, Sean Farrow a écrit :
Hi all,
I
'm currently looking at redesigning an application and changing to boost/c++11 library components.
The application reads data from an input, processes the data and then send it to an output.
The current architecture is one thread per "device" where a device is a pair of input/output ports and one processing stage.
What I'd like to do is move this to either a publish/subscribe model or some form of message-based system where an input comes in and a message is then sent to the next stage of the process.
All stages will happen on the same physical/virtual machine.
Are there any good pub/subscribe or message-based components using the boost architecture that works on mac osx/win32.
Any help appreciated.
Hi, I don't know if what you are looking for is a pipeline. See [1] and [2] Best, Vicente [1] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3534.html [2] https://code.google.com/p/google-concurrency-library/source/browse/include/p...

On Sun, Apr 7, 2013 at 1:14 PM, Vicente J. Botet Escriba < vicente.botet@wanadoo.fr> wrote:
Le 06/04/13 11:52, Sean Farrow a écrit :
Hi all,****
I****
‘m currently looking at redesigning an application and changing to boost/c++11 library components.****
The application reads data from an input, processes the data and then send it to an output.****
The current architecture is one thread per “device” where a device is a pair of input/output ports and one processing stage.****
What I’d like to do is move this to either a publish/subscribe model or some form of message-based system where an input comes in and a message is then sent to the next stage of the process.****
All stages will happen on the same physical/virtual machine. ****
Are there any good pub/subscribe or message-based components using the boost architecture that works on mac osx/win32.****
Any help appreciated.****
Hi,
I don't know if what you are looking for is a pipeline. See [1] and [2]
It is the *nix way. But for ecosystem concerns, I'd wondered about how we might compose our app, decompose into tighter, service-y type applets, and align through a pipeline.
Best, Vicente
[1] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3534.html [2] https://code.google.com/p/google-concurrency-library/source/browse/include/p...
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
participants (3)
-
Michael Powell
-
Sean Farrow
-
Vicente J. Botet Escriba