BKPML: Uma Proposta para Padronização e Interoperabilidade de Backup de Dados Namedin P. T. Júnior Roberto S. M. Barros CIN - Universidade Federal de Pernambuco Recife, Brasil Email: [email protected] CIN - Universidade Federal de Pernambuco Recife, Brasil Email: [email protected] Resumo—O Atual modelo de negócios de uma empresa moderna está cada vez mais dependente das tecnologias de informação. Com isso, é necessário manter os dados protegidos através de uma cópia segurança (backup). Esta dependência gera grandes concorrências entre fornecedores de sistemas, que, a cada dia, lançam novidades propondo inúmeras vantagens competitivas. Por esse motivo, é cada dia mais comum presenciar empresas que adotam mais de um SGBD para armazenamento dos dados, gerando ambientes heterogêneos e dificultando a interoperabilidade dos dados. SGBDS de mercado utilizam arquivos de backup em formatos proprietários impossibilitando que outros SGBDS possam manipular esses arquivos. Esse artigo propõe o desenvolvimento de uma estrutura, baseada em XML, para padronizar arquivos de backup, denominada BKPML. Seu objetivo é remover a dependência dos arquivos de backup de seu ambiente de origem, possibilitando que qualquer SGBD possa utilizar esses arquivos para manipulação dos dados, mantendo a integração entre os sistemas e a interoperabilidade dos dados. Palavras chave - ambientes heterogêneos, interoperabilidade, padronização, XML, SGBD, backup de dados. I. I NTRODUÇ ÃO Os Sistemas de Informação estão se tornando o elemento central do processo inovador, capaz de diminuir, unir e eliminar várias de suas etapas, e trazer a interação com clientes para um patamar mais elevado de qualidade, serviço e padronização, além de permitir a detecção de macro tendências com extrema velocidade [18] [21]. De acordo com [23], as constantes necessidades das empresas para adoção de sistemas podem ocorrer de acordo com as suas necessidades ou até mesmo sob a crescente demanda de novos produtos apoiados por tecnologias mais modernas que oferecem inúmeras vantagens competitivas em relação ao mercado. Neste cenário de crescentes evoluções tecnológicas e necessidades empresarias, é cada vez mais comum presenciar empresas que adotam diversos sistemas de informação para atender um ou mais setores como administrativo, financeiro, contábil entre outros. Sistemas muitas vezes apoiados por diferentes Sistemas Gerenciadores de Banco de Dados (SGBDS), desenvolvidos por diferentes fornecedores e sob diferentes tecnologias. De acordo com [16], os arquivos gerados por esses sistemas são destinados a bloquear a informação, evitando o acesso aos dados por outros sistemas, dificultado ou até mesmo impossibilitando a interoperabilidade entre os dados, levando ao caótico cenário dos ambientes heterogêneos. De uma forma geral, os problemas relacionados à interoperabilidade de dados estão fortemente relacionados aos arquivos em formatos proprietários. Em contrapartida, temos os formatos abertos destinados a manter a transparência dos dados e suas especificações disponı́veis publicamente, assim como os formatos Java Script Object Notation (JSON) [9] e Commaseparated values (CSV) [2]. Extensible Markup Language (XML) [25] neste contexto é utilizada para desenvolvimento de padrões/formatos abertos de acordo com as necessidades existentes. Tendo em vista as dificuldades enfrentadas para interoperabilidade de dados de diferentes SGBDS e os problemas oriundos de formatos proprietários, este artigo apresenta a backup Markup Language (BKPML), uma proposta de formato aberto para backup de dados de SGBD, baseada na linguagem XML. Esse padrão tem por objetivo desvincular a dependência dos dados e objetos mantidos nos SGBD de seu ambiente de origem, possibilitando que os mesmos possam ser manipulados por diversos SGBD, ou até mesmo serem transferidos para formatos secundários como CSV, JSON, XML, YAML Ain’t Markup Language (YAML) [28] e XLS. Para implementação desta proposta, foi necessário o desenvolvimento de uma ferramenta denominada BKPML Manager, responsável pela configuração, geração, restauração e migração de backups de dados e objetos em formato BKPML para diversos SGBDS. Para evitar incompatibilidade entre sistemas, a BKPML Manager foi desenvolvida para ser acessada pela Internet, utilizando para isso um navegador como Internet Explorer [8] ou Mozilla Firefox [5]. No final do desenvolvimento, foram realizados testes em um ambiente real para testar as funcionalidades da ferramenta, o tempo levado para backup, restauração e migração de dados neste formato, bem como verificar a aceitabilidade deste formato por terceiros. O restante deste artigo está dividido em quatro seções. A seção 2 destina-se a apresentar os padrões e frameworks utilizados para desenvolvimento, manipulação e validação do padrão BKPML. Na seção 3 será apresentado o padrão BKPML bem como a taxonomia desenvolvida para o mesmo. A seção 4 destina-se a apresentar a ferramenta BKPML Manager e os resultados obtidos dos testes realizados em um ambiente real. Por fim, a seção 5 apresenta as conclusões. II. PADR ÕES E frameworks UTILIZADOS Esta seção destina-se a apresentar os padrões e frameworks utilizados para desenvolvimento, manipulação e validação do formato BKPML. A BKPML é baseada na linguagem XML, no entanto, foram utilizados alguns padrões para facilitar o uso deste novo formato. O padrão utilizado para desenvolvimento da taxonomia da BKPML foi o XML Schema, que é uma linguagem baseada em XML para definição de regras de validação de documentos. A utilização deste padrão garante que os documentos gerados sigam as regras necessárias para desenvolvimento dos mesmos [26]. O padrão Document Object Model (DOM) [24] é uma interface que provê uma série de objetos para manipulação de documentos XML. DOM foi utilizado para geração e leitura dos arquivos BKPML, para isso, foi utilizado o framework DOM4J [4] que é uma Aplication Program Interface (API) que implementa o padrão DOM em Java. A validação da estrutura BKPML ficou sob responsabilidade do Xerces [27], que é um framework desenvolvido pela APACHE que implementa os padrões DOM e SAX [19] para manipulação e validação de arquivos XML. A grande vantagem da utilização deste framework é que este implementa métodos que possibilitam a validação de um documento XML a partir do seu XML Schema sem grandes esforços. A. Taxonomia da BKPML A taxonomia define as regras utilizadas para formação dos documentos BKPML, assim como os elementos e tipos de dados obrigatórios para representação dos objetos que compõem essa estrutura, bem como as relações entre cada elemento que resultam no objeto final. A taxonomia da BKPML é composta de um dicionário, que fornece as definições padrões para representação dos objetos e dados, construı́dos através de uma estrutura hierárquica. O desenvolvimento da estrutura geral da BKPML e o grau de relação entre cada um dos objetos, foram baseados na organização utilizada pelos SGBDS. O primeiro elemento desta estrutura, ou elemento raiz, foi denominado como BKPML. Este elemento contém as informações gerais dos arquivos de backup em formato BKPML como nome do arquivo e a data de geração. SchemaDB é o segundo elemento que compõe a estrutura BKPML, ele é responsável por guardar as informações referentes ao SGBD e ao esquema onde se encontram os objetos a serem recuperados. As informações/atributos que compõem esse elemento são: nome do esquema e nome do SGBD de origem. O elemento Objects é responsável por manter todos os objetos suportados pela BKPML. A Figura 1 apresenta a estrutura hierárquica da BKPML. III. O PADR ÃO BKPML A BKPML é uma linguagem eletrônica, baseada em XML, que objetiva desvincular a dependência dos dados mantidos em arquivos de backup de formato proprietário. A BKPML, com o apoio de uma aplicação, possibilita que os arquivos em formato BKPML possam ser restaurados em qualquer SGBD. Outra vantagem é a possibilidade de transformar os arquivos BKPML em arquivos secundários. De uma forma geral, a BKPML facilita a manipulação dos dados de acordo com as necessidades do usuário. SGBDS proprietários como oracle [15], sqlserver [20], mysql [13], entre outros, realizam as operações de armazenamento e restauração dos dados em plataformas proprietárias. Esses dados, quando transferidos para arquivos de backup em formato fechado, só poderão ser restaurados no seu ambiente de origem, não podendo ser manipulados em outros ambientes. Com arquivos em formato BKPML, esses dados tornamse independentes de aplicação, o que facilita a manipulação dos dados por outros sistemas. É importante ressaltar que as vantagens propostas pela BKPML serão obtidas a partir do uso da ferramenta BKPML Manager, a ser vista mais adiante. Restaurar ou migrar dados para diversos SGBDS a partir dos arquivos de backup possibilita a redução dos custos envolvidos em tais processos, pois, com a padronização desses arquivos, os dados poderão ser restaurados diretamente para o SGBD de destino. Além disso, é importante ressaltar que as propostas existentes para padronização de dados, como em [16], limitamse apenas a objetos do tipo tabela. Já a BKPML suporta, além de objetos de tipo tabela, objetos como: view, grant, index, trigger e method. Figura 1. Estrutural da BKPML A estrutura da BKPML é composta por nove elementos principais. Além dos elementos supracitados, os elementos que representam os objetos suportados pela estrutura são: TableObject, IndexObject, ViewObject, GrantObject, TriggerObject e MethodObject. O elemento TableObject é responsável por manter as informações referentes aos dados e metadados de um objeto tabela. Este elemento é composto por um atributo e dois elementos principais. O atributo name é responsável por manter o nome da tabela copiada, o elemento Columns é responsável por manter as informações referentes à estrutura da tabela como: nome da coluna, tipo de dados, tamanho da coluna, entre outras, e o elemento Records é responsável por manter os dados pertencentes a tabela copiada. É importante ressaltar que, para melhor organização dos dados, os mesmos são representados utilizando o padrão JSON, ou seja, cada linha de registro é representada nesta estrutura como um objeto JSON. Isso facilita a recuperação e processamento das informações de forma rápida e simples. O elemento IndexObject é responsável por manter os dados básicos que compõem a estrutura padrão deste objeto. A sintaxe deste tipo de objeto pode variar de SGBD para SGBD, por esse motivo, os elementos que compõe essa estrutura foram baseados em sua sintaxe básica, comum a qualquer banco de dados. Este elemento é composto por dois atributos e três elementos. Os atributos kind e type referem-se a que tipo de ı́ndice (index, primary, unique) se deseja criar, e qual o método de indexação do ı́ndice (Btree, Hash, Rtree). Já os elementos index name, index table e index field mantêm as informações básicas que compõem esse objeto. O elemento ViewObject possui a sintaxe mais simples da estrutura, esta estrutura é composta por dois elementos. O primeiro é o elemento name, que representa o nome da visão copiada, e o elemento query, que se refere à consulta a ser apresentada pela visão quando executada. O elemento GrantObject define privilégios para acesso de um objeto a um usuário ou grupo. A estrutura deste objeto é composta de três elementos, são eles: privilege, object e user. O elemento privilege mantém os privilégios concedidos, esse elemento pode suportar mais de um privilégio. O elemento object refere-se ao objeto a ser concedido o privilégio. O elemento user mantém o nome do usuário ou grupo que receberá o privilégio. O elemento TriggerObject mantém os dados básicos para criação de um gatilho a ser associado a uma tabela, que será disparado antes ou depois de um determinado evento. A estrutura deste objeto é composta por cinco elementos que a definem, são eles: name, que representa o nome do gatilho, time, que é o tempo em que o gatilho será executado, event, que define qual evento está relacionado a este gatilho, object, que se refere à tabela a qual o gatilho será armado, e body, que se refere ao bloco de comandos a ser executado pelo gatilho quando disparado. O elemento MethodObject consiste em unificar duas estruturas: função e procedimento. Esta estrutura é composta por quatro elementos name, parameter, result e body. O elemento name representa o nome do objeto a ser mantido pela estrutura. O elemento parameter refere-se aos parâmetros pertencentes a esse objeto. O elemento result, refere-se ao retorno de valores e o elemento body, refere-se ao bloco de comando a ser executado pelo método. Além desses elementos, esta estrutura possui o atributo type, responsável por definir o tipo de objeto mantido, procedimento ou função. A Figura 2 apresenta o exemplo de um documento em formato BKPML. Maiores detalhes sobre o desenvolvimento da taxonomia da BKPML, bem como de todos os objetos que a constituem, estão disponı́veis em [14]. Além disso, o código completo da taxonomia da BKPML também está disponı́vel [1]. Figura 2. Documento em formato BKPML IV. E STUDO DE CASO - BKPML Manager Para melhor usufruir das vantagens oferecidas pela BKPML, foi necessário o desenvolvimento de uma ferramenta responsável por gerenciar as principais funcionalidades propostas pela BKPML. Tais funcionalidades são: gerar backups de dados em formato BKPML, restaurar/migrar esses arquivos para diversos SGBDS, e transformar os arquivos BKPML para arquivos secundários. Além disso, esta ferramenta facilita o uso destas funcionalidades através de uma interface simples e de fácil utilização. Para permitir a implementação destas funcionalidades, foi necessário o desenvolvimento de um módulo de cadastros de todas as informações básicas necessárias para geração da estrutura da BKPML e dos objetos suportados por ela. Esta seção se dispõe a apresentar de forma sucinta os principais cadastros necessários para se utilizar as principais funcionalidades, conforme descritas acima. Tais cadastros foram divididos em SGBDS, armazenamento, mapeamento, tipos por SGBD e objetos por SGBD. O cadastro de SGBDS destina-se a relacionar todos os SGBDS que serão utilizados nas funcionalidades de backup, restauração e migração. O cadastro de armazenamento é utilizado para listar todos os repositórios de dados que serão utilizados para armazenar os arquivos BKPML. Esses repositórios são classificados em local ou em nuvens. No tipo local os dados são armazenados em servidores locais. Já ô tipo em nuvens é utilizado o serviço Simple Storage Service (S3) da Amazon Webservices para armazenamento dos dados. O cadastro de mapeamento é utilizado para informar à ferramenta onde buscar os metadados dos objetos em um determinado SGBD. Os cadastros de tipos e objetos por SGBD são utilizados apenas para validação dos dados da BKPML. A. arquitetura A BKPML Manager é baseada em uma arquitetura Web, composta por um cliente web gráfico responsável por enviar requisições para o servidor de aplicação (Servlet Container) TOMCAT6.0 [22], e se comunicar com um banco de dados MYSQL5.0 através do framework hibernate3.0 [7], responsável pelo gerenciamento das requisições de acesso aos dados da BKPML Manager. Por utilizar uma arquitetura Web, foi utilizado o padrão Model View Controller (MVC) [7] para dividir a arquitetura do projeto em camadas, facilitando o uso e manutenção dos mesmos. A camada modelo é responsável por manter todos os modelos dos objetos (classes bean) utilizados pela BKPML. Como a BKPML Manager utiliza o framework hibernate3.0, estes modelos passam a ser conhecidos como classes de entidade. A camada de visão é responsável por manter e gerenciar as telas de entrada e saı́da de dados. Nesta camada, foram utilizadas as tecnologias Java Server Page (JSP) [10], Hipertext Markup Language (HTML) [12] para formatação e apresentação dos dados, e a JavaServer Pages Standard Tag Library (JSTL) [11] para comunicação entre as camadas de visão e controle. A camada de controle mantém toda a lógica utilizada nas funcionalidades de backup, restauração, transformação e migração de dados. Para desenvolvimento deste módulo, foram utilizados os padrões de projeto Decorator [6], Strategy [6] e Data Access Object (DAO) [3] para organizar os processos e facilitar e reutilização das funcionalidades quando necessário. O padrão Decorator foi utilizado para facilitar a utilização do processo de geração dos arquivos de backup em formato BKPML, o padrão Strategy foi utilizado no processo de transformação dos dados para arquivos secundários, e o padrão DAO foi utilizado para organizar o acesso aos dados de forma padronizada. A arquitetura da BKPML Manager é dividida em três camadas, conforme Figura 3. possui todas as informações necessárias para isso. Para o cadastro das ações, deve-se informar o SGBD e o objeto a ser copiado, o repositório dos dados, a data e hora de execução, e a frequência de execução do backup. No caso do objeto ser do tipo tabela, faze-se necessário informar também a query para extração dos dados. Após isso, o cadastro dos dados poderá ser confirmado. A Figura 4 apresenta a tela de cadastro de ações. Figura 4. tela de cadastro de ações de backup A tela de cadastro de ações não é responsável pela execução dos backups de dados, mas sim pelo cadastro dos mesmos. Quando o cadastro de uma ação é finalizado, o mesmo é enviado para uma lista de backups a serem executados pela funcionalidade de backup de dados. A tela de execução de backup é constituı́da apenas de uma lista de ações que poderão ser executadas mediante o clique no botão de execução, disponı́vel para cada elemento da lista. Quando executadas, essas ações são submetidas ao ciclo de processamento de backup, composto pelos seguintes passos. O processo gerar BKPML solicita as informações de dados e metadados de um objeto, e gera a estrutura BKPML de acordo com a taxonomia definida. Após isso, o processo de criptografia e compactação dos dados são executados. E por fim, o hash do arquivo final é extraı́do e o arquivo enviado para o local de armazenamento selecionado. C. Restauração e transformação de arquivos BKPML Figura 3. Arquitetura da BKPML Manager B. Cadastro e execução de backup de dados Para dar inı́cio ao processo de backup de dados, deve-se primeiro cadastrar todas as ações de backup para os objetos desejados. Depois, a tela de execução de backup de dados deverá estar preenchida com a lista de todos os backups disponı́veis para execução. No cadastro de ações são realizadas todas as configurações de um backup de dados. Em resumo, uma ação é um backup não executado, uma vez que o mesmo O processo de restauração dos dados é responsável por recuperar os dados de um arquivo BKPML para diversos SGBDS, ou realizar a transformação dos mesmos para arquivos secundários. É importante ressaltar que esta funcionalidade destina-se a manipular apenas arquivos BKPML de objetos de tipo tabela, os demais objetos ficam sob responsabilidade da funcionalidade de migração de dados complexos. A tela utilizada para esta tarefa é constituı́da de uma lista de todos os backups realizados pela ferramenta. Para realizar a restauração dos dados para um SGBD, o usuário deverá informar o SGBD desejado e, no campo formato, selecionar a opção transferência. Após isso, o botão de execução do item desejado deverá ser pressionado. O processo de transformação assume os mesmos passos, com diferença no campo formato. Neste campo o usuário deverá informar o tipo de transformação desejada. Após isso, o botão de execução do registro desejado deverá ser pressionado para inı́cio deste processo. A Figura 5 apresenta a tela de restauração de dados. estrutura fica sob responsabilidade do SGBD, que retornará um erro caso a sintaxe não esteja de acordo com seus padrões. A alteração da sintaxe dos objetos pode ser realizada utilizando os métodos Buscar sintaxe Equivalente e Alterar, disponı́veis na parte inferior da área de edição. Para utilização desses métodos, o usuário deverá selecionar o tipo ou sintaxe e clicar no botão Buscar Sintaxe Equivalente. Se a sintaxe ou tipo estiverem cadastrados devidamente, a sintaxe correspondente será enviada para a caixa de texto, localizada ao lado do botão pressionado. Após isso, o botão alterar deverá ser pressionado para substituição do tipo ou sintaxe selecionado. E. Resultados Obtidos Figura 5. tela de restauração e transformação de dados D. Migração de dados complexos A funcionalidade de migração de dados complexos é utilizada quando o objeto a ser migrado refere-se a um objeto complexo. De acordo com a ferramenta, um objeto complexo é aquele que necessita de análise visual e alteração manual em sua estrutura para que a restauração possa ser efetivada. A ferramenta considera como objeto complexo os objetos: visão, ı́ndice, permissão, gatilho e método. O único tipo de objeto que não é considerado complexo é o objeto tabela, visto anteriormente. A tela de migração de dados funciona como um editor para adaptação da estrutura dos objetos complexos. Esta tela é composta pelas funcionalidades carregar objeto, responsável pela transformação dos objetos mantidos nos arquivos BKPML para sua sintaxe padrão SQL, com exceção dos objetos do tipo método e gatilho. Para esses objetos, seus metadados são transferidos para uma sintaxe definida pela própria ferramenta. A Figura 6 apresenta a tela de migração de dados complexos. Figura 6. tela de migração de dados complexos Após a sintaxe de um objeto ser carregada para a tela de edição, o usuário deverá adaptar a mesma para a sintaxe correspondente do SGBD selecionado. Após isso, o botão Submeter Comando deverá ser pressionado para que o objeto possa ser transferido. Toda validação de sintaxe, tipos e Os testes realizados na ferramenta BKPML Manager foram feitos em um ambiente real, cedido por uma empresa de consultoria situada na cidade de Manaus, a knowhow consultoria. O objetivo desta primeira fase de testes consistiu em procurar erros no módulo de cadastros básicos e nas funcionalidades. Além disso, foram verificados o tempo de processamento levado por essas funcionalidades em relação aos objetos concedidos pela empresa. A partir dos resultados obtidos nesta primeira fase, pode-se concluir que o módulo de cadastro e funcionalidades gerou resultados satisfatórios quanto ao tempo de processamento. Em relação aos erros, os identificados foram corrigidos e a ferramenta preparada para a segunda fase de testes. Como os testes da primeira fase foram realizados com uma baixa quantidade de dados, sentiu-se a necessidade de testar as funcionalidades principais quanto a grandes volumes de dados, para isso, a empresa cedeu um computador com as seguintes configurações: processador Intel DUAL CORE 2.1 GHZ com 2GB de RAM e HD de 200GB. Neste computador, foi configurado o ambiente para execução da ferramenta, bem como o SGBD POSTGRES8.4 [17] com uma tabela criada para realização desse teste. Após isso, foi necessário desenvolver um sistema para inserção de dados aleatórios na tabela de testes. No final de cada execução desse sistema, a ferramenta BKPML Manager era executada para gerar os arquivos de backup dos dados armazenados. De acordo com os resultados obtidos, foi possı́vel perceber que o tempo para geração dos arquivos BKPML foi relativamente rápido, tornando aceitável o uso da ferramenta para geração de arquivos com grandes volumes de dados. Já ôs testes relativos ao processo de restauração, foi possı́vel notar que os tempos obtidos são mais elevados, mas no entanto aceitáveis. A partir desses resultados, foi possı́vel estimar que, para 1 Gygabyte de informação ou 24.000.000 de registros, a BKPML Manager levaria em média 17hs de processamento para restaurar todos esses dados, ou seja, um tempo pouco eficiente para volumes de dados muito grandes. Apesar de ser uma ferramenta estudantil e em fase de constantes mudanças e aprimoramentos, as principais funcionalidades como: backup de dados, transformação, restauração e migração de objetos complexos obtiveram bons resultados, mas que ainda assim precisam ser aprimorados. V. C ONCLUS ÃO Este trabalho apresentou uma estrutura padrão em formato aberto, baseado em XML, desenvolvida para desvincular a dependência dos dados de backup em formato fechado, permitindo a manipulação desses entre diversos SGBDS. Mais especificamente, esse formato vislumbra auxiliar projetos de migração de dados em relação às dificuldades enfrentadas. Após o desenvolvimento deste padrão, foi necessário o desenvolvimento de um protótipo para validação dos arquivos BKPML, denominado BKPML Manager. A BKPML Manager foi desenvolvida para gerar e validar arquivos de backup em formato BKPML, bem como para auxiliar a restauração, transformação e migração dos dados para diversas plataformas de SGBDS, ou para arquivos secundários. Além disso, esta ferramenta possibilita o armazenamento dos dados em nuvens, utilizando o serviço S3 da Amazon webservice para armazenamento dos dados. Após o desenvolvimento da BKPML Manager, foram realizados testes para verificação do desempenho da ferramenta e das funcionalidades desenvolvidas. No final dos testes, foram apresentadas as conclusões sobre os resultados obtidos. As principais contribuições deste trabalho foram: • O desenvolvimento de um formato aberto para padronização de backup de dados; • O desenvolvimento de uma ferramenta para auxiliar o formato BKPML e proporcionar aos projetos de backup e migração de dados maior flexibilidade quanto à manipulação dos dados em qualquer plataforma de SGBD; • Facilitar a portabilidade e manipulação dos dados através da transformação dos mesmos para arquivos secundários; • Desenvolvimento de uma estrtuura em XML para backup de dados que não se limita apenas a objetos de tipo tabela; Para trabalhos futuros este artigo propõe: • Aumentar o poder de expressividade da BKPML para atender a mais objetos como Roles e Packages; • Desenvolvimento de um framework Open Source para ser acoplado em sistemas que desejam utilizar a BKPML como formato padrão dos arquivos de backup; • Desenvolvimento de uma estrutura XML para manter o mapeamento de tipos, sintaxe, objetos e das propriedades dos objetos dos SGBDS, reduzindo o número de cadastros realizados; • Desenvolvimento de um mecanismo para quebrar um arquivo BKPML muito grande em arquivos menores, facilitando a leitura dos mesmos e evitando problemas como estouro de memória. XLink neste processo poderia ser utilizado para ligar de forma correta a ordem dos arquivos, evitando problemas quanto a restauração e perda de dados. R EFER ÊNCIAS [1] BKPML (2011). XML Schema da BKPML. http://www.scribd.com/doc/47836213. acessado em fev/2011. [2] Creativyst (2011). The Comma Separated Value (CSV) File Format. http://creativyst.com/Doc/Articles/CSV/CSV01.htm. acessado em fev/2011. [3] DAO, S. (2011). DAO Reference. http://java.sun.com/blueprints/ corej2eepatterns/Patterns/DataAccessObject.html. acessado em fev/2011 [4] DOM4J. (2011). DOM4J official site. http://www.dom4j.org/. acessado em fev/2011. [5] Firefox, M.(2010). Firefox reference and download. http://br.mozdev.org. acessado em Fev/2011. [6] GAMMA, E., JOHNSON, R., VLISSIDES, J., andHELM, R.(1995). PADRÕES DE PROJETO. ARTMED EDITORA S.A, Santana - PortoAlegre - RS. [7] Gonçalves, E. (2007). Desenvolvendo Aplicações WEB com JSP, Servlets, JSF, Hibernate, EJB e AJAX. Editora Moderna, Rio de Janeiro-RJ. [8] Internet Explorer, M.(2010). site oficial. http://ww.microsoft.com/brasil/windows/internet-explorer/. acessado em Fev/2011. [9] JSON(2010).Json specication. http://www.json.org/json-pt.html. acessado em Fev/2011. [10] JSP,S.(2010).Java server pages. http://java.sun.com/products/jsp/ . acessado em Fev/2011. [11] JSTL, S. (2010). Javaserver pages standard tag lib. http://java.sun.com/products/jsp/jstl/reference/docs/index.html. acessado em Fev/2011. [12] Markup, W. (2010). Hipertext markup language. http://www.w3.org/MarkUp/. acessado em Fev/2011. [13] MYSQL. (2011). MYSQL Site Oficial. http://www.mysql.com/. acessado em fev/2011. [14] Namedin, P. T. J. (2011). backup Markup Language (BKPML): Uma Proposta para Padronização e Interoperabilidade de backup de Dados/PE. Masters thesis, Universidade Federal de Pernambuco, Recife, Pernambuco, Brasil. http://www.scribd.com/doc/48468544. acessado em fev/2011. [15] Oracle. (2011). Oracle Official site. http://www.oracle.com/br/index.html. acessado em fev/2011. [16] Oumtanaga, S., Lambert, K. T., Tiémoman, K., Pierre, T., and Florent, D.N. (2007). Use xml format like a model of data backup. International Journal of Computer and Information Engineering. [17] POSTGRES. (2011). Site Oficial. http://www.postgresql.org/. acessado em fev/2011. [18] Quinn, J. B., Baruch, J. J., and Zien, K. A.(1997). Innovation explosion: using intellect and software to revolutionize growth strategies. FreePress, NewYork. [19] SAX. (2011). About SAX. http://www.saxproject.org/. acessado em fev/2011. [20] SQLServer. (2011). microsoft SQLServer. http://msdn.microsoft.com/ptbr/sqlserver/default. acessado em fev/2011 [21] Terra, J. C. C.(2005). Gestão do Conhecimento: O Grande Desafio Empresarial. Artmed Editora S.A, Rio de janeiro - RJ. [22] Tomcat, A. (2010). Tomcat. http://tomcat.apache.org/ . acessado em fev/2011. [23] Voas, J. and Zhang, J. (2009). Cloud computing: New wine or just a new bottle? IT Professional. (2011). Document Object Model. [24] W3C DOM. http://www.w3.org/DOM/. acessado em fev/2011. [25] W3C XML (2011). Extensible Markup Language. http://www.w3.org/XML/. acessado em fev/2011. (2011). XML Schema. [26] W3C XMLSchema http://www.w3.org/XML/Schema. acessado em Fev/2011. [27] Xerces,A.(2010).Xerces reference. http://xerces.apache.org/. acessado em Fev/2011. [28] YAML(2010).Yaml specication. http://www.yaml.org/spec/1.2/spec.html. acessado em fev/2011.