stratos-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gayan Gunarathne <gay...@wso2.com>
Subject Re: Messaging protocol with Stratos python cartridge agent
Date Tue, 02 Sep 2014 06:58:00 GMT
We did some analysis regarding the MQTT protocol as well.Following are our
findings regarding the MQTT.

MQTT is low bandwidth consumption messaging protocol which supports pub/sub
protocol with the following limitations.

   - It has fixed header (2 bytes) . Specifications mentioning that it can
   be extended.But AFAIU clients[1] didn't support for this header extension.
   We have checked the MQTT with the messages published with headers and we
   didn't receive the header on those.Only receive the message body.
   - The payload size for a MQTT message is 256MB.I guess design point for
   MQTT usage is targeted at more constrained devices.[3]. MQTT is better at a
   high volume of low size messages.
   - It is supports only topic.This will not be a issue currently in our
   scenario as we used only topic currently AFAIK.[4]


I guess it build with above limitations and it is very good choice for the
mobile and small application as it is very lightweight and low power.[5]
WDYT?

Please share your thoughts on this.

[1] https://pypi.python.org/pypi/paho-mqtt
[2[ https://github.com/iwanbk/nyamuk
[3] http://stephendnicholas.com/archives/1217
[4] http://www.mqtechconference.com/sessions_v2013/MQTC_v2013_MQTT.pdf
[5]
http://blogs.vmware.com/vfabric/2013/02/choosing-your-messaging-protocol-amqp-mqtt-or-stomp.html


Thanks,
Gayan


On Mon, Sep 1, 2014 at 4:32 PM, Gayan Gunarathne <gayang@wso2.com> wrote:

> Thanks Paul.
>
> We will check on this paho-mgtt python library as well.
>
> Thanks,
> Gayan
>
>
>
>
> On Mon, Sep 1, 2014 at 4:17 PM, Paul Fremantle <paul@wso2.com> wrote:
>
>> Python has excellent pure python MQTT support.
>>
>> > pip install paho-mqtt
>>
>> https://pypi.python.org/pypi/paho-mqtt
>>
>> Paul
>>
>>
>> On 1 September 2014 11:40, Gayan Gunarathne <gayang@wso2.com> wrote:
>>
>>> Hi Paul,
>>>
>>> Here we try to connect the our existing Apache ActiveMQ with the pure
>>> python.(We try to replace our java cartridge agent with the python as
>>> after that we can remove the java dependency from the cartridge itself).
>>>
>>> In the initial research we didn't notice such a pure python libraries
>>> with the MQTT  which can connect with the ActiveMQ. Also with the initial
>>> reading I guess they are recommend it for the mobile applications as its
>>> low bandwidth consumption.Also I am noticed lot of web socket based
>>> applications are developed through MQTT.
>>>
>>> Thanks,
>>> Gayan
>>>
>>>
>>> On Mon, Sep 1, 2014 at 3:42 PM, Paul Fremantle <paul@wso2.com> wrote:
>>>
>>>> Have you looked at mqtt?
>>>>
>>>> Paul
>>>> On 1 Sep 2014 12:10, "Gayan Gunarathne" <gayang@wso2.com> wrote:
>>>>
>>>>>
>>>>> Hi All,
>>>>>
>>>>> As per our initial research on the python based messaging
>>>>> implementation of python cartridge agent and discussion[1] we can summarize
>>>>> our findings as following.
>>>>>
>>>>> *1.AMQP*
>>>>>
>>>>> Apache ActiveMQ used the AMQP 1.0 protocol. We found C based client
>>>>> library (proton) [2] which can be used with python.
>>>>> But it is a platform dependent library and every time we need to
>>>>> install the libraries based on the architecture and OS version.IMO this
>>>>> will be difficult us to manage as we need to install the libraries based
on
>>>>> the platform.
>>>>>
>>>>> Other python libraries(txAMQP ,pika etc) supports AMQP 0.9 which
>>>>> fails to connect with the ActiveMQ.
>>>>>
>>>>>
>>>>> *2.STOMP*
>>>>>
>>>>> We can connect to the ActiveMQ with the STOMP protocol by using the
>>>>> STOMP python client library[3].IMO we can used STOMP with ActiveMQ without
>>>>> worry about the platform based library installation.By considering our
>>>>> scope of the cartridge agent I think it is better to have a platform
>>>>> independence cartridge as far as we can. Then, IMO STOMP based messaging
>>>>> queue implementation  will be more manageable when we increase our number
>>>>> of platform supported.
>>>>> WDYT?
>>>>>
>>>>> When comparing the performance of theses two protocols it looks like
>>>>> there are no such huge difference[4].I guess the performance also tightly
>>>>> coupled with the message broker you are using as well.OTOH Apache ActiveMQ
>>>>> recommended way also to used the STOMP with the python[5].
>>>>>
>>>>>
>>>>> Please share your thoughts on this.
>>>>>
>>>>> [1] Stratos Python Cartridge Agent
>>>>> [2] https://github.com/apache/qpid-proton
>>>>> [3] https://github.com/jasonrbriggs/stomp.py
>>>>> [4]
>>>>> http://blogs.vmware.com/vfabric/2013/02/choosing-your-messaging-protocol-amqp-mqtt-or-stomp.html
>>>>> [5] http://activemq.apache.org/python.html
>>>>>
>>>>>
>>>>> Thanks,
>>>>> Gayan
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>>
>>>>> Gayan Gunarathne
>>>>> Technical Lead
>>>>> WSO2 Inc. (http://wso2.com)
>>>>> email  : gayang@wso2.com  | mobile : +94 766819985
>>>>>
>>>>>
>>>>
>>>
>>>
>>> --
>>> Best Regards,
>>>
>>> Gayan Gunarathne
>>> Technical Lead
>>> WSO2 Inc. (http://wso2.com)
>>>  email  : gayang@wso2.com  | mobile : +94 766819985
>>>
>>>
>>
>>
>>
>> --
>> Paul Fremantle
>> CTO and Co-Founder, WSO2
>> OASIS WS-RX TC Co-chair, Apache Member
>>
>> UK: +44 207 096 0336
>>
>> blog: http://pzf.fremantle.org
>> twitter.com/pzfreo
>> paul@wso2.com
>>
>> wso2.com Lean Enterprise Middleware
>>
>> Disclaimer: This communication may contain privileged or other
>> confidential information and is intended exclusively for the addressee/s.
>> If you are not the intended recipient/s, or believe that you may have
>> received this communication in error, please reply to the sender indicating
>> that fact and delete the copy you received and in addition, you should not
>> print, copy, retransmit, disseminate, or otherwise use the information
>> contained in this communication. Internet communications cannot be
>> guaranteed to be timely, secure, error or virus-free. The sender does not
>> accept liability for any errors or omissions.
>>
>
>
>
> --
> Best Regards,
>
> Gayan Gunarathne
> Technical Lead
> WSO2 Inc. (http://wso2.com)
> email  : gayang@wso2.com  | mobile : +94 766819985
>
>



-- 
Best Regards,

Gayan Gunarathne
Technical Lead
WSO2 Inc. (http://wso2.com)
email  : gayang@wso2.com  | mobile : +94 766819985

Mime
View raw message