110 likes | 362 Views
Service Discovery on UI and WMS. Giuseppe Avellino <giuseppe.avellino@datamat.it> Abingdon, 9 November 2006. Contents. Why Service Discovery (SD) Using Service Discovery Service Discovery on UI Service Discovery on WMS WMProxy Client SD Configuration WMProxy Server SD Configuration
E N D
Service Discovery on UI and WMS Giuseppe Avellino <giuseppe.avellino@datamat.it> Abingdon, 9 November 2006
Contents • Why Service Discovery (SD) • Using Service Discovery • Service Discovery on UI • Service Discovery on WMS • WMProxy Client SD Configuration • WMProxy Server SD Configuration • Conclusions Abingdon, 9 November 2006
Why Service Discovery • Service Discovery is used for: • UI (CLI Python): retrieval of the NS and LB services addresses to contact for submitting user requests • UI (WMProxy client): retrieval of the WMProxy endpoints to contact for submitting user requests • WMS (WMProxy): retrieval of the LB server addresses that can be used for storing job-related events (i.e. for building the job identifier) • Service Discovery behavior is configurable in both UI and WMS Abingdon, 9 November 2006
Using Service Discovery • UI and WMS use C++ Service Discovery API • Service Discovery available data types are: • Service • ServiceDetails • ServiceData • UI and WMS use the Service Discovery data type Service: • They only need to get the addresses used to contact the services • No check is done to see which VOs are supported by the server • No other information is required/used • The query is made with the method listServices • Used parameters are: • Service type: key value read from configuration file • Site name: NULL • List of VOs: NULL Abingdon, 9 November 2006
Using Service Discovery • Tests were made with the RGMA and BDII plugins. We were able to get information only using the BDII plugin • No tests have already been done with FILE Environment variables were set to: • GLITE_SD_PLUGIN = “bdii, rgma” • LCG_GFAL_INFOSYS = “gridit-bdii-01.cnaf.infn.it:2170” • GLITE_SD_VO not set • All the needed environment variables were exported to the WMProxy through the Apache directive PassEnv Abingdon, 9 November 2006
Service Discovery on UI • Service Discovery is used only as a fallback solution • This is: • to avoid Service Discovery overload, calling it each time a request is performed • no specific information about Service Discovery stability and avalaibility • Any time a command is performed by user: • UI tries to contact the configuration file LB (or NS) services. • If all of them are not responding, a call to Service Discovery is performed • UI tries to contact the found Service Discovery LB (or NS) services. Abingdon, 9 November 2006
Service Discovery on WMS • Service Discovery is used as an extra source of services addresses • The call to the Service Discovery is performed only in the case last call was made a long time ago (information validity time) • Any time a call for an operation reaches WMProxy: • WMProxy verifies the validity of the Service Discovery information, if old, it performs a call to get updates • The LB service to use is randomically selected among a list (weigths are used) made of: • LB services provided by user via configuration file • LB services found with the Service Discovery Abingdon, 9 November 2006
WMProxy Client SD Configuration • WMProxy client defines three attributes inside the gLite configuration file for Service Discovery configuration: • EnableServiceDiscovery: boolean attribute for Service Discovery enabling • LBServiceDiscoveryType: type key to discover LB services. Template configuration file value is “org.glite.lb.server” • WMProxyServiceDiscoveryType: type key to discover WMProxy servers. Template configuration file value is “org.glite.wms.WMProxy” e.g. WorkloadManagerProxy = [ EnableServiceDiscovery = true; LBServiceDiscoveryType = "org.glite.lb.server"; WMProxyServiceDiscoveryType = "org.glite.wms.WMProxy";] Abingdon, 9 November 2006
WMProxy Server SD Configuration • WMProxy server defines three attributes inside the gLite configuration file for Service Discovery configuration: • EnableServiceDiscovery: boolean attribute for Service Discovery enabling • LBServiceDiscoveryType: type key to discover LB Servers. Template configuration file value is “org.glite.lb.server” • ServiceDiscoveryInfoValidity: time in seconds (n) indicating the validity of the information provided by the Service Discovery. A call to Service Discovery for updated information is done every n seconds e.g. WorkloadManagerProxy = [ EnableServiceDiscovery = true; LBServiceDiscoveryType = "org.glite.lb.server"; ServiceDiscoveryInfoValidity = 3600; ] Abingdon, 9 November 2006
Conclusions • Plugin selection only via environment variables. In the case of the plugin BDII is used, an API method to set the BDII server to contact could be useful • Differences between RGMA and BDII. e.g. key value to use • Publication of new services such as WMProxy Web servers (endpoints): • How. It seems not so easy • Who should do it • Differences between RGMA and BDII Abingdon, 9 November 2006
Conclusions • Other Service Discovery provided fields (more complex data types) could be used for future needs: • VO discrimination • Server/Service version discrimination • Server/Service type discrimination • To get Web services WSDL • In the furture, Service Discovery could be used to search for other services: • Job Provenance • VO specific services in general • "Configuration free SD": use of Service Discovery for bootstrapping; a dedicated service to get hosts/services configuration information Abingdon, 9 November 2006