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.