Monthly Archives: January 2009

Participação na MundoJava 33

capamundojava33

Escrevi em dupla com Tarso Bessa o artigo EJB vs Spring: uma disputa de gigantes na Mundo Java edição 33, referente aos meses de janeiro e fevereiro.

Ministramos uma palestra no CEJUG sobre esse conteúdo em abril do ano passado e também no JustJava 08 em São Paulo. A única ressalva é que não utilizamos o tema das palestras como o nome do artigo.

Tive a oportunidade de conhecer o Eduardo Guerra em agosto de 2008 (em um evento do CEJUG) e em conversas sobre o mundo Java ele nos convidou para escrevermos um artigo sobre  o assunto da nossa palestra no JustJava.

A idéia e intuito da criação do artigo não era de definir que X é melhor do que Y, e sim a idéia de compararmos os principais recursos das duas tecnologias (segurança, transações, mensageria, etc) e mostrar para o desenvolvedor que cabe apenas a ele escolher qual tecnologia trará mais benefícios. Isso não faria o menor sentido, até porque já existem diversas comparações na internet sobre esse assunto e até hoje os caríssimos Rod Johnson e Bill Burke travam uma guerra interminável sobre esse assunto.

Veja um trecho introdutório do artigo:

O objetivo deste artigo é realizar um comparativo entre o Spring e EJB 3 em quesitos que são fundamentais para as aplicações de hoje. Para isso, foi desenvolvida uma aplicação semelhante a uma loja virtual explorando como esses dois gigantes se comportariam diante de requisitos que tinham que ser implementados de uma forma similar. Os seguintes tópicos foram abordados: Injeção de Dependência, Controle de Transações, Agendamento, Suporte à Orientação a Aspectos, Web Services, Serviços de Mensagens e, por último, Segurança. Cada tópico desses tem uma relação com um requisito da aplicação: agendamento para checagem de estoque de produtos; aspectos para gravação de histórico de alteração de dados; segurança para proteção das páginas que envolvem transações financeiras; Web Services para disponibilizar a lista de produtos da loja para aplicativos externos; serviço de mensagens assíncronas para processamento de pagamento; controle de transações para garantir a integridade dos dados e controle de concorrência; e por fim, injeção de dependência para simplificar a programação da aplicação.