Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Artigo Java Magazine 74 - Enterprise Java Beans 3.1
Após sua versão 3.0, que revolucionou a criação de aplicações Java EE distribuídas, surge o EJB 3.1, ainda mais fácil de utilizar e com novos recursos promissores
Java Magazine 74
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Java Magazine 74
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Java Magazine 74
Enterprise Java Beans 3.1
A tecnologia EJB cada vez mais poderosa
Após sua versão 3.0, que revolucionou a criação de aplicações Java EE distribuídas, surge o EJB 3.1, ainda mais fácil de utilizar e com novos recursos promissores
De que se trata o artigo:
O artigo explora alguns dos novos recursos da Java EE 6, especificamente o que há de novo no EJB 3.1 (JSR 318). Apresenta um detalhamento das melhorias e novidades da tecnologia EJB, com exemplos de aplicação em cenários reais, códigos e dicas de arquitetura.
Para que serve:
Fornecer uma atualização das novidades do EJB 3.1 para desenvolvedores, arquitetos, interessados na tecnologia ou aqueles que, de alguma forma, estejam envolvidos em projetos que utilizam EJBs.
Em que situação o tema é útil:
O tema é útil para empresas que utilizam EJBs e desejam manter seus produtos com tecnologia de ponta ou, até mesmo, melhorar sua produtividade. É importante também para profissionais que desejam ampliar seus conhecimentos atualizando-se com o que está por vir na tecnologia.
Enterprise Java Beans 3.1:
A nova tecnologia traz melhorias muito importantes em recursos já existentes, dentre os quais se destacam o serviço de agendamento (Timer Service) e a padronização de nomes JNDI globais. Adicionalmente, há alguns recursos novos que ampliam as possibilidades de uso dos componentes EJB, especialmente o novo tipo de componente Singleton Bean.
Um ponto importante que pode ser percebido com o advento da especificação da nova tecnologia, bem como com a motivação da comunidade, é a forte preocupação com a simplicidade de uso. Agora, as interfaces passam a ser opcionais, há a possibilidade de chamadas assíncronas de forma simplificada e pode-se implantar EJBs na camada web.
Adicionalmente, há a possibilidade de se utilizar EJBs no ambiente Java SE e também contar com versões mais leves de servidores (EJB Lite).
Este artigo apresenta os novos recursos disponíveis na tecnologia Enterprise Java Beans 3.1. Foi realizado um estudo da especificação (JSR 318) de modo a cobrir e esclarecer tais novidades, com a preocupação de fornecer exemplos reais e apresentar dicas baseadas na experiência com a arquitetura Java EE.
Para aqueles que já conhecem EJBs, é uma ótima oportunidade de se atualizar, para os que estão iniciando, é um momento igualmente oportuno, afinal, o uso dessa tecnologia está mais fácil do que nunca.
Dentre as inovações trazidas pela nova tecnologia, esse artigo destacará:
* Singleton Beans;
* Interface opcional para componentes;
* Timer Service;
* Deploy de EJBs na camada web (.war);
* Chamadas assíncronas a métodos;
* Nomes JNDI globais padronizados;
* EJB Lite;
* Embeddable EJB.
Não deixe de ler nessa edição a entrevista sobre Java EE 6 e EJB 3.1 realizada no JavaOne 2009 com o especialista Reza Rahman.
Java EE 6
Java EE é a plataforma Java para criação de aplicações web e aplicações corporativas distribuídas de larga escala (com uso de EJBs). Essa tecnologia possui uma série de aspectos para a criação de sistemas de qualidade, tais como: segurança, performance, distribuição, concorrência (multi-threading), escalabilidade, controle transacional, persistência e outras tantas necessidades arquiteturais. A idéia central é que o desenvolvedor deve se preocupar apenas com a regra de negócio e com a aplicação, deixando que a plataforma Java EE cuide da infra-estrutura. Com ela é possível criar aplicações de forma independente de plataforma e de servidor, obtendo o que se chama de WODA (Write Once Deploy Anywhere), ou seja, você escreve a aplicação uma única vez e implanta em qualquer servidor compatível.
Java EE 6 (JSR 316) possui recursos promissores que inovam ainda mais a plataforma tanto no mundo web quanto EJB, e é claro, com o compromisso de manter a compatibilidade com as versões anteriores. Essa é uma especificação guarda-chuva, ou seja, relaciona outras especificações, sendo que em todas há a preocupação de simplificar ainda mais o trabalho de desenvolvimento e implantação das aplicações.
EJB 3.1
Enterprise Java Beans (EJBs) é a tecnologia Java padronizada para a criação de componentes em uma arquitetura distribuída, escalável, confiável e robusta. Em uma aplicação n-camadas com esse tipo de necessidade arquitetural, usualmente utiliza-se EJBs para a camada de negócios. Para executar uma aplicação que utiliza EJBs é necessário um servidor de aplicação, o qual é chamado de contêiner.
Uma das principais e recentes mudanças ocorridas no EJB foi em sua versão 3.0, quando sua utilização se tornou mais simples e produtiva, mantendo todo o poder da tecnologia. Agora, com EJB 3.1 (JSR 318) a curva de aprendizado se torna ainda mais rápida e há recursos que prometem alavancar ainda mais o seu uso.
"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVP
A tecnologia EJB cada vez mais poderosa
Após sua versão 3.0, que revolucionou a criação de aplicações Java EE distribuídas, surge o EJB 3.1, ainda mais fácil de utilizar e com novos recursos promissores
De que se trata o artigo:
O artigo explora alguns dos novos recursos da Java EE 6, especificamente o que há de novo no EJB 3.1 (JSR 318). Apresenta um detalhamento das melhorias e novidades da tecnologia EJB, com exemplos de aplicação em cenários reais, códigos e dicas de arquitetura.
Para que serve:
Fornecer uma atualização das novidades do EJB 3.1 para desenvolvedores, arquitetos, interessados na tecnologia ou aqueles que, de alguma forma, estejam envolvidos em projetos que utilizam EJBs.
Em que situação o tema é útil:
O tema é útil para empresas que utilizam EJBs e desejam manter seus produtos com tecnologia de ponta ou, até mesmo, melhorar sua produtividade. É importante também para profissionais que desejam ampliar seus conhecimentos atualizando-se com o que está por vir na tecnologia.
Enterprise Java Beans 3.1:
A nova tecnologia traz melhorias muito importantes em recursos já existentes, dentre os quais se destacam o serviço de agendamento (Timer Service) e a padronização de nomes JNDI globais. Adicionalmente, há alguns recursos novos que ampliam as possibilidades de uso dos componentes EJB, especialmente o novo tipo de componente Singleton Bean.
Um ponto importante que pode ser percebido com o advento da especificação da nova tecnologia, bem como com a motivação da comunidade, é a forte preocupação com a simplicidade de uso. Agora, as interfaces passam a ser opcionais, há a possibilidade de chamadas assíncronas de forma simplificada e pode-se implantar EJBs na camada web.
Adicionalmente, há a possibilidade de se utilizar EJBs no ambiente Java SE e também contar com versões mais leves de servidores (EJB Lite).
Este artigo apresenta os novos recursos disponíveis na tecnologia Enterprise Java Beans 3.1. Foi realizado um estudo da especificação (JSR 318) de modo a cobrir e esclarecer tais novidades, com a preocupação de fornecer exemplos reais e apresentar dicas baseadas na experiência com a arquitetura Java EE.
Para aqueles que já conhecem EJBs, é uma ótima oportunidade de se atualizar, para os que estão iniciando, é um momento igualmente oportuno, afinal, o uso dessa tecnologia está mais fácil do que nunca.
Dentre as inovações trazidas pela nova tecnologia, esse artigo destacará:
* Singleton Beans;
* Interface opcional para componentes;
* Timer Service;
* Deploy de EJBs na camada web (.war);
* Chamadas assíncronas a métodos;
* Nomes JNDI globais padronizados;
* EJB Lite;
* Embeddable EJB.
Não deixe de ler nessa edição a entrevista sobre Java EE 6 e EJB 3.1 realizada no JavaOne 2009 com o especialista Reza Rahman.
Java EE 6
Java EE é a plataforma Java para criação de aplicações web e aplicações corporativas distribuídas de larga escala (com uso de EJBs). Essa tecnologia possui uma série de aspectos para a criação de sistemas de qualidade, tais como: segurança, performance, distribuição, concorrência (multi-threading), escalabilidade, controle transacional, persistência e outras tantas necessidades arquiteturais. A idéia central é que o desenvolvedor deve se preocupar apenas com a regra de negócio e com a aplicação, deixando que a plataforma Java EE cuide da infra-estrutura. Com ela é possível criar aplicações de forma independente de plataforma e de servidor, obtendo o que se chama de WODA (Write Once Deploy Anywhere), ou seja, você escreve a aplicação uma única vez e implanta em qualquer servidor compatível.
Java EE 6 (JSR 316) possui recursos promissores que inovam ainda mais a plataforma tanto no mundo web quanto EJB, e é claro, com o compromisso de manter a compatibilidade com as versões anteriores. Essa é uma especificação guarda-chuva, ou seja, relaciona outras especificações, sendo que em todas há a preocupação de simplificar ainda mais o trabalho de desenvolvimento e implantação das aplicações.
EJB 3.1
Enterprise Java Beans (EJBs) é a tecnologia Java padronizada para a criação de componentes em uma arquitetura distribuída, escalável, confiável e robusta. Em uma aplicação n-camadas com esse tipo de necessidade arquitetural, usualmente utiliza-se EJBs para a camada de negócios. Para executar uma aplicação que utiliza EJBs é necessário um servidor de aplicação, o qual é chamado de contêiner.
Uma das principais e recentes mudanças ocorridas no EJB foi em sua versão 3.0, quando sua utilização se tornou mais simples e produtiva, mantendo todo o poder da tecnologia. Agora, com EJB 3.1 (JSR 318) a curva de aprendizado se torna ainda mais rápida e há recursos que prometem alavancar ainda mais o seu uso.
"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais!

