Coma - Sovellusprojekti

Hanna Alm

Kari Arkko

Pentti Nakari

Lassi Paavolainen

 

 

 

 

 

 

 

 

 

 

 

 

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

Taulukko 1. Versiohistoria.

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

 

1.      Johdanto. 1

2.      Termit 2

3.      Yleiskatsaus sovelluksiin. 3

4.      Tietokanta. 4

4.1.      Toteutus. 4

4.2.      Rakenne. 4

5.      Sovelluksien toteutus ja rakenne. 5

5.1.      Toteutus. 5

5.2.      Parserisovellus. 5

5.3.      Käyttöliittymä. 7

5.3.1.     Database.pm.. 7

5.3.2.     Topics_or_sessiontypes.pm.. 7

5.3.3.     Session.pm.. 8

5.3.4.     Articles_in_sessions.pm.. 8

5.3.5.     Schedule.pm.. 8

5.3.6.     Appearance.pm.. 9

5.3.7.     Disks.pm.. 9

5.3.8.     Partition.pm.. 9

5.3.9.     Move_article.pm.. 9

5.4.      Kokoomajulkaisun generoiva sovellus. 10

5.4.1.     article.pl 10

5.4.2.     author.pl 10

5.4.3.     daati.pl 11

5.4.4.     generate.pl 12

5.4.5.     proceed.pl 13

5.4.6.     schedule.pl 13

5.4.7.     session.pl 14

5.4.8.     sessionl.pl 15

6.      Käyttöliittymän toiminta. 16

6.1.      Päävalikko. 16

6.2.      Aihealueiden ja sessiotyyppien hallinta. 16

6.3.      Sessioiden hallinta. 18

6.4.      Aikataulun luominen. 19

6.5.      Julkaisun ulkoasun hallinta. 20

6.6.      Levyjen hallinta. 21

6.7.      Levyjaon hallinta. 22

6.8.      Artikkelin aihealueen ja sessiotyypin hallinta. 24

6.9.      Sessioiden sisällön hallinta. 26

7.      Tiedostot 27

7.1.      DatabaseE.pm-moduulin tarvitsema tiedosto. 27

7.2.      Kokoomajulkaisun generoivan sovelluksen tiedostot 28

7.2.1.     Sovelluksen tarvitsemat tiedostot 28

7.2.2.     Sovelluksen tuottamat tiedostot 28

8.      Sovelluksille asetetut vaatimukset 29

8.1.1.     ECCOMAS2004 CD-ROM-proceedings. 29

8.1.2.     Konferenssisovellus. 31

8.1.3.     Parserisovellus. 32

8.1.4.     Tietokanta. 32

9.      Jatkokehitys. 33

9.1.      Paranneltavia komponentteja. 33

9.2.      Uusien toimintojen lisäämistä. 33

9.3.      Tunnetut ohjelmavirheet 33

10.       Testaus. 34

11.       Ohjeita ylläpitäjälle. 34

12.       Yhteenveto. 35

13.       Lähteet 36

 

 

Taulukko 1. Versiohistoria. I

 

 

Kuva 1. Projektin tuottama kokonaisuus. 3

Kuva 2. Toteutetun tietokannan ER-kaavio. 4

Kuva 3. Päävalikko. 16

Kuva 4. Topic-sivu. 17

Kuva 5. Sessiontype-sivu. 18

Kuva 6. Session-sivu. 19

Kuva 7. Schedule-sivu. 20

Kuva 8. Layout-sivu. 21

Kuva 9. Disks-sivu. 22

Kuva 10. Partition-sivu. 23

Kuva 11. Move Article -sivu. 25

Kuva 12. Articles in Sessions -päävalikko. 26

Kuva 13. Articles in Sessions -sivu. 27

 

 


1.  Johdanto

Coma-projekti toteutti kevään 2004 aikana Jyväskylässä 2428.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.

 

 

 


2.  Termit

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]


3.  Yleiskatsaus sovelluksiin

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.

4.  Tietokanta

Luvussa esitellään projektin yhteydessä toteutetun tietokannan rakenne ja toteutustapa.

4.1.        Toteutus

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.

4.2.        Rakenne

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.

5.  Sovelluksien toteutus ja rakenne

5.1.        Toteutus

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]

5.2.        Parserisovellus

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.

 

5.3.        Käyttöliittymä

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.

5.3.1.                 Database.pm

Tehtävä

Moduuli keskustelee tietokannan kanssa.

Aliohjelma

 

 

 

 

new()

Luo uuden Database.pm-moduulin.

connect(”file”)

Lukee file-tiedostosta tiedot ja muodostaa yhteyden tietokantaan.

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.

5.3.2.                 Topics_or_sessiontypes.pm

Tehtävä

Moduuli toimii yhdessä main.cgi-skriptin ja Database.pm-moduulin kanssa.

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 sort:n mukaan.

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

 

 

 

 

5.3.3.                 Session.pm

Tehtävä

Moduuli toimii yhdessä main.cgi-skriptin ja Database.pm-moduulin kanssa.

Aliohjelma

 

 

 

 

new()

Luo uuden Sessio.pm-moduulin.

get_HTML()

Palauttaa HTML-koodina Session-taulun tiedot.

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.

5.3.4.                 Articles_in_sessions.pm

Tehtävä

