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



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

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

MATHM Hypermedian ohjelmointi (4 op) kevät 2007

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

3 Verkkopalveluarkkitehtuuri

3 Verkkopalveluarkkitehtuuri

5 Verkkopalvelun sisällön hallinta

3 Verkkopalveluarkkitehtuuri

10 Nykyaikainen WWW-arkkitehtuuri

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

Kurssijärjestelyt. ME-C2300 Verkkojulkaisemisen perusteet (5 op) Mari Hirvi Informaatioverkostot / Mediatekniikan laitos

Tietokoneverkot. T Tietokoneverkot (4 op) viimeistä kertaa CSE-C2400 Tietokoneverkot (5 op) ensimmäistä kertaa

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Kurssijärjestelyt. CS-1180 Verkkojulkaisemisen perusteet (5 op) Hanna Hämäläinen Informaatioverkostot / Mediatekniikan laitos


Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Kurssin hallinta -työväline

Verkkopalveluiden saavutettavuus

Kurssin aloitus. AS XML-kuvauskielten perusteet Janne Kalliola

Projektinhallintaa paikkatiedon avulla

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

9 Edistynyt PHP-ohjelmointi


Kurssiesite Lausekielinen ohjelmointi I Kesä Jorma Laurikkala Tietojenkäsittelytieteet Luonnontieteiden tiedekunta Tampereen yliopisto

HAHMONTUNNISTUKSEN PERUSTEET

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat

VYPEdit verkkosivualusta SVY-toimijoille

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

031075P MATEMATIIKAN PERUSKURSSI II 5,0 op

Kurssiesite Lausekielinen ohjelmointi II Syksy Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin

VisualStudio Pikaopas, osa 1: WEB sivujen suunnittelu

T Johdatus tietoliikenteeseen 5 op. Kevät 2013

T harjoitustyö, kevät 2012

031075P MATEMATIIKAN PERUSKURSSI II 5,0 op

Tervetuloa! Matematiikka tutuksi

A4.1 Projektityö, 5 ov.

EDUBOX opetusvideopalvelu

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

HAHMONTUNNISTUKSEN PERUSTEET

PLA Mobiiliohjelmointi. Mika Saari

XML johdanto, uusimmat standardit ja kehitys

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

T Harjoitustyöluento

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Digitaalisen median tekniikat Luento 1: Intro

Paikkatiedot ja Web-standardit

Ohjelmointi II. Erkki Pesonen Luennot ja harjoitukset. Itä-Suomen yliopisto Tietojenkäsittelytieteen laitos 2015

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A Kandidaatintyö ja seminaari

Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

T harjoitustehtävät, syksy 2011

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

Tietokoneen rakenne (2 ov / 4 op) Syksy 2007 Liisa Marttinen. Helsingin yliopisto Tietojenkäsittelytieteen laitos

Tiedonlouhinta rakenteisista dokumenteista (seminaarityö)

HELIA 1 (11) Outi Virkki Tiedonhallinta

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

2 Web-lomakkeet. HTML-lomakkeet. Lomakkeiden perusteet

Tähtitieteen käytännön menetelmiä Kevät 2009

4 Verkkopalvelun toteuttaminen

Tervetuloa opiskelemaan DIGITAALI- TEKNIIKKAA! Digitaalitekniikan matematiikka Luku 0 Sivu 1 (9)

Web sovelluksen kehittäminen sähkönjakeluverkon suojareleisiin

7 Mukautuvat verkkopalvelut

Harri Eskelinen, puh , Konetekniikan koulutusohjelman johtaja Tekniikan tohtori vuonna 1999 Dosentti

MATEMATIIKAN PERUSKURSSI b

811393A JOHDATUS TUTKIMUSTYÖHÖN

Tietoturva. 0. Tietoa kurssista P 5 op. Oulun yliopisto Tietojenkäsittelytieteiden laitos Periodi / 2015

