ICT Results - 05/10/2009
Aplicações intensivas que rodam pela Internet normalmente exigem equipes de especialistas para mantê-las. Mas isso logo deixará de ser assim. É o que afirmam pesquisadores europeus que desenvolveram um sistema para criar aplicativos capazes de se autogerenciar e corrigir seus próprios erros.
Interligação de dispositivos
Parte do potencial da Internet reside na sua capacidade de conexão de centenas, milhares, ou mesmo milhões de dispositivos.
Se um usuário está baixando um vídeo de um serviço ponto-a-ponto, realizando pesquisas científicas em um grid ou usando a computação em nuvem para gerir um negócio, os programas que permitem que muitos dispositivos e aplicativos trabalhem em conjunto são fundamentais.
O problema, diz Peter Van Roy, coordenador projeto Selfman, é que está ficando cada vez mais difícil manter os sistemas em funcionamento. "O desafio central quando você constrói aplicativos para a internet é como mantê-los funcionando sem ter de ficar ajustando-os e gerenciando-os o tempo todo ", diz ele.
Programas que se corrigem
A equipe do projeto Selfman está tentando resolver o problema há três anos, buscando descobrir como construir programas que cuidam de si mesmos no ambiente constantemente em mutação da Internet.
"Nós queremos tornar os grandes aplicativos da Internet mais fáceis de lidar", diz Van Roy, "para que todos os problemas de gestão que ocorrem normalmente sejam manipulados pelo próprio sistema. "
A recompensa, segundo ele, será enorme. "Isto irá levar a Internet para o próximo nível."
Autogestão - quatro características-chave
Os pesquisadores do projeto Selfman identificaram quatro funções vitais para que um aplicativo distribuído seja capaz de autogerir-se - autoconfiguração, autoajuste, autocorreção e autoproteção.
Os softwares estão sendo constantemente corrigidos, atualizados ou substituídos. Para que um sistema distribuído se autoconfigure, ele precisa monitorar todos os seus componentes, atualizá-los quando necessário e, a seguir, certificar-se de que todas as partes do sistema continuarão falando umas com as outras depois da atualização.
"Nosso sistema pode perguntar a um componente: De que versão você é? Com quem você está se comunicando? Ele pode então pode substituir uma versão antiga por uma nova, conforme necessário," diz Van Roy.
A capacidade de autoajuste significa que o sistema pode se ajustar instantaneamente em resposta a alterações na carga de processamento e ao movimento de componentes saindo ou entrando na rede.
"Suponha que um nó está ficando sobrecarregado", diz Van Roy. "O nosso algoritmo de balanceamento de carga aloca novos nós próximos a esse ponto quente. Ele espalha o superaquecimento para os outros nós e o ponto quente esfria."
Replicação de dados
A Internet é um ambiente imprevisível - roteadores que travam, cabos interrompidos, partes do sistema têm sobrecarga e interrompem o serviços, todos os componentes estão sujeitos a entrar e sair do ar.
"Com o Selfman", diz Van Roy, "cada nó armazena uma parte dos dados e cada fatia dos dados é replicada um certo número de vezes. Se um nó falhar, os outros nós detectam a falha, encontram um novo nó e lhe fornecem os dados que faltam. O sistema conserta a si mesmo."
Autodefesa
Um dos maiores problemas enfrentados pelos pesquisadores do Selfman foi autodefesa.
Os pesquisadores descobriram que a segurança de um sistema depende da sua topologia - a forma como os nós são ligados uns aos outros. Eles descobriram que redes de pequeno porte - nos quais a maioria dos nós não estão diretamente ligados, mas nas quais qualquer nó pode se comunicar com outro em uns poucos passos - são os mais seguros.
"Com uma rede de pequeno porte é mais fácil de detectar, isolar e extrair nós ruins", diz Van Roy. "O serviço de segurança observa o comportamento do sistema. Se ele percebe que certas partes da rede estão agindo de forma anormal, ele entra em ação."
Arquitetura estruturada
A equipe descobriu que transformar essas capacidades avançadas em aplicativos úteis exige uma abordagem altamente estruturada.
A base de cada aplicação é uma rede estruturada sobreposta. Trata-se de um programa - ele próprio replicado por toda a rede - que monitora todos os nós e as conexões entre eles, podendo decidir quando e como corrigir os problemas.
O próximo nível é um sistema de armazenamento replicado. Ele garante que cada nó tem acesso aos mesmos dados, e que os dados sempre são replicados para garantir que eles não se percam.
Resolvedor de problemas
O terceiro nível contém o resolvedor de problemas transacional do Selfman. Ele se baseia em um sofisticado algoritmo chamado Paxos para fornecer uma maneira sistemática de chegar a um consenso entre qualquer número de componentes falíveis.
Van Roy usa a analogia de uma transferência entre duas contas bancárias. "Se você quiser reduzir uma conta bancária em 100 reais e acrescentar 100 reais a outra, você quer as duas coisas simultaneamente ou nenhuma delas," diz ele." Cada nó deve ver os mesmos dados."
"Alcançar todo esse comportamento fluido - onde, mesmo se nós estão falhando ou novos nós estão entrando e saindo, a rede nunca pode ter problemas e bloquear o sistema - foi um grande desafio técnico", diz Van Ray." Precisamos do Paxos para fazê-lo funcionar."
Aplicativos inteligentes
A arquitetura e os componentes do Selfman foram utilizados para construir algumas aplicações impressionantes. Elas incluem uma Wikipédia distribuída que pode manipular muito mais consultas do que a versão atual, um serviço comercial de streaming de vídeo e um programa gráfico que permite que vários usuários colaborem em um projeto.
Van Roy acredita que Selfman abre a porta para uma infinidade de aplicativos para Internet de alto desempenho, flexíveis e que não travam. "Agora mesmo nós estamos apenas arranhando a superfície," diz ele.