Provendo segurança e uma semântica de falhas consistente para a comunicação de objetos assíncronos distribuídos.

Detalhes bibliográficos
Ano de defesa: 2010
Autor(a) principal: MIRANDA, Rodrigo de Almeida Vilar de.
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal de Campina Grande
Brasil
Centro de Engenharia Elétrica e Informática - CEEI
PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
UFCG
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/10341
Resumo: O desenvolvimento de sistemas distribuídos é uma atividade muito complexa, mas que pode ser facilitada com o uso de sistemas de middleware adequados. Este trabalho abrange o nicho dos sistemas distribuídos peer-to-peer em Java, cujos nós precisam manter diversas conexões abertas simultaneamente, pois não conhecemos sistemas de middleware que suportem plenamente as necessidades deste nicho. Com a finalidade de avaliarmos esta lacuna, elicitamos sete requisitos não-funcionais para o nicho estudado: detecção de falhas por parada, detecção de falhas por perda de mensagens, concorrência, facilidade de programação, segurança, suporte a conectividade parcial e integração com a linguagem Java. Dentre cinco sistemas de middleware avaliados nenhum atendeu a todos os requisitos não-funcionais, o que nos motivou a desenvolver um novo sistema de middleware, chamado Commune, que atendesse a todos os requisitos. Desse modo, o Commune poderia suportar eficazmente o desenvolvimento de sistemas para o nicho estudado neste trabalho. Em relação aos sistemas avaliados, o Commune provê duas contribuições principais. Primeiramente, realizamos uma pesquisa bibliográfica na área de segurança para sistemas distribuídos, a partir da qual implementamos mecanismos de segurança para o Commune, baseados em (i) autenticação com pares de chaves assimétricas e (ii) certificação X.509. Em segundo lugar, definimos os requisitos de uma semântica de detecção de falhas abrangente, capaz de detectar falhas por parada dos nós e falhas por omissão devido a perda de mensagens no canal de comunicação. Modelamos um protocolo de conexão para o Commune, utilizando uma máquina de estados para representar o estados dos nós, e provamos que o modelo proposto atende aos requisitos da semântica de detecção de falhas abrangente. Foi necessário o uso de técnicas de verificação formal para provar que o protocolo não possui deadlocks. Além disso, apresentamos a arquitetura e os detalhes de implementação do Commune. Por fim, avaliamos o desempenho do Commune, que se mostrou viável na comparação com Java RMI, e executamos testes do Commune em ambiente de produção, que ocorreram com sucesso.