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


1. Johdanto

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.

2. Yleiskuvaus

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ä.

3. Toiminnot

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.

4. Ulkoiset liittymät

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.

6. Laatusuunnitelma

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