OU?         COM?Uma questão de arquitetura
EU      Sidney F, drogado e prostituido.    Há 6 anos ainda luta para se livrar doWebForms. Ativista contra a entrada de n...
Internet
Primeiro PassoAdmita que você tem um problema
“Um homem que   não conhece suahistória está fadado a       repeti-la”
IIS 1.0• 1995• ONE-WAY• Apenas arquivos estáticos• Arquitetura Monolitica(MTX.EXE)• Add-on do Windows NT 3.51
IIS 2.0• 1996• TWO-WAY, sofrivel• Surge o CGI• Ainda é Monolitico• Embutido no Windows NT 4
IIS 3.0 e 4.0• 1998• TWO-WAY, ainda sofrivel• Ainda é Monolitico• Windows NT 4 (Service Pack 3)• IIS 4 era Option Pack
IIS 5.0• 2000• TWO-WAY, fácil• Core Monolitico, com pontosde extensão• DLLHOST.EXE• Windows 2000• ASP é criado (uhuuuuu)
IIS 6.0• 2003• TWO-WAY, bem fácil• Core com multiplos niveis deisolamento• W3WP  .EXE• Windows 2003 e XP• .NET entra em cena
IIS 7.0 e 7.5• 2008• MULTI-WAY, bem fácil• Completamente reescrito• Windows 2008 e Vista• Arquitetura baseada em plugins
Overview of IIS 6.0        Architecturehttp://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/843df643...
Internamente   é assim
http://sitequalquer.com/RotaLouca/13HTTP.SYS      http://sitequalquer.com/DrogaPesada.aspx              http://sitequalque...
var result =command.ExecuteNonQuery(    “UPDATE Tabela SET Ativo=1“);
A thread fica paradaapenas aguardando aresposta do Banco de        Dados
Tempo do I/OL1:      3 instruçõesL2:      14 instruçõesRAM:     250 instruçõesDISK:    41,000,000 instruçõesNETWORK: 240,0...
var result =command.ExecuteNonQuery(    “UPDATE Tabela SET Ativo=1“);// 240.000.000 + tempo deprocessamento do banco depoi...
.NET Provider                                    Milhões de instruções perdidas                                    6 Threa...
Como evitar este  desperdicio?
NodeJShttp://s3.amazonaws.com/four.livejournal/20091                117/jsconf.pdf
Porque NodeJS?Eu gosto e gosto não     se discute.
Como funciona a arquitetura no    NodeJS?
http://sitequalquer.com/RotaLouca/13LIBEV          http://sitequalquer.com/DrogaPesada.aspx               http://sitequalq...
var result =command.ExecuteNonQuery(    “UPDATE Tabela SET Ativo=1“,    function(result){         // faz algo com o retorn...
Node JS1a RequisiçãoPC processa         LIBEVCódigo chama IOPC volta p/ LIBEV             function (result) { … }         ...
É possivel usar oNodeJS junto com       IIS?
Internamente ficaria assim
É possivel desenvolver  considerando o IO Bloqueante no .NET?
Mas meus sistemas  legados é possivelmudar essa arquitetura?
Dúvidas?
Só por hoje  Obrigado
Dnad 2012   iis - uma questão de arquitetura
Dnad 2012   iis - uma questão de arquitetura
Dnad 2012   iis - uma questão de arquitetura
Dnad 2012   iis - uma questão de arquitetura
Dnad 2012   iis - uma questão de arquitetura
Dnad 2012   iis - uma questão de arquitetura
Dnad 2012   iis - uma questão de arquitetura
Dnad 2012   iis - uma questão de arquitetura
Dnad 2012   iis - uma questão de arquitetura
Dnad 2012   iis - uma questão de arquitetura
Próximos SlideShares
Carregando em…5
×

Dnad 2012 iis - uma questão de arquitetura

291 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
291
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

×