Vous êtes sur la page 1sur 18

Estilos e padres arquiteturais

 Estilos arquiteturais
 Definem meios de selecionar e apresentar blocos
de construo de arquitetura
Estilos Arquiteturais
 Padres arquiteturais
 Projetos de alto nvel, testados e validados, de
Silvia Regina Vergilio
blocos de construo de arquitetura

Shaw, M., Garlan, D. Software Architecture: Perspectives on an Emerging Discipline, Prentice


Hall, 1966
F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad e M. Stahl. Pattern-Oriented Software
Architecture - A System of Patterns, NY: John Wiley and Sons, Inc. 1996

Categorias de Estilos de Arquiteturas Estilos Arquiteturais: Taxonomia


Sistemas de Sistemas de Componentes Mquinas Sistemas
Fluxo de Chamada e Independen- Virtuais Centrados
Estrutura (From mud to structure)- oferecem Dados Retorno tes em Dados
decomposio controlada das tarefas em sub-tarefas.
Consideram requisitos estveis e bem definidos. Seqenciais
Batch
Programa
Principal e
Processos
Comunican-
Interpreta-
dor
Bancos de
Dados
Sistemas distribudos aplicaes distribudas Sub-rotinas tes

Sistemas interativos interao HM. Pipes & Sistemas OO Invocao Sistemas Sistemas de
Sistemas adaptveis oferecem suporte para Filters Implcita (ou
Sistemas
Baseados em
Regras
Hipertexto

extenso e adaptao de aplicaes devido a Baseados em


tecnologias e mudana de requisitos. Eventos)

Camadas Blackboards
F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad e M. Stahl. Pattern-Oriented (Quadro-
Software Architecture - A System of Patterns, NY: John Wiley and Sons, Inc. 1996 Negro)
D. Garlan and Mary Shaw. An introduction to software architecture. Technical Report- CMU-CS-
94166,Carnegie Mellon University, January 1994.
Extrado de (SHAW e GARLAN, 1996)

Fluxo de Dados
Estilos arquiteturais
Originrio de sistemas operacionais UNIX e do projeto
Fluxo de dados (Data Flow) de compiladores
Ex. Unix Pipes: condutores da sada de um programa para a
entrada de um outro programa. > Who | Sort
Transformaes funcionais processam entradas para
1. Sequenciais Batch produzir sadas.
Componentes so chamados de filtros: recebem (tratam e
refinam) entradas especificadas e transformam essas
2. Pipes & Filters (Dutos e Filtros) entradas em sadas
Conectores so dutos (pipes) - trasmitem sadas de um
filtro para serem entradas de outro

1
Ex: Arquitetura de Compiladores
1. Seqncias (Batch Sequential) E
Anlise
x Anlise Anlise Gerao de
Otimizao
lxica : sinttica semntica cdigo
 Especializao de pipes &filtros
A
 Programas independentes executados em r
seqncia (pipelines: seqncias linear de filtros) Arquivos fonte
q Bytecode Arquivo Jar
u
class{
i 000
 Um aps o outro }
t
A$n3*
3N4*#
1001
1001

e
 Dado transmitido por completo entre um programa e t Javac
Compilando
Jar
Empacotando
Java
executando

outro u
r
a

2. Pipes & Filters (Dutos e Filtros) Ex: Sistema de processamento de faturas


FILTERS
B
A D
C
E

PIPES

Tipo mais geral no precisa ser sequencial

Pipes tipados os tipos passados entre dois


filtros tem um tipo bem definido.

Caractersticas: Dutos e Filtros Caractersticas: Dutos e Filtros


Vantagens Desvantagens
til para aplicaes de processamento de Requer um formato comum para a transferncia
informao que interagem pouco com usurios de dados ao longo do pipeline
Rpida prototipao No apropriado para aplicaes interativas
Apia reso de transformaes (filtros) No existe compartilhamento de dados
fcil adicionar, recombinar, ou trocar, novas
Ausncia de gerenciamento de erros.
transformaes (flexibilidade)
relativamente simples implementar como sistema
concorrente (vrios filtros em paralelo) ou
seqencial
Eficincia em processamento

