Dnad 2012 iis - uma questão de arquitetura

306 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
306
No SlideShare
0
A partir de incorporações
0
Número de incorporações
5
Ações
Compartilhamentos
0
Downloads
2
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Dnad 2012 iis - uma questão de arquitetura

  1. 1. OU? COM?Uma questão de arquitetura
  2. 2. EU Sidney F, drogado e prostituido. Há 6 anos ainda luta para se livrar doWebForms. Ativista contra a entrada de novas drogas na vida do desenvolvedor moderno como Coffeescript.
  3. 3. Internet
  4. 4. Primeiro PassoAdmita que você tem um problema
  5. 5. “Um homem que não conhece suahistória está fadado a repeti-la”
  6. 6. IIS 1.0• 1995• ONE-WAY• Apenas arquivos estáticos• Arquitetura Monolitica(MTX.EXE)• Add-on do Windows NT 3.51
  7. 7. IIS 2.0• 1996• TWO-WAY, sofrivel• Surge o CGI• Ainda é Monolitico• Embutido no Windows NT 4
  8. 8. IIS 3.0 e 4.0• 1998• TWO-WAY, ainda sofrivel• Ainda é Monolitico• Windows NT 4 (Service Pack 3)• IIS 4 era Option Pack
  9. 9. IIS 5.0• 2000• TWO-WAY, fácil• Core Monolitico, com pontosde extensão• DLLHOST.EXE• Windows 2000• ASP é criado (uhuuuuu)
  10. 10. IIS 6.0• 2003• TWO-WAY, bem fácil• Core com multiplos niveis deisolamento• W3WP .EXE• Windows 2003 e XP• .NET entra em cena
  11. 11. IIS 7.0 e 7.5• 2008• MULTI-WAY, bem fácil• Completamente reescrito• Windows 2008 e Vista• Arquitetura baseada em plugins
  12. 12. Overview of IIS 6.0 Architecturehttp://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/843df643-1dbb- 4fb6-910d-ec1965fa9e43.mspx?mfr=true
  13. 13. Internamente é assim
  14. 14. http://sitequalquer.com/RotaLouca/13HTTP.SYS http://sitequalquer.com/DrogaPesada.aspx http://sitequalquer.com/IMAGEM.PNG http://sitequalquer.com/TESTE.HTM Como está configurado oSVCHOST.EXE mapeamento de requisições? Static Provider .NET ProviderW3WP.EXE
  15. 15. var result =command.ExecuteNonQuery( “UPDATE Tabela SET Ativo=1“);
  16. 16. A thread fica paradaapenas aguardando aresposta do Banco de Dados
  17. 17. Tempo do I/OL1: 3 instruçõesL2: 14 instruçõesRAM: 250 instruçõesDISK: 41,000,000 instruçõesNETWORK: 240,000,000 instruções
  18. 18. var result =command.ExecuteNonQuery( “UPDATE Tabela SET Ativo=1“);// 240.000.000 + tempo deprocessamento do banco depoisprint(result.TotalCount);
  19. 19. .NET Provider Milhões de instruções perdidas 6 Threads ocupando memóriaProgram Counter }Para de ProcessarProgram CounterVolta a Processar
  20. 20. Como evitar este desperdicio?
  21. 21. NodeJShttp://s3.amazonaws.com/four.livejournal/20091 117/jsconf.pdf
  22. 22. Porque NodeJS?Eu gosto e gosto não se discute.
  23. 23. Como funciona a arquitetura no NodeJS?
  24. 24. http://sitequalquer.com/RotaLouca/13LIBEV http://sitequalquer.com/DrogaPesada.aspx http://sitequalquer.com/IMAGEM.PNG http://sitequalquer.com/TESTE.HTM Static Provider Sua AplicaçãoJS Libraries
  25. 25. var result =command.ExecuteNonQuery( “UPDATE Tabela SET Ativo=1“, function(result){ // faz algo com o retorno });
  26. 26. Node JS1a RequisiçãoPC processa LIBEVCódigo chama IOPC volta p/ LIBEV function (result) { … } O tempo que para o IO retornar e acionar o callback pode levar muito mais de 240.000.000 instruções se lembram? Vamos liberar a Thread para processar outra coisa
  27. 27. É possivel usar oNodeJS junto com IIS?
  28. 28. Internamente ficaria assim
  29. 29. É possivel desenvolver considerando o IO Bloqueante no .NET?
  30. 30. Mas meus sistemas legados é possivelmudar essa arquitetura?
  31. 31. Dúvidas?
  32. 32. Só por hoje Obrigado

×