MATHM-37200 Hypermediajärjestelmät Alfresco Atom Blogger Blogging Blogs Confluence CMS CRM Delicious Drupal ECM Jaiku LinkedIn Facebook Flickr GeoTagging OpenID Plone Podcasts RSS SemanticWikis SNS Social Media TagCloud Tagging Twitter Trac TWiki Youtube MediaWiki Microblogging Moodle MoinMoinWiki MovableType VLE Wikis Wikipedia Wordpress XWiki ZWiki MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 1
Hypermediajärjestelmät: taustaa ja motivaatio (1) Pienimuotoisia hypermediasovelluksia on helppo toteuttaa o mm. www-sivustoja voidaan toteuttaa kirjoittamalla käsin HTML&CSSmerkkauksia Laajoissa sovelluksissa samalla lähestymistavalla tulee vastaan suuria ongelmia: o o Miten voin hallita käsin kokonaisuutta, joka koostuu tuhansista www-sivusta? Entä 5000:n valokuvan kuvapankkia tai 10000 tuotteen tuotetietojärjestelmää? Tarvitaan tehokkaampia keinoja hallita tietoa! MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 2
Hpermediajärjestelmät: taustaa ja motivaatio (2) Hypermediajärjestelmillä tarkoitetaan niitä järjestelmiä, jotka soveltuvat erityisesti hypermedia-tiedon hallintaan. Järjestelmät ovat usein myös erilaisia, riippuen siitä, mihin tarkoitukseen ne on rakennettu. Osa hypermediajärjestelmistä on räätälöity hyvinkin erikoistuneisiin tarkoituksiin, osaa voidaan hyödyntää laajemmin. Esimerkkejä hypermediajärjestelmistä tyypeittäin: o Kotisivujärjestelmä: auttaa kotisivujen julkaisussa o Julkaisujärjestelmä: auttaa ratkaisemaan mihin tahansa julkaisuun liittyviä ongelmia o Valokuvapankkijärjestelmä: auttaa hallitsemaan valokuvia On vaikea antaa tarkkaa määritelmää sille, onko jokin järjestelmä erityisesti hypermediajärjestelmä, ja milloin ratkaisu on liian spesifi, jotta ei enää voida puhua järjestelmästä. Yhteistä kaikille hypermediajärjestelmille kuitenkin on, että ne auttavat ratkaisemaan tietynlaisen, hypermedia-pohjaisen tiedon hallinnan ongelmia. MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 3
Hypermediajärjestelmät: taustaa ja motivaatio (3) Oikein valittu, ongelmiin oikein pureutuva hypermediajärjestelmä auttaa myös tehokkaasti ratkaisemaan tiedonhallinnan ongelmia. Ottamalla soveltuvan hypermediajärjestelmän käyttöön, vältytään monenlaiselta vaivalta. Mm: o Vähemmän käsityönä tehtyä HTML:ää o Vähemmän vaivaa tietomallin suunnitteluun o Vähemmän vaivaa käyttöliittymän tekemiseen Aina käytettäviä järjestelmiä ei voida valita: niiden kanssa joudutaan tulemaan toimeen. o Tällöin käytössäolevan välineen tehokas hyödyntäminen on avainasemassa MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 4
Hypermediajärjestelmät-opintojakso Hypermediajärjestelmät-opintojakson tavoitteena on antaa teoreettisia ja käytännön valmiuksia hypermediajärjestelmistä. Tavoitteena on, että opitaan: o Ymmärtää hypermediajärjestelmiin liittyvät teoreettiset käsitteet o Ymmärtämään hypermediajärjestelmien toimintaa ja näiden tapaa tiedonhallintaan Opi valitsemaan oikea järjestelmä oikeaan käyttötarkoitukseen MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 5
Kurssin suorittaminen: tiedotus, vaatimukset, aikataulu, sisältö MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 6
1 Hypermediajärjestelmät: Historia, malleja ja visiota MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 7
Historiaa WWW ei suinkaan ole ainoa, eikä varsinkaan ensimmäinen, hypertekstijärjestelmä Historiallisesti (1980- ja 1990-luvullakin) Hypermediajärjestelmät olivat pääosin paikallisia, usein integroituja sovelluksia Myös teoreettisempia malleja Hypermediajärjestelmistä on jonkin verran pohdittu. Mielenkiintoista on myös se, että osa näistä malleista ratkaisu jo aikoinaan teoriatasolla sellaisia ongelmia, mitkä nykyäänkin aiheuttavat WWW:ssä päänvaivaa Tutustutaan seuraavaksi muutamiin tällaisiin malleihin MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 8
Hypermediajärjestelmien yhteiset piirteet Pohditaan aluksi 80-luvulla yleistyneitä integroituja hypertekstijärjestelmiä, kuten NoteCards, Neptune, Intermedia ja Augment Voidaan kysyä: mitkä ovat näiden järjestelmien yhteiset piirteet? Lyhyesti kuvailtuna tältä pohjalta syntyi Dexter MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 9
Dexter Reference Model (1/2) Hypertekstijärjestelmän osat voidaan myös standardoida, ts. määritellä yleinen malli (referenssikuvaus), jonka kautta analysoida ja vertailla eri hypertekstijärjestelmiä Kenties merkittävin tällainen kuvaus on Dexter Reference Model (v. 1990) - esitystapataso ([run-time layer]) - rakennetaso ([storage layer]) - komponenttitaso ([within-component layer]) Dexterin pääpaino on rakennetason kuvailulla: Storage layer models the basic node/link network structure that is the essense of hypertext. The storage layer describes a 'database' that is composed of a hierarchy of data-containing 'components' which are interconnected by relational 'links'. Components correspond to what is typically thought of as nodes in a hypertext network: cards in NoteCards and HyperCard, frames in KMS, etc. MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 10
Dexter Reference Model (2/2) Dexter kuvaa myös - yhteydet eri tasojen välillä ([presentation specifications] & [anchoring]) - eri kerrosten peruskäsitteet (komponentit: atomit, linkit & koosteet, ) - eri tasojen funktiot ja operaatiot MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 11
Dexter - piirteitä Hypertekstiä lukee yhtä aikaa monta käyttäjää (kullakin oma istunto) ja käyttäjät voivat tehdä hypertekstiin muutoksia Hypertekstin reaaliaikainen muokkaaminen & päivittäminen on mahdollista (transaktiot tietokantojen tapaan) Jokaisella solmulla ja linkillä on oma yksikäsitteinen tunnisteensa Linkit ovat aina valideja (linkit ovat omia konkreettisia objektejaan) ja linkit voivat olla aidosti monensuuntaisia Hypertekstin kaikki solmut ovat aina reaalisesti saatavilla saantifunktion avulla Koko hypertekstistä voidaan etsiä solmuja hakufunktion avulla MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 12
Dexter Storage Layer eli rakennetaso (1) " Storage layer models a database that is composed of a hierarchy of data-containing components which are interconnected by relational links. Components have unique identifiers and links can be identified by a set of two or more component identifiers. Components correspond to the general notion of nodes and can contain text, graphics, images, audio, video etc. The components are treated as generic containers of data and the model does not specify any structure within the containers. Thus, the storage layer does not differentiate between text components and graphics components. It focuses mainly on the mechanism by which components and links are tied together to form hypertext networks." (Balasubramanian) MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 13
Dexter Rakennetason jäsennystä MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 14
WWW suhteessa Dexter-referenssimalliin Pohditaan seuraavaksi, miten WWW toteuttaa Dexter-referenssimallin eri piirteet. Ks. erityisesti: Dexter - piirteitä MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 15
Xanadu ja Xanalogiset rakenteet 1 Alkuperäiseksi Hypertekstiprojektiksi kutsuttu Project Xanadu ei koskaan johtanut valtavaa suosiota saaneeseen toteutukseen Xanadussa halutaankin erityisesti korostaa, ettei sen olekaan ollut tarkoitus luoda WWW Xanadun visio on paljon kunnianhimoisempi ja sen tarkoituksena on ratkaista useita sellaisiakin (teoreettisempia) ongelmia, joita WWW ei itsessään kykene ratkaisemaan 1 Ks. Nelson, T. H., 1999. Xanalogical structured, needed now more than ever: parallel documents, deep links to content, deep versioning and deep re-use. ACM Computing Surveys (CSUR), Volume 31, Issue 4es (December 1999). MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 16
Xanalogiset rakenteet Xanadun Xanalogisten rakenteilla on useita, esimerkiksi WWW:hen verrattuna huomattavasti vahvempia ominaisuuksia Keskeisenä käsitteenä transkluusio: dokumenttien välillä siirretty / yhteinen tieto voidaan täsmällisesti jäljittää Transkluusion avulla voidaan toteuttaa myös Vannevar Bushin visiomat assosiatiiviset polut (trails) Rakenteen keskeisiä ominaisuuksia Rinnakkaiset dokumentit ja ristiinviittaavat (engl. transpointing) ikkunat Sisällön syvä, rikkoutumaton linkitys Syvä versiointi: sisällön kaikki versiot säilytetään myös vanhoihin versioihin voi viitata yhtälaisesti Erityisesti syvän linkityksen ja versioinnin seurauksena sisällön syvä uudelleenkäyttö MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 17
Xanadu ja Xanalogisten rakenteiden merkitys On huomattava, että WWW itsessään ei toteuta moniakaan Xanadun visioimista piirteistä: piirteiden puuttumiseen liittyvät ongelmat ovat kuitenkin todellisia (versiointi, viittaukset, Copyright, mikromaksaminen) WWW-sovelluksissa nämä piirteet ratkaistaan usein sovelluskohtaisesti: Wiki-järjestelmät, esim. MediaWiki, ratkaisee sisäisesti versioinnin ongelmat...xanadun kaltaista kaikenkattavaa ja yleiskäyttöistä ratkaisua ei (vielä) ole ilmestynyt WWW:hen...Yllättävänkin lähelle pääseviin ratkaisuihin palataan myöhemmin tällä kurssilla MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 18
WWW Hypermediajärjestelmänä (1/2) Nykyään WWW/HTML -yhdistelmä on useimmille niin tuttu, että WWW:n voidaan sanoa toimivan hypermedian de facto referenssijärjestelmänä WWW ei kuitenkaan nykyisellään (ainakaan helposti & esim. suoraan HTMLspesifikaation muodossa) toteuta kaikkia niitä piirteitä, joita esim. Dexter hypertekstijärjestelmälle määrittelee: Monensuuntaiset linkit, validi linkitys Universaali hakufunktio, Toisaalta HTML, WWW-hyperteksti sisältää ("määrittelee") muita nykyään hypertekstiin ja mediaan luonnostaan liitettäviä piirteitä & ominaisuuksia Kuvien yms. objektien liittäminen hypertekstiin Ohjelmien ja skriptien liittäminen hyperdokumentin solmuihin Hypertekstin solmujen (dokumenttien) rakenteen esittäminen elementtirakenteina MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 19
WWW Hypermediajärjestelmänä (2/2) On myös syytä huomata, että WWW kokonaisuutena ei ole varsinainen standardi - kyseessä on alati liikkeessä oleva muuttuva kokonaisuus, jonka standardeista, yleisistä sopimuksista tai käytännöistä yleensä kerralla käytetään/sovelletaan vain osaa, esim. Yksittäisten dokumenttien (ja suurelta osin rakenteettoman) hypertekstin esittäminen (HTML) Multimediaelementtien esittäminen (PNG, JPEG, MPEG) Hyperdokumentin solmujen nimeäminen ja näihin viittaaminen linkeillä (URL) Solmujen noutaminen luettavaksi (HTTP) & HTTP-palvelinohjelmistojen ominaisuuksien hyödyntäminen (esim. index.html-tiedostonimen käyttäminen) Skriptien kirjoittaminen (JavaScript, ActionScript, Python, PHP, ) Dokumenttien muokkaaminen selainten tarjoaminen rajapintojen läpi (DOM) WWW ei oikeastaan ota tarkasti kantaa siitä, millaista hyvän hypermedian tulisi olla, vaan tarjoaa leikkijöiden käyttöön legopalikat asenteella "tässä on kaikki tarpeellinen - tee lelusi itse" MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 20
Lopuksi WWW on nykyaikana usein se ympäristö, jonka ominaisuuksia seuraten Hypermediajärjestelmiä rakennetaan WWW ei silti Hypermediajärjestelmänä ole läheskään täydellinen. Kun sen rajoitteita ja laajennusmahdollisuuksia pohditaan, tulevat erilaiset järjestelmämallit jälleen ajankohtaisiksi. Kurssin aikana tullaan huomaamaan, että erilaiset WWW:n päälle rakennetut järjestelmät ratkaisevat kukin omalla tavallaan näitä referenssijärjestelmien jo aikoinaan esiinnostamia haasteita Tällainen orgaaninen arkkitehtuurimalli onkin itse asiassa WWW:lle hyvin tyypillinen ja siirrymmenkin seuraavaksi pohtimaan tarkemmin! MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 21
1.2 Nykyaikainen web-arkkitehtuuri MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 22
Taustoittava esimerkki: WWW-sivun noutaminen HTTP-protokollalla Syötetään selaimen osoite: http://matriisi.ee.tut.fi/hypermedia Karkea tulkinta: http = protokolla, matriisi.ee.tut.fi=palvelin, hypermedia=dokumentti Sivun noutaminen vaiheittain: 1. Otetaan TCP-yhteys (portti 80) palvelimeen matriisi.ee.tut.fi 2. Lähetetään HTTP GET -pyyntö, muotoa: GET /hypermedia HTTP/1.1 Host: matriisi.ee.tut.fi User-Agent: Mozilla/5.0 (...) Accept: text/html,application/xhtml+xml,application/xml Accept-Encoding: gzip,deflate 3. Vastaus muotoa: HTTP/1.x 200 OK Date: Thu, 16 Oct 2008 10:43:57 GMT Content-Type: text/html; charset=iso-8859-1 4. Jatketaan vaiheen 2 tapaisten pyyntöjen tekemistä kaikille sivuun liittyville resursseille (kuvat, tyylitiedosto) jne. kunnes koko sivu on ladattu MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 23
Nykyaikainen WWW-arkkitehtuuri lyhyesti Vuonna 2004 julkaistu Architecture of the World Wide Web -määritys 2 jakaa WWWarkkitehtuurin 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]): Viestinvälitys sovelluksissa 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 joukolla tiedostomuotoja Esimerkki: Levyjen tiedot esitetään XHTML-dokumentteina, kannet ja ikonit PNG-muotoisia. Palvelun ulkoasu määritellään CSS-tyylitiedostossa. ovat 2 http://www.w3.org/tr/webarch/ MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 24
Resurssi, yksilöinti ja representaatio Representaatio edustaa resurssia tietyllä ajanhetkellä (HTTP-pyyntö): Yksilöinti 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 MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 25
Yksilöinti: URI-tunnisteet (1/2) Idea: Maailmanlaajuisen verkon muodostaminen vaatii globaalisti yksikäsitteiset tunnisteet. URI = Uniform Resource Identifier 3 (RFC 2396, http://tools.ietf.org/html/rfc2396) Uniform Uniformity provides several benefits: it allows different types of resource identifiers to be used in the same context, even when the mechanisms used to access those resources may differ; it allows uniform semantic interpretation of common syntactic conventions across different types of resource identifiers; it allows introduction of new types of resource identifiers without interfering with the way that existing identifiers are used; and, it allows the identifiers to be reused in many different contexts, thus permitting new applications or protocols to leverage a pre-existing, large, and widely-used set of resource identifiers. (RFC 2396) Resource A resource can be anything that has identity. Familiar examples include an electronic document, an image, a service (e.g., "today's weather report for Los Angeles"), and a collection of other resources.not all resources are network "retrievable"; e.g., human beings, corporations, and bound books in a library can also be considered resources. (RFC 2396) Identifier An identifier is an object that can act as a reference to something that has identity. In the case of URI, the object is a sequence of characters with a restricted syntax. (RFC 2396) 3 Huom: 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) MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 26
Yksilöinti: URI-tunnisteet (2/2) URI on siis resurssin yksikäsitteinen tunniste URI on joko URL (Uniform Resource Locator) tai URN (Uniform Resource Name) URL on resurssin yksikäsitteinen tunniste URL on muotoa: protokolla://omistaja/resurssi Tyypillisiä URL-skeemoja: http, https, mailto, ftp, jne. URN on URN-skeemaa käyttävä, resurssin yksikäsitteinen tunniste URN on muotoa: urn:nimiavaruus:tunniste URI-skeemojen rekisteröinnistä vastaa IANA Esimerkkejä URI-tunnisteista: http://www.levylaari.fi, mailto:jukka.huhtamaki@tut.fi, tel:+358-3-555-1234 URI-tunnisteita voidaan siis käyttää verkosta noudettavissa olevien resurssien lisäksi minkä tahansa yksilöintiin: ihmiset, valuutat, äänilevyt, aikavyöhykkeet, tietotyypit,... Tämä on keskeinen ajatus myös Semanttisessa Webissä. MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 27
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 olla mahdollista noutaa resurssin representaatio: kokeile esimerkiksi ladata selaimeesi XHTMLnimiavaruuden 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 negotiation]). - 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 4 : älä siirtele resursseja paikasta toiseen. Parempi vaihtoehto on resurssien järkevä nimeäminen (versiointi). 4 http://www.w3.org/provider/style/uri MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 28
URI-tunnisteiden käyttö: esimerkki Esimerkki: Levylaari.fi-verkkopalvelussa Laika and the Cosmonautsin levyn Absurdistan vuoden 1997 levyksi. URI-tunnisteiden rakentaminen: 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 Pohdintaa: Esimerkin URI-tunnisteet eivät ole aliaksia, koska kaikki URI:t yksilöivät eri resurssin. Esimerkin URI:t voivat käytännössä ohjata samaan resurssiin HTTPuudelleenohjauksen avulla, esimerkiksi WWW-palvelimella tai skriptaamalla. Esimerkki uudelleenohjauksesta PHP:llä: <?php header( Location: http://www.levylaari.fi/levy/absurdistan );?> Kansainvälistämisen haaste. URI ei suoraan ota kantaa esim. skandinaavisten kirjainten käyttöön, joten esimerkiksi. Http://www.seinäjoki.fi/ tuottaa hankaluuksia URI-tunnistee. IRI.n (Internationalized Resource Identifier) avulla tämäkin tosin onnistuu. MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 29
Vuorovaikutus: protokollat Protokolla on keino viestien (engl. 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 voidaan jakaa turvallisiin ja turvattomiin: - Turvalliset toimenpiteet vastaavat luonteeltaan hakuja tai kyselyjä: käyttäjä ei esimerkiksi saa linkkiä seuratessaan tietämättään joutua sähköpostilistalle. - Turvattomat toimenpiteet vastaavat luonteeltaan tilauksia. Turvattomia toimintoja varten selaimeen voidaan toteuttaa oma käyttöliittymä. MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 30
Vuorovaikutus: turvalliset toimenpiteet Turvallisen toimenpiteen määrittelyä: a safe interaction is one where the agent does not incur any obligation beyond the interaction. An agent may incur an obligation through other means (such as by signing a contract). If an agent does not have an obligation before a safe interaction, it does not have that obligation afterwards. (Architecture for the WWW, Vol. One) Esimerkkejä HTTP-pyynnöistä, jotka ovat turvallisia toimenpiteitä: - WWW-sivun noutaminen (http://www.tut.fi/index.html) - Hakupyynnöt esim. hakukoneelle (http://www.google.fi/search?q=www) Turvallisen tiedonhaun periaate: representaation noutaminen ei saa johtaa velvoitteisiin Resurssien noutaminen ei saa siis johtaa ei-turvallisen toimenpiteen suorittamiseen. HTTP:ssä tätä toimenpidettä vastaan erityisesti GET. Esimerkkejä tätä periaatetta rikkovasta toiminnasta: - Sisällönhallintajärjestelmän tilan päivittäminen HTTP GET -pyynnöllä (http://www.example.com/resources/a?data=abc) - Sähköpostilistalle kirjautuminen HTTP GET -pyynnöllä (http://www.example.com/join/? email=john.doe@example.com) MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 31
Vuorovaikutus: ei-turvalliset toimenpiteet (ja vastuullisuus) Ei-turvallisen toimenpiteen määrittelyä: Other Web interactions resemble orders more than queries. These unsafe interactions may cause a change to the state of a resource and the user may be held responsible for the consequences of these interactions. Unsafe interactions include subscribing to a newsletter, posting to a list, or modifying a database. Note: In this context, the word "unsafe" does not necessarily mean "dangerous"; the term "safe" is used in section 9.1.1 of [RFC2616] and "unsafe" is the natural opposite. (Ibid.) Esimerkkejä oikein toteutetuista ei-turvallisista toimenpiteistä: Sisällönhallintajärjestelmän tilan päivittäminen HTTP POST -pyynnöllä siten: Päivityspyyntö (transaktio): http://www.example.com/resources/a?action0update&data=abc) Resurssi: http://www.example.com/resources/a Sähköpostilistalle kirjautuminen HTTP POST -pyynnöllä Teoriassa olisi hyvä, että yksittäisiin ei-turvallisiin toimenpiteisiin voitaisiin myös viitata yksikäsitteisellä tunnisteella (URI). Käytännössä tähän ei aina kuitenkaan päästä (pohdi miksi) MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 32
Representaatio: tiedostomuodot Representaatio resurssin informaation tilaa esittävä tieto ja metatieto, pohjautuu määrättyihin tiedostomuotoihin: A data format specification (for example, for XHTML, RDF/XML, SMIL, XLink, CSS, and PNG) embodies an agreement on the correct interpretation of representation data. The first data format used on the Web was HTML. Since then, data formats have grown in number. Web architecture does not constrain which data formats content providers can use. This flexibility is important because there is constant evolution in applications, resulting in new data formats and refinements of existing formats. Although Web architecture allows for the deployment of new data formats, the creation and deployment of new formats (and agents able to handle them) is expensive. Thus, before inventing a new data format (or "meta" format such as XML), designers should carefully consider re-using one that is already available. (Architecture of the WWW) Kiinteästimäärättyjä, hyväksyttyjä tiedostomuotoja ei siis ole. On ainoastaan vakiintuneempia, ja vakiintumattomampia tiedostomuotoja MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 33
Representaatio: tiedostomuotojen luokittelua ja vertailua 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 MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 34
Lopuksi Mielenkiintoista: WWW on hypertekstijärjestelmä, jota ei oikeastaan koskaan ole määritelty kokonaisuutena arkkitehtuurin tasolla arkkitehtuurikuvaus on tullut W3C:n toimesta vasta jälkikäteen suositusluonteisena. Osa Architecture of World Wide Web -suosituksen ohjeista on suunnattu erityisesti protokollien tai tiedostomuotojen suunnittelijoille. Suuri osa tiedosta on 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. 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. Järjestelmätason hypermediaan kannattaa perehtyä viimeistään siinä vaiheessa kun on suunnittelemassa uutta hypertekstiin perustuvaa järjestelmää, esimerkiksi monikanavaisuuteen kykenevää sisällön hallinta- ja julkaisujärjestelmää. Valmis jäsennys helpottaa taatusti suunnittelutyötä. MATHM-37200 HYPERMEDIAJÄRJESTELMÄT (syksy 2009) 35