message passing & nosql (in finnish / suomeksi)

Post on 17-Dec-2014

523 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

F# käyttäjäryhmän esitys Lyhyesti monista ajankohtaisista aiheista. Diojen tarkemmat selosteet notes-osuudessa. Same in English: http://www.slideshare.net/thorium/message-passing-nosql-13005795

TRANSCRIPT

Continuation, MessagePassing & NoSQL

The Greater Helsinki Area F# User Group

http://www.meetup.com/FSharpHelsinki/

© Tuomas Hietanen, 2012

Ennuste…

Erilaisten tiedontuottajien määrä kasvaa

Prosessorien ja kommunikaation määrä kasvaa

Emme tunne ajoympäristöä…

(Voi olla esim. pilvi; Azure)

Turing, tilakoneet ja oliot

Substantiivit vs. verbit• Kuka omistaa toiminnan?• Olio vs. tapahtuma (event)

Tilakoneen ongelmat:• Kompleksisuus: Missä mennään?• Kuka aiheutti nykytilan? Miten toistetaan?• Asynkronisuus-ongelmat, lukitukset

Tilan kapselointi: Tyyppi vs Luokka vs Monad

Tyyppi

• Ei tilaa

Luokka

• Tila voi paljastua suoraa

• Tila näkyy myös metodien kautta ulos

Monad

• Kuin tilaa ei olisi• Tila paljastuu

ulos vasta poistuttaessa

Helpottavat toiminnallisuuksien ohjelmointia “tietyssä kontekstissa”

Domain-mallin rooli

Tarkoitettu kehittäjille• Kone ei itse mallista hyödy

Yrittää mallintaa pelikenttää• Haitat vs. hyödyt?

Roolit• Aktiivinen / aneeminen• Voiko malli muuttua?

Joukko-operaatiot

x x x

x x y x x

y y yx = y

x = okSuodatus:

Projektio:(“mappaus”)

Joukko-operaatiot

x x x

x x y x x

y y yx = y

x = okSuodatus:

Projektio:(“mappaus”)

SQL: Select … where

C#: LINQ

Muut kielet: Map, Filter

Pilvi: MapReduce

Reaktiivinen ohjelmointi

Havainnoidaan ympäristöä

Joukko-operaatioita ympäristön tapahtumiin

Event sourcing (CQRS)

Tapahtumahistoria

Koostetaan Domain-malli

Huomaa yhtäläisyys reaktiiviseen ohjelmointiin

Message passing

Kuljetetaan sanomia (Sanoma voi olla myös tapahtuma.)

Joukko-operaatioita sanomiin

Actors

Ei paljasta tilaansa ulospäin

Käyttää message passingia• Voi kutsua muita• …tai itseään

Agents

Ei paljasta tilaansa ulospäin• Ottaa vastaan pyyntöjä

Käyttää message passingia• Voi kutsua muita• …tai itseään

Continuation

Reify: Kauanko haaveillaan ja koska suoritetaan?

Mahdolliset toiminnot: jatko, lopetus tai virhe

Church vs. Call-with-current-continuation (call/cc)

NoSQL: Tieto ilman skeemaa

Dokumenttitietokannat• Ei ID:itä• Dualismi SQL-kantojen kanssa• RavenDB, MongoDB

Big Data• Loki-tiedostot, GPS-data, yms.• Hadoop, MapReduce

top related