SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
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
Agenda
●   Visão geral de arquiteturas;
●   Node.js
●   Facebook
●   Twitter
●   Google (Search)
●   Exemplo de código
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
Node.js

                 Objetivo:
Fornecer uma maneira fácil de criar programas
            de rede escaláveis
                  Como:
       JavaScript do lado do servidor
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.
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.
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.
Facebook (Timeline)
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
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
Google (Search)

Mais conteúdo relacionado

Semelhante a Arquiteturas de sistemas reais

Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKRyan Padilha
 
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídosAula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídosMessias Batista
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1César Augusto Pessôa
 
Ferramenta de Cloud Computer para apoio à Engenharia de Software
Ferramenta de Cloud Computer para apoio à Engenharia de SoftwareFerramenta de Cloud Computer para apoio à Engenharia de Software
Ferramenta de Cloud Computer para apoio à Engenharia de SoftwareDanilo Sousa
 
Zend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutençãoZend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutençãoFlávio Lisboa
 
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...Lenin Abadie
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsCloves Moreira Junior
 
Nodejs justdigital
Nodejs justdigitalNodejs justdigital
Nodejs justdigitalJust Digital
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3André Luiz Forchesatto
 
Cloudwalker - processamento distribuído em nuvem
Cloudwalker - processamento distribuído em nuvemCloudwalker - processamento distribuído em nuvem
Cloudwalker - processamento distribuído em nuvemFlávio Lisboa
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edtedbrunoaalves
 
Apresentacão Android Components - Programando em camadas
Apresentacão Android Components - Programando em camadasApresentacão Android Components - Programando em camadas
Apresentacão Android Components - Programando em camadasVictor Aldir
 
Turbinando microsserviços em PHP
Turbinando microsserviços em PHPTurbinando microsserviços em PHP
Turbinando microsserviços em PHPFlávio Lisboa
 

Semelhante a Arquiteturas de sistemas reais (20)

Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDK
 
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídosAula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
 
Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018Framework web 01 - Aula UTFPR 2018
Framework web 01 - Aula UTFPR 2018
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1
 
Ferramenta de Cloud Computer para apoio à Engenharia de Software
Ferramenta de Cloud Computer para apoio à Engenharia de SoftwareFerramenta de Cloud Computer para apoio à Engenharia de Software
Ferramenta de Cloud Computer para apoio à Engenharia de Software
 
Zend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutençãoZend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutenção
 
Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0Ruby on Rails for beginners 2.0
Ruby on Rails for beginners 2.0
 
Prazer, computação em nuvem
Prazer, computação em nuvemPrazer, computação em nuvem
Prazer, computação em nuvem
 
Spring boot
Spring bootSpring boot
Spring boot
 
Node js - Javascript Server Side
Node js - Javascript Server SideNode js - Javascript Server Side
Node js - Javascript Server Side
 
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
Uma Arquitetura para a Implantação Automática de Serviços em Infraestruturas ...
 
Framework struts2v2.5
Framework struts2v2.5Framework struts2v2.5
Framework struts2v2.5
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular js
 
Nodejs justdigital
Nodejs justdigitalNodejs justdigital
Nodejs justdigital
 
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
 
Cloudwalker - processamento distribuído em nuvem
Cloudwalker - processamento distribuído em nuvemCloudwalker - processamento distribuído em nuvem
Cloudwalker - processamento distribuído em nuvem
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edted
 
Apresentacão Android Components - Programando em camadas
Apresentacão Android Components - Programando em camadasApresentacão Android Components - Programando em camadas
Apresentacão Android Components - Programando em camadas
 
Django
DjangoDjango
Django
 
Turbinando microsserviços em PHP
Turbinando microsserviços em PHPTurbinando microsserviços em PHP
Turbinando microsserviços em PHP
 

Mais de Inael Rodrigues

Artigo Monitoramento de Pastagem
Artigo Monitoramento de PastagemArtigo Monitoramento de Pastagem
Artigo Monitoramento de PastagemInael Rodrigues
 
Codigo limpo: Nomes Significativos Cap 2
Codigo limpo:  Nomes Significativos Cap 2Codigo limpo:  Nomes Significativos Cap 2
Codigo limpo: Nomes Significativos Cap 2Inael Rodrigues
 
Código limpo: Comentários
Código limpo:   ComentáriosCódigo limpo:   Comentários
Código limpo: ComentáriosInael Rodrigues
 
Código limpo: Funções Capítulo 3
Código limpo: Funções  Capítulo 3Código limpo: Funções  Capítulo 3
Código limpo: Funções Capítulo 3Inael Rodrigues
 
Código Limpo: Testes de Unidade Capítulo 09
Código Limpo: Testes de Unidade Capítulo 09 Código Limpo: Testes de Unidade Capítulo 09
Código Limpo: Testes de Unidade Capítulo 09 Inael Rodrigues
 