5 COMENTÁRIOS
Bruno Tonet
Quando os servidores estão em claster isso também vai funcionar, sendo que cada claster é uma maquina virtual?
[há +1 ano] -
Responder
Bruno Tonet
Não consegui editar o meu comentário, mas estava me reverenciando ao Singleton.
[há +1 ano] -
Responder
[autor]
Giulian Dalton Luz
Boa tarde Bruno,
Desculpe a demora em lhe responder.
A Spec. não especifica exatamente como deve ser o comportamento de um Singleton Bean em um ambiente clusterizado, apesar disso, é muito provável que os fabricantes forneçam este suporte.
Há um porém, se estivermos fortemente preocupados com portabilidade não poderiamos contar com o Singleton em Cluster, pois os fabricandes não são obrigados a dispobinilizar esse recurso.
Já li algo a respeito e também acredito que a exigência do funcionamento em cluster deve ser incorporada na próxima versão da especificação.
Enquanto isso, o jeito é esperar o suporte dos fabricantes e ver se atende às nossas necessidades.
At.
Giulian
Desculpe a demora em lhe responder.
A Spec. não especifica exatamente como deve ser o comportamento de um Singleton Bean em um ambiente clusterizado, apesar disso, é muito provável que os fabricantes forneçam este suporte.
Há um porém, se estivermos fortemente preocupados com portabilidade não poderiamos contar com o Singleton em Cluster, pois os fabricandes não são obrigados a dispobinilizar esse recurso.
Já li algo a respeito e também acredito que a exigência do funcionamento em cluster deve ser incorporada na próxima versão da especificação.
Enquanto isso, o jeito é esperar o suporte dos fabricantes e ver se atende às nossas necessidades.
At.
Giulian
[há +1 ano] -
Responder

