Você está na página 1de 56

CENTRO FEDERAL DE EDUCAO TECNOLGICA DA PARABA Coordenao do Curso Superior de Tecnologia em Sistemas para Internet

RELATRIO FINAL DE ESTGIO


UniuolExtranet: Migrao do sistema acadmico para verso web

Lucas Cavalcanti Cruz

Joo Pessoa PB Julho/2008

Centro Federal de Educao Tecnolgica da Paraba - CEFETPB Coordenao do Curso Superior de Tecnologia em Sistemas para Internet

UniuolExtranet: Migrao do sistema acadmico para verso web

Lucas Cavalcanti Cruz


Relatrio apresentado de Estgio Supervisionado Estgio

disciplina

Supervisionado da Coordenao do Curso Superior em Sistemas para Internet do Centro Federal de Educao Tecnolgica da Paraba como requisito parcial para obteno do grau de Tecnlogo em Sistemas para Internet.

Orientador: Prof. MSc. Frederico Costa Guedes Pereira Supervisora: Izabel Medeiros de Moraes Coordenadora do Curso de Sistemas para Internet: Crishane Azevedo Freire Presidente da CESUT: Crishane Azevedo Freire Empresa: Uniuol Faculdades Perodo: 07/05/2007 a 07/08/2007

Joo Pessoa 2008

RESUMO
O estgio foi desenvolvido na Uniuol Faculdades e consistiu no trabalho de atualizao, modificao, e correo do sistema acadmico da faculdade, UniuolExtranet, no qual alunos, professores e funcionrios tm acesso a mdulos com funes especficas para cada um. O sistema tem como objetivo auxiliar alunos a consultar informaes pessoais, fazer matrculas, visualizar notas, consultar o sistema de biblioteca e fazer download de materiais disponibilizados pelos professores. Os professores podem disponibilizar materiais de estudo para os alunos, publicar notas e organizar o horrio das aulas, dentre outras opes. Os demais funcionrios tm acesso a recursos mais especficos, de acordo com suas funes, desde gerncia at questes burocrticas da faculdade como matrculas e opes administrativas. O sistema foi desenvolvido considerando as necessidades desses usurios como prioridade, tornando-o no s um sistema funcional, mas que fosse til e de fcil manipulao. Para esse trabalho foi utilizada a linguagem Java, juntamente com o framework Hibernate e outras tecnologias como Ajax e o SGBD PostgreSQL.

ABSTRACT
The internship was developed at Uniuol Faculdades and consisted on performing actualization, modification and correction of the universitys academic system, UniuolExtranet, which students, professors and employees have access to modules with specific functions to each one of them. The aim of the system is to help students check personal information, register, look up grades, search the library system and perform the download of materials provided by the professors. Professors may provide study materials for the students, publish grades, display class information and organize schedules among other options. Other employees have access to more specific resources according to their jobs, from management to bureaucratic university questions such as registering and administrative options. The system was developed considering the needs of these users as priority, making it not only a functional system, but also one that could be useful and easy to use. In order to complete this work, Java language was used, along with the Hibernate framework and other technologies like Ajax, and PostgreSQL DBMS.

S a f explica o que a razo limita. (Lucas Cruz)

AGRADECIMENTOS
Agradeo a todos da equipe do colgio GEO, na pessoa do Professor Alfredo Codevilla, por estarem presentes em minha vida durante cinco anos, me formando e me dando a base do conhecimento que me permitiu chegar ao CEFET-PB e a galgar sonhos mais altos. Agradeo a todos que formam a Uniuol, em nome de Marilson Dantas, por terem me dado a oportunidade do estgio, em especial a Paulo Csar Abrantes e Rodrigo Fujioka, por me acolherem na equipe de programao e por trocarem experincias junto comigo. Agradeo a todos que fazem parte do CEFET-PB, em especial aos professores da COINFO por terem se dedicado e me ensinado bastante do que sei e sou hoje em termos acadmicos. Ao professor orientador MSc. Frederico Costa Guedes Pereira, no s pelos trs anos de curso aos quais se dedicou em nos ensinar muito alm da sala de aula com conhecimentos tcnicos, mas por transmitir valores pessoais e profissionais que carregarei comigo eternamente. Agradeo a todos os colegas e amigos do curso, principalmente ngelo Duarte e Osmar Nilo, por estarem comigo na mesma equipe nos trabalho durante o curso, desde o primeiro perodo, passando noites em claro, preocupados em me ajudar e crescer comigo. Ao meu primo Gustavo Cavalcanti por colaborar com minha formao, ensinando e ajudando, at neste relatrio. Aos amigos Bianca Carolina, Gregrio Enrico, Lucas Vieira, Rosberg Linhares e Ugo Cavalcanti pelo carinho, amizade e suporte durante todo o curso. queles que por algum motivo no conseguiram concluir o curso conosco: Arthur, Betoween, Claudiana, Danilo, Edno, Edson, rika, Evgoras, Gutemberg, Jacqueline, JJJ, Jonathan, Julyana, Mrcio, Rafael, Thiago, Vlber, Victor, Vitor e Wibys. E toda turma Abre Aspas: Ana Cludia, Andreza, Deijiane, Diego Caetano, Diego Jnio, Francisco, Igor, Joo Carlos, Kelly, Tiago e Viviane pela caminhada durante esses anos, por torcerem e se alegrarem a cada conquista realizada. Agradeo aos meus amigos de infncia que sempre apostaram no meu potencial e me deram nimo para concluir o curso: Andr Clementino, Bruno Carvalho, Danilo Leite, Davi Veloso, Diego Augusto, Glnio Leito, Joo Paulo Rodrigues, Lincoln Pontes, Paulo Henrique Cavalcanti, Rafael Targino, Rafael Ucha e Rodrigo Godoy. Agradeo a todos meus amigos da Pastoral da Crisma e do EJC por sempre estarem ao meu lado, principalmente nos momentos de desespero mostrando-me atravs da palavra de DEUS que tudo d certo no final. Agradeo Ana Luza Medeiros, amiga de todas as horas, que sempre esteve torcendo por mim e dizendo que eu iria conseguir. 6

Agradeo Thaynan Lacerda, minha afilhada, simplesmente por existir em minha vida. Agradeo Manuella Silva, minha namorada, pela ajuda, carinho e amor, que s me do foras para eu ter a coragem de continuar buscando meus objetivos. Agradeo minha famlia, tios, tias, primos, primas, avs e avs, por tudo que fizeram por mim, pela confiana depositada, pelo amor sem medidas, por serem famlia. Agradeo minha prima Deborah e meu primo Jason, pelo colaborao na elaborao e reviso no ingls do ABSTRACT. Agradeo minha irm Bartyra e ao meu cunhado Raphael, por estarem, mesmo que de longe, sempre torcendo por mim e me ajudando em tudo quanto possvel. Ao meu sobrinho Samuel por ter chegado sempre trazendo alegria. Agradeo minha irm Natlia e ao meu cunhado Lucas, por todo apoio, por agentarem os momentos de stress e por apostarem na minha capacidade. Agradeo a Marclio, meu pai, por todos os momentos em que esteve ao meu lado, por todo apoio, por todas as vezes que me buscou ou levou ao CEFET-PB, sempre dando tudo de si para eu concluir esse curso. Agradeo a Ftima, minha me, por todas as vezes que cuidou de mim, por tantas noites em claro ao meu lado, preocupada se eu j havia comido enquanto fazia os trabalhos, por todo o amor e carinho que jamais poderei retribuir. Agradeo a todos que de alguma forma passaram por minha vida, antes ou durante o curso e que deixaram um pouco de si para a minha formao, fazendo com que eu seja o que sou hoje, quer seja atravs de uma palavra, um ombro amigo ou um sorriso. Agradeo da forma mais especial possvel, a DEUS, no qual tenho a certeza que sempre poderei contar e me apoiar, dando-me foras para eu no desistir, levantar a cabea e continuar a caminhada.

LISTA DE FIGURAS
Figura 1: Arquitetura Cliente/Servidor ........................................................................................................ 14 Figura 2: Arquitetura fsica de uma aplicao web ..................................................................................... 15 Figura 3: Plataformas Java.............................................................................................................................. 18 Figura 4: Plataforma J2ME ............................................................................................................................ 18 Figura 5: Plataforma J2SE [Cavalcanti07] .................................................................................................... 19 Figura 6: Plataforma J2EE ............................................................................................................................. 20 Figura 7: Ciclo de vida de um Servlet ........................................................................................................... 21 Figura 8: Ciclo de vida de um documento JSP ........................................................................................... 23 Figura 9: Funcionamento do Hibernate ....................................................................................................... 26 Figura 10: Modelo de aplicao com Ajax ................................................................................................... 30 Figura 11: Arquitetura de um SGBD ........................................................................................................... 31 Figura 12: Funcionamento de um container web ....................................................................................... 34 Figura 13: Modelo MVC ................................................................................................................................ 37 Figura 14: Login............................................................................................................................................... 38 Figura 15: Fluxo de aes............................................................................................................................... 39 Figura 16: Portal Uniuol ................................................................................................................................. 40 Figura 17: Diagrama de caso de uso do mdulo Biblioteca ...................................................................... 41 Figura 18: Tela inicial (BibSis) ....................................................................................................................... 42 Figura 19: Diagrama de caso de uso do mdulo Aluno ............................................................................ 43 Figura 20: Tela Inicial (mdulo Aluno) ........................................................................................................ 44 Figura 21: "Carregando..." .............................................................................................................................. 45 Figura 22: Modificar senha............................................................................................................................. 46 Figura 23: Gerenciar disciplinas .................................................................................................................... 46 Figura 24: Informaes de uma aula ............................................................................................................ 47 Figura 25: Diagrama de caso de uso do mdulo Professor ...................................................................... 48 Figura 26: Upload de arquivo ........................................................................................................................ 49

