• Nenhum resultado encontrado

Arquitetura de Software Parte 2/3-Estilos Arquiteturais. Jorge H. C. Fernandes Junho de 1999

N/A
N/A
Protected

Academic year: 2021

Share "Arquitetura de Software Parte 2/3-Estilos Arquiteturais. Jorge H. C. Fernandes Junho de 1999"

Copied!
33
0
0

Texto

(1)

Arquitetura de Software

Parte 2/3-Estilos Arquiteturais

Jorge H. C. Fernandes

Junho de 1999

(2)

Estilos Arquiteturais mais

Comuns (Mary Shaw, 96)

? Data flow ? Batch ? Pipes e filtros ? Chamada e retorno ? Programa principal e subrotinas

? Remote Procedure Call ? Orientado a objetos/TAD ? Camadas ? Componentes Independentes ? Processos comunicantes ?Cliente/Servidor ? Sistemas de eventos ?Invocação Implícita ? Centrado em Dados ? Repositório ? Blackboard ? Máquina virtual

(3)

Arquiteturas Data-Flow

?

O sistema realiza uma série de

transformações sucessivas sobre uma

cadeia de dados

?

A meta é reuso e modificabilidade

?

Principais Estilos

?

Batch sequencial

?

Pipes e filtros

(4)

Arquiteturas Data-Flow

Batch Sequencial

? Componentes ou etapas do processamento são

programas independentes, e cada etapa ocorre após o término da outra

? Dados são transmitidos em um bloco entre as etapas

(ou componentes)

Data Entry Validação

Classificação Atualização

Fita

Fita Fita

(5)

Arquiteturas Data-Flow

Pipes e Filtros

? Transformação incremental de dados, efetuada por

vários componentes em sucessão

? Filtros são tradutores de dados (usam pouco contexto) ? Pipes conectam filtros (stateless)

? Composição de funções

Filtro #2

Filtro #1 Filtro #3 Dados

Dados Dados Dados Dados Pipe Pipe Dados Dados Dados Dados Dados Dados Dados Dados Dados Dados

(6)

Arquiteturas Data-Flow

Pipes e Filtros

?

Vantagens e Desvantagens

? Interatividade e cooperatividade entre filtros é difícil ? Baixa performance

?Abstração de dados é primitiva ?Gerencia de buffers

? Simplicidade

(7)

Arquiteturas de Chamada e

Retorno

?

Criam sistemas modificáveis e escaláveis

?

Dominada pela ordem da computação,

normalmente com um único thread de controle

?

Principais Estilos

? Programa principal e sub-rotinas ? Remote Procedure Call - RPC

? Orientada a Objetos/ADT ? Camadas

(8)

Arquiteturas de Chamada e Retorno

Programa Principal e Subrotinas

?

Decompor e hierarquizar

?

Controle e dados são passados em

(9)

Arquiteturas de Chamada e Retorno

Remote Procedure Call

? Subrotinas executam em outras máquinas conectadas

(10)

Arquiteturas de Chamada e Retorno

Orientada a Objetos/TAD

? Enfatiza o agrupamento de dados + conhecimento

acerca de como manipular os dados

(11)

Arquiteturas de Chamada e Retorno

Sistemas em Camadas

? Componentes são alocados a camadas que controlam

interação

? Cada componente se comunica (sempre que possível)

apenas com os das camadas vizinhas

Interface

Sistema

Utilitários

(12)

Arquiteturas de Componentes

Independentes

? Processos independentes que se comunicam através de

mensagens

? Alto grau de modificabilidade através do

desacoplamento de várias porções da computação

? Envio de dados entre processos, normalmente sem

controlar a execução de cada um deles.

? Principais Estilos

? Processos Comunicantes ? Sistemas de Eventos

(13)

Arquiteturas de Componentes Independentes

Processos Comunicantes

? Sistemas multiprocessados clássicos ? Várias especializações ? Lightweight Processes ? Distributed Objects ? Network of Filters ? Client-Server(Request-Reply) ? Heartbeat ? Probe/echo ? Broadcast ? Token Passing ? Decentralized servers ? Replicated Workers

(14)

Arquiteturas de Componentes Independentes

Sistemas de Eventos

?

Desacoplamento entre consumidores e

produtores de eventos

?

Escalabilidade

?

Adição de novos observadores para eventos

que já são produzidos

?

Invocação implícita

?

O produtor de eventos não controla quem

(15)

Arquiteturas de Componentes Independentes: Invocação Implícita

Publish/Subscribe Paradigm

Event Notification Structure

Publish Subscribe Advertise Unadvertise Unsubscribe Consumer Interface Event Consumer Notify Event Producer

(16)

Arquiteturas de Componentes Independentes: Invocação Implícita

Observable/Observer Paradigm

Event Dispatcher Structure Listen Notify Unlisten Consumer Interface Event Consumer Notify Event Producer

(17)

Arquiteturas Centrada em

Dados

? A meta é a integração de dados

