420 likes | 502 Views
Orientado Cristiano Biancardi Orientador Prof. Dr. Alvaro C. P. Barbosa. Distribuição e Execução de Wrappers em Ambiente de Grid para o CoDIMS. Agenda. Introdução CoDIMS A proposta Trabalhos Relacionados Especificação e Modelagem Testes e Resultados Contribuições Conclusões
E N D
Orientado Cristiano Biancardi Orientador Prof. Dr. Alvaro C. P. Barbosa Distribuição e Execução de Wrappers em Ambiente de Grid para o CoDIMS
Agenda Introdução CoDIMS A proposta Trabalhos Relacionados Especificação e Modelagem Testes e Resultados Contribuições Conclusões Trabalhos Futuros
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.
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
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).
Exemplos de configuração => Somente leitura das fontes.
Exemplos de configuração (cont.) => Atualização da fontes.
Exemplos de configuração (cont.) => Incorporando um novo componente para uma aplicação específica.
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?
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.
Nome Nome Sobrenome Sal_reais Salario_dolar Leonardo Silvestre Leonardo Silvestre 2280 950 Vinícius Vinícius Figueiredo Figueiredo 2400 1000 Rodrigo Bonfá Rodrigo Bonfá 2160 900 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> W: gera sub-consulta modelo da fonte SELECT Nome, Sobrenome, Salario_dolar from func WHERE Salario_dolar > 625 W: comunica com a fonte, encaminha sub-consulta W: tradução para o modelo global
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?
CoDIMS: Localização dos Wrappers • Alocá-los em um único servidor • Alocá-los em um ambiente distribuído
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
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.
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 w5 w4 w3 w2 w1
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).
Trabalhos Relacionados Buscam distribuir funcionalidades em ambiente distribuído: CoDIMS-G OGSA-DAI OGSA-DPQ MOCHA SkyQuery
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.
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.
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.
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.
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.
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.
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.
WGC no Grid • Cada WGC possui todos os WSs implantados
Implementação • Java • Apache Soap-RPC • UML
Testes e Resultados Infra-estrutura
Centralizado CAMBURI • Wrappers compartilhando recursos computacionais em uma mesma máquina.
Distribuído - Grid • Wrappers executando em máquinas distribuídas.
Gráfico de comparação entre as duas abordagens: Centralizada concorrente; Distribuída. Fontes de dados Bancos relacionais.
Gráfico de comparação entre as duas abordagens: Centralizada concorrente; Distribuída. Conjuntos resultados de tamanho fixos.
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.).
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.
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.
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.
e-mail: cbiancardi@inf.ufes.br Página: http://codims.lprm.inf.ufes.br/ Perguntas