Déjà Membre?

Mot de passe oublié? | Créer votre compte !
facebook  linkedin
It Expert
La référence technique on-line
des professionnels de l'informatique
ECLIPSE : bien plus qu’une éclaircie pour le développement
3.75
Votre notation : Aucun (4 votes)
sous titre: 
ECLIPSE-developpement
Chapeau
chapeau: 

De la naissance de cet environnement de développement Java à ses dernières évolutions, découvrez comment et pourquoi Eclipse s’est imposée face à ses concurrents. Bien entendu, les auteurs détaillent les technologies - schémas à l’appui, ainsi que les évolutions en cours. Indispensable.

Contenu
pages de contenu: 

Sous le mot clé « Eclipse » se cachent de nombreux aspects. À l’origine, Eclipse est surtout connu pour être un environnement de développement Java (IDE Java pour integrated development environment). Cependant, Eclipse a beaucoup évolué, et même si les idées originelles motivant sa création ont pu être mises en oeuvre. Au départ, l’objectif d’Eclipse consistait à créer une plateforme extensible, une sorte de « coquille vide que l’on peut remplir facilement ». Et l’environnement de développement Java a eu valeur de « preuve de faisabilité » et d’exemple d’application. Très rapidement, de nombreux développeurs ont adopté Eclipse, en laissant de côté leur ancien IDE Java. En particulier, JBuilder longtemps leader s’est vu rattrapé puis doublé par Eclipse. Pour l’anecdote, Borland, éditeur de JBuilder, a migré son IDE sous la plateforme Eclipse et participe désormais activement au développement de la plateforme. Aujourd’hui, Eclipse est à la fois une plateforme d’accueil de plug-ins et une fondation gérant plusieurs projets OpenSource.

Ainsi, Eclipse couvre plusieurs domaines d’application et s’adresse à plusieurs types d’utilisateurs. Par exemple, un certain paramétrage d’Eclipse (c’est-à-dire l’adjonction de certains plug-ins) va permettre à un développeur de coder une application Web. Un autre paramétrage permettra à un architecte de modéliser une application. Un autre paramétrage encore permettra à un chef de projet de gérer son avancement ou enfin, autorisera un manager à suivre les statistiques concernant l’avancement de ses projets.

Parallèlement, Eclipse est une fondation qui gère la plateforme et les plug-ins majeurs. Elle a l’effet d’un catalyseur pour une communauté grandissante de participants : on parle d’écosystème. En effet, on s’aperçoit qu’en plus de bénéficier des avancées techniques « extérieures », Eclipse s’autoalimente : les uns offrent des possibilités dont les autres bénéficient et réciproquement. C’est d’ailleurs souvent le but des participants : « offrir un peu » et « recevoir beaucoup ». La fondation a un but de gestionnaire et de coordinateur des intervenants et des projets qu’elle héberge.

Quand est apparu Eclipse et pourquoi ?

L’organisation Eclipse est née en 2001 avec IBM au centre de l’initiative. Les prémisses d’Eclipse apparaissent déjà en 1998 quand IBM, à qui l’on reproche de publier des outils sans unité, décide de créer une plateforme sur laquelle baser tous ses applicatifs et permettant de minimiser la duplication des éléments d’infrastructure. Ainsi, IBM voulait avoir la souplesse de développer des outils différents tout en facilitant l’intégration des uns avec les autres.

Un outil unique pour tous

On l’a dit, on connaît surtout Eclipse en tant qu’IDE Java, cela prend tout son sens quand on se rappelle la devise à l’époque : « come for the Java IDE, stay for the platform » (Venez [à Eclipse] pour l’environnement de développement Java, restez pour la plateforme). En effet, il ne faut pas perdre de vue qu’Eclipse est un agrégateur de fonctions ; son credo pourrait être « être adapté à tous et s’adapter à chacun ». L’objectif consiste à avoir une application aux très nombreuses fonctions, tout en permettant à chaque corps de métiers de se focaliser sur la résolution de sa propre problématique.

