Sei sulla pagina 1di 33

Arquitetura de Software Parte 2/3-Estilos Arquiteturais

Jorge H. C. Fernandes Junho de 1999

Estilos Arquiteturais mais Comuns (Mary Shaw, 96)


? Data flow
? Batch ? Pipes e filtros

? Componentes Independentes
? Processos comunicantes
? Cliente/Servidor

? Chamada e retorno
? Programa principal e subrotinas ? Remote Procedure Call ? Orientado a objetos/TAD ? Camadas

? Sistemas de eventos
? Invocao Implcita

? Centrado em Dados
? Repositrio ? Blackboard

? Mquina virtual
? Interpretador
Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas Data-Flow
?O sistema realiza uma srie de transformaes sucessivas sobre uma cadeia de dados ?A meta reuso e modificabilidade ?Principais Estilos
? Batch sequencial ? Pipes e filtros

Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas Data-Flow

Batch Sequencial
? Componentes ou etapas do processamento so programas independentes, e cada etapa ocorre aps o trmino da outra ? Dados so transmitidos em um bloco entre as etapas (ou componentes) Fita
Data Entry Fita Validao Fita Fita Relatrio Relatrio Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br Fita

Classificao

Atualizao

Arquiteturas Data-Flow

Pipes e Filtros
? Transformao incremental de dados, efetuada por vrios componentes em sucesso ? Filtros so tradutores de dados (usam pouco contexto) ? Pipes conectam filtros (stateless) ? Composio de funes
Dados Dados Filtro #3 Dados

Filtro #1

Dados Dados Dados

Dados Dados Dados

Filtro #2

Dados Dados Dados

Dados Dados Dados

Pipe

Pipe

Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas Data-Flow

Pipes e Filtros
? Vantagens e Desvantagens
? Interatividade e cooperatividade entre filtros difcil ? Baixa performance
? Abstrao de dados primitiva ? Gerencia de buffers

? Simplicidade ? Facilidades para compor e paralelizar o sistema

Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas de Chamada e Retorno


? Criam sistemas modificveis e escalveis ? Dominada pela ordem da computao, normalmente com um nico thread de controle ? Principais Estilos
? Programa principal e sub-rotinas ? Remote Procedure Call - RPC ? Orientada a Objetos/ADT ? Camadas

Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas de Chamada e Retorno

Programa Principal e Subrotinas


?Decompor e hierarquizar ?Controle e dados so passados em conjunto

Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas de Chamada e Retorno

Remote Procedure Call


? Subrotinas executam em outras mquinas conectadas atravs de uma rede

Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas de Chamada e Retorno

Orientada a Objetos/TAD
? Enfatiza o agrupamento de dados + conhecimento acerca de como manipular os dados ? Orientao a Objetos = TAD+herana+polimorfismo

Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas de Chamada e Retorno

Sistemas em Camadas
? Componentes so alocados a camadas que controlam interao ? Cada componente se comunica (sempre que possvel) apenas com os das camadas vizinhas
Interface Sistema Utilitrios Core
Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas de Componentes Independentes


? Processos independentes que se comunicam atravs de mensagens ? Alto grau de modificabilidade atravs do desacoplamento de vrias pores da computao ? Envio de dados entre processos, normalmente sem controlar a execuo de cada um deles. ? Principais Estilos
? Processos Comunicantes ? Sistemas de Eventos
? Invocao implcita

Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas de Componentes Independentes

Processos Comunicantes
? Sistemas multiprocessados clssicos ? Vrias especializaes
? Lightweight Processes ? Distributed Objects ? Network of Filters ? Client-Server(Request-Reply) ? Heartbeat ? Probe/echo ? Broadcast ? Token Passing ? Decentralized servers ? Replicated Workers
Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas de Componentes Independentes

Sistemas de Eventos
?Desacoplamento entre consumidores e produtores de eventos ?Escalabilidade
? Adio de novos observadores para eventos que j so produzidos

?Invocao implcita
? O produtor de eventos no controla quem ser notificado ou quando ele ser notificado
Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas de Componentes Independentes: Invocao Implcita

Publish/Subscribe Paradigm
Event Producer

Event Consumer

Consumer Interface Advertise Unsubscribe Publish Unadvertise Notify Subscribe

