MODELOS DE SISTEMAS DISTRIBUÍDOS



Documentos relacionados
Aula 03-04: Modelos de Sistemas Distribuídos

Arquitetura dos Sistemas de Informação Distribuídos

SISTEMAS DISTRIBUIDOS

Modelos de Arquiteturas. Prof. Andrêza Leite

Sistemas Distribuídos

Sistemas Distribuídos

Camadas de Software - o Middleware. Sistemas Distribuídos Capítulo 2: Modelos e Arquitecturas. Aplicações. Middleware.


Modelos de Sistemas Distribuídos. . Requerimentos de Projeto para Arquiteturas Distribuídas

UNIVERSIDADE. Sistemas Distribuídos

Distributed Systems Concepts and Design

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite

Modelos Fundamentais. Carlos Ferraz.

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto

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

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

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 um sistema é a especificação de sua estrutura e de seus componentes

Sistemas Distribuídos. Modelos Arquiteturais

SISTEMAS DISTRIBUÍDOS

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

UNIVERSIDADE. Sistemas Distribuídos

Sistemas Distribuídos

Tópicos em Sistemas Distribuídos. Modelos de Comunicação

UNIVERSIDADE. Sistemas Distribuídos

Modelos Arquiteturais

Sistemas Distribuídos. Aleardo Manacero Jr.

Sistemas Distribuídos. Introdução

Paradigma Cliente/Servidor

Sistemas Distribuídos

Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes

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

Capítulo II Modelos de Programação Distribuída (parte 2)

Sistemas Distribuídos

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

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

PEER DATA MANAGEMENT SYSTEM

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

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

Revisão. Karine Peralta

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA

Sistemas Distribuídos: Conceitos e Projeto Caracterização de Sistemas Distribuídos

Sistemas Distribuídos

Redes de Computadores

CORBA. Common Object Request Broker Architecture. Unicamp. Centro de Computação Rubens Queiroz de Almeida

Distributed Systems Principles and Paradigms

Introdução ao Modelos de Duas Camadas Cliente Servidor

Sistemas Distribuídos

Considerações no Projeto de Sistemas Cliente/Servidor


INE Sistemas Distribuídos

Sistemas Distribuídos Aula 2

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

Sistemas Distribuídos

Capítulo 7 CAMADA DE TRANSPORTE

Serviços Web: Introdução

Modelos de Camadas. Professor Leonardo Larback

Márcio Leandro Moraes Rodrigues. Frame Relay

Sistemas Distribuídos

Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008.

Processos (Threads,Virtualização e Migração de Código)

Sistemas Cliente-Servidor

3 SCS: Sistema de Componentes de Software

MODELO CLIENTE SERVIDOR

Padrões Arquiteturais. Sistemas Distribuídos: Broker

Sistemas Distribuídos. Coulouris Capítulo 4

Protocolo. O que é um protocolo? Humano: que horas são? eu tenho uma pergunta

Sistemas Distribuídos

Há dois tipos de configurações bidirecionais usados na comunicação em uma rede Ethernet:

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Capítulo 8. Sistemas com Múltiplos Processadores. 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos

Cap 03 - Camada de Aplicação Internet (Kurose)

Redes de computadores. Redes para Internet

Desenvolvimento Cliente-Servidor 1

Características Carlos Ferraz

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP

Sistemas Operacionais

Cap 01 - Conceitos Básicos de Rede (Kurose)


Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim

Gerência de Redes. Arquitetura de Gerenciamento.

Redes de Computadores

JXTA. Alessandro Vasconcelos Ferreira de Lima.

ARQUITETURA DE SISTEMAS DISTRIBUÍDOS. Aula 2- Aplicações distribuídas e TI VERDE

Sistemas Distribuídos (DCC/UFRJ)

Sistemas Multimédia. Arquitectura Protocolar Simples Modelo OSI TCP/IP. Francisco Maia Redes e Comunicações

Visão do Usuário da DSM

Arquitetura de Computadores II

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Transcrição:

MODELOS DE SISTEMAS DISTRIBUÍDOS Edeyson Andrade Gomes www.edeyson.com.br

Agenda Visão geral Modelos de Arquitetura de Sistemas Distribuídos MASD Camadas de softwares Arquiteturas de sistema Variações Interfaces e objetos Requisitos de projeto para arquiteturas distribuídas Modelos fundamentais MFSD Modelo de interação Modelo de falhas Modelo de segurança 2

Visão Geral

VISÃO GERAL Um modelo de arquitetura de um sistema distribuído envolve o posicionamento de suas partes e os relacionamentos entre elas. Os modelos fundamentais envolvem uma descrição mais formal das propriedades comuns a todos os modelos de arquitetura. Ausência de um relógio global. A comunicação entre processos é por troca de mensagens. Atrasos e vunerabilidade devido a rede de comunicação. 4

