Você está na página 1de 14

INSTITUTO FEDERAL DE EDUCAO, CINCIAS E TECNOLOGIA - IFAM

ALEXSANDE SALES DE LIMA


EDNA CRISTINA DE OLIVEIRA FEITOSA
MRCIA REGINA GEMAQUE XISTO

FRAMEWORKS

MANAUS AM
2016

ALEXSANDE SALES DE LIMA


EDNA CRISTINA DE OLIVEIRA FEITOSA
MRCIA REGINA GEMAQUE XISTO

FRAMEWORKS

Trabalho elaborado para obteno


de nota na disciplina
Desenvolvimento WEB II, no curso
TMSI-2014, solicitado pelo
professor Amadeu Anderlin Neto.

MANAUS AM
2016

Sumrio

INTRODUO.......................................................................................................... 4
Framework............................................................................................................... 5
Hibernate................................................................................................................. 6
Exemplos de Aplicaes na WEB com Hibernate...........................................................8
Apache Struts......................................................................................................... 10
Criando uma aplicao exemplo com o Struts..............................................................12
CONCLUSO......................................................................................................... 13
REFERNCIAS....................................................................................................... 14

INTRODUO

Apresentamos neste trabalho conceitos, caractersticas, modelos,


funcionalidades, padres e aplicaes de frameworks como Hibernate e
Apache Struts na WEB.

Framework
Um framework normalmente um conjunto de bibliotecas para conseguir
executar uma operao maior. comum um framework encapsular os
comportamentos da API (Interface de Programao de Aplicao) em implementaes
mais complexas permitindo o seu uso deforma mais flexvel, frequentemente atravs
de extenses, configuraes e inverses de controle. Como pode ser considerada
uma camada em cima da API eventualmente pode simplific-la em certo sentido. Ele
costuma dar consistncia a um conjunto de bibliotecas (pena que acontece o oposto
em alguns casos).
Trabalhar utilizando frameworks parte da necessidade do estudo prvio da
ferramenta antes de coloc-la em pratica, pois encontrar forma diferente de utilizar
essa ferramenta da qual no se est habituado promovendo a sensao de estar
engessado, conforme Minetto (2014).
Quando um desenvolvedor comea a estudar um novo framework, ele se depara
muitas vezes, com uma forma diferente de programar ou at de pensar um
sistema. (MINETTO, 2014, p. 17).
Os desenvolvedores que utilizam algum framework esto familiarizados com sua
estrutura, classes e bibliotecas, aplicar manuteno em software em que foi
utilizado um framework se torna mais fcil, pois o mesmo segue os padres de
implementaes por isso desta facilidade.
Os frameworks trazem grandes vantagens, que no seja apenas a facilidade de
implementao dentro dos padres estabelecidos. Em parte podem ser
automatizados em tarefas repetitivas, em operaes que deve-se manipular dados
vindos do banco de dados, as operaes como incluso, excluso e alterao so
praticamente iguais para todos na base de dados. Desta forma, no faz sentido
repetir essa parte do cdigo-fonte que podem ser automatizadas contida em uma
ferramenta do framework. (MINETTO, 2007).

Em uma aplicao que tenha de manipular dados vindos de uma tabela na base de
dados, as operaes de incluso, excluso e alterao so praticamente iguais
para todas as tabelas envolvidas. No teria sentido repetir o esforo para
desenvolver esse cdigo-fonte vrias vezes, e a gerao dessas funes poderia
ser automatizada por alguma ferramenta contida no framework.

