Top Banner
Innokylän verkkopalvelun toteuttaminen Liferay Road Show, Helsinki 13.9.2012 www.ambientia.fi 1
35

Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

May 17, 2015

Download

Technology

Ambientia

Henri Leisma, Ambientia, Liferay Road Show Helsinki 13.09.2012, Case Innokylä
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Innokylän verkkopalvelun toteuttaminen

Liferay Road Show, Helsinki

13.9.2012 www.ambientia.fi 1

Page 2: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Projektin osapuolet

• Terveyden ja hyvinvoinnin laitos (THL)• THL tekee väestön terveyteen ja hyvinvointiin liittyvää

tutkimusta ja kehittämistä. Tutkimus liittyy terveyden ja hyvinvoinnin edistämiseen sekä sairauksien ja vajaakuntoisuuden ehkäisyyn.

• Ambientia• Ambientia on sähköiseen liiketoimintaan ja viestintään

sekä yhteisöllisiin ratkaisuihin erikoistunut asiantuntijayritys.

• Henri Leisma• Senior Software Developer, yksi Innokylän

sovelluskehittäjistä

13.9.2012 www.ambientia.fi 2

Page 3: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Taustaa

• Julkinen tarjouskilpailu• Palvelu toteutus aloitettiin maaliskuussa 2011,

ensimmäinen vaihe julkaistiin 15.12.2011• Toteutus tehtiin scrum kehystä mukaillen,

iteraation pituus oli 3 viikkoa• Palvelun lähdekoodi, saavutettavuus ja

käytettävyys testautettiin kolmannella osapuolella

13.9.2012 www.ambientia.fi 3

Page 4: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Innokylä-projektin tavoitteet

“Innokylä tarjoaa sosiaali- ja terveysalan toimijoille ympäristön, jossa nämä voivat löytää toisensa, kehittää yhdessä sekä levittää uusia ideoita ja innovaatioita. Innokylässä ihmiset ja ideat kohtaavat.”

-Mahdollistaa kehittämisen ja ideoinnin yhdessä

-Keskussivusto menneille ja nykyisille hankkeille

-Tapahtumien jakaminen alan keskeisten toimijoiden kesken-Samankaltaisten projektien parissa toimivien löytäminen

13.9.2012 www.ambientia.fi 4

Page 5: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Haasteet / määrittelyt

- Loppukäyttäjät voivat jakaa hankkeiden ja tapahtumien muokkausoikeuksia

- Loppukäyttäjiä ei päästetä Liferayn hallintapaneeliin- LR Groups, permissions

- Nostoja voitava tehdä lähes mistä tahansa sisällöistä- LR Asset Publisher, AssetEntry, indexing

- Saavutettavuus ja käytettävyys- Sulautetut ohjeet tageilla, joissa näytetään web artikkeleita- Rakenteen ja teeman korostettu yksinkertaisuus (monilla

käyttäjillä rajoitteita ja apuvälineitä)

13.9.2012 www.ambientia.fi 5

Page 6: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Ratkaisut / Keskeiset toiminnot

- Julkinen tiedon jakaminen- Hankkeet- Tapahtumat- Käytännöt (tulossa)- Verstaat (tulossa)

- Osallistuminen ja kehittäminen- Rekisteröidy palveluun- Ota yhteyttä muihin käyttäjiin- Kehitä muiden hankkeita ja osallistu tapahtumiin- Luo omia hankkeita ja tapahtumia

13.9.2012 www.ambientia.fi 6

Page 7: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

www.innokyla.fi

13.9.2012 7www.ambientia.fi

Page 8: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Haasteita ja miten ne ratkaistiin

• Sivuston hallinta ilman hallintapaneelia• Vaatimusmäärittely esittää varsin paljon erilaisia

hallintavaatimuksia, joiden tulee olla helposti käytettävissä julkiselta puolelta ja vieläpä tapahtuma-/hankekohtaisesti.

• Ratkaisu• Tapahtumat ja hankkeet päätettiin toteuttaa omina Liferay

yhteisöinään (Group), jolloin käyttöoikeudet näille saatiin toimimaan vaatimusten mukaisesti ilman räätälöintejä. Ominaisuuksien tuominen julkipuolelle käyttöön hoidettiin toteuttamalla räätälöityjä portletteja, jotka lukevat Liferayn tarjoamia yhteisö- ja muita tietoja.

13.9.2012 www.ambientia.fi 8