Le schéma suivant montre comment l’arrivée d’Eclipse s’est matérialisée chez IBM : à partir d’une base commune, on adresse plusieurs finalités totalement disjointes. Cet exemple est parfaitement représentatif du large domaine d’application permis par Eclipse.

Portabilité et ouverture maximales

Le but de la plateforme était aussi d’être le plus portable possible. Ainsi, Eclipse fonctionne sous tous les systèmes d’exploitation majeurs (Windows, Linux, Solaris…) tout en s’adaptant à leurs Look and Feel respectifs (c’est-à-dire, au contraire de Swing, l’apparence des applications développées sous Eclipse se fond parfaitement dans l’environnement cible). Un atout majeur pour la prise en main des applications par les utilisateurs et favorisant leur adoption, tout en réduisant les besoins en formation.

Concernant le nom même d’Eclipse, les avis divergents. Certains, poétiques, avancent qu’Eclipse est né pour éclipser Sun. D’autres, plus pragmatiques, affirment qu’il s’agissait surtout d’éclipser Visual Studio.

Du projet IBM à l’Open source

C’est en tout cas en 2001 qu’IBM décide de publier la plateforme en OpenSource pour attirer d’autres entreprises pour participer à son développement. Afin de faire taire les mauvaises langues martelant qu’IBM souhaite rester le seul maître à bord, l’organisation devient une fondation à but non lucratif en 2004. L’intérêt de ce passage est d’ouvrir la plateforme à un plus large panel d’acteurs et ainsi de dynamiser son évolution. En effet, à partir de ce jour, des types variés d’acteurs peuvent participer et apporter leur pierre à l’édifice en termes d’innovation, interopérabilité et réutilisabilité.

Avec cette transition est apparu un nouveau type de licence : Eclipse Public License. Les termes de l’EPL sont très proches de ceux de la CPL. Tous les projets de la fondation sont distribués sous cette licence. Cela implique entre autres que l’on peut commercialiser des produits basés sur ces projets et que, si on modifie le code de l’un des projets, on doit redistribuer cette modification. Cela permet d’assurer l’activité et le dynamisme de la communauté grâce aux contributions extérieures tout en offrant une souplesse commerciale.

À l’époque, la fondation comptait 7 membres stratégiques et gérait 19 projets. Depuis, la fondation a grandi et comprend aujourd’hui 23 membres stratégiques (et plus de 200 membres actifs) et 60 projets OpenSource.

L’effet catalyseur de l’écosystème a fait ses preuves et la communauté continue de grandir.

Qui y participe et pourquoi ?

Au sein d’Eclipse, il y a plusieurs types de partenaires :

  • Stratégique : organisation qui investit des développeurs et autres ressources dans l’écosystème Eclipse pour développer la plateforme,
  • Entreprise : organisation qui se base sur Eclipse pour des développements internes et participe à l’écosystème Eclipse en améliorant la performance de ses processus internes,
  • Solution : organisation qui s’intéresse à la plateforme Eclipse dans le but de développer des solutions basées sur la plateforme,
  • Associé : organisation qui ne prend pas part aux décisions mais qui est mise dans la boucle,
  • Contributeur : personne indépendante qui participe aux développements d’Eclipse.

Pour information, plus on a d’influence sur l’écosystème ou la plateforme Eclipse, plus on doit participer financièrement à la fondation. Par exemple, un membre stratégique pourra payer jusqu’à 500 000 dollars (en fonction de son chiffre d’affaires) ou fournir des développeurs à plein temps.

De nombreux partenaires actifs, jusqu’à la Nasa

La grande idée consiste à faire développer une solution par une large communauté en motivant les intervenants par un domaine technologique innovant et en s’appuyant sur une problématique fonctionnelle non encore résolue. In fine, l’organisation peut ainsi vendre des solutions plus riches, basées sur le framework Open Source, ou encore proposer des formations et du conseil. La majorité des acteurs suivent ce principe, en voici quelques exemples parmi les membres stratégiques de la fondation.

