Vous êtes sur la page 1sur 2

Programao em Sistemas Distribudos

Exerccios de Fixao 02 Google

------------------------------------------------------------------------------------------------------------------------------

Orientaes

Esta atividade trata do importante problema de como uma empresa de internet muito
grande tem encarado o projeto de um sistema distribudo para suportar um exigente
conjunto de aplicaes do mundo real. Esse um assunto muito desafiador e exige
entendimento completo das escolhas tecnolgicas disponveis para desenvolvedores de
sistemas distribudos em todos os nveis do desenvolvimento de sistemas incluindo
paradigmas de comunicao, servios disponveis e algoritmos distribudos associados.
Os inevitveis compromissos associados s escolhas de projeto exigem o entendimento
completo do domnio de aplicao.
A estratgia adotada destacar a arte do projeto de sistemas distribudos por meio de
um estudo de caso importante, ou seja, o exame do projeto da infraestrutura do Google,
da plataforma e do middleware utilizados pelo Google para suportar seu mecanismo de
busca e expandir o conjunto de aplicaes e servios. Esse um estudo de caso atraente,
pois trata do que o sistema distribudo mais complexo e de grande escala j construdo
e que tem demonstrado satisfazer seus requisitos de projeto. Esse estudo examina a
arquitetura global do sistema, junto a estudos aprofundados dos principais servios
subjacentes.
A infraestrutura do Google uma de vrias solues de middleware para computao
em nuvem surgida recentemente (embora disponvel completamente apenas dentro do
Google). Outras solues incluem o AWS (Amazon Web Services), Azure (Microsoft) e
solues de cdigos-fonte aberto, incluindo Hadoop (que contm uma implementao
de MapReduuce (hadoop.apache.org), Eucalyptus (open.eucalyptus.com), Google App
Engine e Sector Sphere (sector.sourceforge.net). Tambm foi desenvolvido o
OpenStreetMap (www.openstreetmap.org), uma alternativa aberta ao Google Maps
que funciona de maneira semelhante, usando o software desenvolvido por voluntrios
e servidores no comerciais. Detalhes dessas implementaes esto geralmente
disponveis, e estimula-se o aluno a estudar uma seleo dessas arquiteturas,
comparando as escolhas de projeto com as apresentadas no estudo de caso.

1.1 Responda
1. At que ponto o Google agora uma empresa provedor de nuvem?1.
2. Os principais requisitos da infraestrutura do Google so escalabilidade, confiabilidade,
desempenho e abertura. D trs exemplos de onde esses requisitos poderiam estar em
conflito e discuta como o Google lida com esses conflitos em potencial.2
1

Coulouris, G.; DOLLIMORE, J.; KINDBERG, T.; BLAIR, G. Sistemas Distribudos Conceitos e Projeto.
Porto Alegre: Bookman, 5 edio. p. 921
2
Coulouris, G.; DOLLIMORE, J.; KINDBERG, T.; BLAIR, G. Sistemas Distribudos Conceitos e Projeto.
Porto Alegre: Bookman, 5 edio. p. 921

Programao em Sistemas Distribudos

Exerccios de Fixao 02 Google

-----------------------------------------------------------------------------------------------------------------------------3. Uma especificao de uma estrutura Person em XML foi apresentada na Figura 4.12.
Reescreva essa especificao usando buffers de protocolo3
4. Discuta at que ponto o estilo RPC suportado pelo componente buffers de protocolo
melhora a capacidade de extenso (especialmente a deciso de projeto de ter apenas
um argumento e um resultado.4
5. Explique por que a infraestrutura do Google suporta trs recursos de armazenamento
de dados distintos. Por que o Google no adota apenas m banco de dados distribudo
comercial, em vez dos trs servios separados?5
6. O GFS e a BIGTABLE fazem a mesma escolha bsica de projeto ter um nico mestre.
Quais as repercusses de uma falha desse mestre nico em cada caso?6
7. Na seo 21.5.2, compara-se a estratgia de consistncia de cache do Chubby com o
NFS, concluindo que o NFS oferece semntica muito mais fraca, em termos de ver
diferentes verses de arquivos em diferentes ns. Faa uma comparao semelhante
entre as estratgias de consistncia de cache adotadas no Chubby e no AFS.7
8. Conforme descrito na seo 21.5.2, a implementao do Paxos depende da gerao de
nmeros sequenciais cada vez maiores e globalmente exclusivos. Essa seo tambm
descreveu uma possvel implementao. Descreva uma estratgia alternativa para
implementar esses nmeros sequenciais.8
9. A figura 21.18 lista vrias aplicaes possveis de MapReduce. Descreva uma aplicao
possvel e esboce como isso seria implementado no MapReduce, fornecendo em
particular, esboos de implementaes das funes map e reduce.9
10. D um exemplo de computao distribuda que seria difcil implementar no MapReduce,
fornecendo as razes para sua resposta.10

Coulouris, G.; DOLLIMORE, J.; KINDBERG, T.; BLAIR, G. Sistemas Distribudos Conceitos e Projeto.
Porto Alegre: Bookman, 5 edio. p. 929
4
Coulouris, G.; DOLLIMORE, J.; KINDBERG, T.; BLAIR, G. Sistemas Distribudos Conceitos e Projeto.
Porto Alegre: Bookman, 5 edio. p. 931
5
Coulouris, G.; DOLLIMORE, J.; KINDBERG, T.; BLAIR, G. Sistemas Distribudos Conceitos e Projeto.
Porto Alegre: Bookman, 5 edio. p. 935
6
Coulouris, G.; DOLLIMORE, J.; KINDBERG, T.; BLAIR, G. Sistemas Distribudos Conceitos e Projeto.
Porto Alegre: Bookman, 5 edio. p. 937-938, 950-952
7
Coulouris, G.; DOLLIMORE, J.; KINDBERG, T.; BLAIR, G. Sistemas Distribudos Conceitos e Projeto.
Porto Alegre: Bookman, 5 edio. p. 943-944
8
Coulouris, G.; DOLLIMORE, J.; KINDBERG, T.; BLAIR, G. Sistemas Distribudos Conceitos e Projeto.
Porto Alegre: Bookman, 5 edio. p. 958
9
Coulouris, G.; DOLLIMORE, J.; KINDBERG, T.; BLAIR, G. Sistemas Distribudos Conceitos e Projeto.
Porto Alegre: Bookman, 5 edio. p. 958
10
Coulouris, G.; DOLLIMORE, J.; KINDBERG, T.; BLAIR, G. Sistemas Distribudos Conceitos e Projeto.
Porto Alegre: Bookman, 5 edio. p. 958