Download presentation
Presentation is loading. Please wait.
1
PIPES Web Service Eric Boyd (Internet2) and Warren Matthews (Georgia Tech)
2
Deployed Measurement Infrastructure
3
PIPES Web Service AMI measurements published as a web service. AMI measurements published as a web service. Implementation of 2004-01-15 NMWG response schema Implementation of 2004-01-15 NMWG response schema Older implementation still exists in different namespace Older implementation still exists in different namespace Only supported for Advisor and Monalisa Only supported for Advisor and Monalisa Until end of March. Until end of March.
4
Server in Perl Data served using perl SOAP::Lite Data served using perl SOAP::Lite Both SOAP and XMLRPC services Both SOAP and XMLRPC services Same back-end perl module Same back-end perl module OGSI/WSRF server under development OGSI/WSRF server under development Using OGSI::Lite Using OGSI::Lite Also working on.NET/C# Also working on.NET/C#
5
Database and Clients Data pulled from same mySQL database as AMI graphs and other information on web pages. Data pulled from same mySQL database as AMI graphs and other information on web pages. Multiple clients have been tested Multiple clients have been tested Perl, python for SOAP Perl, python for SOAP Perl, PHP, Java (Advisor, Monalisa) for XMLRPC Perl, PHP, Java (Advisor, Monalisa) for XMLRPC Others? Others?
6
Road Bumps Perl is untyped. Perl is untyped. SOAP::Lite performs autotyping SOAP::Lite performs autotyping Sometimes doesn’t do what we want! Sometimes doesn’t do what we want! Caused unexpected errors in java Caused unexpected errors in java Can over-ride but not yet done so (other priorities) Can over-ride but not yet done so (other priorities) XML encoding XML encoding Defaults to RPC Defaults to RPC Can over-ride to force Literal (again, not yet) Can over-ride to force Literal (again, not yet)
7
Uphill Struggles The hardest part of the implementation was decoding the XML. The hardest part of the implementation was decoding the XML. There are some tools but mostly it was a time-consuming manual process. There are some tools but mostly it was a time-consuming manual process. XML::Parser XML::Parser Prefer old-style Profile document or even a list of objects. Prefer old-style Profile document or even a list of objects.
8
Client Side New client requires characteristic to be specified. New client requires characteristic to be specified. Partial implementation of request schema for requesting data not just measurements Partial implementation of request schema for requesting data not just measurements Future deployment will follow request schema to request data and measurements Future deployment will follow request schema to request data and measurements Only return what is asked for, previously everything available was returned. Only return what is asked for, previously everything available was returned.
9
Supported Characteristics Measured by owamp Measured by owamp path.delay.oneWay path.delay.oneWay path.loss.oneway path.loss.oneway Measured by bwctl Measured by bwctl path.bandwidth.achievable.TCP path.bandwidth.achievable.TCP path.bandwidth.achievable.UDP path.bandwidth.achievable.UDP path.jitter.oneWay path.jitter.oneWay
10
Other Inputs Measurement Nodes by nickname (ATLA, CHIN, DNVR, HSTN, IPLS, KSCY, LOSA, NYCM, SNVA, STTL, WASH). Measurement Nodes by nickname (ATLA, CHIN, DNVR, HSTN, IPLS, KSCY, LOSA, NYCM, SNVA, STTL, WASH). type is ipv4 or ipv6 at all nodes. Not case sensitive. “4” or “6” will suffice. type is ipv4 or ipv6 at all nodes. Not case sensitive. “4” or “6” will suffice.
11
Other Inputs startTime/endTime startTime/endTime iso8601 is supported iso8601 is supported Dan - “Timezones are a problem waiting to happen” - very true Dan - “Timezones are a problem waiting to happen” - very true But users are looking for trouble But users are looking for trouble Currently no support for epochSeconds Currently no support for epochSeconds Too much opportunity for timezone confusion Too much opportunity for timezone confusion
12
Example Client In perl: In perl: my %request = ( networkCharacteristic => "path.delay.oneway", subject => { source => { address => { name => "ATLA", }, }, destination => { address => { name => "LOSA", }, }, type => "IPv4", }, startTime => ”2004-02-01T00:00::00-5:00", endTime => ”2004-02-01T23:59:59-5:00", ); my $webService = SOAP::Lite -> uri('http://abilene.internet2.edu/PIPES') -> proxy('http://username:password@abilene.internet2.edu/ami/services/soap_server.cgi') -> NetworkMeasurementSet(\%request) -> result; Wrap the request up in an object Send it to the webservice
13
Examples print $webService->{version} 2004-01-15 print $webService->{networkMeasurement}->{characteristic} path.bandwidth.achievable.TCP
14
Supported Objects Could add Memory, disk details (both can have a significant effect on performance). Could add Memory, disk details (both can have a significant effect on performance). Last updated field would be a useful sanity check. Last updated field would be a useful sanity check. Some system information can be retrieved by snmp, sysctl, currently hard coded. Some system information can be retrieved by snmp, sysctl, currently hard coded. Methodology has separate source and destination objects instead of single endpoint. Methodology has separate source and destination objects instead of single endpoint.
15
Non-Standard Objects NetworkMeasurementSet => Help or NetworkMeasurementSet => Message NetworkMeasurementSet => Help or NetworkMeasurementSet => Message e.g. “No data matching query” or “no response from db” e.g. “No data matching query” or “no response from db” Paola suggested using SOAP Failure Paola suggested using SOAP Failure But not really a SOAP failure if there is no data matching the query. But not really a SOAP failure if there is no data matching the query. Same applies for other SOAP messages Same applies for other SOAP messages
16
Further Work Deployment on CENIC, NCNI, SOX Deployment on CENIC, NCNI, SOX Interconnecting measurement domains Interconnecting measurement domains Other Characteristics Other Characteristics Path.delay.roundtrip - AMP data Path.delay.roundtrip - AMP data Continued development of Request schema, future Response schema Continued development of Request schema, future Response schema Development of AAA (certificate based?) Development of AAA (certificate based?)
17
More Information PIPES/AMI Web Service home page: PIPES/AMI Web Service home page: http://abilene.internet2.edu/ami/webservices.html http://abilene.internet2.edu/ami/webservices.html http://abilene.internet2.edu/ami/webservices.html Monalisa Monalisa http://vinci.cacr.caltech.edu:8080 http://vinci.cacr.caltech.edu:8080 http://vinci.cacr.caltech.edu:8080 Advisor Advisor http://dast.nlanr.net/Projects/Advisor http://dast.nlanr.net/Projects/Advisor http://dast.nlanr.net/Projects/Advisor Or send questions/comments to Or send questions/comments to Warren.Matthews@oit.gatech.edu Warren.Matthews@oit.gatech.edu
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.