? Descreve o acesso e atualização de repositórios de

dados amplamente acessíveis

? Dominada por um complexo depósito de dados

centralizado, manipulado por computações independentes

? Depósitos de dados podem ser passivos (arquivos,

bases de dados) ou ativos (ex: blackboard)

? Principais estilos ? Repositório ? Blackboard

(18)

Arquiteturas Centradas em Dados

Repositório

Cliente Cliente Cliente Cliente Dados Compartilhados

(19)

Arquiteturas Centradas em Dados

Blackboard

Cliente Cliente Cliente Cliente Blackboard

(20)

Arquiteturas de Máquina

Virtual

? Simulam uma funcionalidade que não é nativa do

hardware ou do software onde ela não é implementada

? A meta é portabilidade

? Simuladores de Software (linguagens - Java VM) ou

Hardware (arquiteturas de sistema)

Inputs State Data Updates Data (Program State) Program Being Interpreted Program Instructions Data

(21)

Estilos Arquiteturais:

Indicações de Uso

(22)

Arquiteturas Data-Flow

?

As interfaces entre os componentes são

simples

?

O sistema produz resultados simples e

bem identificáveis que derivam

diretamente da transformação seqüencial

de uma entrada facilmente identificável

?

A relação entre entrada e saídas é

(23)

Arquiteturas Data-Flow

Batch-Seqüencial

?

Existe uma única saída, resultante de uma única

entrada de dados

(24)

Arquiteturas Data-Flow

Pipes e Filtros

?

A computação envolve transformações sobre

uma cadeia de dados contínua

?

As transformações são incrementais. Uma

transformação pode executar antes do término

do passo anterior

(25)

Arquiteturas de Chamada e

Retorno

?

A ordem da computação é fixa

?

Componentes não podem fazer progresso

enquanto aguardando o resultado das

chamadas

(26)

Arquiteturas de Chamada e Retorno

Orientada a Objetos

?

Modificabilidade e Integrabilidade são

requisitos de qualidade

?

Information-Hiding produz muitos

módulos similares, que no decorrer do

desenvolvimento e testes se beneficiam

do uso de herança

(27)

Arquiteturas de Chamada e Retorno

Sistemas em Camadas

?

As tarefas do sistema podem ser

particionadas entre

?

específicas da aplicação e;

?

genéricas a muitas aplicações, mas

específicas à plataforma subjacente

?

Portabilidade é importante

?

Você pode usar uma infra-estrutura de

(28)

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 através da re-alocação de tarefas a processos,

(29)

Arquiteturas de Componentes Independentes

Processos Comunicantes

? Lightweight Processes

? Acesso a dados compartilhados é crítico para manutenção de

desempenho

? Objetos Distribuídos

? 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)

(30)

Arquiteturas de Componentes Independentes

Sistemas Baseados em Eventos

?

Quando é necessário desacoplar

consumidores e produtores de eventos

?

Quando é necessário escalabilidade,

permitindo-se a adição de novos

processos ao sistema, os quais serão

integrados a eventos já sinalizados no

sistema

(31)

Arquiteturas Centradas em

Dados

?

As questões importantes são o

armazenamento, representação,

gerenciamento e recuperação de uma

(32)

Arquiteturas de Máquina

Virtual

?

Não existe uma máquina que execute um

(33)

Arquitetura de Software

Parte 2/3-Estilos Arquiteturais

Jorge H. C. Fernandes

Junho de 1999

Referências

Documentos relacionados

- DUAS SETAS DE CARTÃO VERMELHO para indicar a TEMPERATURA no termómetro - DUAS SETAS DE CARTÃO AMARELO para indicar o MÊS no CÍRCULO DAS ESTAÇÕES. - DUAS SECÇÕES CIRCULARES

Não só pela credibilidade profissional, mas também pelo motivo dos Sistemas de Busca não indexar as páginas dos sites que estão neste tipo de servidor grátis... Além disso,

Marianne é uma líder nata. Tem força para cultivar relacionamentos e dar início a mudanças em sua organização. Visto dar muita importância a progredir na

MELO, Nehemias Domingos de. Responsabilidade civil por erro médico: doutri- na e jurisprudência.. doutrina distingue duas hipóteses de responsabilização médi- ca: a

1º As categorias do Para-Karate nas Etapas do Campeonato Paulista de Karate acontecerá em forma de Festival (Apresentação) e o Paratleta deverá apresentar no mínimo dois Kata dentro

TIPOS DE SISTEMA DE COLETA Esgotamento sanitário Sistema individual Sistema coletivo Sistema unitário Sistema separador Sistema convencional Sistema condominial...

Tem-se como objetivos específicos a caracterização do resíduo, fabricação de uma telha com resíduos de gesso e a introdução as fibras de sisal para que possa resistir

Contudo, refletir acerca da inclusão escolar para o educando autista no contexto da Política Pública do município de Manaus, tendo como parâmetro os conceitos presentes na Política