Hibernate
O framework Hibernate (Persistncia de Dados), foi desenvolvido por uma equipe de
programadores Java liderada por Gavin King e teve sua primeira verso divulgada em 2004.
Segundo King, um dos objetivos ao criar o projeto era resolver seus problemas referentes
persistncia causados pelo EJB 2.0, o qual considerava muito complexo.
Com um escopo muito vasto, o projeto tornou-se invivel de ser mantido apenas nos
tempos livres, assim King aceitou entrar para o JBoss Group, passando a ser remunerado
para continuar a desenvolver o projeto, o que lhe permitiu dedicao completa ao
Hibernate.
O Hibernate um framework de mapeamento objeto-relacional para aplicaes
Java, ou seja, uma ferramenta para mapear classes Java em tabelas do banco de
dados e vice-versa. bastante poderoso e d suporte ao mapeamento de
associaes entre objetos, herana, polimorfismo, composio e colees.
O Hibernate pode ser usado por uma aplicao Java diretamente, ou podemos
acessar Hibernate atravs de outro framework. Podemos chamar o Hibernate
atravs de uma aplicao Swing, Servlet, Portlet, JPS ou qualquer outra aplicao
Java que tenha acesso a uma Base de Dados. O Hibernate possui suporte para
Java Management Extensions (JMX), J2EE Connector Architecture (JCA), e Java
Naming e Directory Interface (JNDI). Com JMX podemos configurar o Hibernate
enquanto ele est rodando. Hibernate tambm pode ser publicado (deployed) como
um JCA Connector e ainda usar JNDI para obter uma fbrica de sesso do
Hibernate. Por fim, Hibernate usa drivers Java Database Connectivity (JDBC) para
acessar base de dados relacionais. Vale ressaltar que Hibernate no sobrepe o
JDBC como uma camada de conectividade de base de dados e sim situa-se um
nvel acima do JDBC.

Caractersticas

O objetivo do Hibernate diminuir a complexidade entre os programas Java,


baseado no modelo orientado a objeto, que precisam trabalhar com um banco
de dados do modelo relacional. Em especial, no desenvolvimento de
consultas e atualizaes dos dados.
Sua principal caracterstica a transformao das classes em Java para
tabelas de dados (e dos tipos de dados Java para os da SQL).
Na verso 3.x o Hibernate implementa a especificao JPA (Java Persistence
API) atravs do conceito de anotaes (implementada a partir do JDK5), o
que facilita ainda mais o mapeamento objeto-relacional, que pode agora ser
feito diretamente na classe, substituindo o uso dos arquivos XML.
Gerenciamento de transaes no responsabilidade do Hibernate, e sim de
outros elementos na infraestrutura do programa.
Pode ser utilizado em aplicaes Java standalone ou em aplicaes Java EE,
utilizando servlet ou sesses EJB beans.
um software livre de cdigo aberto distribudo com a licena LGPL (GNU
Lesser General Public License).

Exemplos de Aplicaes na WEB com Hibernate


Herana
A herana um princpio da POO que permite a criao de novas classes a partir de
outras previamente criadas. Essas novas classes so chamadas de subclasses, ou
classes derivadas; e as classes j existentes, que deram origem s subclasses, so
chamadas de superclasses, ou classes base. Deste modo possvel criar uma
hierarquia dessas classes, tornando, assim, classes mais amplas e classes mais
especficas. Uma subclasse herda mtodos e atributos de sua superclasse; apesar
disso, pode escrev-los novamente para uma forma mais especfica de representar
o comportamento do mtodo herdado.
Listagem 1: Implementao da Classe Pessoa
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "tipo", length = 1, discriminatorType =
DiscriminatorType.STRING)
@DiscriminatorValue("P")
public class Pessoa implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long idPessoa;
private String nome;
@Column(insertable=false, updatable=false)
private String tipo;
//getters and setters omitidos
}
O que vai nos importar no cdigo acima so 3 linhas:
1. @Inheritance(strategy = InheritanceType.SINGLE_TABLE): Identifica que a
estratgia de herana ser de uma nica tabela, ou se preferir, um tabelo
para tudo.
2. @DiscriminatorColumn(name = "tipo", length = 1, discriminatorType =
DiscriminatorType.STRING): Identifica que o campo que armazenar o
discriminator o tipo, de tamanho 1, do tipo String.

3. @DiscriminatorValue ("P"): Identifica que a Classe Pessoa ser identifica com


