Social Media TagCloud Tagging Twitter Trac TWiki Youtube MediaWiki Microblogging Moodle MoinMoinWiki

Samankaltaiset tiedostot
10 Nykyaikainen WWW-arkkitehtuuri

11 Hypermediajärjestelmistä

9 Hypermediajärjestelmistä

6 Hypermediajärjestelmistä

2 Hypertekstin perusteet

W3C-teknologiat ja yhteensopivuus

Järjestelmäarkkitehtuuri (TK081702)

Avoimet standardit ja arkistointi

Efficiency change over time

Capacity Utilization

Choose Finland-Helsinki Valitse Finland-Helsinki

Tietorakenteet ja algoritmit

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Paikkatiedot ja Web-standardit

You can check above like this: Start->Control Panel->Programs->find if Microsoft Lync or Microsoft Lync Attendeed is listed

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

T Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

10 Hypermedia, ihminen ja käytettävyys

TIEKE Verkottaja Service Tools for electronic data interchange utilizers. Heikki Laaksamo

Verkkopalveluiden saavutettavuus

Salasanan vaihto uuteen / How to change password

Luento 12: XML ja metatieto

7.4 Variability management

in condition monitoring

Automaatiojärjestelmän hankinnassa huomioitavat tietoturva-asiat

Semanttinen Web. Ossi Nykänen Tampereen teknillinen yliopisto (TTY), DMI / Hypermedialaboratorio W3C Suomen toimisto

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

3 Verkkopalveluarkkitehtuuri

Web Service torilla tavataan!

Erikoiskirjastot somessa. Päivikki Karhula, johtava tietoasiantuntija Eduskunnan kirjasto

Voice Over LTE (VoLTE) By Miikka Poikselkä;Harri Holma;Jukka Hongisto

3 Verkkosaavutettavuuden tekniset perusteet

Semanttinen Web. Ossi Nykänen. Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), Hypermedialaboratorio W3C Suomen toimisto

Esimerkkinä - ilmainen blogi-julkaisujärjestelmä. WordPress:stä on myös palvelimelle asennettava versio (WordPress.

Verkkosisällön saavutettavuusohjeet 2.0: hyviä ohjeita monimuotoisen sisällön suunnitteluun ja arviointiin

Sisällysluettelo Table of contents

Lab SBS3.FARM_Hyper-V - Navigating a SharePoint site

JWT 2016 luento 11. to klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari

The OWL-S are not what they seem

Results on the new polydrug use questions in the Finnish TDI data

Security server v6 installation requirements

REST an idealistic model or a realistic solution?

Digitaalisen median tekniikat xhtml - jatkuu Harri Laine 1

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Digitalisoituminen, verkottuminen ja koulutuksen tulevaisuus. Teemu Leinonen Medialaboratorio Taideteollinen korkeakoulu

3 Verkkopalveluarkkitehtuuri

Digitaalisen median tekniikat xhtml - jatkuu

Security server v6 installation requirements

W3C ja Web-teknologiat

Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa

W3C & verkkojulkaisun standardit

W3C ja Web-teknologiat

Aloita oman blogisi luominen (järjestelmä lupaa sen tapahtuvan sekunneissa ;-))

ECVETin soveltuvuus suomalaisiin tutkinnon perusteisiin. Case:Yrittäjyyskurssi matkailualan opiskelijoille englantilaisen opettajan toteuttamana

Uusi Ajatus Löytyy Luonnosta 4 (käsikirja) (Finnish Edition)

Infrastruktuurin asemoituminen kansalliseen ja kansainväliseen kenttään Outi Ala-Honkola Tiedeasiantuntija

Juha Peltomäki JAMK/Teknologia

KODAK EIM & RIM VIParchive Ratkaisut

FAIRDATA-PALVELUT. CSC Suomalainen tutkimuksen, koulutuksen, kulttuurin ja julkishallinnon ICT-osaamiskeskus

Network to Get Work. Tehtäviä opiskelijoille Assignments for students.

Johdatus rakenteisiin dokumentteihin

Tiedonsiirto- ja rajapintastandardit

Other approaches to restrict multipliers

W3C: teknologia ja (tieto)yhteiskunta

XML johdanto, uusimmat standardit ja kehitys

Museo 2015 järjestelmä ja Museoiden luettelointiohjeet

812336A C++ -kielen perusteet,

The CCR Model and Production Correspondence

W3C ja alueellinen standardointi

Käyttöliittymä ja tuotantokäsikirjoitus. Heini Puuska

Tutkitaan sitten HTML-dokumenttien anatomiaa, jotta päästään käsiksi rakenteisten dokumenttien käsitteistöön esimerkkien kautta.

Käytettävyys ja käyttäjätutkimus. Yhteisöt ja kommunikaatiosuunnittelu 2012 / Tero Köpsi

9 Edistynyt PHP-ohjelmointi

Kaivostoiminnan eri vaiheiden kumulatiivisten vaikutusten huomioimisen kehittäminen suomalaisessa luonnonsuojelulainsäädännössä

16. Allocation Models

Blogiin kirjautuminen kutsuttuna. Opettajasi lähettää sinulle kutsun sähköpostitse blogi-järjestelmän kautta.

Pysyvät tunnukset ja niiden hyödyntäminen

VBE2 Työpaketit Jiri Hietanen / TTY

Curriculum. Gym card

Heikki Helin Metatiedot ja tiedostomuodot

Rakenteisen oppimateriaalin tuottaminen verkossa esimerkki Rhaptos. Antti Auer Koordinaattori, HT Jyväskylän yliopisto Virtuaaliyliopistohanke

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

Information on preparing Presentation

Tarua vai totta: sähkön vähittäismarkkina ei toimi? Satu Viljainen Professori, sähkömarkkinat

Windows Phone 7.5 erilainen ja fiksu älypuhelin. Vesa-Matti Paananen Liiketoimintajohtaja, Windows Phone Microsoft Oy

Sovellusprotokolla on vain osa hajautettua sovellusta Esim. WWW

Komission asetus latauspalveluista Jani Kylmäaho Inspire-sihteeristö

Semanttinen Finlex Arttu Oksanen ( )

Avoin data ja tietosuoja. Kuntien avoin data hyötykäyttöön Ida Sulin, lakimies

Teknologia-arkkitehtuurit. Valinta ja mallinnus

2. Sovelluksia ja sovellusprotokollia

Semanttinen Web. Ossi Nykänen. Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), W3C Suomen toimisto

Väite Argument "Yhteiskunnan velvollisuus on tarjota virkistysalueita ja -palveluita." "Recreation sites and service

EUROOPAN PARLAMENTTI

TYPO3 - Open Source Enterprise CMS

Use of spatial data in the new production environment and in a data warehouse

Inspire-kohdetunnisteet

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

URL-osoitteiden suunnittelu

Transkriptio:

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