SUMRIO

RESUMO ................................................................................................................................ 3 ABSTRACT .............................................................................................................................. 4 AGRADECIMENTOS ................................................................................................................ 6 LISTA DE FIGURAS .................................................................................................................. 8 SUMRIO .............................................................................................................................. 9 1 Introduo ................................................................................................................... 11
1.1 1.2 1.3 1.4 1.5 1.6 Objetivo Geral ................................................................................................................. 11 Objetivos Especficos ....................................................................................................... 11 Ambiente do estgio: Uniuol ........................................................................................... 12 Descrio Geral do Estgio............................................................................................... 12 Descrio Geral das Atividades ........................................................................................ 12 Organizao do Relatrio ................................................................................................ 13

Embasamento Terico .................................................................................................. 14


2.1 2.2 2.3 Arquitetura Cliente/Servidor ........................................................................................... 14 Aplicaes Web ............................................................................................................... 15 Java ................................................................................................................................ 16

2.3.1 J2ME ........................................................................................................................................................ 18 2.3.2 J2SE .......................................................................................................................................................... 19 2.3.3 J2EE.......................................................................................................................................................... 19

2.4

Java para aplicaes Web ................................................................................................ 20

2.4.1 Servlets ..................................................................................................................................................... 21 2.4.2 JSP ............................................................................................................................................................ 22 2.4.3 Expression Language (EL) ....................................................................................................................... 25

2.5 2.6 2.7 2.8 2.9 2.10

Hibernate........................................................................................................................ 25 Javascript ........................................................................................................................ 27 CSS ................................................................................................................................. 28 Ajax ................................................................................................................................ 29 SGBD .............................................................................................................................. 31 Servidores Web ............................................................................................................... 32

2.9.1 PostgreSQL............................................................................................................................................... 32 2.10.1 Tomcat .................................................................................................................................................... 33

Atividades de Estgio ................................................................................................... 35


3.1 3.2 3.3 3.4 Portal Uniuol ................................................................................................................... 36 Mdulo Biblioteca (BibSis) ............................................................................................... 40 Mdulo Aluno ................................................................................................................. 42 Mdulo Professor............................................................................................................ 47

Concluso..................................................................................................................... 51

Referncias .......................................................................................................................... 52 Referncias sugeridas .......................................................................................................... 53

10

1 Introduo
As atividades desenvolvidas pelo estagirio Lucas Cavalcanti Cruz na empresa Uniuol Faculdades esto descritas neste relatrio. O estgio teve como objetivo a adequao do sistema web, UniuolExtranet, para melhor atender s necessidades da empresa atravs da concluso da migrao do antigo sistema desenvolvido com tecnologia PHP, para uma tecnologia em amplo desenvolvimento mundialmente e lder no mercado atual: Java. Para o desenvolvimento do UniuolExtranet fez-se necessrio o uso de: JSP, Servlets, IDEs, SGBDs, Javascript, Ajax e o framework Hibernate. Essas tecnologias j eram utilizadas na empresa. Isso mostra que o profissional precisa ser flexvel para se adaptar s normas da empresa, tendo que, muitas vezes, aprender e utilizar tecnologias desconhecidas por ele. O curso do CEFET-PB foi, ento, de uma importncia inestimvel, no qual o aluno teve a oportunidade de aprender a trabalhar com muitas dessas tecnologias e, acima de tudo, servir de base para que pudesse aprender outras novas. Sero apresentadas, de forma sucinta neste captulo, algumas consideraes sobre o presente relatrio e o estgio. Informaes sobre os detalhes que envolveram a experincia adquirida durante o perodo de estgio e as atividades desenvolvidas para a concluso da migrao sero apresentadas ao longo do relatrio e detalham os aspectos considerados durante as atividades de anlise, projeto, teste e implementao do sistema.

1.1

Objetivo Geral

Concluir a migrao do software utilizado na empresa para gerncia e controle das funes acadmicas e financeiras da instituio.

1.2

Objetivos Especficos

Concluir a migrao do antigo sistema de gerncia da faculdade, da linguagem PHP para Java, e acrescentar ao novo sistema funcionalidades e recursos para adapt-lo nova realidade e necessidades da empresa. Atravs da migrao de dados, anlise com usurios, testes e a implementao do novo sistema em Java. Tendo em vista a grande necessidade por parte dos alunos de utilizarem o sistema essa migrao deveria ser concluda o mais rpido possvel e, principalmente, proporcionar um resultado confivel.

11

1.3

Ambiente do estgio: Uniuol

A Uniuol nasceu como parte de um projeto educacional focado no desenvolvimento de conhecimento na rea de gesto e empreendedorismo com o objetivo de formar profissionais capazes de se inserirem nas organizaes, contribuindo para o seu crescimento e desenvolvimento. Dentro de seu projeto educacional, a Uniuol preocupa-se em oferecer aos seus alunos conhecimentos atualizados, sem se esquecer de oferecer conhecimentos basilares que possam lev-los a ter a capacidade de aprender e apreender, formando um profissional preparado para as mudanas do atual ambiente empresarial, que se apresenta de forma veloz, levando as organizaes a reagirem cada vez mais rpido a estas mudanas. Dentro deste cenrio, a faculdade oferece na Paraba cursos superiores, voltados formao de profissionais que possam ocupar os cargos de gerncia nas mais diversas instituies.

1.4

Descrio Geral do Estgio

As atividades do estgio foram realizadas na Uniuol Faculdades, durante o perodo de 07 de maio de 2007 at 07 de agosto de 2007, com carga horria de 40 horas semanais. O estgio foi supervisionado por Izabel Medeiros, tendo como diretor Marilson Dantas. A equipe de desenvolvimento consistia de trs estagirios, Lucas Cavalcanti Cruz, Rodrigo Fujioka, e Paulo Csar Abrantes, sendo o ltimo o que estava a mais tempo na empresa e conhecia de forma mais detalhada os processos de desenvolvimento e organizao, portanto, o lder da equipe.

1.5

Descrio Geral das Atividades

Durante o perodo do estgio foram desenvolvidas diversas atividades relacionadas ao desenvolvimento de um sistema web, utilizando, principalmente, linguagem Java. As atividades concentraram-se no desenvolvimento do UniuolExtranet:

Anlise do projeto existente. Codificao. Gerncia de banco de dados. Implementao e testes das solues. 12

Disponibilizao do sistema na web.

Dentro dessas atividades pode-se ainda ressaltar a parte de anlise do projeto existente como uma das mais importantes e que foi mais difcil, pois o desenvolvimento do sistema j estava iniciado, com algumas funes implementadas, apesar de alguns erros. Foi necessria uma anlise ampla e detalhada de todo o projeto e dos requisitos que seriam adicionados. A parte de testes tambm foi bastante importante porque apesar da utilizao de mais de um browser e sistema operacional para fazer os testes, existem alguns pontos que no so possveis de serem testados, somente com o usurio no dia a dia.

1.6

Organizao do Relatrio

Este relatrio est divido em quatro captulos principais, a saber:

Captulo 1: Introduo - Apresenta uma viso geral do estgio e da empresa, e resume as principais tarefas desenvolvidas; Captulo 2: Fundamentao Terica - Apresenta de forma detalhada as tecnologias e ferramentas utilizadas; Captulo 3: Atividades desenvolvidas - Apresenta de forma mais detalhada as atividades desenvolvidas; Captulo 4: Concluso - Apresenta as concluses obtidas ao final do perodo de estgio.

13

2 Embasamento Terico
Esta seo apresenta os tipos de arquitetura e as tecnologias que foram empregadas para o desenvolvimento da aplicao. Detalha cada uma delas de forma objetiva para fundamentar todo o trabalho prtico desenvolvido.

2.1

Arquitetura Cliente/Servidor

um sistema de computao que utiliza trs componentes bsicos para compartilhamento de recursos: um computador cliente, um computador servidor e uma rede para conect-los. Nessa arquitetura, a interface do usurio executada em uma estao denominada cliente, a qual responsvel pela obteno dos dados, enquanto a outra parte, a que garante o acesso e manuteno dos dados, feita em outros locais que so denominados servidores (de dados, de arquivos, de e-mail, etc.) [Umar97]. A figura 1 ilustra esse tipo de arquitetura.

Figura 1: Arquitetura Cliente/Servidor

Existem duas maneiras de se estabelecer a comunicao entre o cliente e o servidor: orientada conexo ou no orientada. Para isso so utilizados os protocolos da camada de transporte. O TCP um protocolo orientado conexo no qual cliente e servidor trocam mensagens e o cliente quem finaliza a sesso. O UDP um protocolo no orientado conexo e o cliente envia um pacote UDP para o servidor que responde sem estabelecer uma conexo permanente [Tanenbaum97]. Assim, o usurio no fica limitado a um nico tipo de sistema operacional, pois cliente e servidor se comunicam independente disso. H uma diminuio do trfego da rede, porque o servidor envia somente a informao solicitada. Esse tipo de arquitetura tem diversas aplicaes: internet, intranet, servidores de arquivos, servidores de fax, enfim, sistemas servidores de informaes. 14

2.2

Aplicaes Web

O trabalho de desenvolvimento de aplicaes para web modifica uma srie de conceitos os quais estamos acostumados a lidar cotidianamente, como os relacionados a aplicaes desktop. A aplicao web executada num ambiente distribudo, onde cada parte que compe o programa est localizada em uma mquina diferente. A figura 2 ilustra a disposio fsica de uma aplicao web.

