distribuição e execução de wrappers em ambiente de grid para o codims orientado cristiano...
TRANSCRIPT
Distribuição e Execução de Wrappers em Ambiente de Grid para o CoDIMS
Orientado
Cristiano Biancardi
OrientadorProf. Dr. Alvaro C. P. Barbosa
2
Agenda
Introdução CoDIMS A proposta Trabalhos Relacionados Especificação e Modelagem Testes e Resultados Contribuições Conclusões Trabalhos Futuros
3
Introdução
Aumento da quantidade de dados heterogêneos e distribuídos.
Demanda: necessidade de uma visão integrada dos dados.
Solução: Sistemas de Integração de Dados.
4
Sistemas de Integração de Dados Fornecer a partir de fontes de dados
heterogêneas e distribuídas uma visão única, uniforme e homogênea.
Desenvolvimento de sistemas de integração de dados não é uma tarefa simples devido a complexidade de:
Suportar múltiplos modelos de dados.
Integração semântica dos dados.
Estratégias de processamento de consultas.
Técnicas de controle de transação.
Sistemas Middleware de Integração de Dados
5
Sistema Middleware para Integração de Dados
6
CoDIMS - Configurable Data Integration Middleware System Ambiente para geração de sistemas
configurados de integração de dados para uma aplicação específica.
Características:
Baseado na técnica de framework e em componentes.
Flexível e configurável.
Usa somente os componente necessários e adequados
“What you need is only what you get” (wynwyg).
7
Exemplos de configuração
=> Somente leitura das fontes.
8
=> Atualização da fontes.
Exemplos de configuração (cont.)
9
=> Incorporando um novo componente para uma aplicação específica.
Exemplos de configuração (cont.)
10
CoDIMS – versão atual Uso de RMI ->Web Services. Wrappers implementados internamente ao
componente Acesso aos Dados executando no mesmo servidor Acesso aos
Dados. Sobrecarga do servidor e overhead em sua
execução.
O que são Wrappers?
11
Wrappers Tradução do modelo de dados nativo da
fonte para o modelo de dados Global/Canônico.
Executar mapeamentos e conversões: atributos, unidades.
Comunicação com as fontes de dados
Um wrapper para cada tipo de fonte.
12
SELECT Nome, Sal_reais from tab_global WHERE Sal _reais > 1500
<?xml version=“1.0” encoding=“ISO-8859-1”?><local-plano>< coluna ordem = “0” Nome = “Nome” tabela=“func”/>< coluna ordem = “1” Nome = “Sobrenome” tabela=“func”/>< coluna ordem =“2” Sal_reais =“Salario_dolar” tabela = “func”/><condicao argumentoesquerdo=“Sal_reais” operacao=“maior” argumentodireito=“1500”/></local -plano>
SELECT Nome, Sobrenome, Salario_dolar from funcWHERE Salario_dolar > 625
Nome Sobrenome Salario_dolar
Leonardo Silvestre 950
Vinícius Figueiredo 1000
Rodrigo Bonfá 900
Nome Sal_reais
Leonardo Silvestre 2280
Vinícius Figueiredo 2400
Rodrigo Bonfá 2160
W: gera sub-consulta modelo da fonte
W: comunica com a fonte, encaminha sub-consulta
W: tradução para o modelo global
13
Integração de dados vs. Problemas em aberto
Existem diversos problemas em aberto dentro do cenário de integração de dados.
Como melhorar o desempenho dos sistemas middleware de integração de dados?
14
CoDIMS: Localização dos Wrappers
Alocá-los em um único servidor Alocá-los em um ambiente
distribuído
15
Tecnologias de Computação Distribuída
Enterprise
Cluster
Web Web Services Grid
CORBA, EJB, RMI : problemas com firewalls, fortemente acopladas
Conjunto de hardwares conectados, localizados em um único local e administradas por um gerente local, que é o responsável pelo alocação dos recursos. Novas exigências não suportadas => + máquinas.
Resolvem estes problemas, contudo não são muito versáteis: gerenciamento de recursos, ciclo de vida, notificação etc
Implementam Serviços Grid: podem ser vistos como um evolução de Web Services
16
Grid Aplicações podem utilizar múltiplos recursos
computacionais que podem estar distribuídos geograficamente consistente, transparente e segura
Levando em consideração que cada nó de um Grid irá executar tarefas distintas as aplicações mais adequadas ao Grid são
as que possuem tarefas independentes em qualquer ordem e, a princípio, em
qualquer nó do Grid.
17
Sistemas de integração de dados
podem se beneficiar de um ambiente de Grid para obter um melhor desempenho
pela alocação de wrappers em nós de Grid
são executados de maneira independente
w1
w2
w3w4w5
18
A proposta Reduzir a sobrecarga do servidor Acesso aos Dados.
Desacoplar os wrappers do componente Acesso aos Dados.
Dristibuição/Alocação dos wrappers em um ambiente distribuído.
Execução, em paralelo, dos wrappers.
Execução, em paralelo, das sub-consultas.
Armazenar os conjuntos-resultado proveniente de cada sub-consulta em um ambiente distribuído, permitindo o uso de transações distribuídos durante o processamento do Plano de Execução de Consultas (PEC).
19
Trabalhos Relacionados
Buscam distribuir funcionalidades em ambiente distribuído:
CoDIMS-G OGSA-DAI OGSA-DPQ MOCHA SkyQuery
20
CoDIMS-G É uma instância do CoDIMS. Suporte para aplicações de visualização científica em Grid. Desenvolvido no LNCC (Laboratório Nacional de Computação
Científica). Usa Grid para a execução em paralelo de instância de um
mesmo programa sobre uma grande base de dados. Executa, em paralelo, sub-consultas sobre partes de uma
mesma fonte de dados. De uma maneira mais geral, não efetuar integração de dados
heterogêneos e distribuídos.
21
OGSA-DAI - Open Grid Service Architecture Data Access and Integration É um projeto que visa a construção de um middleware para
ajudar no acesso e integração de dados. Permite a representação dos banco de dados como serviços Grid. Pode ser visto como um wrapper com funções limitadas:
comunicação com as fontes e operações básicas de banco de dados.
Não possui as funcionalidades de tradução entre modelos, conversões, mapeamentos etc.
22
OGSA-DQP - Open Grid Service Architecture - Distributed Query Processor É um middleware de integração de dados. Monolítico e integração de esquema e resolução de conflitos
não são suportadas. Plano de execução de consulta gerado pelo OGSA-DPQ é
estático os operadores do plano são alocados estaticamente em nós do
Grid. Não é possível gerar um novo plano e efetuar a re-alocação
dos seus operadores.
23
MOCHA - Middleware based On a Code sHipping Architecture Middleware para integração de dados. Monolítico e integração de esquema e resolução de conflitos não são
suportadas. Utiliza a idéia de implantação automática de código em sites
remotos através dos DAPs (Data Access Provider). DAP para cada tipo de fonte. Não traduz modelos, mapeamentos e
não faz conversões.
24
SkyQuery Middleware para integração de dados da astronomia. Cada SkyNode encapsula um banco de dados distinto. SkyNode não faz acesso a outro banco de dados. Não traduz modelos, mapeamentos e não faz conversões.
25
No que este trabalho se difere?
Características do CoDIMS: flexibilidade, configuração.
Integração de dados fontes de dados heterogêneos e distribuídos.
Alocação de serviços a partir de cada nó é possível criar instância de
diferentes serviços. Funcionalidades de wrapper: tradução entre
modelos, conversões, mapeamentos etc.
26
Especificação Funcional
27
Arquitetura - (WGC)
28
Funcionalidades de um WGC (Componente Wrapper-Grid)
publicar os serviços do componente; encapsular as funcionalidades básicas de um
wrapper em um Grid Wrapper Service - WS; gerenciar o ciclo de vida de instâncias de Grid
Wrapper Service; notificar o componente Acesso aos Dados quando
uma sub-consulta for finalizada; armazenar o conjunto-resultado gerado por uma
sub-consulta; processar sub-consulta, executar funções; outros serviços podem ser adicionados para
aplicações específicas.
29
WGC no Grid
Cada WGC possui todos os WSs implantados
30
Exemplo de Execução de Consulta
31
32
Implementação
Java
Apache Soap-RPC
UML
33
Testes e Resultados
Infra-estrutura
34
Centralizado
Wrappers compartilhando recursos computacionais em uma mesma máquina.
CAMBURI
35
Distribuído - Grid Wrappers executando
em máquinas distribuídas.
36
Gráfico de comparação entre as duas abordagens: Centralizada concorrente; Distribuída. Fontes de dados Bancos relacionais.
37
Gráfico de comparação entre as duas abordagens: Centralizada concorrente; Distribuída. Conjuntos resultados de tamanho fixos.
38
Contribuições
Em geral, as contribuições deste presente trabalho para a integração de dados são:
execução em paralelo das sub-consultas a serem encaminhadas a cada fonte de dados;
execução em paralelo dos wrappers, através da alocação destes em um ambiente distribuído, mais precisamente alocação de instâncias Wrapper-Services em nós de um Grid;
disponibilização dos conjuntos-resultado, oriundos das fontes de dados, em um ambiente distribuído, proporcionando a execução distribuída das operações internas do PEC (união, junção etc.).
39
Contribuições (cont.)
Com relação ao projeto CoDIMS, as principais contribuições estão relacionadas a:
redução da carga do servidor Acesso aos Dados;
especificação e incorporação da camada de Wrapper-Grid e criação de uma infra-estrutura de Grid;
implementação de um protótipo com relação ao estudo de caso;
implementação de uma fila para troca de mensagens entre os componentes Processamento de Consultas (MEC) e o componente Acesso aos Dados, permitindo a execução assíncrona e distribuída dos wrappers e do PEC.
40
Conclusões
Aplicações onde os conjuntos-resultado provenientes das fontes de dados são pequenos
versão do CoDIMS com wrappers centralizados se mostra satisfatória.
Aplicações onde os conjuntos-resultado são razoavelmente grandes, e tendem a crescer mais
a nova abordagem do CoDIMS apresentada neste trabalho é mais interessante, pois o tempo de resposta é consideravelmente menor.
41
Trabalhos Futuros
Realocação de instâncias. Envio de código específico da aplicação. MEC distribuída. Efetuar testes mais elaborados. Novos wrappers. Implementação do CoDIMS multi-
usuário. Envio de código de wrapper. Globus Toolkit 4.