Avançar para a área de conteúdo

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

A primeira vez que acessar o developerWorks, um perfil será criado para você. Informações do seu perfil (tais como: nome, país / região, e empresa) estarão disponíveis ao público, que poderá acompanhar qualquer conteúdo que você publicar. Seu perfil no developerWorks pode ser atualizado a qualquer momento.

Todas as informações enviadas são seguras.

  • Fechar [x]

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Todas as informações enviadas são seguras.

  • Fechar [x]

Migrações do WebSphere: Migrar do JBoss v4.x para IBM WebSphere Application Server Community Edition v2.x

Ashish Jain, Software Engineer, IBM
Author photo
Ashish Jain is a Software Engineer at IBM India Software Labs in Bangalore India. He is working as Level 3 Technical Support of IBM WebSphere Application Server Community Edition. He received a Bachelors of Engineering in Computer Science from NITK Surathkal, India and joined IBM in 2005 as an ELTP.

Resumo:  Aproveitar o suporte e a arquitetura do WebSphere® Application Server e do Apache Geronimo como uma alternativa superior ao JBoss® Application Server. Este documento descreve os recursos para ajudá-lo a migrar aplicativos sendo executados no JBoss para WebSphere Application Server Community Edition.

Data:  12/Nov/2009
Nível:  Introdutório
Atividade:  2118 visualizações
Comentários:  


Introdução

Java Enterprise Edition 5 (Java™ EE5™) é uma plataforma de programação para desenvolver e executar aplicativos Java multicamadas e distribuídos. O aplicativo desenvolvido é executado em um dos contêineres Java EE. Dois contêineres que implementam a mesma especificação possibilitam a migração de forma ininterrupta de um aplicativo que foi desenvolvido para um servidor de aplicativos para que seja executado em outro servidor de aplicativos. No entanto, há algumas complicações envolvidas devido à diferença no mecanismo do carregador de classe, empacotamento do aplicativo, uso de código nativo, planos de implementação, etc.

Neste artigo, apresentamos os dois servidores de aplicativos e suas diferenças e similaridades de arquitetura. Então, a seção Artigos sobre migração ilustra as etapas envolvidas na migração de um aplicativo desenvolvido para JBoss Application Server para WebSphere Application Server Community Edition (daqui em diante chamado Community Edition). Primeiro, faremos uma introdução de alto nível aos dois servidores de aplicativos

O servidor de aplicativos JBoss é um servidor de aplicativos compatível com Java Enterprise Edition 5 (Java EE5) para desenvolvimento, teste e implementação de aplicativos, criado pela Red Hat. Observe que até essa data o JBoss v5 foi liberado em jboss.org, mas o JBoss v5 da RedHat não foi totalmente liberado. A migração do JBoss v5 deve ser similar.

Community Edition é um servidor de aplicativos certificado Java Enterprise Edition 5 (Java EE5) com base no Apache Geronimo. Ele vem pré-empacotado com os seguintes componentes de software livre, para mencionar apenas alguns:

  • Apache Derby para o servidor de banco de dados padrão
  • Apache OpenJPA para o mecanismo de persistência
  • Apache OpenEJB para o contêiner EJB
  • Apache Tomcat para o contêiner de Web
  • Active MQ para o provedor de sistemas de mensagens

O kernel do Geronimo é o núcleo do Geronimo, que atua como aglutinador para conectar qualquer componente de software livre.

Alguns recursos de alto nível do Community Edition incluem:

  • Suporte a Java - IBM e Sun Java
  • Suporte a plataformas - SUSE , Ubuntu, Red Hat e Asianux Linux, AIX, Sun Solaris, Windows XP, 2003, 2008 e Vista
  • Suporte a banco de dados - Apache Derby, IBM DB2, IBM Informix, MySQL, Oracle, Microsoft SQL Server (qualquer banco de dados compatível com JDBC pode ser usado)
  • Suporte a sistemas de mensagens - Apache ActiveMQ, WebSphere MQ
  • Suporte a servidor de diretórios - Apache Directory Server, IBM Tivoli Directory Server, Microsoft Active Directory Server, Open LDAP Server, Sun One Directory Server
  • Pequeno espaço para instalação- É fácil iniciar com o Community Edition—o download é apenas em torno de 100 MB, de modo que os desenvolvedores podem facilmente baixá-lo e começar. O pequeno tamanho do Community Edition também significa que é fácil integrá-lo em uma pilha maior, o que ajuda os clientes e os ISVs a desenvolver uma solução total usando o Community Edition.
  • Configuração e controle centralizados - O Community Edition fornece suporte a monitoramento por meio do console administrativo. Usando esse recurso, é possível obter dados estatísticos e de desempenho de vários servidores e exibi-los de forma gráfica para os usuários.
  • Portabilidade para a família do WebSphere Application Server - Seu investimento no WebSphere Application Server Community Edition aumenta em valor ao longo do tempo, pois a comunidade de software livre continua a se desenvolver e inovar. Ainda, o WebSphere Application Server Community Edition lhe dá acesso ao portfólio abrangente e comprovado de produtos de middleware WebSphere. Conforme sua necessidade cresce com o tempo, a IBM pode fornecer um caminho claro para recursos avançados como SOA por meio de configurações do WebSphere Application Server.
  • Licença do produto liberada - Livre para usar em desenvolvimento, teste e implementação
  • Suporte para teste gratuito de 30 dias - O Community Edition oferece suporte para teste de 30 dias, que pode ser utilizado por clientes para que sintam as vantagens do suporte IBM.
  • Plug-in do Eclipse para desenvolvimento, teste e implementação de aplicativos
  • Um fórum aberto para todas as suas consultas e perguntas – é possível postar qualquer consulta no fórum IBM developerWorks para o Community Edition.

