Sant Clear Ali Costa. Fretum: Sistema web de armazenamento de arquivos

Tamanho: px
Começar a partir da página:

Download "Sant Clear Ali Costa. Fretum: Sistema web de armazenamento de arquivos"

Transcrição

1 Sant Clear Ali Costa Fretum: Sistema web de armazenamento de arquivos São José SC Julho / 2013

2 Sant Clear Ali Costa Fretum: Sistema web de armazenamento de arquivos Monografia apresentada à Coordenação do Curso Superior de Tecnologia em Sistemas de Telecomunicações do Instituto Federal de Santa Catarina para a obtenção do diploma de Tecnólogo em Sistemas de Telecomunicações. Orientador: Prof. Diego de Medeiros, M. Eng. Curso Superior de Tecnologia em Sistemas de Telecomunicações Instituto Federal de Santa Catarina São José SC Julho / 2013

3 Monografia sob o título Fretum: Sistema web de armazenamento de arquivos, defendida por Sant Clear Ali Costa e aprovada em 24 de Julho de 2013, em São José, Santa Catarina, pela banca examinadora assim constituída: Prof. Diego da Silva de Medeiros, M. Eng. Orientador Prof. Ederson Torresini, M. SC. IFSC Guillaume Barrault, Dr. WaveTech Soluções Tecnológicas Ltda.

4 Agradecimentos Agradeço a todos que contribuíram para eu chegar até aqui. Em especial meus pais por terem me proporcionado a educação que tenho hoje. A Minha namorada Bruna Amante que sempre esteve comigo nos bons e maus momentos, que tentou me dar apoio de todas as formas que estiveram ao alcance dela. A toda equipe da WaveTech Soluções Tecnológicas que me deram grandes incentivos e apoio no desenvolvimento deste trabalho. Agradeço especialmente, ao Dr. Guillaume Barrault que foi o grande incentivador deste trabalho e ao Diego Tefili que prestou imenso auxílio na formatação e correções deste documento. Sou grato também a todos os professores pelo conhecimento passado a mim. Com destaque aqueles que tiveram grande paciência comigo nos momento de dificuldades, que tornaram as aulas mais empolgantes e didáticas como Maria Cláudia de A. Castro, Silviana Cirino, Ederson Torresini, Volnei V. Rodrigues, Mário de Noronha Neto, Eraldo Silveira e Silva, Jaci Destri e também o meu orientador Diego Medeiros, por sua presteza e ajuda durante o desenvolvimento deste trabalho.

5 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 do sistema web de armazenamento de arquivos em Java criado nesse trabalho, o qual está disponível para suprir 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 sistema desse trabalho permite o controle de privilégio de envio de arquivos e geração de relatórios de atividades, ou seja, com ele o usuário pode enviar e carregar arquivos de ou para um servidor remoto. Esse sistema registra as ações de envio, carregamento e exclusão de arquivos. O administrador desse sistema pode definir quem tem permissão para enviar e/ou carregar arquivos.

6 Abstract Nowadays, more and more equipments are conected to internet. The Smart devices (telephones, televisions, regrigerators, etc) are entering people s homes and are becoming indispensable to modern lives. Even in conventional computing, local information repository systems are migrating to on cloud access. Office programs and web-based file storage are examples. This work follows the popularization of the convergence of internet-based applications, through the file storage web system developed in this work. This system is available to feed the WaveTech Soluções Tecnológicas s specific demand, a biomedic-engineering s enterprise which has descentralized developpers in other Brazil states. The enterprise has the necessity to control files created by third party through a intuitive web interface, dispensing the need of training. The system of this work allows privilege s control of file sending and activity report generation, or in other words, with the system the user can sending and receive files to and from a remote server. This system records actions of sending, receiving and excluding files. The administrator can define who has the permission to sending and receiving files.

7 Sumário Lista de Figuras Lista de Tabelas Lista de símbolos p Introdução p Requisitos não funcionais p Facilidade p Implementação p Recursos p Revisão bibliográfica p História da internet p Camadas de rede p O modelo cliente servidor p HTML p PaaS OpenShift p Banco de dados p Frameworks p JSF p Hibernate p Spring Security p. 27

8 2.7.4 Prime Faces p Maven p IDE Eclipse p Desenvolvimento p Introdução p Domínio do problema p Requisitos funcionais p Identificação dos atores do sistema p Usuario p Administrador p Limites do sistema p Applet Área Administrativa p Applet Região p Principais casos de utilização p Modelo de Dados p Modelo de classes p ArquivoBean p UsuarioBean p Regra de negócio p Diagramas de sequência p Regra de negócio p Novo usuário p Editar usuário p Ativar usuário p Atribuir privilégios ao usuário p Excluir usuário p. 57

9 3.6.7 Enviar arquivo p Carregar arquivo p Excluir arquivo p Configuração da aplicação p Implantação do projeto p Parâmetros dos frameworks p JSF p Hibernate p Spring Security p Resultados p Conclusão p Trabalhos futuros p. 93 Lista de Abreviaturas p. 95 Referências p. 97

10 Lista de Figuras 1 Interesse pelas principais linguagens de programação - Pesquisa realizada em 21/05/2013 no Google Trends p Modelo TCP/IP p Modelo cliente/servidor p Escalonamento automático dos recursos p Página básica da camada de visualização p Mapeamento objeto relacional para entidades de banco de dados.... p Configuração básica do Maven p Injeção de dependência p Domínio do problema p Diagrama de Caso de Uso (DCDU) da Região p Diagrama de Caso de Uso (DCDU) da Área Administrativa p Modelo de Dados p Modelo de classe do ArquivoBean p Modelo de classe do UsuarioBean p Modelo de classe da regra de negócio p Diagrama de sequência Regra de Negócio Usuário p Diagrama de sequência Salvar Usuário p Diagrama de sequência Editar Usuário p Diagrama de sequência Ativar ou Desativar Usuário p Diagrama de sequência Atribuir Privilégios ao Usuário p Diagrama de sequência Excluir Usuário p. 58

11 22 Diagrama de sequência Envio de Arquivo p Diagrama de sequência Carregar Arquivo p Diagrama de sequência Excluir Arquivo p Conta OpenShift p Servidor JBoss AS p Servidor JBoss AS p Gerenciador de sistemas implantados p Informações sobre o sistema implantado p Adicionar banco de dados p Selecionar MySQL p Confirmar a escolha do MySQL p Gerenciador de sistemas implantados p Git clone p Import do Eclipse p Importação Maven p Pasta do projeto p Carregar projeto no Eclipse p Endereço Terminal Seguro - Security Shell (SSH) do repositório.... p Acesso remoto do repositório via SSH p Criação de diretório físicos para o sistema p Binários do projeto p Commit do Git p Configuração do banco de dados p Estrutura de diretórios p Configurações do JSF p Configurações do Hibernate p. 81

12 48 Configurações do Spring Security p Configurações do caminho do banco de dados para o Spring Security.. p Botão para entrar na área de diálogo de acesso ao sistema p Diálogo para acesso ao sistema p Tela principal para usuários não administradores p Tela principal para usuários administradores p Diretório sem recurso de envio de arquivos p Lista de arquivos expandida em uma segunda tela p Diretório com recurso de envio de arquivos p Área administrativa p Área de cadastro de usuários p Recursos de filtragem e de ordenação de valores p Área de registros de atividades dos usuários p. 92

13 Lista de Tabelas 1 Mensagem de requisição HTTP p Mensagem de resposta HTTP p. 22

14 Lista de símbolos Símbolo Descrição Objeto da API Java Objeto deste trabalho Tipo enumerado Atributo privado Atributo público Método privado Método público Pacote Humano ou entidade máquina que interage com o sistema para executar um trabalho. 0...* Zero ou mais 1...* Um ou mais Chave Primaria Chave estrangeira Atributo pode ser nulo Atributo não nulo Relacionamento de muitos Relacionamento de 1 Entidade de Banco de Dados

15 14 1 Introdução A WaveTech Soluções Tecnológicas é uma empresa da área de engenharia biomédica. Para o desenvolvimento de seus produtos ela conta com parceiros distribuídos no território Brasileiro. Atualmente, o principal ramo de atuação é o desenvolvimento de firmware para aparelhos auditivos, incluindo implementação de algoritmos de processamento de áudio e especificação de requerimentos para o hardware correspondente. A WaveTech participa, ainda, do desenvolvimento do primeiro chip nacional voltado totalmente para aparelhos auditivos. Nos projetos em andamento, estão envolvidas outras duas empresas, localizadas em outros estados. Para centralizar a troca de conteúdo digital entre estas três empresas, os gerentes de projetos decidiram pelo desenvolvimento de um sistema web no qual cada empresa possa hospedar separadamente seus arquivos. Dessa forma, o sistema deveria ser dividido em três diretórios, sendo um destinado para cada empresa. 1.1 Requisitos não funcionais Nesta seção será apresentada uma análise, em subseções, dos requisitos que justificam a concepção do sistema Fretum Facilidade O sistema que é descrito nesse documento foi pensado para ser intuitivo. Cada área de interação entre o usuário e o sistema são compostas de uma lista, a qual é possível de forma direta executar uma ação.

16 1.1 Requisitos não funcionais Implementação A WaveTech é uma start up. Nessa fase ela visa uma otimização de seus gastos e confidencialidade no desenvolvimento de seus produtos. O Fretum poderia ter sido facilmente concebido com as Interface de programação de aplicativos - Application Programming Interfaces (APIs) gratuitas que os serviços de armazenamento de arquivos comerciais oferecem, pois elas permitem criar sistemas de armazenamento de arquivos particulares. O uso dessas APIs poderiam ter sido uma vantagem para o desenvolvimento do Fretum se não fosse o fato de que é necessário ter chave de autenticação para esses serviços dentro do sistema desse trabalho tornando-o subordinado a eles (GOOGLE, 2013)(DROPBOX, 2013). No entanto para o sistema desse trabalho havia uma restrição de projeto, a saber não deveria ser dependente de um serviço de armazenamento de arquivos como DropBox, Google Drive, Ubuntu One, etc. Estar dependente de um sistema de armazenamento de arquivos de terceiros pode ser um grande problema. Por exemplo eles podem ser custosos devido a possíveis reajustes de preços para níveis acima dos quais a empresa considera viável. Além disso, eles podem ser extintos. Devido as considerações anteriores foi decidido a pesquisa de uma tecnologia que permitisse o desenvolvimento do sistema desse trabalho. Em geral, para o processo de criação de software, a escolha de uma tecnologia é determinada por restrições do mundo real, como por exemplo, treinamento, investimento prévio, custo e disponibilidade. Não existe uma regra definida para estabelecer a melhor opção de linguagem de programação para a resolução de um problema (PYTHON, 2013). Ao escolher uma linguagem de programação para o desenvolvimento desse trabalho alguns requisitos deveriam ser atendidos como: Gratuidade; Popularidade, para aumentar as chances de encontrar, em um curto prazo, profissionais para fazer manutenção e evolução do sistema; Possuir elementos que possibilitassem tornar o processo de desenvolvimento de software mais eficiente; Ter suporte por meio de artigos, fóruns na web, frameworks, etc.

17 1.1 Requisitos não funcionais 16 Na pesquisa de uma tecnologia foram encontradas algumas bem populares entre muitas existentes, a saber Java, PHP, Python e Ruby. Todas elas são gratuitas e possuem elementos que possibilitam tornar o processo de desenvolvimento de software mais eficiente por meio do paradigma de programação orientado a objetos. No entanto a popularidade entre as linguagens apresentam diferenças. Na Figura 1 é possível verificar, em uma pesquisa realizada através do Google Trends, o interesse das pessoas, no mundo, por essas linguagens de programação. Nota-se no gráfico em linha azul que o Java é o mais popular. Essa análise, de certa forma, também faz com que o Java seja o candidato mais forte para atender o requisito do último item da lista apresentada. A Oracle é uma rede mundial de produtos de tecnologia, a qual detém os direitos sobre a tecnologia Java afirma 1 que eles possuem a maior comunidade mundial de desenvolvedores de aplicativos, administradores de banco de dados e arquitetos de software. Figura 1: Interesse pelas principais linguagens de programação - Pesquisa realizada em 21/05/2013 no Google Trends Recursos Para o desenvolvimento do sistema desse trabalho foi necessário: Um computador, o qual foi comprado com o Windows 7 Home Premium instalado; 1 Disponível em: <http://www.java.com/en/about/>

18 1.1 Requisitos não funcionais 17 Um ambiente integrado de desenvolvimento. Nesse caso, o Eclipse com o JDK 7 configurado; Um servidor web para fazer testes de implantação com o projeto desse trabalho. Dentre vários que possuem a máquina virtual Java, o escolhido foi o JBoss, de forma aleatória, pois todos os pesquisados atendem a necessidade de testes locais; Criar uma conta em uma plataforma web para implantar o sistema web de armazenamento de arquivos. Nesse caso, o OpenShift que dentre vários pesquisados tem o plano de conta gratuita de 1GB com recursos ilimitados de servidores, banco de dados, entre outros. Fora o computador todos o recursos utilizados são opensources com licenças de uso gratuitas.

19 18 2 Revisão bibliográfica Esse trabalho é direcionado aquelas pessoas que estão iniciando seus estudos em telecomunicações e se interessa no desenvolvimento web. Dessa forma será dada uma introdução sobre redes, internet e o modelo cliente servidor. Em seguida será abordada de forma introdutórias as tecnologias que foram utilizada para o desenvolvimento do sistema web desse TCC. E para aqueles que querem se aprofundar na modelagem de sistemas, na seção Desenvolvimento é feita uma análise em etapas do Fretum. 2.1 História da internet Na década de 1960 começaram pesquisas para resolver um problema que existia naquela época que era o fato de que equipamentos computacionais de diversos fabricantes não podiam se comunicar entre si. Isso era algo que fazia com que o trabalho de pesquisadores fosse duplicado de modo que os custos também (FOROUZAN; FEGAN et al., 2008). Para otimizar os esforços e diminuir os gastos, a Agência de Projetos de Pesquisa Avançados - Advanced Research Project Agency (Arpa) do Departamento de Defesa - Department of Defense (DoD) dos Estados Unidos se reuniu com a Associação para Maquinaria da Computação - Association for Computing Machinary (ACM) e mostrou suas ideias para a Arpanet, uma pequena rede que tinham seus computadores interconectados. No caso a ideia era que, independente de fabricante, cada host pudesse se conectar a outro host 1 chamado Processador de mensagens de interface - The Interface Message Processor (IMP) e ele entre outros IMPs que possuíssem outros hosts conectados a eles. Então em 1972 a Arpanet junto com outros pesquisadores trabalharam no projeto que chamaram de Interneting Project que depois veio a ser à descrição dos protocolos para que 1 Host: Em sistemas operacionais, o terminal host normalmente indica um multi-usuário de computador ou software de prestação de serviços para os terminais de computador(walters, 2001).

