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
IIS - Uma questão de arquitetura
IIS - Uma questão de arquitetura
IIS - Uma questão de arquitetura
IIS - Uma questão de arquitetura
IIS - Uma questão de arquitetura
IIS - Uma questão de arquitetura
IIS - Uma questão de arquitetura
IIS - Uma questão de arquitetura
IIS - Uma questão de arquitetura
IIS - Uma questão de arquitetura
Próximos SlideShares
Carregando em…5
×

IIS - Uma questão de arquitetura

990 visualizações

Publicada em

A distribuição de aplicações web em .NET na sua maioria é feita através do IIS, porém as aplicações podem ser compostas de tecnologias mistas, dependendo das necessidades das aplicações. Neste cenário surge mais uma tecnologia disruptiva, o NodeJS, onde sua utilização tem impacto direto, tanto positivo quanto negativo, na arquitetura da aplicação. Nesta palestra serão apresentados todos os aspectos que compõem a arquitetura do IIS, conceitos mais intimos de seu funcionamento interno, como também a arquitetura do NodeJS, seus benefícios e como a composição IIS e NodeJS, pode ser extremamente útil se bem empregada.

Palestra apresentada inicialmente no DNAD12

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

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

Nenhuma nota no slide

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

×