Vous êtes sur la page 1sur 88

Matriser

Eclipse
Matriser
Eclipse
Mensuel - juin 2006 - N87 5,95
3
:
H
I
K
O
N
B
=
^
U
Z
^
Z
]
:
?
a
@
k
@
i
@
r
@
a
;
M

0
4
3
1
9

-

8
7

-

F
:

5
,
9
5

E
P
r
i
n
t
e
d

i
n

F
r
a
n
c
e

-

I
m
p
r
i
m


e
n

F
r
a
n
c
e

-

B
E
L
G
I
Q
U
E

6
,
4
5

-

S
U
I
S
S
E

1
2

F
S

-

L
U
X
E
M
B
O
U
R
G

6
,
4
5

-

C
a
n
a
d
a

8
,
9
5

$

C
A
N
Pratique :
Java : utiliser Swingx dans NetBeans
Java EE 5 : la puissance des EJB 3
C++ : dcouvrir le C++ CLI de .Net
XML : utiliser XPath dans PHP 5
WinFX : Windows Workflow Foundation, la machine flux !
vnement :
- JavaOne : les dernires nouvelles du monde Java
- MySQL multiplie les moteurs de donnes !
SOA
Qu'est ce que l'architecture oriente service ?
P2P
Pour les professionnels ! Microsoft dbarque
Windows devient-il
OPEN SOURCE ?
Compiler
son propre
environnement.
Choisir ses plug-ins
Microsoft
ouvre
le noyau Windows
lenseignement
et la recherche
01-87 18/05/06 19:44 Page 3
01-87 2/06/06 11:58 Page 5
3
Programmez n87 juin 2006
sommaire
/
ACTUS
Lactualit en bref......................................................................................................................................................................................................6
Agenda....................................................................................................................................................................................................................................12
/
TESTS
NetAdvantage 2006 vol 1 : Un pack de composants .Net ......................................................................11
/
EVENEMENTS
JavaOne 2006................................................................................................................................................................................................................14
Comment Microsoft apprivoise lopen source ........................................................................................................16
Microsoft entre luniversit................................................................................................................................................................18
Microsoft Technology Summit : l'Open Source invit Redmond............................................20
/
CARRIERES..............................................................................................................................................................................................22
/
SGBD
MySQL User Conference 2006............................................................................................................................................................24
Brves......................................................................................................................................................................................................................................25
/
DOSSIER : Mon Eclipse idal
Eclipse : Un cosystme omnipotent ....................................................................................................................................29
Compiler son propre SDK Eclipse ................................................................................................................................................31
Exemple dune configuration Eclipse de production......................................................................................33
Plug-in Open Source ou commercial : comment choisir ..........................................................................34
Une slection de plug-ins Eclipse................................................................................................................................................35
Dvelopper une application web avec MyEclipse ..............................................................................................38
Tmoignages ................................................................................................................................................................................................................40
/
FOCUS SOA : votre nouvel architecte
Architecture et organisation..................................................................................................................................................................43
Mettre en place une architecture SOA..................................................................................................................................46
Tmoignages ................................................................................................................................................................................................................49
BPEL & SOA, par lexemple ..................................................................................................................................................................50
Outils ........................................................................................................................................................................................................................................53
/
FOCUS : P2P : Le P2P chez les pros (2e partie)
P2P : un march en pleine croissance................................................................................................................................55
Groove Virtual Office : Pour quels usages......................................................................................................................56
Avalanche : le projet P2P en gestation chez Microsoft ............................................................................58
/
TECHNOLOGIE
Les nouvelles armes anti-virus NX et DEP ....................................................................................................................60
Windows Workflow Foundation : Une machine flux..................................................................................62
/
PRATIQUE
GlassFish, serveur dapplication Java EE 5..................................................................................................................65
Enrichissez vos interfaces Java avec Swingx sous Netbeans ............................................................68
Introduction C++. Net................................................................................................................................................................................70
Travailler avec le stockage structur de Windows ............................................................................................72
XML puissance 5 avec XPath et PHP......................................................................................................................................75
EJB 3.0 : le grand virage ..........................................................................................................................................................................77
/
TEMPS LIBRE
Ludique..................................................................................................................................................................................................................................80
Livres ........................................................................................................................................................................................................................................82
n87
CD-ROM PROGRAMMEZ N87
Adobe flash player bta
Editeur : Adobe - Version : 9 beta 3
La dernire version bta du lecteur flash
Adobe flex builder
Editeur : Adobe - Version : 2.0. Environnement de
dveloppement et d'intgration puissant et volutif
pour le dveloppement d'applications riches.
Adobe flex sdk
Editeur : Adobe - Version : 2.0. SDK de l'environne-
ment de dveloppement et d'intgration puissant et
volutif pour le dveloppement d'applications riches.
Eclipse SDK
Editeur: Eclipse.org
Version: 3.2 RC3 pour Windows et Linux. Dernire ver-
sion du SDK de la plate-forme de dveloppement.
Easyeclipse Starter Edition
Pour dbuter en dveloppement Java sous Eclipse.
Les plug-ins :
Antlr gnrateur de parseur suivant une grammaire
prdfinie.
Eclipse RSS Reader plug-in pour crer et
connecter des flux RSS.
Eclipseme
Plug-in ddi au dveloppement dapplications
mobiles avec J2ME sous Eclipse.
Google Search
plug-in permettant dutiliser le moteur de recherche
Google depuis lenvironnement Eclipse.
Hiberclipse
plug-in pour Hibernate, un framework open source
grant la persistance des objets en base de donnes
relationnelle.
EclipseJDO
plug-in permettant d'utiliser la norme Java Data Objet (JDO)
Blacksun
collection de plug-ins incluant des diteurs C#, CSS,
HTML, un constructeur de Builder.
PhpEclipse
Transformer votre Eclipse en environnement de dve-
loppement PHP.
Erlide
Dvelopper avec Erlang sous Eclipse !
Ruby Development Tool 0.8.0
la nouvelle star des langages de dveloppement. Orient
objet. IDE Open Source pour la plate-forme Eclipse.
Apache Beehive
projet open source issu de BEA Workshop, environ-
nement de dveloppement J2EE et orient SOA.
Oracle Database 10g Express Edition
PHP
Version : 5.1.4 - La dernire version de PHP pour Windows
Sources des Articles
3
Attention : Edition sans CD-Rom
les exemplaires diffuses sur certaines zones
gographiques, reprsentent une dition
spciale, sans CD.
03-05 Edito 87 18/05/06 20:13 Page 3
Altova

XMLSpy

2006 The industry standard XML development environment.


Altova

XMLSpy, loutil standard de dveloppement XML,


est la rfrence en matire de modlisation, ddition, de
dboguage et de transformation de toutes les technologies
XML. Sa conformit aux normes, ses outils de gestion inno-
vants et son intgration de plate-formes avances vous
permettront doptimiser votre stratgie. Avec XMLSpy 2006,
vous pouvez structurer des schmas XML, crer des
documents XML puis gnrer automatiquement un code
dexcution dans plusieurs langages informatiques.
Vous aussi, devenez un gnie de la programmation!
Tlchargez XMLSpy

2006 ds
aujourdhui: www.altova.com
Offrez ce quil y a de
mieux vos projets de
dveloppement
Bnficiez dun aperu de XMLSpy

2006
et comprenez pourquoi il est essentiel de
matriser XML.
Nouveauts dans la version 2006:
l
Support schema-aware XSLT 2.0
l
Support schema-aware XPath 2.0
l
Intgration Microsoft

Visual Studio

.NET 2005
l
Intgration Eclipse 3.1
Altova XMLSpy est compris
dans Altova XML Suite.
Microsoft, Visual Studio, and .NET are either
trademarks or registered trademarks of Microsoft
Corporation in the United States and/or other countries.
W
a
n
te
d
:
C
+
+ D
evelo
p
ers
03-05 Edito 87 18/05/06 20:13 Page 4
5
Programmez n87 juin 2006
E
dito
LE MAGAZI NE DU DVELOPPEMENT
Abonnement : Programmez 22, rue Ren Boulanger,
75472 Paris Cedex 10 - abonnements.programmez@grou-
pe-gli.com - Tl. : 01 55 56 70 55 - Fax : 01 55 56 70 20
- du lundi au jeudi de 9h30 12h30 et de 13h30 17h00, le
vendredi de 9h00 12h00 et de 14h00 16h30 - Abonnement
(magazine seul) : 1 an - 11 numros - France mtropolitaine :
45 (295,18 FF TTC) - CEE et Suisse : 51,83 - Algrie, Maroc,
Tunisie : 55,95 - Canada : 64,33 - Tom : 79,61 -
Dom : 62,84 - Autres pays : nous consulter.
TOUT NOUVEAU
TOUT BEAU !
Rdaction : redaction@programmez.com
Directeur de la Rdaction : Jean Kaminsky
Rdacteur en Chef : Franois Tonic.
Ont collabor : J. Chable, C.P. de Geyer, X. Leclerq, J.M.
Maman, F. Mazu, C. Padych, F. Bordage, J. Clune, F.
Barbin, C. Bouillier, F. Santin, S. Cordonnier, S.Haim
Lubczanski, B. Paroissin, J. Marc, R. Bourdon, S. Revel
O. Smedile, C. Jovi, H. Darmet.
Dessins : Michel Pidoue.
Maquette : AJE Conseils
Publicit : rgie publicitaire : ECC, Stphane Kaminsky -
pour la publicit uniquement : Tl. : 01 56 31 21 54 -
Fax : 01 56 31 21 59 - publicite@programmez.com.
Editeur : Go-02 sarl, 6 rue Bezout - 75014 Paris - Dpt lgal :
2
e
trimestre 2006 - Commission paritaire : 0707K78366 -
ISSN : 1627-0908 - Imprimeur : ETC - 76198 Yvetot
Directeur de la publication : Jean-Claude Vaudecrane.
Ldition destine aux abonns comporte un cd rom et un encart rdactionnel.
PROCHAIN NUMRO n88 - juillet/aot 2006 - Parution le 30 juin 2006
SPCIAL LANGAGES
de ASP XUL
La schizophrnie
du dveloppeur

force de lui dire quil est mort et enterr sous dix mtres
de claviers usags non recyclables, le dveloppeur reprend un peu espoir
quand on lui affirme que son mtier change. Mais espoir de courte dure, car
on lui assne une droite offshorise
Bon, admettons que notre dveloppeur, en pleine forme, ose mme sortir de chez lui
sans lallure dun geek tendance aqua. peine dehors, il apprend quil ne va plus
coder comme avant, que les outils automatiques lui volent sa future arthrite. Et aus-
sitt, on lui rvle quil doit plonger, tte la premire, dans laffreuse plomberie de
ces merveilles de nouvelles architectures et applications de nouvelles gnrations.
Que du bonheur ! Ou presque
Bien assis dans un fauteuil, notre dveloppeur admire bat, en poussant des
"waouh ! encore ! encore !", les dmos que les diteurs prsentent dans les conf-
rences. Tout le monde est tellement bluff quil veut la mme chose chez lui, dans
son entreprise. Une fois rentr son bureau avec sous le bras des tonnes de docu-
mentation, doutils en tout genre, commerciaux ou open source, notre ami le dve-
loppeur se met au travail, larchitecte maison ayant dj labor les jardins suspen-
dus de Babylone en mettant du SOA pour larmature, du Web 2 pour lentre, de
lEclipse pour la maonnerie et moult frameworks pour le mortier.
Mais voil qu peine commenc, le dveloppeur se demande comment il va bien pou-
voir faire, comme dans la dmo. Il regarde Eclipse pour dvelopper un ou deux plug-
ins lui et pour apprivoiser la plate-forme RCP, il se rend compte quil lui faut lire et
comprendre des centaines et centaines de pages et voir, aprs quelques nuits
blanches, que tout nest pas forcment document comme il le faudrait. Il se penche
alors sur larmature mais, il rend compte ici aussi que la structure complexe imagine
par larchitecte en chef demande des renforcements ici et l coup dorchestrations,
et des modifications a et l, faute doutils adapts et de standards disponibles !
En dsespoir de cause, il se dirige vers lentre en se disant que Web 2 est plus faci-
le. Que nenni ! Il faut sassurer de la compatibilit des frameworks avec le reste de
la construction, trouver le bon outil Ajax / JavaScript pour coder proprement, etc.
Le rsultat final diffre toujours des plans initiaux, do la ncessit de sadapter en
temps rel pour avancer. Le dveloppeur doit jongler avec limmaturit des outils, des
technologies, composer au mieux entre les plans et la ralit du codage en essayant
de colmater ici les lacunes des outils, des librairies, l des bugs, comme un funam-
bule oeuvrant dix mtres du sol sans filet !
Si en plus, on lui apprend que Windows flirte un peu, beaucoup, presque passion-
nment avec lOpen Source, qu Eclipse crase tout, que Borland cherche toujours un
acheteur pour ses IDE, et que Sun a chang de patron, comment ne pas devenir schi-
zophrne ?
s Franois Tonic
Programmez.com change !
Quels langages choisir ?
Pour quel usage ?
Les points forts et les points faibles
de chaque langage.
Quelles formations ?
Quels dbouchs professionnels ?
03-05 Edito 87 18/05/06 20:13 Page 5
SPCIFICATION
W3C sort ladressage pour services web
Le consortium W3C propose depuis peu les spcifications 1.0 du web
services adressing. Il permet de dfinir ladressage des services web et
lidentification des messages, indpendamment du transport. Il autorise
linteraction entre plusieurs services et lchange de messages asyn-
chrones. Il est possible dutiliser cette spcification avec SOAP. Web
Services Addressing adresse des objets pour les applications composes
de services web sappuyant sur les URI. Pour fonctionner, on passe par
une rfrence dun point dentre ou EPR. EPR peut aussi tenir le rle
de cookies lors dinteraction de services. En outre, il possde un sac de
mtadonnes. Ce sac dcrit les informations complmentaires propres
EPR comme la description du point dentre, une description WSDL, des
donnes web smantique. Cette spcification est trs importante dans
lorchestration de services web dune architecture complexe.
Site : www.w3c.org
OUTILS
JBoss continue voluer
Le rachat de JBoss par Red Hat na pas brid le travail de lditeur.
Dbut mai, on nous annonait la version 1.2 de la solution JBoss
Operations Network. Cette mouture incorpore un module de mise jour.
JBoss sengage ainsi assurer le support ncessaire durant le cycle de
vie dune application issue de sa plate-forme. Loutil avertit les utilisa-
teurs des nouvelles versions, des services de scurit, etc. Ct spcifi-
cation, JBoss rejoint lOASIS, le W3C et le WS-I. Cette triple participation
doit assurer JBoss un meilleur support des web services et du SOA
dans ses outils et participer aux futures volutions des spcifications.
Enfin, sur JBoss Portal, la nouvelle version 2.4 prend en charge les ser-
vices web ddis aux portlets distants (WSRP).
Site : www.jboss.com
OUTILS
Zizasoft et le travail en quipe
Lditeur vient de sortir la version 3 de son utilitaire pour les quipes
de dveloppement, zsCompare. Cet outil a pour but de stocker, grer les
sauvegardes, de comparer les versions de fichiers, de manager les
fichiers darchivages et mme de contrler la bonne gravure dun CD,
ainsi que de faire une revue des changements de code Bref, toutes les
fonctions de gestion que lon peut avoir faire quand on travaille en
quipe et en rseau. La v3 rajoute de nouvelles fonctions de comparai-
son (support des textes, XML, HTML, fichiers de registres Windows, word
et PDF). Il est maintenant possible de crer et comparer des snapshots.
Dans ldition professionnelle, on dispose dun langage script pour
automatiser loutil. Disponible sur Windows, MacOS X et Linux. partir
de 35 dollars (dition Lite).
Site : www.zizasoft.com
SOCIT
Sun perd
McNealy
Co-fondateur de Sun en 1982,
Scott McNealy tait la figure
emblmatique de la socit.
Fin avril, il annonce sa dmis-
sion du poste de patron ! Il est
remplac par Jonathan Schartz,
chez Sun depuis 1996. McNealy
demeure au sein de la socit pour dvelopper les opportunits de mar-
ch. Cette annonce " surprise " survient dans un contexte difficile pour
Sun qui affronte une forte concurrence sur le matriel et le logiciel et
des rsultats financiers mitigs.
JAVA
NetBeans tous azimuts !
NetBeans vient de lancer une prversion de Java RTS NetBeans Module.
Il supporte le temps rel dur et logiciel. Il incorpore deux nouveaux
threads spcifiques la notion de temps rel et doit assurer une
meilleure gestion des vnements, des priorits et du temps dexcu-
tion. Sil possde 28 priorits comme un thread normal, la priorit dun
thread RTS est renforce. Le module fonctionne avec NetBeans 5.0. Le
module propose un assistant de cration de projet.
Toujours pour NetBeans, Lattix vient de sortir un module de gestion de
dpendances, afin de maintenir lintgrit des projets NetBeans. La
visualisation se fait via une carte darchitecture. Tout au long du dve-
loppement, le module Lattix LDM teste et vrifie la bonne cohrence de
lensemble. Loutil existait dj pour Eclipse. Il est disponible en 4 di-
tions, dont une dition communautaire gratuite.
La communaut vient aussi de sortir officiellement la bta de NetBeans
5.5. Cette version assure le support de Java EE 5 et donc des EJB 3, de
la compatibilit avec Glassfish. Le support des services web est tendu
grce Jax-WS 2.
Sites : http://www.lattix.com, www.netbeans.org,
A
ctus
6
Programmez n87 juin 2006
PEOPLE
Codes Sources fait la fte
La crme des dveloppeurs .Net tait rassemble le 1er avril sur un
aro-club de Cergy-Pontoise, par Nicolas Sorel alias Nix-, fonda-
teur-animateur du site Codes Sources. Une cinquantaine de
"geeks", dont certains auteurs du Hors-srie .Net de Programmez.
La communaut de codes Sources, mais aussi des amis, et mme
Cyril (Cyrus), champion du PHP taient de la fte : ces gens l ne
sont pas sectaires ! Tout au long de cette folle journe, les partici-
pants ont fait leur baptme de lair, bord dun petit bi-place.
Nix (t-shirt " geek ") et les stars de .net
06-07 18/05/06 19:13 Page 6
06-07 18/05/06 19:13 Page 7
saturation, utilisateur, serveur). partir de ces tableaux de bord, loutil
gnre des rapports que lon exploitait dans sa suite bureautique.
Site : www.sysload.com
INTGRATION
Iona rajeunit Artix
Lditeur Iona vient de
prsenter la version 4 de
son outil dintgration
Artix. Il sagit dun ESB
(Enterprise Service Bus)
pour les architectures
SOA. Cette v4 inclut une
orchestration de services
avec BPEL afin de coor-
donner et faire interagir
les services. La concep-
tion des flux dorchestra-
tion se base sur Eclipse.
Pour garantir le bon acheminement des messages entre les services,
Artix incorpore WS-RM (Reliable Messaging) et on bnficie dune impl-
mentation JMS comme API standard. Lditeur annonce aussi une
meilleure prise en compte des environnements z/OS. Artix 4.0 est dis-
ponible partir de 10 000 euros par processeur. "Les meilleures pra-
tiques SOA exigent d'adopter une stratgie gnrale d'entreprise et
une mthodologie de dploiement par tapes pour rpondre aux chan-
gements des besoins mtier" prcise Massimo Pezzini, Vice-Prsident et
analyste de Gartner. " Cette approche des SOA favorise le remploi des
ressources existantes et l'incorporation ultrieure de nouvelles
technologies ; c'est un gage de cration de valeur des investisse-
ments consentis dans les SOA".
Site : www.iona.com
WEB
Ajax se met la business intelligence
Lditeur Information Builders, spcialiste en business intelligence,
annonce son nouvel outil : WebFOCUS Power Painter. Il sagit de crer,
en client lger, des rapports et analyses. La contrainte de ce genre dou-
tils est de bnficier dune interface trs ergonomique et trs visuelle.
Pour arriver cela, lditeur sappuie sur Ajax pour proposer une inter-
face desktop. Loutil permettra une personnalisation de linterface selon
les comptences de lutilisateur. Site : www.informationbuilders.fr
SOCIT
IBM rachte encore
IBM continue de faire ses achats. Cest au tour de BuildForge dintgrer
lunivers IBM, pour un montant inconnu. BuildForge travaille dans lau-
tomatisation des processus de dveloppement logiciel pour aider au
maximum le dveloppeur automatiser, notamment dans les quipes
de dveloppement. BuildForge tait dj " IBM Ready for Rational soft-
ware Business partner ", et de nombreux utilisateurs des outils
BuildForge travaillaient avec les logiciels Rational.
ORGANISATION
Borland annonce et confirme
Aprs lannonce du rachat de Segue Software et du dsengagement de
lditeur du march des IDE, Borland a annonc la finalisation du rachat
et de la nouvelle stratgie maison : gestion du cycle de vie, au sens
large, et de sa qualit (avec les tests notamment). Et pour mieux
rpondre cette vision, lditeur dfinit une nouvelle organisation. Tout
dabord, cela passera par une rduction deffectif de 300 personnes. La
force marketing et commerciale se portera dsormais sur le march du
cycle de vie. Le support utilisateur sera combin avec le dpartement
Recherche et Dveloppement afin davoir une meilleure ractivit et
rponse. En Europe, les trois marchs cls pour Borland seront
lAllemagne, lAngleterre et la France. Le secteur des outils de dvelop-
pement, regroupant lensemble des IDE, comptera environ 180 per-
sonnes. Il travaillera indpendamment de lditeur, montrant que le pro-
cessus de cession est en marche. Borland annonce quil travaille trou-
ver un ou des acqureurs dans les prochains mois. Mais la situation ne
doit pas perdurer trop longtemps. Car, plus le temps passera, plus le
doute sur lavenir des ex-IDE Borland sera mal peru par les utilisa-
teurs Dans le mme temps, Borland lance sa nouvelle solution de
Requirement Definition and Management, Caliber DefineIT, permettant
de spcifier les exigences fonctionnelles graphiquement, dexcuter des
scnarios, de modliser des cas dutilisation, de gnrer des cas de
tests. Cette solution regroupe CaliberIT et CaliberRM dans un package
nomm Caliber Analyst. Site : www.borland.com
PORTAIL
Sysload soigne le serveur
Lditeur Sysload Software lance SP Portal 2.0, sa solution de reporting
de capacit et dutilisation des serveurs. SP Portail permet dobserver,
danalyser la charge serveur, son utilisation. Les rapports permettront de
dfinir les ressources mal exploites et celles surexploites.
Lexploitation optimale des serveurs nest jamais vidente. La v2 de SP
Portal complte sa panoplie de tableaux de bord (capacit, application,
A
ctus
8
Programmez n87 juin 2006
p8 19/05/06 12:42 Page 8
RGLES
Ilog se met Ajax
Ilog, diteur franais doutils de rgles mtiers, vient dannoncer lint-
gration dAjax dans son outil JViews 7.5. Il sera encore plus ais de
construire des interfaces utilisateurs riches pour le Web. Lapparition
dAjax concerne lensemble de la gamme JViews. Ajax, Ilog ajoute le
format graphique SVG (Scalable Vector Graphics) et la technologie Java,
JSF. Le module Maps inaugure un tout nouveau moteur cartographique
et pour les armes, de nouvelles vues de terrain 3D sont aussi dispo-
nibles. Lditeur a aussi mis jour Ilog Rules et Ilog Gantt pour .Net.
Ces deux outils sont maintenant intgrables dans Visual Studio 2005.
Dans la foule, Ilog est devenu Gold Certified du programme Microsoft
Partner, prouvant ainsi toutes les qualits dIlog sur la plate-forme
Windows / .net. Site : www.ilog.fr
RFID
Sybase se renforce dans le RFID
RFID devient le nouveau march la mode depuis quelques mois.
Sybase qui ditait dj RFID iAnywhere, renforce son support en prenant
en charge le plus largement possible les systmes RFID mobiles ou
fixes. Il dispose maintenant dune synchronisation des lecteurs et des
formats dtiquettes personnaliss ou encore de la prsence du GPIO
(general purpose input and output). La nouvelle version 2.1 facilite
A
ctus
encore plus la cration dapplication mobile RFID. Elle supporte de nou-
veaux formats dtiquettes, support intgr des lecteurs RFID de poche.
" De plus en plus dentreprises commencent oprer une monte en
charge de leur systme RFID, si bien quelles multiplient lecteurs et
antennes proximit les uns des autres, ce qui provoque souvent des
interfrences ", dclare Martyn Mallick, directeur des solutions mobiles
et RFID diAnywhere. " La solution idale pour rgler ce problme
consiste coordonner les lecteurs afin quils fonctionnent mieux en
mode de lecture intensive. RFID Anywhere permet dsormais de contr-
ler les lecteurs par tranche horaire et GPIO, ce qui apporte un gain def-
ficacit significatif. " Site : www.sybase.com
SCURIT
Aladdin en rempart ultime
Lditeur annonce la version de eSafe 5, la FR2. Cette mouture intgre
une protection anti-spyware, un filtrage dURL, une journalisation du tra-
fic sortant, avec identification des utilisateurs dans les rapports, bloca-
ge des tlchargements FTP. " eSafe 5 FR2 symbolise un nouveau posi-
tionnement du filtrage d'URL qui est dsormais un composant critique
pour prenniser la scurit, la protection et la productivit des entre-
prises ", dclare Shimon Gruper, Vice-Prsident des technologies de
l'unit Aladdin eSafe. Le filtrage dURL intgre notamment une int-
gration LDAP et dActive Directory pour lidentification des utilisateurs.
Site : www.aladdin.com
p9 18/05/06 18:04 Page 9
comme il sagit dun sous-ensemble, il ne sera pas complet. Tout ce qui
est 3D, sera absent ! Dommage. Les dmonstrations prsentes mon-
trent tout le potentiel de la librairie.
Un des gros morceaux de la journe fut Ajax et surtout Atlas, l " Ajax
like " de Microsoft sappuyant sur ASP.NET et sur son propre langage
XML de conception. Atlas a pour objectif de simplifier le dveloppe-
ment de site Web 2. Pour le moment, rien nest dcid sur la future
licence dAtlas. Pourquoi ne pas le mettre en licence Shared Source ?
Cela ne pourrait quaider Atlas se dvelopper et voluer grce la
communaut.
Ce fut aussi une excellente occasion de dmontrer toute la puissance
des futurs Gadgets de Windows Vista et Microsoft Live, le Dashboard
dApple sauce Microsoft. Les possibilits sont incroyables. Un des
matres franais des gadgets, Aurlien Verla de Wygwam, a dmontr
toute la puissance de la technologie. On devient vite accro ces petites
applications sutilisant via Vista ou Live.com. Un grand concours, mal-
heureusement lanc un peu dans le secret, eut un grand succs et une
belle crativit. Et le choix est immense, cela va du programme tl
la circulation dans Paris. Voir : www.live.com
Ct " nouveauts ", les participants ont pu voir trs rapidement lul-
tra portable / mobile Origami, prsent il y a quelques semaines par
Microsoft, fonctionnant sous Windows XP embarqu. Tout aussi suc-
cinctement, une citation de xNav, une nouvelle technologie clavier ne
ncessitant ni touches, ni stylet. On utilise le doigt. Le clavier est tota-
lement repens par " secteur ". La salle est reste assez dubitative
devant les manipulations
Souvent passe sous silence, la gamme Expression de lditeur va boulever-
ser la donne dans le dveloppement de site Web et le graphisme. La gamme
se compose de Graphic Designer, Interactive Designer et Web Designer. Tout
pour raliser des sites Web 2 de haute qualit, tout en profitant des tech-
nologies de WinFX. Adobe est le premier vis par cette offensive.
s Franois Tonic
L
e thme central tait le web nouvelle gnration, avec Web 2.0.
Le programme annonc se voulait allchant : MSN, la program-
mation autour dun site Web 2, une prestation de Steve Ballmer,
et un important focus sur lutilisation avec la nouvelle gamme
Expression, Ajax et Atlas, le Web au-del du navigateur et le framework
Windows Presentation Foundation.
Une des sessions les plus attendues tait celle de Steve Ballmer, PDG
de Microsoft. Durant environ 30 minutes, il a martel la stratgie de
Microsoft sur le Web et les principaux axes de dveloppement, dclin
sa vision sur la connectivit accrue entre tous les nouveaux appareils
numriques que ce soit dans la mobilit, les applications, la tlvision.
En suivant cette volution, il sagit aussi de trouver le bon modle co-
nomique. La souscription constitue un des domaines sur lequel travaille
Microsoft, ainsi que la publicit (sur le Web) plus largement. Sur ce
point, Microsoft doit combler un retard important face principalement
Google qui multiplie lannonce de services. Si Web 1.0 tait gratuit, cela
ne sera plus le cas avec Web 2. Il faut un nouveau modle conomique
adapt. On ne vendra plus des applications comme avant dans les pro-
chaines annes Steve cite au fur et mesure les grandes nouveauts
de Microsoft : Vista, Windows Presentation Foundation, Internet
Explorer 7, avec un soupon de standards venant du W3C. Comme pour
mieux appuyer cela, une dmonstration, impressionnante, du futur
guide de tlvision en ligne du groupe de presse EMAP(Tl Poche),
entirement ralis avec les technologies Microsoft Sur la concurren-
ce, Steve dit que cela aide Microsoft faire mieux, se dpasser.
Des technologies prtes dferler !
La suite de la journe fut trs intressante aussi. Commenons par la fin,
avec le fameux Windows Presentation Foundation Everywhere (WPF / E).
Officiellement prsent lors de la dernire PDC, WPF / E est un sous-
ensemble de WPF, capable de fonctionner sur divers navigateurs et sys-
tmes pour excuter les applications utilisant la technologie WPF. Pour
le moment, le plus grand flou entoure cette librairie. Lobjectif est de
pouvoir utiliser les IHM dvelopps avec WPF / E. Le plug-in psera
environ 2 Mo et devrait tre disponible courant 2007. Cependant,
E
vnements
10
Programmez n87 juin 2006
Confrence
Mix 2006 Paris : le web 2.0 fait son show
Organise en quelques semaines par les
quipes de Microsoft France,Mix est une conf-
rence nouvelle gnration de lditeur qui
mise surtout sur les intervenants extrieurs
Microsoft en se voulant le plus concret pos-
sible, avec dmonstration lappui. Il sagit
dune copie de Mix ralise Las Vegas en mars
dernier. Contrairement ldition amricaine,
ldition franaise se droule sur une seule
journe au lieu de 3.
La folie des Gadgets !
p10 vnement 18/05/06 18:05 Page 10
N
ous avons install la version complte
valable pour le framework .net 2.0.
L'incorporation Visual Studio 2005 devra
passer par l'excution de l'entre "Create
NetAdvantage Visual Studio Toolbox Tab" du menu
nouvellement cr. La documentation est remar-
quable et vous disposez d'un rpertoire "samples"
pour chacun des contrles, que ce soit en C# ou
en VB (pour les composants WebForms mais aussi
WinForms). La richesse fonctionnelle est ici au ren-
dez-vous : nous avons t impressionns par les
possibilits du composant UltraWinChart ou
WebMonthView. La personnalisation de l'affichage
est trs grande, et en gnral chaque lment
(titres, styles, sous-composants) est hautement
configurable. L'diteur propose une panoplie de
composants facilitant cette saisie et permettant de
dtecter automatiquement des erreurs. Ceux-ci ont
t baptiss WebTextEdit, WebNumericEdit,
WebDateTimeEdit, etc. L'utilisation de certains
contrles est grandement facilite par une srie
d'assistants, comme celui utilis pour la cration
d'un graphique. Ce dernier est vraiment ultra puis-
sant, vous permettant par exemple de prendre dif-
frents types de datasources (dataset, datatable,
xml,etc), et d'afficher de nombreux types de gra-
phiques comme l'histogramme, le camembert, les
bulles, un graphique linaire. Tous ces composants
profitent des SmartTags de Visual Studio. Les
SmartTags reprsentent une sorte de menu contex-
tuel pour vos contrles, et vous avez la possibilit
de crer vos propres SmartTags pour chaque
contrle NetAdvantage. En rsum, il s'agit d'un
trs bon investissement dans le cadre de .net.
T
est
NetAdvantage 2006 vol 1 : Un pack de composants .Net
Infragistics propose depuis des annes une bote outils de composants pour professionnels. Avec ce pack,
vous avez votre disposition plus de 100 contrles dans le cadre de la construction d'une application gra-
phique autonome (GUI WinForms) ou Web (Webforms compatible AJAX). Ce logiciel vise un triple but : ruti-
lisation facile du code, rduction du temps d'apprentissage, et maintenance facile des applications ralises.
Fiche technique
NetAdvantage 2006 vol 1
Editeur : Infragistics
Site : http://www.infragistics.com/
Prix : Version d'essai tlchargeable / avec
Souscription (MAJ) et Support 875
Configuration requise: Windows XP n.et 2.0, 500
Mo d'espace disque, VS 2005
Les +
Code source fourni pour tous les contrles
Hautement configurable
3 versions par an (souscription)
Documentation de qualit
Les -
logiciel et support tests en Anglais
prix assez lev pour les dveloppeurs
n'utilisant pas .net comme coeur mtier
Par Xavier Leclercq
p11 18/05/06 18:06 Page 11
mercial et considrent que les technologies Open Source peuvent
rpondre ces exigences " explique Massimo Pezzini, vice-Prsident et
analyste reconnu du Gartner. Celtix 1.0 met en uvre Jax-WS pour les
web services, lutilisation du standard WS-RM pour la garantie dache-
minement des messages ou encore de limplmentation des standards
WS-Adressing, JBI et SCA. Site : www.objectweb.org
SYSTME
Novell dvoile SUSE Linux 10.1
La nouvelle version majeure de la distribution SUSE est dsormais dis-
ponible. La v10.1 inclut plus de 1 500 applications. Elle inclut des outils
de virtualisation comme Xen et OpenOffice 2 et surtout Mono, la pile
.Net open source. Cette version est cre par OpenSUSE, la distribution
gratuite de Novell. Durant lt, Novell sortira Linux Desktop 10. Une des
principales avances est une version OpenOffice enrichie de fonctions
entreprises. Il sera possible de convertir des macros VB sans ajout dou-
tils tierces. Nomm Open WorkGroup Suite, cet ensemble bureautique
doit offrir une alternative Microsoft. Novell y ajoute loutil collabora-
tif : Groupwise. Et Zenworks pour le ct administration.
TESTS
Conformiq distribu par Verifysoft
Lallemand Verifysoft Technology distribue loutil Conformiq Test
Generator. Il sagit dun outil gnrant des tests et les excutant. Le
dveloppeur dcrit dans un modle UML le test. Ensuite, on applique le
test gnr sur lapplication cible. Il peut servir de test fonctionnel, de
systme, de validation ou encore de non rgression. Selon lditeur, lou-
til fonctionne avec lensemble des langages du march. Test Generator
fonctionne sur Windows et Linux. Site : http://www.verifysoft.com
DVELOPPEMENT
Une nouvelle plate-forme de
dveloppement Web ?
Opera et Virtual Mechanics annoncent une nouvelle plate-forme de dve-
loppement web. Virtual Mechanics intgrant dans son outil de cration
web le navigateur Opera. Web Engine, le nom de loutil, est actuellement
en version bta. Il est multi terminal. Pour Virtual Mechanics, il sagit de
pouvoir permettre une visualisation immdiate des pages construites,
surtout quOpera fonctionne parfaitement sur terminaux mobiles. Web
Engine sappuie sur SVG et xHTML. La version finale de loutil est atten-
due pour le 3e trimestre 2006. Site : www.virtualmechanics.com
MODLISATION
WinDesign puissance 7
Lenvironnement de modlisation de processus mtier, WinDesign, sort
en version 7. Cette dition tend les fonctionnalits du modle Business
Process. On bnficie dune interface vers le moteur de workflow de
lditeur W4. La v7 permet de crer les donnes directement dans le
module de Business Process, une fois les processus crs, et non plus
de passer par le module database. Dans la partie visualisation, il est
possible dutiliser une reprsentation en couloirs dune rpartition du
travail. Site : www.win-design.com
CLUB
Mercury lance son club utilisateur
Fin avril, lditeur Mercury annonait la cration de son club utilisateur en
France : e-CUME. Il runit les clients des outils Mercury (qui le souhaitent) pour
des ateliers de travail et pour des sances plus informelles tous les trimestres.
DONNES
BMC veut un nouveau standard
Lditeur BMC participe activement la cration dun standard sur la
fdration et laccs aux donnes. BMC rejoint Fujitsu, HP et IBM. Le
besoin dun rfrentiel fdrant lensemble des systmes dinformations
et des donnes devient critique pour certaines entreprises. Il sagit de
pouvoir donner au CMDD (configuration Management DataBase) un
standard unique, utilisable par lensemble des diteurs. Le CMDB est
une base de donnes de gestion des configurations. Chez BMC, il sagit
de loffre BMC Atrium. Site : www.bmc.com
INTGRATION
Celtix 1.0 arrive !
Presque un an aprs la cration du projet Celtix par Iona, ObjectWeb et
Iona annoncent la disponibilit de la version 1.0 de loutil ESB / SOA. Il
sagit dune annonce importante pour loffre SOA Open Source face la
nombreuse offre commerciale. " Les entreprises commencent prendre
rapidement conscience que la dcision de s'engager dans une dmarche
SOA ne signifie pas forcment adopter une plate-forme dveloppe par
un fournisseur unique. Elles cherchent activement des solutions leur
offrant une meilleure flexibilit la fois sous l'angle technique et com-
A
ctus
12
Programmez n87 juin 2006
agenda
MAI / JUIN
Du 18 mai au 22 juin
TDF Tech 2006 (Tour de France
Technique) sur les versions 10 de
Windev,Webdev et Windev Mobile,
organis par PC Soft.
www.pcsoft.fr
Du 31 Mai 2006 au 01 Juin 2006
Paris Expo CNIT La Dfense
I-EXPO 2006
Salon de l'informatique numrique - Veille
et gestion de l'information. Runit les pro-
ducteurs de contenus professionnels, les
diteurs de logiciels pour valoriser le
contenu et les prestataires de services.
www.i-expo.net
Du 07 Juin 2006 au 08 Juin 2006
Paris Expo CNIT La Dfense
Progiforum 2006 Salon des progiciels de
gestion comptabilit-finance-dcisionnel
www.progiforum.com
Du 20 au 22 Juin 2006
Disneyland Paris, Hotel New York
Gartner Midsize Enterprise Summit
Sminaire du cabinet Gartner pour les PME.
www.midsizeenterprise.com/europe/index_fr.php
JUILLET
Du 04 Juillet 2006 au 08 Juillet 2006
Vandoeuvre-les-Nancy, Btiment du 1er
cycle, Facult des Sciences. Campus de l
Universit Henri Poincar - Nancy 1.
Les Rencontres Mondiales du Logiciel
Libre 2006 (RMLL) Rendez-vous mon-
dial des dveloppeurs et des acteurs
importants du Logiciel Libre. www.rmll.info
SEPTEMBRE
Du 26 au 28 septembre 2006
Paris La Dfense, CNIT
ERP2006, la 9me dition du Salon des
Progiciels de Gestion Intgrs pour les
grandes entreprises et les PME-PMI
www.salons-solutions.com
ETRANGER
Du 04 au 08 juin 2006
Etats-Unis, Las Vegas, Caesars Palace,
Confrence annuelle de Progress
Software, destine aux experts et utilisa-
teurs des solutions Progress.
www.progress.com
Du 13 au 17 aot 2006
Etats-Unis, Orlando
FileMaker Developer Conference, sur
le thme : porter les solutions FileMaker
sur le Web. www.filemaker.com/devcon
p12 agenda 18/05/06 18:07 Page 12
p12 agenda 18/05/06 18:08 Page 13
La vocation premire de Sun
est de maintenir lunit de Java et de tout
faire pour augmenter son adoption "
Jonathan Schwartz, CEO de Sun.

Eviter les divergences


Jonathan Schwartz a galement exhort les dveloppeurs simpliquer
dans la dfinition des prochaines versions de Java et des frameworks
associs en rejoignant le JCP (Java Community Process). Le JCP dcide
des principales orientations de la plate-forme Java.
En souvrant ainsi, Sun cherche maintenir la cohsion de sa plate-
forme et viter les " forks " tels que JBoss Seam, Oracle ADF et
Apache Struts qui reprsentent autant dinitiatives divergentes, mme si
elles visent au final rsoudre les mmes lacunes. " JBoss Seans
comble le gap existant entre les composants mtier et la couche de pr-
sentation (JSF) dans larchitecture Java Enterprise Edition 5 " explique
Marc Fleury, fondateur de JBoss. Epaul par Borland, Google, et Sun,
JBoss va mettre tout le monde daccord en standardisant un modle de
A
prs la nomination il y a
quelques semaines de
Jonathan Schwartz la tte
de Sun, la rumeur enflait dans la
blogosphre : Sun va-t-il distribuer
le langage Java et les frameworks
associs - Java EE, Java SE, Java
ME, etc. - sous licence open
source ?" La question nest plus
"allons nous le faire ?", mais plutt
"comment allons nous y parvenir ?"
a prcis Jonathan Schwartz lors de
la confrence JavaOne 2006 qui
regroupait 10 000 dveloppeurs du 16 au 19 mai dernier San Francisco.
Comme cette migration prendra du temps, Sun a tenu rassurer les
dveloppeurs en joignant le geste la parole. Aprs son serveur dap-
plication (Java EE 5) Glassfish et son outil de dveloppement NetBeans,
lditeur a libr son infrastructure de portail Java System Portal
Server 7, son moteur BPEL Java CAPS BPEL Engine (issu du rachat de
SeeBeyond), ses outils de dveloppement Java Studio Creator et
NetBeans Enterprise Pack, et son bus JMS qui rejoint le projet OpenJava
MQ. Sun tente de se positionner sur le march des outils orients SOA
bien que la concurrence soit dj trs vive.
Lautre annonce open source concerne Linux. Jusqu prsent, les diteurs
de distributions Linux navaient pas le droit de distribuer le JDK et le JRE.
Sun a donc mis au point une nouvelle licence - Operating System
Distributor's License for Java - qui leur permet maintenant de distribuer le
JDK et le JRE. Une initiative soutenue par les distributions Linux - Ubuntu,
Gentoo, et Debian ainsi que Sun Open Solaris, Schillix et BeleniX.
E
vnements
14
Programmez n87 juin 2006
JavaOne 2006
Sun souvre pour maintenir
la communaut Java unifie
Pour contrer Eclipse et maintenir ainsi la communaut Java soude,
Sun libre tous ses logiciels et focalise ses efforts sur la fdration des
diteurs. Il poursuit son effort sur une alternative sduisante Eclipse
IDE : NetBeans. Des initiatives qui commencent porter leurs fruits.
composant web qui se positionne entre les EJB 3.0 et les JSF. Les " web
beans " seront proposs la normalisation auprs du JCP.
Malgr son succs, Eclipse IDE et la plate-forme de dveloppement de
client riche Eclipse RCP sappuient eux aussi sur des technologies qui
ne sont pas standard (la couche graphique SWT notamment). Plutt que
de lutter ouvertement contre IBM, Sun a prfr amliorer son IDE
NetBeans 5.5 (actuellement en version bta). " Cet outil a fait des pro-
grs fulgurant en un an. Cest une srieuse alternative Eclipse IDE "
estime Sami Jaber, directeur technique de Valtech Toulouse. Dautant
que la JSR 198 - Standard Extension API for IDEs vient dtre approu-
ve par le JCP. Elle standardise la notion de plug-in et devrait donc per-
mettre, terme, dutiliser les mmes plug-in dans Eclipse et NetBeans.
Pilote par Oracle, cette initiative est
soutenue par les membres cls
dEclipse : IBM, BEA, Borland, SAP,
etc. Le premier exemple dinteropra-
bilit est Matisse4Eclipse qui permet
dintgrer lditeur WYSIWYG de
NetBeans dans Eclipse IDE.
Java en chiffres
- 700 millions de PC
possdent une JVM
- 1 milliard de tlphones
portables compatibles
- 1,25 milliard de JavaCard
l'inventeur de Java, M. Gosling
JavaOne 2006.
14-15 vnement 19/05/06 11:28 Page 14

E
vnements
15
Programmez n87 juin 2006
jMaki, alternative OpenAJAX
Soutenu par Sun, le projet open source jMaki permet dutiliser diffrents
framework AJAX clients (crits en Javascript) au sein de tags JSF et JSP.
Grce cette approche, les dveloppeurs Java peuvent continuer uti-
liser leur langage de prdilection tout en gnrant des sites web repo-
sant sur une architecture AJAX. En fournissant par dfaut des adapta-
teurs pour Dojo, Prototype et Yahoo Widgets, jMaki abstrait galement
le dveloppeur du framework quil utilise. Il peut ainsi changer de librai-
rie cliente sans remettre en cause son code. Cette initiative est le
concurrent direct de lAJAX Toolkit Framework (ATF) dEclipse. - site:
http://ajax.dev.java.net
Java ME change darchitecture
Pour sadapter lvolution des tlphones portables Sun propose une
nouvelle architecture - Mobile Service Architecture. Base sur les JSR 248
et 209 (Advanced Graphical User Interfaces), elle va faciliter le dvelop-
pement dapplications plus riches - multimdia, 3D, etc. - et couvre des
problmatiques comme la golocalisation, le paiement via tlphone
portable, Bluetooth, etc. Certaines technologies sont dj disponibles.
Cest le cas du Wireless Toolkit for (CLDC) with Mobile Services
Architecture (MSA) qui permet de tester et dboguer les applications
reposant sur la JSR 248 / MSA, du Java Wireless Client qui permet dex-
cuter plus dapplications en mme temps, des outils de test Java Device
Test Suite (JDTS) 2.0, et enfin du Java Toolkit for CDC qui offre de
meilleures performances et une portabilit amliore. Lextension
NetBeans Mobility Pack for CDC facilite de son ct le dveloppement
dapplications reposant sur CDC. -Site : http://java.sun.com/javame
s Frdric Bordage
Java EE 5 disponible
Ca y est ! Java Enterprise Edition 5.0 est disponible. Au menu des nou-
veauts : le support dAOP (Aspect Oriented Programming), un modle
de composants Enterprise Java Bean (EJB) 3.0 permettant de transfor-
mer nimporte quelle classe Java (Plain Old Java Objects ou POJO) en ser-
vice transactionnel, un meilleur support des services web et dAJAX au
sein des Java Server Faces (JSF) 1.2, et une nouvelle API de persistance
reprenant le modle du clbre outil de mapping TopLink. Grce len-
semble de ces volutions, Sun affirme quil a rcrit une application J2EE
1.4 en utilisant 60% moins de classes, 80% de fichiers XML en moins,
et 30% de ligne de code en moins. Java EE 5.0 serait aussi 30% plus
performant. Limplmentation de rfrence de Sun est dores et dj dis-
ponible et JBoss 5.0 devrait suivre avant la fin de lanne. IBM, BEA et
Oracle nont pas encore annonc de date precise.
Web Beans fusionne Struts,
Seam et Oracle ADF
Le concepteur d'interface Matisse sur Eclipse...
Apache, Borland, Google, Oracle, et Sun vont concentrer le meilleur de
leurs frameworks au sein dun seul modle de composant pour la
conception dapplications web : les " web beans ". Ces composants
emprunteront diffrents aspects aux frameworks respectifs des diteurs
: meta-donnes dOracle ADF, gestion dclarative et contextuelle de
ltat de JBoss Seam, etc. Lobjectif est de faciliter et dacclrer le dve-
loppement dinterfaces web. " Une initiative cruciale pour faire avancer
Java et maintenir sa position de standard dentreprise " estime Linda
DeMichel, responsable EJB chez Sun. A lorigine dHibernate, cest Gavin
King, actuellement architecte chez JBoss, qui pilotera cette initiative de
standardisation.
EN BREF
- Java SE 6 est dsormais fig et
disponible en version bta sur
http://java.sun.com/javase/6.
- Oracle soutient Grails qui vise
amliorer la productivit des
dveloppeurs Java en suivant la
mme philosophie que Ruby On
Rails. Il a aussi donn la com-
munaut open source (Apache
MyFaces) son kit de dveloppe-
ment AJAX qui sinterface avec JSF.
- Grce la JSR 277 - Java Module
System Java souvre aux autres
langages : JRuby, Jython, Groovy, etc.
- Sun ouvre deux nouveaux por-
tails destins aux dveloppeurs :
lun sur AJAX (developers. sun.com/ajax) et lautre sur Javascript
(developers.sun.com/ javascript).
- Spring 2.0 RC1 disponible.
- La JSR 209 - Advanced Graphical User Interfaces - amliore les pos-
sibilits graphiques sur les priphriques mobiles.
Swing est dsormais performante
et au mme niveau que les autres plates-
formes de dveloppement "
Romain Guy, ingnieur Sun travaillant sur Swing
Les applications Swing disposent
dun look natif et dune aussi
bonne ergonomie que les appli-
cations Windows natives.
14-15 vnement 19/05/06 11:28 Page 15
Le confrencier en charge de cette annonce tait Bernard Ourghanlian,
CTO de Microsoft France, qui nous la commente.
Est-ce un pas vers lopen source, pour Microsoft ?
" Nous ne sommes pas opposs lopen source. Le seul sujet sur lequel
nous sommes intraitables est la licence GPL, car elle implique la nga-
tion de lexistence mme de lditeur. Nous sommes tout fait daccord,
par exemple, avec les termes de la licence BSD/Berkeley. Ainsi, les
sources et limplmentation dIPv6 sont disponibles depuis 3 ans.
Ltape daujourdhui concerne Windows, mme si Windows CE est libre
depuis 3 ans. Il y a un " lobbysme ", en interne, chez Microsoft, pour
faciliter lenseignement.
s Jean Kaminsky
L
e 25 avril, dans le cadre des Journes Acadmiques, organises
pour les enseignants (voir pages suivantes), Microsoft annonait,
au dtour dune confrence, le projet Windows Research Kernel.
Le but premier est de pouvoir construire et tester des versions expri-
mentales du noyau dans le cadre de recherches et de lenseignement.
Cette initiative sinscrit dans un dipositif plus vaste, en direction de len-
seignement, comprenant galement le Windows Operation Systems
Internals Curriculum Resource Kit, ax contenu de formation, et
ProjectOz. Ce dernier est un projet dun environnement de systme dex-
ploitation utilisant les interfaces systmes natives de Windows pour ra-
liser des expriences sur les principes fondamentaux des systmes.
Lobjectif est donc de faciliter lenseignement de Windows.
E
vnements
16
Programmez n87 juin 2006
1 WINDOWS devient-il libre ?
Comment Microsoft
apprivoise lOpen Source.
Ne faisons pas durer le suspense, la rponse est " non ". Mais nous ne posons pas cette
question pour le simple et vain plaisir dun titre racoleur. Microsoft vient en en effet de rendre
diponibles les sources de Windows, pour la recherche et lenseignement. Analyse.
W
indows Research Kernel est disponible en
bta 1. Cette version sera accessible aux
universits, coles en charge denseigner les sys-
tmes dexploitation et les auteurs douvrages sur
les systmes. Cette initiative vise permettre aux
tudiants dtudier le source, de le manipuler, de
construire des projets. Il permettra aussi de pou-
voir crer des publications bases sur le cur de
Windows, rendre plus simple la comparaison de
Windows avec les concurrents et simplifier les
licences daccs aux sources. Aujourdhui, malgr
les dernires licences Microsoft, lditeur possde
toujours un grand nombre de licences Windows
Research Kernel se base sur XP SP2 et Windows
x64. Lensemble de ce qui compose NTOS sera
disponible, except le plug and play, le gestion-
naire dnergie et le code spcialis ainsi que
tout le code nappartenant pas au noyau. Bref,
tout ce qui concerne linterface, le file systems, le
rseau, les pilotes, etc. demeure en dehors de
linitiative. Le code livr ne sera pas livr " brut
de fonderie ". Quelques modifications seront
effectues par les ingnieurs maison : simplifica-
tion du code ici et l, nettoyage des commen-
taires. Remarque savoureuse de Bernard
Ourghanlian : "nous avons corrig des fautes
dorthographe et supprim quelques gros mots".
Bon savoir : tout ce qui ne sera pas dans le
code source sera mis dans une libraire binaire. De
nombreux outils seront tout de mme livrs avec
le projet pour tracer, surveiller les performances,
dboguer, paramtrer
500 000 lignes de codes
Lensemble sera packag avec un sous
ensemble du DDK et de la documentation sur
les pilotes. On aura droit aux sources du syst-
me de fichiers de lIFSKIT, la documentation des
API Windows. Tout cela reprsente tout de
mme 500 000 lignes de code. De quoi donner
mal la tte Les sources sont organises
selon deux grands rpertoires : public pour les
fichiers include partags par lensemble du sys-
tme et base/ntos/ qui contient les sources du
noyau. Pour viter de " crasher " un PC,
Microsoft a prvu dinclure dans le package
loutil de virtualisation : Virtual PC. Une excel-
lente ide ! Bien entendu, il est interdit de
dvoiler, de publier les sources codes ou enco-
re de publier des fins commerciales un noyau
modifi. La licence est donc non commerciale,
dans un cadre uniquement denseignement et
de recherche. Dans certains cas, il faudra inclu-
re les notices de copyright Microsoft. Toute dis-
tribution, communication devra se faire dans un
cadre de recherche, denseignement unique-
ment. Au final, cette initiative est intressante,
mme si elle est limite un cadre trs strict.
Microsoft tente ainsi de reprendre du terrain
dans les coles, les universits et chez les tu-
diants. Par certains aspects, cette initiative rap-
pelle celle dApple avec le projet Darwin regrou-
pant les couches basses de MacOS X.
s Franois Tonic
Microsoft fournit le noyau de Windows !
p16-21 vnement 19/05/06 11:41 Page 16
p16-21 vnement 19/05/06 11:41 Page 17
E
vnements
18
Programmez n87 juin 2006
forte culture Unix dans les Universits. Sun et IBM ont beaucoup inves-
ti. Paradoxalement, larrive de Linux a permis de passer de la station
de travail au PC. En gnral, il y a les 2 OS. Cela dpend des applica-
tions. Pour le dveloppement web et ladministration serveurs, il y a
un rflexe Linux. Pour le dveloppement client, Windows est reconnu. "
MSDN Academic Alliance
Larme principale employe pour conqurir les universits est la MSDN
Academic Alliance. Lance en 2001, elle permet laccs aux logiciels
Microsoft, en contrepartie dun forfait annuel pour lcole, ou le dpar-
tement de luniversit, quel que soit le nombre denseignants, dtu-
diants ou de machines, et pour une utilisation lcole ou la mai-
son, dans un cadre pdagogique. La seule interdiction : lutilisation pro-
fessionnelle ou commerciale. Montant du forfait : 927 euros.
Ce programme inclut les produits serveur, le systme dexploitation, les
outils de dveloppement.
Ne sont pas inclus : Word, Excel, Powerpoint et " videmment les jeux !".
Prs de 500 coles (universits, coles ding-
nieurs, quelques coles de commerce et des
lyces avec classes de BTS) sont abonnes au
programme, et elles devraient tre au nombre de
550 en fin danne. Une centaine dtablisse-
ments, en moyenne, rejoint le programme chaque anne, depuis le
dbut de lopration. La moiti lutilise effectivement, les autres per-
mettent simplement laccs des tudiants aux logiciels.
" Les barrires tombent "
Paralllement lAcademic Alliance, lditeur a mis en place un disposi-
tif complet dactions. A son service, une quipe ddie, bien sr, mana-
D
epuis la mi-avril, les tudiants peuvent tlcharger gratuitement
un certain nombre de logiciels de lditeur. Cette initiative de
Microsoft France est une premire mondiale.Ces logiciels, com-
plets et illimits, peuvent tre installs sur les machines personnelles
des tudiants, mais sont rservs un usage strictement priv et non
commercial. Ils sont tlchargs directement
sur un site de lditeur ddi lEducation,
aprs une simple inscription, via le Windows
Live ID (ancien " passport ").
En 3 jours, 1000 tudiants se sont inscrits,
puis 150 par jour en moyenne, prcise Laurent
Ellerbach, responsable des relations avec les
dveloppeurs et avec lEnseignement sup-
rieur.
Jusqu prsent, ce tlchargement exigeait que ltablissement densei-
gnement ait souscrit au pralable un accord avec Microsoft , dans le
cadre de la MSDN Academic Alliance. Dj 70 000 logiciels ont t tl-
chargs depuis la rentre 2005.
Les logiciels gratuits pour les tudiants
Visual Studio 2005 Professionnel Visio MS Project One Note
SQL Server 2005 InfoPath 2003 Virtual PC 2004
Inscription : www.msdnaa.net/france
Aprs vrification de son statut tudiant, on reoit un mail avec lURL du
site de tlchargement, un code daccs et un mot de passe.
Attention : rserv aux tudiants de la Mtropole et des DOM-TOM.
Enseigner la diversit
Cette action directe vers les tudiants marque pour lditeur un coup
dacclrateur. En effet, il y a des tablissements rfractaires. Mais aussi,
mme quand lcole est partenaire de Microsoft, " cela bloque au
niveau dun certain nombre denseignants. Le mot dordre de ceux-ci
pouvant se formuler ainsi " jamais, moi vivant,
Microsoft ne passera ! " regrette Laurent
Ellerbach.
" Il se trouve que nos technologies ne sont pas
les plus enseignes, on veut r-quilibrer. Nous
nous battons pour que les technologies Microsoft, soient enseignes au
mme titre que les autres. Dans un contexte donn, ltudiant doit pou-
voir choisir la meilleure technologie et non pas une technologie par
dfaut. Bien comprendre est indispensable pour faire un choix. Si la
technologie Microsoft est la meilleure et rpond le mieux au besoin, elle
sera certainement choisie."
" Nos technos serveurs nont jamais vraiment t enseignes. Il y a une
Traditionnellement, les universits restent le bastion de Linux et de lopen source. Parce quelles for-
ment les lites de demain, Microsoft ne pouvait pas en demeurer exclu. Persuader le corps ensei-
gnant et sduire les tudiants, est devenu une priorit stratgique pour lditeur.
2 Enseignement :
logiciels gratuits pour les tudiants
"Larrive de Linux a
permis de passer de la
station de travail au PC "
p16-21 vnement 19/05/06 11:41 Page 18
E
vnements
19
Programmez n87 juin 2006
LUniversit Microsoft
Les Journes Acadmiques rassemblent chaque anne
environ 250 chercheurs, enseignants et doctorants du
monde de l'Enseignement Suprieur et de la Recherche.
Cette confrence reprsente une bonne occasion pour les
enseignants/chercheurs dchanger sur des perspectives
denseignement et dinnovation. Elle propose aussi de
dcouvrir les dernires innovations technologiques
Microsoft, notamment la plate-forme .NET. " Le but est de
changer limage que les enseignants ont de Microsoft,
mais aussi de leur permettre dchanger entre eux ", pr-
cise L. Ellerbach. La quatrime dition des Journes aca-
dmiques se tenait fin avril Paris. Le focus tait mis sur
les produits et les technologies de demain : Windows
Vista, Office 2007, Visual Studio 2005, AJAX, WinFX,
XAML. Cet vnement a t loccasion pour Bernard
Ourghanlian, CTO et CSO de Microsoft France (Directeur
technologie et scurit) dannoncer la mise disposition des
sources du noyau de Windows pour lenseignement et la recherche
(article prcdent).
Tmoignages
Nous avons recueilli quelques avis denseignants, dans le cadre des
Journes Acadmiques. Rticence, force dinertie, et progression.
Dijon : 70% choisissent .Net
Le Centre Universitaire Catholique de Bourgogne est un des premiers
avoir intgr dans son cursus des certifications Microsoft : Rseau-
Serveur dune part, dveloppement dapplications dautre part. En
dveloppement, 70% choisissent .Net.
IUT de Reims : " ne pas tre li un outil ".
" Par tradition, on a toujours favoris Linux, reconnat un enseignant.
On sest abonn MSDN il y a un an, mais nous navons pas encore
de formation .Net. Nous enseignons la programmation en Java et
PHP. On se pose la question, cest le grand dbat. On vient ici par
curiosit. On sent que nos collgues enseignants sont rfractaires.
Nous voulons avoir un esprit de veille technologique. On est oblig
davoir une vision ouverte, de ne pas tre li un outil, mais dtre
capable de sadapter toutes les plates-formes et les outils. "
Universit de Bretagne : " nous refusons toutes les certifications ".
" Cest surtout dans lenseignement suprieur quil y a des rticences
envers Microsoft. Nous sommes orients Java, Unix. Mais il y a une for-
mation .Net dans la filire " Gnie logiciels/Rseaux ". Nous refusons
toutes les certifications, nous refusons dtre lis aucun constructeur ".
Une Majorit de terminaux.
Montpellier : " A la Facult, ils sont sur des terminaux, ils nont pas
du tout de Microsoft. A lcole dingnieurs, on forme simultanment
lOpen Source et Microsoft ". Toulouse 3 : " Sur 5 000 6 000
machines, on navait que de lUnix. On na pas les moyens de mettre
des PC disposition des tudiants ".
ge par Laurent Ellerbach, mais aussi un corps dune quinzaine dex-
perts technologiques, chargs de faire des confrences destination
des professionnels et aussi des tudiants.
Environ 14 000 tudiants ont assist ces confrences. Ils repartent
gnralement avec un livre Microsoft Press en bonus. " Faire des
confrences choquait il y a quelques annes, mais les barrires tom-
bent et les enseignants y trouvent un bon complment leurs ensei-
gnements ", reconnat Laurent Ellerbach.
Lditeur suscite la cration de Students Clubs. Il y en a une cinquantai-
ne lheure actuelle. Lobjectif serait den compter un par tablissement.
Les tudiants peuvent devenir MVS, (Most Valuable Students). Ils sont
dj 90 avoir mrit le label.
LImagine Cup est un concours qui existe depuis 4 ans, et qui vise
" faire dcouvrir et aimer le code par les tudiants ". La coupe comp-
te 60 000 participants dans le monde, dont 8 500 Franais. La France
est le 3e pays reprsent, aprs lInde et le Brsil. Elle gre une cat-
gorie, le " Projet Hoshimi ". http://www.imaginecup.fr.
Des partenariats peuvent galement stablir au coup par coup. Une
des premires actions vers les tudiants avait t, ds 2000, le site
web du Laboratoire Supinfo des technologies Microsoft, ralis en
partenariat, entre lcole et lditeur. En dcembre 2005, 200 tu-
diants avaient suivi les Students Days de Supinfo. Voir galement le
partenariat avec lINSA de Lyon (encadr).
Un autre partenariat original mrite dtre signal : le support pour les
administrateurs systme-rseau de lEducation Nationale, avec lINSA
de Lyon. Ce partenariat est triangulaire : il associe lcole, le ministre
de lEducation Nationale et Microsoft. Une cellule dune douzaine dtu-
diants, en relation avec des responsables et le service support de ldi-
teur, gre un forum auquel sont inscrits environ 1000 administrateurs
systme et rseau. " La formation dadministrateur systme et rseau
nest pas enseigne dans les coles dingnieurs. Cest une exprience
unique pour les tudiants participants. Et dailleurs unique au monde
", souligne Laurent Ellerbach, " le terrain de jeu de ces tudiants, cest
la vraie vie. Ils sont trs demands ds quils sortent de lcole ".
s Jean KAMINSKY
p16-21 vnement 19/05/06 11:41 Page 19
E
vnements
20
Programmez n87 juin 2006
OpenOffice. Notre correspondant local a parl de crer ce mme type
dAPI pour manipuler des fichiers OpenXML. Plus dinformations sur
http://www.oofrance.com.
Microsoft Research
Rick Rashid, un collaborateur proche de Bill Gates est venu nous pr-
senter quelques unes des recherches effectues par Microsoft dans ses
laboratoires. Au programme, virtualisation des interfaces (cran holo-
graphique tactile comme dans le film " Minority report "), retouches
d'images volues telle que la modlisation 3D partir d'une image 2D
ou encore la Sensecam, petit botier qui enregistre votre vie la mani-
re d'une bote noire pour les humains. Si lon en doutait encore,
Microsoft est prsent partout, sa force de frappe est immense.
Prsentation de IE7
IE7 sera le navigateur embarqu dans Windows Vista (et disponible sur
XP). Parmi les nouveauts, un renforcement de la scurit, l'ajout d'un
systme d'onglets, l'aperu avant impression et la possibilit de choisir
le moteur de recherche intgr l'interface du navigateur. On retiendra
surtout que le confrencier recommande IE7 pour sa grand-mre (sic !)
Nous, dveloppeurs nous lui prfrerons Firefox qui dispose dj de ces
fonctionnalits et mme de plus (except le mode protg disponible
sous Windows Vista, ndlr).
Linq
Linq est un nouveau langage de requte bas sur un pseudo langage
SQL pour les dveloppeurs .NET. Le grand intrt de Linq est sa possi-
bilit d'effectuer des requtes sur des donnes quelque soit leur type,
bases de donnes bien sr, fichiers XML, mais aussi des donnes pro-
venant directement du code tels que des tableaux, objets ou toute autre
source de donnes.
.NET, PHP, Atlas, IIS7 et Rialto
Pour les architectes PHP, c'est la confrence que nous attendions le
plus. Scott Guthrie (responsable des quipes de dveloppement de IIS
et ASP.net) nous a fait une dmonstration de Visual Studio. L'outil per-
met de dvelopper du site web classique assez facilement. On appr-
ciera que quelques fonctionnalits de base soient implmentes telles
que l'affichage de listes, cration de menu,...
L'outil est pratique et permet de travailler vite et sans mettre les mains
dans le code. Cest un peu lapproche PHP de Dreamweaver qui permet
de gnrer les actions de base sans coder.
Dans le monde PHP, les solutions sont beaucoup plus axes codage et
C
ette anne, quatre Franais taient convis participer ce som-
met par Steve Sfartz, architecte en systme d'informations chez
Microsoft France : Romain BOURDON (WAMP5, Anaska), Didier
GIRARD - (Improve), Vincent MASSOL - (Cactus, Maven / Pivolis), Cyril
PIERRE DE GEYER (www.afup.org , www.ass2l.org / Anaska). Pour un
professionnel des solutions lies au monde du logiciel libre, se rendre
chez Microsoft, c'est un peu se rendre chez ladversaire. C'est quelque
chose de courant, car cela permet de savoir ce que fait l'autre et ven-
tuellement de se repositionner. L'anne dernire, au Salon PHP, les deux
premiers inscrits taient deux salaris de Microsoft. Chacun regarde ce
que fait l'autre ! Sur place, finalement peu de Linuxiens, la plupart des
ordinateurs tournent avec Windows. Mais comme l'OpenSource ne signi-
fie pas uniquement Linux, en y regardant de plus prs on aperoit beau-
coup de Firefox, Thunderbird, OpenOffice, Eclipse, PHP, Gimp ...
Quelques confrences intressantes
Microsoft et l'Open Source
Le modle conomique de Microsoft est bas sur la vente de licences
grande chelle. Dans ce cadre, il y a forcment conflit avec les licences
libres. D'autre part, Microsoft est conscient que sans interoprabilit,
ses outils perdront beaucoup de valeur face ses concurrents, du coup
c'est une direction forte. Tant mieux pour les logiciels OpenSource pour
lesquels cet aspect est une force. Au final, si l'utilisateur y gagne, tout
le monde y gagne.
Microsoft est galement dans une phase de rflexion quant publier
certains de ses outils sous licence libre. Pour l'instant ils testent, mais
peut tre demain Atlas ou d'autres frameworks seront compltement en
logiciel libre et ouvert ? La difficult est d'accepter de ne plus tre le
seul avoir la main sur le projet.
OpenXML
Le concurrent de la solution d'OpenOffice.org : OpenDocument.
La bataille fait rage pour la normalisation d'un modle XML pour les
documents des suites bureautiques. D'un cot l'OASIS, un organisme
indpendant, travaille sur la normalisation du format OpenDocument
utilis notamment par OpenOffice.org. De l'autre, Microsoft pousse son
propre format OpenXML. Lequel des deux sera le premier tre offi-
ciellement standardis ?
Dans tous les cas ce sera une grande avance pour l'utilisateur, car ce
format sera ouvert et permettra d'autres applications, supportant le
XML, de lire / modifier / crer facilement des fichiers bureautiques.
Un exemple des avances d'interoprabilit qui pourraient tre faites :
il a t discut des API PHP permettant de manipuler des fichiers
Microsoft Technology Summit :
3 L'Open Source invit Redmond
Le " Microsoft Technology Summit " est une confrence destine aux membres des commu-
nauts libres, se droulant Redmond, au sige du gant des logiciels. Sur place, prs de qua-
rante personnes reprsentant Java (surtout), PHP et d'autres tendances telles que la fonda-
tion Mozilla ou Apache. Microsoft souhaite y prsenter ses technologies pour avoir des retours
et aussi permettre une meilleur introperabilit de ses outils.
p16-21 vnement 19/05/06 11:41 Page 20
E
vnements
21
Programmez n87 juin 2006
Conclusion : Microsoft change
Microsoft change, et quoi qu'on en pense il faudra prendre ce para-
mtre en compte. D'une vision manichenne avec laquelle il tait
facile de trouver ses repres, Microsoft est pass un discours plus
nuanc. Le modle conomique tant de vendre massivement des
licences on peut se demander comment cela va voluer ?
Les efforts de la communaut du logiciel libre continuent porter
leurs fruits : l'impact sur les grands diteurs du march est rel.
Les outils de la communaut Open Source sont dun bon niveau. Ne
connaissant pas o peu les outils de Microsoft nous avions parfois
un complexe dinfriorit cause de la force marketing du gant de
Redmond, nous avons t confort dans la force de nos outils.
aide au dveloppement propre (PHPEdit, Eclipse, ZendStudio). On y
retrouve, ple-mle, des outils de profiling, de deboggeur, dautocom-
pltion, de gestion de travail collaboratif, Pour avoir autant de fonc-
tionnalits en ASP.net il faut utiliser plusieurs outils et parfois mettre la
main au portefeuille (de nombreux outils open source, freeware existent
pour complter Visual Studio, ndlr).
Finalement, la comparaison entre PHP et ASP n'a plus vraiment de rai-
son d'tre, il faudrait comparer PHP et .Net. Ainsi, l'approche ne serait
plus une approche site Web mais plutt une approche application Web
ddie aux systmes d'information. Aprs la plate-forme web, la partie
cliente avec le framework la Ajax de Microsoft : Atlas. Encore un
Framework Ajax, c'est la mode (mme si Atlas fait partie de lunivers
ASP.Net et intgre son langage de script, ndlr). Pour s'imposer, Microsoft
a chang ses habitudes : le Framework sera en partie sous la "Microsoft
permissive licence" et ne sera pas li uniquement .Net. Rien n'emp-
chera d'utiliser PHP ou JSP pour dvelopper avec. En marge de cette
confrence, nous avons eu l'occasion de voir fonctionner un autre fra-
mework Ajax qui vaut le dplacement : Rialto.
Pour terminer, les confrenciers nous ont fait une petite prsentation du
serveur web IIS 7. La grande nouveaut semble tre la gestion d'un
quivalent des fichiers htaccess sous IIS. Microsoft entend ainsi essayer
de rattraper en partie le retard de IIS par rapport Apache.
Conclusion
L'organisation de l'vnement tait excellente. Cependant, cela n'a pas
empch quelques petits " drives ". A la toute fin de la premire jour-
ne, le responsable des confrences a fait une annonce surprenante
pour nous : un bon de 120 dollars utiliser dans le " Microsoft Store "
habituellement rserv aux employs ! Une fois arrivs sur place, nous
nous sommes rendus compte qu'en fait de " bon d'achat ", il s'agissait
d'un " droit d'achat " ... Ainsi nous avions loccasion de dpenser notre
argent hauteur de 120 dollars dans le magasin Microsoft. Un choc des
cultures et de mentalit. De Microsoft, nous avons rencontr des
codeurs et des architectes et le courant est bien pass. On sattendait
ce quils cherchent nous faire changer de bord et a na pas t le
cas. En fait la seule personne qui rabaissait toujours lOpenSource et qui
donnait des conseils pour le juguler tait quelquun de notre groupe !
Srement une recrue pour Microsoft bientt.
s Romain BOURDON, Crateur de WampServeur (www.wamp5.com). Directeur
Technique Anaska et Cyril PIERRE de GEYER, Cofondateur de lassociation
franaise des utilisateurs de PHP, Responsable du ple formation Anaska.
p16-21 vnement 19/05/06 11:41 Page 21
Logiciels et services : croissance de 7 % en 2005
Jean Mounet, prsident du Syntec, vient de prsenter le bilan 2005 du sec-
teur des logiciels et services. Rsultat : +7 % par rapport 2004, un chiffre
daffaires de 31 milliards deuros et de bonnes perspectives pour 2006 et 2007.
" Lanne 2006 devrait sinscrire dans la conti-
nuit de 2005, le secteur L&S devant pour-
suivre la bonne dynamique engage depuis 2
ans et afficher une croissance de lordre de 6%
8%. Les investissements des entreprises
dans les L&S devraient donc encore afficher
court et moyen terme une croissance nette-
ment suprieure la croissance conomique ",
a-t-il indiqu. Une relle prouesse dans " un
climat conomique franchement peu dyna-
mique ". Pour mmoire en effet, le PIB franais
a t de +1,4% en 2005 et pourrait tre de
1,8% en 2006 contre 8,8% pour la Chine,
3,6% pour les Etats-Unis et 3,2% pour
lEspagne (sources: Xerfi, OCDE).
Dans la moyenne europenne
En France, aucun des 4 grands domaines dacti-
vits du secteur L&S nchappe la croissance
qui sest globalement acclre sur un an.
Lingnierie/intgration se taille la part du lion
avec 40% de parts de march. Viennent ensuite
linfogrance avec 29% de PDM, en nette pro-
gression par rapport 2004 (+11%), puis les di-
teurs (25%) et le conseil (6%) chiffres Pac,
Syntec informatique. Autre enseignement : sur le
plan europen, le domaine L&S reprsente 30,7%
de PDM , rpartis en 10,7% pour les logiciels et
20% pour les services. Ils sont pourtant derrire
le gant des TIC : les oprateurs tlcoms qui
reprsentent 44,2% du march (source : EITO). En
termes de dynamisme, la France se situe dans une
bonne moyenne europenne -o lItalie fait figure
de parent pauvre - . Pourtant, elle ne parvient pas
remonter son retard en matire dinvestisse-
ments L&S. Certes, si elle a plus que tripl ses
dpenses L&S dans le secteur IT entre 1973 et
2005, passant de 12% 41% (chiffres Pac, Syntec
informatique), elle est encore largement distance
par les Etats-Unis. En 2005, ceux-ci ont consacr
51% dinvestissements en L&S dans les dpenses
IT (Pac, Regent Associates, Analyse Syntec infor-
matique). Cest donc sur ce point quil lui faut
continuer maintenir la pression
C
arrire
22
Programmez n87 juin 2006
Au premier plan, Joseph Mariani, directeur du
dpartement "technologies de l'information et de
la communication" la direction de la technolo-
gie, ministre dlgu l'enseignement suprieur
et la recherche, a accueilli au ministre de la
recherche, les participants.
I.S Able a pour mission de mettre en place une
structure indpendante dvaluation en com-
ptences informatiques ; il est gr par lasso-
ciation TopDev.
Au programme de la rencontre : lvolution des
comptences informatiques au cours des 20
dernires annes (sujet dvelopp par Jacques
Printz, responsable de la chaire logiciel au
Cnam et membre de lassociation promouvant
lhistoire de linformatique et des tlcommu-
nications), quelques donnes sur les comp-
tences actuellement recherches, par Pierre
Lamblin, directeur tudes et recherches de
lApec. Puis trois dbats se sont succds : les
comptences des informaticiens, celles des
non informaticiens et enfin, " que penser dun
systme dvaluation de comptences indivi-
duelles ? "
Pas une preuve de rapiditmais
apprendre travailler en rseau !
Lvnement sest termin par la remise des
prix du concours de programmation TopDev
2006. Son prsident, Chrystel Coassin, est
TopDev : en route
pour la troisime dition !
Le 10 avril dernier, le ministre de la Recherche accueillait une belle bro-
chette de participants dans le cadre dune confrence organise pour le
lancement de la certification en comptence informatique I.S. Able
(Informations Systems Ability).
revenu sur cette preuve qui sest droule
lors du week-end du 27 au 29 janvier dernier.
Ouverte tous (" tudiants, professionnels ou
simples passionns ") et linternational, elle
a runi 771 participants issus de 65 pays.
Lobjectif : la mise en concurrence des informa-
ticiens en programmation multi langage multi
environnement (Java, PHP, .Net, Python), "tota-
lement indpendante des diteurs de logiciels
de programmation ou de modlisation", sur un
sujet fix et ferm pour une dure limite de
60h. Lpreuve a consist en la ralisation
dune application Web, tire dun cas rel pro-
fessionnel, produite proprement et documen-
te, et non pas " dun exercice de programma-
tion raliser le plus vite possible ".
Laurats de ldition 2006 : Arnaud Vandyck et
Yannick Boogaerts (formateurs en informatique
au service de technologie de lducation du
professeur Dieudonn Leclercq, facult de psy-
cho pdagogie Lige). Deuxime place :
Fabrice Fontaine (consultant technique ind-
pendant Paris, diplm de lENSI Caen-
ISMRA et titulaire dun DEA en intelligence arti-
ficielle). Troisime place : Andr-Franois
Landry (consultant indpendant Saint-Omer
au Canada). Quatrime place : Mohamed
Ouchra (responsable informatique) et Patrice
Manset (dveloppeur Web). Cinquime place :
Andri Toma (tudiant lInsa de Lyon et vain-
queur de TopDev 2005).
Ldition TopDev2007 est en phase de prpa-
ration. Chrystel Coassin confie quil cherche
"largir lquipe" et ouvrir le concours des
associations dtudiants. La date, encore tenue
secrte, sera prochainement communique et,
conclut Chrystel Coassin non sans humour " il
faudra plus encore apprendre travailler en
rseau " !
En savoir plus :
http://www.topdevone.com/index_fr.php
http://www.is-able.com/V_La_Competence_
Informatique.html
Par Claire Padych
22carrire 18/05/06 18:16 Page 22
'Z006 lnIel CcrpcraIicn, lnIel, le lcgc lnIel, PenIium, lIanium, lnIel Xecn eI VTune scnI des marques eI des marques depcsees de lnIel CcrpcraIicn cu de ses liales aux EIaIs Unis d'Amerique eI auIres pays. *0'auIres ncms eI marques
peuvenI eIre reclamees ccmme apparIenanIes d'auIres.
Transfcrmez |a u|ssance Hu|I|Ccre
en Perfcrmances de |'A||caI|cn
Prarez vcs a||caI|cns cur qu'e||es rcIenI du ara||||sme eI de |a mcnIe en charge
Bcn du rem|er ccu:
Ccm||aIeurs InIe|' C eI FcrIran
amelicrez les per!crmances via le mulIi laires sans mcdier vcIre envi
rcnnemenI
Ana|yseurs InIe|' VTune"
idenIiez rapidemenI les gculeIs d'eIranglemenI di!ciles Ircuver
InIe|' ThreadChecker
Ircuvez les bugs mulIi laires laIenIs via la visualisaIicn en Iemps reel
InIe|' HPI L|brar|es
mise en ceuvre scuple de NPl sur archiIecIures mulIi reseaux
InIe|' C|usIer HaIh kerne| L|brary
permeI aux develcppeurs de parallelismes de develcpper des applicaIicns
Linux numeriquemenI sIables
Vcus ccncm|sez jusqu' 1Z0C Pr|x C
HT
InIe|' Thread|ng Tcc|s Z.Z 594,00
InIe|' C Ccm||er 9.1 cur w|ndcws 339,00
InIe|' V|sua| FcrIran Ccm||er 9.1 SIandard 4Z4,00
Ed|I|cn cur w|ndcws
InIe|' V|sua| FcrIran Ccm||er 9.1 Prcfess|cna| 1189 ,00
Ed|I|cn cur w|ndcws
InIe|' VTune Perfcrmance Ana|yzer 8.0 594,00
InIe|' InIegraIed Perfcrmance Pr|m|I|ves 5.1 169,00
cur w|ndcws
Pcur en savcir plus, ccnIacIez Valerie cu Frederic au 01 30 BZ 04 54, envcyezncus un
email inIelQmicrcsigma.!r cu allez sur ncIre siIe www.micrcsigma.!r/inIel.
"Entre 24,5 et 31,5 pourcent plus rapides suite aux
amliorations du compilateur Fortran pour Linux*
sont trs signicatifs quant nos applications"
Dr. James Murray
Astronomer and System Administrator
Swinburne Centre for Astrophysics and Supercomputing
22carrire 18/05/06 18:16 Page 23
Techniquement, un moteur de stockage sappuie sur les " pluggable sto-
rage engine API " de MySQL. Ces interfaces fournissent diffrents ser-
vices de bas niveau qui facilitent et acclrent le dveloppement dun
moteur de stockage spcifique. Le moteur de stockage gre les accs
disques ou mmoire tandis que le moteur SQL sert dinterface entre le
client (serveur dapplication, etc.) et les diffrents moteurs de stockage.
Grce ce dcouplage, une table peut tre migre dun moteur de stoc-
kage un autre, laide dune simple instruction SQL " alter table engi-
ne ". Les spcificits du moteur de stockage sont totalement invisibles
pour le dveloppeur qui na pas une seule ligne de code changer dans
son application.
De nombreux moteurs sont dj en cours de dveloppement. Cest
pourquoi lditeur vient de lancer un programme de certification pour
les moteurs partenaires ainsi quun site - forge.mysql.com qui regrou-
pe lensemble des projets open source lis MySQL.
Mais comme le note Juergen Faisst, directeur gnral de Thinking
Network qui dveloppe un moteur MOLAP pour MySQL, " il faudrait
pouvoir aller encore plus loin en facilitant le dveloppement dinterfaces
et doptimiseurs SQL spcifiques ". MySQL jouerait alors le mme rle
dintgration et de fdration quEclipse pour les outils de dveloppe-
ment. Une ide qui sduit aussi Jrmy Zawodny, expert MySQL chez
Yahoo ! et qui se demande " combien de temps faudra-t-il avant que
MySQL intgre linterface donnes de Google : Google Data API ? "
Nous souhaitons fdrer les initiatives en
facilitant le dveloppement de nouveaux
moteurs de stockage grce notre architecture
unique : ouverte et modulaire "
Bertrand Mattheli,
responsable marketing Europe de MySQL
O
n peut, par exemple, recourir des tables MyISAM pour lire
trs rapidement des donnes et des tables InnoDB pour
garantir lexcution de transactions ACID. Cest grce cette
modularit que MySQL affiche dexcellentes performances face aux
solutions dIBM, Oracle et Microsoft. Ces dernires imposent dutiliser
un seul moteur de stockage transactionnel, mme si une table nest
accde quen lecture, ce qui rduit leur performance. Partant du prin-
cipe que la nature des applications volue de plus en plus et de plus
en plus vite, MySQL a dcid daxer le dveloppement des nouvelles
versions de son SGBD/R autour de la modularit. " Si vous nutilisez
quun seul moteur, il y a des tas de fonctionnalits qui ne vous int-
ressent pas. Si vous recourez plusieurs SGBD, vous devez embaucher
plusieurs DBA et faire face des problmes dintgration " rsume Zack
Urlocker, vice prsident de MySQL AB.
La modularit comme stratgie
Grce son architecture deux tages moteur SQL dun ct et
moteurs de stockage de lautre MySQL veut encourager le dveloppe-
ment de nouveaux moteurs de stockage rpondant aux besoins spci-
fiques de chaque application. " Nos utilisateurs doivent pouvoir choisir
le moteur de stockage le plus adapt leurs contraintes, et mme, au
besoin, dvelopper leur propre moteur(*). Cette modularit est synony-
me de meilleures performances " estime Bertrand Mattheli, respon-
sable marketing Europe de MySQL AB.
SGBD
24
Programmez n87 juin 2006
MySQL User Conference 2006
MySQL veut " eclipser " les bases de donnes
Depuis sa cration, MySQL permet dutiliser
plusieurs moteurs de stockage pour rpondre
aux diffrentes contraintes techniques dune
mme application.
J
a
m
e
s

D
u
n
c
a
n

D
a
v
i
d
s
o
n
/
O
'
R
e
i
l
l
y

M
e
d
i
a
"
.

Les trois fondateurs de MySQL ont annonc le nouveau moteur transaction-
nel Falcon - " free as in beer " - lors de la confrence qui runissait ses uti-
lisateurs Santa Clara (Californie) fin avril.
(*) : comme lon fait Friendster, Google et Yahoo !

24-25 vnements 18/05/06 19:53 Page 24


BRVES
SQL Server Service Pack 1
M
icrosoft a lanc fin avril dernier le premier service pack ddi
SQL Server 2005. Cette mise jour inclut de nouvelles fonctions :
mirroring de base de donnes, de nouvelles fonctions pour les SQL
Server Reporting Services, apparition du Management Studio Express
pour ladministration. Le domaine de SP1 propose aussi un support plus
large des diffrents types de donnes ou encore la mutualisation des
connaissances pour le dcisionnel, sans oublier une meilleure intgra-
tion de la mobilit. Et dsormais, SQL Server 2005 sintgre bien mieux
avec SAP NetWeaver Business Intelligence via un nouveau composant
fournissant les donnes SQL Server loutil SAP.
Ingres 2006
O
n lavait presque oubli, le SGBD Ingres continue exister et tente
de se redynamiser en annonant ses plans pour 2006 et 2007. Le
grand chantier concerne le SGBD Ingres en version 2006. Cette dition
mise sur les performances, lexcution parallle des requtes et leur opti-
misation, un nouveau systme de partitionnement ainsi que sur la haute
disponibilit grce des mcanismes de clustering, disponible sous
Linux, Windows et Solaris. Ct dveloppement et connexion, le SGBD
supporte PHP, Python, Perl, Ruby, sintgre .Net et Visual Studio et inclut
le support de JDBC 3 pour JBoss, WebSphere et WebLogic. Dautre part,
lditeur annonce une meilleure intgration Linux sur linstallation nati-
ve (format RPM) que ce soit sous KDE ou Gnome. Ct nouveaux sys-
tmes, Ingres 2006 prend en compte OpenVMS Itanium, Solaris x86 et
x86-64, MacOS X et mme Xbox 360 ! Lditeur travaille aussi activement
sur OpenROAD, un IDE de dveloppement compatible Ingres 2006. Loutil
doit supporter les nouvelles fonctions dIngres et aura un support com-
plet dUnicode. Lvolution dOpenROAD se fera en plusieurs tapes entre
2006 et 2007 : apparition dun runtime mobile pour Windows Mobile,
intgration aux IDE phares du march (Visual Studio, Eclipse), fonction de
modlisation graphique base sur UML. Ce renouveau bnficie aussi la
France qui voit renatre le club utilisation Ingres !
Site : http://www.ingres.com
BI City : Oracle sexpose
F
in avril dernier se tenait une journe sur le Business Intelligence,
orchestre par Oracle autour de ses solutions et de solutions parte-
naires. Le BI est devenu un outil stratgique dans la prise de dcision.
La matine fut surtout consacre la vision dOracle sur le BI, les solu-
tions de lditeur. Ce fut aussi loccasion de lancer Oracle Business
Intelligence Suite. Cette suite vise btir du BI et du Data Warehouse.
Couple Oracle 10g, il sera possible de rapidement crer, manager,
dployer des applications BI. Ce fut aussi loccasion, via une table
ronde, de discuter du futur du dcisionnel, notamment avec le SOA.
Laprs-midi fut largement occup par les retours dexpriences. Cette
rencontre entre utilisateurs et retours dexpriences relles a t une
des cls du succs de la journe. Justin Ziegler, DSI de PriceMinister, se
montre enthousiasme de cette formule, " avoir un retour du terrain est
primordial. Linvestissement est important, on ne paie pas seulement les
licences, on met en place une quipe ". Cela permet de voir rellement
lutilisation des outils. " Je suis prt renouveler lexprience si jy trou-
ve un intrt. On aura dautres choses dire en 2007 ". La journe fut
un rel succs : plus de 900 inscrits. Si BI City 2007 existe, lobjectif
sera ambitieux : atteindre les 1 500 personnes !
Les moteurs actuels de MySQL
Moteur Editeur Type Intrt
InnoDB Oracle Transactionnel (ACID). Support des
verrou au niveau des lignes transactions longues.
Berkeley DB Oracle Transactionnel (ACID). Alternative InnoDB
verrou au niveau des lignes.
intgrit rfrentielle.
MyISAM MySQL Non transactionnel. chaque table Trs rapide en lecture.
est un fichier. verrou au niveau Adapt au web et
de la table. certains type
de datawarehouse.
Merge MySQL Collection de tables MyISAM Performances et
identiques qui sont vues comme une dpasser les limites
seule table par le SGBD. physiques des disques.
Federated MySQL Base de donnes logique rparties permet l'accs des
sur plusieurs serveurs physiques. tables d'un serveur
distant (pour l'instant
uniquement un server
MySQL)
Memory MySQL Table stocke entirement en mmoire. Performances lors de
(Heap) recherches sur des
tables contenant de
trs nombreux
enregistrements.
Archive MySQL Donnes compresses avant dtre Trs rapide en lecture.
stockes sur disque. Elles ne peuvent Ncessite trs peu de
pas tre supprimes ou mises jour. place sur le disque.
Compatible avec
certaines contraintes
lgales lies
larchivage de donnes
lgales (factures, etc.).
Cluster MySQL Cluster temps rel Performance et haute
(NDB) disponibilit
CSV MySQL Stockage des donnes dans Simplicit de manipulation.
un fichier plat au format CSV. Format trs ouvert.
Un fichier par table.
Blackhole MySQL Moteur ne stockant pas les donnes. Test de monte en
charge afin de
dterminer les goulots
dtranglement lis au
code SQL et non au
moteur de stockage
(par exemple).
Tous ces moteurs sont disponibles sous licence GPL.
Les moteurs venir
Moteur Date Editeur Type Intrt
PBXT Q4 2006 PrimeBase XT Transactionnel (ACID). Alternative InnoDB
SolidDB Q1 2007 Solid IT Transactionnel (ACID). Alternative InnoDB
Falcon Q1 2007 MySQL Transactionnel (ACID). Supporte un trs gros
Verrou MVCC plus fin volume de transactions
que la ligne. courtes. Adapt selon
lditeur aux
applications " web 2.0 ".
OpenOLAP Q1 2007 Thinking Moteur MOLAP. Datawarehouse
Networks AG et dcisionnel.
Tous ces moteurs sont disponibles sous licence GPL.
s Frdric Bordage
SGBD
25
Programmez n87 juin 2006
24-25 vnements 18/05/06 19:53 Page 25
nouveauts et amliorations. On notera lapparition de nouvelles fonc-
tions serveurs pour la robustesse, de continuit et de scurit des don-
nes, le support de .Net 2 et de Visual Studio 2005 ainsi que des nou-
veaux matriels Symbian. Pour ladministration, un nouvel outil gra-
phique servira administrer, dployer, Monitorer.
Site : http://www.ianywhere.com
OUTILS
Embarcadero vise une surveillance
optimale
Lditeur Embarcadero prpare la sortie de Performance Center 2.0. Cette
version doit apporter un monitoring 24 7 des bases de donnes DB2
sous Linux, Unix et Windows. Loutil supportait dj Oracle, Sybase et
Microsoft. Avec la masse croissante des donnes et des applications, le
monitoring constitue un lment critique dans la disponibilit des don-
nes et les bonnes performances.
Site : http://www.embarcadero.com
OUTILS
Importez du texte dans une base
Comment importer automatiquement des colonnes de textes dans dif-
frentes bases ? Limport de donnes est souvent une corve incor-
porer dans une application. La librairie RegexImporter prend en charge
cette fonction. Elle supporte Oracle, MySQL, SQL Server. Fonctionne uni-
quement sous .Net (1.x pour le moment). Version dessai disponible. La
licence dveloppeur cote 270 euros.
Site : http://earthquakes.lgg.ru/products.aspx
OUTILS
Quest Software aide toujours MySQL
Lditeur Quest Software rend disponible la version 2 de son outil Toad
for MySQL. Toad permet dapporter des fonctions dadministration, de
performance et scurit aux bases MySQL. Cette v2 inclut un module de
" version control integration " pour vrifier rapidement le code, dun
gestionnaire de scurit ainsi quun enregistreur de macro. Toad for
MySQL est gratuit mais sans support, pour bnficier dun support, il
faut dbourser 170 euros.
Site : www.quest.com
SGBD
4D en version 2004.4
Lditeur franais 4D a une nouvelle fois mis jour sa base de donnes.
Estampille 2004.4, il sagit essentiellement dune version de mainte-
nance corrigeant des bugs des versions prcdentes. La principale nou-
veaut est le support du MacIntel (Mac utilisant des processeurs Intel).
Toujours aucune nouvelle sur la prochaine version majeure que lon
attend depuis 2003. La rupture annonce en fin 2002 avec le projet
"Goldfinder" ne devrait pas avoir lieu.
Site : www.4d.fr
SGBD
IBM DB2 Viper : prt mordre
Disponible depuis plusieurs semaines en prversion, le prochain DB2,
nom de code Viper, confirme la volont dIBM de rester sur le march
trs concurrentiel des SGBD. DB2 affronte Oracle, Microsoft et MySQL.
DB2 Viper devrait arriver en version finale durant lt, au plus tard la
rentre. Viper se veut une base de donnes hybride permettant dutili-
ser le relationnel classique et XML. Lditeur met en avant cette dualit
en prcisant que XML est support nativement et que lon peut mani-
puler des donnes XML sans aucune transformation.
Outre son fonctionnement sur Windows, Linux et Solaris, la partie dve-
loppeur a t soigne. On retrouve le support de .Net 2 mais surtout de
PHP, avec lajout du Zend Core. Facilitant ainsi laccs aux bases DB2
depuis une application PHP. Si rien nest connu en dtail, une version
express gratuite de Viper sera disponible sans doute vers la fin de lan-
ne. SOA na pas t oubli dans ce SGBD. La possibilit dexposer et
de consommer des Web Services facilite lutilisation de DB2 dans un
cadre SOA. Pour les gros volumes de donnes, on dispose dune fonc-
tion de compression. La fdration de donnes est disponible unique-
ment en environnement DB2, un module sera acqurir si on en sort.
MOBILIT
SQL Server
partout
Pour investir lensemble des mar-
chs, Microsoft lancera une ver-
sion express de SQL Server ddie
aux mobiles. Elle assurera une
synchronisation vers les bases
SQL Server et le modle de dve-
loppement sera identique la version desktop. Il est probable que les
licences daccs client seront payantes. Cette version est identique ldi-
tion SQL Server Mobile, mais avec les limitations des versions express.
On ne pourra pas lutiliser avec son serveur web. Une premire version
devrait tre disponible durant la prochaine TechEd (novembre). Elle ne
supportera pas Xpath.
SOCIT
EMC se renforce dans la rplication
EMC, spcialiste du stockage, vient de racheter Kashya, compagnie tra-
vaillant sur les logiciels de rplication de donnes et de protection. Le
montant du rachat est denviron 153 millions deuros. EMC souhaite
injecter des outils et technologies dans le stockage.
Site : www.emc.com
MOBILIT
iAnywhere 10 en programme bta
La filiale de Sybase travaille activement sur la version 10 du SGBD
iAnywhere. Il sagit dune trs importante mise jour avec plus de 200
SGBD
26
Programmez n87 juin 2006
p26 18/05/06 18:24 Page 26
p26 18/05/06 18:24 Page 27
D
ossier
28
Programmez n87 juin 2006
Mon Eclipse idal
peine 5 ans ont t ncessaires Eclipse pour simposer comme loutil de dveloppement
Java par excellence et devenir une plate-forme technique et technologique de rfrence.
L
e passage de Borland Eclipse pour
JBuilder puis le retrait de ce mme
Borland du march des environnements
de dveloppement avec la vente de len-
semble des IDE na fait que confirmer la supr-
matie dEclipse. Pour autant, les autres IDE ne
sont pas morts. NetBeans semble tre le chal-
lenger n1 alors que Jbuider, IntelliJ ou encore
Jdeveloper peinent rester dans la course.
De trs nombreux environnements de dve-
loppements utilisent Eclipse. IBM, Adobe, BEA,
Software AG, Compuware, Oracle, Zend, etc.
pour ne citer queux ! Cette utilisation se fait
sous deux formes essentiellement : intgration
de socle Eclipse pour btir une solution " pac-
kage " dessus ou fournir des plug-ins. Lautre
avantage de loutil est de sappuyer sur une
communaut dditeurs et open source trs
active aussi bien dans la dfinition de nou-
veaux frameworks que dans la conception de
nouveaux outils. La profusion de plug-ins com-
pense le manque de fonctions disponibles par
dfaut dans lenvironnement de dveloppe-
ment. Cependant, la plate-forme souffre de
plusieurs maux : complexit du dveloppe-
ment de plug-ins ou dapplications RCP, quali-
t des plug-ins trs variable, ergonomie
moyenne, pas de certifications des extensions.
Quand on dbute le dveloppement Java, le
rflexe Eclipse est tentant. Mais encore faut-il
savoir par o commencer. Comment choisir
des plug-ins ? Quelles prcautions prendre ?
Peut-on recompiler son environnement
Eclipse ? Faut-il crer sa propre configuration
ou utiliser des distributions cl en main ?
Autant de question que nous allons aborder
dans ce dossier.
Que vous soyez pro ou amateur dEclipse, il est
toujours utile de connatre les fondamentaux.
s Franois Tonic
28/41 18/05/06 19:34 Page 28
D
ossier
Eclipse : un cosystme omnipotent !
On ne prsente plus Eclipse. la fois, framework,
plate-forme client riche, IDE, Eclipse, issu des
laboratoires IBM, a su en quelques annes bousculer
le march des environnements de dveloppement
au point de forcer lacteur historique Borland passer
lennemi Eclipse ne risque pas de sarrter
en si bon chemin, sans pour autant " dtruire ",
son principal concurrent, NetBeans.
E
clipse nest pas mono langage mais vri-
tablement multi langage, capable de
coder en Java, C, C++, C#, etc. Il fonc-
tionne sur de nombreux systmes. Il se pose
dsormais en plate-forme universelle pour les
outils. Il est ouvert, extensible, multi plate
forme. Basiquement, Eclipse repose sur un
runtime OSGI, la librairie dinterface SWT, Jface
et linterface utilisateur (Generic Workshop).
cela sajoutent le Java developments tools, les
documentations, lIDE, les ressources.
Lun des intrts dEclipse est son architecture
ouverte et modulaire avec lajout de plug-ins, des
extensions lenvironnement. Aujourdhui, il exis-
te presque un millier de plug-ins, commerciaux et
open source, de qualit et de pertinence trs
ingaux. Il est loutil majeur dans les dveloppe-
ments Java / J2EE et bientt sur Web 2.
Les distributions Eclipse
linstar des distributions Linux, les distribu-
tions Eclipse commencent se multiplier sur le
march. Il sagit, la plupart du temps, de pac-
kager lIDE Eclipse et diffrents
plug-ins, souvent open source,
parfois commerciaux quand il
sagit dditeurs. Cest une ten-
dance voue se renforcer. Le but
est de fournir aux dveloppeurs
un socle fonctionnel complet. Il
existe parfois des versions com-
munautaires gratuites et des ver-
sions payantes incluant le plus
souvent du support. Ainsi, Yoxos
propose trois ditions de sa distri-
bution avec possibilit de sous-
cription et de support. Ldition
dveloppeur, sans souscription
(donc sans mise jour) est
24,95 euros, par contre, ldition
entreprise dmarre 450 dollars
avec support. Il existe aussi des
initiatives open source comme
EasyEclipse pour btir une distri-
bution entirement ouverte.
EasyEclipse propose des ditions de dmarra-
ge, Desktop Java, serveur, mobile, LAMP. Vous
trouverez aussi des " distributions mtiers "
construites pour rpondre un problme busi-
ness comme le management, la distribution
(supply chain), etc. Intuit Eclipse illustre cette
capacit modulaire dEclipse. Vous trouverez
aussi des distributions de dveloppement
orient. Le but de toutes ces distributions est
toujours le mme : assembler, intgrer, tester
des plug-ins pour livrer un environnement cl
en main au dveloppeur. Cette mthode a
lavantage de vous viter de chercher, de tes-
ter les plug-ins et surtout de vrifier linter-
oprabilit entre les diffrents modules ! Pour
dmarrer rapidement, cest lidal. Quand vous
travaillez en quipe, il faut absolument
construire une distribution type dploye sur
lensemble des postes de dveloppement. Il
faut en effet garder lhomognit de lenvi-
ronnement de dveloppement et viter toute
installation sauvage.
Se former Eclipse
Matriser Eclipse nest pas chose facile. Toute
une offre de formation existe. Le premier l-
ment est la documentation, officielle ou non,
point de dpart pour dmarrer et apprendre
les premires fonctions (malheureusement pas
toujours complte et souvent volumineuse et
en Anglais). Il existe plusieurs dizaines dou-
vrage sur Eclipse et son utilisation dans le
dveloppement, dont plusieurs en Franais.
Cest une bonne manire pour se former et se
perfectionner dans certains
domaines. La communaut tant
trs active, les forums Eclipse,
en Franais ou en Anglais, sont
nombreux. Un des sites franco-
phones le plus connu est
EclipseTotale. La formation
Eclipse est un march en plein
essor, grce une demande elle
aussi en croissance. Il existe
dj une offre de formations
relativement toffe. PLB propo-
se ainsi une formation de 4
jours sur la conduite de projets
Eclipse en tudiant CVS, Ant et
Junit. Valtech nest pas en reste,
29
Programmez n87 juin 2006
28/41 18/05/06 19:34 Page 29
avec 3 jours pour personnaliser lenvironne-
ment et faire du travail en quipe. Sysdeo
(groupe SQLi) propose aussi des formations
similaires. Les prix sont trs variables, mais
comptez entre 1 200 et 1 700 euros. On pour-
ra aussi citer : Anyware Technologies, ac6,
dawan.
Certification, logos
Un des points ngatifs mis en avant concerne
la diversit des plug-ins, des commerciaux, de
lopen source. Il y a forcment une qualit trs
variable dun plug-in lautre. Il nexiste pas
de certification officielle de la Fondation
Eclipse. Seuls les projets officiels sont en
quelque sorte adoubs par la fondation. Il
existe bien des logos officiels "Built on Eclipse",
"Eclipse Ready", "Eclipse Incubation",
"Eclipse Proposals" mais ils napportent aucu-
ne certification ou garantie explicite de quali-
t. Pour que lcosystme dEclipse continue
crotre, il devient ncessaire de mettre en
place une vritable procdure de certification,
avec des batteries de tests pour homologuer le
plug-in. Esprons que cela se mette en place
dici fin 2006. Cest pour cela que des diteurs,
comme BEA avec Workshop Studio, packagent
leur propre Eclipse avec des plug-ins, pour
garantir le bon fonctionnement des diffrents
modules en production.
Sy retrouver
dans la jungle des plug-ins
Comme vous allez le voir dans la suite du dos-
sier, une des difficults est de pouvoir trouver les
bons plug-ins pour crer son environnement de
travail. Il existe plusieurs manires de procder.
Sites dannuaires
Le plus pratique est de passer par des cata-
logues. Il en existe plusieurs. Lun des plus
connus est Eclipse plugin central (www.eclip-
seplugincentral.com). Il recense la plupart des
plug-ins disponibles par catgories (28 en
tout). Surtout, les plus actifs et les nouveauts
sont bien mises en avant. Il existe aussi : one-
clipse (www.oneclipse.com), eclipse plugins
(www.eclipse-plugins.info).
Le site officiel
La fondation propose sur eclipse.org son
propre catalogue des plug-ins commerciaux et
open source. Cest un bon point de dpart
pour toute recherche. Il est cependant moins
pratique dans sa prsentation et dans la mise
jour des informations.
s Franois Tonic
30
Programmez n87 juin 2006
Petit historique
1998 : IBM commence le dveloppement dun
environnement de dveloppement qui se
nommera Eclipse. Le but est de soutenir,
suivre la croissance du march Java mergent.
2001 : le projet adopte le virage de lopen
source, avec la cration du consortium
Eclipse.
2003 : anne capitale pour lenvironne-
ment qui dbarque dans sa premire ver-
sion majeure (apparition des prversions
de la 3.0).Ladoption par les dveloppeurs
commence crotre fortement. Mais cest
aussi lanne des critiques du march sur
le contrle dIBM sur Eclipse et le flou sur
lavenir de loutil.
2004 : cration de la fondation Eclipse
pour rendre lenvironnement indpendant
dIBM, tout du moins, moins dpendant.
Premire confrence EclipseCon !
2005 : annonce dEclipse Rich Client
Platform.
2006 : la fondation regroupe 12 dvelop-
peurs stratgiques, 8 dveloppeurs plein
temps et plus de 80 socits membres de
la fondation et/ou utilisant Eclipse dans
leurs solutions.
Les grands projets Eclipse
Eclipse soccupe dune srie de projets visant crer des socles techniques / technologiques
sur de nombreux domaines applicatifs et de dveloppements lis Eclipse et utilisables par
les dveloppeurs. Voici une petite slection :
- EMF (Eclipse Modelign Framework) : framework de modlisation et de gnration de code
ddi aux outils et applications bases sur un modle de donnes structures. Il utilise
XMI pour les spcifications du modle.
- VE (Visual Editor) : projet visant crant un constructeur dinterface utilisateur supportant
Swing, SWT.
- WTP (Web Tools Platform) : lobjectif est dtendre la plate-forme avec des outils pour
dvelopper des applications web de type J2EE. Il inclut des outils HTML, Javascript, CSS,
SQL, XML, etc. Un assistant de cration web service est disponible.
- TPTP (Test & Performance Tools Platform) : il doit fournir des outils sur loptimisation, le
monitoring, le tracing et les tests.
- STP (SOA Tools Platform) : construire un framework et des outils extensibles orients SOA.
Il devrait prendre en compte les spcifications du Service Component Architecture (ou SCA).
En complment, la fondation mne un projet ambitieux : Callisto. Il sagit de fournir, cet t,
la livraison de 10 projets Eclipse, sans fournir une unification des projets. Callisto touche le
reporting avec BIRT, le dveloppement C/C++, les outils de donnes, EMF, la disponibilit
dEclipse 3.2, les outils Web.
A noter que lAjax Toolkit Framework, en pleine phase de conception, fait partie du WTP. Il
sagit de fournir une interoprabilit entre les principaux frameworks Ajax, des assistants.
Les premires " versions " seront disponibles dans quelques semaines.
D
ossier
28/41 18/05/06 19:34 Page 30
Ladoption toujours croissante dEclipse par les entreprises a
su faire de cet IDE Java, un des leaders du march. Outre sa
gratuit, le succs dEclipse provient aussi de sa flexibilit qui
permet chaque entreprise dadapter cet outil ses propres
besoins. Que vous soyez une entreprise dsireuse dadapter
votre distribution Eclipse vos processus de dveloppement,
ou simplement que vous ayez envie de personnaliser votre
outil ftiche, voici quelques informations pour vous guider
dans les premires tapes de llaboration de votre propre dis-
tribution, avec notamment la compilation du SDK dEclipse.
E
clipse est une plate-forme libre, sous
licence Eclipse Public Licence dont lob-
jectif, lorigine, est de permettre aux
utilisateurs de pouvoir raliser nimporte quel-
le tche, mais galement de ne rien faire de
particulier ! Cela semble tre paradoxal, pour-
tant cest justement ce qui fait toute la puis-
sance de cette plate-forme. Ce que lon
dsigne souvent sous le nom dEclipse nest
autre quune plate-forme permettant la cra-
tion dapplications de type client riche ; cest
lajout de plug-ins cette coquille vide qui le
rend si utile, si flexible et surtout si populaire.
Pour les dveloppeurs Java, cest lutilisation
du plug-in JDT (Java Development Tools) qui
transforme Eclipse en un puissant IDE Java ! Il
existe galement un certain nombre de plug-ins
pour les autres langages, par exemple
PHPEclipse pour le PHP, CDT pour le C/C++,
COBOL pour le Cobol,
Dans les parties suivantes, nous verrons com-
ment compiler et personnaliser quelque peu
son propre SDK Eclipse. Cela vous permettra
dobtenir une plate-forme qui convienne relle-
ment vos besoins, et surtout de vous familia-
riser avec la mthode automatise de compila-
tion du code source Java et de lassemblage du
runtime dEclipse. Le rsultat de cette compila-
tion vous donnera un SDK Eclipse oprationnel
que vous pourrez utiliser immdiatement.
Nous effectuerons ces tapes sur un systme
dexploitation Windows XP. La procdure
concernant les systmes Linux, MacOS, Unix,
est sensiblement la mme quelques excep-
tions prs qui sont notifies dans les instruc-
tions de compilation fournies dans les sources
du SDK dEclipse.
Les prrequis la compilation
Avant toute chose, vous devez prparer votre
environnement afin de rendre possible la
bonne construction de votre distribution.
Evidemment, vous devez disposer dun JDK 1.4
au minimum. Pour la compilation dune release
3.2, linstallation dun JDK 5 sera requise.
Vous aurez ensuite besoin dApache Ant (ver-
sion 1.6.1 au minimum) pour excuter les
scripts de compilation et dassemblage. Une
fois que vous avez tlcharg Ant sur le site
dApache (http://ant.apache.org/) et dcom-
press celui-ci, ajoutez la variable denvironne-
ment ANT_HOME contenant le chemin vers le
rpertoire o vous avez install loutil, et enfin,
ajoutez la variable denvironnement PATH le
chemin vers le rpertoire bin. Aprs cette pro-
cdure, Ant devrait tre correctement configur,
vous pourrez dailleurs tester cela en entrant la
commande ant dans une console et vous
assurer que celle-ci est reconnue.
Une fois loutil Ant correctement install et
configur, un autre utilitaire est indispensable
la compilation dEclipse : Info-ZIP. Celui-ci est
constitu dexcutables permettant de com-
presser et dcompresser les fichiers nces-
saires lassemblage final du runtime Eclipse.
Tlchargez les excutables zip et unzip (atten-
tion unzip est compress dans lexcutable
propos au tlchargement, il vous faudra donc
excuter celui-ci pour dcompresser le pro-
gramme unzip). Noubliez pas dajouter le
rpertoire contenant ces 2 excutables dans la
variable denvironnement PATH de votre syst-
me, afin que le script de compilation soit
capable de trouver ces deux utilitaires lors de
lassemblage. Si lassemblage venait chouer,
cela serait srement d une mauvaise confi-
guration du PATH de ces deux utilitaires.
Pour compiler Eclipse, vous aurez videmment
besoin des sources de celui-ci. Elles sont
accessibles depuis la page de tlchargement
de la version 3.1.2 sous le libell Source Build
(Source in .zip) ayant le fichier associ eclip-
se-sourceBuild-srcIncluded-3.1.2.zip dune
taille denviron 63Mo. Larchive contient les
sources Java et les ressources, comme les
images, ainsi que les scripts de compilation
pour les diffrentes plates-formes. (Fig 1)
La figure 2 reprsente une arborescence pos-
sdant Ant, Info-Zip et les sources du SDK
dEclipse la racine du disque c:\ : (Fig 2)
Attention : nutilisez pas de chemin possdant un
caractre espace dans le nom, sinon lexcution
du script de compilation se soldera par un chec.
Modifier limage de dmarrage
Lun des intrts de la compilation dEclipse
est de pouvoir modifier les ressources avant la
construction de larchive zip du runtime. Ainsi,
tous les utilisateurs possderont vos modifica-
tions sans jamais avoir raliser lopration
de nouveau aprs la compilation. Dans notre
D
ossier
31
Programmez n87 juin 2006
PRATIQUE
Compiler son propre
SDK Eclipse
(Fig 1)
28/41 18/05/06 19:34 Page 31
cas, nous allons simplement changer limage
de la fentre de lancement dEclipse. Limage
que vous devez modifier se trouve dans le
rpertoire plugins/org.eclipse. platform de la
racine du rpertoire des sources du SDK
dEclipse, et se nomme splash.bmp. (Fig 3)
Lorsque votre image est modifie et enregis-
tre comme la figure 3, il ne vous reste plus
qu passer la compilation.
La compilation, enfin !
Une fois votre environnement correctement
configur, vos ressources modifies ou ajou-
tes, il ne vous reste plus qu excuter le
script de compilation nomm build.bat fourni
la racine du fichier zip des sources dEclipse.
Ce script configurera lenvironnement du
Classpath avant de lancer les scripts Ant
appropris la version dEclipse que vous
souhaitez construire.
Pour lancer ce script correctement, vous allez
devoir lui donner plusieurs informations qui
sont fonction du systme dexploitation, du
systme de fentrage et du type de processeur
cible qui excutera au final votre version
dEclipse. Dans notre cas, nous compilons
pour un Windows XP tournant sur un proces-
seur x86.
La commande excuter pour lancer la com-
pilation est par consquent la suivante :
build.bat os win32 ws win32 arch x86 (Fig 4)
Largument os reprsente le type du systme
dexploitation, ws le systme de fentrage et
arch le type de processeur cible. Pour plus
dinformations sur les options et les combinai-
sons possibles, vous pouvez vous reporter la
documentation situe dans larchive des
sources du SDK dEclipse.
Si tout a t configur correctement, et
condition dattendre quelques longues
minutes, voire quelques heures selon la puis-
sance de votre machine, votre attente devrait
aboutir sur un cran similaire la figure 5 vous
indiquant que la compilation et lassemblage
se sont drouls avec succs. (Fig 5)
Ne vous souciez pas des warnings incessants
qui saffichent dans la console de sortie lors de
la construction, ceux-ci ninfluenceront pas le
rsultat de votre compilation.
Le premier lancement
Le rsultat de ce travail se trouve dans le
rpertoire result la racine du rpertoire des
sources. Avec les arguments de la ligne de
commande que nous avons spcifis, le fichier
sappelle win32-win32-x86-sdk.zip.
Pour tester votre distribution frachement
cre, dcompressez cette archive zip comme
pour nimporte quelle version dEclipse que
vous avez dj pu installer, puis lancez lex-
cutable eclipse.exe. Vous devriez obtenir un
rsultat identique la figure 6.
Allez plus loin dans la personnalisa-
tion de votre distribution
Le processus de cration dune distribution
Eclipse personnalise reprsente aujourdhui
un rel besoin pour les entreprises qui sou-
haitent uniformiser leur pratique des rgles et
mthodes communes de dveloppement ; cela
dans le but de garder un processus de dve-
loppement fiable et matris en fournissant un
outil unique ses dveloppeurs. Dans cet
article, nous navons fait queffleurer le sujet
de la personnalisation du SDK dEclipse au tra-
vers de sa compilation. Lajout de plug-ins sup-
plmentaires avant la compilation du SDK
nest pas rellement complexe si vous matri-
sez un tant soit peu les scripts Ant. Pour ce
faire, quelques modifications au niveau du
fichier assemble.org.eclipse.sdk. <os>.<ws>.
<arch>.xml auront vite raison de vos dsirs.
s Julien Chable - Dveloppeur ProxiAD
Liens :
http://www.eclipse.org/legal/cpl-v10.html
Eclipse Public Licence V1.0
http://www.eclipse.org/legal la partie lgale
du site Eclipse.org
http://download.eclipse.org/eclipse/down-
loads/index.php page de tlchargement des
sources toutes versions confondues.
http://ant.apache.org/ Apache Ant
http://www.info-zip.org/ Site officiel dInfo Zip
http://download.eclipse.org/eclipse/down-
loads/drops/R-3.1.2-200601181600/index.php
Page de tlchargement de Eclipse 3.1.2 et
de ses sources
http://download.eclipse.org/eclipse/down-
loads/drops/R-3.1.2-200601181600/srcIn
cludedBuildInstructions.html Les instructions
de compilation dEclipse
http://sourceforge.net/projects/ceb/ Site offi-
ciel de Custom Eclipse Builder
D
ossier
32
Programmez n87 juin 2006
(Fig 3)
(Fig 5)
(Fig 6)
(Fig 4)
28/41 18/05/06 19:34 Page 32
Exemple dune configuration Eclipse de production
Utiliser Eclipse pour le dveloppement de ses applications J2EE est une solution adapte
condition de savoir quelle configuration adopter ! Voici un exemple concret dune configu-
ration utilise en production.
E
clipse excelle pour le dveloppement
dapplications JSE, grce au plu-gin JDT
directement disponible dans Eclipse. En
revanche, les choses ne sont pas aussi simples
pour les dveloppements J2EE. Par cons-
quent, lutilisation de plug-ins est indispen-
sable pour esprer crer, compiler et dployer
une application J2EE dans un serveur dappli-
cation, sans pour autant perdre un temps pr-
cieux chaque tentative de modification de
lapplication.
Exemple de configuration
Dans les parties suivantes, nous allons voir un
exemple de configuration qui a dj fait ses
preuves dans des projets rels. Attention, cette
configuration est troitement lie aux outils
utiliss en amont, notamment pendant la
phase de conception, qui permettent par
exemple de gnrer les modles complets de
classes.
Le serveur dapplication
Prenons lexemple o le serveur dapplication
J2EE utilis pour votre projet est la dernire
version de JBoss (www.jboss.org/). Il est trs
important pour les dveloppeurs de pouvoir
lancer, arrter, dboguer et dployer leurs
applications depuis lIDE. Lutilisation du plug-
in officiel associ ce serveur, nomm JBoss
IDE (http://www.jboss.com/products/jbosside/
downloads) permet de rpondre simplement et
efficacement ce besoin.
Les frameworks
Les frameworks font partie intgrante des
dveloppements Java, et Hibernate figure
parmi les plus en vogue. Lutilisation dun
plug-in pour ce framework de persistance per-
met principalement dassister le dveloppeur
dans la mise au point de ses fichiers de map-
ping particulirement complexes. Le plug-in
JBoss IDE intgre dj le plug-in Hibernate, ce
qui ne ncessite pas dinstalla-
tion supplmentaire si le premier
est dj install.
La construction de lapplication
Grer un serveur dapplication ou
crer des fichiers de mapping est
une chose, mais construire len-
semble dune application avec
les bonnes dpendances, excu-
ter des outils de gnration tel
que AndroMDA, compiler puis
empaqueter le tout, cela est une
autre histoire.
Loutil Maven (http://maven.apache.org/) est
devenu une best practise pour ce genre
dopration. Un plug-in officiel est disponible
sur le site officiel (http://maven.apache.org/
eclipse-plugin.html), celui-ci permet de lancer
des scripts Maven directement dans lIDE.
La qualit
Assurer la qualit de son application en favo-
risant la maintenance du code et en vitant les
bugs est devenu indispensable. Les outils de
revue de code vont justement dans ce sens. Ils
permettent aux dveloppeurs de pratiquer un
autocontrle et une revue de code beaucoup
plus rapidement, voire mme dune faon
quasi automatique. Pour les chefs de projet, ce
genre doutil est utilis pour mesurer le degr
de qualit du code gnr par les dvelop-
peurs. Il existe plusieurs plug-ins Eclipse
capables de raliser cette tche, la solution
que nous avons retenue pour nos dveloppe-
ments est CheckStyle qui est disponible sur
sourceforge (http://eclipse-cs.sourceforge.net/).
Quelques conseils
Lutilisation dEclipse nest pas sans poser
quelques petits tracas dans les projets den-
vergure. Lorsque vous avez tabli une configu-
ration de rfrence pour un projet donn (ver-
sion dEclipse et versions des plug-ins), gardez
cette configuration tout au long de ce projet
sans jamais en changer. Il savre quelquefois
quune version dEclipse ne soit pas entire-
ment compatible avec la version de certains
plug-ins. Cela peut vous valoir de longues
heures de dbogages inutiles.
Quelquefois, certains plug-ins ncessitent une
consommation de mmoire importante. Si
vous ne satisfaites pas leur besoin, leur ex-
cution se soldera par un chec de type
OutOfMemoryError.
Par exemple, cest le cas de certains goals
Maven particulirement imposants. La parade
pour excuter ces goals directement dans
lIDE, consiste simplement augmenter la
taille du tas lors du lancement dEclipse avec
les arguments -vmargs Xms256M Xmx512M
(256 Mo de mmoire au minimum et 512Mo au
maximum).
Une configuration parmi tant dautres
La configuration prsente dans cet article
reflte un processus de dveloppement spci-
fique avec Maven en tant que pilier central. La
souplesse dEclipse permet de ladapter de
nombreux processus de dveloppement,
ctait lune des solutions possibles.
Maintenant votre tour de trouver la configu-
ration qui fera de vos projets des succs !
s Julien CHABLE
Dveloppeur ProxiAD
D
ossier
33
Programmez n87 juin 2006
28/41 18/05/06 19:34 Page 33
Plug-in open source ou commercial :
comment choisir ?
Les critres de choix dun plug-in Eclipse sont nombreux et trs proches des critres de slection dun
logiciel open Source ou commercial. La priorit doit tre la prennit du plug-in et son volutivit.
L
es plug-ins Eclipse sont soit
issus dune communaut Open
Source, soit dune socit. Les
plug-ins de socits peuvent tre gra-
tuits ou payants. Le premier point
vrifier est donc de savoir si le plug-
in est soutenu par une socit ou si
celui-ci a t dvelopp ou lgu la
communaut Open Source.
Le prix dun plug-in peut tre gage de
qualit, mais surtout peut assurer une
certaine prennit ou volutivit. Si ce
plug-in est source de revenus impor-
tants, lditeur se doit de le faire vo-
luer et de le maintenir niveau.
Concernant la qualit dun plug-in, les
utilisateurs seront souvent beaucoup
plus indulgents avec une communaut
Open Source quavec une socit.
On peut parfois trouver des plug-ins existant
en version gratuite bride et en version com-
plte payante, comme par exemple le
Workshop Studio de BEA Systems. Ce systme
est un bon compromis pour le dveloppeur
sans budget. Bien entendu, dans ce cas, celui-
ci doit sintresser tout particulirement aux
fonctionnalits brides du plug-in gratuit.
Lexistence dune version trial est aussi en
quelque sorte la dmonstration de la confian-
ce de la socit pour son plug-in.
Lautre critre de choix important est lactivit
du plug-in. Il faut sintresser au nombre de
release et au temps entre chaque release pour
vrifier que ce plug-in continue dvoluer. Il est
souvent trs instructif de vrifier le nombre de
bugs remonts et corrigs par release. On peut
aussi vrifier que le nombre de bugs remonts
est en constante diminution de release en
release. Quen est-il de la documentation du
plug-in. Celle-ci est-t-elle bien dtaille ? Y a-t-
il un Getting Started ? Des vidos de dmons-
tration ? Des captures dcran ? Bref, tout ce
qui pourra assurer que ce plug-in rpond cor-
rectement aux besoins, avec la bonne granula-
rit. Autre dmonstration plus subtile de len-
gagement de lditeur ou de la communaut,
le mode dinstallation du plug-in. Celui-ci se
prsente-t-il sous la forme dun zip ? Existe-t-il
un site dupdate ? Est-il packag dans un ins-
talleur ? On doit aussi sassurer que lon ne
restera pas bloqu en cas de soucis. Le sup-
port est-il prsent ? Sous quelle forme ? Existe-
t-il une FAQ ? Une liste des questions fr-
quentes ? Il ne faut surtout pas ngliger la
compatibilit du plug-in, tant sur la version
dEclipse supporte, que sur la Plate-forme.
Open Source Vs Commercial
La multitude de plug-ins open source ne facili-
te pas le choix. Mme si, comme on la souli-
gn prcdemment, en simposant des critres
de choix, il est probablement plus facile de
retenir le plug-in qui rpondra ses attentes.
Pourquoi encore acheter un plug-in commer-
cial ? Intressons nous par exemple aux appli-
cations Web. Si lon souhaite doter son Eclipse
des plug-ins indispensables, ce nest pas loin
dune dizaine de plug-ins open source quil
faudra trouver : diteur de JSP, Struts ou JSF,
Hibernate ou JDO, Javascripts, debugger de JSP,
EJB, pour ne citer que les principaux. Trouver
et choisir ces plug-ins va prendre du temps.
Leur installation et leur maintenance
au fil du temps est galement un l-
ment prendre en compte. Comment
va-t-on garantir que lquipe de dve-
loppement utilisera les mmes ver-
sions des plug-ins ? O encore, a-t-on
le temps pour conduire toutes ces
valuations et tests de compatibilit ?
Autant de questions qui trouveront
une rponse simplifie avec un plug-
in commercial. Pour rester dans notre
hypothse du dveloppement Web,
un produit comme Workshop Studio
de BEA regroupe un ensemble de
fonctionnalits quivalent plusieurs
plug-ins (diteurs multiples pour JSP,
JSF, Struts,), des debuggeurs.
Lensemble dispose dune ergonomie
cohrente et homogne. Linstalleur fourni per-
met une installation harmonieuse dans Eclipse.
Le support dun grand Editeur international
prennise le choix et les volutions. Lapproche
" blended " visant mlanger composants
open source et produits commerciaux cherche
rapprocher le meilleur des deux mondes.
Enfin, la dimension conomique est prendre
en compte. Combien est-on prt payer pour
tous ces bnfices, pour gagner du temps ? Un
produit comme Workshop Studio est commer-
cialis entre 500 et 1000 euros par dvelop-
peur. Cette somme peut tre compare avec le
cot dun dveloppeur par jour, entre 400 et
700 euros par jour. En prenant une approche
"retour sur investissement", on pourra se
rendre compte que le plug-in commercial nest
pas toujours, comme on limagine, la solution
la plus onreuse !
En conclusion, on ne peut que se rjouir du
choix qui nous est offert aujourdhui. Lopen
source est une solution tout fait opration-
nelle avec ses bnfices et ses inconvnients.
Des contraintes temporelles ou budgtaires
guideront probablement votre choix.
s Sbastien Revel - Ideo Technologies
D
ossier
34
Programmez n87 juin 2006
Lditeur XML : Oxygen
28/41 18/05/06 19:34 Page 34
Catgorie : base de donnes (modlisation de schmas)
La spcificit d'Eclipse repose sur son architecture compltement base
autour de plug-ins. Ce mcanisme d'extension a t rendu possible
grce son framework labor et son outil de dveloppement de plug-
ins baptis Plug-in Development Environment (PDE). Autrement dit, si
vous voulez ajouter une fonctionnalit cette plate forme de dvelop-
pement hors du commun il suffit d'y ajouter un plug-in. Eclipse tant
trs populaire la liste des plug-ins s'est trs vite allonge, au point
qu'aujourd'hui on en rpertorie plus de 1000 ! (et donc, les tableaux
prsents ci-dessous sont trs loin d'tre exhaustifs). Toutes ces exten-
sions ne sont pas libres, bon nombre sont commerciales ou licence
mixte (d'ailleurs, rappelons au passage que Websphere Studio
Application Developer d'IBM repose sur Eclipse).
Une slection de plug-ins Eclipse
Un numro entier de Programmez ne suffirait pas s'il fallait vous dcrire l'ensemble des plug-ins
d'Eclipse. Nous en avons slectionn quelques-uns, pour l'essentiel, commerciaux, mais aussi libres.
Catgorie : IBM WebSphere Studio
WebSphere est une "plate-forme applicative gnrique" (comprenant serveurs et outils) sur laquelle reposent des logiciels d'entreprises (conu par
IBM) comme Tivoli.
D
ossier
35
Programmez n87 juin 2006
Nom du plug-in Description Licence
IBM Tivoli Monitoring Tivoli est un logiciel d'administration distribu qui se base sur des agents (clients) pilots par Commerciale
http://www.tivoli.com/products/index/monitor/ un serveur. Le domaine d'administration concern touche la supervision, la gestion des comptes,
la diffusion de logiciels, l'administration de serveurs applicatifs.TBM Tivoli Monitoring permet
d'auditer les performances dans ces domaines en vue de reprer les goulets d'tranglements.
IBM WebSphere Voice Toolkit Il s'agit en fait d'une trousse outils VoiceXML comprenant des assistants de gnration d'applications, Commerciale
http://www-306.ibm.com/software/ un diteur VoiceXML, des outils de dveloppement et d'essais de grammaire, des outils de dbogage,
pervasive/voice_toolkit/ des outils de dveloppement de contenu statique VoiceXML et d'applications dynamiques J2EE
(Java) ainsi qu'un large ventail de composants de dialogue rutilisables.
Lotus Domino pour WebSphere Studio Ce plug-in fournit des outils pour crer plus simplement des applications Java appelant Commerciale
http://www-128.ibm.com/developerworks/ l'existant Domino (c'est dire formulaires, vues et agents).
websphere/library/techarticles/0304_schumacher/
schumacher.html
Catgorie : base de donnes (persistance)
Nom du plug-in Description Licence
Cocobase Il s'agit d'une solution de mapping et de persistance des donnes (Container Managed Persistence Commerciale
http://www.cocobase.com/ (CMP) & Bean Managed, Persistence (BMP) Entity Beans, Session Beans, JSPs, Servlets, Dynamic
Transparent Persistence et stand-alone Java persistence).
Cocobase se fonde sur EJB 2.0, JDBC 2.0, JMS 1.0, UML XMI, J2EE, J2SE et le JDK 1.4.
Hiberclipse Il s'agit d'un plug-in pour Hibernate, un framework open source grant la persistance des objets CPL 1.0
http://hiberclipse.sourceforge.net/ en base de donnes relationnelle. Hibernate ne respecte pas le standard JDO (Java Data Object)
mais est quand mme trs populaire auprs des dveloppeurs.
EclipseJDO Ce plug-in permet d'utiliser la norme Java Data Objet (JDO). Il est fourni avec des assistants Open Source mais support
http://www.versant.com/ permettant de faciliter la gestion de la persistance objet. commercial possible
http://sourceforge.net/projects/eclipsejdo/
Nom du plug-in Description Licence
Avaki Studio Sybase a rachet Avaki, spcialiste du "Data Grid" Commerciale
http://www.avaki.com/products/studio.html ("Grille de donnes" en Java). Le plug-in est ici un
modeleur de niveau professionnel.
Clay Database Modeling Clay est le nom dun plug-in de modlisation de Mixte (libre et
http://www.azzurri.jp/en/software/clay/index.jsp schma de base de donnes. commerciales)
Celui-ci vous permettra de raliser la fois de
la modlisation mais aussi du reverse engineering.
28/41 18/05/06 19:34 Page 35
D
ossier
36
Programmez n87 juin 2006
Catgorie : C#
Nom du plug-in Description Licence
BlackSun Permet l'dition du code source avec coloration syntaxique. Compatible C# 2.0 Eclipse Public License - v 1.0
http://black-sun.sourceforge.net/license.html
Emonic Emonic signifie "Eclipse-Mono-Integration". Il s'agit donc d'un plug-in Eclipse destin aux Common Public
http://sourceforge.net/project/showfiles. programmeurs C# utilisant Mono (mais vous pouvez galement utiliser le framework .net de License (CPL)
php?group_id=158390 Microsoft) ! Il vous permettra de raliser de la compltion de code, mettre en vidence les mots
cls par coloration syntaxique. En outre, Emonic s'intgrera parfaitement avec Ant ou Nant.
Enfin il a t test sous Linux et Windows.
Improve C# Les erreurs de compilation sont affiches dans la liste des tches. Un des premiers plug-in C# open-source (CPL)
http://www.improve-technologies.com/alpha/esharp/ du genre. Propose la coloration syntaxique, l'auto-compltion du code, et la compilation.
Catgorie : Flash
Nom du plug-in Description Licence
FDT FDT signifie Flash Development Tools. Il s'agit d'un plug-in pour Eclipse, qui fournit tout un Commerciale
http://www.powerflasher.com/fdt/flashsite/flash.htm environnement de travail ddi Flash.Vous pourrez ainsi jouer avec de nombreux raccourcis clavier,
des templates, avec une gestion des classes pousse, l'autocompltion, une gestion semi-automatique
des imports, un test en temps rel de la validit du code, la proposition de correction du code,
une vision rapide de l'arborescence d'une classe (outline).
ASDT
http://sourceforge.net/projects/aseclipseplugin/ ASDT - ActionScript Development Tool. Equivalence de FDT en open-source. Open Source
Catgorie : Autres langages
Rappelons qu'Eclipse permet de crer des environnements de travail spcifiques un langage. Autrement dit, vous n'obtiendrez pas (si vous le
voulez) les mme options et menus en travaillant par exemple en COBOL ou en EPIC. En outre, l'emploi d'Eclipse implique l'utilisation du debug-
ger, le refactoring, les tasks, le CVS intgr, etc.
Nom du plug-in Description Licence
Cobol Fonctionne sous Linux, Solaris ou Windows.Version 3, semble peu active depuis 1 an. Cobol est LGPL
http://www.eclipse.org/cobol/ toujours trs actif dans les institutions financires (en 2005, 75% des donnes du monde des affaires
ont t traites par des programmes en COBOL).
EPIC EPIC signifie "Eclipse Perl Integration". Contient un diteur de code source, un dbogueur ainsi open-source (CPL)
http://e-p-i-c.sourceforge.net/ qu'un diteur d'expressions rgulires.
Erlide Destin au langage Erlang : le langage objet dvelopp par Ericsson (www.erlang.org). Il tient son nom Eclipse Public License
http://sourceforge.net/projects/erlide/ d'un mathmaticien Danois. Il s'agit d'un langage fonctionnel "concurrent temps rel et distribu".
Haskell development support Destin au langage haskell (http://haskell.org). Haskell est un langage de programmation fonctionnel. Eclipse Public License
http://eclipsefp.sourceforge.net/haskell/index.html Encore en dveloppement (la version actuelle (0.91) n'est pas considre comme stable).
Photran Plug-in pour le langage Fortran. Supporte CVS et le dbogueur GNU. Fortran est un langage de
http://www.eclipse.org/photran/ programmation utilis principalement en mathmatiques et dans les applications scientifiques. Eclipse Public License
PHPeclipse Nous en sommes la version 1.1.8. phpEclipse permet l'intgration d'un navigateur pour tester libre
http://www.phpeclipse.de/tiki-view_articles.php le rsultat dans la mme fentre. D'un seul clic vous obtiendrez la documentation de la fonction.
Pydev Pydev signifie "Python Development Toolkit". Il affiche les erreurs de syntaxe, fait le "code completion", open-source (CPL)
http://sourceforge.net/projects/pydev/ PyLint est intgr.
Et bien sr, norme avantage: on profite d'Eclipse lui-mme: debugger, refactoring, tasks, CVS intgr etc...
Le plug-in Emonic
28/41 18/05/06 19:34 Page 36
D
ossier
37
Programmez n87 juin 2006
Catgorie : UML
Nom du plug-in Description Licence
Together Community Edition Gestion de cycle de vie de Borland. Gratuit si usage non
http://www.borland.com/us/products/ commercial, sinon licence
together/index.html commerciale
Omondo La version commerciale permet d'importer/exporter la Version gratuite
http://www.omondo.com/ modlisation, supporte des profils, s'interface avec une base et commerciale
de donnes, est compatible J2EE, peut s'intgrer avec CVS et enfin,
est ouvert la programmation externe via une jeu d'API.
SDE SDE signifie Smart Development Environment. Ce plug-in Commerciale
http://www.visual-paradigm.com/ est utiliser en combinaison avec WebSphere. Il existe
product/sde/ec/index.jsp de nombreuses ditions, une d'Enterprise, une Professional,
une Standard, une personnelle et enfin une Community
Edition qui s'avre gratuite pour un usage non commercial
Catgorie : tests et non-rgression
Les tests serviront notamment dterminer si le logiciel rpond aux spcifications fonctionnelles.
Nom du plug-in Description Licence
Hpjmeter Hpjmeter est un outil de visualisation des profils produits par Java (ce n'est pas un plug-in proprement parler). Usage gratuit,
http://www.hp.com/products1/unix/java/ Pour y parvenir, vous devrez compiler un programme Java sous Eclipse avec les infos de debugging, puis en second lieu, licence HP
hpjmeter/index.html excuter le programme avec une option de profilage. Enfin, vous pourrez lancer HPJmeter.jar pour ouvrir le fichier de
profil qui a t gnr. De cette manire vous pourrez extraire quelques "mtriques" intressantes.
JUnitRunner JUnit est un environnement de test pour Java. La classe de tests doit tre une sous-classe de junit. framework. Open Source
http://sourceforge.net/projects/junitrunner/ TestCase et les attributs dfinissent les attributs sur lesquels porteront les tests. Un scnario de tests fait des appels
aux objets tests, et vrifie des proprits avec junit.framework.TestCase.assertTrue(...)
Coverlipse Coverlipse est une extension de JUnit qui offre un support de couverture de code. Common
http://coverlipse.sourceforge.net/index.php Public License
findbugs, jlint_plugin, eclipsemetrics Plug-ins d'analyse statique des bogues (analyse de codes sources). Open Source
http://findbugs.sourceforge.net/
http://www.willowriver.net/products/jlint.php
http://eclipse-metrics.sourceforge.net
Catgorie : dveloppement d'interfaces graphiques
Nom du plug-in Description Licence
SWT Vector Library Graphics SVL signifie "Simple Vector Library". Il s'agit d'une bibliothque d'objets servant manipuler GPL
http://sourceforge.net/projects/svl/ des graphiques en vectoriel.
Gface Bote outils de widgets pour SWT (Standard Widget Toolkit, une bibliothque graphique libre pour Java) Eclipse
http://sourceforge.net/projects/gface/ Public License
SWTPlus http://www.swtplus.com Une autre bote outils de widgets pour SWT Open Source
Catgorie : dveloppement XML
Nom du plug-in Description Licence
Vex http://vex.sourceforge.net/ diteur XML Open Source. Largement extensible, avec support WebDAV et FTP . ainsi que les DTD et CSS LGPL
oxygenxml diteur de source, dbogueur XSLT, visualisation/dition d'arbre, dition et validation DTD, XML Version d'essai
http://www.oxygenxml.com/ Schema, diffrence/fusion XML, support XQuery, XSLT, Xpath, Xalan, Saxon, MSXML et XSLTProc ! tlchargeable
XMLBeans Ce plug-in permet aux dveloppeurs Java d'utiliser des donnes et documents XML dans un environnement orient objet. Apache License V2.0
http://sourceforge.net/projects/xmlbeansplug/ L'accs aux donnes s'effectue par un jeu d'interface de type XQuery. Le compilateur XMLBeans convertira un Schema pour crer un fichier JAR
Catgorie : travail d'quipe
Nom du plug-in Description Licence
ganttproject Gestionnaire de projets compatible Microsoft Project. Il utilise la mthode du diagramme de Gantt, ce qui
http://sourceforge.net/projects/ganttproject lui permet de dcouper un projet en tches, puis de visualiser les dpendances dans le but d'en grer les ressources. Open Source
AT-project Sera utilis dans le cadre d'un travail en quipe car il permet de tracer les projets
http://www.atreides-technologies.com/ (partage d'informations, planification, suivi des erreurs...) gratuit
Catgorie : serveurs d'applications
Nom du plug-in Description Licence
Tomcat For Eclipse Intgre Tomcat (conteneur de servlet J2EE) Eclipse (Tomcat est un serveur web qui supporte servlet et JSP). Open Source
http://openknows.free.fr/
Lomboz Lomboz est un plug-in J2EE pour Eclipse qui a t repris par le consortium ObjectWeb, et qui est devenu Open Source. LGPL
http://lomboz.objectweb.org/overview.html Ce plug-in utilise plusieurs outils open source pour mener bien son travail tels qu'Ant, Xdoclet et Axis. Il couvre ainsi
le cyle de dveloppement des applications J2EE de la rdaction la gnration du code, en passant par le dploiement et le dbogage.
JOnAS Eclipse PlugIn JonAS est un serveur dapplication Open Source respectant la norme J2EE (Java 2 Platform Enterprise Edition). Common Public
http://sourceforge.net/projects/jonaseclipse/ Il vous permettra d'utiliser des EJB, des Web Services, des transactions distribues, etc. License
s Xavier Leclerq - Xavier.Leclercq@programmez.com
28/41 18/05/06 19:34 Page 37
Dvelopper une application
web avec MyEclipse
MyEclipse (http://www.myeclipseide.com) est un ensemble de plug-ins qui tend les fonctionnalits dEclipse
simplifiant le dveloppement. Parmi les fonctionnalits, on peut citer le support dUML, dHibernate
(http://www.hibernate.org), de Spring (http://www.springframework.org), Tapestry (http://jakarta.apache
.org/tapestry), Struts (http://struts.apache.org/),JSF (http://java.sun.com/javaee/javaserverfaces/) et lint-
gration de nimporte quelle base de donnes JDBC.
Nous nous focaliserons sur les outils princi-
paux (base de donnes, UML), lintgration
des serveurs dapplication et dHibernate.
Support UML
Les principaux diagrammes sont supports :
use case, classes, squence, tat, activit,
dploiement et collaboration. (Figure 1)
Le support UML est intressant par son int-
gration la plate-forme Eclipse ainsi que ses
capacits de round-trip engineering. Le round-
trip permet de gnrer le code Java partir des
classes modlises ainsi que de gnrer le dia-
gramme de classes depuis le code existant.
Support Base de Donnes
MyEclipse sintgre nimporte quelle base de
donnes disposant dun driver JDBC.
Connector/J tant le driver JDBC du MySQL,
nous utilisons celui-ci pour accder une peti-
te base grant des fichiers musicaux. (Figure 2)
Une fois connects la base, nous pouvons en
voir la structure (liste des tables, colonnes
dans chaque table etc.) ainsi que linterroger
ou la modifier.
Le diagramme entit relations nous permet de
visualiser le schma de la base dans lenviron-
nement de dveloppement : (Figure 3)
Nous bnficions alors de la vue ER Diagram
(Figure 4)
Notez comment les relations entre classes (ici
une relation un a plusieurs) sont reprsentes.
Support applicatif web
MyEclipse facilite le dveloppement et le
dploiement dapplications web sur les princi-
paux serveurs dapplication. Prenons Tomcat
en exemple.
Une fois configur, lancer le serveur dapplica-
tion est un jeu denfant : (Figure 5)
D
ossier
38
Programmez n87 juin 2006
La console dEclipse montre alors le statut du
serveur dapplication :
...
INFO: Initialization processed in 2143 ms
INFO: Starting service Catalina
INFO: Starting Servlet Engine: Apache
Tomcat/ 5.5.17
INFO: XML validation disabled
INFO: Starting Coyote HTTP/1.1 on http-8080
...
INFO: Server startup in 6630 ms
Cration et dbogage dune page JSP:
MyEclipse simplifie le dveloppement de
pages JSP, HTML, JSF et autres. Montrons com-
ment dvelopper une nouvelle page JSP:
(Figure 6)
Notez la structure de la page prsente dans
la vue outline ainsi que les capacits de com-
pltion. Une fonctionnalit impressionnante
est le dbuggeur (Figure 7).
Voyez comment le point darrt a stopp la
page et que les variables ainsi que leurs
valeurs sont prsentes dans la vue Variables.
Nous avons une intgration et consistance
entre le dveloppement dapplication Java et le
dveloppement dapplication J2EE.
Design HTML
Le plug-in HTML MyEclipse associe en perma-
nence le code HTML avec son rendu a lcran.
(Figure 8)
On peut soit modifier la vue Design, soit modi-
(Figure 4)
28/41 18/05/06 19:34 Page 38
D
ossier
39
Programmez n87 juin 2006
fier le code directement, les deux tant syn-
chroniss automatiquement par le plug-in.
Support XML
La cration de document XML est simplifie
partir dun DTD (qui permet une validation de
la structure du document) ou dun schma
(permettant une validation de structure et
de contenu). Les deux modes de validation
permettent Eclipse des facilits de compl-
tion du document XML lors de sa rdaction
(Figure 9).
(Figure 6)
(Figure 7)
(Figure 8)
Support Hibernate
Eclipse permet de gnrer la fois le fichier de
configuration dHibernate ainsi que les fichiers
de mapping entre tables physiques et model
objet de lapplication en dveloppement.
(Figure 10)
Pour gnrer les fichiers de mapping, il suffit
de cliquer droit sur une table - Notez le menu
contextuel figure 2 pour gnrer le fichier
correspondant la table.
Conclusion
MyEclipse sintgre la plate-forme standard
Eclipse pour y offrir des gains de productivit non
ngligeables. Son prix modique nest pas un frein
son adoption croissante et les gains de temps
quil permet dconomiser en font un ensemble
de plug-ins aujourdhui incontournables.
s Sbastien Marc
(Figure 9)
(Figure 10)
Economisez 30%
Abonnez-vous !
www.programmez.com
28/41 18/05/06 19:34 Page 39
Twinsoft
apprcie
SWT
" Eclipse bnficie
dune communaut
trs active. Cela pro-
fite nos outils. Il
existe aujourdhui deux grands marchs : .Net
et Java. Eclipse ne fait pas que du Java " confie
Olivier Picciotto. Lun des avantages mis en
avant par lditeur est SWT, une interface rela-
tivement simple dvelopper avec un meilleur
rendu, prcise-t-il. " Il ny a pas dditeur gra-
phique mais tout dpend de ce que lon fait.
Le plug-in VE nest pas au niveau dun Visual
Studio. Mais il sagit dune plate-forme volu-
tive et de nombreux outils sappuient dessus,
mme sil manque de bons diteurs HTML
pour diter des sites Web. Sur la qualit des
plug-ins, il ny a pas dhomognit. Ce qui
fait la diffrence entre les composants est le
niveau business, la plus-value, quils gnrent.
Compuware
mise aussi sur
Eclipse
" De facto, Eclipse est devenu un standard. On
constate une demande du modle MDA sur
Eclipse. Mais NetBeans nest pas pour autant
oubli, avec une audience moindre cependant.
Sur Eclipse, on bnficie dune communaut
active et de nombreux plug-ins " commente
Guy Cartigny (responsable technique). Pour le
moment, lditeur confirme son soutien
Eclipse et NetBeans. " Il existe des fonctions
dans Eclipse que lon ne trouve pas dans
NetBeans et vice versa. Selon mon exprience,
il est parfois difficile pour un dveloppeur de
passer Eclipse, car lenvironnement est un
peu brouillon, pas toujours intuitif, surtout
quand on a connu autre chose ". Compuware
travaille sur un double dveloppement autour
dEclipse. Le premier est de rendre disponible
toute lapproche MDA et le second concerne le
projet Corona. Ce projet est trs important car
il doit apporter la plate-forme de vritables
fonctions collaboratives, de gestion de tches
projet, des repository partags et une interface
web service pour faciliter le fonctionnement, "
un peu comme
Visual Studio Team
System " avoue Guy
Cartigny. La diversi-
t des plug-ins
pose-t-elle probl-
me ? " Cest un
point faible, mais
cela en fait aussi sa
richesse. Cela exige
une certaine qualit.
Il faut faire atten-
tion la compatibilit entre les plug-ins, mme
si honntement jai rencontr ce genre de pro-
blme, une seule fois " conclut Guy Cartigny.
D
ossier
40
Programmez n87 juin 2006
Guy Cartigny
TEMOIGNAGES
Comment dfinir
Eclipse ? Beaucoup
diront que cest un
IDE pour dvelop-
peurs Java.
Certes, la princi-
pale vocation
dEclipse est
effectivement le dveloppement Java. Mais
Eclipse est aussi une relle plate-forme qui
peut tre utilise pour dvelopper dans
dautres langages, faire de la modlisation
mais galement comme support pour
dautres logiciels. Dautres IDE paraissent
plus complets quEclipse (WebSphere
Application Developper, JBuilder, NetBeans,
) parce quils intgrent en natif beaucoup
plus de fonctionnalits. Eclipse est cepen-
dant de plus en plus apprci, grce la
possibilit de dvelopper ses propres plug-
ins, ou bien de participer aux tests et aux
dveloppements de plug-ins de plus grande
envergure. En somme, Eclipse est beaucoup
plus quun simple IDE Java cest toute une
plate-forme et une communaut de dvelop-
peurs qui participe son volution.
Parmi les nombreux projets qui peuvent tre
intgrs Eclipse, nous retrouvons : WTP
(Web Tools Platform) : outils de dveloppe-
ment Web et J2EE, BIRT (Business
Intelligence and Reporting Tools) : outils de
gnration de rapports, Subclipse : outil de
synchronisation de votre code source un
serveur subversion (contrle de sources),
Visual Editor : outil de conception dinterfa-
ce graphique (AWT, Swing, SWT, RCP, ) par
lintermdiaire dun designer WYSIWYG,
EclipseUML : outil de modlisation UML avec
des fonctions de gnration des classes
associes, de rtro-conception , Azzurri :
outil de modlisation de diagrammes de
bases de donnes avec des fonctions de
gnration de script SQL permettant la cra-
tion de la base de donnes selon le SGBD et
rtro-conception, et bien dautres
Aujourdhui, nous utilisons Eclipse comme
plate-forme de dveloppement SUPINFO
quotidiennement lors des cours Java. Cest
une plate-forme stable, multi-plate-forme
que les tudiants peuvent, sils le souhai-
tent, paramtrer et personnaliser comme ils
le souhaitent. Nous leurs fournissons cepen-
dant une version pr-configure avec les
plug-ins suivants : WTP, Visual Editor,
Subclipse, EclipseUML, Azzurri. Plus les dve-
loppeurs utilisent Eclipse et plus ils se fami-
liarisent avec les nombreux raccourcis et les
fonctionnalits de lIDE, ce qui augmente
leur productivit.
Eclipse a pris une telle ampleur et un tel suc-
cs auprs de la communaut des dvelop-
peurs que certaines entreprises se sont sp-
cialises dans le dveloppement de plug-ins
payant pour Eclipse. Il existe mme des dis-
tributions payantes dEclipse, comme
MyEclipse, avec un ensemble de plug-ins
gratuits et payants.
s Maxime Vialette - Supinfo
Eclipse : lenvironnement personnalisable
Il faut aussi avouer que le dveloppement de
plug-ins demeure compliqu et que tout nest
pas entirement document " commente
Olivier Picciotto. Aujourdhui, chez Twinsoft, 4
dveloppeurs utilisent plein temps Eclipse
28/41 18/05/06 19:34 Page 40
28/41 18/05/06 19:35 Page 41
42
Programmez n87 juin 2006
cas. Et chaque diteur apportera sa rponse, sa vision, sa
conception du SOA. Dautre part, le risque, bien rel, choi-
sir telle ou telle solution, est de " senfermer " dans un choix
technique. Car si le standard demeure le matre mot, linter-
oprabilit nest pas totale.
Dans ce dossier, nous verrons comment dfinir SOA, com-
ment implmenter une telle architecture ainsi quun pano-
rama des solutions du march.
s Franois Tonic
Depuis environ 2-3 ans, le terme SOA sest impos. Bien
souvent, les diteurs prsentent SOA comme une nouveau-
t, une rvolution, une rupture avec le pass. Cependant,
y regarder de plus prs, SOA est une volution des concepts
architecturaux.
SOA signifie architecture
oriente services, base sur
des services et non plus des
applications. Et on retrouve
ainsi les notions actuelles :
flexibilit, couple lche, pro-
cessus mtiers... SOA doit
pouvoir saccommoder dun
environnement aussi bien
homogne quhtrogne.
SOA est un concept architectural et non une solution, un
progiciel, un outil. Bref, dire que lon vend des outils SOA
relve plus du marketing que de la ralit. Pour tre exact,
il faudrait dire : environnement orient SOA. Car, comment
dfinir SOA ? Existe-t-il une approche unique ? Soppose-t-
elle aux outils dintgration ou vient-elle en complment ?
La dfinition est un premier problme que nous devons
rsoudre avant daborder les outils orients SOA. Car,
comme vous le verrez dans les pages suivantes, il existe
autant de concepts architecturaux SOA quil y a de sys-
tmes dinformation. Il existe, heureusement, des bases
communes, mais pour le reste, cest quasiment du cas par
SOA : votre nouvel architecte
F
ocus SOA
p42-54 focus soa 18/05/06 18:27 Page 42
F
ocus SOA
43
Programmez n87 juin 2006
L
'architecture oriente service, ou SOA,
n'est pas un outil, une solution, mais un
concept, une architecture. On utilise
donc des bonnes pratiques, des technologies,
des concepts architecturaux lis SOA pour sa
mise en oeuvre, son utilisation. Les outils ser-
vent crer une architecture SOA et mettre
en uvre ses diffrents aspects.
Un problme sur le systme
d'information ?
Pour saisir l'un des intrts de SOA, il faut
remonter dans le temps et comprendre le
poids de ce que l'on appelle legacy. Le legacy
regroupe les applications, les donnes, le code
source, voire les outils, existants. Bref, tout
l'hritage plus ou moins ancien fonctionnant
dans un systme d'information. Le mainframe,
des applications VB6 ou Java 1.4 sont du legacy.
Bref, le legacy est htrogne ou homogne. Si
au dpart, on disposait d'un environnement
plutt homogne, l'apparition des nouvelles
technologies, les rachats fusions, etc. ont
contribu complexifier et rendre htrog-
ne le systme d'information. Premire difficul-
t. On se demandera parfois : pourquoi ne pas
tout refaire ? En informatique, et notamment
pour des donnes et applications critiques ou
" historiques ", tant que a marche, pourquoi
changer ? Cet adage bien connu demeure vrai.
Si une application, un batch vieux de 10 ou 15
ans fonctionne, inutile de le casser pour le
remplacer. On risque d'introduire des erreurs,
une instabilit.
Aujourd'hui, il n'est pas rare qu'un systme
d'information possde du legacy htrogne,
des applications web (site, intranet, extranet),
des SGBD, diffrents progiciels, des processus
" mtiers " spcifiques chaque dpartement,
etc. Bien souvent, chaque dpar-
tement, chaque filiale, possde
sa propre architecture, ses
propres donnes et applications.
On parle alors de cloisonnement ou encore de
silot. Ce sont dans la plupart des cas des silots
verticaux, lis un mtier, un dpartement.
Ce cloisonnement pose un rel souci de com-
munication transversale.
Car, comment avoir une vision globale de son
systme d'information ? Il est quasi impossible
de possder une granularit de son environ-
nement d'information, car le silot empche
une telle vision globale. L'urbanisation de son
systme d'information doit fournir une telle
vision avec une granularit pousse.
Le silot empche aussi de pouvoir communi-
quer facilement entre diffrents services, diffi-
cile d'changer des donnes, car le risque est
d'avoir un format diffrent et surtout des struc-
tures et une finalit diffrente. Le cloisonne-
ment oblige le dveloppement de surcouches
spcifiques pour pouvoir communiquer, chan-
ger. Et surtout, plus il y a d'applications et de
silots, plus le cot d'volution, de maintenan-
ce devient lev avec une baisse du retour sur
investissement. L'urbanisation doit permettre
d'viter une telle situation, condition d'ap-
pliquer une architecture souple et flexible et
que tous les acteurs de l'entreprise aient
conscience de la situation et de la ncessit de
changer. Pour pouvoir briser cette situation, il
faut donc mettre en place une couche de com-
munication indpendante des silots, applica-
tions, technologies.
Une architecture de services
La notion d'architecture de services n'est pas
nouvelle. Le web to host ouvrait un legacy sur
le monde du web ou encore CORBA, pour per-
mettre de faire communiquer des silots et d'of-
frir des services. Mais ces solutions taient
peu maniables et souvent lourdes. Ensuite, on
a parl d'outils d'intgration et notamment les
solutions d'EAI. Cette couche applicative
devait faire communiquer les applications et
les donnes avec de nouvelles applications.
Sans apporter une relle flexibilit, l'EAI pche
par sa lourdeur : utilisation de connecteurs,
absence de spcifications communes, cot,
absence de processus mtiers globaux. L'EAI a
aussi le dfaut d'avoir un couplage fort, limi-
tant ainsi sa flexibilit. Chaque modification,
ajout, ncessite un nouveau cycle de dvelop-
pement, de qualification.
Aujourd'hui, un systme d'information doit
pouvoir s'adapter aux contraintes nouvelles
(demande utilisateur, multilingue, diversit des
terminaux et des clients), monte en charge,
flexibilit pour adapter rapidement son syst-
me, en ajoutant, modifiant, supprimant des
applications, donnes, services. Le tout en
proposant une unification des donnes, du
patrimoine.
Vers le SOA
Il est difficile de donner une dfinition du SOA,
car, sa nature est vaste et varie selon les
contextes. Basiquement, SOA favorise la mise
en place de vrais processus mtiers permet-
tant l'adaptabilit rapide aux demandes busi-
ness internes ou externes, favorisant la rutili-
sation, offrant un dcouplage entre les nou-
velles applications et le patrimoine et permet-
Architecture et organisation
Le systme d'information d'une entreprise repose sur
une ou plusieurs architectures et il est toujours utile
de spcifier une architecture par type d'applicatif et
pour le matriel. Avec la multiplication
des applications, des donnes, il devient difficile de
manipuler et de fluidifier l'ensemble.
L'architecture SOA est-elle une rponse adapte ?
p42-54 focus soa 18/05/06 18:27 Page 43
F
ocus SOA
44
Programmez n87 juin 2006
tant, une intgration du legacy. Au risque de
simplifier le concept, il y a trois couches. La
plus basse comprend les applications, les don-
nes, le legacy, etc. La couche du milieu est
l'architecture SOA proprement dite avec les
services, les processus mtiers, ventuelle-
ment un ESB et enfin, la couche de prsenta-
tion qui expose les services via une interface
utilisateur. Chaque couche se veut indpen-
dante. Ainsi, pour exposer un service, on peut
utiliser un client lourd, riche ou lger sur du
desktop, un PDA, Internet, un mobile, etc.
On peut aussi avoir du SOA, soit avec comme
finalit des services que l'on expose, soit des
applications composites. L, il faut choisir ce
que l'on veut. De plus, un service doit poss-
der un contrat de services dcrivant son conte-
nu, son rle, son fonctionnement. Et n'ou-
blions pas que SOA ne signifie pas obligatoi-
rement services web. Le service web est une
des manires de faire du SOA.
SOA et le contexte mtier
SOA aura dans la majorit des cas, une
approche mtier. Il faudra donc que les ser-
vices soient orients mtier. De plus, ce n'est
pas parce que l'on a une architecture SOA que
les services communiquent, travaillent
ensemble. Il faut introduire des processus. Les
processus mtiers permettent de donner un
workflow de fonctionnement entre plusieurs
services. Le processus mtier est donc en
quelque sorte une dfinition du comportement
en entre, en traitement, en sortie. Ainsi dans
une fonction de rservation d'une voiture, il
faudra dfinir le diagramme de cheminement :
le dpart, l'arrive, les diffrentes tapes, pr-
voir les contrles et la gestion des erreurs, etc.
Pour ce faire, on utilisera des processus BPM
(Business Process Manager).
De plus, s'il est facile de travailler avec
quelques services, il devient vite difficile de
manipuler des dizaines de services, internes
ou externes. C'est l que l'on aura besoin de
l'orchestration, d'un annuaire de services. Le
processus mtier (et l'orchestration) est la
valeur ajoute, la justification d'une architec-
ture SOA.
Cela permet d'utiliser plusieurs services selon
un contexte dfinition adaptable rapidement
en fonction des demandes. Car, cela ne sert
rien de mettre en place une architecture de
services, s'il n'y a pas une finalit relle. De
plus, un service peut tre utilis par plusieurs
processus. La notion de rutilisation est trs
importante en SOA. Comme nous le verrons
plus loin, l'interoprabilit ne doit pas tre
oublie. Si SOA permet dans un processus
mtier d'utiliser des services externes ou d'ex-
poser ses propres services des clients et
fournisseurs, il faut s'assurer de la bonne int-
roprabilit des services. Si dans le cadre
XML, web services, il existe des spcifications,
tout n'est pas rose. La phase de tests sera
vitale. Il faut donc dfinir une charte de
conception et de fonctionnement que chaque
entit devra respecter, surtout si les environ-
nements SOA diffrent.
De plus, on ne met pas tout et nimporte quoi
en service. Il faut dterminer ce que lon sou-
haite exposer, consommer. Ainsi, dans un pro-
cessus de rservation dune voiture, inutile de
prvoir un service de commande de fournitures
de bureau. Les gens du mtier, du business
doivent dire ce quils attendent. Le technique
(les dveloppeurs) ne dveloppe pas en
aveugle. Il faut comprendre que SOA nest
viable que sil y a un objectif mtier / business.
SOA fragilise-t-il son systme d'information ? Il
existe aujourd'hui de relles interrogations sur
les capacits de monte en charge, de reprises
de charge des services, des processus. Des
questions peuvent aussi se poser sur le load
balancing ou encore la rplication.
Enfin, nenvisagez pas dimplmenter SOA
immdiatement sur lensemble de votre entre-
prise. Cela na gure de sens. Faites tout
dabord un projet type, puis tendez au fur et
mesure des besoins et demandes.
s Franois Tonic
Le contraste entre avant et aprs SOA (Sun)
Architecture de type ESB (BEA)
p42-54 focus soa 18/05/06 18:27 Page 44
p42-54 focus soa 18/05/06 18:28 Page 45
F
ocus SOA
46
Programmez n87 juin 2006
Lorsque les architectes logiciels et les dveloppeurs se penchent sur les concepts associs aux
architectures SOA, ces derniers leur semblent souvent familiers car ils font, dans une certai-
ne mesure, cho aux dmarches objets ou aux approches Corba.
Mettre en place une architecture SOA
D
e plus, beaucoup de choses crites sur
les dmarches SOA expliquent limpor-
tance dune dmarche " Top Down ",
mais ciblent trs souvent le " top " et peu le
" down ". Pourtant, le risque est justement
pour les architectes comme pour les dvelop-
peurs de considrer cette proximit comme
tant un facteur justifiant de " continuer
comme avant ". Certains des rflexes passs
doivent tre combattus, sous peine de repro-
duire les erreurs commises sur lapproche com-
posant dans les annes 90.
Contrairement lapproche composant, dont la
vocation tait de faciliter et flexibiliser les
architectures applicatives, en fournissant des
briques logicielles assemblables, lapproche
SOA vise une dmarche pour laquelle les
dcouplages mtiers et fonctionnels doivent
tre apprhends en priorit. Ceci conduit
dfinir des services dont le niveau de granula-
rit est suprieur celui qui avait t envisa-
g ou mis en pratique dans les architectures
de composant. On parle alors de " Coarse
grained " services. Cest la raison pour laquel-
le la russite de la mise en uvre dune archi-
tecture oriente service passe par une forte
implication des analystes mtiers et la bonne
synergie avec les quipes techniques.
Les grandes tapes dimplmentation
dune architecture SOA :
Dfinir une cible et un primtre
Une SOA ne doit pas tre motive par le seul
effet de mode ou la pression du march, il faut
dabord dfinir la proposition de valeur en
identifiant quels enjeux mtiers ou quels
besoins clients seront adresss par lapproche
SOA. Dfinir la proposition de valeur peut pas-
ser par une phase de cartographie des appli-
cations, fonctions et organisations ou par la
rdaction de business cases devant imprati-
vement tre portes par des analystes mtiers.
Les dmarches durbanisation, BPM, les pro-
jets B2B, les architectures massivement distri-
bues sont des terrains particulirement favo-
rables la mise en uvre dune architecture
de services. Cette tape permet de dfinir le
primtre sur lequel sappliquera larchitecture
et de qualifier la granularit des services
ncessaire en en mesurant le ROI.
Une mise en place de larchitecture effectue
par itrations successives
Bien quil soit possible davoir un retour sur
investissement court ou moyen terme, la
mise en place dune architecture oriente ser-
vice se fait sur le long terme. Afin de matriser
les risques de transition, dobtenir un appren-
tissage progressif et de se dfinir des objectifs
plus faciles atteindre, il faut procder par it-
rations successives en gardant le cap sur la
cible architecturale. Les promesses des SOA
(flexibilit, dcouplage, ractivit, rutilisation)
ne peuvent apparatre que si leffort de SOA-
isation est suivi dans le temps et que la vision
est largement partage par les acteurs du SI.
Dfinition de la smantique dentreprise
Un facteur de russite dune architecture orien-
te service est la dfinition lchelle de len-
treprise dune smantique commune. Elle faci-
lite la communication entre les diffrentes par-
ties, et favorise la rutilisation des services.
Une pratique gagnante est de formaliser cette
smantique sous forme de schmas (XSD) par
lintermdiaire dun modle UML. Les modles
doivent tre partags, avoir leur propre ges-
tion de version et placs dans un rfrentiel
dentreprise accessible tous les projets.
Dans certains secteurs, il existe dj des stan-
dards verticaux et il est souvent pertinent de
sappuyer sur ceux-ci comme point de dpart.
FPML (Financial Products Markup Language,
http://www.fpml.org/) pour la dfinition des
produits financiers, ou RosettaNet pour la dfi-
nition de conversations dans le monde de la
high tech en sont deux exemples.
Limportance dune organisation adapte
Pour permettre la prise en compte des volu-
tions des mtiers et son adoption partage, la
smantique dentreprise doit tre place sous
une gouvernance transverse. La standardisa-
tion de la codification des donnes quelle
porte est un des grands facteurs cl de la
rutilisation des services.
Les architectures orientes service font en effet
apparatre de nouveaux besoins en terme de
gouvernance : les responsabilits ne sont plus
seulement associes aux projets, il apparat de
nouvelles responsabilits transverses, de nou-
veaux processus de gouvernance, pour :
dfinir et valider les services,
la smantique dentreprise,
grer les cots,
imposer la vision SOA et promouvoir la ruti-
lisation des services.
Identification des services
Lerreur la plus souvent commise pour tenter
dexposer des services est de partir des com-
posants dvelopps dans des applications et
p42-54 focus soa 18/05/06 18:28 Page 46
F
ocus SOA
47
Programmez n87 juin 2006
dexposer des mcanismes dinvocation de ces
composants par des faades techniques sup-
portant des protocoles standard (JMS, SOAP,
WSDL). De plus, il peut parfois tre tentant
dassimiler des services toute interaction
inter applicative dj existante. Cette approche
peut conduire des erreurs de conception et
peut tre vite en repositionnant le dbat
dans le contexte des processus logiques fonc-
tionnels conduisant ces interactions.
En effet, comme nous lavons voqu plus
haut, le niveau de granularit qui porte la plus
grande proposition de valeur est le niveau de
granularit le plus proche des interactions
mtiers. Pour atteindre cet objectif, plutt que
danalyser des applications existantes, il est
souvent ncessaire de reprendre une
dmarche darchitecture fonctionnelle en repar-
tant du besoin, par lanalyse des processus
pour dfinir les conversations entre entits
fonctionnelles qui devront se traduire sous
forme dchange dans le monde du SI.
La contractualisation des services
Le dcouplage fonctionnel autant que technique
sont des objectifs majeurs des architectures
orientes service. Loutil mthodologique pour
permettre le dcouplage est la dmarche de
contractualisation. Elle permet chacun des
acteurs dune intgration de se focaliser et de
formaliser les exigences rciproques entre le(s)
consommateur(s) et le(s) fournisseur(s) sous la
forme dun contrat. Ceci contribue isoler les
mcanismes internes des mcanismes dinvoca-
tion pour favoriser lautonomie des organisations
et applications. La programmation par contrat est
un lment qui permet notamment de matriser
les cycles de test en permettant chaque dve-
loppeur des services dtre autonome et de pou-
voir tester ses services, conformment aux exi-
gences et aux cas de test qui ont t dfinis. Les
informations communment admises intgrer
dans un contrat de service sont :
Structure et format des messages changs ;
Protocoles dinvocations
Dure de vie du service ou de la version;
Performance et capacit de traitement
(nombre dappels, frquence, volumes, temps
dexcution, priorit, );
Disponibilit ;
Robustesse ;
Mcanismes de gestion des erreurs ;
Scurit ;
Qualit ;
Localisation et adressages ;
Point de contacts fonctionnels et techniques.
Implmentation des services
Une fois les services dfinis au bon niveau de
granularit, et le contrat tabli, les services
peuvent tre implments. Pour permettre son
dcouplage et sa rutilisation, un service doit
toujours tre sans tat et autonome dans son
excution, c'est--dire ne pas dpendre dun
contexte ou de lexcution dun autre service.
Lors de la contractualisation, le choix de luti-
lisation de standards va favoriser la rutilisa-
tion des services. En ce sens, les technologies
associes aux web services forment une impl-
mentation technique possible des concepts de
SOA, mais ne sont pas les seules. Nanmoins,
bien quil soit possible de mettre en uvre
une architecture oriente service sans utiliser
Caractristiques
des services
- Couplage lche. Le consommateur du servi-
ce ne doit pas avoir connaissance des
dtails dimplmentation technique (langa-
ge dimplmentation, machine de dploie-
ment, etc..) du fournisseur du service. On
utilise donc des changes de messages au
format XML plutt que des objets, comme
cest le cas avec DCOM ou Corba.
- Interfaces bien dfinies. Linterface dun ser-
vice peut tre dcrite par un WSDL (Web
service Description Language).
- Stateless. Un service doit tre autonome
dans son excution, c'est--dire ne pas
dpendre dun contexte ou de lexcution
dun autre service.
p42-54 focus soa 18/05/06 18:28 Page 47
F
ocus SOA
48
Programmez n87 juin 2006
les web services, larchitecte doit prendre en
compte la direction que prend le march et
lorientation vers des technologies autour des
web services qui seront danne en anne de
plus en plus matures. Le support des techno-
logies web services est donc un minimum pour
garantir la prennit des solutions choisies.
Il faut souligner ici que le risque dassociation
dun web services aux services est de repro-
duire par erreur une dmarche " bottom up "
plutt que " top down ". Un web service nest
pas forcment ligible au titre de " service "
dans le cadre dune architecture oriente ser-
vice. Remplacer les APIs par des web services
ne garantit en rien que le service soit bien
form et conu au bon niveau puisque les ser-
vices dont il est question dans le cadre dune
SOA sont des services valeur mtier.
Une approche par le haut (top-down) permet
dviter de confondre les APIs avec les services,
car ils sont une abstraction plus leve que de
simples API. Les services devront bien souvent
orchestrer lappel de quelques API pour tre en
capacit de produire un mcanisme dintgra-
tion qui soit dfini avec le bon niveau de gra-
nularit. Cest la raison pour laquelle lidentifi-
cation des services fait gnralement appa-
ratre des projets faades, porteurs de valeur
autant fonctionnelle que technique (cest sou-
vent le cas avec lintgration de systmes exis-
tants), dont certains pourront tre mis en
uvre au travers de technologies EAI.
Il y a donc des solutions adaptes et spciali-
ses pour porter ces faades, solutions qui
sauront fabriquer une couche de services et
construire les services comme autant dabs-
traction de fonctions exposes par une ou plu-
sieurs applications. Cette couche rconcilie en
quelque sorte les visions applicatives et
mtiers. Compte tenu de ltat de lart actuel,
les quelques points clefs que doivent intgrer
une solution SOA sont :
Support des standards du march dinter-
Des fournisseurs de briques unitaires spcia-
lises pour traiter certains aspects des archi-
tectures SOA : CapeClear, Amberpoint,
Systinet, iWay
Ces solutions permettent, entre autres, de ser-
vir dintermdiaire afin dapporter le couplage
lche (protocole technique, localisation, trans-
formations). Ils proposent des patterns dim-
plmentations ou des frameworks orients
SOA tels que SCA ou Indigo.
Des enjeux forts pour les architectes
La trop grande simplicit de la mise en uvre
des web Services semble impliquer pour les
nophytes, une apparente simplicit de la mise
en uvre darchitectures SOA. Dans une
dmarche stratgique pour les architectes et
pour les dveloppeurs, se rapprocher des fonc-
tionnels est donc un facteur cl de succs, les
dmarches de normalisation fonctionnelle et la
culture plus forte autour des processus quils
acquirent danne en anne pourront aider les
architectes " faire parler " les fonctionnels et
les aider formaliser des services au bon niveau
de granularit. Le challenge pour larchitecte est
de devenir un animal communicant, pdagogue
auprs de tous ces acteurs (management, chef
de projet, fonctionnel, dveloppeurs). Il doit tre
capable de promouvoir une stratgie pour le
systme dinformation tout en gardant sa com-
ptence, sa vision technologique et son leader-
ship auprs des dveloppeurs.
s Marc Boullier
Directeur Technique chez VISTALI
s Benoit Paroissin
Responsable de loffre SOA chez VISTALI
oprabilit au minimum XML, SOAP,
WSDL et les standards WS-* valids
Routage intelligent, utilisant des rgles se
basant sur le contenu des messages
Transformations utilisant le standard du mar-
ch quest XSLT
Moteur dorchestration, l encore avec un
support de BPEL
MOM, ou interfaage avec des MOMs en uti-
lisant des standards tels que JMS
Le support Architectures distribues
Services partags
Rutilisation au travers de lutilisation de stan-
dards technologiques (web services, JMS, etc)
Il existe 3 grandes catgories de solutions per-
mettant de mettre en uvre des architectures
orientes services :
Les plates-formes applicatives des trois
acteurs majeurs du march (BEA, IBM,
Microsoft) qui intgrent dsormais des pro-
duits spcialiss pour supporter la mise en
uvre darchitecture SOA,
Les suites dintgration dont les leaders
sont Tibco et webMethods
Granularit des services
Il existe diffrentes granularits des services :
Coarse grained il sagit de services purement fonctionnels, mergeant lors dune dmarche de
modlisation des processus mtiers. Il sagit de la granularit la plus porteuse de valeur, mais
ncessitant plus defforts (dfinition dune smantique dentreprise, gouvernance )
Medium grained et Fine grained il sagit de services apparaissant au niveau des composants
et objets. Les services de taille moyenne peuvent tre utiliss dans le cadre dune architecture
applicative et combins pour tre exposs au travers dun service de grosse granularit tandis
que les services de granularit la plus fine ne sont utiliss quen interne une application.
Une granularit fine peut sembler efficace car elle permet dapporter une rponse directe au besoin
dun consommateur, mais cette efficacit tient au fait quelle saffranchit dune rflexion sur les
interactions consommateurs fournisseurs. Elle nest ni stable fonctionnellement, ni rutilisable.
p42-54 focus soa 18/05/06 18:28 Page 48
F
ocus SOA
49
Programmez n87 juin 2006
Sofware AG mise
aussi sur le support
" Ce que je vois,
cest le rle du BPM
dans les architec-
tures SOA. De plus
en plus, les gens
mettent BPM
comme partie int-
grante SOA. On
assimilait il y a peu
ESB et SOA, mainte-
nant, on est mont dun cran, pour parler de
gouvernance : comment grer larchitecture.
Mais tout dpend de la manire dont on abor-
de SOA. Le premier projet SOA paie un peu
pour les autres et il faut trouver un "sponsor"
mtier qui utilisera larchitecture dun point de
vue mtier business. SOA est une dmarche
durbanisation de son systme dinformation.
Je mets une couche au-dessus. Il faut impra-
tivement une rflexion en amont " souligne
Frdric Bonnard (Directeur business unit
crossvision). Mais au-del de la rflexion pure-
ment architecture, il faut aussi savoir ce que
lon souhaite faire : quelles applications vont
profiter immdiatement de cette nouvelle
configuration ? Rien ne se fait sans prouver
que la dmarche convient au mtier, au busi-
ness. " Il faut aller voir les gens du mtier
pour vendre SOA pour quils consomment lar-
chitecture. " prvient Frdric Bonnard. Cette
dmarche est capitale dans la russite ou
lchec dun projet SOA. " Et il faut aussi des
personnes pour crer ces nouveaux services.
La valeur ajoute est l " poursuit Frdric
Bonnard. Car, si le SOA napporte rien de
concret, aucune valeur ajoute, lintrt intrin-
sque de SOA sera nulle. " Dans une architec-
ture simple avec quelques services, cest
simple grer, maintenir. Par contre, plus
larchitecture devient complexe, avec de nom-
breux services, plus cest difficile grer,
maintenir, mme en couplage lche " prvient
Frdric Bonnard. Laide et la formation
deviennent des lments importants pour le
client. " Nous possdons des centres de com-
ptences SOA dans plusieurs pays, mais pas
encore France, pour une question de taille de
march " prcise Frdric Bonnard.
Xcalia : ne pas
tout confondre
Le SOA constitue un
axe stratgique
pour lditeur fran-
ais Xcalia. " Cest
encore un march
en dmarrage, les
entreprises dbu-
tent des projets,
mais cela nest pas
quelque chose de
courant, beaucoup font des tudes " prcise
demble ric Samson. Cette relative prudence
nest pas due au hasard. Les expriences pas-
ses ont sans doute raisonn les stratgies.
"chaud cest possible. Les directions veulent
plus de rflexion, des tudes approfondies. On
a dit et crit beaucoup de choses sur SOA,
pour un certain nombre, SOA = composant. On
a besoin dun vritable glossaire, dun diction-
naire. Cependant, SOA commence se clarifier
comme sur le rfrentiel de services ou enco-
re sur lorchestration.
La vision, le discours de chaque diteur naide
pas les utilisateurs. Avant toute chose, il faut
rappeler que SOA est un type darchitecture
avec une nouvelle couche oriente mtier. Il y
a deux axes retenir. Le premier concerne les
services, leur exposition et le second est li
lintgration. SOA permet daccder aux
anciennes applications partir de nouvelles,
et cela ne se ralise pas forcment en Web
Services. De nombreux projets croisent SOA et
intgration, quitte, plus tard, aller vers du
SOA " pur " " analyse ric Samson. Alors SOA
lavenir de lintgration ? " Oui, SOA est lave-
nir de lEAI ! Mais SOA est plus que cela " pr-
cise ric Samson.
Microsoft mise sur
la dmocratisation
" Sur le SOA, tout le
monde a la mme
vision marketing.
Ce nest ni une
rvolution, ni un
outil. Le " buzz "
autour nest pas for-
cment une bonne
chose " prcise
Marc Gardette (res-
ponsable architectes au sein de la division
dveloppeurs et plate-forme d'entreprise de
Microsoft France). " Une application reposant
sur des services avec lchange de messages,
Corba savait dj le faire, lide nest (donc)
pas nouvelle. Les principes des services sont
autonomie, partage des schmas et sont grs
par des politiques. On dfinit ainsi le SO
(orient service). Le A signifie : quels sont les
services, comment les orchestrer, que fait-on
des services, etc. Il y a deux visions : la vision
mtier et la vision technique. Et il ne faut pas
oublier quil existe aussi diffrents types de
services : technique, business, infrastructure.
Et au-dessus de tout cela, on btit son appli-
cation. On peut avoir des applications compo-
sites ou des processus " commente Marc
Gardette. Bref, le SOA est en quelque sorte le
lien entre les applications et linterface. " Jai
des services. Encore faut-il savoir comment les
utiliser ensemble. Il faut les agrger, dfinir les
enchanements. Pour cela, on dispose de work-
flow, de processus, dorchestration. Je dois
dfinir mes besoins. Chez Microsoft, nous dis-
poserons dune couche pour dmocratiser
SOA : WCF (Windows Communication
Foundation). Orient service, il unifie les archi-
tectures distribues et la manire de commu-
niquer. Il sagit dun modle de haut niveau,
assurant linteroprabilit avec limplmenta-
tion des WS-*. Surtout, il est extensible via des
API. Et WCF travaille avec notre framework de
workflow" conclut Marc Gardette.
TEMOIGNAGES
Numro 88 - Juillet / Aot 2006 - SPCIAL LANGAGES de ASP XUL
p42-54 focus soa 18/05/06 18:28 Page 49
F
ocus SOA
50
Programmez n87 juin 2006
Les architectures orientes services mergent
comme modle de choix pour lintgration dans une
entreprise. BPEL (Business Process Execution
Language) joue ici un rle important en fournissant
des moyens efficaces pour articuler et excuter une
logique applicative un niveau dabstraction prvu
pour apporter les services ncessaires des fins din-
tgration. Cet article prsente une perspective des
bnfices quapporte le BPEL aux services Web : la
concrtisation des principes dune SOA.
BPEL & SOA,
par lexemple
A
fin dillustrer les proccupations aux-
quelles le BPEL apporte une rponse,
nous prendrons pour exemple un voya-
giste qui propose des services en ligne. Les
prestations comprennent :
getAvailableHotels : traiter une saisie de
code aroport et renvoyer une liste dhtels
proximit de cet aroport
getDescription : traiter une saisie didenti-
fiant dhtel et renvoyer une description de
cet htel
getRate : traiter une saisie didentifiant
dhtel, un nombre de chambres et une
date. Renvoyer un devis
makeReservations : utiliser les identifiant
htels et dates pour effectuer la rservation
cancelReservation : utiliser un numro de
confirmation pour annuler la rservation
Un service de voyage en ligne
Lors dun processus de rservation, toutes ces
oprations peuvent tre appeles. Les mes-
sages utiliss par ces services peuvent tre
bass sur des dfinitions du secteur -ici du
voyage, par exemple celles fournies par
lOpenTravel Alliance (OTA)*. La socit concer-
ne pourrait ainsi rdiger ses propres contrats
WSDL en sappuyant sur les schmas de lOTA.
Pour des raisons pratiques, nous admettons
que chaque opration est modlise comme
service unique.
Maintenant, observons ce qui se passe lorsque
nous voulons crer un service rutilisable avec
un scnario type tel que la recherche dun
htel. Nous appellerons plusieurs services
dont certains doivent tre invoqus la cha-
ne. Par exemple, nous avons besoin dune liste
dhtels situs prs dun aroport donn avant
de demander des descriptions dtailles et les
prix de ces htels. Dautres services par contre
peuvent tre invoqus en parallle. Cest le
cas, par exemple, lorsque nous demandons les
descriptions et prix de tous les htels (en
mme temps) pour la liste que nous avons
obtenue. Ce scnario peut ncessiter une
interaction de lutilisateur qui doit par exemple
visionner la liste doptions et dcider quel
htel rserver. Nous pouvons imaginer ce pro-
cessus comme un graphique prsentant des
activits de base et des activits structurelles.
Parmi les activits de base, il y a la rception
de messages, les invocations de services
externes et lattribution de valeurs dun mes-
sage lautre. Les activits structurelles peu-
vent inclure une squence qui excute des
activits les unes aprs les autres et un flux
qui excute les activits en parallle. Or, il
savre que cest une notion des activits que
le BPEL supporte.
Dans le langage BPEL, les activits mention-
nes ici sont recevoir, invoquer, attribuer,
mettre en squence et en flux. En effet, il y
dfinit 15 activits de ce type, ainsi que des
<sequence>
<receive operation="shop" partnerLink="shopper"/>
<invoke operation="getAvailableHotels" partnerLink="registry"/>
<flow>
<invoke operation="getRate" partnerLink="rateProvider"/>
<invoke operation="getRate" partnerLink="rateProvider"/>
<invoke operation="getRate" partnerLink="rateProvider"/>
<invoke operation="getRate" partnerLink="rateProvider"/>
</flow>
<reply operation="shop" partnerLink="shopper"/>
<pick>
<onMessage operation="makeReservation" partnerLink="shopper">
<invoke operation="makeReservation" partnerLink="hotel"/>
<reply operation="makeReservation" partnerLink="shopper"/>
</onMessage>
<onMessage operation="cancel" partnerLink="shopper">
<empty/>
</onMessage>
</pick>
</sequence>
* OpenTravel Alliance (OTA) :
http://www.opentravel.org
p42-54 focus soa 18/05/06 18:29 Page 50
F
ocus SOA
51
Programmez n87 juin 2006
lments de non-activit comme les proces-
sus, les liens partenaires, les variables et les
corrlations.
Ce morceau de code illustre comment et
quelles activits peuvent tre utilises dans
notre contexte (certains dtails comme la
manipulation de donnes ont t omis pour
des raisons de clart). Ce quil faut retenir ici,
cest que les activits sont reprsentes
comme lments et les sous-activits, comme
lments fils. On observe donc que la structu-
re du XML reflte la structure du processus de
faon vidente.
Des suites dactivits comme celles-ci peuvent
tre utilises pour dfinir les processus BPEL qui
seront publis sous forme de services Web.
Certes, il est possible darriver ce rsultat par
le biais dun langage de programmation tradi-
tionnelMais lavantage que nous voyons dans
le BPEL est que la notion dinteraction avec des
services Web est intgre dans le langage.
Autrement dit, si nous souhaitons nous concen-
trer essentiellement sur lorchestration de ser-
vices Web, lutilisation du BPEL semble plus
naturelle. Il est vrai quil existe de nombreuses
librairies pour simplifier la tche denvoi et
rception de messages avec des protocoles
comme SOAP. Cest pourquoi je vais exposer
dautres raisons dutiliser BPEL dans ce scnario.
WSDL au cur du service Web
La caractristique technique dterminante dun
service du point de vue du BPEL est quil est
dcrit dans un fichier WSDL. Le BPEL nadmet
pas par dfaut que lon accde aux services via
SOAP avec HTTP, ce qui permet lutilisation de
bindings plus efficaces lorsquon le juge nces-
saire. Le framework dApache WSIF (Web
Service Invocation Framework) dfinit ainsi les
extensions WSDL pour des bindings dappels
locaux de Java, EJB, JMS, et de connecteurs
JCA. Les donnes du binding ne sont pas
accessibles directement via le BPEL mais on
les contrle par le biais des configurations de
dploiement. Ce qui signifie que notre proces-
sus peut tre crit en restant neutre sur la
question des liaisons, sparant ainsi claire-
ment la logique mtier des proccupations de
couche basse.
Les schmas dchange
et les services stateful
Notre scnario de recherche dhtel ncessite
deux interventions de lutilisateur: la premire
fois pour initier une requte avec des critres
qui dfinissent la ville ou laroport, et les
dates, la deuxime pour visionner la liste, et
slectionner un htel, ou annuler la requte.
Comme il y a deux interactions, le service glo-
bal ne peut pas tre modlis sous forme
dune paire requte/rponse. Pour le modli-
ser, nous avons plusieurs options:
1/ Le processus ncessite trois oprations de
type requte/rponse: getDescriptionsAnd
Rates(), makeReservation(), et cancel().
2/ Le processus expose une opration sens
unique qui initialise la recherche dhtel. Le
client lance une requte, fournit une rponse
pour la slection de lhtel dans la liste pro-
pose ou pour annuler.
3/ Chaque message est modlis comme une
opration sens unique.
Vous remarquerez que pour la premire et la
troisime option, le processus reoit de mul-
tiples messages, ce qui implique un service
stateful, qui mmorise les points charnire
depuis le dbut de la conversation, au lieu de
redmarrer de zro chaque message. Si nous
admettons que nous supporterons ici des
requtes multiples et concurrentes, nous
auront donc galement besoin dun moyen de
corrlation dfinissant quel message est dirig
vers quelle conversation.
Identifier les conversations
et corrlations
Une manire de faire la corrlation est dins-
rer des identificateurs dans chaque message
pour identifier la conversation laquelle il par-
ticipe. Parfois, cela marche trs bien et il exis-
te une plthore didentificateurs de message et
de conversation dans les standards JMS et WS-
Addressing. Mais il arrive aussi que cette stra-
tgie soit inutilement restrictive. Ainsi, quel-
quun qui envoie un message ne sait pas for-
cment quel identificateur utiliser ou mme si
une conversation existe dj, ou si une nou-
velle conversation doit tre cre. Le BPEL
rgle tous ces cas en introduisant le concept
de corrlation et en permettant la dfinition
des corrlations en fonction du contenu des
messages. Pour notre scnario, nous pouvons
trs bien avoir un identificateur explicite qui
circule ou nous pouvons cibler un set de pro-
prits applicatives spcifiques comme un
tuple qui consisterait en un nom de client,
date, et ville. Lorchestration de services en uti-
lisant la fois des identificateurs explicites et
implicites apporte une flexibilit qui constitue
un outil puissant lors le la modlisation de
conversations tendues.
Les processus persistants
Retournons aux diffrentes options dchange
de messages pour modliser notre scnario. Le
temps ncessaire chaque tape du processus
est lun des facteurs cl lors des prises de
dcision concernant la modlisation. Si lutili-
sateur est devant le navigateur et attend une
rponse sa requte, les modles de messa-
gerie synchrone conviennent bien. En effet, il
parait raisonnable de maintenir les connec-
tions HTTP pour cette courte dure.
Cependant, un scnario dutilisation diffrent
peut amener lutilisateur rpondre par e-mail
p42-54 focus soa 18/05/06 18:29 Page 51
F
ocus SOA
52
Programmez n87 juin 2006
allongeant le temps des jours, au lieu de
secondes. Dans ce cas, le modle qui traite
chaque message comme un service sens
unique parat plus appropri. Dans le monde
des services Web, loption qui prvaut pour
grer des processus longs via des services
asynchrones est la queue traditionnelle de
messages, laquelle on accde souvent au
moyen dune API non propritaire telle que le
JMS (Java Messaging Service) et SOAP par
HTTP, avec des rappels spcifis par des mca-
nismes dadressage comme WS-Adressing. JMS
a lavantage de fournir des queues de mes-
sages adaptes une utilisation en entreprise
avec une messagerie persistante et fiable.
Le prochain obstacle derrire la notion de pro-
cessus longs est la persistance de ceux-ci.
Plus le processus est long, plus il est critique
quil puisse durer avec les cycles. Si une tran-
saction de 500 millisecondes qui choue peut
simplement tre relance, la persistance est
essentielle pour des processus qui vont sta-
ler sur des semaines, voire des mois. Le bn-
fice majeur quapporte un processus long
implment avec BPEL est la persistance que
fournit le moteur BPEL, simplifiant ainsi nor-
mment la logique mtier.
Grer les endpoints
Dans notre scnario doffre de voyages en
ligne, lun des lments les plus sujets au
changement est lendpoint des diffrents ser-
vices. Une des fonctionnalits souhaitables
dune SOA est la possibilit de grer ces end-
points de faon dynamique distance, et un
certain nombre de technologies rpondent
ce besoin. WSDL apporte des endpoints sta-
tiques lutilit limite. Une pratique couran-
te consiste sparer linterface WSDL en
excluant lendpoint de limplmentation WSDL
qui elle, linclut. Cela permet une rsolution
plus dynamique de lendpoint comme ceux qui
sont tablis via le champ ReplyTo dans WS-
Addressing ou JMS.
Dautre part, si de multiples services Java tour-
nent sur la mme machine virtuelle, il est plus
efficace pour eux de sinvoquer lun lautre
directement en mmoire plutt que par le biais
de messages ou connections socket. Avec le
niveau dabstraction quoffre le BPEL, on a
galement la notion de lien partenaire.
Les liens partenaires peuvent tre spcifis au
moment du dploiement ou de lexcution.
Puisque les liens partenaires sont un concept
intgr de BPEL et peuvent tre manipuls
directement dans les processus, nous avons l
une solution complte de gestion des end-
points, depuis le dploiement statique simple
jusqu la rsolution dynamique dpendant de
multiples facteurs, y compris des considra-
tions techniques et la logique mtier.
Transactions atomiques, transactions longues
Lune des oprations de notre service peut
paratre inoffensive, mais elle cache en fait une
question dlicate : lopration dannulation.
Elle implique que parfois des activits peuvent
tre d-faites. Nous allons ici faire la distinc-
tion entre deux types de transactions lies
BPEL et larchitecture oriente services.
La premire est la transaction atomique. Les
lecteurs familiariss avec les BD relationnelles
reconnatront ce type de transaction associe
la smantique ACID (Atomicity, Consistency,
Isolation, Durability). Les systmes distribus
qui ont besoin dune transaction ACID pren-
nent normalement ces proprits avec un pro-
tocole de commit deux phases. Le standard
WS-AtomicTransaction dfinit une manire de
raliser ce type de transaction avec des tech-
nologies de service Web.
Les transactions atomiques prservent ainsi
lintgrit des donnes, mais le prix payer
est le verrouillage des ressources pour toute la
dure de la transaction, ce qui est raisonnable
dans le cas dune transaction courte, mais pas
pour une transaction longue. Cest pourquoi il
y a une seconde catgorie de transactions
longues qui peuvent aussi tre appeles
Business Activity. Ici, lapproche consiste
dfinir des activits de compensation qui
dfont les actions prcdentes. Ce faisant, les
ressources ne sont pas verrouilles et linfor-
mation sur ltat peut tre partage, mme
lorsque le processus nest pas termin.
Les standards WS-AtomicTransaction et WS-
BusinessActivity utiles ici, chapeautent le stan-
dard WS-Transaction pr-cit. Ils ne sont pas
encore trs largement accepts et BPEL nest
pas dpendant deux directement lheure
actuelle, mais la distinction entre les deux
types de transactions est importante et le
BPEL la supporte.
Nous avons vu ici un certain nombre de pro-
prits communes nombre dapplications
processus mtiers. Bien quelles puissent tre
intgres en crivant du code dans un langa-
ge de programmation traditionnel, elles font
galement partie des atouts du BPEL qui
apporte un niveau dabstraction et une infra-
structure particulirement adapts ce type
dapplications.
s Jim Clune
Responsable de dveloppement chez Parasoft
Le Runtime contient de multiple process. Ils participent au dialogue avec les partenaires via des
Web Services et assure la persistance dans le SGDB.
p42-54 focus soa 18/05/06 18:29 Page 52
F
ocus SOA
53
Programmez n87 juin 2006
Larchitecture oriente service est devenue le matre mot des diteurs commerciaux et open
source. Loffre autour du SOA stoffe rapidement dans lensemble des domaines. Il est diffici-
le de dresser un panorama un tant soit peu complet. Nous vous proposons un aperu et les
grandes tendances actuelles.
Panorama des outils orients SOA
C
omme nous lavons rpt dans lensemble des pages prc-
dentes, il est parfois difficile de cerner la notion de SOA et enco-
re plus quand on aborde les outils, les approches tant diff-
rentes selon lditeur. Vous trouverez aussi bien des solutions " cl en
main " purement SOA ou SOA EAI chez les spcialistes de lintgra-
tion. La diffrence peut se faire sur les fonctions proposes, les stan-
dards et protocoles implments.
Cependant, mme avec des environnements complets, lajout dun outil
tierce nest pas carter, notamment dans lorchestration, les proces-
seurs mtiers. Dans les outils open source, loffre est variable selon les
domaines. Pour les ESB, il ny aura gure de problme, par contre, sur
les solutions globales, loffre se rduit peu de chose. Thoriquement,
linteroprabilit / compatibilit existe entre les outils et avec les appli-
cations internes et externes. Mais, dans la pratique, vous, de vrifier
que vous pourrez utiliser tel outil avec des services / applications exis-
tant. SOA voluant constamment, surveillez les spcifications et lvo-
lution des outils.
Les solutions de bout en bout ou presque (applications
de services et composites)
Aujourdhui, plusieurs grands diteurs se positionnent sur les solutions
globales. Les offres se diffrencient sur les fonctions et aussi sur le type
dapplications SOA : composites ou de services. Les spcialistes dou-
tils dintgrations (de type EAI ou non) se tournent franchement vers le
SOA, le nouveau march de lintgration. Certaines solutions obligent
mettre en uvre une nouvelle infrastructure.
Editeur Outil licence Description
SoftwareAG CrossVision Commercial Suite doutils couvrant lensemble des besoins, inclut des modules de gouvernance, de composition dapplications composites,
de BPM, fonctions dintgration de linfrastructure applicative existante, outils de modlisation et dorchestration.
Prsence dun rfrentiel unique.
IBM IBM SOA Commercial SOA Foundation regroupe lensemble des outils IBM lis aux architectures SOA : modlisation, processus mtiers, serveur,
Foundation monitoring, ESB SCA est dj pris en compte dans certains outils de la gamme.
Oracle Fusion Architecture Commercial Solution SOA et dintgration. repose sur trois grands principes : le grid, SOA et la gestion des informations.
Son modle de conception dapplication / architecture est pilot par modle et propose une architecture interne
ouverte pour intgrer les applications htrognes.
BEA AquaLogic Commercial Gamme doutils orients SOA. Elle comprend un ESB, un " annuaire " pour les services web, un intgrateur de donnes,
ainsi quun outil de gestion daccs et de scurit applicative.
On dispose aussi dun outil pour orchestrer les architectures complexes.
IWay SOA Middleware Commercial Suite dintgration oriente SOA. Loutil mise sur son interoprabilit et ne ncessite pas dinfrastructure nouvelle.
Inclut un ESB, un monitoring, une gestion daccs et des polices de scurit, un module BPM et une fonction de recherche.
Telelogic System Architect Commercial Environnement de modlisation oriente architecture. Permet de convertir des processus BPMN en processus BPM.
Inclut des mcanismes de dploiement SOA. Inclut aussi BPEL. Pas de fonctions dorchestration.
webMethod Fabric Commercial Serveur dintgration sappuyant maintenant sur un framework SOA. Utilise massivement les Web Services.
Le dveloppement se veut le plus visuel possible. Moteur de BPM prsent.
De Gamma De gamma suite Commercial Plate-forme compose de diffrents outils et moteurs pour raliser des environnements SOA
(BPM, rfrentiel central, portail, etc.). Dvelopp avec .net.
Microsoft Biztalk Commercial Serveur dintgration Windows de type EAI. Inclut de nombreux correcteurs.
Repose sur .Net, XML et les Web Services, inclut un Bam et supporte BPEL.
IWay webMethod Biztalk
p42-54 focus soa 18/05/06 18:29 Page 53
F
ocus SOA
54
Programmez n87 juin 2006
s Franois Tonic
Divers
Parasoft SOAtest Commercial Outil de tests et danalyses de web services. Permet de valider les services selon les spcifications du march.
Inclut de bonnes pratiques. Propose lautomatisation des tests des implmentations BPEL.
Mia Software Mia for .Net Commercial outil de gnration de code .Net bas sur UML 2 et sintgrant dans Visual Studio 2005.
La conception des applications se ralise selon une approche SOA, bas sur .Net et les Web Services.
Lapproche de lditeur du SOA se fait par le dveloppement orient modle.
AmberPoint SOA Validation Commercial Outil de validation SOA. Loutil vrifie le bon fonctionnement de larchitecture et des services.
System Evalue limpact de tout changement dans les services, les applications.
AmberPoint SOA Management Commercial Cet environnement vise administrer au mieux son SOA de la conception, la production et durant la maintenance.
System Assure une gouvernance centralise. Utilisation des politiques de gouvernance.
Ilog Jrules Commercial Lditeur franais est le leader des processus mtiers. Facilite le dveloppement et ladaptation des processus et rgles
lenvironnement en prenant en compte en temps rel les modifications.
Compuware OptimalJ Commercial Orient dveloppement et MDA, loutil peut servir dans des architectures SOA complexes afin de
gnrer le code des services.
Xcalia Intermediation Commercial Outil pour passer en SOA sans imposer des choix techniques, non intrusif. Propose une orchestration dynamique.
Platform
Sonic Software Sonic ESB commercial L ESB du march. Mise sur le messaging avec le support de JMS.
Supporte WS-Adressing,WS-Reliable Messaging, etc.
IBM WebSphere ESB Commercial Sappuie sur le standard JMS. Sintgre la plate-forme WebSphere dIBM et intgre un modeleur
de processus mtier et un assembleur de composants.
Il utilise les protocoles et standards Web Service et BPEL.
iWay IWay ESB commercial ESB multiprotocole, supporte les messages non XML (via une transformation).
Fonctions de rapports dcisionnels.
Fiorano Fiorano ESB Commercial Se base sur le protocole de message JMS. Il implmente aussi les standards BPM, BPEL4WS.
Supporte Java, .Net.
ServiceMix ServiceMix Open source Bas sur JBI (Java Business Integration). Il utilise le framework Spring.
Il sintgre au serveur J2EE Geronimo. Pour le messaging, cet ESB sappuie sur ActiveMQ,
un outil de message utilisant JMS.
ObjectWeb Celtix Open source Issu du projet Artix de Iona. La persistance des donnes pour les messages se base sur Derby.
Supporte Maven 2, JMS, lensemble des standards et protocoles Java des web services et SOA.
Tibco BusinessWorks Commercial Sappuie comme la concurrence sur JMS. Possde une console dadministration web.
Utilise les principaux standards du march.
Cape Clear Cape Clear ESB Commercial Gestion de bout en bout des messages, supporte les standards et protocoles du march.
Possde aussi une console dadministration et une gestion de scurit des services.
Iona Artix Commercial Permet de crer des architectures SOA adaptatives. Inclut un module dorchestration JMS et WS-RM,
supporte z/OS avec un outil Eclipse.
Les ESB
Si SOA ne signifie pas forcment utilisation dun ESB, le bus devient un lment central des architectures SOA complexes. Depuis 3 ans, loffre na
cess de se multiplier et aujourdhui, loffre open source rivalise souvent avec les outils commerciaux.
Dbut mai, 16 diteurs oeuvrant dans les
outils SOA ont ralli SOA Link. Linitiative a
pour but de fournir des recommandations
pour assurer une bonne introprabilit
entre les outils des diteurs adhrant au SOA
Link. Cependant, pour le moment, SOA Link
ptit de labsence des poids lourds :
Microsoft, IBM, BEA, Oracle. SOA Link vise le
cycle de vie SOA et la gouvernance.
En dcembre dernier, plusieurs diteurs,
dont IBM, BEA et Oracle, prsentaient SCA
(Service Component Architecture). Cela signi-
fie que lon dcouple totalement la construc-
tion de larchitecture du dveloppement.
Bref, on dveloppe indpendamment dun
choix technique de dploiement comme cest
le cas aujourdhui. SCA sert dans les archi-
tectures SOA. On fournit ainsi une plus gran-
de libert de choix aux responsables et
dveloppeurs. Basiquement, SCA sorganise
en module qui contient des composants. Un
composant correspond des fonctions que
lon regroupe dans des services que lon
dcrit par une interface et possde des
contrats. Les promoteurs de SCA prvoient
de limplmenter dans leurs outils.
Cependant, ce nest pas une spcification, ni
un standard.
Il est noter que chaque plate-forme dfinit
sa propre " organisation SOA ", ses propres
concepts. Ct Microsoft, on disposera du
Windows Communication Foundation et sur
Eclipse de SOA Tools Platform. Ce projet doit
apporter, terme, un ensemble doutils pour
crer des services, les grer, les monitorer,
construire des architectures complexes.
La course la spcification ?
p42-54 focus soa 18/05/06 18:29 Page 54
F
ocus P2P
55
Programmez n87 juin 2006
Dans la premire partie de notre dossier P2P , nous
navons queffleur le march rel de cette techno-
logie. Lexplosion du contenu la demande sur
Internet, le mobile, contribuent au dveloppement
des solutions P2P. Les grandes entreprises sint-
ressent aussi cette technologie permettant des
conomies de dploiement gigantesques !
S
il existe encore peu de socits sp-
cialises dans le P2P, en France, on
possde plusieurs diteurs proposant
des solutions et des services sur et autour du
P2P. Une des plus connues est Aelitis, fonde
par des dveloppeurs du projet open source
Azerus, client P2P Java bien connu. La secon-
de, et trs prometteuse, est Allpeers, dvelop-
pant un module Firefox pour utiliser le P2P
directement dans le navigateur et en propo-
sant un fonctionnement la Skype, pour
mettre en relation des utilisateurs dun mme
rseau de contact Aux Etats-Unis, une petite
dizaine de socits se dveloppent sur le P2P.
Le march sur le point dexploser !
Mme si les utilisateurs finaux ne sen aperoi-
vent pas toujours, le march du P2P explose
de partout. En entreprise, il sagit, par exemple,
de dployer ou de mettre les informations
internes sur plusieurs milliers de postes. Au
lieu dutiliser des CD / DVD ou mme un intra-
net, le P2P permet, sans augmenter la puis-
sance CPU de distribuer une grande masse de
donnes, moindre cot. Avec la croissance du
contenu la demande (vido, son, etc.) le P2P
constitue une technologie fiable et puissante
pour faire du streaming video la demande, ou
charger un film, etc. sans pour autant surchar-
ger la bande passante et surtout, un cot de
distribution trs bas. Comme le prcise, Olivier
Chalouhi (Aelitis), impossible de payer un film
la demande 400 ou 500 fois le prix dune
chanson Dans les services de stockage en
ligne, par exemple, le P2P intervient aussi
pour accder son compte
et rcuprer / transfrer des
donnes. Dans les applica-
tions distribues, le P2P a
aussi sa place. Surtout, de
plus en plus dapplications
vont embarquer des mca-
nismes de type P2P pour
faciliter les changes de donnes (ex. : dans
un cadre collaboratif ).
Des diteurs en pleine croissance
Le Franais Aelitis propose deux types de ser-
vices : revente de la technologie dautres
socits (B2B), mise en place dune solution
adapte la demande du client (B2C). " La
technologie est prte et les entreprises savent
ce quest le P2P, mme si elles nont pas de
vision dessus. En entreprise, le P2P est adapt
aux volumes de donnes importants distri-
buer. Le march B2C est en pleine croissance. Il
ny a pas de frein sur la technologie, mais sur le
manque de contenu " prcise Olivier Chalouhi.
Lditeur semble assez optimiste sur les annes
venir et sur la croissance du march.
Allpeers, autre Franais prometteur du march,
propose une approche originale et plus que
prometteuse. Il sagit, partir dun navigateur
Firefox, de dtecter les membres dun rseau
virtuel (= ses amis, connaissances, collabora-
teurs), comme Skype le propose. Le module
sappuie sur Bitorrent et aura une interface trs
simple, avec un affichage du navigateur res-
semblant Messenger. Le module, gratuit, sera
disponible sous Windows, MacOS X et Linux.
Le modle conomique ne devrait pas tre la
publicit mais les services annexes. Cette
extension est en tout cas trs attendue. La ver-
sion finale devrait sortir courant juin. Idal
pour changer de trop gros fichiers tout en vi-
tant de passer par du ftp. Dailleurs Microsoft
propose un mcanisme identique avec loutil
FolderShare (service de Windows Live), rache-
t il y a quelques mois. Cela peut ressembler
ce que propose dj Apple avec .Mac, des
services en ligne.
La notion de services valeur ajoute sera
sans aucun doute le point cl pour lquilibre
financier.
Un avenir pour les dveloppeurs ?
Si aux Etats-Unis quelques postes de dvelop-
peurs P2P existent, Olivier Chalouhi avoue
quil est encore trop tt en France pour voir
apparatre ce genre doffres demplois.
Cependant, lavenir, il sera possible de voir
quelques offres mentionnant des connais-
sances en technologies P2P.
Sites : Allpeers : www.allpeers.com
Aelitis : http://www.aelitis.com/
Foldershare : www.foldershare.com
s Franois Tonic
Le P2P chez les pros !
Microsoft dbarque en force
2
e
partie
p55 p2p 18/05/06 18:33 Page 55
F
ocus P2P
56
Programmez n87 juin 2006
Groove est une solution P2P hybride de travail
en quipe. Ce produit se base sur le concept des
bureaux virtuels.Lagencement et lusage dun bureau
virtuel sont fonction de sa finalit pour lquipe qui lutilise.
Groove Virtual Office :
Pour quels usages ?
N
ombreuses sont les solutions de tra-
vail collaboratif qui sappuient sur des
outils de communication synchrones,
des espaces de stockage de documents ou des
applications partages. Rares sont cependant
celles qui mutualisent lensemble de ces fonc-
tionnalits en une mme et seule application.
Or, il sagit l dun minimum requis pour
quune quipe distribue gographiquement
puisse virtuellement travailler. Au sein des
bureaux virtuels Groove, les collaborateurs
peuvent communiquer, partager des res-
sources et des outils. Ils disposent dun envi-
ronnement modulable en fonction de leurs
prrogatives de groupe et des objectifs quils
souhaitent concrtiser ensemble. On distingue-
ra trois catgories de fonctionnalits.
Collaborer efficacement en quipe
La premire est indiscutablement ncessaire :
ce sont les outils de communication. Il sagit
en premier lieu de la messagerie instantane
interne la solution, qui remplace le-mail, ne
souffre daucun SPAM et peut vhiculer tous
types dinformations (vocales, textuelles, docu-
mentaires, etc.). En second lieu, il sagit de
moyens de communication tels que le Chat,
galement multifonction (manuscrit, textuel,
audio, etc.), ou encore les forums. Lensemble
de ces fonctions permet aux membres dun
bureau virtuel dchanger des donnes struc-
tures ou non, en direct, de personne per-
sonne ou lchelle du groupe.
La seconde catgorie de fonctionnalits com-
prend une vingtaine doutils, qui peuvent tre
dploys, la demande, dans un bureau vir-
tuel. Ils constituent lune des premires
rponses quoffre Groove ceux qui souhaitent
travailler ensemble sur un sujet prcis : gestion
de projet, CRM, sance de rflexion, etc. Ces
outils sont tous partags lchelle dun
bureau virtuel donn. Cette gamme compte des
outils tels quun agenda partag, un gestion-
naire de tches, un gestionnaire de contacts ou
un tableau blanc et peut tre tendue si les uti-
lisateurs font lacquisition doutils additifs.
Enfin, la troisime catgorie est compose de
fonctionnalits spcifiques orientes utilisa-
teur, en adquation avec le modle P2P utilis
par Groove. Les collaborateurs disposent des
mmes ressources et, plus gnralement, du
mme niveau dinformation, du fait de la syn-
chronisation automatique des donnes entre
leurs machines. Ils disposent galement de la
possibilit de travailler en tant connect ou
non, en temps rel ou asynchrone. La gestion
de la prsence et les notifications de lecture
sont deux des caractristiques de la solution
qui dcoulent directement du modle P2P
hybride. Certaines fonctionnalits sappuient
plus particulirement sur la notion de dupli-
cation lidentique de donnes : les liens
hypertextes internes Groove, par exemple,
permettent de copier comme lien, toute infor-
mation de la plate-forme et faire pointer un
membre sur cette information.
Les cas dusages sont aussi nombreux quil
existe de possibilits dagencer un bureau vir-
tuel, mais ces trois catgories de fonctionnali-
ts contribuent un travail collaboratif rel.
Elles incarnent les trois piliers fondamentaux
dune collaboration russie : le partage, la
communication et la prise en compte du fac-
teur humain.
Grer des projets
Groove Virtual Office offre un panel large dop-
portunits de travailler en quipe. Le mode
projet est naturellement privilgi par les utili-
sateurs de cette application, en ce sens quun
bureau virtuel est un environnement Ad Hoc
immdiatement disponible. Sa dure de vie
peut tre variable suivant quil rpond
un besoin de longue ou courte dure. Du
mode projet la gestion de projets, il ny a
donc quun pas que franchit une grande majo-
rit des utilisateurs de Groove.
En effet, la plate-forme se prte aisment cet
exercice, dune part parce quelle fournit un
environnement propice au travail de personnes
complmentaires et, dautre part, parce quelle
met la disposition des utilisateurs les outils
fondamentaux dont ils ont besoin pour mener
leurs projets vers le succs. Citons en ce sens
loutil Meetings et loutil Tasks Manager.
Meetings offre la possibilit de planifier, mener
et acter des runions consensuelles. Tasks
Manager, quant lui, permet de rpartir les
tches dun projet entre les membres dun
bureau virtuel et dautres intervenants ext-
rieurs, si ncessaire.
Lordonnancement et le suivi en temps rel de
tches sont deux des caractristiques com-
munes aux outils Tasks Manager et
TeamDirection Project. Ce dernier nest pas dis-
ponible en standard dans Groove; il peut tre
acquis sparment ou dans le cadre de la ver-
sion project du produit. Cette solution prsen-
te toutes les qualits dun gestionnaire de pro-
jets classique : gestion de tches, attributions
de ressources humaines, diagramme de Gantt,
etc. Elle est naturellement collaborative. En
sinterfaant avec MS Project, elle ouvre de
multiples perspectives. La premire est de sim-
plifier les processus de gestion par une
approche centre sur les hommes et certaines
fonctionnalits cls, la seconde rside dans
lopportunit donne de grer des projets de
manire macro ou microscopique. Enfin, et
cela peut tre fort utile dans le cadre de tches
personnelles, TeamDirection Project se syn-
chronise avec MS Outlook, en sus dinteragir
avec lensemble des autres outils de Groove.
p54/55 groove 18/05/06 18:36 Page 56
F
ocus P2P
57
Programmez n87 juin 2006
Travailler en mobilit et/ou en dconnexion
Le protocole P2P hybride de Groove induit une
duplication des informations entre les diff-
rents membres dun bureau virtuel. La synchro-
nisation des donnes entre les postes clients
est automatique. Groove sadapte, lorsquil en
dtecte, aux bandes passantes disponibles
chez chacun des utilisateurs dun mme grou-
pe. Bnfique plus dun titre aux utilisateurs
sdentaires mais gographiquement disperss,
Groove ne lest pas moins pour tous ceux qui
sont mobiles ou travaillent en dconnexion.
La redondance, la rsilience et la persistance
des donnes sur postes garantissent aux per-
sonnes laccs leurs informations utiles, sans
avoir se connecter un rseau (Internet, LAN,
etc.). Elles peuvent aisment envoyer des mes-
sages, modifier et dposer des ressources docu-
mentaires ou contribuer un forum. Lavantage
de cette solution apparat vident : aucune
manipulation pralable dimport/export ou pro-
cessus de connexion spcifique ne sont nces-
saires pour collaborer en mode asynchrone.
Ladaptabilit de la plate-forme aux bandes
passantes disponibles, grce au serveur relais
(le P2P de Groove peut tre tour tour pur ou
hybride), ainsi que la possibilit offerte aux
collaborateurs de dterminer le niveau et les
priorits de synchronisation de leurs machines
entre elles permettent aux personnels
nomades ou mobiles de continuer travailler
en toute transparence. Ainsi, titre dexemple,
un ordinateur portable et une carte GPRS/EDGE
ou Wi-Fi suffisent ce que les itinrants res-
tent productifs et informs lors de leurs dpla-
cements. Les commerciaux, les tltravailleurs
et les cadres dirigeants apprcient tout parti-
culirement ces qualits de Groove.
Collaborer entre organisations distinctes
Cest un lieu commun : une organisation a
besoin, au quotidien, de travailler avec
dautres structures, ses clients, ses fournis-
seurs, ses partenaires, etc. En consquence,
des passerelles informatiques sont ncessaires
pour faciliter la communication et louvrage
mutuel. Par dfaut, les organisations utilisent
lemail et les systmes hbergs (Extranet, FTP,
portails, etc.) pour travailler ensemble.
En implmentant Groove au sein de leur propre
structure mais galement chez leurs collabora-
teurs extrieurs, les entreprises partagent un
environnement de travail collaboratif complet.
Les canaux dInformation sont connus, simples
et optimiss. Les fonctionnalits sont celles
dont ils ont un besoin oprationnel. Leurs res-
sources documentaires sont en lieu sr et sont
toujours jour. La mise en uvre est rapide.
Plus important encore : la confiance numrique
sapplique. Cross-Firewall et hautement scuri-
s, Groove est le lien idal entre les organisa-
tions qui souhaitent dvelopper et capitaliser
sur leurs relations tout en protgeant leurs pro-
prits intellectuelles.
Etendre la coopration vers la collaboration
Groove sadresse des populations de
moindre taille que celles quadressent les ser-
vices de portails, vocation plus communau-
taire et cooprative. Si un bureau virtuel peut
rassembler un nombre quasi-illimit de colla-
borateurs, sa raison dtre rside dans sa
capacit donner une quipe de contribu-
teurs les moyens de leur action, ensemble, et
sur une thmatique propre au groupe. Nous
lobservons : la majorit des quipes actives
dans un espace partag nexcde que rarement
les 20 personnes. Groove Virtual Office rpond
ces attentes, mais nexclut pas pour autant
une approche apparemment ambivalente o
coexisteraient la coopration et la collabora-
tion. Ouverte aux autres technologies, notam-
ment par lintermdiaire des Web Services, la
solution a pour ambition dapporter une relle
valeur ajoute aux systmes dinformation
existants dans les organisations.
Pour conclure
Larchitecture originale de Groove Virtual Office,
base sur le P2P professionnel hybride, ouvre
de multiples perspectives, tant en terme dusa-
ge utilisateurs quen terme darchitecture pure-
ment technique. Cest pourquoi de nom-
breuses quipes de collaborateurs de par le
monde exploitent ses qualits oprationnelles
pour travailler avec efficience et confiance,
ensemble. Cest galement la raison qui justi-
fie lintrt port par les DSI ces technolo-
gies qui sont la fois administrables, haute-
ment complmentaires et intgrables des
systmes plus classiques. Groove rpond ind-
niablement aujourdhui de multiples attentes
des organisations.
s Fabrice BARBIN
fabrice.barbin@hommesetprocess.com
Responsable Technologies
http://www.hommesetprocess.com
s Cdric BOULLIER
cedric.boullier@hommesetprocess.com
Responsable Marketing & Communication
http://www.hommesetprocess.com
Unique distributeur officiel des technolo-
gies Groove (Groove Networks Inc /
Microsoft Corp) sur le territoire franais,
Hommes & Process fournit des solutions
innovantes et des services doptimisation
du travail en quipe. Retrouvez lactualit
dHommes & Process sur http://blog.hom-
mesetprocess.com
Team Direction Project : un outil intgr Groove Virtual Office ddi la gestion de projets en quipe.
p54/55 groove 18/05/06 18:36 Page 57
F
ocus P2P
58
Programmez n87 juin 2006
Des chercheurs
du laboratoire de Microsoft
travaillent actuellement
sur un projet P2P
rvolutionnaire, Avalanche.
Avalanche : le projet P2P
en gestation chez Microsoft
I
l s'agit d'un projet industriel de grande
envergure : permettre de distribuer effica-
cement l'chelle mondiale des correctifs,
sans pour autant qu'une demande trop forte
ne sature les serveurs (en cas de rustine cri-
tique appliquer par exemple tous les
Windows VISTA installs). Ce modle serait
parfaitement adapt la diffusion de patches
de taille importante, mais permettrait gale-
ment d'identifier clairement et individuelle-
ment chaque fichier circulant sur le rseau. Ce
dernier point est primordial : chaque acteur est
connu, et le contenu reu par un client est
garanti comme tant strictement identique
celui diffus (Microsoft n'autorisera que la cir-
culation de fichiers estampills DRM (Digital
Rights Management)).
A la manire de Bittorrent, Avalanche ralisera
l'change de parties de fichiers, pesant au plus
un centime de l'ensemble, mais dont chacune
des constituantes enferme les informations
ncessaires pour rcuprer "le reste". Le but
du jeu est de rduire la bande passante utilise
en n'changeant pas plusieurs fois le mme
tronon de donnes ; et le dfi relever est de
maintenir la disponibilit du service, mme si
un des morceaux, qui ne serait partag que par
quelques clients, n'tait plus disponible (car les
clients sont arrivs au bout de leur tlcharge-
ment et se sont dconnects). Pour pallier ce
dernier inconvnient, les chercheurs de
Cambridge ont dcid d'encoder chaque tron-
on de manire ce que ceux-ci dtiennent le
mme poids, la mme importance en terme de
reconstitution du fichier d'origine.
Une meilleure performance
Au dpart, le problme pos est le suivant :
comment diffuser un patch des millions de
clients sans que cette opration soit lente,
onreuse et non adaptative la charge ? Si
vous avez des ressources limites (vous pos-
sdez un nombre fini de fermes de serveurs),
et que votre demande croit subitement de
manire non prvisible, la cration d'un rseau
P2P permet de suivre cette demande de
manire linaire. Plus vous avez de "clients"
et plus votre diffusion rsistera linairement
la demande : avec ce modle, vous ne craignez
plus l'effondrement du service, bien au
contraire, la charge engendre un effet positif.
Bref, chaque PC aide l'autre, chaque "client"
devenant un nouveau serveur, la capacit du
service augmente au fur et mesure de la
charge et ce, moindre cot.
Les bnfices : augmentation drastique de la
vitesse, adaptation illimite la charge, cot
trs faible, et mise disposition d'un nombre
restreint de serveurs noeuds. Les inconv-
nients : difficult d'assurer 100% un tl-
chargement sans interruption de service
(risque rel qu'au bout de x tronons tlchar-
gs, le suivant soit momentanment indispo-
nible), difficult de gestion du rseau en l'ab-
sence de vritable serveur central d'adminis-
tration, bande passante (de diffusion) variable
en fonction du nombre de clients (un pair "va
et vient" sans avertissement), besoin de
recourir des algorithmes plus sophistiqus.
Le concept trouv est un P2P swarming gran-
dement amlior. Ouvrons une petite paren-
thse pour expliquer ce terme. Le swarming est
la possibilit d'atteindre un but sans pour
autant qu'une entit supervise ou coordonne
l'ensemble des oprations. Il n'y a pas de "lea-
der" qui ordonne les actions de chacun. Au
contraire, le Swarming utilise des lments
dynamiques discrets, aux ressources limites,
dans le cadre d'un systme distribu et dcen-
tralis. Le problme du comportement des
"pairs" d'un rseau P2P est trop complexe
modliser de manire classique, d'o le recours
au swarming. Le cahier des charges n'est plus
d'assurer 100% de connectivit, mais de tendre
vers les 100% (on part du principe qu'un petit
pourcentage d'chec est acceptable). Chaque
client Avalanche rclamera ses morceaux de
Un fichier DRMa pour but
de restreindre la diffusion par copie d'un
contenu numrique en vue de s'assurer
que les droits d'auteur ne sont pas
bafous. Dans ce cadre, un fichier DRM
cadenasse par protection le contenu de
manire , par exemple, limiter le nombre
de copies possibles sur diffrents sup-
ports, le nombre de lectures autorises, la
dure d'coute, etc.
Avec Avalanche chaque utilisateur reoit des combinaisons et en gnre de nouvelles partir des don-
nes qu'il a dj en sa possession.
P
h
o
t
o

:


L
a
r
r
y

W
i
l
l
i
a
m
s
/
z
e
f
a
/
C
o
r
b
i
s
p58-59 avalanche 18/05/06 18:34 Page 58
F
ocus P2P
manire linaire (dans un ordre prdtermin,
mais dynamique), et chacun de ceux-ci contien-
dra une sorte de combinaison "ADN" de l'en-
semble. Autrement dit, chaque tronon tl-
charg pourra se substituer un autre, et pour
y parvenir, cet encodage ADN sera dynamique
et ractualis en permanence. Pour reconstituer
le fichier d'origine, le client demandeur n'a
plus besoin de tlcharger l'ensemble des par-
ties. Le temps de rencodage et de dcodage
des parties a t calcul pour n'occuper que
4% du temps total de tlchargement. Plus
prcisment, un Pentium III, cadenc
650MHz, et quip de 512 Mo de RAM, mettra
5 secondes pour rencoder 100 parties d'un
ensemble de 10 Mo. Et la mme machine pren-
dra 3 minutes 38 secondes pour rencoder 100
blocs d'un ensemble de 200 Mo.
Avec cette technique, il se peut qu'au bout de
90% de donnes tlcharges, le peer soit
"bloqu" en attente d'un bloc, mais ce ph-
nomne sera moindre que dans le cas d'un
tlchargement P2P classique, car il n'aura
plus de bloc considr comme "trs rare".
D'aprs ses concepteurs, la vitesse obtenue au
final sera de 20 30% suprieure un rseau
P2P classique comme celui de Bittorrent.
Si le serveur principal (celui qui dtient l'ori-
gine le fichier dans son ensemble) devient
inaccessible soudainement, mais qu'il a pu
dj desservir chaque partie seulement 10%
des clients, tous les utilisateurs pourront
reconstituer le fichier d'origine. Entre autres
amliorations, Avalanche utilise aussi un
concept de plus en plus rpandu dans le P2P
qui est le tlchargement en parallle.
Une nouvelle gnration de P2P
En rsum, nous ne sommes peut-tre pas loin
d'une rvolution en matire de P2P. Grce ce
rencodage dynamique en ligne, cette tech-
nique amliore de P2P swarming et de tl-
chargement en parallle, il deviendra possible
de diffuser des parties d'un fichier de faon
organise (suivant des combinaisons
linaires). Ces constituantes s'accompagneront
d'un libell dcrivant les paramtres ("ADN")
ncessaires la recomposition de l'ensemble.
Chaque utilisateur recevra des combinaisons et
en gnrera de nouvelles partir des donnes
qu'il a dj sa disposition. Au final, un utili-
sateur n'aura pas besoin de la totalit des
fragments, mais de la totalit des combinai-
sons gnres (chaque combinaison tant
indpendante d'une autre). Avalanche recons-
truira le fichier original partir de ces combi-
naisons. C'est gnial sur papier, mais pour
l'instant purement thorique (Bram Cohen,
crateur de BitTorrent, a qualifi Avalanche de
"vaporware" "dont la prtendue supriorit ne
serait base que sur des simulations"). Les
sous-entendus techniques sont nombreux : par
exemple, peu importe si un des pairs qui
contenait au dpart une partie se dconnecte,
cela n'entamera en rien les performances et la
diffusion des prochains blocs. En outre, la
bande passante est optimise, vu que les frag-
ments ne sont plus distribus seuls, mais sui-
vant des combinaisons, aucun n'tant jug pri-
mordial pour la reconstitution de l'ensemble.
Le risque de voir un tlchargement ne pas
aboutir existe encore mais est considrable-
ment rduit. C'est un peu trop beau pour tre
vrai, mais notre avis cela finira par aboutir,
tellement les avantages en milieu industriel
sont nombreux. Et les applications ne s'arrte-
ront pas la distribution de patches : certains
imaginent dj une possible utilisation dans le
cadre d'une location de film la demande via
Internet. Et nous ne sommes sans doute plus
trs loin du temps ou des API seront dispo-
nibles pour les dveloppeurs. Les enjeux sont
trop normes pour que Microsoft ne soutienne
pas cette voie.
s Xavier Leclercq - Xavier.Leclercq@programmez.com
Avalanche est plus robuste qu'un systme P2P
classique.
TOUT NOUVEAU
TOUT BEAU
Lactu,
Les services,
Linteractivit,
Les Blogs,
Les archives du Magazine
www.programmez.com
P
h
o
t
o

:


L
a
r
r
y

W
i
l
l
i
a
m
s
/
z
e
f
a
/
C
o
r
b
i
s
p58-59 avalanche 18/05/06 18:34 Page 59
La technologie NX ou Execute Disable Bit est
cense empcher que du code malveillant ne sexcute
en profitant dun " buffer overflow ".
Elle sappuie la fois sur le systme dexploitation et
sur une nouvelle fonction matrielle incluse
dans les processeurs.
Les nouvelles armes anti-virus NX et DEP.
P
our combler cette faille de scurit (le
buffer overflow), une nouvelle techno-
logie nomme DEP (Data Execution
Prevention) a t mise au point il y a environ
deux ans. Cette technologie sappuie sur deux
parties, lune software, implante directement
dans le systme dexploitation comme cela a
t le cas avec le Service Pack 2 de Windows
XP et lautre matrielle, c'est--dire dans le
cur mme du processeur. Cette partie mat-
rielle se nomme NX pour No execute chez AMD
et Transmeta et Execute Disable Bit chez Intel.
Son but est simplement dempcher lexcu-
tion de code lorsque celui-ci semble mal-
veillant.
Une granulation fine
au niveau de la page mmoire
Pour cela, on dfinit dabord pour chaque pro-
cessus, des zones mmoires dans lesquelles le
code peut sexcuter et des zones normale-
ment utilises pour des donnes dans les-
quelles il ne le peut pas. Cela se fait en pla-
ant des marques sur les pages de mmoire
virtuelle en modifiant un bit de la PTE (Page
Table Entry). Ensuite, si une application tente
dexcuter du code dans la page ainsi tague,
le processeur stoppe aussitt son excution et
gnre une exception. Celle-ci est alors rcu-
pre par le systme dexploitation qui peut la
traiter de plusieurs manires diffrentes. Il
peut soit simplement linscrire dans un fichier
de log, soit envoyer un message de violation
daccs lintention de lutilisateur, soit dans
les cas les plus graves rebooter directement
lordinateur. Cette mthode peut paratre vio-
lente, mais elle est prfrable une infection
virale puisquelle causera probablement moins
de dgts. Pour que cette fonction soit utili-
sable, il faut que le processeur tourne en
mode PAE (Physical Adress Extension). Pour
lheure, tous les processeurs ne disposent pas
encore de cette fonction, il faut vrifier auprs
des fondeurs.
Les quatre
commutateurs du DEP
Ct systme dexploitation maintenant, et
sous Windows XP SP2, la configuration du DEP
seffectue partir de quatre commutateurs pla-
cs dans le fichier boot.ini. Cest la valeur
OptIn qui est slectionne par dfaut. Il est
possible pour des raisons de compatibilit, de
crer une liste dapplications qui ne seront pas
soumises au DEP en basculant sur le mode
OptOut. Cela se fait par le Panneau de confi-
guration/Performance et maintenance/Ajuster
les effets visuels (a ne se devine pas !).
Sous longlet Prvention de lexcution des
donnes, des boutons radios permettent de
slectionner les modes OptIn ou OptOut et
dtablir la liste des applications qui ne seront
pas soumises au DEP. Cette fentre permet
galement de vrifier si la fonction NX est pr-
sente, ou pas dans le processeur.
Problmes avec
les compilateurs JIT et certains
pilotes de priphriques
Les applications qui ne supportent pas le DEP
sont en effet peu nombreuses. Il sagit essen-
tiellement de celles qui gnrent du code de
manire dynamique, ce qui videmment per-
turbe le systme de protection. Parmi celles-ci,
il y a les compilateurs juste temps et certains
pilotes de priphriques. Pour corriger ce pro-
blme, il suffira de donner une permission
explicite dexcution au code qui a t gnr.
Le dveloppeur qui dsire implmenter cette
fonction pourra dterminer si le processeur en
est capable en lisant simplement son CPUID.
En mode utilisateur, lexception gnre par le
DEP provoque une violation daccs STA-
TUS_ACCESS_VIOLATION (0xc0000005). Le
premier paramtre ExceptionInformation de la
structure EXCEPTION_RECORD contient le type
de la violation daccs qui a eu lieu et dans le
cas dune violation dexcution il prend la
valeur 8. Dans la majorit des processus, lex-
ception sera " unhandheld " et le rsultat sera
simplement un arrt du processus. En mode
Kernel, les diffrentes parties de la mmoire ne
peuvent pas tre slectivement actives ou
dsactives.
Sur la version 32 bits de Windows, le DEP sap-
plique seulement la pile par dfaut. Les
pilotes de priphriques nont plus le droit de
lancer lexcution de code partir de la pile
lorsque le DEP est activ et si cela se produit,
une violation daccs dclenchera un reboot
(bugcheck) 0xFC: ATTEMPTED_EXECUTE_OF_
NOEXECUTE_MEMORY.
Ce nouveau couple NX/DEP ne reprsente pas
larme absolue, mais il devrait tout de mme
empcher un grand nombre dinfections virales
de se produire.
s Alain KERHUEL
T
echnologie
60
Programmez n87 juin 2006
Par le Panneau de configuration, lutilisateur peut
basculer du mode OptIn au Mode OptOut avec les
bouton radio et dans ce dernier mode, lister les
applications qui chapperont au DEP.
p60 work 18/05/06 18:36 Page 60

Offre limite,
valable jusquau
30 juin 2006
Le renvoi du prsent bul l eti n
i mpl i que pour l e souscri pteur
l'acceptation pleine et entire de
toutes les conditions de vente de
cette offre.
Conformment la loi Informatique
et Li berts du 05/01/78, vous
disposez d'un droit d'accs et de
rectification aux donnes vous
concernant.
Par notre i ntermdi ai re, vous
pouvez tre amen recevoir des
propositions d'autres socits ou
associations.
Si vous ne le souhaitez pas, il vous
suff i t de nous cri re en nous
prcisant toutes vos coordonnes.
P
R
O
G

8
7
s M. s Mme s Mlle Entreprise : ........................................................................................ Fonction : ...................................................
Nom : ........................................................................................ Prnom :....................................................................................................................................
Adresse : .........................................................................................................................................................................................................................................
Code postal : ............................................... Ville : ...................................................................................................................................................................
Tl : ........................................................................................ E-mail : ....................................................................................................................................
s Je joins mon rglement par chque lordre de Programmez !
s Je souhaite rgler rception de facture
A remplir et retourner sous enveloppe affranchie :
Programmez ! - Service Abonnements - 22 rue Ren Boulanger - 75010 Paris.
abonnements.programmez@groupe-gli.com
LE MAGAZI NE DU DVELOPPEMENT
Le magazine qui parle votre langage
-
3
1
%
OFFRES
45

seulement !
(Prix pour la France Mtropolitaine)
39
(Prix pour la France Mtropolitaine)
Au lieu de 65 , prix de vente au numro.
s ABONNEMENT 1 an (11 numros) au prix de 45 TTC. Tarif France mtropolitaine.
Tarifs hors France mtropolitaine : CEE et Suisse : 51,83 - Algrie, Maroc, Tunisie : 55,95 - Canada : 64,33 - Tom : 79,61 - Dom: 62,84 - Autres : nous consulter
s OFFRE TUDIANT 1 an (11 numros) au prix de 39 TTC. Offre limite la France mtropolitaine.
Photocopie de la carte dtudiant obligatoire

Un an de veille technologique et dinformation


permanente, en bnficiant de
Ne manquez
plus aucun
numro,
abonnez-vous
aujourdhui !
20,45
d CONOMIE
OUI, je mabonne ! ou abonnement en ligne : www.programmez.com
SPCIALES :
TUDIANTS :
joignez votre abonnement la photocopie de votre carte dtudiant
(abonnement par voie postale)
QUIPES :
partir de 3 abonnements dans la mme socit : abonnement en ligne obligatoire
En ligne
www.programmez.com
3
Numros GRATUITS
p60 work 18/05/06 18:37 Page 61
T
echnologie
62
Programmez n87 juin 2006
W
indows Workflow Foundation (WF) fait partie intgrante de
WinFX, au mme titre que Windows Presentation Foundation
(WPF), Windows Communication Foundation (WCF) et WinFS
(le futur systme de stockage qui tarde apparatre, ndlr). WinFX est,
lheure actuelle, en version Bta, mais sera disponible lors de la sortie
dOffice 2007 prvue pour la fin de cette anne (disponibilit non enco-
re confirme, ndlr). Cependant, une licence Go-live permet lutilisation
immdiate de WF et de WCF en environnement de production, et garan-
tit que Microsoft napportera plus de gros changements dans les mois
qui viennent.
Contrairement un produit comme Biztalk Server, Workflow Foundation
se prsente comme une brique applicative venant se greffer directement
au cur de vos applications.
A la diffrence des solutions dj existantes sur le march, le workflow
ne dpend pas dun produit ou dun serveur pour fonctionner, il sera
partie intgrante de votre application. Un workflow WF sexcute donc
dans votre application, que ce soit une application console, un service
Windows, ou une application web. Microsoft fournit juste le " bas
niveau " et non un environnement complet. Pour rappel, un workflow
est un ensemble dactions ou tapes sexcutant dans un ordre prd-
fini. Ces actions peuvent senchaner en fonction de conditions, dinter-
actions avec des processus informatiques ou en fonction dinteractions
humaines.
Dans Workflow Foundation, ces tapes sont reprsentes par des com-
posants appels " activits ". Microsoft en fournit par dfaut plus dune
trentaine : excution de code, boucles et condition, appel de services
Web, de workflow ou de mthodes externes, timer, gestion de transac-
tions et derreurs Vous pouvez trs facilement complter cette liste
avec vos propres activits, le dveloppement de celles-ci tant globale-
ment similaire au dveloppement de composants .NET : hritage dune
classe de base, et surcharge de mthodes.
Plusieurs modles de workflow
Workflow Foundation propose deux types de workflows : procdural ou
vnementiel. Les premiers sont dits squentiels ou de flux, dans les-
quels vous allez dcrire votre processus par un enchanement prdfini
(une logique de navigation de pages Web, une suite dexcution dappli-
cations externes). Les workflows vnementiels sont des automates
tats finis, plus utiles lors dinteractions humaines (comme le suivi dune
commande).
Dans un automate tats finis, lenchanement des oprations nest pas
dterministe, le workflow est compos de lensemble des tats possibles
ainsi que des rgles de transition dun tat lautre.
Services additionnels au moteur de Workflow
WF sexcutant dans vos applications, vous allez devoir guider le moteur
de workflow pour quil sadapte votre mode de fonctionnement. Pour
ce faire, vous pouvez remplacer ou ajouter des services techniques dans
le moteur de workflow.
De manire similaire aux providers dASP.NET 2.0, ces services suivent
un modle de dveloppement extensible.
Par exemple, pour assurer un suivi complet du cheminement dexcution
de vos workflows, une API est prsente dans le SDK. Pour fonctionner,
celle-ci a besoin dun service dit de " tracking ", que vous allez devoir
activer. Cette activation peut se faire, soit de manire imprative dans le
code de votre workflow, soit de manire dclarative dans un fichier de
configuration.
De base, un service de gestion de tracking en base SQL est fourni, mais
ce modle tant compltement extensible, vous allez pouvoir crire, uti-
liser et faire voluer dans le temps vos propres services sans impact
direct sur le fonctionnement de votre workflow. Parmi les services les
plus utiles, en plus de la gestion de suivi, on retrouve un service de per-
sistance qui permet dassurer la reprise des workflows en cas dincident
directement un tat pralablement enregistr, et un service de com-
munication utilis pour permettre lapplication hte de pouvoir chan-
ger des informations avec vos workflows.
Dfinition de workflow
Pour pouvoir modliser un workflow avec Visual Studio 2005, deux pr
requis sont ncessaires :
- Avoir WinFX install sur le poste de dveloppement,
- Installer les extensions de Visual Studio 2005 pour Windows Workflow
Foundation.
Un exemple de cration de workflow
Pour illustrer notre propos, imaginons un workflow de validation de
cration de compte utilisateur dans lequel un site web comporte une
inscription en ligne.
Lors de lenregistrement dune personne, celle-ci reoit un Email de vali-
dation contenant un lien, et lorsquelle clique sur celui-ci, son compte
est valid. Si au bout de 5 jours, elle na pas cliqu sur le lien, un e-mail
de notification est r-envoy et le compte est supprim. La ncessit de
modliser un workflow est tout fait adapte ce genre de cas.
Visual Studio 2005 propose plusieurs templates de base :
- Sequential Workflow Library, une DLL qui contiendra des workflows
qui pourront tre excuts/hbergs par une application tierce (appli-
cation Windows, service, application Web...).
Windows Workflow Foundation :
une machine flux
Dici la fin de lanne, Microsoft mettra la disposition des dveloppeurs Windows
Workflow Foundation, une solution gratuite pour faciliter lintgration de workflows dans
leurs applications .NET.
p60 work 18/05/06 18:37 Page 62
T
echnologie
63
Programmez n87 juin 2006
- State Machine Workflow Library, identique la version squentielle,
mais pour des automates tats.
- Sequential Workflow Console Application, qui permet de crer une
application console qui vous permettra de crer vos workflows et de
les hberger.
- State Machine Console Application, pour modliser des workflows en
tant qu automates tats hbergs dans une application console.
- Workflow Activity Library, pour dfinir vos propres composants.
- Empty Workflow Project, un projet vierge permettant de raliser vos
projets selon vos besoins.
Dans notre cas, lautomate tats semble le plus adapt, les diffrents
tats tant : " demande de cration de compte " >> " compte cr " >>
" fin ", sachant que pour passer de ltape " compte cr " ltape
" fin ", le compte utilisateur doit tre valid dans un certain intervalle
de temps, sous peine dtre supprim.
Une fois le modle dautomate tats slectionn, Visual Studio ouvre
un designer permettant de dposer les diffrentes activits dans le but
de dfinir le cycle dexcution de notre workflow.
Il est noter quun workflow peut tre dcrit de plusieurs faons : soit
de manire uniquement dclarative dans un fichier XOML, soit de mani-
re mixte dclarative (XOML) / imprative (C#/VB), soit uniquement de
faon imprative. Dans notre cas, le workflow est dfini uniquement par
code et reprsent par une classe clate dans deux fichiers, un pour
le designer et un pour le code utilisateur (comme pour une application
winforms).
La premire tape est donc, en mode design, de glisser/dposer les dif-
frentes activits reprsentant notre workflow, de la bote outils vers
le designer. Chaque tape tant constitue dun enchanement dactivi-
ts, il est ncessaire de dtailler les actions entreprendre avant, pen-
dant et aprs leur excution.
Notre premire activit va permettre de dmarrer une instance de work-
flow, c'est--dire dinitialiser un cycle dexcution. Si dix utilisateurs
demandent chacun lexcution de cette activit, nous aurons dix ins-
tances de workflow en parallle en mmoire, ces workflows pouvant
tre persists dans une base de donnes et dchargs de la mmoire,
via le service de persistance que nous avons abord prcdemment,
sils sont inactifs durant un temps trop important (ceci, dans le but de
prserver les ressources mmoire de votre serveur).
Il est donc ncessaire, ds le dbut, de dfinir la mthode de commu-
nication entre le workflow et lapplication utilisatrice en dfinissant un
contrat. Deux mthodes sont courantes :
- soit en dfinissant un service dchange de donnes reprsent par
une classe de donnes et des gestionnaires dvnements, galement
appels " handlers "
- soit en utilisant des services Web (et dans ce cas en utilisant IIS pour
hberger le workflow).
- Soit terme, en utilisant Windows Communication Foundation
Dans notre cas, nous allons utiliser les services Web qui permettent une
interaction facile et une communication simplifie avec tout type dap-
plication.
Il nous faut, au pralable, dfinir les mthodes utilises par notre workflow :
namespace WorkflowLibrary1
{
public interface ICommunication
{
Guid DemandeCreation(string nom, string email);
bool DemandeValidation(string instance);
}
}
Notre contrat de communication tant dfini, il ne reste plus qu lin-
tgrer dans notre automate tats, pour permettre le passage dune
tape une autre.
Dans chaque tape, nous allons donc rajouter des activits de type
"EventDriven" afin de crer / rveiller nos instances de workflow en
fonction dun vnement prcis, dans notre cas, le fait que le service
Web soit appel par une application.
Chaque activit EventDriven est un mini workflow squentiel, commen-
ant par une activit dcoute et se terminant par une activit de chan-
gement dtat.
Par exemple, dans notre EventDriven de demande de cration de comp-
te, nous allons obtenir la squence suivante :
Une activit reprsentant le service web qui coute (la signature de
celui-ci tant dfinie dans linterface prcdent, par la mthode
"DemandeCration"), va rcuprer le nom et lEmail du demandeur
puis les stocker dans des variables de linstance.
Une activit de code qui va donc excuter une mthode .NET qui cre-
ra le compte, par exemple.
p60 work 18/05/06 18:37 Page 63
T
echnologie
64
Programmez n87 juin 2006
Une activit reprsentant la rponse du service web, toujours en fonc-
tion de sa signature (ici on retourne lidentifiant unique " guid "
reprsentant linstance en cours).
Et une activit de changement dtat, afin de passer ltape suivante.
Toutes les tapes dun automate tats vont
ainsi pouvoir tre dtailles avec des traite-
ments plus ou moins complexes, afin dobtenir
le schma dexcution global du workflow.
Une fois la modlisation de lautomate tats
termine, et la DLL de cette dernire compile,
il nous reste publier et hberger celle-ci.
Etant donn que nous utilisons des services
web pour communiquer, il devient vident duti-
liser une application web pour hberger notre
workflow. Visual Studio 2005 est dailleurs
capable de crer automatiquement cette appli-
cation web, en faisant un clic droit sur la DLL
contenant le workflow, et en slectionnant lop-
tion " Publish as Web Service ". Celle-ci va crer
automatiquement lapplication web, la prconfi-
gurer (web.config) et crer les diffrents services
web utiliss par notre workflow.
Notre workflow peut ainsi tre test directe-
ment depuis un navigateur web en appelant
les services web : un premier appel pour crer
une instance de workflow en spcifiant un nom
et un prnom, et un deuxime appel pour vali-
der la cration.
Attention toutefois, une application web ayant
une dure de vie limite, elle peut sarrter en
cas de non utilisation suivant le paramtrage
qui aura t effectu sur le serveur Web. Nos
instances de workflow tant charges en
mmoire de la dite application, il est ncessai-
re de prvoir un systme de persistance afin
de grer le chargement / dchargement de nos
instances dans une base de donnes ou un
fichier. Par dfaut, un service de persistance pour SQL Server est four-
ni, il ne reste donc plus qu lactiver.
Cette activation se droule en deux tapes :
- Prparer une base de donnes, SQLExpress ou SQLServer 2000/2005
en excutant les scripts de cration de schma fournis et prsents dans
le rpertoire " C:\Windows\WinFX\3.0\Windows Workflow
Foundation\SQL\EN ".
- Paramtrer lapplication web pour activer la persistance, au niveau du
fichier de configuration " Web.config ".
Par exemple, pour une base SQLExpress, le paramtrage sera le suivant :
<configuration>
<configSections>
[.]
</configSections>
<WorkflowRuntime Name="WorkflowServiceContainer">
<Services>
<add type="System.Workflow.Runtime.Hosting.SqlWorkflowPersistence
Service, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35" connectionString="Data Source
=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Inte
grated Security=True;User Instance=True"
UnloadOnIdle="True" LoadIntervalSeconds="1"/>
</Services>
</WorkflowRuntime>
[.]
</configuration>
Nous nous contenterons ici dactiver un service, de type
"SqlWorkflowPersistenceService" utilisant une base SQLExpress locale,
persistant chaque fois que le workflow devient inactif (UnloadOnIdle)
et se mettant jour toutes les secondes. Si vous ne possdez pas
SQLExpress ou SQL Server, il est possible de crer votre propre service
de persistance qui irait crire ltat des workflows dans une base de
donnes Oracle ou MySql, ou bien sur le systme de fichiers du serveur.
A ce niveau, notre workflow est dfini, hberg et fourni des services
web consommables par tout type dapplication. Il ne resterait plus main-
tenant qu crire lapplication qui appellerait notre service Web, pour
activer notre workflow depuis nimporte o dans le monde.
Conclusion
Windows Workflow Foundation offre donc un modle de dveloppement
de workflows applicatifs, rapide mettre en uvre et surtout totale-
ment extensible par le dveloppement de vos propres activits ou de
vos propres services. Microsoft lutilisera dailleurs dans Office System
2007 et notamment, Windows SharePoint Services v3 et Office
SharePoint Server 2007, ainsi que dans les prochaines versions de
Biztalk Server.
Ressources
Site officiel, en anglais: www.windowsworkflow.net
Site communautaire, en Franais: http://www.workflow-foundation.com
Florent SANTIN et Stphane CORDONNIER
p60 work 18/05/06 18:37 Page 64
G
lassFish est avant tout un serveur dapplication open source pre-
nant en charge toutes les spcifications Java EE 5. Il permet dj
de tester toutes les nouveauts de Java EE 5 en avant-premire.
Bien sr, celles-ci ne sont pas encore entirement finalises et il y a des
risques que les applications cres actuellement pour Java EE 5 ne fonc-
tionnent plus si les spcifications viennent tre modifies. Ce nest pas
le seul serveur dapplication open source, mais cest un des seuls
avoir trs vite permis de tester les nouveauts de Java EE 5. Toutes les
entreprises qui souhaitent migrer vers cette nouvelle spcification ont
ainsi loccasion de pouvoir commencer toute une srie de tests afin de
faciliter la future volution de leurs applications.
Support pour Java EE 5
Java EE 5 est une tape majeure pour ldition entreprise de Java. On
notera plus particulirement larrive trs attendue dEJB 3 qui va per-
mettre de simplifier lutilisation dEJB, jusque-l trs complexe. La pos-
sibilit davoir une implmentation de Java EE 5 est le meilleur moyen
davoir un retour des utilisateurs. Cela permet de tester, damliorer les
spcifications de Java EE 5 avant leur finalisation. A lheure actuelle,
GlassFish supporte dj les spcifications : JSF 1.2, JSP 2.1 et les Servlet
2.5. GlassFish est disponible pour les plates-formes Windows, Linux,
Mac OS X et SunOS, ce qui permet dlargir au maximum le champ de
testeurs.
Toute une srie de tests sera disponible prochainement : la Java EE 5
Compatibility Test Suite (CTS). La version actuelle destine J2EE 1.4
contient plus de 5 000 tests et il est prvu den avoir plus encore pour
Java EE 5. Cette suite de tests est trs importante, cest elle qui va per-
mettre de vrifier que le code du serveur est conforme aux spcifica-
tions et quil ny a aucun bug.
Une " javadoc " pour le projet est disponible ladresse :
https://glassfish.dev.java.net/nonav/javaee5/api/s1as-javadocs/index.html
Ouverture du code
Sun poursuit sa politique douverture du code en permettant la com-
munaut de reprendre le code source de son serveur dapplication : Sun
Java System Application Server Platform Edition 9. GlassFish figure parmi
les nombreux projets open source hbergs sur java.net. Oracle contri-
bue galement leffort en fournissant le code de TopLink, une archi-
tecture permettant de prendre en charge la persistance des donnes en
objet-relationnel. Ceci permet la fois de construire une application sur
une base solide mais aussi de pouvoir faire voluer ce code, " ferm "
jusqualors. Ainsi, tout le monde peut apporter sa contribution en pr-
venant ds la dcouverte dun bug ou, encore mieux, en soumettant
directement un patch.
Cette ouverture de code se faisant sous licence CDDL
(http://www.sun.com/cddl/CDDL_why_details.html), elle permet de voir,
dutiliser et de modifier le code de GlassFish, puis de le distribuer ou
de lutiliser en production. Par contre, dans le cas o il y a redistribu-
tion du code aprs modification, il faut sassurer que le serveur passe
encore tous les tests de compatibilit.
GlassFish en pratique
Installation et lancement
Attention : il est ncessaire de disposer de J2SE 5 pour pouvoir instal-
ler et excuter GlassFish. Cette version de Java se tlcharge ladres-
se suivante : http://java.sun.com/j2se/1.5.0/download.jsp
Le tlchargement de GlassFish se fait, quant lui, partir de ladres-
se suivante :
https://glassfish.dev.java.net/public/downloadsindex.html
Pour avoir une version stable, choisissez une " Milestone builds ". Il
sagit dune tape majeure dans le dveloppement de GlassFish : cest
une version qui a t teste, linverse dune " nightly build " qui vient
dtre compile et dont la stabilit na pas t vrifie.
La suite de cet article est base sur la version " GlassFish Project -
Milestone 5 - b32g " qui peut tre tlcharg ladresse suivante :
https://glassfish.dev.java.net/downloads/12Feb06.html
Une fois le fichier jar tlcharg, excutez la commande :
java -Xmx256m -jar filename.jar
Cela va crer un nouveau rpertoire nomm " glassfish ". Ce rpertoire
contient le code source de GlassFish ainsi quAnt (http://ant.apache.org/),
un programme qui permet de compiler le projet.
cd glassfish
ant -f setup.xml
A la fin de lexcution dAnt il doit y avoir un message : " BUILD SUC-
CESSFUL ".
Le serveur est maintenant prt tre lanc. Pour cela, rendez-vous dans
le rpertoire " bin " et excutez la commande :
asadmin start-domain domain1
A la fin de la commande, le message " Domain domain1 is ready to
receive client requests. Additional services are being started in the back-
ground. " doit apparatre.
Pour vrifier que le serveur fonctionne bien, rendez-vous ladresse :
http://localhost:8080/
GlassFish
Serveur dapplications Java EE 5
Le projet GlassFish a t lanc en juin 2005 par Sun dans le but de crer un serveur dappli-
cation Open Source qui soit dvelopp par la communaut. Ce projet sinscrit dans la politique
de Sun : tre proche du client, son coute, prt ragir pour tenir compte de ses remarques
et tre toujours en accord avec ses besoins.
P
ratique
Niveau
j2ee
facile avanc expert
65
Programmez n87 juin 2006
p65/67 GlassFish 18/05/06 18:39 Page 65
Vous devriez voir apparatre la fentre :
Configuration et dploiement
La configuration du serveur se fait via une interface Web accessible
ladresse http://localhost:4848
Par dfaut, le compte admin du domaine est :
Login : admin
Pass : adminadmin
Cette application dadministration rappelle celle de Sun Application
Server. La page principale permet daccder aux tches les plus cou-
rantes, telles que :
Voir les logs,
Dployer un ear/war,
Crer un connecteur JDBC,
Si vous souhaitez changer le mot de passe administrateur ou crer
dautres comptes, rendez-vous dans la partie " Application Server " et
cliquez sur " Password ".
partir de cette page, il est possible de modifier le mot de passe du
compte actuel, ou de crer de nouveaux utilisateurs.
Tout ce qui est configuration du serveur se passe exactement comme
pour le serveur " Sun Java System Application Server Platform Edition 9".
La documentation de Glassfish renvoie dailleurs vers celle de Sun.
Pour dployer une application, il suffit de se rendre dans la partie
"Application Server" (sur la gauche) puis de cliquer sur " Enterprise
Application ".
A partir de l, il est possible de prciser quel fichier ear vous souhaitez
dployer.
NetBeans
Netbeans 5.5 permet dutiliser un serveur dapplication Java EE 5 et plus
prcisment GlassFish. Cette version de Netbeans nest pas encore fina-
lise, mais elle peut tre installe.
Configuration
Nous allons voir comment configurer Netbeans pour utiliser GlassFish et
comment crer une application J2EE 5 sous NetBeans.
Dans NetBeans, slectionnez le menu " Tools > Server Manager ".
Dans la fentre qui apparat, ajoutez un nouveau
serveur en cliquant sur " Add Server ".
Pour le champ " Server ", choisissez " Sun Java System Application
Server ". Puis, il suffit de renseigner le rpertoire dans lequel est ins-
tall GlassFish. Enfin, la dernire fentre vous demande le login et le
pass admin de ladministrateur du domaine.
Projet HelloWorld
Maintenant que GlassFish est configur, nous allons crer un nouveau
projet. Pour cela, slectionnez le menu " File > New Project " et choi-
sissez " Enterprise > Enterprise Application ".
Puis dans le champ " Server ", slectionnez le serveur GlassFish que
nous avons configur prcdemment. Pour la version de J2EE il faut
choisir " Java EE 5 ".
EJB Session
Nous allons crer un EJB Session. Pour cela, faites un clic droit sur le
module EJB puis " New > Session Bean ". Le bean se nommera
"HelloBean", il sera de type " Remote " uniquement et doit se trouver
dans le package " com.labosun ".
Voici le code des 2 fichiers Java :
HelloWorldRemote.java
package com.labosun;
public interface HelloWorldRemote {
public String sayHello();
}
HelloWorldBean.java
package com.labosun;
P
ratique
Niveau
j2ee
facile avanc expert
66
Programmez n87 juin 2006
p65/67 GlassFish 18/05/06 18:39 Page 66
import javax.ejb.*;
@Stateless()
public class HelloWorldBean implements com.labosun.HelloWorldRemote {
public String sayHello() {
return "Hello World";
}
}
Remarquez lutilisation de lannotation " @Stateless() " qui permet de
prciser le type du bean (ici, un Session Bean Stateless).
Web Module
Pour que la partie Web utilise notre module EJB, il est ncessaire dajou-
ter le module EJB en tant que librairie du module Web. Dans le modu-
le Web, faites clic-droit sur le rpertoire "Libraries", puis "Add Library".
Il faut ensuite slectionner le module EJB du projet.
Nous allons utiliser JSF (Java Server Faces) pour
crer une page Web capable dutiliser notre
Session Bean. Il faut configurer le projet pour quil
utilise JSF. Pour cela, faites un clic-droit sur le
module Web puis " Properties ". Cliquez sur
"Frameworks" puis " Add ", choisissez " Java
Server Faces ". Cela va automatiquement crer le
fichier " faces-config.xml " qui sert configurer
JSF et une page JSF nomme " WelcomeJSF.jsp ".
Nous allons maintenant crer un JavaBean pour interagir avec le Session
Bean. Pour cela, faites clic-droit sur le module Web puis " New >
File/Folder ", choisissez ensuite " Web > JSF Managed Bean ". Nous
allons nommer notre bean " HelloBean ", que nous placerons dans le
package " com.labosun.beans ".
Pour que ce JavaBean utilise
notre Session Bean, nous allons
ajouter un champ de type
"HelloWorldRemote" qui va
automatiquement tre instanci
en tant que Session Bean grce
lannotation " @EJB() " (prin-
cipe dinjection).
HelloBean.java
package com.labosun.beans;
import com.labosun.HelloWorldRemote;
import javax.ejb.EJB;
public class HelloBean {
@EJB() HelloWorldRemote hello;
public HelloBean() {
}
public String getHello() {
return hello.sayHello();
}
}
Une fois que le bean est cr, il ne nous reste plus qu modifier la page
" welcomeJSF " pour utiliser ce bean.
Pour cela, ajoutez-y la ligne :
<h :outputText value="#{HelloBean.hello}" />
Cette ligne insert un composant graphique (type Label) dans la page JSF.
La valeur affecte ce composant est le rsultat de lappel la mtho-
de hello() de lEJB prcdemment inject dans le Managed Bean.
Voici la page JSF (welcomeJSF.jsp), telle que vous devriez lavoir :
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<f:view>
<h1><h:outputText value="Java Server Faces" /></h1>
<h:outputText value="#{HelloBean.hello}"/>
</f:view>
</body>
</html>
Lancement de lapplication
Le projet est maintenant prt tre lanc. Allez dans le menu " Run >
Run Main Project " pour excuter le projet. Cela va automatiquement
ouvrir votre navigateur par dfaut sur la page " index.jsf ". partir de
celle-ci, il vous suffit de cliquer sur le lien " Java Server Faces Welcome
Page " qui va vous amener sur le page " welcomeJSF ".
Conclusion
Nous avons mis en place un environnement de dveloppement vous
permettant de vous initier Java EE 5. Cette nouvelle spcification, tout
juste officiellement disponible, se veut prometteuse et proche de la
communaut. Lengouement pour Java EE 5 est une ralit. Dautres
compagnies Open-Source et propritaires travaillent dj sur Java EE 5 :
JBoss AS (www.jboss.com), Oracle AS (www.oracle.com), Weblogic
(www.bea.com)
Site officiel du projet : https://glassfish.dev.java.net
s Olivier SMEDILE et Cyril JOUI du Laboratoire SUPINFO des technolo-
gies SUN (www.labo-sun.com)
P
ratique
Niveau
j2ee
facile avanc expert
67
Programmez n87 juin 2006
p65/67 GlassFish 18/05/06 18:39 Page 67
S
i vous tes la fois partisans de Java et de l'Open Source, vous
vous devez d'aller visiter le site Java.Net (http://www.java.net).
Vous y trouverez une quantit innombrable de projets trs int-
ressants. Nous nous intressons aujourd'hui Swingx qui est un projet
de dveloppement de composants volus bass sur les composants
Swing. Il a t un temps question que ces nouveaux composants soient
intgrs Java Mustang. Finalement ? il semble que ce ne sera pas le
cas, mme si la nouvelle JTable se voit enrichie de fonctionnalits de tri
inspires de la JXTable de Swingx. Quoi qu'il en soit, c'est un jeu d'en-
fant d'utiliser ces composants de la mme manire que les composants
Swing. Nous allons montrer comment procder sous Netbeans 4.1. Au
moment o vous lirez ces lignes, Netbeans 5 sera disponible. Ce que
nous disons dans cet article restera valable, hormis peut tre quelques
points de dtails. Enfin, si vous utilisez un outil totalement diffrent
comme JBuilder, il ne devrait pas vous tre difficile d'adapter les indi-
cations fournies, car un composant Swingx est avant tout un JavaBean,
comme le sont aussi les composants Swing. Or les outils de conception
visuels manipulent des JavaBeans sans se soucier de leur origine.
Tlcharger et compiler
le projet Swingx
Le projet est accessible en CVS. Vous devez commencer par crer un
login (opration gratuite qui n'engage rien) sur le site Java.Net.
Ensuite, vous devez configurer votre utilitaire CVS, ce qui sous Netbeans
se fait ainsi: Allez dans le menu Versioning|CVS, puis choisissez 'Check
Out'. Passez ventuellement une petite bote de dialogue d'information
pour arriver la bote de dialogue de configuration CVS proprement
dite. Renseignez les champs ainsi :
Nom du champ Information
Working Directory un-repertoire-de-votre-disque
CVS Server Type pserver
CVS Server Name cvs.dev.java.net
Port 2401
User Name Votre nom de login Java.Net
Repository Path /cvs
Use Built-In CVS Client Coch
Password Votre mot de passe de login Java.Net
Cliquer ensuite sur le bouton 'Login'
Module(s) Coch
Donner swingx dans le champ de saisie en face.
Cliquez enfin sur le bouton Ok et patientez pendant que tout le projet
est transfr sur votre disque dur. Aprs cela, ouvrez le projet (Open
Project) swingx que vous trouverez sous le rpertoire prcdemment
donn 'Working Directory'. Compilez le projet. Vous obtenez alors une
archive Jar contenant tous les composants Swingx. Vous trouverez cette
1
archive sous le rpertoire dist du projet, comme il est d'usage sous
Netbeans. Cette opration de compilation est naturelle car le projet
Swingx est lui mme crit sous Netbeans. Si vous n'utilisez pas
Netbeans, cela reste facile car les projets sont bass sur ANT. Installez
ANT sur votre machine (http://ant.apache.org/) et compilez la cible pro-
jet du fichier build-impl.xml.
Crer un projet utilisant Swingx
Une seule condition est requise pour utiliser les composants
Swingx : les classes doivent tre pointes par le CLASSPATH. Crez
d'abord un projet de type Application Java qui vous servira faire vos
essais. Ensuite, allez dans les proprits du projet, puis slectionnez
'Libraries'. A ce stade, cliquez sur le bouton 'Add JAR/Folder', puis allez
pointer l'archive Jar de Swingx, localise sous le projet Swingx comme
nous l'avons dit. Tout tre prt. Nous pourrions commencer crire du
code, mais nous allons d'abord faire mieux.
Intgrer les composants Swingx
la palette
Tout comme les composants Swing, les composants Swingx sont des
JavaBeans avant toute chose, c'est--dire des classes crites en respec-
tant des rgles dtermines. Les outils qui manipulent les beans s'ap-
puient sur ces rgles et sur la rflexion de Java pour analyser les com-
posants (proprits contraintes, indexes, etc.) Un bean peut encore
implmenter l'interface java.beans.BeanInfo, afin de renseigner explicite-
ment sur ses caractristiques. Dernire possibilit, la classe du bean,
supposons-la nomme LeBean, peut tre accompagne par une classe
drivant de SimpleBeanInfo et proposant une implmentation par dfaut
de l'interface BeanInfo. Une telle classe obit une convention de nom-
mage et pour notre exemple, elle devrait tre baptise LeBeanBeanInfo.
Cette dernire possibilit est utilise par tous les outils comportant un
concepteur visuel tels Netbeans ou JBuilder. La rflexion seule, mention-
ne plus haut, ne suffit pas, ou du moins pas compltement, car c'est
partir de l'interface/classe BeanInfo qu'est obtenue l'icne qui servira de
symbole au composant dans la palette de composants. Nous devons
donc traiter ce point pour bien intgrer les composants dans la palette.
La premire chose faire est de fournir des icnes couleur en format
16x16 et 32x32. Des images Gif ou Png feront l'affaire. Dposez ces
icnes dans un rpertoire baptis par exemple 'ressources' et cr la
racine des sources de Swingx. Soit, par exemple,
etc-etc/swingx/src/java/ressources
Rouvrons maintenant le projet Swingx et examinons ses classes.
Certaines sont dj accompagnes d'une classe de type BeanInfo, par
exemple, JXCollapsiblePane qui est un panneau escamotable. Certaines
3
2
Enrichissez vos interfaces Java avec
Swingx sous Netbeans
Swingx est un projet Open Source de composants de haut niveau bass sur Swing. Apprenons
faire de la conception visuelle sous Netbeans avec ces composants.
P
ratique
Niveau
java
facile avanc expert
68
Programmez n87 juin 2006
p68/69 swing 18/05/06 18:40 Page 68
ne sont pas accompagnes, par exemple, JXDatePicker qui est un calen-
drier visuel. Traitons d'abord ce cas. Nous allons simplement demander
Netbeans de gnrer pour nous la classe de type BeanInfo. Pour cela,
dans la fentre du projet, ouvrez l'arborescence de JXDatePicker.java jus-
qu' arriver 'Bean Patterns'. Cliquez alors dessus avec le bouton droit
de la souris et slectionnez 'BeanInfo Editor'. Netbeans analyse la struc-
ture du Bean par rflexion et vous donne le rsultat dans une bote de
dialogue. Cliquez sur la racine de l'arborescence comme illustr ci-dessous
puis, depuis le panneau de droite, faites pointer les proprits corres-
pondantes aux icnes sur vos images. Cliquez sur OK, c'est termin.
Vous pouvez alors voir qu'une classe DatePickerBeanInfo a t intgre
au projet Swingx. Que faire si la classe BeanInfo existe dj comme c'est
le cas pour JXCollapsiblePane ? Dans ce cas, vous modifierez la mtho-
de getIcon que vous y trouverez ou, dfaut, vous crerez la mthode
de toute pice. Voici une mthode minimum renvoyant une icne 16*16:
public Image getIcon(int type) {
if (type == BeanInfo.ICON_COLOR_16x16)
{
return loadImage("/ressources/monicone16.png");
}
if (type == BeanInfo.ICON_COLOR_32x32)
{
return loadImage("/ressources/monicone32.png");
}
return null; // Important!
}
Dans tous les cas, vous devez recompiler le projet Swingx entirement et
non pas seulement les classes BeanInfo, afin que le ou les fichiers images
soient intgrs au Jar. Il ne reste plus qu' intgrer les composants que
vous voulez la palette. Allez dans 'Tools|Palette manager' Ensuite, crez
ventuellement une catgorie de composants Swingx, puis cliquez sur
'Add From Jar'. Allez pointer sur le Jar de Swingx. Un nouveau dialogue
numre tous les composants possibles, mme ceux sans BeanInfo qui
n'auront alors pas d'icne si vous les choisissez. Slectionnez ceux que
vous voulez. C'est termin, les composants sont intgrs la palette.
Un panneau escamotable
Pour essayer, dans un JFrame, que vous pouvez transformer si
vous voulez en JXFrame depuis le code, dposez un bouton au sud d'un
BorderLayout et un JXCollapsiblePane au nord. La localisation nord est
importante. Dans le JXCollapsiblePane ajoutez les composants Swing ou
Swingx que vous voulez. Netbeans va gnrer un code semblable
celui-l :
4
private void initComponents() {
jXCollapsiblePane1 =
new org.jdesktop.swingx.JXCollapsiblePane();
jLabel1 = new javax.swing.JLabel();
jButton1 = new javax.swing.JButton();
setDefaultCloseOperation(
javax.swing.WindowConstants.EXIT_ON_CLOSE);
jXCollapsiblePane1.getContentPane().
setLayout(new java.awt.BorderLayout());
jLabel1.setFont(
new java.awt.Font("Times New Roman", 0, 48));
jLabel1.setForeground(
new java.awt.Color(51, 51, 255));
jLabel1.setHorizontalAlignment(
javax.swing.SwingConstants.CENTER);
jLabel1.setText("Programmez!");
jXCollapsiblePane1.getContentPane().add(
jLabel1, java.awt.BorderLayout.CENTER);
getContentPane().add(
jXCollapsiblePane1, java.awt.BorderLayout.NORTH);
jButton1.setLabel("jButton1");
getContentPane().add(
jButton1, java.awt.BorderLayout.SOUTH);
pack();
}
Dans le constructeur, sous l'appel initComponents, ajoutez ceci :
jButton1.setAction(
jXCollapsiblePane1.getActionMap().
get(JXCollapsiblePane.TOGGLE_ACTION));
Et essayez :-) Dans des articles venir nous tudierons le maniement
de composants Swingx plus complexes.
s Frdric Mazu - fmazue@programmez.com
P
ratique
Niveau
java
facile avanc expert
69
Programmez n87 juin 2006
p68/69 swing 18/05/06 18:40 Page 69
C
ense accueillir divers langages, la plate-forme .Net, par sa natu-
re, peut aussi avoir tendance les uniformiser. Ainsi selon nous,
Visual basic et C# sont deux jumeaux habills diffremment.
Heureusement, l'exprience commence montrer que .Net n'implique
pas pense unique. A ce titre, nous sommes impatients de voir la sor-
tie de IronPython 1.0 (www.ironpython.com), ou de langages fonction-
nels pour .Net. En attendant, nous nous intressons C++/CLI qui pr-
sente des points forts tonnants. D'abord, nous avons bien sr un C++
qui bnficie de la gestion de la mmoire de .Net et de l'accs toutes
les classes du Framework, mais nous avons toujours C++. Nous gardons
la librairie STL, nous gardons l'hritage multiple, les templates et sur-
tout, nous gardons le code que nous avons dj crit. Microsoft nous
dit que C++/CLI, dsormais compltement standardis par l'ECMA, per-
met de reprendre l'existant sans autre effort qu'une recompilation et
que, code natif et code manag cohabitent au sein d'une mme appli-
cation. Pour prendre contact avec ce langage, regardons ce qu'il en est,
et point crucial pour un dveloppeur C++, voyons comment se passe la
gestion de la mmoire. Nous avons crit nos exemples avec Visual
Studio 2005. A dfaut, chacun peut tlcharger gratuitement Visual C++
Express pour se familiariser avec C++/CLI.
Pour se faire la main
Lorsque Visual Studio gnre une application console C++/CLI
nous avons ceci :
#include "stdafx.h"
using namespace System;
int main(array<System::String ^> ^args)
{
Console::WriteLine(L"Hello World");
Console::WriteLine("{0} {1}", args[0], args[1]);
return 0;
}
L'en-tte stdafx.h est vide. La fonction main reoit les arguments sous
la forme d'un tableau de pointeurs manags sur des chanes .Net. Nous
avons ajout une ligne pour montrer comment manipuler ces arguments
(cf exemples sur le Cd-Rom). Ce code a un look .Net ou C# incontes-
table. Que se passe-t-il si nous le rcrivons l'ancienne ?
#include "stdafx.h"
//using namespace System;
int main(/*array<System::String ^> ^args*/
int argc, char* argv[])
{
cout << "Hello World Standard" << endl;
cout << argv[1] << " " << argv[2] << endl;
return 0;
}
1
Dans l'en-tte stdafx.h, nous avons ajout
#include <iostream>
using namespace std;
Cet en-tte est le lieu appropri pour accueillir l'inclusion de tous les
en-ttes "natifs". Il est recommand que ces inclusions prcdent les
directives using namespace. Bien que nous ayons modifi le type des
paramtres reus, le code compile et s'excute parfaitement. A priori il
est donc bien possible de reprendre du C++ existant sans en changer
une ligne, ce qui est surprenant. Chaque mdaille son revers. Si vous
avez la curiosit de dsassembler l'excutable avec ildasm, vous allez
voir, dans la fonction main, une savante cuisine releve par un usage
intensif des classes .Net de l'espace de nom
System.Runtime.CompilerServices. En effet, si notre source est du C++
l'ancienne, l'excutable tourne sur la plate-forme .Net et il faut bien
interfacer les deux. Nous comprenons que si nous gardons le source
C++, nous perdons en performance l'excution, ce qui tait somme
toute prvisible. Par ailleurs, nous aurions pu choisir d'afficher notre
message dans une bote de dialogue Windows plutt que sur la conso-
le. Nous aurions alors crit:
#include <windows.h>
int main(array<System::String ^> ^args)
{
::MessageBox(NULL, "Hello World!", "Programmez!", MB_OK);
return 0;
}
Nous voyons qu'il est possible d'appeler une API Win32 avec C++/CLI, exac-
tement comme nous l'aurions fait en C++, ce qui est extrmement sduisant.
A nouveau System.Runtime.CompilerServices s'occupe de tout. Le program-
meur doit seulement veiller assurer l'dition de lien de user32.lib, exac-
tement comme on le ferait pour une application native pure.
Destruction dterministe
En C++ on sait quand une instance de classe est dtruite. Au sor-
tir de la porte courante ou conscutivement l'appel de delete.
Comment cela se passe-t-il en C++/CLI ?
class nongeree
{
public:
nongeree(int v)
{
valeur = v;
cout << "nongeree construite" << endl;
}
~nongeree()
{
cout << "nongeree detruite" << endl;
}
private:
2
Introduction C++ .Net
C++ .Net, alias C++/CLI, mrite d'tre dcouvert car il se dmarque de Visual Basic et de C#
par une expressivit largement suprieure et par la facilit qu'il offre pour reprendre l'exis-
tant. Premire excursion dans un vaste monde.
P
ratique
Niveau
C++
facile avanc expert
70
Programmez n87 juin 2006
Sur le
site Web
Sur le
CD ROM
p70/71 intro CppNet 18/05/06 18:40 Page 70
int valeur;
};
void RunPile()
{
cout << "Sur la pile" << endl;
nongeree ng(1);
}
void RunTas()
{
cout << "sur le tas" << endl;
nongeree* ng = new nongeree(1);
delete ng;
}
int main(array<System::String ^> ^args)
{
RunPile();
RunTas();
return 0;
}
Notre classe baptise nongeree est une classe C++ tout fait classique,
avec constructeur et destructeur. Nous instancions notre classe sur la
pile et sur le tas (fonction RunPile et RunTas respectivement. A l'excu-
tion tout se passe comme si nous tions en natif pur. Bien sr, si nous
dsassemblons RunPile et RunTas nous verrons nouveau que les
classes de System.Runtime.CompilerServices servent d'intermdiaires
l'invocation des constructeurs et destructeurs natifs. Toutefois, tout se
passe bien comme en C++. Ainsi, si dans RunTas nous supprimons l'ap-
pel delete, notre instance n'est jamais dtruite et nous avons une
bonne vieille fuite mmoire classique ;) De ce point de vue, C++/CLI est
aussi vrai que le vrai C++ et nous voyons que la gestion automatique
de la mmoire de .Net ne viendra pas interfrer avec le vieux code.
Destruction non dterministe
ref class geree
{
public:
geree(int v)
{
valeur = v;
Console::WriteLine("geree construite");
}
~geree()
{
Console::WriteLine("geree detruite");
}
!geree()
{
Console::WriteLine("geree finalisee");
}
private:
int valeur;
};
void RunPile()
{
Console::WriteLine("Sur la pile");
geree g(1);
}
void RunTas()
{
3
Console::WriteLine("Sur le tas");
geree^ g = gcnew geree(1);
delete g;
}
void RunTasGC()
{
Console::WriteLine("Sur le tas -- destruction par gc --");
geree^ g = gcnew geree(1);
}
int main(array<System::String ^> ^args)
{
RunPile();
RunTas();
RunTasGC();
Console::WriteLine("Retour de RunTasGC");
return 0;
}
Nous avons rcrit notre classe pour en faire une classe manage. On
note la prsence d'un mot cl contenant un espace: ref class. Nous
remarquons que notre classe comporte maintenant deux destructeurs.
Le premier est notre destructeur classique, en apparence du moins. Le
second !geree() est l'quivalent de la mthode C# Finalize. Dans ce der-
nier exemple nous instancions notre classe de trois manires diff-
rentes. D'abord sur la Pile (RunPile). Notre destructeur est appel
comme il se doit et un dsassemblage permet de retrouver la cuisine
dont nous avons parl pour la construction. En revanche, la destruction
est diffrente car cette fois c'est une invocation Dispose qui est gn-
re. Autrement dit, notre classe implmente automatiquement IDispose
et devient une vraie classe .Net bien que cela soit compltement trans-
parent au programmeur qui a l'illusion d'avoir une classe sur la pile de
faon traditionnelle. Nous disons illusion, car en fait, l'instance est
allou sur le tas manag comme en tmoigne l'instruction :
newobj instance void geree::.ctor(int32)
telle qu'on peut la voir avec Ildasm. Et notre destructeur classique n'est
en fait qu'un alias de la mthode Dispose. Quant notre classe, elle
drive tout naturellement de Object, ce qui est l aussi transparent.
Dans RunTas, nous instancions la classe avec gcnew, un mot cl qui
remplace new pour les classes manages, de mme que ^ signale un
pointeur manag et remplace *. A nouveau, nous dtruisons l'instance
par delete. Ici aussi, la destruction est dterministe lors de l'appel
delete qui aboutit nouveau en sous main un appel Dispose. Enfin,
dans RunTasGC nous avons "oubli" le delete. Nous constatons que
notre classe sera dtruite partir du moment o l'on quitte la porte,
car le pointeur manag n'est plus utilis dans le programme. Mais cette
fois, la destruction n'est pas immdiate mais se produit selon le bon
vouloir du ramasse-miettes et le destructeur appel n'est plus ~geree
mais !geree.
En guise de conclusion
Cette premire prise de contact nous montre que C++/CLI offre la
possibilit de grer la mmoire manuellement, ou de s'en remettre au
ramasse-miettes, volont. Ce C++, qui assure cohabitation entre natif et
manag, qui est augment de fonctionnalits bienvenues (comme finally),
qui offre l'accs aux classes .Net, tout en conservant ce qui tait spci-
fique C++, se prsente comme un langage d'une puissance tonnante.
s Frdric Mazu - fmazue@programmez.com
4
P
ratique
Niveau
C++
facile avanc expert
71
Programmez n87 juin 2006
p70/71 intro CppNet 18/05/06 18:40 Page 71
L
'ide du stockage structur est d'avoir une structure de donnes
arborescentes dans un seul fichier. Quel est l'intrt ? Imaginons
une application du genre agenda ou assistant personnel.
L'application travaillerait avec diffrents types de donnes, comme vos
contacts, vos rendez- vous, tous rangs dans des rpertoires distincts
pour chaque type de donnes. Si vous envisagez de dvelopper une
telle application, vous jugerez probablement qu'elle est trop lgre pour
travailler avec un SGDBR. De plus, vous pouvez souhaiter que votre
application soit indpendante de toute autre. Vous ne souhaitez pas
non plus parpiller vos donnes dans un grand nombre de fichiers. Pour
votre application, le stockage structur de Windows peut tre la solu-
tion. Un autre de cas de figure o le stockage structur s'avre intres-
sant est celui d'une application qui doit travailler avec un fichier trs
volumineux, dont le chargement total en mmoire serait pnalisant. Le
stockage structur, qui est une sorte de fichier index, vous permettra
d'accder directement la zone de donnes requise un instant et
charger cette zone uniquement.
Notre but et les outils
Sous Windows, l'expression stockage structur dsigne un jeu
d'interfaces COM abstraites, permettant le travail avec une structure de
donnes arborescentes comme nous l'avons dit. Chacun peut impl-
menter ces interfaces COM selon ses besoins. Implmenter une interfa-
ce COM n'est pas ncessairement facile. Heureusement, Windows pro-
pose une implmentation par dfaut, capable de couvrir les besoins les
plus courants. Nous allons travailler avec cette implmentation par
dfaut que Windows appelle les fichiers composs. Nous ne manipule-
rons COM que du ct client. Nous avons crit trois exemples que vous
trouverez sur le Cd-Rom accompagnant le magazine ou sur notre site
www.programmez.com. Le code a t crit avec Visual studio 2005, mais
ne posera pas de problme avec n'importe quel autre compilateur C++.
Le premier exemple, DemoCreate cre un fichier compos et y place
deux rpertoires, Magazine et Site
respectivement. Le premier rper-
toire contiendra deux fichiers
texte contenant chacun une phra-
se. Le second rpertoire contien-
dra un fichier texte contenant lui
aussi une phrase. Cette structure
est illustre ci-contre. L'utilitaire
qui a servi pour faire cette illus-
tration est le Doc File Viewer de
Visual Studio 6.0. Le second
1
exemple 'DemoEnum' montre comment parcourir l'arborescence com-
plte du fichier compos et identifier le type des lments rencontrs,
rpertoire ou fichiers. Enfin, le dernier exemple, DemoRead, montre
comment lire directement le fichier sous le rpertoire Site.
Travailler avec COM
C'est un jeu d'interfaces COM qui permet de manipuler les
fichiers composs. Nous devons commencer par avoir une notion mini-
mum de ce qu'est une interface COM. Une interface COM ressemble la
table des pointeurs des mthodes virtuelles d'une classe C++. Pour ce
que nous avons faire, nous pouvons nous contenter de voir une inter-
face COM comme un pointeur sur une table de pointeurs de mthodes.
Par contre, une interface COM n'est pas construite comme un objet C++
et surtout une interface COM n'a pas de destructeur. Un mcanisme
interne de comptage de rfrences est utilis. Quand le compteur tombe
zro, l'interface est supprime de la mmoire. Le systme ou le pro-
grammeur agissent sur le compteur au moyen des mthodes AddRef et
Release de l'interface. Lorsqu'on obtient un pointeur sur une interface,
soit au moyen d'une API Windows ou d'une autre interface COM, AddRef
est automatiquement invoque. En revanche, le programmeur doit appe-
ler Release pour librer l'interface lorsqu'elle n'est plus utilise ou si
une erreur est rencontre. Ce travail est fastidieux et alourdit le code.
Nous allons donc travailler avec un pointeur intelligent crit pour l'oc-
casion. Voici le code (fichier moncomutils.h) :
#ifndef moncomutilH
#define moncomutilH
template <class T> class TSmartComPtr
{
public:
TSmartComPtr() : p(NULL)
{}
virtual ~TSmartComPtr()
{
if(p)
p->Release();
}
T* operator*()
2
Travailler avec le stockage
structur de Windows
Le stockage structur permet d'avoir l'quivalent d'un systme de fichiers arborescents dans
un seul fichier. Nous apprenons manipuler avec C++ cette API Windows base sur COM.
P
ratique
Niveau
C++
facile avanc expert
72
Programmez n87 juin 2006
Notre fichier compos prsent par le
Doc File Viewer de Visual Studio 6.0.
Sur le
site Web
Sur le
CD ROM
p72-74 cwindows 18/05/06 18:40 Page 72
{
return p;
}
T** operator&()
{
return &p;
}
T* operator->() throw(int)
{
if(!p)
throw 1;
return p;
}
private:
// affectation interdite
TSmartComPtr& operator=(const TSmartComPtr<T>& param);
// copie interdite
TSmartComPtr(const TSmartComPtr<T>& param);
T *p;
};
#endif
Nous nous limitons fournir des oprateurs de drfrencement et d'ac-
cs aux membres. La copie et l'affectation sont interdites. L'intrt est,
videmment, d'avoir Release invoque automatiquement la destruc-
tion de l'objet au sortir de la porte. Si le pointeur est utilis avant
d'tre initialis, nous levons une exception. Cette exception n'est qu'un
entier pour simplifier au maximum le code. Dans une vraie application
il serait probablement pertinent de dclarer une classe d'exception.
Crer un fichier compos.
Dans la fonction main de chaque exemple, vous trouverez un
sandwich dont les tranches de pain sont CoInitialize et CoUninitialize.
Les appels ces APIS doivent prcder et clore toute activit COM.
Examinons, maintenant, le code de la fonction Run de DemoCreate :
void Run() throw(int)
{
HRESULT result;
TSmartComPtr<IStorage> racine;
TSmartComPtr<IStorage> magrep;
TSmartComPtr<IStorage> siterep;
result = ::StgCreateDocfile(
L"MonStorage.stg",
STGM_WRITE|STGM_SHARE_EXCLUSIVE|STGM_CREATE,
3
NULL,
&racine);
if(result != S_OK)
throw 2;
racine->CreateStorage(
L"Magazine",
STGM_WRITE|STGM_SHARE_EXCLUSIVE|STGM_CREATE,
NULL,
NULL,
&magrep);
racine->CreateStorage(
L"Site",
STGM_WRITE|STGM_SHARE_EXCLUSIVE|STGM_CREATE,
NULL,
NULL,
&siterep);
InsertFile(magrep, L"fichier1.txt", "Programmez!");
InsertFile(magrep, L"fichier2.txt", "Abonnez vous :-)");
InsertFile(siterep, L"fichier1.txt", "Participez au forum");
}
Nous commenons par dclarer trois pointeurs intelligents de type
IStorage. IStorage est l'interface qui encapsule, si l'on peut dire, les
rpertoires de fichiers composs. L'appel de l'API StgCreateFile cre le
fichier compos sur le disque. On remarque que le nom de fichiers est
donn en Unicode (macro L). En effet, comme toujours avec COM,
Unicode est de rigueur. Fort heureusement toutefois, le contenu des
fichiers sous les rpertoires n'est vu que comme un paquet d'octets
bruts, mme si le contenu est du texte. Donc pas d'Unicode dans ce cas
:). Le lecteur voudra bien se reporter la documentation MSDN de
Microsoft (http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/stg/stg/structured_storage_start_page.asp) en ce qui concerne les dif-
frent drapeaux passs l'API pour la cration du fichier, ainsi que pour
la liste de toutes les mthodes proposes par les interfaces COM. On
remarque, en outre, que l'API initialise notre pointeur intelligent racine.
Autrement dit, nous obtenons un pointeur sur une interface IStorage, ce
qui signifie que pour le systme, le fichier compos n'est vu que comme
un rpertoire racine. A partir de cette interface racine et en invoquant sa
mthode CreateStorage, nous crons les deux sous- rpertoires. A
chaque fois, nous obtenons un pointeur sur une nouvelle interface de
type IStorage. Chaque interface IStorage gre donc un rpertoire et un
seul. Une fois les rpertoires crs, nous appelons trois fois la fonction
InsertFile pour y insrer des fichiers contenant une ligne de texte. Le tra-
vail est tout fait similaire ce que nous venons de faire pour les rper-
toires. La mthode CreateStream de IStorage cre un fichier et donne un
pointeur sur une interface IStream qui encapsule, si l'on peut dire, le
fichier cr. A nouveau le nom du fichier est en Unicode. Enfin, on
remarque que rpertoires et fichiers ne sont jamais ferms. Cette fer-
meture est automatique lorsque la mthode Release des interfaces est
appele, ce qui dans notre cas se produit lors de la destruction de nos
pointeurs intelligents.
P
ratique
Niveau
C++
facile avanc expert
73
Programmez n87 juin 2006
p72-74 cwindows 18/05/06 18:40 Page 73
Parcourir un fichier compos
Intressons nous maintenant au code de DemoEnum qui montre
comment parcourir le contenu d'un fichier compos. Bien videmment, on
commence par ouvrir le fichier avec l'API StgOpenStorage, ce qui est fait
dans la fonction Run non reproduite ici. Comme pour la cration du fichier,
nous obtenons une interface de type IStorage sur la racine. Nous passons
alors cette interface la fonction rcursive EnumStorage que voici :
void EnumStorage(TSmartComPtr<IStorage>& st)
{
HRESULT result;
STATSTG statstg;
TSmartComPtr<IStorage> subst;
TSmartComPtr<IEnumSTATSTG> ienum;
result =
st->EnumElements(0, NULL, 0, &ienum);
TestResult(result);
while(ienum->Next(1, &statstg, 0) == NOERROR)
{
switch(statstg.type)
{
case STGTY_STORAGE:
wcout << L"Type: STGTY_STORAGE, ";
wcout << "Nom: " << statstg.pwcsName << endl;
result = st->OpenStorage(statstg.pwcsName,
NULL,
STGM_READ|STGM_SHARE_EXCLUSIVE,
NULL,
0,
&subst);
TestResult(result);
EnumStorage(subst);
break;
case STGTY_STREAM:
wcout << L" Type: STGTY_STREAM, ";
wcout << "Nom: " << statstg.pwcsName << endl;
break;
default:
wcout << L"Type: inconnu, ";
break;
}
::CoTaskMemFree(statstg.pwcsName);
}
}
Ce code comporte quelques subtilits. D'abord, on commence par obte-
nir une interface d'numration COM de type IEnumSTATSTG qui servira
parcourir le fichier. Cette interface est obtenue avec la mthode
EnumElements qui n'numre en fait rien elle-mme. Nous bouclons, tant
que l'interface d'numration COM signale la prsence d'un lment. Pour
chaque lment, une structure STATSTG est remplie A chaque fois, nous
testons le type de l'lment et si nous avons affaire un rpertoire, la
4
fonction s'appelle elle-mme. Quel que soit l'lment, nous affichons son
type et son nom. Ce nom est en Unicode, bien videmment. Mais surtout,
il importe de remarquer que la structure STATSTG dtient seulement un
pointeur sur le nom de l'lment et non le nom lui mme.
Ce pointeur pointe une zone de "mmoire COM" c'est--dire sur une zone
qui a t alloue par des APIs COM sous le manteau, lorsque la structu-
re STATSTG a t remplie. Comme toujours dans un tel cas en program-
mation COM, il est du ressort du programmeur de librer cette mmoire
avec des APIs COM, faute de quoi on aurait une fuite de mmoire. Ici nous
employons CoTaskMemFree. L'illustration ci-dessus montre le rsultat du
parcours du fichier. Il n'est jamais garanti que les lments soient par-
courus dans l'ordre de leur cration.
Lire dans un fichier compos
Si l'on a bien compris les deux exemples prcdents, ce dernier
exemple, DemoRead, est sans surprise. Nous n'en reproduisons pas le
code ici. Nous partons de la racine et nous ouvrons le sous-rpertoire.
Ensuite, nous ouvrons le fichier. Nous invoquons la mthode Stat de
IStream pour connatre le nombre d'octets lire. Cette mthode remplit
elle aussi une structure STATSTG et selon les paramtres qu'elle reoit, il
faudra peut tre veiller librer de la mmoire, comme expliqu plus haut
(cf. les commentaires dans le source) Pour varier les plaisirs, nous utili-
sons une interface COM IMalloc pour la libration de la mmoire, mais le
mcanisme global est exactement le mme que prcdemment. Un dernier
mot. Lorsqu'on efface un lment (IStorage->DestroyElement), la place cor-
respondante n'est pas libre dans le fichier compos. Pour rcuprer
cette place et rduire la taille du fichier, il faut passer par un fichier inter-
mdiaire que l'on gnrera par racine->CopyTo. Enfin, on doit savoir qu'un
rpertoire ne peut s'autodtruire et doit tre supprim depuis le rpertoi-
re immdiatement au-dessus de lui dans l'arborescence.
s Frdric Mazu - fmazue@programmez.com
Lexique
- SGDBR : Systme de gestion de base de donnes relationnelles.
Oracle, PySQL, PostgreSQL, par exemple, sont des SGDBR.
- COM (Component Object Model) : Technologie Microsoft de com-
posants logiciels interoprables.
- Unicode : Unicode est un standard informatique dvelopp par le
Consortium Unicode qui vise donner tout caractre, de n'impor-
te quel systme d'criture de langue, un identifiant numrique
unique, et ce de manire unifie, quelle que soit la plate-forme infor-
matique ou le logiciel. (dfinition provenant de : fr.wikipedia.org)
5
P
ratique
Niveau
C++
facile avanc expert
74
Programmez n87 juin 2006
Nous parcourons le contenu de fichier compos.
p72-74 cwindows 18/05/06 18:40 Page 74
P
ratique
Niveau
PHP
facile avanc expert
75
Programmez n87 juin 2006
Notre objectif travers cet article va tre de dcouvrir ce qui est com-
munment vu comme la cerise sur le gteau XML : Xpath le moteur de
recherche du XML.
XML et XPath ?
Comment faire une recherche dans votre document XML ?
Comment accder aux donnes de faon aussi simple qu'avec SQL ? La
solution existe : XPath !
Cest le nom dune syntaxe permettant de faire des recherches ou slec-
tions dans un document XML. Il sagit donc dun moyen daccder aux
donnes trs simple dans lunivers XML.
Comment l'utiliser ?
Nous allons baser nos exemples sur la plate-forme principale
d'applications Web : PHP. Comme Xpath est une spcification du W3C
vous pourriez galement l'utiliser avec d'autres plates-formes. Nous
prfrerons PHP 5 qui offre, avec SimpleXML, des fonctionnalits de trai-
tement des fichiers XML extrmement puissantes et faciles d'accs.
Avec PHP il est possible d'utiliser Xpath au travers :
- des fonctionnalits DOM,
- des fonctionnalits SimpleXML
Si DOMDocument permettait dj en PHP4 de parcourir l'arbre DOM
nud par nud et d'utiliser de faon complexe XPath, SimpleXML gre
le document XML dans sa globalit, en tant qu'objet. L'extension
SimpleXML implmente une mthode xpath(). Cela nous permet d'utili-
ser cette mthode d'accs des arbres DOM, donc tout document
XML ou XHTML.
Comment accder aux lments ?
Xpath voit un document XML comme un arbre de noeuds.
Nous nous intresserons aux noeuds de trois types :
- les noeuds d'lments, c'est--dire les balises XML
- les noeuds d'attributs, qui ajoutent des informations aux balises
- les noeuds de texte, les donnes du document
Notez que simpleXML propose dj des mthodes pour accder aux l-
ments et attributs.
La syntaxe XPath applique la
recherche d'lments
Il existe deux syntaxes pour noter le chemin travers les lments du
DOM XML :
- la mthode complte, qui garantit le moins d'erreurs possibles et le
plus de prcision,
- la mthode abrge qui est plus rapide crire.
Considrons les balises XML suivantes et cherchons dsigner l'lment " c ".
<a>
<b>
4
3
2
1
XML puissance 5 avec XPath et PHP
Les applications utilisant XML sont partout ! Que ce soit les fils d'actualits en RSS, les services
web ou les formats de stockage (OpenDocument pour OpenOffice et OpenXML pour MsOffice) il
est difficile d'y chapper. Le premier objectif d'XML est atteint : ouverture et interoprabilit.
<c></c>
<c></c>
<c></c>
</b>
</a>
En utilisant la notation complte on aurait : a/child::b/child::c
En utilisant la notation abrge on aurait : a/b/c
A retenir : on spare les lments imbriqus les uns dans les autres par
un slash, comme les rpertoires Unix. On spare les mots-cls de dsi-
gnation du nom de l'lment par ::
1. Arborescence des noeuds :
Pour accder au noeud racine, on peut utiliser le signe /
Pour dsigner le noeud sur lequel on travaille, on utilise la notation ./
Pour dsigner le noeud parent, on utilise la notation ../
2. Dsigner plusieurs noeuds la fois :
Les caractres spciaux permettent de choisir plusieurs lments en une
seule notation. On utilise l'toile * comme caractre joker, et // pour
outrepasser la dsignation de l'arborescence.
Soit le XML suivant :
<a>
<b>
<c></c>
<c></c>
<c></c>
</b>
</a>
<a>
<b>
<c></c>
<c></c>
<c></c>
</b>
</a>
<a>
<b>
<c></c>
<c></c>
<c></c>
</b>
<c></c>
<c></c>
</a>
Je dsigne tous les noeuds enfants de a par a/* (je rcupre donc les
noeuds b et c). Je dsigne tous les c contenus dans un lment b par
b//c, si je souhaite au contraire tous les lments c quel que soit le
noeud parent, je ferais //c
p75/76 PHP(2) 18/05/06 18:41 Page 75
P
ratique
Niveau
PHP
facile avanc expert
76
Programmez n87 juin 2006
Attention, on postule que la DTD autorise des lments c qui ne
seraient pas dans <b>. On peut galement combiner les choix dans les
fonctions par le caractre | (pipe).
La syntaxe XPath applique la
recherche d'attributs
La notation longue des attributs se fait par le mot clef attribute, et la
notation abrge par le caractre @.
<personne>
<yeux couleur ="bleu">
</yeux>
<cheveux couleur="blond">longs</cheveux>
</personne>
<personne>
<yeux couleur ="gris">
</yeux>
<cheveux couleur="blond">en brosse</cheveux>
</personne>
<personne>
<yeux couleur ="brun">
</yeux>
<cheveux couleur="noir">courts</cheveux>
</personne>
Pour dsigner les attributs de couleurs d'yeux, je note :
/child::personne/child::yeux/attribute::couleur (complte)
/personne/yeux/@couleur (abrge)
La syntaxe XPath applique la
recherche de texte
On utilise la fonction contains(chaine, motif ). Depuis PHP, notre chane
sera le titre de la nouvelle qu'on souhaite examiner. On peut examiner
aussi bien les noeuds que leurs attributs, que le texte contenu dans le
noeud lment.
Syntaxe d'un flux RSS 2.0 dans du XML
Un flux RSS est en XML et obit une norme. On sait donc que tous
les flux RSS 2.0 auront la structure suivante :
<rss version="2.0">
<channel>
<title>Titre du channel</title>
<link>http://www.monsite.com</link>
<description>Description du channel</description>
items...
</channel>
</rss>
Cas d'application : afficher les titres de flux RSS contenant le mot PHP
Imaginons qu'on ait un grand nombre de flux RSS (par exemple, 2000)
et qu'on ne souhaite afficher que les nouvelles concernant PHP. On va
donc n'tre intress que par les titres contenant le mot clef "PHP ".
<?php
// Dfinition des sources
$tablo_flux[] = 'http://www.afup.org/backend.php3';
$tablo_flux[] = 'http://www.nexen.net/index2.php?option=com_rss&
6
5
feed=RSS0.91&no_html=1';
$tablo_flux[] = 'http://news.google.fr/news?ned=fr&topic=t&output=rss';
// On rcupre le mot clef recherch dans l'URL
$mot = ['PHP'];
$taille = count($tablo_flux);
for( $i=0 ; $i < $taille ; $i++ ){
$racine[$i] = simplexml_load_file($tablo_flux[$i]);
$recherche = "/rss/channel/item[contains(title,'$mot')]";
$titres = $racine[$i]->xpath($recherche);
if($titres){
foreach($titres as $actu){
$lien = htmlentities((string)$actu->link);
$titre = utf8_decode($actu->title);
echo "<tr><td><a href='$lien'>$titre</a></td></tr>\n";
}
}
}
?>
Cet exemple simple permet de montrer comment faire une recherche
simple dans des fluxs rss. Rien ne vous empche d'aller plus loin et de
crer un systme de veille sur un ou plusieurs sujets qui vous intres-
sent. Avec quelques lignes de plus vous obtenez un systme de gestion
plus complet (voir figure).
En savoir plus
Article de Wikipedia sur Xpath
http://fr.wikipedia.org/wiki/XPath
Norme du W3C sur XPath
http://www.w3.org/TR/xpath
Manuel PHP sur SimpleXML
http://fr2.php.net/manual/fr/ref.simplexml.php
Les fonctions Xpath http://fr.selfhtml.org/xml/representation/fonctionsx-
path.htm
Former des flux RSS 2.0 http://ghostdogpr.developpez.com/articles/rss/
s Sarah HAIM LUBCZANSKI & Cyril PIERRE de GEYER - Anaska Formation
p75/76 PHP(2) 18/05/06 18:41 Page 76
C
omme pour les EJB 2.x, il existe deux grandes familles dEJB 3.0 :
les sessions beans et les entity beans. Les premiers sont l pour
matrialiser des services, les seconds rifient le contenu de la
base de donnes. Jusqu ce point, la tradition des EJB est respecte.
Ce qui change, cest la manire dont ces EJB sont mis en uvre. Pour
les session beans, comme pour les entity beans, elle sest considra-
blement simplifie. Elle sappuie intensivement sur les deux apports
majeurs du JDK 5.0 que sont les annotations et les " generics ".
Le JDK 5.0 en entreprise
Avant dentrer dans lintimit de ces nouveaux EJB, rappelons ce que
sont les annotations et les " generics " et surtout, quels rles ils peu-
vent jouer dans une application dentreprise.
Les annotations forment un systme de marquage des composants l-
mentaires dun programme que sont les classes, les mthodes et les
attributs. Elles ressemblent en cela au clbre Xdoclet. Elles permettent
dassocier ces composants, des informations qui pourront tre exploi-
tes par un mcanisme tiers. Par exemple, lannotation @Overrides
indique que la mthode associe doit avoir une super implmentation.
Cette annotation est utilise par le compilateur Java, par lditeur Java
dEclipse, etc. Lannotation @WebService pose sur une classe Java
indique au serveur dapplication quil doit installer cette classe comme
service WEB, gnrer le WSDL correspondant, etc. Il faut noter quune
annotation napporte aucune modification du comportement per se la
classe, la mthode ou lattribut sur lequel elle est pose. Une annota-
tion est passive. Il est toujours ncessaire quun outil, un framework, un
serveur dapplication, reconnaisse lannotation et apporte la classe le
comportement demand.
Les " generics " sont un mcanisme additif au compilateur Java per-
mettant de prciser le type des objets manipuls par une API. Ce mca-
nisme est dabord utilis dans les collections JAVA, pargnant le dve-
loppeur de trop nombreux " casting ". Mais les generics sont aussi
connus de lAPI dintrospection. Il est possible avec le JDK 5.0 de dter-
miner dynamiquement quels sont les lments rassembls par une col-
lection donne. Nous verrons que ce point est essentiel pour les EJB 3.0
Annotation et generics se rvlent simples assimiler et utiliser.
Mme si vous ntes pas familier avec le JDK 5.0, vous naurez proba-
blement aucune difficult pour comprendre les exemples de code illus-
trant cet article.
Dfinir un service laide dun Session bean
Le composant EJB qui matrialise un service mtier est lEJB Session.
Comme son aeul figurant dans la version 2.x, il doit tre install au sein
dun serveur dapplication. Il confre une procdure de traitement -
sans effort de programmation la possibilit de linvoquer distance,
une unit transactionnelle et un contrle daccs scuris. Mais il en fait
plus, et pas de la mme manire.
" Plus " car il est possible dsormais dassocier ces procdures de
traitement des comportements " transversaux ". Il sagit des fameux
" intercepteurs " qui ont popularis la programmation par aspect
dans le monde des serveurs dapplication. Et du framework Spring.
" Diffremment ", car les annotations et les generics permettent de
transformer des classes JAVA standard (POJO) en EJB Session, sans
quil soit ncessaire de les faire hriter de classes (ou dimplmenter
des interface) provenant de lAPI des EJB, ni de dfinir dobscures
mthodes rflexes (ejbActivate, ejbPassivate, etc.), ni encore de devoir
dfinir dinterface de fabrique (les " Home " des EJB 2.x). Il nest pas
non plus ncessaire de dclarer les EJB3 Session dans un fichier de
configuration de type " ejb-jar.xml ".
Illustrons tout cela concrtement. Prenons comme exemple un service sim-
pliste. Ce service met disposition une bibliothque de fonctions math-
matiques lmentaires. La version initiale de notre classe est celle-ci
public class Computer {
public double add(double a, double b) {return a+b;}
public double minus(double a, double b) {return a-b;}
public double multiply(double a, double b) {return a*b;}
public double divide(double a, double b) {return a/b;}
}
Comment installer cette classe en tant que service ?
La premire tape consiste extraire de notre classe linterface qui dfi-
nit les fonctions attendues de ce service :
public interface ComputerService {
public double add(double a, double b);
public double minus(double a, double b);
public double multiply(double a, double b);
public double divide(double a, double b);
}
et faire implmenter cette interface par notre classe initiale :
public class Computer implements ComputerService {
...
}
Il suffit maintenant de rajouter les annotations @Remote sur linterface
et @Stateless sur la classe dimplmentation et le tour est jou !
@Remote
EJB 3.0 : Le grand virage
Cette nouvelle mouture des EJB est une synthse rigoureuse des solutions les plus populaires en
matire de composants mtier en Java : dans lADN des EJB3, on reconnat une certaine pater-
nit des EJB 2.X, mais on trouve aussi beaucoup de gnes Hibernate et Spring. Cet article se pro-
pose de vous faire dcouvrir concrtement la spcification la plus attendue de Java EE 5 Platform.
P
ratique
Niveau
java
facile avanc expert
77
Programmez n87 juin 2006
p77A79 EJB3 18/05/06 18:41 Page 77
public interface ComputerService {

}
@Stateless
public class Computer implements ComputerService {
...
}
Ces deux classes sont alors places dans une archive .jar, que lon ins-
talle sur un serveur dapplication intgrant les EJB 3.0. Au dploiement
de lapplication, le serveur scrute les classes contenues dans larchive,
dtecte les annotations et installe automatiquement lEJB. Aucun fichier
de configuration nest ncessaire !
Il nous reste maintenant appeler notre service depuis un programme
" client ". Ce programme peut tre une application externe au serveur
dapplication (client riche) ou une servlet. Dans ltat actuel des choses
(car tout cela va changer avec la version 2.5 des servlets), il faut pas-
ser par lannuaire du serveur lapplication cest dire JNDI pour se
connecter au service, linstar de ce que lon faisait avec les EJB 2.x.
Notez cependant, quil nest plus ncessaire de passer par une
"fabrique" : le fameux " home " des EJB 2.x. La recherche du service
est directe. Par dfaut, le nom de lEJB est le nom de linterface du ser-
vice auquel on ajoute " /remote " :
Computer cmp;
try {
InitialContext ctx = new InitialContext();
Computer cmp = (Computer) ctx.lookup(ComputerService/remote);
}
catch (NamingException exp) { }
cmp.add(5.0, 5.0);
La premire ligne de cette snippet cre un accesseur vers JNDI. La
seconde ligne obtient le service. La troisime ligne exploite le service.
Lappel la mthode " add " nest pas protg par une clause try
catch, malgr le fait que cet appel puisse tre ralis distance. Il
semble, en effet, que les gens en charge de spcifier les nouvelles API
de Java EE aient enfin admis que les exceptions explicites (" checked
exceptions ") apportent une complexit et une lourdeur que ne justifie
pas le gain attendu dans le contrle du code.
Injection de dpendance
Dveloppons maintenant un nouveau service qui a besoin dutiliser
notre service de calcul. Ce service est aussi un session bean EJB 3 dont
voici le code partiel :
@Stateless
public class MiniGrid implements MiniGridService {
ComputerService comp;
public double computeGrid(int op, double a, double b) {
switch (op) {
case OperationType.ADD:
return comp.add(a, b);
case OperationType.REMOVE:
...
}
}
}
Lattribut " comp " dsigne le service de calcul que nous voulons exploi-
ter. Comment linitialiser ? Avec les EJB 2.x, il aurait fallu dfinir une rf-
rence dans le fichier de configuration ejb-jar.xml, que nous aurions tra-
duite en un nom JNDI dans un fichier de configuration spcifique au ser-
veur dapplication. Cette rfrence devait ensuite tre utilise dans la
mthode dinitialisation du bean via JNDI, Home, etc.
Pour les EJB 3.0, rien de tout cela : il suffit dassocier " comp " lan-
notation @EJB pour que le serveur dapplication dtecte tout seul quil
doit lier le service MiniGrid a une instance de Computer :
@Stateless
public class MiniGrid implements MiniGridService {
@EJB
ComputerService comp;

Comment fait-il pour trouver le bon service ? Il sappuie sur le type de


la rfrence " comp ". Comme un unique service implmente cette inter-
face, le serveur dapplication devine tout seul la ligature raliser
(lorsque ce nest pas le cas, lutilisation dun fichier de configuration
redevient ncessaire). Cette ligature nest plus faite linitiative du bean
(MiniGrid), elle est " injecte " en son sein par le serveur dapplication,
selon le Design Pattern IoC (Injection of control) ou DI (Dependency
Injection). On retrouve ici le principe fondamental du framework Spring.
Dfinir un objet du domaine (objet mtier)
avec un Entity Bean
La simplification est encore plus grande en ce qui concerne les beans
entits. La norme EJB 3.0 abandonne sur ce terrain lessentiel des prin-
cipes des EJB 2.x et adopte lapproche doutils dORM comme Hibernate.
Les beans entits sont de simples classes Java, linstar de ce que pr-
sente la snippet suivante :
@Entity
public class Product implements Serializable {
String code;
String label;
ProductType type;
Set<Vendor> vendors;
public Product() {}
public Product(String code, String label) {
this.code = code;
this.label = label ;
}
@Id
public String getCode() {return code;}
public void setCode(String code) { this.code = code; }
P
ratique
Niveau
java
facile avanc expert
78
Programmez n87 juin 2006
p77A79 EJB3 18/05/06 18:41 Page 78
public String getLabel() {return label;}
public void setLabel(String label) { this.label = label; }
@ManyToOne
public ProductType getType() {return type;}
public void setProductType(Product type)
{ this.type = type; }
@ManyToMany(mappedBy=products)
public Set<Vendor> getVendors() {return vendor;}
public void setVendors(Set<Vendor> vendor)
{ this.vendor = vendor; }
}
Cette classe ne prsente rien de particulier : pas de classes hriter,
pas dinterface EJB implmenter. Ce sont des POJOs. POJO signifie
"Plain Ordinary (ou Old) Java Object", que nous pourrions traduire par
"des objets Java trs ordinaires". A lexception bien sr de quelques
annotations qui vont transformer linoffensif POJO en un composant
dentreprise persistant en base de donnes.
Lannotation la plus importante est @Entity qui indique quil sagit dun
bean entit. Cest en reconnaissant cette annotation que le serveur, au
dmarrage de lapplication, va installer cette classe en tant quEntity bean.
Lautre annotation obligatoire est @Id qui indique quelle est la cl pri-
maire de lentit. Beaucoup dautres annotations sont disponibles, per-
mettant de dfinir un mapping fin avec le contenu de la base de don-
nes. Lannotation @ManyToOne donne en exemple dans la Snippet
indique quil faut mapper la proprit " type " avec la cl trangre de
mme nom dans la table qui contient la dfinition des produits.
Le cas de lannotation @ManyToMany est intressant, car il illustre le fait
que les collections sont aussi gres par les EJB 3.0 laide dannota-
tions simples. Lattribut dannotation " mappedBy " indique au serveur
que la proprit " vendors " de Product est la relation inverse de la
relation " products " de la classe Vendor. Cest par introspection sur le
type des lments contenus dans la collection retourne par
"getVendors" que le serveur dapplication reconnat la classe Vendor
comme cible de la relation " vendors ". Lutilisation des " generics "
prend tout son sens.
Aucun fichier de mapping nest ncessaire. Le serveur dapplication uti-
lise le nom de la classe comme nom de table. Il utilise les noms des
proprits (code, label, type) comme noms de champs. Il est bien sr
possible daltrer ce comportement par dfaut en utilisant des annota-
tions comme @Table, @Column,
Voyons maintenant comment manipuler ces entits. A linstar des EJB
Session, les " Home " ont disparu. A la place, apparat le gestionnaire
dentits. Ce gestionnaire est la fabrique pour toutes les entits. Il sert
en quelque sorte de " Home " gnrique et gnral. Ce gestionnaire,
instance de la classe " EntityManager " est initialis dans un Session
bean par injection de dpendance :
@Stateless
public class MonImplementationDeDAO implements DAOService {
@PersistentContext
EntityManager em;
En rencontrant lannotation @PersistentContext, le serveur dapplication
sait quil doit initialiser lattribut associ par une instance de gestion-
naire dentits.
Les mthodes de notre Session bean peuvent maintenant utiliser le ges-
tionnaire dentits pour retrouver une entit particulire, dresser la liste
des entits qui rpondent un critre donn, crer, modifier ou suppri-
mer une entit, etc. Par exemple, dans la snippet suivante :
Product prd = em.find(Product.class, is2);
List orders = em.createQuery(
select o from order o +
where o.invoice.status = 1).getResultList();
em.persist(new Product(pF2, pencil F2));
La premire invocation du gestionnaire dentits recherche le produit de
code is2. La seconde invocation retourne lensemble des commandes
dont la facture na pas encore t rgle. La dernire invocation insre
un nouveau produit en base de donnes.
Ce rapide survol des beans entits permet de comprendre la nouvelle
philosophie des EJB, mais il ne permet pas den apprhender la puis-
sance : sachez quil est possible dutiliser lhritage des entits, de dfi-
nir des requtes paramtres et dynamiques, dutiliser un nouvel EJB
QueryLanguage qui offre lensemble des possibilits de SQL, OrderBy,
GroupBy, Having compris.
Le concept du " mobile object "
Contrairement aux Entits des EJB 2.x, les entits des EJB 3.0 ne peu-
vent tre accdes distance. Cette limitation nen est pas vraiment
une : le modle architectural dune application dentreprise impose,
dans la pratique, de masquer les beans entits par une srie de Session
beans faade. Ce modle rend donc inutile la facult dun bean dtre
sollicit directement.
En revanche, le fait quun bean entit EJB 2.x ne puisse exister hors du
conteneur EJB implique lutilisation de DTO ou " Data Objects " pour
faire migrer la description dune entit vers une application cliente. La
consquence de cet artifice est que les objets du domaine sont mat-
rialiss par deux classes distinctes.
Rien de tout cela nest dsormais ncessaire. Les POJOs peuvent tre
srialisables et un POJO peut parfaitement tre utilis en dehors dun
conteneur EJB. Il nest donc plus ncessaire de crer des DTO. Une enti-
t EJB 3 peut tre dtache du gestionnaire dentits, transfre dans
un contexte client, modifie dans ce contexte, puis retourne vers le ser-
veur et enfin, rinjecte dans le gestionnaire dentits. Lentit EJB 3.0
est mobile. La simplification est dimportance : de quatre classes (home,
interface, bean, DTO) on passe une.
s Henri Darmet
contact@objetdirect.com - Objet Direct, filiale de Homsys Group
A propos de Homsys Group :
Cr en 1991, Homsys Group est spcialis autour de
la Business Intelligence (Homsys) et les technologies
Objet et Internet (Objet Direct). Homsys Group est
implant Paris, Marseille, Lyon, Toulouse, Bordeaux, Grenoble et
Rennes.
www.homsysgroup.com - www.objetdirect.com
P
ratique
Niveau
java
facile avanc expert
79
Programmez n87 juin 2006
p77A79 EJB3 18/05/06 18:41 Page 79
L
udique
Les jeux indpendants ont leur portail
E
t cest un portail dont la philosophie est
vraiment " indie " ! GameTrove
(www.gametrove.net), lanc il y a un
mois, a pour devise " Games from the people
who made them ". Le site entend clairement
permettre tous les dveloppeurs indpen-
dants, affilis un studio ou non, de publier et
mme de vendre leurs jeux en ligne.
Loriginalit du concept est que GameTrove est
juste un intermdiaire passif : ce sont les utili-
sateurs qui dcident des jeux qui restent acces-
sibles, et dans quel ordre daccs, en les
notant. Du ct des dveloppeurs, la mise en
place du jeu est absolument gratuite : il suffit
de senregistrer (juste un login et un mot de
passe, rien dautre !) puis de soumettre son jeu
en remplissant une fiche descriptive et tech-
nique complte. Cest tout. Chaque jeu est
alors automatiquement tlchargeable en ver-
sion dmo, ou achetable en version complte.
GameTrove prend 10% sur les ventes ralises
par le dveloppeur, au fur et mesure. Cest
tout fait raisonnable, dautant que linvestis-
sement financier initial du dveloppeur indie
est nul. Cependant, il peut, sil le souhaite,
faire une donation volontaire au portail, ou
acheter une bannire de pub tournante. Mais
aucune obligation : ce sont les notes des utili-
sateurs enregistrs qui font tout, classant les
jeux par hit-parade sur des pages successives
Des jeux peuvent mme tre limins par excs
de mauvaises notes : la slection naturelle ! Le
systme est donc trs sduisant, parfaitement
indie, communautaire, quasi gratuit, et dtach
de toute structure technique ou commerciale
externe aux joueurs et dveloppeurs. En outre,
des liens vers les sites des dveloppeurs et
bientt des forums de partage assurent une
cohrence la communaut. Reste savoir
quelles balises ont t mises en place pour
rguler le processus dannotation et viter les
abus En tout cas, le succs de GameTrove
semble immdiat, avec plus de 100 jeux soumis
et implants en moins de trois semaines.
Plateau de jeu interactif pour jeux de
plateau virtuels
Un nouveau concept ludique montre le bout de
son nez, celui des jeux de plateau (vous voyez,
genre Monopoly) interactifs : une rencontre
trs innovante entre jeux de socit et jeux
vido ! Linvention est riche de promesses
Jugez plutt : Philips Research a prsent en
janvier dernier, et annonc pour la fin de lan-
ne, si les tests sont favorables, son
Entertaible. Tout simplement un cran LCD tac-
tile plat, qui fait plateau de jeu. On y dpla-
ce des pions et, au besoin, un programme gre
les rgles au fur et mesure. La perspective la
plus tonnante de lEntertaible est que ce pla-
teau interactif est multi-jeux : on peut trs bien
y charger, par USB ou carte-mmoire, des jeux
de socit diffrents ! Un menu propose, dans
ce cas, les divers jeux disponibles, on fait alors
son choix : le jeu sinstalle, le plateau saffi-
chant sur lcran, le programme de gestion
spcifique se chargeant en mmoire. Reste
utiliser le set de pions spciaux, lectronique-
ment ractifs avec lcran, pour commencer la
partie ! Philips prvoit pour lEntertaible une
utilisation domestique, chez soi, mais aussi
son intgration dans des tables de bars, de
cafs, de clubs de jeux On peut se demander
cependant si les amateurs de jeux de socit
ne bouderont pas cette virtualisation, cest--
dire la mme perte de contact avec la matire
(carton du plateau, plastique ou bois des
pions) qui freine dj le livre lectronique !
Quoi quil en soit, une nouvelle direction de
dveloppement ludique souvre avec
lEntertaible, dcouvrir sur www.research.phi-
lips.com/initiatives/entertaible.
BRVES
Nouveau mariage mobile ATI-Nokia
A
u cas o vous douteriez encore de lessor des
jeux sur mobiles, ATI et Nokia viennent de
conclure un partenariat long terme pour crer
communment des outils de dveloppement
ludique sur mobile. Leur objectif avou est, par la
diversit de leur offre (jeu mais aussi musique,
vido), dtablir un vritable standard en matire
de plate-forme et doutils. ATI doit donc fournir
lautomne prochain un kit de dveloppement logi-
ciel complet. Pour le promouvoir, les deux com-
pagnies organiseront alors mondialement des ate-
liers auprs des dveloppeurs professionnels.
80
Programmez n87 juin 2006
p80-81 18/05/06 18:38 Page 80
L
udique
Par Jean Michel Maman
Pour lHistoire
L
a Bibliothque du Congrs amricain vient
de lancer un " national digital preservation
program " qui vise assurer, entre autres, la
conservation des jeux vido. Le programme sap-
puie sur un appel doffres aux entreprises de
dveloppement US et mondiales pour dfinir des
procdures de stockage (soft) et des supports
hard viables une centaine dannes minimum.
De quoi se faire un bon Pac Man en 2124
Cecropia passe lActe
L
e studio de dveloppement indpendant et
trs alternatif Cecropia, compos de vt-
rans prestigieux de tous bords (Walt Disney
Interactive, Pixar, Dreamworks, Papyrus, etc.),
vient de sadjoindre les services de Ken
Fedesna et Andrew Miller pour lancer enfin son
fameux " filmgame ", The Act. Le concept est
unique : dabord, cest un jeu pour salle dar-
cades ; ensuite cest un scnario de comdie
romantique ; enfin, le joueur joue essentielle-
ment avec la psychologie des personnages
pour monter de niveau en passant les pi-
sodes de lhistoire. Strange, mais attention :
peut-tre un nouveau " concept-base ", on le
saura dici la fin de lanne. www.cecropia.com
La PS3 facile et sans zonage
L
a Games Developers Conference a apport
quelques claircissements sur la future
PlayStation 3, par lintermdiaire de Phil Harrison,
directeur excutif du dveloppement jeux de Sony
pour lEurope. On a ainsi appris que " tous les
jeux de la PS3 seraient dvelopps comme sils
sexcutaient depuis un disque dur ", ce qui sous-
entend que la PS3 en sera donc dpourvue, du
moins en standard Des jeux, comme dautres
contenus, pourront aussi tre tlchargs dans la
console, mais cette possibilit dpendra surtout
du taux et de la qualit du rseau de chaque
pays. Pour les autres, Sony continuera saccro-
cher sa technologie Blu-Ray de " super DVD ".
Harrison a par ailleurs confirm la rtro-compati-
bilit avec les titres PS1 et PS2, " avec parfois
quelques optimisations ". Il a aussi rvl que la
PS3 ne serait pas " zone ", cest--dire que tous
ses logiciels seraient mondialement utilisables. Il
a enfin voulu rassurer les dveloppeurs : " on a
beaucoup critiqu la PS2 pour ses difficults de
programmation. La PS3 apportera des perfor-
mances bien plus leves, avec des chips plus
efficaces au niveau du dveloppement. Tous les
outils que sont en train de crer de grandes entre-
prises nous le prouvent clairement, les dvelop-
peurs devraient vivre une exprience plus facile et
confortable sur PS3 ". Bref, tout sera pour le
mieux dans le meilleur des mondes ! Rponse
concrte en novembre ou plus tard !
MechCommander2 la source
L
e code source de
Mech Commander 2
est librement tlchar-
geable sur le site de
Microsoft et, en outre, il
est complet. Mieux
encore, il peut tre uti-
lis en conjonction avec
la prversion du XNA Build de mars dernier, outil
(toujours Microsoft) de gestion de complexit de
contenu. Ajoutez cela une documentation en
ligne intgrale et des tutoriaux spcifiques, plus
trois confrences, en ligne, dexplications de
Frank Savage, lead programmeur de Mech
Commander 2 (courant mai, voir comptes-ren-
dus sur Gamasutra, www.gamasutra.com).
Tlchargement : www.microsoft.com/down-
loads, recherche " mechcommander ".
La Wii mal dfinie ?
L
e manager gnral dElectronic Arts, Neil
Young, est connu pour son franc-parler. A la
dernire Game Developers Conference de San
Jose en Californie, il a clairement exprim son
scepticisme par rapport certains choix de
dveloppement de la future console de
Nintendo (qui ne sappelle plus Rvolution, au
cas o vous ne le sauriez pas, mais Wii). " Une
des difficults que va poser cette console est
que son affichage nest pas HD (Haute
Dfinition). Pour les jeux de stratgie en temps
rel, la diffrence est grande entre jouer sur un
cran tl distance et tout prs dun cran
dordinateur. Ainsi, la russite de Battle of
Middle Earth II sur Xbox 360 doit beaucoup la
qualit des contrles de la manette, mais sur-
tout la HD : les lments de jeu se visualisent
sur la TV distinctement depuis votre fauteuil. "
Young, qui a aussi suggr que la course la
puissance du hardware ne valait que si elle
sappuyait sur une bonne rflexion conceptuel-
le du dveloppement logiciel ( !), a finalement
avou prfrer, sous cet angle, la Nintendo DS.
Mastre en Haut Multimdia
L
'ESIEE et Gobelins, coles de la Chambre de
Commerce et d'Industrie de Paris, s'associent
pour proposer un Mastre svrement Multimdia!
Dnomm " Mastre Spcialis en Ingnierie des
Mdias Numriques " (MS IMN), il entend former
des professionnels aux technologies situes au
carrefour de l'informatique, des tlcommunica-
tions, et de l'audiovisuel. Cest vaste, et quand
mme flou Bref, du multimdia par excellence !
Le Mastre sera accessible aux titulaires dun
diplme scientifique Bac+5 (ou Bac+4 avec
conditions) et aux cadres en activit dans les sec-
teurs concerns. Une formation qui durera 12
mois, avec stage en entreprise de 6 mois et thse
lappui. Renseignements : www.esiee.fr
RTSquare stend aux plug-ins
G
PU-Tech, socit franaise, sest dj fait
un nom dans lindustrie du jeu vido avec
son logiciel de rendu 3D RTSquare, jusqualors
uniquement en version standalone. Ltape
suivante vient dtre franchie avec une version
en plug-in pour lincontournable 3DSMax, qui
est sortie dbut mai, et une autre en dvelop-
pement pour le grand concurrent Maya.
www.gputech.com
81
Programmez n87 juin 2006
p80-81 18/05/06 18:38 Page 81
ASP.Net 2.0 tape par tape

Auteur : George Shepherd

Editeur : Microsoft Press

Prix : 39
S
i depuis la sortie de
.Net 2.0, on peut
dvelopper des sites avec
ASP.Net 2e version, encore
faut-il en connatre les
bases. On dbute le livre
par ce quest une applica-
tion web, puis les
concepts des applications
ASP.Net. Lauteur dissque ensuite, lment
par lment, la technologie. Le propos reste
toujours clair et est illustr de nombreux codes
et copies dcrans. Il sagit dune excellente
base pour dmarrer avec ASP.Net. Petit
manque : pas de rfrence aux notions Web 2.
Ajax en pratique

Auteur : collectif

Editeur : CampusPress

Prix : 49
A
vec la folie Ajax, il est
temps de remplir sa
bibliothque douvrages
sur le sujet, mais encore
faut-il en trouver. On
dbute par la dfinition
du nouveau web, avant
les premiers pas sur Ajax,
prsentant le modle de dveloppement de
Javascript / Ajax. Ds le dbut, les auteurs met-
tent en garde : Javascript demande une
rflexion, une organisation solide. On apprend
ainsi comment architecturer un bon code Ajax,
notamment avec la notion de pattern, puis on
touche lapplication en elle-mme, le client et
le serveur. La scurit, les performances sont
aussi abords. La fin de louvrage se concentre
sur les outils, mme si les IDE Ajax ne sont pas
prsents. Un livre dintroduction qui permettra
de dbuter avec Ajax, mais il manque un vri-
table guide de rfrences et des cas concrets
dapplications Ajax. Dommage qu 49 euros,
aucun CD-Rom naccompagne louvrage.
Administration Linux
200 % tome 2

Auteur : collectif

Editeur : OReilly

Prix : 34
C
omment matriser au
mieux son systme
Linux, son administration,
tout en fouillant dans les
entrailles du Tux ? OReilly
vous propose une cin-
quantaine de nouvelles astuces, connues ou
non. Ce second tome se divise en 9 parties,
chaque chapitre ayant son thme. On pourra
dcouvrir la scurit par Kerberos, FreeNX, la
collaboration Wiki, le stockage, la journalisa-
tion, ou encore la rparation systme. Chaque
fiche est indpendante et fonctionne selon le
mme principe. On pose en quelques lignes le
" problme " et ensuite on explique.
Hacking interdit

Auteur : collectif

Editeur : Micro Application

Prix : 25,79
O
n dit toujours que
pour contrer le hac-
king, il faut connatre les
techniques employes. Cet
ouvrage a lambition de les
dvoiler aux utilisateurs
(trs) avertis. On dbute
par les outils de hacking et pour ce faire, les
auteurs passent par un outil de virtualisation
pour crer un environnement de test. Cette
premire tape passe permet de sattaquer
aux adresses IP pour les sniffer, les scanner.
Ensuite, on passe la protection des donnes
et de la vie prive, puis au mail anonyme ou
encore contre les caches que Google sait trop
bien montrer Les auteurs abordent aussi le
spam, lusurpation, les rseaux wifi, les virus
et, bien entendu, les mthodes directes dat-
taque, comme la force brute. Dautres tech-
niques y passent comme la stganographie et
la manire deffacer ses traces. Un livre utile
tous ceux qui sintressent la scurit. De
quoi passer de bonnes soires !
Java 5 Entranez-vous et
matrisez-le langage

Auteur : Alexandre Brillant

Editeur : Eni

Prix : 27
J
ava 5 introduit de
nombreuses nouveau-
ts et un modle de
dveloppement diff-
rent. Lobjectif est dac-
qurir les fondamentaux
de Java 5, et den abor-
der les divers aspects de
dveloppement. Comme de vrais travaux diri-
gs, on dispose dexercices et de QCM. Chaque
chapitre commence par la dure, les objectifs,
les pr requis ncessaires, le tout accompagn
dindices. Une bonne manire de jauger ses
connaissances Java.
Dans la mme collection : VBA Excel 2003
Gestion de projet
informatique

Auteur : Pascal Mangold

Editeur : Eyrolles

Prix : 12
L
a collection "compact"
dEyrolles permet en
une centaine de pages
dacqurir lessentiel du
sujet. La gestion dun pro-
jet informatique nest
jamais aise et ncessite
de nombreuses qualits.
Lauteur dcide ici dabor-
der le problme par le quotidien, les aspects
organisationnels, lhumain. Lauteur nhsite
pas avertir sur le mfait que peuvent avoir
les mthodes utilises et leffet pervers que
cela peut avoir sur le projet. Bien souvent, la
russite du projet, sa bonne conduite, dpend
de simples actions au quotidien. Bref, un livre
en forme daide-mmoire que lon devrait avoir
porte de la main, que lon soit dveloppeur,
dirigeant ou chef de projet !
L
ivres
82
Programmez n87 juin 2006
Par Franois Tonic
Ouvrages sur Eclipse
- Eclipse 3 pour les dveloppeurs Java (Dunod) : Pour expliquer la programmation Eclipse, le livre pro-
pose plusieurs vritables applications avec le code et les explications ncessaires. Pour les plus accros,
une partie se consacre la conception de plug-ins. Louvrage tente daborder lensemble de loutil, au
risque de passer rapidement sur certaines fonctions (linternationalisation, par exemple).
- Eclipse et JBoss (Eyrolles) : Lapproche de lauteur se veut avant tout pratique, en limitant les points
thoriques. Pour ce faire, la dmonstration du dveloppement J2EE Eclipse Jboss sappuie sur une
tude de cas concrte. On part des exigences avec la partie modlisation UML pour arriver au codage,
lutilisation des diffrents outils, du dveloppement des JSF et EJB.
Livres p82 18/05/06 18:39 Page 82
01-87 18/05/06 19:44 Page 6
M
M
E
P
J
J
C
X
W

-
-
S
P
W
O
01-87 18/05/06 19:44 Page 2