• Ei tuloksia

4. Istuntotason valvonta-ja tilastointiohjelmisto

4.4. Tiedonkeruuohjelma

Tiedonkeruuohjelma on UX-funktioiden kanssa samassa laitteessa tietyin väli­

ajoin käynnistyvä ohjelma, jonka tarkoitus on siirtää jaetun muistin rengaspus- kurissa olevat, UX-funktioiden kirjoittamat istuntotiedot talteen levytiedostoik- si ja sen jälkeen vapauttaa luetut rengaspuskurin alkiot uudelleen käytettäviksi.

Lisäksi se voi siirtää luetut tiedot muihin laitteistoihin TCP/IP-FTP -ohjelmalla.

Tietoja voidaan käyttää erilaisissa valvontaohjelmissa.

---

\

Tiedonkeruuohjelma

siirtoparametritiedostc

J

Г

Kuukausi-tiedosto

\ ТЧ

!

li

I i

n

\—¿j\

xz

IXXXXXXXXXXVXXXXXXXXXXXNXXXXXV-Kuva 12: Tiedonkeruuohjelman tiedostojen käyttö

48

Istuntotason valvonta- ja tilastointiohjelmísto Tiedonkeruuohjelma

Rengaspuskuri tiedonlähteenä

Tiedonkeruuohjelma käynnistyy minuutin välein ja tutkii, onko R-jonossa tie­

tueita. Jos R-jono on tyhjä, niin ohjelma lopettaa välittömästi suorituksen. Kos­

ka tiedonkeruuohjelma toimii tärkeissä tuotantolaitteistoissa, on sen tietojenkä­

sittelyresurssien kulutus minimoitu. Tässä on onnistuttu erinomaisesti, tyypilli­

nen keskusyksikön kulutus on vain muutamia kymmeniä sekunteja vuorokau­

dessa.

Mikäli R-jonossa on tietueita, niin otetaan vanhin pois R-jonosta ja tarkistetaan onko sen tilaksi merkitty kirjoitettu. Jos ei, niin kirjoitetaan siitä huomio virhe- lokiin. Sitten muutetaan tietueen tilaksi "käytössä". Seuraavaksi kirjoitetaan osa tietueen tiedoista kahteen tiedostoon, muutetaan tietueen tilaksi luettu ja palautetaan se W-jonoon. Näin käydään läpi kaikki R-jono n tietueet. Kun R-jo­

no on tyhjä, suljetaan tiedostot ja jäädään odottamaan seuraavaa herätystä.

Kuukausitiedosto ja päivitystiedosto

Tiedonkeruuohjelma tallettaa tietoa kahteen eri tiedostoon, koska valvonnan ja tilastoinnin tarpeet ovat hyvin erilaiset. Valvontaa varten kirjoitetaan uudet tie­

dot omaan tiedostoonsa, jota on helpompi yrittää siirtää kokonaisuudessaan valvontaohjelmistoa ajaville koneille. Uusien tietojen tiedosto kirjoitetaan aina edellisen vastaavan tiedon päälle. Tilastointia varten uudet tiedot lisätään kuu­

kausittain vaihtuvaan toiseen tiedostoon edellisten tietojen perään. Tästä kuu- kausitiedostosta saadaan yhden kuukauden istuntotiedot kerralla tilastoinnin tarpeisiin.

Istuntotason valvonta- ja tilastointiohjelmisto Tiedonkeruuohjelma

Kuukausitiedostot ovat nimeltään esimerkin uxl99304.csv mukaisia. Ensin on tunniste ux, sitten vuosi neljällä numerolla ja kuukausi kahdella numerolla tar­

vittavine etunollineen, jotta tiedostoilla olisi yhtä pitkät nimet. Seuraavaksi on pisteellä erotettuna tiedoston tyyppi, joka on csv.24 Kuukausitiedostossa on ai­

noastaan nimensä mukaisessa kuussa tapahtuneet Netex-tapahtumat. Jotkut is­

tunnot voivat siten ulottua useamman tiedoston puolelle.