Tervetuloa jatkamaan DIGITAALI- TEKNIIKAN opiskelua! Digitaalitekniikka (piirit) Luku 0 Sivu 1 (8)

Luento 0: Kurssihallinto Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Laske Laudatur ClassPadilla

Akateemiset taidot. 2. tapaaminen

ELEC-C1210 Automaatio 1 ELEC-C1220 Automaatio 2. Kurssien esittely lukukausi

Kurssin tavoitteista uennot. 4.1 Projektityö, 5 ov. Esitietovaatimukset

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

031010P MATEMATIIKAN PERUSKURSSI I 5,0 op

2 Web-lomakkeet. HTML-lomakkeet. Lomakkeiden perusteet

Kurssin sisältö. Kurssilla vähemmän. Johdatus ohjelmistotekniikkaan. Mitä on ohjelmistotekniikka? Miten ohjelmistoja suunnitellaan ja toteutetaan?

Ohjelmistotekniikan menetelmät, kesä 2008

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari

Laajuus 5 op Luennot: 12 x 2t Harjoitukset: 7 viikkoharjoitusta harjoitusten tekemiseen saatavissa apua 2 ryhmää / harjoitus

3 Verkkosaavutettavuuden tekniset perusteet

MS-C2128 Ennustaminen ja Aikasarja-analyysi, 5 op Esittely

ALVA ammattilaskennan valmiuksien kartoitus

TIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit

Ohjelmistojen mallintaminen, kesä 2009

Sarjat ja integraalit, kevät 2014

W3C ja Web-teknologiat

Kurssiesite Lausekielinen ohjelmointi Syksy Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

6 Mukautuvat verkkopalvelut

TIETOJÄRJESTELMIEN AMMATILLISET ERIKOISTUMISOPINNOT (30 op)

PLA Mobiiliohjelmointi. Mika Saari

ecome Markkinoiden kehittynein julkaisujärjestelmä

OPISKELUTYÖN MITOITUS Opetuksen suunnittelun työväline, jolla arvioidaan opiskelijan työmäärää suhteessa 1 PERUSTIEDOT

Luennot vuorovaikutuskeinona Peda-Forum

22A00110 Laskentatoimen perusteet (6 op) SYLLABUS. Opettaja. Jari Melgin Huone H 3.35/Töölö Puhelin

W3C: teknologia ja (tieto)yhteiskunta

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

YRITYSVASTUU JA -ETIIKKA: KNOWING, DOING, BEING

Transkriptio:

kevät 2005 7307010 Hypermedian ohjelmointi (2 ov) Luentorunko Jukka Huhtamäki 7307010 Hypermedian ohjelmointi (kevät 2005) 1

Yleisiä tietoja kevään kurssista Opettaja: Jukka Huhtamäki Sähköposti: jukka.huhtamaki@tut.fi Huone: Td309, matematiikan laitos / hypermedialaboratorio Puhelin: (03) 3115 2418 (vastaanotto: to 13-14) Luennot: keskiviikko 14-16 (S3) Harjoitukset: ma 14-16, ke 8-10 ja ke 10-12 (Sb204) Harjoitusassistentti: Osmo Haapaniemi Esitiedot: Hypermedian perusteet tai vastaavat tiedot (pakollinen) Ohjelmointitaito välttämätön (~ Ohjelmointi II tai Laaja ohjelmointi) Suositeltavia: Seittiohjelmointi, Johdatus tietokantajärjestelmiin ja Rakenteiset dokumentit Kotisivu: http://matriisi.ee.tut.fi/hmopetus/hm-ohj/2005/ Uutisryhmä: tut.mat.hypermedia Suorittaminen: harjoitustyö ja tentti 7307010 Hypermedian ohjelmointi (kevät 2005) 2

