Escolar Documentos
Profissional Documentos
Cultura Documentos
TCC Final Semestre II
TCC Final Semestre II
CENTRO TECNOLGICO
LISTA DE FIGURAS
FIGURA 1 - ARCABOUO ARQUITETURAL...................................................................................................13
FIGURA 2 MVC - MODEL-2.............................................................................................................................14
FIGURA 3 - ARQUITETURA JAVA EE 5.............................................................................................................15
FIGURA 4 - APLICAES DE MULTICAMADA..............................................................................................25
FIGURA 5 - CENRIO DE APLICAO J2EE PROPOSTO.............................................................................27
FIGURA 6: COMUNICAO DO SERVIDOR JAVA EE...................................................................................32
FIGURA 7 - JAVA EE 5 APIS................................................................................................................................33
FIGURA 8 - SERVIDOR E RECIPIENTES DE JAVA EE 5.................................................................................30
FIGURA 9 - CICLO DE VIDA DE OBJETOS PERSISTENTES.........................................................................36
SUMRIO
INTRODUO...............................................................................................................................4
1.1
APRESENTAO.......................................................................................................................7
1.2
FORMULAO DO PROBLEMA............................................................................................8
1.3
JUSTIFICATIVAS........................................................................................................................8
1.4
OBJETIVOS.................................................................................................................................9
1.4.1
Objetivo Geral....................................................................................................................9
1.4.2
Objetivos Especficos.........................................................................................................9
1.5
DELIMITAO DO ESCOPO.................................................................................................10
O MERCADO...............................................................................................................................10
O DESENVOLVIMENTO............................................................................................................11
3.1
3.2
3.3
3.3.1
Padro de Arquitetura......................................................................................................14
3.3.2
Camada de Apresentao.................................................................................................16
3.3.3
Camada de Dados............................................................................................................17
REVISO BIBLIOGRFICA.....................................................................................................19
4.1
A PLATAFORMA JAVA..................................................................................................................19
4.2
JAVA EE......................................................................................................................................23
4.3
INTRODUO
Ele produz, gera, adquire, modifica, exibe ou transmite informao. Isto , o software
funciona como um veculo de entrega do produto mais importante da nossa poca a
informao. Ou seja, o software um programa de computador que permite escrever textos,
planilhas, navegar e se comunicar pela Internet, entre tantas outras funes.
A dcada de 90, em especial a sua segunda metade, foi marcada pela evoluo do uso
de softwares em todos os setores produtivos da sociedade. E o surgimento de uma nova
tecnologia: a tecnologia Web. A Web surgiu com o objetivo de formar um repositrio do
conhecimento humano (BERNESS-LEE, 1994) e divulgao de informaes. Mas ao longo
do tempo essa tecnologia foi sendo modificada de forma a incorporar novos recursos e
funes. Logo aps a fase inicial, foi incorporado como um meio de marketing e propaganda
para divulgao de empresas e seus produtos. Em seguida desenvolveu-se o comrcio
eletrnico e, por conseguinte sistemas de apoio e sistemas internos, tambm chamados de
extranets e intranets. Hoje, quase tudo que fazemos ou com que interagimos, seja
entretenimento, educao, economia, segurana, transportes, sade, etc passa pelo uso de
Antes do surgimento da Web o termo "Software Livre" era praticamente indito fora
do crculo da computao. Segundo Humberto Rossetti Baptista, com a exploso da Web foi
dado um sbito destaque a uma nova categoria de programas que praticamente 'carregava a
Internet movimentando diversos servios e em alguns casos indo at ao sistema operacional
das mquinas que compem a rede. A funo do modelo de software livre implementar e
manter a "liberdade" relativa a um programa. A motivao disto evitar que o conhecimento
seja retido, permitir que as pessoas se ajudem e identifiquem os autores em seus trabalhos e
derivados.
Alm disso, no h gastos com o pagamento de licenas de uso nem royalties. Essa
verba pode ser redirecionada para investimentos em Tecnologia de Informao (TI),
treinamento de profissionais e aquisio de melhores equipamentos. E os programas podem
ser adaptados de acordo com as necessidades especficas de cada usurio ou empresa. O
usurio pode buscar as atualizaes de cdigo diretamente com a comunidade de
desenvolvedores daquele aplicativo ou sistema, via internet, uma vez que as melhorias
promovidas so compartilhadas e tornadas pblicas. Tambm existem as empresas que
customizam seus produtos, vendem suporte e treinamento para estas plataformas. Ou seja,
flexibilidade uma palavra-chave para quem trabalha com software livre.
Toda essa liberdade gera uma evoluo constante e compartilhada, que faz do software
livre uma opo cada vez mais adequada e eficiente para o governo federal, estadual e
municipal. No entanto, a maioria dos municpios brasileiros sofre de carncia de recursos.
Seja carncia de recursos financeiros, seja de carncia de recursos humanos, no possuindo
pessoas habilitadas a gerenciar ou at mesmo compor um corpo tcnico especializado em
informtica. E temos o caso da Prefeitura de Rio das Ostras no estado do Rio de Janeiro, onde
a Prefeitura tem como poltica a adoo de software livre, mas quando fizeram uma licitao
1.1
APRESENTAO
O projeto Via Digital um projeto que pretende estimular uma nova dinmica em
torno da oferta de solues de software livre para prefeituras. Viabilizar a informatizao livre
de pequenas prefeituras atravs de um centro de referncia on-line de solues em gesto
municipal seu objetivo principal. E para isso, precisamos disponibilizar um conjunto de
mdulos integrveis que dem conta das atividades bsicas de uma prefeitura. Entre esses
mdulos encontra-se o mdulo de planejamento e acompanhamento de frota. Para
desenvolver esse mdulo, vamos nos basear na consultoria realizado pela empresa SWFactory
levantamento dos requisitos necessrios para desenvolvimento desse sistema. Essa consultoria
foi realizada em Abril de 2006 e aps uma anlise dos requisitos verificamos que o modelo
proposto aplicvel no contexto do projeto Via Digital.
1.2
FORMULAO DO PROBLEMA
O projeto Via Digital no possui um mdulo que abrange o planejamento e
1.3
JUSTIFICATIVAS
Como justificativa para desenvolvimento do projeto de desenvolvimento do mdulo de
1.4
1.4.1
OBJETIVOS
Objetivo Geral
O objetivo geral do trabalho realizar a validao e implementao do mdulo de
1.4.2
Objetivos Especficos
Desenvolver um Sistema Web que ir auxiliar o administrador da frota a planejar as
manutenes, assim como acompanhar os gastos com cada veculo. Estudar e programar a
consultoria realizada pela empresa SWF Consultoria e Sistemas com base em estudos
realizados na prefeitura de Amparo no Estado de So Paulo.
1.5
DELIMITAO DO ESCOPO
O foco do nosso trabalho auxiliar o administrador da frota a planejar todas as
manutenes, assim como acompanhar todos os gastos com cada veculo da frota (automvel,
nibus, tratores, etc.). No trataremos do rastreamento ou localizao do veculo em trnsito.
O MERCADO
de
Informao
Modernizao
Administrativa
diferencial do nosso sistema em relao ao do CTIMA, baseado no que est disponvel para
anlise, por ser desenvolvido em Java, no qual permite uma maior robustez, escalabilidade e
segurana.
Outro
software
encontrado
foi
SIAMWEB
(encontrado
no
site
O DESENVOLVIMENTO
Iremos nesse tpico discorrer sobre tecnologias a serem aplicadas no nosso software e
quais tecnologias sero utilizadas.
3.1
3.2
so para que possam rodar o software desenvolvido nos servidores do projeto. Os requisitos
so os seguintes:
3.3
projeto Via Digital, e em consenso com os responsveis pelo projeto, optamos por novas
tecnologias, atualizaes de tecnologias solicitadas pelo projeto, outras similares a tecnologias
requeridas e algumas novas tecnologias que contemplam os requisitos e que no
comprometem a compatibilidade com o servidor e outros mdulos do projeto.
3.3.1
Padro de Arquitetura
A plataforma Java J2EE 1.4 oferece uma base de desenvolvimento ampla, estvel, bem
testada e com alto desempenho final. No entanto essa versatilidade acarreta certo prejuzo no
tempo de desenvolvimento do software. Comparativamente a plataforma .NET (Microsoft)
3.3.2
Camada de Apresentao
O Struts oferece uma infra-estrutura de desenvolvimento web orientado pelos
principais designs patterns sugeridos para MVC. Este o framework MVC mais difundido no
mercado, e sua robustez e popularidade o tornam extremamente competitivo ao escolher entre
tecnologias web. Mesmo com as facilidades e sucesso do Struts, havia no mercado uma
autntica demanda por mais produtividade de desenvolvimento. E ainda havia espao para
uma especificao de padronizao de frameworks MVC. Ento, aparece a proposta do Java
Server Faces.
A plataforma Java EE 5 permite uma arquitetura flexvel sendo que tanto o container
web quanto o container EJB so opcionais. Como nosso trabalho tem como foco implementar
um mdulo de planejamento e acompanhamento da frota de prefeituras para web, no
aplicaremos EJB. E o projeto Via Digital no especifica servidores de aplicaes. Assim,
aplicaremos padres e estratgias de projeto que consideramos necessrios construo de
aplicaes J2EE profissionais no distribudas. Como, no usaremos EJB, apenas o container
web, que ser o Tomcat, definido pelo projeto. Isso no impede que futuramente seja
implementado o servidor de aplicaes e EJB. Portanto, no ferimos nossos requisitos iniciais,
mantendo a escalabilidade e simplicidade de manuteno.
3.3.3
Camada de Dados
Qual alternativa devemos usar para a camada de persistncia? As principais
alternativas so JDBC, EJB/CMP (Entity Beans), Hibernate ou JPA. JDBC pode ser muito
trabalhoso se considerarmos a independncia do BD requerida. Entity Beans, que s
funcionam dentro de containers EJB, esto descartados pela exigncia de ser possvel rodar
apenas em um container web. O Hibernate tem como principal problema a produtividade, com
a necessidade de escrever arquivos de mapeamento longos e complexos, sujeitando-se a erros
e manuteno.
da linguagem Java (Java SE 5.0 ou superior). Tambm d suporte a uma rica linguagem de
consulta, semelhante SQL, permitindo consultas estticas ou dinmicas. Com isso,
adotaremos a JPA (Java Persistence API) que atende nossos requisitos e vai facilitar muito a
reutilizao de software colocada anteriormente. Alm disso, com a JPA possvel trocarmos
o banco de dados alterando apenas o arquivo XML de persistncia, atendendo nosso requisito
de flexibilidade.
Para nossa aplicao ser integralmente funcional dever abordar algum banco de
dados. Nessa abordagem, para o ambiente de desenvolvimento iremos utilizar o banco de
dados POSTGRESQL, por ser requisito estabelecido pelo projeto Via Digital. livre e
robusto.
Mas para que nossa aplicao fosse perfeitamente escalvel, recomendaramos o banco
de dados Derby da Apache em parceria com a IBM, que livre e funcional, alm de ser um
banco de dados escrito tambm na linguagem Java. O Derby facilmente migrado para o
banco de dados da IBM o DB2 Express-C Edition (sem a necessidade de reescrever o banco
de dados) que tambm gratuito, e comparado a banco de dados como o Oracle e SQL Server
4.1
REVISO BIBLIOGRFICA
A Plataforma Java
A plataforma Java o nome dado ao ambiente computacional, ou plataforma, da
empresa Sun Microsystems. O desenvolvedor de software cria programas para este ambiente
atravs da linguagem de programao Java e de um conjunto de ferramentas de
desenvolvimento[PTJAVA07]. Neste caso, a plataforma no se refere a um sistema
operacional ou hardware especfico, mas a um programa chamado de mquina virtual, e a um
conjunto de bibliotecas que disponibilizam funcionalidades comuns. Por isso, um programa
escrito para a plataforma Java necessita desses dois componentes para ser executado: a
mquina virtual Java, e um conjunto de bibliotecas de classe que disponibilizam um srie de
servios para esse programa. O pacote de software que contm a mquina virtual e esta
biblioteca de classes conhecido como JRE (Java Runtime Environment).
As APIS servem a trs propsitos dentro da plataforma Java. Como outras bibliotecas
padro, elas disponibilizam ao programador um conjunto de funes bem conhecidas que
realizam tarefas comuns, como a manuteno de listas de elementos ou manipulao de
strings. Em adio, a biblioteca contm uma interface para tarefas que dependem do
hardware e do sistema operacional. Tarefas como acesso a rede e a arquivos so altamente
dependentes das capacidades nativas do ambiente. As APIS java.net e java.io
implementam o cdigo necessrio internamente, e disponibilizam uma interface padro para
que as aplicaes Java possam executar estas tarefas. Finalmente, se alguma plataforma no
suportar alguma funo que uma aplicao Java necessita, as APIS implementam esta
funcionalidade usando os recursos disponveis, ou disponibilizam um meio consistente para
que a aplicao verifique a presena de determinada funcionalidade.
Alm disso, pode-se destacar outras duas plataformas Java mais especficas:
4.2
Java EE
O Java EE (Java 2 Enterprise Edition) ou J2EE uma plataforma de programao de
computadores que faz parte da plataforma Java. Ela voltada para aplicaes multi-camadas,
baseadas em componentes que so executados em um servidor de aplicaes.
este seja utilizado por qualquer tecnologia que prov suporte a um destes padres de
comunicao e que seja localizado virtualmente a partir de qualquer rede TCP/IP.
A plataforma J2EE permite uma arquitetura flexvel sendo que tanto o container web
quanto o container EJB so opcionais. Como nosso trabalho tem como foco implementar um
mdulo de planejamento e acompanhamento da frota de prefeituras para Web, no
estudaremos EJB. Assim, apresentamos padres e estratgias de projeto que consideramos
necessrios construo de aplicaes J2EE profissionais no distribudas. Como apresentado
no livro [J2EETIP], uma aplicao web em trs camadas na maioria das vezes a escolha
inicial para uma aplicao J2EE. Nesta configurao, o container web encarrega-se de tratar
tanto a lgica de apresentao como a de negcios e organizaremos estas responsabilidades de
forma a criarmos aplicaes modulares, organizadas, com reaproveitamento de cdigo e mais
manutenveis e extensveis, ou seja, como criar aplicaes profissionais neste cenrio.
(JSP
(EJB
);
Uma pgina criada com a tecnologia JSP, depois de instalada em um container web
compatvel com a tecnologia J2EE, transformada em um Servlet. A tecnologia Java Server
Faces construda sobre servlets ou pginas JSP e um framework MVC para o
desenvolvimento de aplicaes Web.
Java EE. Um servidor de Java EE composto container web e /ou container EJB.
Java EE.
XML, e outros), que so geradas pelos componentes web que rodam na camada web;
Algumas vezes, um cliente web chamado de thin client. Os thin clients geralmente
no fazem querys na base de dados, no executam regras de negcio complexas, ou no se
conectam a sistemas legados. Quando voc usa um thin client, tais operaes so executadas
no servidor J2EE, onde podem prover a segurana, a velocidade, os servios, e a
confiabilidade das tecnologias do servidor J2EE.
E nessa comunicao temos de ter preocupao com a segurana. E J2EE tem como
destaque a segurana. Enquanto outros modelos de aplicaes empresariais requerem
plataforma especfica de segurana em cada aplicao, o ambiente da segurana de J2EE
permite restries de segurana a serem definidos na hora do deploy. A plataforma de J2EE
torna aplicaes portveis a uma grande variedade de implementaes de segurana
protegendo os desenvolvedores da aplicao da complexidade destas caractersticas de
segurana.
Entre vrias APIS vamos apresentar a novssima JPA (Java Persistence API). JPA a
especificao padro para o gerenciamento de persistncia e mapeamento objeto relacional,
surgida na plataforma J2EE na especificao do EJB 3.0 (Enterprise Java Beans 3.0).
Introduzida no intuito de substituir os Entity Beans (que foram descontinuados) e simplificar
o desenvolvimento de aplicaes J2EE e Java SE que utilizam persistncia de dados. JPA
possui uma completa especificao para realizar mapeamento objeto relacional, utilizando
anotaes da linguagem Java (Java SE 5.0 ou superior). Tambm d suporte a uma rica
linguagem de consulta, semelhante SQL, permitindo consultas estticas ou dinmicas.
Nas diversas aplicaes existentes, sempre que for necessrio propagar o estado de um
objeto que est em memria para o banco de dados ou vice-versa, h a necessidade de que a
aplicao interaja com uma camada de persistncia. Com a API JPA, isso feito invocando o
gerenciador
de
persistncia,
tambm
conhecido
como
gerenciador
de
entidades
Um objeto que se encontra no estado new pode ser definido como aquele que foi
definido a partir do operador new e que no possui um valor para o seu identificador
persistente, por exemplo, aquele com um ciclo de vida limitado ao tempo de vida do processo
que o instanciou. Objetos neste estado tambm so conhecidos como objetos transientes. Em
outras palavras, o objeto no est associado ao EntityManager.
J um objeto no estado managed aquele que tem um valor definido para o seu
identificador persistente e est associado a um contexto de persistncia. Assim, o
EntityManager ir fazer com que a base de dados seja atualizada com novos valores dos
atributos persistentes no fim da transao.
Por fim, tambm existem aqueles objetos que se encontram em um estado denominado
detached, que possuem registros correspondentes na base de dados, mas no esto associados
a um contexto de persistncia.
4.3
livre. Mas antes de discorrermos sobre o PostgreSQL vamos estudar um pouco de histria.
locking. Resumidamente, permite que dados possam ler do banco e escrever sem utilizar
explicitamente um bloqueio. Isto permite isolar a leitura da escrita. Caso o optimistic
locking no funcione adequadamente, pode-se utilizar explicitamente o bloqueio de tabela ou
linha.
BIBLIOGRAFIA
BERNESS-LEE, T. The World-Wide Web, Communications of the ACM, New York, v. 37,
n.8, Agosto 1994.
PRESSMAN, Roger S. Engenharia de Software. 5. ed. Rio de Janeiro: McGraw-Hill, 2002.
843p.
[SINGH02] Singh, I.; Stearns, M. J., Enterprise Team. Designing Enterprise Applications with
the J2EE Platform, Second Edition, Addison Wesley, 2002.
ROCHA, Jos Antonio Meira da. Modelo de Ficha bibliogrfica e de leitura. Documento
digital em formato PDF disponvel em <http://www.meiradarocha.jor.br/uploads/1021/193/
fichas-bibliograficas-e-de-leitura.pdf>. Acesso em: 17 Maio 2007.
DEITEL, H. M.; DEITEL, P. J.; Java Como Programar; traduo Carlos Arthur Lang
Lisba. - 4 Edio Porto Alegre : Bookman, 2003 Reimpresso 2004.
Humberto Rossetti Baptista, Software Livre - Definio e Direes, disponvel em
http://www.ime.usp.br/~cgmac/bccnews/softwarelivre.html Acesso em: 25 de Maio de 2007.
GeNESS - UFSC. Via Digital. Disponvel em: < http://viadigital.org.br/>. Acesso em: 15 fev.
2007.
NETBEANS Disponvel em: < http://www.netbeans.org/>. Acesso em 27 maio 2007.
[PTJAVA2007]
Plataforma
Java
Disponvel
http://pt.wikipedia.org/wiki/Plataforma_Java >. Acesso em 27 maio 2007.
em:
<
Rick, C.; Inscore, J.; Enterprise Partners. J2EE Technology in Practice: Building Business
Applications with the Java 2 Platform, Enterprise Edition, Sun Microsystems Press, 2001.
J2EE - Disponvel em: <http://pt.wikipedia.org/wiki/J2EE >. Acesso em 27 maio 2007.
Tutorial JavaEE5 - Disponvel em: <http://java.sun.com/javaee/5/docs/tutorial/doc/>. Acesso
em 27 maio 2007.
Ball, J.; Carson, D. B.; Evans, I; Haase, K; Jendrock, E; The Java EE 5Tutorial.; February
18, 2006.; Sun; www.java.sun.com; Acesso em 30/04/2006 s 01:05hs.
Revista Java Magazine Edio 42, 44, 45, 46 Ano V.
Revista SQL Magazine Edio 41, Ano 4.
Revista Mundo Java Edio 21, 22, Ano IV.
Revista Mundo Java Edio 16, Ano III.
Silva, Marcos Alberto Lopes da. Novos recursos para desenvolvimento na plataforma Java EE
5
com
a
especificao
EJB
3.0.
Disponvel
em:
<http://www.linhadecodigo.com.br/artigos.asp?id_ac=1085&pag=4>. Acesso em 27 maio
2007.
Software
Livre
Mudando
para
Melhor
Disponvel
em:
<http://www.softwarelivre.gov.br/documentos/cartilhaempdf> Acesso em 25 junho 2007.
CTIMA - <http://ctima.itajai.sc.gov.br/ctima.php> Acesso em 2 de julho 2007.