UFG - Instituto de Informática



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

Modelos de Arquiteturas. Prof. Andrêza Leite

Padrões Arquiteturais e de Integração - Parte 1

Sistemas Distribuídos

Introdução ao Modelos de Duas Camadas Cliente Servidor

SISTEMAS DISTRIBUÍDOS

Estilos e padrões arquiteturais. Estilos Arquiteturais. Estilos Arquiteturais: Taxonomia. Categorias de Estilos de Arquiteturas. Estilos arquiteturais

Projeto de Arquitetura

Estilos Arquiteturais. Estilos Arquiteturais. Exemplos de Estilos Arquiteturais. Estilo: Pipe e Filtros

Disciplina de Banco de Dados Introdução

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Sistemas Distribuídos Arquitetura de Sistemas Distribuídos I. Prof. MSc. Hugo Souza

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto


Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Engenharia de Software

UFG - Instituto de Informática

Arquitetura de Sistemas Distribuídos

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

UFG - Instituto de Informática

ARQUITETURA DE SOFTWARE

ESTUDO DE CASO WINDOWS VISTA

Sistemas Distribuídos

ADMINISTRAÇÃO DE SISTEMA OPERACIONAL DE REDE (AULA 1)

Sistemas Operacionais

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão

Projeto de Arquitetura

Comunicação em Sistemas Distribuídos

Sistemas Distribuídos

Sistemas Distribuídos

SISTEMAS OPERACIONAIS

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS

3 SCS: Sistema de Componentes de Software

Programação distribuída e paralela (C. Geyer) RPC 1

Everson Scherrer Borges João Paulo de Brito Gonçalves


Arquitetura de Sistemas Operativos

Maestro. Arthur Kazuo Tojo Costa Universidade Federal de São Carlos Campus Sorocaba Bacharelado em Ciência da Computação

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Comunicação. Parte II

Sistema Operacional Correção - Exercício de Revisão

Redes de Computadores Aula 3

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor

Visão do Usuário da DSM

Sistemas Distribuídos

Sistemas Distribuídos

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron

Considerações no Projeto de Sistemas Cliente/Servidor

UFG - Instituto de Informática

Linguagem de Programação Introdução a Linguagem Java

UFG - Instituto de Informática

Sistemas Operacionais. Patrícia Megumi Matsumoto Luciana Maria Gregolin Dias

Fundamentos de Sistemas Computacionais Introdução

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Paradigma Cliente/Servidor

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

UFG - Instituto de Informática

Fundamentos de Banco de Dados

Um pouco do Java. Prof. Eduardo

Análise e Projeto de Sistemas de Informação. Andrêza Leite andreza.lba@gmail.com

SISTEMAS DISTRIBUIDOS

Introdução à Programação. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

Análise e Projeto Orientados por Objetos

Sistema centralizado O Paradigma Cliente/Servidor

Serviços Web: Introdução

Noções de. Microsoft SQL Server. Microsoft SQL Server

Desenvolvimento Cliente-Servidor 1

Tecnologia e Infraestrutura. Conceitos de Redes

Sistemas Operacionais I Parte III Estrutura dos SOs. Prof. Gregorio Perez gregorio@uninove.br Roteiro. Componentes do Sistema

Sistemas Operacionais

Sistemas Distribuídos

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

Programação de Sistemas

Programação de Sistemas

Web Services. (Introdução)

Analista de Sistemas Ambiente GRID para física experimental de altas energias

SOA - Service Oriented Architecture. Marcelo Canevello Ferreira

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

SISTEMA GERENCIADOR DE BANCO DE DADOS

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores

Programação Orientada a Objetos

Service Oriented Architecture (SOA)

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

SISTEMAS DISTRIBUÍDOS

CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais

ARQUITETURA DE SISTEMAS. Cleviton Monteiro

Sistemas Operacionais. Conceitos de um Sistema Operacional

Transcrição:

UFG - Instituto de Informática Curso: Sistemas de Informação Arquitetura de Software Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 4 Estilos Arquitetônicos

Estilos Arquiteturais Dataflow (Fluxo de Dados) Lote Sequencial Pipes e Filtros Chamada e Retorno Programa principal e Subrotina Remote Procedure Call Orientado a Objetos/TAD Camadas

Estilos Arquiteturais Componentes Independentes Processos Comunicantes Cliente Servidor Sistemas de Eventos Invocação Implícita Centrado em Dados Repositório Blackboard

Estilos Arquiteturais Máquina Virtual Interpretador

Arquiteturas Dataflow 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

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

Lote Sequencial

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

Pipes e Filtros

Pipes e Filtros Vantagens e Desvantagens Interatividade e cooperatividade entre filtros é difícil Baixa performance Abstração de dados é primitiva Gerencia de buffers Simplicidade Facilidades para compor e paralelizar o sistema

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

Programa principal e sub-rotinas Decompor e hierarquizar Controle e dados são passados em conjunto

Programa principal e sub-rotinas

Chamadas de Procedimento Remoto Sub-rotinas executam em outras máquinas conectadas através de uma rede

Orientadas a Objetos/TAD Enfatiza o agrupamento de dados + conhecimento acerca de como manipular os dados Orientação a Objetos = TAD+herança+polimorfismo

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

Arquitetura 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 Invocação implícita

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

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 será notificado ou quando ele será notificado

Paradigma Publicador/Assinante

Paradigma Observado/Observador

Arquitetura 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

Repositório

Blackboard

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)

Estilos Arquitetônicos Indicações de uso

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 é temporalmente independente

Lote Sequencial Existe uma única saída, resultante de uma única entrada de dados As transformações são seqüenciais

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

Arquiteturas de Chamada e Retorno A ordem da computação é fixa Componentes não podem fazer progresso enquanto aguardando o resultado das chamadas

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

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 computação pré-existente

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

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)

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

Arquitetura centrada em dados As questões importantes são o armazenamento, representação, gerenciamento e recuperação de uma grande quantidade de dados persistentes

Arquitetura de Máquina Virtual Não existe uma máquina que execute um modelo computacional que foi projetado

Resumindo