Sistemas Distribuídos e PHP - Darkmira Tour BR 2016

Preview:

Citation preview

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

Obrigada!

Perguntas?@dianaarnos

diana.arnos@gmail.com