Rich, I readily acknowledge the diversity of message passing frameworks for Java. Notwithstanding, I think it makes sense to think about distributed message passing mechanism inherent to Clojure language, like the one Erlang has. It is Erlang abstraction of light-weight processes and extreme ease of reliable, synchronized communication between these processes running on one or many distributed 'nodes', it is all that that makes Erlang so great for real world distributed tasks! Clojure could have become a great next step in this direction!
Dima On Nov 25, 4:11 pm, Rich Hickey <[EMAIL PROTECTED]> wrote: > On Nov 24, 6:41 pm, dokondr <[EMAIL PROTECTED]> wrote: > > > Any ideas how Clojure can be used for distributed concurrent > > applications ? > > To my mind it should be possible to implement in Clojure mechanism > > similar to Erlang light-weight processes running on distributed > > 'nodes' that can be addressed by 'ports' to send them 'commands'. > > How this can be done with Clojure 'agents'? > > An obvious solution would be to create an 'agent proxy' on every node > > that will maintain a list of its agents and will forward (send ...) > > messages to other nodes, as well as receive messages addressed to its > > own agents from remote nodes and then deliver these messages to > > correct agents. > > Addressing scheme and message protocols should be developed as well. > > Other ways to provide for communication between nodes? > > There's JMS: > > http://en.wikipedia.org/wiki/Java_Message_Servicehttps://mq.dev.java.net/http://joram.objectweb.org/http://activemq.apache.org/ > > XMPP: > > http://en.wikipedia.org/wiki/Xmpphttp://www.igniterealtime.org/projects/index.jsp > > JXTA/Shoal: > > http://en.wikipedia.org/wiki/Jxtahttps://shoal.dev.java.net/ > > JINI: > > http://en.wikipedia.org/wiki/Jinihttp://incubator.apache.org/projects/river.html > > DHTs like Pastry: > > http://freepastry.org/ > > JGroups: > > http://www.jgroups.org/javagroupsnew/docs/index.html > > Terracotta: > > http://www.terracotta.org > > Jinterface: > > http://www.erlang.org/doc/apps/jinterface/ > > NetKernel: > > http://www.1060.org/ > > and more. All useful from Clojure. > > Given the diversity, sophistication, maturity, interoperability, > robustness etc of these options, it's unlikely I'm going to fiddle > around with some language-specific solution. > > That said, I have been thinking about putting a simple wrapper API > around queues that would work both locally and over something like > JMS. > > Rich --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---
