Esse artigo faz parte da revista Java Magazine edição 52. Clique aqui para ler todos os artigos desta edição 

m 0cm 0pt"> 

Quando se fala em servidores de aplicações, vêm logo à mente nomes como Tomcat e JBoss entre as opções open source, ou WebSphere ou WebLogic entre os proprietários. Sempre causou estranheza, desde os tempos do J2EE 1.2, que a Sun, concorrendo em ambas as categorias, não figurasse entre os líderes, carecendo tanto de sucesso de público (participação do mercado) quanto de crítica (produto considerado tecnicamente superior). O leitor mais antigo da Java Magazine lembrará várias e longas matérias sobre outros servidores de aplicações, mas nenhuma sobre o Sun Java System Application Server (SJSAS), ou mesmo sobre a sua primeira encarnação open source, o GlassFish v1. Como os autores desta revista costumam focar em softwares populares ou tecnicamente inovadores (de preferência ambos), ficou de lado o servidor da própria Sun.

A Sun demorou a acertar a mão num mercado cuja criação ela mesma liderou – mas acertou. Versões recentes do SJSAS/ GlassFish têm sido reconhecidas como um grande avanço, e isso finalmente começa a render dividendos em participação do mercado e cobertura positiva da mídia. Além disso, não há dúvida que a adoção da licença GPLv2 no final de 2006 fez muito para levantar o projeto na comunidade de software livre. Antes, o GlassFish já era um projeto livre, mas sob a licença CDDL da Sun, que apesar de ser certificada pela OSI1 não é uma licença muito popular. Agora o GlassFish usa uma licença dual: CDDL + GPL. Aliás, o GlassFish é o projeto mais ativo do java.net e um dos maiores projetos de código aberto que existem, em qualquer categoria.

Em artigos recentes desta coluna (ex.: o anterior, sobre o Eclipse WTP 2), já utilizei o GlassFish algumas vezes. Mas isso sempre de passagem, com foco em alguma outra ferramenta, como IDEs, ou assunto, como Java EE. Com o lançamento do GlassFish v2, senti que era o momento de dar a cobertura devida ao novo desafiante.

Este artigo introduz o leitor ao Glass-Fish, procurando ser uma “introdução aprofundada”. Vamos examinar não só fundamentos como a instalação e a administração básica, mas também investigar vários aspectos únicos e interessantes do servidor: seus pontos fortes, tecnologias e subprojetos, e mais.

 

Nota 1: OSI = Open Source Initiative (www.opensource.org), órgão sem fi ns lucrativos que estabelece quais licenças (e por conseqüência, quais softwares) são open source. Note que a autoridade da OSI para fazer isso vem somente da sua reputação na comunidade, pois “open source” não é uma marga registrada da OSI, como alguns imaginam

 

Instalação

O GlassFish pode ser instalado de três maneiras: com a distribuição “pura” do projeto GlassFish, com a distribuição do SJSAS, ou pelo instalador integrado do NetBeans. Todas essas distribuições incluem exatamente o mesmo código, sendo diferenciadas apenas em itens secundários. O dilema ao escrever este artigo é qual distribuição recomendar. Seguem os prós e contras de cada opção:

GlassFish v2 (glassfish.dev.java.net, 54Mb) É uma distribuição básica, somente o container Java EE 5. Recomendada para quem tiver interesse em colaborar com o projeto, ou para quem prefere a agilidade típica de projetos livres: por exemplo, se algum bug que o incomoda foicorrigido recentemente, você pode baixar o último build noturno e não precisa esperar meses por um release. Desvantagens: o instalador é primitivo e a distribuição não integra nenhum componente opcional (estes componentes também são projetos livres – você só terá trabalho extra para baixar e instalar os que precisar).

NetBeans 6.0 (netbeans.org/downloads, 95Mb a 172Mb) – Possui um bom instalador e inclui diversos componentes opcionais (na distribuição maior). Desvantagem: é uma distribuição amarrada aos releases do IDE NetBeans, o que impacta tanto a periodicidade dos releases do GlassFish, quanto o tamanho do download (pois todas as distribuições incluem o NetBeans).

