Verkkosivuston sisällön kategorisointi ja video- keskustelupalvelun integrointiselvitys – Case Seniori365.fi-verkkopalvelu Hänninen, Henri 2016 Laurea Laurea-ammattikorkeakoulu Verkkosivuston sisällön kategorisointi ja videokeskustelupalvelun integrointiselvitys Case Seniori365.fi-verkkopalvelu – Henri Hänninen Tietojenkäsittely Opinnäytetyö Kesäkuu, 2016 Laurea-ammattikorkeakoulu Tiivistelmä Tietojenkäsittely Hänninen, Henri Verkkosivuston sisällön kategorisointi ja videokeskustelupalvelun integrointiselvitys – Case Seniori365.fi-verkkopalvelu Vuosi 2016 Sivumäärä 44 Tämän toiminnallisen opinnäytetyön tavoitteena on toteuttaa jatkokehityssuunnitelma Se- niori365.fi-verkkopalvelun jatkokehittäjille. Jatkokehityssuunnitelma sisältää kaksi erilaista kokonaisuutta. Suunnitelman ensimmäinen osio sisältää ohjeistuksen kuntakohtaisen katego- risointitoiminnallisuuden toteuttamiseksi. Jatkokehityssuunnitelman toinen osio esittelee tek- nologiat, joita on mahdollista käyttää videokeskustelutoiminnallisuuden toteuttamiseksi. Tek- nologioiden esittelyn lisäksi opinnäytetyössä esitellään kolme valmista videokeskustelutoteu- tusta sekä sopivin tapa videokeskustelutoiminnallisuuden lisäämiseksi Seniori365.fi- verkkopalveluun. Ohjeistus kuntakohtaisen kategorisointitoiminnallisuuden toteuttamiseksi tehtiin mahdolli- simman yksityiskohtaiseksi, jotta toiminnallisuuden toteuttaminen olisi jatkokehittäjille hei- dän teknisestä taustastaan riippumatta mahdollisimman helppoa ja suoraviivaista. Opinnäyte- työssä on myös osittaisia esimerkki-implementaatioita, joita on mahdollista hyödyntää toi- minnallisuuden toteuttamisessa. Opinnäytetyössä esiteltiin eri teknologiavaihtoehdot, joita on mahdollista käyttää videokes- kustelutoiminnallisuuden toteuttamiseen. Eri teknologiat esiteltiin riittävällä tarkkuudella, mutta opinnäytetyössä keskityttiin yksityiskohtaisesti potentiaalisimpaan teknologiaan. Opin- näytetyössä esiteltiin lisäksi kolme erilaista suosittua selainpohjaista videokeskustelutoteutus- ta ja verrattiin niiden sopivuutta Seniori365.fi-verkkopalveluun. Vaatimusmäärittelyn ja val- mistoteutuksien vertailujen perusteella opinnäytetyössä suositeltiin Seniori365.fi- verkkopalvelulle sopivinta tapaa videokeskustelutoiminnallisuuden toteuttamiseksi. Asiasanat: seniori365, seniori, verkkopalvelu, drupal, sisällönhallintajärjestelmä, kategori- sointi, videokeskustelupalvelu, webrtc Laurea University of Applied Sciences Abstract Bachelor’s Degree Programme in Business Information Technology Hänninen, Henri Categorizing the Website Content and Integration Study of Video Chat Service – Case Seniori365.fi Year 2016 Pages 44 The purpose of this thesis was to create development plan for the web developers of Seniori365.fi–website. The thesis is designed mainly for the web developers of Seniori365 web service, who understand the technologies and terminology used in the development of a dy- namic website. The main points and conclusions of thesis are written as clearly as possible, so that also the non-technical readers can understand the purpose of this thesis. The development plan is consisted of two very different sections. The first section of the de- velopment plan provides a detailed guidance for implementing a content categorizing feature on the website. The categorizing feature is used to filter content based on the municipality. The first section also contains an example implementation, which can be used as a basis for the actual production environment implementation. The second section of the development plan focuses on different technologies, which can be used to build and implement a video chat feature on Seniori365 website. The purpose of the second section is to benchmark different technologies and provide the best solution which can be used to implement the video chat service on Seniori365 website. The thesis does not contain an implementation plan for the video chat service. Keywords: seniori365, senior, web service, drupal, content management system, categorizing content, video chat service, webrtc Sisällys 1 Johdanto ............................................................................................. 6 2 Opinnäytetyön tausta ............................................................................. 7 2.1 Toimeksiantaja ............................................................................. 7 2.2 Opinnäytetyön kohderyhmä .............................................................. 7 3 Käsitteet ............................................................................................. 8 4 Seniori365.fi –verkkopalvelu ..................................................................... 8 5 Palvelun nykyinen tekninen toteutus ........................................................... 9 6 Kuntakohtaisen sisällön tuen toteuttaminen ................................................ 12 6.1 Kategorian lisääminen ................................................................... 13 6.2 Kuntavalinnan liittäminen sisältötyyppeihin ........................................ 14 6.3 Sisällön suodattaminen kuntavalinnan perusteella ................................ 15 6.4 Kuntavalinnan käyttöliittymä .......................................................... 17 6.5 Kuntavalinnan implementointi nykyisiin alaosioihin ............................... 18 6.5.1 Linkit –osio ......................................................................... 19 6.5.2 Yleistietoa –osio .................................................................. 19 6.5.3 Palvelut ja tuotteet .............................................................. 20 6.5.4 Aktiviteetit ........................................................................ 21 6.5.5 Vapaaehtoistyö ja omaishoito .................................................. 22 7 Interaktiivinen videokeskustelutoiminnallisuus ............................................. 22 7.1 Mediasisällön välittämiseen käytettävät teknologiavaihtoehdot ................ 23 7.1.1 Flash ................................................................................ 23 7.1.2 Silverlight .......................................................................... 23 7.1.3 WebRTC ............................................................................ 24 7.1.4 Teknologiavaihtoehtojen selaintuki ........................................... 25 7.2 Videokeskustelupalvelun tekninen rakenne yleisesti .............................. 25 7.2.1 WebRTC ............................................................................ 25 7.2.2 Flash ................................................................................ 28 7.3 Valmiit videokeskustelutoteutukset .................................................. 29 7.3.1 Appear.in .......................................................................... 30 7.3.2 Tokbox ............................................................................. 30 7.3.3 Apache Openmeetings ........................................................... 31 7.4 Suositeltu implementaatio ............................................................. 31 8 Yhteenveto ........................................................................................ 33 Kuvat..................................................................................................... 36 Taulukot ................................................................................................... 37 Liitteet ..................................................................................................... 38 1 Johdanto Opinnäytetyön tavoitteena on luoda kaksiosainen tekninen jatkokehityssuunnitelma Seniori365.fi –verkkopalvelun jatkokehittäjille. Suunnitelman ensimmäinen osa sisältää yksi- tyiskohtaisen ohjeistuksen kuntakohtaisen sisällön kategorisoimiseksi Drupal- sisällönhallintajärjestelmällä. Suunnitelman jälkimmäinen osio käsittelee eri teknologiavaih- toehtoja, joita on mahdollista käyttää interaktiivisen videokeskustelupalvelun toteuttami- seen. Osion tarkoituksena on myös suositella Seniori365-sivustolle soveltuvinta tapaa video- keskustelupalvelun integroimiseen. Seniori365.fi –verkkopalvelu on nykyisellään espoolaisille senioreille suunnattu verkkopalvelu, josta löytyy monialaista senioreille kohdistettua tietoa, hyvinvointipalveluita ja –tuotteita sekä viihdettä. Asiakkaan tavoitteena on laajentaa sivustoa eri kuntiin, joten sivustolle on kehitettävä ominaisuus joka mahdollistaa sisällön luonnin ja esittämisen kuntakohtaisesti. Opinnäytetyön ensimmäisen osion tavoitteena on luoda yksityiskohtainen määrittely tarvitta- vista muutoksista, jotta Seniori365-palvelu on mahdollista laajentaa myös muiden kuntien käyttöön. Suunnitelmasta käy ilmi tietorakenteisiin ja ulkoasuun tehtävät muutokset. Suunni- telmassa tuodaan esiin erilaisia ratkaisuehdotuksia sekä osittaisia implementointeja ratkaisua vaativiin ongelmakohtiin ja asiakkaan haluamiin muutoksiin. Suunnitelmassa on mukana myös valmiit ratkaisuehdotukset lähdekoodeineen, jotka kuitenkin vaativat tulevilta tekijöiltä kun- nollista testaamista sekä implementaatioita tuotantojärjestelmään. Asiakkaan tavoitteena on implementoida tulevaisuudessa videokeskustelutoiminnallisuus si- vustolle. Tämän opinnäytetyön jälkimmäisessä osassa käydään läpi eri teknologiat, joita on mahdollista hyödyntää selainpohjaisen videokeskustelutoteutuksen kehittämisessä. Lisäksi esitellään valmiita kolmannen osapuolen toteuttamia videokeskustelusovellutuksia. Opinnäy- tetyön jälkimmäisen osan tavoitteena ei ole tarjota valmista ratkaisua tai toteutussuunnitel- maa. Jälkimmäisen osan tavoitteena on suositella potentiaalisinta toteutustapaa asiakkaan toiveiden, eri tekniikkavaihtoehtojen mahdollisuuksien ja rajoitusten perusteella. 7 2 Opinnäytetyön tausta Seniori365.fi–verkkopalvelu oli alunperin osa InnoEspoo-hanketta, jonka tarkoituksena oli luo- da hyvinvointiin liittyviä palveluinnovaatioita. InnoEspoo-hanke oli Espoon alueen oppilaitos- ten sekä Espoon kaupungin yhteishanke, jonka rahoittajana toimi Euroopan sosiaalirahasto. Seniori365.fi–palvelun suunnittelu alkoi alunperin 2013 syksyllä. Palvelun tekninen kehittämi- nen alkoi kesäkuussa 2014. Palvelun teknisestä kehittämisestä vastaavat Laurea- ammattikorkeakoulun opiskelijat. Palvelu oli alunperin suunniteltu lähinnä Espoon alueen se- nioreiden käyttöön, joten palveluun ei ole toteutettu kategorisointia, joka mahdollistaisi si- sällön luomisen tai suodattamisen kuntakohtaisesti. Opinnäytetyön toimeksiantajalle on kuitenkin syntynyt tarve muuttaa palvelu tukemaan kun- takohtaista sisältöä. Kuntakohtaisen sisällön tuen toteuttaminen mahdollistaisi palvelun käyt- tämisen myös muiden kuntien alueella. Ilman kuntakohtaisen sisällön tukea palvelun laajen- taminen muihin kuntiin on haastavaa, sillä huomattava osa palvelun sisällöstä on täällä het- kellä hyvin Espoo-keskeistä, eikä se siten suoraan palvele muiden kuntien alueella asuvia käyttäjiä. Asiakkaan keskeisimpänä tavoitteena on luoda palveluun tuki usealle eri kunnalle. Palveluun pitäisi pystyä jatkossa lisäämään kuntakohtaista sisältöä sekä käyttäjillä pitää olla saatavilla helppokäyttöinen tapa suodattaa sisältöä kuntakohtaisesti. Tässä opinnäytetyössä keskitytään ohjeistamaan yksityiskohtaisesti miten sivustolle voidaan lisätä tuki usealle kunnalle. Lisäksi opinnäytetyössä käydään läpi muutamia videopalveluita ja niiden integroimisen helppoutta sekä soveltuvuutta Seniori365-sivustolle. 2.1 Toimeksiantaja Seniori365.fi-palvelun ylläpito ja kehitys siirtyi Laurea Ammattikorkeakoululle InnoEspoo- hankkeen päätyttyä. Palvelun kehityksestä on vastuussa Laurean aluepalvelupäällikkö, joka toimii myös tämän opinnäytetyön toimeksiantajana. 2.2 Opinnäytetyön kohderyhmä Opinnäytetyö toimii teknisenä suunnitelmana Seniori365.fi –palvelun jatkokehittäjille. Opin- näytetyötä kirjoitettaessa on oletettu kohderyhmän olevan tietoinen verkkosivustojen suun- nittelun ja toteutuksen periaatteista sekä sanastosta. Opinnäytetyö on kuitenkin pyritty kir- joittamaan mahdollisimman selkeästi, jotta myös vähemmän tekniikkaorientoituneet lukijat pystyvät sisäistämään suunnitelmien ydinkohdat. 8 3 Käsitteet Tässä kappaleessa esitellään opinnäytetyössä käytettyä sanastoa ja täsmennetään termien merkitystä. Drupal Seniori365.fi–palvelun kehittämisessä käytetty sisällönhallintajärjestel- mä. Sisältötyyppi Tapa kategorisoida erilaisia sisältöjä. (eng. content type) Pohja Tiedosto, joka sisältää ulkoasun generoimiseen tarkoitettua HTML - lähdekoodia (eng. template) Teema Sivuston ulkoasu (eng. theme). Seniori365 –sivustolla on käytössä kusto- moitu teema, joka alunperin pohjautuu suosittuun ilmaiseen valmistee- maan. Rajapintafunktio Funktio, jota käytetään Drupalin ytimen toiminnallisuuksien muokkaami- seen (eng. hook). Yleensä rajapintafunktio on eräänlainen takaisinkutsu- funktio (eng. callback), jolle syötetään objektiviittauksia parametreina (eng. pass-by-reference). Rajapintafunktion parametreja muokataan, jonka jälkeen ydin suorittaa toiminnallisuuden käyttäen muokattuja ar- voja. Rajapintafunktiot on aina nimetty seuraavasti {teeman tai moduu- lin nimi}_{api funktio} (Travis, B. 112-116). Esimerkki : // Forces Drupal to use custom page template: my-page.tpl.php function seniori365_preprocess_page(&$variables){ $variables['theme_hook_suggestions'] = array('my_page'); } Suodatuskriteeri Views –moduulin asetus, jolla rajataan tietokantahakua kenttäkohtaises- ti. Käytännössä suodatinkriteerin lisääminen muodostaa WHERE lausek- keen generoitavaan SQL –kyselyyn. (eng. Filter criteria) 4 Seniori365.fi –verkkopalvelu Seniori365.fi –palvelu koostuu useasta eri alaosiosta. Tässä osiossa käydään läpi Seniori365.fi – palvelun keskeisimmät alaosiot ja niiden toiminnallisuudet. Kyseiset alaosiot ovat kaikki näh- tävillä myös sivuston päävalikossa. 9 Etusivu tarjoaa tietoa itse palvelusta ja sen käyttötarkoituksesta. Etusivulta myös löytyy pals- toja, johon nostetaan näkyviin uusimpia palveluita, tuotteita sekä ajankohtaisia tapahtumia. Etusivulta löytyy myös linkitykset sosiaalisiin medioihin sekä pikalinkkejä sivuston muihin osi- oihin. Palvelut ja tuotteet alasivut ovat toiminnallisuuksiltaan lähes identtisiä. Niiden tehtävänä on tarjota käyttäjälle käyttöliittymä verkkopalveluun lisättyjen hyvinvointipalvelujen ja - tuotteiden hakemiseen sekä selaamiseen. Palvelut-osio ja Tuotteet–osio ovat sivuston tär- keimmät osa-alueet. Yleistietoa-osiosta löytyy nimensä mukaisesti tietoa ja ohjeita senioreille, riippumatta heidän sen hetkisestä asuinkunnastaan tai asuinmaastaan. Osion keskeisin tarkoitus on koota yhteen paikkaan senioreiden hyvinvointiin liittyvää tietoa useista eri lähteistä. Osion sisältöä on koot- tu haettu muun muassa Kelan ja erilaisten järjestöjen sivuilta. Artikkelien yhteydessä on aina myös maininta alkuperäisestä lähteestä. Aktiviteetit-osio sisältää monenlaista viihteeseen ja vapaa-aikaan liittyvää sisältöä, kuten vi- deoita, linkkejä verkkolehtiin ja pelisivustoille, keskustelufoorumi, ruokaohjeita sekä erilaisia muisteluun ja tarinan kerrontaan liittyvää sisältöä. Aktiviteetit-osion sisältö on myös luonteel- taan sellaista, joka soveltuu kaikille sivuston käyttäjille eikä tarvetta kuntakohtaiselle loka- lisoinnille ole. Omaishoito-osiosta löytyy omaishoitajille suunnattua yleistä tietoa sekä kuntakohtaista tie- toa. Yleistä tietoa ovat muun muassa tiedot omaishoitajuudesta sekä omaishoitajahaastatte- lut. Paikallinen sisältö taas koostuu alueellisten omaishoitajajärjestöjen esittelystä, kunta- kohtaisten omaishoitosäädösten esittelystä, ohjeistuksesta omaishoitotuen hakemiseen sekä tärkeistä yhteystiedoista. Vapaaehtoistyö-osiosta löytyy laaja-alaista tieto vapaaehtoistyöhön liittyen. Osiossa käydään yleisesti läpi vapaaehtoistyötä sekä siihen liittyviä oikeuksia ja velvollisuuksia. Osion alisivus- toilta löytyy myös tietoa erilaisista vanhustyöhön liittyvistä vapaaehtoisjärjestöistä sekä ko- kemuksia vapaaehtoistyötä tekeviltä henkilöiltä. 5 Palvelun nykyinen tekninen toteutus Seniori365.fi –palvelu on toteutettu Drupal-sisällönhallintajärjestelmällä. Drupal- sisällönhallintajärjestelmää käytetään erityisesti hallinnollisten organisaatioiden sekä isojen yritysten verkkopalveluissa. Drupal on kolmanneksi suosituin julkaisujärjestelmä ja sen suosio on ollut hienoisessa kasvussa (W3Techs, 2016). 10 Sivustolla käytetty teema on suurelta osin kustomoitu vaikka sen ydin perustuukin suosittuun valmispohjaan. Kustomoitu ratkaisu on toimiva, sillä se mahdollistaa ulkoasun vapaan jatko- kehittämisen ilman riippuvuutta kolmannesta osapuolesta. Seniori365.fi –palvelussa on pyritty huomiomaan esteettömyys, helppokäyttöisyys sekä selainyhteensopivuus mahdollisimman kat- tavasti. Sivuston ulkoasusta on tehty responsiivinen vaikka kehityksessä eniten huomiota onkin kiinnitetty työpöytänäkymään. Seniori365.fi –verkkopalvelu tukee muun muassa vanhoja Internet Explorer 8 selaimia, sillä tärkeillä yhteistyökumppaneilla sekä potentiaalisilla ja nykyisillä käyttäjillä on vielä käytössä Windows XP käyttöjärjestelmä, johon ei ole mahdollista saada uudempaa Microsoftin selainta. IE8 tuki aiheuttaa joitakin rajoitteita sivuston ulkoasun suunnittelulle, sillä kaikkia uudempia tekniikoita ei voida hyödyntää. Esimerkiksi monet hyvinkin yksinkertaiset asiat, kuten liukuvä- rit tai elementtien kulmien pyöristämiset eivät toimi IE8:ssa. Drupal–järjestelmän toimintalogiikka on proseduraalinen (Wilkins, J. 9). Proseduraalinen oh- jelmointi on hyvin prosessikeskeistä. Proseduraalisessa ohjelmoinnissa toiminnallisuudet ta- pahtuvat proseduureissa, Drupalin tapauksessa funktioissa. Funktiot on myös usein jaoteltu loogisiin, toisistaan mahdollisimman riippumattomiin kokonaisuuksiin eli moduuleihin. (Techopedia, 2016). Drupalin toimintalogiikka on koostettu useista funktioista, joita järjes- telmä kutsuu vuorollaan. Kun funktio on lopettanut toiminnallisuutensa suorittamisen, Drupal kutsuu seuraavaa funktioita. Drupal-järjestelmä hyödyntää osin myös objektiorientoitunutta ohjelmointityyliä, mutta suurin osa ytimen toiminnallisuudesta on proseduraalista. Drupal-sisällönhallintajärjestelmässä esitys- ja logiikkakerros on erotettu toisistaan. Esitysker- roksen ja logiikkakerroksen eriyttämisellä mahdollistetaan logiikan ja visuaalisuuden riippu- mattomuus toisistaan (Wilkins, J. 63). Eriyttämisestä on monia erilaisia hyötyjä, kuten mah- dollisuus ulkoasun uudistamiseen ilman että ohjelmiston ydinlogiikkaan tarvitsee tehdä muu- toksia, esitettävän datan muokkaaminen ilman HTML-pohjiin tehtäviä muutoksia sekä kehitys- prosessien jakaminen osiin ja delegointi eri henkilöille. Esitys– ja logiikkakerroksen täydellistä riippumattomuutta toisistaan ei kuitenkaan ole mahdollista saavuttaa, sillä logiikan ja esittä- misen raja on käyttöliittymäkomponentteja kehitettäessä häilyvä (Travis, B. 181). Drupal on hyvin monipuolinen, mutta samalla myös monimutkainen sisällönhallintajärjestel- mä. Drupal-kehittäjän on hyvä sisäistää Drupalin HTTP –kyselyn prosessointilogiikka, ainakin pääpiirteittäin. Tämä helpottaa järjestelmän kehittämistä ja ylläpitoa sekä auttaa hahmot- tamaan missä vaiheessa eri rajapintafunktioita kutsutaan. Oheisessa prosessikaaviossa on esi- telty Drupalin HTTP -kyselyn prosessointilogiikka, joka alkaa aina verkkopalvelimen juurikan- siossa sijaitsevasta index.php –tiedostosta (Travis, B. 31).
Description: