As melhores táticas para integração de aplicativos na nuvem

24/01/2011

Falta de padrões e insegurança dominam a área de integração de aplicativos em nuvem. Conheça o caminho das pedras.

Em meio à barulheira promovida por diferentes fornecedores de soluções para computação em nuvem, as várias especificações muitas vezes perdem o sentido ou têm seu real significado maquiado. É importante dialogar de forma diferente com cada fornecedor. Para manter o foco no tema, vamos tratar a integração de sistemas SaaS (Software as a Service, software como serviço, em tradução livre do inglês) e aplicativos baseados na nuvem.

Previsões da nuvem em 2011
Uma das características principais da computação em nuvem é a forma de integração, que permite a aplicação de várias técnicas. O fato de a maioria dos aplicativos para computação em nuvem se apresentar na forma de serviços disponibilizados na internet imprime a tendência de seguir uma arquitetura voltada a serviços (SOA), mesmo que não adote todos os protocolos correspondentes. De posse do ferramental apropriado e com estratégias de desenvolvimento bem pensadas, é possível integrar aplicativos com base na aplicação de diferentes técnicas. Bem posicionadas, é, ainda, possível rodar diferentes serviços na nuvem ao mesmo tempo. Para tal, basta entender as limitações de cada serviço. Entenda que camadas estão em jogo:

Camada 1: Integração on-screen
Também conhecidas por Mashups, consiste em uma integração feita a toque de caixa e um tanto “suja”. O exercício do código reúne, em vários iFrames consolidados na interface, o conteúdo de diferentes URLs. Esse é o método básico para receber imagens, mapas, novos itens e feeds de serviços como o Google e o Yahoo!. A tendência é que tal procedimento se torne cada vez mais poderoso por reunir pacotes gráficos e outros tipos de arquivo em uma mesma interface. Com base na linguagem AJAX, o visual das páginas pode receber uma interface de usuário moderna e agradável. Infelizmente, as mashups não se atêm demasiadamente às diretrizes de segurança, o que obriga o programador da interface a procurar PR soluções de validação de identidade por parte do servidor (Server-side validation) para transmitir informações confidenciais e para oferecer ao usuário a opção de login único, sem ter de digitar as credenciais cada vez que quiser acessar o conteúdo. O preço para usar essa interface simples é limitar ao direito de leitura ou incrementar a segurança com códigos complexos.

Camada 2: Integração dos layers de apresentação
Dependendo da maneira que seu aplicativo na nuvem  gera as páginas da web, pode ser necessário instalar uma camada de programação no servidor; diferente do que acontece com as mashups, em que a renderização se dá quase inteiramente no browser. Usar a metodologia das mashups é aconselhado para reunir diferentes recortes em uma interface única, mas, integrar as informações na camada de apresentação permitirá adicionar campos individuais em seções determinadas na página. Um exemplo desse uso seria (em uma solução CRM) apresentar um campo com as informações sobre o atraso no pagamento de determinada conta por um cliente, ao passo que tal informação pode estar disponível apenas nos sistemas de contabilidade. Trazer tal informação para dentro da interface de atendimento em sistemas CRM permitiria reações imediatas e daria ao usuário um nível de informação maior. Tal metodologia é também mais simples que promover uma integração total.

Todavia há de se considerar que a fragilidade de tal aproximação consiste justamente em sua simplicidade. A informação sobre o atraso no pagamento não ficaria armazenada em qualquer lugar no sistema CRM, o que o deixaria indisponível para integrar relatórios, alertas e outras funções. Essa estratégia é normalmente usada para ambientes em que direitos de leitura são suficientes por ausência das diretrizes de segurança que regem o resto do sistema.

Camada 3: Ambiente lógico
É onde a integração acontece de maneira mais complexa. Esse processo une as camadas que conserva os aplicativos em um ambiente que dispões da melhores infraestruturas de segurança disponíveis. O fator que realmente serve para diferenciar um aplicativo de computação em nuvem dos outros é a riqueza e a simplicidade oferecidas pelas APIs, responsáveis por receber chamadas de entrada e de saída ou, dedicadas a diálogos mais simples com XML e JSON.
Quando a questão é produtividade, documentação precisa e matrizes de código são absolutamente imprescindíveis, vale apena avaliar os fornecedores por esses parâmetros.
Boa parte dos modelos de computação em nuvem não passam de uma trama relativamente fraca, baseada em rotinas de entrada e de saída. Criar filas de processos não é a saída ideal, e integração com base em loops (no modelo de duas fases) é um processo altamente complexo. Em situações nas quais o ambiente da nuvem precisa enviar mensagens, a equipe de desenvolvedores terá de implementar uma rotina lógica dentro do aplicativo para disparar o processo de envio de mensagens. Em seguida, os desenvolvedores terão de bolar uma estratégia (pode ser baseada no emprego de um servidor de integração dedicado) para dar conta de quedas na rede, indisponibilidade de aplicativos e verificação da entrega de mensagens.

Ao chegar nessa camada, o código de integração tem acesso a todos os ambientes, sistemas e funções da plataforma, o que faz da segurança um fator de altíssima importância.

Camada 4: integração de dados
Acessa diretamente a base de dados dos aplicativos em nuvem. Em diversas arquiteturas, é impossível acessar esse nível de forma direta por ser arriscado escrever qualquer dado nele. Até mesmo processos de integração de leitura podem ser problemáticos, pois não existe, na tabela, qualquer indicativo de status do aplicativo ou uma coordenação de transação. Logo, para a simples leitura de dados – como em casos de replicação de dados para uma ferramenta de analytics – nada é comparável à velocidade do acesso direto à base de dados.

É outro ambiente, em que a segurança tem papel importante, porque o modelo revela o que há dentro das tabelas de controle de acesso. A integração de dados deverá ocorrer predominantemente com base em privilégios de administrador de sistemas, o que impede que o fluxo de dados resultante seja acessível por parte de usuários ordinários.

Site: Computerworld
Data: 19/01/2011
Hora: 07h30
Seção: Tecnologia
Autor: ------
Link: http://computerworld.uol.com.br/tecnologia/2011/01/17/as-principais-taticas-para-integracao-de-aplicativos-na-nuvem/