Publicidad
Publicidad

Más contenido relacionado

Similar a KLehtomaa_HAMK_loppuseminaari_31.10.2013(20)

Publicidad

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
  19. Käytäntö 19 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
  23. 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
  24. KIITOS ! Kysymyksiä … 24 Kari Lehtomaa / 2013 / HAMK
Publicidad