Le site francophone consacré au projet Eclipse et à OSGi
 
 

 

 

(publié le 31/01/2006)

Présentation de la fondation Eclipse et de ses projets

Initialement reconnu pour son environnement de développement Java, Eclipse regroupe actuellement des projets couvrant des besoins plus larges.
Dans cet article nous proposons une présentation de la fondation Eclipse et de ses projets. De futurs articles aborderont dans le détail les principaux projets.

 

Eclipse : la fondation

Les origines de la fondation Eclipse


Le logo de la fondation

Le projet Eclipse a été créé en 2001 par IBM qui a fait don du code initial. Dès le lancement du projet, IBM a joué la carte des partenariats en constituant un consortium de sept sociétés (dont Borland). Jusqu'en 2004, l'organisation en consortium donnait à IBM un pouvoir important sur le projet.
Pour permettre l'entrée de nouveaux partenaires et continuer ainsi à assurer le développement de la communauté Eclipse, le choix a été fait d'un changement de statut : le consortium Eclipse est devenu la fondation Eclipse.
La fondation est une structure indépendante régie par des règles clairement formalisées (cf statut de la fondation Eclipse au format PDF). Les décisions sont prises par un conseil d'administration composé de représentants des sociétés ou organismes membres de la fondation.

 

Les membres de la fondation

Sun et Eclipse: une entente impossible
Lors du passage du status de consortium à celui de fondation, IBM a proposé à Sun de rejoindre le projet Eclipse. L'intérêt d'unir les efforts de tous pour favoriser la diffusion de Java via un outillage de qualité en open-source n'a pas suffit.

En effet, Sun ne pouvait adhérer à un projet dont le nom était perçu comme aussi provocateur (Sun... Soleil... Eclipse de soleil).

Provocation d'après Sun, maladresse d'après IBM toujours est-il que jusqu'à aujourd'hui aucun terrain d'entente n'a été trouvé.

Le nom du projet n'est pas la seule explication de cette entente impossible, une autre raison importante est que Sun avait aussi initié un projet open-source aux objectifs similaires : NetBeans. Aujourd'hui les deux projets suivent leur propre route mais le succès du projet Eclipse est clairement supérieur, notamment grâce à une politique de partenariat très active.

Début 2006, la fondation Eclipse compte près de 120 membres. Excepté Sun tous les acteurs majeurs du monde Java sont membres, les plus notables sont : BEA, Borland, IBM et Oracle.
Les membres sont répartis en différentes catégories en fonction de leur niveau d'engagement.

Membres 'Strategic' :
Ce niveau d'engagement est le plus élevé. Il suppose une participation humaine et/ou financière.

Les 'Strategic developers' sont des sociétés qui souhaitent participer activement aux développements d'Eclipse, ce niveau implique :
- au moins 8 développeurs dédiés à plein temps au développement d'Eclipse ou de l'un de ses sous-projets.
- une participation financière annuelle d'un montant de 0,12% du chiffre d'affaire (plafonnée à 250.000 dollars).
Principaux 'Strategic Developers' : IBM, BEA, Borland, Intel, Nokia.

Les 'Strategic consumers' sont des sociétés qui ne participent pas directement aux développements mais qui considèrent l'utilisation d'Eclipse comme particulièrement stratégique. Ce niveau implique une participation financière annuelle de 0,2% du chiffre d'affaire, avec un minimum de 50.000 dollars et un maximum de 500.000 dollars.
Principaux 'Strategic Consumers' : HP et SAP.

Plus d'informations : Liste complète des membres 'Srategic'

Membres 'Add-in Provider' :
Les 'Add-in Providers' sont des sociétés qui doivent proposer des produits s'intégrant dans Eclipse. La participation financière est de 5000 euros par an.
Plus d'informations : Liste complète des membres 'Add-in Providers'

Membres Associate :
Les membres 'Associate' sont des universités, des organisisations à but non lucratif, des éditeurs de livres ou de revues.
Plus d'informations : Liste complète des membres 'Associate'

 

En plus d'être représentés au conseil d'administration, les membres participent à trois comités chargés d'organiser les travaux de la fondation. Les rôles de ces comités sont :

