5 Sisällönhallinta- ja julkaisujärjestelmät

Samankaltaiset tiedostot
5 Verkkopalvelun sisällön hallinta

Hypermedian ohjelmointi, kevät Julkaisujärjestelmän toteuttaminen

3. Sisällönhallinta- ja julkaisujärjestelmät. MAT Ohjelmallinen sisällönhallinta, kevät 2014 Jaakko Salonen & Jukka Huhtamäki

2. Sisällönhallinta- ja julkaisujärjestelmät

8 Hypermedian suunnitteleminen

10 Nykyaikainen WWW-arkkitehtuuri

3 Verkkopalveluarkkitehtuuri

TYPO3 - Open Source Enterprise CMS

3 Verkkopalveluarkkitehtuuri

4 Verkkopalvelun toteuttaminen

NTG CMS. Julkaisujärjestelm. rjestelmä

Hypermedian ohjelmointi (2 ov) kevät Yleisiä tietoja kevään kurssista. Kurssin sisältö ja suorittaminen

Projektinhallintaa paikkatiedon avulla

Web-sisällönhallintajärjestelmät. Sisältö. Mitä on web-sisällönhallinta?

6 Mukautuvat verkkopalvelut

4 Verkkopalvelun toteuttaminen

Web-sisällönhallintajärjestelmät

Kurssin hallinta -työväline

Tiedostonhallinta. Yleistä

NetEazer informaatiojärjestelmä www- palvelujen sisällönhallintaan ja julkaisuun

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

Johdatus rakenteisiin dokumentteihin

VYPEdit verkkosivualusta SVY-toimijoille

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?

Kanta. Potilastiedon arkiston arkistonhoitajan opas

Paikkatietotuotteen määrittely

9 Edistynyt PHP-ohjelmointi

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

XML johdanto, uusimmat standardit ja kehitys

Viasys VDC Stream Mallipohjaista projektinhallintaa. Tapani Parmanen ja Mia Rantakari Vianova Systems Finland Oy

Sisältö. Päivitetty viimeksi Sivu 2 / 14

Microsoft Office SharePoint Server 2007

7 Mukautuvat verkkopalvelut

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto

XML Finland seminaari : Office 2007 XML dokumenttituotannossa

8 Tiedonhaun apuvälineet

ETAPPI ry JOOMLA 2.5 Mediapaja. Artikkeleiden hallinta ja julkaisu

Paikkatietotuotteet ja niiden määrittely

Julkaisujärjestelmän peruskäyttö. Pikaohje

Ohjeita kirjan tekemiseen

10 Ohjelmoinnista Semanttisessa Webissä

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

OpasOodi. Ilmari Hyvönen Opiskelijarekisteri

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

POTILASTIEDON ARKISTO ARKISTONHOITAJAN KÄYTTÖLIITTYMÄN KÄYTTÖOHJE

Tietokanta.java Luokka tarjoaa välineet tietokannan lukemiseen. Haetuista tiedoista muodostetaan kurssi- ja opetus-olioita.

MATHM Hypermedian ohjelmointi (4 op) kevät 2007

Järjestelmäarkkitehtuuri (TK081702)

Wikin käyttö Perus ja kehittynyt Juha Matikainen Antti Miettinen

MATHM Hypermedian ohjelmointi (4 op) kevät Yleisiä tietoja kevään toteutuskerrasta. Haluatko Web-ohjelmoijaksi?

Mikä on WordPress? itse ylläpidettävä (self-hosted) WordPress.com: ilmainen 3. osapuolen ylläpitämä pilvipalvelu (Cloud-hosted)

Tiedonlouhinta rakenteisista dokumenteista (seminaarityö)

Juricon Nettisivu Joomlan käyttöohjeet

ARVO - verkkomateriaalien arviointiin

Ylläpitodokumentti Mooan

Toiminnalliset ja ei-toiminnalliset vaatimukset Tunnus (ID) Vaatimus Vaatimuksen

NETTISIVUOHJE. MUITA OHJEITA käyttäjän lisääminen, mediakirjasto, sähköpostien lisääminen

HALLINNON YHTEINEN VERKKOPALVELURATKAISU ,

SharePoint Foundation 2010 perusteet ylläpitäjille

Käyttöliittymäuudistus 2011

