SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
Padrões Arquiteturais

              Estruturais:
               Camadas
Padrões Arquiteturais
•  Estruturais
    –  Camadas
    –  Pipes e Filtros
•  Sistemas Distribuídos
    –  Broker
•  Sistemas Interativos
    –  MVC
    –  Apresentação-Abstração-Controle (PAC)
•  Sistemas Adaptáveis
    –  Reflexão
    –  Microkernel
2                        Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                                Architecture - Buschmann
Camadas
•  Ajuda a estruturar aplicações que possam
   ser decompostas em grupos de sub-
   tarefas, nas quais cada grupo está em um
   nível de abstração particular




3             Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                     Architecture - Buschmann
Exemplo
•  Pilha de Protocolo de Redes
    – Desenvolvimento em/por partes
    – Codificação e/ou testes incrementais
    – Mudança/alteração a posteriori de partes
      individuais
    – Novas linguagens ou tecnologias podem ser
      incorporadas pela simples recodificação de
      seções de código


4                Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                        Architecture - Buschmann
Exemplo




5   Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
           Architecture - Buschmann
Contexto
•  Um sistema grande que requer
   decomposição




6             Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                     Architecture - Buschmann
Problema
•  Mudanças de código tardias devem ficar
   confinadas a um componente e não afetar
   os demais
•  Interfaces devem ser estáveis e
   padronizadas
•  Partes do sistema devem ser substituíveis
•  Pode ser necessário mais tarde se criar
   novos sistemas com as mesmas questões
   de “nível baixo” do que se está projetando
7              Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                      Architecture - Buschmann
Problema
•  Responsabilidades similares devem ser
   agrupadas para facilitar entendimento e
   manutenção
•  Não há padrão de granularidade dos
   componentes
•  Componentes mais complexos
   necessitam de mais decomposição
•  Sistema deve ser desenvolvido por uma
   equipe de programadores
8              Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                      Architecture - Buschmann
Solução
•  Estruture o sistema em um número
   apropriado de camadas e coloque-as uma
   no topo da outra
•  Inicie de baixo para cima, aumentando o
   nível de abstração




9             Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                     Architecture - Buschmann
Estrutura
•  A camada L usa os serviços da camada
   “L-1” (e somente ela deve usá-los) da
   forma que lhe convier




10            Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                     Architecture - Buschmann
Estrutura




11   Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
            Architecture - Buschmann
Dinâmica
•  Cenário 1
     –  Cliente invoca uma requisição (invocação) à camada
        N. Eventualmente 1:N na camada 1
•  Cenário 2
     –  Comunicação de baixo para cima (notificação). 1:1 ou
        N:1
•  Cenário 3
     –  Camadas Com Estado (cache) versus Sem Estado
        •  Requisições podem atingir apenas um subconjunto de
          camadas

12                     Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                              Architecture - Buschmann
Dinâmica
•  Cenário 4
     – Idem ao cenário 3, mas com notificações e
       não invocações (de baixo para cima)
       •  Ex.: o reenvio de uma requisição
•  Cenário 5
     – Comunicação entre 2 pilhas de camadas




13                  Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                           Architecture - Buschmann
Implementação
1.  Defina o critério de abstração
2.  Determine o número de níveis de
    abstração
3.  Dê o nome às camadas e atribua tarefas
    a cada uma delas
4.  Especifique os serviços (Pirâmide
    Invertida de Reuso)
5.  Refine os passos de 1 a 4
14            Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                     Architecture - Buschmann
Implementação
6.  Especifique uma interface para cada camada
7.  Estruture as camadas individuais
8.  Especifique a comunicação entre camadas
    adjacentes
     •    Modelo PUSH versus PULL
9.  Desacople camadas adjacentes
     •    Acoplamento ONE-WAY para top-down
     •    Bottom-Up: funções de callback
     •    Ou, usando super classes
10. Projetar uma estratégia de tratamento de erro
15                  Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                           Architecture - Buschmann
Usos
•  Máquinas Virtuais
•  APIs
•  Sistemas de Informação




16            Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                     Architecture - Buschmann

Contenu connexe

En vedette

Padrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEBPadrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEBRafael França
 
Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na PraticaAlessandro Kieras
 
Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasVagner Santana
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geralsergiocrespo
 
MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
MVC, MVP e MVVM: Uma Comparação de Padrões ArquiteturaisMVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
MVC, MVP e MVVM: Uma Comparação de Padrões ArquiteturaisJorge Tressino Rua
 
PHP Orientado a Objetos - 1a Parte
PHP Orientado a Objetos - 1a PartePHP Orientado a Objetos - 1a Parte
PHP Orientado a Objetos - 1a ParteJonata Weber
 
