Glassfish
GlassFish-Logo-140_92.jpg

Definição

Sun GlassFish Enterprise Server, previamente denominado Sun Java System Application Server é um servidor de aplicações rápido e fácil de usar, baseado na Plataforma Java e tecnologia Enterprise Edition (Java EE) para o desenvolvimento e entrega de aplicações e serviços web.

O Sun GlassFish Enterprise Server, a implementação de referência Java EE, é um servidor de aplicações de código aberto de nível corporativo que oferece desempenho, confiabilidade, produtividade e facilidade de uso superiores a uma fração do custo de servidores de aplicações proprietários. Como a implementação de referência Java EE é construída em código aberto, o GlassFish elimina a dependência de fornecedores, e permite que clientes aproveitem os mais recentes padrões e inovações do setor.

Características do Glassfish

  • Compatível com Java EE 5 - Implementam as mais recentes tecnologias do Java EE 5, que ajudam a melhorar a eficiência do desenvolvedor.
  • Melhora a produtividade do desenvolvedor - Aumenta a produtividade do desenvolvedor com APIs Java EE simplificadas e anotações que reduzem a quantidade de código que os desenvolvedores devem escrever.
  • Fundação para SOA - Suporta JAX-WS 2.0, JAXB 2.0 e Open ESB, fornecendo uma arquitetura aberta e extensível para colaboração entre tecnologia de integração e serviços web em uma arquitetura orientada a serviços (SOA).
  • Integração de ferramentas - A IDE NetBeans com SOA suporta o desenvolvimento de aplicações Java EE 5 (incluindo módulos web e EJB 3.0) e fornece ferramentas de projeto visuais SOA para arquitetos e programadores.
  • Código aberto - O código do Sun Java System Application Server 9.x é 100% derivado do servidor de aplicações GlassFish.

História e Evolução

O projeto do Glassfish foi lançado pela Sun em junho de 2005 e atualmente se encontra na terceira versão. A primeira versão foi lançada em maio de 2006, a segunda em setembro de 2007 e a terceira, e mais recente, nos final de 2008.

GLASSFISH v1

A versão 1 definitiva do Glassfish foi lançada logo após a JavaOne, e cinco meses depois já saía uma atualização para corrigir seus bugs a UR1 w dois meses depois a segunda, a UR1p1.
Sistema Open Source criado pela Sun utilizando o modelo de licença CDDL, o qual não tinha muitos adeptos, não teve muito impacto entre os servidores de aplicações até por ser pouco conhecido e por não ter muitos suportes a outras tecnologias.
Uma versão passou a ser distribuída com o nome de Sun Java System AS 9.0 PE que se diferenciava do Glassfish v1 apenas pelo instalador.
O Glassfish só passou a ter uma maior presença entre os servidores de aplicações a partir da versão dois.

GLASSFISH v2