SJSAS 9.1 ou Java EE 5 SDK (java.sun. com/javaee, 78Mb a 140Mb): Este é o servidor de aplicações comercial da Sun. É também a Implementação de Referência (RI) da plataforma Java EE 5 (JSR-244). Possui refinamentos como um bom instalador, exemplos e documentação suplementares e diversos componentes opcionais. Além disso, conta com suporte comercial e outros serviços da Sun. O SJSAS pode ser utilizado livremente, inclusive para executar aplicações comerciais em produção. A Licença de Uso só não dá liberdade de redistribuição. Ou seja, ao desenvolver um software para terceiros, você não pode redistribuir o SJSAS (incluí-lo no CD ou download de distribuição da sua aplicação), nem pode modificar o SJSAS (exceto de maneiras “oficiais”, ex.: via Update Center).

 

Decidi optar pela terceira alternativa, por dois motivos: ela vem com um instalador mais amigável e é uma opção neutra em relação a IDEs. Mesmo que o leitor seja adepto radical de software livre e se incomode com as restrições de redistribuição, essas restrições têm pouca importância porque as três distribuições são baseadas no mesmo código (o qual tem licença dual, CDDL e GPL v2)2.

Você pode desenvolver com o SJSAS, mas ao colocar a aplicação em produção, preferir uma distribuição “puramente livre” como o GlassFish, somente pela facilidade de customização e redistribuição. Isso sem falar que, em clientes de médio a grande porte, a instalação de softwares de infraestrutura como servidores de aplicações costuma ser responsabilidade da área de TI do cliente (empresas maiores geralmente irão preferir o SJSAS, por ser a única opção que conta com suporte comercial da Sun).

 

Nota 2: Exceto, obviamente, por itens não compartilhados entre todas as distribuições, como o instalador.

 

Instalando, enfim

Feita a opção pelo SJSAS 9.1, na URL indicada escolha Downloads e clique no botão Download (presumindo que você já tem um JDK 5.0 ou 6.0 instalado). Isso conduz a um download de 95Mb, que além do servidor de aplicações, inclui alguns extras como exemplos e javadocs. (Os “componentes opcionais” que mencionei, os quais fornecem suporte a ESB e Portlets, além de umserviço de identidade, estão disponíveis em downloads separados no final da página de downloads – não cobriremos estes componentes mais especializados neste artigo.)   Vamos discutir algumas opções importantes apresentadas pelo instalador:

JDK Location: Você pode usar o JDK 5.0 ou o 6.0, sendo este último mais recomendado por ter um desempenho superior. Isso é um diferencial do GlassFish3, pois há mais de um servidor concorrente que, apesar de já certificado Java EE 5, não é compatível com JVMs 6.04.

Password do Admin: Como essa é uma distribuição profissional, não existe senha default (o que seria um “relaxamento de segurança”). Mas para finalidades de teste e desenvolvimento, recomendo usar “adminadmin”, que é a senha configurada como default em outras distribuições e também em muitos IDEs, códigos de exemplo, tutoriais etc. Isso evita a necessidade de configurar esta senha em outros lugares.

Enable Updatecenter Client: Esta opção (que está ativa por default) permite que o Update Center do GlassFish procure atualizações de forma automática, periodicamente. Se isso o incomoda, você pode desativar a verificação, pois é possível rodar o Update Center manualmente.

(Somente Windows) Create Windows Service: Esta opção, que é recomendada apenas para produção, executa o servidor de aplicações como um serviço de background. Para desenvolvimento, recomendo não ativá-la, executando o servidor como um processo normal.

 

Nota 3: Correndo o risco de alguma confusão, mas para simplificar, usarei a partir daqui “GlassFish” para me referir a qualquer coisa que se aplique a todas as distribuições, e “SJSAS” para algo que seja exclusivo a esta distribuição.

 

Nota 4: A certificação Java EE 5 só exige compatibilidade com JVMs 5.0.

 

Teste inicial ...

Quer ler esse conteúdo completo? Tenha acesso completo