Php5 Orientado A Objetos
Php5 Orientado A ObjetosPhp5 Orientado A Objetos
Php5 Orientado A ObjetosRápido Site
 
Domain driven design na Prática
Domain driven design na PráticaDomain driven design na Prática
Domain driven design na PráticaDouglas Aguiar
 
Vssummit 2016 - DDD em cenários corporativos
Vssummit 2016 - DDD em cenários corporativosVssummit 2016 - DDD em cenários corporativos
Vssummit 2016 - DDD em cenários corporativosYan Justino
 
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...Glauco Vinicius Argentino de Oliveira
 

En vedette (20)

Padrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEBPadrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEB
 
Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na Pratica
 
Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de Sistemas
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geral
 
Arquitetura MVC
Arquitetura MVCArquitetura MVC
Arquitetura MVC
 
MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
MVC, MVP e MVVM: Uma Comparação de Padrões ArquiteturaisMVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
 
Uma Breve Introdução ao MongoDB
Uma Breve Introdução ao MongoDBUma Breve Introdução ao MongoDB
Uma Breve Introdução ao MongoDB
 
Classificação de Documentos
Classificação de DocumentosClassificação de Documentos
Classificação de Documentos
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Programação em Camadas - Iniciantes
Programação em Camadas - IniciantesProgramação em Camadas - Iniciantes
Programação em Camadas - Iniciantes
 
Modelo de Camadas
Modelo de CamadasModelo de Camadas
Modelo de Camadas
 
JAVA REFLETCION
JAVA REFLETCIONJAVA REFLETCION
JAVA REFLETCION
 
PHP Orientado a Objetos - 1a Parte
PHP Orientado a Objetos - 1a PartePHP Orientado a Objetos - 1a Parte
PHP Orientado a Objetos - 1a Parte
 
Aula 01 - Curso PHP e MySQL
Aula 01 - Curso PHP e MySQLAula 01 - Curso PHP e MySQL
Aula 01 - Curso PHP e MySQL
 
Php5 Orientado A Objetos
Php5 Orientado A ObjetosPhp5 Orientado A Objetos
Php5 Orientado A Objetos
 
Angular
AngularAngular
Angular
 
TDD e BDD
TDD e BDDTDD e BDD
TDD e BDD
 
Domain driven design na Prática
Domain driven design na PráticaDomain driven design na Prática
Domain driven design na Prática
 
Vssummit 2016 - DDD em cenários corporativos
Vssummit 2016 - DDD em cenários corporativosVssummit 2016 - DDD em cenários corporativos
Vssummit 2016 - DDD em cenários corporativos
 
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
Estudo da aplicação da arquitetura orientada a serviços em um sistema de gest...
 

Similaire à Arquitetura em Camadas

Em Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do FuturoEm Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do FuturoMagnos Martinello
 
Padrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - FacadePadrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - FacadeEduardo Nicola F. Zagari
 
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-endModularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-endMario Guedes
 
Programação orientada à objetos & mvc
Programação orientada à objetos & mvcProgramação orientada à objetos & mvc
Programação orientada à objetos & mvcJhordam Siqueira
 
Enucomp2017 - Tutorial about network softwarization
Enucomp2017 - Tutorial about network softwarizationEnucomp2017 - Tutorial about network softwarization
Enucomp2017 - Tutorial about network softwarizationNathan Saraiva
 
Unidade2 projeto lógico da rede
Unidade2   projeto lógico da redeUnidade2   projeto lógico da rede
Unidade2 projeto lógico da redeLeandro Almeida
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadoresJean Rocha
 
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on AzureTDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azuretdc-globalcode
 
Frameworks da web - Uma ferramenta de reutilização de software
Frameworks da web - Uma ferramenta de reutilização de softwareFrameworks da web - Uma ferramenta de reutilização de software
Frameworks da web - Uma ferramenta de reutilização de softwareThomas Kanzig
 
Engenharia Elétrica - desenvolvimento de uma fonte sem transformador.pdf
Engenharia Elétrica - desenvolvimento de uma fonte sem transformador.pdfEngenharia Elétrica - desenvolvimento de uma fonte sem transformador.pdf
Engenharia Elétrica - desenvolvimento de uma fonte sem transformador.pdfHELENO FAVACHO
 
Fundamentos_camadas_modelo_osi
Fundamentos_camadas_modelo_osiFundamentos_camadas_modelo_osi
Fundamentos_camadas_modelo_osiMario Alex
 
26 funcao das_camadas_do_modelo_osi
26 funcao das_camadas_do_modelo_osi26 funcao das_camadas_do_modelo_osi
26 funcao das_camadas_do_modelo_osiJobert Abrahão
 
Padrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory MethodPadrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory MethodEduardo Nicola F. Zagari
 
