Desenvolver software capaz de realizar transações ACID(atômicas, consistentes, isoladas e duráveis) em ambientes com dezenas de acessos simultâneos já permite que alguns problemas complexos da computação sejam para nós percebidos.
E
isto torna-se muito mais impactante em programas executados em vários
servidores de aplicação em cluster.
Ou seja, nosso maior desafio é a computação distribuída associada ao grande número de acessos simultâneos.
Encontrei este artigo que descreve as "Falácias da Computação Distribuída". As autorias destas falácias são atribuídas à mentes como Peter Deutsch e James Goslin.
Falácias da computação distribuída:
1. A rede é confiável
2. A latência é zero
3. A banda é infinita
4. A rede é segura
5. A topologia é imutável
6. Existe apenas um administrador
7. Não há custo para transporte de dados
8. A rede é homogênea
No texto do artigo, estão descritas algumas das consequências destes pensamentos que muitas vezes, por impulso, tomamos como verdade. Seguindo tais falsas verdades, acabamos construindo aplicações inseguras, com baixo desempenho e que não garantem a integridade da informação.
Eu gostaria de reforçar os itens 2, 3 e 7. Quando nossa mente nos trás um falso sentimento de que as conexões têm latência zero, banda infinita e que não há custo para transporte de dados esquecemos de nos preocupar com o o alto consumo de recursos que nossos códigos podem gerar.
Decisões arquiteturais de projetos devem levar em consideração os trade-offs impostos pelo mundo da computação distribuída em relação às regras de negócio envolvidas. É por isso que não existe e nunca existirá uma solução arquitetural única para qualquer sistema de informação.
Ou seja, nosso maior desafio é a computação distribuída associada ao grande número de acessos simultâneos.
Encontrei este artigo que descreve as "Falácias da Computação Distribuída". As autorias destas falácias são atribuídas à mentes como Peter Deutsch e James Goslin.
Falácias da computação distribuída:
1. A rede é confiável
2. A latência é zero
3. A banda é infinita
4. A rede é segura
5. A topologia é imutável
6. Existe apenas um administrador
7. Não há custo para transporte de dados
8. A rede é homogênea
No texto do artigo, estão descritas algumas das consequências destes pensamentos que muitas vezes, por impulso, tomamos como verdade. Seguindo tais falsas verdades, acabamos construindo aplicações inseguras, com baixo desempenho e que não garantem a integridade da informação.
Eu gostaria de reforçar os itens 2, 3 e 7. Quando nossa mente nos trás um falso sentimento de que as conexões têm latência zero, banda infinita e que não há custo para transporte de dados esquecemos de nos preocupar com o o alto consumo de recursos que nossos códigos podem gerar.
Decisões arquiteturais de projetos devem levar em consideração os trade-offs impostos pelo mundo da computação distribuída em relação às regras de negócio envolvidas. É por isso que não existe e nunca existirá uma solução arquitetural única para qualquer sistema de informação.
O
nosso papel como programadores é descobrir como combinar soluções
para minimizar os efeitos destas limitações de forma que as
exigências das regras de negócio sejam satisfeitas com o resultado
mais eficiente possível. Tenho redescoberto JEE à cada dia. E ela
tem se mostrado uma tecnologia fantástica para atingir tal objetivo.