[Pharo-project] ZeroMQ support
Hi all, Wondering if anyone here is working on adding binding for ZeroMQ (http://www.zeromq.org/) to Pharo? I think this type of enterprise support is something that would greatly benefit Pharo. In one of my systems today, I use Stomp over a socket in Pharo to send and receive messages to and from ActiveMQ, and from there to my servers. This works, but is fragile, and I would love to be able to use zeromq here. I use zeromq in my Clojure based servers, but have no experience of writing bindings for C libraries in Smalltalk. I would be more than happy to help out, if such a project was started. -- blog.meta-spaces.com ~JT
On 13.07.2011 02:34, John Toohey wrote:
Hi all, Wondering if anyone here is working on adding binding for ZeroMQ (http://www.zeromq.org/) to Pharo? I think this type of enterprise support is something that would greatly benefit Pharo.
What's enterprise about ZeroMQ?
In one of my systems today, I use Stomp over a socket in Pharo to send and receive messages to and from ActiveMQ, and from there to my servers. This works, but is fragile, ...
Why? How would ZeroMQ be better?
I use zeromq in my Clojure based servers, but have no experience of writing bindings for C libraries in Smalltalk. I would be more than happy to help out, if such a project was started.
Cheers Philippe
Maybe "enterprise" is the wrong word. I have a system with multiple servers, some in Java, some in Clojure, and the Console servers developed in Seaside running on Pharo. I need to have all these servers talk to each other, and today I'm using JMS over ActiveMQ to do that. I need to use Stomp as a protocol to allow my Console servers to push data updates to the main servers, and its fragile. It could be that my implementation is wrong, and you could advise on that. What is your experience in pushing messages from Smalltalk VMs to Java and C servers? Any help would be most appreciated. (My systems supports 200 end to end transactions per seconds, with many thousand concurrent transactions. It's deployed on 16 servers in an EC2 cloud) Why would ZeroMq be better? I have 20 year experience writing network servers, and to honest, I'm not even sure where to start with an answer to that question. Again, if you could help me out here, it would be most appreciated. Perhaps, your experience in developing large scale network applications, would be insightful here. On Wed, Jul 13, 2011 at 01:05, Philippe Marschall <kustos@gmx.net> wrote:
On 13.07.2011 02:34, John Toohey wrote:
Hi all, Wondering if anyone here is working on adding binding for ZeroMQ (http://www.zeromq.org/) to Pharo? I think this type of enterprise support is something that would greatly benefit Pharo.
What's enterprise about ZeroMQ?
In one of my systems today, I use Stomp over a socket in Pharo to send and receive messages to and from ActiveMQ, and from there to my servers. This works, but is fragile, ...
Why? How would ZeroMQ be better?
I use zeromq in my Clojure based servers, but have no experience of writing bindings for C libraries in Smalltalk. I Â would be more than happy to help out, if such a project was started.
Cheers Philippe
-- ~JT
On 13.07.2011 07:21, John Toohey wrote:
Maybe "enterprise" is the wrong word. I have a system with multiple servers, some in Java, some in Clojure, and the Console servers developed in Seaside running on Pharo. I need to have all these servers talk to each other, and today I'm using JMS over ActiveMQ to do that. I need to use Stomp as a protocol to allow my Console servers to push data updates to the main servers, and its fragile.
What does to wrong? What are the problems you are seeing? Do you have trouble with the clients or the message broker?
It could be that my implementation is wrong, and you could advise on that. What is your experience in pushing messages from Smalltalk VMs to Java and C servers? Any help would be most appreciated. (My systems supports 200 end to end transactions per seconds, with many thousand concurrent transactions. It's deployed on 16 servers in an EC2 cloud)
Why would ZeroMq be better? I have 20 year experience writing network servers, and to honest, I'm not even sure where to start with an answer to that question. Again, if you could help me out here, it would be most appreciated. Perhaps, your experience in developing large scale network applications, would be insightful here.
No, sorry, I was just curious and trying to better understand your problem because normally I would associate ActiveMQ with "enterprise" and not ZeroMQ. Cheers Philippe
On 07/13/2011 07:21 AM, John Toohey wrote:
Maybe "enterprise" is the wrong word. I have a system with multiple servers, some in Java, some in Clojure, and the Console servers developed in Seaside running on Pharo. I need to have all these servers talk to each other, and today I'm using JMS over ActiveMQ to do that. I need to use Stomp as a protocol to allow my Console servers to push data updates to the main servers, and its fragile. It could be that my implementation is wrong, and you could advise on that. What is your experience in pushing messages from Smalltalk VMs to Java and C servers? Any help would be most appreciated. (My systems supports 200 end to end transactions per seconds, with many thousand concurrent transactions. It's deployed on 16 servers in an EC2 cloud)
With that level of concurrency you may want to avoid solutions based on FFI. FFI calls block the entire VM, there was a recent SqueakDBX thread discussing this. Plugin based solutions don't have this limitation but you run into issues of mapping native threads to Pharo processes. That in general makes socket based solutions preferable because they don't share these limitations. Since HTTP is my hammer and assuming you don't need message persistence and use messaging more or less for synchronous communication (maybe I misunderstood you) have you considered using HTTP and a load balancer? Cheers Philippe
Hi John I was looking at using Stomp and ActiveMQ in a future project to integrate with my Java based services, so I find it interesting that you are having implementation issues. ZeroMQ does look good and is a great alternative, have you considered using their protocol binding http://rfc.zeromq.org/spec:13. I see that the Javascript and I think Node.js version make use of this. check http://www.zeromq.org/bindings:_start Good luck and it would be great if you could report on specific issues with Stomp and ActiveMQ. I'd love to use an 'enterprise' communication layer and bind to Javaspaces, JBossCache, Apache Camel or other useful integration frameworks. Cheers Carlo On 13 Jul 2011, at 7:21 AM, John Toohey wrote: Maybe "enterprise" is the wrong word. I have a system with multiple servers, some in Java, some in Clojure, and the Console servers developed in Seaside running on Pharo. I need to have all these servers talk to each other, and today I'm using JMS over ActiveMQ to do that. I need to use Stomp as a protocol to allow my Console servers to push data updates to the main servers, and its fragile. It could be that my implementation is wrong, and you could advise on that. What is your experience in pushing messages from Smalltalk VMs to Java and C servers? Any help would be most appreciated. (My systems supports 200 end to end transactions per seconds, with many thousand concurrent transactions. It's deployed on 16 servers in an EC2 cloud) Why would ZeroMq be better? I have 20 year experience writing network servers, and to honest, I'm not even sure where to start with an answer to that question. Again, if you could help me out here, it would be most appreciated. Perhaps, your experience in developing large scale network applications, would be insightful here. On Wed, Jul 13, 2011 at 01:05, Philippe Marschall <kustos@gmx.net> wrote:
On 13.07.2011 02:34, John Toohey wrote:
Hi all, Wondering if anyone here is working on adding binding for ZeroMQ (http://www.zeromq.org/) to Pharo? I think this type of enterprise support is something that would greatly benefit Pharo.
What's enterprise about ZeroMQ?
In one of my systems today, I use Stomp over a socket in Pharo to send and receive messages to and from ActiveMQ, and from there to my servers. This works, but is fragile, ...
Why? How would ZeroMQ be better?
I use zeromq in my Clojure based servers, but have no experience of writing bindings for C libraries in Smalltalk. I would be more than happy to help out, if such a project was started.
Cheers Philippe
-- ~JT
Have you looked at <http://www.squeaksource.com/ZeroMQ/>? Perhaps it is what you are looking for. I haven't used it so I can't give you a advice if it is useful. Regards, Franz Josef Am 13.07.2011 02:34, schrieb John Toohey:
Hi all, Wondering if anyone here is working on adding binding for ZeroMQ (http://www.zeromq.org/) to Pharo? I think this type of enterprise support is something that would greatly benefit Pharo. In one of my systems today, I use Stomp over a socket in Pharo to send and receive messages to and from ActiveMQ, and from there to my servers. This works, but is fragile, and I would love to be able to use zeromq here.
I use zeromq in my Clojure based servers, but have no experience of writing bindings for C libraries in Smalltalk. I would be more than happy to help out, if such a project was started.
Thanks John let us know about what you will learn because we are really concerned about solution to support "entreprise" Stef On Jul 13, 2011, at 9:44 AM, Franz Josef Konrad wrote:
Have you looked at <http://www.squeaksource.com/ZeroMQ/>? Perhaps it is what you are looking for. I haven't used it so I can't give you a advice if it is useful.
Regards, Franz Josef
Am 13.07.2011 02:34, schrieb John Toohey:
Hi all, Wondering if anyone here is working on adding binding for ZeroMQ (http://www.zeromq.org/) to Pharo? I think this type of enterprise support is something that would greatly benefit Pharo. In one of my systems today, I use Stomp over a socket in Pharo to send and receive messages to and from ActiveMQ, and from there to my servers. This works, but is fragile, and I would love to be able to use zeromq here.
I use zeromq in my Clojure based servers, but have no experience of writing bindings for C libraries in Smalltalk. I would be more than happy to help out, if such a project was started.
participants (6)
-
Carlo -
Franz Josef Konrad -
John Toohey -
Philippe Marschall -
Philippe Marschall -
Stéphane Ducasse