• Nenhum resultado encontrado

Backup markup language (BKPML) : uma proposta para interoperabilidade e padronização de backup de dados

N/A
N/A
Protected

Academic year: 2021

Share "Backup markup language (BKPML) : uma proposta para interoperabilidade e padronização de backup de dados"

Copied!
122
0
0

Texto

(1)“Backup Markup Language (BKPML): Uma Proposta para Interoperabilidade e Padronização de Backup de Dados” Por. Namedin Pereira Teles Júnior Dissertação de Mestrado. Universidade Federal de Pernambuco posgraduacao@cin.ufpe.br. www.cin.ufpe.br/~posgraduacao. RECIFE, Fevereiro/2011.

(2) Universidade Federal de Pernambuco Centro de Informática Pós-graduação em Ciência da Computação. Namedin Pereira Teles Júnior. “Backup Markup Language (BKPML): Uma Proposta para Interoperabilidade e Padronização de Backup de Dados”. Trabalho apresentado ao Programa de Pós-graduação em Ciência da Computação do Centro de Informática da Universidade Federal de Pernambuco como requisito parcial para obtenção do grau de Mestre em Ciência da Computação.. Orientador: Roberto Souto Maior de Barros. RECIFE, Fevereiro/2011.

(3) Catalogação na fonte Bibliotecária Jane Souto Maior, CRB4-571. Teles Júnior, Namedin Pereira Backup markup language (BKPML) : uma proposta para interoperabilidade e padronização de backup de dados / Namedin Pereira Teles Júnior - Recife: O Autor, 2011. xxiv, 107 p. : il., fig., tab. Orientador: Roberto Souto Maior de Barros. Dissertação (mestrado) Universidade Federal Pernambuco. CIn. Ciência da Computação, 2011.. de. Inclui bibliografia. 1. Sistemas de gerenciamento de banco de dados. 2. Sistemas distribuídos de backup. I. Barros, Roberto Souto Maior de (orientador). II. Título. 005.74. CDD (22. ed.). MEI2011 – 043.

(4)

(5) Dedico essa dissertação em memória do meu avô Secundino Rocha..

(6) Agradecimentos. A Deus, por ter me dado saúde e força para proseguir com meus objetivos. E enquanto estive morando em Recife, ajudou-me a suportar toda saudade de minha família em Manaus, pondo em meu caminho pessoas maravilhosas e acolhedoras. A minha mãe, Shirley, pelo grande incentivo e carinho demonstrado durante toda minha vida. A minha esposa, Nívia, pelo apoio, quando morei em Recife, deixando-a em Manaus, pela compreensão ao chegar e dedicar meu tempo exclusivamente ao desenvolvimento deste trabalho, e ao grande amor que nos uniu nesta etapa de nossas vidas. Ao professor e orientador, Roberto, por me orientar sabiamente, me pondo no caminho certo quanto ao desenvolvimento deste trabalho. Pela confiança depositada ao me liberar e concordar em me orientar a distância, e por todo tempo a mim dedicado. A minha irmã, sobrinho e cunhado, Nádia, Cesar e Nailton, pelo incentivo, cuidados e ajuda dada em todos os momentos da minha vida, por me apoiarem em decisões importantes e estarem ao meu lado sempre que precisei. Aos integrandes e amigos do CIN, mais especificamente Jair, Emmanuel, Dalasiel, Rebeca, Marco, Jeisa, Felix, Ademir, Rafael e Crescêncio, e todas as pessoas que participaram de forma direta ou indireta desta conquista. Aos moradores do condomínio Laranjeiras, por me receberem, não só como um amigo, mas como parte integrante de cada família que lá vive, em especial, Antonieta, Gabriel, Tiazinha, Márcia, Ana, Joel e família, Vitória e família. À Universidade Federal de Pernambuco, professores e funcionários que ajudam a manter a universidade limpa e organizadas para os alunos e pesquisadores. A todos que fizeram desta minha luta uma experiência de vida valiosa.. vi.

(7) "O sucesso é um professor perverso. Ele seduz as pessoas inteligentes a as faz pensar que jamais irão cair." —BILL GATES (Pensamento).

(8) Resumo. O atual modelo de negócios de uma empresa moderna está cada vez mais dependente das tecnologias e dos sistemas de informação. Com isso, é necessário que se mantenha os dados protegidos através de uma cópia segurança, conhecida como backup, que garantirá a restauração e migração dos dados quando necessário. Além disso, é comum uma empresa adotar mais de um Sistema de Gerenciamento de Banco de Dados (SGBD) para armazenamento dos dados, gerando ambientes heterogêneos e dificultando a interoperabilidade entre os sistemas quando necessário. Isso porque os SGBD existentes realizam backup, restauração e migração dos dados sob tecnologias específicas e limitadas como (Oracle, Sqlserver, Mysql), não permitindo a restauração dos dados em outros SGBD, somente no seu ambiente de origem. Nesse contexto, este trabalho propõe o desenvolvimento de uma estrutura padrão para os arquivos de backup, utilizando a linguagem de marcação eXtensible Markup Language (XML), denominada como Backup Markup Language (BKPML). A BKPML tem por objetivo desvincular a dependência dos arquivos de backup de sua fonte de origem, possibilitando manter a interoperabilidade necessária entre SGBD heterogêneos através dos arquivos de backup, e a transformação dos dados para arquivos secundários, como TEXTO, EXCEL, JavaScript Object Notation (JSON), YAML Ain’t Markup Language (YAML), Comma-Separated Values (CSV) e XML. Para isso, foi necessário o desenvolvimento de uma ferramenta responsável por administrar os arquivos BKPML gerados. Como proposta de armazenamento seguro, além do armazenamento local, este trabalho utiliza Cloud Computing como alternativa para armazenamento dos arquivos BKPML. Palavras-chave: Ambientes Heterogêneos, Interoperabilidade, Padronização, XML, Sistemas de Gerenciamento de Banco de Dados (SGBD), Backup, Restauração , Migração e Cloud Computing.. viii.

(9) Abstract. The current business model of a modern business is increasingly dependent on technology and information systems. Thus, it is necessary to keep data protected by a security copy, known as backup, which will ensure the restoration and migration of data when needed. Furthermore, it is common for a company to adopt more than one Database Management System (DBMS) for data storage, creating heterogeneous environments and hindering the interoperability between the systems when needed. This happens because the existing DBMSs perform backup, restore and data migration under specific and limited platforms such as Oracle, SQLServer, MySQL, not allowing the restoration of data in other database systems, only in its original environment. In this context, this work proposes to develop a standard framework for the backup files, using the Extensible Markup Language (XML), known as Backup Markup Language (BKPML). The BKPML aims to relieve the dependence of the backup files from their sources, enabling the interoperability required between heterogeneous database systems through the backup files, and the processing using data for secondary files as text, Excel, JavaScript Object Notation (JSON), YAML Ain’t Markup Language (YAML), commaseparated values (CSV) and XML. This lead us to the development of a tool responsible for managing generated BKPML files. As a proposal for the safe storage, in addition to local storage, this work uses cloud computing as an alternative to BKPML files storing. Keywords: Heterogeneous Environments, Interoperability, Standards, XML, DBMS, Backup, Restore, Migration and Cloud Computing.. ix.

