Aller au contenu

GlassFish

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

GlassFish
Description de l'image Glassfish logo large.png.
Description de l'image GLv2AdminGui.png.
Informations
Développé par Oracleet communauté
Première version [1]Voir et modifier les données sur Wikidata
Dernière version 7.0.18 ()[2]Voir et modifier les données sur Wikidata
Dépôt github.com/eclipse-ee4j/glassfishVoir et modifier les données sur Wikidata
Écrit en JavaVoir et modifier les données sur Wikidata
Système d'exploitation MultiplateformeVoir et modifier les données sur Wikidata
Environnement Multi-plateforme
Type Serveur d'applications
Licence Eclipse Public License 2.0et GPL linking exception(en)Voir et modifier les données sur Wikidata
Documentation eclipse-ee4j.github.io/glassfish/docsVoir et modifier les données sur Wikidata
Site web projects.eclipse.org/projects/ee4j.glassfish

GlassFishest unserveur d'applicationscompatibleJava EE.

GlassFish est le nom duserveur d'applicationsOpen SourceJavaEE 5et désormaisJava EE 7avec 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 Editionest placée sous double licenceCDDLetGPLv2.

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

Le projet est né en juin2005de l'ouverture de Sun Application Server 8.

La version GlassFish v1.0 date de mai2006.

La version 2.0 (ajout des fonctions de haute-dispo/clustering et support deWeb Servicesavancés) date du.Cette version apporte également une performance accrue (benchmark SPECjAppServer) par rapport aux leaders traditionnels que sontBEA WebLogicet IBMWebSphere.

La version 3.0 est sortie leen même temps queJava EE6. Elle apporte un découpage modulaire et des temps de démarrage de quelques secondes seulement[6].

La version 3.1 sort enet 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.

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

  • EJB3 (approche POJO, configuration par annotations,injection de dépendance);
  • JPA(Java Persistence API): standard implémenté par TopLink (par défaut dans GlassFish),Hibernateou OpenJPA;
  • JAX-WS 2.x: nouvelle pile pour les services web;
  • JAXB2.0: mise en correspondance (mapping) XML/Java utilisée par JAX-WS 2.0;
  • JSF(Java Server Faces) - frameworkMVC
  • StAX - parseur destreamingXML;
  • JSP2.1 &Servlet2.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-RS1.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.

Implémentation

[modifier|modifier le code]
  • La grande nouveauté de GlassFish v3 tient dans son architecture modulaire basée surOSGiet extensible grâce à une couche d'abstraction appeléeHK2
  • Interface webd'administration complète (réécrite pour la version 2 avecJSFetAJAX)
  • Interface en ligne de commandescriptable à volonté et une intégrée aux outils de développement. GlassFish expose au travers deJMXde nombreuses propriétés accessibles, par exemple au travers deJConsole.Enfin plusieurs tâchesANTsont également fournies.
  • Avec GlassFish v3 c'est désormais une APIRESTfulqui est disponible pour faire du monitoring et du management avec un simple client HTTP.
  • Grizzlyest 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-WS2.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 œuvredans 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

[modifier|modifier le code]

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 Essentialspublié 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éTmaxSoftrevend 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é enla contribution de sa technologieSession Initiation Protocolau projet GlassFish (projet SailFin).

Projets liés

[modifier|modifier le code]
  • 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 uniqueen français). Le sous-projet OpenFederation implémente le standard de laLiberty Alliance.
  • OpenDS:réécriture en Java du serveur d'annuaireLDAPde Sun.
  • JavaDB:distribution deApache Derbyembarqué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 surJavaScript(Rhino) pour l'instant. D'autres, tels queJRubyet 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.

Notes et références

[modifier|modifier le code]

Liens externes

[modifier|modifier le code]