You are viewing a plain text version of this content. The canonical link for it is here.
Posted to architecture@airavata.apache.org by Marlon Pierce <ma...@iu.edu> on 2014/07/02 20:46:54 UTC

Thrift and HTTP

I'm curious if anyone has looked into running Thrift over HTTP.  We are 
using TThreadPoolServer for the server and TServerSocket for transport 
in AiravataAPIServer.java, but we're being encouraged to look into HTTP 
bindings for publicly distributed SDKs.

Using HTTP would allow us to put the server behind an Apache HTTPD 
server (for example) and to take advantage of lots of existing protocol 
implementations.

Marlon


Re: Thrift and HTTP

Posted by Jijoe Vurghese <ji...@gmail.com>.
Eran and I had a discussion on this at Wize Commerce early last year for a similar scenario, i.e., to expose some internal service APIs to public Internet. This use case went away and we instead exposed the Thrift APIs directly for the time being, but isolated them on separate service machines.

http://people.apache.org/~thejas/thrift-0.9/javadoc/org/apache/thrift/transport/THttpClient.html is one way to redirect calls to Thrift APIs via an HTTP server. One detail to look into is what,if any. features of Thrift protocol are lost by adding the HTTP indirection layer.  

FWIW, there is a Quora question open on this topic - http://www.quora.com/Evernote/How-did-Evernote-secure-their-public-facing-Thrift-API as it applies to Evernote.  

—  
Jijoe



On Jul 3, 2014, 5:42:50, Marlon Pierce <ma...@iu.edu> wrote:  
All of them. By public, I don't mean unauthenticated but public in the
Evernote SDK sense.

Marlon  

On 7/2/14, 10:56 PM, Supun Kamburugamuva wrote:
> Hi Marlon,
>
> Could you please give some examples of Airavata APIs that needs to be
> public?
>
> Thanks,
> Supun..
>
>
> On Wed, Jul 2, 2014 at 2:46 PM, Marlon Pierce <mailto:marpierc@iu.edu  




On Jul 3, 2014, 5:42:50, Marlon Pierce <ma...@iu.edu> wrote:  
All of them. By public, I don't mean unauthenticated but public in the
Evernote SDK sense.

Marlon  




On Jul 3, 2014, 5:42:50, Marlon Pierce <ma...@iu.edu> wrote:  
All of them. By public, I don't mean unauthenticated but public in the
Evernote SDK sense.

Marlon  




On Jul 3, 2014, 5:42:50, Marlon Pierce <ma...@iu.edu> wrote:  
All of them. By public, I don't mean unauthenticated but public in the
Evernote SDK sense.

Marlon  




On Jul 3, 2014, 5:42:50, Marlon Pierce <ma...@iu.edu> wrote:  
All of them. By public, I don't mean unauthenticated but public in the
Evernote SDK sense.

Marlon  




On Jul 3, 2014, 5:42:50, Marlon Pierce <ma...@iu.edu> wrote:  
All of them. By public, I don't mean unauthenticated but public in the
Evernote SDK sense.

Marlon  


Re: Thrift and HTTP

Posted by Jijoe Vurghese <ji...@gmail.com>.
Eran and I had a discussion on this at Wize Commerce early last year for a similar scenario, i.e., to expose some internal service APIs to public Internet. This use case went away and we instead exposed the Thrift APIs directly for the time being, but isolated them on separate service machines.

http://people.apache.org/~thejas/thrift-0.9/javadoc/org/apache/thrift/transport/THttpClient.html is one way to redirect calls to Thrift APIs via an HTTP server. One detail to look into is what,if any. features of Thrift protocol are lost by adding the HTTP indirection layer.  

FWIW, there is a Quora question open on this topic - http://www.quora.com/Evernote/How-did-Evernote-secure-their-public-facing-Thrift-API as it applies to Evernote.  

—  
Jijoe



On Jul 3, 2014, 5:42:50, Marlon Pierce <ma...@iu.edu> wrote:  
All of them. By public, I don't mean unauthenticated but public in the
Evernote SDK sense.

Marlon  

On 7/2/14, 10:56 PM, Supun Kamburugamuva wrote:
> Hi Marlon,
>
> Could you please give some examples of Airavata APIs that needs to be
> public?
>
> Thanks,
> Supun..
>
>
> On Wed, Jul 2, 2014 at 2:46 PM, Marlon Pierce <mailto:marpierc@iu.edu  




On Jul 3, 2014, 5:42:50, Marlon Pierce <ma...@iu.edu> wrote:  
All of them. By public, I don't mean unauthenticated but public in the
Evernote SDK sense.

Marlon  




On Jul 3, 2014, 5:42:50, Marlon Pierce <ma...@iu.edu> wrote:  
All of them. By public, I don't mean unauthenticated but public in the
Evernote SDK sense.

Marlon  




On Jul 3, 2014, 5:42:50, Marlon Pierce <ma...@iu.edu> wrote:  
All of them. By public, I don't mean unauthenticated but public in the
Evernote SDK sense.

Marlon  




On Jul 3, 2014, 5:42:50, Marlon Pierce <ma...@iu.edu> wrote:  
All of them. By public, I don't mean unauthenticated but public in the
Evernote SDK sense.

Marlon  




On Jul 3, 2014, 5:42:50, Marlon Pierce <ma...@iu.edu> wrote:  
All of them. By public, I don't mean unauthenticated but public in the
Evernote SDK sense.

Marlon  


Re: Thrift and HTTP

Posted by Marlon Pierce <ma...@iu.edu>.
All of them.  By public, I don't mean unauthenticated but public in the 
Evernote SDK sense.

