[saga-core-wg] Grid RPC data management & SAGA

Gaël Le Mahec gael.le.mahec at ens-lyon.fr
Tue Sep 22 04:12:58 CDT 2009


Hi Andre,

Le 3 sept. 09 à 21:50, Andre Merzky a écrit :

> Hi Gaël,
>
> interesting points!  I'd say that the change in semantics
> warrant a separate rpc_data class.
>
> But I ahve a question, to help me understand: so far I had
> the impression that rpc calls would, in the new model, also
> accept a mixture of the old style parameters and the new
> style data handles - is that the case?

Yes it is the case. We tried to preserve a maximum backward  
compatibility and in the ideal implementation the Grid RPC call should  
accept old style parameters as well as data handles.

> If yes, then we would need to change the parameters for the
> rpc.call() method in a way that both are accepted.

A possible solution could be to modify the current  
saga::rpc::parameter class to be an abstract class which is "derived"  
into two different subclasses: the first one encapsulates a  
saga::buffer and is similar to the current saga::rpc::parameter and  
the second one implements the new data handle. But maybe there are  
other ways to proceed (using an interface ?) avoiding to change too  
deeply the current rpc::parameter class.

> If that is not the case, and you can cleanly distingish both use
> cases, I don't see a problem with a second rpc.call() method
> which would overload the original one with a different
> signature.

If there are no fundamental objections to modify the rpc::parameter I  
think it is better to propose only one call() method which manages the  
two different parameters.

Regards,

Gaël.

>
> My $0.02, Andre.
>
>
> Quoting [Ga?l Le Mahec] (Sep 02 2009):
>>
>> Hello,
>>
>> 	As we propose at the OGF'25 (Catania), we worked on the Grid RPC
>> 	data  management API integration into the SAGA API (see joined  
>> documents).
>> We tried to adopt the SAGA Look-&-Feel and we propose two different
>> ways for the integration :
>>
>> - Extending the original saga::rpc::parameter class and adding the
>> missing classes/enumerations for a proper integration.
>> - Adding a saga::rpc::rpc_data class to the API. This class extends
>> the main saga::rpc::rpc overloading the call method.
>>
>> These two different approaches have advantages and disadvantages.
>> Using a unique saga::rpc::rpc class implies to modify the original
>> class to respect the SAGA Look-&-Feel. For example, the attributes of
>> the orginal saga::rpc::parameter class do not make sense for the sub-
>> class saga::rpc::parameter_data. Moreover, the original
>> saga::rpc::parameter inherits from the saga::buffer class, that  
>> should
>> not be used for the parameter_data class (change in the semantic).
>>
>> The second approach is more easily implementable but the API then
>> contains two different methods to call a service.
>>
>> Maybe there is a better way to extend the current SAGA RPC avoiding  
>> to
>> change the parameter class and the two different methods. Please feel
>> free to send any comments about these propositions.
>>
>> Best regards,
>>
>> G. Le Mahec for the GRAAL team.
> -- 
> Nothing is ever easy.



More information about the saga-core-wg mailing list