José Marcio Lacerda
Galera estou com um problema durante a execução de EJB timer, segue a classe abaixo:
public class MonitorBean {
// executa de 10 em 10 minutos
@Schedule(minute="*/10", hour="*", persistent=false)
public void monitoracao1(){
getLogger().debug("Executando a monitoracao 1 ");
}
//executa de 1 em 1 minuto
@Schedule(minute="*/1", hour="*", persistent=false)
public void monitoracao2(){
getLogger().debug("Executando a monitoracao 2.");
}
}
tenhos dois metodos um que executa de 10 em 10 minutos e outro que executa a cada 1 minuto.
quando a aplicação é iniciada, o timer que executa de um a 1 minuto começa a executar normalmente.
mas apos a execução do timer que roda de 10 em 10 minutos, os timers são duplicados
e o timer de 1 minuto começa a executar duas vezes.
como no log abaixo:
INFO: 16-06-2011 16:57:00 [DEBUG] Executando a monitoracao 2.
INFO: 16-06-2011 16:58:00 [DEBUG] Executando a monitoracao 2.
INFO: 16-06-2011 16:59:00 [DEBUG] Executando a monitoracao 2.
INFO: 16-06-2011 17:00:00 [DEBUG] Executando a monitoracao 1
INFO: 16-06-2011 17:00:00 [DEBUG] Executando a monitoracao 2.
INFO: 16-06-2011 17:00:00 [DEBUG] Executando a monitoracao 2.
INFO: 16-06-2011 17:01:00 [DEBUG] Executando a monitoracao 2.
INFO: 16-06-2011 17:01:00 [DEBUG] Executando a monitoracao 2.
INFO: 16-06-2011 17:02:00 [DEBUG] Executando a monitoracao 2.
INFO: 16-06-2011 17:02:00 [DEBUG] Executando a monitoracao 2.
Alguma ideia do motivo do problema ? alguma sugestão de solução ?
valeu...
public class MonitorBean {
// executa de 10 em 10 minutos
@Schedule(minute="*/10", hour="*", persistent=false)
public void monitoracao1(){
getLogger().debug("Executando a monitoracao 1 ");
}
//executa de 1 em 1 minuto
@Schedule(minute="*/1", hour="*", persistent=false)
public void monitoracao2(){
getLogger().debug("Executando a monitoracao 2.");
}
}
tenhos dois metodos um que executa de 10 em 10 minutos e outro que executa a cada 1 minuto.
quando a aplicação é iniciada, o timer que executa de um a 1 minuto começa a executar normalmente.
mas apos a execução do timer que roda de 10 em 10 minutos, os timers são duplicados
e o timer de 1 minuto começa a executar duas vezes.
como no log abaixo:
INFO: 16-06-2011 16:57:00 [DEBUG] Executando a monitoracao 2.
INFO: 16-06-2011 16:58:00 [DEBUG] Executando a monitoracao 2.
INFO: 16-06-2011 16:59:00 [DEBUG] Executando a monitoracao 2.
INFO: 16-06-2011 17:00:00 [DEBUG] Executando a monitoracao 1
INFO: 16-06-2011 17:00:00 [DEBUG] Executando a monitoracao 2.
INFO: 16-06-2011 17:00:00 [DEBUG] Executando a monitoracao 2.
INFO: 16-06-2011 17:01:00 [DEBUG] Executando a monitoracao 2.
INFO: 16-06-2011 17:01:00 [DEBUG] Executando a monitoracao 2.
INFO: 16-06-2011 17:02:00 [DEBUG] Executando a monitoracao 2.
INFO: 16-06-2011 17:02:00 [DEBUG] Executando a monitoracao 2.
Alguma ideia do motivo do problema ? alguma sugestão de solução ?
valeu...
[há +1 mês] -
Responder
Dyego Souza Do Carmo
Isto é um BUg do Glassfish 3.0 , instale o 3.1 e atualize
Valeu !
Valeu !
[há +1 mês] -
Responder
Você está em:
canal Java
Publicidade
Giulian Dalton Luz
Space do autor
Mestre em Ciência da Computação pelo Instituto de Matemática e Estatística da USP. É aficionado por EJBs desde 2002. Atua com desenvolvimento de soluções há 12 anos, sendo nove dedicados a tecnologia Java. Atualmente é gerente de projetos, arquiteto e desenvolvedor. Há cinco anos ministra cursos na ...
Space do autor


0
0
