Coma - Sovellusprojekti
Tietotekniikan Sovellusprojekti
Sovellusraportti 1.1
31.5.2004
JYVÄSKYLÄN YLIOPISTO
TIETOTEKNIIKAN LAITOS
Tekijät: Hanna Alm, Kari Arkko, Pentti Nakari, Lassi Paavolainen
Työn nimi: Sovellusraportti
Työ: Coma-Sovellusprojekti
Sivumäärä: 36
Tilaaja: Jyväskylän yliopisto, tietotekniikan laitos
Tiivistelmä: Tämä
dokumentti on Coma-projektin Sovellusraportti, jossa kuvataan Coma-projektin
sovelluksien toteutusta.
Avainsanat: konferenssijulkaisun
generoiva sovellus, käyttöliittymä, parserisovellus
Versiohistoria
Versio
|
Pvm |
Kuvaus |
Tekijä |
0.1 |
05.05.2004 |
Rakenteen
hahmottaminen |
KA |
0.2 |
07.05.2004 |
Sisältöä |
HA, KA |
0.3 |
10.05.2004 |
Sisältöä, kuvia |
HA |
0.4 |
12.05.2004 |
v0.3
kokouksessa esille tulleet lisäykset, luvun 5.3 muutokset |
HA, LP, PN |
0.5 |
21.05.2004 |
v0.4
kokouksessa esille tulleet korjaukset |
HA, LP |
1.0 |
24.05.2004 |
hyväksytty
versio |
LP |
1.1 |
31.05.2004 |
Lisätty lukuun
9 jatkokehitysideoita sekä tunnettuja ohjelmavirheitä |
LP |
Tekijät
HA – Hanna Alm
KA – Kari Arkko
PN – Pentti
Nakari
LP – Lassi
Paavolainen
Coma-projekti
Projektiryhmä: Hanna Alm
Kari
Arkko
Pentti
Nakari
Lassi
Paavolainen
Tilaaja: Jyväskylän
yliopisto, Tietotekniikan laitos
Kirsi
Majava
Pekka
Neittaanmäki
Tuomo
Rossi
Vastaava ohjaaja: Markus
Inkeroinen
Tekninen ohjaaja: Tero
Toivonen
Visuaalinen konsultti: Jaana
Rannanpää
Kotisivu: http://sovellusprojektit.it.jyu.fi/coma/
Laitteet: Neljä PC-konetta, joissa kahdessa oli käyttöjärjestelmänä Windows XP professional, ja kahdessa Linux.
Tiivistelmä: Coma-projekti oli Jyväskylän yliopiston tietotekniikan laitoksella kevään 2004 aikana toteutettu Sovellusprojekti. Coma-projekti suunnitteli ja toteutti yleiskäyttöisen sovelluksen konferenssi-proceedingsien tekemiseen.
Sisällys
5. Sovelluksien
toteutus ja rakenne
5.3.2. Topics_or_sessiontypes.pm
5.3.4. Articles_in_sessions.pm..
5.4. Kokoomajulkaisun
generoiva sovellus
6.2. Aihealueiden
ja sessiotyyppien hallinta
6.5. Julkaisun
ulkoasun hallinta
6.8. Artikkelin
aihealueen ja sessiotyypin hallinta
6.9. Sessioiden
sisällön hallinta
7.1. DatabaseE.pm-moduulin
tarvitsema tiedosto
7.2. Kokoomajulkaisun
generoivan sovelluksen tiedostot
7.2.1. Sovelluksen
tarvitsemat tiedostot
7.2.2. Sovelluksen
tuottamat tiedostot
8. Sovelluksille
asetetut vaatimukset
8.1.1. ECCOMAS2004
CD-ROM-proceedings
9.1. Paranneltavia
komponentteja
9.2. Uusien
toimintojen lisäämistä
Kuva
1. Projektin tuottama kokonaisuus.
Kuva 2. Toteutetun tietokannan ER-kaavio.
Kuva 12. Articles in Sessions -päävalikko.
Kuva 13. Articles in Sessions -sivu.
Coma-projekti toteutti kevään 2004 aikana Jyväskylässä 24–28.7.2004
järjestettävään ECCOMAS2004 (European Congress on Computational Methods in
Applied Sciences and Engineering) -konferenssiin liittyvän kokoomajulkaisun
pohjan luomiseen tarkoitetun sovelluksen. Sovelluksen alpha-versio, jolla
CD-ROM-proceedings saadaan tehdyksi, oli valmistuttava projektin aikana, jotta
jatkokehitys pääsee alkamaan kesäkuun alussa.
Projekti aloitettiin tilaajan tarpeesta saada kesän
ECCOMAS2004-konferenssin kokoomajulkaisu eli proceedings CD-ROM-muotoisena.
Samalla oli mietitty voisiko projektin yhteydessä tehdä yleiskäyttöisen
sovelluksen, jonka avulla proceedingsit voitaisiin luoda myös tulevaisuudessa
järjestettävistä konferens-seista ja tapahtumista melko helposti. Tämän takia
projektiryhmältä oli tilattu ECCOMAS2004-konferenssin CD-ROM-proceedings sekä
konferenssisovellus. Projektin edetessä kävi ilmi, että
konferenssisovelluksella olisi paljon erilaisia toimintoja. Projektin ollessa
rajoitettu käytännössä 4 kuukauteen, siirrettiin useita sovelluksen toimintoja
jatkokehitykselle ja mahdolliselle uudelle projektille.
Tässä dokumentissa kuvataan projektin tuottamia sovelluksia ja analysoidaan
niiden toteutusta.
Luvussa 2 esitellään dokumentissa käytettyjä termejä ja käsitteitä. Luvussa
3 luodaan yleiskatsaus projektin tuottamiin sovelluksiin. Luvussa 4 käsitellään
projektin suunnittelema tietokanta. Toteutettuja sovelluksia tarkastellaan
luvussa 5 ja käyttöliittymän toimintaa tarkastellaan luvussa 6. Luvussa 7
käsitellään sovelluksien tarvitsemia ja niiden tuottamia tiedostoja. Luku 8
sisältää sovelluksille asetettujen vaatimuksien täyttymisen analysointia.
Sovelluksen jatkokehitystä käsitellään
luvussa 9 ja luvussa 10 käsitellään testausta. Luku 11 sisältää ohjeita
sovelluksen ylläpitäjälle.
Luvussa
esitellään projektin kannalta keskeisiä termejä.
CSS Cascading Style Sheets, menetelmä ja kieli HTML-dokumenttien ulkoasun määrittelyyn niin, että ulkoasu ja dokumenttien sisältö voidaan pitää erillään toisistaan. [7]
ECCOMAS European Community on Computational Methods in Applied Sciences.
HTML HyperText
Markup Language, SGML-pohjainen kuvauskieli hypertekstidokumenttien laatimiseen. [7]
PDF Portable
document format, dokumenttimuoto joka on helppo siirtää eri
koneympäristöjen välillä. [7]
Konferenssisovellukseen liittyviä termejä.
Perl Practical
Extraction and Report Language, ajettaessa käännettävä vapaa
ohjelmointikieli, joka sopii teksti-tiedostojen tiedonhakuun, käsittelyyn ja
raportointiin. [7]
PostgreSQL Avoin relaatiotietokantapalvelin.
SQL Structured
Query Language, standardoitu kieli tietokantojen käsittelyyn. [8]
Template Sivumalli,
WWW-ohjelmoinnin perustekniikka jolla saadaan ulkoasuun yhtenäinen rakenne. [9]
Coma-projekti toteutti kolme eri
sovellusta ja tietokannan. ECCOMAS2004- konferenssin tiedot sijaitsivat
projektia aloitettaessa hakemistorakenteessa. Parserisovellus, joka siirtää
datan hakemistorakenteesta tietokantaan, oli väliaikainen. Tulevaisuudessa
konferenssin tiedot tallennetaan suoraan tietokantaan. Konferenssisovellukseen
kuuluu kokoomajulkaisun generoiva sovellus ja käyttöliittymä. Käyttöliittymällä
hallitaan tietokannan tietoja. Generoiva sovellus luo tietokannan tiedoista
kokoomajulkaisun.
Kuva 1. Projektin tuottama kokonaisuus.
Luvussa esitellään projektin
yhteydessä toteutetun tietokannan rakenne ja toteutustapa.
Tietokantapalvelimeksi valittiin PostgreSQL versio 7.3.4-RH. Se oli ominaisuuksiltaan parhaiten
projektin käyttöön sopiva avoin tietokantapalvelin. Tietokanta luotiin
käyttämällä SQL-lauseita.
Kuvassa, Kuva 2, on esitettynä toteutetun tietokannan ER-kaavio.
Kuva 2. Toteutetun tietokannan ER-kaavio.
Sovellussuunnitelmasta [1] poiketen Topic- ja Session-taulujen
väliin on lisätty suhde. Suhdetta tarvitaan liitettäessä sessio tiettyyn
aihealueeseen.
15. Topic
Sessio voi kuulua
vain yhteen aihealueeseen, mutta aihealueeseen voi kuulua useita sessioita.
Ohjelmointikielenä oli Perlin versio 5.8.3.
Käytetty HTML-koodi on HTML 4.01 Transitional -standardin [6] mukaista ja
validoitiin World Wide Web Consortiumin validaattorilla. [11]
HTML-sivujen tyyli määriteltiin CSS Level 2 -standardin [4] mukaisilla
CSS-tyylitiedostoilla. CSS-koodi validoitiin World Wide Web Consortiumin
validaattorilla.[10]
Tällä hetkellä (ECCOMAS 2004) artikkelit ja niiden tekijätiedot on kerätty
WWW-käyttöliittymän kautta kovalevyllä olevaan hakemistorakenteeseen.
Hakemistorakenteessa tietoja käsitellään erilaisilla skripteillä. Parserisovellus
siirtää tiedot hakemistorakenteesta tietokantaan.
Eri hakemistojen alaisuudessa (esim. contributed, minisymposium) olevat
artikkelien tiivistelmät ja kirjoittajatiedot sisältävät alihakemistot
siirretään ennen parserin ajamista samaan hakemistoon. Lopulliset artikkelit
ovat alihakemistoissa oman fullpaper-hakemistonsa alaisuudessa, joiden nimet
vastaavat artikkelien tiivistelmät ja kirjoittajatiedot sisältävien
hakemistojen nimiä. Eri aihepiirien ja artikkelityyppien nimet on lisättävä
tietokantaan tauluihin Topic ja Sessiontype. Koska numerointi tapahtuu
automaattisesti, on lisäämisen tapahduttava oikeassa järjestyksessä
(artikkelityyppien osalta tämä on merkitty parserin lähdekoodin kommentteihin,
aihepiirien numerointi noudattaa ECCOMAS2004-WWW-sivuilla olevaa järjestystä).
Parseri käy läpi kirjoittajatietojen ja tiivistelmien artikkelihakemistot
sisältävän hakemistorakenteen ja käsittelee kaikki saved_[0-9]+-muotoa olevat alihakemistot, jotka eivät ole tyhjiä.
Jos alihakemistosta löytyy finish.txt-tiedosto, sen sisältö luetaan. Mikäli
artikkeli on yhteyshenkilön hyväksymä (tiedoston sisältö accepted=1), luetaan myös topic.txt-tiedosto, jos se on olemassa. Jos
ensimmäinen author-tiedosto (author_1.txt) löytyy, etsitään silmukalla myös
mahdolliset muut author-tiedostot (author_n.txt saakka). Puuttuvista tiedostoista
tulostetaan virheilmoitus ajon aikana terminaaliin. Tiedostoista previewlength.txt ja previewordernum.txt luetaan esityksen kestoaika minuutteina
sekä järjestysnumero (minisymposiumit).
Jokaiselle käsiteltävälle artikkelille täytyy löytyä vastaava hakemisto
varsinaiset artikkelit sisältävästä hakemistopuusta (fullpaper). Mikäli jonkin
artikkelin osalta fullpaper-hakemisto puuttuu, parserin toiminta pysähtyy.
Tästä hakemistosta löytyvästä tekstitiedostosta (esim. fullpaper.040401193453.txt) luetaan artikkeliin liittyvät avainsanat. Lisäksi
artikkelin PDF-tiedoston (jonka nimi vastaa tekstitiedoston nimeä muuten,
paitsi tiedostomuodon tunnisteen osalta, esim. fullpaper.040401193453.pdf) polku lisätään tietokantaan. Parseri selvittää
myös artikkelin PDF-tiedoston tiedostokoon ja lisää sen tietokantaan.
Artikkelin, kirjoittajien ja avainsanojen ID-numerot generoidaan
parserilla, lopuksi ID-numeroiden automaattiset sekvenssit asetetaan alkamaan
seuraavasta numerosta, jolloin jälkikäteen lisätyt artikkelit ja kirjoittajat
saavat ID-numeron automaattisesti.
Tiedoissa olevat erikoismerkit, TeX-koodit ja muut poikkeamat pyritään
korjaamaan mahdollisuuksien mukaan. Erikoiskirjaimet pyritään korvaamaan
vastaavilla HTML-tageilla (esim. Š tai Š).
Ajon aikana parseri tulostaa lokitiedoston, johon on tulostettu
tietokantaan lisättävät tiedot sisältävien muuttujien sisältö. Parserin
ajamisen yhteydessä lokitiedosto tulisi ohjata tekstitiedostoon (esim. ./parseri > loki.txt), jolloin mahdolliset tietokannan ja Perl-tulkin
virheilmoitukset tulostuvat suoraan terminaaliin. Mahdolliset parserin itsensä
tulostamat virheilmoitukset tallentuvat lokitiedostoon.
Parserin käänteistä, tiedot tietokannasta hakemistorakenteeseen siirtävää,
versiota ei ole toteutettu ajanpuutteen vuoksi. Tilaaja päätti ettei toiminto
ole välttämätön.
Käyttöliittymä toimii WWW-ympäristössä. Sen pääosa on main.cgi, joka toimii käyttöliittymän ja *.pm moduuleiden rajapintana. Käyttöliittymän
osa, käyttäjän tunnistus, log.pm jätettiin kokonaan jakokehitykseen.
Tehtävä |
Moduuli keskustelee
tietokannan kanssa. |
|
Aliohjelma |
new() |
Luo uuden Database.pm-moduulin. |
connect(”file”) |
Lukee |
|
disconnect() |
Purkaa yhteyden tietokantaan. |
|
sql_query(”sql-lause”) |
Suorittaa tietokantaan sql-kyselyn ja palauttaa kyselyn tuloksen. |
|
Runsql(”sql-lause”) |
Ajaa tietokantaan sql-lauseen. |
Moduulista
toteutettiin myös DatabaseE.pm-versio, joka palauttaa ilmenneet
virheilmoitukset.
Tehtävä |
Moduuli toimii yhdessä |
|
Aliohjelma |
new() |
Luo uuden Topics_or_sessiontypes.pm-moduulin. |
get_HTML(“site”,”sort”) |
Lukee tietokannasta site-parametrin arvosta riippuen Topic- tai Sessiontype-taulun tiedot ja lajittelee ne Palauttaa HTML-koodia. |
|
add(”site”,”tiedot”) |
Lisätään tietokantaan
tietoja. |
|
del(”site”,”@dels”) |
Poistetaan tietokannasta tietoja. |
|
update(”site”,”tiedot”) |
Päivitetään tietokannan tietoja. |
Poikkeuksia
sovellussuunnitelmaan:
·
Moduuli ei
ilmoita, jos muutettavaan aihealueeseen tai sessiotyyppiin on viitteitä.
Tehtävä |
Moduuli toimii yhdessä |
|
Aliohjelma |
new() |
Luo uuden Sessio.pm-moduulin. |
get_HTML() |
Palauttaa HTML-koodina |
|
add(”tiedot”) |
Lisätään tietokantaan
tietoja. |
|
del(”@dels”) |
Poistetaan tietokannasta tietoja. |
|
update(”tiedot”) |
Päivitetään tietokannan tietoja. |
Poikkeuksia
sovellussuunnitelmaan:
·
Sessiolla uutena
syötettävänä kenttänä aihealue.
·
Ei tarkista
päällekkäisyyksiä.
·
Ei ilmoita
oikeaa muotoa jos tiedot ovat väärässä muodossa.
·
Pakollisia
tietoja ovat alkamisaika, loppumisaika, sessiotyyppi ja aihealue.
Sovellussuunnitelmassa määriteltiin pakolliseksi nimi ja sessiotyyppi.
Tehtävä |
Moduuli toimii yhdessä |
|
Aliohjelma |
new() |
Luo uuden Articles_in_sessions.pm-moduulin. |
get_HTML(”Sessiontype”) |
Palauttaa HTML-koodina artikkelit, jotka kuuluvat parametrina annettuun sessiotyyppiin. |
|
update(”tiedot”) |
Päivitetään tietokannan tietoja. |
Tehtävä |
Moduuli toimii yhdessä |
|
Aliohjelma |
new() |
Luo uuden Schedule.pm-moduulin. |
get_HTML() |
Palauttaa HTML-koodina |
|
add(”tiedot”) |
Lisätään tietokantaan tietoja. |
Poikkeuksia
sovellussuunnitelmaan:
· Moduuli ei tarkasta eikä ilmoita, jos aikataulussa päällekkäisyyksiä.
Tehtävä |
Moduuli toimii yhdessä |
|
Aliohjelma |
new() |
Luo uuden Appearence.pm-moduulin. |
get_HTML() |
|
|
update(”tiedot”) |
|
Poikkeuksia
sovellussuunnitelmaan:
·
Toteutusta ei
ehditty tekemään, sivun ulkoasu toimii mutta toiminnallisuus puuttuu.
Tehtävä |
Moduuli toimii yhdessä |
|
Aliohjelma |
new() |
Luo uuden Disks.pm-moduulin. |
get_HTML() |
Palauttaa HTML-koodina
levyjen tiedot. |
|
add(”tiedot”) |
Lisätään tietokantaan
tietoja. |
|
del(”@dels”) |
Poistetaan tietokannasta tietoja. |
|
update(”tiedot”) |
Päivitetään tietokannan tietoja. |
Poikkeuksia
sovellussuunnitelmaan:
· Moduuli ei ilmoita sivustojen vaatimaa levytilaa.
Tehtävä |
Moduuli toimii yhdessä |
|
Aliohjelma |
new() |
Luo uuden Partition.pm-moduulin. |
get_HTML(”parametri”) |
Palauttaa HTML-koodina tiedot artikkeleiden levyjaosta järjestettynä parametrin mukaan. |
|
del(”@dels”) |
Poistetaan levyjako. |
|
update(”tiedot”) |
Päivitetään levyjaon tietoja. |
Poikkeuksia
sovellussuunnitelmaan:
· Voidaan lajitella levyn ja artikkelin koon mukaan.
Tehtävä |
Moduuli toimii yhdessä |
|
Aliohjelma |
new() |
Luo uuden Move_article.pm-moduulin. |
get_HTML(”parametri”) |
Palauttaa HTML-koodina tiedot artikkeleiden kuulumisesta sessiotyyppeihin ja aihealueisiin järjestettynä parametrin mukaan. |
|
update(”tiedot”) |
Päivitetään tietokannan tietoja. |
Skripti generoi HTML-sivuja parametrina tuotuun hakemistoon käyttäen
apunaan article.tmpl-tiedostoa.
Skriptille voidaan viedä kolme parametria seuraavassa järjestyksessä:
Skripti hakee tietokannasta
konferenssin aihealueet ja sessiotyypit sekä tallentaa nämä omiin
taulukoihinsa. Näihin taulukoihin lisätään myös aihealue ja sessiotyyppi 0.All,
joka listaa kaikki artikkelit. Tämän jälkeen luodaan jokaista
aihealue–sessiotyyppi-yhdistelmää varten oma HTML-sivu.
HTML-sivua varten haetaan kyseisessä
aihealue–sessiotyyppi-yhdistelmässä esitetyt artikkelit. Mikäli artikkeli
löytyy samalta levyltä luodaan linkki artikkeliin, muuten virhesivulle.
Aihealueet viedään template-tiedostolle taulukossa nimeltä topics
sekä sessiotyypit taulukossa sessiontypes. Taulukoissa on sijoitettu hajautustaulun
avaimen title taakse kyseinen aihealueen tai sessiotyypin nimi
sekä avaimen address taakse kyseisen linkin osoite.
Sisältöosa viedään template-tiedostolle taulukossa nimeltä articles, jonka jokainen alkio sisältää hajautustaulussa seuraavat avaimet:
Skripti generoi HTML-sivuja parametrina tuotuun hakemistoon. Skripti luo
yhtä monta HTML-sivua kuin eri kirjaimella alkavia kirjoittajia löytyy.
Generoinnissa käytetään hyväksi template-tiedostoa author.tmpl.
Skriptille voidaan viedä kolme parametria seuraavassa järjestyksessä:
Skripti hakee tietokannasta kaikkien kirjoittajien nimet. Tämän jälkeen
luodaan taulukko, johon sijoitetaan kaikki löytyneet erilaiset sukunimen
alkukirjaimet aakkosjärjestyksessä. Taulukon jokaisessa alkiossa on avaimen alphabet takana kyseinen aakkonen. Kyseinen taulukko viedään template-tiedostolle
nimellä alphabets. Taulukko käydään läpi ja jokaista alkiota varten
luodaan oma HTML-sivu.
Sisältöosaa varten skripti hakee tietokannasta kirjoittajien kirjoittamat
artikkelit, näiden esityssessiot sekä artikkeleiden muut kirjoittajat. Lisäksi
tutkitaan sijaitseeko artikkeli luotavalla levyllä vai jollain toisella
levyllä. Nämä tiedot viedään templatelle taulukossa nimeltä authors, jonka jokainen alkio sisältää seuraavat avaimet:
Skripti generoi HTML-sivuja parametrina tuotuun hakemistoon käyttäen
apunaan template-tiedostoa daati.tmpl.
Skriptille voidaan viedä kaksi parametria seuraavassa järjestyksessä:
Skripti hakee tietokannasta konferenssin aikataulun ja luo jokaista
aikataulun osaa, jonka aikana on esitetty sessio(ita), varten oman HTML-sivun.
Template-tiedostolle viedään yleiset tiedot seuraavan nimisissä
muuttujissa:
startdate
, ajankohdan alkamispäivä.
Tämän lisäksi haetaan tietokannasta kyseisellä ajankohdalla esitetyt
sessiot. Sessioiden tiedot viedään template-tiedostolle taulukossa nimeltä sessions. Taulukon jokainen alkio sisältää kyseisen session nimen title-avaimen
takana.
Skripti hallinnoi koko julkaisun luomisprosessia.
Skriptille voidaan viedä kaksi parametria seuraavassa järjestyksessä:
Skripti generoi kaksi log-tiedostoa. log.txt-tiedosto sisältää tiedon mitä kaikkea on
onnistuttu tekemään ja err.txt sisältää generoitaessa syntyneet virheilmoitukset.
Skripti hakee ensin tietokannasta tiedot kuinka monta eri levyä luodaan.
Tämän jälkeen luodaan ensimmäiselle levylle oma alihakemisto. Kyseiseen
alihakemistoon luodaan proceedings
-hakemisto ja tähän hakemistoon edelleen
alihakemisto nimeltä pdf
, johon kopioidaan kaikki kyseiselle levylle tulevat artikkelit. Artikkelit
nimetään artikkelin id-numeron mukaan muotoon #.pdf
eli esimerkiksi 51.pdf
. Seuraavaksi luodaan vielä parametrien
perusteella hakemistot selausmahdollisuuksia varten sekä pics-hakemisto
kuvia varten. Seuraavassa listassa on lueteltu hakemistot, joihin eri
selausmahdollisuudet luodaan:
/proceedings/article
, hakemistoon article listing -sivut.
/proceedings/author
, hakemistoon author listing -sivut.
/proceedings/daati
, hakemistoon date and time -sivut.
/proceedings/schedule
, hakemistoon schedule-sivun.
/proceedings/session
, hakemistoon session-sivut.
/proceedings/sessionl
, hakemistoon session listing -sivut.
Jokaisen selaussivuhakemiston luomisen jälkeen kutsutaan kyseiset selaussivut
generoivaa skriptiä. Skripteille viedään parametrina edellä mainitussa listassa
oleva hakemisto sekä tieto mitä muita selausmahdollisuuksia luodaan. Ainoa
skripti jota kutsutaan parametreista välittämättä on proceed.pl
, joka luo julkaisun pääsivun.
Skripti generoi Proceedings Mainpage -HTML-sivun, parametrina
tuotuun hakemistoon. Tämän lisäksi tutkitaan muut parametrit, joiden
perusteella luodaan sivulle linkit eri selausmahdollisuuksiin.
Skriptille voidaan viedä kaksi parametria seuraavassa järjestyksessä:
Skripti tutkii tietokannasta ensimmäisen
generoitavan author listing -sivun ja vie template-tiedostolle eri selausmahdollisuudet seuraavissa
muuttujissa:
Skripti tarkastaa luotavien levyjen määrän ja luo jokaiselle levylle oman
ilmoitussivun. Sivulla on
sisältönä ilmoitus; “The article
you were looking for is in disk:Disknumber/name”. Luotaessa selaussivuja, artikkelit, jotka eivät sijaitse luotavalla
levyllä, linkitetään näihin ilmoitussivuihin.
Skripti generoi HTML-sivun parametrina tuotuun hakemistoon, käyttäen
apunaan template-tiedostoa schedule.tmpl.
Skriptille voidaan viedä kaksi parametria seuraavassa järjestyksessä:
Skripti hakee tietokannasta konferenssin rakenteen ja tallentaa taulukon
jokaiseen alkioon yhden kellonajan tiedot. Jokainen taulukon alkio pitää
sisällään uuden taulukon, johon on tallennettu kyseiselle riville tulevat
aikataulun osat. Tämän taulukon jokainen alkio sisältää tietoja seuraavien
avaimien takana:
Koko aikataulu viedään template-tiedostolle nimellä schedule. Tämän taulukon jokainen alkio pitää sisällään avaimen row
takana yhden rivin tiedot.
Skripti generoi HTML-sivut parametrina tuotuun hakemistoon. Skripti luo
jokaiselle sessiolle oman HTML-sivun. Luonnin yhteydessä käytetään
template-tiedostoa session.tmpl.
Skriptille voidaan viedä kolme parametria seuraavassa järjestyksessä:
Skripti luo ensin taulukon, johon
haetaan tietokannasta kaikki sessiot. Jokaiselle sessiolle luodaan HTML-sivu
käymällä kaikki taulukon alkiot läpi.
Sessiota varten haetaan tietokannasta sessiossa esitettyjen artikkeleiden
otsikot sekä jokaisen artikkelin kirjoittajien nimet. Näiden lisäksi haetaan
session organizerien ja chairmanin nimet, mikäli nämä ovat
tallennettu tietokantaan. Session tiedot viedään template-tiedostolle seuraavan
nimisten avaimien takana:
Näiden lisäksi sessiossa esitetyt artikkelit viedään template-tiedostolle
taulukossa articles, jossa jokainen alkio sisältää tiedot seuraavien
avaimien takana:
Skripti generoi HTML-sivut parametrina tuotuun hakemistoon. Skripti luo
oman HTML-sivun jokaista aihealue–sessiotyyppi-yhdistelmää varten. HTML-sivujen
luonnissa käytetään apuna template-tiedostoa sessionl.tmpl.
Skriptille voidaan viedä kaksi parametria seuraavassa järjestyksessä:
Skripti hakee ensin tietokannasta kaikki aihealueet ja sessiotyypit ja
tallentaa ne omiin taulukoihinsa. Näihin taulukoihin lisätään alkuun aihealue
tai sessiotyyppi 0.All, joka sisältää kaikki artikkelit. Tämän jälkeen luodaan
jokaista aihealue–sessiotyyppi-yhdistelmää varten oma sivu.
Aihealueet viedään template-tiedostolle taulukossa nimeltä topics
sekä sessiotyypit taulukossa sessiontypes. Taulukoissa on sijoitettu hajautustaulun
avaimen title perään kyseinen aihealueen tai sessiotyypin nimi
ja avaimen address taakse sivun osoite.
Sisältöosaa varten haetaan tietokannasta kyseisen aihealueen ja
sessiotyypin sessioiden nimet ja pitoajat. Nämä tallennetaan omaan
taulukkoonsa. Sisältöosa viedään template-tiedostolle taulukossa nimeltä sessions, jonka jokainen alkio sisältää hajautustaulussa seuraavat avaimet:
Luvussa on esitetty käyttöliittymän toiminta, lukua voidaan myös pitää
sovelluksen käsikirjana käyttäjälle.
Käyttöliittymän valikkorakenteesta, Kuva
3, voi valita sivun, jolla haluaa toimia. Sivuille
listautuu kyseiset tiedot tietokannasta. Käyttöliittymästä aukeavat sivut on
esitetty kuvina tässä luvussa, Kuva 4 – Kuva
13.
Päävalikko on määritelty main.cgi-skriptissä ja sen kautta käytetään kaikkia käyttöliittymäsovellukseen
liittyviä moduuleita.
Päävalikon alapuolelle tulostuu aina
tieto siitä, mikä sivu on auki. Jos sivun sisältö on listattu jonkin tietyn
ominaisuuden perusteella, tämä näkyy myös samassa tulostuksessa.
Kuvien, Kuva 4 – Kuva 5, mukaiset sivut muodostuvat Topics_or_ sessiontypes.pm -moduulilla.
Topic- ja Sessiontype-sivuille
listautuu tietokantaan määritetyt aihealueet ja sessiotyypit. Listaus tapahtuu
aluksi järjestysnumeron perusteella, Alphabetic-painikkeella voi
listauksen päivittää aakkosjärjestyksen ja Serial number -painikkeella
uudestaan järjestysnumeron mukaiseksi.
Uuden aihealueen tai sessiotyypin
lisäys onnistuu syöttämällä sivun alalaidan tekstikenttään lisättävän nimen, ja
Add-painikkeella lisäys päivittyy tietokantaan ja tieto päivittyy auki
olevalle sivulle. Lisätylle aihealueelle/sessiotyypille annetaan
automaattisesti seuraava vapaana oleva järjestysnumero.
Aihealueen tai sessiotyypin muokkaus
onnistuu valitsemalla radionappulalla muokattava kohde ja antamalla
tekstikenttään uusi syöte. Kahta kohdetta ei voi muokata samanaikaisesti.
Järjestysnumeroa voi päivittää valitsematta erikseen aihealuetta/sessiotyyppiä
radionappulalla, myös useita kohteita voi muokata samalla kertaa. Muokkaus
päivittyy tietokantaan ja tieto päivittyy auki olevalle sivulle Update
-painikkeella.
Aihealueen/sessiotyypin poistaminen onnistuu valitsemalla kohteen
checkbox-valitsemella. Poistettaessa voi valita useita
aihealueita/sessiotyyppejä saman aikaisesti. Remove-painikkeella
poistetaan kohde tietokannasta ja tieto päivittyy auki olevalle sivulle.
Kuvan, Kuva 6, mukainen sivu muodostuu Session.pm-moduulilla.
Sivulle listautuu kaikki
tietokannasta löytyvät sessiot, aika- ja paikka-tietoineen. Lisäksi sessiosta
näkee mihin aihealueeseen ja sessiotyyppiin se kuuluu.
Session lisäys tapahtuu syöttämällä halutut arvot sivun alalaidan
tekstikenttiin ja valitsemalla alasvetovalikoista oikeat määritykset
aihealueeksi ja sessiotyypiksi. Aloitus- ja loppuaika tulee antaa muodossa
vuosi–kuukausi–päivä tunnit:minuutit esimerkiksi 2004-07-24 09:30. Sessio lisätään tietokantaan ja tieto päivittyy auki olevalle sivulle Add-painikkeella.
Session muokkaus onnistuu valitsemalla radionappulalla muokattava kohde ja
antamalla tekstikenttiin uudet syötteet. Kahta kohdetta ei voi muokata
samanaikaisesti. Muokkaus päivittyy tietokantaan sekä auki olevalle sivulle Update-painikkeella.
Kohteen poistaminen onnistuu valitsemalla kohde checkbox-valitsemella.
Poistettaessa voi valita useita kohteita saman aikaisesti. Remove-painikkeella
poistetaan valittu kohde tietokannasta ja tieto päivittyy auki olevalle
sivulle.
Kuvan, Kuva 7,
mukainen sivu muodostuu Schedule.pm-moduulilla.
Lisäys aikatauluun tapahtuu syöttämällä halutut arvot sivun alalaidan
tekstikenttiin. Aloitus- ja loppuaika tulee antaa muodossa vuosi–kuukausi–päivä
tunnit:minuutit esimerkiksi 2004-07-24 09:30. Tapahtuma lisätään tietokantaan ja tieto
päivittyy auki olevalle sivulle Add-painikkeella.
Kuvan, Kuva 8, mukainen sivu muodostuu Appearence.pm-moduulilla.
Ulkoasun hallinta on keskeneräinen. Hallintasivuista puuttuu CSS-tiedoston
editoimiseen tarvittavat toiminnot.
Kuvan, Kuva 9, mukainen sivu muodostuu Disks.pm-moduulilla.
Sivulle listautuu tietokannassa sijaitsevat levyt sekä niille kuuluvien
artikkeleiden lukumäärä ja niiden yhteiskoko.
Levyn lisäys tapahtuu syöttämällä haluttu nimi sivun alalaidan
tekstikenttään. Levy lisätään tietokantaan ja tieto päivittyy auki olevalle
sivulle Add-painikkeella.
Levyn muokkaus onnistuu valitsemalla radionappulalla muokattava kohde ja
antamalla tekstikenttään uuden syötteen. Kahta kohdetta ei voi muokata
samanaikaisesti. Muokkaus päivittyy tietokantaan sekä auki olevalle sivulle Update-painikkeella.
Kohteen poistaminen onnistuu valitsemalla kohde checkbox-valitsemella.
Poistettaessa voidaan valita useita kohteita samanaikaisesti. Remove-painikkeella
poistetaan kohde tietokannasta ja tieto päivittyy auki olevalle sivulle.
Create disks -painike käynnistää generoivan sovelluksen, joka
luo julkaisun hakemistorakenteen.
Kuvan, Kuva 10, mukainen sivu muodostuu Partition.pm-moduulilla.
Sivulle listautuu tietokannasta
kaikki artikkelit otsikon perusteella aakkosjärjestyksessä. Sivulla
artikkelista näkyy otsikon lisäksi mihin sessiotyyppiin, aihealueeseen tai
sessioon se kuuluu, lisäksi listautuu artikkelin koko.
Artikkeleiden listausta voidaan vaihtaa Disks-, Article- tai Size-painikkeilla.
Disks-painikkeella artikkelit listautuvat levyjaon perusteella, Article-painikkeella
artikkelin otsikon mukaan aakkosjärjestykseen ja Size-painikkeella
artikkelin koon mukaan.
Sessiontype-painike listaa kaikki sessiotyypit, kyseiseen
sessiotyyppiin kuuluvien artikkeleiden lukumäärän ja artikkeleiden yhteiskoon.
Topic-painike listaa kaikki aihealueet, kyseiseen aihealueeseen kuuluvien artikkeleiden lukumäärän ja artikkeleiden yhteiskoon.
Session-painike listaa kaikki sessiot, kyseiseen sessioon kuuluvien artikkeleiden lukumäärän ja artikkeleiden yhteiskoon.
Artikkeleiden jaottelua eri levyille voidaan tehdä yksitellen tai ryhmitettynä, esimerkiksi siirtämällä kaikki samaan sessiotyyppiin kuuluvat artikkelit samalla kertaa. Valitsemalla toinen levy ja painamalla Update-painiketta, tieto päivittyy tietokantaan ja auki olevalle sivulle, jos sivulla on listattu kaikki artikkelit. Artikkeli ei voi kuulua usealle levylle.
Remove-painike poistaa levyjakoon liittyvät
viittaukset tietokannasta.
Kuvan, Kuva
11, mukainen sivu muodostuu Move_article.pm-moduulilla.
Sivulle listautuu tietokannasta
artikkelit otsikon mukaiseen aakkosjärjestykseen, otsikon lisäksi artikkelista
näkyy mihin sessiotyyppiin ja aihealueeseen se kuuluu.
Artikkelit voi listata Sessiontype-painikkeella sessiotyypin mukaan,
Topic-painikkeella aihealueen mukaan tai Alphabetic-painikkeella
artikkelin otsikon mukaan.
Artikkelin voi siirtää kuulumaan eri aihealueeseen tai sessiotyyppiin
vaihtamalla alasvetovalikosta nimikettä. Tietojen muokkaus tapahtuu Update-painikkeella,
joka muuttaa tiedon tietokantaan ja päivittää muutoksen auki olevalle sivulle.
Kuva 11. Move
Article -sivu.
Kuvien, Kuva
12 ja Kuva
13, mukainen sivu muodostuu Articles_in_ sessions.pm-moduulilla.
Kuva 12. Articles
in Sessions -päävalikko.
Valikosta voi valita minkä sessiotyypin artikkeleita haluaa liittää
sessioihin. Valikon sessiotype-painiketta painettaessa listautuu sivulle
kyseiseen sessiotyyppiin kuuluvat artikkelit ja niiden perään alasvetovalikko,
jossa on valittavina kyseisen sessiotyypin sessiot.
Artikkelin voi valita sisältymään tiettyyn sessioon valitsemalla nimikkeen
alasvetovalikosta. Update-painikkeella valinta tallentuu tietokantaan ja
päivittyy auki olevalle sivulle.
Kuva 13. Articles in Sessions -sivu.
Tässä luvussa
kuvataan tiedostoja, joita konferenssisovellus käyttää ja tuottaa.
DatabaseE.pm
-moduuli tarvitsee conn.ini-tiedostoa, josta löytyy tiedot tietokantayhteyden muodostamiseen. Ohessa
esimerkki conn.ini-tiedostosta
databasename=mattidb
host=localhost
port=1234
user=matti
password=f83E3e
DatabaseE.pm-moduuli olettaa, että conn.ini-tiedosto on samassa hakemistossa kyseisen moduulin kanssa.
Luvussa käsitellään kokoomajulkaisun
generoivan sovelluksen tarvitsemat ja tuottamat tiedostot.
Sovellus tarvitsee HTML-sivujen rakenteen luomiseen article.tmpl, author.tmpl, daati.tmpl, proceed.tmpl,
schedule.tmpl, session.tmpl ja sessionl.tmpl-tiedostot. Näiden lisäksi tarvitaan DatabaseE.pm-moduuli tietokantayhteyttä varten sekä Template.pm-moduuli, jonka avulla HTML-sivut generoidaan *.tmpl-tiedostoista.
Template.pm-moduuli ei ole projektiryhmän tekemä, vaan se on
vapaassa käytössä oleva perl-moduuli nimeltä HTML::Template.
Sovellus tuottaa jokaiselle
luotavalle CD-levylle oman hakemiston levyn nimellä. Tähän hakemistoon luodaan
hakemisto proceedings, jonne luodaan alihakemistoja ja error(levyn nro).html- ja proceed.html-tiedostot. Näistä proceed.html on proceedings-julkaisun pääsivu ja error(levyn nro).html ovat virheilmoitus-sivuja, joilla
ilmoitetaan mikäli artikkeli löytyy joltakin toiselta levyltä. Jokaiselle
selausmahdollisuudelle luodaan oma alihakemisto.
Hakemistoon article luodaan article0t0.html-tiedoston tyyppisiä tiedostoja.
Tiedoston nimessä ensimmäinen numero merkitsee aihealuetta ja jälkimmäinen
sessiotyyppiä. Tiedostoja luodaan eri aihealue ja sessiotyyppi yhdistelmillä
kunnes kaikki on luotu. Sama nimeämiskäytäntö on käytössä myös sessionl
-hakemistoon luotavien sessionl0t0.html-tiedostojen kanssa.
Hakemistoon author luodaan authorA.html-tyyppisiä tiedostoja. Kaikille eri
alkukirjaimella alkaville artikkelin kirjoittajille luodaan oma sivu.
Hakemistoon schedule luodaan schedule.html-tiedosto, jossa on konferenssin
aikataulutiedot.
Hakemistoon session luodaan session(nro).html-tiedostoja, joista selviää kyseisen
session sisältö.
Hakemistoon daati luodaan sivuja, joille on linkit aikataulusta. Sivuilla on listattu
tietyllä aikavälillä pidetyt sessiot. Sivut nimetään muodossa dt24-07-04-0900-1200.html, missä ensimmäinen luku on ajankohdan
päivä, toinen kuukausi ja kolmas vuosi. Tämän jälkeen tulee ajankohdan alkuaika
ja loppuaika.
Näiden alihakemistojen lisäksi
luodaan pdf- ja pics-hakemistot. Näistä pics-hakemistoon ei generoida mitään, mutta proceedings-julkaisussa
käytettävät kuvat siirretään tähän hakemistoon. Hakemistoon pdf kopioidaan kaikki kyseiselle levylle tulevat artikkelit.
Sovellus generoi lisäksi kaksi log-tiedostoa. log.txt-tiedosto sisältää tiedon mitä kaikkea sovellus on onnistunut tekemään
ja err.txt sisältää generoitaessa
syntyneet virheilmoitukset. Nämä tiedostot generoidaan samaan hakemistoon kuin
kokoomajulkaisun CD-ROM-levyt.
Sovellukset määriteltiin projektin
vaatimusmäärittelyssä [3]. Tässä luvussa analysoidaan täyttyneitä ja
täyttymättä jääneitä vaatimuksia.
Konferenssin CD-ROM-proceedingsille
asetetut vaadittavat ominaisuudet olivat:
·
Artikkelien
selaus kirjoittajan nimen alkukirjaimen mukaan.
·
Artikkelien
selaus aihealueen mukaan.
·
Artikkelin
nimen perään linkki sessioon, jossa artikkeli on esitetty.
·
Sessioiden
listaus aihealueittain.
·
Sessiosta
linkki, josta pääsee selaamaan kyseisessä sessiossa esitettyjä artikkeleita.
·
Artikkelin
esittäjä merkitään näkyviin.
Konferenssisovelluksella luotava,
CD-ROM-levylle poltettava, hakemistorakenne täyttää kaikki yllä olevat
toiminnalliset vaatimukset.
Lisäksi vaatimuksissa oli esitetty, että
CD-ROM-proceedings voisi sisältää seuraavia toivottavia ominaisuuksia, jotka
toteutettaisiin siinä järjestyksessä kuin ne on lueteltu, mikäli
projektiryhmällä jäisi projektin puitteissa siihen aikaa:
1. Konferenssin ohjelma, jonka pohjalta voi
selailla tiettyyn aikaan olleita sessioita ja niissä esitettyjä artikkeleita.
2. Artikkelien haku ja lajittelu kirjoittajan
antamien avainsanojen mukaan.
Näistä kohta 1. toteutettiin osittain.
Konferenssi ohjelma tulee näkyviin julkaisuun, mutta sessioiden selailu ei
onnistu aikataulun kautta.
Kohta 2. jäi toteutettavaksi
Proceedingsin-verkkojulkaisussa konferenssin jälkeen. Verkkojulkaisun tekeminen
ei kuulunut projektiryhmän tehtäviin.
Vaatimusmäärittelyssä on esitetty, että
ECCOMAS2004-proceedings tulisi jakaa kahdelle CD-ROM-levylle siten, että
ensimmäinen sisältää Contributed, Keynote, Poster ja Plenary sessioiden
artikkelit ja toinen Minisymposium, STS (ja mahdollisesti tulevat Round Table)
sessioiden artikkelit. Levyjaossa on kuitenkin pidettävä koko ajan mielessä,
että jako voi vielä muuttua ennen lopullista versiota. Molemmille levyille
sijoitetaan kaikki selaustoiminnot. On myös varauduttava siihen, että kaikki
tieto ei mahdu kahdelle levylle, jolloin jakoa levyjen kesken on mietittävä
uudelleen. Levyjen välillä tulee olemaan ristiviittauksia. Ristiviittauksissa
tulee ilmoittaa käyttäjälle, että etsitty artikkeli löytyy toiselta levyltä.
Yllä olevat vaatimukset täyttyvät.
Levyjaon voi tehdä sessiotyyppien, aihealueiden, sessioiden tai yksittäisten
artikkeleiden mukaan. Levyjen määrä ei ole kiinnitetty, eli levyjen määrää voi
lisätä tai vähentää. Myös toivotut ristiviittaukset toimivat.
Vaatimusmäärittelyn mukaisesti
CD-ROM-levyjen käyttö ei vaadi ohjelmien asennusta, vaan levyjä pystyy
käyttämään suoraan selaimella.
CD-ROM-levyille tulevat HTML-sivut
generoituvat sovelluksella, vaatimusmäärittelyn [3] mukaisesti validina
HTML-4.0:na [6]. Standardi on yleisesti tuettu uusissa selaimissa. HTML-sivut
validoitiin World Wide Web Consortiumin validaattoreilla [10] [11].
HTML-sivujen toimiminen testattiin,
vaatimusmäärittelyn [3] mukaisesti, seuraavilla selaimilla:
§
Firefox 0.8 (Windows, Linux)
§
Internet Explorer 6.0 (Windows)
§
Konqueror 3.1 (Linux)
§
Lynx 2.8 (Unix)
§
Mozilla 1.5 (Windows, Linux)
§
Netscape 7.0 (Windows, Linux)
§
Omniweb 4.5 (MacOS)
§
Opera 6.0 (Windows, Linux)
§
Safari 1.2
(MacOS)
§
Galeon 1.3
(Linux)
Testattavan selaimen perässä on mainittu
käyttöjärjestelmä, jossa kyseistä selainta testataan. Mikäli selaimesta oli versioita
useille eri käyttöjärjestelmille, kuten Mozillasta, testattiin sitä eri
käyttöjärjestelmillä.
Konferenssisovelluksen
tulee toimia siten, että konferenssin järjestelijä voi ensin syöttää
sovellukselle tarvittavat tiedot. Tämän jälkeen sovelluksen luomien
keräyssivujen avulla artikkeleiden kirjoittajat voivat syöttää tiivistelmänsä
sovellukselle. Järjestelijä jakaa kyseiset tiivistelmät arvioitavaksi ja
hyväksyttyjen artikkeleiden kirjoittajia pyydetään toimittamaan valmiit artikkelit.
Kun kaikki artikkelit on saatu, voi järjestelijä jakaa artikkelit sessioihin.
Tämän jälkeen järjestelijä voi syöttää sovellukselle loput haluamistaan
tiedoista, jonka jälkeen sovelluksen avulla voidaan luoda julkaisu.
Konferenssin
järjestelijä syöttää sovellukselle seuraavat tiedot:
1. Konferenssin aihealueet.
2.
Sessiotyyppien
nimet ja hallintatapa, eli hoitaako järjestelijä kyseisen sessiotyypin
artikkelien hyväksynnät vai tekeekö sen ulkopuolinen henkilö (vrt. Contributed ja Minisymposium).
3. Artikkeleiden jako arvioitavaksi.
4. Artikkelin hyväksyntä (järjestelijä ei
tee, mikäli kyseessä jonkun muun henkilön järjestämä sessio vrt.
Minisymposium).
5. Artikkelien jako sessioihin (järjestelijä
ei tee, mikäli kyseessä jonkun muun henkilön järjestämä sessio vrt. Minisymposium).
6. Konferenssin aikataulu.
7. Mahdollinen jako eri CD-ROM-levyille.
8. Julkaisun ulkoasu.
Näistä
projektiryhmä toteutti suunnitellun mukaisesti kohdat 1, 2 (ei hallintatapaa)
ja 7. Kohta 8 jäi keskeneräiseksi. Myös kohta 6 toteutettiin, vaikka se oli
määritelty toteutettavaksi vasta jos aikaa riittää.
Suunnitteluvaiheessa
kohdat 3, 4 ja 5 jätettiin jatkokehitykselle tehtäväksi. Suunnitellusta
poiketen projekti toteutti myös kohdan 5.
Artikkelien
kirjoittajat syöttävät sovellukselle:
1. Artikkelin sessiotyypin.
2. Artikkelin aihealueen.
3. Artikkelin kirjoittajien tiedot.
4. Artikkelin tiivistelmän.
5. Artikkelin otsikon ja avainsanat.
6. Valmiin artikkelin.
Artikkelien
kirjoittajien syöttämät tiedot tallennetaan sovelluksen tietokantaan. Tietojen
kerääminen artikkelien kirjoittajilta ja niiden tallentaminen tietokantaan
jätettiin jo vaatimusmäärittelyn
yhteydessä jatkokehitykselle.
Yksi vaadituista ominaisuuksista oli
jatkokehittämisen mahdollisuus. Konferenssisovelluksen rajapintojen ja
tietorakenteiden tuli olla sellaiset, että sovelluksen käyttö ja
jatkokehittäminen tulevaisuudessa olisi yksinkertaista. Jatkokehittämisen
helpottamiseksi ohjelmointikielenä käytettiin Perl-kieltä ja ohjelmakoodi
kirjoitettiin englanniksi.
Konferenssisovelluksen täytyi toimia
Linux-ympäristössä, mutta Windows-toiminnallisuutta ei vaadita. Vaadittu
ominaisuus täyttyy.
ECCOMAS2004-konferenssin data sijaitsee
hakemistorakenteessa. Konferenssisovellusta varten piti data siirtää
tietokantaan. Siirron tekemiseksi luotiin skripti vaatimuksien mukaisesti.
Ylläpidon vaatimuksen mukaan skriptin
pitää toimia molempiin suuntiin, jolloin tietokanta on myös mahdollista kääntää
takaisin alkuperäiseksi rakenteeksi. Vaaditun ominaisuuden toteuttamiseen olisi
mennyt liian paljon aikaa projektin puitteista, joten projektiorganisaation ja
ylläpidon yhteisellä päätöksellä tästä luovuttiin.
Kokoomajulkaisun tarvitsema data
sijoitettiin tietokantaan, jonka avulla selauksien generoiminen levylle on
helpompaa. Lisäksi jatkokehityksen verkkosivuille toteutettavaksi jätetyt
asiasanan mukaiset haut on helpompi tehdä tietokannan avulla.
Tietokanta toteutui sille asetetut
vaatimukset täyttäen.
Testausta on suoritettu
projektiryhmän toimesta projektin työkoneissa sekä ohjelmoinnin yhteydessä.
Testaus jäi puutteelliseksi projektiin varatun ajan loppuessa.
Ylläpitäjä luo tietokannan komennolla:
createdb -U
username databasename.
Ylläpitäjä luo kuvan, Kuva 2, mukaisen tietokannan taulut komennolla:
psql -U
username -f path\comadb.sql databasename.
Tiedostossa comadb.sql sijaitsevat tietokannan luomiseen
käytettävät SQL-lauseet.
Lopuksi ylläpitäjän täytyy luoda tiedosto conn.ini, jossa ovat seuraavat tiedot:
databasename= #
Tietokannan nimi, johon otetaan yhteys käyttöliittymällä.
host= #
Palvelimen nimi
port= #
Portti
user= #
Käyttäjätunnus
password= #
Salasana
Tiedostossa on tieto=arvo pareja. Esimerkkitiedosto:
databasename=comadb
host=localhost
port=1234
user=coma
password=f83E3e
Database.pm-moduuli olettaa, että conn.ini-tiedosto on samassa hakemistossa kyseisen moduulin kanssa.
Konferenssisovelluksen käyttämät tiedostot tulee kopioida samaan
hakemistoon. Näihin tiedostoihin kuuluvat käyttöliittymän ja generoivan
sovelluksen tarvitsemat tiedostot. Lopuksi kyseiseen hakemistoon täytyy luoda
hakemisto nimeltä generate, johon generoiva sovellus generoi
kokoomajulkaisun. Tähän hakemistoon tulee antaa riittävät kirjoitusoikeudet,
jotta kokoomajulkaisun generointi on mahdollista. Jatkokehityksen myötä
kyseistä hakemistoa ei enää tarvita, kun käyttöliittymän avulla voidaan
määritellä hakemisto, johon kokoomajulkaisu generoidaan.
Coma-projekti oli Jyväskylän yliopiston tietotekniikan laitoksen
sovellusprojekti, joka toteutti sovelluksen konferenssinhallintaan.
Konferenssisovelluksesta toteutettiin toimiva runko, jonka lisäksi
toteutettiin toivottuja ominaisuuksia priorisoidussa järjestyksessä aikataulun
puitteissa. Parserisovelluksesta toteutettiin toimiva, tiedot siirtävä
sovellus. Generoivasta sovelluksesta toteutettiin vaatimukset täyttävä
sovellus.
Sovellus toteuttaa sille asetetut vaatimukset ja on valmis jatkokehitystä
varten.
[1] Alm Hanna, Arkko Kari, Nakari Pentti ja Paavolainen
Lassi, Sovellussuunnitelma, Jyväskylän yliopiston tietotekniikan laitos,
Jyväskylä, 2004.
[2] Alm Hanna, Arkko Kari, Nakari Pentti ja Paavolainen
Lassi, Testausraportti, Jyväskylän yliopiston tietotekniikan laitos,
Jyväskylä, 2004.
[3] Alm Hanna, Arkko Kari, Nakari Pentti ja Paavolainen
Lassi, Vaatimusmäärittely, Jyväskylän yliopiston tietotekniikan laitos,
Jyväskylä, 2004.
[4] Cascading Style Sheets, level 2 Specification
<URL: http://www.w3.org/TR/CSS2/
>, 5.4.2004.
[5] CyberChair,
<URL: http://www.CyberChair.org
>,11.5.2004.
[6] HTML 4.01 Specification, <URL: http://www.w3.org/TR/html401/
>,
5.4.2004.
[7] Jaakohuhta
Hannu, Suuri tietotekniikan tietosanakirja käsitteistö ja sanasto, Suomen Atk-kustannus Oy, Helsinki, 1999.
[8] Jaakohuhta
Hannu, IT Ensyklopedia, Edita Oyj, Helsinki, 2001.
[9] Rahkila
Martti, WWW-ohjelmoinnin perustekniikoita, saatavilla WWW-muodossa
<URL: http://www.acoustics.hut.fi/u/mara/doc/hype/
ohjelmointi.html
>,
13.2.2003.
[10] W3C
CSS Validation Service, <URL: http://jigsaw.w3.org/css-validator/
>, 5.4.2004.
[11] W3C
MarkUp Validation Service, <URL: http://validator.w3.org/
>, 5.4.2004.