Sistema Distribuido
Prof: Carlos Alberto Pereira Costa Email:
[email protected]
Sistema Distribuido
Modelos de Sistemas Sistemas distribuídos devem ser projetados para funcionar f uncionar face a limitações de ambiente, dificuldades e ameaças Variação nos modos de uso Ambientes heterogêneos Problemas internos Ameaças externas
Sistemas distribuídos compartilham propriedades fundamentais que induzem a problemas de projeto comuns Necessidade: projetar sistemas de acordo com modelos que descrevem importantes aspectos de SD‟s de forma abstrata, simplificada e consistente.
Sistema Distribuido
Modelos de Sistemas Modelos Físicos Forma mais explícita de descrição dos sistemas Modela o sistema em termos de Composição de Hardware: computadores e outros dispositivos Conexões de rede entre seus componentes de hardware Modelos Arquiteturais Modela o sistema a partir das tarefas executadas por seus componentes Modelos Fundamentais Perspectiva abstrata de aspectos individuais individuais Modelos de falha, de segurança e de interação
Sistema Distribuido
Modelos Físicos Representação dos elementos de hardware de um sistema Distribuído
Abstrai detalhes detalhes específicos de computadores computadores e tecnologia de rede empregada
Gerações Sistemas distribuídos primordias Sistemas distribuídos de larga escala Sistemas distribuídos contemporâneos
Sistema Distribuido
Modelos Físicos Sistemas Distribuídos Primordias Nasceram no final dos anos 1970 e início dos anos 1980 Motivação: surgimento das LAN‟s Basicamente de 10 a 100 nós interconectados em redes locais Conectividade Conectividade limitada a Internet Poucos serviços, tais como: impressoras compartilhadas, compartilhadas, servidor de arquivos, e-mail e FTP Sistemas individuais individuais eram bastante homogêneos e abertura não era uma meta a ser perseguida Qualidade de serviço em estagios iniciais
Sistema Distribuido
Modelos Físicos Sistemas Distribuídos de Larga Escala
Surgiram no início dos anos 1990 Motivação: resposta ao crescimento dramático da Internet Obs: a título de exemplo o Google foi lançado em 1996 Sua infra-estrutura consiste de um conjunto extensível de nós interconctados por uma rede de redes Rede de redes = INTERNET Ofertam serviços globais
Sistema Distribuido
Modelos Físicos Sistemas Distribuídos de Larga Escala Alta heterogeneidade em termos de: Redes Sistemas Operacionais Arquitetura de Computadores Linguagens e Tecnologias
Crescimento de padrões abertos e adoção de middleware (CORBA, WebServices…)
Propriedades de qualidade de serviço fim-a-fim em escala global
Sistema Distribuido
Modelos Físicos Sistemas Distribuídos Contemporâneos Nós/componenetes dos modelos anteriores (primordiais e larga escala) Tipicamete desktops Relativamente estáticos Discretos Autônomos Tendências atuais que classificam os sistemas distribuídos contemporâneos Computação móvel Ubiquidade e Computacão Pervasiva Computação nas Nuvens e Arquiteturas em Cluster
Sistema Distribuido
Modelos Físicos Sistemas Distribuídos Contemporâneos Computação móvel Nós como laptops, smartphones, outros dispositivos Movem-se entre sistemas distribuídos (redes) Necessidade de serviços de descoberta e interação espontânea Ubiquidade e Computacão Pervasiva De nós discretos a computadores embutidos em diversos objetos(máquinas de lavar, geladeiras, automóveis, câmeras digitais...) Computação nas Nuvens e Arquiteturas em Cluster De nós autônomos para “pools” de nós que provém recursos na Web (iCloud, Google Apps, Amazon WS etc)
Sistema Distribuido
Modelos Físicos Sistemas Distribuídos Contemporâneos Arquitetura física com significante aumento de heterogeneidade ( > SD de Larga Escala)
Dos pequenos dispositivos embutidos aos complexos recursos em Grid
Tecnologias de rede variadas
Vasta gama de aplicativos e serviços
Sistemas com muitos milhares de nós
Sistema Distribuido
Modelos Físicos Ultra Larga Escala www.sei.cmu.edu - Pesquisa discute o surgimento de sistemas distribuídos contemporâneos como sendo de Ultra Larga Escala Relação semântica com a Internet: rede de redes Definição: sistemas complexos compostos de uma série de subpartes que são por si só sistemas distribuídos, atuando em conjunto para uma tarefa em particular
Ex: Sistema de gerenciamento ambiental para detecção de inundações
Ex2: Previsão do comportamento da Economia (Sistemas Complexos Adaptativos)
Sistema Distribuido
Modelos Físicos Sistemas Distribuídos Contemporâneos
Sistema Distribuido
Modelos Arquiteturais Descrição da estrutura de um sistema em termos de seus componentes específicos
Objetivos de modelar a arquitetura de um sistema: garantir a eficiência, gerenciamento, adaptabilidade e relação custo x benefício
Relação com arquitetura de construções: clássico, gótico, moderno, barroco…)
Modelos arquiteturais descrevem o “estilo arquitetônico” dos sistemas distribuídos
Sistema Distribuido
Modelos Arquiteturais Questões-chave Que entidades se comunicam em sistemas distribuídos?
Como se comunicam? Qual o paradigma de comunicação?
Quais são seus papéis e responsabilidades?
Onde fica sua localização na infra-estrutura física?
Sistema Distribuido
Modelos Arquiteturais Entidades Perspectiva do Sistema Nós Processos Threads
Perspectiva de Programação Componentes Serviços Web
Sistema Distribuido
Modelos Arquiteturais Paradigmas de Comunicação Como as entidades se comunicam? Comunicação Inter-processos Programação com soquetes (sockets), comunicação multicasting etc Invocação Remota Protocolo Pedido-Resposta Chamada Remota de Procedimento (RPC) Invocação Remota de Método (RMI) Comunicação Indireta Memória Distribuída Produtor/Consumidor Filas de Mensagens
Sistema Distribuido
Modelos Arquiteturais Papéis e Reponsabilidades Quais os papéis e responsabilidades das entidades?
Cliente/Servidor é a arquitetura historicamente mais importante e atualmente mais utilizada
Processos clientes interagem com processos servidores individuais requisitando recursos (dados, informações, operações etc)
Cliente e servidor encontram-se em hosts diferentes
Servidores podem, por sua vez, ser clientes de outros servidores
Sistema Distribuido
Modelos Arquiteturais Papéis e Reponsabilidades Arquitetura Cliente/Servidor
Sistema Distribuido
Modelos Arquiteturais Papéis e Reponsabilidades Arquitetura Cliente/Servidor
Sistema Distribuido
Modelos Arquiteturais Papéis e Reponsabilidades Arquitetura Peer-to-Peer Todos os processos executam tarefas semelhantes
Interagem cooperativamente como pares
Não há distinção entre clientes e servidores
Alta escalabilidade
Exemplos: Napster e BitTorrent
Sistema Distribuido
Modelos Arquiteturais Papéis e Reponsabilidades Arquitetura Peer-to-Peer
Sistema Distribuido
Modelos Arquiteturais Localização Como entidades são mapeadas (onde se localizam) na infraestrutura física distribuída?
Mapeamento de serviços em múltiplos servidores Cache Código Móvel Agentes Móveis
Sistema Distribuido
Padrões Arquiteturais Abordagem em Camadas Particiona um sistema complexo em subcamadas que utilizam serviços da camada inferior e oferecem serviços para a camada superior (abstração parecida com as camadas dos modelo OSI e TCP/IP)
Sistema Distribuido
Padrões Arquiteturais Arquitetura em Duas Camadas
Sistema Distribuido
Padrões Arquiteturais Arquitetura em Três Camadas
Sistema Distribuido
Middleware Definições Camada de software que provém uma abstração ao programador
Mascara a heterogeneidade do sistema distribuído Rede Software Sistemas Operacionais Tecnologia Linguagem de Programação Modelo computacional uniforme
Sistema Distribuido
Middleware
Sistema Distribuido
Modelos Fundamentais Objetivo: foco apenas nas entidades e características essenciais, isolando de detalhes como hardware ou rede, facilita o entendimento do sistema Modelo de Interação A comunicação ocorre pela troca de mensagens entre processos Reflette as noções de tempo, duração das mensagens etc Modelo de Falhas Define e classifica falhas de hardware, software ou rede Modelo de Segurança Define e classifica formas de ataque, com o intuito de evitar ou tolerar ameaças
Sistema Distribuido
Modelos Fundamentais Modelo de Interação Sistemas distribuídos são compostos de múltiplos processos comunicando-se entre si
O comportamento e o estado das operações de sistema podem ser vistos como um algoritmo distribuído
Mensagens são transmitidas para troca de dados e coordenação da atividade/operação
Fatores importantes da interação em SD‟s Performance limitada Inexiste noção global de tempo (relógios e eventos)
Sistema Distribuido
Modelos Fundamentais Modelo de Interação – Performance dos Canais de Comunicação Latência Tempo decorrido entre o início da transmissão de uma mensagem por um processo e o início da recepção por outro
Largura de Banda Quantidade total de informação que pode ser transmitida em um dado tempo
Instabilidade Variação na entrega de uma série de mensagens. Importante para transmissão de vídeo e áudio
Sistema Distribuido
Modelos Fundamentais Modelo de Interação – Relógios e Eventos Inexiste uma noção global de tempo. Cada computador tem seu relógio interno, usado por seus processos locais
Problema: dois processos em diferentes máquinas precisam associar um timestamp único
Clock Drift Rate – relógios com tempo idêntido em sistemas distribuídos podem variar significativamente
Necessário abordagens de correção de tempo nos relógios dos computadores Abordagens: sistemas distribuídos síncronos e assíncronos
Sistema Distribuido
Modelos Fundamentais Modelo de Interação – Relógios e Eventos
Sistema Distribuido
Modelos Fundamentais Modelos de Falha Define as formas em que falhas podem ocorrer em processos e canais de comunicação
Taxonomia para classificação das Falhas Omissão Arbitrárias Temporais
Sistema Distribuido
Modelos Fundamentais Falhas por Omissão Ocorrem quando um processo ou canal de comunicação não realiza uma ação/operação esperada
Falha do Processo: travamento Detecção de falhas por timeout. Funciona sempre? Detectável em alguns casos apenas em SD‟s síncronos
Falha do Canal de Comunicação: descarte de mensagens Processo „p‟envia mensagem „m‟ para processo „q‟ Buffers de entrada e saída falham ao enviar, transportar ou receber a mensagem Motivos: erro de rede ou falta de espaço no buffer
Sistema Distribuido
Modelos Fundamentais Falhas por Omissão – Descarte de Mensagens
Sistema Distribuido
Modelos Fundamentais Falhas Temporais Tempo é relativamente importante para sistemas multimídia Sistemas distribuídos de tempo real são projetados para garantir operações em um dado tempo
Resposta muito lenta em sistemas assíncronos pode não ser falha temporal
Aplicáveis em sistemas distribuídos síncronos
São estipulados limites de tempo para: Execução de tarefas Entrega de mensagens
Sistema Distribuido
Sistema Distribuido
Sistema Distribuido
Sistema Distribuido
Sistema Distribuido
Sistema Distribuido
Sistema Distribuido
Sistema Distribuido
Sistema Distribuido
Sistema Distribuido
Sistema Distribuido
Sistema Distribuido
Sistema Distribuido