0% acharam este documento útil (0 voto)
45 visualizações7 páginas

Padroes Arquiteturais SM - v01

Enviado por

amaliatajara05
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
45 visualizações7 páginas

Padroes Arquiteturais SM - v01

Enviado por

amaliatajara05
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 7

DCC / ICEx / UFMG

Definição de Padrões

Padrões Arquiteturais Um padrão é uma descrição do


problema e a essência da sua solução

Documenta boas soluções para


problemas recorrentes
Eduardo Figueiredo
Deve ser suficientemente abstrato para
http://www.dcc.ufmg.br/~figueiredo
ser reusado em aplicações diferentes

Arquiteturas de Referência Padrões Arquiteturais

Padrões arquiteturais expressam


Embora cada sistema seja único formas de organizar a estrutura
É comum que sistemas do mesmo fundamental do sistema
domínio tenham arquiteturas similares Permitem a construção de uma
arquitetura aderente a certas
Um projeto pode ser baseado em propriedades
um padrão arquitetural conhecido O conhecimento de padrões
arquiteturais ajuda na definição da
arquitetura do sistema

Elementos de um Padrão Da arquitetura a implementação

A escolha do padrão arquitetural pode Os padrões arquiteturais definem a


ser o primeiro passo para a solução estrutura fundamental
Atividades subsequentes devem seguir
Padrões arquiteturais definem esta estrutura
Um conjunto de sub-sistemas
As responsabilidades de cada Padrões arquiteturais representam os
sub-sistema padrões mais abstratos
Regras de relacionamentos entre Padrões de projeto (Modelagem)
os sub-sistemas Idiomas (Programação)
Padrões são abstratos Escolha do Padrão

Os padrões não definem completamente A escolha do padrão arquitetural deve


a arquitetura do sistema estar associada ao tipo de sistema e
Padrões são templates que devem ser seus requisitos não funcionais
refinados Algumas perguntas podem ajudar
Exemplos de refinamentos O sistema é interativo?
Incluir outros componentes e novos Possui muitas variações?
relacionamentos Que requisitos não funcionais são
Definir padrões de projeto e idiomas em importantes? Confiabilidade?
fases subsequentes Adaptabilidade?

Composição de Padrões

Padrões diferentes levam a Exemplos de


consequências diferentes
Padrões Arquiteturais
Mesmo quando os padrões abordam
problemas semelhantes

Assim como ocorre em padrões de


projeto, sistemas complexos possuem
mais de um padrão arquitetural

Padrões Arquiteturais: Livros Padrões Arquiteturais


Da desordem a estrutura
Pattern-Oriented Software Layered Architecture (Arquitetura em Camadas)
Blackboard (Arquitetura de Repositório)
Architecture: A System of Pipes and Filters (Dutos e Filtros)
Patterns (Volume 1) Sistemas distribuídos
Client-Server (Cliente-Servidor)
Broker
Sistemas interativos
Model-View-Controller (MVC)
Presentation-Abstraction-Control
Sistemas adaptáveis
Microkernel Discutidos no livro
Reflection do Sommerville
Arquitetura em Camadas Exemplo 1: Protocolos OSI
Modelo de camadas para sistemas de comunicação
Organiza o sistema em um conjunto
de camadas
Cada camada oferece um conjunto de
serviços

Uma camada somente


Solicita serviços da camada inferior
Fornece serviços para a camada superior

Exemplo 2: Três Camadas Vantagens


Favorece o modelo de desenvolvimento
Camada de Apresentação
incremental
As camadas podem ser facilmente
substituídas por equivalentes
Camada de Negócios Requer interfaces estáveis
Mudanças em uma camada teoricamente
só impacta a camada superior
Camada de Dados Camadas superiores podem ser
independentes de plataforma/hardware

Desvantagens Arquitetura de Repositório

Estruturar o sistema em camadas não é Também conhecido como Blackboard


trivial Os subsistemas manipulam a mesma
Pode ser difícil identificar quais os serviços base de dados
elementares das camadas inferiores Um (ou mais) subsistema gera os dados
Muitas camadas podem comprometer o Vários subsistemas lêem os dados
desempenho do sistema Adotado principalmente quando
A requisição tem que trafegar pelas várias grandes quantidades de dados são
camadas até ser atendida compartilhadas
Exemplo de Repositório Vantagens