A Sun adotou a licença GPLv2 para o projeto do Glassfish no final de 2006 e isso contribui para o projeto ficasse mais conhecido entre os adeptos do software livre. Com uso da licença CDDL-GPL o Glassfish se tornara um dos maiores projetos de Open Source. Com o crescimento do projeto do Glassfish a Sun lançou no ano seguinte a versão dois (v2) do servidor que trazia alguma novidades.
De inicio a versão dois foi lançada com três possibilidades de instalação com prós e contras que devem ser analisados levando em consideração a necessidade do usuário. Na primeira forma de instalação é utilizado um “pacote” básico mais voltado para quem quer analisar e contribuir com a comunidade de software livre ou ter mais liberdade para corrigir os bugs existentes, porém esta forma não fornece as funcionalidades extras desenvolvidas e disponibilizadas por outros usuários da comunidade.
Na segunda forma de instalação o Glassfish vem atrelado ao NetBeans 6.0 com uma série de componentes que já foram desenvolvidos e disponibilizados sem a necessidade de ter que efetuar o download deles posteriormente. Por outro lado para conseguir as atualizações do Glassfish só poderá ser feita com releases do Ide NetBeans o que além de demorar mais pra acontecer, também aumenta o tamanho dos downloads.
Quanto a terceira forma de instalação é o pacote comercial da Sun, o SJSAS 9.1 ou Java EE 5 SDK. Além de uma série de componentes adicionais ele possui instalador mais amigável e exemplos e documentação extras. Possui também o suporte da Sun que também fornece outros serviços próprios. O inconveniente desta versão é que a licença não permite distribuição nem alteração que não seja feita pelo Update Center da Sun. Isso pode ser ruim para os desenvolvedores de aplicação que não poderão adicionar o SJSAS aos arquivos de instalação dos seus produtos nem alterá-lo de acordo com a necessidade do produto que está desenvolvendo.
Com relação à administração o Glassfish pode ser administrado de duas formas. Uma através de linhas de comandos - bin/asadmin – através do seu Shell de comando. No Shell o usuário tem acesso ao help com a relação de todos os comandos possíveis e digitando “help <comando>” será mostrado a documentação de cada comando. O Shell é mais utilizado por usuários que gostam de utilizar linhas de comando ou que pretendem automatizar as aplicações com scripts.
Outra forma é através do GUI – Interface gráfica – que Doederlein (GlassFish v2: O Novo Desafiante, Java Magazine, n° 52) descreve como “de qualidade profissional – a melhor entre todos os servidores Java EE livres e a única que achei do mesmo nível de produtos proprietários”.
Outras funcionalidades go Glassfish v2 são:
O projeto Metro que permite a compatibilidade de operações entre as aplicações do Java EE 5 e o WCF – runtime da Microsoft baseado em .NET 3.
Suporte à linguagem Ruby e ao seu framework Rails.
JBI – Java Business Integration que permite implementar a SOA (Arquitetura Orientada a Serviços) através de aplicações Web de forma padronizada.
Clustering que facilita o processo de agrupamento de servidores para escalabilidade e replicação de dados de memória proporcionando mais proteção e disponibilidade.
“O Glassfish, agora, é um dos produtos que devemos levar a sério. É um forte competidor de outros servidores open source mais estabelecidos como o JBoss, e mesmo de produtos proprietários de alto custo.” Doederlein (GlassFish v2: O Novo Desafiante, Java Magazine, n° 52).

GLASSFISH v3 Prelude

No final de 2008 a Sun lançou a versão três do Glassfish. Também conhecida por Glassfish Enterprise Server v3 Prelude. Esta versão é totalmente compatível
Nesta versão o Glassfish tem uma arquitetura modular. Cada distribuição do Glassfish v3 será efetuada com os módulos necessários para atender à solicitação do cliente de forma que atenda às necessidades da empresa.
A v3 é capaz de rodar em diversos sistemas operacionais como o Solaris 10, Windows XP e Vista Business, Mac Os X e Ubuntu 8. Também possuem suporte a banco de dados em servidores MySQL 5.x, Oracle 10g e Java Db 10.x.
Esta versão possui recursos que tornam mais fácil a migração do Tomcat para Glassfish. Também suporta o servidores web Apache e aos recursos do AJAX.
Além do suporte ao Ruby, na versão 3 também há suporte ao Groovy o que permite um alto nível de personalização das aplicações.
O suporte à tecnologia OSGi implementada nesta versão permite a compatibilidade entre os novos recursos e os já existentes.
Com vários novos recursos principalmente voltados para a compatibilidade entre sistemas do mesmo tipo que o Glassfish a Sun está tentado se afirmar no mercado de servidores de aplicações aumentando a fatia que a versão dois conseguir “abocanhar”.

Comparação com seus principais concorrentes (Tomcat e Jboss)

GlassFish-Logo-140_92.jpg vs. tomcat.gif vs. JBoss.jpg

