[DRMAA-WG] IDL issues

Andre Merzky andre at merzky.net
Wed Jun 22 03:35:24 CDT 2011


2011/6/22 Daniel Gruber <dgruber at univa.com>:
>
>   - I think the following is asymmetric.  There is likely a reason,
>     but I am not sure I understand it:
>
>     - job     session: create (name, contact), open (name), close
>       (session), destroy (name)
>     - reserv. session: create (name, contact), open (name), close
>       (session), destroy (name)
>     - monit.  session: create (      contact),              close
>       (session)
>
>     From the above, it seems like create/close are pairs?  I would
>     naively expect the following
>     pairs: open/close and create/destroy, as usual - what is the
>     rationale?
>
> I don't get your point. Creation returns a new persistent XXXsession
> instance. Open allows you to re-access the persistent existing session.
> Close is for cleanup after both create and open. Destroy throws away the
> persistent information, and therefore does not demand an open session
> instance.
>
> Why not close(name), so that all ops work with name as arg?  Would be
> more symmetric.
>
> Yeah, but you make explicit that only with a valid handle (i.e. with an
> previously opened/created session) you are able to close it. The operation
> itself works on a (existing) session not on a string.
>
> My question is: In a OO language binding, wouldn't it be more natural
> to have this operation part of the Session itself? JobSesssion xy ... = ...
> JobSession.close()? Wouldn't the IDL spec now allow this (it should)?
> In case of a close("name") it definitely would not be possible.

As the session has the name as property, I think close could (and
should) very well be a member of the object, without the need for an
argument.


> Like Peter said destroying works on the name not on an existing session.
> This could speed up session cleaning in some cases.

ok.


>     Why is the Monitoring session handled differently, i.e. has no
>     name/open/destroy?
>
> Monitoring session have no persistency, so they need no name for opening,
> and no destruction.
>
> If something has a create, I would expect it to have a destroy, too.
> That might just be me, but semantically those two go together...
>
> Anyway, your explanation helps!
>
> It is a runtime object, IMHO even a singleton.

If it is a singleton which is already instantiated (e.g. by loading
the library), then it is being opened, not created?

Anyway, I begin to understand the model - much appreciated...  One
might want to make those things clearer in the spec though, as others
will likely stumble over similar questions?


Cheers, Andre.


-- 
Nothing is ever easy...


More information about the drmaa-wg mailing list