Moduuli toimii yhdessä main.cgi-skriptin ja Database.pm-moduulin kanssa.

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.

5.3.5.                 Schedule.pm

Tehtävä

Moduuli toimii yhdessä main.cgi-skriptin ja Database.pm-moduulin kanssa.

Aliohjelma

new()

Luo uuden Schedule.pm-moduulin.

get_HTML()

Palauttaa HTML-koodina Schedule-taulun tiedot (näyttää konferenssin aikataulun).

add(”tiedot”)

Lisätään tietokantaan tietoja.

 

Poikkeuksia sovellussuunnitelmaan:

·         Moduuli ei tarkasta eikä ilmoita, jos aikataulussa päällekkäisyyksiä.

 

 

 

 

 

 

5.3.6.                 Appearance.pm

Tehtävä

Moduuli toimii yhdessä main.cgi-skriptin ja Database.pm-moduulin kanssa.

Aliohjelma

new()

Luo uuden Appearence.pm-moduulin.

get_HTML()

 

update(”tiedot”)

 

 

Poikkeuksia sovellussuunnitelmaan:

·        Toteutusta ei ehditty tekemään, sivun ulkoasu toimii mutta toiminnallisuus puuttuu.

5.3.7.                 Disks.pm

Tehtävä

Moduuli toimii yhdessä main.cgi-skriptin ja Database.pm-moduulin kanssa.

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.

5.3.8.                 Partition.pm

Tehtävä

Moduuli toimii yhdessä main.cgi-skriptin ja Database.pm-moduulin kanssa.

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.

5.3.9.                 Move_article.pm

Tehtävä

Moduuli toimii yhdessä main.cgi-skriptin ja Database.pm-moduulin kanssa.

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.

 

5.4.        Kokoomajulkaisun generoiva sovellus

5.4.1.                 article.pl

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:

 

5.4.2.                 author.pl

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:

 

5.4.3.                 daati.pl

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:

 

 

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.

5.4.4.                 generate.pl

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.

5.4.5.                 proceed.pl

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.

5.4.6.                 schedule.pl

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.

5.4.7.                 session.pl

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:

 

5.4.8.                 sessionl.pl

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:

 

 

6.  Käyttöliittymän toiminta

Luvussa on esitetty käyttöliittymän toiminta, lukua voidaan myös pitää sovelluksen käsikirjana käyttäjälle.

6.1.        Päävalikko

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 4Kuva 13.

 

Päävalikko on määritelty main.cgi-skriptissä ja sen kautta käytetään kaikkia käyttöliittymäsovellukseen liittyviä moduuleita.

 

Kuva 3. Päävalikko.

 

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.

6.2.        Aihealueiden ja sessiotyyppien hallinta

Kuvien, Kuva 4Kuva 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.

 

Kuva 4. Topic-sivu.

 

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.

 

Kuva 5. Sessiontype-sivu.

6.3.        Sessioiden hallinta

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.

 

Kuva 6. Session-sivu.

6.4.        Aikataulun luominen

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.

 

Kuva 7. Schedule-sivu.

6.5.        Julkaisun ulkoasun hallinta

Kuvan, Kuva 8, mukainen sivu muodostuu Appearence.pm-moduulilla.

 

Ulkoasun hallinta on keskeneräinen. Hallintasivuista puuttuu CSS-tiedoston editoimiseen tarvittavat toiminnot.

 

Kuva 8. Layout-sivu.

6.6.        Levyjen hallinta

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.

 

Kuva 9. Disks-sivu.

6.7.        Levyjaon hallinta

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.

 

Kuva 10. Partition-sivu.

 

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.

6.8.        Artikkelin aihealueen ja sessiotyypin hallinta

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.


 

 

6.9.        Sessioiden sisällön hallinta

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.

7.  Tiedostot

Tässä luvussa kuvataan tiedostoja, joita konferenssisovellus käyttää ja tuottaa.

7.1.        DatabaseE.pm-moduulin tarvitsema tiedosto

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.

7.2.        Kokoomajulkaisun generoivan sovelluksen tiedostot

Luvussa käsitellään kokoomajulkaisun generoivan sovelluksen tarvitsemat ja tuottamat tiedostot.

7.2.1.                 Sovelluksen tarvitsemat 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.

7.2.2.                 Sovelluksen tuottamat tiedostot

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.

8.  Sovelluksille asetetut vaatimukset

Sovellukset määriteltiin projektin vaatimusmäärittelyssä [3]. Tässä luvussa analysoidaan täyttyneitä ja täyttymättä jääneitä vaatimuksia.

8.1.1.                 ECCOMAS2004 CD-ROM-proceedings

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

8.1.2.                 Konferenssisovellus

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.

8.1.3.                 Parserisovellus

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.

8.1.4.                 Tietokanta

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. 


 

9.  Jatkokehitys

9.1.        Paranneltavia komponentteja

9.2.        Uusien toimintojen lisäämistä

9.3.        Tunnetut ohjelmavirheet

10.  Testaus

Testausta on suoritettu projektiryhmän toimesta projektin työkoneissa sekä ohjelmoinnin yhteydessä. Testaus jäi puutteelliseksi projektiin varatun ajan loppuessa.

 

11.  Ohjeita ylläpitäjälle

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.

12.  Yhteenveto

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.


 

13.  Lähteet

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