Maneira eficiente de compartilhar


Subsistema de dados
Subsistema de Subsistema de
Controle de
Vendas Compras Backup é centralizado (mais fácil)
Estoque
Formas de proteção dos dados podem
ser implementadas
Banco de Os subsistemas que gravam dados
Dados de não necessitam saber quem os usa
Produtos Fácil integrar novos subsistemas

Desvantagens Dutos e Filtros

Os subsistemas devem entender o Padrão de organização da dinâmica


formato dos dados gravados de um sistema
Manter e evoluir grandes volumes de Dois papéis principais
dados pode ser difícil / caro
Dutos: componentes que conduzem ou
Subsistemas diferentes podem ter distribuem os dados
requisitos diferentes Filtros: componentes que transformam
Mais segurança ou maior disponibilidade os dados
Dificuldade para distribuir os dados Usado principalmente em aplicações
Dados redundantes ou inconsistentes
de processamento de dados

Dinâmica do Padrão Exemplo de Dutos e Filtros

Os dados de entrada se movem Entradas: Faturas e Pagamentos


pelos dutos Saídas: Recibos e Lembretes
Os dados são transformados pelos
filtros até serem convertidos em
dados de saída
As transformações podem ocorrem
em sequência ou em paralelo
Vantagens Desvantagens
O módulo de transformação (filtro) é
bem modular O formato dos dados trafegados devem
ser acordados entre os módulos
Facilmente reusável e substituível
O estilo de workflow é aderente a Pode haver um overhead causado pela
muitos processos de negócios padronização dos dados
É simples evoluir o sistema pela adição
de filtros Incompatibilidade no formato dos dados
Se aplica tanto a sistemas sequênciais pode dificultar o reuso de filtros
quanto a sistemas concorrentes

Arquitetura Cliente-Servidor Arquitetura Cliente-Servidor

Organizada como um conjunto de Requer uma estrutura de rede para


serviços clientes acessarem os serviços
Servidores dos serviços
Clientes dos serviços Clientes sabem quais os serviços e
servidores estão disponíveis
Exemplos de servidores
Servidor de impressão Servidores não sabem quem são os
Servidor de arquivos, etc. clientes

Arquitetura Cliente-Servidor Exemplo de Cliente-Servidor

Essencialmente, é usado o
protocolo request-reply
1. Um cliente faz um pedido ao
servidor e espera pela resposta
2. O servidor executa o serviço e
responde ao cliente
Vantagens Desvantagens

A distribuição de dados é fácil e direta Não prevê modelo de dados


compartilhado
Subsistemas usam diferentes
Faz uso efetivo dos recursos em rede organizações de dados
Possibilita hardware mais barato
Pode haver redundância de serviços
em diferentes servidores
É fácil adicionar novos servidores ou
Não prevê registro central de serviços
atualizar servidores existentes
Difícil descobrir quais serviços estão
disponíveis

Padrão MVC Descrição do MVC

Largamente utilizado em aplicações Separa a apresentação e a interação dos


interativas Web dados do sistema
Organiza o sistema em três Os três componentes tem responsabilidades
componentes distintas mas interagem entre si
Modelo: contém as funcionalidades e Quando é recomendado?
dados principais Quando existem várias maneiras de
Visão: responsável por apresentar os visualizar e interagir com os dados
dados ao usuário São desconhecidos (ou são voláteis) os
Controlador: trata os eventos de entrada requisitos de interação com os dados

Representação dos Papéis Vantagens

Permite que os dados sejam alterados


de forma independente de sua
representação (e vice versa)
Apóia a apresentação dos mesmos
dados de maneiras diferentes
Facilita a distribuição do componente
de visão
Os dados são mantidos centralizados e
protegidos
Desvantagens Bibliografia

Complexidade excessiva quando o Ian Sommerville. Engenharia de


modelo de dados e de interações é Software, 9a. Edição. 2011.
muito simples Cap. 6 (Seções 6.3 e 6.4)
A estrutura do padrão pode impor
código adicional desnecessário F. Buschmann et al. Pattern-Oriented
Software Architecture: A System of
Patterns. John Wiley & Sons, 1996.
Cap. 2 Architectural Patterns

Você também pode gostar