There are two ways to implement this
- Query Lookup service
- Query the lookup service for the metadata of a specific evenType
- Lookup service will return all the metadata and its associated service url to query
- Query the service url for the specific information directly from the service url
- Static Mapping of Service URL
- Get the MAs.conf static service url mapping file from perfSONARUI.
- Query metadata for an eventType e.g. utilization for each service.
- Query the interface utilization request directly to service
Considering the current deployement status of lookup service, not all the services are registers. There is an implementation of Multi-Lookup service, where each local domain look up service register itself with other domains lookup service to create hierarchy but there is not such heirarchy in place by this date. Hence we are starting implementation without query Lookup service for metadata i.e. Static Mapping of service URL. In future, we will update the API to query Lookup service for metadata instead of Service directly.
If we consider the first use case and wants to fetch all the Interfaces that is supported by the service e.g. EsNET. To get the required information we need the following information to query:
- The MA Service URL or Lookup Service URL which will give us the MA Service URL
- Event type supported by the MA which in most cases for utilization is eighter "utilization" for old version and "http://ggf.org/ns/nmwg/characteristic/utilization/2.0" for new version.
The sample request message for all the supported interfaces is shown below:
The above request to Measurement Archive service will return all the interfaces either inbound or outbound with its respective metadata will be returned. To scall down the request e.g. if you are interested in only inbound interfaces. Then just add the following tab inside the <nmwgt:interface> element.
The response to the aboce request will look like this.
From metadata, you can get information about the interface e.g. its name, address, description, capacity etc. From data in the metadata key response, you get the key to query for detailed utilization of that specific interface and the unit of the returned data. In the aboce example the unit is shown as Bytes per second (Bps).
Parsing NWMG schema:
If you have already build the Measurement Archive, you will find two jar files in $PERFSONAR_HOME/build/ directory.
- perfSONAR_sqlma.jar or perfSONAR_rrdma.jar
If you see into the perfSONAR_generic.jar file all the elements and namespaces have its own corresponding Java Bean. E.g. http://ggf.org/ns/nmwg/base/Message, you will find its Java Bean as org.ggf.ns.nmwg.base.Message_._You will find all the mapping of elements and namespaces in objects.conf file in the root src directory of perfSONAR i.e. $PERFSONAR_HOME/src/objects.conf
To parse the the message, There is a static method in perfSONAR_generic.jar i.e. org.perfsonar.commons.util.XMLUtils.convertToMessage().*This method have two arguments, one is the org.w3c.dom.Document which consists of the response/request and the second argument is the file path to objects.conf as mentioned above. The method will return the *org.ggf.ns.nmwg.base.Message object. From this class you can get all the information what you are required either for request or response.
The example below will fetch the capacity of an interface in response.
A SVN Repository is now available at
Further details are documented at IEPM SVN Repository.
We are proud to announce the creation of the IEPM Group wiki site! All content is NON final and the content and layout are subject to drastic changes in the coming months as our group adds content to it.