THL.fi - teknologiakartoitus Jussi Kurki 4.11.2011
Johdanto Tässä dokumentissa on kartoitettu tunnetuimpia ja parhaina pidettyjä sisällönhallintajärjestelmiä (Content management system, CMS) organisaatiosivuston (THL.fi) pohjaksi. Vaihtoehtoina on tarkasteltu seuraavia järjestelmiä: Liferay, Drupal, Confluence, XWiki, Joomla, Wordpress, Magnolia, Alfresco ja Sharepoint. Lopulliseen tarkempaan vertailuun on valittu Java-pohjaiset Liferay ja Magnolia sekä PHP-pohjainen Drupal. Vertailun rinnalle on otettu nykyinen Liferay- Alfresco-pohjainen räätälöity toteutus.
Järjestelmät lyhyesti Alla on listattu keskeiset heikkoudet ja vahvuudet kaikista järjestelmistä. Lopulliseen tarkempaan vertailuun valittiin Liferay, Magnolia ja Drupal. Muut järjestelmät jätettiin pois tiettyjen kriittisten heikkouksien perusteella. Liferay Liferay on Java-pohjainen avoimeen lähdekoodiin perustuva sisällönhallintajärjestelmä ja portaalialusta. + skaalautuu suuriin aineistoihin ja sivumääriin + kattava käyttäjäoikeuksien hallinta + alisivustojen tekeminen helppoa + tuki monikielisyydelle - sekava API erityisesti sisältömallin käsittelyssä - tuotantoon soveltuvia portlet-laajennoksia melko vähän (tarvitaan luultavasti räätälöintiä) - vain joitakin Liferay-palveluita tarjoavia yrityksiä Suomessa Magnolia Magnolia on Java-pohjainen avoimeen lähdekoodiin perustuva sisällönhallintajärjestelmä. + skaalautuu suurille sisällöille + tietomalli pohjautuu Javan JCR-standardiin + ylläpito- ja julkaisuversio eri palvelimilla (staging) + monikielisyys tuettu hyvin + selkeä dokumentaatio + toimii loogisesti - oppimiskynnys korkeahko - perinteishenkinen sivupuupohjainen lähestymistapa voi olla heikkous - Liferayta ja Drupalia pienempi kehittäjäyhteisö - ei julkaise sisältöä web service tai REST -rajapintojen kautta - ei juurikaan Magnolia-palveluita tarjoavia yrityksiä suomessa Drupal Drupal on PHP-pohjainen avoimeen lähdekoodiin perustuva sisällönhallintajärjestelmä. + erittäin paljon ominaisuuksia valmiina + hyvä tuki monikielisyydelle + skaalautuu suuriin aineistoihin ja sivumääriin + suuri ja aktiivinen kehittäjäyhteisö - paikoitellen vaikeakäyttöinen - ei tue kunnolla useiden sivustojen kokonaisuuksia
- ominaisuudet perustuvat pitkälti kolmansien osapuolten laajennoksiin, joita päivitetään ydintä hitaammin - kehitys hidastunut viime aikoina, uudet versiot bugisia Confluence wiki Confluence on Java-pohjainen kaupallinen wiki-alusta, joka on käytössä THL:n intranetissä (Terho). + järjestelmän käyttö on useimmille tuttua + laitoksessa kokemusta käytöstä + skaalautuu suuriin sisältöihin + sisältö versioitua + integrointimahdollisuudet intranettiin - ei tukea sisällön kääntämiselle (eri kielille pitää rakentaa omat sivustot) - sisällön rakenteellisuus tulee konventioiden kautta - nostonäkymien tekeminen työlästä - ei avointa lähdekoodia XWiki XWiki on Java-pohjainen avoimeen lähdekoodiin perustuva wiki- ja sovellusalusta. + wikin toimintaperiaate useimmille tuttu + näyttökerrosta helppo räätälöidä omille skripteillä (groovy, ruby,...) + erittäin monipuolinen tietomalli (sivut semanttisesti annotoitavissa, luokiteltavissa jne.) + kehityksessä noudatetaan ajantasaisia hyviä standardeja (git, maven, junit, DI) + skaalautuu suuriin sisältöihin + tukee kielistystä - oppimiskynnys korkea Joomla Joomla on PHP-pohjainen avoimeen lähdekoodiin perustuva sisällönhallintajärjestelmä. + ylläpito helppoa + käytettävyys hiottua + perustuu avoimeen lähdekoodiin - mahdollisia bugeja uudelleenkirjoituksen jäljiltä (v.1.6) - käyttäjäoikeuksien hallinta hankalaa - räätälöintien tekeminen drupalia hankalampaa - suorituskyky ei drupalin veroinen - ei skaalaudu kymmenille tuhansille sivuille Wordpress
Wordpress on PHP-pohjainen alunperin blogi-alustaksi suunniteltu avoimeen lähdekoodiin perustuva sisällönhallintajärjestelmä. + skaalautuu suurille sisältömäärille + perustuu avoimeen lähdekoodin + helppokäyttöiset ylläpitotyökalut - kielistystuki heikkoa - vähän laajennoksia valmiina Plone Plone on Python-pohjainen avoimeen lähdekoodiin perustuva sisällönhallintajärjestelmä. + Python on eleganttina pidetty kieli + hyvät rajapinnat räätälöintejä varten - vähän laajennoksia valmiina - Python-osaajia vaikeampi löytää kuin Java- tai PHP-osaajia Alfresco Alfresco on Java-pohjainen avoimeen lähdekoodiin perustuva dokumenttienhallintajärjestelmä. + dokumenttien elinkaari, metadata, oikeudet ym. hyvin hallittu + integroitavissa useiden erilaisten rajapintojen kautta - ei suunniteltu web-julkaisuun - vain joitakin Alfresco-palveluita tarjoavia yrityksiä suomessa - monimutkainen käyttää Sharepoint Sharepoint on Microsoftin intranet/extranet-portaalitoteutus, joka sisältää tiedostojen ja dokumenttien hallintaa sekä yhteisö- ja hakutyökaluja. + integroituu microsoftin tuotteisiin - maksullinen - suljettu toteutus - painopiste intranet/extranet-portaaleissa, ei niinkään julkisissa verkkosivuissa Valittujen järjestelmien tarkempi vertailu Kehittäjän näkökulmat 1. Tekniikka 2. Toteutuksen laatu
3. Sisältö 4. Ulkoistus 5. Hinta 6. Käytettävyys 7. Ylläpidettävyys Teknologiset vaatimukset 1. Web-sisällön julkaisu (teksti, kuva ja video) 2. Liitetiedostojen tuonti ja julkaisu 3. Dokumenttien ja kielistys 4. Dokumentin tyyppin määritys 5. Dokumentin asiasanoitus 6. Moninäkymähaku 7. Uutisvirrat ja automaattiset nostot Ylläpidolliset vaatimukset 1. Ylläpito 2. Navigaatiohierarkian hallinta 3. Käyttäjäoikeuksien hallinta (oikeuksien rajaus sivukohtaisesti) 4. Alisivustojen hallinta (esim. teemapalvelut)
Kehittäjän näkökulmat Liferay Magnolia Drupal Nykyinen Tekniikka Järjestelmä on Java-pohjainen. Javan käytöstä on laitoksessa runsaasti kokemusta. Järjestelmä on Java-pohjainen. Javan käytöstä on laitoksessa runsaasti kokemusta. Järjestelmä on PHPpohjainen. PHPjärjestelmistä on laitoksessa vähemmän kokemusta. Liferay ja Alfresco ovat Java-pohjaisia. Myös räätälöinnit on tehty Javakielellä. Toteutuksen laatu Liferayn tekninen toteutus on sekava ja sisältää virheitä. Toteutuksen laatua pidetään korkea. Ytimen kehitys on hidastunut arkkitehtuuristen ongelmien takia Toteutus sisältää runsaasti virheitä ja puutteita. Sisältö Tiedot tallennetaan relaatiotietokanta an. Tietosisältö on XML-muodossa, mikä vaikeuttaa tietokantadatan uudelleenkäyttöä. Tiedot tallennetaan JCRtietovarastoon. Varastona on oletuksena Apachen Jackrabbit, mutta myös esim. Alfrescoa voidaan käyttää. Tiedot tallennetaan relaatiotietokant aan ja tietomalli noudattaa perinteistä relaatiomallin nusta. Mallia pystynee käyttämään tarvittaessa Drupalin ohi. Tiedot tallennetaan Alfrescon verkkomaiseen tietomalliin, jota säilytetään relaatiotietokan nassa. Alfresco tarjoaa useita rajapintoja mallin käsittelyyn. Ulkoistus Liferay-osaamista tarjoaa Suomessa vain muutama yritys joskin tarjonta on parantunut viime vuosina. Javaosaaja pystyy perehtymään alustaan nopeasti. Magnolia osaamista on vähän tarjolla Suomessa. Java-osaaja pystyy perehtymään alustaan melko nopeasti. Drupalosaamista on runsaasti tarjolla ja ulkoistuksia saataneen Liferaytä edullisemmin. Liferay- ja Alfrescoosaamista ei ole juurikaan tarjolla. Räätälöinnit ovat kalliita ja kehittäjien perehdytykseen pitää varata aikaa. Hinta Yhteisöversio on ilmainen, yrityslisenssi alkaen 8000 e/v Yhteisöversio on ilmainen, yrityslisenssi alkaen 10 000 e/ v/kone Ei erillistä yritysversiota, ylläpito ja tukipalveluita saatavilla -
Käytettävyys Liferayn valmiissa työkaluissa on joitakin epäloogisuuksia ja tiedonsyötön käytettävyys ei ole yhtä hiottua kuin Drupalissa. Järjestelmän käyttötapa on yksinkertainen, mutta se ei muistuta muita järjestelmiä. Perehdytystä ja ohjeita tarvitaan. Drupalin työkalut toimivat varmemmin kuin Liferayn, mutta Drupalista löytyy epäloogisuuksia. Ulkoasujen asettelu on Liferaytä vaikeampaa. Räätälöidyt komponentit ovat puutteellisen toteutuksen vuoksi heikosti käytettäviä. Ylläpidettävyys Liferayn kehittyessä API-muutokset saattavat aiheuttaa työtä, sillä myös räätälöintejä pitää ylläpitää. Eri versioiden väliset kirjastoriip puvuudet saattavat tehdä laajennusko mponenttien ylläpidosta hankalaa. Drupalin päivittäminen saattaa olla hakalaa kolmannen osapuolen laajennuksista johtuen. Alfrescon ja Liferayn räätälöintien takia järjestelmän päivittäminen on hankalaa. Koodin ylläpitäminen ja kehittäminen on myös erittäin työlästä. Teknologiset vaatimukset Liferay Magnolia Drupal Nykyinen Web-sisällön julkaisu (teksti, kuva ja video) Web-sisällön julkaisu toimii, mutta esim. upotettuja videoita ei voi tuoda. Liitetiedostojen tuonti ja julkaisu Ylläpitokäyt töliittymä ei tue kunnolla liitetiedostoja. Dokumenttien ja kielistys Kielistysten tekeminen on helppoa. Kielistysten tekeminen on helppoa. Kielistys on kattava, mutta hieman sekavasti toteutettu. Kielistys on toteutettu epästandardilla tavalla tekemällä sivustosta kopio eri kielillä.
Dokumentin tyyppin määritys Dokumenteille voidaan määritellä sekä sivupohja että tyyppi. Osittain päällekkäiset määritykset saattavat hämmentää käyttäjää. Sivupohjan avulla voidaan määrittä sisällön tyyppi. Pohja ei kuitenkaan täysin määrää sisällön muotoa. Dokumenteille voidaan määritellä tyyppi ja siihen kuuluvat kentät. Dokumenttityypit on toteutettu puutteellisesti. Suurin osa sisällöstä menee luokkaan muu dokumentti. Dokumentin asiasanoitus taksonomioita ja tagausta. Ei tue ontologista asiasanoitusta ilman taksonomioita ja tagausta (EE). Ei tue ontologista asiasanoitusta ilman taksonomioita ja tagausta. Ei tue ontologista asiasanoitusta ilman ontologista asiasanoitusta. Moninäkymäha ku osittain toimivan esimerkkitoteutuk sen. Solrintegraation, jossa saattaa olla puutteita. moninäkymä hakua. (Solrintegraatio) Ei tue moninäkymähak ua. Uutisvirrat ja automaattiset nostot yksinkertaisia uutisvirtoja. Automaattiset nostot saattavat vaatia yksinkertaisia uutisvirtoja. Automaattiset nostot saattavat vaatia monimutkaisia useita ehtoja yhdisteleviä virtoja ja nostoja. yksinkertaisia virtoja (uutiset). Nostot tehdään manuaalisesti. Tapahtumakale nteri valmiin komponentin, mutta komponentin soveltuvuudesta THL.fi-sivustoon ei ole varmuutta. valmiin komponentin, mutta komponentin soveltuvuudesta THL.fi-sivustoon ei ole varmuutta. kehitysasteella olevan komponentin. Saattaa vaatia Tapahtumaka lenteria ei ole toteutettu. Ylläpidolliset vaatimukset Liferay Magnolia Drupal Nykyinen Ylläpitokäyttöliitt ymä kattavan män. kattavan män. kattavan män. Ylläpitokäytt öliittymässä (y-käli) on puutteita, joita täytyy kiertää
käyttämällä Alfrescon ja Liferayn miä. Navigaatiohierar kian hallinta Syvän sivuhierarkian hallinta voi vaatia Syvätkin hierakiat jäsentyvät selkesti. Syvän sivuhierarkian hallinta voi vaatia Syvän sivuhierarkian hallinta on hankalaa. Käyttäjäoikeu ksien hallinta (oikeuksien rajaus sivukohtaisesti) kattavan monitasoisen oikeuksien hallinnan. Hallinnan käyttö on kuitenkin monimutkaista. kattavan monitasoisen oikeuksien hallinnan, joka on helppokäyttöinen. Oletusasennus sisältää kolmitasoisen oikeuksien hallinnan (käyttäjä, tiedon syöttäjä, ylläpitäjä). kolmitasoisen oikeuksien hallinnan, mutta käytännössä päivittäjä tarvitsee täysiä ylläpitooikeuksia. Alisivustojen hallinta (esim. teemapalvelut) Alisivustojen luominen onnistuu mästä. Alisivustojen luominen onnistuu mästä. Alisivustojen luominen on mahdollista, mutta hankalaa. Alisivustoja luodaan kopioimalla projekti.