1. Arquitetura de Sistemas
Reais
Bruno Marquete da Silva
Geovane Pazine Filho
Igor Vinicius dos Santos Silva
Inael Rodrigues de Oliveira Neto
Jackeline Neves de Almeida
Vinícius Gonçalves Braga
2. Agenda
● Visão geral de arquiteturas;
● Node.js
● Facebook
● Twitter
● Google (Search)
● Exemplo de código
3. Visão Geral
A arquitetura de Software é a estrutura do
sistema que compreende:
● Os elementos que o compõem
● Os relacionamentos entre eles
● Seus relacionamentos com o ambiente
4. Node.js
Objetivo:
Fornecer uma maneira fácil de criar programas
de rede escaláveis
Como:
JavaScript do lado do servidor
5. Node.js
● O Node soluciona o problema de gargalo de arquitetura de aplicativos
da web mudando a forma como uma conexão é feita no servidor.
● Nunca ocorrerá um impasse de bloqueios.
● Um servidor que o execute pode suportar dezenas de milhares de
conexões simultâneas.
● Programação direcionada a eventos.
6. Node.js
Para o que ele é bom?
● Uma API RESTful - Um serviço da Web que forneça uma API
RESTful recebe alguns parâmetros, interpreta-os, monta uma
resposta e envia-a de volta ao usuário.
● Fila do Twitter - A função do Node é rapidamente coletar o tweet
e passar essa informação para outro processo, responsável por
gravá-lo.
● Servidor de arquivos de imagem - (pense no Facebook ou Flickr)
a empresa pode usá-lo para codificar um recuperador de arquivos
fácil e, a seguir, tratar dezenas de milhares de conexões.
7. Facebook (Timeline)
● MySQL/InnoDB para armazenamento;
● Multifeed - um sistema desenvolvido pelo Facebook
responsável por notificar e ranquear as atualizações dos
perfis;
● Thrift para comunicação;
● Memcached - sistema de cache distribuído, utilizado
para manter as informações do Timeline.
9. Twitter
● Tudo na RAM
○ Banco de dados é Backup (Cassandra)
● Ruby em front-end, Scala em back-end
● Modelo de Mensagem e processo
assincrono
● Niveis de cache
○ Fragment cache (Versões serializadas dos tweets)
○ Row cache (Usuários e Tweets)
○ Vector cache (Array de IDs de Tweet)
● Middleware é uma mistura de C com Scala
10. Google (Search)
Como já sabemos, o Google tem uma
história na busca de recursos
computacionais que suportem a sua
missão, de forma confiável e eficiente,
com o menor custo.
"Organizar as informações do mundo e torná-las
mundialmente acessíveis e úteis.
Missão do Google