Support du client riche avec Eclipse RCP
La notion de client riche Bien que les applications intranet de type client léger soient largement répandues dans les entreprises, elles ne peuvent couvrir l’ensemble des besoins. Certaines applications présentent des contraintes d’ergonomie, de rapidité, de complexité ou encore d’intégration aux outils bureautiques, que le client léger ne peut satisfaire. Le concept d’application riche est apparu au cours des années 1990 pour les deux grandes familles d’applications suivantes : • Applications Internet riches, ou RIA (Rich Internet Applications), qui s’appuient sur l’utilisation d’un navigateur côté client et exploitent soit les fonctionnalités évoluées des navigateurs, soit des extensions. Les applications AJAX telles que Google Maps, Yahoo! Mail, etc., entrent dans cette catégorie. Leur généralisation en entreprise paraît toutefois délicate, du fait de problèmes de productivité et maintenabilité du JavaScript JEES et du DHTML ainsi que de portabilité entre navigateurs, de limitations imposées par ces derniers en termes d’intégration avec les autres applications et de manque de performances des interfaces graphiques complexes. • Applications riches fondées sur un socle applicatif à installer sur le poste utilisateur. Eclipse RCP appartient à cette catégorie, qui représente une évolution des architectures client/serveur de première et deuxième générations des années 1990. Eclipse RCP apporte des solutions aux deux problèmes principaux de ces architectures, qui sont la distribution de l’application sur les postes utilisateur et leur forte dépendance vis-à-vis des technologies propriétaires. Si ces applications n’atteignent pas la facilité de distribution du client léger, elles atténuent les problématiques d’installation initiale et de gestion des mises à jours et offrent des avantages évidents en matière de réactivé, de qualité des interfaces graphiques, de souplesse (avec le mode déconnecté) et d’intégration poussée aux autres applications installées sur le poste. Pour satisfaire les applications d’aujourd’hui, un client riche doit posséder les mécanismes et caractéristiques suivantes : • interface graphique évoluée ; • appel à des services métier s’exécutant sur un serveur d’applications ; • plate-forme indépendante du système d’exploitation hôte ; • framework de composants standards réutilisables ; • mécanisme intégré et évolué de mise à jour des composants ; • extensibilité. La figure 2.1 illustre un exemple d’architecture « riche ».
Architecture d’Eclipse RCP
Eclipse RCP est apparu en 2004 afin d’apporter un support du client riche aux applications fondées sur Eclipse. Une petite portion du noyau d’Eclipse (moins de 5 Mo) est utilisée pour assurer ce support en expurgeant la partie propre au support d’un environnement de développement. Il comprend une technologie de déploiement et d’installation de clients riches sous forme de plug-ins, ainsi qu’une panoplie de plug-ins génériques. Principal contributeur du projet, IBM l’a placé au cœur de son Workplace Client Technology Rich Edition. Il y a ajouté des composants graphiques (le standard Widgets Toolkit) et une fonction de synchronisation avec une base locale. Figure 2.1 Exemple d’architecture riche JEES Livre Page 22 Jeudi, 29. novembre 2007 12:48 12 Support du client riche avec Eclipse RCP CHAPITRE 2 23 Comme l’illustre la figure 2.2, Eclipse RCP est constitué des cinq composants principaux suivants : • Environnement standard d’exécution OSGI (Open Services Gateway Initiative). • Runtime Eclipse, qui forme le socle de chargement et d’exécution des services Eclipse. • Workbench générique Eclipse (UI), qui constitue le composant de base de la plateforme. • API de bas niveau SWT pour le support des objets graphiques. • JFace, surcouche graphique fondée sur SWT, permettant de gérer des composants graphiques complexes, tel le workbench générique (UI) constitué de l’ensemble des vues, éditeurs et perspectives formant l’ossature d’Eclipse. L’utilisation d’Eclipse RCP pour le développement d’applications riches offre les avantages suivants : • Support natif du système d’exploitation hôte. Permet de profiter du « look and feel » de l’environnement graphique utilisé (Windows, MacOS, UNIX), puisque Eclipse RCP s’appuie sur les composants de la bibliothèque SWT, qui utilise de manière native les fonctionnalités du système d’exploitation. • Concept de « bureau métier ». Permet de s’intégrer facilement aux applications bureautiques les plus courantes (Word, Excel, etc.) tout en combinant les développements au sein d’un seul « bureau métier ». Le socle technique mutualise les services d’authentification et SSO ainsi que de communication avec les serveurs d’applications. • Mise à jour automatique des plug-ins. Permet une mise à jour des plug-ins à travers Internet par le biais du gestionnaire de mise à jour. • Déploiement multi-OS. Facilite le packaging et le déploiement des applications par simple glisser-déplacer des répertoires de la distribution RCP dans les répertoires de plug-ins concernés. • Meilleures extensibilité et réutilisabilité. Le partitionnement des applications en plusieurs modules ou plug-ins encourage la création de points d’extension favorisant l’extensibilité de l’ensemble ainsi que sa réutilisation pour d’autres applications.
Exemples d’applications RCP
Voici quelques exemples d’applications professionnelles bâties sur le framework RCP. La figure 2.3 illustre l’interface d’Eclipse Trader (http://eclipsetrader.sourceforge.net/), une application RCP Open Source de gestion de portefeuille donnant en temps réel l’évolution des cours de la Bourse. La figure 2.4 illustre la célèbre suite Notes de l’éditeur IBM « relookée » et rebaptisée IBM Lotus Symphony pour tirer partie des avantages de la pile RCP. Figure 2.3 Application de gestion de portefeuilles boursiers fondée sur RCP
Mise en œuvre de RCP
L’objectif de l’environnement Eclipse RCP est de permettre de construire des applications évoluées aussi bien en termes d’IHM que d’intégration aux composants annexes (outils bureautiques, services profitant de l’écosystème Eclipse. Une application RCP requiert : • Un programme principal. • Une perspective. • Un composant Workbench Advisor, qui permet le contrôle les composants de l’application (menus, barres d’outils, perspectives). Pour construire une application RCP avec une interface graphique minimale, il est nécessaire d’embarquer les plug-ins org.eclipse.ui et org.eclipse.core.runtime. En comptant l’exécutable Eclipse et le fichier statup.jar nécessaire à son exécution, environ 6,6 Mo d’espace disque sont nécessaires au bon déploiement et fonctionnement d’une application RCP. Le package org.eclipse.core.resources, qui permet de gérer l’espace de travail Eclipse et les ressources correspondantes, ne fait pas partie de la distribution Eclipse RCP, bien qu’il soit très utile pour l’accès aux ressources Eclipse. Le plug-in org.eclipse.ui.ide se situe au niveau du workbench, ou espace de travail Eclipse (org.eclipse.ui). Il constitue un ensemble d’API pour l’interface visuelle de l’IDE Eclipse, au sommet de laquelle gravitent d’autres composants, tels le JDT, le PDE, le débogueur et le gestionnaire de versions. L’IDE instancie le workbench ainsi que les menus spécifiques et la barre d’outils Eclipse en ajoutant des vues spécifiques, des pages de préférences et d’autres extensions.