Page 9: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Haasteita ja miten ne ratkaistiin

• Oikeuksien jakaminen resurssikohtaisesti• Vaadittiin, että loppukäyttäjien pitää pystyä myöntämään

eritasoisia käyttöoikeuksia palvelussa tapahtuma-/hankekohtaisesti. Käyttöoikeuksien jakaminen tapahtuu käyttäjien kesken ja yksinkertaisesti julkiselta puolelta.

• Ratkaisu• Ongelma ratkaistiin toteuttamalla tapahtumat ja hankkeet

Liferayn omina yhteisöinä, jolloin käyttöoikeuksien jakaminen yksittäin eri tapahtumille/hankkeille voitiin toteuttaa yhteisökohtaisesti. Lisähaasteena oli toteuttaa kutsuminen yhteisöön, eli oikeuksien antamisen toisille käyttäjille tuli kulkea kutsutun käyttäjän oman hyväksynnän kautta.

13.9.2012 www.ambientia.fi 9

Page 10: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Tapahtumakalenteri

13.9.2012 10

Näkymä tapahtumakalenterin etusivusta(web sisältö, kuvakaruselli, luonti, asset listaus)

www.ambientia.fi

Page 11: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Ominaisuudet: Tapahtumakalenteri

Tapahtumakalenteri on yhdistelmä erilaisia portletteja.  Tapahtumien kuvien esittäminen tapahtuu Javascript-karusellilla, muuten tapahtumanostoihin käytettään Liferayn Asset julkaisijaa.http://www.innokyla.fi/web/guest/ajankohtaista Varsinaisista tapahtumista muodostuu omia Liferay yhteisöjä. Tämä on toteutettu Liferayn sivustopohjana, jossa on määritelty mistä asetteluista, portleteista ja niiden asetuksista se koostuu. •Ominaisuuksia:

• Ilmoittautumisen aktivointi• Aktivointi kuvakaruselliin• Ylläpitäjien määrittäminen tapahtumalle• Alisivujen luominen• Kommentointi• Kaikki nämä tuotu käytettäväksi julkiselle puolelle

13.9.2012 www.ambientia.fi 11

Page 12: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Hankepankki

13.9.2012 12

Näkymä hankkeen julkisesta sivusta (murupolku, toiminnot, sisällöt välilehdittäin)

www.ambientia.fi

Page 13: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Hankkeen luonti

• Joka hankkeelle luodaan oma yhteisö (Group)• Hankkeen luoneelle käyttäjälle lisätään

oikeuksia (Permissions)• Hankkeen yhteisön sivuston asettelu ja portletit

(Layout) tulevat sivustopohjalta (Site Template)

• Asettelu päivitettävissä startup action:lla (6.0 vs. 6.1)

• Hankkeen sisältö versioidaan tallennettaessa

13.9.2012 www.ambientia.fi 13

Page 14: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Samankaltaiset hankkeet

13.9.2012 14

Näkymä samankaltaisten hankkeiden listauksesta luonnoksen tallentamisen jälkeen

www.ambientia.fi

Page 15: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Samankaltaiset hankkeet

• Uutta hanketta luotaessa• Sanasto käytettävissä oman sisällön

asiasanoitukseen• Kategorisointi tulee valituista tageista• Lisätään portaalin yhteiseen hakuindeksiin• Luodaan AssetEntry portaalin listauksia varten

• Hankeluonnosta tallennettaessa• Perustietojen täytön lisäksi valittuna asiasanoja• Samankaltaisia hankkeita haetaan hakuindeksistä• Hankkeiden tiivistelmiä näytetään

13.9.2012 www.ambientia.fi 15

Page 16: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Käyttäjäprofiilisivu

13.9.2012 16

Näkymä käyttäjäprofiilista (alisivut, perustiedot, Asset-listauksia)

www.ambientia.fi

Page 17: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Ominaisuudet: Käyttäjäprofiili

• Jokaiselle käyttäjälle muodostuu automaattisesti oma profiilisivu. Käyttäjä voi päivittää ja hallita oman profiilin tietoja julkisen käyttöliittymän kautta.

• Profiilista löytyy:• Käyttäjän oma palvelun sisäinen postilaatikko• Käyttäjän asetukset (sähköpostimuistutusten

vastaanotto, onko kutsuttavissa yhteisöihin jne.)• Profiiliin listataan yhteisöt joihin käyttäjä kuuluu,