Hypermedian ohjelmointi (2 ov) kevät Luentorunko. Jukka Huhtamäki Hypermedian ohjelmointi (2 ov)

Rajapintapalveluiden toteutusvaihtoehdot ja tilaaminen. Kunnat ja Inspire koulutus Jani Kylmäaho

Vaatimusten versiointi DOORSissa

Ylläpitoalue - Etusivu

INSPIRE ArcGIS-tuotteilla. Ulla Järvinen ja Jussi Immonen INSPIRE-koulutuksessa

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

Google-dokumentit. Opetusteknologiakeskus Mediamylly

Asiointitilin lomakerajapinta. Kansalaisen asiointitili

Raporttiarkiston (RATKI) käyttöohjeet Ohjeet

SUOMEN KUNTALIITTO RY

HAKUKONEMARKKINOINTI KOTISIVUJEN PÄIVITYSOHJE

XML -muotoisen raportin luonti

Artikkelin lisääminen

Kansallinen digitaalinen kirjasto Käyttöliittymä Finna Aki Lassila / Kehittämispäällikkö / Kirjastoverkkopalvelut

Liferay CE KÄYTTÖOHJE PÄIVITTÄJÄLLE. Content Manager. Ambientia Oy TM Ambientia

Sähköpostin arkistointi

2 Web-lomakkeet. 2 Web-lomakkeet

RATKI 1.0 Käyttäjän ohje

Tietokanta (database)

in condition monitoring

M U U T O S TA L A A D U N E H D O I L L A W W W. A R T E R. F I

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

VALDA-tietojärjestelmän j versio 1

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1

MIIKKA VUORINEN, SANTERI TUOMINEN, TONI KAUPPINEN MAT Verkkopalvelun laadukkuus ja arviointi

2 Web-lomakkeet. HTML-lomakkeet. Lomakkeiden perusteet

Valtakunnallinen sosiaalihuollon asiakastiedon arkisto näkymiä toimeenpanoon

Käyttöohje. Aija. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

KYSELYN JULKAISEMINEN JA VASTAUSTEN KERÄÄMINEN

Rajapintapalveluiden toteutuksessa huomioitavaa. Rajapinnat tehokäyttöön Jani Kylmäaho

Liite 7: Asiakastietoa käsittelevä järjestelmä Sosiaalihuollon asiakastiedon arkisto. Rajapintakäyttötapaukset

Microsoft Visual Studio 2005

Tieto- ja viestintätekniikka. Internetistä toimiva työväline, 1 ov (YV10TV2) (HUOM! Ei datanomeille)

Periaate. Login. Taitto ja artikkelit. Artikkeli ja elementit

1 (14) Ohje. Ohje. GTK-wiki. Geologian tutkimuskeskus, Verkkosivustopalvelut

24h Admin V / 24h_Admin_v100.pdf 1/9

3 Verkkopalveluarkkitehtuuri

ATK yrittäjän työvälineenä

Yhteentoimivuusalusta ja sen hyödyntäminen kuntien/maakuntien taloushallinnossa Petri Tenhunen, VRK

Transkriptio:

