Arquiteturas para Sistemas Distribuídos I

Documentos relacionados
PERFIL PROFISSIONAL TÉCNICO/A DE INFORMÁTICA - SISTEMAS

Arquitetura TCP/IP. Apresentado por: Ricardo Quintão

Arquiteturas. Capítulo 2

Proporcionar a modelagem de sistemas utilizando todos os conceitos da orientação a objeto;

Mestrado em Engenharia Informática. Vitor Beires Nogueira. Escola de Ciência e Tencologia Universidade de Évora 1.1. V. Nogueira. Mobile Data Caching

TOKEN RING & TOKEN BUS

1.1. Definição do Problema

Virtualização: o caminho para usar os recursos computacionais de forma inteligente

Sistemas Distribuídos Capítulo 4 - Aula 5

Prof a Andréa Schwertner Charão DELC/CT/UFSM

Arquitetura e Organização de Computadores

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Capítulo 6 - Threads

Processo de Desenvolvimento de Software

5 - Qual é a principal vantagem de desenvolvimento de código por pares:

Sistemas Distribuídos Apresentação da disciplina e proposta didática Prof. MSc Hugo Vieira L. Souza

Organização e Arquitetura de Computadores I

Professor Esp.: Douglas Diego Arquitetura de Rede: Ponto-a-ponto, Cliente/Servidor. Topologia de Rede: Física: Barra, Estrela, Anel.

/ 2012_1 6 ( ) ADM ( ) ADM COMEX ( ) ADM MKT

Rede Local - Administração Gestão de Objetos da Rede: Active Directory

SISTEMAS DISTRIBUÍDOS ARQUITETURAS. Slides cedidos pela Professora Aline Nascimento

Soluções de gestão de clientes e de impressão móvel

Arquitetura da Informação Organizacional: Um novo paradigma para Enterprise Architecture

Técnicas de Programação para a Web. Luiz Cláudio Silva. Novembro de Apresentação

Introdução a Banco de Dados. INTRODUÇÃO

Introdução a Informática

Arquiteturas. capítulo

Tipos de Banco de Dados - Apresentação

alocação de custo têm que ser feita de maneira estimada e muitas vezes arbitrária (como o aluguel, a supervisão, as chefias, etc.

Especialização Disciplina Sistemas Distribuídos Prof. Cesar A. Tacla UTFPR/Curitiba

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

Análise e modelação de sistemas

Glossário Versão 1.0 Desenvolvimento do Sistema de Gestão de Documentos Doc Manager Histórico de Revisão

- Campus Salto. Disciplina: Sistemas de Arquivos Docente: Fernando Santorsula

LINHAS MESTRAS; FASES; DISCIPLINAS; PRINCÍPIOS E MELHORES PRÁTICAS.

Linux? O que é, para que serve, etc. isep. Grupo de Utilizadores de Linux do Departamento de Eng. Informática do ISEP

UTILIZAÇÃO DE ARQUITETURA EM CAMADAS BASEADA NO MODEL VIEW CONTROLLER, EM APLICAÇÕES WEB

Microcontroladores e Microprocessadores. Conversão de Bases Prof. Samuel Cavalcante

INE 5323 Banco de Dados I

Partilhar Dados Anónimos com a Lenovo. Índice. Harmony

Capítulo 5 - Cabeamento para Redes Locais e WANs. Associação dos Instrutores NetAcademy - Julho de Página

FUNDAMENTOS DE SISTEMAS OPERACIONAIS MÓDULO 4

PROJETO DE REDES Prof. José Maurício S. Pinheiro UniFOA

Elementos básico de uma rede Samba - Local Master Browser

Fundamentos de Arquitetura e Organização de Computadores

FATORES QUE INFLUENCIAM A VELOCIDADE DA INTERNET

INSTITUTO DE ENSINO SUPERIOR SANTO ANDRÉ

PLANO DE ATUALIZAÇÃO E MANUTENÇÃO DOS EQUIPAMENTOS.

Orientações Para o Preenchimento do Formulário de Inscrição Preliminar dos Projetos

Sistemas Distribuídos

ELETRÔNICA DIGITAL. Parte 6 Display, Decodificadores e Codificadores. Prof.: Michael. 1 Prof. Michael

Programação Distribuída. Arquiteturas

Introdução aos Sistemas Operacionais

Computadores. Redes de. redes de computadores. Exemplo: Grécia antiga. O problema básico de. Antonio Alfredo Ferreira Loureiro. Exemplo: Grécia antiga

Arquitectura interna de um computador

Virtualização de Servidores. Adirlhey Assis Marcus Vinicius Coimbra

Montadores e Compiladores

Redes de comunicação. Mod 2 Redes de computadores. Professor: Rafael Henriques

Introdução à Programação. Microsoft WINDOWS XP Eng. Ambiente CA

Integralização do Curso Nova grade de Ciência Proposta

Qualidade de Produto. Maria Cláudia F. P. Emer

Exame de Equivalência à Frequência do Ensino Secundário

Arquitetura de Computadores Sistemas Operacionais I

Tecnologias de Distribuição e Integração. Quais as preocupações a ter com um sistema distribuído?

Sistemas Distribuídos

UFG - Instituto de Informática

Introdução à Ciência da Informação

Requisitos de Software

Gestão de Tecnologia da Informação

Laboratório nº 5 FUNCIONAMENTO DO ADDRESS RESOLUTION PROTOCOL

O Sistema de Computação

Introdução. Qualidade de Produto. Introdução. Introdução ISO/IEC Normas

SISTEMA DE GERENCIAMENTO DE EDIFÍCIOS METASYS Vá mais longe com Metasys

Aula 2. Modos de Transmissão; Protocolos de Comunicação; Interfaces; Modelo de Referência OSI; Dispositivos de Rede; Camada Física: Introdução.

Informática Aplicada

Projeto Integrador Gestão em TI II Gestão em Pessoas. Organograma DIRETOR DEPARTAMENTO DE T.I ANALISTA TÉCNICO

O que é um sistema distribuído?

MATRIZ DA PROVA DE EXAME DE EQUIVALÊNCIA À FREQUÊNCIA A NÍVEL DE ESCOLA DE INTRODUÇÃO ÀS TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO (PROVA 24)

2) Em relação aos algoritmos de sincronização de relógios:

