O documento fornece uma visão geral da arquitetura de software na prática, discutindo o que é arquitetura de software, como projetá-la usando métodos como ATAM e abordagem baseada em riscos, e critérios como modificabilidade, disponibilidade e desempenho.
2. Agenda
• O que é ?
• Como fazer ?
– ATAM
– Risk-Driven Approach
• Critérios ?
– Modificabilidade
– Disponibilidade
– Performance
3. O que é ?
- Arquitetura
de Software
de Sistemas
Corporativa
4. O que é ? (2)
- Papel do Arquiteto
Analista de Requisitos, Tester e QA
Qualidade
Gerente do projeto
Tempo
Custo
Desenvolvedores
Rápido e divertido
5. O que é ? (3)
“Modele as relações, não os componentes!”
- Todo sistema precisa de uma definição forma de
arquitetura ?
- Arquitetura Evolutiva e Design Emergente
6. Como fazer ?
- ATAM: Architecture Tradeoff Analysis Method
- Risk-Driven Approach
7. Risk-Driven Approach (1)
- Tipos de Riscos quanto as incertezas:
Coisas que você sabe
(Known)
Coisas que você sabe que não sabe
(Known Unknown)
Coisas que você não sabe que não sabe
(Unknown Unknown)
15. Disponibilidade (2)
- Detectar
Analisar baseado em uma métrica: 40% a 60%
- Recuperar
Redundância ativa e/ou passiva
- Prevenir
Load Balancer e/ou Cluster
Virtualização e/ou Nugem
16. Performance
- Tempo de resposta : O que contribui para o tempo de resposta ?
- Consumo de Recurso
CPU, Memória, Disco, Rede, etc
- Aumentar o recurso
- Otimizar o uso do recurso
- Tempo bloqueado
Contenção, Disponibilidade, Dependência do recurso
- Introduzir concorrência
- Manter múltiplas cópias
17. Performance (2)
- Técnicas e Ferramentas
CPU: JProfiler e jvisualvm
Memory: Eclipse Memory Analyzer
Resource: JProfiler (ej-technologies), AppDynamics, etc
- Dicas para implementação
Stateless
Callback para gerenciar um recurso
Stream é bom!!! Evitar ByteArray[Input|Output]Stream
18. Performance (3)
- Configuração em Servidores de Aplicação
Memória: Xmx, Xms, PermSize
GC: Paralelo e/ou Concorrente para Old e New Generation
ThreadPool
DataSource Connection Pool
GZip compression
19. Referências
Software Architecture in Practice, Second
Edition Len Bass, Paul Clements, Rick Kazman
Pattern-Oriented Software Architecture (POSA)
Frank Buschmann, Regine Meunier,
Hans Rohnert, Peter Sommerlad
Just Enough Software Architecture: A Risk-
Driven Approach
George H. Fairbanks