Date post: | 21-Dec-2015 |
Category: |
Documents |
View: | 212 times |
Download: | 0 times |
GGF-Berlin SLAC Web Services
SLAC Web Service
Paola Grosso (SLAC)Presented by
Eric Boyd (Internet2)
GGF-Berlin 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.
GGF-Berlin SLAC Web Services
Metrics
IEPM-BW– path.bandwidth.achievable.TCP (iperf)– path.bandwidth.achievable.TCP.multiStrea
m (iperf, bbftp,GridFTP)– path.bandwidth.capacity (ABwE)– path.bandwidth.utilization (ABwE)
PingER– path.delay.roundTrip (ping)
http://www-didc.lbl.gov/NMWG/docs/draft-ggf-nmwg-hierarchy-02.pdf
GGF-Berlin 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
GGF-Berlin 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
GGF-Berlin SLAC Web Services
Monalisa and IEPM-BW
GGF-Berlin 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!
GGF-Berlin 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.
GGF-Berlin SLAC Web Services
A PingER response
networkMeasurementSet: version: 1.0 networkMeasurement: characteristic: path.delay.roundTrip methodology: tool: name: ping parameterSet: packetTypeParam: ICMP packetSizeParam: 100 numPacketsParam: 20
results: resultSet: count: 20 timeInterval: timestampStart: 1076445224 timestampEnd: 1076449413 min: 49.924 max: 50.433 mean: 50.113 result1: delay: 50.113 timestamp: 1076446801
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
GGF-Berlin 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 mesaurements, 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
GGF-Berlin 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;
GGF-Berlin 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;
GGF-Berlin 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
GGF-Berlin SLAC Web Services
Servers implementation
#!/usr/local/bin/perl
use XMLRPC::Transport::HTTP;
my $server = XMLRPC::Transport::HTTP::CGI -> dispatch_to('PINGER') -> handle;;
#!/usr/local/bin/perl
use SOAP::Transport::HTTP;
SOAP::Transport::HTTP::CGI -> dispatch_to('PINGER') -> handle;;
SOAP server XML-RPC server
GGF-Berlin 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…
GGF-Berlin 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.
GGF-Berlin 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:[email protected]