Kurssin sisältö ja suorittaminen Hypermedian ohjelmointi jatkaa siitä mihin Hypermedian perusteissa jäätiin. Kurssilla käsiteltävät asiat voidaan jakaa kolmitasoiseksi rakenteeksi: Menetelmät: Hypermediasovelluksen ominaisuudet, joiden toteuttaminen edellyttää ohjelmointia. Verkkopalveluiden yleiset periaatteet ja toiminnallisuus. Mahdollisuudet ja rajoitteet. Sovellukset: Hypermedian yleisten ideoiden toteuttaminen WWW-pohjaisissa verkkopalveluissa. Verkkopalvelun toteuttaminen template-kielen ja relaatiotietokannan avulla. Tekniikka: PHP: Hypertext Preprocessor (PHP) -kieli ja MySQL-tietokanta. Tarkempi tekninen rajaus: Linux/Apache/MySQL/PHP (LAMP). Hypermedian ohjelmointi vs. Seittiohjelmointi: Hypermedian ohjelmoinnissa verkkohypermediaa lähestytään käyttöliittymän ja sovelluksen toiminnallisuuden näkökulmasta. Seittiohjelmoinnissa pääpaino on verkkopalveluiden teknisessä toteuttamisessa (Java-teknologialla). Kurssien suorittaminen rinnakkain on mahdollista. Kurssin suoritus koostuu tentistä ja osana harjoituksia toteutettavasta harjoitustyöstä. 7307010 Hypermedian ohjelmointi (kevät 2005) 3

Opiskelusta - mitä kurssilla oppii? Näkökulma on erityisesti asioiden sovelluksista riippumattomien perusteiden opiskelu - esim. ohjelmistojen yksityiskohtiin ei kurssilla yksityiskohtaisesti puututa. Motivaatio tälle on esitetyn asian pysyvyys: ohjelmistot ja toteutustekniikat tulevat ja menevät, ideat pysyvät. Kurssin tavoitteena on vastata mm. seuraaviin kysymyksiin: Mitkä ovat ohjelmoinnin tuomat lisäarvot hypermediasovelluksen toteuttamisessa? Mitä keinoja hypermediasovelluksen käyttäjän toiminnan tukemiseen on olemassa? Mitä yleisiä ominaisuuksia verkkopalveluissa on? Miten ominaisuudet voidaan toteuttaa? Miten ne toteutetaan käytännössä? Minkälainen on tietokantapohjaisen verkkopalvelun arkkitehtuuri? Kurssin aikana on tavoitteena käydä läpi joukko yleisiä hypermedian ideoita ja periaatteita, joiden toteuttaminen on mahdollista ainoastaan ohjelmointiin perustuvien ratkaisujen avulla. Esimerkiksi mukautuvan hypermedian toteuttaminen edellyttää käytännössä aina ohjelmointia. 7307010 Hypermedian ohjelmointi (kevät 2005) 4

Mistä tällä kurssilla puhutaan? Kurssin asiasisältö näyttää kutakuinkin seuraavalta (käsittelyjärjestys ja painotus tarkentuvat kurssin edetessä): Perusteet: asiakas/palvelin-malli, HTML-lomakkeet, Web-ohjelmointi, Xforms? Verkkopalveluarkkitehtuuri: sovellus + tietokanta, yleiset toiminnot (navigaatio, käyttäjän tunnistus, rekisteröityminen, käyttäjänhallinta, ostoskori, vahtipalvelu, uutiset, käyttäjien seuranta,...) Template-kielten perusteet, PHP Tiedon tallentaminen: toteutusvaihtoehdot, tietokannat (tallentaminen, lukeminen, päivittäminen & poistaminen), tiedon siirtäminen järjestelmien välillä Koodin uudelleenkäyttö, sivupohjan erottaminen, modulaarisuus,..., => työn automatisointi ohjelmointikielen avulla Käyttäjä: tunnistaminen, istunto (sovelluksen tila, ostoskori), oikeudet, roolit & profiilit, toiminnan tukeminen (opasteet, virheilmoitukset, sijainti),... Tiedonhaku (Information Retrieval): hakeminen, selaaminen ja suodattaminen, tiedon visualisointi 7307010 Hypermedian ohjelmointi (kevät 2005) 5