Event Notification Structure

Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas de Componentes Independentes: Invocao Implcita

Observable/Observer Paradigm
Event Producer Listen Unlisten Consumer Interface Notify Notify Event Dispatcher Structure Event Consumer

Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas Centrada em Dados


? A meta a integrao de dados ? Descreve o acesso e atualizao de repositrios de dados amplamente acessveis ? Dominada por um complexo depsito de dados centralizado, manipulado por computaes independentes ? Depsitos de dados podem ser passivos (arquivos, bases de dados) ou ativos (ex: blackboard) ? Principais estilos ? Repositrio ? Blackboard
Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas Centradas em Dados

Repositrio
Cliente

Cliente

Dados Compartilhados

Cliente

Cliente

Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas Centradas em Dados

Blackboard
Cliente

Cliente

Blackboard

Cliente

Cliente

Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas de Mquina Virtual


? Simulam uma funcionalidade que no nativa do hardware ou do software onde ela no implementada ? A meta portabilidade ? Simuladores de Software (linguagens - Java VM) ou Hardware (arquiteturas de sistema)
Inputs

Data (Program State)


State Data Data Updates Selected Instruction Selected Data

Program Being Interpreted


Program Instructions

Outputs

Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Interpretation Engine

Internal State

Estilos Arquiteturais: Indicaes de Uso

Arquiteturas Data-Flow
?As interfaces entre os componentes so simples ?O sistema produz resultados simples e bem identificveis que derivam diretamente da transformao seqencial de uma entrada facilmente identificvel ?A relao entre entrada e sadas temporalmente independente
Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas Data-Flow

Batch-Seqencial
? Existe uma nica sada, resultante de uma nica entrada de dados ? As transformaes so seqenciais

Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas Data-Flow

Pipes e Filtros
? A computao envolve transformaes sobre uma cadeia de dados contnua ? As transformaes so incrementais. Uma transformao pode executar antes do trmino do passo anterior

Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas de Chamada e Retorno


?A ordem da computao fixa ?Componentes no podem fazer progresso enquanto aguardando o resultado das chamadas

Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas de Chamada e Retorno

Orientada a Objetos
?Modificabilidade e Integrabilidade so requisitos de qualidade ?Information-Hiding produz muitos mdulos similares, que no decorrer do desenvolvimento e testes se beneficiam do uso de herana

Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas de Chamada e Retorno

Sistemas em Camadas
?As tarefas do sistema podem ser particionadas entre
? especficas da aplicao e; ? genricas a muitas aplicaes, mas especficas plataforma subjacente

?Portabilidade importante ?Voc pode usar uma infra-estrutura de computao pr-existente


Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas de Componentes Independentes


? O sistema executa em uma plataforma multi-processada (ou pode s-lo no futuro) ? O sistema pode ser estruturado como um conjunto de componentes fracamente acoplados, de modo que um componente pode fazer progressos de forma independente dos outros. ? Ajuste de desempenho importante
? seja atravs da re-alocao de tarefas a processos, ? seja atravs da re-alocao de processos a processadores

Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas de Componentes Independentes

Processos Comunicantes
? Lightweight Processes
? Acesso a dados compartilhados crtico para manuteno de desempenho

? Objetos Distribudos
? OO + Componentes Independentes

? Redes de filtros
? Data-Flow + Componentes Independentes

? Cliente-Servidor
? As tarefas podem ser divididas enter geradores de pedidos (ou consumidores de dados) executores de pedidos (ou produtores de dados)
Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas de Componentes Independentes

Sistemas Baseados em Eventos


?Quando necessrio desacoplar consumidores e produtores de eventos ?Quando necessrio escalabilidade, permitindo-se a adio de novos processos ao sistema, os quais sero integrados a eventos j sinalizados no sistema

Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas Centradas em Dados


?As questes importantes so o armazenamento, representao, gerenciamento e recuperao de uma grande quantidade de dados persistentes

Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquiteturas de Mquina Virtual


?No existe uma mquina que execute um modelo computacional que foi projetado

Copyright 1999, por Jorge H. C. Fernandes. jorge@dimap.ufrn.br

Arquitetura de Software Parte 2/3-Estilos Arquiteturais

Jorge H. C. Fernandes Junho de 1999

Potrebbero piacerti anche