20 2.2 Camadas de rede 19 pacotes pudessem ser entregues de um ponto ao outro (FOROUZAN; FEGAN et al., 2008). Hoje a Internet não é mais uma rede única, mas uma rede mundial de pequenas redes locais, com outras redes de maior abrangência, de dispositivos conectados a elas. Basicamente, quando uma pessoa quer ter uma conexão com a Internet ela contrata os serviços de um Provedor de acesso à Internet - Internet Service Provider (ISP). Na Internet, ISPs locais se conectam com ISPs regionais que se conectam com Nacionais que por sua vez se conectam com os Ponto de acesso à rede - Network Access Points (NAPs) para que tenha acesso aos ISPs Internacionais (FOROUZAN; FEGAN et al., 2008). É dessa forma que um host se comunica com outro em qualquer parte do mundo. Para que essas interconexões entre dispositivos diversos, alguns protocolos (regras) foram padronizados para que projetistas da Internet pudessem criar os equipamentos do seu núcleo e programadores pudessem criar aplicações da Internet. Exemplos são a Web que usa o Protocolo de Transferência de Hipertexto - Hipertext Transfer Protocol (HTTP). Por sua vez o Correio Eletrônico que usa o Protocolo de transferência de correio simples - Simple Mail Transfer Protocol (SMTP). E a aplicação de Transferência de Arquivos que usa o Protocolo de Transferência de Arquivos - File Transfer Protocol (FTP)(KUROSE; ROSS, 2010). 2.2 Camadas de rede A Internet é um conjunto de redes. Para que essas redes possam se conectar, um modelo precisou ser adotado, o TCP/IP. Ele descreve uma arquitetura formada por protocolos divididos em 5 camadas: Aplicação, Transporte, Rede, Enlace de Dados e Física. Essa divisão tem o objetivo de organizá-los segundo suas responsabilidades. A Figura 2 exibe essas camadas bem como alguns exemplos dos protocolos contidos em cada uma(kurose; ROSS, 2010). Cada camada tem uma responsabilidade bem definida dentro do modelo TCP/IP. A camada de aplicação dá a possibilidade de uma pessoa ou um software acessar os recursos de rede. A camada de Transporte garante que as mensagens entre processos aconteçam e provê à recuperação de erros. A camada de rede envia os pacotes da origem ao destino fornecendo ligação entre rede. E a camada Enlace de Dados ordena os bits em Frames 2 entregando os Frames de um equipamento ao outro (nó a nó). A camada Física trata de, apenas, sinais eletromagnéticos e provê especificações mecânicas e elétricas(tanenbaum, 2 Frame: Grupo de bits que representam um bloco de dados(forouzan; FEGAN et al., 2008, p. 1083)

21 2.3 O modelo cliente servidor 20 Figura 2: Modelo TCP/IP 2010). Percebe-se que devido a essas definições os diversos projetistas de rede podem focar em uma determinada camada e criar seus produtos para que a interconexão entre redes seja possível (FOROUZAN; FEGAN et al., 2008). 2.3 O modelo cliente servidor A aplicação Web 3 foi a responsável por fazer a Internet se tornar tão popular e interativa como é nos dias atuais. Por isso é importante conhecer o modelo em que ela está baseada e alguns detalhes por dentro dessa aplicação. De 1970 a 1980 as aplicações de textos como correio eletrônico, acesso a computadores remotos, transferência de arquivo e bate-papo eram conhecidas no meio acadêmico. Porém, por volta da década de 90 a aplicação Web surgiu dando início ao crescimento exponencial da Internet fazendo com que ela se popularizasse efetivamente. Ela possibilitou aos usuários a navegação entre arquivos que contém referências de ligação (link) a outros arquivos conhecidos como páginas web, possibilitando, além do link entre páginas, ter acesso a conteúdos altamente interativos(kurose; ROSS, 2010). A aplicação Web está baseada no modelo cliente/servidor. Nesse modelo o cliente é um host que faz pedidos de informação a outro host denominado servidor que, ao invés de pedir, fica ativo, passivo, permanentemente esperando a solicitação de uma informação qualquer para retornar uma resposta. A Figura 3 mostra um desenho desse modelo(kurose; ROSS, 2010), onde é possível notar que o host é representado na forma do computador que roda um programa Navegador e o servidor representado em uma torre. 3 Web: A WWW é um serviço cliente servidor distribuído, no qual um cliente, usando um browser, pode acessar um serviço hospedado em um servidor(forouzan; FEGAN et al., 2008, p. 851)

22 2.3 O modelo cliente servidor 21 Figura 3: Modelo cliente/servidor Um cliente ou servidor nada mais é que um programa de computador. Na web, quem implementa o programa cliente são os navegadores web, um exemplo pode ser citado, o Google Chrome. O programa servidor são os servidores web, por exemplo Apache Tomcat. Dessa forma, quando um dado navegador web está executando num computador local e um servidor web está executando em um computador remoto, o navegador pode vir a fazer uma solicitação de uma página web. Então um par de processos é criado para que a interação entre cliente e servidor ocorra. O protocolo HTTP determina como será a estrutura das mensagens trocadas entre cliente e servidor, dentro do escopo da aplicação Web, e de que modo eles as trocam. Inicialmente, quando um cliente quer enviar uma mensagem para um servidor, ou viceversa, o cliente usa o protocolo Transmission Control Protocol - Protocolo de Controle de Transmissão (TCP) da camada de transporte, do modelo TCP/IP, pela interface socket(kurose; ROSS, 2010). Um exemplo de uma mensagem de requisição HTTP pode ser vista na Tabela 1: Nessa mensagem é possível observar o alto nível de abstração. O primeiro campo mostra o tipo de pedido, no caso GET e a versão do protocolo HTTP. O Host especifica o hospedeiro no qual a página web reside. O campo Connection especifica o tipo de conexão. Close especifica que após enviar o objeto para o cliente a conexão será fechada e