- la sélection des thèmes de travail : les demandes de la communauté sont collectées, étudiées et catégorisées par un premier comité. Ce comité a pour rôle d'identifer un ensemble cohérent de thèmes et d'en définir les priorités.
- la planification : un deuxième comité coordonne les plannings de développements des différents projets et opère les arbitrages nécessaires pour obtenir une planification cohérente.
- l'évolution de l'architecture : à partir des thèmes identifiés, le comité en charge de l'architecture décide des évolutions à apporter à la plateforme Eclipse.

En partant des objectifs définis par ces trois comités, les développements de la fondation sont organisés en projets et sous-projets.

 

Eclipse : les projets

Les projets développés dans le cadre de la fondation obéissent à des règles clairement formalisées et sont organisées en plusieurs catégories.
Ces catégories sont nommées 'Top-Level projects', elles correspondent à des projets principaux découpés en sous-projets.

Début 2006, ces projets sont au nombre de 10 :
- Eclipse : développement du socle et de l'outillage Java
- Eclipse Tools : divers sous-projets pouvant servir de socle à d'autres projets ou bien inclassables dans les autres catégories.
- Web Tools Platform (WTP) : outils de développement Web et J2EE
- Business Intelligence and Reporting Tools (BIRT) : outils de création et de génération de rapports.
- Test and Performance Tools Platform (TPTP) : outillage de test et de mesure de performance.
- Data Tools Platform (DTP) : outils de manipulation de structures de données.
- Device Software Development Platform (DSDP) : outils de développement pour les systèmes embarqués.
- SOA Tools Platform (STP) : outillage pour la mise en oeuvre d'architectures orientées services.
- Modeling : divers sous-projets concernant la modélisation.
- Technology project : rassemble une vingtaine de sous-projets aux objectifs très variés abordant des sujets innovants. Les sous-projets arrivant à maturité sont amenés à rejoindre l'un des autres projets principaux.

Dans la suite de cet article nous vous proposons un descriptif de chacun de ces projets..

 

Le projet Eclipse

Le but initial du projet Eclipse était de fournir un socle, écrit en Java, pour la création d'environnements de développement. Depuis 2004, cet objectif a été étendu en prenant en compte l'utilisation du framework Eclipse pour tous les types d'applications.



Exemple d'applications Eclipse RCP
UDIG - Afficheur de données géographiques
(cliquer pour agrandir)

Le socle pour la création d'environnement de développement est implémenté dans le cadre du sous-projet nommé 'Eclipse Platform'. La version du socle ciblant le développement d'applications installées sur les postes utilisateurs est nommée Eclipse RCP (Eclipse Rich Client Platform).
La relation entre Eclipse RCP et Eclipse Platform peut se résumer de deux façons :
- Eclipse RCP est une version d'Eclipse Platform qui ne contient pas les modules couvrant les besoins propres aux environnements de développement.
- Eclipse Platform est une extension d'Eclipse RCP qui ajoute des fonctionnalités propres aux environnements de développement.


Les principales fonctionnalités proposées par 'Eclipse RCP' et donc par 'Eclipse Platform' sont :

La notion de plugin : le principe de base du framework Eclipse est d'être conçu pour être extensible. Au coeur d'Eclipse se trouve les mécanismes permettant la découverte et le chargement de modules : les plugins. Eclipse et l'ensemble des sous-projets sont construits sous-forme de plugins. Le noyau d'Eclipse gère le cycle de vie des plugins (découverte, chargement, mise à jour, déchargement…). Depuis Eclipse 3.1, ce noyau est une implémentation de la spécification OSGi (spécification initialement créée pour le chargement d'applications Java sur des systèmes embarqués). Eclipse ajoute à OSGi des fonctionnalités permettant de gérer la coopération entre plugins : les plugins peuvent déclarer des points de branchements (les points d'extension) et peuvent aussi enrichir un plugin existant en se branchant sur l'un de ses points d'extension. Cette coopération se déclare par l'intermédiaire d'un fichier XML propre à chaque plugin.

