HRI-verkkopalvelu (www.hri.fi + ckan.hri.fi) TEKNINEN KUVAUS Helsinki Region Infoshare 28.9.2012
SISÄLLYSLUETTELO 1. Helsinki Region Infoshare yhteenveto 2. HRI-verkkopalvelu yleiskuvaus Verkkopalvelun määrittely ja käsitteet 3.1 Yleiskuva 3.2 Front-End palvelin 3.2.1 CKAN käsittelijä 3.3 Back-End palvelin 3.3.1 Front-End lähetys komponentti 3.3.2 Tietokannan dumppaus 3.3.3 Käytössä olevat pluginit 3.4 Suunnitellut laajennukset 4. Liitteet 4.1.1 CKAN 4.1.1.1 Mikä on CKAN? 4.1.1.2 CKAN-tietoaineiston kuvaus
1. Helsinki Region Infoshare yhteenveto Helsinki Region Infoshare -hankkeessa avataan Helsingin seutua koskevaa tietoa vaivattomasti ja nopeasti kaikkien saataville. Tietoa tarjotaan kansalaisten, yritysten, yliopistojen, korkeakoulujen, tutkimuslaitosten sekä kuntien hallinnon käyttöön. Tarjottava tieto on vapaasti ja maksutta hyödynnettävissä. Hankkeessa avataan pääosin tilastotietoa, joka kuvaa monipuolisesti erilaisia kaupunki-ilmiöitä, kuten elinoloja, taloutta ja hyvinvointia, työllisyyttä sekä liikkumista. Monet hankkeen puitteissa julkaistavat tietoaineistot ovat paikkatietopohjaisia. Hankkeessa rakennetaan verkkopalvelu, jonka avulla avoimet tietolähteet löytyvät helposti ja nopeasti. Käyttäjät voivat ladata tietoja ja käyttää niitä esimerkiksi päätöksentekoon, hyödyntää sovelluksissaan tai rakentaa tietojen pohjalta aivan uusia palveluja. Hankkeen taustalla on ajatus, että julkisen tiedon avaaminen lisää kansalaisten tietoa ja ymmärrystä asuinseutunsa kehityksestä. Tämä puolestaan parantaa siten kansalaisaktiivisuuden edellytyksiä. Avoin tiedon saatavuus voi myös synnyttää seudulle uusia palveluja ja liiketoimintaa sekä edistää tutkimusta ja kehitystoimintaa.
2. HRI-verkkopalvelu yleiskuvaus Verkkopalvelun määrittely ja käsitteet HRI-verkkopalvelulla tarkoitetaan tässä kokonaisuutta joka sisältää seuraavat pääkomponentit: loppukäyttäjille tarkoitettu verkkosivusto, verkkopalvelun front-end jonka avulla loppukäyttäjät löytävät haluamansa tiedon tietoaineistojen metatietokanta jonne verkkopalvelun ylläpitäjät päivittävät tietoaineistojen metatietoja HRI-verkkopalvelu Verkkopalvelu jonka avulla seutua koskevia tieto on löydettävissä, ladattavissa ja hyödynnettävissä. Loppukäyttäjien osallistaminen, palautteet tiedosta, ideat ja toiveet. Metatietokanta, avoimen datan katalogi
Metatietokanta Metatieto/metadata Datalähteet Muut back-end toiminnallisuudet tietokanta johon syötetään tietoaineistoja kuvaavia metatietoja. Loppukäyttäjä voi hakea verkkopalvelun avulla tietoaineistotietoja metatietokannasta. Tietoaineistoa ja sen lähdettä kuvaavaa tietoa joka sisältää mm. hakusanoja, aineistokuvauksen, tietolähteen sijainnin, aineiston ylläpitäjän yhteystiedot, aikasarjatiedot, maantieteellisen sijainnin Varsinaisten tietoaineistojen data sijaitsee verkkopalvelusta erillisillä, tyypillisesti tietoaineistojen ylläpitävien virastojen omilla palvelimilla. Verkkopalvelun sisällönhallintaan (muun kuin tietoai neistojen metatietoihin liittyvä) tarvittavat toiminnallisuudet kuten verkkosivuston sivujen ylläpito, keskustelut, palautteen keruu, wikit, blogit jne. 3. Teknologia 3.1 Yleiskuva Aiemmassa kappaleessa kuvattu yleinen prosessi etenee teknisesti julkaisun kannalta seuraavasti: 1. Tietoaineiston ylläpitäjä(t) julkaisee aineistot HRI CKAN datakatalogiin 2. CKAN luo jonotustehtävän jolla aineisto siirretään Wordpress palvelimelle 3. Aineisto siirretään Wordpress alustalle CKAN API / JSON muotoisena HTTP POST pyyntönä 4. Wordpress lukee JSON aineiston, tallentaa sen ja muuttaa sen muotoon jolla se julkaistaan www.hri.fi sivustolla
3.2 Front-End palvelin Verkkopalvelun edustapalvelin on rakennettu käyttäen Wordpress julkaisualustaa. Lisätietoa: http://www.wordpress.org Käytössä on mm. seuraavia Wordpress plugineja: Component Aikaa sitten Avatars Better recent comments widget Capability Manager Category Highlight Widget Description Kertoo kuluneen ajan artikkelin tai kommentin julkaisuajankohdan ja nykyhetken välillä. Perustuu alkuperäiseen Time Since -lisäosaan. Plugin jolla hallitaan julkisia ja ei-julkisia avatareja Alkuperäistä Wordpress viimeisimmät kommentit pluginia parempi versio. Pystyy kertomaan mm. mihin kirjoitetukseen kommentti tehtiin Käyttäjien oikeuksien ja roolien hallintaan Widget jonka avulla voidaan näyttää kuvaus ja kirjoitus
yhdestä kategoriasta CodeStyling Localization Facebook Like Box Platinum SEO Pack ShareThis Single link teaser widget Subscribe2 Tämän avulla voidaan hallita, editoida ja muokata WordPress kielikäännöstiedostoja (*.po / *.mo). Ei tarvita erillistä editoria tätä tarkoitusta varten. Tukee myös WPMU plugineja, jos WPMU versiot tunnistetaan. Facebook Like Box Widget on yhteisöllinen plugin joka mahdollistaa Facebook sivun omistajien kerätä tykkäyksiä omalta web-sivustolta. Tykkää laatikko mahdollistaa käyttäjien näkevän: kuinka monta käyttäjää on jo tykännyt sivusta, ja ketkä kavereista ovat tykänneet sivusta, lukea viimeisimpiä kirjoituksia sivulta ja tykätä sivusta yhdellä klikillä tarvitsematta vierailla sivulla. Kattava SEO (hakukoneoptimointi) ratkaisu Wordpress blogille Mahdollistaa vierailijoiden jakaa kirjoituksia/sivuja muiden kanssa. Tukee sähköpostia ja jakamista yhteisöllisiin palveluihin Tiiseri widget joka näyttää mikä vaan otsikon ja tekstin klikattavana linkkinä. Ilmoittaa sähköpostilistalle kun uusia kirjoituksia julkaistaan. 3.2.1 CKAN käsittelijä CKAN käsittelijä on WordPress alustan yhteydessä toimiva PHP-skripti joka tallentaa CKAN:in lähettämän sisällön tietokantaan. Tämän jälkeen käsittelijä luo IXR-clientin joka ottaa yhteyden WordPressin xml-rpc.php skriptillle. 3.3 Back-End palvelin HRI metatietokanta perustuu CKAN ohjelmistoon jota on muokattu Helsinki Region Infoshare hankkeen tarpeiden mukaisesti. Tätä kirjoitettaessa tuotannossa käytettävä CKAN ohjemistoversio on 1.7.0 Lisätietoa ja linkkejä CKAN ohjelmistoon seuraavassa kappaleessa. HRI CKAN palvelimen spesifinen ohjelmakoodi löytyy Bitbucketista: https://bitbucket.org/floapps/ckan-hrifi 3.3.1 Front-End lähetys komponentti CKAN käyttää työjono laajennusta back-end palvelimella joka lähettää muutokset taustaprosessille joka käsittelee ne kun joku muutos tapahtuu (esim. tietoaineiston metatietoja
muutetaan). Kun tämä tapahtuu niin lähetetään yksinkertainen HTTP POST pyyntö joka sisältää JSON-muotoisen sisällön joka kertoo front-end palvelimelle muutoksesta. Vain aktiivisten tietoaineistojen muokkaukset ja uusien aktiivisten tietoaineistojen luonti aiheuttaa päivityksen. 3.3.2 Tietokannan dumppaus Koko HRI CKAN metatietokanta dumpataan yhdeksi JSON muotoiseksi tiedostoksi päivittäin back-end palvelimelle, josta se siirretään automaattisesti front-end palvelimelle. Tiedosto on ladattavissa allaolevasta osoitteesta: http://www.hri.fi/fi/wp-content/uploads/ckan/hri-ckan-active-metadata-daily-output.json 3.3.3 Käytössä olevat pluginit HRI CKAN:issa on käytössä seuraavat plugin komponentit Plugin komponentti Kuvaus ja lisätietoa queue stats synchronous_search multiedit hri_harvester hrifi Työjono laajennus joka mahdollistaa asynkronisen siirron CKAN metatiedoille backend palvelimelta front-end palvelimelle https://github.com/okfn/ckanext-queue#readme Tarjoaa CKAN:iin tietoaineistoja ja niiden metadataa koskevat tilastosivut https://github.com/okfn/ckanext-stats Tämä kytkee päälle automaattisen hakuindeksoinnin. Tulevaisuudessa tämä tulee olemaan automaattisesti päällä ja osana CKAN vakio toiminnallisuutta Laajennus joka mahdollistaa useiden tietoaineistojen muokkaamisen kerralla http://wiki.ckan.org/list_of_extensions#multi_e dit Laajennus joka mahdollistaa HRI aktiivisten tietoaineistojen harvestoinnin toisiin CKAN pohjaisiin datakatalogeihin kuten esimerkiksi http://fi.thedatahub.org tai http://thedatahub.org Harvesterin ohjelmakoodi löytyy Bitbucketista: https://bitbucket.org/floapps/ckanhrifi/src/b3146e6358ee/ckanext/hrifi/hri_harvest er.py HRI laajennukset löytyvät bitbucketista /ckanext/hrifi hakemistosta
https://bitbucket.org/floapps/ckan-hrifi/src 3.4 Suunnitellut laajennukset Tietoaineistojen datan tallennus ei ole mahdollista Helsinki Region Infosharen metatietokantaan ja tämän takia on testattu palvelua laajennettavaksi kolmella eri laajennuksella, jotka hyödyntäisivät pilvipalvelua ja tarjoaisi mahdollisuuden siirtää tiedostojen varastointi pilvipalveluun. - Datastore / Data API http://docs.ckan.org/en/latest/datastore.html - Datastorer http://docs.ckan.org/en/latest/datastore.html - FileStore and File Uploads http://docs.ckan.org/en/latest/filestore.html Alla oleva kaavio kuvaa millä mallilla yllämainitut CKAN laajennukset toimivat yhteen. Metatietojen tallennus CKAN:issa tapahtuu samalla tavalla kuin nytkin mutta niiden tallennuksen yhteydessä tallennetaan myös itse tietoaineisto joko esimerkiksi paikalliselle levylle tai pilvipalveluun. Pilotoinnissa on käytetty Amazon AWS palvelua. 4. Liitteet 4.1.1 CKAN 4.1.1.1 Mikä on CKAN? CKAN = Comprehensive Knowledgde Archive Network http://www.ckan.org Open Knowledge Foundation:in ohjelmistoprojekti joka perustuu avoimeen lähdekoodiin. 2004 perustettu ei-kaupallinen säätiö Mahdollistaa tietoaineistojen metatietojen ylläpidon ja jakamisen/löytämisen
CKAN on käytössä esim. http://data.gov.uk, http://datadotgc.ca, http://it.ckan.net/, http://no.ckan.net/, http://de.ckan.net/, verkkopalvelujen metatietokantana CKAN ei ole itse tietoaineistojen varasto CKAN sisältää seuraavia ominaisuuksia o Wiki-tyylinen käyttäjänhalllinta o Haku (ohjelmallisesti tai web-käyttöliittymästä) o Ohjelmointirajapinnat jolla CKAN:ia voidaan käyttää taustajärjestelmänä o Versionhallinta paketille (muutosten vertailu jne.) o Statistiikka arkistoiduista paketeista o Käyttäjänhallinta ja käyttöoikeudet tietoaineistokohtaisten metatietojen ylläpitoon o Lokalisoitavuus eri kielille 4.1.1.2 CKAN-tietoaineiston kuvaus CKAN perustuu paketteihin joihin tallennetaan tietoaineiston kuvauksia nämä tallennetaan versioituvaan metatietokantaan CKAN:iin ei tallennetta tällä hetkellä eivätkä tietopaketit sisällä itse tietoaineistoa, ainoastaan niihin liittyvän metatiedon. Metatiedossa on linkki aineiston kuvaukseen ja itse aineistoon tai aineiston ohjelmointirajapintaan. Asentamalla aiemmin kuvatunlaisen Filestore/Datastore ratkaisun pystytään myös varsinaisten tietoaineiston hallinta ja tallennus toiminnallisuuden lisätä osaksi CKAN:ia