celix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gerrit Binnenmars <gerritbinnenm...@gmail.com>
Subject Re: Remote service transport system
Date Fri, 24 May 2013 21:32:11 GMT
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: 
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).

> Regards,
> Erik Jansman
> 1:http://www.zeromq.org/
> 2:http://activemq.apache.org/
> 3:http://qpid.apache.org/
> 4:http://qpid.apache.org/proton/
> 5:https://rabbitmq.com/
> 6:http://www.apache.org/legal/resolved.html#category-x
> 7:https://rabbitmq.com/mpl.html

View raw message