Mistä tällä kurssilla puhutaan? (jatkuu) Verkkkopalvelun laadukas tekninen toteutus: MVC-mallin idea, suunnittelumalleja PHP:lle,... Sovelluksen räätälöinti: kansainvälistäminen (i18n) ja paikallistaminen (l10n), versiointi,... Tietoturva Monikanavaisuus, laiteriippumattomuus Mukauttaminen (adaptiivisuus) Valmiit ratkaisut: Mambo? Tuleeko muuta mieleen? Huomaa, että yo. lista luettelee kysymyksiä, joihin paneudutaan - ei suoraan luentojärjestystä. Huomattava osa kurssin sisällöstä avautuu harjoitusten, itseopiskelun ja harjoitustyön kautta. 7307010 Hypermedian ohjelmointi (kevät 2005) 6

Harjoitukset ja harjoitustyö Kurssin kuluessa toteutetaan henkilökohtainen harjoitustyö. Harjoitustyön tekeminen ja ohjaus on olennainen osa kurssin harjoituksia. Harjoitustyön aihe on vapaavalintainen: työlle määritellään joukko ominaisuuksia, jotka sen on ainakin toteutettava. Kurssin alussa harjoituksissa käsitellään PHP-kieleen perustuvan verkkopalvelun teknisiä perusteita: HTML-lomakkeet ja lomakkeiden käsittely PHP:lla, PHP-kielen perusteet, relaatiotietokannan käsittely PHP:lla,... Taitojen karttuessa harjoitustehtävät suunnataan harjoitustyön toteuttamiseen: käyttäjän tunnistaminen, kieliversiointi ja paikallistaminen, opasteet ja virheilmoitukset,... Harjoitustyöhön liittyvistä perustoiminnoista jaetaan yhteensä kuusi (6) pistettä, jotka lasketaan mukaan kurssin suoritukseen. Pisteiden kerääminen edellyttää läsnäoloa harjoituksessa: ominaisuuden toteuttaneet opiskelijat laittavat listaan merkinnän ja muutama opiskelija pääsee esittelemään toteutuksensa muille. Perustoimintojen lisäksi opiskelijat voivat toteuttaa harjoitustyöhönsä haastavampia lisäominaisuuksia, joista saaduilla pisteillä voi korvata tentin huonoimman tehtävän. 7307010 Hypermedian ohjelmointi (kevät 2005) 7

Kurssin suorittaminen numeroina Kurssin päätteeksi järjestetään neljä tehtävää sisältävä tentti, josta voi kerätä korkeintaan (4 x 6 =) 24 pistettä. Kurssin harjoitustyöhön liittyvistä perustoiminnoista ja -ominaisuuksista jaetaan yhteensä (6 x 1 =) 6 pistettä. Lisäominaisuuksista on jaossa yhteensä (3 x 2 =) 6 pistettä. Siis: Kurssista voi kerätä yhteensä 30 pistettä, joista 24 pistettä tulee tentistä ja 6 pistettä harjoitustyöstä. Kurssin suorittaminen edellyttää vähintään 15 pisteen keräämistä. Tentin huonoimman tehtävän pisteet korvataan lisäominaisuuksista kerätyillä pisteillä, mikäli korvaaminen on opiskelijan kannalta edullista. Pisterajat: 0 < 15 1 >= 15 ja < 18 2 >= 18 ja < 21 3 >= 21 ja < 24 4 >= 24 ja < 27 5 >= 27 7307010 Hypermedian ohjelmointi (kevät 2005) 8

