SlideShare uma empresa Scribd logo
1 de 24
Skaalautuvan tietokannan suunnittelu ja toteutus
hankintailmoitusportaaliin.
Kari Lehtomaa / TRTKAI10
Opinnäytetyön loppuseminaari-esitys 31.10.2013
Tietojenkäsittelyn koulutusohjelma /HAMK /2013

1
Kari Lehtomaa / 2013 / HAMK
Esitys - sisältö
Työn kuvaus ja toimeksiantajan esittely
Työhön liittyvä teoria
Hankintailmoitus
NoSQL-tietokannat
Node.js-kehitysympäristö
Työn käytännön osuus
Yhteenveto
Työn tulokset

2
Kari Lehtomaa / 2013 / HAMK
Työn kuvaus
Sovelluskehitystoimeksianto
Laadullista tutkimusta
NoSQL-tietokantojen ominaisuuksia
Tekniikkaan painottunut työ
Toimeksiantaja
Seravo Oy / Tampere, http://www.seravo.fi
Avoimen lähdekoodin ohjelmistot ja palvelut
Viikottaiset palaverit työn etenemisestä
Kysymykset
NoSQL-tietokantojen keskeisimmät käsitteet ja toimintaperiaatteet,
Riakin ja Couchbasen sopivuus palvelua varten
Vaadittujen toimintojen toteutus Node.js-ympäristöllä.

3
Kari Lehtomaa / 2013 / HAMK
Työn kuvaus
Työn tehtävät
NoSQL-tietokantojen periaatteet
Perehtyminen Node.js-ohjelmointiin.
Käytännön osuuden tehtävät
Hankintailmoitusportaali
Tietokannan valitseminen, Riak / Couchbase
Noutotoiminnon toteutus
Hakutoiminnon toteutus
Ilmoitustoiminnon toteutus

Ajankohtaisuus
Uusia teknologioita
NoSQL suomessa vielä varsin tuntematon käsite
4
Kari Lehtomaa / 2013 / HAMK
Työn kuvaus / Lähdeaineisto
Pääosin Internet-lähteitä
Blogit, valmistajien kotisivut, tutkimukset
Vähän ajantasaista kirjallisuutta
Tieto muuttuu nopeasti
Oikeellisuus varmistettiin käyttämällä useita lähteitä
Vähän suomenkielistä materiaalia
Sovelluskehitysvaiheessa HILMA-portaalin
rajapintakuvaukset

