stratos-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Lakmal Warusawithana <lak...@wso2.com>
Subject Re: Messaging protocol with Stratos python cartridge agent
Date Thu, 04 Sep 2014 05:33:34 GMT
IMHO, we should do this, I know it is costly but need to correct without
going further. I can help on finalized the event schema structure.


On Thu, Sep 4, 2014 at 10:18 AM, Gayan Gunarathne <gayang@wso2.com> wrote:

>
> Thanks Paul.
>
> Based on the above discussion, I guess we need to change the the existing
> Stratos messaging model to support the Pub/Sub model and MQTT
> protocol.AFAIU following areas we need to modify in the Stratos messaging
> model.
>
> Step 1 :
> We need to remove the header based message distinguished.
> AFAIU there will be major changes have to be done for the
> "org.apache.stratos.messaging" component.
> Also we need to change the cloud controller, load balancer and cartridge
> agent accordingly.Also AFAIU Load balancer->CEP->autoscaler message
> transition will not be affected by this as there are no message distinguish
> based on the headers AFAIK. Please correct me if I am wrong here.
>
> Step 2 :
> Need to reorganized our structure of events schema.(To support topic
> hierarchy as Paul suggested)
> AFAIU currently we don't have such hierarchical structure in our schema.So
> we need to reorganized and normalized schema further to support the schema
> hierarchy. WDYT?
>
> Further , I have done some code level testing with the MQTT protocol in
> both java and python with the topic hierarchy.Pleas find the code samples
> from here.
> https://github.com/gayangunarathne/MQTT-Pub-Sub
>
> But to integrate this with the current messaging setup ,I think we need to
> carry above two steps first.
>
> Please share your thoughts on this.
>
>
> Thanks,
> Gayan
>
>
>
>
> On Tue, Sep 2, 2014 at 4:16 PM, Paul Fremantle <paul@wso2.com> wrote:
>
>> Gayan
>>
>> Normally you would structure your topic hierarchy to be capture the
>> structure of events and the schema
>>
>> e.g.
>> topic
>> /metrics/datacentre1/system1/cpu
>> message
>> { json format for cpu data }
>>
>> Paul
>>
>>
>> On 2 September 2014 11:40, Gayan Gunarathne <gayang@wso2.com> wrote:
>>
>>> Hi Paul,
>>>
>>> AFAIU with the existing message design and with your points with the
>>> Pub/Sub ,+1 for improve our Startos messaging model as far as we can as it
>>> will improve the performance as well as standards.As far as I understood
>>> the current messaging model , we can thinking about following two
>>> suggestions.
>>>
>>> *Suggestion 1 - *
>>> We can used separate topic for the every event type.But AFAIN there are
>>> around 30 events(same schema or shape) around in the current scenario
>>> and I supposed it is growing as well.Please correct me if I am wrong
>>> here.So we have to maintain separate topics for the each events and then
>>> easily we can distinguished the messages based on the topic.
>>>
>>> *Suggestion 2 -*
>>> With the current implementation we used the "event-class-name" value to
>>> distinguished the messages.IMO also We don't need to distinguished the
>>> messages based on the header and we can easily include that in the message
>>> body.But still I guess there will be a overhead is that every time we need
>>> to deserialize  the JSON message and see what is the message class name
>>> is.WDYT?
>>>
>>> Please share your thoughts on this and also it is really appreciate if
>>> you can recommend any other suggestion in your mind to improve the current
>>> messaging model.
>>>
>>>
>>> Thanks,
>>> Gayan
>>>
>>>
>>>
>>> On Tue, Sep 2, 2014 at 2:24 PM, Paul Fremantle <paul@wso2.com> wrote:
>>>
>>>> Gayan
>>>>
>>>> I don't understand this. I think this is a mistake on how to use
>>>> Pub/Sub.
>>>>
>>>> The headers timestamp and expiry should probably be in the message (not
>>>> sure)
>>>> The destination is part of the pub/sub network
>>>> The event-class should be implicitly based on the topic. In other words
>>>> in a pub/sub network, every message in a specific topic should have the
>>>> same schema or shape. You shouldn't need some extra header to know which
>>>> schema it is.
>>>>
>>>> Paul
>>>>
>>>>
>>>>
>>>> On 2 September 2014 09:44, Gayan Gunarathne <gayang@wso2.com> wrote:
>>>>
>>>>> Hi Paul,
>>>>>
>>>>> Please find the example of existing message header and body.AFAIK
>>>>> "event-class-name" is the header value used for distinguish the messages.
>>>>>
>>>>> header: key expires , value 0
>>>>> header: key timestamp , value 1409646637558
>>>>> header: key destination , value /topic/topology
>>>>> header: key persistent , value true
>>>>> header: key priority , value 4
>>>>> header: key event-class-name , value
>>>>> org.apache.stratos.messaging.event.topology.CompleteTopologyEvent
>>>>>
>>>>> Message body:
>>>>>
>>>>>  {"topology":{"serviceMap":{"gateway":{"serviceName":"gateway","serviceType":"SingleTenant","clusterIdClusterMap":{"gatewaygateway.am.wso2.com.dom":{"serviceName":"gateway","clusterId":"gatewaygateway.am.wso2.com.dom","autoscalePolicyName":"auto-scl-pol1","deploymentPolicyName":"
>>>>> dep-pol1","hostNames":["foo.org"],"tenantRange":"1-*","isLbCluster":false,"memberMap":{"gatewaygateway.am.wso2.com.dom-member-2":{"serviceName":"gateway","clusterId":"gatewaygateway.am.wso2.com.dom","networkPartitionId":"network-partition1","partitionId":"cloud-partition1","memberId":"gatewaygateway.am.wso2.com.dom-member-2","portMap":{"9080":{"protocol":"http","value":8080,"proxy":9080}},"memberPublicIp":"127.0.0.1
>>>>> public","status":"Activated","memberIp":"127.0.0.1
>>>>> private","properties":{"mykey1xxxxxxxxx":"myvalweccccccccccccccc"}},"gatewaygateway.am.wso2.com.dom-member-1":{"serviceName":"gateway","clusterId":"gatewaygateway.am.wso2.com.dom","networkPartitionId":"network-partition1","partitionId":"cloud-partition1","memberId":"gatewaygateway.am.wso2.com.dom-member-1","portMap":{"9080":{"protocol":"http","value":8080,"proxy":9080}},"memberPublicIp":"127.0.0.1
>>>>> public","status":"Activated","memberIp":"127.0.0.1
>>>>> private","properties":{"mykey1xxxxxxxxx":"myvalweccccccccccccccc"}},"gatewaygateway.am.wso2.com.dom5863cf8d-2746-4be1-91e9-da98c2bcb5a9":{"serviceName":"gateway","clusterId":"gatewaygateway.am.wso2.com.dom","networkPartitionId":"network-partition1","partitionId":"cloud-partition1","memberId":"gatewaygateway.am.wso2.com.dom5863cf8d-2746-4be1-91e9-da98c2bcb5a9","portMap":{},"memberPublicIp":"public
>>>>> IP","memberIp":"private
>>>>> IP"},"lb-member-id-1":{"serviceName":"lb","clusterId":"lbisuruh.lk.domain","networkPartitionId":"network-partition1","partitionId":"cloud-partition1","memberId":"lb-member-id-1","portMap":{},"memberPublicIp":"public
>>>>> IP of apistore","memberIp":"private IP of
>>>>> apistore"}},"properties":{"mykey1weeee":"myvalweeeeeeeee1","mykey1tttttttt":"myvalweetttttttttttt1"}}},"portMap":{"9080":{"protocol":"http","value":8080,"proxy":9080}},"properties":{"mykey1weeee":"myvalweeeeeeeee1","mykey1tttttttt":"myvalweetttttttttttt1"}},"apistore":{"serviceName":"apistore","serviceType":"SingleTenant","clusterIdClusterMap":{"apistorestore.am.wso2.com.doma":{"serviceName":"apistore","clusterId":"apistorestore.am.wso2.com.doma","autoscalePolicyName":"auto-scl-pol1","deploymentPolicyName":"
>>>>> dep-pol1","hostNames":["foo.org"],"tenantRange":"1-*","isLbCluster":false,"memberMap":{"apistorestore.am.wso2.com.doma298e2959-a3b4-45a0-a11f-7671606158ed":{"serviceName":"apistore","clusterId":"apistorestore.am.wso2.com.doma","networkPartitionId":"network-partition1","partitionId":"cloud-partition1","memberId":"apistorestore.am.wso2.com.doma298e2959-a3b4-45a0-a11f-7671606158ed","portMap":{},"memberPublicIp":"pub
>>>>> ip","status":"Activated","memberIp":"ip","lbClusterId":"lbmongolb594224131.mongolb.dom"}}}},"portMap":{"9080":{"protocol":"http","value":8080,"proxy":9080}}},"lb":{"serviceName":"lb","serviceType":"SingleTenant","clusterIdClusterMap":{"lbisuruh.lk.domain":{"serviceName":"lb","clusterId":"lbisuruh.lk.domain","autoscalePolicyName":"auto-scl-pol1","deploymentPolicyName":"
>>>>> dep-pol1","hostNames":["foo.org
>>>>> "],"tenantRange":"1-*","isLbCluster":false,"memberMap":{}}},"portMap":{"9080":{"protocol":"http","value":8080,"proxy":9080}}}},"initialized":false}}
>>>>>
>>>>>
>>>>> Thanks,
>>>>> Gayan
>>>>>
>>>>>
>>>>>
>>>>> On Tue, Sep 2, 2014 at 1:49 PM, Paul Fremantle <paul@wso2.com>
wrote:
>>>>>
>>>>>> Can you post an example of the headers and body?
>>>>>>
>>>>>> Paul
>>>>>>
>>>>>>
>>>>>> On 2 September 2014 09:17, Gayan Gunarathne <gayang@wso2.com>
wrote:
>>>>>>
>>>>>>> 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
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> 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
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> 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
>>>
>>>
>>
>>
>>
>> --
>> 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
>
>



-- 
Lakmal Warusawithana
Vice President, Apache Stratos
Director - Cloud Architecture; WSO2 Inc.
Mobile : +94714289692
Blog : http://lakmalsview.blogspot.com/

Mime
View raw message