• Nenhum resultado encontrado

informações de uma aplicação, a terceira parte, controle, é responsável por coordenar as camadas Modelo e Visão, exibindo a interface correta ou executando algum trabalho que a aplicação precisa completar (Gonçalves,2007).

• Modelo - O modelo é o objeto que representa os dados do programa. Maneja esses dados e controla todas as transformações. Esse modelo não tem conhecimento específico dos controladores e das apresentações, nem contém referência para eles. Portanto, o modelo é composto pelas classes que trabalham no armazenamento e busca de dados;

• Visão - é o que maneja a apresentação visual dos dados representados pelo Mo- delo. Em resumo, é responsável por apresentar os dados resultantes do modelo do usuário. Por exemplo, uma apresentação poderá ser um local administrativo onde os administradores se logam em uma aplicação. Cada administrador poderá visualizar uma parte do sistema que outro não vê; e

• Controle - é o objeto que responde as ordens executadas pelo usuário, atuando sobre os dados apresentados pelo modelo, decidindo como o modelo deverá ser alterado ou ser revisto, e qual apresentação deverá ser exibida. Por exemplo, o controlador recebe um pedido para exibir uma lista de clientes interagindo com o modelo e entregando uma apresentação onde essa lista poderá ser exibida.

O modeloMVCé uma forma de desenvolvimento que ajuda na manutenção do sis- tema, um padrão muito aceito no desenvolvimento de aplicações Java, principalmente no de aplicações escritas para Web.

A separação lógica da aplicação assegura que a camada Modelo não conheça o que será exibido; limitando-se a representar as partes do problema a ser resolvido pela apli- cação. Igualmente, a camada de apresentação está condicionada apenas na exibiçãp dos dados, e não com a implementação da lógica de negócios que é controlada pelo modelo. O controlador, como um gerenciador de tráfego, dirige as apresentações a serem exi- bidas e com as devidas mudanças de dados e recuperações vindas da camada modelo (Gonçalves,2007).

2.7

Considerações Finais

Este capítulo abordou os conceitos básicos necessários para o entendimento deste traba- lho. Assim, o capítulo tratou os conceitos relacionados a backup, segurança, criptografia

2.7. CONSIDERAÇÕES FINAIS

e migração de dados, uma vez que, o foco principal do protótipo proposto neste trabalho, possui essas finalidades. Por conseguinte, foram apresentados os conceitos relacionados à computação nas nuvens, tendo como foco principal as principais ferramentas respon- sável pela realização de backup em nuvens, bem como também o armazenamento de dados.

A padronização da informação também é foco principal deste trabalho, uma vez que o mesmo propõe a padronização dos arquivos de backup de dados com objetivo de des- vincular sua dependência entre ambientes ou aplicações, dando liberdade aos mesmos para serem usados por qualquer aplicação que conheça sua estrutura. Para isso foram pesquisadas as principal linguagem utilizadas para padronização e intercâmbio de dados entre sistemas heterogêneos.

Neste contexto as sequintes linguagens foram encontradas, e seus conceitos descritos neste capítulo: XML, cujo foco principal foi à tecnologia XML Schema, utilizada para desenvolvimento da estrutura proposta por esse trabalho, aBKPMLa ser vista no pró- ximo capítulo,YAMLeJSONforam utilizadas para compor o processo de trasformação dos dados de um arquivo de backup para esse tipo de formato, além de outras, que por sua simplicidade e popularidade, não se fez necessário abordar.

Aplicações e tecnologias Web também foram discutidas neste capítulo. É impor- tante ressaltar que tais tecnologias apresentadas são voltadas unicamente para o ambi- ente JAVA, embiente esse utilizado para desenvolvimento do protótipo. Além das tec- nologias, foram abordados os principais conceitos de padrões de projeto, bem como os principais padrões utilizados para desenvolvimento deste trabalho.

3

Backup Markup Language (BKPML)

A modernização dos sistemas de informação, a cada dia, tem fortalecido a dependência dos dados em relação às aplicações proprietárias que, em sua maioria, buscam a restrição dos dados a uma única ferramenta, fortalecendo o vínculo obrigatório entre clientes e fornecedores de software. Para resolver tal problema, inúmeros estudos e soluções têm surgido nas áreas de pesquisa de engenharia de software. eXtensible Markup Language

(XML) é um exemplo que se pode citar como resultado de tais pesquisas. Este capítulo

tem por objetivo propor uma nova estrutura, não proprietária, baseada em XML, cujo objetivo é a padronização de arquivos de backup de dados, denominadaBKPML. Além disso, serão apresentados todos os elementos e tipos que a constituem.

3.1

Introdução

Após a evolução dos Sistemas de Informação (SI) na década de 80, com o surgimento da arquitetura cliente/servidor e o conceito de sistemas integrados, a informação deixa de ser centralizada e passa a ser compartilhada entre sistemas através de uma rede de com- putadores, deixando os sistemas centralizados/legados isolados, mas com uma grande quantidade de dados de suma importância para tomada de decisões de empresas e orga- nizações (Turban et al.,2002;Laurindo,2000).

Para manter a interoperabilidade entre os sistemas novos e legados, foram desenvol- vidos diversos frameworks como, Common Object Request Broker Architecture (CORBA)

(OMG,2010), Remote Method Invocation (RMI) (RMI,2010) e Distributed Component