La société Genuitec, éditeur de produits basés sur Eclipse, propose MyEclipse, une solution d’IDE de développement J2EE ainsi que Pulse, une application permettant de « fabriquer » une plateforme sur mesure. Les prix de ces 2 solutions ne sont pas excessifs, mais la reconnaissance induite par ces produits permet à Genuitec de vendre des formations et du conseil.

Innoopract, SSII allemande, est coleader du projet RAP (Rich Ajax Plateform) qui permet de « transformer » une application client lourd en application client léger avec une interface aussi riche que celle qu’on aurait eue sous Eclipse. Innoopract vend non seulement des formations à RAP mais, comme Genuitec, vend sa solution de « distribution à la demande », nommée Yoxos.

La société Actuate, compagnie de conseil et développement en RIA (Rich Internet Application), est co-leader du projet BIRT (Business Intelligence Reporting Tool), outil permettant la génération de rapport et d’états décisionnels. Grâce aux avancées sur ce projet et à sa notoriété grandissante, Actuate réussit à vendre une solution de reporting, nommée simplement Actuate BIRT .

Enfin, il convient également de citer IBM, qui intervient dans de très nombreux projets de la fondation, en particulier tournés autour de la modélisation et de la méthodologie (dont RUP ). La société vend des prestations de conseil en développement basées sur la plateforme et propose aussi d’améliorer l’organisation des entreprises grâce à un outillage basé sur Eclipse.

Il faut aussi noter le cas de la Nasa qui, à l’image d’IBM à ses débuts, a développé un « mini-éco système » basé sur Eclipse. La plateforme Eclipse a été retenue pour concentrer les outils de la Nasa ainsi, les différentes équipes l’agrémentent de nouvelles fonctions. Pour certaines parties génériques, les développeurs bénéficient du travail de leurs collègues et apportent aussi leur pierre à l’édifice. Ainsi, les images venant de Mars ont-elles été interprétées sous Eclipse !

Une technologie sous-jacente avant tout

À partir de la version 3.0, Eclipse se présente réellement comme une plateforme client riche proposant des fonctions « standardisées » sur un socle commun : le Workbench. Un workbench est la plateforme d’accueil de services applicatifs proposant par exemple un service d’édition, l’éditeur, permettant la modification de données au sens large du terme (données, diagrammes, textes, etc.). Un service d’assistants, les wizards, permet de guider les utilisateurs lors de la saisie ou du paramétrage via un système multipages embarquant un mécanisme d’information en cas d’erreurs de saisies, d’avertissements ou d’incohérence. Des vues permettent de présenter, saisir, organiser l’information sous différentes formes. Pour terminer avec les exemples significatifs, un système de mise à jour évolué propose un rafraîchissement des plug-ins gérant également leurs dépendances les uns par rapport aux autres. L’ensemble de ces services apporte à Eclipse une forte capacité d’adaptation à une multitude de cas.

On retrouve la plateforme Eclipse RCP (Rich Client Platform) à la base de nombre d’applications conséquentes. On a déjà nommé IBM (IBM Lotus, IBM Lotus Expeditor, Symphony) et la Nasa, on trouve également PlanningForce pour la gestion de projet, ForeFlight de SilverCurve aidant les pilotes d’avion à prévoir les perturbations atmosphériques avant un vol, ou encore LabImage 1D de Kapelan Bio-Imaging qui permet l’analyse de gels électrophorèse. En somme, RCP est loin de n’être que la justification de la création d’une plateforme pour un IDE de développement. Son utilisation dépasse le cadre du développement d’application même si la majorité des utilisateurs font encore partis du domaine de l’ingénierie logicielle.

Développement de plug-in et services applicatifs