Figura 2: Arquitetura fsica de uma aplicao web

Do ponto de vista do usurio, a web funciona como um grande repositrio de informaes relacionadas entre si atravs de hiperlinks existentes em cada documento. Para disponibilizar essas informaes, a web utiliza intensamente a arquitetura cliente/servidor [Hunter02]. Aplicao Web uma aplicao acessada atravs da internet ou de redes privadas (intranet) com o uso de aplicativos especficos: Browsers (navegadores). uma forma de permitir o acesso s informaes e servios via web [Silberschatz99]. Para essas aplicaes, a comunicao entre cliente e servidor feita atravs do protocolo HTTP. O cliente envia uma solicitao HTTP, o servidor processa a solicitao e responde com o contedo solicitado. Com as antigas aplicaes eram necessrias distribuio ou instalao de softwares nos computadores clientes, o que consumia muito tempo, diminua a produtividade e aumentava os custos. As aplicaes web destacam-se por serem multi-plataformas nas quais, alteraes nos servidores sero vistas automaticamente nos prximos acessos aplicao.

15

Atualmente, existem tecnologias como Java, Flash, Javascript, DHTML e outras que podem proporcionar ao cliente uma experincia bastante rica, com recursos como som e vdeo, e interativa com funes dragndrop e pginas que no precisam ser recarregadas [Newman97]. Algumas dessas tecnologias requerem o uso de pluggins, que permitem funcionalidades extras aos browsers, no caso da utilizao para internet.

2.3

Java

Java surge a partir de um projeto conhecido como Green Project, liderado por Patrick Naughton, Mike Sheridan e James Gosling. Em 1992 foi lanado um prottipo de controle remoto com interface grfica touchscreen: * 7 (Star Seven), junto com um mascote, o Duke, cujo trabalho era ajudar como guia virtual a utilizar o aparelho. A linguagem utilizada para esse novo equipamento foi batizada de Oak [Deitel03]. Em 1995, Gosling adaptou o Oak para internet e em janeiro daquele ano a nova verso ficou conhecida como Java. Esta tecnologia deveria ser executada em ambientes e dispositivos heterogneos, a exemplo da internet. A idia era rodar aplicaes dentro dos browsers atravs de uso de Applets e ento esse dinamismo foi expandido a partir dos antigos HTML estticos [Farley98]. Em maio de 1995 houve um boom da plataforma Java, que foi adotada mais rapidamente que qualquer outra linguagem de programao na histria da computao. Em 2003 atingiu a marca dos quatro milhes de desenvolvedores em todo o mundo. Atualmente utilizada por grandes empresas, e seus limites j ultrapassam a internet, com uso em mainframes, sistemas operacionais, celulares, palmtops, dentre outros [Newman97]. Com o slogan Write Once, Run Everywhere (Escreva uma vez, execute em qualquer lugar) Java tenta uma novidade: ser uma linguagem portvel e executar independente da plataforma ou sistema operacional [Thomas97]. Java tambm apresenta algumas caractersticas que a ajudaram no desafio de ser uma linguagem de alto nvel e alcanar sucesso entre os desenvolvedores:

Baseada em linguagens pr-existentes como Smaltalk e Simula67, utiliza o paradigma de programao Orientao a Objetos: modelo de desenvolvimento de softwares baseado em composio de unidades, objetos, criados a partir de classes, que atuam interagindo entre si [Newman97];

16

Possui uma sintaxe muito semelhante s linguagens C/C++, isso possibilita desenvolvedores migrarem dessas linguagens para Java com uma curva de aprendizagem muito pequena [Thomas97];

Formou-se uma das maiores comunidades de desenvolvimento existentes at ento, na qual as pessoas participam assessorando-se e opinando sobre novas especificaes para a linguagem e tambm criando novas APIs;

Java Virtual Machine (Mquina Virtual Java): permite a to sonhada portabilidade [Thomas97]; Java Garbage Collector (Coletor de Lixo Java): auxilia o programador em relao desalocao de memria para objetos [Linden96]; Vasta API, com funes para executar quase todos os tipos de operaes desejadas pelo programador. Inclusive recursos de rede, o que facilita a programao para os protocolos TCP/IP, HTTP e FTP. Alm de vrias rotinas de segurana para executar de restries [Horstmann01];

Facilita o desenvolvimento do modelo MVC [Basham05]; Servidores web implementam vrias especificaes J2EE: JSP, Servlets, EJB, Web Services, JNDI, Java Server Faces, etc [Monson-Haefel01]; Enterprise JavaBean (EJB): especificao Java da plataforma J2EE, para aplicaes complexas. Trata da persistncia, integridade de transao, segurana, chamadas remotas, etc [Monson-Haefel01].

Atualmente Java distribuda em trs plataformas. A figura 3 ilustra estas plataformas:

17

Figura 3: Plataformas Java

As plataformas sero detalhadas a seguir.

2.3.1 J2ME

Java 2 Mobile Edition (J2ME) a plataforma Java para desenvolvimento em dispositivos mveis com limitaes de memria ou processamento. Com o aumento da demanda desses dispositivos a plataforma cada vez mais desenvolvida e pesquisada, tanto em meio acadmico quanto profissional. Possui APIs bem simples e leves, para economizar os poucos recursos disponveis. So utilizadas para sistemas em celulares, palmtops, pocket pcs, smartphones, javacards e demais dispositivos [Cavalcanti07]. A figura 4 mostra a arquitetura desta plataforma.

Figura 4: Plataforma J2ME

18

2.3.2 J2SE