o atributo P na tabela Pessoa, ou seja, onde tiver P porque aquele
registro uma pessoa.
Listagem 2: Implementao da Pessoa Fsica
@Entity
@DiscriminatorValue(value = "F")
public class PessoaFisica extends Pessoa {
private String cpf;
//getters and setters omitidos
}
Bem simples o que nos interessa saber que seu DiscriminatorValue F, ou seja,
onde tiver um F no campo tipo da tabela, significa que uma Pessoa Fsica.
Listagem 3: Implementao da Pessoa Jurdica
@Entity
@DiscriminatorValue(value = "J")
public class PessoaJuridica extends Pessoa {
private String cnpj;
//getters and setters omitidos
}
Dispensa explicaes, mas importante ser redundante para fixao do contedo.
Onde tiver o valor J no campo tipo, significa que uma Pessoa Jurdica.

10

Apache Struts
O Struts um framework, baseado em open-source pelo projeto Jakarta,
auxiliando a criao de aplicaes para a Web. Foi criado em Java, e seu ncleo
formado por uma camada flexvel, proveniente das tecnologias Java Servlets,
JavaBeans e XML. Contamos ainda com o desenvolvimento de aplicaes do
moedlo MVC (Model-View-Controller). Possui um componente denominado
Controller que se integra a tecnologias que fornecem suporte aos componentes
Model (como JDBCe EJBs), e View (como JSP e XSLT). Desenvolvido a partir de
maio de 2000, teve sua concluso no meio do ano de 2001, data de incio da
primeira verso. A equipe responsvel pelo projeto foi de cerca de 30
desenvolvedores, incluindo o renomado Craig R. MacClanahan, pioneiro e arquitetodesenvolvedor do framework. Chegou ao ponto de ser o padro de mercado em
aplicaes Web baseada em Java. Mas como em qualquer projeto de software j se
falam em sucessores para o Struts, como o Java Server Faces (JSF), tambm
desenvolvido por MacClanahan.
O desenvolvimento de uma aplicao do Struts semelhante ao
desenvolvimento de qualquer outro tipo de aplicao da Web no NetBeans IDE.
No entanto, o seu kit de ferramentas de desenvolvimento da Web estar mais
completo se voc aproveitar o suporte a Struts oferecido pelo IDE. Por exemplo,
voc usa os modelos no IDE para criar objetos Action do Struts e Beans ActionForm.
Durante a criao, o IDE registra automaticamente essas classes no arquivo strutsconfig.xml e permite ampliar este arquivo facilmente usando os itens de menu
exibidos ao clicar com o boto direito do mouse no Editor de Cdigo-Fonte.
Como muitas aplicaes da Web utilizam pginas JSP da view, o Struts
tambm oferece bibliotecas de tags personalizadas que facilitam a interao com
forms HTML. No Editor de Cdigo-Fonte do IDE, voc pode chamar o suporte
funcionalidade autocompletar cdigo e a Javadoc, que ir ajud-lo a trabalhar de
forma eficiente com essas bibliotecas.

11

Padres de Projeto

Padres de projeto so solues j testadas que se mostraram eficientes para


resolver problemas recorrentes e que devem perseguidas para resoluo destes
problemas. Esses padres so identificados e reutilizados, inclusive em
desenvolvimento de Software. Os padres servem como um guia no
desenvolvimento de novas aplicaes. Eles mostram qual a melhor maneira para se
implementar a aplicao, aps definio de caractersticas e requisitos do sistema.
Neste contexto, o padro MVC viabiliza uma maneira eficiente de projetar
sistemas de software interativos. Sua ideia central separar as interfaces dos dados
representados. A utilizao do padro MVC torna as aplicaes mais fceis de
serem desenvolvidas e mantidas, caso as seguintes caractersticas estejam
presentes: a aparncia possa ser mudada sem afetar as estruturas de dados e
lgica do negcio e a aplicao deve manter diferentes interfaces, como linguagens
diversas ou diferentes nveis permisso de usurio.
Modelo 1: maneira mais fcil de desenvolver aplicaes baseadas em JSP. Nesse
modelo, ao clicar em um link, uma pgina JSP chamada diretamente. O Cdigo
JSP contm cdigo embutido para acessar o Java Beans do Modelo. O Java Beans
do Modelo contm atributos para capturar os parmetros passados pela requisio.
Alm disso, ele contm lgica de negcios para acessar os dados necessrios para
a pgina. A pgina JSP ento mostrada em HTML usando Java Beans, podendo
usar tambm classes auxiliares e outras tags. Este modelo indicado para
aplicaes de pequeno porte, pois h muitos scriptlets embutidos no JSP.
Modelo 2 MVC: A principal diferena entre o Modelo 1 e o Modelo 2 que no
segundo, um controlador gerencia as requisies de um usurio, ao invs da prpria
pgina JSP. O controlador implementado como um servlet. Neste modelo
praticamente no existem scriptlets, mas eles ainda precisam ser usados nesse
modelo. Porm em comparao com o modelo 1, esta bem mais fcil de se manter
e reusar.

