Zusammenfassung der Ressource
Sistemas de Objetos Distribuídos
- EVOLUÇÃO DO SISTEMA CLIENTE/SERVIDOR
- COMEÇOU A SER IMPLEMENTADO POR INSTRUÇÕES DE BAIXO NÍVEL
- SOCKETS
- PASSOU-SE À UTILIZAÇÃO DO MODELO RPC
- O SUCESSO DAS LINGUAGENS OO
- OBJETOS DISTRIBUÍDOS
- RMI
- IMPLEMENTAÇÃO
- MÓDULO DE COMUNICAÇÃO
- IMPLEMENTA O PROTOCOLO PEDIDO-RESPOSTA
- MÓDULO DE REFERÊNCIA REMOTA
- MANTEM UMA TABELA DE REFERENCIAS REMOTAS, QUE CONTÉM CORRESPONDÊNCIAS LOCAIS E REMOTAS
- TABELA DO SERVIDOR = ENTRADA PARA O OBJETO B
- TABELA DO CLIENTE = ENTRADA PARA O PROXY DE B
- SOFTWARE RMI
- CAMADA DE SOFTWARE ENTRE APLICAÇÃO E MÓDULOS DE COMUNICAÇÃO E REFERÊNCIA
- PROXY
- TORNA TRANSPARENTE A INVOCAÇÃO DO MÉTODO
- RECEBE A INVOCAÇÃO, SERIALIZA OS ARGUMENTOS E ENVIA A INVOCAÇÃO ATRAVÉS DO MÓDULO DE COMUNICAÇÃO
- DISPATCHER
- RECEBE O PEDIDO DO MÓDULO DE COMUNICAÇÃO E ENCAMINHA PARA SKELETON
- SKELETON
- DESSERIALIZA OS ARGUMENTOS
- INVOCA MÉTODO NO OBJETO LOCAL
- RECEBE O RESULTADO
- ENCAMINHA-O NO SENTIDO REVERSO
- OBJETOS LOCAIS VS OBJETOS REMOTOS
- OBJETOS SÃO ACESSADOS PELA REFERÊNCIA
- PODEM SER ATRIBUÍDAS A VARIÁVEIS, PASSADAS COMO ARGUMENTOS E DEVOLVIDAS COMO RESULTADOS DE MÉTODOS
- REFERÊNCIA REMOTA
- IDÊNTICA A REFERÊNCIA LOCAL NOS ASPECTOS:
- O objeto que recebe a invocação do método é especificado como o objeto local
- Referências remotas podem ser passadas como argumentos e ser retornadas como invocação de métodos remotos
- OBJETOS REMOTOS
- PASSADOS POR REFERÊNCIA
- FUNCIONA COMO UM "PROXY"
Anmerkungen:
- Na passagem de um objeto remoto, é passado um proxy que é guardado na máquina receptora, e para o qual serão passadas as futuras invocações ao objeto
- OBJETOS LOCAIS
- IMPLEMENTAM A INTERFACE: java.io.Serializable
- SÃO PASSADOS POR CÓPIA
Anmerkungen:
- Do lado do receptor, é criado um novo objeto que pode ser acessado localmente
- INTERFACE REMOTA
- CADA OBJETO REMOTO TEM UMA INTERFACE REMOTA
- ESPECIFICA QUAIS DE SEUS MÉTODOS PODEM SER INVOCADOS REMOTAMENTE
- MÉTODOS
- LOCAIS
- EXECUÇÃO DO CÓDIGO CORRESPONDENTE DO OBJETO
- FINAL DO FLUXO DE EXECUÇÃO, RETORNA AO OBJETO INVOCADOR
- O ESTADO DO OBJETO É ALTERADO
- OUTRAS INVOCAÇÕES A OUTROS OBJETOS
- REMOTOS
- PODE RESULTAR NA INVOCAÇÃO DE OUTROS OBJETOS
- EVENTUALMENTE PODEM ESTAR EM MAQUINAS DIFERENTES
- QUANDO UMA INVOCAÇÃO ULTRAPASSA A BARREIRA DE UM PROCESSO OU COMPUTADOR, TEM LUGAR UMA INVOCAÇÃO DE MÉTODO REMOTO (RMI)
- PARA INVOCAR MÉTODO REMOTO, DEVE POSSUIR REFERÊNCIA AO OBJETO REMOTO
- EXCEÇÕES
- LOCAIS
- QUANDO OCORRE UMA SITUAÇÃO DE ERRO
- É POSSÍVEL CAPTURAR UMA EXCEÇÃO E TRANSFERIR A EXECUÇÃO PARA O BLOCO DE CÓDIGO QUE IRÁ TRATAR A CONDIÇÃO DE ERRO
- REMOTAS
- PODE GERAR EXCEÇÕES DEVIDO A:
- ERRO NA TRANSMISSÃO DOS ARGUMENTOS
- O PROCESSO QUE CONTÉM O OBJETO REMOTO "FALHOU"
- CRASH
- NÃO RESPONDE
- O RESULTADO DA INVOCAÇÃO SE PERDEU
- INVOCAÇÃO REMOTA DE OBJETOS
- MIDDLEWARES
- CORBA
- DCOM
- RPC
- RMI
- SOAP
- MEDIDA DE TOLERÂNCIA A FALHAS
- TALVEZ
Anmerkungen:
- O invocador não sabe se o método foi ou não executado
- PELO MENOS UMA VEZ
Anmerkungen:
- O invocador ou recebe uma resposta e, nesse caso, o método foi executado pelo menos uma vez ou...
◦ Recebe uma Exceção informando que não foi recebido resultado e, neste caso, o servidor pode ter falhado.
◦ Em qualquer dos casos, execuções repetidas podem
ter originado valores errados
- NO MAXIMO UMA VEZ
Anmerkungen:
- O invocador recebe uma resposta e, nesse caso, sabe que o método foi executado uma única vez, ou recebe uma Exceção, o que significa que o método ou foi executado uma vez ou não foi executado