curso de sistemas de informação

Propaganda
UNIVERSIDADE FEDERAL DE SANTA CATARINA
CENTRO TECNOLÓGICO
CURSO DE SISTEMAS DE INFORMAÇÃO
Disciplina: INE5631 – Projetos I
Professor: Renato Cislaghi
Aluno:
Rony Reinehr Brand
Resumo do Artigo: "JDO Java Data Object”.
Rodrigo Urubatan Ferreira Jardim
Revista Mundo Java. Número 1. Ano I.
Este resumo pretende abordar alguns conceitos envolvidos com a persistência de dados utilizando
o API JDO (Java Data Object), que proporciona muitas facilidades para implementação de uma
camada de persistência sem que a camada lógica necessite conhecer a forma como este dados
são persistidos.
Em 1999, o desenvolvimento da API JDO foi iniciado em 1999 como parte da JCP e teve sua
primeira versão lançada em 2002. Ela é uma API que visa facilitar a construção de uma camada de
persistência, fazendo com que a camada lógica independa se os dados são persistidos em
arquivos, bancos de dados relacionais ou mesmo bancos de dados orientados a objetos.
Sua implentação é muito mais simples do que os EJBs (Enterprise Java Beans), pois utilizam
POJOs (Plain Old Java Objects), que não nada mais são do que Java Bean, com construtor padrão
sem parâmetros e métodos get e set para acessar suas propriedades.
Depois que o Java Bean é compilado e ele passa pelo Enhancer que modifica o bytecode, para
que ela passe a implementar a interface PersistentCapacle, de acordo com os metadados
especificados para o Objeto, permitindo a persistência dos seus dados.
Dessa forma, o trabalho do desenvolvedor é muito mais facilitado, pois ele continua construindo
suas classes da mesma forma, bastando apenas especificar o metadados do Objeto e construir
uma classe que utilize PersistenceManager que servirá de Fachada (Padrão de Projeto Facade)
para os Objetos Persistidos.
Outra vantagem da API JDO é o fato de existirem diversos fornecedores que possuem uma
implementação e também uma linguagem de consulta a JDOQL padrão, assim, se utilizarmos a
implementação padrão poderemos trocar de fornecedor sem maiores problemas, algo bastante
diferente da linguagem SQL(Structure Query Language) onde cada fornecedor possui sua
implementação da SQL, podendo tornar a troca de fornecedor algo bastante trabalhoso e com um
tempo considerável. Além disso, muitos fornecedores disponibilizam, seja de forma gratuita ou
paga, extensões que adicionam novas funcionalidades ao JDO e também a JDOQL.
JDOQL
É a linguagem de consulta utilizada por todas as implementações JDO. Ela é bastante parecida
com o Java, não necessitando uso de SQL. Através dela podemos realizar comparações entre
objetos, tipos primitivos encontrado no Java, ela também permite a ordenação e procura por
determinados Strings.
Assim, essa linguagem nos permite realizar consultas bastante complexas, sem a necessidade de
aprender uma linguagem como o SQL, mesmo sem a utilização de extensões. Se utilizarmos
extensões possuiremos em nossas mãos uma linguagem ainda mais poderosa, com a ressalva
que de nem todos os fornecedores implementam as mesma extensões.
Entretanto, em sua versão 1.0, que está sendo abordada neste artigo, a linguagem da JDOQL sem
o uso de extensões, não permite o uso de funções de agregação (min(), max(), count(), entre
outras). Porém, em sua versão 2.0 disponível em versão beta, já fornece estas funcionalidades, na
implementação padrão JDO, o JPOX(Java Persistence Objects).
Foi também através do JPOX que o JDO voltou a ganhar força, pois a Sun estava preste a
descontinuá-lo, já que ela financiava dois projetos “semelhantes” de persistência o EJB e o JDO.
Mas em uma reunião dos fornecedores que compõem o JAVA, viu-se que a duas tecnologias
possuíam cada um seu espaço, o EJB devido a sua complexidade deveria ser utilizado em projetos
grandes que são críticos, seja pelo número de acessos, número de transações, entre outros. Ele
também exige que a aplicação esteja em algum servidor de aplicação, como o Jboss.
Já com JDO não existe tal exigência, ele pode estar em aplicações locais e também em servidores
WEB como é caso do TomCat, que é utilizado pela maioria das aplicações WEB, sem contar que o
seu aprendizado é muito mais suave comparado a EJB. Ele também é uma solução muito mais
leve, podendo utilizá-lo em pequenos e médios projetos.
Referências:
JPOX Java Persistence Objects. Disponível em: <http://www.jpox.org/>. Acesso em 23 de maio de
2005.
Download