Atualmente, os maiores servidores WEB para aplicações JAVA são o Jboss, o Tomcat e o Glassfish. Todos eles implementam o padrão J2EE, ou seja, suportam tecnologias como JSP e Servlets. Outro ponto em comum entre estes servidores é que eles são escritos em JAVA e não necessitam de licença para serem explorados.
O Tomcat é um container WEB da Apache, mas por não suportar tecnologias como o EJB, faz alguns desenvolvedores desistirem de utilizá-lo. Os seus defensores alegam que justamente por não necessitar implementar funções para suportar EJB, o Tomcat é mais rápido de ser iniciado, o que gera um ganho de produtividade em tempo de desenvolvimento.
O Jboss é um servidor de aplicação e servidor WEB, este é mais completo e robusto. É utilizado por grandes empresas por possibilitar uma boa distribuição de uma aplicação e um bom balanceamento de carga. Este servidor começou a ser desenvolvido por uma rede de colaboradores, porém, em 2006, a RedHat anunciou a sua aquisição. Atualmente, a maior crítica sobre o Jboss é o tempo gasto para este ser iniciado, devido a sua gama de funcionalidades, além de seus milhares de XML de configuração. Este tempo de start e de configuração tem um grande reflexo no tempo de desenvolvimento.
Uma outra alternativa que ganha força é o Glassfish. Este servidor é uma solução da própria SUN para abrigar aplicações não somente JAVA como em outras linguagens WEB como .NET e PHP. Por ser um produto da própria SUN, tem 100% de compatibilidade com o JAVA. Esta compatibilidade proporciona a utilização de ferramentas e serviços como o EJB. Atualmente, os seus defensores afirmam que o Glassfish é mais produtivo, pois consegue ter as funcionalidades do Jboss e um tempo de inicialização comparável a um Tomcat, além de uma excelente integração com IDE’s como o NetBeans, que tem uma parte de seu ambiente de integração no modo visual.
Para ver como é fácil a integração das IDE's com o Glassfish, veja o vídeo abaixo. Este vídeo mostra um desenvolvedor iniciando um servidor utilizando o NetBeans.
[http://www.youtube.com/watch?v=3PgoMzMpT2A]

Correlação entre Glassfish e Compiladores

Podemos identificar algumas características de compiladores em um servidor GlassFish. Por exemplo, quando um servidor recebe uma chamada RMI, este deve procurar em seu XML qual método deve ser executado em qual classe.
Para procurar um determinado nome em um XML, este arquivo deve ter uma ordem lógica com tags predefinidas. Para validar as tags, é necessário que um analisador léxico valide cada tag do arquivo. Para ter uma ordem lógica, é necessário que um analisador sintático valide o posicionamento das tags. Como o objetivo é a busca por um nome, pode-se representá-los como uma tabela de símbolos, que associa um identificador (nome) a um determinado conteúdo (caminho + nome da classe).

REFERÊNCIAS BIBLIOGRÁFICAS:

http://br.sun.com/practice/software/glassfish/landing/index.html

Pelegri-Llopart, Eduardo; Yoshida, Yutaka; Moussine-Pouchkine, Aléxis, The GlassFish Community: Delivering a Java EE Application Server, 2007. Disponível em https://glassfish.dev.java.net/faq/v2/GlassFishOverview.pdf. Acesso em: 10 abril 2009.

Doederlein, Osvaldo Pinali, GlassFish v2: O Novo Desafiante. Java Magazine, Rio de Janeiro, nr. 52, Dezembro, 2007, Disponível em: <http://www.ibmlaonthenews.com/clipview.php?idxclip=10674>. Acesso em: 10 abril 2009.

Sun Microsystems apresenta novo servidor de aplicação open source JAVA EE5. Disponível em: <http://br.sun.com/sunnews/press/2007/20071005.jsp>. Acesso em: 10 abril 2009.

Sun GlassFish Enterprise Server v3 Prelude: Features and Benefits. Disponível em: <http://www.sun.com/software/products/glassfishv3_prelude/features.xml>. Acesso em: 10 abril 2009.

What is GlassFish v3? Disponível em:
<http://wiki.glassfish.java.net/Wiki.jsp?page=PlanForGlassFishV3>. Acesso em: 10 abril 2009.

http://www.ibmlaonthenews.com/clipview.php?idxclip=10674

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License