Marco Mendes´s Blog

Artigos, Comentários e Opiniões sobre Engenharia de Software, SOA e Tecnologias Java

Arquivo da categoria ‘Java EE’

Mais Suporte a JPA dos Fornecedores de Mercado Java - IBM Rational Application Developer 7.5 e WebSphere Application Server 7.0

Entidade JPA

A divisão Rational da IBM incorporou à sua IDE (RAD/RSA) - que ganhou recentemente o prêmio de melhor IDE do mercado na última pesquisa do Evans Data Group de Abril de 2008 - suporte visual para JPA. Este era um gap muito aguardado pela comunidade Java que trabalha com softwares IBM. Grande parte deste enorme atraso (se considerarmos que Java EE foi lançado em 2005) se deve a coordenação do lançamento do RAD 7.5 com o novo servidor de aplicação WAS 7.0, que possui suporte ao Java EE 5.0. O plugin para JPA é baseado no projeto open-source Eclipse Dali, mas conta com várias melhorias que fornecem maior velocidade e produtividade ao desenvolvimento de aplicações de larga escala.

Com o suporte da IBM temos o último dos grandes fornecedores de IDEs Java EE (junto com Oracle/BEA, SUN, JBOSS e BORLAND) com suporte oficial ao Java EE 5.0 e consolidação do JPA como tendência definitiva de mercado para a camada de persistência em Java. Para mais informações, um artigo sobre estas novas features está disponivel no Developer Works da IBM.

Sem comentários »

O avanço do JBOSS AS no mercado de Servidores de Aplicação

É fato notório para a comunidade de TI Brasileira o uso das soluções JBOSS para o desenvolvimento de aplicações corporativas basadas em Java. A ausência de um reconhecimento formal, entretanto, gerava questionamento por diversos decisores sobre a maturidade desta solução. Uma notícia recente, entretanto, lança o devido reconhecimento técnico e mercadológico desta solução.

O JBOSS AS figura no Gartner Magic Quadrant como um membro do quadrante líder, conforme mostrado na figura abaixo.

Quadrante Mágico Gartner - Servidores de Aplicação - 2008.

Vejo esta análise de forma similar as análises realizadas pelo grupos de investimento internacionais, como o Standard and Poors, a respeito da maturidade da economia Brasileira. A análise, por si só, nada muda na solução JBOSS AS, mas traz possibilidade de adoção da solução em contextos onde esta hipótese nao caberia por falta de respaldo de institutos de renome como o Gartner.

Apesar disso, o grupo JBOSS ainda carece de um modelo de serviço e suporte mais presente no Brasil para que possa enfrentar definitivamente os seus grandes concorrentes (BEA, IBM, Oracle e Microsoft) no disputado mercado de servidores de aplicação. Mais informações sobre esta análise podem ser encontradas no relatório do Gartner, disponível aqui.

4 comentários »

Mais um Servidor de Aplicação Open-Source Java EE 5.0 - IBM WebSphere Community Edition 2.0

A IBM recentemente lançou o IBM WAS CE (WebSphere Application Server Community Edition) 2.0, com conformidade completa ao padrão Java EE 5.0. O WAS CE é baseado no kernel do Apache Geronimo e conta com tecnologias tais como o OpenEJB, Apache Axis, Apache ActiveMQ e Apache Derby, entre outras.

Assim como o JBOSS AS, este produto também não possui custo de licenciamento e se torna mais uma opção interessante no mercado de servidores Java EE de código aberto e licenciamento livre.

Alguns recursos sobre o WAS CE são disponibilizados abaixo:

Sem comentários »

A Nova Lua de Júpiter vai aumentar a sua produtividade - Parte 2

Europa foi uma das várias mulheres de Zeus (Júpíter) na mitologia greco-romana. Em homenagem ao planeta, a segunda maior lua de Júpiter foi batizada de Europa.

Europa também é o nome do novo projeto Eclipse, assim como Callisto (outra lua de Júpiter e outra de suas mulheres), compilação de uma linha de base com 11 projetos no Eclipse 3.2.

Seguindo a idéia do projeto Callisto, o Eclipse continua em um processo de coordenação de múltiplos projetos em um linha de base cada vez mais madura e profissional. Neste lançamento, temos 21 projetos compilados em uma linha de base sobre o Eclipse 3.3.

