Glassfish ESB, une autre vision d'intégration SOA

Décembre 2008, Sun a mis au servce de la communauté open source une nouvelle plateforme qui se détache des offres habituelles d’intégration SOA : Glassfih ESB.

Ce projet est issu de l’intégration et de l’assemblage de solutions open source matures (OpenESB,Netbeans IDE et Glassfish Application Server).

100%  open source, cette nouvelle offre de Bus de service a été conçue pour permettre aux entreprises, concepteurs, développeurs, intégrateurs …, de modéliser et exécuter des processus BPEL d’orchestration de services, d’architecturer, de développer et  d’exécuter des applications composites respectants les concepts SOA à l’aide d’une plateforme unique.

Face à cette solution performante, robuste, riche en termes de fonctionnalités et de services, on peut se demander : quelle sera la place des autres offres existantes sur le marché dans les mois à venir et, comment les concurrents de Sun vont-ils réagir ?

En tout cas la bataille est relancée car cette nouvelle façon de penser produit atteindra ses cibles. En effet, Glassfish ESB intègre les éléments essentiels et la boite à outils adéquats, capables de répondre aux problématiques d’intégration liées aux différents types de projets SOA : refonte, orientation processus et d’ouverture ou de renovation technique.

Conforme  aux standards et norme JBI (JSR 208), JEE 5, WS-* …, cette plateforme d’intégration d’applications composites supporte et fournit de nombreux plugins Netbeans qui permettent par exemple de :

  • modéliser des processus d’enchainements (orchestration) de services via des composants "annotations" et une généraion automatisée du fichier BPEL derrière;
  • concevoir des contrats de service (WSDL) et générer automatiquement des composants de services (EJB3 sans état) à partir du WSDL …;
  • réaliser de façon simple des schémas pour la description des données manipulées (XSD);
  • concevoir des applications composites et assemblage de services sans configuration XML ou développement spécifique. Clin d’oeil pour ceux qui ont peiné avec les tâches ardues de configuration maven en environnement JBI pour l’assemblage …
  • générer des WSDL directement à partir d’un contrat IDL Corba par exemple ou de WSDL à partir de services exposés "existants" par des systèmes propriétaires : SAP, CICS …
  • etc.

C’est un produit complet qui supporte et fournit également de nombreux connecteurs directement disponibles sur étagère pour répondre aux problématiques d’accès aux existants propriétaires ou hétérogènes.

Glassfish ESB est disponible en GA depuis le 5 décembre 2008 avec un support commercial lancé deux semaines après cette version stabe qui va tenir sans doute 99% de ses promesses.

N’attendez plus, foncez maintenant !!!

Présentation de quelques fonctionnalités

Installation du plugin de génération IDL corba vers WSDL et génération.

GlassfishESB n’intègre pas tous les plugins et binding components ou service engine par défaut. Il faut en effet les installer en fonction de ses besoins.

![](/content/images/legacy/upload/im02(1).gif)

Comme illustrer à travers l’image ci-dessous, une fois le plugin et librairies installés, il suffit de créer un projet BPEL. Un click droit sur le fichier IDL et l’exécution de la tâche "Create WSDL" permet d’afficher le composant graphique de configuration du WSDL.

La modélisation de processus BPEL est une tâche qui requiert des compétences dans ce langage.

L’image ci-dessous présente la modélisation d’ un processus bancaire qui fait intervenir 2 existants basés sur RMI et Corba IIOP.

Le troisième partner fournir l’interface webservice à l’extérieur permettant d’invoquer le service bancaire à travers l’ESB.

Le fichier BPEL exécuté par le moteur est généré à la volée.

Suite à la modélisation et finalisation du projet BPEL, nous il faut créer une application composite comme illustrée à travers l’image ci-dessous.

Il suffit ensuite de glisser et déposer dans le canevas de design de "Service Assembly", le projet BPEL précédemment créé pour obtenir ce résultat ci-dessous :

Ce schéma est créé automatiquement par l’IDE donc plus besoin de configuration d’un assembly particulier ou autre et l’application est prête à être déployée dans le conteneur JBI. Attention, n’oubliez pas d’installer les connecteurs adéquats !

Résultat après l’exécution d’un test unitaire

Notons qu’une application composite n’intègre pas forcement un module BPEL, elle peut se réaliser également à l’aide d’autres modules comme des processus IEP etc.

Le scope de GlassfishESB est beaucoup plus large que ce que nous venons de voir ci-dessus qui n’est qu’une petite présentation de quelques fontionnalités de cette solution.

Etude de cas SOA d’une grande surface commerciale

Prenons un cas simple impliquant 2 back-offices existants : un Mainframe (cobol) pour l’enregistrement des ventes, SAP HR pour la gestion des ressources humaines et 1 Système externe bancaire pour l’envoi des informations d’ordre de paie des salariés.

L’idée ici est de développer un nouvau service qui permettra à la DRH de réaliser ce cas d’utilisation :

  • récupérer des informations sur les ventes mensuelles des salariés afin de calculer le variable de  chaque salarié : système mainframe Cobol CICS;
  • récupérer les informations concernant les accomptes, identité … des salariés pour le paie: Système SAP HR;
  • Transmettre de façon sécurisée ces informations au système du partenaire bancaire
  • Ecrire un journal des actions dans le Système de journalisation (Mysql)