7. Estratégias de Distribuição
Primeira lei dos objetos distribuídos: não distribua seus objetos!
Resumo
- Distribuir objetos por máquinas é sedutor e ruim: chamada remota é ordens de grandeza mais lenta que local.
- Primeira lei: não distribua seus objetos. Interface local = grão fino; interface remota = grão grosso.
- Alternativa: cluster, várias cópias do processo completo. Distribua só onde não há escolha.
- Fronteiras inevitáveis: cliente/servidor, aplicação/banco, web/aplicação, pacotes de terceiros.
- Na fronteira: Remote Facade (grão grosso) + Data Transfer Object. Considere mensagens assíncronas.
Perguntas-chave
responda de cabeça, depois abraQual é a primeira lei do design de objetos distribuídos?
Não distribua seus objetos.
Por que interfaces remotas devem ser de grão grosso?
Cada chamada remota é cara; é preciso fazer muito trabalho por chamada, enviando e recebendo vários dados de uma vez.
Como escalar sem distribuir objetos?
Com clustering: várias cópias do sistema completo, cada uma rodando todas as classes em um único processo.
Exercícios de fixação
0/5 respondidas1.
Um arquiteto propõe colocar Cliente, Pedido e Produto em servidores separados 'para escalar'. Segundo Fowler, qual a melhor resposta?
2.
Qual o estilo certo para uma interface remota?
3.
Qual destas é uma fronteira de distribuição que normalmente não dá para evitar?
4.
Quais padrões Fowler recomenda na fronteira de distribuição?
5.
Por que chamadas remotas são problemáticas para um design OO tradicional?