VISÃO GERAL Modelos fundamentais: Modelo de interação Trata do desempenho e da dificuldade de estabelecer limites de tempo. Modelo de falha Especificação das falhas de processos e canais de comunicação Modelo de segurança Apresenta o conceito de canal seguro. 5

VISÃO GERAL Cada modelo é destinado a fornecer uma descrição abstrata e simplificada, mas consistente, de um aspecto relevante do projeto de um sistema distribuído. 6

VISÃO GERAL Dificuldades e ameaças para os sistemas distribuídos: Modos de uso que variam muito Variações na carga. (Ex.: Web) Interconexão. (Ex.: mal contato em cabos) Largura de banda e latência. (Ex.: aplicações multimídia) Ampla variedade de ambientes de sistema Heterogeneidade de hardware, sistemas operacionais e rede. Problemas internos Relógios não sincronizados, conflito de dados, etc. Ameaças externas Ataques a integridade e ao sigilo dos dados, negação de serviço, etc. 7

Modelos de Arquitetura

Modelos de Arquitetura A arquitetura de um sistema é sua estrutura em termos de componentes especificados separadamente. O objetivo é atender as demandas atuais e futuras. Tornar o sistema confiável, gerenciável, adaptável e rentável. 9

Modelos de Arquitetura Simplifica e abstrai as funções dos componentes individuais. Posicionamento dos componentes na rede de computadores. Inter-relacionamentos entre os componentes. Classificação dos processos: Processos cliente. Processos servidor. Processos peer-to-peer. 10

Modelos de Arquitetura Camadas de SW

Camadas de SW A visão orientada para processo e serviço pode ser expressa em termos de camadas de serviço. Um servidor é um processo que aceita pedidos de outros processos. Um cliente é um processo que solicita algum serviço a um ou vários processos servidores. 12

Camadas de SW Um serviço é provido por um ou mais servidores. As camadas de hardware e software de mais baixo nível são freqüentemente denominadas de plataforma para sistemas e aplicativos distribuídos. Ex.: Intel x86/windows, Intel x86/linux, PowerPC/Mac OS X, etc. 13

Camadas de SW Aplicativos, serviços Middleware Sistema Operacional Plataforma Hardware de computador e rede 14

Camadas de SW - Middleware Definições Conjunto reusável e expansível de serviços e funções, comumente necessários por parte de várias aplicações distribuídas para funcionarem bem em um ambiente de rede Mascara a heterogeneidade e fornece um modelo de programação homogêneo para os programadores de aplicativos. Composto por um conjunto de processos ou objetos. 15

Camadas de SW - Middleware Definições Simplifica as atividades de comunicação de programas aplicativos por meio do suporte de abstrações: Invocação a métodos remotos. Comunicação entre um grupo de processos. Notificação de eventos. Particionamento, posicionamento e recuperação de objetos de dados. Replicação de objetos de dados compartilhados. Transmissão de dados multimídia em tempo real. 16

Camadas de SW - Middleware Comunicação 17

Camadas de SW - Middleware Produtos e padrões orientados a objetos RPC Remote Procedure Call Java RMI Java Remote Method Invocation CORBA (Object Management Group OMG) Common Object Request Broker Architecture Utiliza Interface Definition Language IDL DCOM (Microsoft) Distributed Component Object Model Web Service Serviços Web RM-ODP Reference Model for Open Distributed Processing do International Standards Organization (ISO)/International Telecommunication Union-Telecommunications (ITU-T) 18

Camadas de SW - Middleware Remote Procedure Call RPC 19

Camadas de SW - Middleware Object Request Broker ORB 20

Camadas de SW - Middleware Atribuição Object brokers: permitem que objetos se encontrem em um sistema distribuído e interajam uns com os outros. Object services: permitem criar, nomear, mover, copiar, armazenar, deletar, restaurar e gerenciar objetos. 21

Camadas de SW - Middleware Serviços oferecidos Fornecem serviços de infra-estrutura a serem usados por programas aplicativos. Os serviços são fortemente vinculados ao modelo de programação distribuída fornecido pelo middleware. Exemplos de serviços do CORBA: Atribuição de nomes (nomeação) Segurança Transações Distribuídas (ACID Atomicidade, Consistência, Isolamento e Durabilidade) Armazenamento persistente Notificação de eventos 22

Camadas de SW - Middleware Application Programming Interface API 23