Java 2 Standard Edition (J2SE) a plataforma Java para desenvolvimento em computadores pessoais, notebooks e arquiteturas com poder de processamento e memria considerveis. Contm todo o ambiente necessrio para desenvolvimento e execuo de aplicaes Java: Compilador, Mquina Virtual, vrias APIs acompanham esta verso e tantas outras podem ser baixadas opcionalmente no site da Sun (http://www.sun.com). com ela que a maioria das aplicaes construda e executada [Cavalcanti07]. A figura 5 ilustra a arquitetura da plataforma J2SE e algumas de suas APIs padres.

Figura 5: Plataforma J2SE [Cavalcanti07]

2.3.3 J2EE

Java 2 Enterprise Edition (J2EE) a plataforma Java para desenvolvimento de aplicaes corporativas, multi-camadas, baseadas em componentes executados em servidores, que necessitam de robustez e segurana [Monson-Haefel01].

19

Essa plataforma voltada para esse tipo de aplicao por trazer uma API ampla, com funes para web, recursos de segurana, acesso a base de dados, RPC, dentre outros. Tornou-se um padro no desenvolvimento de aplicaes corporativas que necessitam de mais recursos. Contm, ainda, uma srie de especificaes com funcionalidades totalmente distintas entre si:

JDBC (Java Database Connectivity): utilizado no acesso a bancos de dados; Servlets: utilizados para o desenvolvimento de aplicaes web com contedo dinmico. Contm uma API que abstrai e disponibiliza recursos do servidor web de maneira simplificada para o programador;

JSP (JavaServer Pages): utilizado para o desenvolvimento do contedo dinmico.

A figura 6 apresenta alguns desses componentes em suas respectivas camadas.

Figura 6: Plataforma J2EE

2.4

Java para aplicaes Web

Java aparece mais fortemente no cenrio de desenvolvimento de aplicaes para web. No incio, introduziu pequenos aplicativos denominados Applets nas pginas HTML estticas, mas seu uso caiu drasticamente [Thomas97]. Nesse mesmo cenrio a plataforma J2EE traz uma srie de especificaes exclusivas para essa rea de desenvolvimento. Sendo os Servlets e JavaServer Pages (JSPs) as mais conhecidas e implementadas [Hunter02]. 20

Atualmente, existem diversos frameworks para desenvolvimento web em Java, a exemplo tem do JavaServer Faces, Webwork, Stru que implementam Servlets e JSPs para automatizar a Struts, produo, acrescentando importantes funcionalidades como converso e validao dos dados [Cavalcanti07].

2.4.1 Servlets

A API Java Servlet permite a criao de contedo dinmico para web na maioria das vezes HTML ou XML. Os servlets so classes Java capazes de estender recursos dos servidores de aplicaes acessadas atravs do modelo de programao request/response. Os servlets respondem a . quaisquer tipos de requisies, mas seu principal uso com servidores web, nesta situao os servlets definem classes especficas para o tratamento de requisies HTTP mantendo o estado das requisies utilizando cookies variveis de sesso ou URL rewriting [Sun0 cookies, [Sun08]. Os servlets tm como objetivo principal receber uma requisio do cliente, trat trat-la, gerar o resultado (pgina HTML, figuras, sons, etc.) e devolver a resposta. Com o uso d servlets, a gina resposta. dos arquitetura da web torna-se um base atrativa para o desenvolvimento de aplicaes distribudas se uma em Java integrando outros servios [Hall00]. A execuo e gerncia do ciclo de vida de um servlet feita por um Container Web. Esse container implementa especificaes J2EE que do suporte na segurana, concorrncia e ciclo de vida. No mercado podemos encontrar vrias distribuies desse tipo de container dentre os mais container, comuns temos o Apache Tomcat e o JBoss. A figura a seguir ilustra a ciclo de vida de um servlet atravs de um container web.

Figura 7: Ciclo de vida de um Servlet

21

Para esses recursos serem utilizados preciso que o container saiba como proceder e para isso existe um arquivo chamado Deployment Descriptor. Este arquivo, em formato XML, possui todas as configuraes necessrias para o correto funcionamento do container: como executar os servlets, JSPs, parmetros de iniciao e as regras de mapeamento de URLs e os nomes especficos de cada servlet da aplicao [Basham05]. A seguir mostrado um exemplo de cdigo de um servlet: servletformulario.java
import javax.servlet.*; import javaio.*; public class ServletGerarPaginaFormulario extends HttpServlet { public void service(HttpServletRequest request, ffHttpServletResponse response) throws ServletException, IOException { //recebe o writer PrintWriter writer = response.getWriter(); //escreve o texto writer.println(<html>); writer.println(<head><title>Formulrio Servlet</title></head>); writer.println(<body>); writer.println(<form action=formulario.jsp method=get>); writer.println(Nome:<input type=text name=nome><br>); writer.println(Telefone:<input type=text name=tel><br>); writer.println(Celular:<input type=text name=cel><br>); writer.println(Endereo:<input type=text name=end><br>); writer.println(<input type=submit value=Enviar>); writer.println(</form></body></html>); } }

O cdigo anterior gera um servlet que envia para o usurio uma pgina HTML com um formulrio.

2.4.2 JSP

JavaServer Pages (JSP) a tecnologia da Sun desenvolvida para suportar exibio e criao dinmica de pginas com contedo HTML, XML ou diversos outros tipos de documentos em resposta a uma requisio do usurio. Esta tecnologia permite a insero de cdigo Java em contedo esttico. A parte produzida dinamicamente vem inserida em 22

marcadores especiais dentro do cdigo HTML. JSP apresenta algumas vantagens sobre linguagens semelhantes como ASP e PHP por utilizar Java, que orientada a objetos, e por no estar vinculada a nenhum sistema operacional e possuir uma enorme API de desenvolvimento [Hall2000]. Alm disso, todo JSP ser transformado em um servlet, sendo possvel fazer com este tudo o que se faz com o outro [Basham05]. A figura 8 ilustra a situao do ciclo de vida de um documento JSP, o qual transformado em um servlet.

Figura 8: Ciclo de vida de um documento JSP

JSP possui uma sintaxe prpria, com alguns elementos [Hall00]:

Elementos de scripting: permitem a insero de cdigo Java que far parte no servlet produzido no servidor; Diretivas: permitem o controle geral do servlet criado a partir do JSP; Aes: permitem especificar elementos JavaBeam a serem utilizados no servlet.

O conjunto de aes pr-definidas que acompanha a especificao JSP pode ser estendido para se adaptar a cada situao. Tags personalizadas so criadas com o uso da JSP Tag Extension API, para serem aplicadas nos documentos aumentando a capacidade de processamento dos mesmos. Atravs de tags personalizadas pode-se aumentar o desempenho de lgicas de negcios especficas. Existe tambm uma enorme biblioteca de tags j prontas para uso, conhecida como Java Standard Tag Library (JSTL). Biblioteca com recursos para formatao de texto, converso, estrutura de repeties, estruturas condicionais, e outros [Hall00]. 23

A seguir tem-se o exemplo de um documento HTML enviando dados para um JSP: fomulario.html
<html> <head><title>Formulrio HTML</title></head> <body> <form action=formulario.jsp method=get> Nome:<input type=text name=nome><br> Telefone:<input type=text name=tel><br> Celular:<input type=text name=cel><br> Endereo:<input type=text name=end><br> <input type=submit value=Enviar> </form> </body> </html>

formulario.jsp
<%@page contentType=text/html%> <html> <head><title>Formulrio JSP</title></head> <body> Nome:<br> <%=request.getParameter(nome)%><br> Telefone:<br> <%=request.getParameter(tel)%><br> Celular:<br> <%=request.getParameter(cel)%><br> Endereo:<br> <%=request.getParameter(end)%><br> </body> </html>

O cdigo anterior exemplifica a interao que pode haver utilizando-se JSP. O formulrio da pgina HTML submete as informaes para o arquivo JSP, que gera dinamicamente o arquivo de resposta com essas informaes

24

2.4.3 Expression Language (EL)

Expression Language surgiu com a especificao JSP 2.0, com o objetivo de eliminar os elementos de scriping do JSP. capaz de acessar objetos implcitos (JavaBeans) e outras classes, servindo tambm para manipular colees de forma mais eficiente [Basham05]. Facilita bastante a integrao entre objetos e interface grfica da aplicao, alm de ser uma linguagem muito intuitiva para o aprendizado por profissionais que no possuem conhecimento da linguagem Java. Isso melhora a desempenho na produo dos webmaster e webdesigner, pois no necessitam aprender completamente uma nova sintaxe para fazerem seus trabalhos, bastando conhecer simplesmente a sintaxe e alguns conceitos da EL do Java. Exemplo de utilizao de EL em uma pgina JSP: formularioel.jsp
<html> <head><title>Formulrio EL</title></head> <body> Nome:<br> ${pessoa.nome}<br> Telefone:<br> ${pessoa.tel}<br> Celular:<br> ${pessoa.cel}<br> Endereo:<br> ${pessoa.end}<br> </body> </html>

2.5

Hibernate

Criado por desenvolvedores Java ao redor do mundo, liderados por Gavin King, o Hibernate um framework especfico para persistncia de dados em sistemas desenvolvidos em linguagens orientadas a objetos, Java e .NET. [WikiHibernate] Desde o incio da dcada de 70 a persistncia de dados feita atravs do modelo relacional, proposto por Edgard Codd em 1969 e baseado na teoria dos conjuntos. Atualmente o modelo mais utilizado, sendo implementado por diversos SGBDs disponveis no mercado. Porm, o modelo relacional no se adqua muito bem ao paradigma de Orientao Objetos, gerando problemas relacionados a manipulao dos dados. Portanto, quando se quer usar o

25

modelo relacional em uma aplicao que foi desenvolvida com uma linguagem orientada a objeto faz-se necessria uma srie de adaptaes para conciliar os dois mundos [HibernateORG]. A figura 9 ilustra de forma geral o funcionamento do Hibernate.

Figura 9: Funcionamento do Hibernate

O Hibernate tem como objetivo diminuir a impedncia entre os paradigmas Orientao Objetos e Relacional, atravs do mapeamento de classes do paradigma Orientao Objetos com as tabelas e elementos do modelo Relacional. Conta ainda com uma API de programao para recuperao e persistncia das informaes entre os dois lados. Ele faz a ligao entre os dois modelos, sendo, por isso, conhecido como um framework de mapeamento objeto-relacional [Bauer05]. O Hibernate utilizava, inicialmente, XML para fazer o mapeamento dos objetos. Atualmente, tambm utiliza anotaes, de forma que o mapeamento tornou-se mais simples, possibilitando maior produtividade no desenvolvimento de aplicaes. Anotaes so metadados no cdigo fonte ignoradas pelo compilador. Aparecem no cdigo Java aps o smbolo @, surgiram com o Java SE 5.0 [HibernateBrasil]. Para consulta dos dados, o Hibernate permite a escolha entre o SQL e a HQL. Utilizando HQL, os pedidos SQL so executados sobre as classes de persistncia do Java ao invs de tabelas no banco de dados, aumentando a distncia entre o desenvolvimento das regras de negcio e o banco de dados. Ele gera as chamadas SQL, fazendo com que o desenvolvedor no tenha que, por exemplo, se preocupar com a converso dos dados resultantes, e tornando o programa portvel a qualquer banco de dados SQL, mas gerando uma pequena perda no desempenho do acesso ao banco.

26

2.6

Javascript

Javascript surgiu em 1995, inicialmente com o nome de Mocha, posteriormente renomeado para LiveScript. uma linguagem de scripting lanada pela empresa Netscape, que visava atender as seguintes necessidades [WikiJS]:

Validao de formulrio no lado cliente (no browser); Maior interao com a pgina por isso foi criada como uma linguagem de script.

Possui sintaxe semelhante a Java, mas totalmente diferente em seu uso e conceito. Ambas (Java e Javascript) herdam caractersticas de C/C++ (construtores, estruturas condicionais e de repetio, etc.). Diferencia-se de linguagens orientadas a objetos, inclusive Java e C/C++, por apresentar algumas caractersticas especficas:

Oferece tipagem dinmica - tipos de variveis no so definidos; interpretada, em vez de compilada; Possui timas ferramentas padro para listagens; Oferece bom suporte a expresses regulares.

Com Javascript possvel melhorar o design grfico da pgina, validar formulrios, detectar configuraes dos navegadores, criar cookies e muitas outras funcionalidades. O exemplo a seguir mostra como possvel aumentar a interao do usurio com a pgina. Esta funo exibe o cdigo ASCII da tecla pressionada. exemplojs.html
<html> <head> <script language=javascript> <!-function exemplo() { var tecla = window.event.keyCode; window.status = Voc pressionou a telca: + String.fromCharCode(tecla); alert(O Cdigo da tecla pressionada : + tecla); } //-->

27

</script> <title>Exemplo CSS</title> </head> <body onKeyDown=return exemplo(); onKeyUp=return exemplo();> <p align=center">Obtendo o Cdigo da tecla pressionada:</p> </body> </html>

2.7

CSS

CSS a sigla em ingls para Cascading Style Sheet, traduzido para Folha de Estilo em Cascata, pode ser entendida como: mecanismo que adiciona estilos aos documentos web. Em 1994 o CSS desperta a curiosidade do W3C, que monta uma equipe para tornar esse projeto oficial e, em 1996, isso se torna realidade com o CSS 1. O CSS 2 est desenvolvido e sendo utilizado na maioria dos browser; atualmente est sendo desenvolvida sua terceira verso. CSS tem como principal funo separar o contedo da apresentao e trabalha em documentos que utilizam linguagens de marcao, a exemplo de HTML e XHTML, ou quaisquer tipo de documentos XML, inclusive SVG e XUL [WikiCSS]. CSS consiste em uma lista de regras e cada regra consiste de um conjunto de propriedades e valores, nos quais so especificados os elementos de estilo da pgina: fontes, cores, cabealhos, links, figuras, alinhamentos, espaamentos, e outros elementos de apresentao. Essas propriedades so especificadas atravs de palavras-chave em ingls. Mais de uma regra pode ser aplicada a uma mesma parte do cdigo. A linguagem especifica qual das regras deve ser utilizada em cada momento, e por isso se chama estilo em cascata. Ao invs de colocar toda a formatao de estilo dentro do documento, o desenvolvedor usa um link para um arquivo que contm os estilos. Dessa maneira o mesmo estilo pode ser usado em diversas pginas sem ter a necessidade de se repetir todo o cdigo. Alteraes posteriores no arquivo de estilo afetaro todas as pginas de uma nica vez. O trecho de cdigo a seguir exemplifica a utilizao de cdigo CSS em uma pgina HTML atravs de um link externo para o arquivo estilo.css: exemplocss.html
<html> <head> <title>Exemplo CSS</title> <link rel=stylesheet type=text/css href=estilo.css /> </head> <body>

28

<h1>Exemplo de Pgina com CSS</h1> <p> Este apenas um simples exemplo de pgina com uso de propriedades de exibio atravs de um arquivo css externo</p> </body> </html>

estilo.css
Body { background-color: #009900; color: #000000; } H1 { font-size:36pt; font-style: italic; text-align: center; text-transform: uppercase; } FONT { font-family: Arial, Helvetica, sans-serif; font-size: 12pt; } P { font-family: Arial, Helvetica, sans-serif; font-size: 14pt; }

2.8

Ajax

Ajax, Asynchronous Javascript and XML (Javascript Assncrono e XML), o termo usado para descrever uma nova tcnica de programao de aplicaes interativas para web usando uma combinao de [Crane06]:

HTML e CSS: realizam a formatao e estilo das informaes apresentadas nos documentos; Document Object Model (DOM): representa as informaes e elementos do documento atravs de um modelo de objetos inter-relacionados; XMLHttpRequest: realiza a troca de dados de forma assncrona com o servidor web, utiliza-se, na maioria dos casos, XML, porm pode-se utilizar outro formato de texto, como HTML, plain text, etc.

29

Desta maneira, Ajax no , por si, uma tecnologia, mas a juno de tecnologias que proporcionam ao usurio uma forma de navegao mais rpida, interativa e natural, com base em recursos como DTHML para otimizar a interatividade das aplicaes [LCAjax]. Com seu uso, as aplicaes web ganharam mais dinamismo e eficincia e tornaram-se mais parecidas com aplicaes desktop, em que o retorno do resultado quase instantneo, pois no preciso recarregar toda a pgina a cada nova solicitao do usurio. Ajax traz do servidor apenas a poro de informao necessria requisio e recarrega exclusivamente o local apropriado. Um dos importantes usos do Ajax para a validao de dados, item crtico na segurana de qualquer sistema. Com Ajax as regras de segurana ficam apenas no lado servidor, evitando a exposio ao usurio. A figura a seguir mostra a diferena entre o modelo clssico das aplicaes web e o modelo que utiliza Ajax.

Figura 10: Modelo de aplicao com Ajax

No modelo clssico toda ao do usurio no navegador envia uma solicitao HTTP ao servidor web, conforme se observa no lado esquerdo da Figura 10, que processa e retorna o resultado em uma nova pgina HTML. Uma vez carregada a interface da aplicao, o Ajax, atravs de solicitaes assncronas, permite recarregar apenas a parte em que houve mudana. 30

2.9

SGBD

Sistema Gerenciador de Banco de Dados (SGBD) um conjunto de programas que faz a gerncia de uma base de dados, tira a responsabilidade dessa tarefa da aplicao e permite ao programador se concentrar na lgica de programao. O SGBD disponibiliza uma interface para o cliente manipular seus dados e suas tabelas: incluir, excluir, modificar ou consultar essas informaes [Silberschatz99]. Existem vrios tipos de SGBDs, mas os mais utilizados so os Bancos de Dados Relacionais, esse tipo executa cdigos em SQL (Structured Query Language). Atualmente, os bancos de dados mais utilizados so: Oracle, MySql, Microsoft SQL Server e PostgreSQL. A figura 11 ilustra como o SGBD interage com os aplicativos e a base de dados.

Figura 11: Arquitetura de um SGBD

O aplicativo envia uma chamada ao SGDB mesmo sem ter conhecimento de qual banco utilizado ou como acess-lo. Essas funes so realizadas pelo SGBD atravs de drivers especficos para cada banco. O SGBD acessa o banco e retorna para o aplicativo a resposta da consulta desejada [Heuser99].

31

2.9.1 PostgreSQL

Lanado originalmente com o nome de Postgres, o projeto a evoluo do Ingres, desenvolvido na universidade de Berkeley, Califrnia. Liderado por Michael Stonebraker, o objetivo do Postgres era sanar os problemas causados pela incapacidade do modelo relacional de compreender tipos (hoje, denominados objetos). Em 1989 foi lanada a primeira verso que usava a linguagem QUEL (desenvolvida para o Ingres). Em 1995 foi adicionada a linguagem SQL e o projeto passou a chamar-se Postgres95 e fazer parte dos softwares livres. Em 1996 foi renomeado novamente para PostgreSQL, se referindo linguagem de consulta a banco de dados que utilizava: SQL. Sua primeira verso, a 6.0, foi lanada em janeiro de 1997 [Postgre08]. O PostgreSQL atualmente um dos SGBDs de cdigo aberto mais avanados que existem, trazendo diversos recursos:

Consultas complexas; Chaves estrangeiras; Integridade transacional; Controle de concorrncia multi-verso; Suporte ao modelo hbrido objeto-relacional; Trigger; Views; Stored Procedures em vrias linguagens.

2.10 Servidores Web

Atualmente, as pginas e outros recursos web esto disponveis ao redor do planeta, em vrias mquinas diferentes, cuja funo manter e servir essas informaes [Linden96]. Nesse contexto, podemos entender Servidores Web em dois aspectos [Silberschatz99]:

Um programa de computador capaz de aceitar requisies (pedidos) HTTP de um cliente, normalmente um navegador, e servir uma resposta HTTP, contendo, uma pgina HTML ou alguns outros objetos, como figuras, etc;

O computador que executa um programa como descrito no item anterior.

A maioria implementa servios que auxiliam o usurio final ou outras aplicaes: 32

Autenticao, servio de segurana atravs de uma autorizao (usurio e senha) para permitir o acesso a alguns recursos; Suporte ao protocolo HTTPs (HTTP seguro, atravs de SSL ou TSL) para permitir conexes seguras com dados criptografados, utilizando a porta 443 em vez de utilizar a porta 80;

Suporte a arquivos grandes, maiores que 2 Gb.

O servidor, em uma resposta, pode servir dois tipos de contedo:

Pginas estticas: aquelas em que o arquivo j est completamente pronto no servidor e enviado diretamente ao cliente; Pginas dinmicas: quando a pgina ainda vai ser processada, atravs de um script ou de uma API chamada pelo servidor, para ento ser enviada ao cliente.

Atualmente, no mercado, existem diversos aplicativos servidores, dentre os quais, os mais conhecidos so: IIS da Microsoft, o Apache da Apache Software Foundation e o Tomcat da Apache Jakarta Project.

2.10.1 Tomcat O Tomcat um container web criado pela Apache Software Foundation (ASF), distribudo como software livre e desenvolvido como cdigo aberto. Implementa as especificaes de Servlets e JSP, alm de JNDI e JDBC. Sendo um ambiente para o cdigo Java ser executado em cooperao com um servidor web [Tomcat08]. Contm internamente um servidor HTTP, que pode ser utilizado a fim de gerar bons resultados quando utilizado com pequenas e at mdias aplicaes. A figura a seguir exemplifica o funcionamento bsico de um container web.

33

Figura 12: Funcionamento de um container web

Uma requisio HTTP/HTTPs enviada ao container pelo cliente. O container repassa a requisio para o servlet que ir atend-la, o qual faz o processamento necessrio (acesso ao banco de dados, servidores de e-mail, etc.) e, finalmente, repassa para o JSP que gera a pgina final enviada para o usurio.

34

3 Atividades de Estgio
A Uniuol utilizava um sistema interno para gerenciamento de algumas funes acadmicas, como matrcula de alunos, cadastro de professores e gerao de relatrios de freqncia e de pagamentos. Foi desenvolvido em PHP, funcionava apenas localmente e apresentava alguns problemas, como erros em alguns relatrios, problemas na persistncia dos dados, etc. Com o aumento na quantidade de cursos, alunos, professores e funcionrios, o antigo sistema no suportou o volume de informaes e os problemas comearam a aparecer com maior freqncia: travamentos e erros relacionados ao banco de dados, lentido na gerao dos relatrios, dentre outros. Isso deixava os usurios completamente insatisfeitos. Alm dos problemas detectados, novas necessidades surgiram. A principal era a criao de um sistema que funcionasse via web. Outras necessidades tambm eram cobradas, principalmente pelos alunos, como fazer a matrcula on-line, visualizar histrico e horrio. Para atender a essas necessidades, chegou-se a concluso que a melhor soluo seria a migrao do antigo sistema em PHP para um novo sistema: UniuolExtranet. Para o seu desenvolvimento optou-se por utilizar a linguagem Java e o sistema operacional Linux. Java teve prioridade em vez de PHP, pois era uma linguagem de maior domnio entre a equipe de programao e por apresentar qualidades citadas anteriormente. Linux foi escolhido, principalmente, por ser software livre. O ambiente de programao utilizado foi o Netbeans 5.5. O UniuolExtranet funciona como um portal que dava acesso a 4 mdulos distintos de acordo com o perfil do usurio. Existem 4 tipos ou perfis de usurio: Aluno, Professor,

Funcionrio Administrativo e Administrador da Biblioteca. A modularizao tambm trouxe bons resultados para a programao, uma vez que possibilitou a diviso do trabalho em cada mdulo com suas respectivas funes. O processo de migrao ocorreu de forma iterativa, baseando-se nas funcionalidades de cada mdulo, que sero detalhadas nas prximas sees. Cada funcionalidade era adicionada ao novo sistema de tal forma que sempre era deixada uma verso estvel antes de serem feitos vrios testes e a verso final fosse publicada. O UniuolExtranet deveria conter os pontos positivos e as funcionalidades do antigo sistema. Todas as novas funcionalidades deveriam ser desenvolvidas e, principalmente, a adaptao para uso via web. Deveria, ainda, suprir a todas essas novas necessidades e suportar sem erros o grande volume de informaes.

35

No incio do estgio, a equipe de programao, composta por outros dois programadores, j havia iniciado o desenvolvimento do novo sistema. O UniuolExtranet j funcionava via web, apesar de alguns erros e contava apenas com funes de cadastro (de professores e alunos). A anlise do projeto, anlise de requisitos funcionais e requisitos no funcionais (definio do banco de dados, linguagem de programao adotada e tecnologias de desenvolvimento) estavam decididos, pois o projeto estava iniciado e, por isso, o estagirio no participou dessas decises. A participao do estagirio dividiu-se, basicamente, em dois momentos: apresentao ao novo sistema e implementao dos requisitos funcionais levantados na anlise. O primeiro momento, que durou uma semana, serviu para o estagirio conhecer o que havia sido feito, o que j estava implementado e, principalmente, entender como o novo sistema funcionava. Foi uma semana de anlise de cdigo, entendimento das bibliotecas utilizadas, e discusso sobre quais funcionalidades tinham prioridade no desenvolvimento. Como parte da API Java estava implementada era necessrio a documentao para que todos da equipe pudessem saber como utiliz-la, isso foi feito com Javadoc. O segundo momento foi para implementao dos requisitos funcionais. Cada mdulo tinha necessidades especficas, mas foi comum a todos o uso das tecnologias Java, Ajax, CSS e o Hibernate. Dentro do projeto, o estagirio participou diretamente do desenvolvimento dos mdulos Biblioteca, Aluno e Professor. Nas prximas sees sero descritos o funcionamento geral do Portal Uniuol e, de forma mais detalhada, cada mdulo, mostrando suas funcionalidades e como foram implementadas.

3.1

Portal Uniuol

O UniuolExtranet baseava-se na idia de um portal que atenderia cada tipo de usurio atravs dos mdulos especficos:

Mdulo Aluno: funes para os alunos gerenciarem as disciplinas nas quais esto matriculados e acompanharem o andamento de cada aula. Mdulo Professor: funes para os professores gerenciarem as turmas e as disciplinas ministradas oferecendo suporte aos alunos. Mdulo Pedaggico: funes para funcionrios administrativos gerenciarem os demais funcionrios, cadastrando professores, alunos, atribuindo turmas a cada professor, etc.

Mdulo Biblioteca (BibSis): funes referentes ao acesso biblioteca virtual. 36

O portal foi desenvolvido utilizando o modelo MVC (Model-View-Controller). Esse modelo facilitou a sua implementao, pois o trabalho pode ser bem divido, tendo um membro da equipe responsvel por cada camada, enquanto um membro concentrava seu trabalho na camada de visualizao (View), outro poderia trabalhar apenas na modelagem das classes (Model) enquanto o outro ficava responsvel pela parte controladora (Controller).

View JSP

Model Java Object


Figura 13: Modelo MVC

Controller Servlet

Para a camada de visualizao optou-se pelo desenvolvimento atravs de JSP com EL. A figura 16 ilustra a tela inicial do Portal Uniuol. A camada de controle foi desenvolvida com Servlets. O servlet inicial (ServletSistema) recebe a primeira requisio com os dados do usurio, acessa o banco de dados para verificar as informaes e fazer o login, cria a visualizao dinamicamente e retorna para o usurio a pgina inicial do seu mdulo. A figura a seguir ilustra esta situao.

37

JSP
7 1

6 2
request
nome senha

3
ServletSistema

PortalUniuol

Dados Armazenados

Figura 14: Login

1. Acesso ao PortalUniuol; 2. Envio dos dados de login; 3. ServletSistema recebe os dados; 4. ServletSistema acessa banco de dados para validao das informaes; 5. Banco de dados retorna informaes consultadas; 6. ServletSistema valida dados e gera dinamicamente JSP; 7. JSP especfico para o mdulo do usurio.

Depois de entrar no sistema, cada ao do usurio passa para outro servlet (ServletControlador) que faz controle de sesso e de acordo com a tarefa a ser realizada repassa a requisio para um servlet especfico, de acordo com o perfil do usurio, que contm a lgica de negcios de cada ao que o usurio pode realizar. A camada de modelo utilizou Java e classes DAO para persistncia dos dados atravs do Hibernate com PostgreSQL. A figura a seguir ilustra a interao entre os servlets, as classes DAO e o banco de dados.

38

10

JSP
1

2
Dados Armazenados

ServletControlador

5 4
ClassesDAO

ServletEspecfico
Aluno, Professor, Biblioteca

7
Figura 15: Fluxo de aes

1. Usurio executa alguma ao no JSP (clicar em link, preencher formulrio, etc.); 2. JSP envia dados para o ServletControlador; 3. ServletControlador faz controle de sesso e envia dados para o ServletEspecfico; 4. ServletEspecfico contm a lgica de negcios da tarefa, processa as informaes e envia para as ClassesDAO; 5. ClassesDAO acessam banco de dados, atravs de Hibernate para

persistncia/consulta dos dados; 6. Banco de dados retorna informaes para ClassesDAO; 7. ClassesDAO criam objetos a partir dos dados da resposta e enviam para o ServletEspecfico; 8. ServletEspecfico processa o objeto (se necessrio) e devolve para o ServletControlador; 9. ServletControloador cria/atualiza o JSP com os objetos; 10. JSP enviado/atualizado para o usurio.

39

Figura 16: Portal Uniuol

Cada mdulo possui domnios de problemas e modelo de objetos particulares, que sero detalhados em particular.

3.2

Mdulo Biblioteca (BibSis)

A Uniuol possui uma biblioteca bastante ampla e com acervo novo e variado. E para facilitar e dar maior comodidade aos alunos esse mdulo funciona como uma verdadeira biblioteca virtual. Apresenta funes especficas, de acordo com o usurio que for utiliz-lo. Existem dois perfis de usurios: Administrador e Demais Usurios (alunos, professores, funcionrios administrativos). O administrador desempenha funes de cadastro, remoo e atualizao das informaes do livro. Podendo, tambm, gerar relatrios com a relao de livros que esto emprestados, com todos os dados necessrios (data de devoluo, nome do aluno, etc.). Os demais usurios (professores, alunos ou funcionrios administrativos) podem apenas pesquisar por um livro (pelo ttulo, autor ou palavra-chave). A figura a seguir mostra como cada usurio pode interagir com esse mdulo.

40

Figura 17: Diagrama de caso de uso do mdulo Biblioteca

Para a modelagem do domnio referente a esse mdulo no houve muito trabalho, uma vez que a nica classe necessria era a classe Livro. Essa classe contm apenas as informaes bsicas sobre o livro, como nome, autor, editora, etc. O banco de dados contm uma tabela para armazenar as informaes de cada livro e outra tabela para as informaes sobre emprstimos. Os requisitos funcionais desenvolvidos foram os de cadastrar, remover e atualizar os livros. Como os emprstimos no podiam ser feitos virtualmente, tudo era feito na prpria biblioteca e as informaes registradas em papel. O requisito de gerar relatrios no foi implementado, pois no foi considerado prioridade para o sistema. Dois problemas surgiram durante esta fase dos trabalhos: fazer a importao dos dados j cadastrados e integrar o mdulo biblioteca ao UniuolExtranet. Os livros estavam cadastrados em uma base de dados, a partir da qual foi gerado um arquivo contendo todos os registros. Toda a importao para o novo banco de dados foi feita atravs de uma classe Java que lia esse arquivo, criava objetos e depois, com uso das classes de persistncia DAO salvava no banco de dados, PostgreSQL. Necessitou-se tambm fazer a integrao do mdulo, uma vez que ele funcionava apenas localmente, com algumas limitaes. Tornou-se necessrio disponibiliz-lo no sistema para ser acessado remotamente. A integrao foi feita com cada um dos outros mdulos que iriam acesslo. O processo ser detalhado em particular. Esse mdulo utiliza o ServletBiblioteca, o servlet com funes especficas para: remover, inserir, alterar dados de livros, consultar ou gerar os relatrios. O usurio passa as informaes 41

desejadas (de busca, insero, etc.) atravs de formulrios no JSP. As informaes seguem para o ServletControlador que passa para o ServletEspecfico de acordo com o perfil do usurio (Administrador ou Demais Usurios), que executa a tarefa desejada. Seguindo o mesmo fluxo exemplificado na figura 14. A imagem a seguir mostra a tela inicial da funo de pesquisa, atravs do ttulo, autor ou palavra-chave.

Figura 18: Tela inicial (BibSis)

Todos os mdulos apresentavam-se ao usurio atravs de pginas feitas em JSP, sendo toda a apresentao formatada com CSS e todas as funcionalidades sendo executadas a partir da tecnologia Ajax. 3.3 Mdulo Aluno

Este mdulo apresenta funcionalidades relativas s necessidades dos alunos. Aqui o aluno encontra opes para gerenciar as disciplinas que est cursando e manter-se atualizado sobre o andamento de cada aula. Cada aluno cadastrado previamente no sistema, atravs do mdulo Pedaggico. Para poder acessar o mdulo Aluno ele recebe um nome de usurio e uma senha. Esse mdulo acessado exclusivamente pelos alunos para poderem acompanhar seus desempenhos nas disciplinas e consultar o contedo das aulas j ministradas. A partir desse mdulo o aluno tem acesso s seguintes funes: 42

Visualizar as disciplinas em que est matriculado; Consultar as notas obtidas em cada disciplina; Visualizar as atividades propostas pelos professores; Fazer download do material das aulas, disponibilizados pelos professores; Acessar o BibSis; Modificar a senha de acesso.

Figura 19: Diagrama de caso de uso do mdulo Aluno

O mdulo Aluno tambm funciona baseado no modelo MVC de acordo com a figura 14. A camada de visualizao toda gerada a partir de JSPs usando EL, Ajax e alguns conceitos de tableless, atravs de CSS e as funes so acessadas atravs de Javascript. A tela inicial dividida em quatro partes: menu de opes gerais (canto superior direito), menu de opes especficas (canto inferior direito), rea de aviso e informaes (canto superior esquerdo), rea principal (canto inferior esquerdo). O Ajax foi utilizado para no ter que recarregar toda a tela, mas apenas a poro onde as novas informaes deveriam aparecer, ou para criar algumas janelas pop-ups, como ser descrito posteriormente. A figura a seguir ilustra a tela inicial do mdulo Aluno.

43

Figura 20: Tela Inicial (mdulo Aluno)

O trabalho de modelagem dos objetos deste mdulo foi mais complexo, uma vez que era preciso armazenar uma grande quantidade de informaes sobre o aluno. Todos os dados pessoais (nome, endereo, matrcula, etc.), registros de notas e das disciplinas j cursadas e em curso. Foram implementadas as classes aluno, notas, histrico, atividades e disciplinas. O acesso aos dados a partir das classes de negcio foi feito atravs das classes DAO que usam Hibernate como tecnologia de persistncia. Depois da modelagem, o passo seguinte foi a implementao dos requisitos funcionais e da integrao desse mdulo com o BibSis. A implementao ocorreu de forma iterativa, por funcionalidades. Definidas as prioridades, quais funcionalidades deveriam ser implementadas primeiro, iniciou-se o trabalho. A primeira tarefa definida foi a integrao do mdulo BibSis, surgindo o primeiro problema: uma simples tela de Carregando... deveria ser mostrada ao usurio, porque existia uma tela nesse mesmo estilo no sistema antigo e o UniuolExtranet deveria mant-la. Como tudo estava baseado em Ajax, CSS e Javascript, ento esses eram os recursos disponveis. Aps alguns dias de estudo a tela Carregando... foi desenvolvida, com Ajax e CSS. A figura a seguir mostra o resultado final.

44

Figura 21: "Carregando..."

Como o mdulo BibSis estava funcionando corretamente, acrescentou-se um link para ele no menu de opo do mdulo Aluno fazendo com que a tela de busca do BibSis fosse carregada na rea de avisos e informaes e o resultado da busca aparecesse na rea principal, sem que precisasse recarregar toda a tela, atravs de Ajax. Outro problema que surgiu foi na funcionalidade de modificar a senha. Era preciso que aparecesse uma janela estilo pop-up, mas dentro da aplicao, com os campos para inserir a nova senha. A soluo adotada foi atravs de Ajax com CSS. A figura a seguir ilustra o resultado final.

45

Figura 22: Modificar senha

No link disciplinas o aluno tem acesso s disciplinas nas quais est matriculado e algumas opes para cada uma delas: visualizar notas, acompanhar as aulas j ministradas ou fazer download de material disponibilizado pelo professor. A prxima imagem mostra a relao de disciplinas e as opes disponveis.

Figura 23: Gerenciar disciplinas

46

No link [Nt] o aluno tem acesso s notas daquela disciplina. No link [Mt] o aluno tem acesso toda programao das aulas, com datas, tpicos de cada aula e matrias como slides, textos, etc (desde que o professor tenha disponibilizado). A imagem a seguir mostra uma janela pop-up, feita em Ajax contendo as informaes de uma aula.

Figura 24: Informaes de uma aula

No link [At] o aluno tem acesso s atividades propostas pelo professor. O trabalho do estagirio estava voltado principalmente para a camada de controle e modelo. Na camada de visualizao desenvolveu as janelas pop-up e alguns pequenos ajustes em outras, quando necessrio. No mdulo Aluno, o trabalho de implementao dos novos requisitos demandou um pouco mais de um ms para ser concludo. 3.4 Mdulo Professor

Este mdulo traz funes especficas para os professores gerenciarem as suas turmas. Cada professor cadastrado previamente no sistema, assim como os alunos. Depois uma turma pode ser atribuda a ele, mas essas tarefas so executadas pelo mdulo Pedaggico. O professor tambm recebe um nome de usurio e uma senha para acessar o sistema. Este disponibiliza as seguintes tarefas para o professor gerenciar suas turmas:

47

Fazer upload de materiais para os alunos; Disponibilizar exerccios; Cadastrar aulas ministradas (com informaes, resumos, etc.); Lanar notas dos alunos; Acessar o mdulo BibSis; Modificar a senha de acesso.

Figura 25: Diagrama de caso de uso do mdulo Professor

Como no mdulo Aluno, o mdulo Professor foi desenvolvido com o modelo MVC. A visualizao gerada dinamicamente com JSP, EL e Ajax. O modelo de tela segue o padro do mdulo Aluno: tela dividida em quatro partes, atravs de tableless com CSS. O trabalho de modelagem do domnio tambm foi bastante extenso para esse mdulo. Alm das informaes de cada professor tambm era necessrio as informaes sobre suas turmas. Foram implementadas as classes professor, exerccios, turmas e material. O acesso aos dados a partir das classes de negcio foi feito atravs das classes DAO que usam Hibernate como tecnologia de persistncia. Era preciso, ainda, fazer a implementao das novas funcionalidades e integrao desse mdulo com o BibSis. Tudo ocorreu de maneira semelhante ao mdulo Aluno: processo iterativo. Uma funcionalidade de cada vez, e depois da implementao, eram feitos testes e, ento a nova verso era disponibilizada.

48

Os testes foram feitos de forma simples, a prpria equipe de programao acessava o sistema, como um aluno ou professor e comeava a utilizar tentando localizar algum erro, alguma janela sem formatao, algum link sem funcionar, etc. A primeira tarefa definida foi a integrao do mdulo BibSis, que ocorreu da mesma forma do mdulo Aluno. O nico problema encontrado foi quanto questo do upload de arquivos. Houve problema para limitar o tamanho mximo dos arquivos a serem enviados. Depois de muito esforo conseguiu-se adaptar uma classe existente na internet para realizar esse trabalho. A imagem a seguir ilustra essa tela de upload.

Figura 26: Upload de arquivo

Esse mdulo utilizado em conjunto com o mdulo Aluno, uma vez que a maioria das funes so para os professores disponibilizarem algum tipo de informao para os alunos. No link Atividades o professor tem acesso s disciplinas que ministra e pode ento fazer o upload do arquivo da atividade e disponibiliz-lo para os alunos. No link Disciplinas o professor tem acesso lista de suas disciplinas para gerenciar cada aula, disponibilizando material e informaes, como foi explicado no mdulo Aluno. Como tudo nesse mdulo era bastante parecido com o mdulo Aluno esses requisitos foram implementados em pouco tempo. Durante o perodo em que esteve na empresa, o estagirio pode contribuir para o desenvolvimento de trs mdulos: Biblioteca, Aluno e Professor. O projeto, porm, no estava 49

pronto. Havia ainda a necessidade de concluso do mdulo Pedaggico e a constante atualizao do sistema, pois outros requisitos funcionais surgem de acordo com as novas necessidades. Antes de sua sada, o estagirio ainda realizou uma semana de testes, para garantir a qualidade de seu trabalho. E, com isso, poder ter a certeza de que ao sair, deixava um sistema que funcionava de acordo com o que foi requisitado e auxiliaria a empresa. O trabalho de concluso e atualizao ficou, ento, sob a responsabilidade da nova equipe de programao, que deu continuidade ao projeto, aps a sada do estagirio.

50

4 Concluso
A realizao do estgio curricular na Uniuol foi de grande valia para o amadurecimento profissional e aumento dos conhecimentos tcnicos. importante destacar tambm todas as experincias com relaes humanas e profissionais vivenciadas dentro da empresa que sero de grande importncia durante toda a vida profissional. Na Uniuol o estagirio teve a oportunidade de lidar com a prtica da vida profissional, trabalho em equipe e aprender que o sucesso depende sempre de muito esforo e da colaborao de vrias pessoas. Aprendeu tambm a importncia de estar com os conhecimentos sempre atualizados para o que o mercado exige, alm de disposto a aprender novas tecnologias. Nisso, o curso do CEFET-PB mostrou-se imprescindvel, pois o estagirio pode aprender com os melhores profissionais e se preparou para por em prtica toda a teoria. Durante o estgio, houve o aprimoramento de tcnicas de programao na linguagem Java e gerenciamento de banco de dados, PostgreSQL. Novos conhecimentos, em Ajax, tambm foram necessrios uma vez que todo o sistema dependia disso. Aprendeu a lidar com problemas diversos, desde falta de integridade referencial dos dados presentes no SGBD at problemas simples de interface como uma tela de Carregando... desenvolvida em Ajax. Para a Uniuol, alm da contribuio do trabalho em curto perodo de tempo, ficam os frutos dos resultados desenvolvidos que sero usufrudos por seus funcionrios e alunos, e de fato, contribuiro para um melhor desempenho das atividades da empresa. O estgio serviu para consolidao e aplicao dos conhecimentos apreendidos durante os trs anos do curso de Sistemas para Internet, pois muitos conceitos estudados foram exigidos durante esse perodo. Podemos concluir que o curso do CEFET-PB um curso de ponta, extremamente atualizado, capaz de proporcionar conhecimentos slidos de acordo com o que o mercado de trabalho atual exige. Teve fundamental importncia na formao acadmica e profissional do estagirio, tornando-o capaz de enfrentar qualquer desafio dentro dessa rea de atuao.

51

Referncias
[Basham05] BASHAM, Brain; SIERRA, Kathy; BATES, Bert. Use a Cabea! Servlets & JSP. Altabooks. 2005. BAUER, Christian; KING, Gavin. Hibernate in Action. Manning. 2005 CAVALCANTI, Gustavo. Migrao de aplicao Desktop para o ambiente web. 2007. Trabalho de Graduao (Tecnologia em Sistemas Para a Internet). CEFET-PB, Joo Pessoa, 2007 CRANE, Dave; PASCARELLO, Eric. Ajax in Action. Manning. 2006 DEITEL, Harvey M.; DEITEL, Paul J. Java: Como Programar. 4 ed. Bookman. 2000. FARLEY, Jim. Java Distributed Computing. 1 ed. OREILLY. 1998. HALL, Marty. Core Servlets and JavaServer Pages. Prentice Hall. 2000. HEUSER, Carlos Alberto. Projeto de Banco de Dados. 2 ed. Sagra Luzzatto. 1999. JEE Brasil. Disponvel em <http://www.jspbrasil.com.br/mostrar/83>. Acesso em 15 de janeiro de 2008. Hibernate.org. Disponvel em <http://www.hibernate.org>. Acesso em 16 de janeiro de 2008. HORSTMANN, Cay S.; CORNELL, Gary. Core Java Volume 1 Fundamentals. Prentice Hall. 2001. HUNTER, Jason; CRAWFORD, William. Java Servlet: programao. Traduo da 2 ed. Cincia Moderna, 2002. Linha de Cdigo. Disponvel em <http://www.linhadecodigo.com/Artigo.aspx?id=1203>. Acesso em 17 de janeiro de 2008. LINDEN, Peter van der. Just Java. Prentice Hall.1996.

[Bauer05]

[Cavalcanti07]

[Crane06] [Deitel03]

[Fareley98] [Hall00]

[Heuser99]

[HibernateBrasil]

[HibernateORG] [Horstmann01]

[Hunter02]

[LCAjax]

[Linden96]

[Monson-Haefel01] MONSON-HAEFEL, Richard. Enterprise Java Beans. 3 ed. OREILLY. 2001. [Newman97] [Postgre08] NEWMAN, Alexander. Usando Java. Campus. 1997. Postgre. Disponvel em <http://www.postgresql.org/about/>. Acesso em 15 de janeiro de 2008. SILBERCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. 52

[Silberschatz99]

Sistema de banco de Dados. 3 ed. Makron Books. 1999. [Sun08] Sun Microsystems. Disponvel em <http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Servlets2.html#75087>. Acesso em 15 de janeiro de 2008. TANENBAUM, Andrew S. Redes de Computadores. Traduo da 3 ed. Campus, 1997. THOMAS, Michael D.; PATEL, Pratik R.; HUDSON, Alan D.; JR., Donald A. Ball. Programando em Java para a internet. Makron Books, 1997. Tomcat. Disponvel em <http://tomcat.apache.org/>. Acesso em 15 de janeiro de 2008. UMAR, Amjad. Object-Oriented: Client/Server internet environments. Prentice Hall. 1997. Wikipdia CSS. Disponvel em <http://pt.wikipedia.org/wiki/Cascading_Style_Sheets>. Acesso em 17 de janeiro de 2008. Wikipdia Hibernate. Disponvel em <http://pt.wikipedia.org/wiki/Hibernate>. Acesso em 16 de janeiro de 2008. Wikipdia Javascript. Disponvel em <http://pt.wikipedia.org/wiki/Javascript>. Acesso em 17 de janeiro de 2008.

[Tanenbaum97]

[Thomas97]

[Tomcat08]

[Umar97]

[WikiCSS]

[WikiHibernate]

[WikiJS]

Referncias sugeridas
Espaoinfo.net. Disponvel em <http://espacoinfo.net/o-que-e-sgbd-bd-ii/>. Acesso em 19 de janeiro de 2008.

Informtica UOL. Disponvel em <http://informatica.hsw.uol.com.br/servidores-da-web.htm>. Acesso em 15 de janeiro de 2008.

Java.net.

Disponvel

em

<http://today.java.net/pub/a/today/2006/03/07/unified-jsp-jsf-

expression-language.html>. Acesso em 14 de janeiro de 2008.

Javafree. Disponvel em <http://www.javafree.org/content/view.jf?idContent=84>. Acesso em 21 de janeiro de 2008. 53

Javafree. Disponvel em <http://www.javafree.org/wiki/Java>. Acesso em 21 de janeiro de 2008.

Linha de Cdigo. Disponvel em <http://www.linhadecodigo.com.br/Artigo.aspx?id=452>. Acesso em 15 de janeiro de 2008.

Mozilla.org. Disponvel em <http://developer.mozilla.org/en/docs/About_JavaScript>. Acesso em 13 de janeiro de 2008.

Mundo Java. Disponvel em <http://www.mundojava.com.br/NovoSite/14materiacapa.shtml>. Acesso em 20 de janeiro de 2008.

MX

Studio.

Disponvel

em

<http://www.mxstudio.com.br/views.tutorial.php?act=view&cid=7&aid=671>. Acesso em 15 de janeiro de 2008.

Nodisign.

Disponvel

em

<http://nodesign.wordpress.com/2007/11/06/java-hibernate-

configurando/>. Acesso em 23 de janeiro de 2008.

Rede Nacional de Pesquisa. Disponvel em <http://www.rnp.br/newsgen/9710/n5-3.html>. Acesso em 17 de janeiro de 2008.

Unicamp. Disponvel em <http://www.dca.fee.unicamp.br/cursos/PooJava/servlets/intro.html>. Acesso em 14 de janeiro de 2008.

Universidade

Federal

do

Rio

Grande

do

Sul.

Disponvel

em

<http://penta2.ufrgs.br/redes296/cliente_ser/tutoria_.htm>. Acesso em 17 de janeiro de 2008.

Wikipdia. Disponvel em <http://en.wikipedia.org/wiki/Apache_Tomcat>. Acesso em 22 de janeiro de 2008.

Wikipdia. Disponvel em <http://en.wikipedia.org/wiki/Client-server>. Acesso em 21 de janeiro de 2008.

Wikipdia. Disponvel em <http://en.wikipedia.org/wiki/Expression_Language>. Acesso em 23 de janeiro de 2008. 54

Wikipdia. Disponvel em <http://en.wikipedia.org/wiki/Java_Servlet>. Acesso em 23 de janeiro de 2008.

Wikipdia. Disponvel em <http://en.wikipedia.org/wiki/JavaScript>. Acesso em 22 de janeiro de 2008.

Wikipdia. Disponvel em <http://en.wikipedia.org/wiki/JavaServer_Pages>. Acesso em 23 de janeiro de 2008.

Wikipdia. Disponvel em <http://en.wikipedia.org/wiki/Web_application>. Acesso em 20 de janeiro de 2008.

Wikipdia. Disponvel em <http://en.wikipedia.org/wiki/Web_server>. Acesso em 22 de janeiro de 2008.

Wikipdia. Disponvel em <http://pt.wikipedia.org/wiki/Aplica%C3%A7%C3%A3o_Web>. Acesso em 20 de janeiro de 2008.

Wikipdia.

Disponvel

em

<http://pt.wikipedia.org/wiki/Java_%28linguagem_de_programa%C3%A7%C3%A3o%29>. Acesso em 21 de janeiro de 2008.

Wikipdia. Disponvel em <http://pt.wikipedia.org/wiki/Java_EE>. Acesso em 21 de janeiro de 2008.

Wikipdia. Disponvel em <http://pt.wikipedia.org/wiki/Java_ME>. Acesso em 21 de janeiro de 2008.

Wikipdia. Disponvel em <http://pt.wikipedia.org/wiki/Java_SE>. Acesso em 21 de janeiro de 2008.

Wikipdia. Disponvel em <http://pt.wikipedia.org/wiki/JSP>. Acesso em 23 de janeiro de 2008.

Wikipdia. Disponvel em <http://pt.wikipedia.org/wiki/Servidor_web>. Acesso em 22 de janeiro de 2008. 55

Wikipdia. Disponvel em <http://pt.wikipedia.org/wiki/Servlet>. Acesso em 23 de janeiro de 2008.

Wikipdia. Disponvel em <http://pt.wikipedia.org/wiki/SGBD>. Acesso em 22 de janeiro de 2008.

Wikipdia. Disponvel em <http://pt.wikipedia.org/wiki/Tomcat>. Acesso em 22 de janeiro de 2008.

56

Você também pode gostar