Estilos Arquiteturais

Orientação a Objetos

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

Parte 05 - Técnicas de programação (mapas de Veitch-Karnaugh)

Curso Tecnológico de Administração/12.º Nº de anos: 1 Duração: 120 minutos Decreto-Lei n.º 139/2012, de 5 de julho

SIMULADO A - COBIT 5 PORTUGUES

Metodologias de alinhamento PETI. Prof. Marlon Marcon

4ª feira 2 de setembro

Barramentos de campo. Modelo OSI para sistemas comunicantes

OpenPDV: Sistema aberto para gerenciamento de restaurantes

Arquitecturas de Sistemas Distribuídos

Atualizações de Software Guia do Usuário

Monitorização de Energia

Escola Superior de Redes

Administração Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

BANCO DE DADOS. Professor: André Dutton

SIG. USANDO A TECNOLOGIA COMO SUPORTE Tecnologias de Apoio

Transcrição:

Arquiteturas para Sistemas Distribuídos I Pedro Ferreira Departamento de Informática Faculdade de Ciências da Universidade de Lisboa

Tópicos Estilos Arquiteturais: formas de desenhar o software do SD Organização do software do SD em componentes e conetores Alguns estilos amplamente utilizados:» Camadas» Objetos» Eventos» Espaço de dados partilhado Componente de software: unidade modular de software com interfaces de entrada e saída bem definidas, que é substituível no seu ambiente. Arquiteturas de Sistemas: organização do SD Centralizados (e.g., modelo cliente-servidor) Descentralizados (e.g., peer to peer puro ) Híbridos (e.g., sistemas colaborativos) Conetor: mecanismo de mediação da comunicação, coordenação ou cooperação entre componentes.

Estilos Arquiteturais: Camadas Componentes são organizados em camadas Interrogações ou pedidos geralmente descem Respostas geralmente sobem Um componente de uma camada L i só pode chamar componentes da camada L i-1 Muito usado na comunidade de redes Modelo OSI Pilha TCP/IP Nota: este modelo pode ser usado tanto na organização do software de um nó (e.g., pilha TCP/IP), como na organização de um sistema distribuído (e.g., arquitetura 3 camadas na Web).

Estilos Arquiteturais: Objetos Cada objeto contém estado e suporta uma série de operações que podem ser invocadas por outros objetos Os conetores entre os objetos representam invocações de métodos (possivelmente remotas, e.g., RPC) Mais uma vez, pode ser usado tanto na organização interna do software num nó (programação OO) quanto na organização de um sistema distribuído (plataformas para objetos distribuídos como JavaRMI ou CORBA) Arquiteturas baseadas em camadas e objetos são as mais importantes hoje em dia

Estilos Arquiteturais: Eventos Os processos (componentes) comunicam através da propagação de eventos que podem ou não conter dados Os eventos são transportados por um componente chamado Event bus (middleware) Uma instanciação representativa deste estilo arquitetural são os sistemas publish/subscribe: Alguns processos registam o interesse em certos tipos de eventos Outros processos publicam eventos O middleware é responsável por notificar os processos apenas de eventos em que eles estão interessados Este modelo oferece desacoplamento espacial: Os processos não necessitam conhecer os endereços de outros