(10) Sumário. Lista de Figuras. xiii. Lista de Tabelas. xv. Lista de Abreviaturas. xvi. 1. 2. Introdução 1.1 Motivação . . . . . . . . . . . . . 1.2 Breve Histórico da evolução da TI 1.3 Objetivo da dissertação . . . . . . 1.4 Objetivos específicos . . . . . . . 1.5 Estrutura da dissertação . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. Referencial Teórico 2.1 Backup de dados . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 Tipos de mídia para backup de dados . . . . . . . . 2.1.2 Segurança dos dados . . . . . . . . . . . . . . . . . 2.1.3 Criptografia dos dados . . . . . . . . . . . . . . . . 2.1.4 Algoritmo triple des (3DES) . . . . . . . . . . . . . 2.2 Migração de dados . . . . . . . . . . . . . . . . . . . . . . 2.2.1 Níveis de migração . . . . . . . . . . . . . . . . . . 2.3 Computação nas nuvens . . . . . . . . . . . . . . . . . . . 2.3.1 Backup de dados em nuvens . . . . . . . . . . . . . 2.3.2 Aplicações cloud para backup/recuperação de dados 2.4 Padronização da informação . . . . . . . . . . . . . . . . . 2.4.1 eXtensible Markup Language (XML) . . . . . . . . . 2.4.2 XML Schema . . . . . . . . . . . . . . . . . . . . . 2.4.3 YAML Ain’t Markup Language (YAML) . . . . . . . 2.4.4 JavaScript Object Notation (JSON) . . . . . . . . . 2.5 Aplicações WEB . . . . . . . . . . . . . . . . . . . . . . . 2.5.1 Tecnologias Web . . . . . . . . . . . . . . . . . . . 2.6 Padrões de projeto . . . . . . . . . . . . . . . . . . . . . . . 2.6.1 O padrão estrutural Decorator . . . . . . . . . . . . 2.6.2 O padrão comportamental Strategy . . . . . . . . . .. . . . . .. . . . . . . . . . . . . . . . . . . . .. . . . . .. . . . . . . . . . . . . . . . . . . . .. . . . . .. . . . . . . . . . . . . . . . . . . . .. . . . . .. . . . . . . . . . . . . . . . . . . . .. . . . . .. . . . . . . . . . . . . . . . . . . . .. . . . . .. 1 1 3 5 6 7. . . . . . . . . . . . . . . . . . . . .. 8 8 9 11 12 12 13 14 15 16 17 18 19 19 21 22 22 23 25 26 27. x.

(11) 2.7 3. 4. 5. 2.6.3 O padrão Data Access Object (DAO) . . . . . . . . . . . . . . 2.6.4 O padrão Model View Controller (MVC) . . . . . . . . . . . . . Considerações Finais . . . . . . . . . . . . . . . . . . . . . . . . . . .. Backup Markup Language (BKPML) 3.1 Introdução . . . . . . . . . . . . . . . . . . . . 3.2 Apresentação da estrutura BKPML . . . . . . . 3.2.1 O elemento SchemaDB . . . . . . . . . 3.2.2 O elemento Objects . . . . . . . . . . . 3.3 Estrutura dos objetos da BKPML . . . . . . . . 3.3.1 O elemento complexo tableobjecttype . 3.3.2 O elemento complexo indexobjecttype . 3.3.3 O elemento complexo viewobjecttype . 3.3.4 O elemento complexo grantobjecttype . 3.3.5 O elemento complexo triggerobjecttype 3.3.6 O elemento complexo methodobjecttype 3.4 Considerações Finais . . . . . . . . . . . . . .. 28 29 30. . . . . . . . . . . . .. 32 32 35 35 38 38 39 39 40 40 42 42 43. . . . . . . . . . . . . . .. 46 46 50 51 52 53 54 55 55 56 58 60 61 63 66. Estudo de caso 5.1 Apresentação da empresa e domínio do problema . . . . . . . . . . . .. 68 68. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. A Ferramenta: Backup Markup Language Manager (BKPML Manager) 4.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Arquitetura da ferramenta BKPML Manager . . . . . . . . . . . . . . 4.2.1 A camada Cliente . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2 Lições Aprendidas . . . . . . . . . . . . . . . . . . . . . . . 4.2.3 A camada Servidor . . . . . . . . . . . . . . . . . . . . . . . 4.2.4 Lições Aprendidas . . . . . . . . . . . . . . . . . . . . . . . 4.2.5 A Camada SGBD . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Padrões de projeto utilizados . . . . . . . . . . . . . . . . . . . . . . 4.3.1 Aplicando o padrão Data Access Object (DAO) . . . . . . . . 4.3.2 Aplicando o padrão Decorator . . . . . . . . . . . . . . . . . 4.3.3 Aplicando o Padrão de projetos Strategy . . . . . . . . . . . . 4.3.4 Aplicando o Padrão de projetos Model View Controller (MVC) 4.4 Funcionalidade da BKPML Manager . . . . . . . . . . . . . . . . . . 4.5 Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . .. xi.

(12) 5.2 5.3 5.4 5.5. . . . . . . . .. 70 73 74 81 82 86 90 92. Conclusões e Trabalhos Futuros 6.1 Conclusões e contribuições . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Limitações e trabalhos futuros . . . . . . . . . . . . . . . . . . . . . .. 94 94 96. 5.6 6. Preparando o ambiente para execução do backup . . . . . . Cadastrando as ações de backup . . . . . . . . . . . . . . . Executando o Backup dos dados . . . . . . . . . . . . . . . Preparando o ambiente de restauração e migração . . . . . . 5.5.1 Restaurando e transformando os arquivos BKPML . 5.5.2 Migrando os arquivos BKPML de objetos complexos 5.5.3 Testando a eficiência x volume de informação . . . . Considerações finais . . . . . . . . . . . . . . . . . . . . .. Bibliografia. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. 99. xii.

(13) Lista de Figuras. 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11. Principais erros que levam a perda de dados Componentes Envolvidos na Criptografia . Processo de criptografia . . . . . . . . . . . Arquitetura da Computação nas nuvens . . Documento XML . . . . . . . . . . . . . . Documento XMLSchema . . . . . . . . . . Documento XML para YAML . . . . . . . Documento JSON . . . . . . . . . . . . . . Diagrama de Classes do padrão Decorator . Diagrama de Classes do padrão Strategy . . Diagrama do Padrão DAO . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. 9 12 13 15 19 20 21 22 27 28 29. 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8. Representação em árvore da estrutura BKPML Estrutura principal da BKPML . . . . . . . . . Tipo complexo TableObjectType . . . . . . . . Tipo complexo IndexObjectType . . . . . . . . Tipo complexo viewobjecttype . . . . . . . . . Tipo complexo GrantObjectType . . . . . . . . Tipo complexo TriggerObjectType . . . . . . . Tipo complexo MethodObjectType . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. . . . . . . . .. 36 37 40 41 41 42 43 44. Tela principal da BKPML Manager . . . . . . . . . . . . . . . . . . . Ciclo de vida dos processos de Backup/Restore da ferramenta BKPML Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Menu da BKPML Manager . . . . . . . . . . . . . . . . . . . . . . . . 4.4 Arquitetura da BKPML Manager . . . . . . . . . . . . . . . . . . . . . 4.5 Padrão DAO da BKPML Manager . . . . . . . . . . . . . . . . . . . . 4.6 Padrão Decorator da BKPML Manager . . . . . . . . . . . . . . . . . . 4.7 Instanciando uma classe backup/Restore . . . . . . . . . . . . . . . . . 4.8 Aplicando o padrão decorator a um objeto backup . . . . . . . . . . . . 4.9 Padrão Strategy da BKPML Manager . . . . . . . . . . . . . . . . . . 4.10 Arquitetura MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.11 Diagrama de Caso de Uso da BKPML Manager . . . . . . . . . . . . .. 47. 5.1. 72. 4.1 4.2. Etapa 3 do processo de preparação do ambiente . . . . . . . . . . . . .. 48 50 51 57 59 59 60 61 62 64. xiii.

(14) 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 5.13 5.14 5.15 5.16 5.17 5.18 5.19 5.20 5.21 5.22 5.23 5.24. Etapa 4 do processo de preparação do ambiente . . Tela de cadastro de Ações . . . . . . . . . . . . . . Tela de execução de backup de dados . . . . . . . Documento BKPML TBL_CURSO . . . . . . . . Documento BKPML TBL_EMENTA . . . . . . . Documento BKPML TBL_SERVICOS . . . . . . Documento BKPML IDX_BY_DATA_COURSE . Documento BKPML FNC_INSERIR_CURSO . . Documento BKPML FNC_DELETAR_CURSO . . Documento BKPML FNC_ALTERAR_SERVICOS Documento BKPML PRC_LISTAR_EMENTA . . Documento BKPML VEW_CURSO_EMENTA . . Documento BKPML TRG_EXCLUIR_EMENTA . Tela de Restauração de dados . . . . . . . . . . . . Restauração dos dados no postgres . . . . . . . . . Objeto TBL_EMENTA em formato CSV . . . . . Objeto TBL_CURSO em formato Excel . . . . . . Objeto TBL_EMENTA em formato JSON . . . . . Objeto TBL_SERVICOS em formato YAML . . . Tela de Migração de dados . . . . . . . . . . . . . Sintaxe padrão para objetos tipo função . . . . . . Sintaxe padrão para objetos tipo gatilho . . . . . . Resultado da Migração para o ORACLE Express .. . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . .. 72 74 75 75 76 77 78 78 79 79 80 80 81 83 83 84 84 85 85 87 88 88 89. xiv.

