relatório de lucas cavalcanti cruz - 041037095

Upload: lucas-cavalcanti-cruz

Post on 07-Jul-2015

909 views

Category:

Documents


0 download

TRANSCRIPT

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

RELATRIO FINAL DE ESTGIOUniuolExtranet: 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 CruzRelatrio 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

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

3

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

4

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

5

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

7

LISTA DE FIGURASFigura 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

8

SUMRIO

RESUMO ................................................................................................................................ 3 ABSTRACT .............................................................................................................................. 4 AGRADECIMENTOS ................................................................................................................ 6 LISTA DE FIGURAS .................................................................................................................. 8 SUMRIO .............................................................................................................................. 9 1 Introduo ................................................................................................................... 111.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

2

Embasamento Terico .................................................................................................. 142.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

3

Atividades de Estgio ................................................................................................... 353.1 3.2 3.3 3.4 Portal Uniuol ................................................................................................................... 36 Mdulo Biblioteca (BibSis) ............................................................................................... 40 Mdulo Aluno ................................................................................................................. 42 Mdulo Professor............................................................................................................ 47

9

4

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

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

10

1 IntroduoAs 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 TericoEsta 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.javaimport 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(); writer.println(Formulrio Servlet); writer.println(); writer.println(); writer.println(Nome:
); writer.println(Telefone:
); writer.println(Celular:
); writer.println(Endereo:
); writer.println(); writer.println(); } }

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 Formulrio HTML Nome:
Telefone:
Celular:
Endereo:

formulario.jsp Formulrio JSP Nome:

Telefone:

Celular:

Endereo:

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 Formulrio EL Nome:
${pessoa.nome}
Telefone:
${pessoa.tel}
Celular:
${pessoa.cel}
Endereo:
${pessoa.end}

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

27

Exemplo CSS