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
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>
>>
>>
>>
>

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