Arquitetura, uma questão de "estilo"?

1.149 visualizações

Publicada em

Arquitetura de Software Vs Estilo Arquitetural

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

Nenhuma nota no slide

Arquitetura, uma questão de "estilo"?

  1. 1. Arquitetura,umaquestãode“estilo”?Vanilson Burégio[vanilson.com] – [vaab@cin.ufpe.br]
  2. 2. Arquitetura
  3. 3. Porquearquitetura?
  4. 4. Necessidadedeumaarquitetura...● 38anosdeconstrução–147pedreiros,0(zero)arquitetos● 160salas–40quartos,6cozinhas,2porões,950portas● 65portasviradasparaparedes,●13escadariassemuso,●24claraboiasnopisoNãoexistenenhumaplantadaconstruçãoWinchester “Mystery” House
  5. 5. Earquiteturadesoftware?
  6. 6. ArquiteturadeSoftwareOqueé?“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. Comodocumentararquitetura?
  8. 8. DiferentesVisões
  9. 9. EnocontextodeSOFTWARE?
  10. 10. Diferentes Visões
  11. 11. Eestiloarquitetural?Oqueé?
  12. 12. EstiloArquiteturalConjuntoderegraserestrições[constraints]impostasaoprojetodeumprodutoparaaobtençãodepropriedadesdesejadas.DesenvolvimentoConjunto de ConstraintsPropriedadesBenéficasEstiloArquiteturalLimitaVisaObterEstabeleceProdutoUmaarquiteturasegueumestiloarquitetural...Definiçãogenérica:By Vanilson Burégiovanilson.com
  13. 13. Naconstruçãocivil…
  14. 14. ConstruçãoConjunto de ConstraintsPropriedadesbenéficasEstiloArquiteturalLimitaVisaobterPermitir oescoamento rápidoda neveEstabeleceEx.: Telhado deve seríngremeChalé SuícoArquiteturas distintas, o mesmo estilo. By Vanilson Burégiovanilson.com
  15. 15. EnocontextodeSOFTWARE?
  16. 16. DesignConjunto de ConstraintsAtributos deQualidadeEstiloArquiteturalLimitaVisaatenderAlta disponibilidade,performance,discoverability,Segurança,interoperability, etc..EstabeleceLimitam como aaplicação deve serconstruída, comoseus componentes econectores devemse comunicar.SOA, REST, Camadas,CDB, Client-server,Pipes&filters…SoftwareBy Vanilson Burégiovanilson.comSoftware é o produto.
  17. 17. Adotando essa definição…• Podemos consider como estilos arquiteturais: SOAPipes&filtersRESTCamadasClient-server peer-to-peerData-flowBlackboardPublish-subscribeEvent-based….
  18. 18. ArquiteturaVsEstilo• É possível criarmos arquiteturasDISTINTAS para sistemas específicosutilizando o MESMO estilo!
  19. 19. Algunsexemplosdeabordagensanalisadassobaperspectivadeestilosarquiteturais…
  20. 20. EstiloArquiteturalemCamadasConstraintsDividir logicamente o sistema em camadas com responsabilidades bemdefinidas. As funcionalidades do sistema são separadas de acordo comos papéis de cada camadaModelo mais comum: MVC (acesso a dados, apresentação e controle).A camada superior utiliza os serviços fornecidos pela camada inferior,nunca o contrário!Atributos de QualidadeAumento da Coesão;Performance: a distribuição das camadas sobre múltiplas camadasfísicas pode melhorar a escalabilidade, tolerância a falhas, eperformance.Isolamento: é possível isolar atualizações tecnológicas (upgrades) emcamadas individuais para reduzir riscos e minimizar o impacto em todosistema.Manageability. A separação de conceitos core ajuda a identificardependências e organizar o código em partes mais fáceis de gerenciarReusabilidade: definição de papéis promove reusabilidade. No modeloMVC, por exemplo, a camada do controlador pode ser facilmentereutilizada com uma camada de apresentação diferente (já fiz isso).
  21. 21. EstiloArquiteturalSOA(Service-OrientedArchitecture)ConstraintAplicação deve expor e consumir funcionalidadescomo um serviço, usando contratos e mensagensAtributos de QualidadeAbstração. Serviços são autônomos e acessadosatravés de um contrato formal, que prove BAIXOacoplamento e abstraçãoDiscoverability: serviços podem expor descriçõesque permitem outras aplicações e serviços localizá-los e automaticamente determinar a interface;Interoperabilidade: como os protocoles eformatos de dados são baseados em padrões daindústria, o provedor e consumidor de um serviçopode ser construído e implantado em diferentesplataformas
  22. 22. • Constraint– Projetar o sistema como um conjunto de filters que transformam stream de dadosde entrada em um stream de dados de saída e os pipes conduzem os streams dedados.– Filtros são independentes (não armazenam estado) e não têm conhecimento dosfiltros conectados a ele.– Exemplos: Unix: ps –a | grep java | sort. Estilo adotado pelas aplicações geradascom o ifttt.com, Yahoo pipes, etc• Atributos de Qualidade– Execução concorrente;– flexibilidade de composição: filtros podem ser adicionados, substituídos, e reusados,sendo possível combinar 2 filtros quaisquer);– composição comportamental: o comportamento do sistema é a sucessão doscomportamentos dos seus componentes (filters).EstiloArquiteturalPipes&Filters
  23. 23. • Constraint– Decompor a aplicação em componentes (funcionais ou lógicos) reutilizáveisque expõem interfaces bem definidas de comunicação• Atributos de Qualidade– reusabilidade;– facilidade de deployment: substituição de uma versão do componente poroutra não gera impactos no sistema, pois a interface de comunicação docomponente é mantida;– redução de custo: uso de componentes de terceiros permite a diluição docusto de desenvolvimento e manutençãoEstiloArquiteturalbaseadoemcomponentes
  24. 24. • Constraint– “Segregrar” o sistema em 2 tipos de aplicações, onde a aplicação do tipocliente faz requisições ao servidor.– Na maioria dos casos, o servidor implementa toda a lógica da aplicação eacesso aos dados• Atributos de Qualidade– Maior segurança: todos os dados ficam armazenados no servidor, quegeralmente oferece maior controle de segurança que as aplicações clientes;– acesso a dados centralizado;– fácil manutenção: atualizações e reparados da aplicação feitos em um únicoponto: servidor.EstiloArquiteturalclient-server
  25. 25. Arquitetura,umaquestãode“estilo”…
  26. 26. Importante!Estilosevoluemparasatisfazernecessidadesemergentes…
  27. 27. SoMAr:SocialMachine-orientedArchitectureSoMAr,umaquestãode“estilo”?SoMAr=(SOA+SNs+REST+ WOA+CDB...)*SocialMachinesCombinaçãodeestiloseprincípiosdedesign,vistossobaóticaUNIFICADAdeMáquinasSociais...
  28. 28. Vanilson Burégio[vanilson.com] – [vaab@cin.ufpe.br]By Vanilson Burégiovanilson.comQuersabermaissobreSocialMachines?Visite: http://bit.ly/smparad

×