ALKU; 736599467; 1.0; SBSS.CSV ( TEO_DISK : «KATAJA. UE>SBSS_CSV. C ; 95 ) Versio 1.0. nyt ОП Wed May S 10:57:47 1993 TIEDOT; 736013624: VAX3; 01.00; UXCBLSEC versio 01.00. alustettu Wed Apr 28 16:13:44 1993

KOWrølTTI ; type; statu6iwrltten¡atype;msgln:byteln;msgout; byteout ; nrs; ind; len ; ubc ; req ; nr f ; bt 1 ; tnc>; rat ; obs ; bsl ; bso ; nam; hst :cwaproc;cvabost ;cwaid;cwastat TIBTO;3i2.-736600494iUxCnn; ; ; ; , 0x00000000 ; 0x00000000;2 ; 0 ; 1 ; 5308 ; 0 ; 0 ; 0 ; 0 ; 32767 ; 3;NTXOPBR ;VAX3 ; ; 0x00

TIBTO;5;2; 736600494 ;OxCmp; ; ; ;;0x00000000 ; 0x00000002 :2 ; 0 ; 130 ; 5308;2 ; 0 ; 0 ; 0 ; 32767 ; 3 ;RHTOPER ;VAX3 ; ; 0x00 TIETO ; 6 ; 2 ; 736600494 ; UxDsc ; 2 ; 722 ; 3 ; 5 ; 0x00000000 : 0x00000000,0 ; 0 ; 6 ; 5308; 32767 ; 0 ; 0 : 0 ; 32767 ; 3 : RMTOPER ; VAX3 0x00 TIETO;5;2;736600733¡Uxcnv; ; ; ; ; 0x00000000; 0x00000001; 8: 0; 129 : 5284; 20: 0 ; 0 : 0 ; 800; 149 ;BFXJS ; ; ; 0x00

TIETO;4;2;736600733:UxCnt:: ; ; 0x00000000 ; 0x00000000;6 ; 0;2; 5284 ; 20 ; 0 ; 0 ; 0 ; 800 : 149 ;PYLBVAX3 ; 1BM1 . 0x00 TIETO; 6 ; 2 ; 736600738;UxDsc; 7 ;2S75;5; 151;0x00000000;0x00000000;0 ; 0;6 ;S284;20;0 ; 0 ; 0;800 ; 149 ; PYLEVAX3 ; IBM1 : 0x00 TIBTO.-2 ¡2; 736600739;UxOfr; ; ; ; ; 0x00000000 ; 0x00000000; 0 ; 0; 129 ¡5310 ; 20; 0 ; 0 ; 0; 800 ; 149;BFXJS ; ; ; ; ; 0x00

TIETO; 3:2; 736600743 ¡Uxcnn: . . .-0x00000000; 0x00000000; 8; 0 ; 1; 5311; 0; 0; 0; 0;-1 ; 149 ; PYLEVAX3 ; IBM1 ; ¡0x00 TIETO: 5; 2:736600743 ¡UxOnp; : 0x00000000 ; 0x00000002 ; 8; 0 ; 130. S311.20 ; 0 ; 0: 0 ; 16384:149 ; PYLEVAX3 ; IBM1 ; ¡0x00 TIETO ; 6 ; 2 ; 736600743 :UxDsc;4; 199:4; 123;0x00000000 ; 0x00000000 ; 0 ; 0 ; 6.5311; 20 ; 0 : 0 ; 0 : 163 84 ; 149.FYLEVAX3 ; 1EM1 .0x00

Kuva 13: Kuukausitiedoston alkua

Kuukausitiedostossa on neljänlaisia rivejä. Rivin tyyppi ilmaistaan sen ensim­

mäisellä alkiona, joka on merkkijono "ALKU", "TIEDOT", "KOMMENTTI"

tai "TIETO". ALKU-rivi kertoo milloin tiedostoon on ensimmäisen kerran kir­

joitettu. Tämä ilmaistaan sekuntien lukumääränä 1.1.1970 kello 0 lähtien. Seu­