Camadas de SW - Middleware Distributed Object Computing DOC Host Infrastructure: Ex.: Java Virtual Machine JVM,.Net para Web Services, etc. Distribution: Ex.: CORBA, RMI, DCOM e SOAP (Simple Object Access Protocol) Commom Services: Ex.: Serviços CORBA, Sun s Enterprise Java Beans (EJB),.Net para Web Service, etc. Obs.: SOAP é um protocolo que troca mensagens em XML (extensible Markup Language). XML é uma recomendação da Word WideWeb Consortium (W3C). 24

Camadas de SW - Middleware Camadas 25

Camadas de SW - Middleware Camadas Aplicativos, serviços RMI, RPC e eventos Protocolo baseado em requisição/resposta Empacotamento e representação externa de dados Camadas de Middleware UDP e TCP (Sistema Operacional) 26

Camadas de SW - Middleware Limitações Muitos aplicativos distribuídos se baseiam completamente nos serviços oferecidos pelo middleware. Princípio fim-a-fim. (artigo de Saltzer, Reed e Clarke) http://www.reed.com Ex.: Serviço de e-mail sobre TCP/IP O comportamento correto em programas distribuídos depende de verificações, mecanismos de correção de erro e medidas de segurança em muitos níveis. 27

Modelos de Arquitetura Arquiteturas de Sistemas

Arquitetura de Sistema Implicações importantes no desempenho, na confiabilidade e na segurança do sistema resultante. Os processos possuem responsabilidades bem definidas e interagem para realizar uma atividade útil. Dois tipos principais de modelos de arquitetura: Cliente/Servidor Peer-to-Peer (P2P) Variações nos modelos de arquitetura. 29

Arquitetura de Sistema Cliente/Servidor Servidores também podem ser cliente. Pouca necessidade de sincronização entre os processos cliente de uma operação e servidor de outra operação no mesmo servidor. Cliente invocação invocação Servidor resultado Servidor resultado Cliente Legenda: Processo: Computador: 30

Arquitetura de Sistema Peer-to-Peer Não há distinção entre processos clientes e servidores. Maior escalabilidade comparando com o cliente/servidor. Objetos compartilháveis Peer 1 Aplicação Peer 2 Aplicação Peer 3 Aplicação Peer 4 Aplicação Peers 5... N 31

Arquitetura de Sistema Peer-to-Peer (ex.: Napster) Outros exemplos: Emule, Bitorrent, Skype, MSN Messenger, Yahoo, etc. 32

Arquitetura de Sistema Serviços fornecidos por vários servidores. Exemplos: Web, NIS, bancos, clusters, etc. Serviço Cliente Servidor Servidor Cliente Servidor 33

Arquitetura de Sistema Serviços fornecidos por vários servidores. (Ex.: Bancos) 34

Arquitetura de Sistema Serviços fornecidos por vários servidores. (Ex.: Clusters) Minimiza o custo de HW Agrupamento físico Pequeno espaço geográfico Compartilhar recursos De processamento De armazenamento De memória, etc. SW e HW homogêneos Redes de alta velocidade 35

Arquitetura de Sistema Serviços fornecidos por vários servidores. (Ex.: Clusters) Aumentar a disponibilidade de serviços Se um nodo falhar, outro assume. Equilibrar carga de trabalho Um ou mais computadores do cluster atuam como distribuidores da carga entre os demais Alto desempenho Para resolver tarefas complexas que podem ser decompostas em subtarefas, cada uma rodando num nodo do cluster. Implementação mais comum: Linux e software livre para implementar paralelismo = Beowulf cluster 36

Arquitetura de Sistema Servidores proxies e Cache Cliente Servidor proxy Servidor web Cliente Servidor web 37

Arquitetura de Sistema Código móvel a) Requisição do cliente resulta no download de um applet Cliente Código applet Servidor web b) O cliente interage com o applet Cliente Applet Servidor web 38

Arquitetura de Sistema Agentes móveis Programa em execução (código e dados). Pode efetuar várias requisições aos recursos locais. Reduz o custo e tempo da comunicação se comparado a C/S. Ameaça em potencial a segurança. 39

Arquitetura de Sistema Dispositivos móveis Laptops, Personal Digital Assistant (PDA), celular, etc. Redes cabeadas e redes sem fio (Global System for Mobile GSM, 3G, Wireless, Bluetooth, etc.) Conectividade variável Transparência de mobilidade é um problema freqüente. Interoperabilidade espontânea (descoberta de serviços) Global Positioning System GPS MobileIP (IP Móvel) 40

Arquitetura de Sistema Computadores de rede & clientes leves Obs.: Desktop é diferente de computadores em rede! 41

Arquitetura de Sistema Cliente/Servidor 3-Tier 42

