Sistemas Distribuídos

Slides:



Advertisements
Apresentações semelhantes
SISTEMAS DISTRIBUÍDOS BASEADOS EM COORDENAÇÃO
Advertisements

Sistemas Distribuídos
Sistemas Distribuídos Baseados na Web
Sistemas Distribuídos Baseados em Objetos
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Sistemas Distribuídos
Sistemas Cliente/Servidor Introdução
O Paradigma Cliente/Servidor Prof. Carlos A. Maziero, PhD PPGIA PUCPR.
Engenharia de Software
Aula 21/09/2011 Courouris, Dollimore, cap 10
UML Visões – Parte 2.
Peer to Peer Referência:
Comunicação Distribuída
APLICAÇÕES PEER-TO-PEER
CAPÍTULO Sistemas concentrados e distribuídos
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
SISTEMAS DISTRIBUÍDOS Princípios e Paradigmas 2ª Edição ANDREW S
Sistemas Distribuídos
Sistemas Distribuídos
Sistemas Operacionais de Rede
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Mobilidade Cláudia Ribeiro.
BitTorrent e as Redes P2P
Sistemas Distribuídos
Sistemas Distribuídos
Sistema Cliente-servidor ou Sistema Client-server
Middleware e Sistemas Distribuídos
Universidade do Vale do Rio dos Sinos - São Leopoldo -
Tecnologia de Informática
Sistemas Operacionais
1 Modelos de Sistemas Distribuídos. Introdução - Dificuldades e ameaças para SD. Grande variação na utilização de SD )carga de trabalho e requerimentos.
Tópicos em redes e sistemas distribuídos B Carlos Oberdan Rolim Ciência da Computação.
Sistemas Distribuídos
Tópicos de Sistemas de Informação A
Web Services Uninorte Semana de Tecnologia da Informação
Gerenciamento de Dados
Arquitetura Cliente /Servidor
Gerenciamento de Redes Utilizando Agentes Móveis
Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 05.
Sistemas Distribuídos
Sistemas Distribuídos Introdução. Conceito Coleção de múltiplos processos que executam sobre uma coleção de processadores autônomos interligados em uma.
Arquitetura de Sistemas Distribuídos
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
CORBA Apresentação do Padrão CORBA Maurício Maron Mendes Ramiro Pereira de Magalhães
Processos.
Sistemas Distribuídos
Comunicação.
Nomeação.
Troca de Mensagens Programação concorrente
Definição um sistema de BD distribuído consistem em uma rede de várias ocorrências de bases de dados interligadas. característica principal para o usuário,
Sistemas Distribuidos
Integração de Ferramentas CASE
Seminário CI303 Lucas Nascimento Ferreira. Data sharing service: Propriedades Persistência Independentemente da aplicação Permitir o reutilização dos.
Infra-Estrutura para Computação Distribuída
Distributed Hash Tables Danielle Santos da Silva Marcelo Borghetti Soares Tiago Alves Macambira.
Capítulo 6: SAD – Arquitetura e aspectos de rede e segurança
Arquitetura de Software Projetos de Interface
Estilos Arquiteturais
Serviços de rede e internet Jackson Eduardo da Silva.
Tipos de Sistemas Operacionais
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Servidores.
Passagens de Mensagens Prof. Dr. Norian Marranghello
Sistemas Distribuídos
Sistemas Distribuídos
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Por que Redes? Estamos cercados por redes: supermercados, lojas, bancos, cinemas, farmácias e inúmeros outros lugares; Com a queda do custo de implementação.
Banco de Dados Distribuídos Sílvia Cristina de Matos Soares
©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/41 Análise e Projeto de Sistemas Arquitetura de Software.
Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho.
Transcrição da apresentação:

Sistemas Distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Estilos arquitetônicos: Arquiteturas x Middleware *Créditos – baseados em:  slides de Pearson – Sistemas Distribuídos : Princípios e paradigmas slides de Jorge Surian – Sistemas distribuídos: : Tipos de Sistemas Distribuídos, Tipos de Arquiteturas e Sistemas Pervasivos.  Slides de Nelson Souto Rosa – REDIS: Grupo de Redes e Sistemas Distribuidos

Arquiteturas Formadas em termos de componentes, do modo como esses componentes estão conectados uns aos outros, dos dados trocados entre componentes e, por fim, da maneira como esses elementos são configurados em conjunto para formar um sistema. Componente é uma unidade modular com interfaces requeridas e fornecidas bem definidas que é substituível dentro de seu ambiente. Conector é um mecanismo mediador da comunicação ou da cooperação entre componentes.