(15) Lista de Tabelas. 5.1 5.2. Objetos do estudo de caso . . . . . . . . . . . . . . . . . . . . . . . . . Geração dos arquivos BKPML por volume e tempo . . . . . . . . . . .. 69 91. xv.

(16) Lista de Abreviaturas. BKPML. Backup Markup Language. CORBA. Common Object Request Broker Architecture. CSS. Cascading Style Sheets. CSV. Comma-Separated Values. DAO. Data Access Object. DBMS. Database management system. DCOM. Distributed Component Object Model. DSAAS. Data Storage As A Service. DTD. Document Type Definition. GML. Generalized Markup Language. HTML. Hypertext Markup Language. HTTP. Hypertext Transfer Protocol. IAAS. Infrastructure As A Service. IBM. International Business Machine. JDBC. Java DataBase Connection. JSF. Java Server Faces. JSON. JavaScript Object Notation. JSP. JavaServer Pages. JSTL. Javaserver page Standard Tag Lib. JVM. Java Virtual Machine. MathML. Mathematical Markup Language. MVC. Model View Controller. xvi.

(17) PAAS. Platform As A Service. RMI. Remote Method Invocation. S3. Simple Storage Service. SAAS. Software As A Service. SGBD. Sistemas de Gerenciamento de Banco de Dados. SI. Sistema de Informação. SQL. Structured Query Language. SVG. Scalable Vectorial Graphics. TI. Tecnologia da Informação. UML. Unified Modeling Language. W3C. World Wide Web Consortium. XBRL. eXtensible Business Reporting Language. XML. eXtensible Markup Language. XSIL. eXtensible Scientific Interchange Language. YAML. YAML Ain’t Markup Language. xvii.

(18) 1 Introdução. As novas demandas e a competitividade do mercado criam uma grande expectativa e necessidade a respeito da aplicação da Tecnologia da Informação (TI). Contudo, há também um grande questionamento sobre as reais vantagens da utilização da TI em relação aos problemas e limitações encontrados nessa área de conhecimento. Para avaliar os impactos da TI nas operações e estratégias das empresas, faz-se necessário uma prévia apresentação sobre a evolução das tecnologias e sistemas de informação, o impacto da mudança de paradigma envolvida, bem como os principais fatores que tendem a aumentar o grau de fracasso ou de sucesso na implantação de soluções de TI. Este capítulo tem por objetivo apresentar as principais problemáticas que motivaram o desenvolvimento deste trabalho, bem como a solução proposta para tais problemas.. 1.1 Motivação Para atender um mercado cada dia mais exigente, empresas e organizações estão tornando mais comum, em seus modelos de negócio, a utilização da tecnologia da informação em diversas áreas da empresa, com objetivo estratégico e organizacional. De acordo com Turban et al. (2002), um modelo de negócios é um método pelo qual a empresa consegue agir para gerar lucro e sustentar-se. Esse modelo explica detalhadamente como a empresa agrega valor, quais são os consumidores dispostos a pagar por seus produtos, e qual a melhor forma de gerir seus negócios para atender o mercado. Nesse novo modelo de negócios, as informações passam a ser o centro de todo processo empresarial. Martens (2001) comenta que o sucesso empresarial passa a depender fundamentalmente da capacidade da empresa organizar e administrar sua base de informações, e aproveitar ao máximo as diferenciações competitivas oferecidas pela TI. É inegável que a TI esteja cada dia mais presente nos ambientes empresariais. Nota-. 1.

(19) 1.1. MOTIVAÇÃO. se que recentes avanços na informática como Internet, novas interfaces gráficas, Business to Business, e-commerce e Enterprise Resource Planning estão se tornando mais comuns e necessárias no cotidiano e diálogos empresariais (Terra, 2005). Para as empresas, na visão de Quinn et al. (1997) e Terra (2005), a TI, ou mais especificamente o Sistema de Informação (SI), passa a ser considerado o elemento central do processo inovador, capaz de diminuir, unir e eliminar várias de suas etapas. O uso intensivo de software permite trazer a interação com clientes para um patamar bem mais elevado de qualidade, serviço e personalização, além de permitir a detecção de macro tendências com extrema velocidade. Nesse novo paradigma, os SI deixam de ser simples aplicativos com objetivo de armazenar e recuperar informação, e passam a se tornar poderosas ferramentas para análise e mineração de dados, tornando as informações o principal fator para que uma empresa possa acompanhar essas mudanças. Esse modelo faz com que a segurança da informação transforme-se na chave para manter a continuidade dos negócios e a integridade dos dados. Apesar da grande importância da informação para as empresas, ainda existem empresas que decidem manter a economia financeira em detrimento da segurança dos dados, e não investem em soluções de hardware, software ou recursos humanos para mantê-los protegidos. Um estudo, realizado em maio de 2009 com mais de 1600 empresas de 24 países, mostrou que no Brasil houve um prejuízo de US 297 mil pela perda de dados corporativos (Pernambuco, 2009). Dentre as soluções para Segurança da Informação estão o backup (cópia de segurança) e a restauração dos dados. Chen and Zheng (2008) explicam que aplicações famosas para backup e recuperação de dados possuem um custo elevado, o que deixa empresas de pequeno e médio porte sem muitas alternativas para segurança dos seus dados. A adoção de ferramentas Open Source é uma opção para tentar baixar o custo, mas, dependendo do modelo de negócios adotado, a utilização total de ferramentas Open Source pode não atender ao plano de continuidade de negócio adotado. A cópia de segurança em computadores é um instrumento importante para compensar ou tentar sanar problemas oriundos de hardware, software, erros humanos ou segurança dos dados. Em empresas que dependem fortemente dos sistemas e dos computadores, a perda dos dados pode representar perda de capital. Trazendo essa realidade para a vida cotidiana, na qual o computador é usado como ferramenta de trabalho, perder dados significa perder tempo, perdendo tempo, perdese dinheiro e, por conseguinte, o cliente. Chen and Zheng (2008) comentam que toda. 2.

(20) 1.2. BREVE HISTÓRICO DA EVOLUÇÃO DA TI. empresa deve possuir um plano de backup e restauração de dados, pois suas operações do dia-a-dia podem gerar uma quantidade considerável de dados, que estão sujeitos a danos lógicos e físicos. Além de manter os dados seguros e íntegros, os arquivos de backup, quando vistos de forma analítica, contribuem para comunicação e troca de informação recíproca entre sistemas legados de uma empresa. Turban et al. (2002) define sistemas legados como sistemas antigos, normalmente desenvolvidos por diferentes fornecedores, utilizando diferentes tecnologias, feitos para atender áreas distintas (administrativa, financeira, contábil, entre outros), e que hoje se tornaram a principal fonte de importantes informações para muitas empresas. A grande problemática com sistemas legados é a dispersão da informação entre diversas tecnologias, o que normalmente compromete a interoperabilidade ou a troca de informação entre diversos sistemas. Para possibilitar o backup e restauração de dados, os Sistemas de Gerenciamento de Banco de Dados (SGBD) disponibilizam ferramentas específicas que apresentam limitações quanto a impossibilidade de troca de informação entre SGBD distintos, visto que cada SGBD realiza backup e restauração dos dados com suas tecnologias específicas e nativas. Como exemplos podem ser citados Oracle (Oracle, 2005), Sqlserver (SQLServer, 2011), Mysql (MYSQL, 2010) e Postgres (Postgres, 2011). Tal limitação impede a interoperabilidade dos dados e recursos entre SGBD. Para melhor entendimento sobre a origem dos sistemas legados, bem como as problemáticas geradas por ele, os tópicos a seguir destinam-se a apresentar um breve histórico sobre a evolução da TI e, por fim, apresentar um breve resumo sobre a solução proposta para o problema em questão.. 1.2 Breve Histórico da evolução da TI Cronologicamente, a TI teve início da década de 60, contribuindo de forma progressiva nas áreas empresariais, transporte, rádio, televisão, entre outras de grande importância para a sociedade. Nessa década, segundo Rezende (2002), conhecida como ERA DO PROCESSAMENTO DE DADOS, todos os recursos eram direcionados para processamento centralizado, realizado por grandes computadores, denominados MAINFRAMES, responsáveis por processar informações de folhas de pagamento, contabilidade e finanças, de forma mecanizada. Esses novos recursos, além de reduzir o tempo de trabalho em dias ou até. 3.

