sistemas distribuídos e php - darkmira tour br 2016
TRANSCRIPT
Sistemas Distribuídos e PHP
PHP Web DeveloperAnalista Desenvolvedora @ Agrosmart
Instrutora @ Caldo e Gouveia
Diana Ungaro Arnos
@dianaarnos www.dianaarnos.com
O que são sistemas distribuídos?
Hm… eu uso load balance, então meu sistema é, não é?
Não.
distribuir acessos não é o mesmo que distribuir processamento
SERVIDOR
LOAD BALANCE
SERVIDOR SERVIDORAPLICAÇÃO APLICAÇÃO APLICAÇÃO
APLICAÇÃO
SERVIDOR SERVIDOR
o processamento da tarefa é distribuído em paralelo entre computadores diferentes
SERVIDOR
(Solicita execução da tarefa X)
Tarefa X parte
1
Tarefa X parte
3
Tarefa X p arte 2
A Ideia
Science, bitch!
✘ BOINC: Open-source software for volunteer
computing (http://boinc.berkeley.edu/index.php
)
Processamento Paralelo Distribuído
?Multi-thread?
pthreads
Distribuído e paralelo?
Stream sockets + pthreads
Multi-process?pcntl_fork( ), exec( ),
shell_exec( ), passthru( )
pthreads
✘PHP compilado com ZTS (Thread Safety)
✘Compatível com PHP7
✘É seguro? (https://gist.github.com/krakjoe/6437782)
✘Referência:
http://pthreads.org
http://docs.php.net/manual/en/book.pthreads.php
pthreads
pthreads
Stream Sockets
✘ Sockets são mecanismos de comunicação entre processos
✘Para modelo cliente/servidor: IP+porta
Ex.: 127.0.0.1:80
✘fgets( ), fclose( ), fread( ), etc...
✘Stream sockets:
AO CÓDIGO!
Que você pode encontrar aqui: https://github.com/dianaarnos/darkmiratourbr-2016