La plateforme de base d’éclipse est elle-même une adjonction de plug-ins. Chacun fournissant une fonction spécifique. La fourniture de ces fonctions se fait par l’intermédiaire des points d’extensions. Un point d’extension consiste en un contrat de service passé entre un déclarant et un contributeur. Le plug-in déclarant propose un service, le plug-in contributeur exploite ce service en déclarant une extension auprès du point d’extension.

C’est là qu’Eclipse prend toute la puissance : la déclaration. Le projet Equinox d’Eclipse implémente le framework OSGI (Open Services Gateway Initiative) fournissant ainsi un cadre de référence au couplage lâche des plug-ins. En effet sur une simple déclaration, le plug-in déclarant peut exploiter l’ensemble des paramètres et des ressources fournis par le contributeur, sans connaître jusqu’à l’existence même de ce dernier.

Un point d’extension se matérialise sous la forme d’un fichier exsd (Extension XML Schema Definition) décrivant la grammaire à utiliser pour déclarer la contribution. Les types utilisés peuvent être des types simples, comme des types complexes, des ressources fichier, images ou des classes. Les classes doivent cependant implémenter une interface ou une classe abstraite fournie par le déclarant pour être manipulée par ce dernier.


 

Étendre, ou permettre d’étendre

Ce mécanisme de point d’extension/extension est disponible pour le développement des applications RCP ou des plug-ins de développements spécifiques. Il est possible de définir ses propres points d’extension pour permettre à d’autres développeurs de compléter les fonctionnalités du plug-in.

Par exemple, on prendra l’éditeur de code Java. Dans l’éditeur, dans la marge, quelques informations sont mises à disposition des développeurs : warning, erreurs, mais aussi des fonctions comme des propositions de correction du code en fonction des erreurs ou warnings détectés. Le plug-in JDT (Java Developpement Tool) propose d’enrichir ces informations. Ainsi, le plug-in AJDT (programmation par aspect) ajoute des informations sur les pointcuts sur lesquels l’aspect est tissé dans cette même marge. On regrettera toutefois l’opacité de certaines fonctions de JDT vis-à-vis des développeurs de plug-ins.

Seuls les projets dits « amis » (gérés par la fondation Eclipse) comme AJDT sont en mesure d’étendre par l’intermédiaire du code ces fonctions pour des raisons de visibilité des packages. Cette opacité est vraie pour les releases entre les versions 3.0 et 3.3, la version 3.4 (Ganymede) proposant plus de points d’extensions. Un exemple typique, la coloration syntaxique. Jusqu’à la version 3.3, il était nécessaire de télécharger les sources, de les modifier pour intégrer des contraintes propres, comme la présentation de code source généré par des outils MDA . Aujourd’hui l’évolution de la coloration syntaxique est plus aisée.

De ce fait, la plateforme client lourd est solide, et un ensemble de plug-ins tout aussi robuste puisque développés en concertation repose sur celle-ci. De nombreux partenaires contribuent ensuite à l’évolution de la plateforme sur des domaines variés. Ainsi, il est possible de trouver sur une même plateforme un IDE Java, un IDE C++, un outil de définition de rapport (BIRT, Jasper), un outil de développement de flux ETL (Talend), un ensemble d’outils permettant la modélisation, la conceptualisation de mécaniques complexes (EMF, GEF, GMF ), des Outils MDA (JET, Acceleo).

Petit zoom sur les projets modeling d’Eclipse

