O documento apresenta a linguagem de programação Erlang e a plataforma Open Telecom Platform (OTP). Erlang foi desenvolvida na década de 1980 pela Ericsson para sistemas de telecomunicações e tem características como concorrência baseada em troca de mensagens, variáveis imutáveis e alta disponibilidade. A OTP é uma plataforma que define princípios de design e componentes reutilizáveis para aplicações Erlang, incluindo aplicações, supervisores e processos "trabalhadores".
11. Principais características de Erlang
Funcional (high-level functions, list comprehension, loop by
recursion, tail recursion)
Concorrência baseada em troca de mensagens entre micro-
processos ultra-leves (tem até um tipo de dado Pid)
Pattern-matching (quase onipresente)
Single-assignment variables (aka ‘variáveis imutáveis’)
Runtime gerenciado (sim, uma ‘vm’)
Sistema de tipos simples
Pensando em Java, todas
as ‘variáveis’ são final!
Se não há o que alterar, não há
concorrência!
34. Formam uma árvore
Mnesia CaelumWeb Processo
‘Trabalhador’
N
CaelumWeb CaelumWeb
Mochiweb ‘Top Level’ Server
`Trabalhador’
Supervisor
Processo Processo
Inet ‘trabalhador’ ‘Trabalhador’
1 2
35. São responsáveis por ‘restarts’
Supervisor Supervisor
Processo
‘trabalhador’
1
X Processo
‘Trabalhador’
2
Processo
‘Trabalhador’
N
X X X
Processo
‘trabalhador’
1
Processo
‘Trabalhador’
2
Processo
‘Trabalhador’
N
estratégia one_for_one estratégia one_for_all
37. São quaisquer processos que não
sejam supervisores em uma árvores
de supervisão
Supervisor
N
CaelumWeb CaelumWeb
‘Top Level’ Server
`Trabalhador’
Supervisor
Processo
‘Trabalhador’
N
Processo Processo
‘trabalhador’ ‘Trabalhador’
1 2
41. Implementam design patterns frequentes
gen_server - comportamento genérico para client/server
gen_fsm - comportamente genérico para máquina de estado finita
gen_event - comportamento genérico para lidar com eventos