Data Recovery for Web Applica3ons



Documentos relacionados
Principais objectivos

Conceitos de Banco de Dados

ENHANCED SERVER FAULT- TOLERANCE FOR IMPROVED USER EXPERIENCE. André Esteves nº3412 David Monteiro

Softwares Aplicativos Banco de Dados

? O SQL SERVER é um sistema de gerenciamento de banco de dados relacional que foi desenvolvido inicialmente pela Microsoft em parceria com a Sybase.

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

PROGRAMA DE PÓS-GRADUAÇÃO POSEAD. Curso Banco de Dados. Resenha Crítica: Backup e Recovery Aluno: Wilker Dias Maia

Desenvolvimento de uma Aplicação WEB para monitorização de BD Oracle

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

Disciplina de Banco de Dados Introdução

Uma Base de Dados é uma colecção de dados partilhados, interrelacionados e usados para múltiplos objectivos.

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

GBC043 Sistemas de Banco de Dados. Introdução. Ilmério Reis da Silva UFU/FACOM

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

Engenharia de Software. Enunciado da Segunda Parte do Projecto

Roteiro. BCC321 - Banco de Dados I. Conceitos Básicos. Conceitos Básicos. O que é um banco de dados (BD)?

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Persistência e Banco de Dados em Jogos Digitais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Consistência Eventual - Sistemas Distribuidos e Tolerância a Falhas

Prof.: Clayton Maciel Costa

TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO

Arquitetura de Banco de Dados

Introdução Banco de Dados

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

INTRODUÇÃO. Diferente de Bando de Dados

Disciplina: Tecnologias de Banco de Dados para SI s

BANCO DE DADOS AULA 02 INTRODUÇÃO AOS BANCOS DE DADOS PROF. FELIPE TÚLIO DE CASTRO 2015

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos

Prof. Luiz Fernando. Unidade III ADMINISTRAÇÃO DE

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. DCC-IME-USP

SISTEMA GERENCIADOR DE BANCO DE DADOS

Projeto das Disciplinas de Sistemas Operacionais de Redes e Projeto de Redes

Virtualização e Consolidação de Centro de Dados O Caso da UTAD António Costa - acosta@utad.pt

Bancos de Dados. Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Mestrado em Segurança da Informação e Direito no Ciberespaço. Segurança da informação nas organizações Gestão de Configuração

Escola Superior de Tecnologia de Setúbal. Projecto Final

Prof. Marcelo Machado Cunha

trigger insert, delete, update

Modelos. Comunicação com clientes

1. CONCEITOS BÁSICOS DE BD, SBD E SGBD

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

FACULDADE INTEGRADAS DE PARANAÍBA ADMINISTRAÇÃO DE EMPRESAS. Bancos de Dados Conceitos Fundamentais

Crash recovery é similar ao instance recovery, onde o primeiro referencia ambientes de instância exclusiva e o segundo ambientes parallel server.

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Gestão por Processos ISO 9001: 2000

Roteiro 2 Conceitos Gerais

Banco de Dados. Maurício Edgar Stivanello

Hugo Pedro Proença, 2007

Gestão dos Níveis de Serviço

Engenharia de Software e Sistemas Distribuídos. Enunciado Geral do Projecto

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

DATA WAREHOUSE. Introdução

Aplicação Prática de Lua para Web

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

Sistemas Informáticos

Fundamentos dos Sistemas de Informação Organização de Dados e Informações

Gestão de Redes e Sistemas Distribuídos

Sistema de Bancos de Dados. Conceitos Gerais Sistema Gerenciador de Bancos de Dados

Forms Authentication em ASP.NET

Procedimento de Gestão PG 02 Controlo de Documentos e Registos

Prevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki

ESTRUTURA DE SERVER Lílian Simão Oliveira

Seu manual do usuário SONY VAIO VPCS12F7E

Gerenciamento de Transações

Manipulação de Dados em PHP (Visualizar, Inserir, Atualizar e Excluir) Parte 2

Sistemas de Bases de Dados

Banco de Dados I. Prof. Bal. Emerson Meneses Inocente

VORONOI STATE MANAGEMENT FOR PEER-TO-PEER MASSIVELY MULTIPLAYER ONLINE GAMES