Os projetos são:

  • AspectJ Development Tools (AJDT) 1.5
  • Business Intelligence and Reporting Tools (BIRT) 2.2.0
  • Buckminster 0.1.0
  • C/C++ Development Tools (CDT) 4.0
  • Data Tools Platform (DTP) 1.5
  • Device Software Development Platform - Device Debugging (DSDP.DD) 0.9
  • Device Software Development Platform - Target Management (DSDP.TM) 2.0
  • Dynamic Languages Toolkit (DLTK) 1.0
  • Dash (Eclipse Monkey) 1.0
  • Eclipse Communication Framework (ECF) 1.0.0
  • Eclipse Platform, JDT, PDE and Equinox 3.3
  • Eclipse Modeling Framework (EMF) 2.3
  • Eclipse Modeling Framework - Query, Transaction, Validation (MQ, MT, VF) 1.1
  • Graphical Editing Framework (GEF) 3.3
  • Graphical Modeling Framework (GMF) 2.0
  • Model Development Tools (MDT) 1.0
  • Model to Text (M2T) - JET 0.8
  • Mylyn 2.0
  • SOA Tools Platform (STP)
  • Test and Performance Tools Platform (TPTP) 4.4
  • Web Tools Platform (WTP) 2.0

Sem dúvida, a grande vedete deste lançamento é o WTP 2.0 (Web Tools Platform), que traz importantes ferramentas visuais para suporte a JPA , JSF e projetos completos Java EE 5.0. Temos, por exemplo, um editor visual drag and drop para JSF.

Apesar disto, faço minhas apostas em outros projetos que ainda não tem tanta expressão, mas que prometem bastante.

  • STP - SOA Tools Platform - Embora ainda em processo de maturação (0.6), este projeto irá ofertar uma infra-estrutura para o desenvolvimento de projetos de arquiteturas orientadas por serviço. Esta versão inicial traz já uma amostra do potencial do Eclipse para suporte a SOA.
  • MyLyn - Um projeto simples, mas excepcionalmente interessante. O MyLyn é uma ferramenta para micro-gerência de projetos e sucede o projeto Mylar, do qual escrevi um blog aqui há algum tempo. O MyLyn permite que uma pessoa controle o tempo gasto nas suas tarefas ou nas tarefas do seu time, bem como fazer o controle de ciclo de vida de atividades, defeitos, melhorias e outros tipos de ocorrências, integrado ou não a itens de configuração do Eclipse (códigos, arquivos, modelos e outros elementos de projetos). O MyLyn deve permitir que desenvolvedores, líderes técnicos e mesmo gerentes consigam implementar conceitos de gerência e agile management de forma bastante transparente e não intrusiva.
  • ECF - O Eclipse Communications Framework traz para o Eclipse ferramentas colaborativas, mensagens e comunicação ponto a ponto. Ele segue uma tendência da tecnologia Jazz, que promete revolucionar a forma como times colaboram para desenvolver projetos. Mais informações sobre o ECF podem ser achadas aqui, embora esta tecnologia ainda deve se tornar mais estável (assim como o STP) na versão Eclipse 2008, chamada Ganimedes.

Mais informações sobre o Europa podem ser achadas aqui:

  • Página principal: http://www.eclipse.org/europa
  • Revisões: http://www.eclipse.org/europa/europareviews.php
  • Personalização do Europa: http://www.eclipse.org/downloads/moreinfo/custom.php

Quem é Ganimedes? Mais uma mulher de Zeus? Em verdade, Ganimedes era um cara, mas Zeus não perdoava ninguém e se apaixonou por ele (Wiki-Ganimedes). Em tempo, Ganimedes também é mais uma lua de Júpiter. Em 2008 escrevo um blog sobre ele!

1 comentário »

O Modelo Unificado para os Frameworks de Persistência em Java - JPA

Os frameworks de persistência em Java SE e Java EE surgiram há quase 7 anos, com o surgimento do modelo de Entity Beans. Embora este modelo tenha sido bastante evoluído da sua versão inicial (1.0) até a sua versão 2.1, este modelo sempre foi alvo de muitas críticas. Neste meio tempo, outros frameworks surgiram e dominaram o mercado. Exemplos destes frameworks incluem o:

O Hibernate, em particular, adquiriu grande popularidade e hoje (2007) é o framework de persistência mais popular na comunidade Java no Brasil. Um problema do Hibernate, no entanto, é que este não é um especificação Java, i.e., uma JSR no JCP. O uso de padrões JSR é um excelente prática na escrita de aplicações Java, pois garante independência de fornecedores.

Uma nova especificação, lançada no Java EE 5.0, promete unificar todas estas implementações e criar realmente um padrão para persistência objeto relacional em Java. O JPA (JSR 220) é parte da especificação EJB 3.0, mas pode também ser utilizado em aplicações Java padrão (Java SE).

A arquitetura do JPA, em alto nível, é mostrada na figura abaixo:

Arquitetura JPA

Uma aplicação Java qualquer (SE ou EE) que use o JPA não fica mais amarrada a soluções de fornecedores (mesmo que de código aberto), como o Hibernate ou o TopLink. Ao invés, o código usa apenas uma especificação Java padrão JCP.

Para usar o JPA, é necessário escolher um provider JPA (implementação da pilha JPA). Isso pode ser feito com bastante facilidade, através da edição de um arquivo XML.

O modelo de persistência do JPA foi baseado fortemente no Hibernate e é baseado na anotação de classes Java tradicionais (POJO). Um exemplo simples é colocado abaixo:


@Entity
public class Pessoa {
@Id
public Long id;
public String primeiroNome;
public String nomeDoMeio;
public String ultimoNome;
}

A configuração de um projeto JPA é simples. Em anexo a este artigo, disponibilizamos dois arquivos:

Informações complementares sobre o JPA podem ser achadas aqui:

4 comentários »

Livros Técnicos de Java SE e EE

Publiquei no site da Amazon uma lista de livros para o desenvolvedor que queira aprender sobre Java SE e EE. Adicionei para cada livro alguns comentários e observações da nossa experiência de sala de aula e do mundo real sobre como estudantes e profissionais aprendem Java.

A lista completa está aqui:

Sem comentários »

JEE 5.0, JSR e o JCP

O que é o JEE? O Java Enterprise Edition não é um produto, nem um servidor de aplicação, muito menos uma arquitetura de software.

O JEE é uma especificação JSR (Java Specification Request), i.e, um esforço de padronização realizado por diversas empresas e arquitetos dentro de um tema de interesse Java. As JSRs são mantidas por uma comunidade chamada JCP (Java Community Process), responsável pela padronização da tecnologias Java. Empresas como a SUN, IBM, Borland, BEA, Oracle, Fujitsu, entre outras, são membros ativos do JCP.

O JEE é uma específicação JSR para a padronização de uma arquitetura Java. Cada versão do JEE possui uma JSR específica. Por exemplo, o JEE 5.0 está sob o JSR 244, enquanto o J2EE 1.4 está sob o JSR JSR 151.

O que torna o JEE tão amplo, entretanto? A especificação JEE 5.0, em verdade, é uma coleção de outras especificações, i.e, outras JSRs. O JEE pode ser entendido, então, como um conjunto de especificações coordenadas, que lidam com APIs para desenvolvimento Web, persistência de dados, envio de emails, interoperação com WebServices, conectores, transações e demais componentes de uma arquitetura corporativa.

A tabela resumo abaixo mostra, para cada versão J2EE (1.3, 1.4 e 5.0), as versões das principais APIs componentes do JEE e a JSR associada a cada API.

Tecnologia Descrição J2EE 1.3 J2EE 1.4 JEE 1.5
JSP Java Server Pages - Tecnologia de páginas dinâmicas Web JSR-53: 1.2 JSR-152: 2.0 JSP-245: 2.1
Servlets Tecnologia de objetos de mediação de requisições Web JSR-53: 2.3 JSR-154: 2.4 JSR-154 Maintanence Release: 2.5
JSF Java Server Faces - Tecnologia de toolkits de componentes Web Ausente Ausente JSR 252: 1.2
EJB Enterprise Java Beans - Session Beans, Entity Beans e Message Driven Beans - Tecnologia de objetos distribuídos JSR-19: 2.0 JSR-153: 2.1 JSP-220: 3.0
JDBC Java Database Connectivity - Tecnologia de acesso a bancos de dados relacionais Sem JSR - Versão: 2.0 JSR-54: 3.0 JSR-54: 3.0
Java Mail Tecnologia de suporte a protocolos de email como IMAP, SMTP e POP3 JSR-904: 1.2 JSR-919: 1.3 JSR-919: 1.4
JMS Java Message Service - Tecnologia de suporte a mensagens JSR-914: 1.1 JSR-914: 1.1 JSR-914: 1.1
JCA Java Connector Architecture - Tecnologia de suporte a conectores para interoperabilidade de aplicações JSR-16: 1.0 JSR-112: 1.5 JSR-112: 1.5
Web Services - JAX-WS 2.0 APIs para interoperabilidade de aplicações através de Web Services Ausente Ausente JSR-224: 2.0

(*) O JAX-WS sucedeu a antiga JAX-RPC, presente no J2EE 1.4. Dentre as novidades, a JAX-WS suporta os padrões WSDL 1.2 e SOAP 1.2.

Mais informações sobre o JEE 5.0 podem ser baixadas dos seguinte sites:

Os servidores de aplicação que possuem suporte ao novo JEE 5.0 (no momento de criação deste artigo) estão abaixo.

1 comentário »

O Mundo de Dilbert - Gerência de Riscos J2EE

O autor Scott Adams, criador do excelente quadrinho Dilbert, usa exemplos da vida corporativa para seus roteiros e histórias - A arte imita a vida.

Estranhamente, a comunidade J2EE parece copiar as histórias do Dilbert - A vida imita a arte?, com seus erros constantes em garantir compromissos básicos de projetos como custos, qualidade, escopo e prazos. No artigo que apresentamos no ultimo SUN TechDays em Abril deste ano em Belo Horizonte, ressaltamos alguns exemplos de como não gerir projetos J2EE e também um conjunto de boas práticas para evitá-las.

Gerência de Riscos J2EE:Gerência de Riscos J2EE

Sem comentários »