Introdução ao JBoss Application Server 7

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (1)  (0)

Neste artigo veremos as principais alterações do JBoss AS 7, principalmente em sua arquitetura e os modos Domain e Standalone.

Atenção: esse artigo tem um vídeo complementar. Clique e assista!

Artigo no estilo Curso

De que se trata o artigo:

Neste artigo veremos as principais alterações do JBoss AS 7, principalmente em sua arquitetura e os modos Domain e Standalone. Em seguida, mostraremos os novos arquivos de configuração com exemplos, bem como a facilidade de uso de suas novas interfaces administrativas.

Em que situação o tema útil:

O artigo atualiza o leitor em relação às novas características do JBoss Application Server 7, demonstrando algumas diferenças entre as versões anteriores e exemplos de possíveis configurações, além de ressaltar suas principais inovações.

Resumo DevMan:

O JBoss Application Server 7 é uma das primeiras plataformas de uma nova etapa de projetos da JBoss, que visam ambientes como Cloud, passando por pequenos dispositivos a grandes servidores. O JBoss AS 7 traz inúmeras inovações. Dentre elas podemos destacar uma incrível rapidez de aproximadamente 4 segundos na inicialização, baixíssimo consumo de recursos e serviços iniciados on-demand. Tudo isso é possível graças à nova arquitetura baseada em um kernel ainda mais modular, composto por JBoss Modules e o JBoss Modular Service Container (MSC).

Autores: Bruno Rossetto Machado e Rafael Soares

Desde que a Red Hat adquiriu o JBoss em 2006, houve um grande avanço em relação a plataformas e projetos existentes na comunidade. O número de plataformas saltou de apenas uma, que representava o próprio application server, para oito, incluindo soluções para SOA, Portais, Regras e Cloud. Já o número de projetos cresceu de aproximadamente 20 para mais de 140 disponíveis na JBoss Community (www.jboss.org).

A Tecnologia da Informação mudou drasticamente nestes últimos anos. Se considerarmos hardware, por exemplo, é fato que existem muito mais celulares hoje em dia do que computadores. É possível encarar smartphones como computadores, pois sua capacidade de processamento e memória são incrivelmente altas. Hoje em dia é comum encontrarmos processadores em câmeras, Smartphones, Kindles, iPads, ou até mesmo em máquinas de café e geladeiras. Podemos dizer também que estes equipamentos são equivalentes a supercomputadores de 20 anos atrás, ou até mesmo desktops de 10 anos atrás, e ainda assim, muitos deles estão presentes em nossos bolsos. Estes tipos de dispositivos já estão aqui há algum tempo e vieram para ficar.

Desde o último ano, quando a Apple criou um segmento de mercado completamente novo, o iPad, já existe mais de 20 milhões deles por aí e a utilização de smartphones vem crescendo ainda mais. Em nossas casas, mais e mais dispositivos estão se conectando e se comunicando, desde XBox ou PlayStation 3, até aparelhos de TV e home theaters. Atualmente é comum armazenarmos informações em Cloud, como simples scores de um videogame ou até mesmo documentos usando serviços do Google, e isto tudo ocorre de forma natural. Sem falar das redes sociais estourando em nosso cotidiano, é notável que interagir neste mundo que vivemos se tornou muito mais fácil.

Caro leitor, antes de se questionar se este artigo é realmente sobre JBoss, dizemos que sim, e destacamos que Middleware ainda é vital. De uma forma ou de outra, Middleware é necessário e importante para que se obtenha sucesso ao implementar tais soluções. Quando falamos de Tablets, Smartphones, Cloud, SOA e Redes Sociais, podemos dizer que hoje é possível estar conectados o tempo todo e realizar tarefas como comprar um livro, ou até mesmo um carro, ler e-mails, acessar nossas agendas, ouvir nossas músicas preferidas de forma rápida e direta e compartilhar pensamentos com nossos seguidores quando bem entendermos. Características como segurança, gerenciamento de transações, mensageria, entre inúmeras outras que compõem um Middleware são importantes e obrigatórias, ainda mais nestes dispositivos.

