Slide 1

Slide 1 text

Sistemas Distribuídos e PHP

Slide 2

Slide 2 text

PHP Web Developer Analista Desenvolvedora @ Agrosmart Instrutora @ Caldo e Gouveia Diana Ungaro Arnos @dianaarnos www.dianaarnos.com

Slide 3

Slide 3 text

O que são sistemas distribuídos? Hm… eu uso load balance, então meu sistema é, não é? Não.

Slide 4

Slide 4 text

distribuir acessos não é o mesmo que distribuir processamento SERVIDOR LOAD BALANCE SERVIDOR SERVIDOR APLICAÇÃO APLICAÇÃO APLICAÇÃO

Slide 5

Slide 5 text

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 parte 2

Slide 6

Slide 6 text

A Ideia

Slide 7

Slide 7 text

Science, bitch! BOINC: Open-source software for volunteer computing (http: //boinc.berkeley.edu/index. php)

Slide 8

Slide 8 text

Processamento Paralelo Distribuído ? Multi-thread? pthreads Distribuído e paralelo? Stream sockets + pthreads Multi-process? pcntl_fork( ), exec( ), shell_exec( ), passthru( )

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

pthreads

Slide 11

Slide 11 text

pthreads

Slide 12

Slide 12 text

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:

Slide 13

Slide 13 text

AO CÓDIGO! Que você pode encontrar aqui: https://github. com/dianaarnos/darkmiratourbr-2016

Slide 14

Slide 14 text

Obrigada! Perguntas? @dianaarnos [email protected]