2
Estilos arquiteturais
Implementao Chamada (ou invocaes) e
Divida as tarefas do sistema em uma sequncia
Retorno
de estgios de processamento
Cada estgio deve depender somente da sada do seu
predecessor
Todos os estgios so conectados por um fluxo de 1. Programa Principal e Sub-Rotina
dados
Defina o formato de dados a ser passado ao longo 2. Invocao Remota de Procedimento (RPC)
de cada pipe
Decida como implementar cada conexo com
pipe 3. Sistema Orientados a Objetos
Se estes sero ativos ou passivos
4. Camadas (Layered)

1. Programa principal e Sub-Rotinas


Chamada e Retorno
(Main Program/Subroutines)
O controle de execu
execuo
o de um componente realizado Controle se inicia no topo de uma hierarquia de
por outro componente atrav
atravs de uma invoca
invocao
o, que subrotinas e move-se para baixo na hierarquia.
geralmente produz um retorno.
retorno.
Componentes subrotinas
Componentes:
Componentes mdulos, sub-rotinas, funes, Conectores chamadas de procedimento
objetos, e ou componentes complexos (grupos de
componentes) Vantagens: desenvolvimento pode ser
independente; Gerenciamento de controle mais fcil
de visualizar, na hierarquia de mdulos.
Conectores:
Conectores chamada de procedimentos, envios de Desvantagens: o reso, bem como alteraes
mensagem, protocolos de comunicao, etc. podem ser difceis.

2. Invocao remota de procedimento


Exemplo:
(RPC remote procedure call)
- especializao do programa principal e sub-rotinas
Programa principal
Rede

Subrotina 1 Subrotina 2 Subrotina 3

192.168.10.8
192.168.10.11

3
Vantagens 3. Sistema Orientados a Objetos
Sistema como um conjunto de objetos fracamente
acoplados e com interfaces bem definidas
Programa principal
Rede Cada objeto oferece um conjunto de servios
Subrotina 1 Subrotina 2 Subrotina 3

Sistemas Orientados a Objetos (OO) podem ser vistos


como uma rede ou grafo de objetos comunicantes.
Componentes:
Componentes Objetos.
Conectores:
Conectores envio de mensagem
Ganho de
Regras:
Regras objetos encapsulam seus dados; um objeto
desempenho
192.168.10.8
responsvel pela manuteno da integridade de sua
192.168.10.11
(2 processadores) representao.

Ex: Sistema de processamento de faturas Caractersticas: Sistemas


Orientados aObjetos
Vantagens
Objetos so fracamente acoplados devido ao uso
de interfaces
Linguagens de implementao orientada a objeto
so amplamente usadas.
Desvantagens
Mudanas de interface tm alto impacto
No envolve restries topolgicas, o que pode
dificultar a manuteno
Dependncias entre objetos no so limitadas

4. Camadas (Layered) Exemplos


Sistema organizado hierarquicamente.
Cada camada oferece o servio para a camada
superior (externa) e utiliza um servio da camada
inferior (interna). Aplicao

Componentes: so camadas, grupo de tarefas em um Apresentao


Apresentao (GUI)
mesmo nvel de abstrao
Sesso
Conectores: protocolos que indicam como as camadas Negcio Clssica
iro interagir e limitam as comunicaes a camadas ISO-OSI Transporte 3 camadas
Armazenamento
adjacentes; permitem comunicao em mquinas (Persistncia)
Rede
diferentes
Cada camada est associada a um conjunto de Dados

entidades (entidade complexa), constituindo-se de Fsica Ex: para um sistema


diferentes componentes (por ex.: conjunto de de informao
objetos, funes, etc).

4
Caractersticas Caractersticas

 Camadas se comunicam apenas com outras adjacentes  Alteraes locais no so propagadas

Apresentao Apresentao

Negcio Negcio

Armazenamento Armazenamento

Ex: Sistema de gerenciamento de verses


Outra maneira de representar

