A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Slide 1 Programação com Objetos Distribuídos Trabalho Leve 1 The Guardian Model and Primitives for Exception Handling in Distributed Systems Universidade.

Apresentações semelhantes


Apresentação em tema: "Slide 1 Programação com Objetos Distribuídos Trabalho Leve 1 The Guardian Model and Primitives for Exception Handling in Distributed Systems Universidade."— Transcrição da apresentação:

1 Slide 1 Programação com Objetos Distribuídos Trabalho Leve 1 The Guardian Model and Primitives for Exception Handling in Distributed Systems Universidade Federal do Rio Grande do Sul Instituto de Informática Programação com Objetos Distribuídos Trabalho Leve 1 Fernando Afonso Leonardo Kunz

2 Slide 2 Programação com Objetos Distribuídos Trabalho Leve 1  Tema  Motivação e estado-da-arte  Objetivos  Modelo  Protótipo  Resultados e comparação com trabalhos relacionados  Avaliação SUMÁRIO

3 Slide 3 Programação com Objetos Distribuídos Trabalho Leve 1 TEMA

4 Slide 4 Programação com Objetos Distribuídos Trabalho Leve 1 TEMA Tratamento de Excessões em Sistemas Distribuídos A maioria dos sistemas distribuídos requer tolerância a falhas e recuperação de erros. É necessário detectar falhas e executar procedimentos que retornem o sistema a um estado consistente. Em programas seqüenciais, “exceções” podem ser utilizadas para indicar um erro e ou uma condição anormal de execução. Devido a grande aceitação dos modelos de tratamento de exceções em programas seqüenciais parece lógico estendê-los para sistemas distribuídos.

5 Slide 5 Programação com Objetos Distribuídos Trabalho Leve 1 Motivação e Estado da Arte

6 Slide 6 Programação com Objetos Distribuídos Trabalho Leve 1 MOTIVAÇÃO E ESTADO DA ARTE Dois tipos de técnicas de recuperação de erros:  Backward error recovery Consiste em restaurar o sistema para um estado anterior a falha executando um rollback.  Forward error recovery Consiste em corrigir ou isolar os efeitos de um erro, corrigindo assim o contexto do sistema para que as operações normais possam continuar sendo executadas. Em sistemas distribuídos a execução do rollback em um processo pode ocasionar o efeito dominó. O modelo conversation foi proposto para limitar esse efeito.

7 Slide 7 Programação com Objetos Distribuídos Trabalho Leve 1 MOTIVAÇÃO E ESTADO DA ARTE O termination model faz com que todos processos terminem a execução de sua rotina normalmente e então cada processo chama um tratador adequado para a exceção que ocorreu. O modelo coordinated atomic action estende o termination model para o uso em sistemas distribuídos. Em Open Multi-Threaded Transactions (OMTT) um modelo é proposto para que diversas threads participem de transações aninhadas sobre objetos. Não há coordenação entre os participantes, assim as transações são abortadas no caso de uma exceção.

8 Slide 8 Programação com Objetos Distribuídos Trabalho Leve 1 MOTIVAÇÃO E ESTADO DA ARTE Sistemas distribuídos necessitam de comunicação entre os seus tratadores de exceções. Múltiplas exceções podem ser chamadas em um sistema distribuído simultaneamente. Maioria dos sistemas de tratamento de exceções concorrentes assumem que o programa distribuído está estruturado de maneira a garantir que os tratadores de exceções corretos serão invocados sem precisarem comunicar- se. O guardian é um gerenciador global de exceções mais primitivo e flexível que as abordagens existentes.

9 Slide 9 Programação com Objetos Distribuídos Trabalho Leve 1 Objetivos

10 Slide 10 Programação com Objetos Distribuídos Trabalho Leve 1 OBJETIVOS Problema Fundamental:  Para o tratamento de exceções em sistemas distribuídos cada processo afetado deve invocar o tratador correto. Determinar o contexto e o tratador correto para cada processo em uma exceção é o problema chave. O objetivo do guardian é criar um tratador global de exceções que chame a exceção correta em cada processo e portanto para cada processo invoque o tratador correto. O tratador global de uma exceção é diferente do tratador local em cada processo.