Modelos de Arquitetura Interface e Objeto

Interface e objeto As definições de interfaces especificam funções que podem ser invocadas em um processo. Cada processo servidor possui uma interface fixa (C/S pura). Processos distribuídos construídos de maneira OO. Muitos objetos podem ser encapsulados em processos servidores e referências a eles são passadas aos outros processos para que seus métodos sejam acessados por invocação remota. [Coulouris] Java RMI CORBA 44

Interface e objeto Um processo Servidor ou Peer pode ser visto como uma coleção de objetos. Objetos Remotos X Objetos Locais 45

Interface e objeto Um processo Servidor ou Peer pode ser visto como uma coleção de objetos. Interface Remota 46

Requisitos Problemas de desempenho Reatividade (Capacidade de resposta) Atrasos no sw remoto, na comunicação, middleware, S.O., processos, etc. Throughput (Taxa de rendimento) Velocidade com que o trabalho computacional é feito. Balanceamento de carga Applets, vários computadores para um serviço e migração de tarefa. Qualidade de Serviço QoS Capacidade dos sistemas de atender prazos. Depende da disponibilidade de recursos nos momentos apropriados. 47

Modelos de Arquitetura Requisitos

Requisitos Uso de cache e replicação Protocolo de consistência de cache Dependabilidade Pode ser definido como correção, segurança e confiabilidade. Técnicas Tolerância a falhas Falhas no hardware, software e na comunicação. Redundância ajuda a confiabilidade, mas é dispendiosa e limitada. Segurança 49

MODELOS FUNDAMENTAIS 50 Modelos de Sistemas Distribuídos www.edeyson.com.br

Modelos Fundamentais Contém elementos essenciais para o entendimento e raciocínio a respeito do comportamento de um sistema. Precisa tratar: Quais são as principais entidades presentes no sistema? Como elas interagem? Que características afetam seu comportamento individual e coletivo? Objetivos: Tornar explícitas as suposições relevantes. Generalizar o que for possível ou impossível. 51

Modelos Fundamentais Aspectos dos SD nos modelos fundamentais: Interação Processos interagem passando mensagens e na coordenação. A comunicação ocorre com atrasos. Falhas Define e classifica as falhas. Fornece uma base para a análise de seus efeitos e projeto do tratamento. Segurança Define e classifica as formas que ataques podem assumir. Fornece uma base para a análise das possíveis ameaças e o projeto de métodos de resistência. 52

Modelo de Interação 53 Modelos de Sistemas Distribuídos www.edeyson.com.br

Modelo de Interação Sistemas distribuídos são compostos por vários processos. Algoritmos distribuídos descrevem seus comportamentos e estados. As mensagens são enviadas para transferir informações entre processos e para coordenar suas atividades. Dois fatores que afetam significativamente a interação de processos em SD: O desempenho da comunicação. A impossibilidade de manter uma noção global de tempo única. 54

Modelo de Interação Desempenho da comunicação Latência Atraso entre o início da transmissão e o início da recepção Primeiro bit no enlace. Atraso no acesso à rede. Tempo de processamento Largura de banda Capacidade de transmissão total em um certo instante. 55

Modelo de Interação Desempenho da comunicação Latência Largura de banda Jitter Medida de variação do atraso entre os pacotes sucessivos de dados Pode ser responsável por erros e perda de sincronismo em comunicações síncronas em alta velocidade Solução para minimizá-lo: utilização de buffer Armazenar os dados a medida que eles chegam e encaminhá-los à aplicação a uma taxa constante Exemplo de uso: VoIP 56

Modelo de Interação Relógios de computador e eventos de temporização Cada computador possui seu relógio que é usado pelos processos locais para medir o tempo dos eventos locais. Taxa de desvio do relógio (drift) Diferença relativa para um relógio de referência perfeito. Global Positioning System GPS (precisão de 1 microssegundo) 57

Modelo de Interação Duas variantes do modelo de interação SD Síncronos Necessita estabelecer limites de tempo inferior e superior para: Execução de cada etapa de um processo. Transmissão da mensagem cada mensagem transmitida sobre um canal é recebida dentro de um tempo limitado conhecido Drift dos relógios Cada processo tem um clock local cuja taxa de desvio do tempo perfeito tem um limite conhecido Complexidade Ex.: Multimídia Necessidade de um stream de dados ser entregue antes do seu deadline 58

Modelo de Interação Duas variantes do modelo de interação SD Síncronos É difícil chegar em limites de tempo realísticos e prover garantia aos mesmos A falta de garantia implica que qualquer projeto baseado sobre os valores estimados não é confiável O modelo de um algoritmo como um sistema síncrono pode ser útil para dar uma idéia de como ele se comportará em um sistema distribuído real. Em um SD síncrono o uso de timeouts permite detectar a falha de um processo Limite de tempo 59