No último JBoss World, Mark Little (Sr. Director Engineering), surpreendeu ao dizer que as pessoas devem parar de pensar que Middleware é apenas relevante para hardwares corporativos, pois existem muitos outros projetos onde middleware é importante em ambientes menores. Além disso, que será comum ver algum projeto ou plataforma JBoss rodando em qualquer tipo de hardware, não apenas em grandes servidores processando milhares de requisições por segundo.

O JBoss Application Server 7 é a primeira plataforma desta nova etapa, que traz inúmeras inovações, como rapidez na inicialização, baixíssimo consumo de recursos, serviços iniciando on-demand, entre tantas outras, pensando no que estamos vivendo hoje e o que poderá vir para amanhã, adaptando-se a ambientes nas nuvens com clusters elásticos ou até mesmo a dispositivos que cabem em nossos bolsos.

Este artigo apresenta os principais conceitos do JBoss AS 7 e faz uma introdução na forma de utilização de cada um deles.

Primeiros Passos

O JBoss Application Server 7, ou simplesmente AS 7, é a mais nova versão do Servidor de Aplicação Java de código aberto mais utilizado por desenvolvedores de aplicações corporativas baseadas na plataforma Java EE. Como veremos ao longo do artigo, a nova versão teve seu núcleo totalmente remodelado para fornecer um servidor leve, modular, de fácil administração e melhor performance. Sem sombra de dúvidas, uma das características que mais se destaca nessa nova versão é a sua velocidade de inicialização.

Mais adiante, quando falarmos sobre o novo Kernel do AS 7, veremos maiores detalhes sobre o que torna o AS 7 tão performático. Outras melhorias incluem o novo modo de operação baseado em domínios de servidores de aplicação e as novas ferramentas de administração. Com um núcleo totalmente modular e otimizado para ambientes multiprocessados, o AS 7 leva aproximadamente três segundos para iniciar em um hardware comum encontrado em qualquer laptop pessoal utilizado nos dias de hoje.

Essa versão não possui um instalador automático. Para instalar o AS 7 basta fazer o download do pacote distribuído em formato compactado (ZIP ou TAR GZ) e extrai-lo em um diretório qualquer. Para baixar a última release do JBoss AS 7, acesse a página do projeto através da URL http://jboss.org/jbossas/downloads. A Figura 1 mostra a página de downloads com a última release disponível no momento da escrita deste artigo. O único pré-requisito para instalação é ter o JDK 6 com a variável de ambiente JAVA_HOME configurada.

Página de
download do JBoss AS 7

Figura 1. Página de download do JBoss AS 7: http://jboss.org/jbossas/downloads.

No momento da edição deste artigo a última versão estável era a 7.0.2.Final. Esta versão fornece uma implementação 100% compatível com a especificação Java EE 6 Web Profile. A release mais recente é a 7.1.0.CR1b, que é uma versão chamada de release candidate, que antecede a versão final 7.1. A versão 7.1 do JBoss AS, por sua vez, promete ser 100% compatível com as especificações que compõem a plataforma Java EE 6.

Após baixar e extrair a distribuição do AS 7 é hora de testar nossa instalação. Para isso, executaremos três operações simples: start, stop e restart do servidor de aplicação. A partir de agora, faremos referência ao diretório raiz da instalação do JBoss AS como AS7_HOME. Assim, acesse o diretório AS7_HOME/bin e execute o script standalone.(sh|bat).

Como pode ser notado, existem duas versões para cada script fornecido pelo AS 7. Uma para a plataforma Linux (.sh):

  $ ./standalone.sh 

E outra para a plataforma Windows (.bat):

  > standalone.bat 