Muistettavaa & käytännön vinkkejä opiskeluun (Kertausta Hypermedian perusteista) Hypermedia WWW. Hypermediaa on mahdollista toteuttaa eri tavoin ja eri menetelmin (Director, Flash, Hypercard, ToolBook, ) Hyvän hypermedian tekeminen edellyttää aina sen sovellusalueen sisällöllistä osaamista, jonka parissa työskennellään. Koska kukaan ei osaa kaikkea, on hypermedian tekeminen ryhmätyötä Käytännön vinkkejä itse opiskeluun: - muista että kaikki hypermedia ei tähtää sähköiseen WWW-sivujen tekemiseen julkaisutoimintaan tai kaupankäyntiin - hypermediaan liittyy myös oikeaa tutkimustyötä, jota tehdään osin itsensä vuoksi (jota ei tällä kurssilla tosin sen kummemmin esitellä) - suhtaudu sovelluksiin, menetelmiin ja teoriaan kriittisesti: kysy koko ajan: miksi näin? mitä tämä tarkoittaa? miten tätä voisi käyttää? mikä tässä on olennaista? - muista että hypermedia & tietokoneet ovat ihmisen ihmiselle tekemiä asioita & kapistuksia: suhtaudu niihin sen mukaisesti (hyvässä ja pahassa) 7307010 Hypermedian ohjelmointi (kevät 2005) 9

Hypermediaa miettiessä kannattaa pitää mielessä teorian suhde käytäntöön, tutkia erikoistapauksia ja miettiä yleistyksiä (esim. mitä tämä merkitsee minulle tai miten tämä ilmenee hypermedian sovelluksissa jotka jo tunnen tai tiedän) Osa kurssilla käsiteltävästä asiasta - ainakin HTML:n auttavat perusteet - lienevät useimmille tietokonetaitoisille tuttuja. Kannattaa kuitenkin muistaa, että kurssilla ollaan, jotta asioita opiskeltaisiin ja opittaisiin, eli: - paikkaa tiedon reiät: yhden hypermedian osa-alueen hallitseminen on hyvä asia, mutta kannattaa yrittää laajentaa näkökulmaansa ja pohtia josko hypermedia olisi muutakin kuin vain X:n tekemistä - ole oma-aloitteinen: jos jokin asia on jo tuttua, syvennä oma-aloitteisesti tietojasi siitä etsimällä itse lisämateriaalia! On virhe on lopettaa aiheen opiskelu vain sillä perusteella, että alku on tuttua. Parempi on käyttää aikansa rakentavasti ja opiskella tasonsa mukaisesti - älä ylenkatso noviiseja: jokainen opiskelee asioita joskus ensimmäistä kertaa. Vaikka vierustoveri kysyisikin mielestäsi turhan helppoja kysymyksiä, vastaa asiallisesti. Tarpeettoman jargonin käyttö ei ole merkki asiantuntevuudesta (pätee myös luennoitsijaan!) Hypermedia on 2000-luvun käsityöläisyyttä: tekemällä oppii 7307010 Hypermedian ohjelmointi (kevät 2005) 10

Kurssin opetusmuoto ja materiaali Kurssin rungon muodostaa tämä käsillä oleva luentorunko. Luentorungon idea & tavoitteet ovat seuraavat: - jäsentää hajanainen asia, erityisesti otsikot, hallittavaan muotoon - toimia muistilappuna siinä, mitä asioita kurssin luennoilla käsiteltiin HUOM! Luentorunko ei missään tapauksessa sisällä koko kurssimateriaalia, vaan ainoastaan jäsentää sitä! Luentorungon lisäksi kurssin sisältöön kuuluvat - luentojen yhteydessä vapaamuotoisesti (esim. taululla, kalvojen tai tietokoneesimerkkien avulla) käsitellyt asiat (otsikkojen sisältö) - luentojen yhteydessä läpikäydyt esimerkit - luentorungossa ja kotisivulla mainitut lähteet (soveltuvin osin, totta kai) - kurssin harjoitukset ja harjoitustyö Luentorunkoa julkaistaan kurssin edetessä kurssin kotisivuilla PDF-muodossa 7307010 Hypermedian ohjelmointi (kevät 2005) 11

