registration and declarations to the hub in a single atomic operation

Luigi Paioro luigi at lambrate.inaf.it
Mon Feb 16 05:02:00 PST 2009


Hi Yohann,

if I understand your point, what you are proposing is to add (in a next 
version of SAMP) a registration operation like:

map reg-info = register(map metadata, map subscriptions) [*]

right?

Cheers,

   Luigi


[*] this operation could be an overriding of the present map register() 
operation or just another operation with a different name.


Yohann Granet ha scritto:
> yep!
> 
> Thomas Boch a écrit :
>> Hi Yohann,
>>
>> I'll just reply from a standard point of view, and will let Mark reply 
>> on the JSAMP implementation details.
> of course :)
>>> I just wanted to expose my point of view concerning the way by which 
>>> JSAMP clients register them and declare their metadatas and 
>>> subscriptions.
>>
>> I think JSAMP API just follows the SAMP protocol API, where 
>> registration, declaration of callback information, declaration of 
>> metadata, and declaration of supported messages are different steps.
>> In PLASTIC, we had a single call, and we splitted it in 4 steps on 
>> purpose. A client might want to update its metadata and/or the 
>> messages it supports according to the current list of subscribed 
>> clients, or to adapt to some messages he had to process, etc.
> I understand the flexibility given by these distinct methods...
> but I think it would be nice to have the possibility to avoid 
> transitional (and, I think, almost always not wanted) states in the hub 
> where clients informations are incomplete!
> 
>>> 1) a more simple way to register a client: 1 method instead of 4 for 
>>> now.
>>>
>>> something like
>>>    hubConnection = clientProfile.registerCallableClient(this, 
>>> metadatas, subscriptions);
>>>
>>> instead of
>>>    hubConnection = clientProfile.register();
>>>    hubConnection.setCallable(this);
>>>    hubConnection.declareMetadata(metadata);                   
>>> hubConnection.declareSubscriptions(subscriptions);
>>>
>>> (and if a client needs to change its metadatas or subscriptions?... 2 
>>> solutions:
>>>    - unregister, then register again (a client with new informations 
>>> can be considered as a new client)
>>
>> I think I don't like this idea very much. First, it does not match 
>> with the agreed SAMP abstract API.
> damned!... and SAMP is frozen? :)
> is it inconceivable to create a new registration method allowing a 
> simplification in the registration-declarations operations and giving 
> more stability and security?
> for the moment the registration way is made to allow an application to 
> declare its metadatas and MTypes after the registration step... OK, 
> that's fine. Why not?... (even if I don't see a reason to do that)
> but with a "all in one" registration method this possibility is 
> conserved. All man has to do is to give a null or empty value as 
> metadatas and/or MTypes parameters. And if the need occurs to declare 
> them later (or modify them) the
> actual "declareMetadatas" and "declareMType" methods can be used (and 
> "setCallable" also...).
> like that everybody is happy.
> simplicity, security, flexibility.
> 
>> Secondly, imagine that client A is interacting with client B. If 
>> client B decides for any reason to change its metadata, it means it 
>> unregisters and registers again, and client A has no way to know that 
>> the newly registered client is actually the former client B he was 
>> interacting with.
> I agree that if applications A and B need a steady communication to do 
> their job, an identity exchange of one these application can be 
> problematic...
> 
>>
>>>    - create new "updateMetadatas(Metadatas metadatas)" and 
>>> "updateSubscriptions(Subcriptions subscriptions)" methods.
>>> ) 
>>
>> Unless I miss something, that's exactly the role of the existing 
>> declareMetadata and declareSubscriptions method !
> (yes...
> you're right!  :D
> I just talked about new methods for the case the declarations steps were 
> include in the registration operation...
> but even there it's stupid to change the name of these methods...
> sorry)
>>
>> Cheers,
>>
>> Thomas
>>
> 
> thank you Thomas for your answer
> Cheers also :)
> 
>    Yohann

-- 

Luigi Paioro

INAF - IASF Milano
Via Bassini 15, I-20133 Milano, Italy

Phone  (+39) 02 23 699 470
Fax    (+39) 02 26 660 17
Site   http://www.iasf-milano.inaf.it/luigi/



More information about the apps-samp mailing list