Le 10/11/2014 23:32, Sven Van Caekenberghe a écrit :
My point was that in messaging parlance a client is any party talking to the messaging broker or server. If you would be doing a server implementation, that would mean you are rewriting RabbitMQ, not impossible but quite a challenge ;-)
RabbitMQ is certainly complex, but mostly because it deals with several protocols (which is a tedious part) and has tons of features, but do you know how much lines of code it has ? The server has less than *32k* lines of code! and including lot of comments and imports (in the "old" 2.4 version I have looked at by curiosity), ridiculously small in comparison to other java brokers, mainly because erlang is a very expressive language (due to its functional way of life) and kind features (native messages and processes). Pharo has an advantage here too. A STOMP server seems to be a good starting point: a small protocol, a small server. You did a good part (if not all) of the tricky stuff (frame encoding/decoding, negociation etc), I think it should not be difficult to add a tcp server and some in-memory queuing here (SharedQueues probably). As Stef said once, start small. At least I will try :) The goal is not to break the latest RabbitMQ benchamrks done by pivotal and google, IMHO lost in advance :). But how does pharo goes into some real world enterprise class application ? I am extremely curious about this kind of performance comparison. Aren't you interested ?
Any self-contained (apart from the MQ itself) demo will always contain a producer and a consumer, or not much will happen, right ? Often you organise functionality in a client and server part.
Yes, I saw your examples and they where very useful. I started an 'hello world' messages producer and a consumer for thoses 'hello world ' messages. Both clients of the RabbitMQ broker (server) (is it better here ? ;) )
BTW, I am happy that you got up and running on your own. Your previous experience probably helped. Keep the feedback coming.
about my experience, yes, it helped, not like the rabbit setup on windows which is a mess. I work in computer area from now nearly 30 years, starting with assembly in 82, then lot of C, C++, java, c# and other languages, on various systems (unix like most of the time then windows) always with databases, servers and clients, some MQ and http servers and EAI developments I think I know what a client is and what a server is ... or I should stop programming and do something else :)