Arquitetura:umaquestãodeestilo?byVanilsonBurégiovanilson.comvanilson@gmail.comUniversidadeFederaldePernambucoCentrodeInfor...
vanilson.comArquitetura
vanilson.comPorquearquitetura?
vanilson.comNecessidadedeumaarquitetura...● 38anosdeconstrução–147pedreiros,0(zero)arquitetos● 160salas–40quartos,6cozinha...
vanilson.comEarquiteturadesoftware?
vanilson.comArquiteturadeSoftwareOqueé?“A arquitetura de software de um programa ou sistemacomputacional é a estrutura (ou...
vanilson.comQuaisosprincipaisfatoresparaumbomdesign?
vanilson.comPrincipaisfatoresparaumbomdesignBaixo Acoplamento Alta CoesãoFonte:borba.blog.br
vanilson.comEestiloarquitetural?Oqueé?
vanilson.comEstiloArquiteturalConjuntoderegraserestrições[constraints]impostasaoprojetodeumprodutoparaaobtençãodeproprieda...
vanilson.comNaconstruçãocivil…
vanilson.comConstruçãoConjuntodeConstraintsPropriedadesbenéficasEstiloArquiteturalLimitaVisaobterPermitir o escoamentorápi...
vanilson.comEnocontextodeSOFTWARE?
vanilson.comDesignConjuntodeConstraintsAtributosdeQualidadeEstiloArquiteturalAlta disponibilidade,performance,discoverabil...
vanilson.comPara responder: http://bit.ly/AQ_NTI
vanilson.comAdotandoessadefinição… Podemosconsidercomoestilosarquiteturais…SOAPipes&filtersRESTCamadasClient-server...
vanilson.comArquiteturaVsEstilo ÉpossívelcriarmosarquiteturasDISTINTASparasistemasespecíficosutilizandooMESMO estilo!
vanilson.comAlgunsexemplosdeabordagensanalisadassobaperspectivadeestilosarquiteturais…
vanilson.com Constraint– Projetar o sistema como um conjunto de filters que transformam stream de dados de entrada em um ...
vanilson.com Constraint– Decompor a aplicação em componentes(funcionais ou lógicos) reutilizáveis que expõeminterfacesbem...
vanilson.com Constraint– “Segregrar”osistemaem2tiposdeaplicações,ondea aplicação do tipo cliente faz requisições aoservid...
vanilson.comEstiloArquiteturalemCamadasConstraintsDividirlogicamenteosistema emcamadascomresponsabilidades bemdefinidas.As...
vanilson.comEstiloArquiteturalSOA(Service-OrientedArchitecture)ConstraintAplicaçãodeveexporeconsumirfuncionalidadescomoums...
vanilson.comWebServicesSOAP-BasedWebService● ExpõeOPERAÇÕESquerepresentamLÓGICA● UsaMétodoHTTPPOST● Suportaconversações st...
vanilson.comSemserviçoEstiloArquiteturalSOA(Service-OrientedArchitecture)
vanilson.comCom serviçoEstiloArquiteturalSOA(Service-OrientedArchitecture)Semserviço
vanilson.comMas,enaPRÁTICA?
vanilson.comImportante!Estilosevoluemparasatisfazernecessidadesemergentes…
vanilson.comPrimeiraLeideArquiteturadeSoftwaredeBorbaTodaarquiteturadefinidaestáerrada!Fonte:borba.blog.br
vanilson.comSegunfaLeideArquiteturadeSoftwaredeBorbaTodaarquiteturadefinidaquecomprovadamentefuncionaestaráerradaembreve.F...
vanilson.comEstudodeCasoTWITTERTabelaÚnicaPartiçãoporPKParaencontrar tweetsrecentesporusuário temqueprocuraremNpartiçõesPa...
vanilson.comFacebookBigPipeServidorHTTPRequestThreadsFontes:borba.blog.br ;http://on.fb.me/155VstG
vanilson.comComodocumentartudoisso?
vanilson.comDiferentesVisões
vanilson.comEnocontextodeSOFTWARE?
vanilson.comDiferentes Visões
vanilson.comQualoníveldedocumentaçãoideal?
vanilson.comResultado da Enquete (http://bit.ly/AQ_NTI)
VanilsonBurégio[vanilson.com]–[vaab@cin.ufpe.br]By Vanilson Burégiovanilson.comObrigado!
Próximos SlideShares
Carregando em…5
×

2013 05-27-arquitetura uma-questao_de_estilo_nti-vaab

235 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
235
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

2013 05-27-arquitetura uma-questao_de_estilo_nti-vaab

  1. 1. Arquitetura:umaquestãodeestilo?byVanilsonBurégiovanilson.comvanilson@gmail.comUniversidadeFederaldePernambucoCentrodeInformática,Recife,Pernambuco-Brazil
  2. 2. vanilson.comArquitetura
  3. 3. vanilson.comPorquearquitetura?
  4. 4. vanilson.comNecessidadedeumaarquitetura...● 38anosdeconstrução–147pedreiros,0(zero)arquitetos● 160salas–40quartos,6cozinhas,2porões,950portas● 65portasviradasparaparedes,●13escadariassemuso,●24claraboiasnopisoNãoexistenenhumaplantadaconstruçãoWinchester “Mystery” House
  5. 5. vanilson.comEarquiteturadesoftware?
  6. 6. vanilson.comArquiteturadeSoftwareOqueé?“A arquitetura de software de um programa ou sistemacomputacional é a estrutura (ou estruturas), a qual envolve oselementos de software, as propriedades desses elementosvisíveisexternamenteeseusrespectivosinter-relacionamentos”SoftwareArchitectureinPractice.LenBass,PaulClements,RickKazman
  7. 7. vanilson.comQuaisosprincipaisfatoresparaumbomdesign?
  8. 8. vanilson.comPrincipaisfatoresparaumbomdesignBaixo Acoplamento Alta CoesãoFonte:borba.blog.br
  9. 9. vanilson.comEestiloarquitetural?Oqueé?
  10. 10. vanilson.comEstiloArquiteturalConjuntoderegraserestrições[constraints]impostasaoprojetodeumprodutoparaaobtençãodepropriedadesdesejadas.DesenvolvimentoConjunto de ConstraintsPropriedadesBenéficasEstiloArquiteturalLimitaVisaObterEstabeleceProdutoUmaarquiteturasegueumestiloarquitetural...Definiçãogenérica:By Vanilson Burégiovanilson.com
  11. 11. vanilson.comNaconstruçãocivil…
  12. 12. vanilson.comConstruçãoConjuntodeConstraintsPropriedadesbenéficasEstiloArquiteturalLimitaVisaobterPermitir o escoamentorápidodaneveEstabeleceEx.:TelhadodeveseríngremeChaléSuícoArquiteturasdistintas,omesmoestilo.
  13. 13. vanilson.comEnocontextodeSOFTWARE?
  14. 14. vanilson.comDesignConjuntodeConstraintsAtributosdeQualidadeEstiloArquiteturalAlta disponibilidade,performance,discoverability,Segurança,interoperability,etc..Limitamcomoaaplicaçãodeveserconstruída,comoseuscomponenteseconectoresdevemsecomunicar.SOA,REST,Camadas, CDB,Client-server, Pipes&filters…SoftwareSoftwareéoproduto.EstabeleceLimitaVisaobter
  15. 15. vanilson.comPara responder: http://bit.ly/AQ_NTI
  16. 16. vanilson.comAdotandoessadefinição… Podemosconsidercomoestilosarquiteturais…SOAPipes&filtersRESTCamadasClient-serverpeer-to-peerData-flowBlackboardPublish-subscribeEvent-based….
  17. 17. vanilson.comArquiteturaVsEstilo ÉpossívelcriarmosarquiteturasDISTINTASparasistemasespecíficosutilizandooMESMO estilo!
  18. 18. vanilson.comAlgunsexemplosdeabordagensanalisadassobaperspectivadeestilosarquiteturais…
  19. 19. vanilson.com Constraint– Projetar o sistema como um conjunto de filters que transformam stream de dados de entrada em um stream dedadosdesaídaeospipesconduzemosstreamsdedados.– Filtrossãoindependentes(nãoarmazenamestado)enãotêmconhecimentodosfiltrosconectados aele.– Exemplos: Unix: ps–a|grepjava|sort. Estiloadotado pelasaplicaçõesgeradascomoifttt.com, Yahoopipes,etc AtributosdeQualidade– Execuçãoconcorrente;– flexibilidade de composição: filtros podem ser adicionados, substituídos, e reusados, sendo possível combinar 2filtrosquaisquer);– composição comportamental: o comportamento do sistema é a sucessão dos comportamentos dos seuscomponentes (filters).EstiloArquiteturalPipes&Filters
  20. 20. vanilson.com Constraint– Decompor a aplicação em componentes(funcionais ou lógicos) reutilizáveis que expõeminterfacesbemdefinidasdecomunicação AtributosdeQualidade– reusabilidade;– facilidade de deployment: substituição de umaversão do componente por outra não geraimpactos no sistema, pois a interface decomunicaçãodocomponenteémantida;– redução de custo: uso de componentes deterceiros permite a diluição do custo dedesenvolvimento emanutençãoEstiloArquiteturalbaseadoemcomponentes
  21. 21. vanilson.com Constraint– “Segregrar”osistemaem2tiposdeaplicações,ondea aplicação do tipo cliente faz requisições aoservidor.– Na maioria dos casos, o servidor implementa toda alógicadaaplicaçãoeacesso aosdados AtributosdeQualidade– Maior segurança: todos os dados ficam armazenadosno servidor, que geralmente oferece maior controledesegurançaqueasaplicações clientes;– acessoadados centralizado;– fácil manutenção: atualizações e reparados daaplicaçãofeitosemumúnicoponto:servidor.EstiloArquiteturalclient-server
  22. 22. vanilson.comEstiloArquiteturalemCamadasConstraintsDividirlogicamenteosistema emcamadascomresponsabilidades bemdefinidas.Asfuncionalidadesdosistema sãoseparadas deacordocomospapéis decada camadaModelomaiscomum:MVC(acessoadados,apresentação econtrole).Acamada superiorutiliza osserviços fornecidospela camada inferior,nuncaocontrário!AtributosdeQualidadeAumentodaCoesão;Performance:adistribuição dascamadas sobre múltiplas camadas físicaspodemelhoraraescalabilidade, tolerânciaafalhas,eperformance.Isolamento:épossívelisolaratualizações tecnológicas (upgrades)emcamadasindividuaisparareduzirriscoseminimizaroimpactoemtodosistema.Manageability.Aseparação deconceitoscoreajudaaidentificardependências eorganizarocódigoempartes maisfáceisdegerenciarReusabilidade: definiçãodepapéispromovereusabilidade. NomodeloMVC,porexemplo,acamada docontroladorpodeserfacilmente reutilizada comumacamada deapresentação diferente(jáfizisso).
  23. 23. vanilson.comEstiloArquiteturalSOA(Service-OrientedArchitecture)ConstraintAplicaçãodeveexporeconsumirfuncionalidadescomoumserviço,usandocontratosemensagensAtributosdeQualidadeAbstração.Serviçossãoautônomoseacessadosatravésdeumcontratoformal,queproveBAIXOacoplamentoeabstraçãoDiscoverability:serviçospodemexpordescriçõesquepermitemoutrasaplicaçõeseserviçoslocalizá-loseautomaticamentedeterminarainterface;Interoperabilidade:comoosprotocoleseformatosdedadossãobaseadosempadrõesdaindústria,oprovedoreconsumidordeumserviçopodeserconstruídoeimplantadoemdiferentesplataformas
  24. 24. vanilson.comWebServicesSOAP-BasedWebService● ExpõeOPERAÇÕESquerepresentamLÓGICA● UsaMétodoHTTPPOST● Suportaconversações statelessestateful● WSDLRESTWebService● Expõerecursosquerepresentamdados● UsaHTTPVerbs(GET/POST/DELETE)● ÊnfaseemcomunicaçãopontoapontoemcimadeHTTP● Suportamúltiplos formatos● Ênfaseemcomunicaçãostateless
  25. 25. vanilson.comSemserviçoEstiloArquiteturalSOA(Service-OrientedArchitecture)
  26. 26. vanilson.comCom serviçoEstiloArquiteturalSOA(Service-OrientedArchitecture)Semserviço
  27. 27. vanilson.comMas,enaPRÁTICA?
  28. 28. vanilson.comImportante!Estilosevoluemparasatisfazernecessidadesemergentes…
  29. 29. vanilson.comPrimeiraLeideArquiteturadeSoftwaredeBorbaTodaarquiteturadefinidaestáerrada!Fonte:borba.blog.br
  30. 30. vanilson.comSegunfaLeideArquiteturadeSoftwaredeBorbaTodaarquiteturadefinidaquecomprovadamentefuncionaestaráerradaembreve.Fonte:borba.blog.br
  31. 31. vanilson.comEstudodeCasoTWITTERTabelaÚnicaPartiçãoporPKParaencontrar tweetsrecentesporusuário temqueprocuraremNpartiçõesPartiçãoporUsuárioParaencontrarumtweetporidtemqueprocurarem NpartiçõesPartiçãoporTempoFontes:borba.blog.br;http://slidesha.re/fViE3Y
  32. 32. vanilson.comFacebookBigPipeServidorHTTPRequestThreadsFontes:borba.blog.br ;http://on.fb.me/155VstG
  33. 33. vanilson.comComodocumentartudoisso?
  34. 34. vanilson.comDiferentesVisões
  35. 35. vanilson.comEnocontextodeSOFTWARE?
  36. 36. vanilson.comDiferentes Visões
  37. 37. vanilson.comQualoníveldedocumentaçãoideal?
  38. 38. vanilson.comResultado da Enquete (http://bit.ly/AQ_NTI)
  39. 39. VanilsonBurégio[vanilson.com]–[vaab@cin.ufpe.br]By Vanilson Burégiovanilson.comObrigado!

×