23 2.3 O modelo cliente servidor 22 Tabela 1: Mensagem de requisição HTTP Tipo de pedido: Host: Connection: Accept: User-agent: Accept-language: GET / HTTP/1.1\r\n keep-alive\r\n text/html,application/xhtml+xml, application/xml;q=0.9,*/*;q=0.8\r\n Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/ (KHTML,like Gecko) Chrome/ Safari/537.17\r\n pt-br,pt;q=0.8,en-us;q=0.6,en;q=0.4\r\n Keep-Alive a conexão permanece aberta por um certo tempo. O campo Accept especifica o tipo de dados que serão aceitos. O campo User-agent o tipo de agente usuário, no caso o tipo do navegador web. E o campo Accept-language é um dos muitos tipos de cabeçalho de negociação que pode surgir(kurose; ROSS, 2010). No modelo cliente-servidor, para toda requisição existe uma resposta. Abaixo, na Tabela 2, está um exemplo de uma mensagem de resposta HTTP do servidor. Tabela 2: Mensagem de resposta HTTP Date: Server: Last-modified: Content-length: Connection: Content-type: HTTP/ OK\r\n Mon, 21 Jan :23:46 GMT\r\n Apache\r\n Thu, 29 Nov :28:41 GMT\r\n 83\r\n Keep-Alive\r\n text/html\r\n Nesse exemplo o campo Connection segue a mesma explicação do exemplo de mensagem de requisição HTTP. O campo date especifica a data, seguido da hora, em que o servidor enviou a resposta. O campo Server mostra o nome do servidor que criou a mensagem. O campo Last-modified especifica a data e a hora em que o objeto foi criado ou modificado pela ultima vez. O campo Content-length indica a quantidade de bytes que tem o objeto que está sendo enviado. O campo Content-type mostra que o objeto

24 2.4 HTML 23 que está sendo enviado é um tipo de texto em formato de arquivo html. A mensagem 200 OK significa que o pedido foi bem sucedido e a informação está sendo entregue com mensagem de resposta. (KUROSE; ROSS, 2010). 2.4 HTML Linguagem de Marcação de Hipertexto - HyperText Markup Language (HTML) foi criada por Tim Berners-Lee para o desenvolvimento de páginas Web. Páginas web são hipertextos, ou seja, documentos que podem estar ligados entre si. Na prática, quando um usuário acessa uma página web por um navegador ele pode sair desse documento e ir para outro, através de uma marcação HTML denominada Link e da mesma forma voltar para o documento anterior.(w3c, 2013b, 2013a). A partir de 1997 o HTML se tornou um padrão. O órgão responsável por esse padrão é o Consórcio Rede Mundial de Computadores - World Wide Web Consortium (W3C). Esse Grupo é liderado por Tim Berners-Lee(W3C, 2013b). O padrão HTML tem por objetivo especificar uma forma de distribuir informação globalmente. Para que isso seja conseguido uma linguagem deve ser entendida por diversos meios de acesso(w3c, 2013b). 2.5 PaaS OpenShift Na plataforma OpenShift os desenvolvedores de aplicativos podem construir, testar, implantar e executar seus softwares. OpenShift é uma plataforma de computação em nuvem da Red Hat baseada no modelo Plataforma como Serviço - Platform as a Service (PaaS). Ela cuida de toda a infra-estrutura, middleware 4 e gerenciamento de rede permitindo que os desenvolvedores se concentrem apenas na criação de seus aplicativos. E suporta a implantação de softwares escritos em diversas linguagens como Java, Ruby, PHP, Perl e Node.js(OPENSHIFT, 2013). Outra característica da plataforma OpenShift é que ela gerencia o volume de conexões feito aos aplicativos implantados. Ela faz escalonamento automático ou manual dos recursos que apoiam as aplicações de modo que, à medida que varia o uso, o desempenho não é prejudicado. 4 Middleware: Mediador entre software e demais aplicações

25 2.6 Banco de dados 24 Na Figura 4, na parte superior, da esquerda para direita é possível notar três etapas. Cada etapa mostra múltiplos dispositivos acessando um mesmo programa web que está representado pela figura do foguete. Percebe-se que em cada etapa ocorre uma variação de pedidos direcionados ao programa web por parte dos dispositivos. Nota-se também que o sistema web está implantado na plataforma OpenShift que é representado pela figura circular estilizada. Conforme varia a demanda a plataforma faz o escalonamento automático dos recursos. Isso é percebido nas figuras das torres que também estão divididas em três etapas da esquerda para a direita. Figura 4: Escalonamento automático dos recursos. Fonte: (OPENSHIFT, 2013) O escalonamento automático é conseguido com a adição de instâncias dos aplicativos implantados. Apesar desse benefício, o desenvolvedor pode não querer que isso ocorra automaticamente, então ele pode escolher por fazer isso manualmente(openshift, 2013). 2.6 Banco de dados Banco de dados é um conjunto de dados que se relacionam. Dados são informações que podem ser registradas e tem algum significado.(elmasri et al., 2011)

26 2.7 Frameworks 25 Os dados no banco de dados provem de alguma fonte. Ele se relaciona com acontecimentos do mundo real. Dessa forma para que o banco de dados seja preciso e confiável, é necessário que seja flexível no sentido de refletir as mudanças ocorridas no mundo real (EL- MASRI et al., 2011) Sistema de Gerenciamente de Banco de Dados (SGBD) é um grupo de programas que permite a interação com o banco de dados. O SGBD é um sistema de software que torna fácil o processo de definição, construção, manipulação e compartilhamento de banco de dados entre aplicações e múltiplos usuários.(elmasri et al., 2011) 2.7 Frameworks Framewoks são conjuntos de códigos pré-escritos de aplicações básicas distribuídos com o objetivo de evitar a necessidade de recriar funções livremente difundidas.(larman, 2008). Por exemplo, no Servidor de Faces Java - Java Server Faces (JSF) os desenvolvedores, podem adicionar dispositivos especializados, estabelecendo subclasses das classes sobrepondo certos métodos. Os desenvolvedores também podem se conectar a vários comportamentos de resposta a eventos por meio de classes de dispositivos predefinidos(larman, 2008; BURNS; KITAIN, 2009) JSF JSF é um framework para desenvolvimento de sistemas web em Java. Ele é baseado em um padrão de projeto conhecido como Modelo-Visualização-Controle - Model-View- Controller (MVC) que divide a abstração de um sistema em três partes: Modelo, Visualização e Controle. A abstração Modelo são entidades que podem interagir com o banco de dados, bem como a Visualização é responsável por desenhar componentes e fornecer interface de interação com os usuários. O Controle são entidades que mantém toda a lógica do sistema. As abstrações Modelo e Controle podem ser implementadas em classes de objetos Java. A implementação do controle no JSF é denominado de ManagedBean e o Modelo de Entity. As principais tarefas dos ManagedBeans são: Fornecer dados que serão exibidos nas telas. Receber os dados enviados nas requisições.

27 2.7 Frameworks 26 Executar tarefas de acordo com as ações dos usuários. E a responsabilidade das Entitys é: Mapear objetos que representam as entidades do banco de dados. A abstração Visualização é implementada em arquivos com extensão xhtml. Nesses arquivos podem ser inseridas diretivas HTML e de componentes JSF. As diretivas HTML são usadas apenas para desenhar componentes, enquanto as diretivas JSF, além de ter essa mesma função, permitem passar informações para os ManagedBeans.(BURNS; KITAIN, 2009; GONÇALVES, 2007). A estrutura básica de uma página da camada de visualização é mostra na Figura 5. Todas as páginas da camada de visualização deve ter as declarações mostradas nas linhas 1, 2, 3, e 14. A primeira linha define que as páginas poderão utilizar a tecnologia HTML5. As 2 e a 14 definem que essa página é uma estrutura HTML. As 3, 4 e 5 definem que será utilizado os recursos do JSF. A linha 11 mostra o uso de um componente HTML do JSF, o qual exibe no cliente web a mensagem colocada dentro das aspas do atributo value. 1 <!DOCTYPE html> 2 <html 3 xmlns="http://www.w3.org/1999/xhtml" 4 xmlns:h="http://java.sun.com/jsf/html" 5 xmlns:f="http://java.sun.com/jsf/core"> 6 7 <h:head></h:head> <h:body> 11 <h:outputtext value="hello world." /> </h:body> 14 </html> Figura 5: Página básica da camada de visualização Hibernate O Hibernate é um framework utilizado para facilitar a criação de entidades de banco de dados, através da implementação de mecanismos convenientes para consulta e recuperação

28 2.7 Frameworks 27 de dados, eliminando a necessidade de o desenvolvedor ter que executar a manipulação manualmente através de um SGBD. O Hibernate está fundamentado sob a técnica Mapeamento Objeto-Relacional - Object- Relational Mapping (ORM), que permite fazer mapeamentos entre objetos relacionais e entidades de banco de dados a fim de abstrair classes em uma linguagem orientada a objetos para representarem as tabelas de um banco de dados. Essa técnica foi criada para eliminar a necessidade da criação de códigos da Linguagem de Consulta Estruturada - Structured Query Language (SQL) para a geração das bases de dados. Além disso, com o ORM é possível criar uma ponte entre o Modelo Relacional e o Modelo Orientado a Objetos. Na Figura 6 pode-se observar um exemplo de um caso real de uma classe Java que foi mapeada para uma tabela do SGBD MySQL(HAT, 2013; MEHTA, 2008). Figura 6: Mapeamento objeto relacional para entidades de banco de dados O Hibernate permite que se desenvolvam classes persistentes seguindo os pilares da orientação a objetos como herança, polimorfismo, etc(king et al., 2013) Spring Security O Spring Security é um framework que pode ser utilizado para a configuração da estratégia de autenticação e autorização em um dado sistema de software. A segurança é sem dúvida um dos componentes mais importantes da arquitetura de qualquer aplicação baseada na web. Cada vez mais programas maliciosos, criminosos, e funcionários desonestos surgem na tentativa de obter informações privadas. Então o uso inteligente e abrangente da segurança é um elemento chave para qualquer projeto(alex; TAYLOR, 2013). Spring Security foi desenvolvido para preencher uma lacuna no universo das bibliotecas Java. Padrões de seguraça do Java ou Segurança da plataforma Java EE oferecem

29 2.7 Frameworks 28 algumas formas de executar autenticação e funções de autorização, mas o Spring Security é o melhor para essas tarefas porque empacota toda a parte de lógica de segurança de um sistema em desenvolvimento de uma forma clara e concisa(alex; TAYLOR, 2013). O Spring Security se baseia em dois conceitos: Autenticação - a autenticação é o processo de verificação de que os usuários de uma dada aplicação são quem dizem que são(mularien, 2010). Autorização - Autorização envolve tipicamente dois aspectos distintos que se combinam para descrever a acessibilidade de um sistema protegido. A primeira é o mapeamento de um tipo de autenticação a uma ou mais entidades (muitas vezes chamado de papéis). Por exemplo, um usuário casual de um site pode ser visto como tendo autoridade visitante, enquanto um administrador de site pode ser atribuído pela autoridade administrativa. A segunda é a atribuição de permissão de uso de determinados recursos protegidos do sistema. Isso geralmente é feito no momento em que um sistema é desenvolvido, através de declaração expressa em código ou através de parâmetros de configuração (MULARIEN, 2010) Prime Faces Primefaces é uma biblioteca de recursos baseado na especificação JSF. Existem, atualmente, mais de 90 componentes que podem ser utilizados em aplicações Java Web. Outras bibliotecas disponíveis como Richfaces e Icefaces são menos completas. Alguns componentes do Primefaces merecem destaque(varaksin; CALISKAN, 2013): Captcha Recurso muito utilizado atualmente em páginas web. Fornece uma imagem com um texto embaralhado e solicita que o usuário digite o texto exibido na imagem para poder prosseguir. Isso evita que programas acessem determinados conteúdos do site(varaksin; CALISKAN, 2013). Draggable Permite que qualquer componente Primefaces seja arrastável. Aceita configurações para que a ação de arrastar aconteça somente na vertical ou horizontal, alinhada a uma grade, e delimitada por uma área, entre outras, etc. Editor Cria um editor rico de texto, semelhante aos que existem na maioria dos webmails atuais. Permite a configuração de tipo de fonte, cor e tamanho, alinhamento, inclusão de imagens e links, entre outros. FileUpload Permite a inclusão do recurso de carregamento nas páginas de uma

30 2.8 Maven 29 maneira muito simples. Inclui upload básico, de múltiplos arquivos e barra de progresso de upload, entre outros(varaksin; CALISKAN, 2013). Google Maps Exibe os mapas do Google Maps com vários dos recursos da API do Google e funcionalidades Ajax. View(VARAKSIN; CALISKAN, 2013). ImageSwitch Inclui polígonos, controles, marcadores e Street- É um visualizador de imagens do tipo slide show. diversos efeitos para a transição das imagens(varaksin; CALISKAN, 2013). Permite aplicar Layout Permite criar layouts elaborados com espaços que possam ser redimensionados, contraídos, minimizados e fechados. ProgressBar Cria uma barra de progresso que pode ser controlada por cliente-side ou server-side. Aceita diversas formas de apresentação e animação(varaksin; CALISKAN, 2013). Tree Exibe um componente que mostra dados em formato de árvore. Tem eventos configuráveis e animações para a manipulação dos nós da árvore(varaksin; CALISKAN, 2013). 2.8 Maven Maven é uma ferramenta para gerenciamento, construção e implantação de projetos. Ele auxilia o desenvolvedor no processo de gerenciamento de dependências, geração de relatórios e documentação(casey et al., 2006). A unidade básica de configuração do Maven é um arquivo chamado Projeto Modelo de Objeto - Project Object Model (POM). Esse arquivo deve ficar na raiz do projeto. A estrutura, dependências e características do projeto são declaradas nesse arquivo. O menor arquivo pom.xml válido pode ser visto na Figura 7 A identificação do projeto consiste em três informações: groupid: um identificador da empresa. Grupo ao qual o projeto pertence. Geralmente o nome do site da empresa. artifactid: o nome do projeto. version: a versão atual do projeto.

31 2.9 IDE Eclipse 30 1 <project> 2 3 <modelversion>4.0.0</modelversion> 4 <groupid>fretum</groupid> 5 <atifactid>fretum</artifactid> 6 <packaging>war</packaging> 7 <version>1.0</version> 8 9 </project> Figura 7: Configuração básica do Maven Existem outras informações que normalmente são acrescentadas no arquivo POM. Uma das mais importantes são as definições das dependências, pois em projetos que não tem o auxílio da ferramenta Maven o desenvolvedor tem que procurar na Internet, normalmente nos sites dos fabricantes, as dependências de APIs, bibliotecas ou frameworks que são usadas nos projetos. Após encontrar as dependências desejadas o desenvolvedor ainda tem que saber como configurará-las no projeto. No entanto com a ferramenta Maven isso não é necessário, pois bastam especificar no arquivo POM as dependências que são necessárias. A Figura 8 mostra um exemplo de uma dependência, no caso o framework JSF, que o Maven irá carregar e configurar no projeto(casey et al., 2006). 1 <dependencies> 2 3 <dependency> 4 5 <groupid>javax.faces</groupid> 6 <artifactid>jsf-api</artifactid> 7 <version>2.0</version> </dependency> 11 </dependencies> Figura 8: Injeção de dependência 2.9 IDE Eclipse A Plataforma Integrada de Desenvolvimento - Integrated Development Environment (IDE) Eclipse é um ambiente de desenvolvimento de software extensível que suporta diversas linguagens de programação. Desenvolvedores podem criar programas que se acoplem ao Eclipse para resolver algum problema específico. Esses programas são conhecidos como plugins, e podem dar suporte às linguagens de programação (BUDINSKY, 2004).

32 2.9 IDE Eclipse 31 Em 2001 integrantes da indústria da Borland, IBM, MERANT, QNX Software Systems, Rational Software, Red Hat, SuSE, TogetherSoft e WebGain uniram-se em um conselho. No final de 2003 ele havia crescido para mais de 80 membros. E em 2004 foi anunciado por esse conselho a reorganização da Eclipse em uma corporação sem fins lucrativos. Originalmente esse consórcio se formou quando a IBM lançou a plataforma de código aberto Eclipse que, posteriormente se tornou um órgão independente, também, denominado Eclipse com o objetivo de conduzir a evolução da plataforma para beneficiar fornecedores de ofertas de desenvolvimento de software e usuário finais. A Eclipse, ainda, disponibiliza toda tecnologia e código fonte da plataforma gratuitamente através da licença pública Eclipse(ECLIPSE, 2013).

33 32 3 Desenvolvimento 3.1 Introdução Fretum é um sistema web de armazenamento de arquivos. Ele tem um número de diretórios pré-definidos. Por razão de serem 3 empresas envolvidas o número de diretórios é o mesmo. É permitido que qualquer usuário possa carregar os arquivos contidos neles. No entanto o administrador do sistema pode definir quais usuários tem privilégios de envio em cada diretório. Os usuários só podem apagar os arquivos nos locais onde eles têm permissão de envio. O sistema tem uma área administrativa a qual é visível somente para administradores. Nessa área é possível visualizar em uma lista todos os usuários a qual permite: Dar ou tirar privilégios de envio de arquivos. Definir poder de administrador para os usuários. Ativar ou desativar os usuários do sistema. Apagar usuários. Editar cadastros de usuários. Na área administrativa é possível também cadastrar usuários e visualizar em uma lista interativa de registros as interações de cada usuário com cada arquivo. Por exemplo, se um dado usuário enviou um arquivo para uma dada região, na lista de registros estarão, as informações de data, hora, nome de quem enviou, e o tipo de interação realizada pelo usuário em questão. A lista de registro é interativa no sentido de que permite que o usuário possa filtrar os resultados conforme desejado.

34 3.2 Domínio do problema Domínio do problema Neste tópico será apresentado o domínio do problema, o qual é definido por um conjunto de características que descrevem uma família de problemas para os quais a aplicação deste trabalho deu a solução. Esta análise trata apenas do problema que foi resolvido pelo sistema. Dessa forma não será explorada com detalhes cada classe que o compõe. A análise mais detalhada do modelo de classes é descrito na seção 3.5. A classe conceitual Usuario está relacionada com outras 3: Arquivo, Administrador e Log. Usuario é interessado em enviar, carregar ou remover arquivos. Quando esses interesses são colocados em prática o modelo conceitual Log mantém as informações de cada ação. O Usuario pode ou não ser um Administrador. No diagrama 9 observa-se no domínio do problema que: é possível existir muitos Usuario ou nenhum; Usuario exclui, carrega (download) ou envia (upload) Arquivo; se há Usuario ele pode ser Administrador; Usuario registra ações na classe conceitual Log. A classe conceitual Arquivo está relacionada com outras 4: Usuario, Administrador, Log e Regiao. Arquivo é interessado em estar armazenado em um local (Regiao). Quando as classes conceituais Usuario e Administrador excluem, carregam ou enviam Arquivo essas ações são registradas na classe conceitual Log inerente ao Arquivo. Observa-se no diagrama 9 que: é possível existir muitos Arquivo ou nenhum; Arquivo, quando existe, ele pertence à uma Regiao. A classe conceitual Regiao está relacionada com Arquivo, sendo que deve existir pelo menos uma Regiao. Ela é responsável por ter a informação do local onde os arquivos devem estar fisicamente. A classe conceitual Administrador está relacionada com outras 3: Usuario, Arquivo e Log. Deve existir ao menos um Administrador. O Administrador é um Usuario com privilégios especiais, ele gerencia privilégios e cadastra Usuario.

35 3.3 Requisitos funcionais 34 Figura 9: Domínio do problema 3.3 Requisitos funcionais Requisitos funcionais são as definições das funções do sistema deste trabalho, bem como seus componentes. Neste tópico será apresentado essas definições sob a forma de casos de uso. Será mostrado os atores do sistema bem como uma descrição textual de cada caso de uso seguido de uma ilustração em diagrama Identificação dos atores do sistema Ator pode ser um humano ou entidade máquina que interage com o sistema para executar um trabalho Usuario O Usuario é uma pessoa que acessa o sistema por meio de conta de usuário. carrega, envia ou apaga arquivos. Ele Administrador O Administrador é um Usuario com privilégios especiais, pois ele também tem acesso a área administrativa.

36 3.3 Requisitos funcionais Limites do sistema Limites do sistema ou applets são agregadores de casos de uso Applet Área Administrativa A Applet Área Administrativa é um agente que permite listar, cadastrar, editar, apagar, ativar ou desativar usuários do sistema. É permitido ainda dar ou tirar privilégios, que são: poder de administrador e envio de arquivos em cada região (diretórios de armazenamento de arquivos do sistema). Possibilita visualizar registros de interação de cada usuário com cada arquivo do tipo data, hora, nome do arquivo e tipo de registro (recebimento, envio ou exclusão). Tanto a listagem de usuários quanto a de registros são interativas, pois permitem filtrar as informações exibidas Applet Região A Applet Região é um agente que representa um diretório do sistema. É permitido a qualquer usuário listar ou carregar arquivos, no entanto apagar ou enviar só é autorizado aos usuários que têm privilégios para tanto Principais casos de utilização Caso de uso CDU1: Operações com arquivo Escopo: Nível: Ator Principal: Aplicação Fretum Objetivo do usuário Usuário Interessados e interesses: Usuário: deseja ter acesso às regiões. Nas regiões que tiver permissão deseja enviar arquivos para elas. Nas regiões que tiver permissão deseja apagar, se necessário, os arquivos. Deseja ter acesso a todas as regiões para trazer os arquivos para o seu computador. Deseja entrar nas regiões e, imediatamente, visualizar uma lista com todos os arquivos. Administrador: deseja fazer todas as operações de usuário.

37 3.3 Requisitos funcionais 36 Pré-Condições: Usuário está ativado para acesso ao sistema. Usuário está autenticado no sistema. Cenários de Sucesso - Enviar Arquivo: 1. Usuário digita a Uniform Resource Locator (URL) do software em seu navegador web e envia o pedido para o servidor remoto. 2. O servidor remoto devolve o pedido para o navegador web, o navegador exibe duas caixas de textos e um botão para que o usuário possa digitar nelas o login e senha e enviar seu pedido de autenticação. 3. O servidor confirma o pedido de autenticação e autoriza a entrada do usuário no sistema. 4. O usuário entra em uma região. 5. Imediatamente é exibido uma lista com todos os arquivos do sistema 6. O usuário escolhe um arquivo do seu computador para enviar para a região. 7. O usuário envia o arquivo para a região. 8. É feito o registro da ação descrito no item anterior. 9. O arquivo está na região. 10. Imediatamente a lista de arquivos é atualizada. 11. O arquivo é exibido na lista de arquivos. Cenários de Sucesso - Trazer arquivo para o computador: 1. Idem Cenários de Sucesso - Envio de Arquivo do 1 ao O usuário seleciona um arquivo da lista de arquivos. 3. O usuário escolhe um local do seu computador. 4. O usuário confirma o armazenamento do arquivo no local escolhido. 5. É feito o registro da ação descrito no item anterior. 6. O arquivo está escrito (salvo) no local escolhido.

38 3.3 Requisitos funcionais 37 Cenários de Sucesso Excluir arquivo: 1. Idem Cenários de Sucesso - Envio de Arquivo do 1 ao O usuário escolhe um arquivo da lista de arquivos. 3. O usuário exclui o arquivo. 4. É feito o registro da ação descrito no item anterior. 5. O arquivo está excluído do sistema. 6. Imediatamente a lista de arquivos é atualizada. 7. O arquivo não é exibido na lista de arquivos. Figura 10: Diagrama de Caso de Uso (DCDU) da Região Caso de uso CDU2: Área administrativa Escopo: Nível: Ator Principal: Aplicação Fretum Objetivo do usuário administrador Administrador

39 3.3 Requisitos funcionais 38 Interessado e interesse: Administrador: deseja cadastrar usuários. Deseja excluir usuários quando necessário. Deseja ativar ou desativar a possibilidade dos usuários de autenticar-se no sistema. Deseja dar ou tirar a permissão dos usuários de enviar arquivos para as regiões. Deseja dar ou tirar a permissão de administrador dos usuários. Deseja entrar na área administrativa e visualizar, imediatamente, uma lista com todos os usuários. Deseja visualizar uma lista com o histórico (log) das operações dos usuários com os arquivos, sendo que esse histórico contempla dias, horários, usuários e regiões que eles, usuários, enviaram, trouxeram ou excluíram os arquivos. Deseja imprimir o histórico das operações dos usuários com os arquivos, sendo que esse histórico contempla dias, horários, usuários e regiões que eles, usuários, enviaram, trouxeram ou excluíram os arquivos. Pré-Condições: Usuário está ativado para acesso ao sistema. Usuário está autenticado. Usuário tem permissão de administrador. Cenários de Sucesso Cadastrar usuário: 1. Usuário digita a URL do software em seu navegador web e envia o pedido para o servidor remoto. 2. O servidor remoto devolve o pedido para o navegador web, o navegador exibe duas caixas de textos e um botão para que o usuário possa digitar nelas o login e senha e enviar seu pedido de autenticação. 3. O servidor confirma o pedido de autenticação, o usuário tem permissão de administrador, e autoriza a entrada do administrador no sistema. 4. O administrador entra na área administrativa. 5. Imediatamente é exibido uma lista com todos os usuários do sistema. 6. O administrador entra na área de cadastro. 7. O administrador insere as informações do novo usuário e confirma o cadastro. 8. O Usuário está cadastrado no sistema. Cenários de Sucesso Excluir usuário:

40 3.3 Requisitos funcionais Idem Cenários de Sucesso Cadastro de usuário do 1 ao O administrador escolhe um usuário da lista de usuários. 3. O administrador exclui o usuário. 4. O usuário está excluído do sistema. 5. Imediatamente a lista de usuários é atualizada. 6. O usuário não é exibido na lista de usuários. Cenários de Sucesso Ativar ou desativar o acesso do usuário no sistema: 1. Idem Cenários de Sucesso Cadastro de usuário do 1 ao O administrador escolhe um usuário da lista de usuários. 3. O administrador ativa ou desativa o acesso do usuário no sistema. 4. O usuário está com ou sem acesso ao sistema. 5. Imediatamente a lista de usuários é atualizada. 6. O usuário é exibido na lista de usuários com o seu estado ativado ou desativado para acesso no sistema. Cenários de Sucesso Dar ou tirar a permissão do usuário de enviar arquivos para a região: 1. Idem Cenários de Sucesso Cadastro de usuário do 1 ao O administrador escolhe um usuário da lista de usuários. 3. O administrador escolhe uma ou mais regiões para dar ou tirar a permissão do usuário de enviar arquivos para elas. 4. O administrador dá ou tira a permissão do usuário de enviar arquivos para uma ou mais regiões. 5. O usuário não tem mais permissão para enviar arquivos para as regiões em que ele não tem permissão. 6. Imediatamente a lista de usuários é atualizada.

41 3.3 Requisitos funcionais O usuário é exibido na lista de usuários sem permissão de enviar arquivos para as regiões em que ele não tem permissão. Cenários de Sucesso Dar ou tirar a permissão de administrador do usuário: 1. Idem Cenários de Sucesso Cadastro de usuário do 1 ao O administrador escolhe um usuário da lista de usuários. 3. O administrador dá ou tira a permissão de administrador do usuário. 4. O usuário está ou não com permissão de administrador. 5. Imediatamente a lista de usuários é atualizada. 6. O usuário é exibido na lista de usuários sem permissão de administrador. Cenários de Sucesso Visualizar o histórico das operações dos usuários com os arquivos: 1. Idem Cenários de Sucesso Cadastro de usuário do 1 ao Entra na área de histórico das operações dos usuários com os arquivos. 3. Imediatamente é exibido uma lista das operações dos usuários com os arquivos. Cenários de Sucesso Imprimir o histórico das operações dos usuários com os arquivos: 1. Idem Cenários de Sucesso Cadastro de usuário do 1 ao Entra na área de histórico das operações dos usuários com os arquivos. 3. Imediatamente é exibido uma lista das operações dos usuários com os arquivos. 4. O administrador requisita a impressão da lista das operações dos usuários com os arquivos. 5. Um Portable Document Format (PDF) é exibido com a opção de impressão. 6. O administrador imprime a lista das operações dos usuários com os arquivos. 7. O histórico é impresso.

42 3.4 Modelo de Dados 41 Figura 11: DCDU da Área Administrativa 3.4 Modelo de Dados O modelo de dados representa como os dados estão organizados no banco de dados. Essa organização se dá através de entidades as quais se relacionam. A finalidade desses relacionamentos são para evitar informações redundantes no banco de dados. Dessa forma, para o sistema desse trabalho, os dados serão organizados segundo a abstração de entidades mostrada na Figura 12. É importante observar que os atributos de cada entidade segue o padrão: nome do atributo em minúsculo seguido do nome da entidade em maiúsculo, como exemplo nomeusuario. A entidade usuario guarda dados dos usuários. Para esse sistema, é relevante o armazenamento das informações do nome (nomeusuario), senha (senhausuario), login (loginusuario), empresa (empresausuario), ( usuario) e celular(celularusuario) dos usuários, além do atributo ativo (ativousuario) que armazena a informação se um dado usuário pode ou

43 3.4 Modelo de Dados 42 não acessar o sistema. É importante perceber que esse sistema permite qualificar usuários como comuns e administradores. Para tanto é necessário guardar as informações referentes aos privilégios dos usuários, as quais são armazenadas na entidade permissaousuario no atributo permissao. Ela permite ainda armazenar as informações referentes aos privilégios de envio de arquivos de cada usuário. Dessa forma para armazenar os dados dos privilégios dos usuários foi abstraído o relacionamento um para muitos entre as entidades usuario e permissaousuario. Uma característica do sistema deste trabalho é o registro da data e hora do envio, carregamento ou exclusão de arquivos de cada usuário. Para tanto foi abstraído a entidade registro que permite armazenar os dados da data e hora em que cada usuário gerenciou um determinado arquivo apagando-o, excluindo-o ou carregando-o. Esses dados são armazenados nos atributo dataregistro e tipodoregistro. Sendo que esse último é a informação sobre exclusão, envio ou carregamento de arquivos. Dessa forma para que seja possível o armazenamento dos dados dos usuários e dos arquivos foi abstraído o relacionamento muitos para um entre as entidades registro e usuario, e muitos para um entre as entidades registro e arquivos. A entidade arquivo é responsável por armazenar as informações referentes ao nome do arquivo (nomearquivo) e a situação do arquivo (situacaodoarquivo). Esse último atributo é relevante para que o sistema possa determinar o caso de um arquivo ser excluído de um determinado diretório de modo que o mesmo permaneça registrado na entidade registro, pois quando um dado usuário exclui um arquivo de um dado diretório é necessária uma referência desse arquivo para a entidade registro para que ela possa manter a informação de que um dia o arquivo existiu, mas que foi excluído do sistema. A entidade local mantém o dado a respeito do caminho em que um determinado arquivo está. Para tanto foi abstraído o relacionamento um para muitos entre a entidade local e a entidade arquivo. A entidade modelutil é responsável por manter dados útil ao sistema, como exemplo o caminho raiz dos diretórios. Para a modelagem foi utilizado o software MySQL Workbanch da Oracle.

44 3.4 Modelo de Dados 43 registro codigoregistro INT(11) dataregistro DATETIME tipodoregistro VARCHAR(8) arquivoregistro_codigoarquivo INT(11) usuarioregistro_codigousuario INT(11) Indexes arquivo codigoarquivo INT(11) nomearquivo VARCHAR(260) situacaodoarquivo VARCHAR(30) localarquivo_codigolocal INT(11) Indexes usuario codigousuario INT(11) ativousuario TINYINT(1) celularusuario VARCHAR(16) usuario VARCHAR(100) empresausuario VARCHAR(50) loginusuario VARCHAR(15) nomeusuario VARCHAR(30) senhausuario VARCHAR(12) Indexes local codigolocal INT(11) arquivolocal VARCHAR(255) Indexes modelutil codigomodelutil INT(11) propriedademodelutil VARCHAR(255) Indexes permissaousuario usuario INT(11) permissao VARCHAR(50) Indexes Figura 12: Modelo de Dados

45 3.5 Modelo de classes Modelo de classes A modelagem desse sistema foi feita em camadas de forma que cada classe tem sua responsabilidade bem definida. Para tanto o padrão de projeto MVC foi implementado. Ele determina que um sistema seja separado em camadas de visualização, controle e modelo visando como essas camadas devem interagir. Nesse padrão a camada modelo não pode conhecer a camada de visualização, bem como a camada de visualização não pode conhecer a camada modelo, sendo que a camada de controle é responsável pela comunicação entre elas. A camada de visualização é responsável por exibir e coletar informações dos usuários. Nesse sistema a camada de visualização é implementada usando o JSF que na prática é composto por arquivos X Hypertext Markup Language (XHTML), onde as telas são desenhadas. A camada de controle que também é implementada usando JSF tem a responsabilidade de processar as informações dos usuários coletadas nas telas. Os arquivos que compõe essa camada são os Managed Beans. A camada modelo é responsável por manter toda a complexidade exigida nas operações de acesso a dados. Para tanto essa camada foi divida em classes de regra de negócio e acesso a dados. Todas as classes do sistema estão organizadas em pacotes, dessa forma cada ilustração nos sub-tópicos a seguir de modelo de classe será mostrada no seu respectivo pacote. São 7 pacotes: arquivo, usuario, util, web, filter, web.filter, web.security e web.util, de modo que cada um segue o padrão com.wavetech st.nomedopacote. O pacote web contém as classes de objetos Managed Beans, web.filter tem as classes de objetos de filtro de sessão do Hibernate e de filtro HTTP, web.security contém as classes de objetos responsáveis por validar o login e o logout, web.util tem classes de objetos responsáveis por manter informações do usuário logado e gerar o arquivo em PDF do relatório, util contém as classes de objetos responsáveis por criar a conexão com o banco de dados, e usuario e arquivo contém as classes de objetos responsáveis por representar e controlar os usuários e os arquivos respectivamente. Todas as figuras que serão mostradas a seguir pertinentes aos diagramas de classe e de sequência foram criados a partir do software Architexa.

46 3.5 Modelo de classes ArquivoBean O ArquivoBean é caracterizado por criar uma ponte entre a camada de controle e visualização para processar informações referentes aos arquivos. Dessa forma ela possui métodos para salvar, excluir, enviar, carregar e obter as listas filtradas e não filtradas de arquivos e registros. Por exemplo, quando uma tela é aberta e nela se observa uma lista dos arquivos de uma dada região (diretório do sistema) é porque antes essa lista foi processada pelo método getlistaarquivos() e devolvida para a visualização na tela. Quando são executadas as ações de salvar, enviar e excluir o registro delas é feito. O Registro é caracterizado pelo arquivo a ser registrado (arquivoregistro), pela data do registro (dataregistro), pelo usuário que fez alguma ação com um dado arquivo (usuarioregistro) e pelo tipo do registro (tipodoregistro). Esse último é caracterizado por fornecer o tipo do registro podendo ser de envio (UPLOAD), de recebimento (DOWNLOAD) ou de exclusão (DELETE). O Arquivo é caracterizado pelo local em que ele se encontra (localarquivo), por um nome (nomearquivo) e pela situação do arquivo (situacaodoarquivo). O Local é caracterizado por ter o caminho em que o arquivo se encontra (arquivolocal). A SituacaoDoArquivo é caracterizada por fornecer a situação do arquivo, podendo ser: existe no local de destino (EXISTE NO LOCAL DE DESTINO) ou não existe no local de destino (NAO EXISTE NO LOCAL DE DESTINO). A SituacaoDoArquivo existe para resolver o problema de inconsistência no banco de dados, pois se houver a situação em que um arquivo é excluído do sistema pelo usuário o mesmo não pode ser apagado do banco de dados, já que o Registro tem como uma das características o Arquivo, no entanto quando a situação citada ocorrer é necessário manter a informação de existência ou não existência do arquivo para que esse arquivo seja ou não exibido em uma lista por exemplo. E por último o Usuario é caracterizado por nome, , celular, empresa em que trabalha, login e senha para validar a entrada no sistema, permissão e ativo para estabelecer se o usuário pode ou não acessar o sistema. O modelo de classe do ArquivoBean é mostrado na Figura 13.

47 3.5 Modelo de classes 46 Figura 13: Modelo de classe do ArquivoBean

48 3.5 Modelo de classes UsuarioBean O UsuarioBean é caracterizado por criar uma ponte entre a camada de controle e visualização para processar informações referentes aos usuarios. Dessa forma ela possui métodos para inserir, excluir, editar e listar usuários no sistema. Através dessa classe é possível também dar ou tirar poderes de administrador do sistema aos usuários. O ContextoBean é caracterizado por criar uma ponte entre a camada de controle e visualização para manter informações referentes aos usuários logados. O CAMINHO ARQUIVOS mantém a informação referente ao local raiz em que se pode armazenar os arquivos dos usuários. Outra caracterização do ContextoBean é o idiomas, informação essa referente as possíveis línguas disponíveis para tradução das mensagens do sistema. O Usuario é caracterizado pelo seu nome, , empresa em que trabalha, número de celular, login e senha para acesso ao sistema. Outras caracterizações são se ele está ativado ou não para usar o sistema e permissões (privilégios) como poderes de administrador e ou de envio de arquivos em cada região (diretórios do sistema). O modelo de classe do UsuarioBean é mostrado na Figura 14.

49 3.5 Modelo de classes 48 Figura 14: Modelo de classe do UsuarioBean

50 3.5 Modelo de classes Regra de negócio As regras de negócio são responsáveis pelas tomadas de decisão. Elas acessam diretamente as classes de acesso a dados, pois são elas que decidem o que deve ser gravado em banco de dados ou quais informações obter do banco de dados, no entanto elas apenas decidem quais operações em banco de dados são necessárias, e não como fazê-las. Dessa forma quando a regra de negócio precisa fazer uma operação em banco de dados como listar, salvar, etc ela solicita a classe DAOFactory a criação de uma classe de acesso a dados. DAOFactory obtém todas as configurações de banco de dados a partir da classe HibernateUtil. Com isso ela a DAOFactory consegue criar a classe de acesso a dados que mantém um objeto de sessão de banco de dados. Tanto as classes de regra de negócio quanto as de acesso a dados podem ser visualizadas na Figura 15, sendo que as classes com o padrão ArquivoRN, LocalRN, etc são as regras de negócio e as com o padrão ArquivoDAOHibernate, LocalDAOHibernate, etc são as classes de acesso a dados. Observa-se que essas últimas são responsáveis por manter toda a complexidade exigida nas operações em banco de dados. A principal vantagem dessa abordagem é que as classes de regra de negócio não precisam se preocupar em como fazer uma conexão ao banco de dados ou como ler ou escrever nele, pois bastam solicitar que as classes de acesso a dados façam a operação. É importante visualizar ainda na figura 15 a classe ConexaoHibernateFilter. Ela tem uma particularidade a respeito das unidades de persistência 1 sobre o fato que elas devem ser inicializadas antes de serem utilizadas, e finalizadas quando não forem mais necessárias. A inicialização e a finalização de uma unidade de persistência deve ser realizada apenas uma vez durante a execução da aplicação. Para implementar essa característica nesse sistema, já que foi escrito em Java, pode-se utilizar um filtro. Os filtros de um sistema Java Web são inicializados automaticamente depois que a aplicação é implantada no servidor Java e antes da primeira requisição HTTP. Além disso, eles são finalizados ao término da execução da aplicação. Para adicionar um filtro em uma aplicação web Java, é necessário criar uma classe que implemente a interface javax.servlet.filter. Um filtro pode ser registrado no servidor Java através da Com 1 Unidade de Persistência: É um arquivo que contém todas as configurações de conexão de um framework ORM, no caso desse sistema o Hibernate, com o banco de dados.

51 3.5 Modelo de classes 50 essa anotação, pode-se definir qual servlet será associada ao filtro. Na classe ConexaoHibernateFilter foi associado a servlet Faces Servlet. O método init() é chamado automaticamente na inicialização do filtro. Na classe ConexaoHibernateFilter, esse método inicializa a unidade de persistência. O método destroy() é chamado automaticamente para desativar o filtro no encerramento da aplicação. Figura 15: Modelo de classe da regra de negócio

52 3.6 Diagramas de sequência Diagramas de sequência Neste tópico será abordado os diagramas de sequência. O objetivo desta análise será mostrar as principais trocas de mensagens entre os objetos do sistema Regra de negócio A definição de regra de negócio foi abordada no tópico A Figura 16 mostra a troca de mensagens entre o objeto de regra de negócio e os objetos que são responsáveis por criar a ponte entre o banco de dados e a regra de negócio. Existem no projeto 4 objetos de regras de negócio, são eles: ArquivoRN, LocaRN, RegistroRN e ModelUtilRN. A detalhamento a seguir refere-se as trocas de mensagens do objeto UsuariRN, no entanto o mesmo é válido para os demais objetos de regra de negócio. Nota-se que o processo de trocas de mensagens se inicia no construtor do objeto UsuarioRN, o qual chama o método criarusuariodao() do objeto DAOFactory. Esse último é responsável por obter uma instância de objeto UsuarioDAOHibernate, o qual permite a interação direta com o banco de dados. Em seguida o objeto UsuarioDAOHibernate é colocado na sessão através do método setsession(). É importante entender que estar na sessão significa estar disponível enquanto o usuário estiver logado. Figura 16: Diagrama de sequência Regra de Negócio Usuário

53 3.6 Diagramas de sequência Novo usuário Um novo usuário é criado a partir da applet Área Administrativa citada no tópico É importante perceber que as applets exibidas nas DCDUs englobam um conjunto de interesses possíveis, no entanto elas não mostram como esses interesses podem ser colocados em prática pelos atores. Contudo para cada applet existe uma tela ou formulário onde é possível dispor esses interesses. Dessa forma a applet Área Administrativa possui uma tela que é construída a partir do arquivo cadastrousuarios.xhtml. Esse último contém um formulário de cadastro de usuários que fica vinculado ao objeto UsuarioBean. A Figura 17 mostra as mensagens trocadas entre objetos após um dado usuário administrador preencher o formulário e clicar o botão salvar da tela cadastro de usuários. Nessa ilustração as linhas de vida com métodos, representados pelas caixas em vermelho, são criadas por objetos da plataforma Java e as em azul são do projeto que é mencionado nesse trabalho. Ainda na figura, em amarelo, nota-se as classes envolvidas no processo de troca de mensagens. Percebe-se que no início do processo de criação de um novo usuário o método salvar é acionado. Inicialmente ele obtém uma instância do Faces Context. Através dele é possível interagir diretamente com os componentes JSF da camada de visualização.

54 3.6 Diagramas de sequência 53 Figura 17: Diagrama de sequência Salvar Usuário

55 3.6 Diagramas de sequência 54 Outro ponto importante nesse processo é entender que quando o UsuarioBean é instanciado pelo JSF, é criada uma nova instância de Usuario a qual são atribuídos todos os valores preenchidos no fomulário descrito anteriormente. Esse formulário possui dois campos de senha: um padrão e um outro para confirmar. O campo padrão é vinculado a um atributo do objeto Usuario a ser instanciado pelo JSF e o outro a uma String do UsuarioBean. Dessa forma, é possível notar na figura que UsuarioBean obtém a senha do Usuario instanciado através do método getsenhausuario(). Em seguida, é feita uma validação da senha do Usuario instanciado e da senha do UsuarioBean. Se essas forem diferentes uma instância do Faces Message é criada e é passado para o seu construtor o valor A senha não foi confirmada corretamente. Logo após, o objeto Faces Message é atribuído ao Faces Context pelo método addmessage(). Caso os valores digitados nos campos de senha padrão e de confirmar forem iguais então é obtida uma instância do objeto UsuarioRN que será usada para salvar o usuário no banco de dados. Mas antes é obtida uma instância do objeto MessageDigest através do método getinstance() para definir a criptografia que será usada para embaralhar o atributo senha do objeto Usuario. Na sequência, é obtida uma instância do objeto BigInteger. O atributo senha do objeto Usuario é passado como parâmetro ao construtor de BigInteger para ser criptografado que em seguida é redefinido em uma palavra de 16 bits pelo método setsenhausuario. Todo o processo é finalizado com a obtenção de uma instância do Faces Message com o valor Cadastro realizado com sucesso! passado em seu construtor. Na sequência, o objeto Faces Message é atribuído ao Faces Context pelo método addmessage() Editar usuário As propriedades de um usuário podem ser editadas a partir da applet Área Administrativa citada no tópico Assim como comentado na subseção a applet Área Administrativa possui uma tela, a qual além de ter um formulário de cadastro tem uma lista que exibe todos os usuários do sistema. Essa lista contém, em cada linha, um botão com uma figura de folha, a qual ao clicar faz com que o usuário seja enviado para a área de cadastro. No entanto todas as informações do usuário em questão são exibidas nos campos de propriedades de usuário. A Figura 18 mostra as mensagens trocadas entre objetos após um dado usuário administrador clicar no botão de edição de usuário. No momento em que o botão de edição é acionado todas a informações do usuário em questão são carregadas a partir de seu objeto. Contudo assim como foi comentado no tópico o campo senha padrão e o

56 3.6 Diagramas de sequência 55 campo confirmar senha não pertencem ao mesmo objeto, já que um é parte do objeto Usuario e o outro do objeto UsuarioBean respectivamente. Dessa forma é necessário preencher o campo confirmar senha com a mesma senha do campo senha padrão. Para tanto é possível observar na Figura 18 que o método editar() é chamado para obter a senha do objeto Usuario, o qual é atribuído a String confirmasenha do objeto UsuarioBean. Figura 18: Diagrama de sequência Editar Usuário Ativar usuário A ativação ou desativação de um usuário pode ser configurada a partir da applet Área Administrativa citada no tópico , sendo que a lista, a qual é possível determinar essa ação é a mesma citada no tópico Essa lista contém, em cada linha, um botão com uma figura de círculo, o qual ao ser clicado alterna de cor, sendo verde para ativado ou vermelho para desativado. Dessa forma só poderá fazer uso do Fretum quem estiver ativado. A Figura 19 mostra as mensagens trocadas entre objetos após um dado usuário administrador clicar no botão ativar ou desativar usuário. Nota-se que no início do processo de ativar ou desativar usuário o método ativar() é chamado. Na sequência percebe-se que antes é feita uma validação para verificar se o usuário em questão está ativado. Isso é percebido no bloco condicional através da chamada de método this.usuario.isativousuario(). Se esse usuário estiver ativado então é atribuído false ao atributo ativousuario do objeto Usuario, o qual representa o usuário em questão. No entanto se esse usuário estiver desativado é atribuído a esse atributo true. Logo após é criada uma instância de objeto UsuarioRN para em seguida chamar o

57 3.6 Diagramas de sequência 56 método salvar(), o qual grava no banco de dados a alteração de estado descrita anteriormente, no caso false ou true. Figura 19: Diagrama de sequência Ativar ou Desativar Usuário Atribuir privilégios ao usuário A atribuição de privilégios ao usuário pode ser configurada a partir da applet Área Administrativa citada no tópico , sendo que a lista, na qual é possível determinar essa ação é a mesma citada no tópico Essa lista contém, em cada linha, um botão de cadeado, o qual ao ser clicado alterna de figura, sendo cadeado aberto para privilégio de usuário administrador ou cadeado fechado para usuário comum. Cada região é representada por uma figura composta de um número e um ou dois triângulos. Triângulo verde indica privilégio de carregar arquivo e vermelho de enviar. Ao clicar na figura o tipo de privilégio é alterado. A Figura 20 mostra as mensagens trocadas entre objetos após um dado usuário clicar em um dos botões de atribuição de privilégio. É percebido na figura que no início do processo o método atribuirpermissao() é chamado. Em seguida é obtida a lista de permissões (privilégios) do usuário em questão através do método getpermissaousuario(). Logo após

58 3.6 Diagramas de sequência 57 é feita uma validação para verificar se existe o privilégio na lista de permissões. Se existir a permissão é removida da lista. Isso é percebido no bloco condicional, onde é possível observar na Figura 20 o método remove(). Se a permissão não existir então é adicionada a lista através do método add(). Figura 20: Diagrama de sequência Atribuir Privilégios ao Usuário Excluir usuário A exclusão de usuário pode ser configurada a partir da applet Área Administrativa citada no tópico , sendo que a lista, na qual é possível determinar essa ação é a mesma citada no tópico Essa lista contém, em cada linha, um botão com figura de lixeira, o qual ao ser clicado exibe uma janela popup, que por sua vez solicita a confirmação da ação excluir usuário. A Figura 21 mostra as mensagens trocadas entre objetos após um dado usuário administrador clicar no botão excluir usuário. É percebido na figura que no início do processo o método excluir() é chamado. Na sequência é obtida uma instância de objeto UsuarioRN. A seguir é chamado o método excluir() desse objeto, o qual exclui o usuário permanentemente do banco de dados.

59 3.6 Diagramas de sequência 58 Figura 21: Diagrama de sequência Excluir Usuário Enviar arquivo É possível enviar arquivo a partir da applet Região citada no tópico A applet Região possui três telas que são construídas a partir dos arquivos Regiao1.xhtml, Regiao2.xhtml e Regiao3.xhtml. Esses últimos, cada, contém um botão que ao clicar abre uma janela para escolher um arquivo a ser enviado. Cada tela possui um formulário que fica vinculado ao objeto ArquivoBean. A Figura 22 mostra as mensagens trocadas entre objetos após um dado usuário escolher um arquivo e clicar o botão enviar da tela Região. Percebe-se que no início do processo de envio de arquivo o método upload() é acionado. Antes é feito uma validação para confirmar se o objeto arquivoupload não é nulo. Se não for nulo é chamado o método copiaarquivo() que tem dois parâmetros. O primeiro é uma nova instância de objeto File que é criado com o mesmo nome do arquivo contido no objeto arquivoupload, isso é percebido no método getname(), o qual pertence ao arquivoupload. O outro parâmetro é os dados brutos do arquivo em questão contido no objeto arquivoupload, o qual é obtido através do método getinputstream(). Na sequência é criada uma nova instância de objeto SimpleDateFormat() com o parâmetro mascara, o qual é o formato de data que será concatenado com o arquivo a ser enviado. Logo após é obtida uma nova instância de objeto Calendar para obter através dele a data

60 3.6 Diagramas de sequência 59 atual, que em seguida é formatada através do objeto descrito no início desse parágrafo. É importante informar que a concatenação entre data e arquivo foi suprimida da Figura 22, pois para concatena-las não é necessário a chamada de nenhum método, no entanto isso acontece em seguida da resposta java/lang/string do objeto SimpleDateFormat. Logo depois é criado um objeto FileOutputStream. Ele é nativo da plataforma Java e possui métodos para tratar a saída de stream de dados. Esse objeto possui um parâmetro, que é uma nova instância de objeto File, o qual recebe como passagem de valor ao seu construtor o caminho raiz onde os dados do arquivo em questão pode ser armazenado e o local que representa cada região, bem como o novo nome do arquivo, pois ele foi concatenado com a data atual. Antes de começar a escrita (saída) dos dados brutos do arquivo em questão o método read() é chamado. Esse último fará a leitura dos dados brutos do arquivo a ser gravado em um local no servidor obtidos através do método getinputstream(). O método read() lê algum número de bytes a partir do fluxo de entrada e armazena-os em um array. O número de bytes, realmente lidos, é retornado como um inteiro. Este método fica bloqueado até que os dados de entrada estejam disponíveis, ou o fim do arquivo seja detectado, ou uma exceção seja lançada. Se o comprimento dos bytes for zero, então os bytes não serão lidos e será retornado 0. Caso contrário, há uma tentativa de ler pelo menos um byte. Se nenhum byte estiver disponível devido a stream estar no final do processo, o valor -1 é retornado. Caso contrário, pelo menos um byte é lido e armazenado em uma variável. Dessa forma foi criado um laço while para escrever os dados no objeto OutputStream byte a byte, o qual é responsável por criar o arquivo físico. Terminado o processo de criação, os objetos que tratam de streams são finalizados. Percebe-se na sequência, na Figura 22, o método close() chamado para fechar a stream de leitura, o flush() para liberar todos os dados contidos e close(), novamente, para fechar a stream de saída. Ainda na sequência da Figura 22 nota-se que um objeto LocalRN é instanciado. Através dele é obtida uma instância de objeto Local por intermédio do método getlocal() com os parâmetros ContextoBean.CAMINHO ARQUIVOS e this.caminhobase, os quais são o caminho raiz onde os dados do arquivo em questão pode ser armazenado e o local que representa cada região respectivamente. Seguidamente é obtida uma instância de objeto ArquivoRN, o qual permite, na sequência, obter uma instância de Arquivo através do método getarquivo(). Esse último tem dois parâmetros que são o objeto Local e o nome do arquivo. Isso é necessário, pois esse método realiza uma consulta no banco de dados

61 3.6 Diagramas de sequência 60 para verificar se o arquivo já existe. Para tanto são necessários esses parâmetros para realização dessa consulta. E para finalizar, o método salvar é chamado, o qual salva as informações pertinentes ao arquivo em questão no banco de dados, como por exemplo o local em que ele se encontra fisicamente, o registro de data e hora, usuário que enviou, etc.

62 3.6 Diagramas de sequência 61 Figura 22: Diagrama de sequência Envio de Arquivo

63 3.6 Diagramas de sequência Carregar arquivo É possível carregar arquivo a partir da applet Região citada no tópico Cada tela dessa applet possui uma lista de arquivos, a qual corresponde ao conjunto de arquivos contidos em um local físico no servidor. Cada lista fica contida em um formulário, o qual é vinculado ao objeto ArquivoBean. Para carregar é necessário clicar em um nome de arquivo da lista. Essa ação faz com que seja exibida uma janela para a escolha de um local em que o arquivo em questão possa ser armazenado. A Figura 23 mostra as mensagens trocadas entre objetos após um dado usuário escolher e clicar em um nome de arquivo da lista. Nota-se que no início do processo de carregar arquivo o método configuraarquivo() é chamado. Na sequência, é criada uma instância de objeto FileInputStream, o qual recebe em seu construtor o parâmetro ContextoBean.CAMINHO ARQUIVOS + this.caminhobase + arquivo.getnomearquivo(). Esse objeto obtém bytes de entrada a partir de um arquivo em um sistema de arquivos. Ele lê fluxos de bytes brutos, como por exemplo os dados de um arquivo de imagem. É importante perceber que o parâmetro que é passado para o construtor do FileInputStream é o caminho raiz onde os dados do arquivo em questão estão armazenados, concatenado com o local que representa a região de onde o arquivo está no servidor, concatenado com o nome desse arquivo. Seguindo a sequência da Figura 23, percebe-se que é instanciado um objeto DefaultStreamedContent, o qual recebe como parâmetros a instância InputStream (stream), o formato do arquivo getcurrentinstance(getnomearquivo()) e o nome (getnomearquivo()). O objeto DefaultStreamedContent é uma implementação da interface StreamedContent criada para tratar streams para os componentes do PrimeFaces. Esse último objeto é usado pela camada de visualização para obter o arquivo em questão. Em seguida é obtida uma instância de objeto RegistroRN() para logo após utilizar o seu método salva(), o qual grava no banco de dados o registro da ação de carregar arquivo.

64 3.6 Diagramas de sequência 63 Figura 23: Diagrama de sequência Carregar Arquivo Excluir arquivo É possível excluir arquivo a partir da applet Região citada no tópico Cada tela dessa applet possui uma lista de arquivos, a qual corresponde ao conjunto de arquivos contidos em um local físico no servidor. Cada lista fica contida em um formulário, o qual é vinculado ao objeto ArquivoBean. Para excluir é necessário clicar na figura lixeira disponível em cada linha da lista de arquivos. Ao clicar é aberta uma janela popup para confirmação da ação de excluir. A Figura 24 mostra as mensagens trocadas entre objetos após um dado usuário clicar para excluir um arquivo. Percebe-se que no início do processo o método excluir() é chamado. Em seguida, é criada uma instância de objeto File, o qual recebe em seu construtor o parâmetro arquivo.getlocalarquivo().getarquivolocal() + arquivo.getnomearquivo(), o qual é necessário para apontar o local físico em que o arquivo se encontra. Logo após o método delete() do objeto File é chamado para excluir o arquivo do local físico. Seguidamente é obtida uma instância de objeto ArquivoRN() para logo após utilizar o seu método excluir(), o qual grava no banco de dados a informação NAO EXISTE NO- LOCAL DE DESTINO. Essa última estratégia é discutida no tópico

65 3.6 Diagramas de sequência 64 Logo após é criada uma instância de objeto RegistroRN para em seguida utilizar o seu método salvar(), o qual faz o registro da ação de exclusão no banco de dados. Figura 24: Diagrama de sequência Excluir Arquivo

66 65 4 Configuração da aplicação 4.1 Implantação do projeto O sistema desenvolvido é compatível com servidores que possuem a máquina virtual Java configurada, por exemplo JBoss AS, Apache Tomcat, IBM WebSphere, Oracle OC4J, etc. Para cada um deles basta localizar o diretório de implantação de projetos e colar o Fretum que deve estar comprimido no formato de arquivos de extensão.war. A seguir é mostrado como configurar o sistema deste trabalho na plataforma OpenShift no servidor JBoss AS 7. Os passos apresentados levam em conta o uso do Eclipse. Em outras IDEs os passos podem ser diferentes. Após essas configurações é possível acessá-lo via cliente web. Passo 1 Primeiramente é necessário criar uma conta na plataforma OpenShift. Para tanto basta acessar o site mostrado no retângulo 1 da Figura 25 e em seguida clica no botão Sign Up como mostrado no retângulo 2.

67 4.1 Implantação do projeto 66 Figura 25: Conta OpenShift Passo 2 Logo após a criação da conta o usuário é direcionado para uma tela onde é permitido escolher qual servidor será usado para implantação de projetos. Para esse projeto foi escolhido o JBoss AS 7 como mostrado na Figura 26. Figura 26: Servidor JBoss AS 7

68 4.1 Implantação do projeto 67 Passo 3 Em seguida é necessário dar um nome para o sistema e confirmar. Isso é mostrado na Figura 27 nos retângulo 1 e 2 respectivamente. Figura 27: Servidor JBoss AS 7 Passo 4 Posteriormente ao passo anterior é necessário acessar a área em que se encontra o sistema, como mostrado nas figuras 28 e 29.

69 4.1 Implantação do projeto 68 Figura 28: Gerenciador de sistemas implantados Figura 29: Informações sobre o sistema implantado Passo 5 Seguidamente é necessário disponibilizar o SGBD MySQL para o repositório criado no OpenShift. Para tanto basta clicar no botão Add Cartridge como mostrado na Figura 30.

70 4.1 Implantação do projeto 69 Figura 30: Adicionar banco de dados Passo 6 Escolher o MySQL como mostrado na Figura 31. Figura 31: Selecionar MySQL 5.1 Passo 7 Confirmar a escolha do MySQL como mostrado na Figura 32.

71 4.1 Implantação do projeto 70 Figura 32: Confirmar a escolha do MySQL Passo 8 Em seguida é necessário copiar com CTRL+C o endereço do repositório criado na plataforma OpenShift como mostrado na Figura 33. Figura 33: Gerenciador de sistemas implantados Passo 9 Supondo que o Git já esteja previamente instalado se faz necessário a abertura de

72 4.1 Implantação do projeto 71 um terminal ou prompt de comandos para logo a seguir digitar o comando git clone mais o endereço do repositório remoto como mostrado na Figura 34. Figura 34: Git clone Passo 10 Depois executar um Eclipse que possua os plugins Maven e Git previamente instalados. Clicar no item de menu File, depois Import, selecionar Maven, depois setar o workspace do projeto como mostrado nas figuras 35, 36, 37 e 38 respectivamente.

73 4.1 Implantação do projeto 72 Figura 35: Import do Eclipse

74 4.1 Implantação do projeto 73 Figura 36: Importação Maven

75 4.1 Implantação do projeto 74 Figura 37: Pasta do projeto Figura 38: Carregar projeto no Eclipse Passo 11 Esse sistema utiliza um local físico para armazenar os arquivos. Para tanto é necessário criar diretório no servidor remoto. Como mostrado na Figura 39 é necessário copiar esse endereço para posteriormente utilizá-lo para acesso remoto via SSH como

76 4.1 Implantação do projeto 75 mostrado nesta outra Figura 40, onde é possível verificar que o repositório do sistema foi acessado via SSH. Uma vez feito o acesso se faz necessário como já mencionado a criação de diretórios como mostrado na Figura 41 Figura 39: Endereço SSH do repositório Figura 40: Acesso remoto do repositório via SSH

77 4.1 Implantação do projeto 76 Figura 41: Criação de diretório físicos para o sistema Passo 12 Em seguida basta adicionar o arquivo com os binários do projeto, disponíveis no arquivo.war e apagar o arquivo.pom Figura 42 Figura 42: Binários do projeto Passo 13 Logo após basta fazer um commit e um push através do plugin do Git do Eclipse

78 4.1 Implantação do projeto 77 como mostrado na Figura 43 Figura 43: Commit do Git Passo 14 Neste último passo deve-se configurar as tabelas ou entidades de banco de dados para armazenar as informações geradas pelos usuários através do sistema de armazenamento de arquivos. Para tanto é necessário acessar o repositório remoto do projeto via SSH e executar o SGBD MySQL através do comando mysql. A Figura 44 exibe os passos que devem ser realizados após esse último comando. Um ponto importante antes de abordar os passos para criação do banco de dados é o de que quando é criado um repositório no OpenShift e adicionado um SGBD ao projeto, por padrão já é criado um esquema de banco de dados com o nome do repositório em questão sem tabelas. Voltando a Figura 44, no retângulo 1, é mostrado que deve-se selecionar o esquema de bando de dados desejado. Em seguida precisa-se criar uma tabela, a qual o sistema vai utilizar como referência do local raiz em que se encontram os diretórios de arquivos do Fretum, isso é mostrado no retângulo 2. Depois é necessário criar ao menos um usuário com privilégio de administrador, como mostrado no retângulo 3. Logo após deve-se criar os diretórios do sistema, como mostrado nos retângulos 4, 5 e 6. Como mencionado o usuário criado deve ter privilégio de administrador, para tanto deve-se fazer como mostrado no retângulo 7.

79 4.1 Implantação do projeto 78 Figura 44: Configuração do banco de dados Parâmetros dos frameworks Para configurar os frameworks é necessário antes entender a estrutura de diretórios do projeto que é mostrada na Figura 45. Os diretórios que devem ser observados são os src main, java, resources, webapp e WEB-INF, pois os demais são criados por default pela IDE Eclipse. Essa estrutura é configurada automaticamente no Eclipse a partir do plugin do Maven, o qual define o src como o diretório em que irão estar presentes um ou mais projetos Maven. Nesse caso, apenas um que é o Fretum, o qual é definido como o principal main. Dentro do main deve estar o diretório java, no qual deve estar as classes.java. No resource deve estar o ou os arquivos de configurações de frameworks de banco de dados, que nesse caso é o Hibernate. E o webapp é o local onde deve estar todos os arquivos responsáveis por desenhar as telas, podendo ser com extensões:.css,.html, xhtml, etc. Já no WEB-INF deve estar as configurações do projeto através do arquivo web.xml, o qual é mencionado no tópico JSF bem com as configurações do Spring Security.

80 4.1 Implantação do projeto 79 Figura 45: Estrutura de diretórios JSF A configuração básica do JSF envolve apenas o arquivo web.xml, localizado no diretório WEB-INF do projeto. Nesse arquivo é configurado o repasse das requisições ao servidor para o JSF processar. O processamento se dará apenas para a requisições do tipo.jsf. A Figura 46 mostra um exemplo de configuração do framework JSF. Para ativar o funcionamento do JSF basta adicionar os elementos <servlet> e <servletmapping>. O elemento <welcome-file-list> é a definição dos arquivos que poderão servir como página inicial.

81 4.1 Implantação do projeto 80 1 <?xml version="1.0" encoding="utf-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns="http:// java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/webapp_2_5.xsd" xsi:schemalocation="http://java.sun.com/xml/ns/javaee java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="webapp_id" version="3.0"> 3 <display-name>fretum</display-name> 4 <welcome-file-list> 5 <welcome-file>index.html</welcome-file> 6 </welcome-file-list> 7 <servlet> 8 <servlet-name>faces Servlet</servlet-name> 9 <servlet-class>javax.faces.webapp.facesservlet</servlet-class> 10 <load-on-startup>1</load-on-startup> 11 </servlet> 12 <servlet-mapping> 13 <servlet-name>faces Servlet</servlet-name> 14 <url-pattern>*.jsf</url-pattern> 15 </servlet-mapping> 16 </web-app> Figura 46: Configurações do JSF Hibernate A configuração básica do Hibernate envolve apenas o arquivo hibernate.xml, localizado no diretório resources do projeto. Nesse arquivo é configurado os parâmetros de banco de dados para que o Hibernate saiba como fazer o mapeamento dos objetos para tabelas de banco de dados. A Figura 47 mostra um exemplo de configuração. No parâmetro dialect é configurado o dialeto de comunicação com o SGBD, que nesse caso é o MySQL. Em connection.datasource é configurado o caminho do banco de dados. Quando o sistema é executado o Hibernate cria as tabelas de banco de dados com base nos objetos entidades do sistema. Em hibernate.hbm2ddl.auto é configurado se a cada execução do sistema as tabelas serão excluídas e criadas novamente ou atualizadas se existirem. Nesse caso foi configurado para o Hibernate atualizar. Em class é configurado as classes que serão mapeadas para entidades de banco de dados Spring Security As configurações do Spring Security é feita no arquivo applicationcontext-security.xml. Nele é configurado as permissões para os diretórios do sistema e a origem dos dados dos usuários e permissões. A Figura 48 mostra um exemplo de configuração.

82 4.1 Implantação do projeto 81 1 <?xml version="1.0" encoding="utf-8"?> 2 <!DOCTYPE hibernate-configuration PUBLIC 3 "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 4 "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 5 <hibernate-configuration> 6 7 <session-factory> <property name="dialect">org.hibernate.dialect.mysql5innodbdialect</ property> 11 <property name="connection.datasource">java:jboss/datasources/mysqlds</ property> --> <property name="hibernate.hbm2ddl.auto">update</property> <mapping class="com.wavetech_st.usuario.usuario" /> 16 <mapping class="com.wavetech_st.arquivo.arquivo" /> 17 <mapping class="com.wavetech_st.arquivo.local" /> 18 <mapping class="com.wavetech_st.arquivo.registro" /> 19 <mapping class="com.wavetech_st.util.modelutil" /> </session-factory> </hibernate-configuration> Figura 47: Configurações do Hibernate O elemento <http> é um agrupador das configurações referentes ao contexto web do sistema. A configuração de quais páginas ou diretórios que serão seguros é efetuada com o elemento <intercept-url>, no qual o atributo pattern expressa o padrão textual da URL, e o atributo access é uma lista separada por vírgula dos nomes de permissões que terão acesso ao recurso. Poderão existir quantos <intercept-url> forem necessários. O elemento <form-login> configura o funcionamento da página de login do Spring Security. Em login-page é configurada a URL para exibir a página de login do sistema. Já em <default-target-url> é configurada a URL a ser exibida caso o login não seja realizado com sucesso. E em <authentication-failure-url> é configurada a URL a ser exibida caso o login não seja realizado com sucesso. O elemento <logout> é utilizado para habilitar o recurso de logout para o sistema. Com o logout habilitado, bastará chamar a URL /j_spring_security_logout para que o usuário seja direcionado para a página externa do sistema, tendo sua sessão invalidada. A configuração que estiver definida em <authentication-provider> determinará quais são os usuários válidos do sistema e suas permissões. Para tanto será necessário que o

83 4.1 Implantação do projeto 82 1 <?xml version="1.0" encoding="utf-8"?> 2 <beans:beans xmlns="http://www.springframework.org/schema/security" 3 xmlns:beans="http://www.springframework.org/schema/beans" 4 xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" 5 xsi:schemalocation="http://www.springframework.org/schema/beans xsd <http use-expressions="true"> <intercept-url pattern="/index.html" access="permitall" /> 13 <intercept-url pattern="/publico/*" access="permitall" /> 14 <intercept-url pattern="/templates/*" access="authenticated" /> 15 <intercept-url pattern="/compositions/*" access="authenticated" /> 16 <intercept-url pattern="/restrito/*" access="authenticated" /> 17 <intercept-url pattern="/admin/*" access="authenticated" /> 18 <intercept-url pattern="/regioes/*" access="authenticated" /> <form-login login-page="/publico/noticias.jsf" 21 always-use-default-target="true" 22 default-target-url="/restrito/fretum.jsf" 23 authentication-failure-url="/publico/noticias.jsf?login_error=1" /> <logout invalidate-session="true" 26 logout-url="/j_spring_security_logout" /> </http> <authentication-manager> <authentication-provider> <password-encoder hash="sha" /> <jdbc-user-service data-source-ref="fretumdb" 37 users-by-username-query="select usuario, senhausuario, ativousuario FROM Usuario WHERE usuario =?" /> 38 </authentication-provider> </authentication-manager> </beans:beans> Figura 48: Configurações do Spring Security

84 4.1 Implantação do projeto 83 Spring faça consultas no banco de dados para verificar essas informações. Dessa forma será necessário obter o local do banco de dados, o qual será obtido a partir do arquivo applicationcontext.xml, o qual tem o seu conteúdo mostrado na Figura 49. O elemento <password-encoder hash= sha > é utilizado para criptografar através do algoritmo hash SHA a senha inserida pelo usuário. Ainda sobre as configurações do <authentication-provider> o elemento <jdbc-userservice> permite declarar as SQLs que fornecerão os dados que o Spring Security necessita, vindas do banco de dados. O atributo data-source-ref indica o nome dado para a configuração criada para o banco de dados. Esse nome foi dado dentro do arquivo applicationcontext.xml, o qual é o fretumdb. E em users-by-username-query é o código SQLs para obter as informações do banco de dados a respeito do usuário. 1 <?xml version="1.0" encoding="utf-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" 4 xsi:schemalocation="http://www.springframework.org/schema/beans springframework.org/schema/beans/spring-beans-3.0.xsd"> 5 6 <bean id="fretumdb" class="org.springframework.jndi.jndiobjectfactorybean"> 7 8 <property name="jndiname"> 9 10 <value>java:jboss/datasources/mysqlds</value> </property> </bean> </beans> Figura 49: Configurações do caminho do banco de dados para o Spring Security

85 84 5 Resultados A Figura 50 mostra a página inicial do site da WaveTech Soluções Tecnológicas. Nela é possível visualizar o botão logar, o qual está destacado em verde. Figura 50: Botão para entrar na área de diálogo de acesso ao sistema Ao clicar no botão logar o canto esquerdo do banner da página da WaveTech é deslocado para a direita, como mostra a Figura 51. Em seguida é possível visualizar uma caixa, a qual contém um campo para digitar o login, a senha e um botão para enviar a requisição dessas informações ao servidor em que o sistema está hospedado.

86 5 Resultados 85 Figura 51: Diálogo para acesso ao sistema Após a requisição do usuário em questão ser processada, é exibida, na sequência, a tela principal do sistema, a qual é possível verificar na Figura 52. Isso indica que, efetivamente, o sistema reconheceu o usuário e a senha garantindo-lhe acesso ao sistema. Figura 52: Tela principal para usuários não administradores

87 5 Resultados 86 Na tela principal é possível verificar os três diretórios em que as empresas envolvidas com a WaveTech poderão armazenar seus arquivos, onde a Região 1 representa o diretório 1, e assim sucessivamente. É importante perceber que o usuário em questão não é administrador, pois, se fosse, na tela principal também seria exibido um botão que permitiria ao usuário acessar a área administrativa como mostra a Figura 53. Dessa forma essa última é um exemplo de que verdadeiramente o usuário em questão não tem o privilégio de administrador. Figura 53: Tela principal para usuários administradores A Figura 54 mostra o usuário em questão acessando o diretório 1. Nessa figura é possível notar que há uma lista dos arquivos contidos nesse diretório conforme o esperado.

88 5 Resultados 87 Figura 54: Diretório sem recurso de envio de arquivos Cada tela que representa um diretório possui o botão lista que permite exibir a tabela de arquivos em uma janela popup, a qual possibilita ao usuário redimensionar essa janela conforme o desejado. Isso é exibido na Figura 55. Figura 55: Lista de arquivos expandida em uma segunda tela

Introdução à Informática

Introdução à Informática Introdução à Informática Aula 23 http://www.ic.uff.br/~bianca/introinfo/ Aula 23-07/12/2007 1 Histórico da Internet Início dos anos 60 Um professor do MIT (J.C.R. Licklider) propõe a idéia de uma Rede

Leia mais

Programação WEB Introdução

Programação WEB Introdução Programação WEB Introdução Rafael Vieira Coelho IFRS Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul Campus Farroupilha rafael.coelho@farroupilha.ifrs.edu.br Roteiro 1) Conceitos

Leia mais

Desenvolvimento de Aplicações Web

Desenvolvimento de Aplicações Web Desenvolvimento de Aplicações Web André Tavares da Silva andre.silva@udesc.br Método de Avaliação Serão realizadas duas provas teóricas e dois trabalhos práticos. MF = 0,1*E + 0,2*P 1 + 0,2*T 1 + 0,2*P

Leia mais

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web; CONCEITOS INICIAIS Agenda A diferença entre páginas Web, Home Page e apresentação Web; O que é necessário para se criar páginas para a Web; Navegadores; O que é site, Host, Provedor e Servidor Web; Protocolos.

Leia mais

Tópicos de Ambiente Web Conceitos Fundamentais Redes de Dados

Tópicos de Ambiente Web Conceitos Fundamentais Redes de Dados Tópicos de Ambiente Web Conceitos Fundamentais Redes de Dados Professora: Sheila Cáceres Computador Dispositivo eletrônico usado para processar guardar e tornar acessível informação. Tópicos de Ambiente

Leia mais

Manual de referência do HP Web Jetadmin Database Connector Plug-in

Manual de referência do HP Web Jetadmin Database Connector Plug-in Manual de referência do HP Web Jetadmin Database Connector Plug-in Aviso sobre direitos autorais 2004 Copyright Hewlett-Packard Development Company, L.P. A reprodução, adaptação ou tradução sem permissão

Leia mais

SISTEMA GERENCIAL TRATORPLAN

SISTEMA GERENCIAL TRATORPLAN SISTEMA GERENCIAL TRATORPLAN SIGET Fabrício Pereira Santana¹, Jaime William Dias¹, ², Ricardo de Melo Germano¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil fabricioblack@gmail.com germano@unipar.br

Leia mais

FACULDADE PITÁGORAS. Prof. Ms. Carlos José Giudice dos Santos cpgcarlos@yahoo.com.br www.oficinadapesquisa.com.br

FACULDADE PITÁGORAS. Prof. Ms. Carlos José Giudice dos Santos cpgcarlos@yahoo.com.br www.oficinadapesquisa.com.br FACULDADE PITÁGORAS DISCIPLINA FUNDAMENTOS DE REDES REDES DE COMPUTADORES Prof. Ms. Carlos José Giudice dos Santos cpgcarlos@yahoo.com.br www.oficinadapesquisa.com.br Material elaborado com base nas apresentações

Leia mais

HYPERTEXT TRANSFER PROTOCOL

HYPERTEXT TRANSFER PROTOCOL REDES DE COMPUTADORES Prof. Esp. Fabiano Taguchi http://fabianotaguchi.wordpress.com fabianotaguchi@gmail.com HYPERTEXT TRANSFER PROTOCOL 1 HTTP Uma página WWW é composta de objetos e endereçado por uma

Leia mais

PRnet/2013. Linguagem de Programação Web

PRnet/2013. Linguagem de Programação Web Linguagem de Programação Web Linguagem de Programação Web Prnet/2013 Linguagem de Programação Web» Programas navegadores» Tipos de URL» Protocolos: HTTP, TCP/IP» Hipertextos (páginas WEB)» HTML, XHTML»

Leia mais

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE Amarildo Aparecido Ferreira Junior 1, Ricardo Ribeiro Rufino 1 ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil aapfjr@gmail.com

Leia mais

Desenvolvimento Web. Saymon Yury C. Silva Analista de Sistemas. http://www.saymonyury.com.br

Desenvolvimento Web. Saymon Yury C. Silva Analista de Sistemas. http://www.saymonyury.com.br Desenvolvimento Web Saymon Yury C. Silva Analista de Sistemas http://www.saymonyury.com.br Vantagens Informação em qualquer hora e lugar; Rápidos resultados; Portabilidade absoluta; Manutenção facilitada

Leia mais

Redes de Computadores II

Redes de Computadores II Redes de Computadores II INTERNET Protocolos de Aplicação Intranet Prof: Ricardo Luís R. Peres As aplicações na arquitetura Internet, são implementadas de forma independente, ou seja, não existe um padrão

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 5 Servidores de Aplicação

Leia mais

UMA ABORDAGEM SOBRE A INTERFACE DE PROGRAMAÇÃO DE APLICAÇÕES SOCKETS E A IMPLEMENTAÇÃO DE UM SERVIDOR HTTP

UMA ABORDAGEM SOBRE A INTERFACE DE PROGRAMAÇÃO DE APLICAÇÕES SOCKETS E A IMPLEMENTAÇÃO DE UM SERVIDOR HTTP UMA ABORDAGEM SOBRE A INTERFACE DE PROGRAMAÇÃO DE APLICAÇÕES SOCKETS E A IMPLEMENTAÇÃO DE UM SERVIDOR HTTP Alan Jelles Lopes Ibrahim, alan.jelles@hotmail.com Eduardo Machado Real, eduardomreal@uems.br

Leia mais

Documento de Requisitos de Rede (DRP)

Documento de Requisitos de Rede (DRP) Documento de Requisitos de Rede (DRP) Versão 1.2 SysTrack - Grupo 1 1 Histórico de revisões do modelo Versão Data Autor Descrição 1.0 30/04/2011 João Ricardo Versão inicial 1.1 1/05/2011 André Ricardo

Leia mais

TECNOLOGIA WEB INTERNET PROTOCOLOS

TECNOLOGIA WEB INTERNET PROTOCOLOS INTERNET PROTOCOLOS 1 INTERNET Rede mundial de computadores. Também conhecida por Nuvem ou Teia. Uma rede que permite a comunicação de redes distintas entre os computadores conectados. Rede WAN Sistema

Leia mais

Desenvolvimento em Ambiente Web. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Desenvolvimento em Ambiente Web. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Desenvolvimento em Ambiente Web Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Internet A Internet é um conjunto de redes de computadores de domínio público interligadas pelo mundo inteiro, que tem

Leia mais

Ferramenta: Spider-CL. Manual do Usuário. Versão da Ferramenta: 1.1. www.ufpa.br/spider

Ferramenta: Spider-CL. Manual do Usuário. Versão da Ferramenta: 1.1. www.ufpa.br/spider Ferramenta: Spider-CL Manual do Usuário Versão da Ferramenta: 1.1 www.ufpa.br/spider Histórico de Revisões Data Versão Descrição Autor 14/07/2009 1.0 15/07/2009 1.1 16/07/2009 1.2 20/05/2010 1.3 Preenchimento

Leia mais

TECNOLOGIA WEB. Principais Protocolos na Internet Aula 2. Profa. Rosemary Melo

TECNOLOGIA WEB. Principais Protocolos na Internet Aula 2. Profa. Rosemary Melo TECNOLOGIA WEB Principais Protocolos na Internet Aula 2 Profa. Rosemary Melo Tópicos abordados Compreender os conceitos básicos de protocolo. Definir as funcionalidades dos principais protocolos de Internet.

Leia mais

INTERNET -- NAVEGAÇÃO

INTERNET -- NAVEGAÇÃO Página 1 INTRODUÇÃO Parte 1 O que é a Internet? A Internet é uma rede mundial de computadores, englobando redes menores distribuídas por vários países, estados e cidades. Ao contrário do que muitos pensam,

Leia mais

10/07/2013. Camadas. Principais Aplicações da Internet. Camada de Aplicação. World Wide Web. World Wide Web NOÇÕES DE REDE: CAMADA DE APLICAÇÃO

10/07/2013. Camadas. Principais Aplicações da Internet. Camada de Aplicação. World Wide Web. World Wide Web NOÇÕES DE REDE: CAMADA DE APLICAÇÃO 2 Camadas NOÇÕES DE REDE: CAMADA DE APLICAÇÃO Introdução à Microinformática Prof. João Paulo Lima Universidade Federal Rural de Pernambuco Departamento de Estatística e Informática Aplicação Transporte

Leia mais

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE Aluno: Roberto Reinert Orientador: Everaldo A. Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Workflow Processo

Leia mais

GLOSSÁRIO. ActiveX Controls. É essencialmente uma interface usada para entrada e saída de dados para uma aplicação.

GLOSSÁRIO. ActiveX Controls. É essencialmente uma interface usada para entrada e saída de dados para uma aplicação. GLOSSÁRIO Este glossário contém termos e siglas utilizados para Internet. Este material foi compilado de trabalhos publicados por Plewe (1998), Enzer (2000) e outros manuais e referências localizadas na

Leia mais

DEFINIÇÃO DE REQUISITOS SISTEMA DE CONTROLE DE FINANÇAS WEB 1.0 BAIXA DE CONTAS A PAGAR RELEASE 4.1

DEFINIÇÃO DE REQUISITOS SISTEMA DE CONTROLE DE FINANÇAS WEB 1.0 BAIXA DE CONTAS A PAGAR RELEASE 4.1 DEFINIÇÃO DE REQUISITOS SISTEMA DE CONTROLE DE FINANÇAS WEB 1.0 BAIXA DE CONTAS A PAGAR RELEASE 4.1 SUMÁRIO DEFINIÇÃO DE REQUISITOS 4 1. INTRODUÇÃO 4 1.1 FINALIDADE 4 1.2 ESCOPO 4 1.3 DEFINIÇÕES, ACRÔNIMOS

Leia mais

PROJETO PEDAGÓGICO DE CURSOS

PROJETO PEDAGÓGICO DE CURSOS 1 de 6 PROJETO PEDAGÓGICO DE CURSOS BURITREINAMENTOS MANAUS-AM MARÇO / 2015 2 de 6 PACOTES DE TREINAMENTOS BURITECH A Buritech desenvolveu um grupo de pacotes de treinamentos, aqui chamados de BuriPacks,

Leia mais

Guia de Consulta Rápida HTTP. Décio Jr. Novatec Editora. www.novateceditora.com.br

Guia de Consulta Rápida HTTP. Décio Jr. Novatec Editora. www.novateceditora.com.br Guia de Consulta Rápida HTTP Décio Jr. Novatec Editora www.novateceditora.com.br Guia de Consulta Rápida HTTP de Décio Jr. Copyright 2001 da Novatec Editora Ltda. Todos os direitos reservados. É proibida

Leia mais

A Camada de Aplicação

A Camada de Aplicação A Camada de Aplicação Romildo Martins Bezerra CEFET/BA Redes de Computadores II Afinal, o que faz a camada de aplicação?... 2 Paradigma Cliente/Servidor [4]... 2 Endereçamento... 2 Tipo de Serviço... 2

Leia mais

Wireshark Lab: Iniciando

Wireshark Lab: Iniciando Wireshark Lab: Iniciando Versão 1.1 2005 KUROSE, J.F & ROSS, K. W. Todos os direitos reservados 2008 BATISTA, O. M. N. Tradução e adaptação para Wireshark. Conte-me e esqueço. Mostre-me e eu lembro. Envolva-me

Leia mais

PARANÁ GOVERNO DO ESTADO

PARANÁ GOVERNO DO ESTADO PROTOCOLOS DA INTERNET FAMÍLIA TCP/IP INTRODUÇÃO É muito comum confundir o TCP/IP como um único protocolo, uma vez que, TCP e IP são dois protocolos distintos, ao mesmo tempo que, também os mais importantes

Leia mais

DOCUMENTO DE REQUISITOS

DOCUMENTO DE REQUISITOS 1/38 DOCUMENTO DE REQUISITOS GED Gerenciamento Eletrônico de Documentos Versão 1.1 Identificação do Projeto CLIENTE: NOME DO CLIENTE TIPO DO SISTEMA OU PROJETO Participantes Função Email Abilio Patrocinador

Leia mais

Módulo 11 A Web e seus aplicativos

Módulo 11 A Web e seus aplicativos Módulo 11 A Web e seus aplicativos Até a década de 90, a internet era utilizada por acadêmicos, pesquisadores e estudantes universitários para a transferência de arquivos e o envio de correios eletrônicos.

Leia mais

Universidade Federal do Espírito Santo CCA UFES. Centro de Ciências Agrárias CCA UFES Departamento de Computação. Programação WEB

Universidade Federal do Espírito Santo CCA UFES. Centro de Ciências Agrárias CCA UFES Departamento de Computação. Programação WEB Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Universidade Federal do Espírito Santo CCA UFES Programação WEB Desenvolvimento de Sistemas para WEB

Leia mais

Cloud Computing. Andrêza Leite. andreza.lba@gmail.com

Cloud Computing. Andrêza Leite. andreza.lba@gmail.com Cloud Computing Andrêza Leite andreza.lba@gmail.com Roteiro O que é cloud computing? Classificação O que está 'por traz' da cloud? Exemplos Como montar a sua? O que é cloud computing? Cloud Computing O

Leia mais

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados: MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação

Leia mais

WWW - World Wide Web

WWW - World Wide Web WWW World Wide Web WWW Cap. 9.1 WWW - World Wide Web Idéia básica do WWW: Estratégia de acesso a uma teia (WEB) de documentos referenciados (linked) em computadores na Internet (ou Rede TCP/IP privada)

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Modelo Cliente- Servidor Modelo de Aplicação Cliente-servidor Os

Leia mais

Desenvolvimento Web Protocolos da Internet

Desenvolvimento Web Protocolos da Internet Instituto Federal de Educação Ciência e Tecnologia Campus Currais Novos Desenvolvimento Web Protocolos da Internet Professor: Bruno E. G. Gomes Currais Novos, 2013 Introdução Histórico da Internet Cliente

Leia mais

Unioeste Universidade Estadual do Oeste do Paraná

Unioeste Universidade Estadual do Oeste do Paraná Unioeste Universidade Estadual do Oeste do Paraná CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS Colegiado de Informática Curso de Bacharelado em Informática Especificação de Requisitos e Modelagem Orientada

Leia mais

Infracontrol versão 1.0

Infracontrol versão 1.0 Infracontrol versão 1.0 ¹Rafael Victória Chevarria ¹Tecnologia em Redes de Computadores - Faculdade de Tecnologia SENAC (Serviço Nacional de Aprendizagem Comercial) Rua Gonçalves Chaves 602-A Centro 96015-560

Leia mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Rogério Eduardo Garcia (rogerio@fct.unesp.br) Bacharelado em Ciência da Computação Aula 05 Material preparado por Fernanda Madeiral Delfim Tópicos Aula 5 Contextualização UML Astah

Leia mais

Guia de administração. BlackBerry Professional Software para Microsoft Exchange. Versão: 4.1 Service pack: 4B

Guia de administração. BlackBerry Professional Software para Microsoft Exchange. Versão: 4.1 Service pack: 4B BlackBerry Professional Software para Microsoft Exchange Versão: 4.1 Service pack: 4B SWD-313211-0911044452-012 Conteúdo 1 Gerenciando contas de usuários... 7 Adicionar uma conta de usuário... 7 Adicionar

Leia mais

PROJETO DE COOPERAÇÃO TÉCNICA INTERNACIONAL. Diretrizes e Estratégias para Ciência, Tecnologia e Inovação no Brasil

PROJETO DE COOPERAÇÃO TÉCNICA INTERNACIONAL. Diretrizes e Estratégias para Ciência, Tecnologia e Inovação no Brasil PROJETO DE COOPERAÇÃO TÉCNICA INTERNACIONAL Diretrizes e Estratégias para Ciência, Tecnologia e Inovação no Brasil Projeto 914 BRA5065 - PRODOC-MTC/UNESCO DOCUMENTO TÉCNICO Nº 02 IMPLANTAÇÃO DE 1 (UM)

Leia mais

CLOUD COMPUTING. Andrêza Leite. andreza.leite@univasf.edu.br

CLOUD COMPUTING. Andrêza Leite. andreza.leite@univasf.edu.br CLOUD COMPUTING Andrêza Leite andreza.leite@univasf.edu.br Roteiro O que é cloud computing? Classificação O que está 'por traz' da cloud? Exemplos Como montar a sua? O que é cloud computing? Cloud Computing

Leia mais

Lista de Exercício: PARTE 1

Lista de Exercício: PARTE 1 Lista de Exercício: PARTE 1 1. Questão (Cód.:10750) (sem.:2a) de 0,50 O protocolo da camada de aplicação, responsável pelo recebimento de mensagens eletrônicas é: ( ) IP ( ) TCP ( ) POP Cadastrada por:

Leia mais

Introdução à Tecnologia Web. Conceitos Gerais. Profª MSc. Elizabete Munzlinger www.elizabete.com.br

Introdução à Tecnologia Web. Conceitos Gerais. Profª MSc. Elizabete Munzlinger www.elizabete.com.br IntroduçãoàTecnologiaWeb ConceitosGerais ProfªMSc.ElizabeteMunzlinger www.elizabete.com.br ProfªMSc.ElizabeteMunzlinger www.elizabete.com.br ConceitosGerais Índice 1 História da Internet... 2 a) No Mundo...

Leia mais

Aula 01: Apresentação da Disciplina e Introdução a Conceitos Relacionados a Internet e WEB

Aula 01: Apresentação da Disciplina e Introdução a Conceitos Relacionados a Internet e WEB Aula 01: Apresentação da Disciplina e Introdução a Conceitos Relacionados a Internet e WEB Regilan Meira Silva Professor de Informática do Campus Ilhéus Formação em Ciência da Computação com Especialização

Leia mais

Universidade Federal de Mato Grosso

Universidade Federal de Mato Grosso Universidade Federal de Mato Grosso Programação III Curso de Ciência da Computação Prof. Thiago P. da Silva thiagosilva@ufmt.br Material basedado em [Kurose&Ross 2009] e [Gonçalves, 2007] Agenda Internet

Leia mais

LEI DE ACESSO A INFORMAÇÃO DIREITO DO CIDADÃO

LEI DE ACESSO A INFORMAÇÃO DIREITO DO CIDADÃO DESCRIÇÃO DO SIGAI O SIGAI (Sistema Integrado de Gestão do Acesso à Informação) é uma solução de software que foi desenvolvida para automatizar os processos administrativos e operacionais visando a atender

Leia mais

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) RELATÓRIO DE ENTREGA DO PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) PARA A ELABORAÇÃO DOS PLANOS MUNICIPAIS DE GESTÃO INTEGRADA DE RESÍDUOS SÓLIDOS PMGIRS PARA OS MUNICÍPIOS DE NOVO HORIZONTE, JUPIÁ, GALVÃO,

Leia mais

DEFINIÇÃO DE REQUISITOS SISTEMA DE CONTROLE DE FINANÇAS WEB 1.0 MANTER FUNCIONÁRIO RELEASE 4.1

DEFINIÇÃO DE REQUISITOS SISTEMA DE CONTROLE DE FINANÇAS WEB 1.0 MANTER FUNCIONÁRIO RELEASE 4.1 DEFINIÇÃO DE REQUISITOS SISTEMA DE CONTROLE DE FINANÇAS WEB 1.0 MANTER FUNCIONÁRIO RELEASE 4.1 SUMÁRIO DEFINIÇÃO DE REQUISITOS 4 1. INTRODUÇÃO 4 1.1 FINALIDADE 4 1.2 ESCOPO 4 1.3 DEFINIÇÕES, ACRÔNIMOS

Leia mais

INFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima

INFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima INFORMÁTICA FUNDAMENTOS DE INTERNET Prof. Marcondes Ribeiro Lima Fundamentos de Internet O que é internet? Nome dado a rede mundial de computadores, na verdade a reunião de milhares de redes conectadas

Leia mais

3 Estudo de Ferramentas

3 Estudo de Ferramentas 3 Estudo de Ferramentas Existem diferentes abordagens para automatizar um processo de desenvolvimento. Um conjunto de ferramentas pode ser utilizado para aperfeiçoar o trabalho, mantendo os desenvolvedores

Leia mais

Implementar servidores de Web/FTP e DFS. Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.

Implementar servidores de Web/FTP e DFS. Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc. Implementar servidores de Web/FTP e DFS Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.br Conteúdo programático Introdução ao protocolo HTTP Serviço web

Leia mais

Capítulo 8 - Aplicações em Redes

Capítulo 8 - Aplicações em Redes Capítulo 8 - Aplicações em Redes Prof. Othon Marcelo Nunes Batista Mestre em Informática 1 de 31 Roteiro Sistemas Operacionais em Rede Modelo Cliente-Servidor Modelo P2P (Peer-To-Peer) Aplicações e Protocolos

Leia mais

Web. Até a década de 1990, a Internet era utilizada. por pesquisadores, acadêmicos e universitários, para troca de arquivos e para correio eletrônico.

Web. Até a década de 1990, a Internet era utilizada. por pesquisadores, acadêmicos e universitários, para troca de arquivos e para correio eletrônico. A Web e o HTTP Web Até a década de 1990, a Internet era utilizada por pesquisadores, acadêmicos e universitários, para troca de arquivos e para correio eletrônico. Então, no início dessa década, iniciou-se

Leia mais

Curso: Sistemas de Informação Disciplina: Redes de Computadores Prof. Sergio Estrela Martins

Curso: Sistemas de Informação Disciplina: Redes de Computadores Prof. Sergio Estrela Martins Curso: Sistemas de Informação Disciplina: Redes de Computadores Prof. Sergio Estrela Martins Material de apoio 2 Esclarecimentos Esse material é de apoio para as aulas da disciplina e não substitui a leitura

Leia mais

André Aziz (andreaziz.ufrpe@gmail.com) Francielle Santos (francielle.ufrpe@gmail.com) Noções de Internet

André Aziz (andreaziz.ufrpe@gmail.com) Francielle Santos (francielle.ufrpe@gmail.com) Noções de Internet André Aziz (andreaziz.ufrpe@gmail.com) Francielle Santos (francielle.ufrpe@gmail.com) Noções de Internet Noções de Internet: O que é Internet; História da Internet; Recursos da Internet; Serviços não-web.

Leia mais

Documento de Visão do Projeto

Documento de Visão do Projeto Documento de Visão do Projeto 1. Objetivo O propósito deste documento é coletar, analisar e definir as necessidades de alto-nível e características do projeto de software do Módulo Editor de Estruturas

Leia mais

Redes. Pablo Rodriguez de Almeida Gross

Redes. Pablo Rodriguez de Almeida Gross Redes Pablo Rodriguez de Almeida Gross Conceitos A seguir serão vistos conceitos básicos relacionados a redes de computadores. O que é uma rede? Uma rede é um conjunto de computadores interligados permitindo

Leia mais

SISTEMAS OPERACIONAIS LIVRES SERVICOS DE REDE LOCAL. Professor Carlos Muniz

SISTEMAS OPERACIONAIS LIVRES SERVICOS DE REDE LOCAL. Professor Carlos Muniz SISTEMAS OPERACIONAIS LIVRES SERVICOS DE REDE LOCAL Na internet, cada computador conectado à rede tem um endereço IP. Todos os endereços IPv4 possuem 32 bits. Os endereços IP são atribuídos à interface

Leia mais

Professor: Macêdo Firmino Disciplina: Redes de Computadores II

Professor: Macêdo Firmino Disciplina: Redes de Computadores II Professor: Macêdo Firmino Disciplina: Redes de Computadores II Na aula de hoje iremos conhecermos e relembrarmos duas ferramentas do Windows, chamadas de ipconfig e nslookup. Além disso, iremos discutirmos

Leia mais

CAPÍTULO 2. Este capítulo tratará :

CAPÍTULO 2. Este capítulo tratará : 1ª PARTE CAPÍTULO 2 Este capítulo tratará : 1. O que é necessário para se criar páginas para a Web. 2. A diferença entre páginas Web, Home Page e apresentação Web 3. Navegadores 4. O que é site, Host,

Leia mais

Autoria Web Apresentação e Visão Geral sobre a Web

Autoria Web Apresentação e Visão Geral sobre a Web Apresentação e Visão Geral sobre a Web Apresentação Thiago Miranda Email: mirandathiago@gmail.com Site: www.thiagomiranda.net Objetivos da Disciplina Conhecer os limites de atuação profissional em Web

Leia mais

Aula 1 - Introdução e configuração de ambiente de desenvolvimento

Aula 1 - Introdução e configuração de ambiente de desenvolvimento Aula 1 - Introdução e configuração de ambiente de desenvolvimento Olá, seja bem-vindo à primeira aula do curso para desenvolvedor de Android, neste curso você irá aprender a criar aplicativos para dispositivos

Leia mais

M a n u a l d o R e c u r s o Q m o n i t o r

M a n u a l d o R e c u r s o Q m o n i t o r M a n u a l d o R e c u r s o Q m o n i t o r i t i l advanced Todos os direitos reservados à Constat. Uso autorizado mediante licenciamento Qualitor Porto Alegre RS Av. Ceará, 1652 São João 90240-512

Leia mais

1.264 Lição 11. Fundamentos da Web

1.264 Lição 11. Fundamentos da Web 1.264 Lição 11 Fundamentos da Web Navegadores e servidores da Web A Internet é apenas um conjunto de redes interconectadas livremente. Um conjunto de redes de área local conectado via redes de área ampla

Leia mais

Programação e Designer para WEB

Programação e Designer para WEB Programação e Designer para WEB Introdução Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Apresentação Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Ementa Introdução a hipertexto. A linguagem HTML.

Leia mais

Cliente/Servidor. Conceitos Gerais. Graça Bressan. Graça Bressan/LARC 2000 1

Cliente/Servidor. Conceitos Gerais. Graça Bressan. Graça Bressan/LARC 2000 1 Cliente/Servidor Conceitos Gerais Graça Bressan Graça Bressan/LARC 2000 1 Forças de marketing que conduzem à arquitetura cliente/servidor "Cliente/Servidor é um movimento irresistível que está reformulando

Leia mais

UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS

UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS Edi Carlos Siniciato ¹, William Magalhães¹ ¹ Universidade Paranaense (Unipar) Paranavaí PR Brasil edysiniciato@gmail.com,

Leia mais

Informática I. Aula 22. http://www.ic.uff.br/~bianca/informatica1/ Aula 22-03/07/06 1

Informática I. Aula 22. http://www.ic.uff.br/~bianca/informatica1/ Aula 22-03/07/06 1 Informática I Aula 22 http://www.ic.uff.br/~bianca/informatica1/ Aula 22-03/07/06 1 Critério de Correção do Trabalho 1 Organização: 2,0 O trabalho está bem organizado e tem uma coerência lógica. Termos

Leia mais

Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br

Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br 1. Abordagem geral Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br Em primeiro plano, deve-se escolher com qual banco de dados iremos trabalhar. Cada banco possui suas vantagens,

Leia mais

Sérgio Cabrera Professor Informática 1

Sérgio Cabrera Professor Informática 1 1. A tecnologia que utiliza uma rede pública, como a Internet, em substituição às linhas privadas para implementar redes corporativas é denominada. (A) VPN. (B) LAN. (C) 1OBaseT. (D) 1OBase2. (E) 100BaseT.

Leia mais

Introdução. Ciência da Computação DESENVOLVIMENTO DE APLICAÇÕES PARA WEB. Claudinei Dias email: prof.claudinei.dias@gmail.com

Introdução. Ciência da Computação DESENVOLVIMENTO DE APLICAÇÕES PARA WEB. Claudinei Dias email: prof.claudinei.dias@gmail.com Ciência da Computação DESENVOLVIMENTO DE APLICAÇÕES PARA WEB Introdução Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com INTERNET Criada a ARPANET em 1970 com a finalidade de conectar departamentos

Leia mais

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO ESCOLA DE ENGENHARIA DEPARTAMENTO DE ELETRÔNICA. Sistema de Gerenciamento Eletrônico de Documentos

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO ESCOLA DE ENGENHARIA DEPARTAMENTO DE ELETRÔNICA. Sistema de Gerenciamento Eletrônico de Documentos UNIVERSIDADE FEDERAL DO RIO DE JANEIRO ESCOLA DE ENGENHARIA DEPARTAMENTO DE ELETRÔNICA Sistema de Gerenciamento Eletrônico de Documentos Autor: Evandro Bastos Tavares Orientador: Antônio Claudio Gomez

Leia mais

Programação e Designer para WEB

Programação e Designer para WEB Programação e Designer para WEB Introdução Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Apresentação Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Ementa I t d ã hi t t Introdução a hipertexto. A

Leia mais

XDR. Solução para Big Data.

XDR. Solução para Big Data. XDR Solução para Big Data. ObJetivo Principal O volume de informações com os quais as empresas de telecomunicações/internet têm que lidar é muito grande, e está em constante crescimento devido à franca

Leia mais

SISTEMA DE GERENCIAMENTO E CONTROLE DE DOCUMENTOS DE TCC E ESTÁGIO

SISTEMA DE GERENCIAMENTO E CONTROLE DE DOCUMENTOS DE TCC E ESTÁGIO SISTEMA DE GERENCIAMENTO E CONTROLE DE DOCUMENTOS DE TCC E ESTÁGIO Marcelo Karpinski Brambila 1, Luiz Gustavo Galves Mahlmann 2 1 Acadêmico do Curso de Sistemas de Informação da ULBRA Guaíba < mkbrambila@terra.com.br

Leia mais

UNIVERSIDADE FEDERAL DE SANTA CATARINA. Informatização de farmácias publicas utilizando software livre.

UNIVERSIDADE FEDERAL DE SANTA CATARINA. Informatização de farmácias publicas utilizando software livre. UNIVERSIDADE FEDERAL DE SANTA CATARINA Informatização de farmácias publicas utilizando software livre. MURILO NUNES ELIAS FLORIANÓPOLIS SC 2007/2 UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE

Leia mais

efagundes com Como funciona a Internet

efagundes com Como funciona a Internet Como funciona a Internet Eduardo Mayer Fagundes 1 Introdução à Internet A Internet é uma rede de computadores mundial que adota um padrão aberto de comunicação, com acesso ilimitado de pessoas, empresas

Leia mais

Instalando o IIS 7 no Windows Server 2008

Instalando o IIS 7 no Windows Server 2008 Goiânia, 16/09/2013 Aluno: Rafael Vitor Prof. Kelly Instalando o IIS 7 no Windows Server 2008 Objetivo Esse tutorial tem como objetivo demonstrar como instalar e configurar o IIS 7.0 no Windows Server

Leia mais

Instalando o IIS 7 no Windows Server 2008

Instalando o IIS 7 no Windows Server 2008 Goiânia, 16/09/2013 Aluno: Rafael Vitor Prof. Kelly Instalando o IIS 7 no Windows Server 2008 Objetivo Esse tutorial tem como objetivo demonstrar como instalar e configurar o IIS 7.0 no Windows Server

Leia mais

Manual de Utilização

Manual de Utilização Se ainda tiver dúvidas entre em contato com a equipe de atendimento: Por telefone: 0800 642 3090 Por e-mail atendimento@oisolucoespraempresas.com.br Introdução... 3 1. O que é o programa Oi Backup Empresarial?...

Leia mais

1. AULA 1 - INTRODUÇÃO À REDES DE COMPUTADORES

1. AULA 1 - INTRODUÇÃO À REDES DE COMPUTADORES 1. AULA 1 - INTRODUÇÃO À REDES DE COMPUTADORES Objetivos da Aula Aprender os conceitos básicos para compreensão das próximas aulas. Na maioria dos casos, os conceitos apresentados serão revistos com maior

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 13 Web Services Web Services

Leia mais

Redes de Computadores LFG TI

Redes de Computadores LFG TI Redes de Computadores LFG TI Prof. Bruno Guilhen Camada de Aplicação Fundamentos Fundamentos Trata os detalhes específicos de cada tipo de aplicação. Mensagens trocadas por cada tipo de aplicação definem

Leia mais

Arquitetura de Redes. Sistemas Operacionais de Rede. Protocolos de Rede. Sistemas Distribuídos

Arquitetura de Redes. Sistemas Operacionais de Rede. Protocolos de Rede. Sistemas Distribuídos Arquitetura de Redes Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Sistemas Operacionais de Rede NOS Network Operating Systems Sistemas operacionais que trazem recursos para a intercomunicação

Leia mais

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS Pablo dos Santos Alves Alexander Roberto Valdameri - Orientador Roteiro da apresentação Introdução Objetivos Motivação Revisão bibliográfica

Leia mais

ATA - Exercícios Informática Carlos Viana. 2012 Copyright. Curso Agora eu Passo - Todos os direitos reservados ao autor.

ATA - Exercícios Informática Carlos Viana. 2012 Copyright. Curso Agora eu Passo - Todos os direitos reservados ao autor. ATA - Exercícios Informática Carlos Viana 2012 Copyright. Curso Agora eu Passo - Todos os direitos reservados ao autor. ATA EXERCÍCIOS CARLOS VIANA 01 -Existem vários tipos de vírus de computadores, dentre

Leia mais

milenaresende@fimes.edu.br

milenaresende@fimes.edu.br Fundação Integrada Municipal de Ensino Superior Sistemas de Informação A Internet, Intranets e Extranets milenaresende@fimes.edu.br Uso e funcionamento da Internet Os dados da pesquisa de TIC reforçam

Leia mais

REDES DE COMPUTADORES. Prof. Evandro Cantú

REDES DE COMPUTADORES. Prof. Evandro Cantú REDES DE COMPUTADORES Prof. Evandro Cantú Prof. Evandro Cantú, evandro.cantu@ifpr.edu.br Slides adaptados de J. Kurose & K. Ross 2 Curso de Capacitação Intelbras Redes Computadores Maio 2007 Camada de

Leia mais

Vamos iniciar a nossa exploração do HTTP baixando um arquivo em HTML simples - bastante pequeno, que não contém objetos incluídos.

Vamos iniciar a nossa exploração do HTTP baixando um arquivo em HTML simples - bastante pequeno, que não contém objetos incluídos. Wireshark Lab: HTTP Versão 1.1 2005 KUROSE, J.F & ROSS, K. W. Todos os direitos reservados 2008 BATISTA, O. M. N. Tradução e adaptação para Wireshark. Tendo molhado os nossos pés com o Wireshark no laboratório

Leia mais

REDES DE COMPUTADORES

REDES DE COMPUTADORES REDES DE COMPUTADORES O QUE É PROTOCOLO? Na comunicação de dados e na interligação em rede, protocolo é um padrão que especifica o formato de dados e as regras a serem seguidas. Sem protocolos, uma rede

Leia mais

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Prof. MSc. Hugo Souza Iniciando nossas aulas sobre

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Estilos Arquitetônicos e Arquitetura Cliente/Servidor

Sistemas Distribuídos: Conceitos e Projeto Estilos Arquitetônicos e Arquitetura Cliente/Servidor Sistemas Distribuídos: Conceitos e Projeto Estilos Arquitetônicos e Arquitetura Cliente/Servidor Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática /

Leia mais

Este livro é dedicado a minha esposa Edna e a todos os desenvolvedores que fizeram do software livre um meio profissional levado a sério.

Este livro é dedicado a minha esposa Edna e a todos os desenvolvedores que fizeram do software livre um meio profissional levado a sério. EDSON GONÇALVES Este livro é dedicado a minha esposa Edna e a todos os desenvolvedores que fizeram do software livre um meio profissional levado a sério. AGRADECIMENTOS Primeiramente gostaria de agradecer

Leia mais

Versão 1.0 Janeiro de 2011. Xerox Phaser 3635MFP Plataforma de interface extensível

Versão 1.0 Janeiro de 2011. Xerox Phaser 3635MFP Plataforma de interface extensível Versão 1.0 Janeiro de 2011 Xerox Phaser 3635MFP 2011 Xerox Corporation. XEROX e XEROX e Design são marcas da Xerox Corporation nos Estados Unidos e/ou em outros países. São feitas alterações periodicamente

Leia mais

Redes - Internet. Sumário 26-09-2008. Aula 3,4 e 5 9º C 2008 09 24. } Estrutura baseada em camadas. } Endereços IP. } DNS -Domain Name System

Redes - Internet. Sumário 26-09-2008. Aula 3,4 e 5 9º C 2008 09 24. } Estrutura baseada em camadas. } Endereços IP. } DNS -Domain Name System Redes - Internet 9º C 2008 09 24 Sumário } Estrutura baseada em camadas } Endereços IP } DNS -Domain Name System } Serviços, os Servidores e os Clientes } Informação Distribuída } Principais Serviços da

Leia mais

Protocolo HTTP. Palavras-chave: Navegador, aplicativos, web, cliente, servidor.

Protocolo HTTP. Palavras-chave: Navegador, aplicativos, web, cliente, servidor. 1 Protocolo HTTP RODRIGO PREIS BEOCK, Leandro 1 ; DE FREITAS CONSONE, Cibele 2 ; RODRIGUES LIMA, Leandro 3 ; PETRICA, Eder 4 UNIVERSIDADE DO ESTADO DE MATO GROSSO/UNEMAT - COLÍDER 5 RESUMO: O presente

Leia mais