Uso de plug-in para interações multiparticipantes confiáveis - Prevedello, Jeferson Librelotto (2008)
A complexidade de sistemas de software tem aumentado devido aos novos requisitos impostos pelas aplicações modernas, tais como confiabilidade, segurança e disponibilidade. Sistemas confiáveis são sistemas que mantém seu funcionamento de acordo com sua especificação mesmo na presença de situações excepcionais. Na tentativa de implementar sistemas mais robustos e confiáveis, torna-se imprescindível a utilização de mecanismos capazes de lidar com problemas que potencialmente possam afetar seu perfeito funcionamento. Variados tipos de defeitos e situações inesperadas podem ocorrer em aplicações que rodam sobre sistemas distribuídos. Para que seja atingido um grau satisfatório de utilização destes sistemas é extremamente importante que sejam utilizadas técnicas objetivando coibir ou minimizar a existência de falhas. Tolerância a Falhas é uma técnica que tem por objetivo oferecer alternativas que permitam ao sistema manter o funcionamento conforme sua especificação, mesmo na ocorrência de situações indesejadas. A literatura descreve diversos tipos de mecanismos que auxiliam no desenvolvimento de aplicações que possuem diversas atividades acontecendo simultaneamente. Em geral, um mecanismo composto por diversos participantes (objetos ou processos) executando um conjunto de atividades paralelamente é chamado de interação multiparticipante. Em uma interação multiparticipante diversos participantes de alguma maneira "se unem"para produzir um estado combinado, intermediário e temporário e utilizam este estado para executar alguma atividade. Após a atividade executada a interação é desfeita e então cada participante prossegue sua execução. Entretanto, diversas vezes a interação entre os participantes pode levar a situações onde toda a execução tem que ser refeita (efeito dominó). Para evitar este tipo de situação e para auxiliar no tratamento de exceções concorrentes que podem ocorrer nos diversos participantes de uma interação pode-se utilizar, por exemplo, o mecanismo de interações multiparticipantes confiáveis (Dependable Multiparty Interactions - DMIs). Este mecanismo tem sido utilizado para o desenvolvimento de aplicações em diversas áreas. Todavia, percebemos que todos os estudos de casos desenvolvidos utilizando DMIs foram implementados manualmente, ou seja, sem a utilização de nenhuma ferramenta de apoio. Tal situação além de acarretar um elevado tempo de desenvolvimento também facilita à inclusão de falhas no sistema. Nesta dissertação apresentamos uma proposta de desenvolvimento de aplicações confiáveis que utilizam o mecanismo de DMIs. Utilizando o IDE Eclipse desenvolvemos uma feramenta capaz de automatizar o processo de criação de aplicações que utilizam DMIs para tolerar falhas, proporcionando aos desenvolvedores ganho de produtividade, redução da possibilidade de inserção de falhas no código, assim como facilitar a compreensão dos elementos que compõem uma DMI e a maneira como os mesmos estão relacionados.