(21) 1.2. BREVE HISTÓRICO DA EVOLUÇÃO DA TI. mesmo meses, tornaram-se a principal fonte de importantes informações para as empresas. A partir da década de 70 a 80, esses sistemas ficariam conhecidos como sistemas legados, responsáveis pelo início de inúmeras pesquisas sobre comunicação transparente entre sistemas legados (Turban et al., 2002). A década de 70, também conhecida como Era dos sistemas de apoio à decisão, apresenta sistemas que passam a ser um fator vantajoso quanto à concorrência de mercado. Os terminais passam a se tornar flexíveis e com poder de processar diversas tarefas simultaneamente com diversos usuários. A maior evolução técnica dessa época foi a transferência dos dados para SGBD e a utilização da Generalized Markup Language (GML), criada pela International Business Machine (IBM) para armazenamento de grandes quantidades de informação de diversos temas. Foi a partir da GML que surgiu a ideia de padronização de documentos. A partir da década de 80, o termo Processamento de Dados foi perdendo força e abrindo espaço ao termo Tecnologia da Informação. TI tornou-se o termo aceito para englobar a rápida expansão de equipamentos (computadores, dispositivos de armazenamento de dados, redes e dispositivos de comunicação), aplicações e serviços utilizados pelas organizações para fornecer dados, informações e conhecimento (Laurindo, 2000). Em uma definição mais restrita, TI diz respeito ao aspecto tecnológico de um Sistema de Informação (SI) (Turban et al., 2002). Ela inclui hardware, banco de dados, software, redes e outros dispositivos. A TI evoluiu de uma orientação tradicional de suporte administrativo para um papel estratégico dentro da organização. Ela não só sustenta as estratégias de negócios existentes, mas também permite viabilizar novas estratégias empresariais e oportunidades de negócio (Laurindo, 2000). Foi nesta época que os sistemas legados passaram a tornar-se uma preocupação para as empresas. Sistemas que antes centralizavam processamento, agora passam a distribuir e trocar informações com outros sistemas. A questão levantada nessa época foi: Como manter a interoperabilidade entre os novos sistemas e os mais antigos?. A partir desse questionamento, foi dado início a inúmeras pesquisas sobre interoperabilidade entre sistemas legados. O conceito de gestão dos dados e informação surgiu na década de 90, compreendendo atividades como: armazenamento, recuperação e níveis de controle e acesso à informação. Ele intensifica a criação de um plano de contingência e segurança dos dados, além de ver os dados como a principal fonte de apoio a decisões empresarias. Os sistemas estratégicos têm sido vistos como uma melhoria para a competitividade das. 4.

(22) 1.3. OBJETIVO DA DISSERTAÇÃO. empresas, através do aumento de produtividade, melhorias no trabalho em equipe e comunicação entre empresas, fornecedores e clientes. Segundo REINHARD (1996); Brito et al. (1997); Voas and Zhang (2009), as constantes mudanças ocorridas na TI, aconteceram de acordo com as necessidades, sejam elas voltadas ao aspecto empresarial, ou sob qualquer outra necessidade, ou até mesmo pela realização de grandes e significativos investimentos em novos produtos, serviços e processos fundamentados e apoiados por tecnologias. Além disso, pode-se vincular esse impulso de mudanças às problemáticas oriundas das décadas supracitadas.. 1.3 Objetivo da dissertação Em virtude dos problemas relacionados à interoperabilidade entre SGBD no que tange o backup e restauração de dados, este trabalho propõe a padronização de uma estrutura, utilizando a linguagem de marcação XML (Ray, 2006), denominada Backup Markup Language (BKPML), cujo objetivo é desvincular a dependência dos arquivos de backup de sua fonte de origem, possibilitando manter a interoperabilidade necessária entre SGBD heterogêneos através dos arquivos de backup. A possibilidade de migrar os dados para bases heterogêneas a partir de arquivos de backup é algo que vem influenciar de forma positiva os processos de migração, pois, desta forma, os backups de dados originados em um SGBD A poderiam facilmente ser restaurados em um SGBD B. A solução proposta almeja que o backup e restauração dos dados possam ser realizados de forma transparente, e até mesmo a possibilidade de migrar os arquivos de backup (BKPML) para arquivos secundários em formato Texto, eXtensible Markup Language (XML), YAML Ain’t Markup Language (YAML) (YAML, 2010), Comma-Separated Values (CSV) (Creativyst, 2011) e Excel (Microsoft, 2010). Existem três fatores que justificam o desenvolvimento tecnológico deste projeto: • Problemas relacionados com dados mantidos em ambientes heterogêneos que tornam difícil a troca de informação e a migração dos dados para outros sistemas. Existem inúmeros motivos pelos quais as empresas precisam migrar os dados: redução dos altos custos com armazenamento de dados em tecnologias proprietárias, obter padronização dos dados em uma tecnologia específica, atualização de tecnologias ou incompatibilidade entre sistemas de banco de dados; e • Migrar dados para bases heterogêneas a partir de arquivos de backup é algo que. 5.

(23) 1.4. OBJETIVOS ESPECÍFICOS. pode influenciar de forma positiva em um processo de migração, pois desta forma os dados não precisariam ser restaurados em sua base de origem para então serem transferidos para a base de destino. O foco da pesquisa proposta está na solução de interoperabilidade entre diferentes plataformas de SGBD. Hoje, os arquivos de backup de dados são gerados baseados em formatos proprietários (Oracle, Sqlserver, Mysql, Postgres, entre outros), e seu principal objetivo está no armazenamento, segurança e restauração das informações apenas em seus ambientes de origem, não podendo ser restaurados em outros ambientes. Atualmente, a interoperabilidade está em estágio pouco avançado. Poucas são as ferramentas que conseguem interagir com outras para a realização de transações. A padronização da estrutura de arquivos de backup não é algo relativamente novo. Oumtanaga et al. (2007) propõe a utilização de um formato XML como modelo para backup de dados. A estrutura proposta foi desenvolvida utilizando Document Type Definition (DTD) (Ray, 2006), que é uma tecnologia mais antiga e limitada para definição de estruturas em XML. No artigo supracitado, podem-se citar desvantagens quanto ao desenvolvimento e uso de certas tecnologias: sintaxe não XML, poucos tipos de dados, limitação na definição de cardinalidade e baixo poder de expressão. Além disso, a proposta foca a migração apenas de objetos tabela, não garantindo a migração de objetos como: visões, gatilhos, permissões e funções. A BKPML propõe a migração dos principais objetos existentes em um esquema de banco de dados. Por se tratar de uma nova linguagem de marcação, a BKPML necessitará de uma aplicação para gerar, restaurar, validar e migrar os dados a partir desses arquivos.. 1.4 Objetivos específicos • Apresentar os principais conceitos sobre padronização da informação, interoperabilidade de dados, ambientes heterogêneos, backup, migração e segurança da informação; • Definir e apresentar uma linguagem para criação e validação das regras sintáticas para os documentos XML como XML Schema; • Definir as regras para criação e validação da estrutura do arquivo BKPML;. 6.

