Estilos arquiteturais
Paulo Borba e Fernando Castor Centro de Informática
Universidade Federal de Pernambucio
Guepardo
Consegue atingir velocidades de 110 a 120 km/h, ..., sendo o mais rápido de todos os animais
terrestres...
http://pt.wikipedia.org/wiki/Guepardo
Bom, mas esse bicho também é...
• Animal
• Mamífero
• Carnívoro
• Felino
abstração
http://docs.google.com/Doc?docid=0Aeq-cxjLYT32ZGRicGpuYl8zM3d0cDI0NmRr&hl=en
Arquitetura do google wave
Garante replicação de dados padrão do
HDFS, ..., torna o sistema menos passível a falhas...
http://docs.google.com/Doc?docid=0Aeq-cxjLYT32ZGRicGpuYl8zM3d0cDI0NmRr&hl=en
OK, mas esse troço também é...
• ?
• ?
• ?
• ?
abstração?
Problema!
• mais difícil explicar e entender
• mais tempo é necessário
• maiores chances de fracasso
sem vocabulário específico, sem abstrações, é...
Qual o vocabulário para arquitetura de
software?
Estilos (padrões) arquiteturais
• Client-server
• Pipes and filters
• Layers
• Publisher-subscribers
• Blackboard
• ...
O que eu
ganho com o
vocabulário?
• Linguagem comum
• Facilidade de entendimento
• Direcionamento (reuso de formas comuns e bem sucedidas)
• Produtividade
• Qualidade
Benefícios do uso de
estilos (padrões)
Habilidades a serem desenvolvidas
• Dominar vocabulário
• Reconhecer estilos em uma arquitetura
• Escolher e usar estilos para definir uma arquitetura
• Definir um estilo
Client-server
http://www.flickr.com/photos/29712319@N02/3272870058/
Client-server, estrutura
http://www.cs.cmu.edu/~acme/AcmeStudio/index.html
Client-server,
comportamento
Variações na estrutura
e comportamento
Características
• Separação de preocupações
• Divisão de funcionalidades e processamento
• Interfaces distintas entre servidores
Pipes and filters
http://www.flickr.com/photos/7375607@N07/2976752745/
Pipes and filters,
estrutura
Vários client-servers?
http://www.cs.cmu.edu/~acme/AcmeStudio/index.html
client? server?
A topologia
não é tudo!
Pipes and filters,
comportamento
Pipes and filters, outro
comportamento
Características
• Separação de preocupações (várias), composição
• Divisão de funcionalidades, em cima de stream de dados
• Interfaces normalmente comuns, para maior reuso
• Extensibilidade, via troca de filtros
• Concorrência
Combinando estilos, via
representação
Combinando estilos,
misturando papéis
Não há uma hierarquia de abstrações!
cliente
servidor pipe filter
layer
publisher subscriber
Verificando habilidades...
• Pipes and filters é usado na sua arquitetura?
• Client-server é usado na sua arquitetura?
• Com que estrutura?
• Com que comportamento?
• Por que? Quais os benefícios?
Take notes,
now!
Estilos arquiteturais
Paulo Borba e Fernando Castor Centro de Informática
Universidade Federal de Pernambucio
Publisher-subscribers
http://www.flickr.com/photos/19396658@N00/2569401442/
Publisher-subscribers,
estrutura
Publisher-subscribers,
comportamento
Publisher-
subscribers
=
vários client-server
(peer-to-peer)?
Publisher-subscribers, benefícios
• Reuso
• qualquer subscriber pode se beneficiar dos serviços
• publisher não conhece subscribers, nem sabe ordem de notificação
• Evolução
• subscribers podem ser substituídos, sem mudança de interface
Publisher-subscribers, desvantagens
• Pouco pode-se assumir sobre o efeito de um evento
• Eventos não podem ter muita informação associada
Shared data
http://www.flickr.com/photos/69992404@N00/125206800/
Shared data, estrutura
Repository,
comportamento
Blackboard,
comportamento
Verificando habilidades...
• Publisher-subscriber é usado na sua arquitetura?
• Shared-data é usado na sua arquitetura?
• Com que estrutura?
• Com que comportamento?
• Por que? Quais os benefícios?
Layers
http://www.flickr.com/photos/42246573@N00/2908569522/
Layers, relações
• Client-server como caso especial, mais visão de implantação
• Tipo de arquitetura call-return
• OO
• main program and subroutine
Layers, benefícios e desvantagens
✓Modularidade
✓desenvolvimento, reuso e manutenção independentes
- Impacto negativo em performance/
memória
- Maior esforço de desenvolvimento
Outros padrões
• Interpreter
• Microkernel
• Reflection
O que são padrões?
O que é
arquitetura?
conjuntos de restrições sobre...
•
entidades genéricas (padrões)•
entidades específicas (arquitetura)denotam...
conjuntos de
sistemas!
estilos = padrões
• Contexto
• Problema
• Forças
• Solução
• Consequências (vantagens e desvantagens)
• Variações
Solução
• Estrutura
• tipos de componentes e conectores
• possibilidades de conexão
• Comportamento, interação
• Análises
• Exemplos
Padrão de arquitetura ou projeto?
• Observer
• Broker
• Proxy
• Model-view-controller
• Chain of responsability
Verificando habilidades...
• Defina o estilo Layers
Estilos arquiteturais
Paulo Borba e Fernando Castor Centro de Informática
Universidade Federal de Pernambucio