liferay road show helsinki, case innokylä, 2012-09-13
DESCRIPTION
Henri Leisma, Ambientia, Liferay Road Show Helsinki 13.09.2012, Case InnokyläTRANSCRIPT
![Page 1: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/7.jpg)
www.innokyla.fi
13.9.2012 7www.ambientia.fi
![Page 8: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/27.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/28.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/29.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/30.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/31.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/32.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/33.jpg)
Mitä tehtiin hyvin: Tietoturva
13.9.2012 www.ambientia.fi 33
![Page 34: Liferay Road Show Helsinki, Case Innokylä, 2012-09-13](https://reader036.vdocuments.site/reader036/viewer/2022062405/55586ee3d8b42a8d018b4e16/html5/thumbnails/34.jpg)
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