Gerenciamento de Dados em Sistemas P2P
XXI SBBD – Florianópolis
16 a 18 de Outubro de 2006
Ana Carolina Salgado, Carlos Eduardo Santos Pires,
Cenário Ponto-a-Ponto
database.pd f database.pd f 0 arquivos encontrados database.pdf 2 SBBD'06 - Gerenciamento de Dados em Sistemas P2PAuto-organização Ausência de controle
centralizado
Comportamento dinâmico Dados não-estruturados Busca por palavra-chave
Paradigma Ponto-a-Ponto
Compartilhamento de
serviços
e
serviços
e
recursos computacionais
P2P – Questões Importantes
Como reconhecer um outro ponto na rede?
Como publicar informações para os demais
pontos?
Como identificar unicamente um ponto?
4 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Como compartilhar dados na rede?
Cenário PDMS (Peer Data Management System) Histórico do Paciente Histórico do Paciente Compartilhamento de dados estruturados
Dados representados através
de esquemas
Novos Desafios
Localização dos Dados
Pontos devem saber localizar dados em outros pontos
Processamento de Consultas
Pontos devem localizar os dados e executar a consulta
eficientemente
6 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
eficientemente
Integração de Dados
A heterogeneidade da representação dos dados nos
vários pontos deve ser resolvida
Consistência dos Dados
A consistência deve ser mantida em caso de replicação
Agenda
Bancos de Dados X Sistemas P2P
Paradigma Ponto-a-Ponto (P2P)
Características
Topologias de Rede
P2P x Grades Computacionais
PDMS – Peer Data Management System
Gerenciamento de Dados em PDMS Principais PDMS
Bancos de Dados
X
Sistemas P2P
Evolução dos Sistemas de
Gerenciamento de Dados Distribuídos
SGBDD PDMS BD Federados Heterogeneidade Web P2P SGBDD Multi-BD Esquema
Global de MediaçãoEsquema
Sistema de Integração de Dados
Bancos de Dados Distribuídos
BD Distribuído
É uma coleção de múltiplos BD logicamente
inter-relacionados distribuídos através de uma
rede de computadores
Sistema de BD Distribuídos
10 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Sistema de BD Distribuídos
É definido como um sistema que permite o
gerenciamento de BD distribuídos deixando a
distribuição dos dados
transparente ao usuário
Evolução dos BD Distribuídos
Bancos de Dados Distribuídos
Dados homogêneos Acesso e atualização
Multi-Bancos de Dados
Dados heterogêneos
Acesso e atualização usando um esquema global
Bancos de Dados Federados
Dados heterogêneos
Evolução dos BD Distribuídos
Sistemas de Integração de Dados
Tipo particular de middleware
Integração de fontes de dados distribuídas, autônomas e
heterogêneas
Visão lógica unificada de dados (esquema global)
12 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Visão lógica unificada de dados (esquema global)
Evita lidar com as inúmeras fontes, interfaces e representações
dos dados diferentes
Apenas consultas aos dados
Abordagens para integração de dados: virtual e
materializada
Vários Mediadores
Mediador Aplicação Aplicação Aplicação PDMS Mediador MediadorMediador Mediador Mediador
Sistemas de Gerenciamento de Dados
Ponto-a-Ponto (PDMS)
Compartilhamento de dados
descentralizado
Processamento e armazenamento de dados
distribuídos em
pontos autônomos
Comportamento dinâmico
dos pontos: podem
14 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Comportamento dinâmico
dos pontos: podem
entrar e sair do sistema a qualquer momento
Escalabilidade
sem servidores poderosos
Mapeamentos semânticos
dos dados
DB Distribuídos X PDMS
BD DistribuídosPequeno número de fontes Nós controlados na rede Dados consistentes
Coordenação
Dados estruturados (e.g.,
PDMS
Grande número de fontes Nós entram e saem da rede Dados não confiáveis
Autonomia
Dados semi-estruturados (e.g., Dados estruturados (e.g.,
modelo relacional)
Transações
Restrições de integridade Consultas complexas
Esquemas criados pelo
Dados semi-estruturados (e.g.,
XML)
Sem transações
Sem restrições de integridade Consultas simples
Banco de Dados X P2P
No paradigma P2P falta
semântica
,
transformação
de dados e
relacionamento
entre dados
BD oferecem
consultas
,
visões
e
restrições de
integridade
16 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
integridade
BD possibilitam
consultas complexas
e reuso
de resultados de consultas anteriormente
processadas
Banco de Dados P2P
P2 P3…
…
P1 P4 Consultas Externas Minhas Consultas…
…
Paradigma
Ponto-a-Ponto
Terminologia
Peer ≡
Ponto
≡
Nó
Componente de uma rede P2P
Pode assumir o papel de cliente e servidor
Cluster
Agrupamento de pontos com interesses específicos Exemplo: cluster semântico
Topologia
de rede e localização dos dados
Estruturada
Terminologia
Serviço
Funcionalidades oferecidas os pontos Transferência de conteúdo
Disponibilização de status
Motivação para agrupamento de pontos em uma rede
20 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Motivação para agrupamento de pontos em uma rede
P2P
Anúncio
Forma de comunicar a disponibilidade de um recurso por
Terminologia
Rede Overlay
enlace virtual
Rede overlay
Rede virtual criada sobre uma rede já existente Não é exatamente igual à rede física
Rede Overlay
Classificação dos Sistemas Computacionais
Sistemas Computacionais
Sistemas Sistemas
22 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Sistemas Centralizados
Sistemas Distribuídos
Sistemas Distribuídos
Cliente/Servidor
Cliente/Servidor Servidor
Paradigma Ponto-a-Ponto (P2P)
Consiste de uma ampla rede de
pontos computacionais
(ou nós de informação)
interconectados
que cooperam uns com os outros,
24 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
que cooperam uns com os outros,
trocando serviços e informações
Cada ponto
compartilha
recursos com
os outros pontos e se beneficia dos
recursos dos demais
Paradigma Ponto-a-Ponto (P2P)
Recursos compartilhados
Recursos computacionais
Espaço em disco Processamento ProcessamentoRecursos de rede
Conteúdo
Paradigma Ponto-a-Ponto (P2P)
Sistemas P2P
Pontos possuem relativamente as
mesmas
características e funções
Pontos trocam mensagens através dos seus
links lógicos
sem a interferência de um
26 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
links lógicos
sem a interferência de um
coordenador
(ponto servidor)
Pontos são organizados através de uma
rede
Paradigma Ponto-a-Ponto (P2P)
Principais características
Sem coordenação central Sem repositório central
Sem local único de falha ou gargalo
Nenhum ponto tem visão global do sistema Nenhum ponto tem visão global do sistema
Todos os dados e serviços são acessíveis de qualquer
ponto
Pontos são autônomos
Sistemas Ponto-a-Ponto (P2P)
Tipos de Sistemas
Não Estruturados EstruturadosNão Estruturados
28 SBBD'06 - Gerenciamento de Dados em Sistemas P2PNão Estruturados
Sem restrição de localização dos dados
Principal aplicação: compartilhamento de arquivos Busca por palavra-chave
Estruturados
Referenciados como Distributed Hash Tables (DHT) Alta escalabilidade
Boa cobertura e alta precisão
Sistemas Ponto-a-Ponto (P2P)
Dois aspectos importantes Busca aos dados
Acesso aos dados
camada virtual de rede (overlay network)
Paradigma Ponto-a-Ponto (P2P)
Vantagens
Poder computacional (recursos dos demais pontos) Pontos com diferentes papéis (cliente ou servidor) Compartilhamento de recursos
30 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Melhor desempenho, tolerância a falhas (replicação) Autonomia dos pontos participantes
Ausência de administração
Escalabilidade (e.g. KaZaA com ~3-4 milhões de
Paradigma Ponto-a-Ponto (P2P)
Desvantagens
Ausência de tratamento semântico na troca de dados Problemas com disponibilidade e consistência
Falta de estratégia para distribuição dos dados Pode prejudicar o desempenho de pontos
Pode prejudicar o desempenho de pontos Ausência de administração centralizada
Usuários responsáveis por gerenciar seus próprios
recursos
Topologias de Redes
Ponto-a-Ponto
Topologias de Redes P2P
Topologia
Define a organização lógica dos pontos na rede
Tipos
[Fiorano 2003]Pura Híbrida
Topologias de Redes P2P
Sistemas Computacionais Sistemas Centralizados Sistemas Distribuídos 34 SBBD'06 - Gerenciamento de Dados em Sistemas P2PCentralizados Distribuídos
Cliente-Servidor Ponto-a-Ponto
Topologia Pura
Inexistência de um servidor ou
repositório centralizado
Todos os pontos são “iguais” e
conectados entre si Ponto Busca Não-Estruturada Flooding TTL (time-to-live) Estruturada: DHT
Topologia Pura
Responsabilidades do ponto, como
cliente
:
Enviar pedidos de serviço a outros pontos Receber as respostas dos pedidos feitos
Responsabilidades do ponto, como
servidor
:
36 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Receber pedidos de serviço de outros pontos
Processar os pedidos e executar um serviço requerido Enviar a resposta com os resultados do serviço requerido Propagar os pedidos de serviço a outros pontos
Busca na Topologia Pura Não-Estruturada
Ponto D Ponto E Ponto F
TTL = 1007
?
04?
02 Q(X)Ponto A Ponto B Ponto C
Ponto G Ponto H Ponto I
Arquivo X
?
?
IP do Ponto I IP do Ponto I
Topologia Híbrida
Existência de um ou mais
servidores centrais
Informações de controle são
armazenadas e fornecidas Ponto
Servidor Central
38 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
armazenadas e fornecidas por um servidor central
Gerência facilitada
Servidor central representa
um ponto único de falha
Sistema: Napster
Topologia Híbrida
Responsabilidades do ponto, como cliente: Registrar no servidor seus serviços disponíveis
Enviar ao servidor pedidos de busca por serviços e receber
respostas contendo listas de pontos com os serviços desejados
Enviar a outros pontos pedidos de serviço e receber as respostas
destes pedidos
Processar e executar os serviços requerido e enviar repostas a Processar e executar os serviços requerido e enviar repostas a
quem fez o pedido
Responsabilidades do ponto, como servidor: Registrar serviços disponíveis nos pontos
Receber pedidos de busca por serviços disponíveis, buscar por
esses serviços e enviar respostas com as localizações dos serviços desejados
Busca na Topologia Híbrida
IP do Ponto B
Ponto A Ponto Servidor Tabela Indexada Ponto D Upload de Nomes de Arquivos Q(X) 40 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
IP do Ponto B Ponto A Tabela Indexada Ponto B (Arquivo X) Ponto C
Topologia Super-Peer
Considera:
Heterogeneidade
dos pontos
Muitos pontos em conexões de baixa
capacidade
e alta
instabilidade
Poucos pontos em conexões de alta
capacidade
Topologia Super-Peer
Pontos heterogenêneos
Organização hierárquica
Grupos de pontos
comunicam-se com outros
42 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
grupos através de
super-peers
Cada super-peer indexa as
informações armazenadas
no seu conjunto de pontos
Sistemas: KaZaA, Morpheus
Ponto
Super Peer
Busca na Topologia Super-Peer
Ponto A1 Ponto A2 Ponto A3
Super-Peer A
Q(X)
Super-Peer A
Super-Peer B
Ponto B1 Ponto B2 Ponto B3 Ponto C1 Ponto C2 Ponto C3
Desafios da Topologia Super-Peer
Qual a taxa ideal de pontos por super-peer?
Como os super-peers devem conectar-se entre si?
Topologia estruturada ou não-estruturada?
Variação:
44 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
K-redundant
Comparativo entre Topologias
Arquitetura Segurança (Pontos Maliciosos) Consistência (Dados) Escalabilidade (Entrar e Sair) Confiabilidade (Ponto de Falha) P2P Pura
P2P Híbrida
Super-Peer
Propriedades dos
Sistemas P2P
Principais Propriedades dos Sistemas P2P
Conectividade
Auto-Organização
Descentralização
Descentralização
Escalabilidade
Roteamento
…
[Walkerdine 2002]Conectividade
Ad-hoc e dinâmica
Envolve
Conexão
Desconexão (normal, falha)
48 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Conexão de um ponto na rede
Feita através de outro que já esteja participando
Alguns pontos podem atuar como entry points
Pontos relacionados devem ficar “próximos” uns
Auto-Organização
Capacidade dos pontos se realocarem na rede
após a ocorrência de um evento
Conexão
Desconexão e/ou Falha Timeout
Timeout
A inexistência de uma administração centralizada
faz com que a reorganização de rede P2P fique ao
encargo dos próprios pontos
Descentralização
Dados e metadados estão distribuídos entre os
pontos
Não existe um servidor central responsável por
tarefas como
Reorganização da rede
50 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Reorganização da rede
Armazenamento de metadados
Próprios pontos devem ser responsáveis por tais
tarefas
Escalabilidade
Capacidade da rede P2P crescer sem ficar
sobrecarregada
Sistema cliente-servidor
Administradores podem estender ou rebalancear os
recursos computacionais para compensar o crescimento recursos computacionais para compensar o crescimento da rede
Sistema P2P
Escalabilidade
Depende da topologia adotada Híbrida
Dificuldade em tratar a escalabilidade
Pontos centrais podem necessitar de balanceamento e/ou
expansão física do hardware para compensar o crescimento da rede
Preocupação com os custos de manutenção dos pontos centrais
52 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Preocupação com os custos de manutenção dos pontos centrais Contra-exemplo: Napster mostrou-se robusto e eficiente
Pura
Sobrecarga de troca de mensagens para descoberta de novos
pontos e buscas na rede
Super-Peer
Roteamento
Principais mecanismos de roteamento para redes
P2P
Híbrido
Flooding (ou inundação): modelo descentralizado
não-estruturado estruturado
Tabela Hash Distribuída (DHT): modelo descentralizado
estruturado
Roteamento – Flooding
ProblemasExcesso de mensagens Mensagens duplicadas Valor ideal de TTL
TTL alto: sobrecarga na rede
TTL baixo: nenhum resultado encontrado
54 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
TTL baixo: nenhum resultado encontrado
Variações
Busca informada: uso de cache local Busca informada com replicação
Roteamento – Modelo DHT
Tentativa de melhorar os algoritmos de roteamento
dos sistemas P2P não-estruturados
Itens (arquivos) são distribuídos entre os pontos de
acordo com um algoritmo
Pontos não escolhem os itens à vontade
Roteamento – Modelo DHT
Função hash
Mapeia um ponto em um identificador único h(‘172.17.166.99’) 8400
Mapeia um item (arquivo) em um identificador único h(‘TutorialP2P.ppt’) 8045
56 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
h(‘TutorialP2P.ppt’) 8045
Qualquer função aleatória de hash “boa” é suficiente Padrão SHA-1 (colisão praticamente impossível)
Faixa de resultados da função hash é distribuída
Roteamento – Modelo DHT
Cada ponto é responsável por armazenar itens cujo
identificador é igual ou próximo ao identificador do
ponto
Dado um identificador, um ponto deve ser capaz de
encaminhar a consulta para o ponto cujo
identificador mais se aproxima
Roteamento – Modelo DHT
Para cada objeto, o(s) ponto(s) cuja faixa “cobre” o objeto
deve ser alcançável por um caminho “curto”
De qualquer outro ponto Abordagens
Chord, CAN, Pastry, Tapestry, ...
Diferem na escolha do algoritmo de roteamento (determina a
58 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Diferem na escolha do algoritmo de roteamento (determina a
geometria da rede)
Geometrias Anel: Chord
Árvore: Pastry, Tapestry XOR: Kademlia
Hipercubo: CAN
Roteamento
Ineficiência de consultas no modelo de inundação
(escalabilidade)
Consultas no modelo DHT Escalonável, porém “pobre” Não permite
Consultas por aproximação
60 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Consultas por aproximação Consultas por faixa
Uma consulta deve ser enviada apenas para os pontos
aptos a respondê-la
Em geral, é possível representar o conteúdo compartilhado
através de ontologias
Semantic Overlay Network
Virtual, abstrata, camada independente de pontos selecionados
Vantagens
Introduz visões semânticas sobre a rede física
Mediação e integração
Roteamento - SON
Mediação e integração (correspondências, reescrita de consultas) Reduz a quantidade de mensagens na redeRoteamento - SON
Pontos agrupados em
clusters
Overlap de clusters
Consultas enviadas
62 SBBD'06 - Gerenciamento de Dados em Sistemas P2PConsultas enviadas
apenas para clusters
relevantes
Clusters irrelevantes
são descartados
Roteamento - SON
SON associada ao conceito de hierarquia de
classificação
Exemplos
9 SON para classificação de músicas por estilo 4 SON para classificação de músicas por ton
Música Rock Jazz Soft Dance New Orlean Fusion Estilos u b -e st ilo s Música
Warm Exciting Sweet
SON: Critérios para Definição da Hierarquia
Documentos devem ser
associados a
conceitos
para que o ponto seja associado
a(s) SON correspondente(s)
Pontos devem possuir documentos em
64 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Pontos devem possuir documentos em
um
número reduzido de categorias
SON: Estratégias para Alocação de Pontos
Estratégia conservadoraAloque um ponto em SONc
,
se o mesmo possui algumdocumento classificado no conceito c
Produz muitos links
Estratégia menos conservadora
Aloque um ponto em SONc, caso o mesmo possua uma quantidade de
Outras Propriedades de Sistemas P2P
Autonomia
Um ponto não deve ter controle sobre os recursos
compartilhados por outro ponto
Anonimato
Capacidade do sistema ocultar a identificação do usuário
66 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Capacidade do sistema ocultar a identificação do usuário
Descoberta de Recursos
Os pontos devem comunicar a disponibilidade de
Plataformas de Desenvolvimento
Desenvolvimento de sistemas P2PImplementação de protocolo de comunicação próprio para permitir a
interoperabilidade entre os pontos da rede
Conseqüências
Esforço de implementação adicional
Aplicações que oferecem o mesmo serviço não podiam
comunicar-68 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Aplicações que oferecem o mesmo serviço não podiam
comunicar-se entre si
Exemplo
Arquivos compartilhados por sistemas como o KaZaA, e-Mule e Gnutella São acessíveis exclusivamente dentro de suas próprias redes
Plataformas de Desenvolvimento
Popularização dos sistemas P2P
Esforço maior em construir plataformas e frameworks de
desenvolvimento
Aplicações distintas podem comunicar-se entre si
naturalmente
Exemplos de plataformas
JXTA
Web Services .NET
Plataforma JXTA
Plataforma aberta para desenvolvimento de sistemas P2P Começou como um projeto de pesquisa incubado na Sun
Microsystems
Oferece um conjunto de protocolos para comunicação,
colaboração e compartilhamento de recursos, entre
diferentes tipos de dispositivo, e.g. celulares, estações de
70 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
diferentes tipos de dispositivo, e.g. celulares, estações de trabalho, PDA e servidores
Principais objetivos
Interoperabilidade (entre diferentes sistemas e comunidades P2P) Independência de plataforma (diversas linguagens de programação,
sistemas operacionais e redes)
Generalidade (qualquer tipo de dispositivo digital) Segurança
Classes de
Aplicações P2P
Classes de Aplicações P2P
Computação Distribuída
Troca de Mensagens
Trabalho Colaborativo
Compartilhamento de Dados
Compartilhamento de Dados
Não-estruturado Estruturado/Semi-estruturadoComputação Distribuída
A idéia de aproveitar recursos computacionais
ociosos não é nova
Grade Computacional
Solução de computação distribuída para engenharia e
ciências, baseada em compartilhamento de recursos em
74 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
ciências, baseada em compartilhamento de recursos em larga escala
Discutiremos adiante
SETI@Home (http://setiathome.ssl.berkeley.edu)
The Search for Extraterrestrial Intelligence Usuários executam partes da “busca”
Troca de Mensagens
Instant Messaging (IM)
Aplicação popular na Internet, pela facilidade de
enviar mensagens on-line
Exemplos
76 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Yahoo! Messenger (http://messenger.yahoo.com) AIM (AOL Instant Messenger - http://www.aim.com) ICQ – (http://web.icq.com)
MSN Messenger (http://messenger.msn.com) Trillian Messenger – (http://www.trilian.de)
Trabalho Colaborativo
Groupware
Aplicação que suporta colaboração, comunicação e
coordenação de vários usuários em uma rede
Exemplo Cliente/Servidor: Lotus Notes
A combinação de groupware com computação P2P
78 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
A combinação de groupware com computação P2P
trouxe novas oportunidades
Groove (http://www.groove.net)
Usuários criam e compartilham espaços de trabalho Oferece servidores centralizados para maior garantia Oferece uma plataforma de desenvolvimento (GDK)
Compartilhamento de Arquivos
Aplicação de maior sucesso na Internet
Os usuários podem compartilhar diretamente seus
arquivos, músicas, vídeos, entre outros
Pode apresentar problemas de violação de direitos
autorais
80 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
autorais
Características
Área de armazenamento Disponibilidade de informações Anonimato GerenciamentoCompartilhamento de Arquivos
Napster (http://www.napster.com)
KaZaA (http://www.kazaa.com)
Gnutella (http://www.gnutella.com)
Freenet (http://www.freenetproject.org)
BitTorrent (http://www.bittorrent.com)
Morpheus (http://www.morpheus.com)
P2P e Grades
Computacionais
Grades Computacionais
Paradigma para
compartilhamento
coordenado de recursos
e
resolução de problemas
resolução de problemas
em organizações virtuais,
multi-institucionais e dinâmicas
Grades Computacionais
Computação em grade
Plataforma de computação distribuída geograficamente Máquinas heterogêneas
Interface única de acesso
Disponibiliza camadas virtuais
84 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Disponibiliza camadas virtuais
Recursos computacionais variados e dispersos em um único
“supercomputador virtual”
Aplicações de alto desempenho
P2P e Grades Computacionais
Computação em GradeCaso especial de computação P2P
Nós participantes dispõem de muitos recursos Colaboração entre os nós é restrita e organizada Computação P2P é mais amigável
Usuários compartilham recursos e conteúdo de forma simples e Usuários compartilham recursos e conteúdo de forma simples e
gratuita
Semelhanças
Modelos de computação distribuída
Computadores ligados em rede colaboram entre si, de modo
descentralizado
Comparativo P2P x Grades Computacionais
Critério P2P Grade Computacional
Nós Participantes -Muitos (usuários comuns) -Conexões variadas
-PCs
-Poucos (Organizações) -Redes de alta capacidade -Servidores (Clusters)
Segurança -Comunidades abertas
-Pouco explorado -Anonimato -Comunidades Fechadas -Muito explorado -Autenticação/Autorização/Confiabilidade 86 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
-Anonimato
-Difícil de gerenciar
-Autenticação/Autorização/Confiabilidade -Mais simples de gerenciar
Conectividade Instável Estável
Consultas Resultados incompletos Resultados completos Aplicações Simples Alto Desempenho Descoberta de
Recursos
Informações disponíveis em um ponto
Nós enviam mensagens periodicamente
Tolerância à Falhas Bastante explorado Pouco explorado
Sistemas de Gerenciamento de Dados
Ponto-a-Ponto (PDMS)
Sistema de Gerenciamento de Dados
com arquitetura
descentralizada
,
facilmente
extensível
, na qual qualquer
usuário pode contribuir com novos
88 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
usuário pode contribuir com novos
dados
, novos
esquemas
, ou
mapeamentos
entre os esquemas dos
Sistemas de Gerenciamento de Dados
Ponto-a-Ponto (PDMS)
São uma evolução natural dos
Sistemas de Integração de Dados
substituindo seu único esquema lógico
substituindo seu único esquema lógico
(mediação) por uma
coleção de
mapeamentos semânticos
entre os
Sistemas de Gerenciamento de Dados
Ponto-a-Ponto (PDMS)
Algumas características
Autonomia: controle sobre os dados locais
Dinamismo: pontos e recursos podem entrar e sair a
qualquer momento
Descentralização: cada ponto é independente dos outros
90 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Cooperação: compartilhamento de recursos e serviços
entre os pontos
Esquema local do BD: cada ponto tem seu esquema
(ausência de esquema global)
Dados: podem estar incompletos, indisponíveis ou
Arquitetura Genérica de um Ponto
Camada de Gerenciamento de Dados Camada de Gerenciamento de Dados
Gerenciador de Consultas Gerenciador de Atualizações C am ad a de A ce ss o ao s D ad os C am ad a de A ce ss o ao s D ad os In te rf ac e co m o U su ár io In te rf ac e co m o U su ár io C am ad a de R ed e P 2P C am ad a de R ed e P 2P Consulta Local Consulta Global Rede P2P Ponto Ponto Fonte de Mapeamentos Cache de Dados Wrapper de Atualizações Gerenciador de Cache C am ad a de A ce ss o ao s D ad os C am ad a de A ce ss o ao s D ad os In te rf ac e co m o U su ár io In te rf ac e co m o U su ár io C am ad a de R ed e P 2P C am ad a de R ed e P 2P Resposta Ponto Ponto Ponto Ponto
Sistemas de Gerenciamento de Dados
Ponto-a-Ponto (PDMS)
Gerenciamento de dados distribuídos
Compartilhamento de dados em larga escala
Solução depende fortemente da topologia
adotada
92 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Impraticável a existência de esquema de
Problemas de um Esquema de Mediação Único Conflito com as propriedades dos sistemas P2P
Dinamismo
Atualização do esquema de mediação a cada conexão e/ou
desconexão
Autonomia
Nem todos os pontos querem compartilhar todos os dados Escalabilidade
Onde armazenar um esquema de mediação único?
Centralizado
• Ponto único de falha
• Investimento em hardware e conectividade
Distribuído
Pontos Positivos dos PDMS
Não existe esquema global
Manutenção
Mapeamentos
definidos da forma mais conveniente
(pontos “próximos”)
Consultas
são elaboradas de acordo com o
94 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Consultas
são elaboradas de acordo com o
esquema do ponto
Resultados vêm de qualquer lugar do sistema
PDMS x Compartilhamento de Arquivos
Dados possuem semântica mais “rica”
Pontos Positivos dos PDMS
Inexistência de Ponto Único de FalhaDados altamente distribuídos usando caching local Se um ponto falha, as consultas podem continuar Pouca administração
Escopo dos dados Escopo dos dados
Grande quantidade de dados de diferentes tipos Replicação
Dados podem ser replicados nos pontos
Resultados de consultas podem ir para cache local
Gerenciamento de
Dados em PDMS
Aspectos do Gerenciamento de Dados em
Sistemas P2P
Mapeamentos entre Esquemas
Processamento de Consultas
Consistência de Dados
Localização de Dados
Localização de Dados
Conectividade entre Pontos
Tolerância a Falhas
PDMS – Mapeamentos entre Esquemas
Mapeamentos
Estabelecem relacionamentos entre esquemas
Em sistemas de integração de dados são estabelecidos
entre o esquema de mediação e as fontes de dados
Em PDMS são estabelecidos entre os pontos
98 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
A qualidade dos mapeamentos possui forte influência no
resultado das consultas
Principais formalismos
Global-as-view (GAV) Local-as-view (LAV)
PDMS – Mapeamentos entre Esquemas
Mapeamentos em
Sistemas de Integração
de Dados
Global-as-view Relações no esquemaglobal são descritas como
Esquema de Mediação
Fonte de Fonte de Fonte de
global são descritas como visões sobre a coleção de relações locais
Local-as-view
Cada relação em uma
visão local é descrita como visão sobre o esquema de mediação
Fonte de
dados A Fonte de dados B Fonte de dados C
Esquema de Mediação
PDMS – Mapeamentos entre Esquemas
Mapeamentos em Sistemas de Integração de Dados - GAV Exemplo
Esquema de Mediação
CD(Álbum, Artista, Ano)
Contrato(Artista, Ano, Gravadora)
100 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Contrato(Artista, Ano, Gravadora) Música(Álbum, Nome)
Esquemas Locais
BD1(Álbum, Artista, Ano)
BD2(Álbum, Artista, Ano, Gravadora) BD3(Álbum, Música)
PDMS – Mapeamentos entre Esquemas
Mapeamentos em Sistemas de Integração de Dados – GAV Mapeamento 1 (CD):
CD(Álbum, Artista, Ano) BD1(Álbum, Artista, Ano)
CD(Álbum, Artista, Ano) BD2(Álbum, Artista, Ano, Gravadora) A relação CD é definida como a união das projeções de BD1 e BD2 CD = ππÁlbum, Artista, AnoÁlbum, Artista, Ano(BD1) ∪ ππÁlbum, Artista, AnoÁlbum, Artista, Ano(BD2)
Mapeamento 2 (Contrato):
Contrato(Artista, Ano, Gravadora) BD2(Álbum, Artista, Ano, Gravadora) Contrato = π Artista, Ano, Gravadora (BD2)
Mapeamento 3 (Música):
PDMS – Mapeamentos entre Esquemas
Mapeamentos em Sistemas de Integração de Dados – LAV
Mapeamento 1 (Fonte 1)
V1(Álbum,Artista, Ano ) ← CD(Álbum, Artista, Ano), Contrato(Artista, Ano, EMI), Ano ≥ 2000
A tabela (V1) armazena os dados dos álbuns que foram produzidos
102 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
A tabela (V1) armazena os dados dos álbuns que foram produzidos depois do ano 2000 pela gravadora EMI.
Mapeamento 2 (Fonte 2)
V2(Álbum, Música) ← Música(Álbum, Música)
PDMS – Mapeamentos entre Esquemas
Mapeamentos em um PDMS
Pontos em um PDMS são relacionados através de
mapeamentos
O conjunto de mapeamentos define a rede semântica de
um PDMS
A otimização da rede semântica considera Eliminação de mapeamentos redundantes
Redução do diâmetro do PDMS (para reduzir a perda de
informação na reformulação de consultas)
PDMS – Mapeamentos entre Esquemas
Mapeamentos em um PDMS
Vantagem de um PDMS
Quando um novo ponto entra no sistema será preciso fornecer
mapeamentos para um pequeno número de pontos já existentes
Em termos de esquema, os pontos existentes devem ser
similares ao novo ponto
104 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
similares ao novo ponto
Dada uma consulta submetida a um ponto, o sistema
reformulará a consulta de acordo com os esquemas dos pontos vizinhos
PDMS – Mapeamentos entre Esquemas
Mapeamentos em um PDMS
P1 P2 Ponto Esquema do Ponto Fonte de Dados Mapeamento LocalMapeamento entre Pontos
P5
P3
P4
PDMS – Mapeamentos entre Esquemas
Diferentes formalismos podem ser usados para a
definição dos mapeamentos (GAV, LAV)
Exemplos
Mapeamentos locais: LAV
Mapeamentos entre pontos: GAV
106 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Mapeamentos entre pontos: GAV
Os mapeamentos podem ser direcionados
P1 P2
M12
PDMS – Mapeamento de Dados
Mapeamentos entre dados são necessários
quando seus valores (formatos) são diferentes
Tabelas de mapeamento podem ser usadas para
especificar a correspondência entre valores de
atributos
atributos
Associam valores dentro de um único domínio ou entre
domínios
Representam o conhecimento de especialistas Ex.: Para
Fortaleza
Origem
PDMS – Processamento de consultas
Cada ponto tem um esquema associado
Pontos são conectados através de “caminhos de
mapeamentos”
Pontos podem ser servidores de dados,
mediadores entre pontos e clientes que submetem
108 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
mediadores entre pontos e clientes que submetem
consultas
PDMS – Processamento de Consultas
1.
Uma consulta Q é submetida a um ponto P1 de
acordo com o esquema de P1
2.
Se P1 possui seus próprios dados, então o PDMS
recupera a resposta de Q a partir de P1
3.
Em seguida, de acordo com os mapeamentos
3.
Em seguida, de acordo com os mapeamentos
correspondentes, Q será reformulada para os
vizinhos de P1
4.
As consultas reformuladas são submetidas aos
vizinhos de P1 e assim sucessivamente
PDMS – Processamento de Consultas
Ponto P2 (Q, P2)
PDMS Reformulação de Q
M21 M23
110 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Ponto P1 Ponto P4 Ponto P3 (Q1, P1) (Q4, P4) (Q3, P3) M14 Caminho de mapeamentos
PDMS – Processamento de Consultas
A técnica de reformulação de consulta
dependerá do formalismo para definição dos
mapeamentos
View Unfolding (Abordagem GAV)
PDMS – Processamento de Consultas
Exemplo
Ponto P1
Ofertas (código, descrição, organização, dataInício) Ponto P2
OfertasEmprego (código, descrição, empresa, área, data)
112 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
OfertasEmprego (código, descrição, empresa, área, data) Mapeamento entre P2 e P1 (M21)
P2.OfertasEmprego (código, descrição, empresa, data) ⊆
PDMS – Processamento de Consultas
Exemplo
Esquema do Ponto P1
Ofertas (código, descrição,
Esquema do Ponto P2
OfertasEmprego (código,
M21
Ofertas (código, descrição, organização, dataInício)
OfertasEmprego (código,
descrição, empresa, área, data)
Mapeamento local
Relações locais Mapeamento local
PDMS – Processamento de Consultas
Exemplo 1
Consulta submetida em P2:
Q OfertasEmprego(código, ‘Desenvolvimento’, ‘Microsoft’, ‘TI’, ’01/10/2006’)
Passos de execução da consulta:
1. P2 usa os mapeamentos locais para reformular Q de acordo com as relações locais de P2
2. P2 passa Q para P1 de acordo com o mapeamento (M21)
3. A reformulação de consultas é view unfolding
114 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
3. A reformulação de consultas é view unfolding
4. P1 usa os mapeamentos locais para reformular Q’ de acordo com as relações locais de P1
Esquema do Ponto P1
Ofertas (código, descrição, organização, dataInício)
Esquema do Ponto P2
OfertasEmprego (código,
descrição, empresa, área, data)
M21 Q
Q’
PDMS – Processamento de Consultas
Exemplo 1Passos de execução da consulta:
5. Como não existem mais mapeamentos o processo de reformulação é finalizado
6. Em seguida as consultas são avaliadas nas relações locais, seus resultados integrados e retornados para P2
r2
Esquema do Ponto P1
Ofertas (código, descrição, organização, dataInício)
Esquema do Ponto P2
OfertasEmprego(código,
descrição, empresa, área, data)
R R’
PDMS – Processamento de Consultas
Exemplo 2Consulta submetida em P1:
Q Ofertas(código, ‘Desenvolvimento’, ‘Microsoft’, ’01/10/2006’)
Passos de execução da consulta:
1. P1 usa os mapeamentos locais para reformular Q de acordo com as relações locais de P1
2. P1 passa Q para P2 de acordo com o mapeamento (M21)
116 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
21
3. A reformulação de consultas é view rewriting
4. P2 usa os mapeamentos locais para reformular Q’ de acordo com as relações locais de P2
Esquema do Ponto P1
Ofertas (código, descrição, organização, dataInício)
Esquema do Ponto P2
OfertasEmprego(código,
descrição, empresa, área, data)
M21
Q
Q’
PDMS – Processamento de Consultas
Exemplo 2Passos de execução da consulta:
5. Como não existem mais mapeamentos o processo de reformulação é finalizado
6. Em seguida as consultas são avaliadas nas relações locais, seus resultados integrados e retornados para P1
r2’
Esquema do Ponto P1
Ofertas (código, descrição, organização, dataInício)
Esquema do Ponto P2
OfertasEmprego(código,
descrição, empresa, área, data)
R
R’
PDMS – Processamento de Consultas
Em um PDMS um ponto só é acessível através dos
mapeamentos
Com o aumento do número de pontos no sistema o
número de esquemas e mapeamentos aumenta
Caminhos de mapeamentos muito extensos (muitas
118 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Caminhos de mapeamentos muito extensos (muitas
reformulações)
Perda de semântica à medida que as consultas são
repassadas (reformuladas)
PDMS – Processamento de Consultas
Ontologias podem ser usadas para reduzir o
tamanho dos caminhos de mapeamentos
Pontos similares devem ser detectados
“Atalhos” podem ser definidos entre os pontos
Ponto P1 Ponto P3
PDMS – Processamento de Consultas
Otimização
Seguir por todos os caminhos leva a ineficiências
O algoritmo pode seguir muitos caminhos que resultam em
reformulações redundantes (consultas desnecessárias)
A aplicação repetitiva de query unfolding freqüentemente resulta
em consultas redundantes.
120 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
em consultas redundantes.
Evitar a execução de uma consulta de forma redundante
– que retorne um subconjunto de resultados de uma consulta executada anteriormente (query containment)
PDMS – Consistência de Dados
Problema que surge em qualquer cenário onde exista a
duplicação de dados
Principais cenários: caching e replicação
Benefícios da abordagem P2P trazem novos desafios Caching: garantir que os dados da cache de um ponto estejam
consistentes com os dados dos seus pontos vizinhos
Replicação: a propagação de atualizações nos dados torna-se uma
tarefa bastante complexa
Grande número de pontos Indisponibilidade dos pontos
PDMS – Localização de Dados
Difícil de ser prevista
Conectividade dinâmica
Descentralização (conhecimento parcial)
Topologia Híbrida
122 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Pontos descrevem seus dados durante a conexão Metadados armazenados em um repositório central
PDMS – Localização de Dados
Topologia Pura
Não-Estruturada Descoberta de Recursos • Transitividade (mapeamentos) Aproximação de Pontos• Estatísticas e probabilidade para aproximação de pontos “distantes”
• Estatísticas e probabilidade para aproximação de pontos “distantes” Estruturada
Semantic Overlay Networks
Topologia Super-Peer
PDMS – Localização de Dados
Topologia Pura Não-Estruturada
Empregad o
124 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
P 1 P 2 P 3 Empregado Número … Funcionário Código … Emp Código … Vizinhos = {P2} Empregado [P1] = Funcionário [P2] Vizinhos = {P1, P3} Funcionário [P2] = Empregado [P1] Funcionário [P2] = Emp [P3] Vizinhos = {P2} Emp [P3] = Funcionário [P2] Vizinhos = {P2, P3} Empregado [P1] = Funcionário [P2] Empregado [P1] = Emp [P3] Vizinhos = {P2, P1} Emp [P3] = Funcionário [P2] Emp [P3] = Empregado [P1]
PDMS – Localização de Dados
Topologia Super-Peer
Índices semânticos Super Ponto Semântico Super Peer Ponto PontoPonto Ponto Ponto Ponto Semântico
Super
PDMS – Conectividade
Dinâmica e ad-hocDinamismo é menor do que em outros sistemas P2P, e.g.
compartilhamento de arquivos
Importância da alocação eficiente de pontos Mapeamentos entre esquemas
Qualidade dos mapeamentos
126 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Qualidade dos mapeamentos
Processamento de consultas
Escolha dos pontos aptos a responderem consultas
Topologia Pura
Definição dos vizinhos iniciais Topologia Super-Peer
PDMS – Tolerância a Falhas
Substituição de super-peers
EleiçãoFusão de clusters
Servidores de Backup
Servidores de Backup
Alternativa para evitar políticas de substituição Selecionado entre os pontos
Cópia periódica dos metatados (Super-peer Servidor
PDMS – Qualidade de Dados
Aspectos de qualidade
Dados das fontes
Mapeamentos entre esquemas Incompletos
Incorretos
128 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Incorretos
Plano da Consulta
PDMS – Qualidade de Dados
Alguns Critérios:
Disponibilidade Consistência Relevância Completude CompletudeExtensão: conjunto de objetos Intenção: esquema
Cobertura
Principais PDMS
Piazza, Halevy, Univ. of Washington, 2001 PeerDB, National Univ. of Singapore, 2002 XPeer, Univ. Montpellier, 2003
Hyperion, Univ. Toronto/Univ. Ottawa, 2003 SPEED, UFPE, Brasil, 2006
Edutella, Univ. Hannover/Univ. Berlin, entre outras, 2003 Edutella, Univ. Hannover/Univ. Berlin, entre outras, 2003 APPA, Univ. de Nantes, 2004
Rosa-P2P, IME-RJ, Brasil, 2005
Hyperion, Univ. Toronto/Univ. Ottawa, 2003 Mapster, Univ. of Cape Town, 2006
PDMS – Piazza
Instituição U. of Washington Topologia de Rede Pura Não-estruturada Modelo de Dados 132 SBBD'06 - Gerenciamento de Dados em Sistemas P2PModelo de Dados
Relacional, XML, RDF e DAML-OIL Mapeamentos entre Esquemas
Estabelecidos aos pares entre os pontos Processamento de Consultas
Piazza
Proposta
Integrar fontes de dados heterogêneas e distribuídas de
forma escalonável
Pontos participantes
Exportam seu esquema, compartilhado-o com os demais Exportam seu esquema, compartilhado-o com os demais
pontos
Oferecem visões sobre seus dados
Piazza – Exemplo
DB-ProjectsMediationProjects 1
Projects Mediationn
134 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Piazza – Mapeamentos entre Esquemas
Esquema de Mediação GAV GAV Ponto 3 Esquema Armazenado Ponto 1 Ponto 2 Esquema doPeer Esquema do Peer Descrição de Armazenamento Mapeamento entre Peers Esquema Armazenado Descrição de Armazenamento LAV LAV
Referências Bibliográficas [Piazza]
Tatarinov, I., Ives, Z., Madhavan, J., Halevy, A., Suciu, D., Dalvi, N.,
Dong, X., Kadiyska, Y. Miklau, G., and Mork, P. (2003) “The Piazza Peer Data Management Project”. In Proc. of the ACM SIGMOD Record,
Volume 32 , Issue 3, 47-52.
Halevy, A. Y., Ives, Z. G., Mork, P., and Tatarinov, I. (2003) “Piazza:
Data Management Infrastructure for Semantic Web Applications”. In
Proc. of the 12th International World Wide Web Conference (WWW’03), Budapest, Hungary.
136 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Budapest, Hungary.
Halevy, A., Ives, Z., Mork, P., and Tatarinov, I. (2004) “Piazza: Mediation
and Integration Infrastructure for Semantic Web Data”. Journal of Web Semantics, Vol. 1(2), pp. 155-175.
Halevy, A. Y., Ives, Z., Suciu, D., and Tatarinov, I. (2003) “Schema
Mediation in Peer Data Management Systems”. In Proc. of the
International Conference on Data Engineering (ICDE’03). IEEE, pp. 505-516.
PDMS – PeerDB
InstituiçãoNational U. of Singapore Topologia de Rede
Pura Não-estruturada (plataforma BestPeer) Modelo de Dados
Relacional Relacional
Mapeamentos entre Esquemas
Relation-matching (Função de Similaridade) Palavras-chave
Processamento de Consultas Agentes Inteligentes
PeerDB – Arquitetura
Dicionário Local Dicionário de Exportação Sistema de Gerenciamento de Objetos Gerenciador de Cache Ponto PeerDB 138 SBBD'06 - Gerenciamento de Dados em Sistemas P2PInterface
com o Usuário DBAgent
P2P Local de Cache
PeerDB – Arquitetura
1.
Camada P2P
Oferece serviços para compartilhamento de dados e
descoberta de recursos na rede
2.
Camada de Agentes Inteligentes
Master agents e worker agents Master agents e worker agents
3.
Camada de Gerenciamento de Dados
PeerDB – Camada de Gerenciamento de Dados
Sistema de Gerenciamento de Objetos
Possibilita armazenamento, manipulação e recuperação dos
dados no ponto
Dicionário Local
Contém metadados sobre o esquema armazenado no ponto
140 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Dicionário de Exportação
Contém metadados das tabelas compartilhadas Subconjunto dos metadados do Local Dictionary
Gerenciador de Cache
Determina políticas de caching e substituição de dados e
PeerDB – Camada de Agentes
Sistema de Agentes de Banco de Dados (DBAgent)
Oferece o ambiente para os agentes trabalharem
Cada ponto possui um Master Agent que gerencia as
consultas dos usuários
Responsável por “clonar” e despachar Worker Agents Responsável por “clonar” e despachar Worker Agents
para os pontos vizinhos, receber respostas e apresentá-las ao usuário
Monitora as estatísticas e gerencia as políticas de
PeerDB – Mapeamentos entre Esquemas
Determinados em tempo de execução de consulta
Abordagem baseada em Information Retrieval (IR)
Metadados gerados para tabelas/atributos Palavras-chave + descrições
Servem como sinônimos
142 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Servem como sinônimos
Agentes são enviados aos pontos em busca de
associações candidatas
A busca baseia-se na comparação de keywords e
PeerDB – Mapeamentos entre Esquemas
Pontos: P1, P2, P3 e P4 Consulta Q é feita em P1SELECT SeqId, ProteinSeq FROM Kinases
WHERE length > 30
Estratégia relation-matchings Estratégia relation-matchings
P2, P3 e P4 são relevantes para Q P4 só tem associação com nome
da tabela (menor relevância que P2 e P3)
Semanticamente, dados de P2 não
são de interesse de P1 (não são
PeerDB – Processamento de Consultas
Consulta ocorre em duas fases distintas
1. Aplicação da estratégia de relation-matching para localizar tabelas candidatas
Tabelas candidatas são retornadas para o usuário Ponto atualiza suas estatísticas para futuras buscas
144 SBBD'06 - Gerenciamento de Dados em Sistemas P2P
Objetivos
• Eliminar problema de homonímia
• Minimizar o uso banda de rede 2. Execução de consultas
• Consultas são enviadas aos pontos determinados pelo usuário • Respostas são retornadas (e colocadas em cache)
PeerDB – Reconfiguração de Pontos
Políticas para definição de vizinhança
Número de keywords em comum
Quantidade de dados retornados pelos pontos vizinhos Stack distance
Pontos que tenham respondido consultas recentemente, devem Pontos que tenham respondido consultas recentemente, devem
ficar no topo da pilha
Os k primeiros permanecem diretamente conectados
…
K
P4 P3 P2