SWT : à la base du succès d'Eclipse
Au moment de la conception d'Eclipse, en 1999, les équipes d'IBM ont fait le constat que les librairies graphiques standards, AWT et Swing, ne permettaient pas de produire des interfaces graphiques très réactives et parfaitement intégrées au système d'exploitation (NB : depuis Swing a beaucoup progressé en qualité). Ayant jugé que ces deux caractéristiques étaient essentielles pour un environnement de développement, ils ont fait le choix d'implémenter leur propre librairie graphique : SWT. Grâce à SWT, Eclipse a pu, dès sa première version, offrir une interface graphique qui, sur Windows, n'était pas différenciable de celles des autres applications.

Contrairement à Swing, SWT délègue au système d'exploitation l'affichage des composants graphiques. Une partie de SWT est donc spécifique à chaque système d'exploitation avec comme avantage une intégration très fine au système et comme inconvénient une qualité variable d'un système à un autre. L'implémentation Windows est d'excellente qualité, les implémentations pour Linux et MacOS sont perfectibles.

Un cadre pour les interfaces graphiques : une application basée sur Eclipse étant constituée de divers plugins il est important que la plateforme propose des solutions pour garantir l'homogénéité des interfaces graphiques. Pour ce faire le framework Eclipse intègre sa propre librairie de composants graphiques SWT (Standard Widget Toolkit) et propose un cadre pour l'organisation graphique des applications : le Workbench ('Plan de travail'). Le workbench propose des notions qui peuvent être utilisées par les applications Eclipse RCP ou par tout type de plugins : les vues, les éditeurs, les pages de préférences, les assistants, les pages d'aide…

En savoir plus :
- La page d'Eclipse Platform
- La page d'Eclipse RCP
- Eclipse RCP FAQ
- Catalogue d'applications basées sur Eclipse RCP (document PDF)

 

Dans le cadre du projet principal Eclipse sont aussi développés deux sous-projets importants :

- JDT (Java Development Tools) : implémentation de l'environnement de développement Java basé sur Eclipse Platform. Disponible depuis le lancement du projet Eclipse, fin 2001, la richesse de cet outillage, sa stabilité, sa gratuité et sa disponibilité en open-source sont autant de raisons qui expliquent le succès d'Eclipse. Le JDT est donc très important car une grande partie des utilisateurs d'Eclipse sont des développeurs Java qui utilisent les outils proposés par le JDT (éditeur de code Java, débogueur, compilateur…).
En savoir plus : Le chapitre consacré au JDT du didacticiel 'Développons en Java' (auteur Jean-Michel Doudoux)

- PDE (Plugin Development Environment) : le PDE propose des outils pour le développement de plugins. En complément du JDT, le PDE aide les développeurs à créer des plugins Eclipse et des applications basées sur Eclipse RCP.

 

 

Eclipse Tools



Construction d'une interface graphique
avec le Visual Editor

(cliquer pour agrandir)

Eclipse Tools regroupe des sous-projets qui servent de base à d'autres projets ou qui sont ne sont pas classables dans les autres catégories.
Les sous-projets notables d'EclipseTools sont :

- CDT (C/C++ Development Tools) : environnement de développement C/C++. Ce sous-projet a été le premier à démontrer la possibilité d'utiliser Eclipse pour construire des environnements de développement pour un autre langage que Java. Il existe aussi un sous-projet, peu actif, proposant un environnement COBOL et depuis fin 2005 un autre sous-projet travaille sur un environnement PHP.
En savoir plus : la page de CDT

- GEF (Graphical Editing Framework) : librairie permettant la création et la manipulation de graphiques en deux dimensions.
En savoir plus : la page de GEF

- VE (Visual Editor) : constructeur d'interfaces graphiques Java. Les librairies AWT, Swing et SWT sont supportées. Le cœur de cet outil est un framework utilisable pour créer d'autres types de constructeurs d'interfaces graphiques.
En savoir plus : la page de VE

 

 

WTP - Web Tools Platform




Liste des types de serveurs
supportés en standard par WTP 1.0


Le projet WebTools à pour objectif de fournir les outils nécessaires au développement d'applications Web basées sur J2EE. Il se décompose en trois sous-projets :