Marlon

On 7/2/14, 10:56 PM, Supun Kamburugamuva wrote:
> Hi Marlon,
>
> Could you please give some examples of Airavata APIs that needs to be
> public?
>
> Thanks,
> Supun..
>
>
> On Wed, Jul 2, 2014 at 2:46 PM, Marlon Pierce <ma...@iu.edu> wrote:
>
>> I'm curious if anyone has looked into running Thrift over HTTP.  We are
>> using TThreadPoolServer for the server and TServerSocket for transport in
>> AiravataAPIServer.java, but we're being encouraged to look into HTTP
>> bindings for publicly distributed SDKs.
>>
>> Using HTTP would allow us to put the server behind an Apache HTTPD server
>> (for example) and to take advantage of lots of existing protocol
>> implementations.
>>
>> Marlon
>>
>>
>


Re: Thrift and HTTP

Posted by Marlon Pierce <ma...@iu.edu>.
All of them.  By public, I don't mean unauthenticated but public in the 
Evernote SDK sense.

Marlon

On 7/2/14, 10:56 PM, Supun Kamburugamuva wrote:
> Hi Marlon,
>
> Could you please give some examples of Airavata APIs that needs to be
> public?
>
> Thanks,
> Supun..
>
>
> On Wed, Jul 2, 2014 at 2:46 PM, Marlon Pierce <ma...@iu.edu> wrote:
>
>> I'm curious if anyone has looked into running Thrift over HTTP.  We are
>> using TThreadPoolServer for the server and TServerSocket for transport in
>> AiravataAPIServer.java, but we're being encouraged to look into HTTP
>> bindings for publicly distributed SDKs.
>>
>> Using HTTP would allow us to put the server behind an Apache HTTPD server
>> (for example) and to take advantage of lots of existing protocol
>> implementations.
>>
>> Marlon
>>
>>
>


Re: Thrift and HTTP

Posted by Supun Kamburugamuva <su...@gmail.com>.
Hi Marlon,

Could you please give some examples of Airavata APIs that needs to be
public?

Thanks,
Supun..


On Wed, Jul 2, 2014 at 2:46 PM, Marlon Pierce <ma...@iu.edu> wrote:

> I'm curious if anyone has looked into running Thrift over HTTP.  We are
> using TThreadPoolServer for the server and TServerSocket for transport in
> AiravataAPIServer.java, but we're being encouraged to look into HTTP
> bindings for publicly distributed SDKs.
>
> Using HTTP would allow us to put the server behind an Apache HTTPD server
> (for example) and to take advantage of lots of existing protocol
> implementations.
>
> Marlon
>
>


-- 
Supun Kamburugamuva
Member, Apache Software Foundation; http://www.apache.org
E-mail: supun06@gmail.com;  Mobile: +1 812 369 6762
Blog: http://supunk.blogspot.com

Re: Thrift and HTTP

Posted by Danushka Menikkumbura <da...@gmail.com>.
My understanding is that Thrift over HTTP hinders some of the strengths in
native Thrift. Simplicity, ability to support encryption, compression, NIO
and persistent connections just to name a few. But yes, being able to have
the server behind HTTPD is on the plus side.

Danushka


On Thu, Jul 3, 2014 at 12:16 AM, Marlon Pierce <ma...@iu.edu> wrote:

> I'm curious if anyone has looked into running Thrift over HTTP.  We are
> using TThreadPoolServer for the server and TServerSocket for transport in
> AiravataAPIServer.java, but we're being encouraged to look into HTTP
> bindings for publicly distributed SDKs.
>
> Using HTTP would allow us to put the server behind an Apache HTTPD server
> (for example) and to take advantage of lots of existing protocol
> implementations.
>
> Marlon
>
>

Re: Thrift and HTTP

Posted by Danushka Menikkumbura <da...@gmail.com>.
My understanding is that Thrift over HTTP hinders some of the strengths in
native Thrift. Simplicity, ability to support encryption, compression, NIO
and persistent connections just to name a few. But yes, being able to have
the server behind HTTPD is on the plus side.

Danushka


On Thu, Jul 3, 2014 at 12:16 AM, Marlon Pierce <ma...@iu.edu> wrote:

> I'm curious if anyone has looked into running Thrift over HTTP.  We are
> using TThreadPoolServer for the server and TServerSocket for transport in
> AiravataAPIServer.java, but we're being encouraged to look into HTTP
> bindings for publicly distributed SDKs.
>
> Using HTTP would allow us to put the server behind an Apache HTTPD server
> (for example) and to take advantage of lots of existing protocol
> implementations.
>
> Marlon
>
>

Re: Thrift and HTTP

Posted by Supun Kamburugamuva <su...@gmail.com>.
Hi Marlon,

Could you please give some examples of Airavata APIs that needs to be
public?

Thanks,
Supun..


On Wed, Jul 2, 2014 at 2:46 PM, Marlon Pierce <ma...@iu.edu> wrote:

> I'm curious if anyone has looked into running Thrift over HTTP.  We are
> using TThreadPoolServer for the server and TServerSocket for transport in
> AiravataAPIServer.java, but we're being encouraged to look into HTTP
> bindings for publicly distributed SDKs.
>
> Using HTTP would allow us to put the server behind an Apache HTTPD server
> (for example) and to take advantage of lots of existing protocol
> implementations.
>
> Marlon
>
>


-- 
Supun Kamburugamuva
Member, Apache Software Foundation; http://www.apache.org
E-mail: supun06@gmail.com;  Mobile: +1 812 369 6762
Blog: http://supunk.blogspot.com