Taustaa: dokumentin elinkaari Hypermediasovelluksen tärkeä erityispiirre on se, että hypermediasovelluksella on aina jokin sisältö Sisältö on verkkopalvelun hyödyllisyyden tärkein yksittäinen tekijä. Sisällön muokkaamiseen, hallintaan ja julkaisemiseen liittyvät toiminnot ovat siis keskeinen osa verkkopalvelun toimintaa Verkkopalvelun sisällön muokkaamisen, hallinnan ja julkaisemisen tarvittavan toiminnallisuuden toteuttavaa järjestelmää kutsutaan sisällönhallintajärjestelmäksi (SHJ). Content management System (CMS) lienee useimmille tutumpi käsite Sisällönhallintajärjestelmän toiminnallisuus voidaan jakaa seuraaviin kokonaisuuksiin: Sisällön tuottaminen: sisällön syöttäminen SHJ:n tietovarastoon (repository) Sisällön hallinta: tietovarastoon tallennetun sisällön hallinta Julkaiseminen: tiedon julkaiseminen tietovarastosta eri muotoihin Julkaisujärjestelmä (publishing framework) vastaa sisällönhallintajärjestelmällä tuotettavan ja hallittavan sisällön julkaisemisesta. Useat sisällönhallintajärjestelmät toteuttavat myös julkaisujärjestelmän toiminnallisuuden MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 85 Dokumentin elinkaari jäsentää esimerkiksi seuraavalla tavalla (Lähde: Anttila, J. Dokumenttien hallinnan ABC): Luonti Muokkaus Tarkastus Julkaisu Haku Hyväksyntä Katselu Arkistointi Poisto Jäsennystä voi käyttää pohjana suunniteltaessa sisällönhallintajärjestelmän sisäisen työnohjauksen toiminnallisuutta tai sisällöntuotantoprosessia sinänsä; kaikkea ei tietenkään aina tarvitse tehdä tietokoneella! MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 86 Sisällönhallintajärjestelmän lisäarvot SHJ:n toiminnallisuus (1/2): sisällön tuottaminen Odotettavissa olevia sisällönhallintajärjestelmästä saatavia lisäarvoja: Tuottavuuden parantuminen: tekijät (sisällöntuottaja, graafinen suunnittelija,...) voivat keskittyä omaan osaamisalueeseensa Oikeuksien hallinta: dokumentin elinkaaren vaiheisiin vaikuttavien henkilöiden täsmällinen määritteleminen ja rajaaminen Työnkulun (workflow) ohjaus: Dokumentin elinkaaren vaiheistaminen ja tekijöiden vastuualueiden selkeyttäminen. Esimerkkejä: luominen, muokkaaminen, tarkastaminen, hyväksyminen, julkaiseminen,... Yhtenäinen ulkoasu: Tieto syötetään sisällönhallintajärjestelmään yhtenäisessä muodossa, joten myös sisällön julkaisumuodot yhtenäistyvät. Apuna yhtenäistämisessä ovat sivupohjat, tyylitiedostot & funktiokirjastot Ulkoasun muokkaaminen: ks. Yhtenäinen ulkoasu Huonon suunnittelun seurauksena tai SHJ:n valinnan epäonnistuessa tuloksena on jotain päinvastaista, esimerkiksi tuottavuuden heikentyminen, byrokratian lisääntyminen tai pakollisten esitietojen lisääntyminen. Esimerkkejä löytyy vaikkapa valtion sähköisistä tietojärjestelmistä MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 87 Työvälineet: sisäänrakennetut työvälineet sisällön tuottamiseen tai tuki ulkoisille tiedostomuodoille (import). Reunaehto: toteutettava WWW-lomakkeiden avulla Sisällön ja ulkoasun erottaminen: keskeinen idea tiedon rakenteistamisessa, joka taas on pakollinen reunaehto monikanavajulkaisemiselle Hajautettu muokkaaminen: sisällöntuottajia voi olla useita, joten SHJ:n on mahdollistettava esimerkiksi tiedon lukitseminen ja versiointi Uudelleenkäyttö: sama tieto - esimerkki yksittäinen dokumentti tai tekstikappale - voidaan julkaista useassa eri jakelukontekstissa Metatiedon tuottaminen: sisällön hallinta edellyttää metatiedon keräämistä, joka ei kuitenkaan saa tukehduttaa sisällöntuotantoprosessia Linkittäminen: sisällöntuottajan on voitava määritellä sovelluksen sisäisiä linkkejä, muutokset rakenteessa ja monikanavaisuus on otettava huomioon Esitiedot: HTML-osaaminen tai vastaava ei saa (välttämättä) olla pakollinen esitieto Käytön helppous ja tehokkuus: välttämätöntä, mutta toteuttaminen todellinen haaste (vrt. Web-lomakkeet ja sisällöntuottajien WYSIWYG-tausta => Word) MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 88

