Uma linguagem de protocolos para descrever sistemas distribuídos tolerantes a falhas

Detalhes bibliográficos
Autor(a) principal: Henriques, Daniela Pedro
Data de Publicação: 2014
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/10451/15436
Resumo: Tese de mestrado, Engenharia Informática (Arquitectura, Sistemas e Redes de Computadores), Universidade de Lisboa, Faculdade de Ciências, 2014
id RCAP_75166cbe9982c5459bd475a3898efc48
oai_identifier_str oai:repositorio.ul.pt:10451/15436
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling Uma linguagem de protocolos para descrever sistemas distribuídos tolerantes a falhasSistemas distribuídosTolerância a falhasTrocas de mensagensEspecificação de protocolosTeses de mestrado - 2014Tese de mestrado, Engenharia Informática (Arquitectura, Sistemas e Redes de Computadores), Universidade de Lisboa, Faculdade de Ciências, 2014Nos sistemas distribuídos tolerantes a falhas existem vários processos que comunicam entre si que podem falhar a qualquer momento, interferindo com o curso normal da comunicação, o que torna estes sistemas mais complexos e difíceis de implementar. Quando se escreve este código complexo todas as operações de comunicação têm que ser definidas de modo a que os processos saibam que operações executar, os tipos de mensagens e os processos envolvidos nas operações. Atualmente não existe nenhuma técnica comum para escrever este tipo de programas, assim cada programador usa as suas próprias técnicas, tornando este processo mais lento e difícil. Hoje em dia, são usadas diferentes abordagens para verificar que um programa que envolve trocas de mensagens está bem definido e funciona para cada situação possível. A abordagem mais comum consiste em passar o programa por uma série de testes criados pelo programador, o que pode demorado e pouco fiável pois é difícil testar todos os casos possíveis. Esta tese sugere uma abordagem que se certifica que o programa troca mensagens por uma ordem pré-estabelecida, mesmo na presença de falhas que afetam estas trocas, e que poderá tornar a verificação destes programas mais rápida e mais precisa. A nossa abordagem consiste em especificar todas as interações de comunicação através de uma linguagem de protocolos que descreve programas distribuídos tolerantes a falhas. Esta linguagem é usada para construir protocolos globais que especificam toda a comunicação do sistema. Através de regras de tradução, os protocolos globais são projetados para protocolos locais que especificam a comunicação do ponto de vista de cada processo. Por fim, é criado um programa que implementa as ações de cada um dos processos participantes no sistema. As operações de comunicação nestes programas seguem uma API da linguagem Erlang que definimos e que fornece uma forma comum de representar o envio/receção de mensagens. Usando esta API poderá ser possível futuramente fazer uma correspondência entre os protocolos locais e os programas de cada processo, de modo a verificar em tempo de compilação que os programas trocam mensagem por uma ordem correta.Fault-tolerant distributed systems handle a variety of communication interactions between multiple participants that can fail at any moment, interfering with the normal flow of communications and therefore making the systems more complex to implement. When writing this complex code all communication operations need to be defined, so that participants know which operations they have to execute, the message types involved in the operations and who participates in the operations. Until today there is no common strategy to write this type of programs, so each programmer uses his own techniques, making the process slower and more difficult. Nowadays, to make sure that a message-passing program is well defined and works in every situation, it is possible to use different approaches. The most common consisting in passing a program through a series of tests, which can be time-consuming and lacks accuracy due to the difficulty of covering all possible cases. This thesys suggests an approach that makes sure a program exchanges messages in a pre-established order even in the presence of failures that affect the message-passing interactions. Besides, it could make the process of verifying a program faster and more accurate. It consists in specifying all the communication interactions using a language of protocols to describe fault-tolerant distributed systems. This language is used to create global protocols that specify all the communication of a system. Then translation rules are used to project global protocols into local protocols that specify the communication point of view of a process. Finally, for each process is created an individual program that implements its actions. The communication operations in these programs follow an API of the language Erlang that we created, which offers a common model to represent message-passing. In the future, we could use this API to find connections between the local protocols and the programs of each process that would help verify at compile time that the communication of the program is well defined.Vasconcelos, Vasco Thudichum, 1964-Bessani, Alysson Neves, 1978-Repositório da Universidade de LisboaHenriques, Daniela Pedro2014-12-17T14:33:42Z201420142014-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10451/15436TID:201363844porinfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-11-08T16:02:05Zoai:repositorio.ul.pt:10451/15436Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T21:36:54.646107Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv Uma linguagem de protocolos para descrever sistemas distribuídos tolerantes a falhas
title Uma linguagem de protocolos para descrever sistemas distribuídos tolerantes a falhas
spellingShingle Uma linguagem de protocolos para descrever sistemas distribuídos tolerantes a falhas
Henriques, Daniela Pedro
Sistemas distribuídos
Tolerância a falhas
Trocas de mensagens
Especificação de protocolos
Teses de mestrado - 2014
title_short Uma linguagem de protocolos para descrever sistemas distribuídos tolerantes a falhas
title_full Uma linguagem de protocolos para descrever sistemas distribuídos tolerantes a falhas
title_fullStr Uma linguagem de protocolos para descrever sistemas distribuídos tolerantes a falhas
title_full_unstemmed Uma linguagem de protocolos para descrever sistemas distribuídos tolerantes a falhas
title_sort Uma linguagem de protocolos para descrever sistemas distribuídos tolerantes a falhas
author Henriques, Daniela Pedro
author_facet Henriques, Daniela Pedro
author_role author
dc.contributor.none.fl_str_mv Vasconcelos, Vasco Thudichum, 1964-
Bessani, Alysson Neves, 1978-
Repositório da Universidade de Lisboa
dc.contributor.author.fl_str_mv Henriques, Daniela Pedro
dc.subject.por.fl_str_mv Sistemas distribuídos
Tolerância a falhas
Trocas de mensagens
Especificação de protocolos
Teses de mestrado - 2014
topic Sistemas distribuídos
Tolerância a falhas
Trocas de mensagens
Especificação de protocolos
Teses de mestrado - 2014
description Tese de mestrado, Engenharia Informática (Arquitectura, Sistemas e Redes de Computadores), Universidade de Lisboa, Faculdade de Ciências, 2014
publishDate 2014
dc.date.none.fl_str_mv 2014-12-17T14:33:42Z
2014
2014
2014-01-01T00:00:00Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10451/15436
TID:201363844
url http://hdl.handle.net/10451/15436
identifier_str_mv TID:201363844
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799134265841025024