Medindo e Modelando o Desempenho de Aplicações em um Ambiente Virtual
Medindo e Modelando o Desempenho de Aplicações em um Ambiente VirtualMedindo e Modelando o Desempenho de Aplicações em um Ambiente Virtual
Medindo e Modelando o Desempenho de Aplicações em um Ambiente VirtualRafael Reis
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoThiago Marinho
 

Similaire à Arquitetura em Camadas (20)

Aula05 frameworks
Aula05 frameworksAula05 frameworks
Aula05 frameworks
 
Em Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do FuturoEm Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do Futuro
 
Padrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - FacadePadrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - Facade
 
Princípios SOLID
Princípios SOLIDPrincípios SOLID
Princípios SOLID
 
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-endModularização via BPL - Abordagem Prática para DataSnap & Front-end
Modularização via BPL - Abordagem Prática para DataSnap & Front-end
 
Programação orientada à objetos & mvc
Programação orientada à objetos & mvcProgramação orientada à objetos & mvc
Programação orientada à objetos & mvc
 
Enucomp2017 - Tutorial about network softwarization
Enucomp2017 - Tutorial about network softwarizationEnucomp2017 - Tutorial about network softwarization
Enucomp2017 - Tutorial about network softwarization
 
Unidade2 projeto lógico da rede
Unidade2   projeto lógico da redeUnidade2   projeto lógico da rede
Unidade2 projeto lógico da rede
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadores
 
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on AzureTDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
 
ICC Resumo osi
ICC Resumo osi ICC Resumo osi
ICC Resumo osi
 
ICC: Modelo osi
ICC: Modelo osiICC: Modelo osi
ICC: Modelo osi
 
Frameworks da web - Uma ferramenta de reutilização de software
Frameworks da web - Uma ferramenta de reutilização de softwareFrameworks da web - Uma ferramenta de reutilização de software
Frameworks da web - Uma ferramenta de reutilização de software
 
[Ottoni micro05] resume
[Ottoni micro05] resume[Ottoni micro05] resume
[Ottoni micro05] resume
 
Engenharia Elétrica - desenvolvimento de uma fonte sem transformador.pdf
Engenharia Elétrica - desenvolvimento de uma fonte sem transformador.pdfEngenharia Elétrica - desenvolvimento de uma fonte sem transformador.pdf
Engenharia Elétrica - desenvolvimento de uma fonte sem transformador.pdf
 
Fundamentos_camadas_modelo_osi
Fundamentos_camadas_modelo_osiFundamentos_camadas_modelo_osi
Fundamentos_camadas_modelo_osi
 
26 funcao das_camadas_do_modelo_osi
26 funcao das_camadas_do_modelo_osi26 funcao das_camadas_do_modelo_osi
26 funcao das_camadas_do_modelo_osi
 
Padrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory MethodPadrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory Method
 
Medindo e Modelando o Desempenho de Aplicações em um Ambiente Virtual
Medindo e Modelando o Desempenho de Aplicações em um Ambiente VirtualMedindo e Modelando o Desempenho de Aplicações em um Ambiente Virtual
Medindo e Modelando o Desempenho de Aplicações em um Ambiente Virtual
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - Conceito
 

Plus de Eduardo Nicola F. Zagari

Onix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes SobrepostasOnix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes SobrepostasEduardo Nicola F. Zagari
 
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLSUma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLSEduardo Nicola F. Zagari
 
Uma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes LinuxUma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes LinuxEduardo Nicola F. Zagari
 
Módulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo RealMódulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo RealEduardo Nicola F. Zagari
 
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...Eduardo Nicola F. Zagari
 
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...Eduardo Nicola F. Zagari
 
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...Eduardo Nicola F. Zagari
 
Padrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - ProxyPadrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - ProxyEduardo Nicola F. Zagari
 
Padrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - SingletonPadrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - SingletonEduardo Nicola F. Zagari
 
Padrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract FactoryPadrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract FactoryEduardo Nicola F. Zagari
 

Plus de Eduardo Nicola F. Zagari (20)

Introdução à Linguagem Ruby
Introdução à Linguagem RubyIntrodução à Linguagem Ruby
Introdução à Linguagem Ruby
 
Onix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes SobrepostasOnix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
 
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLSUma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
 
Uma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes LinuxUma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes Linux
 
Módulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo RealMódulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo Real
 
Módulo de Estudos em Tempo Real
Módulo de Estudos em Tempo RealMódulo de Estudos em Tempo Real
Módulo de Estudos em Tempo Real
 
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
 
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
 
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
 
Padrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - ProxyPadrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - Proxy
 
Padrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - SingletonPadrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - Singleton
 
Padrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract FactoryPadrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract Factory
 