SHJ:n toiminnallisuus (2/2): sisällön hallinta Versiointi ja arkistointi: Versiointi mahdollistaa muutosten hallinnan, virheistä toipumisen ja tiedon palauttamisen. Arkistointi on usein parempi vaihtoehto kuin tiedon tuhoaminen Työnkulun ohjaus: Työnkulun on oltava muokattava, joustava ja riippumaton organisaatiossa tapahtuvista muutoksista Turvallisuus: pääsynhallinta, käyttöoikeudet, virheistä toipuminen, tietoturva Integrointi ulkoisiin järjestelmiin: SHJ on ainoastaan yksi osa yrityksen tietojärjestelmää. Tarve tiedon kopiointiin tai mekaaniseen siirtämiseen estää tehokkaan toiminnan Raportointi: Raportointi (mahdollisesti proaktiinen) järjestelmässä tapahtuvista virheistä (ylläpitäjä) tai esimerkiksi muutoksista sovelluksen tilassa (ylläpitäjä ja käyttäjä). Proaktiivinen tarkoittaa tässä sitä, että järjestelmä välittää raportit ilman käyttäjän aktiivista toimintaa Sisällön hallinta ja dokumenttien hallinta (document management) liittyvät hyvin läheisesti yhteen. Organisaatiossa käytössä olevan dokumenttienhallintajärjestelmän yhdistäminen sisällönhallintajärjestelmään on kuitenkin yleensä hankalaa MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 89 Julkaisujärjestelmän toiminnallisuus Ulkoasu: ulkoasun irrottaminen esimerkiksi tyylitiedostojen avulla Sivupohjat: Asettelun määritteleminen sivupohjilla, joiden muokkaaminen onnistuu ilman teknistä osaamista. Jopa WYSIWYG-käyttöliittymä sivupohjien muokkaamiseen? Laajennettavuus: Järjestelmän on mahdollistettava jatkuva kehitystyö. Uusien julkaisemiseen liittyvien toimintojen toteuttamisen on oltava helppoa Julkaisumuodot: Tiedon julkaiseminen eri muotoihin on oltava mahdollista. Mahdollisuus uusien julkaisumuotojen lisäämiseen on tärkeä Personointi: tiedon julkaiseminen käyttäjän käyttäjäryhmän perusteella mukautettuna (=> mukautuva hypermedia) Käytön tilastointi: Käytön lokidatan tallentaminen tietokantaan ja erilaisten raporttien muodostaminen. Esimerkkejä: suosituimmat sivut, päivittäinen käyttö tai hakutoiminnon käyttö (virheelliset haut => käytettävyyden edistäminen) Muista myös nämä: käytettävyys, saavutettavuus, selainriippumattomuus, yksinkertainen asiakas, käytön nopeus, validi HTML ja CSS, navigaation apuvälineet ja metatiedon julkaiseminen MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 90 Tiedon tyyppi ja tallentaminen Verkkopalvelun sisältö on tietoa. Tieto voidaan jakaa kahteen tyyppiin: Datakeskeinen tieto on jäsennettävissä pieniin palasiin, jotka voidaan esimerkiksi tallentaa relaatiotietokantaa. Esimerkkejä: reseptit, levyn tiedot, henkilötiedot,... Dokumenttikeskeinen tieto muodostuu jotakin tiettyä asiaa käsittelevistä kokonaisuuksista. Tiedon tallentaminen onnistuu parhaiten dokumenttitietokantaan. Esimerkkejä: kirja, raportti, käyttöohje, oppimateriaali,... Esimerkki datakeskeisestä tiedosta: Laika & the Cosmonauts;Absurdistan;1997;surf Esimerkki dokumenttikeskeisestä tiedosta: <p><img src="laika-in-space.png" alt="laika the Space Dog"/> Laika & the Cosmonauts on <dfn>visuaalista avaruussurfia</dfn>... </p> Tiedon tyypillä on keskeinen vaikutus tiedon muokkaamiseen ja tallentamiseen käytettävän menetelmän valinnassa MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 91 Tiedon tallentaminen: vaihtoehtoja SHJ:n tietovarasto voidaan toteuttaa monella eri tavalla: Määrämuotoinen tekstitiedosto (flat file): Tiedot tallennetaan tekstitiedostoon esimerkiksi Comma Separated Value (CSV) -muodossa. Osa ASCII-merkeistä on varattu tietojen jäsentämiseen Rakenteinen dokumentti: Tallennusmuotona käytetään jotakin XML-kieliopin (miksei myös SGML-kieliopin) mukaista merkkauskieltä. Mahdollistaa tietojen suoraviivaisen siirtämisen ja uudelleenkäytön Relaatiotietokanta: Tiedot tallennetaan relaatiotietokannan tauluihin riveinä. Erilaisiin tekstitiedostoihin verrattuna merkittävästi tehokkaampi ja siten skaalautuvampi vaihtoehto Dokumenttitietokanta: Järjestelmään tuodut dokumentit, esimerkiksi mediaelementit, voidaan tallentaa sellaisenaan dokumenttitietokantaan. Myös osa relaatiotietokannoista tukee vastaavaa toiminnallisuutta. Relaatiotietokanta on suositeltavin vaihtoehto, kun tarkoituksena on toteuttaa sisällönhallintajärjestelmä suurelle joukolle käyttäjiä. Tekstitiedostoihin perustuvien vaihtoehtojen etuna on parempi siirrettävyys. MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 92

