celix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pepijn Noltes <pepijnnol...@gmail.com>
Subject Re: Remote service transport system
Date Sun, 26 May 2013 11:04:26 GMT
On Fri, May 24, 2013 at 11:32 PM, Gerrit Binnenmars <
gerritbinnenmars@gmail.com> wrote:

> Op 23-5-2013 11:38, erik@jansman.eu 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

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>

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message