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