Tiedon siirtäminen järjestelmien välillä Määrämuotoiset tekstitiedostot ja rakenteiset dokumentit soveltuvat erityisen hyvin tiedon siirtämiseen järjestelmien välillä Esimerkki: levykokoelman tiedot XML-muodossa: <recordcollection> <record year="1997"> <name>absurdistan</name> <artist>laika & the Cosmonauts</artist> </record> </recordcollection> Esimerkki: levykokoelman tiedot CSV-muodossa: Laika & the Cosmonauts;Absurdistan;1997;surf XML ja CSV soveltuvat molemmat sekä tiedon julkaisemiseen että siirtämiseen sisään sisällönhallintajärjestelmään PHP tukee XML-muotoisen tiedon jäsentämistä. CSV-lukijan toteuttaminen on suoraviivaista. PHP-ohjelmalla voi HTML-kielen ohella mainiosti tulostaa esimerkiksi CSV- tai XML-muotoisia tiedostoja MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 93 Julkaisuprosessin automatisointi Ohjelmointikieliä voidaan hyödyntää myös muussa käytössä kuin vuorovaikutuksen toteuttamisessa. Julkaisujärjestelmät automatisoivat osan hypermediasovelluksen toteuttamisen mekaanisista työvaiheista Hypermediasovelluksen toteuttamiseen liittyy muun muassa seuraavia mekaanisia työvaiheita (vrt. Relationship Management Methodology, RMM): Sovelluksen yleinen sivupohja kopioidaan jokaiseen näkymään ja näkymäkohtainen sisältö sijoitetaan sivupohjaan. Näkymäkohtaisen sisällön lisäämisen jälkeen sivupohjan järjestelmällinen muuttaminen on mahdotonta Rakenteelliset linkit tehdään sivuston rakenteen perusteella. Esimerkiksi valikko voidaan sijoittaa sivupohjaan, mutta käyttäjän sijainnin näyttäminen edellyttää näkymäkohtaisten muutosten tekemistä Assosiatiivisten linkkien toteuttaminen on yleensä suuren työmäärän takia mahdotonta käsityönä Aidon laiteriippumattomuuden ja mukautuvan hypermedian toteuttaminen vaatii aina ohjelmointia ja dynaamista toteutusta. Myös monikanavajulkaiseminen on suuren työmäärän takia käytännössä mahdotonta ilman automatisointia MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 94 Julkaisujärjestelmän toimintaperiaate Reunaehto: sisällön ja esitystavan erottaminen Julkaisuprosessin automatisointi tapahtuu julkaisujärjestelmällä Julkaisujärjestelmät voidaan jakaa toimintaperiaatteen perusteella kolmeen luokkaan: Yksi versio kaikille: Hypermediasovelluksesta julkaistaan yksi versio, jonka on sovelluttava kaikkiin käyttötarkoituksiin. Tavoitteena One size fits all, tuloksena usein One size fits nobody Räätälöity julkaiseminen: Tässä lähestymistavassa julkaistaan lueteltu joukko versioita, joista valitaan kuhunkin käyttötarkoitukseen parhaiten sopiva versio. Valinta suoritetaan yleensä käyttäjän toimesta, mutta versio voidaan valita esimerkiksi asiakasohjelman (selain) toimittamien tietojen perusteella automaattisesti Joustava julkaiseminen: Sovelluksesta asiakkaalle toimitettavat näkymät räätälöidään pyynnön yhteydessä välitettyjen tietojen perusteella tiettyyn julkaisukontekstiin (delivery context) sopivaksi. Joustavan julkaiseminen vastaa yleisessä tapauksessa mukautuvan hypermedian ideaa Tässä keskitytään räätälöityyn julkaisemiseen. Joustavaan julkaisemiseen palataan laiteriippumattomuuden ja mukautuvan hypermedian yhteydessä MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 95 Rakenteisen hypermedian keskeinen idea on sisällön ja esitystavan erottaminen Vaihtoehtoja sisällön ja esitystavan erottamiseen: HTML ja CSS: CSS on koristeleva tyylikieli, jonka avulla voi vaikuttaa ainoastaan HTML-dokumentin ulkoasuun XML ja XSLT: tietosisältö esitetään XML-muodossa ja julkaistaan XSLmuunnosten avulla haluttuihin muotoihin Tietokanta ja ohjelmointikieli: tietosisältö sijoitetaan tietokantaan ja julkaistaan ohjelmointikielen avulla haluttuihin muotoihin Kaksi viimeistä vaihtoehtoa mahdollistavat muutokset sekä yksittäisten dokumenttien rakenteessa että koko hypermediasovelluksen navigointirakenteessa XSL-muunnosten avulla voidaan toteuttaa ainoastaan räätälöidyn julkaisemisen periaatteen mukaisia ratkaisuja. Joustavaan julkaisemiseen tarvitaan aina ohjelmointia Ainoa keino vuorovaikutuksen toteuttamiseen on ohjelmointikielen käyttäminen. XSLmuunnosten avulla voidaan kuitenkin esimerkiksi automatisoida ohjelmointikieleen perustuvan ratkaisun toteutustyöhön liittyviä mekaanisia työvaiheita MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 96

