Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14
Muutoshistoria Versio Pvm Päivittäjä Muutos 0.4 1.11.2007 Matti Eerola 0.3 18.10.2007 Matti Eerola 0.2 17.10.2007 Matti Eerola 0.1 15.10.2007 Matti Eerola Käyttötapaukset siirrettiin erilliseen dokumenttiin. Katselmoinnissa löytyneiden virheiden korjauksia Poistin tietokannan jakamisen tuotehierakian mukaan. Olisi ollu teknisesti lähes mahdotonta. Lisää näkymiä ja muita parannuksia 0.02 8.10.2007 Matti Eerola Lisätty käyttötapauksia 0.01 5.10.2007 Matti Eerola Ensimmäinen versio
Sisällysluettelo 1. Johdanto...1 1.1 Järjestelmän kuvaus...1 2. Järjestelmän suurimmat vaatimukset...1 3. Skenaario...1 3.1 Kontekstidiagrammi...1 3.2 Editorin toimintaperiaatteet...2 4. Arkkitehtuurisesti olennaiset oletukset ja rajoitteet...2 4.1 Yhteensopivuus vanhan kielitermijärjestelmän kanssa...2 5. Arkkitehtuuriset näkymät...4 5.1 Fyysinen näkymä...4 5.4 Informaationäkymä...5
1. Johdanto Juha Kauppi on diplomityössään "Ohjelmistotuotelinjan monikielisyyden arkkitehtuuri ja hallinta" jo kuvaillut ja suunnitellut toteutettavaa järjestelmää. Siinä keskitytään enimmäkseen uudistetun tietomallin ominaisuuksiin ja termien hallintaan. Tämän arkkitehtuuridokumentin tarkoitus on taas kuvailla niitä arkkitehtuurisia ratkaisuja, joilla pyritään täyttämään ohjelmistolle asetetut erilaiset laadulliset vaatimukset. 1.1 Järjestelmän kuvaus Suunniteltava järjestelmä koostuu ohjelmistokomponentista ja kielitermieditorista. Ohjelmistokomponentti vastaa ohjelmistotuotelinjan monikielisyydestä. Editorilla voidaan hallita monikielisyyttä. 2. Järjestelmän suurimmat vaatimukset Järjestelmän vaatimuksia on käsitelty tarkemmin vaatimustenmäärittelydokumentissa. Arkkitehtuuria suunniteltaessa vaatimuksista on poimittu muutama järjestelmälle tärkein ominaisuus, jotka järjestelmän täytyy uuden tietorakenteen lisäksi toteuttaa. Niitä ovat suorituskyky, skaalautuvuus, editorin käytettävyys ja ylläpidettävyys. 3. Skenaario 3.1 Kontekstidiagrammi Kielitermijärjestelmä on ohjelmistokomponentti, joka sijoittuu samaan sovellukseen kuin 1
kohdejärjestelmä. Se tarjoaa kohdejärjestelmälle ohjelmallisen rajapinnan, jolla kohdejärjestelmä voi käsitellä kielitermejä. Suurin osa liikenteestä kohde- ja kielitermijärjestelmän välillä tulee olemaan kielitermien hakuja. Kielitermit ladataan pääasiassa yhteisestä termitetokannasta, joka sisältää kaikille yhteisiä termejä. Yhteisiä termejä on tuotehierarkian juuresta installaatiotasoon. Samaa termitietokantaa käyttävät kaikki järjestelmät, joten se muodostaa komponentin, josta kaikkien järjestelmien toiminta riippuu. Tietokanta voi tosin olla kokonainen tietokantaklusteri, joten sen aiheuttamaa riskiä voidaan pienentää tarvittaessa. On mahdollista tallentaa myös vain tiettyyn järjestelmään liittyviä termejä. Ne tallennetaan omaan tietokantaan, koska niitä ei tarvita missään muussa järjestelmässä. Vain tiettyyn järjestelmään liittyviä termejä ovat esimerkiksi organisaatiokohtaiset termit. Installaatiokohtaisessa eli paikallisessa termikannassa olevia sisältöjä ei voi käyttää uudelleen muissa installaatioissa tehtävissä käännöksissä. Hakujen tulokset täytyy tallentaa välimuistiin, koska suorituskyvyn täytyy olla hakujen osalta hyvä. Välimuistilla saadaan myös skaalautuvuutta, koska se vähentää liikennettä yhteisestä tietokannasta sovelluksiin. Välimuistiin ei voi kuitenkaan tallentaa kovin paljoa tietoa, eikä mielellään ainakaan sellaista tietoa, jota ei sovelluksessa tarvita. Palvelimella ajetaan usein monia sovelluksia, joissa kaikissa käytetään kielitermijärjestelmää. Tuhlaileva resurssienkäyttö kuluttaisi palvelimen resurssit nopeasti loppuun. Arkkitehtuuri tukee useampaa välimuistikerrosta, jotka voivat käyttää eri menetelmiä tiedontallentamiseen esimerkiksi muistia tai kovalevyä. Kovalevyn käyttäminen välimuistina voisi vähentää yhteisen termitietokannan kuormaa huomattavasti, koska tietoa voitaisiin tallettaa jopa päiviksi kovalevyn välimuistiin. Kielijärjestelmän ja käyttäjien välisenä rajapintana toimii editori, joka on web-pohjainen sovellus muun järjestelmän rinnalla. Sillä käyttäjät voivat hallinnoida kielitermejä. Editori ei käytä välimuistia, koska sen suorituskyky ei ole olennainen osa koko järjestelmän suorituskykyä. Editoria käsitellään enemmän käyttötapauksien yhteydessä. Lopullisessa tuotteessa kohdejärjestelmän käyttöliittymäsivuilta voi saada listauksia sivun termeistä ja päästä muokkaamaan niitä editorissa. 3.2 Editorin toimintaperiaatteet Juha Kauppi käsitteli diplomityössään lyhyesti myös kielitermien muokkauksen ja kääntämisen tärkeimpiä periaatteita. Periaatteiden mukaan kielitermien muokkaaminen tulisi tapahtua taulukkomuodossa, jossa taulukon rivit on ryhmitelty käyttöliittymäsivun tai toiminnallisuuden mukaan. Taulukon hyötynä on useamman kielitermin nopea muokkaaminen ja kontekstin säilyminen ryhmittelyjen avulla. Käyttöliittymäsivuilla mahdollistetaan sivun termien listauksen näyttäminen sivun alalaidassa tai listauksen avaaminen editoriin. Editorissa täytyy myös pystyä hakemaan kielitermejä listaan eri hakuehdoilla. 4. Arkkitehtuurisesti olennaiset oletukset ja rajoitteet 4.1 Yhteensopivuus vanhan kielitermijärjestelmän kanssa Uuden tietorakenteen pitää olla sellainen, että vanhat kielitermit voidaan siirtää uuteen kielitermijärjestelmään. Ohjelmistorajapintojen tulee toimia niin, ettei se vaadi laajoja muutoksia 2
kohdejärjestelmän koodiin. Vanhat kielitermit sisältävät esimerkiksi tietyillä merkkijonoilla merkittyjä paikkoja, joihin tulostetaan dynaamista sisältöä kuten numeroita jne. Uuden kielitermijärjestelmän pitää säilyttää kyseiset merkkijonot, koska niiden muuttaminen vaatisi laajoja muutoksia kohdejärjestelmään. 3
5. Arkkitehtuuriset näkymät 5.1 Fyysinen näkymä Fyysisestä näkymästä voi nähdä, että kielitermijärjestelmää voidaan ajaa hyvin erilaisissa ympäristöissä. Suoritettavien palvelinohjelmistojen määrä palvelinta kohden vaihtelee paljon ja joskus ohjelmistoa suoritetaan palvelinklusterissa. Jotta kielitermijärjestelmä toimisi klusterissa, ohjelmiston tilaa ylläpitävien tietorakenteiden täytyy olla serialisoituvia. Kielitermit voivat olla jaettu useampaan tietokantaan ja järjestelmän tarvitsemien tietokantojen määrä voi vaihdella. Lisäksi on mahdollista, että ohjelmisto asennetaan palvelimelle, jolta ei saa olla tietokantayhteyksiä muihin koneisiin. Silloin tarvittavista kielitermeistä otetaan kopio ja ne sijoitetaan tietokantaan samalle palvelimelle kuin sovellus. 4
5.4 Informaationäkymä Editor Core Core.CacheHandler Core.Model Core.Data Editori käsittelee termejä suoraan Core.Model tietomallien avulla. Se ohittaa välimuistin, joten muutokset näkyvät muussa sovelluksessa vasta kun muutetun termin sisältö poistuu välimuistista. Muodostaa oman ohjelmistokirjaston. Se sisältää termien käsittelyyn tarvittavat toiminnot. Hallinnoi termien tallentamista välimuistiin. Vaikka tämän modulin avulla haetaankin yksittäisiä termejä, se käsittelee termejä paketteina, joista se lopultaa etsii haetun termin ja palauttaa sen sisällön. Termejä käsitellään paketteina, jotta niiden lataus tehostuisi. Tavoitteena on, että kaikille paketin termeille tulee käyttöä jossain vaiheessa. Sisältää parannetun tietomallin. Tieto on paketoitu olioihin, joiden avulla sitä voi helposti manipuloida jne. Hoitaa tiedon lataamisen ja päivittämisen tietokantaan. Luo tiedoista tietomallin mukaisia olioita. Tieto käsitellään lähinnä taulukkoina. 5