Roteiro. Conceitos e Arquitetura de Sistemas de Banco de Dados. Conceitos e Arquiteturas de Sistemas de Banco de Dados. BCC321 - Banco de Dados I

Projeto Disciplinar de Infra-Estrutura de Software SILC - SISTEMA DE LOCAÇÃO E CONTROLE

Banco de Dados Oracle. Faculdade Pernambucana - FAPE

O Termo SIG é aplicado para sistemas que realizam o tratamento computacional de dados geográficos

UNIVERSIDADE FEDERAL DO PARANÁ - UFPR Bacharelado em Ciência da Computação

Introdução à Banco de Dados. Definição

Módulo 6: Linguagem de Programação IV 6.1. Introdução 6.2. Bases de Dados Visão Estrutural SGBD: Sistema de Gestão de Bases de Dados

3 SCS: Sistema de Componentes de Software

Engenharia de Software Sistemas Distribuídos

Evolução. Tópicos. Bancos de Dados - Introdução. Melissa Lemos. Evolução dos Sistemas de Informação Esquemas Modelos. Características de SGBDs

Os dados no MySQL são armazenado em tabelas. Uma tabela é uma colecção de informação relacionada e consiste em colunas e linhas.

Anexo I Formulário para Proposta

INTRODUÇÃO E CONCEITOS BÁSICOS. Prof. Ronaldo R. Goldschmidt

Porquê o DNSSEC? O que é o DNSSEC? Porque é o DNSSEC necessário? Para contribuir para uma Internet Segura.

USANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE

INTRODUÇÃO BANCO DE DADOS. Prof. Msc. Hélio Esperidião

Transcrição:

Data Recovery for Web Applica3ons Istemi Ekin Akkus, Ashvin Goel, University of Toronto 2010 IEEE/IFIP Interna<onal Conference on Dependable Systems & Networks (DSN) Sistemas Distribuídos e Tolerância a Falhas João Pereira m3873 Tiago Simões m3965

Contexto Actualmente, as aplicações Web guardam a informação no lado do servidor. Os backups podem resolver perdas de dados, mas não diagnos<ficam o evento causador. O objec<vo é propor um sistema de recuperação que ajude os administradores na recuperação de dados e iden<ficação dos eventos responsáveis. Our results show that our system enables recovery from data corrup;on without loss of cri;cal data and incurs small run;me overhead.

Introdução A construção de aplicações Web é cada vez mais aberta, possibilitando integrações de plugins de terceiros. Consequentemente, a preocupação com o controlo de tais extensões é cada vez maior. A perda de dados pode ser rever<da com os backups, mas as informações posteriores aos mesmos têm de ser introduzidas manualmente.

Introdução O sistema de recuperação proposto não depende da aplicação web. Assim é independente e imune às falhas ocorridas na mesma. Os principais objec<vos do sistema são: 1. Permi<r que os administradores diagnos<quem as falhas que corromperam os dados; 2. Permi<r a recuperação selec<va dos dados sem comprometer o resto da aplicação.

Introdução A principal contribuição deste trabalho é a análise de dependências na recuperação de sistemas par aplicações web. Foi implementado um protó<po em PHP e MySQL, testado em sistemas como o Wordpress e Drupal.

Modelo da Aplicação Uma aplicação web normalmente consiste em três camadas: 1. Apresentação; 2. Aplicação Lógica; 3. Base de Dados. O sistema proposto Ora parodo das seguintes capacidades das aplicações web: Informação persistente armazenada na BD para permi<r acesso concorrente, produzindo logs de acesso aos mesmos; As linguagens de programação têm mecanismos próprios de controlo de excepções, etc; Os web servers tratam cada pedido de forma independente, criando um processo independente, criando assim isolamento.

Considerações Prévias O sistema proposto assume que: O SGBD e a linguagem de programação usada não contém bugs; A corrupção dos dados está na camada da BD, resultando de bugs nas restantes camadas; Se a aplicação não usa transacções, cada query é processada separadamente; As transações da BD podem ser replicadas correctamente, através de um nível de isolamento.