(24) 1.5. ESTRUTURA DA DISSERTAÇÃO. • Desenvolver a aplicação responsável por criar, validar e gerenciar os arquivos BKPML; • Definir um ambiente de testes; • Realizar os testes da aplicação e ajustes da mesma para atingir os objetivos propostos.. 1.5 Estrutura da dissertação Como ponto de partida, o Capítulo 2 apresenta a fundamentação teórica desta dissertação, que consiste em uma rápida apresentação sobre os principais conceitos a serem tratados nesta dissertação como: backup e restauração de dados, segurança dos dados, padronização da informação e cloud computing, conceito esse que será abordado nesta dissertação como meio de armazenamento dos backups de dados. O Capítulo 3 consiste em apresentar a estrutura BKPML, que tem por objetivo manter os dados em um formato padrão, dando assim mobilidade aos arquivos de backup, e possibilitando que os mesmos sejam migrados para qualquer SGBD independente de qual SGBD foram originados. No Capítulo 4 é apresentada a arquitetura e são descritas as tecnologias utilizadas para o desenvolvimento da aplicação denominada BKPML Manager, aplicação responsável por gerar, validar, armazenar, restaurar e migrar os dados contidos nos arquivos BKPML para SGBD distintos. O Capítulo 5 apresenta um estudo de caso de uma empresa de pequeno porte de Manaus, utilizando a ferramenta BKPML Manager para gerar e restaurar dados de um SGBD para outro, apresentando os resultados obtidos nos testes realizados para este estudo de caso. Por fim, no Capítulo 6, apresentam-se as conclusões do trabalho, discutindo sua aplicabilidade, abrangência, as condições em que se pode ser usado, suas vantagens, limitações e também discussão sobre possíveis futuras melhorias a respeito da estrutura BKPML e da aplicação BKPML Manager.. 7.

(25) 2 Referencial Teórico. Este capítulo tem por objetivo abordar os principais conceitos fundamentais para o desenvolvimento deste trabalho. O capítulo se inicia abordando os conceitos básicos de backup de dados, abrangendo aspectos importantes como, segurança de dados e criptografia de arquivos. Em seguida, este capítulo tratará conceitos sobre, migração de dados, computação nas nuvens, padronização da informação, entre outros conceitos de grande importância para o entendimento deste trabalho como um todo.. 2.1 Backup de dados Backup é uma palavra em inglês que significa cópia de segurança de um dispositivo de armazenamento (sistema operacional, banco de dados, sistemas administrativos, entre outros.) a outro para que possam ser restaurados em caso de perda dos dados originais. É cada vez maior o número de empresas, organizações e usuários que perdem anos de vida através da perda de dados importantes, sejam estes causado por desastres lógicos, físicos ou fatores humanos. AGUIRRE et al. (2006) relata que cerca de 90 porcento das empresas de pequeno porte não realizam regularmente o backup de segurança dos dados, o que resulta na perda de renda, produtividade e clientes. As causas mais comuns em relação à perda dos dados, segundo AGUIRRE et al. (2006); Packard (2010), é o mau funcionamento ou falhas nos equipamentos de hardware e as falhas humanas, como, exclusão ou alteração acidental de dados ou arquivos, instalação de softwares, roubo de informação, além de incêndio ou desastres naturais, entre outros. A Figura 2.1 mostra os resultados de uma pesquisa realizada em 2002 sobre os principais problemas relacionados à perda de dados corporativos.. 8.

(26) 2.1. BACKUP DE DADOS. Figura 2.1 Principais erros que levam a perda de dados (Packard, 2010). 2.1.1. Tipos de mídia para backup de dados. Fazer cópia de segurança dos dados não necessariamente significa que seus dados estão totalmente protegidos contra danos ou catástrofes. Além da realização do backup dos dados, é necessário definir o melhor tipo de dispositivo de armazenamento a ser utilizado para manter essas cópias de segurança. A escolha da mídia correta varia de acordo com local a ser armazenado tais mídias, no mais é aconselhado que além da escolha da mídia correta, é preciso manter essas mídias em locais seguros, de acesso restrito e com menor probabilidade de danos e fatores de risco. As mídias mais utilizadas para cópias de segurança de dados são as seguintes (Fialho, 2007): • Fitas - Também conhecidas como fitas streaming ou DAT. São pequenas e suas unidades podem ser instaladas tão fácil quanto as de disquete, CD, DVD, entre outros; • Discos - É o meio mais comum utilizado nos dias de hoje; sua capacidade de armazenamento é de 750 MB ou superior a terabytes. • Pen Driver - São dispositivos bastante seguros, rápidos e práticos. Usados comumente para armazenar temporariamente os dados; e. 9.

(27) 2.1. BACKUP DE DADOS. • Em nuvens - O armazenamento em nuvens é um novo meio para armazenamento de dados de forma remota. Para acesso a esse serviço, o cliente deverá contratar o mesmo mediante empresa prestadora, como por exemplo: Amazon Web Services (Amazon, 2011) e Locaweb (Locaweb, 2011). Independente do dispositivo de armazenamento utilizado, é importante considerar a importância da cópia de segurança dos dados para continuidade dos negócios de uma empresa. No Brasil está se tornando comum a utilização da Internet como um meio para compra, pagamento e solicitação de serviços. Além das inúmeras formas de armazenamento de dados, os backups de dados são divididos em diferentes tipos, para atender a diferentes necessidades. Após determinar qual o tipo de dispositivo de armazenamento utilizar, deve-se determinar que tipo de backup será utilizado. As ferramentas de backup mais utilizadas, disponibilizam opções para definir os seguintes tipos de backup: Normal, Incremental, Diferencial, Cópia e Diário. O controle sobre o tipo de backup realizado é feito pela ferramenta utilizada (Cardia, 2010; Petkovic, 2008). • Backup Normal - Todos os dados do SGBD são copiados, todo backup se inicia com um backup normal, que também é conhecido como backup total. Backups normais são demorados e exigem mais capacidade de armazenamento do que qualquer outro; • Backup Incremental - Backups incrementais são os tipos mais rápidos e de menor tamanho. Entretanto, eles são eficientes como conjuntos de recuperação, porque para restauração deve-se primeiro recuperar o normal e em seguida o incremental; e • Backup Diferencial - tendem a ser maiores e mais demorados do que os backups incrementais. Quanto à restauração, deve-se restaurar primeiro o normal e em seguida o diferencial mais recente. Os tipos de backup supracitados são normalmente aplicados a backups de sistemas operacionais, no qual se envolve um grande número de arquivos e informações sobre tal. Além desses tipos, pode-se citas os tipos utilizados por ferramentas para backup de dados armazenados em SGBD. Eles são (Oracle, 2005; MYSQL, 2010). • Backup Lógico e Físico - É uma cópia dos arquivos de armazenamento de um SGBD para outro local, seja em disco ou armazenamento off-line, como fita. Bac-. 10.

(28) 2.1. BACKUP DE DADOS. kup lógico contém os dados lógicos de um SGBD, como: tabelas, visões, índices, procedimentos, entre outros; • Backup Online e Offline - a diferença entre backup online e off-line está no momento de sua execução. Backup online é realizado enquanto o SGBD está sendo executado. Backup off-line é executado enquanto o servidor do SGBD está parado. Tais backups também são conhecidos como quente e frio; e • Backup Local e Remoto - Uma cópia de segurança local é feita na mesma máquina onde o SGBD é executado. Já um backup remoto é feito em um servidor não local. Para alguns tipos de backups, o backup pode ser iniciado a partir de um servidor remoto e gravado em um servidor local. Além dessas características, um arquivo de backup deve possuir uma característica fundamental para segurança e integridade dos dados: a utilização de criptografia dos dados mantidos pelo backup. Existem inúmeros algoritmos para criptografia de dados, tanto de 64 quanto de 128 bits, o que garante ainda mais a segurança e integridade dos dados (Packard, 2010).. 2.1.2. Segurança dos dados. A segurança dos dados é um conjunto de técnicas, processos e componentes que visa garantir certo nível de confiabilidade às transações digitais. A ferramenta que proporciona e garante o nível de confiabilidade requerida é a proteção. O que se visa é proteger o valor da informação. Esse valor depende de três princípios básicos: confidencialidade, integridade e disponibilidade dos dados (CARUSO and STEFFEN, 1999; van Bon, 2006). • Confidencialidade - Proteção das informações contra o acesso e uso não autorizados; • Integridade - precisão, inteireza e pontualidade das informações; e • Disponibilidade - as informações devem ser acessíveis em qualquer ocasião acordada. Essa acessibilidade depende da continuidade proporcionada pelos sistemas de processamento das informações.. 11.

