Tik-76.115 Tekninen määrittely

Älykäs kalenteri - Asiakasohjelmisto

Sisällysluettelo

1. Johdanto
2. Järjestelmän yleiskuvaus
3. Arkkitehtuurin kuvaus
4. Hylätyt ratkaisuvaihtoehdot
5. Virhekäsittely

Versiohistoria

Versio

Pvm

Muutos

Muuttaja

0.9

3.12.2000

T2-vaiheen ensimmäinen versio

Santeri

Lopullinen

21.4.2001

LU-vaiheessa palautettava lopullinen versio: pieniä tarkennuksia asiakkaan pyynnöstä.

Teemu

1. Johdanto

Dokumentti on Teknillisen korkeakoulun ohjelmistotyökurssilla (Tik-76.115) tehtävän Osprey-projektin teknisen määrittelyn liite. Dokumentissa kuvataan varsinaisen teknisen määrittelyn ulkopuolelle jäävän asiakasohjelmiston tekniset ominaisuudet. Asiakasohjelmisto toteutetaan vain demonstroimaan kalenteriarkkitehtuurin toimivuutta.

Toteutettava asiakasohjelmisto käsittää käyttäjälle näkyvän graafisen käyttöliittymän sekä käyttöliittymän tarvitsemat yhteydet kalenteripalvelimeen. Asiakasohjelmisto toimii siis selaimena itse kalenterille ja toteuttaa vain liittymät kalenteridatan käsittelyyn.

Viitteet on lueteltu kalenteriarkkitehtuurin teknisessä määrittelyssä.

2. Järjestelmän yleiskuvaus

Asiakasohjelmisto toteutetaan käyttäen hyväksi valmiita WWW-selaimia. Valmiiden WWW-selaimet sisältävät hyvän alustan käyttöliittymien rakentamiselle HTML-sivujen muodossa, ja HTML-sivujen ominaisuudet ovat riittävät asiakasohjelmiston kaikkien ominaisuuksien toteuttamiseen.

Asiakasohjelmisto toteutetaan Java-servletteinä. Servletit tuottavat dynaamisia HTML-sivuja ja niiden ajoympäristö sijaitsee WWW-palvelimella. Osprey-projektin puitteissa tuotettava asiakasohjelmisto toteutetaan Java 2 Standard Edition -spesifikaation mukaisesti, ja servlettejä ajetaan Apache-palvelimella Tomcat-servlettimoottorin päällä.

Servletit kommunikoivat varsinaisen kalenteripalvelimen kanssa CAP-rajapintaa [CAP] käyttäen. Rajapinnan kautta lähetetään pyyntöjä kalenteripalvelimelle ja saadaan takaisin kalenteritapahtumia, jotka servletit muokkaavat käyttäjälle näkyvään HTML-muotoon.

3. Arkkitehtuurin kuvaus

Asiakasohjelmistokohtainen arkkitehtuuri koostuu kolmesta pääkomponentista.

Asiakasohjelmisto keskustelee kalenteripalvelimen kanssa käyttäen samaa CAP-protokollaa, jolla kalenteripalvelimetkin keskustelevat keskenään. CAP-protokollaimplementaatio sama kuin kalenteripalvelimessakin.

Asiakasohjelmiston pääservletti jakelee HTML-sivuja käyttäjän selaimelle sille annettujen URL-pyyntöjen mukaisesti. Käyttäjän autentikoinnin jälkeen Servlet-palvelimen sessionhallinta pitää huolen siitä, että käyttäjä pääsee katsomaan ja muokkaamaan vain henkilökohtaisen kalenterinsa tietoja.

Jokainen HTML-sivu toteuttaa seuraavan rajapinnan:

public interface HtmlPage {

    /**
     * Build a HTML page as response for the user, based on the received request.
     */
    public void build(HttpServletRequest request, HttpServletResponse response)
       throws IOException;
}
Muut rajapinnat kuten yhteysrajapinta kalenteripalvelimeen noudattavat kalenteriarkkitehtuurin mallia.

4. Hylätyt ratkaisuvaihtoehdot

Alkuvaiheessa asiakasohjelmisto ajateltiin toteuttaa itsenäisenä Java-ohjelmistona, jota ajettaisiin käyttäjän koneella ja joka ottaisi suoraan yhteydet kalenteripalvelimiin ja näyttäisi kyselyiden tulokset omassa ikkunassaan. Käyttöliittymän tekeminen Javalla todettiin kuitenkin kertaluokkaa vaikeammaksi kuin sen toteuttaminen HTML-sivuina, joten idea itsenäisestä ohjelmasta hylättiin servlettipohjaisen ratkaisun eduksi.

5. Virhekäsittely

Asiakasohjelmisto näyttää kalenteripalvelimelta tulleet virheilmoituksen suoraan käyttäjälle HTML-sivuna. Asiakasohjelmisto käyttää myös hyväkseen WWW-palvelimen toteuttamaa virhekäsittelyä niissä tapauksissa, joissa virhetilanne selvästi liittyy WWW-palvelimen toimintaan. Mitään monimutkaisempaa virheenkäsittelyä ei tulla toteuttamaan, koska asiakasohjelmisto toteutetaan vain kalenteriarkkitehtuurin toiminnan demonstroimiseksi, eikä sen täten tarvitse selviytyä kaikista sisäisistä vikatilanteista.