Após um breve instante o servidor é inicializado, como mostra a Figura 2. Vale destacar o tempo de inicialização em apenas 3847ms, ou 3.8 segundos, em que 130 serviços foram iniciados, de um total de 200. Outros 68 serviços irão subir on-demand. Além disso, um processo Java de uma instância do JBoss AS 7, sem nenhuma aplicação deployada, consome aproximadamente 130Mb de memória (veja a Figura 3).

Uma inicialização rápida e o baixo consumo de memória abrem diversas possibilidades, como executar o container Java EE em um teste unitário. Outra possibilidade seria utilizar apenas uma JVM com o Application Server por aplicação, tornando a manutenção de aplicações independente. Desta forma, caso seja necessário parar o servidor, teríamos impacto apenas em uma aplicação.

Outra vantagem é executar o JBoss AS 7 em diversos ambientes como cloud, pois caso surja uma grande demanda de acessos, um novo servidor poderá ser iniciado de forma extremamente rápida. Com o baixo consumo de memória, quem sabe até mesmo rodar o JBoss AS 7 em ambientes portáteis, como smartphones ou tablets. Já para ambientes comuns como de desenvolvimento, se for necessário parar o servidor por algum motivo qualquer, você poderá inicializá-lo em poucos segundos, aumentando sua produtividade.

Além de todas estas vantagens, ainda torna-se extremamente fácil rodar diversas instâncias em seu próprio laptop.

Para verificar se o JBoss AS 7 está iniciado, uma forma seria acessar sua página de boas vindas. Assim, acesse a página de boas vindas com a URL http://localhost:8080 em seu navegador, como mostra a Figura 4.

Terminal com
o tempo de inicialização

Figura 2. Terminal com o tempo de inicialização.

Terminal com
o tempo de inicialização

Figura 3. System Monitor mostrando o processo Java do JBoss AS 7.

AS 7 – Página de boas vindas

Figura 4. AS 7 – Página de boas vindas.

O AS 7 disponibiliza duas novas formas de gerenciamento. Uma delas é a Command Line Interface (ou CLI), que possibilita visualizar e modificar atributos e executar operações utilizando um terminal. Dentre as inúmeras operações, é possível parar e reiniciar o servidor. Para acessar a CLI, execute o script AS7_HOME/bin/jboss-admin.(sh|bat).

  ./jboss-admin.sh 

Dentro da CLI, digite o comando connect para se conectar à instância local em execução. Em seguida, digite :shutdown. Com isto, o servidor será desligado. A Figura 5 mostra a operação de shutdown do AS 7 usando a CLI.

Shutdown do servidor através da CLI

Figura 5. Shutdown do servidor através da CLI.

Para reiniciar a instância local do servidor, basta digitar o comando :reload.

Além da CLI, o AS 7 fornece também a Web Management Console, ou simplesmente console web, que nada mais é que uma interface web para gerenciamento e execução de operações. No próximo artigo desta série veremos mais detalhes sobre o gerenciamento do servidor através da CLI e console web.

Estrutura de diretórios

A distribuição do AS 7 está organizada em uma estrutura de diretórios bem diferente das versões anteriores. A Figura 6 mostra como essa nova estrutura é composta. Veja a seguir mais detalhes sobre cada um dos diretórios:

appclient: contém a configuração de um Application Client Container – ACC. Trata-se de um container pré-configurado usado quando se deseja acessar recursos Java EE remotos (EJB, Filas JMS, etc.) a partir de aplicações standalone (aplicação Desktop Swing);

bin: contém vários scripts para manutenção e gerenciamento da instalação do servidor de aplicação, que estão disponíveis para as plataformas Linux (.sh) e Windows (.bat). Também são fornecidos scripts utilitários, como por exemplo, para acesso à CLI;

bundles: contém os bundles (serviços) OSGi que fazem parte do subsistema OSGi fornecido pelo AS 7. Como veremos mais adiante, o AS 7 fornece suporte ao deployment de bundles OSGi;

docs: ao contrário do que parece, não contém a documentação do servidor de aplicação. A documentação oficial está disponível online no site do JBoss AS. Este diretório é dividido três subdiretórios:

