2. Projektin osapuolet
• Terveyden ja hyvinvoinnin laitos (THL)
• THL tekee vä estö terveyteen ja hyvinvointiin
n
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
3. 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
4. Innokylä-projektin tavoitteet
“Innokylä tarjoaa sosiaali- ja terveysalan toimijoille
ympä ristö jossa nä mä voivat lö
n, 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
5. 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
6. 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
8. 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
9. 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
11. 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ö . Tä mä
jä
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
17. 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ö joihin kä yttä jä kuuluu,
t
tapahtumailmoittautumiset, suosikit ja kiinnostuksen
kohteet
13.9.2012 www.ambientia.fi 17
18. 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ö AssetEntry. Tä mä tallentuu
s
portaalin puolelle ja mahdollistaa rä ä tä löityjen portlettien
sisä llö esittä misen/listaamisen asset julkaisijan avulla.
n
• Muutamia esimerkkejä siitä mitä tä mä n avulla
mahdollistettiin:
• Tykkä ysten listaaminen
• Suosituimman sisä llö listaaminen
n
• Hankkeiden listaaminen erilaisten metatietojen perusteella
• Tapahtumien listaaminen erilaisten metatietojen perusteella
13.9.2012 www.ambientia.fi 18
19. Asset Framework
Rää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
20. 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
21. 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
13.9.2012 mukaan www.ambientia.fi 21
22. 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ö yllä pitä jä voi muokata oman
n
yhteisö laajuudessa
n
•Kieltosanalista
13.9.2012 www.ambientia.fi 22
23. Esteettömyys ja käytettävyys
•Korostetun yksinkertainen rakenne ja siirtymä t
•Huomioitu myö kontrasteja
s
•Toteutettu kustomoituja nä ppä intoimintoja ja esteettömyys
huomioitu mahdollisuuksien mukaan teemojen ja layouttien
teossa.
13.9.2012 www.ambientia.fi 23
24. Ominaisuudet:
Laajat hakutoiminnallisuudet
Monipuoliset haun rajausmahdollisuudet eri
tietosisä ltö mukaan, lisä ksi piti pystyä
jen
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
26. 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
27. Haku ja suodatukset
Nä kymä aihealueiden hallinnasta (LR kategoriat)
13.9.2012 www.ambientia.fi 27
28. Haku ja suodatukset
Nä kymä aihealueiden ja asiasanojen linkitysten hallinnasta (LR hallintapaneeli)
13.9.2012 www.ambientia.fi 28
30. 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
31. 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
32. 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
34. 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
Ja tältä näyttää Innokylän etusivu (kolmasosa, alempaa löytyy vielä: ) nostoja kuvagalleriasta Rakenteellisella web artikkelilla tehtyjä linkkilistoja Asset julkaisijalla tehtyjä listauksia uutisista, tapahtumista, hankkeista
Kuvassa näkyy useita portletteja (web-sisällön esitys, räätälöity kuvakaruselli, luonti josta aukeaa tapahtumien luonti portlet, asset julkaisijalla ajankohtaista)
- Toteutettu tapahtumia vastaavalla tavalla yhteisöinä. hankkeet versioidaan. Aikaisemmat versiot hankkeista on palautettavissa, muokattavissa yms. kaikki mikä versiointiin yleensä kuluu Liferay Workflowtakin kokeiltiin (vain tilasiirtymiä, vain uusimmasta versiosta) Lisäksi hankkeille tarjotaan kuvagalleria toiminnallisuus hyödyntäen Liferayn kuvagalleria portlettia. Ominaisuuden avulla hankkeiden etusivulle voidaan nostaa kuvia, sekä tarjotaan hankkeiden ylläpitäjille kuvien muokkaus/poisto toiminnallisuus julkiselle puolelle.
Luoneesta käyttäjästä tulee hankkeen ylläpitäjä Voi päästää muita kehittäjiksi tai ylläpitäjiksi Innokylä toteutettu LR 6.0 6.1:ssa tullut mahdollisuus säilyttää liitos sivupohjan ja luodun sivun välillä
Ajatus samankaltaisten näyttämisessä on kannustaa yhteistyöhön ja vähentää saman “ pyörän keksimistä ” uudestaan eri tahoilla Tähän tulossa jatkona parhaat käytännöt ja verstaat
Kuvassa näkyy suodattimet (ja osumia näillä ehdoilla), haku, tuloksia erityisvaatimuksia, ei voitu käyttää OpenSearch Taustatoteutuksessa käytössä AOP:ta
Asiasanojen lähteenä TERO-ontologia Verkkopalvelun ylläpitäjä pystyy päivittämään palvelun ontologiat hallintapaneelin kautta
Kategorioille voidaan asettaa ominaisuuksia Kuvassa mm. käännökset ja järjestysluku (käytetään hakusuodatinten esittämisessä) Verkkopalvelun ylläpitäjän hallittavissa (helpommin kuin properties-tiedostossa tai koodin seassa – tässä ollaan vähän siinä rajoilla tehdäkö räätälöitynä) - LR 6.1:ssa dynamic data lists ominaisuus