Useful Systems
Agregados de
Base Utility Elementos Menores

Core
Level

Users

Implementao Implementao
Defina o critrio de abstrao para agrupar tarefas em Especifique os servios
camadas
Especifique uma interface para cada camada
Exemplo: a distncia do hardware pode formar os nveis mais
baixos e a complexidade conceitual os nveis mais altos Refine cada camada:
Determine o nmero de nveis de abstrao de acordo Estruturao de cada camada individualmente
com seu critrio de abstrao Quando uma camada complexa ela deve ser
Nomeie as camadas e determine as tarefas de cada separada em componentes individuais e cada
uma delas componente pode seguir um padro ou estilo
A tarefa da camada mais alta a percebida pelo cliente diferente
As tarefas das demais camadas visam ajudar a realizao da
tarefa da camada mais alta

5
Caractersticas: Estilo em Camadas Caractersticas: Estilo em Camadas
Vantagens: Desvantagens
Facilidade de compreenso: utiliza nveis crescentes de s vezes difcil estruturar um sistema atravs de
abstrao, particionando problemas complexos em camadas. Conseqncias:
sequncia de passos incrementais.
comum que a estruturao seja violada
Suporte a padronizao
Camadas relaxadas so necessrias todas as camadas
Desenvolvimento independente
podem se comunicar entre si.
Facilidade de manuteno, reso das camadas e suporte
evoluo dos sistemas, oferencendo flexibilidade e Mudanas em servios de uma cada inferior, podem requerer
boa manutenibilidade propagao de mudanas at as superiores
As dependncias tendem a ser locais (dentro da Pode haver necessidade de duplicao de funcionalidade
camada)- restrio de comunicao entre camadas Overhead (problemas) de implementao, comunicao,
adjacentes, mudanas afetam no mximo duas camadas e desempenho
Se interface bem definida, permite uso de diferentes Complexidade na Implementao e Testes do Sistema
implementaes da mesma camada

Estilos arquiteturais Componentes Independentes


Componentes Independentes
Processos so independentes
Envio de dados entre processos, normalmente sem
controlar a execuo de cada um deles.
O controle geralmente feito com envio de
1. Processos comunicantes mensagens ou baseado em eventos.
Cliente-servidor, Peer to peer Alto grau de modificabilidade atravs do
desacoplamento de vrias pores da computao
2. Baseado em eventos
Invocao implcita

1. Processos comunicantes Estilo Cliente-Servidor


Mostra como dados e processamento so distribudos
 Baseado na comunicao via troca de mensagens por uma variedade de componentes
entre processos Servidores independentes que fornecem servios tais como
impresso, transferncia de arquivos, gerenciamento de
 Em geral, via rede
dados, etc.
Clientes utilizam esses servios
 Cliente - Servidor Clientes e servidores normalmente se comunicam
 Ponto a ponto (Peer to Peer P2P) atravs de uma rede
Diversas tecnologias de comunicao so possveis

6
Ex: Aplicao: Internet Ex: Sistema Cliente-Servidor

Servidor

Clientes

Ex: Biblioteca de filmes e fotografias Caractersticas: Cliente-Servidor

Vantagens
Separao de interesses
Inerentemente distribudo: pode haver
balanceamento de carga, tolerncia a falhas
fcil adicionar novos servidores ou atualizar
servidores existentes.
Utilizao dos recursos do servidor
Escalabilidade: aumentando a capacidade
computacional do servidor

Caractersticas: Cliente-Servidor Ponto a Ponto (P2P)


 No h distino entre ns
Desvantagens  Cada n mantm seus prprios dados e endereos
Gerenciamento redundante em cada servidor; conhecidos
Nenhum registro central de nomes e servios  Cada n cliente e servidor ao mesmo tempo
pode ser difcil descobrir quais servidores e  Vantagem: reduz problemas de falhas
servios esto disponveis  Desvantagem: aumenta o tempo de consulta
Requisies e respostas casadas
Introduz complexidade
Custos de comunicao
Falhas no servidor

