Buscar

Aula 5 - Slides - estilos de arquitetura.pdf

Prévia do material em texto

Inspirado em Christopher 
Alexander – padrões de 
arquitetura para construções 
Catálogo de soluções para 
problemas comuns de projeto 
compreender a organização 
dos sistemas de software 
arquitetura de software 
compartilhar uma 
solução amplamente 
aplicável e comprovada 
de um problema 
particular de projeto 
numa forma padrão
Cada estilo arquitetural 
oferece suporte a um conjunto 
de requisitos não-funcionais e 
atributos de projeto 
O estilo mais apropriado a um 
sistema dependerá de seus 
requisitos, envolvendo 
requisitos funcionais e não-
funcionais. 
Contexto: Sistemas que necessitam 
processar dados contínuos 
adequada para ser usada no projeto 
de um sistema que requer vários 
estágios de processamento 
Filtro 1 Filtro 2 Filtro N 
pipe pipe pipe pipe 
considera a existência de uma rede pela qual flui 
dados de uma extremidade (origem) à outra 
(destino). O fluxo de dados se dá através de pipes 
e os dados sofrem transformações quando 
processados nos filtros. 
prevaleceu durante a década de 70. 
Manutenibilidade geralmente mais 
flexível, possibilitando a reorganização de 
filtros e pipes . 
Suporta processamento paralelo com 
múltiplo filtros rodando concorrentemente. 
mudanças frequentes em um 
componente (filtro) impactar 
outros componentes 
Estrutura um sistema num conjunto 
de camadas, onde cada uma delas 
agrupa um conjunto de tarefas num 
determinado nível de abstração 
aplicação 
apresentação 
sessão 
transporte 
rede 
enlace 
física Camada 1 
Camada 2 
Camada 3 
Camada 4 
Camada 5 
Camada 6 
Camada 7 
Arquitetura de 
protocolos de rede 
de computadores – 
OSI (Open System 
Interconnection) 
aplicação 
apresentação 
sessão 
transporte 
rede 
enlace 
física Camada 1 
Camada 2 
Camada 3 
Camada 4 
Camada 5 
Camada 6 
Camada 7 aplicação 
apresentação 
sessão 
transporte 
rede 
enlace 
física 
Protocolo da camada 7 
Protocolo da camada 6 
Protocolo da camada 5 
Protocolo da camada 4 
Protocolo da camada 3 
Protocolo da camada 2 
Protocolo da camada 1 
Comunicação entre 2 sistemas numa arquitetura em camadas 
 Cada camada oferece um conjunto de 