Arquiteturas Em geral, são complexa peças de software cujos componentes estão, espalhados por várias máquinas. Os principais estilos arquitetônicos são: Em camada Baseadas em Objeto Centradas em Dados Baseadas em Eventos

Arquiteturas Em Camadas Componentes são organizados em camadas Componente da camada N tem permissão de chamar componentes na camada N-1 Comum em redes de computadores

Arquiteturas Baseadas em Objeto Objeto → Componente Objetos são conectados por meio de uma chamada de procedimento (remota). Amplamente utilizada para sistemas de software de grande porte.

Arquiteturas Comparativo

Repositório comum de dados Arquiteturas Centradas em Dados Processos se comunicam por meio de um repositório comum (espaço de dados compartilhados) Sistemas distribuídos baseados na Web, em grande parte, são centrados em dados. Repositório comum de dados Componente

Arquiteturas Baseadas em Eventos Sistemas publicar/subscrever Processos publicam eventos e o middleware assegura que somente os processos que se subscreveram para esses eventos os receberão Processos fracamente acoplados: processos não se referem explicitamente uns aos outros

Arquiteturas Também podem ser híbridas Combina arquiteturas baseadas em eventos juntamente com centradas em dados, também conhecidas como espaços compartilhados de dados.

Arquitetura de Sistema Decisões a respeito de componentes de software, sua interação e sua colocação em máquinas reais. Três tipos: Centralizadas Descentralizadas Hibridas

Arquitetura de Sistema - Centralizadas Modelo cliente-servidor Comportamento de requisição-resposta

Arquitetura de Sistema - Centralizadas Tipico exemplo de uma arquitetura centralizada

Arquitetura de Sistema - Centralizadas Como estabelecer a comunicação? Protocolo sem conexão: Protocolo simples, que funciona bem em redes locais Cliente empacota uma mensagem para o servidor diretamente Eficiente se NÃO ocorrem problemas Exemplo: Falhas → Transferências bancarias Operações podem ser repetidas sem causar danos: idempotentes

Arquitetura de Sistema - Centralizadas Como estabelecer a comunicação? 2. Protocolo orientado a conexão Solução funciona bem em sistemas de longa distância. Sempre que um cliente requisita um serviço, primeiro se estabelece conexão com o servidor e depois se envia a requisição.

Arquitetura de Sistema - Centralizadas Camadas de Aplicação Como distinguir entre cliente e servidor? Exemplo: Servidor de banco de dados distribuído → repassa requisições a servidores de arquivos. Assim, age como cliente continuamente. Como muitas aplicações cliente-servidor visam dar suporte ao acesso de usuários a banco de dados é conveniente que sejam divididas em três níveis distintos: Nível de interface de usuário Nível de processamento Nível de dados

Arquitetura de Sistema - Centralizadas Nível de interface de usuário. Consiste em programas que permitam aos usuários finais interagir com aplicações. Diversos níveis de complexidade. Nível de processamento Normalmente contem as aplicações Exemplo: Análise de dados financeiros que pode exigir métodos e técnicas sofisticados de estatística Nível de dados Na sua forma mais simples, consiste em um sistema de arquivos. Mais comum utilizar um banco de dados. Normalmente implementado no lado servidor. Mantém os dados consistentes. Dados costumam ser persistentes.

Arquitetura de Sistema - Centralizadas

Arquitetura de Sistema - Multidivididas Com base na organização de três níveis lógicos discutida anteriormente, é necessária a distribuição física. A maneira mais simples, denominada arquitetura de duas divisões (físicas) é distribuída da seguinte forma: Uma máquina cliente que contém apenas os programas que implementam o nível (ou parte do nível) de interface de usuário Uma máquina do servidor que contém todo o resto, ou seja, os níveis de processamento e de dados.

Arquitetura de Sistema - Multidivididas Três Níveis lógicos → várias possibilidades para a distribuição física de uma aplicação cliente-servidor por várias máquinas Interface modo texto Interface gráfica Preenchimento de formulário

Arquitetura de Sistema - Multidivididas Gerenciamento de sistema: Clientes gordos (fat clients) Clientes magros (thin clients) Servidor pode também agir como clientes: arquitetura de três divisões

Arquitetura de Sistema - Descentralizadas Distribuição vertical divide componentes logicamente diferentes em máquinas diferentes; Distribuição horizontal Um cliente ou servidor pode ser subdividido em partes logicamente equivalentes, mas cada parte está operando em sua própria porção do conjunto de dados, equilibrando a carga. Ex.: Peer to Peer (servidor e cliente ao mesmo tempo, também chamada “servente”)