o examples: contém alguns exemplos de configuração de profiles (conjunto de subsistemas) específicos;

o licenses: contém as licenças de todas as tecnologias que compõem o servidor de aplicação;

o schema: contém os arquivos XML Schema que definem os diversos descritores utilizados na configuração do servidor. Bastante útil tanto para referência como para uso em uma IDE.

domain: contém os arquivos de configuração, bem como toda a estrutura necessária para execução do servidor em modo Domain. O diretório domain é composto por vários subdiretórios. O primeiro deles é o configuration, que armazena os descritores domain.xml e host.xml – veremos detalhes dessa configuração mais adiante, quando falarmos sobre domínios. Após a primeira inicialização temos o diretório content, que armazena os deployments realizados no domínio. O diretório log armazena os logs dos processos que compõem o domínio (process-controller e host-controller) – também veremos detalhes sobre estes processos em breve. O diretório servers hospeda a estrutura individual de cada instância do servidor (server nodes) configurada no host para fazer parte do domínio. Cada server node possui seu próprio log (diretório log), bem como seus próprios arquivos de dados (diretório data) e temporários (diretório tmp). Por último, temos o subdiretório tmp, que armazena alguns artefatos temporários gerados em tempo de execução pelos processos do domínio. Como veremos mais adiante, o modo Domain é uma das grandes novidades no AS 7;

modules: contém todos os módulos e extensões que compõem o núcleo do AS 7, bem como os serviços fornecidos pelo servidor de aplicação. Como veremos mais adiante, o AS 7 é composto por diversos módulos;

standalone: contém os arquivos de configuração necessários para executar o servidor em modo isolado. Esse diretório é semelhante aos profiles (all, default e minimal) encontrados em versões anteriores do JBoss AS. O diretório standalone também é composto por vários subdiretórios. O primeiro deles é o configuration, que armazena o descritor standalone.xml que define o conjunto de subsistemas (profile) a ser inicializado pela instância do servidor em modo standalone. O diretório deployments armazena os pacotes (WAR, EAR, JAR, SAR) implantados no servidor. O diretório lib é usado para armazenar bibliotecas e extensões do servidor de aplicação. Por fim, após a primeira inicialização, são criados os diretórios data, log e tmp, que armazenam, respectivamente, arquivos de dados, log de saída e arquivos temporários gerados em tempo de execução;

welcome-content: contém a página de boas-vindas do AS 7. É o contexto raiz (http://localhost:8080/) do container web do servidor.

Após instalarmos o JBoss AS 7 e realizarmos um tour inicial em sua estrutura de diretórios, vamos conhecer alguns detalhes e novidades desta versão.

JBoss AS 7 – Estrutura de Diretórios

Figura 6. JBoss AS 7 – Estrutura de Diretórios.

Modos de Operação

O AS 7 possui dois modos de operação: Standalone e Domain. O que os diferencia basicamente é a execução e o gerenciamento. Como o próprio nome diz, Standalone significa uma única instância de execução. Já o modo Domain permite a execução distribuída e o gerenciamento centralizado de múltiplas instâncias.

Estes dois modos não existiam nas versões anteriores do JBoss AS, portanto, havia apenas uma única forma de iniciar uma nova instância do servidor, que se parecia muito com o modo Standalone do AS 7. Esta instância era baseada em um profile, que nada mais é do que um conjunto de recursos e serviços fornecidos pelo Servidor de Aplicação devidamente configurado e pronto para uso. Um profile define as características, bem como as capacidades oferecidas por uma instância de execução do servidor.

Como exemplo podemos citar um profile especializado na camada web, que oferece a configuração necessária para o deployment e execução de aplicações utilizando JSP, Servlet, JSF, CDI, JPA, etc. Outro exemplo seria um profile que traz todo o arsenal necessário para desenvolver qualquer aplicação Java EE, como suporte a objetos distribuídos, EJB, Remoting, JNDI, Mensageria, entre outras coisas que fazem parte desta especificação.

"

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?