Desenvolvimento de um sistema web de armazenamento de arquivos com controle de privilégio de envio e geração de relatórios de atividades

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Resumo

Nos dias atuais, cada vez mais equipamentos estão conectados à internet. Os dispositivos da linha Smart (telefones, televisores, geladeiras, entre outros) estão cada vez mais entrando nos lares das pessoas e se tornando itens indispensáveis no dia a dia. Mesmo na informática convencional, sistemas originalmente com depósito de informação local estão migrando para o acesso na nuvem. São exemplos disso os programas de escritório e armazenamento de arquivos via web.

Este trabalho acompanha essa popularização da convergência de aplicações para o ambiente da internet, através da criação de uma aplicação Java para uma demanda específica da empresa WaveTech Soluções Tecnológicas, uma empresa da área de engenharia biomédica que tem seus desenvolvedores descentralizados em outros estados do Brasil, e que tem a necessidade de controlar os arquivos criados por terceiros através de uma interface web intuitiva dispensando a necessidade de treinamento.

O projeto desse TCC será um sistema de armazenamento de arquivos com controle de permissão e geração de relatórios de atividades, ou seja, com ele o usuário poderá enviar e receber arquivos de ou para um servidor remoto. Esse software registrará as ações de envio, recebimento e exclusão de arquivos. O administrador desse sistema poderá definir quem terá permissão para enviar e/ou receber arquivos.

Para a criação desse projeto é necessário estudar as tecnologias existentes para o desenvolvimento de aplicativos web, a modelagem de banco de dados, bem como um SGDB e o modelo cliente-servidor.

Para a criação da interface e a lógica do sistema um candidato é Java, uma linguagem de programação criada na década de 90 com a ideia de que um dia os computadores iriam convergir com os equipamentos e eletrodomésticos usado pelas pessoas no seu dia-a-dia e que se adaptou com o estouro da internet no início da mesma década. Desde sua criação até o presente ela evoluiu muito, sendo que a Sun Microsystems junto com a comunidade de desenvolvedores que mantinham as JSR criaram diversos padrões para a plataforma Java. A partir dessas especificações, muitas API e Frameworks foram criados para auxiliar no desenvolvimento de software.

Modelar uma base de dados será necessário, já que um dos requisitos do projeto é enviar, receber e registrar arquivos de usuários. Dessa forma, esses dados devem ser armazenados em um banco de dados.

Após a modelagem um SGDB deve ser adotado para preservar os dados do sistema a ser desenvolvido.

Outro ponto importante para a criação desse projeto é um estudo mais detalhado sobre o modelo cliente-servidor. Ele é um modelo computacional que separa clientes e servidores, sendo interligados entre si geralmente utilizando-se uma rede de computadores. Cada instância de um cliente pode enviar requisições de dados para algum dos servidores conectados e esperar pela resposta. Por sua vez, algum dos servidores disponíveis pode aceitar tais requisições, processá-las e retornar o resultado para o cliente. A máquina servidor é um host que está executando um ou mais programas de servidor que partilham os seus recursos com os clientes. Um cliente não compartilha de seus recursos, mas solicita o conteúdo de um servidor ou função de serviço. Os clientes, portanto, iniciam sessões de comunicação com os servidores que esperam as solicitações.

Cronograma

Etapas do trabalho de conclusão de curso:

1. Revisão bibliográfica e planejamento.

2. Estudos aprofundados:

  • Estudo aprofundado de uma linguagem de programação para web.
  • Estudo aprofundado de um sistema de gerenciamento de banco de dados.
  • Estudo aprofundado de uma plataforma web para implantação do projeto.

3. Criação de diagramas:

  • Elaboração de diagramas de classe, caso de uso e de sequência.
  • Elaboração do modelo relacional.

4. Desenvolvimento de uma interface web.

5. Desenvolvimento da lógica do sistema.

6. Testes:

  • Testes locais do sistema
  • Testes remotos do sistema.


Cronograma santclear tcc 2013 1.png

Referências

ALEX, B.; TAYLOR, L. Reference Documentation. 2013. Disponível em <http://jcp.org/en/jsr/overview>. Acesso em 172/02/2013.

BUDINSKY, F. Eclipse modeling framework: a developer's guide. [S.l.]: Addison-Wesley Professional, 2004.

BURNS, E.; KITAIN, R. JavaServerTM Faces Specification. [S.l.]: Version, 2009.

CASEY, J. et al. Better Builds with Maven. [S.l.]: Mergere Library Press, 2006.

ELMASRI, R. et al. Fundamentals of datadata systems. [S.l.]: Pearson Addison Wesley, 2011.

FOROUZAN, B. A.; FEGAN, S. C. et al. Data communications and networking. [S.l.]: McGraw-Hill, 2008.

FOUNDATION, A. S. Welcome to Log4j 2! 2013. Disponível em <http://logging.apache.org/log4j/2.x/manual/index.html> acesso em 04/02/2013.

FOUNDATION, E. About the Eclipse Foundation. 2013. Disponível em <http://www.eclipse.org/org/>. Acesso em 02/02/2013.

GONÇALVES, E. Desenvolvendo aplicações web com JSP, Servlets, Java Server Faces, Hibernate, EJB 3 Persistence e Ajax. [S.l.]: Ciência Moderna, 2007.

HAT, R. What is Object/Relational Mapping? 2013. Disponível em <http://www.hibernate.org/about/orm>. Acesso em 20/01/2013.

HOLMES, B.; JOYCE, D. T. Object-oriented programming with Java. [S.l.]: Jones & Bartlett Learning, 2001.

KING, G. et al. Hibernate Reference Documentation, 3.6. 0. cr2 edn.

KUROSE, J.; ROSS, K. Redes de Computadores e Internet. [S.l.: s.n.], 2010.

LARMAN, C. Utilizando Uml E Padroes 3 Ed. [S.l.]: Bookman, 2008.

MCLAUGHLIN, B. et al. Use a cabeça!: análise e projeto orientado ao objeto. [S.l.]: Alta Books, 2007.

MEHTA, V. P. Pro LINQ Object Relational Mapping in C# 2008. [S.l.]: Apress, 2008.

MULARIEN, P. Spring Security 3. [S.l.]: Packt Pub Limited, 2010.

OPENSHIFT. OpenShift Platform as a Service (PaaS). 2013. Disponível em <https://openshift.redhat.com/community/paas> acesso em 05/02/2013.

ORACLE. The History of Java Technology. 2013. Disponível em <http://www.oracle.com/technetwork/java/javase/overview/javahistory-index-198355.html>. Acesso em 02/02/2013.

ORACLE. Java Timeline. 2013. Disponível em <http://oracle.com.edgesuite.net/timeline/java/> . Acesso em 02/02/2013.

TANENBAUM, A. Computer networks. [S.l.]: Prentice Hall Professional Technical Reference, 2010.

VARAKSIN, O.; CALISKAN, M. PrimeFaces Cookbook. [S.l.]: Packt Publishing Ltd, 2013.

W3C. Visão geral do HTML5. 2013. Disponível em <http://www.w3c.br/cursos/html5/conteudo/capitulo1.html>. Acesso em 10/02/2013.

W3C. What is HyperText. 2013. Disponível em <http://www.w3.org/WhatIs.html> . Acesso em 10/02/2013.

WALTERS, E. G. The essential guide to computing. [S.l.]: Pearson PTR, 2001.