Accueil🇫🇷Chercher

GlassFish

Introduction

GlassFish est le nom du serveur d'applications Open Source Java EE 5 et désormais Java EE 7 avec la version 4.1 qui sert de socle au produit Oracle GlassFish Server[3] (anciennement Sun Java System Application Server[4] de Sun Microsystems). Sa partie Toplink persistence[5] provient d'Oracle. 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.

La distribution dite Open Source Edition est placée sous double licence CDDL et GPLv2.

GlassFish est certifié Java EE 5 (EJB3 + JPA + JSF + JAX-WS 2.x + ...) et Java EE 6 (EJB 3.1, CDI, JSF 2.0, JAX-RS 1.1, ...)

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.

La version 2.0 (ajout des fonctions de haute-dispo/clustering et support de Web Services avancés) date du . Cette version apporte également une performance accrue (benchmark SPECjAppServer) par rapport aux leaders traditionnels que sont BEA WebLogic et IBM WebSphere.

La version 3.0 est sortie le en même temps que Java EE 6. Elle apporte un découpage modulaire et des temps de démarrage de quelques secondes seulement[6].

La version 3.1 sort en et propose un provisioning SSH, une administration centralisée et un clustering complet avec haute disponibilité des sessions. Elle combine donc les fonctions historiques de GlassFish v2.x et la modularité et le support complet de Java EE 6 offert par la nouvelle architecture 3.x.

À la suite du rachat de Sun par Oracle début 2010, la version commerciale de GlassFish est concurrencé au sein d'Oracle par Weblogic. En 2013 sort Glassfish 4, supportant JEE 7[7]. Quelques mois plus tard la version commerciale de GlassFish est abandonnée[8]. La version Open-source de GlassFish est maintenue au moins jusqu'à la version 5, il constituera l'implémentation de référence de Java EE 8.

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 annotations, injection de dĂ©pendance) ;
  • 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
  • StAX - parseur de streaming XML ;
  • JSP 2.1 & Servlet 2.5 : Pour gĂ©nĂ©rer des pages et du contenu WEB dynamiquement.

Avec GlassFish v3, c'est un support complet de Java EE 6 qui est proposé :

  • EJB 3.1: singleton, API pour conteneur, asynchrone, @Schedule, ...
  • JPA 2.0: collections, verrou pessimiste, API de critères, ... C'est EclipseLink qui est dĂ©sormais utilisĂ© par GlassFish
  • JSF 2.0: facelets/XHTML, AJAX intĂ©grĂ©, composants composites, ... L'implĂ©mentation GlassFish s'appelle Mojarra
  • JAX-RS 1.1: RESTful web services. L'implĂ©mentation est fournie par Jersey
  • Servlet 3.0 : web.xml optionnel, API asynchrone, ...
  • CDI 1.0: Context and Dependency Injection (JSR 299, @Inject, conversation, etc.). L'implĂ©mentation utilisĂ©e par GlassFish est JBoss Weld.
  • BeanValidation 1.0: validation Ă  l'aide d'annotation. L'implĂ©mentation utilisĂ©e par GlassFish est Hibernate Validator.
  • Managed Bean 1.0 : composant lĂ©ger
  • Profil web: sous-ensemble ambitieux de fonctionnalitĂ©s de la plate-forme JavaEE pour dĂ©velopper des applications Web. GlassFish v3 propose le support du profil Web et du profil complet.

Implémentation

  • La grande nouveautĂ© de GlassFish v3 tient dans son architecture modulaire basĂ©e sur OSGi et extensible grâce Ă  une couche d'abstraction appelĂ©e HK2
  • 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.
  • Avec GlassFish v3 c'est dĂ©sormais une API RESTful qui est disponible pour faire du monitoring et du management avec un simple client HTTP.
  • 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.

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 ; Avec GlassFish v3 c'est l'implĂ©mentation complète EclipseLink (dĂ©veloppĂ©e par Oracle) qui est utilisĂ©e
  • GlassFish utilise les implĂ©mentations de rĂ©fĂ©rence JBoss Weld et Hibernate Validator pour les APIs CDI et BeanValidation
  • JBoss utilise JSF et JAXB issus de GlassFish et propose le support de Metro/JAX-WS issu de GlassFish ;
  • BEA Weblogic 10 utilise JAX-WS ;
  • 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 la contribution de sa technologie Session Initiation Protocol au projet GlassFish (projet SailFin).

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 ou authentification unique en français). 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Ă©e dans GlassFish.
  • Phobos : rĂ©utilise l'infrastructure de GlassFish pour fournir un environnement de dĂ©veloppement de script cĂ´tĂ© 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.
  • WebSphere MQ : implĂ©mentation de JMS utilisĂ©e dans GlassFish.
  • Portal : mise en open source de Sun Portal Server.

Outils liés

Notes et références

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.