Estilos Arquiteturais: Espaço de dados partilhado Combina o estilo arquitetural baseado em eventos com uma arquitetura centrada em dados, dando origem ao espaço de dados partilhado Os componentes colocam dados e eventos num espaço de memória partilhada (middleware) Muitos sistemas que seguem este estilo oferecem linguagens de consultas tipo SQL para acesso aos dados Além do desacoplamento espacial, este estilo arquitetural oferece desacoplamento temporal: Os processos não precisam estar ativos ao mesmo tempo para interagir [33-36] Neste estilo só há interação se o espaço de dados estiver ativo. Isto significa que este componente é critico para qualquer aplicação que siga este estilo. O mesmo se aplica para o Event Bus no estilo anterior.

Arquiteturas de Sistemas Centralizadas Descentralizadas Híbridas

Arquiteturas Centralizadas Determinados elementos do sistema que são responsáveis pela execução de tarefas fundamentais para nossa aplicação distribuída Tem-se em geral uma divisão de papéis entre os processos que oferecem serviços e os processos que requisitam estes serviços Modelo Cliente-Servidor : Sistema estruturado como um grupo de processos servidores, que oferecem serviços requisitados por processos, clientes Clientes Servidores Rede (LAN, WAN, com ou sem fios,...) Os papeis de clientes e servidores num sistema distribuído podem-se sobrepor nalgumas máquinas, i.e., alguns servidores são clientes de outros servidores

Comunicação entre Clientes e Servidores Numa rede local, a comunicação pode ser baseada num protocolo sem ligação em que as operações suportadas são os pedidos e respostas Cliente Sistema Operativo Pedido Resposta Servidor Sistema Operativo send(dest, buffer_ptr) receive(addr, buffer_ptr) Vantagens: simplicidade e eficiência Nível OSI 7 Numa WAN, utilizam-se protocolos fiáveis e com ligação (e.g., TCP/IP) pior desempenho necessário estabelecer ligação antes de enviar/receber dados Pedido/Resposta Dados Físico 6 5 4 3 2 1

Divisão do Processamento Cliente-Servidor Em muitas aplicações é difícil a separação clara entre clientes e servidores, uma vez que o mesmo programa pode servir ao mesmo tempo as duas funções Considerando em particular aplicações que suportam o acesso a bases de dados, muitas vezes utiliza-se a seguinte divisão three-tiered architecture (Nota: divisão lógica, não em máquinas) nível de interface com o utilizador» programas que permitem a interação dos utilizadores com as aplicações (e.g., interface tipo caráter ou interface com janelas X) nível de processamento» programas que realizam a funcionalidade esperada da aplicação (e.g., numa aplicação de gestão de ações, corresponde aos programas que fazem as simulações económicas) nível de dados» programas que gerem e armazenam os dados/informação que é processada pelas aplicações (e.g., sistema de ficheiros ou uma base de dados)

Exemplo: Motor de Busca na Internet

Arquiteturas Cliente-Servidor A organização mais simples para uma aplicação cliente-servidor consiste em utilizar apenas dois tipos de máquinas máquinas cliente que contêm apenas a interface do utilizador máquinas servidor que contêm o resto, i.e., os programas que realizam o processamento e armazenamento dos dados Na prática pode-se fazer outro tipo de divisão das tarefas executadas nas duas máquinas cliente e servidor Arquitecturas com dois níveis (de máquinas)

Arquiteturas Cliente-Servidor Clientes Magros (thin clients) Menor escalabilidade Mais trabalho no servidor, que portanto gasta mais tempo para atender cada pedido Pior desempenho O cliente faz muito pouca coisa localmente, e portanto está sujeito às condições de comunicação Facilidade de gestão A maior parte do software está centralizada no servidor, e portanto é muito mais fácil de gerir e atualizar Clientes Gordos (fat clients) Maior escalabilidade O trabalho é deslocado do servidor para o cliente, portanto o servidor atende mais rapidamente mais clientes Melhor desempenho Muitas operações são processadas localmente e não estão sujeitas a latência da rede Mais difícil de gerir Qualquer atualização ou configuração deve ser feita nas máquinas dos clientes (que podem ser muitas)

Arquiteturas Cliente-Servidor Clientes Magros (thin clients) Menor escalabilidade Mais trabalho no servidor, que portanto gasta mais tempo para atender cada pedido Pior desempenho O cliente faz muito pouca coisa localmente, e portanto está sujeito às condições de comunicação Facilidade de gestão A maior parte do software está centralizada no servidor, e portanto é muito mais fácil de gerir e atualizar Clientes Gordos (fat clients) Maior escalabilidade O trabalho é deslocado do servidor para o cliente, portanto o servidor atende mais rapidamente mais clientes Melhor desempenho Muitas operações são processadas localmente e não estão sujeitas a latência da rede Mais difícil de gerir Qualquer atualização ou configuração deve ser feita nas máquinas dos clientes (que podem ser muitas) Exemplo de Cliente Magro: Aplicações Web. Exemplo de Cliente Gordo: aplicações desktop que funcionam em intranets corporativas.

Arquiteturas Cliente-Servidor [36-43] A arquitetura não precisa de ser necessariamente baseada apenas em duas máquinas; pode envolver um número maior Exemplo: Arquitetura com três níveis (de máquinas).