170 likes | 399 Views
SLAC Web Service. Paola Grosso (SLAC) Presented by Eric Boyd (Internet2). Monitoring data. The IEPM group at SLAC is monitoring network connectivity and End-to-end performance for sites involved in High Energy Nuclear and Particle Physics. At SLAC:
E N D
SLAC Web Service Paola Grosso (SLAC) Presented by Eric Boyd (Internet2) SLAC Web Services
Monitoring data The IEPM group at SLAC is monitoring network connectivity and End-to-end performance for sites involved in High Energy Nuclear and Particle Physics. At SLAC: IEPM-BW = monitors ~ 35 sites and analyzes the data for anomalies and variations. PingER = monitors ~300 sites and provides end-to-end performance statistics. SLAC Web Services
Metrics http://www-didc.lbl.gov/NMWG/docs/draft-ggf-nmwg-hierarchy-02.pdf IEPM-BW • path.bandwidth.achievable.TCP (iperf) • path.bandwidth.achievable.TCP.multiStream (iperf, bbftp,GridFTP) • path.bandwidth.capacity (ABwE) • path.bandwidth.utilization (ABwE) PingER • path.delay.roundTrip (ping) SLAC Web Services
IEPM-BW implementation Based on the Oct.2003 schema this has been our first production experience with Web Services. Provided us with experience in: • How to organize the data (storage in Oracle) • How to describe the service we provide in WSDL files • How to write server and clients code that access the data SLAC Web Services
IEPM-BW clients We have regular clients of our service: • Monalisa V1.2 announced in Feb 6 is now providing modules to interface to IEPM-BW data via Web Services. • A SLAC demo client: • http://www-iepm.slac.stanford.edu/tools/web_services/soap/IEPM_client.html SLAC Web Services
Monalisa and IEPM-BW SLAC Web Services
PingER implementation New: PingER data available via Web Services. 30 days of PingER measurements from the SLAC monitoring node to sites around the world. Responses for PingER data is based on the 15 Jan 2004 report schema! SLAC Web Services
PingER WSDL file This is where the service is described in term of: • provided operations: - PINGER#GetPathDelayRoundTrip • required inputs: • startTime • endTime • destination • provided output: • networkMeasurementSet http://www-iepm.slac.stanford.edu/tools/soap/wsdl/PINGER_profile.wsdl Not yet implemented according to the request schema. SLAC Web Services
A PingER response results: resultSet: count: 20 timeInterval: timestampStart: 1076445224 timestampEnd: 1076449413 min: 49.924 max: 50.433 mean: 50.113 result1: delay: 50.113 timestamp: 1076446801 networkMeasurementSet: version: 1.0 networkMeasurement: characteristic: path.delay.roundTrip methodology: tool: name: ping parameterSet: packetTypeParam: ICMP packetSizeParam: 100 numPacketsParam: 20 subject: source: name: pinger.slac.stanford.edu address: host: 134.79.240.30 version: 4 destination: name: fnal.fnal.gov address: host: 131.225.9.20 version: 4 SLAC Web Services
Report schema Some of the encountered problems…(repeating Warren) • How to indicate in a response missing data or incorrect inputs? We are using SOAP::Fault to convey this information to the client; • How to differentiate multiple measurements within the same resultSet? Perl implementation require this. • How to provide statistics for the single measurement in the same resultSet? PingER data in a long interval is a series of ping measurements, each with its own stats; • How to indicate disk and memory for a system? Les Cottrell’s studies indicate this as being an important quantity SLAC Web Services
PingER SOAP client #!/usr/local/bin/perl –w use SOAP::Lite; use Data::Dumper; my $startDate = "2004-02-18T12:46:56"; my $endDate = "2004-02-19T12:46:34"; my $destination = "fnal.fnal.gov"; my $measurement = SOAP::Lite-> service('http://www-iepm.slac.stanford.edu/tools/soap/wsdl/PINGER_profile.wsdl') ->GetPathDelayRoundTrip($startDate,$endDate,$destination); print Dumper ($measurement); exit; SLAC Web Services
PingER XML-RPC client #!/usr/local/bin/perl -w use XMLRPC::Lite+trace; use Data::Dumper; my $startDate = "2004-02-09T12:46:56"; my $endDate = "2004-02-09T13:46:34"; my $destination = "fnal.fnal.gov"; my $measurement = XMLRPC::Lite ->proxy('http://www-iepm.slac.stanford.edu/cgi-wrap/bbcp.cgi') ->call('PINGER.GetPathDelayRoundTrip',"$startDate", "$endDate","$destination") ->result; print Dumper ($measurement); exit; SLAC Web Services
PingER Python SOAP client #!/usr/local/bin/python import SOAPpy url='http://www-iepm.slac.stanford.edu/tools/soap/wsdl/PINGER_profile.wsdl' proxy = SOAPpy.WSDL.Proxy(url) measurement = proxy.GetPathDelayRoundTrip('2004-02-10T12:33:44','2004-02-10T18:11:33','fnal.fnal.gov') print measurement SLAC Web Services
Servers implementation SOAP server XML-RPC server • #!/usr/local/bin/perl • use SOAP::Transport::HTTP; • SOAP::Transport::HTTP::CGI • -> dispatch_to('PINGER') • -> handle; • ; • #!/usr/local/bin/perl • use XMLRPC::Transport::HTTP; • my $server = • XMLRPC::Transport::HTTP::CGI • -> dispatch_to('PINGER') • -> handle; • ; SLAC Web Services
Server backend A Perl module that handles the incoming requests and interfaces to the database where the data is stored. The Perl module constructs the returned data (in Perl hashes), according to the schema. Note, we are not indicating the encoding in the SOAP::Data type… SLAC Web Services
To do Our future plans: • Conform the request model to the most recent request schema; • Migrate the IEPM-BW Web Services to the new schema; • Looking for clients of the PingER service; • Export the web services model to other interested PingER sites. SLAC Web Services
Conclusions Documentation: SLAC Web Services http://www-iepm.slac.stanford.edu/tools/web_services SLAC Web Services demo client: http://www-iepm.slac.stanford.edu/tools/web_services/soap/IEPM_client.html Contact us: Iepm-l@slac.stanford.edu SLAC Web Services