:@ Network Weather Service


NWS site
Edit...

NWS Sponsors

nsf_logo.gif

sdsclogo-black.gif

UCSBlogo.gif

Edit...

Collaborators

SDSC

Edit...

The following steps have been tested with Globus Toolkit 4.01 (GT4) and NWS version 3.0. The code is still somewhat experimental.

We assume that you have a GT4 installation in $GT4, and a NWS installation in $NWS. We assume you are somewhat familiar with Globus. The following steps are the required steps to setup an Execution Aggregator Source.

You have to have a working NWS installation and you need to know where is the NWS nameserver (here called NS). You can test if NWS is correct with
nws_cmd -N NS proxyClique availableCpu
if you have a running clique. If you don't have a running clique we assume that you have a sensor running on hostA, which reports itself as hostA with the nameserver (you can check with nws_search -N NS host), and you can test the command
nws_cmd -N NS all hostA

The first versin of the nws_cmd reports all the availableCpu measuremens for the hosts in all the clique registered with NS: you can run the command with the various resources. The second version returns all the measurement known for hostA (which don't involve a 2 hosts resource, ie bandwidthTcp).

Create a script in $GT4/libexec/aggrexec which calls nws_cmd with the wanted options. In this example we'll call the script globus-nws-provider.sh, and in our example the script is

#/bin/sh

$NWS/bin/nws_cmd -X -N NS proxyClique availableCpu
$NWS/bin/nws_cmd -X -N NS proxyClique bandwidthTcp

Notice the -X options: this returns an XML fragment suitable instead of a more user friendly format.

Modify $GT4/etc/globus_wsrf_mds_index/jndi-config.xml to add an executable mapping. In our case

<parameter>
   <name>executableMappings</name>
   <value>nws-provider=globus-nws-provider.sh</value>
</parameter>

Then you need to add a registration configuration file in $GT4/etc/globus_wsrf_mds_index/DefaultIndex taking care that in Content there is a ProbeName clause with your script name. In our case it looks like

<Content xsi:type="agg:AggregatorContent"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:agg="http://mds.globus.org/aggregator/types">
  <agg:AggregatorConfig xsi:type="agg:AggregatorConfig">
    <agg:ExecutionPollType>
      <agg:PollIntervalMillis>160000</agg:PollIntervalMillis>
      <agg:ProbeName>mds:nws-provider</agg:ProbeName>
    </agg:ExecutionPollType>
  </agg:AggregatorConfig>
  <agg:AggregatorData/>
</Content>

You might want to play with the PollIntervalMillis: a too low value might be too much of a burden to the index service, while a too relax value will carry outdated NWS measurements (defaults for NWS are 10 seconds interval for CPU measurments and 120 seconds for clique measuremnts).

The final step is to modify srun.sh in $GT4/etc/globus_wsrf_mds_index/DefaultIndex to start a mds-servicegroup-add for the above. In our case

mds-servicegroup-add -a
-s https://<host>:8443/wsrf/services/DefaultIndexService snws.xml &

If all went well, you can now start the globus-container then run srun.sh. After sometimes (usually at most few minutes) you can check that NWS data are indeed registered with the index service using wsrf_query.

NOTICE:

Older version of NWS had the capabilities to add a integrate with the older MDS (LDAP based) but the code is unmantained and obsolete.