[SAGA-RG] Service Discovery

Andre Merzky andre at merzky.net
Fri Apr 13 11:32:53 CDT 2007


Dear Steve, 

thanks for sharing the document draft!  I do have quite a
number of comments, so would like to emphasize that I do
actually like the document, very much so, both in scope and
approach, and thus hope you won't take the comments as
criticism - they aren't :-)

I think Shantenu plans a phone call for next Wednesday, in
particular also to discuss the document.  Would that work
for you?


Comments:

  - it would be good to tie the API package closer to the
    other SAGA packages.  In particular, it would be very
    good if the url returned by service.get_url() would
    explicitely be formed so that it can be used for the
    construction of saga::job_service, saga::directory,
    saga::rpc instance etc.  

  - service should be an interface, not a class.  A language
    binding (e.g. for Java) might render that as interface,
    but in the langauge independend specs we agreed to model
    the functional API packages as classes.  Unless I am
    missing some point here?

  - we do have an attribute interface (doh! ;-) in the SAGA
    core API spec.  I think it would be best to use that
    interface for the service interface/class.

  - why is get_attributes on discoverer, but get_values on
    service?  That seems inconsistent?

  - is it possible to tighten the definition of possible
    query strings?  For example, the current spec would
    allow to query with the service filter for

      - type = "ftp"
      - type = "gsiftp"
      - type = "gridftp"
      - type = "remote data"

    How does the end user know what to use?  Does Glue help
    here (please excuse my ignorance about Glue...)

  - I am still worried that SAGA uses regular expressions in
    one place, wildcards in other places, and now SQL, too.
    Not that I know a better approach, or even solution, but
    we should keep that problem in mind.  I think your
    statement "uses SQL 92 syntax as if it were part of a
    WHERE clause" is good: that is something which has a
    good chance to be reusable by other SQL related
    packages, should they emerge.

  - I am somewhat confused about the difference between keys
    and attributes in the service interface/class...  What
    is the difference, really?  Do you have an example?

  - Is it actually possible to tighten the format of the VO
    string, e.g. is there some commonly agreed upon format?

  - I think service.get_vo_names should be changed into an
    attribute, too:  service.get_attribute ("vo_names").
    Does that make sense?



Quoting [Fisher, SM (Steve)] (Apr 05 2007):
> 
> Hi,
> 
> I attach a first draft of the proposed service discovery SAGA API
> extension following very closely my presentation at the last GGF. Once I
> have write access to CVS I will check the source files in.

Ouch, I think I forgot to take care of this.  My apologies!
I will be offline over the next week.  Hartmut, Shantenu,
could you possibly take care of an CVS account at CCT?

Again, my apologies...


> We have a prototpye implementation which does not make use of a proper
> adapter mechanism yet - however we plan to use the SAGA adapter style
> for the C++. The C++ prototpye is almost complete for the BDII (LDAP)
> information system and the R-GMA one is not far behind. The performance
> is good - we can show it at Manchester.
> 
> We would appreciate any comments - especially identifying those areas
> where we are not doing things "the SAGA way".

:-D  I think there aare some of these points above.  Main
one is about the attributes...

You might want to check the saga::job_description, which is
an kind of empty class which _only_ implements the attribute
interface.  It has a lot of the things which you added in a
similar way.

Also, it would be good to specify the available attributes
as far a possible.


> Incidentally we were surprised that we are only expected to use one name
> space for the implementation - why are sub-namespaces not permitted -
> especially for the API extensions? 

That seemed unneccessary for now.  Imagine a C language
binding: all name spaces would need rendering the the (flat)
names of C functions - that can get messy.

Languages like Java, which have a very hierarchical name
space usually, may add name spaces - I am not sure about the
neccessity though...


> For the Java implementation are we expected to use lower case class
> names and underscore separated method names?
> 
> Steve

Thanks, best regards, 

  Andre.


-- 
"XML is like violence: if it does not help, use more."




More information about the saga-rg mailing list