Tik-76.115 Vaatimusmäärittely
Cluster
WWW-käyttötietojen klusterointi
http://www.hut.fi/~pemakela/ot/documents/vm.html
Viimeksi päivitetty 3.11. 1997
Sisällysluettelo
1. Johdanto
2. Yleiskuvaus
3. Toiminnot
4. Ulkoiset liittymät
5. Muut ominaisuudet
6. Laatusuunnitelma
- Tavoitteet
- Projektin tarkoituksena on laatia ohjelmisto, joka saamiensa www-palvelimen
lokitietojen pohjalta klusteroi käyttäjiä eli jaottelee käyttäjät erilaisiin
ryhmiin sen mukaan mitä he ovat www-palvelimelta hakeneet. Näin saatuja
tietoja käyttäjien klusteroitumisesta on tarkoitus käyttää mm. palvelimen
sisällön kehittämiseen, markkinointiin jne. Projektilla on kaksikin
asiakasta; TKK/TAI:n SmartPush-projekti sekä Aamulehtiyhtymä, varsinaisesti
tässä vaiheessa Kauppalehti Online, joka
tarjoaa projektin käyttöön www-palvelimensa lokitiedot. SmartPushin, jonka
osaksi tätä projektia kaavaillaan, lopullinen tavoite on kyetä tarjoamaan
käyttäjille vinkkejä uusista heitä kiinnostavista aiheista sen perusteella,
millaista tietoa he ovat tähän mennessä hakeneet ja mitä muut samoista
asioista kiinnostuneet ovat lukeneet. Kauppalehden tavoitteena on paitsi
seurannan kautta kehittää palvelimensa laatua ja kiinnostavuutta myös
käyttää saatuja tietoja mediamerkkinoinnissaan.
- Viitteitä
-
Common Log-formaatti
- Tämä dokumentti
-
Dokumentin tarkoitus on määritellä, mitkä ovat tärkeimmät ohjelmistolle
asetettavat vaatimukset sekä esitellä pääpiirteet projektista
ja sen tavoitteista.
- Luvussa 2 on esitelty yleiskuvaus
ohjelmiston suhteesta ympäristöön ja käyttäjiin sekä tärkeimmät
liittymät ja rajoitukset.
- Luvussa 3 on esitelty tärkeimmät
ohjelmalta vaadittavat toiminnot.
- Luvussa 4 on käsitelty tarkemmin luvussa
2 mainittuja liittymiä.
- Luvussa 5 on käsitelty ohjelmiston tärkeimpiä
ei-toiminnallisia ominaisuuksia.
- Luvussa 6 on lueteltu tärkeimpiä
kriteerejä projektin lopulliselle onnistumiselle.
- Käyttöympäristö
- Kauppalehdestä tuleva esimerkkidata käsittää paitsi www-palvelimen
lokitiedon myös käyttäjätietokannan. Kauppalehden sivuille pääsy
edellyttää käyttäjäksi rekisteröitymisen ja samalla käyttäjä
antaa joitakin henkilötietojaan. Rekisteröityneitä käyttäjiä on noin 45000 ja
päivittäin sivuilla vierailee noin 5000 kävijää. Näinollen jo pelkästään
päivittäinen lokitieto on useiden kymmenien megojen suuruinen.
Järjestelmän on toimittava sekä NT- että unix-ympäristössä, sillä
projektin kahdella asiakkaalla on erilaiset ympäristöt,
SmartPush-projektin käyttöympäristöksi on valittu Windows NT ja
Kauppalehdellä on Sun UltraSPARC-koneita.
- Liittymät
- Järjestelmä saa siis varsinaisia syöttötietoja kahdesta lähteestä,
www-palvelimen
tekstimuotoisesta lokitiedostosta sekä käyttäjätietokannasta, josta
saatavia tietoja voidaan käyttää esimerkiksi lokista haettavan datan
rajaamiseen tai muodostuneiden klustereiden visualisoimiseen. Kauppalehti
Onlinen käyttäjätietokanta on Oracle-tietokanta ja kyselyt siihen
tehdään SQL:llä. Lokitiedosto noudattaa
Common Log-formaattia. Lisäksi ohjelmisto lukee erillisestä
tiedostosta tiedon www-palvelimen sisällön rakenteesta, jotta ohjelmisto
osaa tehdä päätelmiä viitatun URL:n perusteella.
Käyttöliittymä on browseripohjainen eli ohjelmistoa pystyy käyttämään
www-selaimen avulla. Käyttöliittymästä tarkemmin luvussa
neljä-
- Käyttäjät
- Järjestelmä on tarkoitettu www-palveluntarjoajan käyttöön eli
käyttäjät ovat palvelimen ylläpitäjiä ja sisällöntuottajia.
Tulokset kiinnostavat varmasti myös markkinointipuolta, mikäli palvelin
tarjoaa maksullisia palveluita.
- Rajoitukset
- Toteutuskielet on jatkokehitysuunnitelmien vuoksi rajattu C++:aan
sekä Javaan. Java toteutetaan JDK 1.1:n mukaisesti ja javaosuuden
edellytetään toimivan Nescape-selaimilla.
Tietokantaliittymä on tämän projektin puitteissa rajattu kiinteään
tietokantaan eli online-yhteyttä elävään tietokantaan ei toteuteta (mutta
rajapinta tehdään niin geneeriseksi, että tietokantaliittymämoduli on
mahdolista vaihtaa mikäli ohjelman jatkokehityksessä tulee tällaisia
tarpeita).
Ohjelman käyttötapaukset on rajattu käyttäjän komennoista tapahtuvaan
käyttäjälokien prosessointiin eli tarkoitus ei ole toteuttaa
reaaliaikavaatimuksiltaan kriittistä demonia, joka tarkkailisi
automaattisesti koko ajan taustalla asiakkaiden www-käyttäytymistä.
Ohjelmiston toiminnot on määritelty tarkemmin erillisessä
toiminnallisessa määrittelyssä.
- Klusterointi
- Varsinainen käyttäjälokin klusterointioperaatio jakautuu loogisesti
kolmeen vaiheeseen: esiprosessointi, varsinainen analyysi sekä
jälkitarkastelu.
- Esiprosessointi
- Esiprosessoinnilla tarkoitetaan inputina tulevan käyttäjälokin
mahdollista muotoilua ennen varsinaisen analyysin alkua. Analysoitava
data voidaan rajoittaa esimerkiksi joko jollekin tietylle aikavälille
tai käyttäjien henkilötietojen avulla voidaan analyysi rajata koskemaan
vain tiettyä osaa käyttäjistä jne. Lisäksi lokitiedosta suodatetaan
pois tarpeettomat osat, kuten toimintopainikkeina käytetyt kuvat, joihin
on paljon viittauksia jne.
- Analyysi
- Analyysi eli varsinainen klusterointi on järjestelmän raskain osa,
jossa valitulla klusterointialgorimilla lasketaan yleensä varsin
mittavasta syötteestä muodostuneet klusterit. Klusterointialgoritmille
voidaan antaa erilaisia parametreja kuten mitä tietoja www-palvelimen
lokista käytetään, millaisia painokertoimia millekin tiedolle annetaan ja
millaisia etäisyysmittoja algoritmissa käytetään. Käytännössä tämä
konfigurointi tapahtuu samanaikaisesti esiprosessoinnin ja sen
konfiguroinnin kanssa.
- Jälkitarkastelu
- Jälkitarkastelu käsittää saadun klusteritiedon visualisoinnin sellaiseen
muotoon, että sitä voidaan käyttää hyväksi palvelimen käytön analyysissa,
palveluiden kehittämisessä edelleen paremmin asiakkaiden tarpeita
vastaavaksi sekä markkinoinnissa. Lisäksi jälkitarkastelussa tulee
ilmetä, millaisilla parametreilla ja syöttötiedoilla ko. tulokset
on saatu. Sen tulee tarjota mahdollisuus edetä helposti uudelleen
esiprosessointi- ja analyysivaiheisiin, mikäli analyysia halutaan
tarkentaa tai joitakin sen parametreja muuttaa. Tällöin analysointi
voidaan joko aloittaa alusta tai käyttää jo saatuja tuloksia
lähtökohtana.
- Seuraava kuva havainnollistaa ohjelman kolmijakoa
- Rinnakkaisuus
- Koska yhden analyysin laskemisen voidaan olettaa kestävän jopa useita
tunteja, tulee järjestelmän tulee mahdollistaa useiden analyysien ajaminen
joko rinnakkain tai sitten vaihtoehtoisesti jonossa ilman, että
analyysien välillä tarvitaan käyttäjältä mitään toimintoja.
- Tulosten tallennus ja tarkastelu
- Analyysien tulokset tulee oletusarvoisesti tallettaa niin, että
niitä voidaan analysoida myöhemmin. Tämä mahdollistaa useiden eri
parametreilla suoritetun analyysin vertailun niin, että kukin raskas
analysointioperaatio joudutaan ajamaan vain kerran. Lisäksi tuloksia
voidaan käyttää välituloksia eli pohjana uusille analyysikierroksille
mikäli analyysia halutaan tarkentaa.
- Käyttöliittymä
- Käyttöliittymä toteutetaan java-kielellä JDK 1.1:n mukaisesti
sellaiseksi, että ohjelmistoa pystyy käyttämään Netscape-selaimen 3- ja
4-versioilla. Käyttöliittymän toiminnot tulee ryhmitellä siten, että siitä
käy ilmi mikä toiminto tai parametrin muuttaminen vaatii datan
uudelleenanalysointia (raskas operaatio) ja mikä taas puolestaan
vaatii esim. ainoastaan uudenlaista visualisointia (nopeaa).
Jälkitarkasteluvaiheesta tulee päästä kätevästi analyysiprosessin
alkuun joko aloittamaan analyysi uudestaan tai jatkamaan analyysia
tästä vaiheesta samoilla tai muunnelluilla parametreilla.
Tämän yksittäisen analysointitehtävän lisäksi käyttöliittymän
tulee tarjota mahdollisuus hallita useampaa rinnakkaista analyysia
sekä verrata kahden tai useamman analyysin tuloksia keskenään.
-
- WWW-palvelimen käyttäjäloki
- WWW-palvelin tallentaa tietonsa tekstimuotoiseen lokiin
Common Log-formaatin mukaisesti. Lokiin on tallennettu mm.
käyttäjätunnus, aika, mistä käyttäjä
on tullut, siirtoaika jne. Tämän datan voidaan jonkin verran pienentää
poistamalla esim. pienet kuvatiedostot kuten mainokset ja erilaiset
toimintopainikkeet.
- Käyttäjätietokanta
- Kauppalehden käyttäjätietokanta on talletettu Oracle-tietokantaan,
johon tehdään kyselyjä SQL:n avulla. Tietokantaliittymästä suuunnitellaan
kuitenkin tämän projektin puitteissa mahdollisemman geneerinen oma
moduli, jotta sitä voidaan ohjelmiston
jatkokehityksessä muokata kulloisiinkin tarpeisiin sopivaksi.
5. Muut ominaisuudet
- Suorituskyky
- Koska ohjelmisto on tarkoitettu ajettavaksi interaktiivisesti
eikä pyörimään taustalla, ei varsinaisen analyysivaiheen tehokkuus
ole kriittisimpiä tekijöitä ohjelman käytettävyyden kannalta. Syöttötiedot
ovat joka tapauksessa niin isoja, että analyysivaiheen kesto mitataan
kuitenkin vähintään kymmenissä minuuteissa, todennäköisesti tunneissa.
Sen sijaan ohjelman interaktiivinen osa eli analyysin parametrien muuttaminen
sekä tulosten jälkitarkastelu ja visualisointi on luonnollisesti tapahduttava
sujuvasti.
- Käytettävyys
- Koska ohjelma tulee ensisijaisesti www-palvelimen ylläpidon käyttöön,
voidaan olettaa loppukäyttäjien olevan tottuneita tietokoneen käyttäjiä,
jotka ovat kiinnostuneita asiasta ja tarvittaessa valmiit jopa lukemaan
manuaaleja. Niinpä käyttöliittymää suunniteltaessa avainsanoja ovatkin
toimintojen itsestäänselvyyden sijasta loogisuus, sujuvuus ja
tehokkuus.
- Ylläpidettävyys
- Ohjelman ylläpidettävyys ja modulaarisuus ovat tärkeitä, sillä
molemmilla asiakkailla on kiinnostusta jatkaa ohjelmiston kehitystä
mikäli projektin tulokset ovat positiivisia. Mahdollisimman suuri osa
ohjelmistosta tulisi toteuttaa erillisinä moduleina, jotka voidaan korvata
toisilla, esimerkiksi varsinaisen klusterointialgoritmin muuttaminen
jälkeenpäin voi olla tarpeellista mikäli klusterointitarpeet eroavat
kovin paljon tässä vaiheessa ajatelluista.
- Siirrettävyys
- Ohjelmiston siirrettävyys on huomioitava erityisesti koko projektin ajan
jo pelkästään siitä syystä, että ohjelmisto on heti aluksi menossa sekä
NT- että unix-ympäristöön.
Ohjelman keskeisimpinä tavoitteina voidaan pitää seuraavia:
- 1. Toimiva klusterointi
- Kaiken a ja o, tämän takia koko projekti on ylipäätään olemassa. Ohjelman
on tarkoitus muodostaa annetusta syötteestä sopivilla parametreilla
järkeviä klustereita.
- 2. Visualisointi ja havainnollisuus
- Saadut klusterit on pystyttävä havainnollistamaan sekä tallentamaan
niin, että hankittua tietoa pystytään soveltamaan.
- 3. Modulaarisuus
- Ohjelmasta pitää pystyä jatkokehityksessä muuttamaan tarvittavia
osia aina senhetkisiin tarpeisiin sopiviksi, esim. saatujen
käyttäjätietojen sisältö ja esitysmuoto saattaa poiketa hyvinkin
paljon nyt käsiteltävistä Kauppalehti Onlinen asiakastiedoista.
- 4. Siirrettävyys
- Ohjelmisto tulee olla portattavissa kohtuullisella vaivalla
erilaisiin ympäristöihin, erilaisille www-selainohjelmille jne.
- 5. Laajennettavuus
- Koska asiakkaillamme on jatkokehityssuunnitelmia, on mahdollisuus
uusien ominaisuuksien lisäämiseen itsestäänselvyys.
- 6. Selkeä käyttöliittymä
- Käyttöliittymän selkeyden ja johdonmukaisuuden voidaan katsoa olevan
aina merkittävä osa ohjelmiston laatua.
- 7. Ymmärrettävä tekninen dokumentointi
- Asiakkailla jatkokehityssuunnitelmia ohjelmiston suhteen, joten on
huomioitava myös se, että joku tämän projektin ulkopuolinenkin saisi
joskus selvää siitä mitä on tehty.
- 8. Selkeä ja johdonmukainen dokumentti käyttäjille
- Vaikka käyttäjien (www-palvelimen ylläpidon) voidaankin olettaa
olevan kokeneita tietokoneen käyttäjiä vailla pahempaa rimakauhua,
tämä ohjelma käsittelee todennäköisesti heillekin vieraita sovellusalueita
(esim. klusterointialgoritmin ohjaus ja konfigurointi). Tämä lisää
osaltaan selkeän ja havainnollisen käyttöohejeen tärkeyttä.
- 9. Tehokkuus
- Kuten yllä on mainittu, tämä ei vaadi tässä projektissa erikoista
huomiota, koska ohjelmistolla ei ole erityisiä reaaliaikavaatimuksia.
Kuitenkin tehokkuuden huomiointi jossakin mittakaavassa voidaan katsoa
jossain määrin aina kuuluvaksi ohjelmistokehitykseen.
pemakela@cc.hut.fi