1. Johdanto
2. Järjestelmän yleiskuvaus
3. Arkkitehtuurin kuvaus
4. Hylätyt ratkaisuvaihtoehdot
5. Virhekäsittely
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 |
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ä.
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.
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.
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.
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.