Página em construção

FlexGroup

Utilização da abstração de grupos de processos e de serviços de comunicação em grupo faciliata sobremaneira a construção de aplicações tolerantes a falhas. Vários sistemas que oferecem serviços de comunicação em grupo (ordenação de mensagens, gerência de replicação, gerência de formação em grupos, sincronização nas mudanças da composição dos grupos, controle de fluxo, etc.) têm sido propostos e desenvolvidos nos últimos anos (como, por exemplo, Isis, Horus, NewTop, Totem, Bast, Esemble, JavaGroups, Eva, dentre outros). Esses serviços são estruturados de diversas formas nos diferentes sistemas existentes. Os primeiros sistemas propostos utilizam um modelo de arquitetura plana (como, por exemplo, Isis, Totem e NewTop ), onde não há uma hierarquia na forma de iteração entre os vários módulos que compõem o serviço de grupo. Por outro lado, a maioria dos sistemas disponíveis atualmente foi projetada e implementada adotando o modelo em camadas, onde a interação se dá exclusivamente entre os módulos adjacentes (como, por exemplo, Horus, Bast, Ensemble e JavaGroups ). Mais recentemente, outras abordagens propostas incluem um modelo baseado em canais de enventos, que permite um maior desacoplamento entre os módulos (Eva). As diferentes arquiteturas possuem vantagens e desvantagens em diferentes aspectos. O objetivo deste projeto é propor uma meta-arquitetura que possa ser instanciada para cada aplicação em particular, atendendo de forma equilibrada aos requisitos de flexibilidade, extensibilidade, desempenho, confiabilidade, facilidade de compreensão e uso, impostos pela aplicação. Com isto busca-se encontrar um equilíbrio entre as vantagens e desvantagens das arquiteturas existentes.