10 Nykyaikainen WWW-arkkitehtuuri è è è 10 Nykyaikainen WWW-arkkitehtuuri WWW on ylivoimaisesti suosituin hypertekstijärjestelmä. Käydään seuraavaksi läpi nykyaikaisen WWW-arkkitehtuurin perusteet. Vuonna 2002 ensimmäisen kerran julkaistu Architecture of the World Wide Web - määritys jakaa WWW-arkkitehtuurin kolmeen kokonaisuuteen: Yksilöinti ([Identification]): Resurssien yksilöinti URI-tunnisteiden avulla. Esimerkki: Levyharrastajilla on verkkopalvelu, jonka URI-tunniste on http://www.levylaari.fi. Vuorovaikutus ([Interaction]): Viestien välittäminen sovellusten välillä protokollien avulla. Esimerkki: Käyttäjä kirjoittaa URI:n selaimen osoitekenttään. Selain ottaa yhteyden palvelimeen www.levylaari.fi (portti 80) ja tekee tälle HTTP-pyynnön resurssista. Selain lähettää vastauksen HTTP-protokollan avulla. Representaatio ([Representation]): Resurssit esitetään tiedostomuotojen joukon avulla. Esimerkki: Levyjen tiedot esitetään XHTML-dokumentteina, kannet ja ikonit ovat PNG-muotoisia. Palvelun ulkoasu määritellään CSS-tyylitiedostossa. 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 219
Resurssi, yksilöinti ja representaatio Representaatio edustaa resurssia tietyllä ajanhetkellä (HTTP-pyyntö): URI http://www.levylaari.fi/vuodenlevy Representaatio Metatieto Content-type: application/xhtml+xml Tietosisältö <html><head> <title>l e v ylaari: Vuoden levy</title> </html><body>...</body></html> Edustaa Yksilöi Resurssi Levylaarin vuoden levy 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 220
Yksilöinti: URI-tunnisteet Idea: maailmanlaajuisen verkon muodostaminen vaatii maailmaanlaajuisesti yksikäsitteiset tunnisteet Tim Berners-Leen alkuperäisen määritelmän mukaan URI tulee sanoista Universal Resource Identifier, joka muutettiin myöhemmin muotoon Uniform Resource Identifier. (Syy: Universal koettiin liian vahvaksi termiksi). URI on joko URL (Uniform Resource Locator) tai URN (Uniform Resource Name) Esimerkkejä URI-skeemoista: http, mailto, tel, ldap,... Esimerkkejä URI-tunnisteista: http://www.levylaari.fi, mailto:jukka.huhtamaki@tut.fi, tel:+358-3-555-1234 URI-skeemojen rekisteröinnistä vastaa IANA. URI-tunnisteita voidaan käyttää verkosta noudettavissa olevien resurssien lisäksi minkä tahansa yksilöintiin: ihmiset, valuutat, äänilevyt, aikavyöhykkeet, tietotyypit,... Tämä on keskeinen ajatus W3C:n Semanttisessa Webissä. 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 221
URI-tunnisteet: hyviä käytäntöjä Resurssilla pitäisi (SHOULD) olla tasan yksi tunniste: rinnakkaisia URI-aliaksia on syytä välttää Minkä tahansa URI-tunnisteen perusteella pitäisi koska tahansa voida noutaa resurssin representaatio: kokeile esimerkiksi ladata selaimeesi XHTML-nimiavaruuden yksilöivä URI http://www.w3.org/1999/xhtml Laiteriippumattomuus ([Device Independence]): resurssin representaation pitäisi olla noudettavissa saman URI:n perusteella päätelaitteesta riippumatta. - Voidaan toteuttaa esimerkiksi siten, että laite kuvaa ominaisuutensa pyynnön yhteydessä ja representaatio räätälöidään laitteen ominaisuuksien perusteella ([Content negotiaton]). - Saavutettavuus (Accessibility) voidaan toteuttaa samalla idealla: laitteen tuomien reunaehtojen lisäksi rajoitteita voi aiheutua esimerkiksi käyttäjästä tai käyttötilanteesta Viileät URI:t eivät muutu : älä siirtele resursseja paikasta toiseen. Parempi vaihtoehto on resurssien järkevä nimeäminen (versiointi). 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 222
Esimerkki: levylaari.fi on valinnut Laika and the Cosmonautsin levyn Absurdistan vuoden 1997 levyksi: Vuoden levyn URI: http://www.levylaari.fi/vuodenlevy Vuoden 1997 levyn URI: http://www.levylaari.fi/1997/vuodenlevy Levyn Absurdistan URI: http://www.levylaari.fi/levy/absurdistan Esimerkin URI-tunnisteet eivät ole aliaksia, koska kaikki URI:t yksilöivät eri resurssin. Esimerkin URI:t voi käytännössä ohjata samaan resurssiin HTTP-uudelleenohjauksen avulla. Esimerkki uudelleenohjauksen toteuttamisesta PHP-ohjelmointikielen avulla: <?php header( Location: http://www.levylaari.fi/levy/absurdistan );?> Uudelleenohjauksen voi toteuttaa myös HTML-kielen META-elementin tai vaikka JavaScriptin avulla, mutta tämä ei ole suositeltavaa. Arvaatko miksi? URI-tunnisteiden tulevaisuus on IRI (Internationalized Resource Identifier), joka mahdollistaa esimerkiksi skandinaavisten kirjainten (ja riimukirjoituksen) käytön resurssien tunnisteissa. Esimerkiksi Seinäjoen kaupungin kotisivujen tunniste voi siis tulevaisuudessa olla reilusti http://www.seinäjoki.fi. 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 223
Vuorovaikutus: protokollat Protokolla on keino viestien ([message]) välittämiseen asiakasohjelman ja palvelimen välillä. Protokolla määrittelee viestien sisällön kieliopin (syntaksi), viesteissä käytettyjen termien merkityksen (semantiikka) ja kiinnittää viestien vaihdon järjestyksen. Esimerkkejä WWW-protokollista: HTTP, SOAP, FTP, SMTP,... Yksityiskohta: W3C määrittelemän nyrkkisäännön mukaan protokollat säilyvät keskimäärin pitempään kuin niitä käyttävät sovellukset (Lähde: Architecture of the World Wide Web) tai esimerkiksi ohjelmointirajapinnat (API). Vinkki hajautettujen sovellusten kehittäjille? WWW:n arkkitehtuuri -suosituksen mukaan käyttäjän (protokollan avulla tekemät) toimenpiteet pitäisi voida jakaa turvallisiin ja turvattomiin: - Turvalliset toimenpiteet vastaavat luonteeltaan hakuja tai kyselyjä: käyttäjä ei esimerkiksi voi linkkiä seuratessaan tietämättään joutua sähköpostilistalle. - Turvattomat toimenpiteet vastaavat tilauksia. Turvattomia toimenpiteitä varten selaimiin voitaisiin toteuttaa erillinen käyttöliittymä. Toteutuuko jo WWW:ssä? 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 224
Representaatio: tiedostomuodot Representaatio: resurssin informaation tilaa esittävä tietoa ja metatieto Tiedostomuodot voidaan jakaa binäärisiin ja tekstipohjaisiin: - Binäärisiä: PNG, MPEG, PDF,... - Tekstipohjaisia: HTML, SMIL, CSS, RDF/XML,... Binääristen ja tekstipohjaisten tiedostomuotojen vertailua (yleistyksiä): - Tekstipohjaiset ovat riippumattomampia yksittäisestä sovelluksesta, laitteesta tai käyttöjärjestelmästä - Binäärimuotoinen tieto vaatii vähemmän tilaa: pienempi tiedostokoko - Tekstimuotoisen tiedon esittäminen vaatii enemmän suorituskykyä - Tekstipohjainen tieto on helpommin hyödynnettävissä tulevaisuudessa: uudelleenkäyttö HTML: WWW:n keskeisin tiedostomuoto, mahdollistaa hypertekstiverkon rakentamisen (linkit) ja yksittäisten solmujen sisäisen rakenteen esittämisen 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 225
Lopuksi Osa Architecture of World Wide Web -suosituksen ohjeista on suunnattu erityisesti protokollien tai tiedostomuotojen suunnittelijoille. Suuri osa tiedosta on kuitenkin hyödyllistä kaikille WWW-sovellusten ja -sivustojen tekijöille. Tutustumisen arvoinen dokumentti! Suositus tarjoaa jälleen kerran mahdollisuuden oppia toisten tekemistä virheistä: ainakin periaatteet ([Principles]) ja hyvät käytännöt ([Good practices]) on hyvä käydä läpi yleisten sudenkuoppien välttämiseksi. Mielenkiintoista: WWW on hypertekstijärjestelmä, jota ei oikeastaan koskaan ole määritelty kokonaisuutena arkkitehtuurin tasolla. Eikä itse asiassa vieläkään ole kyseessä on edelleen työversio. WWW:n pienin yhteinen tekijä on HTML-kielen, HTTP-protokollan URI-tunnisteiden yhdistelmä. Mikäli WWW-sovelluksen keskeinen toiminnallisuus on nojaa näiden lisäksi muihin tekniikoihin, käyttäjäryhmä selaimineen olisi syytä olla tiedossa. 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 226