GlassFish

De Libre choix
Aller à : navigation, rechercher
GlassFish
Serveur d'applications, framework Riche et puissant
Rich.: 3, Exploit.: 3, Tend.: Yellow Arrow Up.png
Environnement Tous
Licence CDDL


Résumé

Serveur d'application Libre sous licence CDDL et certifié Java EE 5 (EJB3 + JPA + JSF + JAX-WS 2.0 + ...). Sun Microsystems est le principal contributeur.

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, de scripting, amélioration des performances) est prévue pour avril 2007. La version 3.0 suivra peu de temps après avec un découpage modulaire.


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.0: nouvelle pile pour les services web
  • JAXB 2.0: mise en corresponsance (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

Implémentation

  • interface web d'administration complète
  • 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.
  • WSIT: Web Services Interoperability Technology (projet Tango) est une extension à JAX-WS 2.0 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 oeuvre 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.

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
  • BEA utilisera JAX-WS dans la prochaine version de WebLogic
  • Jetty a adopté Grizzly
  • 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.


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.

Outils liés


En savoir plus


Livres en français