(29) 2.1. BACKUP DE DADOS. 2.1.3. Criptografia dos dados. Uma solução adotada para proteção dos dados é a utilização de criptografia. De acordo com CARUSO and STEFFEN (1999), criptografia é um processo matemático usado para embaralhar os dados, ou a ciência e a arte da transformação de mensagens tornandoas seguras e imunes a ataques. A Figura 2.2 mostra os componentes envolvidos na criptografia (FOROUZAN, 2004).. Figura 2.2 Componentes envolvidos na criptografia (FOROUZAN, 2004). Antes de ser criptografada, uma mensagem é denominada como texto limpo. Após ser criptografada, passa a ser conhecida como texto cifrado. Um algoritmo de cifragem é responsável por tal transformação. O processo reverso é feito através de um algoritmo de decifragem, responsável por transformar o texto cifrado em um texto claro. O transmissor utiliza um algoritmo de cifragem, enquanto o receptor um algoritmo de decifragem (FOROUZAN, 2004). Processos de criptografia e descriptografia utilizam a técnica de cifras públicas, que utiliza chaves secretas para criptografar ou descriptografar mensagens. Para criptografar uma mensagem, faz-se necessário o uso de um algoritmo de criptografia, uma chave e uma mensagem limpa. Desse conjunto origina-se o texto criptografado. Para descriptografar essa mensagem, precisa-se de um algoritmo de descriptografia, a chave utilizada na criptografia e a mensagem. Esse conjunto revela a mensagem original. A Figura 2.3 ilustra a idéia (FOROUZAN, 2004). Os algoritmos de cifragem e decifragem são públicos, podem ser usados por qualquer um. As chaves são secretas, precisam ser protegidas.. 2.1.4. Algoritmo triple des (3DES). É o principal algoritmo de criptografia utilizado comercialmente por aplicações na Internet. O algoritmo triple DES usa chaves de 168 bits. Esse algoritmo é uma extensão. 12.

(30) 2.2. MIGRAÇÃO DE DADOS. Figura 2.3 Processo de criptografia (FOROUZAN, 2004). do algoritmo DES. Triple ou três significa que esse algoritmo é três vezes mais pesado e mais seguro que o DES, porque criptografa as mensagens três vezes seguidas, usando o DES. Então, em suma, ele usa três chaves diferentes de 56 bits, que combinadas, resultam em uma chave de 168bits. O Triple DES é utilizado em diversos aplicativos da Microsoft (CARUSO and STEFFEN, 1999; Carmona, 2005).. 2.2 Migração de dados Migração de dados é o processo de transferência de informação de uma base de dados para outra, com finalidade de economizar recursos e melhoria de controle e desemprenho. Existem muitos motivos que levam uma empresa a decidir sobre a migração de dados para tecnologias de gerenciamento de dados mais atuais. Antes de migrar, uma empresa deve escolher cuidadosamente a tecnologia que atenda às necessidades atuais e futuras da empresa. Todos os projetos de migração embutem certo nível de risco. Entretanto, um projeto de migração bem planejado e corretamente executado pode fazer com que a empresa proporcione acesso aos dados sem problemas (STERN, 2010). Existem inúmeras razões que levam uma empresa a optar pela migração de dados (IBM, 2010). Dentre elas: • Simplificação da infra-estrutura - Ao simplificar a arquitetura de TI e integrar todos os componentes em uma só solução, pode-se economizar recursos e melhorar o controle; • Redução de Custos - Hoje, a maioria das companhias que se expõem à possibilidade de migrar, escolhe estratégica e proativamente aumentar o valor do negócio, vinculando os objetivos da empresa com a infra-estrutura de TI. Migrar para outras tecnologias pode proporcionar soluções de impacto que oferecem grande flexibilidade e liberdade de escolha;. 13.

(31) 2.2. MIGRAÇÃO DE DADOS. • Melhorar rendimento das aplicações - Permite que os clientes desfrutem de um melhor serviço e que a equipe de TI administre melhor os sistemas e responda aos objetivos do negócio com maior eficácia; • Gestão dos dados - migração de dados para melhores servidores com melhor capacidade de gerir dados sem comprometer a confiabilidade dos mesmos; e • Reduzir complexidade e melhoria de gestão - A dificuldade em gerir e adaptarse a certas tecnologias obriga muitas empresas a abandonar e migrar para outras de melhor gestão. Ao migrar dados, existem diversos fatores a serem considerados. Em primeiro lugar, a empresa deve decidir o tipo de migração. Gateway ou migração completa. Na migração com gateway, os dados continuam no banco de dados antigo e são acessados através de um software especial denominado gateway. O gateway lê e grava os dados no SGBD antigo. Mas, do ponto de vista do aplicativo, é como se os dados estivessem no SGBD atual. Por esse motivo os gateways são normalmente lentos. Na migração completa, os dados, objetos e o código fonte do aplicativo são convertidos para acessar os dados do novo SGBD. Uma vez que este tipo de migração seja feito, todas as referências ao SGBD antigo são perdidas. Esse é o tipo de migração mais comum, mas cabe ressaltar que existem outras alternativas além da migração completa.. 2.2.1. Níveis de migração. A migração de dados é classificada em três níveis. Esses níveis determinam a quantidade de trabalho e os elementos envolvidos na migração. Por simplicidade, neste trabalho nos referimos aos três níveis simplesmente como nível um, dois e três (STERN, 2010). • Nível 1 - Uma migração de nível 1 inclui apenas o esquema, ou definições de dados, e os dados em si. O cenário mais comum para uma migração de nível 1 é quando o aplicativo está usando uma interface que existe tanto no sistema de banco de dados antigo quanto no novo. É necessário migrar somente as definições de dados e os dados em si. São também necessários trabalhos de configuração, mas, uma vez que os dados tenham sido migrados, o aplicativo estará funcionando; • Nível 2 - Uma migração de nível 2 inclui o esquema, os dados e alterações no código fonte. Este nível pode ser visto como uma extensão do nível 1. Por exemplo,. 14.

(32) 2.3. COMPUTAÇÃO NAS NUVENS. em uma migração de nível 1 onde são usadas diferentes versões da mesma interface no banco de dados antigo e no novo. Neste caso, migrar apenas o esquema e os dados não faz com que o aplicativo funcione completamente; é necessário analisar as diferenças entre as versões. Uma vez que essas diferenças tenham sido identificadas, pode-se alterar o código para que o aplicativo funcione com o sistema de banco de dados novo; e • Nível 3 - Uma migração de nível 3 é bastante diferente dos dois níveis anteriores. Nos níveis anteriores, o único objetivo da migração é alterar o sistema de armazenamento de dados, isto é, fazer com que o aplicativo funcione com o novo banco de dados, ao invés de apenas os recursos específicos oferecidos pelo novo banco de dados. Em uma migração de nível 3, a maioria dos aplicativos são reescritos. Normalmente, o nível de migração estará em um ou qualquer ponto intermediário nessa escala de três níveis.. 2.3 Computação nas nuvens A utilização de software em máquinas locais é um fator que leva à insatisfação de usuários finais em virtude do baixo desempenho da incompatibilidade de software com hardware. Esse e outros motivos estão fazendo com que, de acordo com Voas and Zhang (2009), computação nas nuvens receba um número cada vez maior de seguidores, apesar desta não possuir uma definição concreta. Abaixo a Figura 2.4 apresenta a arquitetura de computação em nuven.. Figura 2.4 Arquitetura da Computação nas nuvens. 15.