raavaksi kerrotaan tiedot kirjoittaneen ohjelman versio, esimerkkitiedostossa se on "LO". Loppuosa rivistä on vapaamuotoinen kommentti, jossa kerrotaan tie­

doston kirjoittaneen ohjelman nimi, sen lähdekooditiedoston koko nimi hake-mistopolkuineen ja ensimmäisen kirjoitusaika selväkielisenä ihmislukijaa hel­

pottamaan.

TIEDOT-rivi kertoo jaetun muistin alueen alustusajan, istuntotietoja ilmoitta­

van koneen nimen (esimerkissä VAX3), sekä jaetun muistialueen versionume­

ron. Loppurivi on selväkielinen esitys alustusajasta ja versionumerosta.

KOM-24Comma-separated value, Powell90, s. 233, 264

50

I stuntotason valvonta- ja tilastointiohjelmisto Tiedonkeruuohjelma

MENTTI-rivi jätetään koneellisessa käsittelyssä huomiotta, esimerkkitiedostos- samme se kertoo TIETO-rivien kenttien selitykset.

ALKU; 737494885; 1.0; SESS.CSV (T60_DISK:«KATAJA.UB>SBSS_CSV.C;95) versio 1.0, nyt on Sat May 15 19:41:25 1993 TIEDOT; 736889101; VAX3; 01.00; UXCBLSBC versio 01.00. alustettu Sat May 8 19:25:01 1993

KOtWENTTI: type; status ¡writ ten ; a type ; msgln ; by tein ¡msgout ; by teout ; nrs; lnd; len,ubc;req,nrt ,-bfl; tmo; rat; obs.-bsl; bso; nam; hsticwaproc: cwabost:Cwald ¡cwa stat TIETO;5 ; 2 : 737494837 ;UxCmp; : ; ; ; 0x00000000 ; 0x00000001; 8 ; 0 ; 129 ; 4058;20 ; 1800 ; 0 ; 0 ; 149 ; 32600 ; 28194005 ; ; ; ; ; 0*00

TIBTO;4;2¡737494837¡UxCnt;; ; ; 0x00000000; 0x00000000 ; 6 ; 0; 2 ; 4058;20;1800; 0.0 ; 149 ; 32600 ;U373940S;IBM1 ; 0x00

TIETO : 6.-2:737494855 ;UxDsc:3; 108; 176 ; 5421695: 0x00000000 ; 0x00000000 ; 0 ; 0.6 ; 4058:20 ; 1800 ; 0 ; 0 ; 149.-32600 ¡U373940S; IBM1 ¡0x00

Kuva 14: Uudet istuntotiedot

Uusien istuntotietojen tiedosto on saman muotoinen kuin kuukausitiedosto. Ri­

vejä on luonnollisesti huomattavasti vähemmän. Tämän tiedoston nimi on ux.csv. Jotta tiedosto ehditään siirtää määritellyille valvontaohjelmistoille, ei si­

tä yritetä uusia kuin korkeintaan kerran minuutissa. Toisaalta, tätä suuremmalla päivitysvälillä valvonnan reaaliaikaisuus kärsii.

Tiedonkeruuohjelma siirtää uudet tiedot sisältävän ux.csv-tiedoston valvonta­

ohjelmille TCP/IP FTP-ohjelmiston avulla.

Valvontaohjelmien määrittelytiedosto

Jos tiedonkeruuohjelman tulee siirtää istuntotietoja valvontaohjelmille, se tar­

vitsee FTP-ohjelman käyttöön useita siirtoparametreja. Määrittelyjä on helppo muuttaa ohjelmiin koskematta, kun ne sijoitetaan omaan määrittelytiedostoon­

sa. Tällainen tiedosto on kuvattu liitteessä SESS_CSV.FTP. Tiedosto on taval­

linen tekstitiedosto, kommentit merkitään ensimmäisessä sarakkeessa olevalla puolipisteellä ja parametrit erotellaan toisistaan välilyönneillä. Tiedoston luku lopetetaan joko tiedoston loppuun tai ensimmäiseen tyhjään riviin. Tämän an­

