Digitaalisen median tekniikat, syksy 2007

Harjoitus 4, ( 1.10.-5.10.2007)

 

  1. Työpaikan kahvikassajärjestelmässä on noin 200 henkilön tiedot. Järjestelmän pääkäyttäjällä on käytössään web-sovellus, jolla hän voi muuttaa käyttäjien statusta sekä saldotietoja. Käyttäjä voi antaa hakuehtona sukunimen ensimmäisen kirjaimen ja hän saa listan hakuehdon täyttävistä käyttäjistä. Listassa näkyy käyttäjän nimi ja käyttäjätunnus, joka toimii käyttäjän tunnustietona. Kun pääkäyttäjä valitsee listasta jonkun käyttäjän hänelle, näytetään lomake valitun käyttäjän tietojen päivitystä varten. Nimen lisäksi pääkäyttäjä voi päivittää kolmea kokonaislukutietoa. Pääkäyttäjä päivittää yleensä samassa istunnossa noin neljänneksen käyttäjätietueista.
    Tarkastele tietoliikenteen määrän ja käytettävyyden kannalta erilaisia vaihtoehtoja sovelluksen toteutukseen:
  1. Sekä henkilövalikon tekemistä että päivityslomakkeen tekemistä varten tehdään palvelupyyntö palvelimelle. Sivut rakennetaan kokonaan palvelimessa. Jokaisen päivityksen jälkeen on annettava uusi hakuehto.
      Valikon teko, noin 50 kertaa: 
       pyyntö n. 500B + tietokantakysely 
       + tulos n.800B (mukana valikko + otsaketiedot)
       = n.1300 B

    Päivityssivun teko, noin 50 kertaa: pyyntö: n. 500B + tietokantakysely + tulos n. 700B päivityksen käsittely noin 50 kertaa pyyntö: n 500B + tietokantapäivitys + tulos n. 500B Tietoliikennettä 50*1300 + 50*1200 + 50*1000= 175000B Tietokantakyselyjä 50*valikkokysely+ 50*käyttäjän tiedot +50*päivitys
  2. Sekä henkilövalikon tekemistä että päivityslomakkeen tekemistä varten tehdään Ajax mallin mukainen palvelupyyntö palvelimelle. Koko sivua ei uusita vaan pelkästään muuttunut osa (valikko tai lomake).
    Valikko, 15 kertaa (oletetaan, että eri alkukirjaimia käytössä 15):
    Suunnilleen kuten kohdassa a, joitain otsake yms. tietoja jää pois 
       = n.1200 B

    Päivityssivun teko, noin 50 kertaa: pyyntö: n. 500B + tietokantakysely + tulos n. 500B (haetaan vain data) = n. 1000B Päivityksen käsittely noin 50 kertaa pyyntö: n 500B + tietokantapäivitys tulos n. 500B = n. 1000B Tietoliikennettä: 15*1200B+50*1000B+50*1000B =118000B+ ohjelmakoodi n.2000B= 120000B Tietokantakyselyjä 15*valikkokysely+50*käyttäjän tiedot +50*päivitys Käytettävyyden kannalta valikon jatkuva uusinta on huono ratkaisu.
  3. Hakuehdon perusteella haetaan palvelimelta valittujen henkilöiden kaikki tiedot eikä pelkästään valikkoon tarvittavia. Nämä myös näytetään. Halutessaan pääkäyttäjä pääsee päivittämään tietoja suoraan valitun henkilön riville. Päivitys kohdistuu vain yhteen riviin kerrallaan eikä muita tarvitse uusia.
    Henkilöryhmän haku 15 kertaa:
      pyyntö 500B + tietokantakysely + tulos n. 900B = n.1400B
    Päivityssivun tekemisestä ei aiheudu tietoliikennettä.
    Päivityksen käsittely noin 50 kertaa
       pyyntö: n 500B + tietokantapäivitys                  
       tulos n. 500B
      = n. 1000B
    Tietoliikennettä: 15*1400B+50*1000B =21000+50000 =71000 + ohjelma
    n.6000B= 77000B
    Tietokantakyselyjä 15*käyttäjän tiedot +50*päivitys
    
  4. Ei tarjota lainkaan hakumahdollisuutta vaan noudetaan kerralla kaikkien käyttäjien kaikki tiedot. Muuten toimitaan kuten vaihtoehdossa c.
    Käyttäjätietojen haku 1 kertaa:
    pyyntö 500B + tietokantakysely +tulos 1500B
    Päivityssivun tekemisestä ei aiheudu tietoliikennettä.
    Päivityksen käsittely noin 50 kertaa          
       pyyntö: n 500B + tietokantapäivitys
       tulos n. 500B
      = n. 1000B
    Tietoliikennettä: 1*2000B+50*1000B =2000+50000 =52000 + ohjelma
    n.6000B= 58000B
    Tietokantakyselyjä 1*käyttäjien tiedot + 50*päivitys 
    
  5. Oletetaan , että yhdestä henkilöstä on tietoja noin 100 tavua, joista nimi ja käyttäjätunnus ovat 80%. Oletetaan että palvelupyynnön otsaketietojen määrä on noin 500 tavua samoin kuin palautetun vastauksenkin.

    Tietoliikenteen kannalta tehokkain ratkaisu on d samoin tietokantakuorman kannalta. 200 henkilön lista on melko pitkä joten käytettävyydeltä c voisi olla parempi.

  1. Selvitä miten edellisen tehtävän kohdissa b ja c kaavailtu ns. 'data grid' -ratkaisu (päivitystaulukko) on toteutettavissa (ei tarvitse toteuttaa).

    Tähän on valmiita kirjastoratkaisuja. Tietuetta näpättäessä sen kentät muuttuvat editoitaviksi ja riville lisätään tallenna ja peru napit. Useita toteutusmahdollisuuksia: esimerkiksi lomake on valmiina ja tulee näkyväksi näpättäessä.

  2. Luennoilla oli yksinkertainen esimerkki tiedoston lataamisesta sivulle Ajax-tekniikalla. Parantele esimerkkiä siten, että tekstitiedostot säilyttävät alkuperäisen rivityksensä ja XML-muotoisesta vastauksesta saadaan sivulle koko sisältö. (kopioi tarvittavat tiedostot itsellesi - kaikki ovat hakemistossa http://www.cs.helsinki.fi/u/laine/dime/s07/aesim/.

    Vastaukset löytyvät sivulta http://www.cs.helsinki.fi/u/laine/dime/s07/ajax2.html.

  3. Tee pieni sivu, jonka latautuessa testataan onko Javascript päällä ja evästeet (cookies) sallittuja. Elleivät ole siitä annetaan ilmoitus.

    Katso sivu http://www.cs.helsinki.fi/u/laine/dime/s07/cookitest.html


Harjoituksissa paikalla suoritettava tehtävä: php-sivun pystytys laitoksen palvelimelle. Sivun tulisi näyttää otsaketietoja, päiväyksen ja kellonajan sekä parametrina sille antamasi nimen. Ohje php-sivun toteutuksesta HY/TKTL:n palvelimille