Código Limpo: Objetos e Estruturas de Dados cap6
Código Limpo: Objetos e Estruturas de Dados cap6Código Limpo: Objetos e Estruturas de Dados cap6
Código Limpo: Objetos e Estruturas de Dados cap6Inael Rodrigues
 
Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7Inael Rodrigues
 
Livro Código limpo: Classes
Livro Código limpo:  ClassesLivro Código limpo:  Classes
Livro Código limpo: ClassesInael Rodrigues
 
Teste Estrutural usando a ferramenta Jabuti
Teste Estrutural usando a ferramenta JabutiTeste Estrutural usando a ferramenta Jabuti
Teste Estrutural usando a ferramenta JabutiInael Rodrigues
 
TDC 2012: Trilha - Android University Back end Android
TDC 2012: Trilha - Android University Back end Android TDC 2012: Trilha - Android University Back end Android
TDC 2012: Trilha - Android University Back end Android Inael Rodrigues
 
TDC 2012 Trilha – Android University
TDC 2012 Trilha – Android UniversityTDC 2012 Trilha – Android University
TDC 2012 Trilha – Android UniversityInael Rodrigues
 
Ferramentas para Ambiente de Desenvolvimento Ágil
Ferramentas para Ambiente de Desenvolvimento ÁgilFerramentas para Ambiente de Desenvolvimento Ágil
Ferramentas para Ambiente de Desenvolvimento ÁgilInael Rodrigues
 
Android bootcamp 06-01-2012 Part 2
Android bootcamp 06-01-2012 Part 2Android bootcamp 06-01-2012 Part 2
Android bootcamp 06-01-2012 Part 2Inael Rodrigues
 
Android bootcamp 06-01-2012 Part 1
Android bootcamp  06-01-2012 Part 1Android bootcamp  06-01-2012 Part 1
Android bootcamp 06-01-2012 Part 1Inael Rodrigues
 

Mais de Inael Rodrigues (18)

Artigo Monitoramento de Pastagem
Artigo Monitoramento de PastagemArtigo Monitoramento de Pastagem
Artigo Monitoramento de Pastagem
 
Map Reduce
Map ReduceMap Reduce
Map Reduce
 
Backtracking
BacktrackingBacktracking
Backtracking
 
Codigo limpo: Nomes Significativos Cap 2
Codigo limpo:  Nomes Significativos Cap 2Codigo limpo:  Nomes Significativos Cap 2
Codigo limpo: Nomes Significativos Cap 2
 
Código limpo: Limites
Código limpo: LimitesCódigo limpo: Limites
Código limpo: Limites
 
Código limpo: Comentários
Código limpo:   ComentáriosCódigo limpo:   Comentários
Código limpo: Comentários
 
Código limpo: Funções Capítulo 3
Código limpo: Funções  Capítulo 3Código limpo: Funções  Capítulo 3
Código limpo: Funções Capítulo 3
 
Código Limpo: Testes de Unidade Capítulo 09
Código Limpo: Testes de Unidade Capítulo 09 Código Limpo: Testes de Unidade Capítulo 09
Código Limpo: Testes de Unidade Capítulo 09
 
Código Limpo: Objetos e Estruturas de Dados cap6
Código Limpo: Objetos e Estruturas de Dados cap6Código Limpo: Objetos e Estruturas de Dados cap6
Código Limpo: Objetos e Estruturas de Dados cap6
 
Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7Livro Código Limpo: Tratamento de Erros - Cap 7
Livro Código Limpo: Tratamento de Erros - Cap 7
 
Livro Código limpo: Classes
Livro Código limpo:  ClassesLivro Código limpo:  Classes
Livro Código limpo: Classes
 
Paa algoritmos gulosos
Paa  algoritmos gulososPaa  algoritmos gulosos
Paa algoritmos gulosos
 
Teste Estrutural usando a ferramenta Jabuti
Teste Estrutural usando a ferramenta JabutiTeste Estrutural usando a ferramenta Jabuti
Teste Estrutural usando a ferramenta Jabuti
 
TDC 2012: Trilha - Android University Back end Android
TDC 2012: Trilha - Android University Back end Android TDC 2012: Trilha - Android University Back end Android
TDC 2012: Trilha - Android University Back end Android
 
TDC 2012 Trilha – Android University
TDC 2012 Trilha – Android UniversityTDC 2012 Trilha – Android University
TDC 2012 Trilha – Android University
 
Ferramentas para Ambiente de Desenvolvimento Ágil
Ferramentas para Ambiente de Desenvolvimento ÁgilFerramentas para Ambiente de Desenvolvimento Ágil
Ferramentas para Ambiente de Desenvolvimento Ágil
 
Android bootcamp 06-01-2012 Part 2
Android bootcamp 06-01-2012 Part 2Android bootcamp 06-01-2012 Part 2
Android bootcamp 06-01-2012 Part 2
 
Android bootcamp 06-01-2012 Part 1
Android bootcamp  06-01-2012 Part 1Android bootcamp  06-01-2012 Part 1
Android bootcamp 06-01-2012 Part 1
 

Arquiteturas de sistemas reais

  • 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