PHP: toimintalogiikan ja esitystavan erottaminen Esimerkki: yksinkertainen sivupohjamoottori PHP on alun perin suunniteltu dokumenttien sekaan upotettavaksi ohjelmointikieleksi. Yleensä sovellukset toteutetaan kuitenkin niin päin, että PHP-koodilla tulostetaan HTML-merkkausta Esitystavan (=käyttöliittymän) ja toimintalogiikan erottaminen toisistaan selkeyttää ohjelmakoodia, mahdollistaa helpomman tavan verkkopalvelun räätälöimiseen ja helpottaa verkkopalvelun toteutustyötä ja ylläpitoa Esitystapa ja toimintalogiikka voidaan erottaa toisistaan kolmella tavalla: Staattisen sivupohjan jakaminen osiin & sisällyttäminen näkymiin includekomennolla HTML-merkkauksen tulostaminen funktio- tai luokkakirjaston avulla Sivupohjamoottorin (template engine) käyttäminen, esim. Smarty tai Savant Paras ratkaisu saavutetaan sivupohjamoottorin ja HTML-merkkauksen tulostamisesta vastaavan kirjaston yhdistelmällä Ratkaisuja voidaan hyödyntää sekä julkaisujärjestelmän että vuorovaikutteisen sovelluksen toteuttamisessa MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 97 Yksinkertainen sivupohjamoottori voidaan toteuttaa esimerkiksi XML-nimiavaruuksien ja säännöllisten lausekkeiden avulla (etsi/korvaa). Esimerkki (ongelma: nimiavaruuden etuliite on nyt kiinnitetty, ratkaisu: sivupohjan käsittely XML-tasolla): <!-- tyylikäs ulkoasu HTML-merkkauksena (alku)--> <table><tr> <td> <h1><template:title>otsikko</template:title></h1> <div class="content"> <template:content>sisältö</template:content> </div> </td> <td> <template:menu> <ul><li>valikko</li></ul> </template:menu> </td> </tr></table> <!-- tyylikäs ulkoasu HTML-merkkauksena (loppu)--> index.php page2.php tmpl-eng.php <?php function create_page( $title, $content, $menu, $template) { $page = ereg_replace( "<template:title>.*</template:title>", $title, $template); MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 98 Rakenteelliset linkit Esimerkki: rakennekuvaus ja rakenteelliset linkit Rakenteelliset linkit (kertausta): esimerkkejä: murupolku, valikko, lineaarinen navigaatio pääasiallinen navigointimenetelmä rakenteellisten linkkien avulla käyttäjälle esitetään sovelluksen rakenne käyttäjän sijainti sovelluksessa esitetään usein rakenteellisten linkkien avulla, vrt. mukautuva valikko tai murupolku Rakenteellisten linkkien muodostaminen voidaan automatisoida eri tavoilla: Linkit voidaan tulostaa funktiokirjaston avulla tai sisällyttää näkymään esimerkiksi PHP-kielen include-komennolla Vielä parempi vaihtoehto on rakenteellisten linkkien tulostaminen sivuston rakennekuvauksen perusteella. Rakenne voidaan esittää esimerkiksi määrämuotoisen tekstitiedostossa, XML-dokumentissa tai relaatiotietokannassa Nyrkkisääntö: Tieto sijoitetaan relaatiotietokantaan silloin, kun muokkaaminen onnistuu suoraan sovelluksen avulla, muuten käytetään asetustiedostoja MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 99 Esimerkki rakenteellisten linkkien tuottamisesta PHP-kielellä XML-kuvauksen perusteella: <site> <page ref="index">etusivu</page> menu.php <page ref="index-pop">pop</page> <page ref="index-rock">rock</page> <page ref="index-surf">surf</page> <page ref="search">haku</page> </site> <ul> <li> <a href="index.php">etusivu</a> lin-nav.php </li> <li> <a href="index-pop.php">pop</a> <div class="linear-navigation"> </li> <a href="prev" href="index-pop.php"> <!--... --> <!--... --> </ul> </div> XML-kuvauksen jäsentäminen voidaan toteuttaa PHP:n SimpeXML-rajapinnan avulla MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 100

Assosiatiiviset linkit Assosiatiiviset linkit (kertausta): yhdistävät näkymiä sisällön merkityksen perusteella tarjoavat käyttäjälle vaihtoehtoisen navigointitavan vastaavat ihmisen tapaa jäsentää asioita (Vannevar Bushin Memex) Assosiatiivisten linkkien muodostaminen onnistuu näkymien tietosisällöstä kerättyjen metatietojen avulla Tiedon ja metatiedon raja on häilyvä. Erään määritelmän mukaan metatieto on tietoalkiosta ulospäin näkyvää tietoa, jota voidaan käyttää apuna tietoalkioiden hallinnassa. Käsittely: Metatieto relaatiotietokannassa: assosiatiiviset linkit muodostetaan SQLkyselykielen avulla Metatieto RDF-muodossa: assosiatiiviset linkit muodostetaan esim. SPARQLkyselykielen avulla Assosiatiivisten linkkien toteuttaminen sääntöjen perusteella on liian työlästä käsityönä MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 101 Esimerkki: assosiatiiviset linkit ja levykokoelma Käyttäjä on löytänyt Laika & the Cosmonautsin levyn Absurdistan. Näkymässä esitetään levyn tiedot ja linkit kaikkiin levyihin, joissa on sama esittäjä (artist = "Laika & the Cosmonauts") ja joiden nimi ei ole Absurdistan (name <> "Absurdistan") SELECT name, artist, genre, year FROM record WHERE artist = "Laika & the Cosmonauts" AND name <> "Absurdistan" Nimien sijaan tietoja kannattaa vertailla levyjen tunnisteiden perusteella, mikäli tietokanta sellaiset sisältää (pitäisi ainakin!) MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 102 Lopuksi Yleistettynä kaikki verkkopalvelut ovat sisällönhallinta- ja julkaisujärjelmiä, mutta mahdollistavat toki toisinaan enemmän vuorovaikutusta kuin mitä julkaisujärjestelmiin yleensä ajatellaan kuuluvan Sivupohjan irrottamisen ja erilaisten linkkien muodostamisen automatisoinnin ideat voidaan ottaa suoraviivaisesti käyttöön aidosti vuorovaikutteisessa sovelluksessa Käytännössä yhden kaikenkattavan SHJ:n toteuttaminen on erittäin hankalaa: Sisällöntuottajat haluavat käyttää tuttuja välineitä, mutta Word on tarkoitettu paperille tulostettavien dokumenttien tekemiseen Sisällöntuottajat ja WYSIWYG: ks. edellinen kohta. Erilaiset legacy-järjestelmät hidastavat kehitystä. Julkaisujärjestelmissä ohjelmointikielten vaihtoehtona ovat XML-kieleen ja XSLmuunnoksiin perustuvat sinänsä ilmaisuvoimaiset ratkaisut (esim. Cocoon) Nykyaikaisten Web-palvelujen sisältö (yleisesti tila) on usein hajautettu useampaan palveluun. Asiaan tullaan vielä palaamaan teemalla hypermedia sovelluksen tilan koneena (hypermedia as the engine of application state) (Fielding 2000) MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 103