Diferenças e similaridades de arquitetura

A seção a seguir mostra os diagramas de arquitetura do Community Edition e do JBoss Application Server.


Figura 1. Diagrama de arquitetura do Community Edition


Figura 2. Diagrama de arquitetura do JBoss Application Server

A tabela 1 descreve as principais diferenças e similaridades entre o JBoss Application Server e o Community Edition:


Tabela 1. Comparação de recursos entre o JBoss e o Community Edition
Recurso JBoss Community Edition
Enterprise Java Beans (EJB) Suporta a especificação EJB 3.0 Suporta a especificação EJB 3.0
Java Connector Architecture (JCA) Suporta a especificação JCA 1.5 Suporta a especificação JCA 1.5
Servlets Java Suporta a especificação Servlets 2.5 Suporta a especificação Servlets 2.5
Java Server Pages (JSP) Suporta a especificação JSP 2.1 Suporta a especificação JSP 2.1
Java Server Faces (JSF) Suporta a especificação JSF 1.2 Suporta a especificação JSF 1.2
Transações Suporta XA, local e nenhuma transação Suporta XA, local e nenhuma transação
Implementação JTA Suporte para JTA através de JBoss JTA Suporte a transação fornecido através de ObjectWeb JOTM e HOWL
Agrupamento e gerenciamento de conexão Estrutura JBossCX Código Geronimo customizado através de Codehaus TranQL
WebContainer Apache Tomcat 6.0 Apache Tomcat 6.0.20
Contêiner EJB Implementação própria do JBoss Apache OpenEJB
Provedor de persistência Hibernate Apache OpenJPA
Descritor de implementação do aplicativo EJB Configurado em jboss.xml Configurado em openejb-jar.xml
Descritor de implementação do aplicativo da Web Configurado em jboss-web.xml Configurado em geronimo-web.xml
Descritor de implementação do aplicativo EAR Configurado em jboss-app.xml Configurado em geronimo-application.xml
Descritor de implementação do JPA Configurado em persistence.xml Configurado em persistence.xml


Problemas comuns de migração

Esta seção discute alguns dos problemas mais comuns de migração que podem ser encontrados.

Diferenças nas implementações do Java EE

Durante o processo de migração encontramos problemas causados por diferenças em como a especificação Java EE é interpretada por fornecedores. Por exemplo, alguns servidores de aplicativos não são tão rígidos como a família de produtos WebSphere ao validar os aplicativos Java EE e às vezes descritores de implementação falham na validação. Outro exemplo é o uso de aspas simples e duplas em JSP que falha durante a compilação para a família de produtos WebSphere.

Problemas relacionados ao carregador de classes

O carregador de classes do Java é responsável por localizar e carregar classes. Os carregadores de classes do servidor de aplicativos são complexos e também a tarefa de rastrear e resolver esses problemas. Cada servidor de aplicativos Java EE usa uma implementação customizada de carregadores de classes, visto que a especificação do Java EE atualmente não cobre carregadores de classes. Por exemplo, o Community Edition tem uma hierarquia de carregador de classes pai-filho, enquanto que o JBoss usa uma abordagem de carregador de classes unificada.

Bibliotecas compartilhadas

