Successfully reported this slideshow.
Your SlideShare is downloading. ×

Arquitetura, uma questão de "estilo"?

Ad

Arquitetura,uma
questãode“estilo”?
Vanilson Burégio
[vanilson.com] – [vaab@cin.ufpe.br]

Ad

Arquitetura

Ad

Porquearquitetura?

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Loading in …3
×

Check these out next

1 of 28 Ad
1 of 28 Ad
Advertisement

More Related Content

Advertisement

Arquitetura, uma questão de "estilo"?

  1. 1. Arquitetura,uma questã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,2 porões,950portas ● 65portasviradasparaparedes, ●13escadariassemuso, ●24claraboiasnopiso Nãoexistenenhumaplantada construção Winchester “Mystery” House
  5. 5. Earquiteturadesoftware?
  6. 6. ArquiteturadeSoftware Oqueé? “A arquitetura de software de um programa ou sistema computacional é a estrutura (ou estruturas), a qual envolve os elementos de software, as propriedades desses elementos visí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. EstiloArquitetural Conjuntoderegraserestrições[constraints]impostasaoprojetodeumprodutoparaa obtençãodepropriedadesdesejadas. Desenvolvimento Conjunto de Constraints Propriedades Benéficas Estilo Arquitetural LimitaVisa Obter Estabelece Produto Umaarquiteturasegueumestiloarquitetural... Definiçãogenérica: By Vanilson Burégio vanilson.com
  13. 13. Naconstruçãocivil…
  14. 14. Construção Conjunto de Constraints Propriedades benéficas Estilo Arquitetural LimitaVisa obter Permitir o escoamento rápido da neve Estabelece Ex.: Telhado deve ser íngreme Chalé Suíco Arquiteturas distintas, o mesmo estilo. By Vanilson Burégio vanilson.com
  15. 15. EnocontextodeSOFTWARE?
  16. 16. Design Conjunto de Constraints Atributos de Qualidade Estilo Arquitetural LimitaVisa atender Alta disponibilidade, performance, discoverability, Segurança, interoperability, etc.. Estabelece Limitam como a aplicação deve ser construída, como seus componentes e conectores devem se comunicar. SOA, REST, Camadas, CDB, Client-server, Pipes&filters… Software By Vanilson Burégio vanilson.com Software é 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 arquiteturas DISTINTAS para sistemas específicos utilizando o MESMO estilo!
  19. 19. Algunsexemplosdeabordagens analisadassobaperspectivadeestilos arquiteturais…
  20. 20. EstiloArquiteturalemCamadas Constraints Dividir logicamente o sistema em camadas com responsabilidades bem definidas. As funcionalidades do sistema são separadas de acordo com os papéis de cada camada Modelo 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 Qualidade Aumento da Coesão; Performance: a distribuição das camadas sobre múltiplas camadas físicas pode melhorar a escalabilidade, tolerância a falhas, e performance. Isolamento: é possível isolar atualizações tecnológicas (upgrades) em camadas individuais para reduzir riscos e minimizar o impacto em todo sistema. Manageability. A separação de conceitos core ajuda a identificar dependências e organizar o código em partes mais fáceis de gerenciar Reusabilidade: definição de papéis promove reusabilidade. No modelo MVC, por exemplo, a camada do controlador pode ser facilmente reutilizada com uma camada de apresentação diferente (já fiz isso).
  21. 21. EstiloArquiteturalSOA(Service-OrientedArchitecture) Constraint Aplicação deve expor e consumir funcionalidades como um serviço, usando contratos e mensagens Atributos de Qualidade Abstração. Serviços são autônomos e acessados através de um contrato formal, que prove BAIXO acoplamento e abstração Discoverability: serviços podem expor descrições que permitem outras aplicações e serviços localizá- los e automaticamente determinar a interface; Interoperabilidade: como os protocoles e formatos de dados são baseados em padrões da indústria, o provedor e consumidor de um serviço pode ser construído e implantado em diferentes plataformas
  22. 22. • Constraint – Projetar o sistema como um conjunto de filters que transformam stream de dados de entrada em um stream de dados de saída e os pipes conduzem os streams de dados. – Filtros são independentes (não armazenam estado) e não têm conhecimento dos filtros conectados a ele. – Exemplos: Unix: ps –a | grep java | sort. Estilo adotado pelas aplicações geradas com 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 dos comportamentos dos seus componentes (filters). EstiloArquiteturalPipes&Filters
  23. 23. • Constraint – Decompor a aplicação em componentes (funcionais ou lógicos) reutilizáveis que expõem interfaces bem definidas de comunicação • Atributos de Qualidade – reusabilidade; – facilidade de deployment: substituição de uma versão do componente por outra não gera impactos no sistema, pois a interface de comunicação do componente é mantida; – redução de custo: uso de componentes de terceiros permite a diluição do custo de desenvolvimento e manutenção EstiloArquiteturalbaseadoemcomponentes
  24. 24. • Constraint – “Segregrar” o sistema em 2 tipos de aplicações, onde a aplicação do tipo cliente faz requisições ao servidor. – Na maioria dos casos, o servidor implementa toda a lógica da aplicação e acesso aos dados • Atributos de Qualidade – Maior segurança: todos os dados ficam armazenados no servidor, que geralmente 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 único ponto: servidor. EstiloArquiteturalclient-server
  25. 25. Arquitetura,umaquestãode “estilo”…
  26. 26. Importante!Estilosevoluemparasatisfazer necessidadesemergentes…
  27. 27. SoMAr:SocialMachine-oriented Architecture SoMAr,umaquestãode“estilo”? SoMAr=(SOA+SNs+REST+ WOA+CDB...)*SocialMachines Combinaçãodeestiloseprincípiosdedesign,vistossobaótica UNIFICADAdeMáquinasSociais...
  28. 28. Vanilson Burégio [vanilson.com] – [vaab@cin.ufpe.br] By Vanilson Burégio vanilson.com QuersabermaissobreSocialMachines? Visite: http://bit.ly/smparad

×