Faculdade de Ciências e Tecnologia – FCT UNESPDepartamento de Matemática e Computação – DMCBachelado em Ciência da Computa...
• Introdução• Problemática• Justificativa• Escalabilidade• Bancos de dados não-relacionais• Node.JS• ObjetivosAgendasegunda...
IntroduçãoUso da internet em constante crescimentosegunda-feira, 29 de abril de 13
Como suportar a grande quantidade deacesos ?• Estrutura Física• Alta quantidade de servidores• Planejamento de estrutura (...
ProblemáticaGrandes aplicações web precisam manter-seestáveis e apresentar bom desempenho mesmo comalta quantidade de aces...
JustificativaUnindo tecnologias não tradicionais como as queserão abordadas neste projeto, podemos criar ummodelo de aplic...
Assim, temos como objetivo criar umaaplicação que em comparação com os modelostradicionais, tenha performance muito superi...
Escalabilidade“Na Engenharia de Software e Telecomunicações, é acapacidade de um sistema ou hardware manter-seestável enqu...
Bancos de dados não-relacionais• Muitas operações de entrada e saída• Banco de dados são responsáveis pelo “gargalo”em uma...
MongoDB• Alta performance• Orientado a documentos• Altamente escalável• Escalabilidade horizontal• Map Reducesegunda-feira...
Node.JS• Aplicação server-side• Programação orientada a eventos• I/O não bloqueante (assíncrono)• Engine JavaScript Google...
Comparativo simples• Nível de concorrência: 20 mil• Total de requisições: 1.000.000• Tempo Node.JS: 1043.076 seg.• Tempo A...
Objetivos• Desenvolvimento de um modelo de aplicaçãoaltamente escalável• Busca por alta performance• Implementado operaçõe...
Objetivos Específicos• Estudo e desenvolvimento de algoritmos paraoperações de entrada e saída utilizando oparadigma de or...
Referências• M. Wilson, “Contruindo aplicações Node com MongoDB e Backbone”, (O’Reilly), 2013, ISBN978010449-33739-1• S. T...
Upcoming SlideShare
Loading in …5
×

Alto desempenho e escalabilidade em aplicações web utilizando banco de dados não-relacional e programação orientada a eventos na camada server-side com Node.JS

1,740 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,740
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
16
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Alto desempenho e escalabilidade em aplicações web utilizando banco de dados não-relacional e programação orientada a eventos na camada server-side com Node.JS

  1. 1. Faculdade de Ciências e Tecnologia – FCT UNESPDepartamento de Matemática e Computação – DMCBachelado em Ciência da ComputaçãoAlto desempenho e escalabilidade em aplicaçõesweb utilizando banco de dados não-relacional eprogramação orientada a eventos na camadaserver-side com Node.JSVagner José Santanasegunda-feira, 29 de abril de 13
  2. 2. • Introdução• Problemática• Justificativa• Escalabilidade• Bancos de dados não-relacionais• Node.JS• ObjetivosAgendasegunda-feira, 29 de abril de 13
  3. 3. IntroduçãoUso da internet em constante crescimentosegunda-feira, 29 de abril de 13
  4. 4. Como suportar a grande quantidade deacesos ?• Estrutura Física• Alta quantidade de servidores• Planejamento de estrutura (Scale Up / ScaleOut)• Alto Custosegunda-feira, 29 de abril de 13
  5. 5. ProblemáticaGrandes aplicações web precisam manter-seestáveis e apresentar bom desempenho mesmo comalta quantidade de acessos simultâneos.Empresas responsáveis por grandes aplicaçõesprecisam economizar custos com estruturas deservidores.Como unir os dois pontos ?segunda-feira, 29 de abril de 13
  6. 6. JustificativaUnindo tecnologias não tradicionais como as queserão abordadas neste projeto, podemos criar ummodelo de aplicação escalável, explorando o máximoda plataforma escolhida.A programação orientada a eventos auxilia o ganhode performance pois evita o bloqueio, comum emaplicações tradicionais que utilizam threads parasuportar requisições simultâneas.segunda-feira, 29 de abril de 13
  7. 7. Assim, temos como objetivo criar umaaplicação que em comparação com os modelostradicionais, tenha performance muito superior, ecusto inferior para criar a estrutura escalável.segunda-feira, 29 de abril de 13
  8. 8. Escalabilidade“Na Engenharia de Software e Telecomunicações, é acapacidade de um sistema ou hardware manter-seestável enquanto uma grande quantidade de usuáriosou processamento aumenta significativamente.”segunda-feira, 29 de abril de 13
  9. 9. Bancos de dados não-relacionais• Muitas operações de entrada e saída• Banco de dados são responsáveis pelo “gargalo”em uma aplicação• Bancos de dados relacionais apresentamdificuldades em lidar com grande volume dedadossegunda-feira, 29 de abril de 13
  10. 10. MongoDB• Alta performance• Orientado a documentos• Altamente escalável• Escalabilidade horizontal• Map Reducesegunda-feira, 29 de abril de 13
  11. 11. Node.JS• Aplicação server-side• Programação orientada a eventos• I/O não bloqueante (assíncrono)• Engine JavaScript Google V8• Custo de operações I/O na rede é muito altosegunda-feira, 29 de abril de 13
  12. 12. Comparativo simples• Nível de concorrência: 20 mil• Total de requisições: 1.000.000• Tempo Node.JS: 1043.076 seg.• Tempo Apache: 3570.753 seg.Hello WorldFonte: http://zgadzaj.com/benchmarking-nodejs-basic-performance-tests-against-apache-phpsegunda-feira, 29 de abril de 13
  13. 13. Objetivos• Desenvolvimento de um modelo de aplicaçãoaltamente escalável• Busca por alta performance• Implementado operações real timesegunda-feira, 29 de abril de 13
  14. 14. Objetivos Específicos• Estudo e desenvolvimento de algoritmos paraoperações de entrada e saída utilizando oparadigma de orientação a eventos• Comparativos entre aplicação com banco dedados relacionais e não-relacionais• Testes de carga e simulação de alto número deacessos simultâneossegunda-feira, 29 de abril de 13
  15. 15. Referências• M. Wilson, “Contruindo aplicações Node com MongoDB e Backbone”, (O’Reilly), 2013, ISBN978010449-33739-1• S. Tikov, S. Vinoski, “Node.js: Using Javascript to Build Gugh Performance Network Programs ”. InternetComputing, IEEE ,2010.André B. Bondi, “Characteristics of scalability and their impact on performance”, Proceedings of the 2ndinternational workshop on Software and performance, Ottawa, Ontário, Canadá, 2000, ISBN1-58113-195-X.• Felix V. Leitner, “Scalable Network Programming”, http://bulk.fefe.de/scalable- networking.pdf, 2003,acessado em março de 2013.• Ricardo W. Brito, “Bancos de Dados NoSQL x SGBDs Relacionais:Análise Comparativa”, http://www.infobrasil.inf.br/userfiles/27-05-S4-1-68840- Bancos%20de%20Dados%20NoSQL.pdf, 2012,acessado em abril de 2013segunda-feira, 29 de abril de 13

×