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 6: Linha 6:
  
 
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.  
 
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.  
 +
 
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 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”.  
 +
 
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.  
 
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.  
 +
 
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.
 
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.
 +
 
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.
 
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.

Edição das 14h07min de 22 de dezembro de 2012

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 armazenamento 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.

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.

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”.

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.

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.

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.