tapahtumailmoittautumiset, suosikit ja kiinnostuksen kohteet

13.9.2012 www.ambientia.fi 17

Page 18: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Haasteita ja miten ne ratkaistiin

• Nostot• Vaatimuksena oli erilaisten nostojen lähes vapaa tekeminen

mihin tahansa kohtaan palvelua. • Ratkaisu

• Ongelma ratkaistiin Liferayn tarjoaman Asset Framework:n avulla. Esim. jokaisesta julkaistusta hankkeesta luodaan tallennuksen yhteydessä myös AssetEntry. Tämä tallentuu portaalin puolelle ja mahdollistaa räätälöityjen portlettien sisällön esittämisen/listaamisen asset julkaisijan avulla.

• Muutamia esimerkkejä siitä mitä tämän avulla mahdollistettiin:• Tykkäysten listaaminen• Suosituimman sisällön listaaminen• Hankkeiden listaaminen erilaisten metatietojen perusteella• Tapahtumien listaaminen erilaisten metatietojen perusteella

13.9.2012 www.ambientia.fi 18

Page 19: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Asset FrameworkRäätälöidyn portletin sisällön näyttäminen portaalissa

•Jokainen portlet-app “elää omassa galaksissaan”•Asset Publisher elää itse portaalissa•Portlet-app:n omien entiteettien näyttäminen ja listaaminen (vain portlet-app)•Portlet-app:n omien entiteettien “korvikkeiden” näyttäminen ja listaaminen (myös portal)

• Tallennetuista AssetEntry:ista•AssetEntry:jen tallentaminen mahdollistaa AssetEntryQuery-kyselyiden käyttämisen

13.9.2012 www.ambientia.fi 19

Page 20: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Haasteita ja miten ne ratkaistiin

Anonyymit toiminnot•Kommentointi (kirjautumatta)•Kutsutoiminnallisuus (nimimerkin kutsuminen)

•Haastavia toteutettavia, kun pyrkimys käyttää mahdollisimman paljon Liferayn mukana tulevia portletteja ja tagi-kirjastoja•Kyseessä portaali (kohdentaminen sivuun vs. kohdentaminen sivulle nostettuun sisältöön)

13.9.2012 www.ambientia.fi 20

Page 21: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Ominaisuudet: Kutsutoiminnallisuus

• Kutsutoiminnallisuus• Palveluun on toteutettu toiminto, jonka avulla

käyttäjä voidaan kutsua hankkeen kehittäjäksi tai ylläpitäjäksi.

• Ominaisuudet:• Sisäisen kutsun lähettäminen, jolla kutsutaan käyttäjä

kehittäjäksi tai ylläpitäjäksi yhteisöön• Kutsu voidaan hyväksyä tai hylätä• Kutsu kulkee palvelun sisäisen postin kautta• Ennustava käyttäjän valinta käyttäjän nimimerkin mukaan

13.9.2012 www.ambientia.fi 21

Page 22: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Ominaisuudet: Kommentointi

Toteutettu räätälöitynä portlettina•Sivun kommentointi (kommentti kuuluu oikeasti jollekin sivulle, tätä voidaan ja hyödynnetään muissa palvelun osissa)•Kommentit muodostavat puuhierarkian, kommentoi kommenttia•Kirjautunut käyttäjä voi valita kommentoiko nimimerkillä vai omalla nimellään•Vierailijoiden kommentointimahdollisuus•IP-sulkulista•Verkkopalvelun ylläpitäjät voi muokata kaikkia kommentteja, yhteisön ylläpitäjä voi muokata oman yhteisön laajuudessa•Kieltosanalista13.9.2012 www.ambientia.fi 22

Page 23: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Esteettömyys ja käytettävyys

•Korostetun yksinkertainen rakenne ja siirtymät•Huomioitu myös kontrasteja•Toteutettu kustomoituja näppäintoimintoja ja esteettömyys huomioitu mahdollisuuksien mukaan teemojen ja layouttien teossa. 

13.9.2012 www.ambientia.fi 23

Page 24: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Ominaisuudet: Laajat hakutoiminnallisuudet

Monipuoliset haun rajausmahdollisuudet eri tietosisältöjen mukaan, lisäksi piti pystyä näyttämään tulokset (kuinka moneen vaihtoehtoon rajaus vaikuttaa) etukäteen ennen käyttäjän oman haun suorittamista.

Ratkaisu