11 Slide 11 Programação com Objetos Distribuídos Trabalho Leve 1 Modelo

12 Slide 12 Programação com Objetos Distribuídos Trabalho Leve 1 MODELO Uma entidade global distribuída (guardian) coordena o tratamento de exceções de cada processo Exceções apropriadas são chamadas em cada processo Contexto ativador – região do código que ativa exceção Contexto alvo – região do código onde a exceção deve ser tratada Regras determinam qual exceção ativar em cada participante

13 Slide 13 Programação com Objetos Distribuídos Trabalho Leve 1 MODELO

14 Slide 14 Programação com Objetos Distribuídos Trabalho Leve 1 MODELO Primitivas  void enableContext(Context c, ExceptionList el);  void removeContext();  void gthrow(GlobalException ex, ParticipantList pl);  boolean propagate();  void checkExceptionStatus();

15 Slide 15 Programação com Objetos Distribuídos Trabalho Leve 1 MODELO Mecanismo de Regras  Geram conjunto de exceções para cada participante  Como entrada, recebe exceções sinalizadas concorrentemente  Cada exceção contém o contexto alvo para o participante

16 Slide 16 Programação com Objetos Distribuídos Trabalho Leve 1 Protótipo

17 Slide 17 Programação com Objetos Distribuídos Trabalho Leve 1 PROTÓTIPO Exemplo: Sistema primário-backup main() { g.enableContext(“Main”,el); try { g.checkExceptionStatus(); catch(PrimaryFailed) { if(g.propagate()) throw;... primaryService() { g.enableContext(“Primary”, el); try { g.checkExceptionStatus(); catch(PrimaryServiceFailed) { g.throw(PrimaryFailed); catch(BackupFailed) { backupAvailable = False; // Regra 1 if (signaled exception = PrimaryFailed) then { let p = “Primary” OEL.insert(p, PrimaryFailed(“Init”)‏ let p = “Backup” OEL.insert(p, PrimaryFailed(“Main”)‏ // Regra 2 if (signaled exception = BackupFailed) then { let p = “Primary” OEL.insert(p, BackupFailed(“Primary”)‏ let p = “Backup” OEL.insert(p, BackupFailed(“Backup”)‏

18 Slide 18 Programação com Objetos Distribuídos Trabalho Leve 1 Resultados e Comparação com Trabalhos Relacionados

19 Slide 19 Programação com Objetos Distribuídos Trabalho Leve 1 RESULTADOS E COMPARAÇÃO COM TRABALHOS RELACIONADOS Vantagens  Tratamento de exceções globais é separado dos processos participantes  Mais flexível e primitivo que outras abordagens  Permite diferentes modelos de interação de aplicações distribuídas Desvantagens  Necessita comunicação em broadcast ordenada, confiável e temporizada  Identificação de contextos e conjunto correspondente de exceções e tratadores

20 Slide 20 Programação com Objetos Distribuídos Trabalho Leve 1 Avaliação

21 Slide 21 Programação com Objetos Distribuídos Trabalho Leve 1 AVALIAÇÃO Concluímos que é um modelo interessante pois permite separar o tratamento global de exceções do tratamento local, permitindo que cada processo chame o tratador apropriado para cada exceção. O artigo está bem escrito embora vá muito a fundo em detalhes técnicos e possua um pseudo-código de difícil entendimento. O fato de ter que definir o contexto de cada exceção dificulta a programação da aplicação.

22 Slide 22 Programação com Objetos Distribuídos Trabalho Leve 1 AVALIAÇÃO a) Motivação e estado-da-arte: 4 b) Problemas a resolver e Modelo: 3 c) Protótipo, Resultados e comparação com trabalhos relacionados: 3 d) Redação e formatação: 4


Carregar ppt "Slide 1 Programação com Objetos Distribuídos Trabalho Leve 1 The Guardian Model and Primitives for Exception Handling in Distributed Systems Universidade."

Apresentações semelhantes


Anúncios Google