Ces listes gagneraient à être rédigées sous la forme de paragraphes synthétiques, plus agréables à la lecture, les listes pouvant être aussi introduites par une partie rédigée et sourcée, de façon à bien resituer les différents items. D'autre part,Wikipédia n'a pas pour rôle de constituer une base de données et privilégie uncontenu encyclopédique plutôt que la recherche de l'exhaustivité.
GlassFish est le nom duserveur d'applicationsOpen SourceJavaEE 5 et désormaisJava EE 7 avec la version 4.1 qui sert de socle au produitOracle GlassFish Server[3] (anciennementSun Java System Application Server[4] deSun Microsystems). Sa partieToplink 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 diteOpen Source Edition est placée sous double licenceCDDL etGPLv2.
La version 2.0 (ajout des fonctions de haute-dispo/clustering et support deWeb Services avancés) date du. Cette version apporte également une performance accrue (benchmark SPECjAppServer) par rapport aux leaders traditionnels que sontBEA WebLogic et IBMWebSphere.
La version 3.0 est sortie le en même temps queJava 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 avechaute 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.
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 desapplications Web. GlassFish v3 propose le support du profil Web et du profil complet.
La grande nouveauté de GlassFish v3 tient dans son architecture modulaire basée surOSGi et extensible grâce à une couche d'abstraction appeléeHK2
Interface web d'administration complète (réécrite pour la version 2 avecJSF etAJAX)
Interface en ligne de commande scriptable à volonté et une intégrée aux outils de développement. GlassFish expose au travers deJMX de nombreuses propriétés accessibles, par exemple au travers deJConsole. Enfin plusieurs tâchesANT sont également fournies.
Avec GlassFish v3 c'est désormais une APIRESTful qui est disponible pour faire du monitoring et du management avec un simple client HTTP.
Grizzly est le nom de l'écouteur HTTP écrit ennio (E/S multiplexée non-bloquantes de Java 1.4), aux performances identiques voire supérieures au code natif (Apache HTTPd). Grizzly gèreComet (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 etWeb Services Interoperability Technology (projet Tango) est son extension basée surJAX-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) deMicrosoft, 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.
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 deTopLink 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èteEclipseLink (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 technologieSession Initiation Protocol au projet GlassFish (projet SailFin).
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 ouauthentification unique en français). Le sous-projet OpenFederation implémente le standard de laLiberty Alliance.
OpenDS : réécriture en Java du serveur d'annuaireLDAP de Sun.
Phobos : réutilise l'infrastructure de GlassFish pour fournir unenvironnement de développement de script côté serveur conforme à JSR 223. L'emphase est mise surJavaScript (Rhino) pour l'instant. D'autres, tels queJRuby 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.