Mudanças entre as edições de "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
Linha 1: Linha 1:
 
= Resumo =
 
= Resumo =
  
Nos dias atuais, cada vez mais equipamentos recebem o acesso à 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.
+
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.
  
Dessa forma 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 WeveTech Soluções Tecnológicas, uma empresa da área biomédica que tem seus desenvolvedores descentralizados em outros estados do Brasil, e que tem a necessidade de controlar os arquivos criados por eles. Apesar de existir softwares que poderiam suprir essas necessidades como Redmine, Dropbox, Git , entre outros, eles não foram concebidos para esse fim. Então o projeto desse TCC deverá agir como um gerenciador de arquivos, ou seja, com ele o usuário poderá fazer download, upload e log de informações, além da possibilidade de definir quem terá permissão para upload e/ou download.
+
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.
  
No entanto 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 sistema de gerenciamento de banco de dados (SGDB) e o modelo cliente-servidor.  
+
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 da interface e as regras de negócio do sistema (particularidades das funcionalidades a serem desenvolvidas do software) 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 dessa década. Ela é a linguagem mais madura e produtiva para a criação de programas web. Desde sua criação até o presente ela evoluiu muito, sendo que a Sun Microsystems junto com a comunidade de desenvolvedores que mantinham as especificações (JSRs - Java Specification Requests) criaram diversos padrões e documentos que orientam desenvolvedores de quais são as melhores práticas para desenvolver códigos mais robustos e consistentes. A partir dessas especificações muitas APIs (Interface de Programação de Aplicativos) e Frameworks (um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação) foram criados para auxiliar no desenvolvimento de software impedindo que o desenvolvedor sempre tenha que “recriar a roda”.  
+
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.
  
Modelar uma base de dados será necessário, já que será feito download, upload e log de arquivos de usuários, e uma vez tendo esses elementos no projeto os dados desses arquivos e usuários devem ser persistidos de forma a não ter inconsistência ou, até mesmo, redundância de dados.  
+
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.
  
Após a modelagem um SGDB deve ser adotado para manter esses dados persistidos. Atualmente existem alguns sistemas de gerenciamento gratuitos disponíveis para desenvolvedores, sendo que algum deles deverá ser estudado, como por exemplo: MySql, PostgreSQL, Firebird, etc.
+
Modelar uma base de dados será necessário, 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.
  
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 (nesse caso a internet). Cada instância de um cliente pode enviar requisições de dado 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. Apesar do conceito ser aplicado em diversos usos e aplicações, a arquitetura é praticamente a mesma. Muitas vezes os clientes e servidores se comunicam através de uma rede de computador com hardwares separados, mas o cliente e servidor podem residir no mesmo sistema. 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 de entrada.
+
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.
 +
 
 +
= 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. JavaServer<sup>TM</sup> Faces Speci�cation. [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�c~oes 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�ca!: an�alise 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~ao 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.

Edição das 16h22min de 7 de março de 2013

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.

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 Speci�cation. [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�c~oes 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�ca!: an�alise 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~ao 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.