On Tue, Aug 25, 2009 at 21:20, Dave Smith<[email protected]> wrote: > On Aug 25, 2009, at 5:07 PM, Shane Hathaway wrote: > >> Dave Smith wrote: >>> I already have a good marshaling method: Google Protocol Buffers. >>> Now I >>> need some good software for sending messages to and from different >>> parts >>> of the system. >> >> I mentioned Twisted. If Python is out, I think I'd use libevent, >> which >> provides something like the core of Twisted in C. >> >> http://www.monkey.org/~provos/libevent/ > > > I don't get it. How can libevent (or libev for that matter) be used to > send messages over the network to different pieces of my distributed > system? Based on the docs for libev, it just seems like an event loop, > nothing about network messaging at all that I can find. > > I'm totally sold on Protocol Buffers. They're great for serializing/ > deserializing messages, but now I need a stack of software that allows > each part of my distributed system to send messages to the other > parts, and easily do queries as well (i.e., not just send arbitrary > messages event-style, but also ask for data and receive responses like > an HTTP GET). > > I have looked at AMQP, specifically OpenAMQ, and found its ramp-up > time unacceptable and its documentation awkward. Further, it feels > like overkill for the simple style of communication that I want. I'm > looking for something that aims to achieve similar goals as AMQP, but > with a much simpler implementation. > > Yes, this question came up about a year ago, and XMPP and IRC were > considered. I never really pursued those options further because I'm > somewhat opposed to having a central "broker" (for lack of a better > word) that acts as a single point of failure, and adds complexity for > routing messages to and from the pieces of my distributed system.
I don't know if this is out of the question or not, but the GnuStep libraries for Objective-C provide some pretty handy methods of serializing, sending, and receiving data in an arbitrarily distributed manner. And Objective-C is a relatively simple superset of C, so once you compile you're pretty much good to go. I haven't ever looked at libev or libevent, but I've written a fair bit of distributed networking code in the Foundation Framework (Apple's fancy, documented version of GnuStep) and it wasn't difficult at all. -- Alex Esplin /* PLUG: http://plug.org, #utah on irc.freenode.net Unsubscribe: http://plug.org/mailman/options/plug Don't fear the penguin. */