siosta tyhjän rivin jälkeen voi kirjoittaa vapaamuotoisia kommentteja ja käytös­

tä poissa olevia parametri rivejä, kuten liitetiedostossa on tehtykin.

Istuntotason valvonta- ja tilastointiohjelmisto Tiedonketuuohjelma

Määrittelytiedostossa annetaan kustakin valvontatietoa tarvitsevasta koneesta seitsemän parametria:

hostname Tämä on kohdekoneen nimi joko symbolisena, hierarkkisena nimenä tai numeerisena IP-osoitteena.

username Tämä on kohdekoneen käyttäjätunnus, jolla siirto suorite­

taan.

password Tämä on edellä olevaan käyttäjätunnukseen liittyvä sala­

sana.

directory Tässä kerrotaan kohdekoneen hakemisto, johon tieto talle­

tetaan.

filename Mikäli kohdekoneen FTP-palvelinohjelmisto vaatii standar­

dista poiketen tiedostonimen STOU-komentoon, niin annetaan se tässä.

mode Valittavana on kaksi eri siirtotapaa: I tai A. I tarkoittaa binäärisiirtoa ja A tekstitiedostosiirtoa.

debug Jos tätä siirtoa halutaan seurata lokitiedostosta niin anne­

taan parametrin aivoksi DEBUG. Muutoin arvoksi voidaan sijoittaa NODEBUG, jolloin siirrosta ei kirjoiteta lokitie­

dostoon mitään.

Taulukko 8: FTP-siirtoparametritiedoston kentät

Jos jollekin parametrille ei haluta antaa arvoa ollenkaan, voidaan sen paikalle kirjoittaa NULL. Tässä tapauksessa FTP-siirrossa jätetään vastaava komento antamatta. Poikkeuksena on filename-parametri, jonka ollessa NULL annetaan STOU-komento standardin mukaisena ilman tiedostonimeä.

TCP/IP FTP-protokollan käyttö25

Tiedonkeruuohjelman FTP-toteutukseen oli mahdollista valita kaksi eri lähesty­

mistapaa. Helpompi tapa olisi ollut käynnistää tiedonkeruuohjelmasta toinen

52

I stuntotason valvonta- ja tilastointiohjelmisto Tiedonkeruuohjelma

prosessi, joka olisi käyttänyt FTP-ohjelmaa kuten vuorovaikutteinen käyttäjä.

Olisi siis luotu siirto parametrien mukaan komentojono, jossa olisi annettu vuo­

rovaikutteisen FTP-asiakasohjelman komentoja.

Valitsin kuitenkin kunnianhimoisemman, mutta toisaalta paljon antoisamman ja tehokkaamman toteutustavan. Ohjelmoin tiedonkeruuohjelmaan oman FTP- asiakasohjelman. Koska tehtävänä oli vain siirtää yksi tiedosto toiseen konee­

seen, riittää yksinkertainen, suoritukseltaan virhetilanteita lukuunottamatta line­

aarinen FTP komentojen käyttö. Tämä näkyy liitteenä olevasta SESS_FTP.C- ohjelmatiedoston siirra_tiedosto()-aliohjelmasta, jonka runkona on for-silmuk- ka. Siirtoparametrien määräämät komennot annetaan tietyssä järjestyksessä ja virheen sattuessa koko siirrosta luovutaan. Seuraavassa kuvassa näytetään, minkälainen keskustelu syntyy siirtoparametrijoukolla:

• hostname = "katajka.op.fi"

• username = "kataja"

• password = "unixs5"

• directory = "D:\XFER"

• filename = "NULL"

• mode = "I"

• debug = "NODEBUG".

25Postel85

Istuntotason valvonta- ja tilastointiohjelmisto Tiedonkeruuohjelma

Tiedonkeruuohjelma Valvojakoneen FTP-palvelija

connect katajka.op.fi:ftp

USER kataja

PASS unixsS

CWD C:\XFER

