Tik-76.115 Toiminnallinen määrittely

Cluster

http://www.hut.fi/~pemakela/ot/documents/to.html
Viimeksi päivitetty 3.11. 1997.


Sisällysluettelo

Yhteenveto

1. Johdanto
2. Yleiskuvaus
3. Tiedot ja tietokanta
4. Toiminnot
5. Ulkoiset liittymät
6. Muut ominaisuudet


Yhteenveto

Projekti
Kyseessä olevan projektin tarkoituksena on laatia ohjelmisto, joka lukee www-palvelimen lokitietoja sekä tiedot www-palvelun rakenteesta ja muodostaa näistä tiedoista käyttäjäklustereita, ts. jakaa www-palvelimella käyneet käyttäjät erilaisiin ryhmiin perustuen siihen, mitä, milloin, missä järjestyksessä jne. käyttäjät ovat palvelimelta hakeneet. Palvelimen käyttäjätietojen rajauksessa sekä saatujen klusterien jälkitarkastelussa voidaan käyttää hyväksi niitä henkilötietoja, jotka käyttäjät ovat itsestään antaneet rekisteröityessään palvelun käyttäjiksi. Ohjelmiston kehityksessä käytetään esimerkkipalvelimena Kauppalehti Online-palvelua, sen www-palvelimen lokitietoja sekä käyttäjätietokantaa.
Tämä dokumentti
Tämä dokumentti, toiminnallinen määrittely, on tarkennettu versio vaatimusmäärittelystä ja tämän dokumentin tarkoituksena on tarkentaa asiakkaan vaatimukset ja toiveet sekä rajata ja määritellä mahdollisista ominaisuuksista ne mitä toteutetaan sekä miten ne toteutetaan. Dokumentissa esitellään ohjelma pääpiirteittäin, sen liittymät, käyttöympäristö, käyttäjät jne., kuvataan ohjelmiston sisältämien tietokantojen sisällöt, ylimmän tason tietovirtakaaviot sekä määritellään ohjelmistoon kuuluvat toiminnot.
Ohjelmiston yleiskuvaus
Ohjelmisto jakautuu ylimmällä tasolla kolmeen loogiseen mosuliin: tiedon esiprosessointiin, analyysiin sakä jälkitarkasteluun. Esiprosessointi käsittää klusteroitavan aineiston rajauksen sekä varsinaisen klusteroinnin konfiguroimisen ennen varsinaista analyysivaihetta, jossa saaduista tiedoista muodostetaan klustereita. Jälkitarkasteluvaiheessa saadut klusteritiedot tallennetaan jatkotarkastelua ja -käyttöä varten, tuloksia voidaan visualisoida ja niiden perusteella voidaan ruveta suorittamaan uutta analyysia joko tyhjästä tai sitten edellisen analyysin tuloksista tarkentamalla.
Ohjelmisto tehdään C++:lla sekä Javalla ja sen on toimittava sekä Windows NT-että Unix-ympäristöissä. Ohjelmiston käyttöliittymä on java-pohjainen ja sitä voidaan käyttää Netscape-selaimen 3- ja 4-versioilla. Ohjelmiston ensisijaisia käyttäjiä ovat www-palvelimien ylläpitäjät ja palveluntarjoajat.
Liittymät
Ohjelmisto lukee www-palvelimen rakenteen erillisestä tiedostosta ja lokitiedot www-palvelimen tuottamasta tekstimuotoisesta lokista. Tämä loki muunnetaan myös tietokannaksi käsittelyn helppottamiseksi. Käyttäjätiedot ovat jo valmiiksi Oracle-kannassa.
Toiminnot
Toiminnot on jaettu kolmeen ryhmään: varsinaiseen klusterointiin liittyvät toiminnot, tallennukseen liittyvät toiminnot sekä visualisointiin liittyvät toiminnot. Toiminnot on selvitetty tarkemmin luvussa 4.
Käyttöliittymä
Käyttöliittymä on jaettu käyttäjän kannalta katsottuna kolmeen loogisen kokonaisuuteen: klusterointi ja siihen liittyvät konfigurointi- ym. toimenpiteet, tulosten visualisointi sekä tulosten hallinta, joka käsittää mahdollisuuden tallentaa, ladata ja vertailla eri aikoina tehtyjä klusterointianalyyseja.

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

Yleistä
Ohjelmisto jakautuu kolmeen osaan, esiprosessointiin, varsinaiseen analyysiin sekä syntyneiden tulosten jälkitarkasteluun. Esiprosessointivaiheessa WWW-palvelun lokista ja ja www-palvelun rakennetiedoista rajataan klusteroitava otanta ja konfiguroidaan varsinaisessa analyysivaiheessa käytettävää algoritmia. Varsinaisen analyysin jälkeen seuraa jälkitarkasteluvaihe, jossa esitetään saadut klusterit, tallennetaan tulokset ja mahdollisesti jatketaan analysointia samoilla tai muutetuilla parametreilla. Vaiheiden toiminnot on selvitetty myöhemmin tässä dokumentissa, seuraava kuva selventänee ohjelman yleistä rakennetta.
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öitymistä 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 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. Alunperin tekstimuotoisena oleva lokitieto luetaan esiprosessointivaiheessa tietokantaan, jotta sen käsittely helpottuu. Liityntä käyttäjätietokantaan toteutetaan tämän projektin puitteissa yhteytenä kopioon tietokannasta, varsinainen online-yhteys elävään tietokantaan jää mahdolliseen jatkokehitykseen.
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ä serveriä, joka tarkkailisi koko ajan asiakkaiden www-käyttäytymistä.