- Web Standard Tools : cible les outils permettant la manipulation des différents standards rencontrés dans les architectures Web (HTML, CSS, Javascript, SVG, XML, XSD, SOAP, WSDL, UDDI …)

- J2EE Standard Tools : outillage pour le développement d'applications J2EE. La version 1.0 de WebTools cible J2EE 1.4. Les outils permettent les développements aux normes servlets, JSP et EJB. Les applications peuvent être testées et déboguées à partir d'Eclipse en utilisant les fonctionnalités de lancement de serveurs J2EE (ci-contre liste des serveurs supportés par WTP 1.0)

- JSF Tools : outillage complémentaire pour le développement d'applications utilisant les JavaServer Faces. Ce sous-projet a été créé fin 2005 par Oracle.


Le projet WTP a été créé à partir des contributions d'IBM et d'ObjectWeb. IBM a donné une partie du code des outils J2EE proposés dans l'offre WebSphere Studio (renommé Rational Application Developer depuis).
BEA a pris la tête de ce projet depuis février 2005 et a annoncé que les futures versions de l'outil Weblogic Workshop seraient basées sur Eclipse.

La prochaine version de WTP sera nommée 1.5 et devrait être disponible au mois de juin 2006. La principale évolution sera le support de JEE 5.0 (nom officiel de J2EE 1.5).
Les travaux sur les outils de développement à la norme EJB 3.0 ont commencé en 2005 par le biais de deux sous-projets : 'JSR220-ORM Project' initié par Versant et 'Dali EJB ORM Project' dirigé par Oracle avec la participation de JBoss et de BEA. Ces deux projets ont amorcé leur fusion en janvier 2006.


En savoir plus :
- La page de WTP.
- Les news d'EclipseTotale concernant WTP

 


BIRT - Business Intelligence and Reporting Tools

Les outils open-source de création de rapports sont rares. Initié par la société Actuate, le projet BIRT est promis à un bel avenir. Ce projet est particulièrement actif, il propose notamment de nombreux exemples. BIRT propose un système de création de rapports pour les applications Web. Les deux principaux composants de BIRT sont un outil de conception de rapports et un moteur d'exécution installable dans un serveur d'applications J2EE.



Ajout d'un graphique
dans un rapport BIRT

(cliquer pour agrandir)

BIRT fournit des outils pour la prise en compte des quatre grandes étapes de la création d'un rapport :

- La récupération des données : des assistant permettent de définir la façon de récupérer les données à utiliser dans le rapport. Les données peuvent provenir de bases de données relationnelles, de fichiers XML, de WebServices ou directement d'objets Java.

- La transformation des données : il est courant qu'un rapport n'affichent pas directement les données récupérées mais que des transformations soient nécessaires : tri, regroupement, calcul de sous-totaux, calcul de pourcentages….

- L'ajout de règles métier : la structuration du rapport, les valeurs de certains champs peuvent dépendre de règles plus ou moins complexes. BIRT permet soit d'appeler de la logique Java soit, pour les cas les plus simples, d'embarquer directement dans le rapport du code JavaScript.

- La mise en forme : une fois les données récupérées et transformées reste à gérer la présentation du rapport. BIRT propose un constructeur graphique de rapport, les données peuvent être représentées de divers façons : tableaux, graphiques, texte formaté….

BIRT 2.0 permet de générer des rapports aux formats HTML et PDF. L'export des données au format CSV est aussi supporté.

En savoir plus :
- La page de BIRT
- Le tutorial BIRT - Création d'un premier rapport (animation Flash)
- Les news d'EclipseTotale concernant BIRT

 

 

TPTP - Eclipse Test and Performance Tools Platform

TPTP propose l'outillage nécessaire pour tester les applications et identifier les problèmes de performances.
TPTP est organisé en quatre sous-projets :



Mise en évidence d'un appel de méthode
coûteux sur un diagramme de séquence

(cliquer pour agrandir)

- TPTP Platform Project : fournit le socle utilisé par les divers outils de test et de mesure des performances. Fournit notamment les mécanismes permettant de collecter des informations et de gérer leurs récupérations dans un environnement distribué.

