Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
? 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
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
Filtro #2
Pipe
Pipe
Arquiteturas Data-Flow
Pipes e Filtros
? Vantagens e Desvantagens
? Interatividade e cooperatividade entre filtros difcil ? Baixa performance
? Abstrao de dados primitiva ? Gerencia de buffers
Orientada a Objetos/TAD
? Enfatiza o agrupamento de dados + conhecimento acerca de como manipular os dados ? Orientao a Objetos = TAD+herana+polimorfismo
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
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
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
Publish/Subscribe Paradigm
Event Producer
Event Consumer
Observable/Observer Paradigm
Event Producer Listen Unlisten Consumer Interface Notify Notify Event Dispatcher Structure Event Consumer
Repositrio
Cliente
Cliente
Dados Compartilhados
Cliente
Cliente
Blackboard
Cliente
Cliente
Blackboard
Cliente
Cliente
Outputs
Interpretation Engine
Internal State
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
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
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
Sistemas em Camadas
?As tarefas do sistema podem ser particionadas entre
? especficas da aplicao e; ? genricas a muitas aplicaes, mas especficas plataforma subjacente
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