(33) 2.3. COMPUTAÇÃO NAS NUVENS. Uma característica de computação nas nuvens é a simplicidade e acessibilidade, pois, a partir de qualquer dispositivo com acesso à Internet, pode-se manipular uma aplicação nas nuvens. Por sua vez, Grossman (2009) define que computação nas nuvens, além de oferecer todos os recursos disponíveis na Internet, tem por objetivo oferecer serviços sob demanda, tais como: • Infrastructure As A Service (IAAS) - Toda infra-estrutura está concentrada em um centro de dados e oferece serviços para seus clientes; • Platform As A Service (PAAS) - É um serviço oferecido nas nuvens para dar total suporte a desenvolvedores corporativos na criação e teste de aplicações web; • Software As A Service (SAAS) - O software é executado em um servidor sem a necessidade de ser instalado localmente; e • Data Storage As A Service (DSAAS) - Permite o armazenamento de dados nas nuvens em data centers com capacidade de armazenamento escalável e praticamente ilimitado. Segundo Maggiani (2009), os serviços SAAS e DSAAS são os mais vantajosos disponíveis nas nuvens, pois permitem a disponibilização de aplicações e armazenamento de dados, que podem ser acessados de qualquer computador através de um navegador.. 2.3.1. Backup de dados em nuvens. De acordo com Whitehouse (2009), a utilização do serviço DSAAS é possível porque a capacidade de armazenamento disponível através da nuvem é enorme, aparentemente interminável. A proposta é a seguinte: ao invés de se possuir e manter sua própria infraestrutura, computação nas nuvens oferece ao usuário o armazenamento de informações em seus servidores, acessíveis sempre que necessário. A habilidade de se fazer backup de banco de dados e armazená-los em nuvens é fundamental para a sua segurança, uma vez que esses estarão guardados em unidades externas seguras. Backups armazenados em nuvens são mais acessíveis e na maioria das circunstâncias são mais rápidos para restaurar e muito mais confiáveis (Oracle3, 2008). De acordo com Staimer (2008), métodos primitivos para proteção dos dados têm se tornado cada vez mais frustrantes para organizações que são obrigadas a adotar soluções mistas para assegurar a proteção dos dados. Armazenamento em nuvens está se. 16.

(34) 2.3. COMPUTAÇÃO NAS NUVENS. tornando uma atraente opção para proteção dos dados, além de oferecer benefícios incontáveis, como o consumo baseado em preços e a capacidade operacional, que fazem dessa abordagem uma alternativa atraente diante dos métodos tradicionais.. 2.3.2. Aplicações cloud para backup/recuperação de dados. Segundo Oracle2 (2008), apesar da difusão dos conceitos de computação nas nuvens aliados à idéia de utilizar as nuvens como nova alternativa para armazenamento de dados serem algo relativamente novo, algumas empresas já estão trabalhando em soluções para atender a esse novo conceito de backup de dados. Dentre estas empresas, pode-se citar a Oracle, com o módulo Oracle Secure Backup Cloud integrado ao módulo Oracle Recovery Manager (RMAN) e ao serviço Amazon Simple Storage Service (S3), a Microsoft, com integração do seu módulo SQL Data Service ao Zmanda Internet Backup (ZIB), e a Asigra, com o desenvolvimento de uma aplicação para backup de dados em nuvens: • Oracle Secure Backup Cloud - Oracle Secure Backup Cloud é um módulo integrado ao Oracle Recovery Manager e que oferece a possibilidade de se fazer backup de banco de dados nas nuvens. Segundo Oracle3 (2008), quando comparado aos métodos tradicionais, o armazenamento nas nuvens é mais acessível, mais rápido para restaurar e, na maioria das circunstâncias, mais confiável. Ainda de acordo com Oracle3 (2008) o novo módulo Oracle Secure Backup Cloud possui inúmeras vantagens sobre os métodos tradicionais de backup como: acessibilidade contínua, confiabilidade e redução de custos; • Zmanda Cloud Backup - Segundo Zmanda (2008), Zmanda Cloud Backup é um software desenvolvido para realização de backups online. Seu objetivo é a desafiadora tarefa de backups de arquivos, aplicações, SGBD, dispositivos de e-mail e de rede. Todos esses dados devem ser protegidos para garantir a continuidade e conformidade do negócio. Possui um baixo custo, é fácil de utilizar e configurar, e apresenta soluções para empresas de pequeno e médio portes que necessitam de backup e recuperação contra desastres; e • Asigra Hybrid Cloud Backup - De acordo com Staimer (2008), Asigra é uma empresa que tem sido líder em soluções de backups distribuídos por 23 anos. O primeiro backup com base em armazenamento remoto foi lançado por ela em 1986. O módulo Asigra Hybrid Cloud Backup and Restore da Asigra supera aplicações como Oracle Secure Backup Cloud e Zmanda Cloud Backup, pois seu objetivo é. 17.

(35) 2.4. PADRONIZAÇÃO DA INFORMAÇÃO. a realização de backups de ambientes híbridos. Com ele é possível verificar se um backup está corrompido ou não antes que seu armazenamento seja efetivado. Em termos de vantagem em nuvens, o Asigra Hybrid Cloud Backup possui as mesmas vantagens oferecidas pelas aplicações supracitadas.. 2.4 Padronização da informação De acordo com dicionário popular, padronizar é manter algo em estado concreto, é organizar a informação de forma regular, padronizando o comportamento das informações de forma estruturada, tornando seu entendimento geral e eficiente. Adotar padronização da informação proporciona melhores resultados quanto há necessidade de troca e entendimento da informação entre as partes envolvidas. Existem casos que há também redução de custo, tanto financeiro, quanto temporal. Hoje, com a complexidade dos processos produtivos e gerenciais, torna-se cada vez mais necessário registrar de forma padronizada a maneira de se produzir e trocar informações. Portanto, a padronização deve ser vista dentro de empresas, indústrias e organizações como algo benéfico a todos, desde o nível operacional ao estratégico (Crem, 2010). A necessidade de se padronizar não se restringe apenas às áreas da computação. Segundo Jacoski and Lamberts (2002) houve um crescimento acentuado nos últimos anos de uso de ferramentas eletrônicas, o que conseqüentemente gera um grande volume informações, que apesar da importância, são incapazes de se relacionar. A falta de padronização da informação dificulta na criação de relatórios gerenciais entre os vários departamentos de uma empresa (TOLEDO et al., 2010). No dia 16 de novembro de 2006 a Agência Nacional de Saúde (ANS) apresentou ao mercado o projeto TISS (Troca de Informação da Saúde Suplementar), que visa o fornecimento de informações por parte dos prestadores de serviços médicos. Dados que antes eram trocados via FAX, passam a ser trocados via padrão TISS, tornando a informação clara, padrão e manipulável, permitindo a ANS ter total controle dos dados enviados (Saúde, 2008). Em resumo, padronizar uma informação é torná-la legível a todos os sistemas que a manipulam, independente de plataforma, linguagem ou fabricante. Assim como Inglês e Espanhol foram definidas como linguagens padrão de comunicação entre pessoas, em informática a ideia é a mesma, mas para isso são utilizadas linguagens como XML, YAML, JSON (JSON, 2010), Comma-Separated Values (CSV), entre outras. Sendo. 18.

(36) 2.4. PADRONIZAÇÃO DA INFORMAÇÃO. assim, as seções a seguir abordam os principais padrões utilizados para padronização da informação.. 2.4.1. eXtensible Markup Language (XML). XML é uma linguagem de marcação utilizada para definição e padronização de estruturas. Sua definição segundo Ray (2006) não é tão fácil de definir, uma vez que, em um nível, XML é um protocolo para conter e gerenciar informações. Em outro, é uma família de tecnologias que pode fazer tudo, desde formatar documentos até filtrar dados. Em um nível mais alto, é uma filosofia para tratamento de informações, que busca o máximo de utilidade e flexibilidade para os dados. XML representa os dados através de marcações intercaladas para descrever os dados e suas propriedades. As marcações são predominantemente representadas em forma de tags que se distinguem dos textos não marcados. Toda Marcação aberta deverá ser fechada para indicar o início e fim do escopo.Abaixo a Figura 2.5 apresenta um exemplo simples de documento XML.. Figura 2.5 Documento XML. Os documentos XML podem ser validados a partir de estruturas pré-definidas, de forma que se possam ter vários documentos que sigam a mesma estruturação (W3C, 2010). Estas estruturas podem ser definidas através do XML Schema. Normalmente um documento XML bem formatado possui uma estrutura equivalente que o defina.. 2.4.2. XML Schema. É um padrão utilizado para definição de estruturas e representação de dados em XML, recomendada pela World Wide Web Consortium (W3C) em maio de 2001. XML Schema. 19.

