Escolar Documentos
Profissional Documentos
Cultura Documentos
Nomes,
Identificadores,
Endereços Implementação de um
espaço de nomes
Nomeação Simples Implementação de
Nomeação baseada em resolução de nomes
atributo
Nomeação Estruturad
aa DNS, CDN
Nomeação
⚫ Nomes:
– Compartilhar recursos
– Identificar entidades de maneira única
– Fazer referência a localizações
⚫ Nome deve ser resolvido para a entidade à qual se refere
– Sistema de Nomeação (ex. DNS)
⚫ Em um SD, a implementação de um sistema de nomeação
costuma ser distribuída por várias máquinas
– Modo como é feita a distribuição desempenha papel
fundamental na eficiência e escalabilidade do sistema
Nomes, Identificadores e Endereços
⚫ Um endereço pode ser utilizado como uma
maneira de nomear, identicar uma entidade
– Problema: Entidade pode mudar facilmente
de ponto de acesso!
Como nomear entidades, sem utilizar
especificamente seu endereço, ou seja, nomeá-las
independentemente da sua posição física
(localização)?
Identificadores ou Nomes amigáveis a seres
humanos
Identificadores
⚫ Em muitos casos, são cadeias aleatórias de bits,
com as seguintes propriedades:
– Um identificador referencia, no máximo, UMA entidade
– Cada entidade é referenciada por, no máximo, UM
identificador
– Um identificador sempre referencia a mesma entidade, isto
é, nunca é reutilizado
⚫ Ex:
ISBN de livros; Número de um funcionário dentro
Números de identificação de de uma organização;
produtos de software e hardware; Ethernet Addresses.
Nomes amigáveis
⚫ Três Classes
– Nomeação Simples
– Nomeação Estruturada
– Nomeação Baseada em Atributo
Nomeação Simples
Solução Simples
• Broadcasting e Multicasting
– Broadcasting – uma mensagem que contém o
identificador da entidade é enviada por broadcast a
cada máquina da rede e cada uma delas deve
Nomeação
Nomeação
Nomeação Simples
Abordagens hierárquicas
Nomeação
• C a d a domínio t e m u m nó diretório a s s o c i a d o .
– O d e nível m a i s alto é o nó raiz, e s a b e q u a i s s ã o todas e n t i d a d e s .
– Os “nós pais” não guardam informações, mas ele conhece todas as
entidades que os filhos dele guardam;
– Os nós folhas é onde realmente se encontra as informações.
– U m registro d e localização representa u m a e n t i d a d e e m dir(T).
Nomeação Simples
Abordagens hierárquicas
Explora a Localidade
Operação de Consulta:
Nomeação
Nomeação Simples
Tabelas de hash distribuídas
Nomeação Simples
Tabelas de hash distribuídas
Nomeação Simples
Tabelas de hash distribuídas
• Exploração de proximidade da rede
– Requisições podem ser roteadas erraticamente pela
Internet.
– Necessário levar em conta rede subjacente, nas formas:
Nomeação
resolução de Nome
2
❒ Host em cis.poly.edu 3
TLD DNS server
quer o endereço para 4
gaia.cs.umass.edu 5
resolução de Nome
2 3
Consulta recursiva: 7 6
gaia.cs.umass.edu
Como resolver nomes?
⚫ Resolução Iterativa
– Servidor responde somente o
que sabe: o nome do próximo Tipo Carga Cache Comunicação
Camada
servidor que deve ser buscado Global
– Cliente procura iterativamente
os outros servidores
⚫ Resolução Recursiva Iterativa Baixa Menos Custosa
Eficiente
– Servidor passa o resultado para
o próximo servidor que Recursiva Alta Mais Menos
encontrar Eficiente custosa
Netflix registration,
accounting servers
3. Manifest file
returned for
2. Bob browses
requested video Limelight CDN
Netflix video 2
3
1
1. Bob manages
Netflix account
Level-3 CDN
4. DASH streaming
Sistemas de arquivos distribuídos
Sistemas de arquivos distribuídos
• Arquivo
✔
Uma sequencia de bytes.
✔
Um sistema especifico de uma estrutura
interna.
✔
Atributos: Tamanho, acesso, datas,
dono.
...
• Diretório (arquivo especial)
✔ Mapeia os nomes para os identificadores.
• Oferecem:
– Acesso remoto aos arquivos armazenados em um servidor
– Acesso aos dispositivos de E/S de outras máquinas
– Controle de versão e restauração de cópias de segurança
• Os sistemas de arquivos distribuídos devem prover:
– Confiabilidade
– Redundância
– Disponibilidade
– Escalabilidade
Por que adotar SAD?
• Compartilhamento de recursos é sempre um desafio.
– Clientes dispersos
– Ponto de vista centralizado
– Mobilidade e flexibilidade
• SAD oferece um esquema de compartilhamento bem estruturado
– Espaço em disco.
– Administração compartilhada.
– Cada maquina não tem que armazenar arquivos que irá acessar.
O quê um SAD provê ?
✔
Provê acesso a dados armazenados nos servidores de arquivo através das
Interfaces de sistemas de arquivo.
✔
Interfaces são partes do sistema de arquivo com as funções de:
➔
Abrir arquivo, checar estado, fechar.
➔
Ler ou escrever dados em um arquivo
Bloquear um arquivo ou partes dele.
➔
➔
Listar arquivos em um diretório.
➔
✔
Permitir que um arquivo seja acessado
transparentemente em qualquer nó,
independente da sua localização.
✔
Mobilidade do Usuário
✔
Usuário pode trabalhar em qualquer nó em
diferentes momentos (Flexibilidade)
SAD – O que se busca?
• Tolerância a Falhas
– Se um servidor cair ou ficar fora do ar ou da rede, o
sistema de arquivos não pode perder informações e
nem ficar indisponível total ou parcialmente
• Acesso Concorrente
– Vários usuários podem acessar vários arquivos, ou os
mesmos arquivos, sem sofrer danos, perda de
performance ou quaisquer outras restrições
• Replicação de Arquivos
– Com esta funcionalidade, a confiança e a eficiência do
serviço de arquivos é aumentada significativamente
SAD - Requisitos
• Transparência de...
– Acesso: clientes tratam arquivos como locais
– Localização: espaço de nomes uniforme e sem
mudança quando arquivos mudarem
– Concorrência: operações dos clientes não devem
interferir umas com as outras
– Falha: servidores devem operar normalmente na falha
dos clientes, e vice-versa
– Desempenho: não deve variar com altas cargas
SAD - Requisitos
• Usabilidade depende de...
– Heterogeneidade de HW e SW
• Interfaces definidas de forma que possam ser
implementadas por vários HW e SW
– Escalabilidade
• Serviço deve ser extensível para acomodar mudanças de
escala do SD
– Transparência de replicação
• Arquivos podem estar fisicamente replicados e cliente
ignora esse fato
– Transparência de migração
• Arquivos podem mudar de lugar e isso não deve alterar os
clientes
SAD - Requisitos
– E ainda...
• Compartilhamento
– Toda operação em um arquivo deve ser visível a todos processos
– Semântica de sessão: nenhuma modificação é visível aos outros
processos até que o arquivo seja fechado.
• Transações:
– Todas as modificações têm a propriedade do tudo-ou-nada
(atomicidade);
– Serialização (processo para converter uma estrutura de dados ou um
objeto em um formato que possa ser armazenado ou transferido).
SAD – Serviços Básicos
• Serviço de Nomes Distribuído
– O serviço de nomes cuida de indicar a
localização de um determinado arquivo, dado o seu nome ou caminho.
• Serviço de Arquivos Distribuído
– Responsável por fornecer operações sobre os arquivos que compõe o
sistema.
– Os arquivos podem ser armazenados de diferentes formas,
dependendo do seu tipo e uso.
• Serviço de Diretórios Distribuído
– Responsável por manter a organização dos arquivos armazenados no
sistema.
– Ele fornece uma interface para que os usuários possam arranjar seus
arquivos num formato hierárquico, que é estruturado em diretórios e
subdiretórios.
Formas de armazenamento
✔
Arquitetura Modular
➔
Pode ser configurado em modo standalone (1 servidor)
➔
O sistema pode crescer ao tempo de acordo com a
necessidade
Formas de armazenamento
✔
Sistema de arquivos distribuído e descentralizado
✔
Agregação de múltiplas unidades de armazenamento
remotas (bricks) em um único volume
✔
Funcionalidades implementadas através de tradutores
(translators)
✔
Descarta a necessidade da utilização de servidores de
metadados
✓ Funcionalidades implementadas através de tradutores
Volume Distribuído
Arquitetura
Volume Replicado
Arquitetura
Volume Striped
Exemplos de SAD
✔
NFS (Network File System)
✔ GFS(Global FileSystem)
✔ GFS(Google FileSystem)
✔ GlusterFS
✔ PVFS (parallel virutal file system)
✔ AFS (Andrew FileSystem)
✔
DFS
✔ CODA (Constant Data Availability)
✔ SUN Network Filesystem
✔ Hadoop
✔ Ceph
✔ XteemFS
✔ Lustre
NFS- Network File System
✔
Exemplo Canônico de SAD
✔ Arquitetura simples Cliente-Servidor
✔
Muito popular no Unix
✔
Ideia Fundamental:
✔
Cada servidor de Arquivos fornece uma visão padronizada
de seu sistema local de arquivos
✔ Fornece ao cliente acesso transparente a um sistema de arquivos que
é gerenciado por um servidor remoto
✔
É utilizada um sistema de Arquivo Virtual (VFS)
✔ Todas as requisições ao FS do servidor são realizadas via
RPC (Remote Procedure Call)
NFS
GFS (Google File System)
✔
Bem descrito no artigo de Ghemawet, 2003
✔
O artigo o descreve como:
✔
SAD projetado p/ escalar para grandes aplicações
distribuídas e orientada ao uso de intensivo de dados
(Arquivos)
✔
Provê tolerância a falhas, roda em hardware comum e
economicamente viável, e oferece alta performance
agregada a um conjunto grande de clientes
✔ Cada cluster GFS consiste em vários servidores de dados e
um mestre
✔
Arquivos GFS são divididos em porções de 64Mb
✔
O mestre(servidor de metadados) possui o endereço
onde cada arquivo se encontra no SAD.
GFS (Google File System)
SAD baseados em Cluster
✔
Clusters normalmente são usados para
computação paralela
✔
Algo semelhante pode ser feito em SAD como file
stripping (arquivos em tiras) através dos
servidores
✔
Funciona bem se os dados tiverem uma estrutura bem
regular
✔ Para aplicações de uso geral e dados irregulares e com
diferentes estruturas esse modelo não será muito efetivo
✔
Outra abordagem possível é armazenar arquivos
inteiros em servidores, sem particionar o arquivo
GlusterFS
• Replicação em grupos
– Operação de escrita é feita ao
mesmo tempo em todos os nós
• Multicast atômico (tudo-ou-nada)
Serviços Web
Web Services
• Histórico
• Definições
• Exemplos de Serviços Web
• Conceitos principais
• Características dos Web Services
• Arquitetura
• Para que servem?
• Visão Geral
• Web Service- implementação
HISTÓRICO
Início da Computação
• Programas executados localmente.
Surgimento das Redes de Computadores
• Arquitetura cliente-servidor.
Avanço das Redes de Computadores
• As aplicações necessitavam se comunicar entre si de
forma
dinâmica.
• Web services foram desenvolvidos para realizar
interações aplicação-aplicação, embora também possa
ser utilizada para interações com o usuário.
DEFINIÇÃO 1
Web services
- Serviços de aplicações que podem ser acessados
utilizando os protocolos padrões da Web, como
por exemplo, o http, o https, etc.
- Basicamente, possibilita a comunicação entre os
sistemas distribuídos;
DEFINIÇÃO 2
Web services
- "Web Services" é o conjunto de padrões que
asseguram interoperabilidade entre serviços
especialmente quando esses serviços devem se
comunicar utilizando os protocolos da Web.
DEFINIÇÃO 3
Web services
- Sistema de software projetado para apoiar interações
máquina-máquina interoperáveis pela rede, fornecendo
uma interface descrita em um formato processável por
máquina (WSDL).
Exemplos de Serviços Web
Exemplos de Serviços Web
Exemplos de Serviços Web
Conceitos principais
- Acessível pela Internet. Os serviços se comunicam
utilizando protocolos que são independentes de
plataforma facilitando a integração em plataformas
heterogêneas.
- Web Services define um protocolo de comunicação e
uma interface que pode ser requerida por um cliente
ou fornecida pelo servidor de aplicação
- WSDL (Web Services Description Language) adiciona
uma camada de abstração entre a interface do serviço
com o cliente e sua implementação.
Conceitos principais
- Hoje em dia, a maioria dos serviços integrados à Web
são feitos a partir de um grupo de tecnologias
incluindo:
•Popularidade:
• devido à adoção de protocolos e padrões abertos, (HTTP
e XML), soluciona o problema de integrar aplicativos de
sistemas heterogêneos presentes em tecnologias como
CORBA, DCOM e RMI.
•Objetivo:
• oferecer a interoperabilidade entre os sistemas escritos
em diferentes linguagens de programação, desenvolvidos
por fornecedores distintos e em sistemas operacionais
diversos possam se comunicar.
CARACTERÍSTICAS
•Duas entidades:
• consumidores e provedores
•Provedor
• Possui características semelhantes a um servidor que
disponibiliza serviços na rede.
•Consumidores
• Clientes que utilizam os serviços disponibilizados por
provedores de serviços.
• Uma entidade também pode assumir ambos os
papéis ao mesmo tempo, caracterizando a
composição de serviços.
Arquitetura
Para que servem os web services?
- Entrega e a disponibilização de serviços web para o
acesso e o consumo do serviço por um usuário,
facilitando a comunicação entre as aplicações que
residem em múltiplas plataformas (usando diferentes
modelos de objetos e baseados em linguagens
diferentes);
- São Baseados em um conjunto de padrões da internet
definidos pelo W3C. Pois o protocolo HTTP atua como
transporte na comunicação entre o cliente e o Web
Service.
Para que servem os web services?
Aonde são usados?
• Amazon
• Google
• Consulta a Títulos do Tesouro Nacional
• Correios
• Web Service do Sistema de Informações
Organizacionais do Governo Federal (SIORG)
• Etc.
E qual a Diferença entre API e Web Service?