Kirjallisuus, oheismateriaali & verkkoaineisto Kurssin rungon muodostavia kalvosarjaa julkaistaan verkossa kurssin edetessä, eikä kurssikirjan ostaminen ole välttämätöntä. Aiheeseen liittyvää kirjallisuutta ovat esim. Lowe, D. & Hall, W., Hypermedia and the Web: An Engineering Approach, John Wiley & Sons, 1999. (*) Wellingin, L. & Thomson, L., PHP And MySQL Web Development (Third Edition), Sams Publishing, 2004. (*) Lowen ja Hallin kirja on harkitsemisen arvoinen vaihtoehto etenkin hypermedian sivu- tai pääaineopiskelijalle. Wellingin ja Thompsonin opus on hyödyllinen, jos tarkoituksena on oppia PHP-ohjelmointia ja verkkopalveluiden toteuttamista PHP-kielellä laajemmin. PHP-ohjelmoinnista löytyy myös materiaalia myös suomeksi: Rantala, A. PHP - web-ohjelmoinnin peruskirja, Docendo, 2002. Heinisuo, R. PHP ja MySQL: Tietokantapohjaiset verkkopalvelut, Talentum, 2004. Rantalan kirja käsittelee aihetta laajemmin ja on myös edullisempi. Heinisuon kirja jää kurssin näkökulmasta turhan yleiselle tasolle myös PHP-ohjelmoinnin osalta. Huomaa, että yksikään kirjoista ei kata kaikkia kurssilla käsiteltäviä asioita. 7307010 Hypermedian ohjelmointi (kevät 2005) 12