Varsin haasteelliselta kuulostanut vaatimus ratkaistiin suhteellisen yksinkertaisesti hyödyntämällä Lucene-hakumoottorin ominaisuuksia. •Räätälöidyistä portleteista tarjotaan entiteettien tiedot tallennettavaksi portaalin yhteiseen hakuindeksiin. •Hakutulosten suodattamiseen käytetään Liferayn kategorisointi-toiminnallisuutta.

13.9.2012 www.ambientia.fi 24

Page 25: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Haku ja suodatukset

13.9.2012 25

Näkymä hakusivulta (suodattimet, haku, tulokset)

www.ambientia.fi

Page 26: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Haku, kategoriat ja tagit

• Käytettävissä olevat asiasanat parsittu ontologiasta

• Tagit luokiteltu aihealueiden kategorioihin

• Hanketta ja tapahtumaa luotaessa käyttäjä valitsee sille asiasanoja

• Haettaessa , käyttäjä voi suodattaa tuloksia aihealueiden kategorioilla

• Lopputuloksena (adminien) muokattavissa olevat hakusuodattimet

13.9.2012 www.ambientia.fi 26

Page 27: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Haku ja suodatukset

13.9.2012 27

Näkymä aihealueiden hallinnasta (LR kategoriat)

www.ambientia.fi

Page 28: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Haku ja suodatukset

13.9.2012 28

Näkymä aihealueiden ja asiasanojen linkitysten hallinnasta (LR hallintapaneeli)

www.ambientia.fi

Page 29: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Haku ja suodatukset

13.9.2012 29

Näkymä Liferayn kategorioiden ominaisuuksista

www.ambientia.fi

Page 30: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Haasteita ja miten ne ratkaistiin:Integroitavuus

Vaadittiin dokumentoitu (wsdl) rajapinta eri hankelähteiden integroimiseen palveluun. Hankkeiden tuonnissa integraation kautta pitää, samoin kuin käyttöliittymän kautta uusia luotaessa, luoda yhteisö ja sivusto sekä antaa oikeuksia.

Ratkaisu

Toteutamme nykyään omat portletit Liferayn Service Builder -koodin generointityökalua hyödyntäen, jolloin web servicet saadaan luotua helposti. Toteutustapana on palvelukerroksen etärajapinnan paljastaminen.

13.9.2012 www.ambientia.fi 30

Page 31: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Haasteita ja miten ne ratkaistiin:Yhdenaikaisten muokkausten hallinta

Palvelun tulee tarjota tieto siitä, mikäli toinen käyttäjä muokkaa samaa tietosisältöä.

Ratkaisu

Tutkimisen jälkeen löysimme Liferaysta dokumentoimattoman poller-toiminnallisuuden. Tämä mahdollistaa hyvin monipuolisten tilantarkastelu-toiminnallisuuksien toteuttaminen. Ominaisuuden avulla toteuteltiin pollaus, jolla tarkastellaan käsiteltävän aineiston tilaa ja varoitetaan käyttäjää mahdollisesta päällekkäisestä muokkauksesta.13.9.2012 www.ambientia.fi 31

Page 32: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Yhteenveto

• Mitä tehtiin hyvin• Arkkitehtuuri (uudelleenkäytettävyys, kehysten valmiit

ominaisuudet)• Käyttöoikeudet ja tietoturvan taso (haavoittuvuuksia

skannattu)• Koodin laatu (kolmannen osapuolen audiotoima)

• Mitä tehtäisiin toisin• Yksinkertaisempaa Asset Framework:n käyttöä

(suositaan enemmän AssetRenderer:ia)• Ohitetaan Liferayn oman hakutoteutuksen rajoitukset

esim. suoralla SOLR hakumoottorin käytöllä• Core+näytöt vs. ketjutetut portlet-app:t

13.9.2012 www.ambientia.fi 32

Page 33: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Mitä tehtiin hyvin: Tietoturva

13.9.2012 www.ambientia.fi 33

Page 34: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Mitä tehtiin hyvin:Koodin laatu

Ohjelmakoodi auditoitiin kolmannen tahon toimesta jokaisen sprintin päätteeksi. Emme tiedä kuka tämä kolmasosapuoli oli, mutta koodimme todettiin olevan parasta THL:lle ikinä toimitettua ohjelmakoodia.

13.9.2012 www.ambientia.fi 34

Page 35: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13

Puhelin: 0290 010 500

Sähköposti: [email protected]

Twitter: @ambientia

Henri Leisma