Haskell Actors, Linda, publish / subscribe models?

Hi, I am trying to figure out what Haskell libraries can be used to build publish / subscribe communication between threads running both in the same and different address spaces on the net. For my needs any of these models will work: - Actors [ http://en.wikipedia.org/wiki/Actor_model ] - Linda tuple space [ http://en.wikipedia.org/wiki/Linda_%28coordination_language%29 ] - Publish / subscribe [ http://en.wikipedia.org/wiki/Java_Message_Service#Publish.2Fsubscribe_model] I need to build a framework to coordinate task producers / consumers distributed in the same and different address spaces. I need to scale a data processing application somewhat Hadoop-like way yet in more flexible manner, without Hadoop-specific distributed FS constraints. Looking through Applications and libraries/Concurrency and parallelism: http://www.haskell.org/haskellwiki/Applications_and_libraries/Concurrency_an... I found Haskell actor package [ http://hackage.haskell.org/cgi-bin/hackage-scripts/package/actor ] that fails to build with ghc 7.0. Please advise on latest working libraries. Thanks! -- All the best, Dmitri O. Kondratiev "This is what keeps me going: discovery" dokondr@gmail.com http://sites.google.com/site/dokondr/welcome

On Sat, Aug 13, 2011 at 3:54 PM, dokondr
Hi, I am trying to figure out what Haskell libraries can be used to build publish / subscribe communication between threads running both in the same and different address spaces on the net. For my needs any of these models will work: - Actors [ http://en.wikipedia.org/wiki/Actor_model ] - Linda tuple space [ http://en.wikipedia.org/wiki/Linda_%28coordination_language%29 ] - Publish / subscribe [ http://en.wikipedia.org/wiki/Java_Message_Service#Publish.2Fsubscribe_model]
I need to build a framework to coordinate task producers / consumers distributed in the same and different address spaces. I need to scale a data processing application somewhat Hadoop-like way yet in more flexible manner, without Hadoop-specific distributed FS constraints.
Looking through Applications and libraries/Concurrency and parallelism:
http://www.haskell.org/haskellwiki/Applications_and_libraries/Concurrency_an...
I found Haskell actor package [ http://hackage.haskell.org/cgi-bin/hackage-scripts/package/actor ] that fails to build with ghc 7.0.
Please advise on latest working libraries.
Thanks!
Have anybody used Haskell actor package [ http://hackage.haskell.org/cgi-bin/hackage-scripts/package/actor ]?

Hi,
the actor package seems unmaintained and probably doesn't fit your needs. If
you want to implement some kind of publish/subscribe system over the
network, I'd suggest you take a look at ZeroMQ[1] and AMQP[2].
AMQP is probably easier to get started with, but it requires you to set up a
dedicated broker, which (if you have very high throughput) might become a
bottleneck. ZeroMQ, on the other hand, allows for a more decentralized
architecture.
Regards,
Holger
[1] http://hackage.haskell.org/package/zeromq-haskell
[2] http://hackage.haskell.org/package/amqp
2011/8/14 dokondr
On Sat, Aug 13, 2011 at 3:54 PM, dokondr
wrote: Hi, I am trying to figure out what Haskell libraries can be used to build publish / subscribe communication between threads running both in the same and different address spaces on the net. For my needs any of these models will work: - Actors [ http://en.wikipedia.org/wiki/Actor_model ] - Linda tuple space [ http://en.wikipedia.org/wiki/Linda_%28coordination_language%29 ] - Publish / subscribe [ http://en.wikipedia.org/wiki/Java_Message_Service#Publish.2Fsubscribe_model]
I need to build a framework to coordinate task producers / consumers distributed in the same and different address spaces. I need to scale a data processing application somewhat Hadoop-like way yet in more flexible manner, without Hadoop-specific distributed FS constraints.
Looking through Applications and libraries/Concurrency and parallelism:
http://www.haskell.org/haskellwiki/Applications_and_libraries/Concurrency_an...
I found Haskell actor package [ http://hackage.haskell.org/cgi-bin/hackage-scripts/package/actor ] that fails to build with ghc 7.0.
Please advise on latest working libraries.
Thanks!
Have anybody used Haskell actor package [ http://hackage.haskell.org/cgi-bin/hackage-scripts/package/actor ]?
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

On Mon, Aug 15, 2011 at 12:36 PM, Holger Reinhardt
Hi,
the actor package seems unmaintained and probably doesn't fit your needs. If you want to implement some kind of publish/subscribe system over the network, I'd suggest you take a look at ZeroMQ[1] and AMQP[2]. AMQP is probably easier to get started with, but it requires you to set up a dedicated broker, which (if you have very high throughput) might become a bottleneck. ZeroMQ, on the other hand, allows for a more decentralized architecture.
Regards, Holger
[1] http://hackage.haskell.org/package/zeromq-haskell [2] http://hackage.haskell.org/package/amqp
Thanks! I will try these out. I wish I could find something that will provide a *single* publish / subscribe framework to work with threads *both* in the same and separate address spaces.

It seems that the recent "Cloud Haskell" paper is relevant:
http://research.microsoft.com/en-us/um/people/simonpj/papers/parallel/remote...
The repo is here:
https://github.com/jepst/CloudHaskell
I haven't tried it yet myself but would like to.
Cheers,
-Ryan
On Mon, Aug 15, 2011 at 10:32 AM, dokondr
On Mon, Aug 15, 2011 at 12:36 PM, Holger Reinhardt
wrote: Hi,
the actor package seems unmaintained and probably doesn't fit your needs. If you want to implement some kind of publish/subscribe system over the network, I'd suggest you take a look at ZeroMQ[1] and AMQP[2]. AMQP is probably easier to get started with, but it requires you to set up a dedicated broker, which (if you have very high throughput) might become a bottleneck. ZeroMQ, on the other hand, allows for a more decentralized architecture.
Regards, Holger
[1] http://hackage.haskell.org/package/zeromq-haskell [2] http://hackage.haskell.org/package/amqp
Thanks! I will try these out. I wish I could find something that will provide a *single* publish / subscribe framework to work with threads *both* in the same and separate address spaces.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

On Mon, Aug 15, 2011 at 11:41 PM, Ryan Newton
It seems that the recent "Cloud Haskell" paper is relevant:
http://research.microsoft.com/en-us/um/people/simonpj/papers/parallel/remote...
The repo is here:
https://github.com/jepst/CloudHaskell
I haven't tried it yet myself but would like to.
Cheers, -Ryan
Thanks for the really great news! Finally Erlang actor model of communication comes to Haskell! I hope that one day Haskell will also evolve to provide dynamic code update as Erlang does. It would then be the ideal PL for reliable programming of adaptive, distributed real-world systems! -- All the best, Dmitri O. Kondratiev "This is what keeps me going: discovery" dokondr@gmail.com http://sites.google.com/site/dokondr/welcome
participants (3)
-
dokondr
-
Holger Reinhardt
-
Ryan Newton