Visão Geral do Sistema O sistema consiste em: Componente de monitorização on- line; Dois componentes de análise e recuperação de dados após a corrupção ser iden<ficada. Os componentes de análise e recuperação são usados após iden<ficada uma corrupção. Os mesmos usam dados recolhidos na fase de monitorização.

Componente de Monitorização Responsável por correlacionar requests ao longo das camadas da aplicação; De forma resumida, uma request é transformada numa transação durante a recuperação; Esta transformação é baseada na análise do log permi<ndo o mapeamento entre requests e transacções da BD.

Componente de Análise Antes da análise, o estado actual dos dados é guardado; Usa dados recolhidos durante a monitorização, derivando três Opos de dependência de dados nas diversas camadas: 1. Dependências da BD; 2. Dependências da Aplicação; 3. Dependências do Cliente.

Componente de Análise Dependências da BD Ajudam na correlação das requests quanto às operações baseadas na BD;

Componente de Análise Dependências da Aplicação Existe a possibilidade de serem geradas falsas dependências, sendo que uma request pode envolver múl<plas queries que podem não ter nenhuma dependência; É usada uma técnica chamada dynamic tain;ng para determinar dependências da camada lógica de aplicação relacionadas com uma determinada request, eliminando assim falsas dependências.

Componente de Análise Dependências do Cliente Por fim, o componente de análise usa dependências do lado do cliente através das requests Por exemplo, os cookies de sessão iden<ficam todas as requests associadas com uma sessão de login. Providencia por exemplo, a possibilidade de um administrador reverter todas as acções tomadas numa dada sessão.

Componente de Recuperação Objec<vo é disponibilizar ferramentas que facilitem a recuperação. Providenciam informação que permitem a iden<ficação das requests responsáveis pelas falhas. Depois da acção de análise, este componente usa a informação do log da BD e da request para gerar transacções compensatórias.

Implementação Foi implementado um protó<po com PHP e MySQL. A maioria do código diz respeito ao componente de recuperação. As alterações efectuadas à estrutura do PHP e MySQL são residuais, facilitando o port para outras tecnologias também. A principal alteração ao MySQL foi a modificação do JSQLParser.

Avaliação dos Resultados PolíOcas de Dependência A avaliação de resultados tem por base a comparação da eficácia de recuperação segundo as seguintes polí<cas: 1. Request- Row: Assume que uma request é tainted se lê uma linha tainted da BD. 2. Program- Row: Durante uma request todas as variáveis que usam linhas tainted são marcadas como tainted. 3. Database- Row: Propaga taints quando uma query lê uma linha tainted e actualiza outras linhas. 4. Program- Field: Similar a 2. mas taints são armazenadas na BD numa granularidade do campo. 5. Database- Field: Similar a 3. mas taints são armazenadas na BD numa granularidade do campo.

Avaliação dos Resultados ExacOdão da Recuperação A exac<dão da recuperação, com base nas poli<cas definidas, é medida através da ac<vação de 5 bugs reais em aplicações web, como o Wordpress, Drupal e Gallery2. A escolha dos bugs foi feita quando no mesmo: Os dados foram corrompidos e só podem ser reparados com restauro do backup; Os bugs estão relacionados com a camada de aplicação.

Avaliação dos Resultados ExacOdão da Recuperação Para avaliação, foram definidas acções de recuperação correctas, como sendo as acções que resolverão a corrupção dos dados. Para tal foram definidas 3 métricas: Determinação das inconsistências aplicacionais responsáveis pela falha; Medição de falsos posi<vos (marcados como responsáveis mas sem culpa); Medição de falsos nega<vos (não marcados como responsáveis quando o deveriam ser).

Avaliação dos Resultados ExacOdão da Recuperação

Avaliação dos Resultados ExacOdão da Recuperação

Avaliação dos Resultados Conclusões Estes resultados mostram que, as poli<cas ao nível da BD tendem a ter menos falsos posi<vos que os outros níveis: Assim um administrador pode comparar os outputs da BD e determinar as melhores acções correc<vas a tomar. Um dos maiores desafios é determinar correctamente as dependências entre requests; O proto<po implementado permite mostrar que a funcionalidade de recuperação de dados pode ser ob<da com pouca sobrecarga e pouca modificação das aplicações.