Hi All,

If there are no objections I shall upgrade 0.16 (latest master) to thrift 0.9.2 
and start multiplexing API’s as discussed below.

Hi Kenneth,

Sorry I missed to answer your query earlier, please see below:

> On Mar 18, 2015, at 2:38 PM, K Yoshimoto <[email protected]> wrote:
> 
> What are multiplex APIs?  

Once we write API functions in the thrift IDL, we add the implementations into 
the server side skeletons. As the API methods grow, the server implementation 
becomes unmanageable. So can break down the API into small categories. But this 
will force us to run a server for each of this API blocks. This will be very 
cumbersome for clients to figure our which service to use for which API 
methods. Thrift multi-plexing provides us a way to run multiple API services in 
one service. So the code managed in nice modular ways but the service is one 
which multiplexes into multiple implementations. 

> Does this affect how a client is written to use a thrift-generated API?

Yes there are subtle changes but they are very minor and they will be absorbed 
in the Airavata Client wrapper provided for all supported languages. I can walk 
through Airavata mock up examples below, or you might find a better example in 
the thrift python patch at - https://issues.apache.org/jira/browse/THRIFT-1914 
<https://issues.apache.org/jira/browse/THRIFT-1914>

Suresh

> On Wed, Mar 18, 2015 at 02:13:45PM -0400, Suresh Marru wrote:
>> Hi All,
>> 
>> Airavata API grew larger which causes an issue with handler classes and the 
>> service is also getting unmanageable. Latest thrift 0.9.2 release supports 
>> multiplexing for all the clients [1]. I did a quick POC to verify it indeed 
>> works well Java, PHP, CPP and Python [2] [3]. 
>> 
>> How about we start migrating thrift 0.9.2? and also in the process multiplex 
>> API’s? I will start a refactoring in Airavata-Labs repo[4] to verify if its 
>> really helps our issues. 
>> 
>> Suresh
>> [1] - https://issues.apache.org/jira/browse/THRIFT-1915 
>> <https://issues.apache.org/jira/browse/THRIFT-1915>
>> [2] - https://issues.apache.org/jira/browse/AIRAVATA-1632 
>> <https://issues.apache.org/jira/browse/AIRAVATA-1632>
>> [3] - 
>> https://github.com/apache/airavata-sandbox/tree/master/airavata-mock-multiplexed-api
>>  
>> <https://github.com/apache/airavata-sandbox/tree/master/airavata-mock-multiplexed-api>
>> [4] - https://github.com/apache/airavata-labs 
>> <https://github.com/apache/airavata-labs>
>> 

Reply via email to