12

Criando uma aplicao exemplo com o Struts


O primeiro passo ser criar a estrutura padro para aplicativos WEB utilizando
Servlets, contendo uma pasta WEB-INF, onde ser colocado o arquivo web.xml. O
arquivo web.xml ter o seguinte contedo:
No diretrio WEB-INF, devero ser colocados os descritores de custom tags do
Struts (arquivos .tld).
Depois disso, devemos criar o diretrio WEB-INF/classes, onde sero colocados os
arquivos .class, dentro de seus determinados pacotes, e o diretrio WEB-INF/lib,
onde sero colocados os arquivos .jar do Struts. Assim, construiremos um aplicativo
simples, de cadastro e consulta de CDs e DVDs, categorizados por gnero (para
isso utilizaremos um banco de dados Microsoft Access 2000, acessado atravs de
uma conexo ODBC via JDBC). No nosso exemplo, o nome da fonte de dados
(DSN) da conexo ODBC ser Catalogo. A aplicao permitir a incluso e a
consulta de CDs ou DVDs. O banco conter apenas as tabelas para gnero
(Genero) e catlogo (Catalogo, para armazenar seus CDs e DVDs). Teremos
apenas 5 (cinco) pginas, que serviro para exibir a lista de todos os itens do
catlogo e para a incluso e consulta desses itens.

13

CONCLUSO

A utilizao de frameworks em projetos de desenvolvimento de softwares se


torna uma prtica bastante interessante, quando se pratica as boas tcnicas
de programao.

O Hibernate uma ferramenta muito utilizada para otimizar o mapeamento


objeto-relacional e, oferece uma srie de recursos para suportar o
mapeamento de objetos, relacionamentos, herana etc. Alm do mais,
possibilita otimizar a concorrncia entre transaes e dispe de recursos que
aumentam o desempenho na manipulao de dados. Dessa forma, estudar e
utilizar esta ferramenta, sem dvidas, enriquecer o projeto de software e
trar maiores resultados aplicao final.

O framework Struts vem se firmando como um padro no seu segmento,


influenciado principalmente pela comunidade mundial de colaboradores que
conferem estabilidade e robustez inestimveis. A capacidade de ser utilizado
em conjunto com vrias tecnologias tambm pode ser citada como um fator
importante para a sua popularidade. Para conseguir utilizar toda a
infraestrutura oferecida pelo framework, necessrio que o desenvolvedor
no conhea apenas o funcionamento e a forma de configurao do Struts,
mas que conhea tambm Servlets e JSP.

14

REFERNCIAS
Material da Internet:

DOS, Alexandre. Fundamentos do Java Struts. Site: DEVMEDIA.

Disponvel em:
http://www.devmedia.com.br/fundamentos-do-java-struts/7238. Acesso: 25/08/2016

OLIVEIRA, Eric. O Universo dos Frameworks Java. Site: Linha de Cdigo.

Disponvel em:
http://www.linhadecodigo.com.br/artigo/758/o-universo-dos-frameworks-java.aspx.
Acesso: 01/09/2016

Wikipdia.

Disponvel em:

https://pt.wikipedia.org/wiki/Framework
https://pt.wikipedia.org/wiki/Hibernate. Acesso: 06/09/2016
GEOVANE, Hudson. Entendendo e aplicando herana em Java. Site: DEVMEDIA.
Disponvel em:
http://www.devmedia.com.br/entendendo-e-aplicando-heranca-em-java/24544.
Acesso: 07/01/ 2016

Você também pode gostar