Arquitetura de Sistema – Descentralizadas Peer-to-peer Arquiteturas se dividem pela forma de organizar os processos em uma rede de sobreposição. Redes de sobreposição estruturadas Redes de sobreposição não-estruturadas

Arquitetura de Sistema – Descentralizadas Arquiteturas Peer to Peer estruturadas O mais usado é organizar os processos por meio de uma DHT (Distributed Hash Table). Armazenamento de tabelas hashes (chave, valor) de forma distribuída. Qualquer nodo pode buscar o valor associado a uma chave Reponsabilidade de manter o mapeamento é distribuida entre os nodos. Alterações afetam poucos nodos Cada nodo mantém um conjunto de links para seus vizinhos (route table) de acordo com a topologia da rede Juntos formam uma overlay network  Extremamente escalável

Distributed Hash Table

DHT – Protocolos e implementações Sistema Chord – Nós ligados logicamente em anel, onde um item de dado com chave k seja mapeado para o nó que tenha o menor Id ≥ k. CAN (Content Addressable Network)– Usa espaço de coordenadas cartesianas de d dimensões particionado entre todos os nós participantes do sistema. Além desses dois, outros exemplos: Apache Cassandra BitTorrent DHT – baseado no Kademlia Kademlia Pastry P-Grid Tapestry

Arquitetura de Sistema – Descentralizadas Sistema Chord Formada por um anel lógico onde cada nodo mantém uma relação de nodos atingíveis (finger table) Mapeia uma chave (ou conjunto de chaves) para um nodo. Nodos armazenam os valores para todas as chaves que eles são responsáveis Chord especifica como as chaves são definidas para os nodos e como os nodos podem descobrir quem é o nodo responsável por determinada chave

Arquiteturas descentralizadas Rede de Conteúdo Endereçável (CAN) O design da arquitetura é um espaço de coordenadas cartesianas multi-dimensional formando uma overlay-network Esse espaço de coordenadas d-dimension possui um endereçamento lógico virtual independente da posição fisica dos nodos ou de sua conectividade. Pontos no espaço são identificados como coordenadas O espaço de coordenadas é dinamicamente particionado entre todos os nodos do sistema de forma que cada nodo possui ao menos uma zona distinta no espaço

Arquiteturas descentralizadas Rede de Conteúdo Endereçável (CAN)

Arquitetura de Sistema – Descentralizadas Arquiteturas P2P não-estruturadas Cada nó mantém uma lista aleatória de vizinhos. Itens de dados são colocados aleatoriamente nos nós. Consulta através de inundação da rede (flooding) A meta é construir uma rede de sobreposição parecida com um grafo aleatório.

Gerenciamento de topologia de redes de sobreposição Abordagem de 2 camadas

Evolução da rede de sobreposição não-estruturada A tendência do uso contínuo das duas camadas tende a distribuir melhor os peers.

Super-pares (superpeers) Usam nós especiais que mantêm um índice de itens de dados, a fim de facilitar a localização de dados relevantes em sistemas P2P não estruturados. Definem, em muitos casos, uma relação cliente- superpar fixa, onde sempre que um par se junta à rede, se liga a um dos superpares e continua ligado até sair da rede Nem sempre é uma boa solução!

Super-pares (superpeers)

Arquitetura de Sistema – Arquiteturas híbridas Sistemas de servidor de borda (Internet) Sistemas colaborativos (Torrent)

Arquitetura de Sistema – Arquiteturas híbridas BitTorrent Um usuário acessa um diretório global que contém um arquivo .torrent, o qual contém as informações necessárias para transferir um ou mais arquivos específicos (rastreador). Após a identificação dos nós e suas porções de arquivos, o nó que está transferindo se torna efetivamente ativo, sendo forçado a auxiliar os outros. O gargalo dos servidores são os rastreadores!

Funcionamento do BitTorrent

Arquiteturas versus Middleware

Middleware

Middleware Onde o Middleware se encaixa? Entre aplicações e plataformas distribuídas, com finalidade de proporcionar um grau de transparência à distribuição de dados, processamento e controle.  É uma camada de software posicionada entre as outras camadas de software

Contexto do Middleware

Contexto do Middleware

Contexto do Middleware

Serviços fornecidos pelo Middleware

Modelos de Middleware

Middleware orientado a transação

RPC – Remote Procedure Call

MOM – Message Queueing

MOM – Publish / Subscribe

Middleware baseado em objetos

CORBA

Middleware para Sistemas Móveis

Middleware para Web

Web Services e outros Middlewares

Programação de Aplicações em Middleware