TYPE

PASV

connect 157.124.2.13:4 * 256 + 10

220 FTP server ready

331 Enter password, please

230 User kataja logged in

250 Changed directory to C:\XFER

200 Binary mode OK

227 PORT 157,124,2,13,4,10

STOU

150 Storing file as FTP44544 copy file to 157.124.2.13:1034

г

dose connection to 157.1242.13:1034

QUIT

226 File transfer succeeded

dose connection to katajka.op.fi:ftp

221 Byel

Kuva 15: FTP-tiedostonsiirron esimerkki

Ensin tiedonkeruuohjelma avaa TCP-yhteyden valvojakoneen FTP-palvelijan porttiin. Valvojakoneen FTP-palvelija tervehtii asiakasta 220-sanomalla, joka ilmoittaa FTP-palvelijan olevan valmiina vastaanottamaan komentoja. Seuraa- vaksi asiakas antaa käyttäjätunnuksen ja siihen liittyvän salasanan. Jos ne ovat oikein (vasteet ovat kuvan mukaiset), palvelin vastaa 230-sanomalla. Seuraa- vaksi asiakas valitsee hakemiston, jonne talletettava tiedosto siirretään. Tämä

54

Istuntotason valvonta- ja tilastointiohjelmisto Tiedonkeruuohjelma

tehdään CWD (Change Working Directory, vaihda oletushakemisto) komen­

nolla. Seuraavaksi kerrotaan siirtotavan olevan binäärinen. Siirrettävä tiedosto­

han on tekstitiedosto, mutta samankaltaisten tiedostojärjestelmien kesken on tehokkaampaa käyttää binäärisiirtoa kuin tekstisiirtoa. Binäärisiirto ei muuta millään tavalla siirrettävää tiedostoa, kun taas tekstlsiirron on otettava kantaa rivinvaihtojen säilymiseen erilaisissa tiedostojärjestelmissä. Täten tiedostosta joudutaan etsimään rivinvaihdot.

Normaalisti FTP-palvelin avaa tiedonsiirtoyhteyden asiakasohjelmaan päin.

Tässä ohjelmassa oh kuitenkin yksinkertaisempaa ottaa kaikki yhteydet asia­

kasohjelmasta palvelimeen päin. PASV-komento määrää palvelinohjelman odottamaan asiakkaan yhteydenottoa. Palvelin kertoo 227-vastauksessaan, mi­

hin TCP-porttiin asiakasohjelman tulee yhteys muodostaa. Portti kerrotaan CSV-muodossa kuudella luvulla. Koska TCP-portin numero on kuusitoistabit- tinen ja toisaalta vasteen jokaisen luvun tulee tarkoittaa kahdeksanbittistä lu­

kua, jaetaan portin numero eniten merkitsevään tavuun ja vähiten merkitsevään tavuun. Tämän vuoksi esimerkiksi vasteen 192,126,6,105,4,10-portti tarkoittaa IP-osoitteen 192.126.6.105 TCP-porttia 4 * 256 + 10 = 1034.

Hyväksytyn P AS V-komennon jälkeen otetaan tiedonsiirtoyhteys vasteen kerto­

maan porttiin. Sen jälkeen lähetetään ohjausyhteydelle komento STOU (Store Unique), joka tarkoittaa, että tieto talletetaan tiedostoon, jonka nimen FTP- palvelija saa itse muodostaa yksikäsitteiseksi. STOU-komennon vasteessa nu­

mero 150 on kerrottava käytetty tiedoston nimi. Tiedoston loputtua suljetaan tiedonsiirtoyhteys. Tämä on merkki FTP-palvelijalle, että tiedosto loppui.

Pal-Istuntotason valvonta- ja tilastointiohjelmisto Valvontaohjelma

velin vastaa kertomalla onnistuiko tiedonsiirto. Viimeiseksi annetaan QUIT-ko- mento ja suljetaan ohjausyhteys.

Edellä kuvattu siirto tehdään uudelleen jokaiselle määritellylle valvontakoneel- le.