On Fri, May 24, 2013 at 11:32 PM, Gerrit Binnenmars < [email protected]> wrote:
> Op 23-5-2013 11:38, [email protected] schreef: > > Hello Everyone, >> >> As said before I'm working on the transport system for the remote services >> in Celix, Sadly I haven't had time to test and compare all the message >> queue's I found during the research. I did compare ZeroMQ[1] with TCP and >> UDP. I haven't finished the report on the research but the results show >> ZeroMQ and TCP performing almost identical on Latency and Throughput. >> >> Having finished testing the time has come to implement a system in Celix. >> I would like to implement ZeroMQ as a transport service but there is a >> license conflict since ZeroMQ is licensed under LGPL v3 which is on the >> category-x[6] list. Would it be possible to add a dependency on ZeroMQ? >> > Hello Erik, > > The following site: http://www.apache.org/legal/**3party.html#** > criteriaandcategories<http://www.apache.org/legal/3party.html#criteriaandcategories> > clearly indicates that LGPL is not allowed. Apache simply does not want > that users of an > Apache project have to fulfill other license restrictions. > For clearity: glibc is LGPL not GPL. > > >> Other options to build the transport service with would be: >> -Apache ActiveMQ[2] >> -Apache Qpid[3] >> -Apache Qpid-Proton[4] >> -RabbitMQ[5] >> -TCP >> >> Apache ActiveMQ: >> Build in Java >> Openwire and Stomp clients in C >> based on AMQP 1.0 >> Bindings available for 17 languages >> >> Apache QPid: >> Build in C++ and Java >> Based on AMQP 1.0 >> Bindings available in a few languages >> >> Apache Qpid-Proton: >> Build in C and Java >> Based on AMQP 1.0 >> Bindings available in a few languages >> >> RabbitMQ: >> Build in Erlang >> Based on AMQP 0-9-1 >> Bindings for a 20+ languages >> License: MOZILLA PUBLIC LICENSE Version 1.1 [7] >> >> TCP: >> No dependency's on other systems and projects >> Reliable >> Quite fast >> >> Every system except TCP has a broker which could be useful for monitoring >> and administration of queue's. Based on what I have seen on the internet >> RabbitMQ would be the most active and stable system to use. >> >> I'm unsure which system to choose. On of the Apache projects but apart >> from Qpid-proton they all introduce a Java Broker. Qpid-proton seems to >> have little with three commiters on the github repository. RabbitMQ has a >> broker build in Erlang and doesn't use the last version of AMQP which >> might be a problem when trying to connect to a system using AMQP 1.0. >> >> TCP on the other hand is also an option. It doesn't add any dependency's. >> It might be a little more complex to set up the connections for the remote >> services but this can be solved. >> >> So to summarize: What Transport system should I implement? ZeroMQ and >> introduce a dependency and maybe a legal issue. A message queue system >> from the list above? Or build it in TCP? > > So, I think TCP is the only alternative. As soon as a plug-in system as > proposed by Alexander is realised > it might by possible to write an (example) plugin with ZeroMQ that can be > kept outside the Celix framework (outside the Apache license). I would like to see ZeroMQ as more "advanced" option and keep Mongoose (REST-like transport) as configuration-less option. So out of the box Mongoose should work and for ZeroMQ an extra library has to be compiled/installed. If ZeroMQ is possible or not is still unclear for me, is it possible to get an answer for this from one of the mentors ? > > > >> Regards, >> >> Erik Jansman >> >> 1:http://www.zeromq.org/ >> 2:http://activemq.apache.org/ >> 3:http://qpid.apache.org/ >> 4:http://qpid.apache.org/**proton/ <http://qpid.apache.org/proton/> >> 5:https://rabbitmq.com/ >> 6:http://www.apache.org/legal/**resolved.html#category-x<http://www.apache.org/legal/resolved.html#category-x> >> 7:https://rabbitmq.com/mpl.**html <https://rabbitmq.com/mpl.html> >> >> >> >
