Olá pessoal, nesse post faremos um breve resumo da nossa última reunião, a qual teve como objetivo definir a arquitetura do OurGrid Community.
A nossa preocupação inicial foi "como extrair os dados das doações (de recursos) do OurGrid?"
Pensamos em duas formas de resolver o problema:
A primeira abordagem é bem mais difícil de ser aplicada, pois segundo Abmar (desenvolvedor do OurGrid), a quantidade de entrada nas tabelas do banco é muito grande, e isso demandaria a elaboração de consultas mais complexas (com paginação, etc). Logo, optamos pela segunda abordagem, pois o nosso foco é ter um produto usável no menor tempo possível. Dessa forma estaremos diminuindo o esforço de implementação.
Com a segunda abordagem, resolveremos uma outra questão, o registro de novos recursos. Nesse esquema, implementaremos o componente Peer Client, o qual se comunica com a interface do "Peer Público" para requisição dos dados de doação. Logo, será possível reutilizar essa mesma interface para registrar recursos.
O Peer Client irá periodicamente requisitar os dados de doação ao Public Peer. Em posse dos dados, ele os repassará para o BD Manager, componente responsável por processar e armazenar essas
informações no BD. Outra função do Peer Client é consultar periodicamente o DB Manager, recuperando as informações dos novos Workers inseridos no BD (durante o cadastro no sistema) e os
registrando junto ao Public Peer.
Por fim, construiremos a interface da nossa comunidade com o framework Elgg. No entanto, são necessárias alterações na interface "genérica" de forma a prover as funcionalidades planejadas, como a visualização do ranking, o uso do fórum, etc. Sabemos que o Elgg possui uma arquitetura baseada em plugins, logo forneceremos um conjunto de plugins (um para cada funcionalidade da interface).
Elaboramos o seguinte overview da arquitetura :

Uma idéia de funcionalidade surgiu durante a reunião foi a implementação de Grupos. Seria um sistema análogo ao de clãs em um MMORPG, onde seus membros cooperam entre si para elevar o status do seu clã. Baseado nesse conceito, teríamos adicionalmente um ranking por Grupos, onde cada Grupo agregaria os recursos doados por todos os seus membros. A idéia é estimular a competição, pois acreditamos que com esse ranking os membros dos grupos se sentirão compelidos a contribuir mais, e então seu grupo terá maior visibilidade no ranking.
Qualquer comentário ou sugestão será bem vindo :)
P.S: O modelo do banco será definido nas próximas reuniões.
A nossa preocupação inicial foi "como extrair os dados das doações (de recursos) do OurGrid?"
Pensamos em duas formas de resolver o problema:
- Extrair esses dados do BD do Aggregator, componente que coleta todo tipo de informação do OurGrid;
- Realizar a consulta diretamente ao "Public Peer", que irá gerenciar os Donated Workers.
A primeira abordagem é bem mais difícil de ser aplicada, pois segundo Abmar (desenvolvedor do OurGrid), a quantidade de entrada nas tabelas do banco é muito grande, e isso demandaria a elaboração de consultas mais complexas (com paginação, etc). Logo, optamos pela segunda abordagem, pois o nosso foco é ter um produto usável no menor tempo possível. Dessa forma estaremos diminuindo o esforço de implementação.
Com a segunda abordagem, resolveremos uma outra questão, o registro de novos recursos. Nesse esquema, implementaremos o componente Peer Client, o qual se comunica com a interface do "Peer Público" para requisição dos dados de doação. Logo, será possível reutilizar essa mesma interface para registrar recursos.
O Peer Client irá periodicamente requisitar os dados de doação ao Public Peer. Em posse dos dados, ele os repassará para o BD Manager, componente responsável por processar e armazenar essas
informações no BD. Outra função do Peer Client é consultar periodicamente o DB Manager, recuperando as informações dos novos Workers inseridos no BD (durante o cadastro no sistema) e os
registrando junto ao Public Peer.
Por fim, construiremos a interface da nossa comunidade com o framework Elgg. No entanto, são necessárias alterações na interface "genérica" de forma a prover as funcionalidades planejadas, como a visualização do ranking, o uso do fórum, etc. Sabemos que o Elgg possui uma arquitetura baseada em plugins, logo forneceremos um conjunto de plugins (um para cada funcionalidade da interface).
Elaboramos o seguinte overview da arquitetura :

Uma idéia de funcionalidade surgiu durante a reunião foi a implementação de Grupos. Seria um sistema análogo ao de clãs em um MMORPG, onde seus membros cooperam entre si para elevar o status do seu clã. Baseado nesse conceito, teríamos adicionalmente um ranking por Grupos, onde cada Grupo agregaria os recursos doados por todos os seus membros. A idéia é estimular a competição, pois acreditamos que com esse ranking os membros dos grupos se sentirão compelidos a contribuir mais, e então seu grupo terá maior visibilidade no ranking.
Qualquer comentário ou sugestão será bem vindo :)
P.S: O modelo do banco será definido nas próximas reuniões.