5
Kari Lehtomaa / 2013 / HAMK
Teoria - Hankintailmoitus
Julkinen hankinta
Valtiollisten ja kunnallisten tahojen tekemiä hankintoja
Tehdään lainsäädännön mukaan avoimella kilpailulla ja
hankintamenettelyllä.
Tiettyä arvoa suuremmat hankinnat täytyy ilmoittaa
HILMAssa.
HILMA, virallinen portaali (http://www.hankintailmoitukset.fi)
Työ- ja elinkeinoministeriön tarjoama palvelu
Sisältää kansallisen ja EU-kynnysarvon ylittävät hankinnat.
Voimassaolevien ilmoitusten haku ja selailu
Useita eri tyyppisiä, esim.
Ennakkoilmoitus, hankintailmoitus ja suunnittelukilpailun ilmoitus, jne

6
Kari Lehtomaa / 2013 / HAMK
Teoria - Hankintailmoitus
HILMAn puutteet
Toiminnoiltaan hyvin yksinkertainen
Ei vanhojen ilmoitusten selailua
Ei ryhmätyötoimintoja, kommentointia jne.
Ei voi tilata etukäteen hälytyksiä tulevista käyttäjää
kiinnostavista ilmoituksista
Uusi portaali, HTML5
Skaalautuva tietokanta
Kehittyneet hakutoiminnot
Käyttäjäkohtaiset ilmoitukset käyttäjää kiinnostavista
hankinnoista käyttöliittymässä ja sähköpostitse
Ryhmätyöominaisuudet, kommentointi
7
Kari Lehtomaa / 2013 / HAMK
Teoria - Hankintailmoitus

8
Kari Lehtomaa / 2013 / HAMK
Teoria - NoSQL
Suurten tietomäärien tietokantoja
Uusi käsite, vasta vuodesta 2009
Satoja eri tuotteita, kymmenkunta aktiivista.
Määritys:
Ei-relaatio, hajautettu, horisontaalisti skaalautuva
Avoimen lähdekoodin tuotteita
Käyttö
Pilvipalvelut
Globaalit verkkosovellukset
Google, Amazon, Facebook, Paypal....

9
Kari Lehtomaa / 2013 / HAMK
Teoria - NoSQL
Eivät korvaa relaatiotietokantoja vaan täydentää
Yksinkertainen rakenne
Ei SQL:ää, ei transaktioita, ei indeksejä
Vähemmän konfigurointia
Skaalaus ja hajautus yksinkertaista
Nopea tiedon tallennus ja luku
Joustava tietorakenne
Ei kiinteää rakennetta vrt. SQL taulut
Ketterät menetelmät

10
Kari Lehtomaa / 2013 / HAMK
Teoria - NoSQL
Eri tyyppejä tiedon muodon mukaan
Avain-arvo / KV
Dokumentti
Sarake
Verkko
Tallennustavan mukaan
Levy
Muisti
Levy + muisti

11
Kari Lehtomaa / 2013 / HAMK
Teoria - NoSQL
Ominaisuudet
Joustava
Skaalautuva
Suorituskykyinen
Korkea käytettävyys
Skaalautuvuus ja hajautus
Horisontaalinen vrt. vertikaalinen

Eheysmalli BASE, vrt relaatio: ACID
Saatavuus, tietoa pitää aina pystyä lisäämään ja lukemaan.
Osituksen sietokyky, eli järjestelmä toimii, vaikka kaikki solmukoneet ei
vastaa
Tiedot eivät ole aina oikeellisia. Ne eivät ole välttämättä ajantasalla
kaikissa solmukoneissa samaan aikaan.

12
Kari Lehtomaa / 2013 / HAMK
Teoria - NoSQL
Tiedonhaku
Avaimella
Map/Reduce
Menetelmien vapaus
Rajapinta
Yleisesti HTTP-REST
Ohjelmointikielten tuki
Java, Python, PHP, C# jne.

13
Kari Lehtomaa / 2013 / HAMK
Teoria - NoSQL
Riak
Avain-arvotietokanta
Avaimet muistissa, tieto levyllä
Haku
Map/Reduce
Lucene-haku: “nimi:Kari OR nimi:Ka*”
Couchbase
Dokumenttitietokanta
Avaimet muistissa ja tieto levyllä tai molemmat muistissa
Haku
Map/Reduce

14
Kari Lehtomaa / 2013 / HAMK
Teoria – Node.js
Google V8-javaskripti-pohjainen palvelimissa käytettävä
ohjelmointiympäristö
Asynkroninen tapahtumapohjainen toiminta
Takaisinkutsufunktiot
Kutsuva koodi ei jää odottamaan kutsutun funktion
loppumista
Nopea – tehokas - skaalautuva
Laaja lisäkirjastovalikoima
Verkko-ohjelmointi
Palvelin ja asiakas
Web-palvelin luodaan sovelluksen sisään
15
Kari Lehtomaa / 2013 / HAMK
Käytäntö
Avoimen lähdekoodin ohjelmistot
Kehitysympäristö
Ubuntu Linux
Versionhallinta Git / Github
Tietokannan valinta
Node.js tuki
JSON-tuki
Riak
Käyttö toisessa projektissa
Couchbasen Node.js-lisäkirjasto ongelma
Couchbase selkeämpi ja yksinkertaisempi
16
Kari Lehtomaa / 2013 / HAMK
Käytäntö
Noutotoiminto
Toiminta
Hankintailmoitusten lataus ja tallennus halutulla päivämäärällä
Liitetiedostojen lataus ja tallennus
Hankintailmoitusten tietojen tallennus tietokantaan.

HILMA-palvelun HTTP-rajapinta
XML raaka-aineisto, monimutkaisuus
Node.js:n liian nopea toiminta ilmoitusten latauksessa ja
tiedostojen tallennuksessa
Asynkroninen toiminta
Paljon yhtäaikaisia HTTP-latauksia ja tiedostotoimintoja
Sovelluksen kaatuminen.
Ratkaisuna rekursiiviset funktiokutsut

17
Kari Lehtomaa / 2013 / HAMK
Käytäntö
Hakutoiminto
Monimutkainen Map/Reduce-koodi
Hierarkisten toimiala- ja aluekoodien monimutkaisuus
Ilmoitustoiminto
Käyttäjä voi merkitä hakutoiminnon avulla itseään
kiinnostavia tulevia ilmoituksia.
Hälytystoiminto
käyttöliittymä ja sähköposti

Toteutus noutotoiminnossa
Uusien ilmoitusten osuvuus käyttäjän tekemään määritykseen.

Hakukoodin uudelleenkäyttö

18
Kari Lehtomaa / 2013 / HAMK
Käytäntö

19
Kari Lehtomaa / 2013 / HAMK
Yhteenveto - tulokset
Paljon eri teknologioita ja käsitteitä
HTML5, AJAX, XML, XPath, JSON, HTTP, REST....
Twitter bootstrap, Jquery, JqueryUI

Uutta oppia NoSQL-tietokannoista
Erittäin syvällistä teoriaa
Helppous
Saman tietomallin käyttö koodissa ja tietokannassa
Tietokanta joustaa sovelluksen mukaan
Skaalautuminen, uuden tietokantapalvelimen lisäys
Sopivuus
Eri tietokantoja eri käyttöön

20
Kari Lehtomaa / 2013 / HAMK
Yhteenveto - tulokset
Node.js
Tehokkuus
Tuttu Javaskripti
Sama kieli palvelin - selain
Periaatteessa helppoa, käytännössä ei välttämättä
Vaatii omaa ajattelutapaa
Ongelmat
Asynkronisuus - noutotoiminto
Dokumentaation puutteellisuus ja keskeneräisyys
Koodin sekavuus

21
Kari Lehtomaa / 2013 / HAMK
Yhteenveto - tulokset
Erittäin mielenkiintoinen kehitysprojekti
Tarvittavat asiat ja ongelmakohdat onnistuttiin selvittämään
Paljon uutta oppia , teoriat , käytännöt...
Vaadittu toteutus saatiin tehtyä
Bonuksena hajautuksen testaus
Työ saatiin pysymään suunnitellussa rajauksessa ja
aikataulussa
Sovellus ei ole vielä valmis tuotantoon
Hakutoiminnon optimointi
Haku liitetiedostojen sisältä

22
Kari Lehtomaa / 2013 / HAMK
Lähteitä
Hankintailmoitus
http://www.hankintailmoitukset.fi/fi/

NoSQL
http://docs.basho.com/riak/latest/
http://www.couchbase.com/why-nosql/nosql-database
http://nosql-database.org/

Node.js
http://nodejs.org/
http://www.toptal.com/nodejs/why-the-hell-would-i-use-node-js

Esitys
http://www.slideshare.net/karilehtomaa/klehtomaahamklopp
useminaari31102013
23
Kari Lehtomaa / 2013 / HAMK
KIITOS !
Kysymyksiä …

24
Kari Lehtomaa / 2013 / HAMK

Mais conteúdo relacionado

Destaque

Yemi 131027114508-phpapp01
Yemi 131027114508-phpapp01Yemi 131027114508-phpapp01
Yemi 131027114508-phpapp01
yemijelsen
 
Palabras de sabiduria 08
Palabras de sabiduria 08 Palabras de sabiduria 08
Palabras de sabiduria 08
chucho1943
 
四健食育小學堂 新北梯分享
四健食育小學堂 新北梯分享四健食育小學堂 新北梯分享
四健食育小學堂 新北梯分享
Taiwan4H-slide
 
Changing the Tires While Driving the Car: Leading in Times of Change
Changing the Tires While Driving the Car: Leading in Times of ChangeChanging the Tires While Driving the Car: Leading in Times of Change
Changing the Tires While Driving the Car: Leading in Times of Change
Lisa Colton
 
No creo circunstancia creo circunstancias
No creo circunstancia creo circunstanciasNo creo circunstancia creo circunstancias
No creo circunstancia creo circunstancias
Jose Cabrera
 
Anieta Lofton Resume 1
Anieta Lofton Resume 1Anieta Lofton Resume 1
Anieta Lofton Resume 1
Anieta Lofton
 

Destaque (16)

Yemi 131027114508-phpapp01
Yemi 131027114508-phpapp01Yemi 131027114508-phpapp01
Yemi 131027114508-phpapp01
 
Con la varietà Atlantic Giant potete ottenere zucche di enormi dimensioni
Con la varietà Atlantic Giant potete ottenere zucche di enormi dimensioniCon la varietà Atlantic Giant potete ottenere zucche di enormi dimensioni
Con la varietà Atlantic Giant potete ottenere zucche di enormi dimensioni
 
Palabras de sabiduria 08
Palabras de sabiduria 08 Palabras de sabiduria 08
Palabras de sabiduria 08
 
四健食育小學堂 新北梯分享
四健食育小學堂 新北梯分享四健食育小學堂 新北梯分享
四健食育小學堂 新北梯分享
 
Bab 4
Bab 4Bab 4
Bab 4
 
Planos de una imagen
Planos de una imagenPlanos de una imagen
Planos de una imagen
 
Changing the Tires While Driving the Car: Leading in Times of Change
Changing the Tires While Driving the Car: Leading in Times of ChangeChanging the Tires While Driving the Car: Leading in Times of Change
Changing the Tires While Driving the Car: Leading in Times of Change
 
elen
elenelen
elen
 
Em um relacionamento sério com a sua marca - Palestra Prof. Pedro Cordier
Em um relacionamento sério com a sua marca - Palestra Prof. Pedro CordierEm um relacionamento sério com a sua marca - Palestra Prof. Pedro Cordier
Em um relacionamento sério com a sua marca - Palestra Prof. Pedro Cordier
 
Pendapat Para Ahli Tentang Perilaku Konsumen (Stop Motion Versi)
Pendapat Para Ahli Tentang Perilaku Konsumen (Stop Motion Versi)Pendapat Para Ahli Tentang Perilaku Konsumen (Stop Motion Versi)
Pendapat Para Ahli Tentang Perilaku Konsumen (Stop Motion Versi)
 
Quanto si spende in Italia nel settore della sanità?
Quanto si spende in Italia nel settore della sanità?Quanto si spende in Italia nel settore della sanità?
Quanto si spende in Italia nel settore della sanità?
 
No creo circunstancia creo circunstancias
No creo circunstancia creo circunstanciasNo creo circunstancia creo circunstancias
No creo circunstancia creo circunstancias
 
Anieta Lofton Resume 1
Anieta Lofton Resume 1Anieta Lofton Resume 1
Anieta Lofton Resume 1
 
Asamblea inicial padres 3º curso 15.16
Asamblea inicial padres 3º curso 15.16Asamblea inicial padres 3º curso 15.16
Asamblea inicial padres 3º curso 15.16
 
Cómo responder a los eventos de París?
Cómo responder a los eventos de París?Cómo responder a los eventos de París?
Cómo responder a los eventos de París?
 
El milagro de san martín de porres michael salas vega
El milagro de san martín de porres   michael salas vegaEl milagro de san martín de porres   michael salas vega
El milagro de san martín de porres michael salas vega
 

Semelhante a KLehtomaa_HAMK_loppuseminaari_31.10.2013

WOA: Web APIt
WOA: Web APItWOA: Web APIt
WOA: Web APIt
Exove
 
Svenska.yle.fi:n linkitetty semanttinen data
Svenska.yle.fi:n linkitetty semanttinen dataSvenska.yle.fi:n linkitetty semanttinen data
Svenska.yle.fi:n linkitetty semanttinen data
Micke Hindsberg
 

Semelhante a KLehtomaa_HAMK_loppuseminaari_31.10.2013 (20)

Mitä on big data, Aamiaistilaisuus 13.03.2012
Mitä on big data, Aamiaistilaisuus 13.03.2012Mitä on big data, Aamiaistilaisuus 13.03.2012
Mitä on big data, Aamiaistilaisuus 13.03.2012
 
Big Data -esitys, Arcada ammattikorkeakoulu
Big Data -esitys, Arcada ammattikorkeakouluBig Data -esitys, Arcada ammattikorkeakoulu
Big Data -esitys, Arcada ammattikorkeakoulu
 
Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhtei...
Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhtei...Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhtei...
Datajalostamo-seminaari 5.6.2014: Sovelluskehittäjät ja data – kehittäjäyhtei...
 
WOA: Web APIt
WOA: Web APItWOA: Web APIt
WOA: Web APIt
 
Sovellusmodernisoinnin webinaarisarja, osa 2: liiketoimintasovelluksen modern...
Sovellusmodernisoinnin webinaarisarja, osa 2: liiketoimintasovelluksen modern...Sovellusmodernisoinnin webinaarisarja, osa 2: liiketoimintasovelluksen modern...
Sovellusmodernisoinnin webinaarisarja, osa 2: liiketoimintasovelluksen modern...
 
Case Ruukki Constructions: Tehokas tiedon keräys, jalostaminen ja visualisoin...
Case Ruukki Constructions: Tehokas tiedon keräys, jalostaminen ja visualisoin...Case Ruukki Constructions: Tehokas tiedon keräys, jalostaminen ja visualisoin...
Case Ruukki Constructions: Tehokas tiedon keräys, jalostaminen ja visualisoin...
 
Tiedon avaaminen käytännössa
Tiedon avaaminen käytännössaTiedon avaaminen käytännössa
Tiedon avaaminen käytännössa
 
Azure JKL Keynote 9.11.2017
Azure JKL Keynote 9.11.2017Azure JKL Keynote 9.11.2017
Azure JKL Keynote 9.11.2017
 
Talent Base: Mitä on Big Data - teknologianäkökulma Big Datan hallintaan
Talent Base: Mitä on Big Data - teknologianäkökulma Big Datan hallintaanTalent Base: Mitä on Big Data - teknologianäkökulma Big Datan hallintaan
Talent Base: Mitä on Big Data - teknologianäkökulma Big Datan hallintaan
 
Vincit Teatime 2015.2 - Aleksi Häkli: SaaSiin pa(i)nostusta
Vincit Teatime 2015.2 - Aleksi Häkli: SaaSiin pa(i)nostustaVincit Teatime 2015.2 - Aleksi Häkli: SaaSiin pa(i)nostusta
Vincit Teatime 2015.2 - Aleksi Häkli: SaaSiin pa(i)nostusta
 
Pilvet nyt ja tulevaisuudessa – hypestä hyötyihin
Pilvet nyt ja tulevaisuudessa – hypestä hyötyihinPilvet nyt ja tulevaisuudessa – hypestä hyötyihin
Pilvet nyt ja tulevaisuudessa – hypestä hyötyihin
 
Avoindata workshop tekninen_yleiskuvaus
Avoindata workshop tekninen_yleiskuvausAvoindata workshop tekninen_yleiskuvaus
Avoindata workshop tekninen_yleiskuvaus
 
Private Cloud ja Dynamic Datacenter Toolkit
Private Cloud ja Dynamic Datacenter ToolkitPrivate Cloud ja Dynamic Datacenter Toolkit
Private Cloud ja Dynamic Datacenter Toolkit
 
Uusi MIF -kiertue. Kai Lehtonen: IT –infrastruktuurin uudistaminen IaaS –pilv...
Uusi MIF -kiertue. Kai Lehtonen: IT –infrastruktuurin uudistaminen IaaS –pilv...Uusi MIF -kiertue. Kai Lehtonen: IT –infrastruktuurin uudistaminen IaaS –pilv...
Uusi MIF -kiertue. Kai Lehtonen: IT –infrastruktuurin uudistaminen IaaS –pilv...
 
Suomen eduroam-juuripalvelun uudistukset
Suomen eduroam-juuripalvelun uudistuksetSuomen eduroam-juuripalvelun uudistukset
Suomen eduroam-juuripalvelun uudistukset
 
Suomen eduroam-juuripalvelun uudistukset
Suomen eduroam-juuripalvelun uudistuksetSuomen eduroam-juuripalvelun uudistukset
Suomen eduroam-juuripalvelun uudistukset
 
Svenska.yle.fi:n linkitetty semanttinen data
Svenska.yle.fi:n linkitetty semanttinen dataSvenska.yle.fi:n linkitetty semanttinen data
Svenska.yle.fi:n linkitetty semanttinen data
 
Sähköinen työpöytä - suunnittelu, toteutus, hankehallinta
Sähköinen työpöytä - suunnittelu, toteutus, hankehallintaSähköinen työpöytä - suunnittelu, toteutus, hankehallinta
Sähköinen työpöytä - suunnittelu, toteutus, hankehallinta
 
Pilvipalvelut : AWS Elastic MapReduce
Pilvipalvelut : AWS Elastic MapReducePilvipalvelut : AWS Elastic MapReduce
Pilvipalvelut : AWS Elastic MapReduce
 
Palveluverkkosuunnitelman laatiminen
Palveluverkkosuunnitelman laatiminenPalveluverkkosuunnitelman laatiminen
Palveluverkkosuunnitelman laatiminen
 

KLehtomaa_HAMK_loppuseminaari_31.10.2013

  • 1. Skaalautuvan tietokannan suunnittelu ja toteutus hankintailmoitusportaaliin. Kari Lehtomaa / TRTKAI10 Opinnäytetyön loppuseminaari-esitys 31.10.2013 Tietojenkäsittelyn koulutusohjelma /HAMK /2013 1 Kari Lehtomaa / 2013 / HAMK
  • 2. Esitys - sisältö Työn kuvaus ja toimeksiantajan esittely Työhön liittyvä teoria Hankintailmoitus NoSQL-tietokannat Node.js-kehitysympäristö Työn käytännön osuus Yhteenveto Työn tulokset 2 Kari Lehtomaa / 2013 / HAMK
  • 3. Työn kuvaus Sovelluskehitystoimeksianto Laadullista tutkimusta NoSQL-tietokantojen ominaisuuksia Tekniikkaan painottunut työ Toimeksiantaja Seravo Oy / Tampere, http://www.seravo.fi Avoimen lähdekoodin ohjelmistot ja palvelut Viikottaiset palaverit työn etenemisestä Kysymykset NoSQL-tietokantojen keskeisimmät käsitteet ja toimintaperiaatteet, Riakin ja Couchbasen sopivuus palvelua varten Vaadittujen toimintojen toteutus Node.js-ympäristöllä. 3 Kari Lehtomaa / 2013 / HAMK
  • 4. Työn kuvaus Työn tehtävät NoSQL-tietokantojen periaatteet Perehtyminen Node.js-ohjelmointiin. Käytännön osuuden tehtävät Hankintailmoitusportaali Tietokannan valitseminen, Riak / Couchbase Noutotoiminnon toteutus Hakutoiminnon toteutus Ilmoitustoiminnon toteutus Ajankohtaisuus Uusia teknologioita NoSQL suomessa vielä varsin tuntematon käsite 4 Kari Lehtomaa / 2013 / HAMK
  • 5. Työn kuvaus / Lähdeaineisto Pääosin Internet-lähteitä Blogit, valmistajien kotisivut, tutkimukset Vähän ajantasaista kirjallisuutta Tieto muuttuu nopeasti Oikeellisuus varmistettiin käyttämällä useita lähteitä Vähän suomenkielistä materiaalia Sovelluskehitysvaiheessa HILMA-portaalin rajapintakuvaukset 5 Kari Lehtomaa / 2013 / HAMK
  • 6. Teoria - Hankintailmoitus Julkinen hankinta Valtiollisten ja kunnallisten tahojen tekemiä hankintoja Tehdään lainsäädännön mukaan avoimella kilpailulla ja hankintamenettelyllä. Tiettyä arvoa suuremmat hankinnat täytyy ilmoittaa HILMAssa. HILMA, virallinen portaali (http://www.hankintailmoitukset.fi) Työ- ja elinkeinoministeriön tarjoama palvelu Sisältää kansallisen ja EU-kynnysarvon ylittävät hankinnat. Voimassaolevien ilmoitusten haku ja selailu Useita eri tyyppisiä, esim. Ennakkoilmoitus, hankintailmoitus ja suunnittelukilpailun ilmoitus, jne 6 Kari Lehtomaa / 2013 / HAMK
  • 7. Teoria - Hankintailmoitus HILMAn puutteet Toiminnoiltaan hyvin yksinkertainen Ei vanhojen ilmoitusten selailua Ei ryhmätyötoimintoja, kommentointia jne. Ei voi tilata etukäteen hälytyksiä tulevista käyttäjää kiinnostavista ilmoituksista Uusi portaali, HTML5 Skaalautuva tietokanta Kehittyneet hakutoiminnot Käyttäjäkohtaiset ilmoitukset käyttäjää kiinnostavista hankinnoista käyttöliittymässä ja sähköpostitse Ryhmätyöominaisuudet, kommentointi 7 Kari Lehtomaa / 2013 / HAMK
  • 8. Teoria - Hankintailmoitus 8 Kari Lehtomaa / 2013 / HAMK
  • 9. Teoria - NoSQL Suurten tietomäärien tietokantoja Uusi käsite, vasta vuodesta 2009 Satoja eri tuotteita, kymmenkunta aktiivista. Määritys: Ei-relaatio, hajautettu, horisontaalisti skaalautuva Avoimen lähdekoodin tuotteita Käyttö Pilvipalvelut Globaalit verkkosovellukset Google, Amazon, Facebook, Paypal.... 9 Kari Lehtomaa / 2013 / HAMK
  • 10. Teoria - NoSQL Eivät korvaa relaatiotietokantoja vaan täydentää Yksinkertainen rakenne Ei SQL:ää, ei transaktioita, ei indeksejä Vähemmän konfigurointia Skaalaus ja hajautus yksinkertaista Nopea tiedon tallennus ja luku Joustava tietorakenne Ei kiinteää rakennetta vrt. SQL taulut Ketterät menetelmät 10 Kari Lehtomaa / 2013 / HAMK
  • 11. Teoria - NoSQL Eri tyyppejä tiedon muodon mukaan Avain-arvo / KV Dokumentti Sarake Verkko Tallennustavan mukaan Levy Muisti Levy + muisti 11 Kari Lehtomaa / 2013 / HAMK
  • 12. Teoria - NoSQL Ominaisuudet Joustava Skaalautuva Suorituskykyinen Korkea käytettävyys Skaalautuvuus ja hajautus Horisontaalinen vrt. vertikaalinen Eheysmalli BASE, vrt relaatio: ACID Saatavuus, tietoa pitää aina pystyä lisäämään ja lukemaan. Osituksen sietokyky, eli järjestelmä toimii, vaikka kaikki solmukoneet ei vastaa Tiedot eivät ole aina oikeellisia. Ne eivät ole välttämättä ajantasalla kaikissa solmukoneissa samaan aikaan. 12 Kari Lehtomaa / 2013 / HAMK
  • 13. Teoria - NoSQL Tiedonhaku Avaimella Map/Reduce Menetelmien vapaus Rajapinta Yleisesti HTTP-REST Ohjelmointikielten tuki Java, Python, PHP, C# jne. 13 Kari Lehtomaa / 2013 / HAMK
  • 14. Teoria - NoSQL Riak Avain-arvotietokanta Avaimet muistissa, tieto levyllä Haku Map/Reduce Lucene-haku: “nimi:Kari OR nimi:Ka*” Couchbase Dokumenttitietokanta Avaimet muistissa ja tieto levyllä tai molemmat muistissa Haku Map/Reduce 14 Kari Lehtomaa / 2013 / HAMK
  • 15. Teoria – Node.js Google V8-javaskripti-pohjainen palvelimissa käytettävä ohjelmointiympäristö Asynkroninen tapahtumapohjainen toiminta Takaisinkutsufunktiot Kutsuva koodi ei jää odottamaan kutsutun funktion loppumista Nopea – tehokas - skaalautuva Laaja lisäkirjastovalikoima Verkko-ohjelmointi Palvelin ja asiakas Web-palvelin luodaan sovelluksen sisään 15 Kari Lehtomaa / 2013 / HAMK
  • 16. Käytäntö Avoimen lähdekoodin ohjelmistot Kehitysympäristö Ubuntu Linux Versionhallinta Git / Github Tietokannan valinta Node.js tuki JSON-tuki Riak Käyttö toisessa projektissa Couchbasen Node.js-lisäkirjasto ongelma Couchbase selkeämpi ja yksinkertaisempi 16 Kari Lehtomaa / 2013 / HAMK
  • 17. Käytäntö Noutotoiminto Toiminta Hankintailmoitusten lataus ja tallennus halutulla päivämäärällä Liitetiedostojen lataus ja tallennus Hankintailmoitusten tietojen tallennus tietokantaan. HILMA-palvelun HTTP-rajapinta XML raaka-aineisto, monimutkaisuus Node.js:n liian nopea toiminta ilmoitusten latauksessa ja tiedostojen tallennuksessa Asynkroninen toiminta Paljon yhtäaikaisia HTTP-latauksia ja tiedostotoimintoja Sovelluksen kaatuminen. Ratkaisuna rekursiiviset funktiokutsut 17 Kari Lehtomaa / 2013 / HAMK
  • 18. Käytäntö Hakutoiminto Monimutkainen Map/Reduce-koodi Hierarkisten toimiala- ja aluekoodien monimutkaisuus Ilmoitustoiminto Käyttäjä voi merkitä hakutoiminnon avulla itseään kiinnostavia tulevia ilmoituksia. Hälytystoiminto käyttöliittymä ja sähköposti Toteutus noutotoiminnossa Uusien ilmoitusten osuvuus käyttäjän tekemään määritykseen. Hakukoodin uudelleenkäyttö 18 Kari Lehtomaa / 2013 / HAMK
  • 20. Yhteenveto - tulokset Paljon eri teknologioita ja käsitteitä HTML5, AJAX, XML, XPath, JSON, HTTP, REST.... Twitter bootstrap, Jquery, JqueryUI Uutta oppia NoSQL-tietokannoista Erittäin syvällistä teoriaa Helppous Saman tietomallin käyttö koodissa ja tietokannassa Tietokanta joustaa sovelluksen mukaan Skaalautuminen, uuden tietokantapalvelimen lisäys Sopivuus Eri tietokantoja eri käyttöön 20 Kari Lehtomaa / 2013 / HAMK
  • 21. Yhteenveto - tulokset Node.js Tehokkuus Tuttu Javaskripti Sama kieli palvelin - selain Periaatteessa helppoa, käytännössä ei välttämättä Vaatii omaa ajattelutapaa Ongelmat Asynkronisuus - noutotoiminto Dokumentaation puutteellisuus ja keskeneräisyys Koodin sekavuus 21 Kari Lehtomaa / 2013 / HAMK
  • 22. Yhteenveto - tulokset Erittäin mielenkiintoinen kehitysprojekti Tarvittavat asiat ja ongelmakohdat onnistuttiin selvittämään Paljon uutta oppia , teoriat , käytännöt... Vaadittu toteutus saatiin tehtyä Bonuksena hajautuksen testaus Työ saatiin pysymään suunnitellussa rajauksessa ja aikataulussa Sovellus ei ole vielä valmis tuotantoon Hakutoiminnon optimointi Haku liitetiedostojen sisältä 22 Kari Lehtomaa / 2013 / HAMK
  • 24. KIITOS ! Kysymyksiä … 24 Kari Lehtomaa / 2013 / HAMK