Object Model (DCOM) (DCOM, 2010). Apesar de cumprirem seu propósito, tais fra-

meworks apresentavam limitações entre linguagens de programação, nível de dificuldade

elevada, alguns por serem frameworks proprietários e o custo elevado, que na maioria das vezes não compensava manter a interoperabilidade entre as aplicações, levando al-

3.1. INTRODUÇÃO

gumas empresas a utilizar os sistemas em paralelo, atualizando-os de forma manual. Com o surgimento das linguagens para definição e padronização de estruturas de dados comoXML, notou-se a grande vantagem de se utilizar tal linguagem para padro- nização de dados e interoperabilidade dos mesmos entre aplicações heterogêneas. Os

Web Services são exemplos que podem ser citados, pois possuem em sua especificação

a linguagemXMLpara troca de informações entre aplicações.

Além dos Web Services, existem inúmeras linguagens derivadas de XML com ob- jetivo de interoperabilidade como a eXtensible Business Reporting Language (XBRL)

(XBRL,2010), eXtensible Scientific Interchange Language (XSIL) (CACR,2010), Sca-

lable Vectorial Graphics (SVG) (SVG,2010), Mathematical Markup Language (Math- ML) (MathML,2010), entre outras.

ABKPMLé uma nova linguagem eletrônica, baseada emXML, desenvolvida como parte integrante deste trabalho, com intuito de padronizar os arquivos de backups de banco de dados. Seu objetivo é desvincular a dependência dos backups do seuSGBDde origem, facilitando assim a recuperação do mesmo em qualquer outroSGBD.

Esta linguagem, com o apoio de uma aplicação, permite que um arquivo de backup possa ser restaurado em qualquerSGBD, independente da origem dos dados. Outra van- tagem é a possibilidade de transformar os arquivosBKPMLpara arquivos secundários (Texto, Excel,CSV, XML,JSONeYAML). ABKPMLfacilita a manipulação das infor- mações de acordo com as necessidades dos usuários, uma vez que a mesma defende a liberdade das informações e a flexibilidade dos dados.

SGBDproprietários possuem como objetivo principal o armazenamento, segurança,

backup e restauração dos dados em suas plataformas proprietárias, quando copiados para

arquivos de backup, os dados oriundos de taisSGBDsó poderão ser restaurados no seu ambiente de origem, não podendo ser restaurados em outros ambientes. Com arquivos em formato BKPML, esses dados tornam-se independentes de aplicação, facilitando a manipulação dos dados por parte dos usuários.

Para facilitar a persistência e recuperação dos dados, foram selecionados dois for- matos de arquivos para armazenamento de grandes volumes de dados,CSV(Creativyst,

2011) eJSON(JSON,2010).

CSVé um formato de arquivo que armazena dados tabelados e que utiliza delimita- dores (vírgula e quebra de linha) para separar os valores. O formato também usa aspas em campos no qual são usados os caracteres reservados (vírgula e quebra de linha).

JSONé um formato adequado para intercâmbio de dados computacionais, e utilizado principalmente para tráfego de informações em ambientes heterogêneos via Hypertext

3.1. INTRODUÇÃO

Transfer Protocol (HTTP) (Tanenbaum,2003), assim comoXML.JSONe doCSVpos- suem implementações em várias linguagens de programação, o que viabiliza a utilização dos mesmos junto aXML(JSON,2010).

Os principais fatores que levaram a utilização do JSONe CSV como as principais tecnologias para persistência dos dados na estruturaBKPML, foram:

• Recuperação da Informação - JSON e CSV possuem uma estrutura padroni- zada para manter os dados e facilitar a recuperação dos mesmos. Suas interfaces possuem implementações em diversas linguagens de programação, o que facilita ainda mais o processo de recuperação das informações, além de visualmente se- rem mais organizados que outras estruturas;

• Representação da Informação - emXMLexistem certas dificuldades em se re- presentar alguns tipos de dados, lista é um exemplo. JSON, nesses casos, tem se mostrado uma linguagem promissora para representação de dados de tipos mais complexos, pois, através da sua forma de marcação, é possível representar listas de objetos. CSV, por sua vez, apesar de não ser tão claro e organizado quantoJSON, possui uma estrutura conhecida o que facilita muito a recuperação da informação através de outras ferramentas; e

• Suporte em várias linguagens -JSONeCSVpossuem suporte em várias lingua- gens de programação, facilitando assim o uso da estrutura e reduzindo o trabalho por parte dos programadores no desenvolvimento de algoritmos para retorno dos dados em uma estrutura com marcação não padronizada.

Além do CSV e JSONforam pesquisadas outras alternativas para uso e persistên- cia dos dados. Hoje existem alternativas para geração de estrutura e marcação de texto,

YAML Ain’t Markup Language (YAML) é uma dessas alternativas. YAML é um for- mato para serialização de dados legível por humanos, assim comoXML, mas com uma notação muito mais leve e legível (YAML,2010).

Apesar da YAMLtambém possuir implementações em diversas linguagens de pro- gramação, seu uso ainda se torna restrito por se tratar de uma nova linguagem para representação de informação, o que torna difícil seu uso e implementação em outras fer- ramentas, além da baixa aceitabilidade das mesmas por parte de usuários leigos em tal tecnologia. Apesar da YAMLnão ser utilizada para persistir as informações na estru- turaBKPML, a mesma será utilizada como uma das linguagens para transformação dos arquivosBKPML.