CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA FACULDADE DE TECNOLOGIA DE LINS PROF. ANTONIO SEABRA CURSO SUPERIOR DE TECNOLOGIA EM BANCO DE DADOS DIEGO RAFAEL PERIN HONORIO ELCIO MANOEL DE SOUZA JUNIOR DESENVOLVIMENTO DE UM PROTÓTIPO DE DISCO VIRTUAL LINS/SP 1º SEMESTRE/2012 CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA FACULDADE DE TECNOLOGIA DE LINS PROF. ANTONIO SEABRA CURSO SUPERIOR DE TECNOLOGIA EM BANCO DE DADOS DIEGO RAFAEL PERIN HONORIO ELCIO MANOEL DE SOUZA JUNIOR DESENVOLVIMENTO DE UM PROTÓTIPO DE DISCO VIRTUAL Trabalho de Conclusão de Curso apresentado à Faculdade de Tecnologia de Lins para obtenção do Título de Tecnólogo em Banco de Dados. Orientador: Prof. Me. Anderson Pazin LINS/SP 1º SEMESTRE/2012 DEDICATÓRIA (Diego) A minha mãe Cintia Raquel Perin e ao meu padrastro Marcos Rogério Bruno por sempre acreditarem em minha capacidade. A todos que passaram pela minha vida e me forneceram experiência e principalmente aos meus amigos, Elcio Manoel De Souza Junior e Antonio Perini Neto, por sempre estarem presentes. DEDICATÓRIA (Elcio) A minha mãe Vânia Heloisa de Mello e a minha avó Aurelina Santanna de Mello pelo incentivo e por investirem em mim de maneira incondicional. Ao meu pai Elcio Manoel de Souza e irmão Eric Samuel Mello de Souza por me apoiarem. AGRADECIMENTO Nesta oportunidade em que é alcançada uma meta importante em nossas vidas profissionais, queremos expressar os nossos sinceros agradecimentos ao Professor Me. Anderson Pazin e Professor e Me. Mário Henrique de Souza Pardo pelo apoio e ajuda tão necessária ao desenvolvimento e realização desse trabalho. Queremos agradecer também ao Professor Me. Julio Fernando Lieira pelas oportunidades e desafios que nos engrandeceram ao longo do período escolar na faculdade e ao saudoso Professor Ygor Gonzaga de Oliveira pela amizade que nos fortaleceu para chegarmos até aqui. Aos nossos amigos professores que muito nos incentivaram. “O único homem que nunca comete erros é aquele que nunca faz coisa alguma. Não tenha medo de errar, pois você aprenderá a não cometer duas vezes o mesmo erro.” Theodore Roosevelt “Suba o primeiro degrau com fé. Não é necessário que você veja toda a escada. Apenas dê o primeiro passo.” Martin Luther King RESUMO O presente trabalho inicia-se com considerações sobre a evolução da Internet nos últimos tempos, fato que viabilizou a expansão da computação em nuvem (Cloud Computing). Entre os vários serviços de Cloud Computing está o disco virtual ou Cloud Storage, serviço cuja premissa é o armazenamento de arquivos na nuvem. O objetivo deste trabalho é focar no desenvolvimento de um protótipo de disco virtual para Faculdade de Tecnologia de Lins (FATEC), simulando um serviço de Cloud Storage. Tal desenvolvimento justifica-se no fato de que a implementação de um sistema próprio de disco virtual contribuiria para um possível aumento de desempenho escolar dos discentes da Fatec de Lins. Para fundamentar o conhecimento sobre esse tipo de serviço, realizou-se uma pesquisa de serviços similares existentes, a fim de verificar funcionalidades e compará-las para implantação no protótipo das que forem consideradas mais relevantes. Portanto, o protótipo possui as funcionalidades mais interessantes, de acordo com os requisitos necessários e coletados durante esse estudo. Os requisitos estão registrados no trabalho, assim como os diagramas, constituindo a parte documental do protótipo. O protótipo pronto é ilustrado e abordado ao final do trabalho, expondo as funcionalidades desenvolvidas. Por fim, são descritas as conclusões que ilustram as dificuldades de desenvolver um serviço web completo, e também, apresentam possíveis ampliações, atualizações e idéias para fazer do protótipo criado, um sistema completo. Isso tornaria viável a implantação e, consequentemente, o uso do disco virtual em um ambiente real. Palavras-chave: Disco virtual e Protótipo. ABSTRACT This work begins with considerations about the evolution of the Internet in recent times, a fact that enabled the expansion of the Cloud Computing. Among the various cloud computing services is the Virtual Disk or Cloud Storage service, whose premise is the storage of files in the cloud. The objective of this study is to focus on developing a prototype for Virtual Disk Lins College of Technology (FATEC), simulating a Cloud Storage service. This development is justified by the fact that the implementation of a proper system of Virtual Disk can contribute to an increase in academic performance of students Fatec Lins. In support of knowledge about this type of service, there was a survey of similar existing services in order to check features and compare them to implement the prototype of which are considered most relevant. Therefore, the prototype has the most interesting features according to the requirements and collected during the trial. The requirements are stated in the workplace, as well as diagrams, documents forming part of the prototype. The prototype is ready illustrated and discussed at the end of work, showing the features developed. Finally, the conclusions are described that illustrate the difficulties of developing a complete web service and also have possible enhancements, updates and ideas to create the prototype, a complete system. That would make feasible the implementation and therefore the use of Virtual Disk in a real environment. Keywords: Virtual Disk and prototype.. LISTA DE ILUSTRAÇÕES Figura 1.1 - Usuários de Internet no Brasil ................................................................ 21 Figura 1.2 – Ativações de novas conexões ............................................................... 22 Figura 1.3 - Serviços de Cloud Storage .................................................................... 23 Figura 1.4- Classe Java ............................................................................................ 28 Figura 1.5 - Classe/Entidade Java ............................................................................ 29 Figura 1.6 - Exemplo de um Persistence.xml ............................................................ 30 Figura 1.7 - Site com certificado SSL ........................................................................ 32 Figura 1.8 - Site sem certificado SSL ........................................................................ 32 Figura 1.9 - Conexão SSL ......................................................................................... 33 Figura 1.10 - Modelo de Camadas com o SSL/TLS .................................................. 34 Figura 2.1 - Disco Virtual UOL................................................................................... 35 Figura 2.2 - Backup UOL ........................................................................................... 36 Figura 2.3 - Planos Backup UOL ............................................................................... 36 Figura 2.4 - Disco Virtual Terra ................................................................................. 37 Figura 2.5 - SkyDrive ................................................................................................. 38 Figura 2.6 - DropBox ................................................................................................. 39 Figura 2.7 - Arquivamento DropBox .......................................................................... 40 Figura 2.8 - Planos Ubuntu One ................................................................................ 41 Figura 2.9 - Aplicativo de Sincronização Ubuntu One ............................................... 41 Figura 2.10 - Aplicativo de Sincronização Mozy (Backup) ........................................ 43 Figura 2.11 - Backup Agendado ou Automático Mozy .............................................. 43 Figura 2.12 - Planos de serviço MozyHome .............................................................. 44 Figura 3.1 – Diagrama de Caso de Uso .................................................................... 50 Figura 3.2 - Diagrama de Classe............................................................................... 51 Figura 3.3 – Mapeamento para Modelo Relacional ................................................... 52 Figura 3.4 - Diagrama de Atividades - Efetuar Logon ............................................... 53 Figura 3.5 - MVC - Efetuar Logon ............................................................................. 53 Figura 3.6 - Diagrama de Sequência - Efetuar Logon (Administrador) ..................... 54 Figura 3.7 - Diagrama de Sequência - Efetuar Logon (Usuário) .............................. 54 Figura 3.8 - Diagrama de Atividades - Cadastrar Usuário ......................................... 55 Figura 3.9 - MVC - Cadastrar Usuário ....................................................................... 56 Figura 3.10 - Diagrama de Sequência - Cadastrar Usuário (Administrador) ............ 56 Figura 3.11 - Diagrama de Atividades - Excluir Usuário ............................................ 57 Figura 3.12 - MVC - Excluir Usuário .......................................................................... 57 Figura 3.13 - Diagrama de Sequência - Excluir Usuário .......................................... 58 Figura 3.14 - Diagrama de Atividades - Listar Usuários ............................................ 58 Figura 3.15 - MVC - Listar Usuários .......................................................................... 59 Figura 3.16 - Diagrama de Sequência - Listar Usuários ........................................... 59 Figura 3.17 - Diagrama de Atividades - Ativa Usuário(s) .......................................... 60 Figura 3.18 - MVC - Ativar Usuário ........................................................................... 61 Figura 3.19 - Diagrama de Sequência - Listar Usuários (Inativos) ........................... 61 Figura 3.20 - Diagrama de Atividades - Desativar Usuário(s) ................................... 62 Figura 3.21 - MVC - Desativar Usuário ..................................................................... 62 Figura 3.22 - Diagrama de Sequência - Listar Usuários (Ativos).............................. 63 Figura 3.23 - Diagramas de Atividades - Upload ....................................................... 64 Figura 3.24 - MVC - Upload....................................................................................... 64 Figura 3.25 - Diagrama de Sequência - Upload ....................................................... 65 Figura 3.26 - Diagramas de Atividades - Listar Arquivos .......................................... 65 Figura 3.27 - MVC - Listar Arquivos .......................................................................... 66 Figura 3.28 - Diagrama de Sequência - Listar Arquivos ........................................... 66 Figura 3.29 - Diagramas de Atividades - Download .................................................. 67 Figura 3.30 - MVC - Download .................................................................................. 67 Figura 3.31 - Diagrama de Sequência - Download................................................... 68 Figura 3.32 - Diagramas de Atividades - Excluir Arquivo .......................................... 68 Figura 3.33 - MVC - Excluir Arquivo .......................................................................... 69 Figura 3.34 - Diagrama de Sequência - Excluir Arquivo ........................................... 69 Figura 3.35 - Diagramas de Atividades - Cadastrar Curso ........................................ 70 Figura 3.36 - MVC - Cadastrar Curso ........................................................................ 71 Figura 3.37 - Diagrama de Sequência - Cadastrar Curso ........................................ 71 Figura 3.38 - Diagramas de Atividades - Excluir Curso ............................................. 72 Figura 3.39 - MVC - Excluir Cursos ........................................................................... 72 Figura 3.40 – Diagrama de Atividades – Excluir Curso ............................................. 73 Figura 3.41 - Diagramas de Atividades - Listar Curso ............................................... 74 Figura 3.42 - MVC - Listar Cursos ............................................................................. 74 Figura 3.43 – Diagrama de Atividades – Listar Cursos ............................................. 75 Figura 3.44 - Diagramas de Atividades - Alterar Senha ............................................ 75 Figura 3.45 - MVC - Alterar Senha ............................................................................ 76 Figura 3.46 - Diagrama de Sequência - Alterar Senha............................................. 76 Figura 4.1 - Home Page do Protótipo ........................................................................ 77 Figura 4.2 - Visão Cadastro Conta ............................................................................ 78 Figura 4.3 - Home Page do Administrador ................................................................ 79 Figura 4.4 - Visão Alterar Senha ............................................................................... 80 Figura 4.5 - Visão Cadastrar Curso ........................................................................... 81 Figura 4.6 - Visão Excluir Curso ................................................................................ 82 Figura 4.7 - Visão Excluir Conta ................................................................................ 83 Figura 4.8 - Visão Ativar Conta ................................................................................. 84 Figura 4.9 - Visão Desativar Conta ........................................................................... 85 Figura 4.10 - Visão Cadastro Conta Administrador ................................................... 86 Figura 4.11 - Home Page do Usuário ........................................................................ 87 Figura 4.12 - Visão Upload ........................................................................................ 88 Figura 4.13 - Visão Download ................................................................................... 89 LISTA DE QUADROS Quadro 2.1 - Comparação entre as funcionalidades presentes nos Discos Virtuais verificados ................................................................................................................. 44 Quadro 3.1 - Resumo dos envolvidos ....................................................................... 47 LISTA DE ABREVIAÇÕES E SIGLAS AJAX - Asynchronous Javascript and XML API - Aplication Programing Interface BD - Banco de Dados EUA - Estados Unidos da America HD – HardDisk HTML - HyperText Markup Language HTTP - Hyper Text Transfer Protocol HTTPS - Hyper Text Transfer Protocol Secure IaaS - Infra-estrutura como serviço IP - Internet Protocol JDBC - Java Database Connectivity JDK - Java Development Kit JEE - Java Enterprise Edition JME - Java Mobile Edition JPA - Java Persistence API JRE - Java Runtime Edition JSE - Java Standard Edition JSP - Java Server Pages JVM - Java Virtual Machine LDAP - Lightweight Directory Access Protocol MB - Mega Byte Mbps – Mega bits por segundo ORM - Object Relational Mapping SDK - Standard Development Kit SO - Sistema Operacional SQL - Structed Query Language SSL - Secure Socket Layer TB - Tera Byte TCP - Transmission Control Protocol TI – Tecnologia da Informação TLS - Transport Layer Security W3O - World Wide Web Organization SUMÁRIO 1 CONCEITO DE DISCO VIRTUAL E TECNOLOGIAS ENVOLVIDAS NO SEU DESENVOLVIMENTO ........................................................... 21 1.1 CLOUD STORAGE ........................................................................................... 22 1.2 DISCO VIRTUAL ............................................................................................... 23 1.3 TECNOLOGIAS................................................................................................. 24 1.3.1 Java ............................................................................................................... 24 1.3.2 Servlet ............................................................................................................ 25 1.3.3 Servlet container ............................................................................................ 26 1.3.4 JSP ................................................................................................................ 26 1.3.5 Jquery ............................................................................................................ 27 1.3.6 JPA ................................................................................................................ 27 1.3.7 HTTPS ........................................................................................................... 30 2 ANÁLISE DE MERCADO ................................................................ 35 2.1 DISCO VIRTUAL UOL ....................................................................................... 35 2.2 BACKUP UOL ................................................................................................... 36 2.3 DISCO VIRTUAL TERRA .................................................................................. 37 2.4 SKYDRIVE ........................................................................................................ 38 2.5 DROPBOX......................................................................................................... 39 2.6 UBUNTU ONE ................................................................................................... 40 2.7 MOZY ................................................................................................................ 42 3 ANÁLISE E PROJETO DO SISTEMA ARMAZÉM VIRTUAL ........... 46 3.1 INSTRUÇÃO DO PROBLEMA .......................................................................... 46 3.2 ANÁLISE DE MERCADO .................................................................................. 46 3.3 ATORES ENVOLVIDOS NO PROCESSO ........................................................ 47 3.4 DESCRIÇÃO DO AMBIENTE ATUAL ............................................................... 47 3.5 PERSPECTIVA DO PRODUTO (ANÁLISE DE MERCADO) ............................ 48 3.6 PREMISSAS E DEPENDÊNCIAS ..................................................................... 48 3.7 CARACTERÍSTICAS ......................................................................................... 48 3.7.1 Outros Requisitos do Produto ........................................................................ 49 3.8 ANÁLISE DE REQUISITOS FUNCIONAS ........................................................ 49 3.9 DIAGRAMA DE CASO DE USO........................................................................ 50 3.10 ESPECIFICAÇÕES DE HISTÓRIAS E DIAGRAMAS ....................................... 51 3.10.1 Diagrama de Classe ....................................................................................... 51 3.10.2 Mapeamento para Modelo Relacional e Projeto Físico .................................. 52 3.10.3 Efetuar Logon................................................................................................. 52 3.10.4 Manter Usuário............................................................................................... 54 3.10.5 Listar Usuários ............................................................................................... 58 3.10.6 Ativar Usuário................................................................................................. 60 3.10.7 Desativar Usuário........................................................................................... 61 3.10.8 Upload ............................................................................................................ 63 3.10.9 Listar Arquivos ............................................................................................... 65 3.10.10 Download ................................................................................................... 66 3.10.11 Excluir Arquivo ........................................................................................... 68 3.10.12 Manter Curso ............................................................................................. 70 3.10.13 Listar Cursos .............................................................................................. 73 3.10.14 Alterar Senha ............................................................................................. 75 3.10.15 Análise de Requisitos Não Funcionais ....................................................... 76 4 IMPLEMENTAÇÃO.......................................................................... 77 4.1 LAYOUTS DE TELAS ....................................................................................... 77 4.1.1 Home ............................................................................................................. 77 4.1.2 Interface de Cadastro de Conta ..................................................................... 77 4.1.3 Home Page do Administrador ........................................................................ 78 4.1.4 Interface de Alterar Senha ............................................................................. 79 4.1.5 Interface de Cadastrar Curso ......................................................................... 80 4.1.6 Interface de Exclusão de Curso ..................................................................... 81 4.1.7 Interface de Exclusão de Conta ..................................................................... 82 4.1.8 Interface de Ativar Contas .............................................................................. 83 4.1.9 Interface de Desativar Conta.......................................................................... 84 4.1.10 Interface de Cadastro de Conta do Administrador ......................................... 85 4.1.11 Home Page do Usuário .................................................................................. 86 4.1.12 Interface de Upload ........................................................................................ 87 4.1.13 Interface de Download ................................................................................... 88 CONCLUSÃO ....................................................................................... 90 REFERÊNCIAS BIBLIOGRÁFICAS ..................................................... 92 19 INTRODUÇÃO Segundo Borges (2011), desde o seu surgimento, a Internet vem sendo percussora de novos hábitos. À medida que sua evolução ocorre novos horizontes são explorados. Uma das possibilidades viabilizadas é a armazenagem de arquivos na nuvem (Internet). Este conceito é conhecido como Cloud Storage. O Cloud Storage abrange qualquer serviço que, entre suas funções, armazena arquivos na nuvem. Como por exemplo, o Youtube, que armazena e reproduz vídeos, ou mesmo as redes sociais que permitem armazenar fotos, vídeos e mensagens. (SHELLY; VERMAAT, 2010) Todavia, um dos tipos de Cloud Storage mais difundidos é o disco virtual (ou HD Virtual). Segundo Lima (2010), o disco virtual pode ser considerado um serviço de armazenagem em disco via Internet, com ele uma empresa ou pessoa pode armazenar todo o tipo de arquivos digitais. A arquitetura da conexão com o disco virtual difere de acordo com a maneira como é implementada, contudo, em geral conta com o cliente e o servidor. O cliente é o computador que acessa o disco virtual e o servidor é o local, ou locais, onde são armazenados os arquivos. A localização do cliente e do servidor é, absolutamente, desprezível já que a conexão e comunicação dependem exclusivamente da Internet (ou intranet). (EMC, 2009) Segundo Lima (2010), sendo um tipo de Cloud Storage, o disco virtual se encaixa no conceito de infra-estrutura como serviço (IaaS), um dos conceitos utilizados na computação em nuvem que serviu de solavanco no surgimento de empresas e novos negócios na Internet. As características do disco virtual são: (MILLER, 2008) Acessibilidade: Os arquivos podem ser acessados ou enviados de qualquer computador com acesso a Internet. Praticidade e alternativa de Backup: Os arquivos enviados para o disco virtual não tem relação com determinado computador, assim, mesmo que um disco rígido físico tenha algum problema de funcionamento, os arquivos presentes no disco virtual permanecerão intactos. Escalabilidade: O espaço disponível para armazenamento pode ser estendido. 20 Este trabalho tem como premissa o desenvolvimento de um protótipo de disco virtual cuja proposta é dar início a um futuro serviço (disco virtual) que será disponibilizado aos alunos da Faculdade de Tecnologia (FATEC) de Lins. O objetivo é estruturar um protótipo que, futuramente, se tornará um serviço viável se comparado aos outros existentes. Para isso, são analisadas funções de ferramentas já existentes, são desenvolvidas funcionalidades que moldam a ferramenta de acordo com a proposta de uso e por fim o ambiente desenvolvido é testado. A justificativa deste trabalho se concentra na relevância da criação de um disco virtual para FATEC de Lins desenvolvido e implantado por alunos e professores da própria faculdade, o que facilita alterações ou mesmo, possíveis manutenções. O serviço facilita o manuseio de arquivos dos alunos, por permitir o acesso mais prático a arquivos como trabalhos escolares, materiais para estudos entre outros. Todo o trabalho é subdividido em quatro capítulos, os quais formam a estrutura do projeto e explanam a metodologia utilizada. O capítulo um apresenta uma rápida contextualização do tema (disco virtual), cujo foco está na razão do serviço estar em evidência, além de seus objetivos e serviços semelhantes. Além disso, são abordadas todas as tecnologias envolvidas na confecção do protótipo. Há uma descrição de cada tecnologia, explicando qual a sua função. O segundo capitulo descreve um estudo de mercado ou análise de mercado acerca do tema proposto. Nesse momento, é detalhada a proposta de uso de vários serviços, de disco virtual, existentes. Na sequência, o terceiro apresenta os requisitos, informações e diagramas que serviram de base para o desenvolvimento do protótipo proposto. Ao final, o quarto aborda o protótipo pronto. Para exemplificar o funcionamento, cada funcionalidade é ilustrada por meio de imagens com textos explicando cada uma delas. 21 1 CONCEITO DE DISCO VIRTUAL E TECNOLOGIAS ENVOLVIDAS NO SEU DESENVOLVIMENTO Desde o seu surgimento, a Internet vem sendo percussora de novos hábitos. É absolutamente evidente seu crescimento ao longo dos anos. O número de usuários que acessam Internet (banda larga) em qualquer ambiente (domicílio, lan house, trabalho, etc) também subiu. Segundo o Ibope (2011), só no Brasil mais de 73 milhões de pessoas têm acesso à rede mundial de computadores. Figura 1.1 - Usuários de Internet no Brasil Fonte: Personal, 09/08/2011 Desse total, segundo a TeleBrasil (2011), mais de 53 milhões correspondem a acessos domiciliares, sendo 37,6 milhões em banda larga móvel e 16,3 milhões via banda larga fixa. “O ritmo de ativação de banda larga (domiciliar no Brasil) já é de mais de um novo acesso por segundo”. (TELEBRASIL, 2011) A figura 1.2 ilustra o ritmo mensal de ativação de novas conexões ao longo do ano de 2011. A velocidade de conexão a Internet também alcançou números bastante altos. Segundo a Info (2011), em São Paulo é possível encontrar domicílios com planos de banda larga de 20Mbps. No mundo a margem é muito maior. (LEAL; CRUZ, 2011) Em 2010 a Coréia do Sul, país com maior velocidade média de conexão, registrava 34,14Mbps em média de velocidade. (JORDÃO, 2010) 22 Figura 1.2 – Ativações de novas conexões Fonte: TeleBrasil, 21/11/2011 Todas essas características e evoluções viabilizaram vários novos negócios e serviços via Internet. Um desses serviços viabilizados, já há algum tempo e que continua ganhando força, é o serviço de Cloud Storage. 1.1 CLOUD STORAGE Armazenar arquivos é um dos conceitos básicos do computador. Ter um disco rígido com bastante espaço para armazenar fotos, músicas e documentos sempre foi um diferencial em um computador. Entretanto, esta ideia está mudando um pouco de foco. A armazenagem física (disco rígido) está cedendo espaço para a armazenagem virtual. Esta armazenagem virtual também é conhecida como Cloud Storage (armazenagem na nuvem). Cloud Storage se encaixa no conceito de Infra-Estrutura Como Serviço (IaaS), que ganhou bastante força com o advento de um conceito mais amplo chamado Cloud Computing (computação em nuvem). Cloud Computing é um conceito em que todos os aplicativos e arquivos são armazenados em uma “nuvem”, que consiste em milhares de computadores e servidores, todos interconectados e acessíveis via Internet. (MILLER, 2008) O Cloud Storage, então, é um tipo de Cloud Computing. O conceito Cloud Storage, abrange qualquer serviço que, entre suas funções, armazena arquivos na nuvem. Como por exemplo, o Youtube que armazena e 23 reproduz vídeos ou mesmo as redes sociais que permitem armazenar fotos, vídeos e mensagens. (SHELLY; VERMAAT, 2010) Baseado nessa idéia é possível destacar os serviços de Cloud Storage. Segundo Shelly; Vemaat (2010), alguns serviços fornecem armazenagem para tipos específicos de arquivos como fotos (flickr), vídeos (youtube) e músicas. Entretanto existe outro tipo de serviço bastante difundido cujo intuito é armazenar grandes ou pequenas quantidades de arquivos sem se preocupar com o tipo, cuja premissa é o armazenamento e às vezes, compartilhamento. Estes são conhecidos como Discos Virtuais. Figura 1.3 - Serviços de Cloud Storage Fonte: Elaborado pelos autores 1.2 DISCO VIRTUAL O disco virtual segue a mesma definição de Cloud Storage, ou seja, é um serviço que armazena arquivos na nuvem. (SHELLY; VERMAAT, 2010) As características do disco virtual são (MILLER, 2008): Acessibilidade: Os arquivos podem ser acessados ou enviados de qualquer computador com acesso a Internet. Praticidade e alternativa de Backup: Os arquivos enviados para o disco virtual não tem relação com determinado computador, assim, mesmo que um disco rígido físico tenha algum problema de funcionamento, os arquivos presentes no disco virtual permanecerão intactos. 24 Escalabilidade: O espaço disponível para armazenamento pode ser estendido. Portanto, o serviço permite a gravação de arquivos na nuvem. Por exemplo, supondo que um determinado usuário deseje armazenar arquivos para que possam ser acessados em outro computador, para ter uma cópia de segurança ou para compartilhá-lo com outrem, o usuário tem a opção de gravar, via Internet, o arquivo em um disco virtual. Este serviço será um intermediário (interface) entre o computador do usuário (cliente) e os servidores (nuvem) pra onde será enviado o arquivo. Então, usando um computador com acesso a Internet, o arquivo poderá ser acessado de qualquer lugar. 1.3 TECNOLOGIAS Para construção de um disco virtual, diferentes tecnologias podem ser utilizadas. Este trabalho é desenvolvido em tecnologias baseadas fundamentalmente em Java. 1.3.1 Java A tecnologia Java começou a ser criada em 1991 com o nome de Green Project. Ela passou por grandes evoluções e nomenclaturas até que em 1995 a tecnologia é finalmente e oficialmente lançada. Várias empresas apóiam o desenvolvimento do Java o que permite, entre outras coisas, que esta seja completamente gratuita ao usuário, desenvolvedor e afins. (PAMPLONA, 2009) A Java possui muitas edições, sendo as principais (PAMPLONA, 2009): Java Standard Edition (JSE): É a tecnologia Java para computadores pessoais, notebooks e arquiteturas com poder de processamento e memória consideráveis. O Java Development Kit (JDK) ou Standard Development Kit (SDK) é um conjunto para desenvolvimento em Java e deveria ser instalado apenas pelos desenvolvedores por possuir 25 ferramentas para tal tarefa. O Java Runtime Edition (JRE) é uma versão mais leve da JDK, pois é preparada para o ambiente de execução, ou seja, é esta versão que executará os sistemas construídos com a SDK. Java Mobile Edition (JME): É a tecnologia Java para dispositivos móveis com limitações de memória ou processamento. Possui Aplication Programing Interfaces (APIs) bem simples e leves para economizar espaço, memória e processamento. São utilizadas para sistemas em celulares, palm tops, pocket pcs, smartphones, javacards e demais dispositivos. Java Enterprise Edition (JEE): É a tecnologia Java para aplicações corporativas que podem estar na Internet ou não. Possui um grande número de APIs onde a segurança é a principal preocupação. É ideal para a construção de servidores de aplicação, integração de sistemas ou distribuição de serviços para terceiros. A Java é multiplataforma. Quando um programa Java é compilado um código intermediário é gerado, chamado de bytecode. Este bytecode é interpretado pelas Máquinas Virtuais Java (JVMs) para a maioria dos sistemas operacionais. A máquina virtual é a responsável por criar um ambiente multiplataforma, ou seja, se alguém construir um sistema operacional novo, basta criar uma máquina virtual Java que traduza os bytecodes para código nativo. (PAMPLONA, 2009) A linguagem de programação Java é utilizada na construção deste protótipo de disco virtual, sendo ele acessado via browser. As tecnologias baseadas em Java voltadas para web também. Tecnologias estas listadas a seguir: Servlet, JSP, JQuery e JPA. E também, mas não menos importante, o protocolo HTTPS para comunicação entre aplicações. 1.3.2 Servlet Segundo Harbourne-Thomas (2004), “Servlets são classes JAVA que processam dinamicamente as requisições e constroem respostas”. Nesse caso as requisições partem geralmente de uma aplicação web (cliente) via protocolo Hyper 26 Text Transport Protocol (HTTP) caso o servlet também use o HTTP como protocolo de comunicação). Um Servlet possui um ciclo de vida, ou seja, um período marcado pela sua inicialização cujo responsável é o Servlet container, processamento de requisições enviadas pelo cliente, resposta ao cliente e finalmente sua destruição pelo Servlet container. (Harbourne-Thomas, 2004). 1.3.3 Servlet container O Servlet container é o responsável por fazer com que a página chegue até o Servlet. É uma ferramenta responsável por gerenciar as requisições do cliente e o ciclo de vida de um servlet, comunicação com o servlet e entregar a resposta ao processo requisitante (cliente). O Servlet container pode ser definido como um servidor onde são instalados Servlets para tratar as requisições, ou seja, um container de servlets. (COUTINHO, 2002) São exemplos de servlet container: o Apache Tomcat, JBOSS e Glassfish. 1.3.4 JSP O Java Server Pages ou JSP tem por objetivo o desenvolvimento de páginas web dinâmicas de forma mais prática. Com essa ferramenta é possível misturar o código Java junto ao documento HTML, dinamizando a programação. Na teoria não existe diferenças entre o JSP e o Servlet, mas na prática algumas podem observadas: JSP facilita a manutenção, JSP dá acesso completo às servlets e à tecnologia Java para a parte dinâmica, em vez de solicitar o uso de outra linguagem de programação e JSP é amplamente suportado, portanto, não é ligado a nenhum sistema operacional em particular ou a um servidor Web, isto porque existe uma API padrão para JSP e pelo fato deste gerar um bytecode que pode ser compilado em qualquer plataforma que aceite uma máquina virtual Java. (PITTELA, 2009) 27 1.3.5 Jquery As tecnologias citadas até agora são todas embasadas no servidor, este é o principal responsável pelo funcionamento das mesmas. No lado do cliente também é possível criar instruções para estilizar e dinamizar a página web. Para isso, pode-se utilizar varias tecnologias entre elas o JavaScript, uma linguagem que nos provê dinamismo na implementação de paginas web. (ALVAREZ, 2004) Contudo, uma nova biblioteca embasada no JavaScript foi desenvolvida, o JQuery. Esta biblioteca abstrai muito da linguagem Java Script tornando-a mais prática e fácil de implementar. (CARVALHO, 2010) É importante observar que tanto o JQuery quanto o Java Script, por serem executados no lado do cliente, dependem da capacidade de processamento do navegador e computador, mas só o JQuery é indiferente quanto à capacidade de renderização do mesmo, sendo assim, compatível com qualquer navegador em suas versões mais recentes. 1.3.6 JPA Para explicar o que é Java Persistence API (JPA) se faz necessário uma rápida avaliação de seu antecessor, o JDBC. Java Database Connectivity ou JDBC é um conjunto de classes ou uma Interface de Programação de Aplicação (API) escritas em Java que realiza o envio de instruções SQL para qualquer banco de dados relacional. A tecnologia é fortemente dependente de SQL, oferecendo aos desenvolvedores a chance de escrever consultas e instruções de manipulação de dados na linguagem do banco de dados, mas executados e processados por meio de um modelo de programação Java. (KEITH; SCHINCARIOL, 2009) No entanto, os desenvolvedores, de modo geral, pensavam que poderia haver 28 uma maneira automática de converter tabelas de um banco de dados relacional em uma classe, já que visivelmente, ambas eram bastante parecidas. O amadurecimento dessa ideia,e de outras tecnologias, proporcionou o advento do JPA. (KEITH; SCHINCARIOL, 2009) O JPA é um framework de persistência de dados derivado do JDBC, baseado no conceito de mapeamento objeto-relacional para objetos Java. (KEITH; SCHINCARIOL, 2009) Segundo Keith; Schincariol (2009), Mapeamento Objeto-Relacional (ORM) é a técnica de fazer a ponte entre o modelo de objeto (do JAVA) e o modelo relacional do banco de dados. A técnica engloba desde o mapeamento entre campos da tabela no banco de dados e os atributos de um objeto, até uma consulta através dos objetos (sem usar instruções SQL na programação em si, somente programação orientada a objetos). Na prática para implementar o JPA, as aplicações devem ser escritas com o uso de classes Java, como na figura 1.4. A classe terá o mesmo nome de uma tabela presente no banco de dados relacional. No fim, a classe criada se assemelha a uma classe Java Beans, com atributos e métodos de get e set. (KEITH; SCHINCARIOL, 2009) Figura 1.4- Classe Java Fonte: Elaborado pelos autores 29 Para conectar esta classe a uma tabela do banco de dados é preciso inserir a marcação @Entity, isto indica que a classe é uma entidade (tabela) do banco de dados. É necessário também inserir um @id. Esta marcação estabelece a relação entre o atributo id da classe e a chave primária do banco de dados. (KEITH; SCHINCARIOL, 2009) O resultado pode ser visto na figura 1.5. Figura 1.5 - Classe/Entidade Java Fonte: Elaborado pelos autores A lógica de conexão com o banco de dados e outros parâmetros importantes de implementação do JPA estão presentes no arquivo Persistence.xml. A figura 1.6 demonstra uma estrutura simples do arquivo Persistence.xml. (KEITH; SCHINCARIOL, 2009) Na estrutura do Persistence.xml estão presentes, na tag <properties>, o driver, url, usuário e senha do banco de dados. Além do caminho até a classeentidade na tag <class>. É importante citar que os métodos responsáveis por todos os processos de persistência no banco de dados, além da conexão com o mesmo, provém da classe EntityManager, responsável por gerenciar a conexão e persistência. Neste trabalho a tecnologia JPA será utilizado no processo de criação das classes modelo do protótipo. Isso porque o modelo relacional elaborado no BD será importado na forma de classe Java. 30 Figura 1.6 - Exemplo de um Persistence.xml Fonte: Pro JPA 2: mastering the Java™ Persistence API, p. 31 1.3.7 HTTPS Em comunicações entre cliente e servidor é costumeiramente usado o protocolo Hyper Text Transport Protocol (HTTP). Este especifica como browsers e servidores web gerenciam a enxurrada de pedidos e respostas que ocorrem enquanto um usuário da web está navegando na Internet. (HEATON, 2007) Entretanto o HTTP não é um protocolo seguro, já que o mesmo não criptografa os dados transmitidos. Para serviços web comuns esta situação é aceitável. No entanto, quando se trata de dados sigilosos, esta se torna uma condição insegura, já que, caso as informações ou pacotes sejam interceptadas durante o tráfego, as mesmas estarão visíveis, como por exemplo, senhas de usuários de um banco. (HEATON, 2007) 31 Para sanar este problema, um novo protocolo foi colocado em uso para gerenciar solicitações e repostas entre servidor e cliente, o protocolo Hypertext Transfer Protocol Secure (HTTPS). O HTTPS, assim como o HTTP, utiliza soquetes para estabelecer comunicação entre aplicações cliente/servidor. No entanto, ele usa um tipo especial de soquete chamado soquete seguro. Os soquetes seguros são implementados usando o protocolo Secure Socket Layer (SSL), que com o tempo evoluiu para Transport Layer Security (TLS). O protocolo SSL/TLS será abordado no tópico 1.3.7.1. Com isso, o HTTPS proporciona maior segurança e um exemplo disso é que as informações trafegadas entre cliente e servidor estão todas criptografadas. Ao digitar um número de cartão de crédito em um site, a intenção é que apenas o site tenha acesso a essa informação. Contudo, esses dados podem viajar através de um número de hosts diferentes antes de finalmente chegar ao servidor web de destino o que pode ocasionar possíveis ataques de hackers buscando capturar pacotes. Ao criptografar os pacotes que estão sendo trocados entre o cliente e o servidor web, o problema de pacotes sendo interceptados diminui. Se alguém interceptar o pacote, será criptografado. (HEATON, 2007) Outro exemplo de recursos proporcionados pelo HTTPS é a verificação do servidor através do certificado SSL. Sites construídos sobre o protocolo SSL, no qual HTTPS se baseia, precisam ter um certificado SSL emitido por sites responsáveis por esse serviço (exemplo, www.verisign.com). Quando o certificado é enviado para o servidor, a empresa ,que emitiu, verifica o IP do dominio do site HTTPS e associa um ao outro (IP e domínio). (HEATON, 2007) Assim sendo, ao acessar o site HTTPS, o navegador verificará junto a empresa que emitiu o certificado se o dominio corresponde ao IP. Caso esteja tudo correto, a conexão com o site é permitida. Esta prática evita que o cliente seja enviado para sites maliciosos ao tentar acessar um dominio que foi direcionado para um IP que não corresponde ao que está no certificado. Tal prerrogativa converge, geralmente, a sites hackeados. (HEATON, 2007) É importante frisar que o protocolo SSL/TLS é o responsável por essa rotina de verificações. As figuras 1.7 e 1.8 mostram, respectivamente, um exemplo de site que possui o certificado SSL e outro que não possui. 32 Figura 1.7 - Site com certificado SSL Fonte: Santander Net, Acesso em: 24 mar. 2012 Figura 1.8 - Site sem certificado SSL Fonte: Verisign, Acesso em: 24 mar. 2012 1.3.7.1 SSL/TLS Desenvolvida pela World Wide Web Organization (W3O) o Secure Socket Layer (SSL) e sua evolução o Transport Layer Security (TLS) tem como objetivo a segurança por meio de criptografia, a interoperabilidade, a extensabilidade e a eficiência. (COSTA; COSTA; DUARTE, 2010) 33 Isso quer dizer que este protocolo é capaz de estabelecer uma conexão segura entre dois hosts, um canal de comunicação criptografada. (COSTA; COSTA; DUARTE, 2010) Esta conexão acontece após a troca de informação em que ambos, cliente e servidor, definem a versão do protocolo, o identificador da sessão, o conjunto de códigos para encriptação e o método de compressão. A figura 1.9 demonstra os passos para uma conexão SSL/TLS. Figura 1.9 - Conexão SSL Fonte: SSL and TLS Essentials, 2000, pág. 51 O protocolo SSL/TLS se situa entre as camadas de Aplicação e Transporte, (conforme figura 1.10). Ele encapsula os protocolos de aplicação como o HTTP, e trabalha em cima de um protocolo de Transporte como o Transmission Control Protocol (TCP). (COSTA; COSTA; DUARTE, 2010) É interessante citar que, ao usar HTTPS, nada é alterado no HTTP, o que ocorre é que uma nova camada, (o SSL/TLS) responsável pela segurança da comunicação, é inserida entre as camadas de aplicação e de Transporte. 34 Figura 1.10 - Modelo de Camadas com o SSL/TLS Fonte: GTA/UFRJ, Acesso em: 24 mar. 2012 35 2 ANÁLISE DE MERCADO Atualmente, são vários os exemplos de Discos Virtuais a disposição na Internet. Entre eles, para efeitos de comparação, vale citar: disco virtual UOL, disco virtual Terra, Skydrive da Microsoft, Dropbox, Ubuntu One da Canonical e Mozy da VMWare. 2.1 DISCO VIRTUAL UOL O UOL fornece para seus assinantes um serviço de armazenagem online que já foi bastante utilizado há algum tempo atrás. Isso porque seu serviço atualmente é inviável devido ao seu espaço de armazenamento e valores se comparado a outras ferramentas atuais. Para utilizá-lo é necessário ser assinante, o que tem um custo mínimo de R$9,90 (para não assinantes se tornarem assinantes), e são liberados no máximo 150 MB de espaço online para arquivos. O serviço conta com todas as ferramentas básicas de um disco virtual. A Figura 2.1 ilustra o disco virtual UOL. Figura 2.1 - Disco Virtual UOL Fonte: UOL Disco Virtual, Acesso em: 14/11/2011 36 2.2 BACKUP UOL O UOL desenvolveu uma nova ferramenta de armazenagem online, o UOL Backup. Ao comparar o layout do disco virtual UOL com a Backup UOL pode-se notar um avanço bastante grande, mas não fica só na estética a diferença. A Figura 2.2 ilustra o Backup UOL. Figura 2.2 - Backup UOL Fonte: UOL Backup, Acesso em: 14/11/2011 O serviço disponibiliza planos de um GB (R$ 19,90) a 100 GB (R$ 129,90) de espaço para armazenamento todos (planos) possuem mensalidades, conforme figura 2.3. Figura 2.3 - Planos Backup UOL Fonte: Backup UOL, Acesso em: 02/06/2012 37 Seu maior diferencial é permitir que os arquivos sejam salvos de maneira agendada. O usuário define quais as pastas que ele deseja armazenar, então, define os períodos de tempo para armazenar as pastas do computador no servidor online, e então, sempre que esse período se passar, as pastas escolhidas são enviadas aos servidores. É importante ressaltar que para esta função funcionar é necessário que o computador esteja conectado a Internet. A Ferramenta Backup UOL realiza todas as tarefas costumeiras de um disco virtual, portanto, é possível, realizar upload, download, compartilhar pastas entre usuários, além de permitir editar imagens e possuir um layout prático e funcional. 2.3 DISCO VIRTUAL TERRA Outra Ferramenta que já está no mercado há algum tempo é o disco virtual Terra. Neste serviço, assim como o serviço do UOL, o usuário tem de fazer pagamentos mensais (R$ 5,90 de acordo com o teste praticado pelos autores deste trabalho) para usufruir de dois GB de espaço. As funcionalidades são as padrões dentro do conceito de um disco virtual (upload, download, criar, renomear, deletar e compartilhar pastas). A Figura 2.4 ilustra o disco virtual Terra. Figura 2.4 - Disco Virtual Terra Fonte: TERRA, Acesso em: 14/11/2011 38 2.4 SKYDRIVE O SkyDrive da Microsoft faz parte de uma nova geração de Discos Virtuais. O serviço é gratuito sendo somente necessário uma conta Hotmail (que também é gratuita) e são disponibilizados 7 GB de espaço online, que pode ser ampliado para 25GB por tempo limitado. Além de possuir todas as funcionalidades padrão de um disco virtual, o SkyDrive permite sincronizar uma pasta do computador, para que esta possa ser vista de qualquer outro computador com acesso a Internet via SkyDrive. O serviço também conta com algumas ferramentas do pacote Office da Microsoft. A Figura 2.5 ilustra o SkyDrive. Figura 2.5 - SkyDrive Fonte: HOTMAIL, Acesso em: 14/11/2011 O serviço possui ferramenta própria que cria slides com fotos armazenadas e permite o envio de arquivos com no máximo 100 MB. Possui também planos de ampliação de 20GB (R$19,00 por ano), 50GB (R$46,00 por ano) e 100GB (R$93,00 por ano), e ao contratar um dos planos, o espaço adquirido é somado aos 7GB da versão gratuita. Por exemplo, na compra do plano de 20GB, o espaço total seria de 27GB. Trata-se de uma ferramenta amplamente difundida nos setores da Educação sendo usada pelos alunos do Centro Paula Souza e também, repassadas por órgãos 39 da educação para responsáveis em Diretorias de Ensino a fim de ser colocado em uso no dia-a-dia. Entretanto, existem vários relatos, em fóruns, de usuários que perderam arquivos que estavam salvos no Skydrive, além do layout do mesmo ser similar ao o ambiente do Windows Live, já que o Skydrive é um componente do Live. 2.5 DROPBOX O DropBox é um serviço desenvolvido em Python, Linguagem de Programação Orientada a Objetos usada principalmente no desenvolvimento de softwares e aplicativos web. O serviço tem seu gerenciamento todo na Internet via browser, e é em inglês. Para usar de todos seus recursos é preciso baixar um aplicativo que permite sincronizar uma pasta com o serviço online para realizar backups. A Figura 2.6 ilustra uma das telas do DropBox. Figura 2.6 - DropBox Fonte: DROPBOX, Acesso em: 14/11/2011 O serviço é gratuito em seu plano de dois GB (client), mas pode ser estendido até um TB em um plano team (mínimo de US$ 795,00 para cinco usuários), ou 100 GB (US$ 19,99) no plano client mediante pagamento de mensalidade. Possui um sistema de aumento de espaço por indicação amigos, o qual disponibiliza mais espaço para armazenamento a cada amigo indicado que passa a usar o serviço. O 40 Dropbox guarda versões do mesmo arquivo por até 30 dias, assim, caso o usuário, por acidente, apague um arquivo online, existe a possibilidade de recuperação. Apesar de não possuir uma versão em português, o DropBox é bastante citado em revistas e sites brasileiros pela sua compatibilidade com vários Sistemas Operacionais, inclusive dispositivos móveis e pela sua flexibilidade. A Figura 2.7 ilustra o Arquivamento DropBox. Figura 2.7 - Arquivamento DropBox Fonte: DROPBOX, Acesso em: 02/06/2012 2.6 UBUNTU ONE Se nos dias de hoje, o usuário busca um disco virtual com o máximo espaço de armazenamento e com o menor preço, o Ubuntu One pode ser uma alternativa. O serviço em sua versão gratuita libera cinco GB de espaço. Mediante o pagamento de US$ 3,99 (dólares) ao mês, são liberados 20 GB de espaço, além da possibilidade de ouvir musicas no próprio Ubuntu One via streaming, ou seja, o usuário faz o upload das músicas e depois o mesmo pode ouvir online em qualquer computador que suporte o Ubuntu One (inclusive dispositivos móveis). Também é possível estender em blocos de 20 GB com adicionais de US$2,99 para cada bloco. A Figura 2.8 ilustra os planos e preços do Ubuntu One. 41 Figura 2.8 - Planos Ubuntu One Fonte: UBUNTU ONE, Acesso em: 14/11/2011 O serviço possui todas as ferramentas padrões de disco virtual, e seu gerenciamento é via browser, mas para usar a ferramenta de sincronização de pastas do computador é preciso baixar o aplicativo que está disponível para Windows, MAC (MacOS), Linux Ubuntu (neste vem pré instalado desde a versão 9.04), Android, Iphone (iOS) e Ipad (iOS). Com essa ferramenta é possível sincronizar uma ou mais pastas do computador com o serviço, de modo que todo arquivo gravado nesta pasta (seja via browser em qualquer computador ou na pasta do computador de origem) passa a ser sincronizada, criando uma versão do arquivo no Ubuntu One e na pasta de origem. A Figura 2.9 ilustra o aplicativo de sincronização Ubuntu One. Figura 2.9 - Aplicativo de Sincronização Ubuntu One Fonte: UBUNTU ONE, Acesso em: 14/11/2011 42 Ao comparar o Ubuntu One, com um serviço brasileiro, o Backup UOL, o custo é visivelmente diferente. Ao passo que o Backup UOL tem um custo de R$ 14,90 mensais no plano de um GB o Ubuntu One custa US$ 3,99, algo em torno de R$ 8,00 (cotação do dólar comercial no período de conclusão deste trabalho), em seu plano de 20 GB. Isso acontece em função da tecnologia estar mais avançada nos EUA e também em função do Ubuntu One ter sido desenvolvido pela Canonical, grupo sul africano que é responsável pelo desenvolvimento de um sistema operacional Linux, o Ubuntu, e portanto, um grupo que não visa o lucro. Tudo o que o Ubuntu One gera de receita é revertido para o desenvolvimento ou do Ubuntu One ou do sistema operacional Ubuntu. Assim como o DropBox, o Ubuntu One foi construído usando o Python e já ultrapassou a marca de um milhão de usuários. Pode ser considerado um dos maiores (em termos de número de usuários) serviços de disco virtual da atualidade. 2.7 MOZY Se comparado aos concorrentes citados neste trabalho, o Mozy não é tão divulgado no Brasil por veículos de comunicação, entretanto, na Internet, muitos usuários relatam em blogs e sites que usam o serviço. O mesmo tem algumas ferramentas diferentes dos concorrentes. O upload e download, por exemplo, não estão evidentes, mas podem ser substituídos por backup e restaurar arquivos, respectivamente. A Figura 2.10 ilustra o aplicativo de sincronização Mozy. O gerenciamento é realizado via browser (em inglês), e assim como seus concorrentes de mercado pode ser integrado ao sistema operacional a partir do momento que o usuário instala seu aplicativo, com o qual o mesmo escolhe quais pastas serão armazenadas e também, opera como gerenciador do disco virtual (em português). Contudo, o usuário define quando os arquivos vão ser salvos (agendamento ou ao desligar ou ligar o computador), conforme figura 2.11, função também encontrada no Backup UOL. Os arquivos copiados (backup) são criptografados e enviados a servidores localizados em salas cofres nos EUA. O serviço também permite fazer backup dos arquivos do computador para uma unidade física (HD). 43 Figura 2.10 - Aplicativo de Sincronização Mozy (Backup) Fonte: MOZY, Acesso em: 14/11/2011 O serviço funciona em background (o usuário não o vê funcionando; funcionamento em segundo plano). O Mozy possibilita o gerenciamento da banda de Internet e de processamento utilizado por ele mesmo. A Figura 2.11 ilustra o Backup agendado ou automático Mozy. Figura 2.11 - Backup Agendado ou Automático Mozy Fonte: MOZY, Acesso em: 14/11/2011 O serviço traz várias opções pré configuráveis, tais como: backup dos emails, navegadores, arquivos do sistema, área de trabalho, documentos, pastas, entre outros. Apoiado pela VMWARE - conhecida principalmente por desenvolver máquinas virtuais, software que permite a instalação de um ou mais sistemas operacionais dentro de outro já existente no computador - e EMC² - grande expoente em computação em nuvem e segurança de TI -, o Mozy em seu plano gratuito 44 (MozyHome) disponibiliza dois GB de espaço online, podendo ser estendido para 50 GB (US$ 5,99/mês para um computador) ou 125 GB (US$ 9,99/mês para três computadores) e para adicionar um computador ou liberar mais 20 GB de espaço de armazenamento, basta somar mais US$ 2,00 para cada um dos casos. A Figura 2.12 mostra os planos MozyHome. Figura 2.12 - Planos de serviço MozyHome Fonte: MOZY, Acesso em: 14/11/2011 Algo relevante de ser citado é que o serviço da Mozy é compatível apenas com Microsoft Windows e Mac, diferente de muitos de seus concorrentes no Brasil, que oferecem integração com ambos os sistemas operacionais e também, Android e iOS (dispositivos móveis). Tal fato pode ser relacionado com a proposta de uso do serviço que além de disponibilizar a versão MozyHome, tem opções empresariais (MozyPro) tanto para estações de trabalho, quanto para servidores, o que quer dizer que o Mozy atinge um nicho de mercado empresarial, além do doméstico. Quadro 2.1 - Comparação entre as funcionalidades presentes nos Discos Virtuais verificados BACKUP UOL UPLOAD DOWNLOAD sim Sim TERRA sim Sim SKYDRIVE sim Sim DROPBOX sim Sim UBUNTU ONE MOZY sim Não. Botão de backup com função compatível sim Não. Botão recuperar arquivos com função compatível 45 BACKUP PROGRAMADO AUTOMÁTICO Sim Não Não Não Só Automático Sim Não Não. Necessário ser assinante Terra Sim Sim Sim Sim Dois a cinco GB (podendo ser estendido) Entre dois GB e 125 GB (podendo ser estendido) ou AGENDADO VERSÃO GRATUITA ESPAÇO DISPONÍVEL Entre um GB e 100 GB dois GB 25 GB dois Gb e 100 Gb (pacote individual) LIXEIRA Sim Não Sim Sim Sim sim Sim Não Não Sim Sim Sim Sim Não Não Sim Sim Sim Via Browser e aplicativo Via Browser Via Browser Via Browser Via Browser e aplicativo Via Browser e aplicativo Parcialmente em português Site em inglês. Aplicativo em português FUNCIONAMENTO EM BACKGROUND PASTA DO COMPUTADOR SINCRONIZADA COM O SERVIÇO ONLINE GERENCIADOR IDIOMA Português Fonte: Elaborado pelos autores Português Português Inglês 46 3 ANÁLISE E PROJETO DO SISTEMA ARMAZÉM VIRTUAL Este capítulo apresenta a parte documental do sistema, sua estruturação e requisitos coletados. 3.1 INSTRUÇÃO DO PROBLEMA A faculdade, atualmente, encontra-se dependente de mídias e serviços web de terceiros no que diz respeito a armazenamento de arquivos (trabalhos, atividades escolares, etc) por parte dos alunos e professores na FATEC de Lins. Fato este que afeta todo o corpo docente e discente da FATEC, tornando trabalhosa a movimentação de arquivos em geral, o impacto do qual é: Lentidão no processo de acesso de arquivos na faculdade; Dependência de sistemas de terceiros que realizam o mesmo serviço; Dificuldade de adequação do sistema (de terceiros) a necessidade da Faculdade. Uma solução bem-sucedida seria a criação de um sistema (Ad hoc) visando sanar todos os problemas acima listados, otimizando o processo de acesso aos arquivos através da rede local da faculdade. 3.2 ANÁLISE DE MERCADO O protótipo desenvolvido é para FATEC Lins, que precisa de um sistema que permita gerenciar a inserção de usuários e que permita administrar os processos de transferência de arquivos (Upload e Download), como documentos, materiais do corpo docente e dos próprios alunos, bem como facilitar a manutenção e adaptação do sistema a necessidades que surgirem. 47 O Armazém Virtual – Sistema de Armazenamento de Arquivos Virtuais, busca suprir tais necessidades, além de proporcionar um ambiente amigável e interativo para manutenção de arquivos e gerenciamento de usuários deste ambiente. 3.3 ATORES ENVOLVIDOS NO PROCESSO Quadro 3.1 - Resumo dos envolvidos Nome Descrição Responsabilidades Administrador Pessoa que acessará o ambiente para administrar o sistema, bem como seus usuários. O administrador será um usuário com funções de gerente do sistema, responsável por cadastrar, atualizar, excluir, habilitar ou cancelar o acesso de determinado usuário ao sistema. Além de cadastrar e excluir cursos (existentes na FATEC) no sistema. O usuário será o usuário que movimentará arquivos no sistema. É ele quem envia arquivos, os exclui e realiza downloads. Usuário Professor) (Aluno, Pessoa que acessará o ambiente para downloads, uploads e manutenção de arquivos. Fonte: Elaborado pelos autores 3.4 DESCRIÇÃO DO AMBIENTE ATUAL Os usuários usam de meios físicos, tais como pen-drives, CDs e outras mídias, além de sites de armazenamento disponíveis na Internet e/ou email para transportar seus arquivos. No caso de querer apenas guardar um projeto utilizado em aula para uso na própria faculdade (FATEC) em outro dia, por exemplo, é necessário armazená-lo em um dos ambientes citados anteriormente (mídias, sites e emails). A Internet é outra determinante importante. O aluno depende diretamente da velocidade da mesma para realizar download de arquivos para uso na faculdade. 48 A Faculdade no momento conta com um ambiente para compartilhamento de arquivos com professores, no qual se pode enviar trabalhos em áreas prédeterminadas pelos docentes, voltadas para avaliações em determinadas disciplinas. O aluno não consegue armazenar seus arquivos pessoais neste ambiente. Atualmente, a FATEC Lins, ambiente alvo do sistema, não conta com um ambiente semelhante ao desenvolvido neste projeto. 3.5 PERSPECTIVA DO PRODUTO (ANÁLISE DE MERCADO) A intenção do produto é solucionar o problema de armazenamento de arquivos, auxiliando os alunos e professores no processo de gerenciamento de seus arquivos escolares. Isso, provavelmente, resultará no aumento do desempenho discente. Além disso, este produto proverá um meio para administrar todos os usuários, permitindo controlar quem terá acesso ao sistema, que, de acordo com a regra de negócio previamente determinada, são apenas alunos e professores devidamente vinculados a FATEC Lins. 3.6 PREMISSAS E DEPENDÊNCIAS O produto, por ser implementado em Java, independe do Sistema Operacional (S.O.) instalado no Servidor. Dentro da faculdade pode ser acessado por qualquer computador via browser. Não são necessários maiores investimentos. 3.7 CARACTERÍSTICAS A seguir serão listadas as funcionalidades do sistema: 49 Acesso ao sistema (login) por parte dos usuários e administrador. Upload de arquivos por parte dos usuários. Visualização de arquivos por parte dos usuários. Download de arquivos por parte dos usuários. Exclusão de arquivos por parte dos usuários Cadastro de usuário. Rotina realizada tanto pelo administrador do sistema quanto pelo próprio usuário. Ativação de usuário. Rotina realizada pelo administrador, a qual permite a um usuário acessar o sistema. Desativação de usuários. Rotina realizada pelo administrador, a qual retira de um usuário a permissão de acessar ao sistema (desativa-o). Exclusão usuário. Rotina realizada pelo administrador do sistema, a qual exclui um usuário e todos seus respectivos arquivos. Alteração de Senha. Rotina realizada tanto pelo usuário(aluno, professor) ou pelo administrador, o qual faz a alteração da senha de acesso ao sistema do mesmo. Cadastrar Curso. Rotina realizada pelo administrador do sistema, a qual insere um novo curso (existente na FATEC) no sistema. Excluir Curso. Rotina realizada pelo administrador do sistema, a qual exclui um curso (existente na FATEC) presente no sistema. Listar Cursos. Rotina realizada tanto pelo usuário (no ambiente de cadastro) quanto pelo administrador do sistema (no ambiente de cadastro e no ambiente de exclusão de cursos). 3.7.1 Outros Requisitos do Produto Uso de um gerenciador de banco de dados confiável e de fácil manutenção. 3.8 ANÁLISE DE REQUISITOS FUNCIONAS 50 O sistema deverá prover: O login dos usuários e administrador; O cadastro de usuários; A listagem de usuários; A ativação e desativação de usuários; A exclusão de usuários; O cadastro de cursos; A exclusão de cursos; O upload e download de arquivos de maneira dinâmica; A listagem de arquivos; A exclusão de arquivos; A alteração de senha dos usuários e administrador. 3.9 DIAGRAMA DE CASO DE USO Figura 3.1 – Diagrama de Caso de Uso Fonte: Elaborado pelos autores 51 3.10 ESPECIFICAÇÕES DE HISTÓRIAS E DIAGRAMAS 3.10.1 Diagrama de Classe Figura 3.2 - Diagrama de Classe Fonte: Elaborado pelos autores 52 3.10.2 Mapeamento para Modelo Relacional e Projeto Físico Figura 3.3 – Mapeamento para Modelo Relacional Fonte: Elaborado pelos autores 3.10.3 Efetuar Logon Para acessar o sistema, e todos seus recursos, o usuário e administrador precisam se conectar ao sistema fazendo uso de uma conta com login e senha válidos, pré-cadastrados no sistema. Outra regra é que a conta precisa estar ativa. Atendendo a essas prerrogativas, o acesso ao sistema é realizado normalmente via browser (navegador). 53 Figura 3.4 - Diagrama de Atividades - Efetuar Logon Fonte: Elaborado pelos autores Figura 3.5 - MVC - Efetuar Logon Fonte: Elaborado pelos autores 54 Figura 3.6 - Diagrama de Sequência - Efetuar Logon (Administrador) Fonte: Elaborado pelos autores Figura 3.7 - Diagrama de Sequência - Efetuar Logon (Usuário) Fonte: Elaborado pelos autores 3.10.4 Manter Usuário Tanto o administrador quanto um futuro usuário podem realizar o cadastro de usuário. No caso de um futuro usuário, o mesmo realiza o cadastro da conta preenchendo o formulário e enviando-o para autorização do administrador (isso, sem a necessidade de acessar o ambiente do sistema). Posteriormente, o administrador 55 precisará “ativar” a respectiva conta. Enquanto a conta não for ativada, o usuário não poderá acessar o sistema. No caso do Administrador, o mesmo cadastra a conta de maneira semelhante, porém, com a conta já autorizada. Então, após a conta ter sido devidamente criada e ativada, o usuário poderá acessá-la através de uma interface web, para isso será necessário que o mesmo faça uso de login e senha válidos. O usuário, sendo ele professor ou aluno, acessará seu respectivo ambiente no qual poderá: realizar envios e recuperação (upload e download) de arquivos, visualizar e excluir arquivos. Figura 3.8 - Diagrama de Atividades - Cadastrar Usuário Fonte: Elaborado pelos autores 56 Figura 3.9 - MVC - Cadastrar Usuário Fonte: Elaborado pelos autores Figura 3.10 - Diagrama de Sequência - Cadastrar Usuário (Administrador) Fonte: Elaborado pelos autores 57 Figura 3.11 - Diagrama de Atividades - Excluir Usuário Fonte: Elaborado pelos autores Figura 3.12 - MVC - Excluir Usuário Fonte: Elaborado pelos autores 58 Figura 3.13 - Diagrama de Sequência - Excluir Usuário Fonte: Elaborado pelos autores 3.10.5 Listar Usuários A fim de prover um melhor gerenciamento dos usuários, as contas são todas listadas. Este processo de listagem está implícito nas rotinas de ativação, desativação e exclusão de usuários. Figura 3.14 - Diagrama de Atividades - Listar Usuários Fonte: Elaborado pelos autores 59 Figura 3.15 - MVC - Listar Usuários Fonte: Elaborado pelos autores Figura 3.16 - Diagrama de Sequência - Listar Usuários Fonte: Elaborado pelos autores 60 3.10.6 Ativar Usuário Como citado no tópico anterior o usuário não poderá acessar o sistema enquanto sua conta não for ativada. Este processo é realizado pelo administrador em seu ambiente, com isso há um controle sobre os usuários ativos no sistema. Em primeiro lugar, o administrador em seu ambiente, lista todas as contas que estão desativadas. Na sequência, ele seleciona todas (contas) que serão ativadas. Por fim, ele clica no botão que dispara esta ação. A ação é encerrada no banco de dados quando a(s) tabela(s) do(s) usuário(s) é(são) atualizada(s) - o campo “ativo” é atualizado - e o mesmo passa a ter acesso ao sistema. Além disso, o administrador pode excluir usuários. Quando um aluno conclui, tranca ou deixa a faculdade ou quando um professor deixa o quadro docente, o mesmo deve ser excluído do sistema. Com isso seus arquivos também devem ser apagados.Essa rotina coopera para segurança do sistema e estabilidade do espaço disponível para armazenamento no Disco Rígido do Servidor. Figura 3.17 - Diagrama de Atividades - Ativa Usuário(s) Fonte: Elaborado pelos autores 61 Figura 3.18 - MVC - Ativar Usuário Fonte: Elaborado pelos autores Figura 3.19 - Diagrama de Sequência - Listar Usuários (Inativos) Fonte: Elaborado pelos autores 3.10.7 Desativar Usuário O administrador, em seu ambiente, possui também a opção de desativar uma conta. Nesta rotina, o usuário dono da conta desativada perde o privilégio de 62 acessar o sistema. Sendo assim, esta conta não é válida para o sistema em termos de logon. O processo é semelhante à ativação, a diferença está no fato de que a atualização resultante do processo desativará a conta. Figura 3.20 - Diagrama de Atividades - Desativar Usuário(s) Fonte: Elaborado pelos autores Figura 3.21 - MVC - Desativar Usuário Fonte: Elaborado pelos autores 63 Figura 3.22 - Diagrama de Sequência - Listar Usuários (Ativos) Fonte: Elaborado pelos autores 3.10.8 Upload Os alunos e/ou professores da faculdade, ao acessar o ambiente do sistema, podem enviar arquivos do computador que está usando para o seu espaço no serviço de armazenamento (Armazém Virtual). Basta que os arquivos sejam selecionados e enviados para o ambiente do serviço. Cada usuário tem um limite de envio, quando esse limite é atingido, o sistema bloqueia o upload. Este limite será gerenciado no banco de dados. Assim que o usuário realiza um upload, o sistema captura o tamanho do arquivo em questão. Este tamanho é acrescentado em um campo (espaço_usado) da tabela referente ao usuário no banco de dados. Há outro campo desta mesma tabela indicando o espaço máximo (espaço_livre) fornecido para o usuário. A diferença entre o espaço-usado e o espaço_livre define o espaço disponível para o usuário. Se o espaço disponível não for suficiente, o envio é bloqueado. Para fins de segurança e integridade do sistema, o upload de alguns tipos de arquivos é impedido. 64 Figura 3.23 - Diagramas de Atividades - Upload Fonte: Elaborado pelos autores Figura 3.24 - MVC - Upload Fonte: Elaborado pelos autores 65 Figura 3.25 - Diagrama de Sequência - Upload Fonte: Elaborado pelos autores 3.10.9 Listar Arquivos A fim de prover uma melhor visualização dos arquivos aos usuários, seus arquivos são todos listados. Este processo de listagem está implícito nas rotinas de download (baixar) arquivos e exclusão de arquivos. Figura 3.26 - Diagramas de Atividades - Listar Arquivos Fonte: Elaborado pelos autores 66 Figura 3.27 - MVC - Listar Arquivos Fonte: Elaborado pelos autores Figura 3.28 - Diagrama de Sequência - Listar Arquivos Fonte: Elaborado pelos autores 3.10.10 Download Os alunos e professores, em seu ambiente no sistema podem realizar o download (baixar) de seus arquivos. Para isso, os usuários selecionam os arquivos presentes no sistema e os copia para o computador. O arquivo permanecerá no sistema, uma cópia do mesmo é que será baixado. 67 Figura 3.29 - Diagramas de Atividades - Download Fonte: Elaborado pelos autores Figura 3.30 - MVC - Download Fonte: Elaborado pelos autores 68 Figura 3.31 - Diagrama de Sequência - Download Fonte: Elaborado pelos autores 3.10.11 Excluir Arquivo Os usuários têm a opção de excluir seus respectivos arquivos no sistema. Após o uso desse recurso o arquivo não pode mais ser recuperado. Figura 3.32 - Diagramas de Atividades - Excluir Arquivo Fonte: Elaborado pelos autores 69 Figura 3.33 - MVC - Excluir Arquivo Fonte: Elaborado pelos autores Figura 3.34 - Diagrama de Sequência - Excluir Arquivo Fonte: Elaborado pelos autores 70 3.10.12 Manter Curso No momento do cadastro de uma nova conta, é solicitado ao usuário, entre outras informações, o curso em que está matriculado na FATEC. O usuário pode digitar um curso inexistente e possíveis duplicações de um mesmo nome de curso (por exemplo, banco de dados, BD, informática, etc.) o que causaria inconsistências no banco de dados. Para evitar tais transtornos, o administrador previamente cadastra os cursos existentes, garantido ao usuário a escolha de um curso dentre uma lista de cursos disponíveis no momento do cadastro. Caso um curso deixe de fazer parte da grade da FATEC, o administrador pode excluí-lo, contanto que não haja usuários matriculados neste curso. Figura 3.35 - Diagramas de Atividades - Cadastrar Curso Fonte: Elaborado pelos autores 71 Figura 3.36 - MVC - Cadastrar Curso Fonte: Elaborado pelos autores Figura 3.37 - Diagrama de Sequência - Cadastrar Curso Fonte: Elaborado pelos autores 72 Figura 3.38 - Diagramas de Atividades - Excluir Curso Fonte: Elaborado pelos autores Figura 3.39 - MVC - Excluir Cursos Fonte: Elaborado pelos autores 73 Figura 3.40 – Diagrama de Atividades – Excluir Curso Fonte: Elaborado pelos autores 3.10.13 Listar Cursos A rotina de listagem de cursos está disponível tanto para administrador quanto para o usuário. No caso do usuário, tal rotina é utilizada no formulário de cadastro. O formulário é carregado com todos os cursos disponíveis na faculdade, para seleção de um deles. Contudo, no caso do administrador, além do cadastro, a rotina de listagem está implícita também no ambiente de exclusão de cursos. Neste ambiente, todos os cursos são listados para que o administrador, caso queira, exclua-os. 74 Figura 3.41 - Diagramas de Atividades - Listar Curso Fonte: Elaborado pelos autores Figura 3.42 - MVC - Listar Cursos Fonte: Elaborado pelos autores 75 Figura 3.43 – Diagrama de Atividades – Listar Cursos Fonte: Elaborado pelos autores 3.10.14 Alterar Senha A alteração de senha é uma rotina disponível tanto para o administrador quanto para usuário. O processo ocorre após o preenchimento de um formulário no qual se insere a senha antiga e uma nova senha. Se a senha antiga estiver correta, esta é trocada pela nova, e a atualização ocorre. Figura 3.44 - Diagramas de Atividades - Alterar Senha Fonte: Elaborado pelos autores 76 Figura 3.45 - MVC - Alterar Senha Fonte: Elaborado pelos autores Figura 3.46 - Diagrama de Sequência - Alterar Senha Fonte: Elaborado pelos autores 3.10.15 Análise de Requisitos Não Funcionais A seguir serão listados os requisitos não funcionais do sistema: A permissão ou bloqueio de acesso ao sistema; Deverá ter limite de espaço físico de armazenamento; Deverá limitar o upload de determinados arquivos; O administrador, antes de inserir usuários, necessita verificar o espaço físico disponível. 77 4 IMPLEMENTAÇÃO 4.1 LAYOUTS DE TELAS 4.1.1 Home Na Figura 4.1 é apresentada a tela de login. Ela é composta pela imagem do logotipo do protótipo e o formulário para acesso ao sistema, junto a um link para não usuários realizarem seu cadastro, que fazendo uso de JQuery carrega o formulário onde está a imagem do Armazém Virtual . Figura 4.1 - Home Page do Protótipo Fonte: Elaborado pelos autores, 2012 4.1.2 Interface de Cadastro de Conta 78 Na Figura 4.2 é apresentado a tela na qual é possível que um futuro usuário realize seu cadastro, após a realização do cadastro a imagem do Armazém Virtual é recolocada no lugar do formulário, utilizando o conceito de AJAX com um método da biblioteca JQuery, então o usuário devera esperar a ativação de sua conta pelo administrador, para fazer uso dos recursos do protótipo. Figura 4.2 - Visão Cadastro Conta Fonte: Elaborado pelos autores, 2012 4.1.3 Home Page do Administrador Na figura 4.3 é apresentada a Home Page do Administrador, ela é composta por cabeçalho, corpo e rodapé, sendo que a única parte da estrutura que sofrerá alterações será o corpo, onde são carregadas as paginas que forem requisitas através dos links selecionados. Nesse processo é usado o conceito de AJAX através da tecnologia JQuery. Por meio dessa tela é possível ter acesso a todos os links da área do administrador, permitindo que o administrador acesse suas funcionalidades para manutenção do protótipo. 79 Figura 4.3 - Home Page do Administrador Fonte: Elaborado pelos autores, 2012 4.1.4 Interface de Alterar Senha Na Figura 4.4 é apresentada a tela que permite a alteração da senha tanto para o usuário quanto para o administrador, o usuário/administrador preenche as informações necessárias e seleciona o botão “Enviar”, então o protótipo retorna uma mensagem para informar o sucesso na alteração da senha ou uma mensagem de alerta. 80 Figura 4.4 - Visão Alterar Senha Fonte: Elaborado pelos autores, 2012 4.1.5 Interface de Cadastrar Curso Como se pode ver na figura 4.5, é apresentada a tela de cadastro de cursos, o administrador preenche o nome do curso a ser inserido e clica no botão “Enviar”, então ele receberá uma mensagem informando o sucesso na inclusão do curso ou uma mensagem de alerta. 81 Figura 4.5 - Visão Cadastrar Curso Fonte: Elaborado pelos autores, 2012 4.1.6 Interface de Exclusão de Curso Na Figura 4.6 é apresentada a tela para exclusão de curso, o administrador deve selecionar o(s) curso(s) que deseja excluir e selecionar o botão “Excluir Cursos Selecionados”. Então, após realizar a exclusão do(s) curso(s) selecionado(s), a visão é atualizada. 82 Figura 4.6 - Visão Excluir Curso Fonte: Elaborado pelos autores, 2012 4.1.7 Interface de Exclusão de Conta Na Figura 4.7 é apresentada a tela para exclusão de conta, o administrador deve selecionar a(s) conta(s) que deseja excluir e selecionar o botão “Excluir Cursos Selecionados”, ou apenas clicar no botão “Excluir” referente à conta que deseja excluir. Então, após realizar a exclusão, a visão é atualizada. 83 Figura 4.7 - Visão Excluir Conta Fonte: Elaborado pelos autores, 2012 4.1.8 Interface de Ativar Contas Na Figura 4.8 é apresentada a tela para ativação de contas, o administrador deve selecionar a(s) conta(s) que deseja ativar, selecionar o botão “Ativar Contas Selecionadas”. Logo após realizar a ativação das contas a visão é atualizada. 84 Figura 4.8 - Visão Ativar Conta Fonte: Elaborado pelos autores, 2012 4.1.9 Interface de Desativar Conta Na Figura 4.9 é apresentada a tela para desativação de contas, o administrador deve selecionar a(s) conta(s) que deseja ativar, selecionar o botão “Desativar Contas Selecionadas”. Logo após realizar a desativação das contas a visão é atualizada. 85 Figura 4.9 - Visão Desativar Conta Fonte: Elaborado pelos autores, 2012 4.1.10 Interface de Cadastro de Conta do Administrador Na figura 4.10 é apresentada a tela de cadastro já citada anteriormente, porém, agora ela esta na área do administrador, o administrador preenche os dados e clica no botão “Enviar”, o protótipo faz o cadastro da conta, entretanto nesse caso já com ela ativada. Então retorna uma mensagem para a visão informando o sucesso na inclusão ou uma mensagem de alerta. 86 Figura 4.10 - Visão Cadastro Conta Administrador Fonte: Elaborado pelos autores, 2012 4.1.11 Home Page do Usuário Na figura 4.11 é apresentada a Home Page do Usuário, ela é composta pela mesma estrutura do Home Page do administrador e funciona de forma semelhante, apenas alterando o conteúdo do corpo da página quando o usuário selecionar algum link de sua área. Nesse processo é utilizado do conceito de AJAX através da tecnologia JQuery. Através dessa tela é possível ter acesso a todos os links da área do usuário, permitindo ao usuário usar de suas funcionalidades. 87 Figura 4.11 - Home Page do Usuário Fonte: Elaborado pelos autores, 2012 4.1.12 Interface de Upload Na Figura 4.12 é apresentada a tela de envio de arquivos (Upload), o usuário deve clicar no botão selecionar arquivo para ser aberta uma janela para procurar a localização do arquivo, e então clicar no botão “Enviar” para realizar o envio do(s) arquivos selecionado(s) o protótipo realiza a inclusão da localização lógica no banco e a inclusão do arquivo físico dentro do projeto e retorna uma mensagem informando o sucesso na transferência ou um alerta. 88 Figura 4.12 - Visão Upload Fonte: Elaborado pelos autores, 2012 4.1.13 Interface de Download Na Figura 4.13 é apresentada a tela de download do usuário, onde são carregados links com referencias aos arquivos do mesmo. Quando o usuário seleciona o link com o nome do arquivo é realizado o download do arquivo, nesta tela também é possível fazer a exclusão dos arquivos que o usuário possui clicando no botão “Excluir” referente ao arquivo, após o clique a visão é atualizada. 89 Figura 4.13 - Visão Download Fonte: Elaborado pelos autores, 2012 90 CONCLUSÃO Nos dias atuais, a ideia de armazenamento na nuvem (Cloud Storage) está amplamente desenvolvida e explorada. Ao analisar os diversos serviços que usufruem dessa idéia é fácil notar que se trata de um ramo da tecnologia com uma alta variedade de uso. Ademais, devido o aumento do número de usuários e da velocidade de Internet no Brasil (e no mundo) há uma tendência de que tecnologias baseadas em Cloud Computing e Cloud Storage se alastrem e se fortaleçam cada vez mais. Com os serviços de disco virtual, tema deste trabalho, não é diferente. Há na Internet, hoje, muitos serviços de disco virtual com incontáveis variações, preços, espaço de armazenamento e pacotes voltados tanto para um usuário comum guardar seus arquivos quanto para uma grande empresa realizar backups de seus servidores. A partir da análise dessa gama de variações e aplicações de uso, buscou-se atingir o objetivo deste trabalho que era desenvolver um protótipo de disco virtual para FATEC de Lins. Objetivo esse, conquistado com sucesso. Com isso conclui-se que o protótipo desenvolvido é satisfatório e tem todas as condições de amadurecimento para futuramente se tornar um serviço viável de disco virtual para FATEC de Lins. Conclui-se também que desenvolver um serviço web, sendo ele qualquer que seja, apresenta dificuldades e exige dedicação e empenho do desenvolvedor no que diz respeito a diagramas, documentação do sistema, códigos para programação e implementação de tecnologias. Devido a essas dificuldades alguns poucos recursos do projeto inicial não puderam ser implantadas, bem como outros recursos podem ser citados como complementos ou futuras adições no processo de amadurecimento do protótipo rumo a um serviço completo para FATEC. Tais recursos são: a implantação do protocolo HTTPS para segurança do serviço na web; o uso de criptografia em senhas; o controle do tipo de arquivo que pode ser enviado (upload) pelo usuário; controle para a escalabilidade do serviço, podendo assim aumentar e diminuir seu espaço de acordo com a necessidade; mesclar o serviço com a base Lightweight Directory Access Protocol (LDAP) da FATEC visando os usuários desta base, os quais serão os mesmos usuários do 91 disco virtual. Esses recursos citados ou trabalhos futuros podem ser considerados fundamentais na evolução do protótipo. 92 REFERÊNCIAS BIBLIOGRÁFICAS ALVAREZ, M. A.. O que é Java Script? Criar Web, 27 set. 2004. Disponível em: <http://www.criarweb.com/artigos/184.php> Acesso em: 11 dez. 2011. AZEVEDO, C. DropBox, alojamento gratuito de ficheiros. WPTotal, 31 ago. 2010. Disponível em < http://www.wptotal.com/dropbox-alojamento-gratuito-de-ficheiros/> Acesso em: 14 nov. 2011. BORGES, R. HDs virtuais, uma forma de guardar arquivos nas nuvens. Informe Aberto, São Paulo, 07 jan. 2011. Disponível em: <http://pprjbgbo.wordpress.com/2011/01/07/hds-virtuais-uma-forma-de-guardararquivos-nas-nuvens/> Acesso em: 22 set. 2011. CARVALHO, L.A. O que é JQuery? Webulando, 7 jun. 2010. Disponível em: <http://www.webulando.com.br/jquery/o-que-e-jquery> Acesso em: 11 dez. 2011. COSTA, B. M.; COSTA, L. H. M. K.; DUARTE, O. C. M. B. Segurança na Internet Protocolo SSL/TLS. Grupo de teleinformática e Automação da Universidade Federal do Rio de Janeiro (GTA/UFRJ), 2010. Disponível em: <http://www.gta.ufrj.br/ensino/eel879/trabalhos_vf_2010_2/bernardo/tls.html>. Acesso em: 24 mar. 2012. COUTINHO, F.. Introdução ao Tomcat e Servlet. GUJ, 31 ago. 2002. Disponível em: <http://www.guj.com.br/articles/9> Acesso em: 11 dez. 2011. DROPBOX. Gerenciador. 2011. Disponível em: < https://www.dropbox.com/>. Acesso em: 14 nov. 2011. EMC. Information and Storage Management: Storing, Managing, and Protecting Digital Information. Estados Unidos: John Wiley and Sons, 2009. GARCIA, R. Skydrive, o disco virtual da Microsoft. Rogério Garcia Desenvolvimento e Tecnologia, 17 jul. 2009. Disponível em: <http://www.rogeriogarcia.com/2009/tendencias/skydrive-o-disco-virtual-damicrosoft.html> Acesso em: 14 nov. 2011. HALPERT, B, M. Auditing Cloud Computing: A Security and Privacy Guide. Estados Unidos: John Wiley and Sons, 2011. HARBOURNE-THOMAS, A. Professional Java Servlets 2.3. Estados Unidos: APress, LLC, 2004. HEATON, J. HTTP Programming Recipes for Java Bots. Estados Unidos: Heaton Research, 2007. 93 IBOPE. 73,9 milhões de pessoas têm acesso à Internet no Brasil. Ibope, 18 mar. 2011. Disponível em:<http://www.ibope.com.br/calandraWeb/servlet/CalandraRedirect?temp=6&proj= PortalIBOPE&pub=T&nome=home_materia&db=caldb&docid=EA0526673CE1740D 832578570054B23B#topo> Acesso em: 11 dez. 2011. JavaFree.org. JDBC. Disponível em: <http://javafree.uol.com.br/wiki/jdbc> Acesso em 28 abr. 2012 Java Server Pages. GigaFlops. Disponível <http://gigaflops.tripod.com/page/lp/jsp/jsp.html> Acesso em: 11 dez. 2011. em: JORDÃO, F.. A velocidade da Internet ao redor do mundo em 2010. Tecmundo, 24 set. 2010. Disponível em: <http://www.tecmundo.com.br/5540-a-velocidade-daInternet-ao-redor-do-mundo-em-2010.htm> Acesso em: 11 dez. 2011. KEITH, M.; SCHINCARIOL, M. Pro JPA 2: mastering the Java™ Persistence API. Estados Unidos: Apress, 2009. LEAL, R.; CRUZ, L. Banda (quase) larga. Info. São Paulo, p. 80, jun. 2011. LIMA, G. Cloud Storage, um serviço que vem crescendo a cada dia. Coruja de TI, 01 nov. 2010. Disponível em: < http://blog.corujadeti.com.br/cloud-storage-umservico-que-vem-crescendo-a-cada-dia/> Acesso em: 22 set. 2011. MATHEWS, L. VMWare adds Mozy to its cloud and virtualization empire. Busk, abr. 2011. Disponível em: <http://busk.com/news/vmware-adds-Mozy-to-its-cloud-andvirtualization-empire?period=any&q=hoje> Acesso em: 14 nov. 2011. MILLER, M. Cloud Computing: Web-Based Applications That Change the Way You Work and Collaborate Online. Estados Unidos: Que Publishing, 2008. MOZY. Site. 2011. Disponível em: < http://Mozy.com/home/>. Acesso em: 14 nov. 2011. OSMAR, J. S.. O que é um Java Servlet. Arquivo de Código. Disponível em: <http://www.arquivodecodigos.net/dicas/java-servlets-o-que-e-um-java-servlet1076.html> Acesso em: 11 dez. 2011. PAMPLONA, V. F.. O que é Java? JavaFree.org, 10 out. 2009. Disponível em: <http://javafree.uol.com.br/artigo/871498/> Acesso em: 11 dez. 2011. PERSONAL. Porque investir em uma loja virtual? Personal, 09 ago. 2011. Disponível em <http://www.personalpublicidade.com.br/blog/?cat=10> Acesso em 11 dez. 2011. PITTELA, F.. O que é JSP? JavaFree.org, 17 ago. 2009. Disponível em: <http://javafree.uol.com.br/artigo/1409/O-que-e-JSP.html> Acesso em: 11 dez. 2011. 94 SAKURAI, R. Exemplo de DAO (CRUD) utilizando JPA. Universidade Java. 21 fev. 2012. Disponível em <http://www.universidadejava.com.br/docs/exemplodedaocrudutilizandojpa> Acesso em: 29 abr. 2012. SHELLY, G. B.; VERMAAT, M. E. Discovering Computers 2010: Living a Digital World. Estados Unidos: Cengage Learning, 2009. SNEDDON, J. Ubuntu One upgrades free storages to 5GB, hits 1 million users. OMG! Ubuntu!, 28 jul 2011. Disponível em: <http://www.inforlogia.com/Ubuntu-Onechega-a-1-milhao-usuarios/> Acesso em: 14 Nov 2011. STEPHEN, T. SSL and TLS Essentials: Securing the Web. Estados Unidos: John Wiley & Sons, 2000. TELEBRASIL. Banda Larga: acessos em outubro ultrapassam 53 milhões. TeleBrasil, 21 nov. 2011. Disponível em: <http://www.telebrasil.org.br/artigos/outros_artigos.asp?m=1182> Acesso em: 11 dez. 2011. TERRA. Disco Virtual. http://discovirtual.terra.com.br/vdmain.shtml> Acesso em: 14 nov. 2011. 2011 Disponível em: UBUNTU ONE. Site. 2011. Disponível em: < https://One.Ubuntu.com/>. Acesso em: 14 nov. 2011. UOL. Disco Virtual. 2011 Disponível <http://discovirtual.uol.com.br/discovirtual.html> Acesso em: 14 nov. 2011. em: UOL. Backup. 2011 Disponível em: < http://backup.uol.com.br/> Acesso em: 14 nov. 2011.