Novidades por vir no JBoss ESB 4.4

Realizei alguns testes no branch que deve ser um dos últimos antes do release GA do JBoss ESB, entre as inúmeras novidades, que vão desde monitoração até suporte a novos componentes, destacarei neste post, a comunicação com Enterprise Java Beans - EJB.

Por padrão o JBoss ESB Server que é o servidor JBoss com suporte aos componentes ESB, não traz o EJB Container embutido nele, entretanto provando que o JBoss App Server é um servidor 100% personalizável, nada impede que adicionemos este suporte, e para isto os passos são simples:

  • Copiar o ejb3-persistence.jar para o jboss_home/[perfil]/lib on seu perfil pode ser o “default”
  • Copiar os seguintes arquivos e pastas para o seu perfil (ex: default) :
  • ejb3.deployer (pasta com o serviço de deployer EJB3)
  • ear-deployer.xml (descritor do deployer de EARs)
  • ejb3-interceptors-aop.xml (interceptors padrões)
  • ejb-deployer.xml (descritor do deployer de EJB3

Copiando isto para o seu ESB Server , este por sua vez estará apto a receber componentes EJB3, já que o container EJB está agora junto do container ESB.Novo QuickStart: ejbProcessor Na versão GA, será possível testar um novo quickstart, o ejbProcessor, se você for fazer isto hoje do branche, deverá receber alguns erros do deployer do JBoss quando tentar realizar o deploy, na verdade, nem o script ant dos quickstarts deixa você fazer deploy no ESB Server, se este não tiver o EJB container instalado. Seguindo os passos acima, você poderá realizar o deploy sem problemas.

O mais importante notar neste novo quick-start é a declaração do Serviço EJB dentro do jboss-esb.xml:

jboss-esb.png

Como você pode observar, dado que estes EJBs estejam associados a algum protocolo (jms, ftp, filesystem, email, rest etc), eles serão ativados de acordo como descrito no exemplo.

Como você pode imaginar agora, todo seu arsenal de EJBs podem facilmente responder a eventos dentro do seu barramento de serviços.

Bom uso de seus EJBs, sejam eles 3.0 ou 2.x!

[]s

E

2 comments to Novidades por vir no JBoss ESB 4.4

  1. Ben-Hur Langoni Jr
    October 21st, 2008 at 7:26 pm

    Olá Edgar.

    Na verdade existem outros quickstarts que dependem de um EJB3 container, como o webservice_bpel.
    Porém, para que o seu ESB server suporte EJBs, o mais indicado seria vc instalar o jbossesb-4.4.GA.zip através do Ant em um JbossAS comum, ao invés de copiar os arquivos do EJB3 deployer na distribuição que vem no arquivo jbossesb-server-4.4.GA.zip (conforme documentação do jboss esb).
    Aliás, a distribuição jbossesb-server foi criada justamente para tirar o peso de um container EJB do ESB. Em minha opinião o ideal é que o ESB fique separado dos servidores de aplicações, definido o PAPEL de um barramento. No seu exemplo acima bastaria vc referenciar o servidor remoto a partir da propriedade provider-url.
    A conveniencia de ser ter um ESB que também é um container EJB se faz necessário para facilitar a vida do desenvolvedor mas, para um ambiente de produção, acho que não seria recomendável.

    Abraços,
    Ben-Hur Langoni Júnior

  2. Edgar Silva
    October 22nd, 2008 at 3:57 pm

    @Ben-Hur,

    Obrigado pelo comentário, vamos apenas a algumas ressalvas:

    “Porém, para que o seu ESB server suporte EJBs, o mais indicado seria vc instalar o jbossesb-4.4.GA.zip através do Ant em um JbossAS comum, ao invés de copiar os arquivos do EJB3 deployer na distribuição que vem no arquivo jbossesb-server-4.4.GA.zip (conforme documentação do jboss esb).”

    Concordo plenamente, e é o que eu recomendo para alguns clientes, porém particularmente no Brasil, vários clientes “adoram” sabe-se lá o porquê de ter tudo dentro de um único container, e ai eu pergunto: “Isso está errado?”, do ponto de vista técnico é possível, e em alguns aspectos facilitam questões de clustering, fail-over, etc…. Eu resolvi mostrar tudo dentro de um único container para fins “didáticos”, pode ter certeza que se você espera usar o JBoss ESB na sua empresa, a sua abordagem é a que mais prefiro e melhor recoemdno.

    “Aliás, a distribuição jbossesb-server foi criada justamente para tirar o peso de um container EJB do ESB. Em minha opinião o ideal é que o ESB fique separado dos servidores de aplicações, definido o PAPEL de um barramento. No seu exemplo acima bastaria vc referenciar o servidor remoto a partir da propriedade provider-url.”

    Não, a versão JBoss ESB Server não foi empacotada desta forma por esse motivo, melhor até deixar pra lá esta questão… Voltando a didática: Se eu quero mostrar um simples exemplo do ESB+EJB eu não vou ter que mostrar no post os passoas para rodar uma outra instancia de JBoss na mesma máquina, ou não sei se o leitor irá ter a possibilidade de ter +1 servidor para testes em casa ou no trabalho. No caso, este exemplo é bem interessante quando usado com outros AppServers como WebSphere, Oracle, BEA etc.

    “A conveniencia de ser ter um ESB que também é um container EJB se faz necessário para facilitar a vida do desenvolvedor mas, para um ambiente de produção, acho que não seria recomendável.”

    Como te disse, concordo em gênero, número e grau, a intenção aqui foi didática, e seu comentário só engrandeceu o conteúdo do post, meu muito obrigado.

    Fico muito feliz em saber que há pessoas como você com este conhecimento a respeito do JBoss ESB no Brasil.

    []s

    E

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>