World Wide Web Consortium (W3C) on edelleen keskeisessä roolissa kurssilla: The World Wide Web Consortium (ks. http://www.w3.org/ ) PHP-sovellusten kehittäjille suunnattua materiaalia tarjoavat esim. PHP-kielen kotisivut: php.net (http://www.php.net/) Johdanto PHP-kieleen: PHP Tutorial (http://www.w3schools.com/php/) Suunnittelumalleja PHP-sovelluksiin: :: phppatterns() (http://www.phppatterns.com/) Kurssilla käytettävä tekniikkapatteri (LAMP) on vapaasti jaossa verkossa: Linux: maun mukaan esimerkiksi Fedora (http://fedora.redhat.com/) tai Debian (http://www.debian.org/) Apache: http://httpd.apache.org/download.cgi MySQL: http://dev.mysql.com/downloads/ PHP: http://www.php.net/downloads.php Asennusohje: http://www.php.net/manual/en/install.php Kurssin suorittaminen ei edellytä sovellusten asentamista tai konfiguroimista, koska käytössä on valittuja tekniikoita tukeva palvelinkone, johon opiskelijat saavat tunnukset. 7307010 Hypermedian ohjelmointi (kevät 2005) 13

1 Hypermedia ja ohjelmointi 1 Hypermedia ja ohjelmointi Ohjelmointiin perustuvien ratkaisujen käyttöön hypermediasovellusten toteuttamisessa on useita perusteita, esim. mekaanisen työn automatisointi, aito monikanavajulkaiseminen ja vuorovaikutuksen toteuttaminen Kurssi hypermedian ohjelmointia käsitellään lähinnä Web-pohjaisten verkkopalvelujen näkökulmasta. Syitä: WWW on olennaisilta osiltaan tekstimuotoista hypermediaa (erityisesti HTMLkieli), joten näkymien ohjelmallinen tuottaminen ja muokkaaminen on helppoa esimerkiksi perinteisiin graafisiin käyttöliittymiin verrattuna Valtaosa hypermediasta on tällä hetkellä WWW-pohjaista: kurssin opit voidaan siirtää suoraviivaisesti tuotantokäyttöön (vrt. C++ vs. Scheme ohjelmointikursseilla) WWW-soveltajien käytössä on joukko ilmaisuvoimaisia teknologioita, joiden avulla voidaan helpommin toteuttaa hypermedian edistyneitä ideoita Ohjelmoinnilla on keskeinen rooli myös multimediaan kallellaan olevassa hypermediassa (Toolbook, Flash, Visual basic, jne.). Näissä ohjelmointi keskittyy erityisesti vuorovaikutuksen toteuttamiseen. 7307010 Hypermedian ohjelmointi (kevät 2005) 14

1 Hypermedia ja ohjelmointi Mekaanisen työn automatisointi Monipuolisten navigoinnin apuvälineiden toteuttaminen voidaan tehdä ohjelmallisesti: Rakenteelliset linkit (murupolku, lineaarinen navigaatio, käyttäjän sijainnin esittävä valikko) voidaan kaikki tuottaa yhden rakennekuvauksen perusteella ohjelmallisesti Myös assosiatiivisten linkkien tuottaminen voidaan automatisoida määrittelemällä säännöt näkymien yhdistämiseen ohjelmointikielen avulla (vrt. RMM-malli) Tietosisällön uudelleenkäyttö onnistuu esimerkiksi siten, että tiedot tallennetaan tietokantaan tai määrämuotoiseen tekstitiedostoon ja julkaistaan halutuissa muodoissa ohjelmointikielen avulla Hypermediasovelluksen tietosisällön päivittämiseen voidaan rakentaa lomakkeisiin perustuvat toiminnot Tarkoitukseen soveltuvan ohjelmointikielen hallinta antaa mahdollisuuden prototypoinnin tai Rapid Application Development (RAD) -menetelmän hyödyntämiseen hypermediasovelluksen kehitystyössä 7307010 Hypermedian ohjelmointi (kevät 2005) 15

1 Hypermedia ja ohjelmointi Monikanavajulkaiseminen Nykyaikainen WWW-arkkitehtuuri erottaa toisistaan resurssin ja sen representaation. Ajatuksena on se, että resurssin yksilöivä URI-tunniste säilyy samana päätelaitteesta, käyttäjästä tai käyttötilanteesta (=julkaisukonteksti) riippumatta. Resurssin erilaiset representaatiot voidaan toteuttaa kustannustehokkaasti monikanavajulkaisemisen periaatteiden mukaisesti Monikanajulkaisujärjestelmä voidaan toteuttaa kahdella tavalla: Räätälöity julkaiseminen (Tailored Publishing): resurssista julkaistaan kiinteä joukko representaatiota, joista valitaan tiettyyn julkaisukontekstiin parhaiten sopiva vaihtoehto. Joustava julkaiseminen (Flexible Publishing): resurssin representaatio räätälöidään pyynnön mukana välitettävän julkaisukontekstin kuvauksen perusteella Sekä räätälöity että joustava julkaiseminen voidaan toteuttaa ohjelmointikieleen perustuvan ratkaisun avulla. Joustavan julkaisemisen toteuttaminen edellyttää aina ohjelmointia. Räätälöity julkaiseminen voidaan toteuttaa esimerkiksi XML-kielen ja XSL-muunnosten avulla (=> Rakenteiset dokumentit) 7307010 Hypermedian ohjelmointi (kevät 2005) 16

1 Hypermedia ja ohjelmointi Vuorovaikutuksen toteuttaminen Käyttäjän syötteeseen reagointi edellyttää linkkien avulla tapahtuvaa navigointia lukuun ottamatta aina ohjelmointia. Esimerkiksi WWW-lomakkeen käsittely tapahtuu aina jonkin ohjelmointikieleen perustuvan ratkaisun avulla. Esimerkkejä toiminnoista: Hypermediasovelluksen keskeisiä ominaisuuksia ovat esimerkiksi hakutoiminto ja mahdollisuus sisällön kommentointiin (annotointiin) Verkkopalvelun yleisiä toimintoja ovat esimerkiksi rekisteröityminen, käyttäjän tunnistaminen sekä istunnon luominen ja hallinta. Tieto sovelluksessa tapahtuvista muutoksista voidaan välittää käyttäjälle uutisvirtojen avulla. Käyttäjä voi asettaa verkkopalveluun vahdin, joka raportoi muutoksista käyttäjän määrittelemien ehtojen perusteella. Mukautuvassa (adaptiivisessa) hypermediassa käyttäjästä luodaan malli, jonka perusteella sovelluksen sisältö ja navigaatio mukautetaan käyttäjälle sopivaksi. Käyttäjän mieltymykset voidaan selvittää joko esittämällä suoria kysymyksiä tai seuraamalla käyttäjän toimintaa. Käyttäjän toimintaa voidaan myös verrata muihin käyttäjiin ja ohjata käyttäjää vertailun perusteella. Käyttäjän tukeminen opasteiden ja virheilmoitusten avulla. 7307010 Hypermedian ohjelmointi (kevät 2005) 17

1 Hypermedia ja ohjelmointi Ohjelmointi: asiakas vai palvelin? Asiakas-palvelin mallin mukaan toimivassa sovelluksessa ohjelmointiin perustuvia ratkaisuja voidaan yleensä toteuttaa sekä asiakas- että palvelinpäässä: Tukeva asiakas (Fat/Thick/Smart client): suuri osa sovelluksen toiminnoista on toteutettu osana asiakassovelluksen toiminnallisuutta Laiha asiakas (Thin client): sovelluksen toiminnallisuus on toteutettu osana palvelinsovellusta, asiakkaalle ainoastaan välitetään näkymiä sovelluksesta WWW mahdollistaa teoriassa sekä tukevan että laihan asiakkaan toteuttamisen. Asiakaspään ratkaisuiden toimintavarmuus on WWW:ssä kuitenkin erittäin huono ja erilaiset toteutustekniikat (JavaScript, ECMAScript, Java-sovelmat, Flash, ActiveX,...) poikkeavat toisistaan merkittävästi. Ongelmien takia kurssilla keskitytään palvelimella toteutettaviin ratkaisuihin. Asioita pyritään mahdollisuuksien mukaan käsittelemään niin yleisellä tasolla, että ratkaisut ovat siirrettävissä teknologiasta toiseen. 7307010 Hypermedian ohjelmointi (kevät 2005) 18

1 Hypermedia ja ohjelmointi Lopuksi Viime vuosituhannen loppupuolella hypermedia kehitettiin tieteenä erittäin pitkälle. Mukautuvan hypermedian tutkimuksessa tuotettiin joukko tekoälyn ideoihin perustuvia malleja ja ratkaisuja, joiden vieminen tuotantokäyttöön ei sen aikaisilla välineillä ollut mahdollista eikä edes tarpeellista: vasta WWW:n räjähdysmäinen kehitys on tuonut hypermediasovellukset suuren yleisön ulottuville. Lieneekö syynä NIH-ilmiö vai mikä, mutta WWW-maailmassa on nähtävissä valitettava suuntaus keksiä pyörä uudestaan: olemassa olevien ideoiden soveltamisen sijaan sovelluksien toimintoja ja ominaisuuksia suunnitellaan alusta asti uudestaa. WWW-soveltajien käytössä olevat ilmaisuvoimaiset ohjelmointikielet, erilaiset sovellusten toteuttamista helpottavat sovelluskehykset ja W3C:n Semanttinen Web antavat todellisen mahdollisuuden hypermedian unohdettujen ideoiden toteuttamiseen. Kurssin keskeisenä tavoitteena on tutustua joukkoon hypermedian tutkimuksessa kehitettyjä ideoita ja kertoa myös se, miten ideat voidaan toteuttaa käytössä olevien tekniikoiden avulla. 7307010 Hypermedian ohjelmointi (kevät 2005) 19