21.12.2022 Views

python_para_desenvolvedores_2ed

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

272 Processamento distribuído

que permite publicar objetos via TCP/IP. Na máquina servidora, o PYRO

publica o objeto, cuidando de detalhes como: protocolo, controle de sessão,

autenticação, controle de concorrência e outros.

Exemplo de servidor:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import Pyro.core

# A classe Pyro.core.ObjBase define

# o comportamento dos objetos distribuídos

class Dist(Pyro.core.ObjBase):

def calc(self, n):

return n**n

if __name__ == '__main__':

# Inicia a thread do servidor

Pyro.core.initServer()

# Cria o servidor

daemon = Pyro.core.Daemon()

# Publica o objeto

uri = daemon.connect(Dist(),'dist')

# Coloca o servidor em estado operacional

daemon.requestLoop()

Na máquina cliente, o programa usa o PYRO para evocar rotinas do servidor

e recebe os resultados, da mesma forma que um método de um objeto local.

Exemplo de cliente:

# -*- coding: utf-8 -*-

import Pyro.core

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!