(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.
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
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 cur
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.
|
|
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 :
|
|
- 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
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.
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
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
|