Modelo de Interação Duas variantes do modelo de interação SD Assíncronos: Não síncronos Ex.: Internet. Qualquer solução válida para um SD assíncrono também é válida para o síncrono. SDs reais são comumente assíncronos Processos compartilham processadores e canais de comunicação compartilham a rede 60

Modelo de Interação Ordenação de eventos Determinar se um evento ocorreu em um processo antes, depois ou simultaneamente com outro evento em outro processo. A execução de um sistema pode ser descrita em termos da ocorrência de eventos e de sua ordem, mesmo sem relógios precisos Ex.: X envia uma mensagem com assunto REUNIÃO para Y, Z e A. Y e Z respondem com assunto Re: REUNIÃO. Possibilidades para A? 61

Modelo de Interação Ordenação de eventos Envia Recebe Recebe X 1 m 1 4 Y 2 Recebe Envia 3 m 2 Recebe Tempo físico Z Recebe Recebe Envia A m 3 m 1 m 2 Recebe Recebe Recebe t 1 t 2 t 3 62

Modelo de Interação Ordenação de eventos O relógio lógico permite deduzir a ordem que as mensagens devem ser apresentadas. Cada evento tem um número que corresponde a uma ordem lógica. X envia m1 antes que Y receba m1 Y envia m2 antes que X receba m2 Y recebe m1 antes de enviar m2 63

Modelo de Falhas 64 Modelos de Sistemas Distribuídos www.edeyson.com.br

Modelo de Falhas Processos e canais de comunicação podem divergir do que é considerado um comportamento correto ou desejável. Proporciona um entendimento dos seus efeitos e conseqüências. Tipos de modelos de falhas: Falha por omissão Falhas arbitrárias Falhas de sincronização 65

Modelo de Falhas Falhas por omissão Processo ou canal de comunicação não executa as ações. Falha por omissão de processo O processo falha se outros processos podem determinar que isso ocorreu. Falha por omissão na comunicação processo p sendm processo q receive Buffer de envio Canal de comunicação Buffer de recepção 66

Modelo de Falhas Falhas arbitrárias Qualquer tipo de erro pode ocorrer No processo Omitir passos do processamento ou efetuar processamento indesejado Na comunicação Mensagens corrompidas Mensagens inexistentes Softwares de comunicação freqüentemente detectam. 67

Modelo de Falhas Classe da falha Afeta Descrição Parada por falha Processo Outros processos podem detectar Colapso Omissão Omissão de envio Omissão de recepção Arbitrária Processo Canal Processo Processo Processo ou Canal Outros processos podem não detectar Sai do buffer de envio e não chega no buffer de recepção Não chega ao buffer de envio Processo não "pega" no buffer de recepção Processo/Canal exibe comportamento arbitrário 68

Modelo de Falhas Falhas de temporização Aplicáveis aos SD síncronos. Classe da falha Afeta Descrição Relógio Processo Relógio local do processo ultrapassa o limite da taxa de desvio. Desempenho Desempenho Processo Canal Processo excede o limite de tempo entre duas etapas. Transmissão da mensagem supera o limite de tempo definido. 69

Modelo de Falhas Mascaramento de falhas Um serviço mascara uma falha ocultando-a completamente ou convertendo-a em um tipo de falha mais aceitável. Ex.: Checksum. Confiabilidade da comunicação de um para um Validade: mensagens são entregues independente do tempo. Integridade: mensagens idênticas e sem duplicidade. Medidas de segurança. Números de seqüência 70

Modelo de Segurança 71 Modelos de Sistemas Distribuídos www.edeyson.com.br

Modelo de Segurança Tornar seguros os processos e os canais de comunicação, e eliminar acesso não autorizados. Proteção de objetos invocação Direitos de acesso Objeto Cliente resultado Servidor Principal (usuário) Rede Principal (servidor) 72

Modelo de Segurança Tornando processos e suas interações seguros Ameaça aos processos Processos podem não identificar emissor de mensagens (spoofing). Ameaça aos canais de comunicação Cópia, alteração ou injeção de mensagens no canal. Cópia dem Processo p m Invasor m Canal de comunicação Processo q 73

Modelo de Segurança Anulando ameaças à segurança Criptografia e segredos compartilhados Autenticação Garante a identidade de um principal Canais seguros (Criptografia + Autenticação). Ex.: VPN e SSL Privacidade e integridade Principal A Principal B Processo p Canal seguro Processo q 74