NAME GlueDomains - Partitioning grid Services into Domains DESCRIPTION Represent the partitioning of a grid into a set of domains, and give access to the observations of the inter-domain behavior of the communication infrastructure. SYNOPSIS use GlueDomains; Creator: $gd=GlueDomains::new($hostname,$database,$user,$password); Queries: @list=$gd->getNetworkServiceList($edgeService1,$edgeService2); @list=$gd->getMultihomeList($edgeService1,$edgeService2); @list=$gd->getDomainList($edgeService1,$edgeService2); @list=$gd->getTargetList($theodoliteService); @list=$gd->getTheodoliteList($networkService); Others: $n=NetworkService::getById($gd,$networkServiceIdentifier); $e=EdgeService::getById($gd,$edgeServiceIdentifier); $x->print; DESCRIPTION To create a handle to a GlueDomains server, use the creator method: my $gd=GlueDomains::new($hostname,$database,$username,$password); The new method requires four parameters: the identifiers should be self explanatory. Queries Using the handle you can call a few functions, that are meant to be useful for a broker or for a provider that wants to insert new observations in the repository: * getNetworkServiceList: given a couple of EdgeServices, returns the list of NetworkServices objects that represent the communication available between the two EdgeServices; * getMultihomeList: given a couple of EdgeServices, returns the list of 3-ples (EdgeService,EdgeService,NetworkDomain), such that the destination edge can be reached through the first home (first element of the pair) and the second home (second element in the pair) in the returned domain (third element of the pair); * getDomainList: given a couple of EdgeServices, returns the list of NetworkDomains both edges belong to; * getTargetList: given a TheodoliteService, returns a list of couples, each containing an adjacent TheodoliteService, and a NetworkService that is monitored using that theodolite. * getTheodoliteList: given a NetworkService, returns a list of TheodoliteServices, each controlling a monitoring session on the indicated NetworkService. Others A few methods are added mainly for testing purposes, and its use is otherwise deprecated. To create a EdgeService or NetworkService, you can call it by name using the getById object: my $e=EdgeService::getById($gd,"C2"); my $n=NetworkService::getById($gd,"Net2"); returns the object $e (or $n) of the EdgeService with identifier "C2" (or "Net2"). The call returns undef if the Service is not found. To print the content of an object you can call the print method: my $n=NetworkService::getById($gd,"Net2"); $n->print; The format is symbolic and concentrated on one line (without line feed). APPLICATION SCENARIOS The API is designed with the following scenarios in mind: * getNetworkServiceList, getMultihomeList, getDomainList: we want to query the observerd characteristics of the communication infrastructure between two services (for instance a computing service wants to download data from a storage service), and we need to know the NetworkService(s) between the two, in case they do not belong to the same domain, or are reachable through multihoming; * getTargetList: an information provider (or theodolite) wants the list of the monitoring sessions of which it is in charge (for boot, periodic check, or whatever). For each one it needs the adjacent theodolite (for lauch/control the monitoring tool), and the monitored NetworkService (cached and used as a parameter to insert new observations in the database). * getTheodoliteList: a grid-aware application or a broker wants an updated observation of a NetworkService: for this it needs the list of theodolites that control the monitoring of that NetwrokService. The last two usage scenarios assume that the monitoring of NetworkService from domain A to domain B is controlled by a theodolite in domain A. Although I do not know of exceptions to this rule, this assumption should be removed, or is a promising BUG. AUTHOR Written by Augusto Ciuffoletti (augusto@di.unipi.it) COPYRIGHT Copyright © 2001 Free Software Foundation, Inc. This is free software; see source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.