Komunikacija
P1
poruka
odgovor
P2
P2 ! {self(), ...},
receive ...
receive
{Sender, ...} ->
...
Sender ! Response
end
Slide 9
Slide 9 text
Stanje
A = 5,
A = A + 1
Slide 10
Slide 10 text
Stanje
S
f(Stanje) ->
Poruka = receive ... end,
NovoStanje = f2(Poruka, Stanje),
f(NovoStanje).
Slide 11
Slide 11 text
Stanje
{set, ...}
{get, ...}
P S
f(Stanje) ->
Poruka = receive ... end,
NovoStanje = f2(Poruka, Stanje),
f(NovoStanje).
Slide 12
Slide 12 text
Actor model
actor
actor
actor
actor
actor
actor
Slide 13
Slide 13 text
Supervisor
S
W
Slide 14
Slide 14 text
Supervisor
W
S
S
S
W W W
S
W W W
W
Slide 15
Slide 15 text
Http server
http_server
request_1
request_n
request
response
response
Slide 16
Slide 16 text
Http server
http_server stanje
request_1
request_n
request
response
response
Slide 17
Slide 17 text
Push server
korisnik_1
korisnik_2
korisnik_n
kanal_2
kanal_1
podaci
podaci
Slide 18
Slide 18 text
Push server
<= 3000 paralelnih korisnika
≈ 30 kanala
> 2000 requesta u sekundi
Slide 19
Slide 19 text
Erlang
●
actor model
●
supervisor
●
distribuiranost
●
mnesia
●
hot code swapping
●
interoperabilnost
●
alati
Slide 20
Slide 20 text
Primjena
●
server
●
skalabilnost
●
dinamički requesti
Slide 21
Slide 21 text
Linkovi
●
Why Erlang?
●
Programming Erlang
●
Learn You Some Erlang for Great Good!
●
Erlang and OTP in Action
●
A History of Erlang
●
erlang.org
●
Erlang Programming Group