EMF (Eclipse Modeling Framwork) est un plug-in permettant de décrire un métamodèle de données destiné à être manipulé pour la description de modèles. Pour rappel, un métamodèle décrit l’ensemble des objets utilisés dans la représentation intellectuelle d’un problème complexe. Par exemple, le métamodèle d’UML fait apparaître une notion de classe, d’héritage, d’état, etc. Chaque classe représentée dans un diagramme de classes UML correspond à une instance de l’objet classe du méta modèle. Cette métamodélisation se traduit par un fichier XML formalisé en EMF. Une fois les différents objets, leurs relations, leurs cardinalités, propriétés... définis, le plug-in GMF prend le relais. GMF (Graphical Modeling Framework) définit les modalités de transformation du modèle EMF en une représentation graphique intelligible. GEF (Graphical Editing Framework) achève le processus de construction pour produire, par l’intermédiaire d’un paramétrage les outils nécessaires à la manipulation des objets dans un modèle. Ces outils sont un éditeur, une palette d’objets et une méthode de représentation. Ainsi, l’utilisation de ces trois plug-ins permet de faire d’une représentation intellectuelle, un outil de représentation opérationnel et partageable par la simple adjonction du plug-in produit dans l’environnement Eclipse. Tout cela en moins d’une heure pour un modèle simple et une bonne connaissance de ces plug-ins. Et peu d’IDE sont capables d’offrir ce type de prestations.

Client lourd, composant serveur, client léger ?

La plateforme Eclipse se présente sous deux formes. L’une sous la forme d’un client lourd, l’autre portée sous la forme d’un composant serveur accessible depuis un client léger : Eclipse RAP (Rich Ajax Platform). Eclipse utilise massivement les frameworks SWT (Standard Widget Toolkit), et jFace. Il existe une implémentation de ces classes très orientée client lourd, celle servant à la plateforme RCP de l’IDE Java.

La fondation Eclipse a développé un ensemble d’implémentations spécifiques pour les clients légers portant le workbench client lourd vers un workbench orienté web. Ce simple portage est aujourd’hui fiable sur des pans complets de la plateforme, cependant un effort important reste à produire pour que ce portage soit aussi simple dans les faits que sur le papier pour l’ensemble des plug-ins de la plateforme. Ainsi, des applications développées sous la forme de plug-ins destinés à des clients lourds, peuvent être portées sur la plateforme RAP avec peu ou quasiment pas d’adaptation. Les mécanismes d’Equinox sont eux aussi portés sur RAP, permettant le développement et le déploiement de portions d’application, des modules présentant des couplages lâches facilitant de ce fait leur déploiement et leur maintenance. Une évolution majeure dans les architectures n-tiers connues aujourd’hui.

Des concurrents de taille

Les concurrents d’Eclipse aujourd’hui sont multiples en fonction des domaines sur lesquels Eclipse est utilisé. Sur le marché des IDE de développement Java les principaux concurrents sont NetBeans (Sun), Visual J++ (Microsoft) ou JDevelopper (Oracle). Les communautés autour du développement d’applications dans d’autres langages ne sont aujourd’hui pas encore très développées avec Eclipse. Microsoft conserve en effet une part importante du développement en C/C++, toutefois l’offre d’Eclipse grappille chaque année des parts de ce marché.

Comme nous l’avons expliqué précédemment, la plateforme Eclipse peut également accueillir des applications d’une autre nature que les applications de développement. Sur ce terrain, NetBeans propose une offre similaire. On n’oubliera pas non plus la plateforme Flex (Adobe) très répandue sur le terrain des applications multimédias en client lourd mais également en client léger. La concurrence sur les RIA (Rich Internet Application) est quant à elle bien plus présente. Les frameworks divers comme Rubis on Rails, GWT (Google Web Toolkit) ou jBoss Seam sont des prétendants très sérieux face à Flex et RAP.