7
Exemplo: relatrio de impresso
2. Baseado em eventos  Produtores e consumidores so independentes
 Execuo via procedimentos disparados via mudana de estados
 Escalabilidade no nmero de interessados
 Desacoplamento entre consumidores e produtores  Consumidores se registram nos Produtores
de eventos  Produtores notificam consumidores registrados
 Escalabilidade: adio de novos observadores para
eventos que j so produzidos
 Invocao implcita: O produtor de eventos no imprimir()
controla quem ser notificado ou quando ele ser
notificado A
interessado(relatorioOK)
B
relatorioOK Produtor
Consumidor
Relatrio
OK

Ex: Interface Grfica Sistemas orientados a eventos


Dirigidos por eventos gerados externamente
O timing dos eventos est fora do controle dos componentes
que os processam
onKeyDown
Estilo Publisher/Subscriber
onKeyUp
onMouseOver Eventos so transmitidos a todos os componentes.
Qualquer componente interessado pode respond-los
onMouseReleased onMouseClick Estilo Orientado a Interrupes
Usado em sistemas de tempo real
menuDown Interrupes so detectadas por tratadores e passadas por
onMousePressed
outro componente para processamento.
onSelected

Modelo Publisher/Subscriber Publisher/Subscriber


efetivo na integrao de componentes em
computadores diferentes em uma rede
Desacoplamento espacial e temporal
Componentes no sabem se um evento ser tratado e nem
quando ser.
Alguns componentes (publishers) publicam eventos
Componentes (subscribers) registram interesse em eventos
especficos e podem trat-los
A poltica de controle no embutida no tratador de
eventos e mensagens

8
Estilo Orientado a Interrupes Controle dirigido a interrupes
Usado em sistemas de tempo real onde a resposta
rpida para um evento essencial
Existem tipos de interrupes conhecidos
Um tratador definido para cada tipo
Cada tipo associado a uma localizao da memria
Uma chave de hardware causa a transferncia de controle
para um tratador.
Permite respostas rpidas, mas complexo para
programar e difcil de validar.

Estilos arquiteturais Mquina Virtual


Mquina Virtual
Uma mquina virtual produzida no software,
(Virtual Machine) geralmente para uma determinada linguagem.
 Simular funcionalidade no nativa para obter
portabilidade
Ex: Simuladores de Software (linguagens - Java VM)
1. Interpretador

2. Baseado em Regras

1. Interpretador (Interpreter)
Componentes de um Interpretador
 Esta arquitetura inclui geralmente 4 componentes:
- mecanismo de interpretao
- uma memria que contm o pseudo-cdigo a ser interpretado entrada Dados Programa sendo
- representao do estado do mecanismo de interpretao (Estado do programa) interpretado

- representao do estado atual do programa sendo simulado Dados de


dados estado
Atualiza Instrues do
programa

A mquina tenta preencher a lacuna que existe entre o


sada
que o programa precisa e o que o hardware Mecanismo de Instruo selecionada
Estado interno
interpretao Dados selecionados
(Instrues + dados)
disponibiliza

9
Ex: Java VM Caractersticas - Interpretador
 Desvantagens: Desempenho

Mquina
public class Oi{
...
Compilador Java Virtual
 Vantagens: Portabilidade
javac.exe
} Mquina
Virtual
Arquivo Oi.java
bytecode Algumas pesquisas apontam que algumas das
Mquina
1   <init>  ()V
 Code  LineNumberTable
INTERPRETA Virtual linguagens interpretadas j conseguem ser mais
 main  ([Ljava/lang/String;)...
rpidas que C
Arquivo Oi.class
Mquina
Virtual
 Java, por exemplo
Mquina
Virtual

2. Baseado em Regras (Rule-Based) Ex: Prolog, Sistemas Especialistas


 Conjunto de regras sobre um estado
 Definio do estado atual com base em dados de
entrada Memria de trabalho HORA=18:00
 Regras alteram o estado SE HORA=21:00
ENTO AO=LANCHE
HORA = ?
entrada AO = ?
Memria de
SE HORA=22:00
trabalho ENTO AO=LIBERAR
sada
SE HORA<19:00
ENTO AO=ESPERAR
Base de
Regras Mquina de
SE HORA=19:00
Mquina de ENTO AO=COMEAR inferncia
inferncia Base de Regras

Memria de trabalho Memria de trabalho


SE HORA=21:00 HORA = 18:00 SE HORA=21:00 HORA = 18:00
ENTO AO=LANCHE AO = ? ENTO AO=LANCHE AO = ESPERAR

SE HORA=22:00 SE HORA=22:00
ENTO AO=LIBERAR ENTO AO=LIBERAR

SE HORA<19:00 SE HORA<19:00
ENTO AO=ESPERAR ENTO AO=ESPERAR
Mquina de Mquina de
SE HORA=19:00 SE HORA=19:00
ENTO AO=COMEAR inferncia ENTO AO=COMEAR inferncia
Base de Regras Base de Regras

10
Estilos arquiteturais
Centrado em Dados
Memria de trabalho
SE HORA=21:00 HORA = 18:00
ENTO AO=LANCHE AO = ESPERAR
AO=ESPERAR
SE HORA=22:00
ENTO AO=LIBERAR 1. Repositrio
SE HORA<19:00
ENTO AO=ESPERAR

SE HORA=19:00
Mquina de 2. Blackboard
ENTO AO=COMEAR inferncia
Base de Regras

Centrado em Dados (Data-centered) 1. Repositrio (Repository)


A meta a integrao de dados Dados compartilhados podem ser mantidos em
Sistemas cujas partes precisam trocar dados com um banco de dados central e acessados por
frequncia todos os subsistemas
Descreve o acesso e atualizao de repositrios de Cada subsistema mantm seu prprio banco de
dados amplamente acessveis dados e passa dados para outros subsistemas
Existe um grande depsito de dados centralizado, Podem usar uma abstrao de repositrio
manipulado por computaes independentes centralizado
Implementao distribuda

Repositrio (Repository)
Ex: Banco de dados tradicional

 Integridade, escalabilidade (novos clientes, novos dados)

Clientes operam
sobre os dados
Cliente 2 Cliente 2
Cliente 3 Cliente 3
Cliente 1 Cliente 1
Gatilhos
Cliente n (triggers) Cliente n

Transaes
Estado atual Dados Dados
consistente compartilhados compartilhados

11
Ex: Arquitetura de uma Caractersticas: Repositrio
Ferramenta Case Vantagens
uma maneira eficiente de compartilhar grandes
quantidades de dados
Dados aderem a uma representao comum
Simplifica a projeto de aplicaes fortemente baseadas em
dados
Tanto para troca de informaes quanto para armazenamento
Desvantagens
Os subsistemas devem estar de acordo com um modelo de
dados padronizado
A evoluo de dados difcil e dispendiosa
Dificuldade para distribuir de forma eficiente

2. Quadro negro (Blackboard) Quadro negro (Blackboard)

O sistema dividido em
blackboard: aramazena dados o vocabulrio Ap 1
Ap 2
Ap 3
base de conhecimento: subsistemas
independentes, cada qual resolvendo aspectos Quadro Negro
especficos do problema Controlador

componente de controle: monitora mudanas no


blackboard e decide as aes Ap 4 Ap n
Ap 5

Quadro negro (Blackboard) Quadro negro (Blackboard)

Sei subtrair!

Sei multiplicar!

2 x (3+2)2 + 3 - 6 = ?

Controlador
x - x -
Gerncia dos dados

x2 x2
Controlador

Sei somar! Sei


Fontes de exponencial!
conhecimento
+ +

12
Quadro negro (Blackboard) Quadro negro (Blackboard)

(5)2 2++3 3- -6 6==? ?


22x x(3+2) (5)2++33- -66==??
2 x 25

x - x -

x2 x2
Controlador Controlador

+ +

Quadro negro (Blackboard) Quadro negro (Blackboard)

250 + 3+- 36 -=6?= ?


x 25 53 47
-6=?

x - x -

x2 x2
Controlador Controlador

+ +

Caractersticas: Blackboard Caractersticas: Blackboard


Usado em:
 Sistemas que no possuem estratgias de Vantagens:
solues determinsticas conhecidas e so Ajuda a resolver problemas de experimentao
baseados em solues aproximadas ou parciais.
Suporte a mudanas e manuteno
 Problemas que podem ser decompostos em sub-
problemas e abrangem muitos domnios de Escalabilidade aplicaes independentes
conhecimento Reso de conhecimentos
 Sistemas complexos - Resoluo Distribuda de Suporte: tolerncia a falhas e robustez
Problemas - RDP
 Paradigma de agentes

13
Caractersticas: Blackboard
Seleo de Estilos
Desvantagens
Dificuldades para testar por no usar algoritmos
determinsticos O que considerar?
Nenhuma boa soluo garantida
Passos a seguir
Dificuldade em estabelecer uma boa estratgia de
controle.
Baixa eficincia e alto esforo de
desenvolvimento
No suporta paralelismo

Fluxo de Dados Fluxo de Dados


As interfaces entre os componentes so Sequencial: transformaes so seqenciais
simples Existe uma nica sada, resultante de uma nica
O sistema produz resultados simples e bem entrada de dados
identificveis que derivam diretamente da Fitros e Pipes:
transformao seqencial de uma entrada A computao envolve transformaes sobre
facilmente identificvel uma cadeia de dados contnua
A relao entre entrada e sadas As transformaes so incrementais. Uma
temporalmente independente transformao pode executar antes do trmino do
passo anterior

Chamada/Retorno Chamada/Retorno
A ordem da computao fixa Orientao a objetos:
Componentes no podem fazer progresso - Ocultamento da Informao: produz mdulos
enquanto aguardando o resultado das similares, que no decorrer do desenvolvimento
e teste se beneficiam do uso de herana
chamadas

14
Chamada/Retorno Componentes Independentes
Camadas: O sistema executa em uma plataforma multi-
As tarefas do sistema podem ser particionadas processada (ou que pode vir a ser no futuro)
entre: especficas da aplicao, e genricas a O sistema pode ser estruturado como um conjunto
muitas aplicaes, mas especficas plataforma de componentes fracamente acoplados, de modo
subjacente que um componente pode fazer progressos de
Portabilidade importante forma independente dos outros.
Pode-se usar uma infra-estrutura de Ajuste de desempenho importante, seja atravs
computao pr-existente da re-alocao de tarefas a processos,seja atravs
da re-alocao de processos a processadores

Componentes Independentes Componentes Independentes


Processos Comunicantes: Baseada em Evento
Objetos Distribudos: OO + Componentes Quando necessrio desacoplar consumidores e
Independentes produtores de eventos
Quando necessrio escalabilidade, e permitir a adio
Redes de filtros: Data-Flow + Componentes de novos processos ao sistema, os quais sero
Independentes integrados a eventos j sinalizados no sistema

Cliente-Servidor: As tarefas podem ser divididas entre


geradores de pedidos (ou consumidores de dados)
executores de pedidos (ou produtores de dados)

Centrada em Dados Mquina Virtual


As questes importantes so o No existe uma mquina que execute um
armazenamento, representao, modelo computacional que foi projetado
gerenciamento e recuperao de uma grande
quantidade de dados persistentes

15
1. Identificar os principais elementos
Seleo de estilos Passos a seguir da arquitetura
Cada elemento arquitetural tem um estilo arquitetural
1. Identificar os principais elementos da arquitetura dominante que reflete as qualidades importantes que
2. Identificar o estilo arquitetural dominante devem ser alcanadas no contexto daquele elemento
3. Considerar responsabilidades adicionais associadas
com a escolha do estilo A escolha do estilo arquitetural dominante baseada
4. Modificar o estilo para atingir objetivos adicionais nos principais elementos arquiteturais

Os atributos de qualidade sobre cada elemento


arquitetural podem acarretar a utilizao ou no de um
estilo

2. Identificar o estilo arquitetural 3. Considerar responsabilidades adicionais


dominante associadas com a escolha do estilo

O estilo dominante pode ser modificado para A escolha de um estilo arquitetural introduzir
alcanar objetivos particulares responsabilidades adicionais
Se nenhum estilo conhecido parece ser apropriado, o Por exemplo:
arquiteto deve projetar e documentar um novo estilo  Se o estilo Quadro negro, ento devem-se gerenciar os
As decises sobre escolhas baseadas em atributos de mecanismos para o controle do quadro negro
qualidade dentro de um estilo devem ser  Se o estilo cliente-servidor, devem-se gerenciar os
documentadas protocolos de interao
 Responsabilidades adicionais devem ser atribudas a
elementos arquiteturais existentes ou a novos
elementos criados para este fim.

4. Modificar o estilo para atingir


Exemplo: Sistema de matrcula
objetivos adicionais
1. Identificar os principais elementos da arquitetura

 Pode-se alterar o estilo arquitetural caso este


Mdulo de acesso do
necessite ser adaptado devido a atributos de usurio

qualidade ou at mesmo funcionalidade

Mdulo de
armazenamento de
dados

16
Exemplo: Sistema de matrcula Exemplo: Sistema de matrcula
2. Identificar o estilo arquitetural dominante
3. Considerar responsabilidades adicionais associadas com
Deve ter alta
a escolha do estilo
No deve requerer
disponibilidade Deve executar  Estilo dominante escolhido: Cliente-servidor
instalao! na Internet
 Estilo secundrio: Repositrio
Mdulo de acesso do Deve ser fino!  Responsabilidades: considerar protocolo de comunicao
usurio

Cliente
Deve ser possvel
Acesso mquina
acessar de qualquer
do BD s via rede
lugar Rede/HTTP
Mdulo de
armazenamento de
No h confiana na
dados Utiliza banco de outra Servidor
disponibilidade da
mquina do BD aplicao (legada)

Exemplo: Sistema de matrcula Exemplo: Sistema de matrcula


4. Modificar o estilo para atingir objetivos adicionais
 Cliente servidor de 2 camadas e repositrio com backup 4. Modificar o estilo para atingir objetivos adicionais
 Objetivos atingidos! - Alta disponibilidade
- Fino
- Executar na Internet
Mdulo cliente Mdulo cliente - Acesso de qualquer lugar
(Acesso do usurio) Repositrio (Acesso do usurio) - No requer instalao
Cliente/
Servidor Mdulo Backup Mdulo Backup
Cliente/ (Dados) (Dados)
consulta/ consulta/
Servidor atualizao leitura atualizao leitura
sincronizao sincronizao

Mdulo Servidor Mdulo Servidor Mdulo Servidor Mdulo Servidor


(Web) leitura/escrita (Dados) (Web) leitura/escrita (Dados)
Cliente/ - Acesso maquina do BD
Servidor leitura/escrita leitura/escrita
s via rede
- Banco de outra aplicao
Aplicao legada - No h confiana na Aplicao legada
disponibilidade

Estilos arquiteturais Objetivo


Estudo de Caso- Garlan e Shaw (1994)
Ilustrar como princpios de arquitetura podem
aumentar o entendimento de sistemas de
software.

Avaliar diferentes solues e seus impactos


para um mesmo problema

17
1. Palavra-chave em contexto: Problema exemplo: palavra-chave em contexto

objetivo
Analisar diferentes arquiteturas com respeito s seguintes
consideraes de projeto:
Mudana no algoritmo de processamento (ex: shifts nas linhas
podem ser feitos em cada linha lida, em todas as linhas aps terem
sido lidas, ou por demanda);
Mudana na representao dos dados;
Mudana na funcionalidade (extensibilidade);
Performance (espao e tempo);
Grau de reuso.

Palavra-chave em contexto: entrada e sada


produzida

Selecione um estilo para o sistema KWIC, e


represente os elementos arquiteturais do
sistema no estilo escolhido.

18

Vous aimerez peut-être aussi