(37) 2.4. PADRONIZAÇÃO DA INFORMAÇÃO. representa uma importante alternativa ao uso de DTD (W3C, 2010). Esse padrão permite a definição de tipos de dados usando XML. Os tipos de dados ajudam na restrição dos dados a serem validados. Tais tipos são divididos em, tipos especificados pelo usuário e tipos internos. Os internos fornecem tipagem permitida para os valores de entrada das marcações, tipos como, string, número inteiro, decimal, lógico, data, tempo, binários, entre outros. Os tipos definidos pelo usuário são especificados como parte do esquema e podem possuir restrições adicionais para os tipos internos, como um intervalo de números ou uma lista explicitamente enumerada de valores (GRAVES, 2003). A Figura 2.6 apresenta a definição do esquema do documento XML da Figura 2.5. Figura 2.6 Documento XMLSchema. Um documento XMLSchema é constituído de elementos, atributos e regras que o definem. Os elementos são definidos pela palavra reservada ELEMENT, que por sua vez utiliza os atributos NAME e TYPE para definir o nome do elemento e o tipo de informação aceita. Além disso, podem-se definir restrições através do uso dos elementos SIMPLETYPE e RESTRICTION. Os atributos são definidos de forma semelhante aos elementos, porém, utilizando a palavra reservada ATTRIBUTE, juntamente com os atributos NAME e TYPE. Além. 20.

(38) 2.4. PADRONIZAÇÃO DA INFORMAÇÃO. disso é possível utilizar outros atributos no XML Schema para funções específicas, por exemplo, se uma marcação possui valor fixo ou padrão, definidos respectivamente pelos atributos FIXED e DEFAULT (W3C, 2010).. 2.4.3. YAML Ain’t Markup Language (YAML). É uma linguagem aberta para serialização de dados projetada para ser amigável e mais próxima possível da linguagem humana. Projetada para trabalhar nas linguagens de programação mais modernas em tarefas comuns. YAML foi concebida para ser útil e amigável para as pessoas que trabalham com dados e os manipulam (YAML, 2010). Inspirada em conceitos de linguagens como XML (Fonseca and Simões, 2007). Para melhor representação dos dados, a YAML é dividida em três partes: classe, sintaxe e processador. A classe representa um documento YAML. A sintaxe é a representação da YAML através de uma série de caracteres e palavras reservadas. Por fim, o processador YAML é uma ferramenta usada para processamento e conversão das informações. Em YAML todos os dados podem ser representados adequadamente, como combinação de listas e dados escalares. A sintaxe é relativamente simples e de fácil mapeamento, aceita os tipos mais comuns de dados assim como a maioria das linguagens de alto nível. Além disso, YAML utiliza uma notação baseada em identação e um conjunto de caracteres distintos dos utilizados por XML, fazendo com que as duas linguagens sejam facilmente combinadas. A Figura 2.7 apresenta o exemplo de um documento XML convertido para YAML.. Figura 2.7 Documento XML para YAML. 21.

(39) 2.5. APLICAÇÕES WEB. 2.4.4. JavaScript Object Notation (JSON). É um formato leve utilizado para troca de dados e objetos Javascript. Baseada em um subconjunto da linguagem de programação. JSON é em formato texto e completamente independente de linguagem de programação e possui implementação para maioria das linguagens disponíveis no mercado (JSON, 2010). JSON utiliza como limitador de escopo a chave aberta que indica o início de um objeto, e a chave fechada indicando o fim. Os pares de nome e valor são separados utilizando virgula e ":".Esta estrutura pode ser combinada aos caracteres [ e ] para representar uma coleção de objetos. A Figura 2.8 apresenta dois tipos de informação, dados simples, representados pelos pares, nome e valor, e uma lista de objetos, representados pelo [ seguidos dos pares, nome e valor, e o ]. Conforme abaixo.. Figura 2.8 Documento JSON. 2.5 Aplicações WEB Uma aplicação Web é um sistema que permite a seus usuários executar a regra de negócio (ou lógica do negócio, business logic) com um navegador (Conallen, 2003); uma aplicação Web pode ser desde um simples site, até uma aplicação Web completa. Existem destinções entre uma aplicação Web e um site. Uma aplicação Web é um site em que a entrada do usuário, navegação e entrada dos dados afeta diretamente o estado do negócio, além dos contadores e logs de acesso. Já um site é essencialmente uma página constituída de texto, objetos, links, entre outros, usada como front end para uma aplicação de negócio (Conallen, 2003). As aplicações WEB podem ser classificadas em duas categorias: aplicações hipermídia e aplicações de software. As aplicações hipermídia são aplicações não convencionais caracterizadas pela publicação de informação utilizando links, âncoras e estrutura de acesso disponibilizado através da WEB. Já a aplicação de software depende da infraestrutura Web para sua execução. O termo aplicação WEB representa uma aplicação que possui características de ambas as aplicações, hipermídia e software.. 22.

(40) 2.5. APLICAÇÕES WEB. 2.5.1. Tecnologias Web. Dependendo da linguagem de programação escolhida, inúmeras tecnologias poderão ser aplicadas para se chegar a um resultado final esperado, como tais tecnologias pode-se citar: • Hypertext Markup Language (HTML) (Markup, 2010) - É uma linguagem clara para publicação de hipertexto na Internet. É um formato não proprietário mantido pela W3C. A HTML pode ser desenvolvida usando simples editores de texto até sofisticados editores. HTML utiliza tags para estruturar o texto em cabeçalhos, parágrafos, listas, links, entre outros; • Cascading Style Sheets (CSS) (CSS, 2010) - É um mecanismo simples utilizado para adicionar estilo a documentos Web como, fontes, cores, espaçamentos, entre outros. Um documento CSS pode ser escrito no próprio documento HTML, ou em um documento separado que para ser aplicado ao documento HTML; • JavaServer Pages (JSP) (JSP, 2010) - É uma tecnologia criada para desenvolvimento de páginas Web, permitindo que desenvolvedores possam criar de forma rápida e fácil páginas Web dinâmicas, além de potencializar os sistemas existentes. Como parte da família da tecnologia Java, a tecnologia JSP permite o desenvolvimento rápido de aplicativos baseados na Web que são independentes de plataforma. Tecnologia JSP separa a interface de usuário de geração de conteúdo, permitindo aos designers alterar o layout geral da página sem alterar o seu conteúdo dinâmico; • Javaserver page Standard Tag Lib (JSTL) (JSTL, 2010) - É uma coleção de bibliotecas encapsuladas com o objetivo de oferecer as principais funcionalidades utilizadas pelas páginas web em JSP. Assim como HTML e JSP, JSTL define um conjunto de tags para acesso às funcionalidades encapsuladas. Como tais funcionalidades citam-se: formatação de data e hora, acesso a banco de dados e comando para processamento dos dados; e • JavaScript (Flanagan, 2002) - É uma linguagem de programação leve, interpretada e com recursos de orientação a objetos. Adicionada aos principais navegadores de Internet, aprimora a programação Web com a adição de objetos que representem janelas, botões, caixas de texto, entre outros. O JavaScript do lado cliente permite que o conteúdo executável seja incluído na página Web. Isso significa que uma. 23.

Referências

Documentos relacionados

1- Indica com P, se a frase estiver na voz passiva e com A se estiver na ativa. Depois, passa-as para a outra forma. a) Vimos um cisne moribundo.. Assinala com um X o

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

Os casos não previstos neste regulamento serão resolvidos em primeira instância pela coorde- nação do Prêmio Morena de Criação Publicitária e, em segunda instância, pelo

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Os ativos não circulantes classificados como disponível para venda são mensurados pelo menor montante entre o seu custo contábil e o seu valor justo, líquido das despesas com a

servidores, software, equipamento de rede, etc, clientes da IaaS essencialmente alugam estes recursos como um serviço terceirizado completo...

Para os materiais de ambas as espécies observa-se uma diminuição da estabilidade térmica dos filmes de nanocelulose obtidos após 10 ciclos de processamento mecânico no

4 RESULTADOS E DISCUSSÃO 4.1 Caracterização da cobertura florestal e da biodiversidade vegetal no entorno dos cultivos de tomate na região de Apiaí-SP a Módulos