Essas são bibliotecas disponibilizadas para vários aplicativos ou para todo o servidor. As bibliotecas compartilhadas estão localizadas em diferentes locais e configuradas diferentemente de servidor para servidor. Por exemplo, no Community Edition há várias maneiras de se configurar bibliotecas compartilhadas:

  • Dentro do diretório do servidor de aplicativos, adicionar uma dependência da biblioteca compartilhada no plano de implementação.
  • Fora do diretório do servidor de aplicativos, adicionar um GBean ao plano de implementação.
  • No JBoss, adicionar uma entrada do diretório de biblioteca no plano de implementação específico do JBoss.

Bibliotecas empacotadas

Cada plataforma é empacotada com um conjunto exclusivo de estruturas e bibliotecas, por exemplo, Apache Xerces e Apache Xalan. As versões dessas bibliotecas e os carregadores de classes são diferentes para cada plataforma.

Descritores de implementação

A especificação do Java EE não cobre todos os aspectos da implementação e configuração de aplicativos. Essa é a razão por que temos descritores de implementação específicos de fornecedor. Cada servidor de aplicativos usa um conjunto diferente de arquivos; isso é por serem implementados de forma diferente e terem conjuntos de recursos diferentes. Como mencionado na Tabela 1, os nomes dos planos de implementação usados pelo JBoss são diferentes dos usados no Community Edition. Por exemplo, o JBoss chama o descritor de implementação do aplicativo da Web jboss-web.xml, enquanto o Community Edition o chama geronimo-web.xml. Pode também haver diferenças consideráveis entre as definições de esquema usadas para validar cada um dos planos de implementação.

Empacotamento do aplicativo

O empacotamento é importante do ponto de vista de portabilidade e migração. Cada aplicativo é empacotado de maneira diferente. Isso, junto com as diferentes implementações de carregador de classes em cada servidor de aplicativos, pode potencialmente criar problemas ao migrar. Para evitar problemas, sempre siga a especificação do Java EE, que contém especificações para empacotamento de aplicativos. Normalmente, um aplicativo é empacotado em um arquivo EAR, que pode consistir nos seguintes módulos:

  • EJB

    Contém os descritores de implementação e os arquivos de classe do EJB.

  • WAR

    Módulo do aplicativo da Web contendo descritores de implementação.

  • JAR

    Um arquivo JAR pode conter classes comuns usadas por outros módulos e descritores de implementação de um aplicativo cliente Java EE.

  • RAR

    Archives de adaptador de recursos é um arquivo JAR contendo adaptadores de recursos para a arquitetura J2C.

Uso de código nativo

A plataforma Java permite o uso de código nativo, por exemplo, escrito em C ou C++, com o uso de Java Native Interface (JNI). O uso de código nativo pode potencialmente causar problemas ao migrar para um sistema operacional diferente. Por exemplo, um aplicativo sendo executado no Windows pode usar arquivos .DLL, enquanto, se você migrar para uma plataforma Linux o mesmo aplicativo pode exigir um arquivo .SO.

Extensões JBoss

O JBoss adicionou extensões de servidor específicas do JBoss (JBoss Jars) para aprimorar alguns recursos do aplicativo. Essas extensões precisariam ser resolvidas de acordo com as suas especificações do Java EE.


Artigos sobre migração

As etapas de migração descritas nos artigos relacionados abaixo o ajudarão a entender as complicações discutidas acima, e a migrar seus aplicativos JBoss para Community Edition.


Conclusão

Esse artigo explicou como migrar seu código do JBoss Application Server e implementá-lo no WebSphere Application Server Community Edition. Os aplicativos de exemplo fornecidos nos artigos sobre migração destacam algumas das diferenças notáveis entre as duas implementações.

Reconhecimento

Agradecemos a Ron Staerker por rever esse material.


Recursos

Aprender

Obter produtos e tecnologias

Discutir

Sobre o autor

Author photo

Ashish Jain is a Software Engineer at IBM India Software Labs in Bangalore India. He is working as Level 3 Technical Support of IBM WebSphere Application Server Community Edition. He received a Bachelors of Engineering in Computer Science from NITK Surathkal, India and joined IBM in 2005 as an ELTP.

Ajuda para Relatar Abuso

Relatar abuso

Obrigado. Esta entrada foi sinalizada para atenção do moderador.


Ajuda para Relatar Abuso

Relatar abuso

Falha no envio do Relatório de abuso. Tente novamente mais tarde.


developerWorks: Registre-se


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Selecione seu nome de exibição

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

(Deve possuir de 3 a 31 caracteres.)


Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Classificar este artigo

Comentários

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=WebSphere, Software livre
ArticleID=446855
ArticleTitle=Migrações do WebSphere: Migrar do JBoss v4.x para IBM WebSphere Application Server Community Edition v2.x
publish-date=11122009
author1-email=ashish.jain@in.ibm.com
author1-email-cc=