GlassFish

Un article de Wikipédia, l'encyclopédie libre.

GlassFish
Développeur Sun Microsystems
Dernière version V2 (le 17 septembre 2007)
Environnement Multi-plateforme
Type Serveur d'applications
Licence CDDL et GNU GPL
Site web glassfish.java.net

GlassFish est un serveur d'applications compatible J2EE gratuit et libre. Il est distribué sous deux licences : la licence CDDL et la licence GNU GPL.

Sommaire

[modifier] Introduction

GlassFish est le nom du serveur d'applications Open Source Java EE 5 et qui sert de fondation au produit Sun Java System Application Server de Sun Microsystems. Sa partie Toplink persistence provient d'Oracle. Ce projet fournit un processus structuré pour le développement d'un serveur d'applications performant et de grande qualité. C'est la réponse aux développeurs Java désireux d'accéder aux sources et de contribuer au développement des serveurs d'applications de nouvelle génération de Sun.

GlassFish est sous double licence CDDL et GPLv2 et il est certifié Java EE 5 (EJB3 + JPA + JSF + JAX-WS 2.x + ...).

Sa version 2 est sortie en septembre 2007 avec un support complet avancé du clustering.

[modifier] Historique

Le projet est né en juin 2005 de l'ouverture de Sun Application Server 8. La version GlassFish v1.0 date de mai 2006 et la 2.0 (ajout des fonctions de haute-dispo/clustering et support de Web Services avancés) date du 17 septembre 2007. Cette version apporte également une performance accrue (benchmark SPECjAppServer) par rapport aux leaders traditionnels que sont (en) BEA WebLogic et IBM WebSphere.

La version 3.0 suivra après avec un découpage modulaire et des temps de démarrage de quelques secondes seulement video site.

[modifier] Fonctions

Au niveau des standards, GlassFish est une implémentation complète de la norme Java EE 5 qui recouvre :

  • EJB 3 (approche POJO, configuration par exception, injection de dépendance). L'occasion de se refaire une idée sur les EJB ;
  • JPA (Java Persistence API) : standard implémenté par TopLink (par défaut dans GlassFish), Hibernate ou OpenJPA ;
  • JAX-WS 2.x : nouvelle pile pour les services web ;
  • JAXB 2.0 : mise en correspondance (mapping) XML/Java utilisée par JAX-WS 2.0 ;
  • JSF (Java Server Faces) - Framework MVC dont Apache MyFaces et JSF RI sont des implémentations libres ;
  • StAX - parseur de streaming XML ;
  • JSP 2.1 & Servlet 2.5 : pour faire de l'injection de dépendance dans le conteneur web.

[modifier] Implémentation

  • Interface web d'administration complète (réécrite pour la version 2 avec JSF et AJAX)
  • Interface en ligne de commande scriptable à volonté et une intégrée aux outils de développement. GlassFish expose au travers de JMX de nombreuses propriétés accessibles, par exemple au travers de JConsole. Enfin plusieurs tâches ANT sont également fournies.
  • Grizzly est le nom de l'écouteur HTTP écrit en nio (E/S multiplexée non-bloquantes de Java 1.4), aux performances identiques voire supérieures au code natif (Apache HTTPd). Grizzly gère Comet (connexion HTTP de longue durée), souvent utilisée avec AJAX.
  • Java Web Start : la spécification Java EE 5 définit l'ACC (Application Client Container) d'injection de dépendance (d'une référence à un EJB, un contexte de sécurité, etc.) dans un client Java (Swing, RCP, ...). GlassFish permet de packager ce client dans l'application et de le redistribuer via Java Web Start tout en réalisant l'injection.
  • Metro/WSIT : Metro est le nom de la technologie Web Services de GlassFish et Web Services Interoperability Technology (projet Tango) est son extension basée sur JAX-WS 2.x et conforme aux standards WS-* (WS-Addressing, WS-ReliableMessaging, WS-Security, WS-SecureConversation, ...). WSIT, régulièrement testé avec .Net 3.0 (WCF) de Microsoft, est optionnel dans GlassFish v1 et intégré dans GlassFish v2. WSIT a été mis en œuvre dans le cadre du standard PRESTO de l'État français.
  • Fast Infoset : optimisation des performances des Web Services par utilisation d'un format binaire.

[modifier] Collaborations

Bien que relativement récent, GlassFish fait déjà l'objet de nombreuses collaborations avec d'autres projets open source :

  • Oracle contribue la partie JPA sous la forme de TopLink Essentials publié en open source dans le projet GlassFish. Il s'agit de la dernière version du produit. La spécification JPA permet de remplacer à volonté les implémentations ;
  • JBoss utilisera JSF et JAXB issus de GlassFish dans sa prochaine version et propose le support de Metro/JAX-WS issu de GlassFish ;
  • BEA Weblogic 10 utilise JAX-WS ;
  • Oracle utilise également des technologies issues de GlassFish ;
  • Jetty a adopté Grizzly et le compilateur JSP de GlassFish ;
  • La société TmaxSoft revend une distribution GlassFish sous le nom de JEUS 6.0 ;
  • Des contributeurs individuels proviennent du monde entier et en particulier de France ;
  • Ericsson a annoncé en mai 2007 la contribution de sa technologie Session Initiation Protocol au projet GlassFish (projet SailFin).

[modifier] Projets Liés

  • OpenESB : implémentation d'un ESB open source conforme au standard JBI (Java Business Integration). Cet ESB est construit avec GlassFish et fournit un moteur BPEL (d'origine SeeBeyond) et plusieurs connecteurs techniques (SOAP, JMS, ...). OpenESB est une fondation de la prochaine version du produit Sun Java CAPS.
  • OpenSSO : mise en open source du produit Sun Access Manager qui permet de mettre en place une infrastructure Web SSO (Single Sign-On). Le sous-projet OpenFederation implémente le standard de la Liberty Alliance.
  • OpenDS : réécriture en Java du serveur d'annuaire LDAP de Sun.
  • JavaDB : distribution de Apache Derby embarqué dans GlassFish.
  • Phobos : réutilise l'infrastructure de GlassFish pour fournir un environnement de développement de script coté serveur conforme à JSR 223. L'emphase est mise sur JavaScript (Rhino) pour l'instant. D'autres, tels que JRuby et Groovy, restent utilisables.
  • jMaki : technologie d'encapsulation de code AJAX (DOJO, Yahoo, Google, ...) dans des bibliothèques de balises JSP ou des composants JSF.
  • MQ : implémentation de JMS utilisée dans GlassFish.
  • Portal : mise en open source de Sun Portal Server.

[modifier] Outils liés

[modifier] Liens externes