Globus WS MDS
Izvor: CRO NGI
Sadržaj |
Uvod
Globus MDS4 koristi WSRF servise za prikupljanje informacija o računalima. Više informacija o MDS4 možete pronaći na adresi [1].
Opis resursa
Organizacija MDS4 servisa je hijerarhijska kao i organizacija MDS2. Na pojedinim klasterima nalaze se Index servisi koji prikupljaju informacije od ostalih lokalnih servisa. Informacije se spremaju u skupinu zapisa, koja se naziva ServiceGroup (prema WS-ServiceGroup specifikaciji, [2]). Trenutačno se prikupljaju informacije od GRAM4 i RFT servisa. Informacije su u XML formatu u obliku elemenata Entry. Primjer jednog Entry zapisa od GRAM4 servisa:
<ns1:Entry xmlns:ns1="http://schemas.xmlsoap.org/ws/2004/03/addressing">
<ns1:ServiceGroupEntryEPR>
<ns2:Address>https://161.53.133.2:8443/wsrf/services/DefaultIndexServiceEntry</ns2:Address>
<ns3:ReferenceProperties xmlns:ns3="http://schemas.xmlsoap.org/ws/2004/03/addressing">
<ns4:ServiceGroupEntryKey>
<ns5:GroupKey xmlns:ns5="http://mds.globus.org/aggregator/types">28141700</ns5:GroupKey>
<ns6:EntryKey xmlns:ns6="http://mds.globus.org/aggregator/types">14133705</ns6:EntryKey>
</ns4:ServiceGroupEntryKey>
</ns3:ReferenceProperties>
<ns7:ReferenceParameters xmlns:ns7="http://schemas.xmlsoap.org/ws/2004/03/addressing"/>
</ns1:ServiceGroupEntryEPR>
<ns1:MemberServiceEPR>
<ns8:Address xmlns:ns8="http://schemas.xmlsoap.org/ws/2004/03/addressing">https://161.53.133.2:8443/wsrf/services/ManagedJobFactoryService</ns8:Address>
<ns9:ReferenceProperties xmlns:ns9="http://schemas.xmlsoap.org/ws/2004/03/addressing">
<ns1:ResourceID xmlns:ns1="http://www.globus.org/namespaces/2004/10/gram/job">SGE</ns1:ResourceID>
</ns9:ReferenceProperties>
<ns10:ReferenceParameters xmlns:ns10="http://schemas.xmlsoap.org/ws/2004/03/addressing"/>
</ns1:MemberServiceEPR>
<ns1:Content xsi:type="ns11:AggregatorContent">
<ns11:AggregatorConfig>
<ns11:GetResourcePropertyPollType>
<ns11:PollIntervalMillis>15000</ns11:PollIntervalMillis>
<ns11:ResourcePropertyName>glue:GLUECE</ns11:ResourcePropertyName>
</ns11:GetResourcePropertyPollType>
</ns11:AggregatorConfig>
<ns11:AggregatorData>
<ns1:GLUECE xmlns:ns1="http://mds.globus.org/glue/ce/1.1">
<ns1:Cluster ns1:Name="SRCE" ns1:UniqueID="SRCE">
<ns1:SubCluster ns1:Name="main" ns1:UniqueID="main">
<ns1:Host ns1:Name="compute-0-4.local" ns1:UniqueID="compute-0-4.local">
<ns1:Processor ns1:CacheL1="0" ns1:CacheL1D="0" ns1:CacheL1I="0" ns1:CacheL2="0" ns1:ClockSpeed="2799" ns1:InstructionSet="x86"/>
<ns1:MainMemory ns1:RAMAvailable="1488" ns1:RAMSize="2007" ns1:VirtualAvailable="3621" ns1:VirtualSize="4152"/>
<ns1:OperatingSystem ns1:Name="Linux" ns1:Release="2.4.21-20.ELsmp"/>
<ns1:Architecture ns1:SMPSize="2"/>
<ns1:FileSystem ns1:AvailableSpace="29578" ns1:Name="entire-system" ns1:ReadOnly="false" ns1:Root="/" ns1:Size="34538"/>
<ns1:NetworkAdapter ns1:IPAddress="10.255.255.250" ns1:InboundIP="true" ns1:MTU="1500" ns1:Name="compute-0-4.local" ns1:OutboundIP="true"/>
<ns1:ProcessorLoad ns1:Last15Min="0" ns1:Last1Min="0" ns1:Last5Min="0"/>
</ns1:Host>
</ns1:SubCluster>
</ns1:Cluster>
<ns1:ComputingElement ns1:Name="batch" ns1:UniqueID="batch">
<ns1:Info ns1:TotalCPUs="12"/>
<ns1:State ns1:EstimatedResponseTime="0" ns1:FreeCPUs="12" ns1:RunningJobs="0" ns1:Status="enabled" ns1:TotalJobs="0" ns1:WaitingJobs="0" ns1:WorstResponseTime="0"/>
<ns1:Policy ns1:MaxCPUTime="0" ns1:MaxRunningJobs="0" ns1:MaxTotalJobs="0" ns1:MaxWallClockTime="0" ns1:Priority="0"/>
</ns1:ComputingElement>
</ns1:GLUECE>
</ns11:AggregatorData>
</ns1:Content>
</ns1:Entry>
Dio ServiceGroupEntryEPR sadrži adresu (End Point Reference, EPR) zapisa u skupini ServiceGroup. MemberService EPR sadrži adresu servisa koji je prijavio informacije, u ovom slučaju GRAM4 servis. Adresa se može koristiti za pristup servisu (pomoću globusrun-ws -Ff, vidi odjeljak 4.2). Content dio sadrži konfiguraciju komponente (AggregatorConfig) koja prijavljuje informacije te same informacije (AggregatorData). GLUECE dio sadrži informacije o GRAM4 servisu i ujedno je najbitniji za krajnjeg korisnika. GLUECE dio se sastoji od Cluster i ComputingElement dijela. Cluster sadrži informacije o čvorovima klastera prikupljene od sustava za nadzor Ganglia. ComputingElement sadrži informacije o sustavu za upravljanje poslovima: ukupan broj čvorova, broj slobodnih čvorova, ograničenja resursa (memorije, diska ), itd. Kako GRAM4 omogućava tri oblika pokretanja poslova: izravno na frontendu (tip Fork), pomoću JMS-a i izvođenje više poslova (tip Multi), u Index servisu bit će prijavljena tri GRAM4 zapisa. Korisnik može razlikovati JMS-ove (SGE i PBS) od Fork i Multi po atributu Name - tipovi Fork i Multi će imati vrijednost default, a JMS-ovi stvarno ime reda poslova (u slučaju CRO-GRID klastera batch ili interactive).
Alat wsrf-query
Osnovna naredba za prikupljanje informacija od MDS4 servisa je
wsrf-query [opcije] "<XPath izraz>"
Parametri naredbe su navedeni u tablici.
| Atribut | Opis |
| -a | servisu se pristupa bez autentikacije |
| -s <adresa> | adresa servisa koji se kontaktira |
| -e <datoteka> | pristupa se servisu čija je adresa navedena u datoteci |
Jezik XPath
Pretraživanje informacija ostvaruje se pomoću XPath jezika. Više informacija o jeziku možete pronaći na adresi [3]. Pregledan uvod u XPath jezik možete pronaći na adresi [4]. Najbitniji izrazi u XPath jeziku su navedeni u tablici.
| Atribut | Opis |
| / | označava korijen XML dokumenta, rezultat pretraživanja je cijeli XML dokument. |
| /<ime> | dohvaća sadržaj korijena <ime> XML dokumenta (ukoliko takav postoji) |
| /<ime1>/<ime2> | dohvaća sadržaj svih čvorova <ime2> čiji je izravni predak korijen <ime1>. Ovaj izraz je moguće proizvoljno proširivati - (/<imeN>)... |
| //<ime> | dohvaća sadržaj svih čvorova <ime> bez obzira na njihov položaj u XML dokumentu. |
| //<ime1>/<ime2> | dohvaća sadržaj svih čvorova <ime2> čiji je izravni predak čvor <ime1> koji se može nalaziti bilo gdje u dokumentu. Ovaj izraz je moguće proizvoljno proširivati: /(/<imeN>)... |
| * | označava bilo koje ime čvora. Npr. //<ime>/* dohvaća svu djecu čvora <ime>. |
| /<ime>[<izraz>] | pomoću izraza moguće je definirati uvjete pretraživanja. Pregled izraza i funkcija koje se mogu koristiti u izrazima moguće je pronaći u dokumentaciji [5] (poglavlja 3. i 4.). |
| @<atribut> | dohvaća vrijednost atributa od svih čvorova koji posjeduju taj atribut. Npr. //@brojSlobodnihCvorova. |
| <izraz_pretrazivanja2> | pretraživanje čvorova prema više uvjeta pretraživanja. Izraz se može proizvoljno proširivati. Npr, dohvat Entry i Content čvorova: "//Entry || //Content". |
| <izraz_pretrazivanja1>/<odnos>::* | dohvaća čvorove koji su u odnosu <odnos> s rezultatom pretraživanja. Mogući odnosi su:
|
Ilustracije korištenja svih ovih izraza mogu se pronaći na adresi [6].
Neke korisne funkcije XPath jezika.
| Atribut | Opis |
| local-name() | dohvaća lokalno ime trenutnog čvora. Imena čvorova se sastoje od prostora imena (namespace) i lokalnog imena. Ova funkcija je iznimno korisna pri korištenju MDS4 servisa, jer svi čvorovi imaju definiran prostor imena. Npr. puno ime čvora Entry je "http://schemas.xmlsoap.org/ws/2004/03/addressing":Entry. Pretraživanje svih čvorova s lokalnim imenom Entry se ostvaruje s izrazom "//*[local-name()='Entry']. Više o imenovanju čvorova u XML dokumentima možete pronaći na adresi [7]. |
| name() | dohvaća ime trenutnog čvora. Koristi se umjesto //<ime>. Npr. izraz "//*[name()='Entry']" je ekvivalentan izrazu "//Entry". |
| count(<skup_cvorova>) | dohvaća broj pronađenih rezultata. Npr. broj pronađenih Entry elemenata: "count(//Entry)". |
| string() | dohvaća vrijednost teksta unutar čvora ukoliko ona postoji. Npr. za čvor <ResourceID>Fork</ResourceID>, funkcija string vraća vrijednost Fork. |
| number(<vrijednost>) | dohvaća numeričku vrijednost. |
Primjeri korištenja
1. Dohvat svih informacija o svim sredstvima na gridu:
wsrf-query -s https://cs2.cro-ngi.hr/wsrf/services/DefaultIndexService
2. Dohvat informacija o GRAM4 servisima:
wsrf-query -s https://cs2.cro-ngi.hr/wsrf/services/DefaultIndexService "//*[local-name()='GLUECE']"
3. Dohvat ukupnog broja GRAM4 servisa:
wsrf-query -s https://cs2.cro-ngi.hr/wsrf/services/DefaultIndexService "count(//*[local-name()='GLUECE'])"
4. Dohvat informacija o redovima poslova:
wsrf-query -s https://cs2.cro-ngi.hr/wsrf/services/DefaultIndexService "//*[local-name()='ComputingElement']"
5. Dohvat stanja isključivo JMS-ova :
wsrf-query -s https://cs2.cro-ngi.hr/wsrf/services/DefaultIndexService \
"//*[local-name()='ComputingElement' and @glue:Name!='default']"
6. Dohvat EPR adresa i stanja svih GRAM4 servisa :
wsrf-query -s https://cs2.cro-ngi.hr/wsrf/services/DefaultIndexService \
"//*[local-name()='MemberServiceEPR'] | //*[local-name()='ComputingElement']"
7. Dohvat ukupnog broja JMS-ova :
wsrf-query -s https://cs2.cro-ngi.hr/wsrf/services/DefaultIndexService \
"count(//*[local-name()='ResourceID' and string()!='Fork' and string()!='Multi'])"
8. Dohvat EPR adresa svih GRAM4 - JMS servisa :
wsrf-query -s https://cs2.cro-ngi.hr/wsrf/services/DefaultIndexService \
"//*[local-name()='ResourceID' and string()!='Fork' and string()!='Multi']/parent::*/parent::*"