3.1. Käyttäjätietokanta

Käyttäjä- ja klusteritietokannoissa käytetyt taulut selviävät oheisesta ER-kaaviosta:

3.2. Init-tiedosto

Init-tiedostoa käytetään määrittelemään sellaisia klusterointiparametreja, joita harvemmin muutetaan. Näitä ovat algoritmispesifiset parametrit sekä www-palvelun rakenne. Webbipalvelun rakenne ilmoitetaan tiedostossa seuraavasti:
[looginen ryhmä]:
[url1]
[url2]
Url:t voidaan määritellä säännöllisinä lausekkeina. Lokissa olevat url:t mapataan näillä määrityksillä ryhmiin.

3.3 Tietovirrat

Ohjelmiston tietovirroista on laadittu kaksi kaaviota, joista ensimmäinen sisältää ohjelmiston tärkeimmät toiminnot. Nämä toiminnot on tarkoitus saada alphaprotovaiheessa demottavaan kuntoon.



Laajennettu tietovirtakaavio käsittää jo kaikki lopulliseen ohjelmistoon tulevat tietovirrat.

4. Toiminnot

Tässä luvussa määritellään tarkasti ohjelmiston vaatimukset, käytettävä formaatti on määritelty alla olevalla tavalla. Joissain kohdissa on käytetty lyhennettä TBD, joka tarkoittaa To Be Defined. Tämä tarkoittaa,että kyseinen kohta määritellään projektin myöhäisemmässä vaiheessa.


Vaatimusmäärittelyn formaatti:


4.1 Klusterointiin liittyvät toiminnot

4.2 Klustereiden tallennukseen liittyvät toiminnot

4.3 Klustereiden visualisointiin liittyvät toiminnot

5. Ulkoiset liittymät

5.1. Käyttöliittymä

Käyttöliittymä koostuu seuraavasti kolmesta loogisesta kokonaisuudesta: Klusteroinnin määrittely, aloittaminen ja seuraaminen

Klusteroinnin määrittely, aloittaminen ja seuraaminen
Tässä dialogissa käyttäjä voi valita lokin suodatukseen vaikuttavat parametrit, jotka voidaan jakaa kahteen loogisesti erilliseen ryhmään. Ensimmäisenä käyttäjä voi valita suodatusparametreja käyttäjätietojen perusteella. Näitä tietoja ovat ikä, sukupuoli, yritys-/yksityiskäyttäjä, ilmais-/maksullisten palvelujen käyttäjä, maa, miten kauan on käyttänyt palvelua jne. Toisena käyttäjä voi valita suodatusparametreiksi erilaisia aikajaksoja, jotka ovat: lokin keruuaika, päivän sisällä oleva käyttöaika (esim. 8-16) sekä viikon sisällä oleva käyttöaika(esim. ma-pe). Klusterointitulokselle annetaan myöskin nimi.
Kun käyttäjä on valinnut sopivat suodatusparametrit, hän voi aloittaa klusteroinnin. Klusteroinnin edistymisestä ilmoitetaan käyttäjälle(esim. progress bar).
Klusterointitulosten visualisointi
Tämä osa tulee pääikkunaan. klusterointitulosta voidaan tarkastella kahdella tasolla. Ylemmällä tasolla näkyvät kaikki klusterit ja niiden suhde toisiinsa(esim. tietyn kokoiset ympyrät tietyllä etäisyydellä toisistaan). Kun klusteria klikkaa, tulee näkyviin tarkempi tieto klusterista. Klusterin sisäistä rakennetta voi tarkastella suhteessa sen sisältämien käyttäjien demografisiin tietoihin. Näitä tietoja ovat esimerkiksi sukupuoli, maa, ammatti, asema, tehtävä, toimiala, käyttöikä, yritys/yksityiskäyttäjä. Tarkastelumuotona käytetään esimerkiksi pie chartia
Klusterointitulosten hallinta
Tässä dialogissa vanhoja klusterikannassa olevia klusterointituloksia voidaan ladata, selata ja tuhota.

6. Muut ominaisuudet

Suorituskyky
Koska ohjelmisto on tarkoitettu ajettavaksi eräajotyyppisesti 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 jouhevasti.
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ä onkin tärkeämpää keskittyä toimintojen itsestäänselvyyden sijasta tulosten hyvään visualisointiin sekä siihen, että ohjelmisto olisi tottuneelle käyttäjälle looginen, sujuva ja tehokas käyttää.
Ylläpidettävyys
Ohjelman ylläpidettävyys ja modulaarisuus ovat tärkeitä, sillä molemmilla asiakkailla on kiinnostusta jatkaa ohjelmiston jatkokehitystä 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 koko projektin aikana jo pelkästään siitä syystä, että ohjelmisto on heti aluksi menossa sekä NT- että unix-ympäristöön.


pemakela@cc.hut.fi
stlaitin@cc.hut.fi
jarautia@cc.hut.fi