2. Chamada de procedimento remoto (RPC)
É um protocolo que permite que um software chame um procedimento em um
computador remoto, como se o procedimento estivesse sendo executado
localmente.
Além disso, a RPC é independente da linguagem de programação, o que significa
que os programas podem ser escritos em diferentes linguagens e ainda assim
serem capazes de se comunicar através da RPC.
3. Biblioteca RPyC
A biblioteca RPyC é uma solução para a execução de chamadas de
procedimentos remotos em Python. Ela possui recursos que facilitam a
comunicação entre diferentes processos em diferentes máquinas
4. Métodos
rpyc.classic.connect(host, port=None, service=None, config=None):
Este método cria uma conexão com o servidor RPyC remoto. O host é o nome do host
remoto, o port é o número da porta para a conexão, o service é o nome do serviço
remoto e o config é um dicionário com as configurações da conexão.
rpyc.classic.upload(local_file, remote_file=None):
Este método faz o upload de um arquivo local para o servidor remoto. Se remote_file
não for especificado, o arquivo será salvo com o mesmo nome no diretório de trabalho
remoto
rpyc.classic.download(remote_file, local_file=None):
Este método faz o download de um arquivo remoto para o sistema local. Se local_file
não for especificado, o arquivo será salvo com o mesmo nome no diretório de trabalho
local.
5. rpyc.classic.ssh_connect(host, port=None, user=None, password=None,
keyfile=None, keyfile_password=None, service=None, config=None):
Este método cria uma conexão SSH com o servidor RPyC remoto. Ele utiliza os
mesmos parâmetros do método connect, além de user, password, keyfile e
keyfile_password, usados para autenticar a conexão SSH
7. rpyc.core.async_.AsyncResult():
Este método cria um objeto que pode ser usado para esperar por um resultado
assíncrono. Ele é usado em conjunto com o método async_call da classe
ServiceProxy.
rpyc.core.async_.AsyncResult.wait(timeout=None):
Este método espera pelo resultado assíncrono, com um tempo limite opcional.
9. Tipos de servidores RPyC
● OneShotServer (Servidor atende a um cliente e termina)
● ForkingServer (Processo novo a cada vez que um cliente se conecta)
● ThreadedServer (Thread nova a cada vez que um cliente se conecta)
● ThreadPoolServer (Similar ao ThreadedServer, mas as threads já são
predefinidas em um conjunto de threads)