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 08:17:20 GMT
Hi Paul,

Currently we have existing java based message publisher with the headers.
Here we try to use those published messages with the python client. If we
use JSON structured message with  headers enclosed we have to change all
other current implementations as well. AFAIK We will distinguished the
messages with their header value.So my point is if we used this sort of
JSON structure for messages, we need to change all the current messaging
model.

OTOH with the Stomp protocol with python client we were able to get those
header values and used those messages as it is.

Thanks,
Gayan


On Tue, Sep 2, 2014 at 1:04 PM, Paul Fremantle <paul@wso2.com> wrote:

> What headers do you need to pass?
>
> The way of doing headers with MQTT is to use a structured message (e.g.
> JSON) and put some headers into the JSON.
>
> Paul
>
>
> On 2 September 2014 07:58, Gayan Gunarathne <gayang@wso2.com> wrote:
>
>>
>> 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
>>
>>
>
>
>
> --
> 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

Mime
View raw message