Pyro vs RMI

649 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
649
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Pyro vs RMI

  1. 1. Pyro Aluno: Diógenes A. Fernandes Hermínio Tuesday, October 19, 2010
  2. 2. O que é? PYthon Remote Objects 100% escrito em Python Open Source (Licença MIT) Modelo Cliente-Servidor Conversa em arquiteturas 32-bit e 64-bit Tuesday, October 19, 2010
  3. 3. NameServer Banco de dados central Usa um script para rodar (pyro-ns) DIOGENES-HERMINIOS-MACBOOK:RENT_A_CAR DIOFEHER$ PYRO-NS *** PYRO NAME SERVER *** Tuesday, October 19, 2010
  4. 4. Server Iniciar o servidor Encontrar o NameServer Instanciar o daemon Setar um NameServer Iniciar o main loop do daemon Tuesday, October 19, 2010
  5. 5. Programa Server CORE.INITSERVER() DAEMON = CORE.DAEMON() NS = NAMING.NAMESERVERLOCATOR().GETNS() DAEMON.USENAMESERVER(NS) DAEMON.REQUESTLOOP() Tuesday, October 19, 2010
  6. 6. Instanciando um objeto CLASS MANAGER(OBJECT): ... CODE ... OBJ = CORE.OBJBASE() OBJ.DELEGATETO(MANAGER()) DAEMON.CONNECT(OBJ, 'OBJ') Tuesday, October 19, 2010
  7. 7. Instanciando um objeto CLASS MANAGER(CORE.OBJBASE): ... CODE ... OBJ = MANAGER() DAEMON.CONNECT(OBJ, 'OBJ') Tuesday, October 19, 2010
  8. 8. Cliente Código de inicialização Encontrar o URI = NameServer + nome do objeto Usar o URI para chamar o objeto proxy Tuesday, October 19, 2010
  9. 9. Código - Cliente CORE.INITSERVER() LOCATOR = NAMING.NAMESERVERLOCATOR() SELF.NS = LOCATOR.GETNS() URI = SELF.NS.RESOLVE('NOME_OBJETO') OBJ = CORE.GETATTRPROXYFORURI(MANAGER_URI) Tuesday, October 19, 2010
  10. 10. Protocolo de comunicação Transporte é feito com TCP/IP Usa o Procolo PYRO, mas pode usar outros. Baseado em pickle Por isso só é possível passar objetos “pickeables” Tuesday, October 19, 2010
  11. 11. Exceções O cliente deve implementar tratamento de exceções Elas são lançadas como se objetos realmente fossem locais Podem ocorrer exceções que não fazem parte dos objetos, como a rede ter caído Tuesday, October 19, 2010
  12. 12. Logging Pyro faz o log de todas as exceções que ocorrem Timestamp + traceback Desligado por default Tuesday, October 19, 2010

×