Padrões-07 - Padrões Criacionais
Padrões-07 - Padrões CriacionaisPadrões-07 - Padrões Criacionais
Padrões-07 - Padrões Criacionais
 
ICC-01 História dos Computadores
ICC-01 História dos ComputadoresICC-01 História dos Computadores
ICC-01 História dos Computadores
 
ICC-02 Evolução dos Computadores
ICC-02 Evolução dos ComputadoresICC-02 Evolução dos Computadores
ICC-02 Evolução dos Computadores
 
ICC-03 Organização dos Computadores
ICC-03 Organização dos ComputadoresICC-03 Organização dos Computadores
ICC-03 Organização dos Computadores
 
ICC-04 Sistemas Numéricos
ICC-04 Sistemas NuméricosICC-04 Sistemas Numéricos
ICC-04 Sistemas Numéricos
 
ICC-05 Álgebra Booleana
ICC-05 Álgebra BooleanaICC-05 Álgebra Booleana
ICC-05 Álgebra Booleana
 
ICC-06 Periféricos - Introdução
ICC-06 Periféricos - IntroduçãoICC-06 Periféricos - Introdução
ICC-06 Periféricos - Introdução
 
ICC-07 Softwares - Introdução
ICC-07 Softwares - IntroduçãoICC-07 Softwares - Introdução
ICC-07 Softwares - Introdução
 

Arquitetura em Camadas

  • 1. Padrões Arquiteturais Estruturais: Camadas
  • 2. Padrões Arquiteturais •  Estruturais –  Camadas –  Pipes e Filtros •  Sistemas Distribuídos –  Broker •  Sistemas Interativos –  MVC –  Apresentação-Abstração-Controle (PAC) •  Sistemas Adaptáveis –  Reflexão –  Microkernel 2 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 3. Camadas •  Ajuda a estruturar aplicações que possam ser decompostas em grupos de sub- tarefas, nas quais cada grupo está em um nível de abstração particular 3 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 4. Exemplo •  Pilha de Protocolo de Redes – Desenvolvimento em/por partes – Codificação e/ou testes incrementais – Mudança/alteração a posteriori de partes individuais – Novas linguagens ou tecnologias podem ser incorporadas pela simples recodificação de seções de código 4 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 5. Exemplo 5 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 6. Contexto •  Um sistema grande que requer decomposição 6 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 7. Problema •  Mudanças de código tardias devem ficar confinadas a um componente e não afetar os demais •  Interfaces devem ser estáveis e padronizadas •  Partes do sistema devem ser substituíveis •  Pode ser necessário mais tarde se criar novos sistemas com as mesmas questões de “nível baixo” do que se está projetando 7 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 8. Problema •  Responsabilidades similares devem ser agrupadas para facilitar entendimento e manutenção •  Não há padrão de granularidade dos componentes •  Componentes mais complexos necessitam de mais decomposição •  Sistema deve ser desenvolvido por uma equipe de programadores 8 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 9. Solução •  Estruture o sistema em um número apropriado de camadas e coloque-as uma no topo da outra •  Inicie de baixo para cima, aumentando o nível de abstração 9 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 10. Estrutura •  A camada L usa os serviços da camada “L-1” (e somente ela deve usá-los) da forma que lhe convier 10 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 11. Estrutura 11 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 12. Dinâmica •  Cenário 1 –  Cliente invoca uma requisição (invocação) à camada N. Eventualmente 1:N na camada 1 •  Cenário 2 –  Comunicação de baixo para cima (notificação). 1:1 ou N:1 •  Cenário 3 –  Camadas Com Estado (cache) versus Sem Estado •  Requisições podem atingir apenas um subconjunto de camadas 12 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 13. Dinâmica •  Cenário 4 – Idem ao cenário 3, mas com notificações e não invocações (de baixo para cima) •  Ex.: o reenvio de uma requisição •  Cenário 5 – Comunicação entre 2 pilhas de camadas 13 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 14. Implementação 1.  Defina o critério de abstração 2.  Determine o número de níveis de abstração 3.  Dê o nome às camadas e atribua tarefas a cada uma delas 4.  Especifique os serviços (Pirâmide Invertida de Reuso) 5.  Refine os passos de 1 a 4 14 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 15. Implementação 6.  Especifique uma interface para cada camada 7.  Estruture as camadas individuais 8.  Especifique a comunicação entre camadas adjacentes •  Modelo PUSH versus PULL 9.  Desacople camadas adjacentes •  Acoplamento ONE-WAY para top-down •  Bottom-Up: funções de callback •  Ou, usando super classes 10. Projetar uma estratégia de tratamento de erro 15 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 16. Usos •  Máquinas Virtuais •  APIs •  Sistemas de Informação 16 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann