|
|
(32 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
| << Back to [[GOCDB/Documentation_Index]] <br/>
| | [[Category:GOCDB]] |
| << Back to [[GOCDB/Release4/Development]] <br/>
| | Moved to [[GOCDB/Release4/Development/MultipleEndpointsPerService]] |
| | |
| =Multiple Endpoints=
| |
| ==Introduction==
| |
| As requested in ticket https://rt.egi.eu/rt/Ticket/Display.html?id=3347. The Top-BDII needs the URL of each service endpoint's GRIS in order to retrieve information about the endpoint. The GRIS URL for each endpoint is to be stored in GOCDB.
| |
| | |
| 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 Endpoint URL for the admin portal of that service and so on.
| |
| | |
| Given that a Service would be able to define multiple endpoints, a mechanism is required to distinguish between those different endpoint types and their intended purpose. There are three possibilities (still to decide):
| |
| | |
| # Define a new <Classification> tag as a child of <Endpoint>. For example, the Endpoint could define the service's GRIS URL with a <Classification> value of "Resource Information Service").
| |
| # Define a new Endpoint 'Classification' attribute, e.g. <Endpoint classification="RIS">
| |
| # Define an Endpoint sub-type specialisation such as <GRIS_Endpoint> (the GLUE2 extensibility mechanism).
| |
| | |
| <br/>
| |
| 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 'classification' element with a more suitable Glue2 alternative or use a sub-type or attribute (still to decide). For more GOCDB/GLUE2 comparisons see [[GOCDB/Release4/Development/GLUE2Compatibility]].
| |
| | |
| ==Implementation==
| |
| 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 Classification element - note, still to decide the classifcation mechanism as described above). Using this mechanism the Top-BDII can retrieve a filtered list of endpoints that have a URL with the requied classification (e.g. "Resource Information Service").
| |
| | |
| ==PI Examples==
| |
| Query String:
| |
| https://goc.egi.eu/gocdbpi/private/?method=get_service_endpoint&Classification=Resource%20Information%20Service
| |
| | |
| <source lang="XML">
| |
| <?xml version="1.0" encoding="UTF-8"?>
| |
| <results>
| |
| <SERVICE_ENDPOINT PRIMARY_KEY="50257G0">
| |
| <PRIMARY_KEY>50257G0</PRIMARY_KEY>
| |
| <HOSTNAME>dgiref-globus.fzk.de</HOSTNAME>
| |
| <GOCDB_PORTAL_URL>https://goc.egi.eu/portal/index.php?Page_Type=View_Object&object_id=77182&grid_id=0</GOCDB_PORTAL_URL>
| |
| <HOST_OS>SL5</HOST_OS>
| |
| <BETA>N</BETA>
| |
| <SERVICE_TYPE>GRAM5</SERVICE_TYPE>
| |
| <CORE></CORE>
| |
| <IN_PRODUCTION>Y</IN_PRODUCTION>
| |
| <NODE_MONITORED>Y</NODE_MONITORED>
| |
| <SITENAME>DGIREF</SITENAME>
| |
| <COUNTRY_NAME>Germany</COUNTRY_NAME>
| |
| <COUNTRY_CODE>DE</COUNTRY_CODE>
| |
| <ROC_NAME>NGI_DE</ROC_NAME>
| |
| <!-- Option 1 -->
| |
| <ENDPOINT>
| |
| <URL>ldap://ce-cms.vinca.rs:2170/mds-vo-name=AEGIS10-VINCA-CMS,o=grid</URL>
| |
| <CLASSIFICATION>Resource Information Service</CLASSIFICATION>
| |
| </ENDPOINT>
| |
| <!-- Option 2 -->
| |
| <ENDPOINT classification="Resource Information Service">
| |
| <URL>ldap://ce-cms.vinca.rs:2170/mds-vo-name=AEGIS10-VINCA-CMS,o=grid</URL>
| |
| <ENDPOINT>
| |
| <!-- Option 3 -->
| |
| <GRIS_ENDPOINT>
| |
| <URL>ldap://ce-cms.vinca.rs:2170/mds-vo-name=AEGIS10-VINCA-CMS,o=grid</URL>
| |
| <GRIS_ENDPOINT>
| |
|
| |
| <!-- More Endpoints not shown -->
| |
| ...
| |
| </SERVICE_ENDPOINT>
| |
| </source>
| |