À l’exception du portage en client léger, la seule plateforme capable de couvrir le même spectre est NetBeans. La plus grosse faiblesse d’Eclipse, qui est également sa plus grande force, repose sur le développement des plug-ins. Jadis, ces développements pouvaient paraitre chaotiques dans la mesure où les plug-ins n’étaient généralement pas livrés en même temps que la plateforme. Toutefois depuis la version 3.2, la fondation s’investie dans une politique de releasing commune autour des différents plug-ins. Ainsi, dans la mesure du possible, les versions de la plateforme Eclipse et une grande partie des plugins Eclipse proposent une nouvelle version de manière simultanée et concertée. Il est donc possible d’exploiter les fonctions des projets comme EMF, GMF et consorts dès la release de la nouvelle plateforme sans subir le délai, généralement constatés, d’adaptation des produits annexes, pour des raisons d’opacité ou de programmation concurrente, très connues dans le monde du logiciel sur étagère. D’autres plug-ins développés par des éditeurs ou des communautés indépendantes de la fondation entrent également dans cette démarche comme le plug-in SVN de Polarion : Subversive.

Quel devenir pour Eclipse ?

La communauté Eclipse se développe de plus en plus, et des partenariats ou des utilisateurs ne cessent de l’enrichir. Par exemple, Obéo, une entreprise nantaise, fournit une solution de développement MDA basé sur Eclipse. Cet outil utilise EMF, GEF et GMF , trois projets Eclipse auxquels Obéo participe activement. Cette entreprise utilise, propose et héberge des plug-ins de la fondation.

Cet accent mis sur la modélisation et la métamodélisation montre une volonté d’industrialisation forte des solutions autour de l’IDE et de la normalisation des développements. Le projet « Modeling » d’Eclipse renforce sa position autour des solutions sur base RCP, en proposant des moyens simples et efficaces de créer des outils de modélisation ou de gestion. L’ensemble, ou presque, des outils de cartographies physiques (SIG) ou logiques (Organisation) peut être traité par l’intermédiaire de ce type d’approche. Ces mêmes outils permettent de créer des plug-ins spécifiques de modélisation et/ou de représentation de systèmes cibles.

Les preuves de l’efficacité du modèle OSGI ayant été faites dans le monde du client riche, puis dans le monde du client léger (RAP), les éditeurs et communautés des serveurs d’applications entrent dans cette même approche, comme Glassfish (i.e. Sun AS).

Les plateformes RCP et RAP sont de parfaits supports pour le développement d’applications composites ou d’applications portail. L’application typique s’avérant le poste de travail unifié : utiliser une interface commune, normalisée, laissant peu de place à l’improvisation, mais proposant toutes les fonctionnalités nécessaires à l’accès aux applications. Un tiers présentation flexible mais guidé.

Avec le développement de l’application RAP on pourrait aller jusqu’à imaginer d’obtenir un jour une plateforme unique proposant l’ensemble des services nécessaires à n’importe quel poste de travail de l’entreprise, de l’assistante au développeur. N’oublions pas que l’IDE Eclipse reste une application RCP. À quand donc les IDE de développement, les applications de supervision ou les applications métiers, intégralement en client léger sous la forme d’un poste de travail unifié, voir universel ?

Infos Auteurs
image1: 
auteur1: 

Mathieu Lombard, Business Consultant, Practice ACS

image2: 
auteur2: 

Guilhem Delebecque, Architecte - Urbaniste

 

auteur: 

Mathieu Lombard, Business Consultant, Practice ACS
Guilhem Delebecque, Architecte - Urbaniste

reference: 

Acteur majeur du conseil et des services informatiques en Europe, Sopra Group propose l’ensemble des prestations nécessaires aux entreprises pour faire évoluer leurs organisations et leurs systèmes d’information. Sopra Group compte aujourd’hui plus de 12 000 collaborateurs. Son positionnement est global, depuis la réflexion stratégique en amont des projets dans une approche de direction générale, jusqu’à la conduite de grands projets d’intégration de systèmes et à l’outsourcing applicatif. Le Groupe poursuit, par ailleurs, le déploiement mondial de son activité d’intégration d’applications et de gestion des processus métiers à travers sa filiale Axway, avec une gamme complète de solutions et de services.

Numero de base: 
77
pj PDF: 
categorie: 
Logiciels-BI-plates-formes
is H1 section: 
non