From EGIWiki
< GOCDB‎ | Release4‎ | Development
Revision as of 19:27, 1 February 2012 by Jcasson (talk | contribs) (Introduction)
Jump to: navigation, search

<< Back to GOCDB/Documentation_Index
<< Back to GOCDB/Release4/Development

Multiple Endpoints


As requested in ticket https://rt.egi.eu/rt/Ticket/Display.html?id=3347. Make GOCDB capable of storing a GRIS URL field for each service endpoint. This will allow the Top-BDII to directly retrieve information about the endpoint.

To achieve this we propose adding support for multiple <Endpoint> elements per service (the Endpoint element in turn wraps a <URL>). For example, one Endpoint could define the actual service URL, a second could define the GRIS URL, whilst a third could define an admin portal URL and so on.

Given that a Service would be able to define multiple endpoints, a mechanism is required to distinguish different endpoint types and their intended purpose. We propose using using a known interface name:

  • As per GLUE2, Define a new <InterfaceName> tag as a child of <Endpoint>. For example, the Endpoint could define the service's GRIS URL with a <InterfaceName> value of "RIS" for Resource Information Service).

Adding multiple Endpoints per service is a more GLUE2 centric approach. Additional elements/attributes can be added to the GOCDB Endpoint if required. We may change the 'InterfaceName' element with a more suitable alternative or use a sub-type or attribute (still to decide). For more GOCDB/GLUE2 comparisons see GOCDB/Release4/Development/GLUE2Compatibility.


When adding or editing a service we propose that a user can add multiple child Endpoint objects.

The GOCDB-PI output will be extended to show multiple <Enpoint> elements (each nesting the child <URL> and e.g. the <InterfaceName>). Using this mechanism the Top-BDII can retrieve a filtered list of endpoints that have a URL with the requied classification (e.g. "RIS").

PI Examples

Query String: https://goc.egi.eu/gocdbpi/private/?method=get_service_endpoint&InterfaceName=RIS

 <?xml version="1.0" encoding="UTF-8"?>
      <!-- More Endpoints not shown -->