- TPTP Test Tools Project : propose les outils permettant de créer des tests. Différents types de tests sont proposées : test JUnit, test manuel (test avec intervention de l'utilisateur), test d'applications Web (capture et exécution d'une succession de requêtes HTTP).

- TPTP Tracing and Profiling Tools Project : implémente les outils permettant d'une part de collecter des informations sur le fonctionnement d'applications Java d'autre part d'analyser ces informations (localisation des allocations mémoires, détermination des temps d'exécution). Les applications Java peuvent être soit des applications autonomes soit des applications s'exécutant sur un serveur J2EE.

- TPTP Monitoring Tools Project : fournit des outils de collecte et de visualisation des performances du système d'exploitation (Windows et Unix) et de supervision pour divers serveurs d'applications (JBoss, Jonas, WebSphere).

En savoir plus :
- la page de TPTP
- Liste des démonstrations de TPTP 4.1

 

DTP - Data Tools Platform



Configuration d'une connexion
(cliquer pour agrandir)

Le projet DTP regroupe le développement d'outils pour la connexion aux bases de données relationnelles. Ces principaux objectifs sont de proposer :

- Des assistants pour définir les informations de connexion JDBC à une base de données relationnelle.

- Un explorateur de bases de données (liste des tables, structure des tables, …)

- Des éditeurs SQL de deux types : un éditeur de code source et un éditeur visuel permettant d'avoir une réprésentation graphique d'une requête.

- Un testeur de requêtes SQL et visualiser le résultat.

Ce projet livrera une première version stable au cours du deuxième trimestre 2006.

En savoir plus :
- la page de DTP

 


DSDP - Device Software Development Platform

Créé fin 2005 ce projet n'a pas encore livré de code. Ces objectifs sont de faciliter le développement d'applications pour les systèmes embarqués.
Nokia a rejoint ce projet et proposé un sous projet ciblant le développement d'applications Java avec J2ME. Une première version de l'outillage J2ME est plannifiée pour la fin du deuxième trimestre 2006.

En savoir plus :
- la page de DSDP

 

STP - SOA Tools Project

Proposé par IONA, le projet STP a été créé en janvier 2006.
Le but du projet STP est de fournir les outils nécessaires à la mise en œuvre d'architectures orientées services en se conformant aux travaux sur une nouvelle spécification : Service Component Architecture (SCA). Cette spécification lancée fin 2005 est le fruit d'une coopération entre BEA, IBM, IONA, Oracle, SAP et Sybase.



Service Component Architecture
(cliquer pour agrandir)

Le projet STP prévoit de fournir des outils destinés aux architectes et aux développeurs. Ces outils couvriront les différentes phases de la mise en place d'une architecture SOA : conception, configuration, assemblage, déploiement et supervision.

Les premiers travaux se feront dans le cadre de plusieurs sous-projets dont notamment :
- STP Service Creation qui fournira des assistants pour la création et l'édtion des interfaces des services.
- STP BPEL 2 Java qui proposera un générateur de code Java à partir de définitions de processus métier au format BPEL.

En savoir plus :
- La page de STP
- La page consacrée à SCA sur le site d'IBM
- Un interview du responsable du projet SOA

 


Eclipse Modeling Project



Exemple d'éditeur généré par GMF
(cliquer pour agrandir)

Le projet 'Modeling' fédére les sous-projets travaillant sur des outils de modélisation. Ce projet est en phase de propositon. Son pilier sera le sous-projet EMF (Eclipse Modeling Framework). EMF existe depuis 2002 et appartenait au projet 'Eclipse Tools'. EMF permet de décrire un modèle objet puis d'écrire ou de générer le code permettant de manipuler ce modèle. C'est un projet très utilisé par les autres projets Eclipse dont WTP, BIRT, DTP…

D'autres projets existants seront fédérés par le projet Modeling c'est notamment le cas du sous-projet GMF (Graphical Modeling Framework) qui apour but d'aider à la création d'éditeurs permettant de manipuler graphiquement, sous forme de diagrammes, un modèle objet décrit à partir d'EMF.

En savoir plus :
- La proposition de création d'Eclipse Modeling Project
- La page d'EMF
- La page de GMF



 

 

 

 


 

 

(c) EclipseTotale - contact(arobase)eclipsetotale.com