serviços à camada superior 
O protocolo consiste de um conjunto de regras e 
convenções que descrevem como sistemas podem 
se comunicar via rede. Em outras palavras, o 
protocolo define o formato, conteúdo e significado 
dos dados trocados entre as camadas associadas a 
ele. 
Maioria dos sistemas de informações empresariais e 
algumas tecnologias de desenvolvimento de aplicações 
(.NET, J2EE) 
Usado na construção de novos recursos em cima de 
sistemas existentes 
Quando o desenvolvimento está espalhado por várias 
equipes, com a responsabilidade de cada equipe em uma 
camada de funcionalidade. 
Quando há um requisito de proteção multinível 
Permite uma clara separação entre camadas 
e fornece potencial para reusabilidade das 
camadas (acesso, armazenamento) entre 
diversos sistemas. 
Apoia a portabilidade - apenas as camadas internas 
dependentes da máquina precisam ser 
reimplementadas. 
Mutável – quando a interface muda ou novos 
recursos são adicionados, apenas a camada adjacente 
é afetada. 
Apoia o desenvolvimento incremental – quando uma 
camada é desenvolvida alguns dos serviços podem ser 
disponibilizados para os usuários. 
Aumento se sobrecarga de comunicação entre 
camadas e adiciona complexidade ao 
desenvolvimento devido a número de elementos que 
necessitam ser desenvolvidos e integrados pelas 
camadas 
O desempenho pode ser um problema por causa 
dos múltiplos níveis de interpretação de uma 
solicitação de serviços. 
Este estilo permite que as tarefas sejam 
divididas entre produtores e 
consumidores de dados. 
Um servidor é um processo que fica 
num estado de espera, aguardando 
solicitação de serviço de um ou mais 
clientes 
A funcionalidade do sistema está 
organizado em serviços – cada serviços é 
prestado por um servidor. 
Quando os dados em um banco de dados 
compartilhado precisa precisam ser 
acessados a partir de uma série de locais. 
Podem ser usados quando a carga de um 
sistema é variável - o servidor pode ser 
replicado. 
Facilidade de remover e/ou adicionar clientes. 
Essa facilidade de mudança decorre da 
independência existente entre os processos. 
Facilidade de modificar a funcionalidade de 
um cliente (visto que outros clientes não serão 
afetados) 
Os servidores podem ser distribuídos através 
de uma rede. A funcionalidade geral pode estar 
disponível para todos os clientes e não precisa 
ser implementada por todos os serviços. 
Cada serviços é um ponto único de falha 
(negação do serviço ou falha do servidor) 
O desempenho pode ser imprevisível pois depende 
da rede. 
Todos os dados em um sistema são gerenciados em 
um repositório central, acessível a todos os 
componentes dos sistema. 
Os componentes não interagem diretamente, apenas 
por meio do repositório. 
Sistemas que geram grande volume de informações e 
precisam ser armazenados por um longo período. 
Sistemas dirigidos a dados, nos quais a inclusão de 
dados no repositório dispara uma ação. 
Os componentes podem ser independentes – não 
precisam saber da existência de outros componentes. 
As alterações feitas a um componentes podem 
propagar-se par todos os outros. 
Todos os dados podem ser gerenciados de forma 
consistente., pois tudo está em um só lugar. 
(Ex: Backup) 
O repositório é um ponto único de falha. Problemas 
no repositório podem afetar todo o sistema. 
Pode haver ineficiência na organização de toda a 
comunicação através do repositório. 
Distribuir o repositório por vários computadores pode 
ser difícil. 
é uma arquitetura de redes de computadores onde 
cada um dos pontos ou nós da rede funciona tanto 
como cliente quanto como servidor, permitindo 
compartilhamentos de serviços e dados sem a 
necessidade de um servidor central. 
Todos os pontos da rede devem usar programas 
compatíveis para ligar-se um ao outro. Uma 
rede peer-to-peer pode ser usada para 
compartilhar músicas, vídeos, imagens, dados, 
enfim qualquer coisa com formato digital. 
Sistemas distribuídos 
Telecomunicações 
Aplicações que troca de arquivos na Internet 
Elimina a possibilidade de ponto de falha 
Escalabilidade 
São resilientes a falhas parciais na rede 
Aplicações que troca de arquivos na Internet 
possível particionamento da rede, se nenhuma lista 
de ponto central está disponível 
Dificuldade de garantir uma resposta de um 
sistema a qualquer ponto em um determinado tempo 
Mendes, Antonio. Arquitetura de Software: desenvolvimento orientado 
para arquitetura. Rio de Janeiro: Campos, 2002. 
Capítulo2 pag 10 – 34 
 
Rozanski, Nick; Woods, Eoin. Software System Architecture: working 
with stakeholders using viewpoints and perpesctives. Addison-Wesley, 
2005 
Capítulo 11 – página 135 – 155 
 
Sommerville, Ian. Engenharia de Software. 9. Ed. São Paulo, Pearson 
Prentice Hall, 2011. 
Capítulo 06 – pag 103 - 115 
 
Pressman, Roger S. Engenharia de Software: uma abordagem 
profissional. 7. ed. Porto Alegre: AMGH (Mc Graw Hill), 2011. 
Capítulo 9 – pag 234 - 237 
Referência

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes