Académique Documents
Professionnel Documents
Culture Documents
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
Sistemas interativos interao HM. Pipes & Sistemas OO Invocao Sistemas Sistemas de
Sistemas adaptveis oferecem suporte para Filters Implcita (ou
Sistemas
Baseados em
Regras
Hipertexto
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
PIPES
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)
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
4
Caractersticas Caractersticas
Apresentao Apresentao
Negcio Negcio
Armazenamento Armazenamento
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
6
Ex: Aplicao: Internet Ex: Sistema Cliente-Servidor
Servidor
Clientes
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
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
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.
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
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
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
Repositrio (Repository)
Ex: Banco de dados tradicional
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
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
Sei subtrair!
Sei multiplicar!
2 x (3+2)2 + 3 - 6 = ?
Controlador
x - x -
Gerncia dos dados
x2 x2
Controlador
12
Quadro negro (Blackboard) Quadro negro (Blackboard)
x - x -
x2 x2
Controlador Controlador
+ +
x - x -
x2 x2
Controlador Controlador
+ +
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
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
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
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.
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)
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.
18