programmez100.pdf

100
Pro grammez! Printed in France - Imprimé en France - BELGIQUE 6,45 - SUISSE 12 FS - LUXEMBOURG 6,45 - Canada 8,95 $ CAN DOM Surf 6,90 - TOM 940 XPF - MAROC 50 DH 3:HIKONB=^UZ^Z]:?a@b@k@a@k; M 04319 - 100 - F: 5,95 E .NET • Mettre en oeuvre la 3D avec Nova SDK • Modifier le Ruban d'Office avec OpenXML • Programmation aspect sous .Net PHP Intégrer Flex et PHP 100 Les100 outils indispensables Les100 premiers éditeurs français Les100 mots à connaître Web 2.0 Comment référencer un site web 2.0 ? Spry : l'Ajax d'Adobe Web 2.0 Evénement : Sybase PowerAMC 12.5 100 Numéro Pro grammez! www.programmez.com Mensuel - Septembre 2007 - N°100 LE MAGAZINE DU DÉVELOPPEMENT La modélisation d’entreprise Numéro DÉVELOPPEUR, UN MÉTIER D’AVENIR ! DÉVELOPPEUR, UN MÉTIER D’AVENIR !

Upload: mamadou-diallo

Post on 10-Aug-2015

313 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: programmez100.pdf

Programmez!

Prin

ted

in F

ranc

e -

Impr

imé

en F

ranc

e -

BELG

IQUE

6,4

5 €

- SU

ISSE

12

FS -

LU

XEM

BOUR

G 6,

45 €

- Ca

nada

8,9

5 $

CAN

DOM

Sur

f 6,9

0 €

- TO

M 9

40 X

PF -

MAR

OC 5

0 DH

3:HIKONB=^UZ^Z]:?a@b@k@a@k;

M 0

4319

- 10

0 - F

: 5,9

5 E

.NET• Mettre en oeuvre la 3D avec Nova SDK• Modifier le Ruban d'Office avec OpenXML• Programmation aspect sous .Net

PHPIntégrer Flex et PHP

100Les110000 outils

indispensablesLes110000 premiers

éditeurs françaisLes110000 mots

à connaître

Web 2.0 Comment référencer un site web 2.0 ?Spry : l'Ajax d'AdobeWeb 2.0

Evénement : Sybase PowerAMC 12.5

100Numéro

Programmez!www.programmez.com

Mensuel - Septembre 2007 - N°100 LE MAGAZINE DU DÉVELOPPEMENT

La modélisationd’entreprise

NuméroDÉVELOPPEUR, UN MÉTIER D’AVENIR !DÉVELOPPEUR, UN MÉTIER D’AVENIR !

Couv 100 22/08/2007 16:54 Page 1

Page 2: programmez100.pdf

Couv 100 22/08/2007 17:12 Page 2

Page 3: programmez100.pdf

SOMMAIRE N°100

Programmez! - N°100 SEPTEMBRE 20073

Adobe Flex Builder 3.0 bêtaEnvironnement basé sur Flash, qui vous permettra decréer des applications évolutives exploitables partous sur la quasi-totalité des plates-formes. Windows

Adobe AIR bêtaLa technologie AIR permet de développer des programmes riches, connectés à Internet, sans avoirbesoin du moindre navigateur. Windows

Mono 1.2.6Implémentation open source de .NET. Linux

Eclipse Java EuropaProfitez de 21 projets de la fondation Eclipse dans lanouvelle distribution Europa.

Mainsoft for Java EE, EnterpriseEdition WindowsExécuter sur Linux ou toute autre plate-forme Javaune application web .Net.

VisualMainWin 5.1.1Pour faire tourner des applications ASP.NET écritesen C# ou VB.NET dans un serveur d'application JavaEE. Linux

Perforce Server / Perforce ClientOutil de gestion de configuration utilisé dans le processus de développement logiciel. Windows -GRATUIT (2 utilisateurs / 2 postes de travail)+ voir prise en main page 22.

Ilog JViewsEnsemble de composants et d'outils en Java pourréaliser des applications riches.

Supplément éditorial n°100Programmez!Programmez!LE MAGAZINE DU DÉVELOPPEMENT

Echa

ntillo

n gr

atui

t • N

e pe

ut ê

tre v

endu

sép

arém

ent •

Les

ver

sion

s pe

uven

t être

lim

itées

, sel

on le

s éd

iteur

s et

pré

sent

ées

en a

ngla

is o

u en

fran

çais

.

Eclipse EuropaProfitez de 21 projetsde la fondationEclipse dans la nouvelle distributionEuropa. Version Windows

Mono 1.2.6Implémentation open source de .NET. Linux

Mainsoft for Java EEEnterprise EditionExécuter sur Linux outoute autre plate-formeJava une applicationweb .Net. (Evaluation 30 jours) - Windows

VisualMainWin 5.1.1Faites tourner des applications ASP.NETécrites en C# ou VB.NET dans un serveurd'application Java EE. (Evaluation 30 jours) - Linux

Perforce Server & Perforce ClientOutil de gestion deconfiguration utilisédans le processus dedéveloppement logiciel. - Windows

GRATUIT (2 utilisateurs / 2 postes de travail)

Adobe Flex Builder 3.0 Bêta

Créez des applicationsriches, basées sur Flash,pour presque toutes lesplates-formes.

Adobe AIR BêtaDéveloppez des programmes riches,connectés à Internet, sans navigateur.Windows

IlogJViewsEnsemble de composants et d'outils en Java pourréaliser des applications riches.

Java

.Net

CD-Rom 100 PROGRAMMEZ !

> EditoNuméro 100, 100% développement ........................................................................................................................4

> ActusL’actualité en bref ..........................................................................................................................................................12Agenda ................................................................................................................................................................................14

> EvénementsExpression en version française..............................................................................................................................18Le tour de France de PC Soft ................................................................................................................................19

> InterviewTrollTech : expert en C++ et maintenant en Java ........................................................................................20

> Développeur : un métier d’avenir !96% des développeurs aiment leur profession ................................25Au cœur du code : les métiers du développement ........................26Salaires et emploi : les métiers du développement sont-ils rémunérateurs ? ......................................................................34

L’offshore : nouvel Eldorado du développement ?..........................39Témoignages ..........................................................................................42Les développeurs informatique ne veulent plus coder ..................44

> Spécial numéro 100Pionniers du logiciel ..............................................................................46Le Top 100 des éditeurs ..................................................................52

Les 100 outils incontournables ................................................53Les 100 mots à connaître ..........................................................60

> Dossier Web 2.0 (2e partie)Penser une architecture Web 2.0 ..........................................................................................................................67Accessibilité et référencement................................................................................................................................70Rentabilisez votre site Web 2 ..................................................................................................................................72

> Développement WebIntégrer facilement Flex et PHP ............................................................................................................................75Spry : l’AJAX selon Adobe ..........................................................................................................................................81

> TechniqueLes technologies AOP dans le monde .NET ......................................................................................................84

> CodeCMake, le make plus ultra des outils de construction ..............................................................................86Hébergez votre site dans un ordinateur PC " headless " Soekris ........................................................90Découverte du Nova SDK ..........................................................................................................................................93Modifier le ruban de Word 2007 avec Open XML..........................................................................................97

> Temps libreLivres ....................................................................................................................................................................................98

Programmez!Programmez!LE MAGAZINE DU DÉVELOPPEMENT

Abonnement : Programmez 22, rue René Boulanger, 75472Paris Cedex 10 - [email protected]él. : 01 55 56 70 55 - Fax : 01 55 56 70 20 - du lundi au jeudide 9h30 à 12h30 et de 13h30 à 17h00, le vendredi de 9h00à 12h00 et de 14h00 à 16h30.Tarifs abonnement (magazine seul) : 1 an - 11 numérosFrance métropolitaine : 45 € - Etudiant : 39 € - CEE etSuisse : 51,83 € Algérie, Maroc, Tunisie : 55,95 €

Canada : 64,33 € Tom : 79,61 € - Dom : 62,84 € Autrespays : nous consulter. PDF : 30 € (Monde Entier) souscription en ligne.

Rédaction : [email protected] de la Rédaction : Jean KaminskyRédacteur en Chef : François TonicOnt collaboré : F. Mazué, M. Chaize, J. Chable, G. Delamarre, G. Renard, L. Guillois, F. Dewasme, A. Vannieuwenhuyze, M. Vialette, A. Leblond, J. de Schryver, R. Bellenguez, Z. Chalal,D.Icbiah, J. Descombes, D. Catuhe, A. Verla. Dessin : MichelPiedoue. Images : tous droits réservésMaquette : AJE ConseilsPublicité : Régie publicitaire, K-Now sarlPour la publicité uniquement : Tél. : 01 41 77 16 03 [email protected] : Go-02 sarl, 6 rue Bezout - 75014 [email protected] - Dépôt légal : à paru-tion - Commission paritaire : 0707K78366 - ISSN :1627-0908 - Imprimeur : ETC - 76198 YvetotDirecteur de la publication : Jean-Claude Vaudecrane Le numéro comporte un CD Rom.

03_05 som 100 22/08/2007 17:17 Page 3

Page 4: programmez100.pdf

Numéro 100

Programmez! - N°100 SEPTEMBRE 20074

Edito

Le premier numérode Programmez avecen titre un projet deSun, quasi mythiqueaujourd’hui: la bagueJava ! Et aussi, plu-sieurs succès degrands gourous dudéveloppement.

N°1Avril 1998

Février 1999 - N°7Une image marquante et untitre enthousiaste : le supercode avec de nombreuxenvironnements de dévelop-peurs en pleine action. Enprime, il y avait un dossiermultimedia complet. Que desouvenirs…

Juillet-Août 2000 - Hors-sérieUn numéro spécial qui a faitdate dans l’histoire de Pro-grammez : le guide du déve-loppement Linux avec denombreux exemples, ducode, du matériel… Commequoi, cela fait longtempsque l’on traite du mondelibre et open source !

Juin 2000 - N°22Un web d’enfer, tout un pro-grammez ! Nous sommesnés avec la première explo-sion du Web et on le confir-me avec ce grand dossier.Le développement webdemeurera lié à Program-mez. Et en plus, en cadeau,nous avions mis BeOS 5 surle CD, un système devenumythique lui aussi…

Septembre 2000 - N°24Java, un monde incontour-nable pour le développeur.Pour la rentrée de l’an2000, un grand dossiercomplet sur les EJB ! Nousavions aussi du KDE, du For-tran.

Quelle idée de faire un magazine pour le développeur ! Et pourtant, c’est bienl’hypothèse de départ de cette revue, il y a déjà 100 numéros, soit 9 ans. Durantces années, le magazine a évolué. Une évolution naturelle due à celle du marché,de vous, lecteurs et de la presse en général qui demande un changementpermanent de la présentation, du contenu : la forme et parfois le fond.

Programmez ! et programmerJe sais que de nombreux lecteurs nous suivent depuis le n°1. Honte surmoi, je n’ai connu le magazine qu’au numéro 2 (mais j’ai depuis achetéle premier numéro). Et dès le numéro 3, je rédigeais mon premier articlepour Programmez ! Mon aventure a débuté par un simple mail à la rédac-tion, qui était alors dirigée par Matthieu Thfoin. Mais je n’ai pas intégréimmédiatement la rédaction : à cette époque je travaillais dans une SSIIen qualité de testeur et de développeur SGBD, tout en poursuivant mesétudes. Mais comme il faut bien choisir son métier, au printemps 2000,je fais mon apparition dans les murs de Sepcom, alors éditeur du maga-zine. Je me souviens encore du dossier sur la carte vitale, d’un énormedossier spécial sur les EJB ou encore de notre hors série Linux – Open

Numéro 100 22/08/2007 17:16 Page 4

Page 5: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 20075

100% développement !

Juin 2001 - N°33Le C++ fait aussi partie dela culture informatique etdonc de Programmez. Et cenuméro démontre bien notresouci de parler de tous leslangages.

Septembre 2001 - N°35Une des premières couver-tures sur .Net et l’annoncede sa déferlante. Nousétions en pleine pré-versionde Visual Studio .Net alorsque depuis un an, Microsoften parlait. Nous avionsaussi les habituels articlessur PHP, Python ou encoresur la programmation 3D.

Mars/Avril 2002 - N°41Numéro charnière pournous. Tout d’abord, la confir-mation de la révolution .netavec Visual Studio .Net et laversion finale de l’IDE. Etpour les vétérans du code,un point sur Cobol. Sur leCD, nous avions Open Officeet les outils C# alternatifs…

Septembre 2002 - N°45Une question lancinantepour les développeurs, lesentreprises, pour ou contreJava ? Dans ce dossier, nousdressions un tableau com-plet des deux mondes, avecdes différences pas aussimarquées qu’on aurait pu lepenser…

Source. Et même de mon tout premier texte de quelques lignes sur uncertain .Net (juin 2000)…

Des confirmations et des découvertesÀ Programmez, nous avons pu être le témoin, avec vous, des évolutionstechniques et technologiques, avec notamment la consécration d’Inter-net en l’an 2000, l’apparition, tout d’abord timide, au printemps 2000,de Microsoft .Net, de la déferlante Open Source et du logiciel libre engénéral, de l’incroyable succès d’Eclipse, de la guerre des bases dedonnées, de l’arrivée du web 2.0, des méthodologies ou encore du cyclede vie des applications…. Si pour moi, Java (première applet en 1996) et Linux (première install enautomne 1997) n’étaient pas une nouveauté, j’ai pu apprécier leur évo-lution, leur maturité mais aussi leurs faiblesses. La curiosité demeureprimordiale en informatique et notamment dans le développement. Avecles constantes annonces, sorties, et évolutions, il faut pouvoir com-prendre et réagir rapidement, tout en gardant la tête froide. Souvenez-vous des promesses mirobolantes sur XML ou les Web Services. Il afallu 5 ans avant d’arriver à maturité, SOA aura nécessité moins detemps pour être mieux conceptualisée mais il a fallu là aussi quelquesannées. Le Web 2 malgré son omniprésence suit le même processus.Et les bouleversements liés à l’open source, aux développements com-

munautaires, modifient déjà la relation développeur – application. IBMRational ne fait que confirmer le phénomène. Les clients auront le droitde tester, de modifier et d’améliorer le code des applications qui seront,ou non, intégrées par l’éditeur. L’utilisateur devient à la fois utilisateur,testeur, et parfois développeur au profit d’un éditeur.

Le développeur n’est pas mortJ’ai déjà eu l’occasion de l’écrire à denombreuses reprises dans Program-mez, non le développeur n’est pasmort. Trop souvent dénigré en France, ledéveloppeur reste la cheville ouvrière desapplications, des projets. Il y auratoujours des " pisseurs decode " et des artistes ouartisans. La questionest de savoir versquoi tend l’évolu-tion du métier. Il y a50 numéros, je pen-sais, sincèrement, àune spécialisation du

Numéro 100 22/08/2007 17:18 Page 5

Page 6: programmez100.pdf

EN BREF

Programmez! - N°100 SEPTEMBRE 20076

EN BREFEdito

Février 2003 - N°50Difficile de ne pas évoquerle n°50 de votre magazinepréféré. Avec deux titres unpeu provocateurs : C# est-ille nouveau langage univer-sel ? et Développeur, unmétier d’avenir ? Nous fai-sions un bilan de l’informa-tique, avec une dose defuturologie.

Juillet - Août 2003 - N°55Sans doute une des couver-tures les plus réussies avecle jeu Half Life. Le numérod’été de Programmez esttraditionnellement plus fun,plus ludique, plus orientévers le jeu. Ce numéro nedéroge pas à la règle avecun dossier jeu et une ques-tion existentielle, faut-il unstandard à Linux ? 4 ansaprès la question se posetoujours…

Mars 2004 - N°62Provocatrice comme on lesaime, cette couverture résu-mait bien la situation del’Open Source à la fin de l’hi-ver 2004 et des orientationsbusiness du Libre. OpenSource.com est devenu belet bien réalité.

Décembre 2004 - N°70La sécurité, un autre thèmeimportant pour Program-mez, même si les dévelop-peurs restent encore enretrait par rapport à ces pro-blèmes. Autre thème quel’on aborde régulièrement :la double compétence dudéveloppeur…

métier, au détriment du langage (le développeur devient multi-langage),plus encadré, moins libre. Désormais, l’homme sage que je suis (?), aun avis plus mitigé. Si l’offshore est une réelle menace (ou évolution),est-ce réellement le fléau que l’on décrivait il y a 2-3 ans ? Je ne lepense pas.Si au début, Programmez pouvait être perçu comme un magazine d’ama-teur (dans le sens noble du terme), de hobbyste, aujourd’hui, ce n’estplus le cas. Nous voulons toucher tout le monde : étudiant, développeuramateur, développeur pro, en SSII ou indépendant, chef de projet, archi-tecte, etc. Car finalement, le développeur n’est plus seul dans son coin,il fait partie d’un ensemble. À Programmez, nous avons aussi tenté, parfois en prêchant dans ledésert, de vous montrer toute la partie stratégique d’un langage, d’unetechnologie, d’un outil. Dire au développeur que son code n’est pasisolé mais fait partie d’un tout qu’il faut comprendre. Et que le choix detel ou tel outil ou technologie peut générer dans le cycle du projet, deserreurs, des contraintes impossibles. Car un projet est un tout, de l’ex-pression des besoins à la maintenance, et qu’il s’insère dans un envi-ronnement.Il y a plus de dix ans de cela, je faisais déjà des tests de non régression,des tests fonctionnels et manuels, je créais des protocoles de tests, dusuivi de tests. J’avoue que je suis toujours effaré de voir que le test estce que l’on sacrifie le plus facilement dans un projet ! Les chiffres don-nés par la dernière analyse HP m’ont stupéfait : un quart des entreprises(Amérique, Europe, France) supprimait les tests pour pallier un retard deprojet. Comme quoi, Programmez a une mission de sensibilisation. « Je vous donne rendez-vous dans 10 ans » ... pour le numéro 200 !■ François Tonic - Rédacteur en chef

L’aventure du CodeQuand le fondateur d’unepublication se penche sur sonpassé, il court le risque dejouer à l’ancien combattant.Tant pis, regardons un peudans le rétroviseur.

Un peu d’histoireFin 1997, il y a donc 10 ans, nous décidons de faire unnuméro hors-série " programmation " à la revue Compa-tibles PC magazine, que j’ai créée en 1987 (elle existe toujours, désormais éditée par Editions Larivière). La démarche est logique : PC magazine, destiné aux " hobbystes ", comporte depuis son origine un cahier deprogrammation. Un concours de Visual Basic par exempley a été organisé. La revue a lancé en France la mode desdisquettes, puis des cd-roms, et Visual Basic était offertsur une de ces disquettes.Dans les années quatre-vingt, car en dehors des ana-

Numéro 100 22/08/2007 17:21 Page 6

Page 7: programmez100.pdf

Les évolutions constantes des OS obligent votre équipe à s’adapter toujours plus vite auxévolutions des plateformes telles que Windows® Vista™, Mac® OS X ou Linux®.

Avec Qt® – l’environnement standard pour le développement d’applications performantes et multiplateformes – suivre le rythme des innovations des systèmesd’exploitation devient facile. Depuis plus de douze ans, Trolltech s’emploie à rechercheret incorporer dans l’API unique et multiplateforme de Qt les technologies spéficiques à chaque plateforme, préservant ainsi nos clients tels que Adobe®, Google® ou Skype™

des changements constants sur chaque plateforme cible. Qt prend en charge l’adaptationde ces évolutions et vous permet ainsi de vous concentrer sur l’aspect production pure de vos applications.

NOUS VOUS AIDONS À ALLER DE L’AVANT.

Pour en savoir plus, téléchargez dès aujourd’hui une version de test de Qt, gratuite, valable un mois: www.trolltech.com/futureproof

Qt BY TROLLTECH®

CODE LESS. CREATE MORE.

VOUS VOUS EFFORCEZ D’ADAPTER ENPERMANENCE VOS APPLICATIONS AUXÉVOLUTIONS DES SYSTÈMES D’EXPLOITATION.VOS APPLICATIONS FONCTIONNENT,MAIS QU’EN EST-IL DE VOTRE PRODUCTIVITÉ?

Trolltech, Qt, and the Qt logo are registered trademarks of Trolltech ASA in Norway and/or other countriesworldwide. All other trademarks are property of their respective owners.

Numéro 100 22/08/2007 17:22 Page 7

Page 8: programmez100.pdf

EN BREF

Programmez! - N°100 SEPTEMBRE 20078

EN BREFEdito

Février 2004 - N°72Un des numéros les plusmarquants : la fin du déve-loppeur ! Les avis diver-geaient, mais un constat sedégageait tout de même :menacé oui, la disparitionnon. Et finalement, 28numéros plus tard, peut êtreest-on moins pessimistesqu’en janvier 2005…

Décembre 2005 - N°81En quelques mois, l’universdes SGBD avait été secouépar l’arrivée des éditeurs surle marché des bases de don-nées gratuites, pour concur-rencer l’offre open source.Oracle, Microsoft, Sybase,IBM étaient arrivés sur cemarché. Nous avions été lespremiers à mettre sur notreCD, Oracle Database 10gExpression Edition.

Mars 2007 - N°95Comment parler de l’opensource sans tomber dansl’excès ou la caricature ?Depuis longtemps, nousvoulions parler des grandsprojets ouver ts mais ducôté coulisse : la gouver-nance, la communauté, lesrivalités, les développeurs.Un dossier qui a fait date !

Programmez n°100

L’âge de raison…

lystes-programmeurs, les passionnés s’essayaient sur lesPC -devenus accessibles-, à dépasser les limites du MS-Dos (eh oui !) et à s’initier à l’assembleur ou au basic,notamment avec les premiers outils Borland (Turbo Pas-cal) et Microsoft (Quick Basic).

De l’amateur au professionnelLe test est concluant et nous décidons de nous lancer àl’eau avec la création de Programmez, en avril 1998 (vousne pourrez y échapper : on sera bien obligé de faire un“Numéro 10e anniversaire” dans 7 mois !).Figurez vous que le choix du titre fut épique. Les dévelop-peurs consultés préféraient -déjà- le terme de "dévelop-peur" à celui de "programmeur". La revue aurait dûs’appeler "Développez" à l’époque… Mais je me rangeaisdans le camp des "programmeurs" car le terme paraissaitdavantage grand public, "hobbyste" et nous visions àl’époque les utilisateurs experts et amateurs. Que de chemin parcouru ! C’est peu dire que la program-mation est presque inaccessible aujourd’hui au commundes mortels. Elle est devenue une carrière, avec ses spé-cialités professionnelles. Les langages Basic et Logoapparaîtraient désormais comme des briques Lego pourenfants en bas âge.

L’avenir du papier Ne nous leurrons pas, le véritable challenge, et le véritablerival du magazine est l’Internet. Gratuit, instantané, il four-nit l’information demandée sur mesure : c’est le fast foodde l’information. La parade de votre magazine a d’abord été de vous fournirson service web, en complément. Et dès octobre, l’accèsaux archives sera ouvert, de façon privilégiée, pour lesabonnés !Mais je crois encore aux vertus du magazine " papier ".Les statistiques des temps de lecture du web se comptenten seconde. Pour un article de fond, pour apprendre ou seperfectionner, vous avez besoin de temps et de confort !Notre métier d’éditeur consiste à collecter et mettre enforme la meilleure information possible. Quel que soit lesupport. Enfin, le magazine conserve un atout magique, la serendi-pity, comme disent les anglo-saxons, c'est-à-dire la trou-vaille imprévue, au détour d’une page, la divine surprise.Sur Internet, on trouve, dans le magazine, on découvre.C’est en tout cas notre objectif, et nous ferons tout pourcontinuer à mériter votre fidélité.

■ Jean Kaminsky

Programmez!

Prin

ted

in F

ranc

e -

Impr

imé

en F

ranc

e -

BELG

IQUE

6,4

5 €

- SU

ISSE

12

FS -

LU

XEM

BOUR

G 6,

45 €

- Ca

nada

8,9

5 $

CAN

DOM

Sur

f 6,9

0 €

- TO

M 9

40 X

PF -

MAR

OC 5

0 DH

3:HIKONB=^UZ^Z]:?a@b@k@a@k;

M 0

4319

- 10

0 - F

: 5,9

5 E.NET

• Mettre en oeuvre la 3D avec Nova SDK

• Modifier le Ruban d'Office avec OpenXML• Programmation aspect sous .Net

PHPIntégrer Flex et PHP

100Les100 outils

indispensablesLes100 premiers

éditeurs françaisLes100 mots

à connaître

Web 2.0 Comment référencer un site web 2.0 ?Spray : l'Ajax d'Adobe

J’ai même rencontré des développeurs heureux !Salaires : la vérité • Histoire : les pionniers du logiciel.

Web 2.0

Evénement : Sybase PowerAMC 12.5

100Numéro

Programmez!www.programmez.com

Mensuel - Septembre 2007 - N°100 LE MAGAZINE DU DÉVELOPPEMENT

“ ”

La modélisationd’entreprise

Numéro

Numéro 100 22/08/2007 17:23 Page 8

Page 9: programmez100.pdf

IBM.COM/TAKEBACKCONTROL/INFO/FR

IBM, le logo IBM et Take Back Control sont des marques d’International Business Machines Corporation aux États-Unis, dans d’autres pays ou les deux. © 2007 IBM Corporation. Tous droits réservés.

_LE JOURNAL DE NOTRE INFRASTRUCTURE

_53e JOUR : Données, e-mails, vidéos... Nous sommes submergéspar les informations ! Elles sont enfermées dans des systèmescloisonnés. Impossible d’y accéder et de trouver la bonne info.

_Gilles réclame un coup de main, mais moi, j’ai le vertige!

_54e JOUR : J’ai la réponse ! Grâce aux solutions IBM degestion de l’information, nous avons une infrastructure quiregroupe l’ensemble des informations, où qu’elles soient.Les logiciels IBM centralisent et intègrent les donnéesstructurées et non structurées. Les serveurs et systèmes destockage IBM nous offrent la virtualisation dont nous avonsbesoin pour améliorer leur utilisation.

_Nos infos sont exploitables, nous prenons nos décisions lespieds sur terre... pas plus haut.

:HIKONB=^UZ^Z]:?a@b@k@a@k

100 100 100

Numéro 100 22/08/2007 17:24 Page 9

Page 10: programmez100.pdf

© 2 7 Microsoft Corporation. Tous droits réservés. Microsoft, Visual Studio, le logo Visual Studio, et « Votre potentiel, notre passion. » sont des marques de Microsoft déposées et/ou utilisées aux États-Unis et/ou dans d’autres pays.

MIC7 17P-DP 42 x285 Pirate.indd 1MIC7 17P-DP 42 x285 Pirate indd 1 15/ 5/ 7 11:29: 3

10-11 22/08/2007 17:27 Page 10

Page 11: programmez100.pdf

Votre défi : Créer des applis riches et dynamiques pour PC ou mobiles.

Vos armes : Utilisez Visual Studio et Windows Vista pour créer de la valeur et pas seulement des données.

Plus d’informations sur releveztouslesdefi s.com

MIC7 17P-DP 42 x285 Pirate.indd 1 15/ 5/ 7 11:29: 315/ 5/ 7 11:29: 3

10-11 22/08/2007 17:27 Page 11

Page 12: programmez100.pdf

EN BREF

IDE

Eclipse 3.3, Europa et nouveaux packages !Après avoir dévoilé Callisto, la fondation Eclipse a sorti, début de l’été,Europa, une véritable distribution packagée comprenant 21 projetsEclipse, le double deCallisto. Côté chif fre,Europa regroupe 310développeurs et 17 mil-lions de lignes de code.La principale nouveau-té est l’arrivée d’unensemble SOA pourcréer des ser veursd’applications et desoutils de développe-ment. Côté langage, les langages dynamiques font une apparitionremarquée avec le projet DLTK.Les projets les plus intéressants d’Europa sont : Equinox (service dedéveloppement et de déploiement d’un serveur d’applications), STP(SOA Tools Project), Eclipse Modeling (mise à jour du projet EMF suppor-tant les nouveaux mécanismes de Java 5), Mylyn (ex-Mylar, couche col-laborative), DLTK (Dynamic Language Toolkit). Europa se base surEclipse 3.3.La fondation en a profité pour refondre les packages développeurs, ondispose désormais de 5 packages ciblés : Eclipse IDE pour les dévelop-peurs Java, Java EE, C/C++ et Eclipse Classique.Classique est le package standard contenant l’IDE et les éléments debase mais sans les plug-in entreprise comme pour la modélisation, pourla gestion des données. La version 3.3 apporte de nombreuses nou-veautés : exploitation native de Vista par SWT, support de Windows Pre-sentation Foundation (cela devrait améliorer le développement sousWindows), accès direct à certaines fonctions pour aller plus vite, exten-sion de la fonction annulation, nouveaux éléments graphiques (notam-ment les onglets), mise à jour de la fonction de refactoring, splashscreen disponible via les API, possibilité de créer des tooltips plus com-plexes, nouvelles API pour MacOS X et GTK. Pour le futur, la fondationtravaille sur la version 3.4 dont les objectifs restent à définir clairement.Les performances constituent un axe important, ainsi qu’une améliora-tion des fonctions rechercher / remplacer. La M1 devrait être disponiblerapidement.

Visual Studio 2008 : les bêta sont làAlors que la gamme Visual Studio 2008 n’est pas attendue avant la finde l’hiver 2008, les développeurs peuvent déjà tester l’environnementen version bêta. On dispose ainsi des pré-versions des versionsExpress, Standard, Professionnelle et de Team System. VS 2008 est lapremière version à tirer pleinement parti de .Net 3.0 et de Vista, sansoublier .Net 3.5 et Office 2007. Le développement Office est désormaistotalement intégré dans Visual Studio, ce qui va faciliter le travail dudéveloppement. Le développement de Smart Client n’a pas été oubliéet bénéficie d’une profonde refonte. Avec l’apparition de .Net 3.5, VS

2008 supporte bien entendu l’ensemble des nouveautés : Linq pourl’accès aux données et surtout les évolutions des langages. La partieWeb bénéficie aussi d’une sérieuse refonte avec le développement Ajax,le support de Windows Communication Foundation ou encore de frame-work de Workflow. À noter la présence d’un éditeur XAML pour WPF ! Surle cycle de vie, VS 2008 s’intègrera toujours plus avec Team System.Côté test, l’IDE renforce les fonctions de tests unitaires et des tests demontée en charge.Pour utiliser VS 2008, passez de préférence par une machine virtuelleou sur une partition séparée de votre partition de travail. Si vous avezinstallé une CTP de .Net 3.5 ou d’Orcas, il faudra les supprimer.

NetBeans 6.0 : le chantier avanceComme chaque année, on attend la mise à jour majeure de NetBeans. Àl’heure où nous écrivons, nous en sommes à la M10 de la v6. La phasebêta doit intervenir en septembre pour une version finale fin novembre.Une des grossesnouveautés de la v6est le suppor t deRuby/Rails, commechez Eclipse. Lemodule d’installationet de mise à joursera lui aussi revu etcorrigé. Toute la par-tie développementweb bénéficie d’uneimportante modification (support des composants JSF Ajax, migrationdes projets Sun Studio Creator, meilleur support des CSS et de javas-cript). La mobilité (toujours pas disponible sous MacOS X) subit elleaussi une profonde refonte avec un éditeur de jeux Java, un nouveaudesigner mobile, de nouveaux composants (comme le PIM et les SMS),une gestion de projet améliorée. Sur la partie entreprise, UML et SOAbénéficient de nombreuses améliorations (éditeur graphique WSDL,interopérabilité avec les services .Net, édition des transformations dansl’éditeur XSLT…). La version 7.0 est déjà planifiée pour novembre 2008(les premières versions expérimentales arriveront vers octobre).

MyEclipse 6.0 sur les railsL’éditeur Genuitec travaille activement à la future version 6 de son édi-teur de développement phare : MyEclipse, distribution Eclipse bienconnue des développeurs Java. MyEclipse 6 supportera Eclipse 3.3 etEuropa. L’objectif de la v6 est de simplifier le développement Ajax enJava EE 5, améliorer le développement web en génération ainsi que lesupport de Windows Vista. La compatibilité des projets avec les ver-sions antérieures sera assurée au meilleur niveau possible (dixit l’édi-teur). Il faudra prévoir des tests de compatibilité avec le code existantavant de migrer. Parmi les nouveautés annoncées, on citera en vrac : undesigner JSF amélioré, un connecteur Glassfish revu et corrigé. La ver-sion 5.5 (sortie en mai dernier) avait permis de supporter Java EE 5,d’utiliser Eclipse 3.2, d’être compatible Vista et EJB 3.

Actu EN BREF

2

A LIRE dans le PROCHAIN NUMERODossier : Les API Google UML et le développeur

Octobre - N°101, Parution 30 septembre

12-13 22/08/2007 17:28 Page 12

Page 13: programmez100.pdf

21x285 indd 1 25/7/7 17:56:36

12-13 22/08/2007 17:29 Page 13

Page 14: programmez100.pdf

EN BREF

Programmez! - N°100 SEPTEMBRE 200714

IDE

CodeGear dévoile son agenda 2008 - 2009L’éditeur prépare activement l’avenir de Delphi. L’environnement doitsubir 3 mises à jour jusqu’en début 2009. La première est Highlanderqui doit sortir fin 2007. Il apporte le support complet de .Net 2 et lesdéveloppeurs pourront migrer de VCL à .Net avec VCL.Net. ECO IV sup-portera bien entendu .Net et ASP.Net 2 et bénéficiera d’un nouveaumapping de données. Delphi Tiburon doit fournir le support d’Unicode etdes génériques pour les développements Delphi / VCL. Sortie prévue :1re moitié 2008. Enfin, Delphi Commodore, fin 2008 / début 2009. Laprincipale nouveauté sera le développement 64-bit. Au-delà de Commo-dore, CodeGear prévoit le développement multicoeur et mobile, la possi-bilité de créer des applications RIA, de la cross compilation versd’autres systèmes (Linux ? MacOS X ?). Pour JBuilder, le planning est lui aussi très chargé. Pas moins de 3 ver-sions majeures jusqu’en 2009 : Bononza, Grasshopper et Optimus.Bononza se concentre sur le développement Web et Java EE avec de nou-veaux outils. De plus, son cœur sera basé sur Eclipse 3.3 et étendra lesliens JBuilder et StarTeam, le support du JDK 6. JBuilder 2009 (grasshop-per) supportera Eclipse 3.4 et continuera à étendre les fonctions de cyclede vie et de travail en équipe. Enfin, JBuilder Optimus (JBuilder 2010) sor-tant courant 2009 doit prendre en compte l’usine à logiciel pour compo-ser, assembler des applications. De plus, l’éditeur sortira prochainementJgear, 4 add-on pour JBuilder ou tout autre IDE basé sur Eclipse :- Performance for Eclipse : basé sur OptimizeIt, il inclut un profiler, unanalyseur de thread, une couverture de code, des fonctions de qualité.- LiveSource for Eclipse : construit sur Together LiveSource, il fournit unroundtrip pour créer des modèles UML à partir d’un code Java- Team Server for Eclipse : module de cycle de vie et de gestion de pro-jets, facile à installer, à configurer- Team Client for Eclipse : client pour se connecter à Team Server.Jgear doit évoluer lui aussi (la première version est disponible). Pour lespremiers mois de 2008, il est prévu Jgear Laredo pour prendre en comp-te Eclipse 3.3 (et être compatible JBuilder 2008). Toujours en 2008, sui-vra Jgear Bumblebee qui sera compatible Eclipse 3.4. Par ailleurs,CodeGear réorganise sa commercialisation. L’éditeur à nommé la socié-té OpenWay, du groupe Logix, comme distributeur exclusif pour la France.

WEB

4D supporte Dreamweaver4D propose depuis le milieu de l’été 4D Ajax for Dreamweaver. Il s’agitd’un plug-in pour la solution 4D Web 2.0. Il est maintenant possible d’in-tégrer des objets codés avec le framework 4D Ajax dans ses sites webcréés dans Dreamweaver CS3, sans ajout de code (dixit l’éditeur). " Eneffet, un simple clic sur une icône dans le plug-in 4D Ajax for Dreamwea-ver suffit pour ajouter dynamiquement des fonctionnalités du frameworkAJAX de 4D dans un document HTML Adobe DreamweaverTM CS3 "déclare Laurent Ribardière, président de 4D SAS.

SERVEUR

BEA lance sa virtualisationWebLogic Server Virtual Edition a été lancée fin juillet. La solution s’ap-puie sur une JVM spécialement adaptée : LiquidVM. Liquid VM est une

machine virtuelle Java basée sur celle de BEA, Jrockit. Il s’agit d’unetechnologie qui trouvera sa place dans les logiciels de l’éditeur. Maispour réaliser la virtualisation applicative, BEA a mis au point sur une ver-sion spéciale de WebLogic : WebLogic VE s’appuyant sur Liquid VM. Ilest capable de s’exécuter sur un hyperviseur de type VMWare (qui joue-ra le rôle de pseudo système) et ce, dans plusieurs instances. Cepen-dant, l’hyperviseur ne gère pas des éléments comme l’accès disques,aux fichiers. C’est donc à l’environnement de le faire. L’instance joue enquelque sorte le rôle d’un mount (pour monter les disques locaux ou dis-tants). La virtualisation applicative permet de consolider sa partie ser-veur comme on le réalise avec le matériel. Sur un même matériel, onpeut donc exécuter plusieurs instances de serveur d’application (iciWebLogic VE) et donc y créer des notions de disponibilité, de clustering,de montée en charge, etc.

QUALITÉ

SonarJ : nouvelle buildÉdité par Hello2morrow, Sonarj est mis à jour régulièrement. La build364 est la dernière actuellement disponible. Elle fixe un bug quand ondéplaçait des unités de compilations. Courant juillet, la build précédenteavait permis d’intégrer le plug-in Maven dans l’outil (plug-in Maven 2apparu en mai dernier).

Actu EN BREF

AgendaSEPTEMBRE19 Septembre 2007, Paris Espace Champeret, Salon emploi informaticienset ingénieurs IT. http://www.kavesta.fr/informatique/index.htm

Du 25 au 29 septembre, Paris, Paris Expo, Hall 5 - Porte de VersaillesApple Expo 2007. 24e édition. http://www.apple-expo.com/

Le 27 septembre 2007, Palais des Congrès Porte Maillot - Paris. Salon LesJeudis. www.lesjeudis.com

OCTOBRECNIT Paris La Défense, du 2 au 4 octobre 2007. ERP, Solutions E-ACHATS,Solutions MVI/CRM, Solutions BI, Serveurs & Applications, SolutionsDEMAT’, Solutions FINANCES. www.infopromotion.fr

Du 03 Octobre 2007 au 05 Octobre 2007. Paris Expo - Porte de VersaillesIP Convergence Expo - Réseaux - Télécoms - Médias. www.ipconvergence.fr

4, 5 octobre 2007, Paris, Cité des Sciences et de l’Industrie. Forum CAO-EMPLOIS 2007 - 2ème édition. Journées de Recrutements dédiés auxmétiers de la CAO (Conception Assistée par Ordinateur). www.caoemplois.com

2 séminaires organisés par Quest Software à Paris. 9 octobre 2007: Pourune gestion optimisée, automatisée et pro-active des performances(Oracle, SQL Server).16 octobre 2007: Une administration Oracle simplifiée avec le module DBAde TOAD. http://www.quest.com/events/

ETRANGERBarcelone du 15 au 18 octobre, Conférence Adobe Max. www.adobemax2007.com

Bruxelles du 23 au 25 septembre 2007 Progress Technology World 2007 La conférence européenne des développeurs Progress Softwarehttp://www.progress.com/ptw/2007/emea/registration/index.ssp

SÉMINAIRE GRATUITSybase PowerAMC 12.5

La modélisation à l’échelle de l’entrepriseLes nouvelles fonctionnalités - Ateliers - Cocktail20 septembre 2007, Paris, Bois de Vincennes,

Chalet de la Porte Jaune. www.sybase.fr

14 22/08/2007 17:29 Page 14

Page 15: programmez100.pdf

Co

mm

uniq

MDD - Model Driven Development

PowerAMC Un outillage complet de conception et d'analyse pour l'Architecture d’Entreprise : une approche pragmatique et incrémentale.

Pour beaucoup d'entre vous, MERISE est lapremière approche ayant offert plusieurs

niveaux d’abstraction et de vues et ayantposé les concepts de modélisation etd'Architecture d'Entreprise. Pour d'autres,UML s'impose comme un langage standardi-sé de modélisation en offrant une formalisa-tion commune aux maîtrises d'ouvrage et maî-trises d'œuvre, jusqu'aux architectes et déve-loppeurs. Sa notation apporte richesse dediagrammes et facilité de lecture pour repré-senter les différents points de vue de lamodélisation. UML rencontre le même succèsque MERISE, sans avoir la même portéeméthodologique. Pour les plus avancés, etnotamment pour les architectes et urba-nistes, le framework de Zachman émergecomme le standard de formalisation des com-posants de base de l'Architectured'Entreprise souvent utilisé dans les travauxde cartographie de l'organisation et des sys-tèmes d'information. Il est en revanche moinspopulaire auprès des communautés de déve-loppeurs ou des utilisateurs.

Bien que séduisante d’un point de vue théo-rique, chaque méthode propose ses avan-tages et inconvénients. Pour les plus globales,elles peuvent augmenter de façon significativela complexité et la documentation en raison deleur richesse. Elles peuvent par ailleurs géné-rer des problèmes d'appropriation. La combi-naison de ces facteurs risque à court terme decontrarier les résultats que les organisationsen attendent. Quoi qu'il en soit, les objectifsdont elles ne doivent pas s'éloigner sont defaire coexister et interagir au sein d'un mêmeréférentiel d'entreprise les modèles businesset les modèles techniques, d'assurer le suiviet l'analyse d'impact de tout changement surle système d'information et inversement detout changement informatique sur le business,en facilitant le dialogue entre maîtrise d'ouvra-

ge et maîtrise d'œuvre, en intégrant lesnormes et standards tout en conservant unecertaine indépendance car ils évolueront dansle temps.PowerAMC est utilisé à sesorigines pour la modélisa-tion des SGBD et dans lecadre de MERISE ;aujourd’hui, il couvre leplus large spectre de lamodélisation d'Entre-prise, et augmente sacouver ture à chaquenouvelle version. En prèsde 25 ans, PowerAMC a capi-talisé sur ses forces et complétésa couverture objet et processus, en restantl'outil préféré de conception et de générationde modèles de données dans l'hexagone.Il est le seul outil à offrir une forte intégrationentre les différentes techniques (données,objets, processus), et à être à la fois ouvert etaffranchi des méthodes ou standards, à l'in-verse de beaucoup d'outils qui restent soitattachés à certains standards, soit ne suppor-tent pas les nouveaux standards XML, UML,BPMN, etc. Pour les plus traditionnels, il est leseul à conserver la notation MERISE dont laR&D a su tirer la substantifique moelle pourconstruire des modèles logiques UML à troisniveaux de décomposition, tout en offrant sou-plesse, flexibilité et extensibilité de manière às'adapter à tout environnement.

Cela induit plusieurs avantages. Gage de cohé-rence entre les modèles, l’intégration faciliteles modifications à tout niveau du cycle dedéveloppement et réduit significativement lesefforts de développement et de réingénierieentre modèles. Elle favorise ainsi le partage etle dialogue entre maîtrise d’ouvrage et maîtri-se d’œuvre et améliore la productivité en déve-loppement.

Téléchargez la version d’évaluation dePowerAMC sur www.sybase.fr/downloadsPour en savoir plus, contactez-nous au

01 41 90 41 23

La modélisation de données est longtemps restée la méthode de conception de référence. Désormais,elle s’étend aux services et aux processus pour intégrer la dimension métier ou transverse dans laconception du système d'information. Leader historique de la modélisation de données, PowerAMC®poursuit aussi son évolution pour couvrir l'ensemble des aspects de la modélisation d’Entreprise. Ilintègre la modélisation de données, orientée objet et processus métier, et est complété par unréférentiel partagé qui garantit la productivité ainsi que la cohérence des métadonnées.

Si l'architecture d’entreprise va améliorer l’in-teropérabilité et l'agilité du système d'informa-tion, PowerAMC vous permet d'outiller vosdémarches d'architecture, de faciliter le dia-logue entre maîtrise d'ouvrage et maîtrised'œuvre et d'accélérer le déploiement de nou-velles solutions.

15 SYBASE POWER 22/08/2007 17:30 Page 15

Page 16: programmez100.pdf

EN BREF

CONSTRUCTEUR

Apple : nouveaux outils, nouvellesmachines… en attendant Leopard

Dans moins de deux mois, Apple doit sortir son nouveau système :MacOS X 10.5 alias Leopard. Très attendu depuis la disponibilité deWindows Vista, Leopard apporte de nombreuses évolutions et nouveau-tés telles que le bureau virtuel, un modèle de sauvegarde avec archiva-ge (Time Machine), de nouvelles librairies graphiques (Core Animation),une interface graphique modifiée. Il intégrera aussi l’application dualboot : Boot Camp. Pour mémoire, MacOS X est un système Unix 64-bit.Xcode (l’IDE d’Apple) subira une profonde refonte : évolution du langage(Objective C 2), support des nouvelles fonctions et API de MacOS X.Xray sera le compagnon indispensable pour tester, optimiser et analyserl’application. Il intègre Dtrace, outil de trace issu de Sun. En attendant, Apple a, courant août, mis à jour la gamme iMac et sur-tout la partie logicielle : iLife et iWorks. Côté développement, la nouvelleversion de iWeb. C’est un outil de conception de sites web d’une ergo-nomie redoutable. Le web 2 y fait son apparition. Ainsi, il devient trèsfacile d’intégrer une carte Google Maps ou une publicité AdSense. Surla partie album, on peut déposer 500 photos avec gestion automatiquede la pagination. Cette version semble toutefois souffrir de dysfonction-nement, une mise à jour est disponible pour fixer plusieurs problèmes,dont la publication de sites. Comme prévu, Apple a lancé fin juin le iPhone. Succès commercial, cetéléphone nouvelle génération sera disponible en Europe et en Francedans quelques mois. Il fonctionne sur un MacOS X modifié. Pour le déve-loppeur, Apple a lancé une section spéciale iPhone(developer.apple.com/iphone/). L’application iphone fonctionne viaSafari, le navigateur embarqué. On ne dispose pas réellement de SDK.Il faut coder en html, javascript, CSS, Ajax. Dès sa sortie, des dévelop-peurs et bidouilleurs ont tenté d’aller plus avant et surtout d’ accéder ausystème embarqué… Les outils de développement commencent aussià apparaître. L’un des premiers est WebOS AppsBuilder de Morfik. L’en-vironnement permet de créer des applications web 2 pour le téléphoned’Apple. Les développeurs internes ont pu porter des applications surce portable (comme un jeu d’échec). Rendez-vous à l’Apple Expo du 25au 29 septembre prochain à Paris Expo, pour en savoir plus.

WEB

Zend étend son royaume Zend a lancé durant l’été la 5e version de Zend Guard, solution pourgérer le déploiement des applications. Cette version supporte PHP 5.2.Elle propose une nouvelle interface (basée sur Eclipse RPC) avec unevue d’ensemble pour configurer les informations de l’application, gérerla sécurité (date expiration des fichiers encodés, configuration deslicences, obfuscation…). Et propose aussi un éditeur XML. Bref, un outilincontournable pour déployer en toute sécurité ses applications. Dispo-nible au prix de 960 euros HT. Zend et IBM étendent leur partenariatafin d’apporter à la plate-forme PHP des capacités de montée en chargede base de données pour aider PHP à mieux s’imposer dans les appli-cations critiques. Le travail se concentrera sur Zend Core for IBM et DB2afin de faciliter le déploiement des deux entités. L’accord prévoit unemeilleure intégration d’Express C dans Zend Core for IBM, un nouveausuppor t pour DB2, avecaccès aux serveurs de don-nées hautes performances,ou encore le support des par-titions System i Linux, Blade-Center System et desser veurs System X. ZendCore for IBM est une distribu-tion PHP certifiée et suppor-tée pour le développement etle déploiement d’applications. Elle comprend : Apache, PHP, le Zend Fra-mework et DB2 Express-C. Dernière heure : l’éditeur offre une remisede 15% sur l’ensemble de sa gamme aux lecteur de Programmez!www.zend.com/programmez

MODÉLISATION

Win’Design en version 8.0La version 8 de Win’Design est en cours de finalisation et sera dispo-nible courant septembre. Cette version propose trois nouveautés princi-pales :- un nouveau module d’administration avec une gestion complètedes droits d’accès.- Une meilleure gestion des profils avec accès auxparamètres, simplifié. - Une ergonomie améliorée, avec notammentl’ajout de nouvelles fonctions pour aider le travail de l’utilisateur. On dis-pose aussi d’un module Business Process fournissant toutes les vuesdu système d’information (processus métier, infrastructure, cartogra-phie…). Rappelons que Win’Design s’articule autour de 4 modules,autour d’un référentiel commun.: database, business process, object etUser Interface.

DISTRIBUTION

Kapitec distribue UnicaLa distribution française Kapitec distribue en France l’outil AffiniumNetInsight d’Unica. Il s’agit d’un outil de web analytique, dédié à l’opti-misation des sites et au marketing sur le web. Il transforme les donnéestransactionnelles en données décisionnelles pour être plus efficacedans le marketing et le business de son site.

Actu EN BREF

A LIRE dans le PROCHAIN NUMERODossier : Les API Google UML et le développeur

Octobre - N°101, Parution 30 septembre

16-17 22/08/2007 17:34 Page 16

Page 17: programmez100.pdf

Altova® XMLSpy ® 2007 – The industry standard XML development environment.

Plongez au cœur de l’intelligence XML

Avec XMLSpy® 2007, approfondissez votre

connaissance du développement XML.

Nouveautés dans l’application 2007 version 3:

l Intégration totale d’IBM® DB2® 9, le serveur de données pureXML l Prise en charge d’Open XML, le nouveau format de document Microsoft® Offi ce l Nouvelle fenêtre de requête pour bases de données, avec prise en charge de SQL, SQL/XML et XQuery l Nouvel éditeur CSS intelligent doté d’aides à la saisie contextuelles

Altova® XMLSpy, l’environnement de développement XML de

référence, est indispensable pour modéliser, éditer,

transformer et déboguer des applications

XML. Doté d’un designer graphique

original de schémas, d’un générateur

de code, de convertisseurs de

fi chiers, de débogueurs, de

profi leurs, d’une intégration

totale des bases de

données, d’une prise

en charge XSLT, XPath,

XQuery, WSDL, SOAP et d’une

foule d’autres fantastiques aides

et utilitaires XML, ce leader mondial

dans le domaine des éditeurs

XML vous permettra d’offrir une

nouvelle dimension à vos projets.

Vous aussi, devenez un génie

de la programmation !

Téléchargez XMLSpy® 2007 dès

aujourd’hui: www.altova.com

XMLSpy est également disponible au sein de MissionKit™, l’offre groupée Altova déjà primée.

16-17 22/08/2007 17:35 Page 17

Page 18: programmez100.pdf

EN BREF

Programmez! - N°100 SEPTEMBRE 200718

EN BREFÉvénements EN BREF

La gamme Expression est désormais disponibleen version finale et en français depuis plusieurssemaines. On dispose des outils suivants :- Expression Web : IDE pour développer dessites web statiques ou dynamiques avec leslangages Microsoft. C’est le remplaçant deFrontPage mais en beaucoup mieux !

- Expression Design : pour créer l’interfacegraphique de vos applications et sites avecillustrations et graphismes.

- Expression Blend : outil de conception etd’animation des inter faces, en 3D et enXAML. Il s’interface avec Visual Studio 2005Express pour le code et la gestion des projets.

- Expression Media : outil de gestion des élé-ments graphiques, projets, sons et vidéos.Disponible aussi sous MacOS X.

La famille Expression Media s’agrandira rapide-ment car l’éditeur travaille activement surMedia Encoder pour pouvoir générer des conte-nus vidéos (format Microsoft et VC-1, mais pas

EN BREF

Expression : en version française !Depuis 2 ans, Microsoft nous parlait de la gamme Expression. L’éditeur souhaitant investir le marché desgraphismes et du développement web professionnel, sur lequel les outils Adobe dominent largement.

de MPEG-4) puis de lespublier en quelques clics.On dispose d’un MediaPlayer qui joue le rôle delecteur pour les contenussi vous ne possédez pasExpression Media. Fonc-tionne sous Windows etMacOS X et est gratuit.Un package spécial estdisponible : ExpressionStudio, qui comprendtous les outils Expression

(Web, Design, Blend et Media) et inclut en stan-dard, Visual Studio 2005 Standard. N’oublionspas que Design ne sera pas vendu à part. Lepack coûte 599 dollars (environ).

Expression Design peut être considéré comme une version (très) simpli-fiée d'Adobe Illustrator. L'interface, qui ressemble à celle d'un logicielde graphisme vectoriel standard, est sobre et plutôt séduisante. Assezutilisable, Design risque pourtant d'être mis au placard assez vite. Eneffet, dans le cas de formes simples, Blend proposera une palette d'ou-tils suffisante. Si jamais elle ne vous satisfait pas, il y a fort à parierque celle de Design n'y parviendra pas non plus. En situation d'urgen-ce, vous pouvez toujours vous rabattre sur Illustrator. Créez vos objets,copiez-les et collez-les dans Design, oui, ça fonctionne ! Et pour unecohabitation complète entre Illustrator et les logiciels de la gammeExpression, essayez le plug-in développé par Mike Swanson "AdobeIllustrator to XAML" http://www.mikeswanson.com /xamlexpor t/.Expression Design ne remplace pas Illustrator mais le complète.

Expression Blend, l'occasion de mettre le nez dans le code...Si l'on fait rapidement le lien entre Expression Design et Illustrator, lerapprochement entre Expression Blend et Flash est encore plus évi-dent. Sans revenir sur l'étendue des fonctionnalités de Blend (cen'est pas le but de cet article), sachez qu'on y trouve tout ce qu'il fautpour créer des applications de A à Z et, oui, c'est possible, sans avoirà écrire une seule ligne de code. Dans la pratique, ceux qui désirentréaliser des choses plus complexes se rendront vite compte qu'on nepeut pas tout faire à partir de l'interface graphique de Blend et que,de temps en temps, on n'aura d'autre choix que de travailler directe-ment dans le code. Voilà pourquoi une bonne connaissance de XAMLse révèlera vite indispensable en conditions réelles. Enfin, un despetits détails agréables de Blend (qu'on retrouve dans Design) estl'outil de dégradés de couleurs, vraiment très pratique.

La collaboration graphistes/développeurs dans un projet WPF/SilverlightDans le cas d'un projet conséquent, l'équipe "idéale" sera constituéede développeurs d'un côté (sous Visual Studio), de graphistes del'autre (sous Blend), et d'un intégrateur. Cet intégrateur sera chargéde faire la passerelle entre les graphistes et les développeurs; il devradonc posséder de solides bases dans les différents domaines, avoiren tête les contraintes de chacun, et saura communiquer avec les unset les autres de manière à ce que tout le monde puisse se com-prendre. Très souvent, cet intégrateur n'existera pas. Développeurs etgraphistes devront donc collaborer étroitement et se mettre d'accordd'emblée sur le point sensible, à savoir l'intégration de la partie "inter-face graphique" dans la partie "code" (ou l'inverse). Et c'est là que les graphistes devront faire preuve de discipline : unenomination claire des objets sera indispensable. Pour une relationdurable, connaissance de XAML et notions de programmation serontles bienvenues. Attention, même sur des projets pas forcément trèslourds, Blend risque de "quitter inopinément" assez souvent et desralentissements sont à prévoir...

Pour conclure, l'utilisation de ces logiciels en production, qui n'ensont qu'à leurs débuts, est tout à fait possible, même si les utilisa-teurs devront rester indulgents. Pour ma part, je pense que l'enthou-siasme pour cette nouvelle technologie l'a nettement emporté sur lespetits désagréments causés par ces premières versions.

■ Antoine Leblond designer graphique indépendanthttp://www.tichat.com - [email protected]

Microsoft Expression Design et Blend en situation réelle

18 22/08/2007 17:35 Page 18

Page 19: programmez100.pdf

EN BREF

Le Tour de France de PC SOFTL’équipe technique de PC Soft a sillonné la France en début d’été pourillustrer les gains de productivité et les avantages techniques de laversion 11 de Windev, Windev Mobile et Webdev.Plus de 5000 développeurs et responsables informatique ont assisté àces présentations, selon Virgil Saramito, directeur des ventes, dontl’apothéose eut lieu à Paris, à la Mutualité (avec 1500 personnes),après Montpellier, Lyon, Nantes, Bordeaux, Marseille, Genève,Bruxelles, Lille et Strasbourg." C’est plus de 20% d’assistance supplémentaire, par rapport à 2006,sur ce Tour de France technique que nous organisons depuis 3 ans, pré-cise V. Saramito. Les clients sont friands de code, d’astuces, c’est uneformation gratuite "Nouveautés pour certains, rappels pour d’autres, les points développésabordent différents thèmes. La conférence débute avec la répercussiondes modifications, lorsqu’un champ est rajouté ou modifié dans unebase de données. Ainsi, une option de plus dans le champ civilité estpropagée à l’ensemble de l’application, Il suffit de synchroniser le pro-jet et l’analyse pour propager cette modification, ce qui s’obtient en cli-quant sur le menu Projet, autres actions. L’ensemble des champs liés àla rubrique civilité est affecté par cette modification unique. On nerisque pas d’oublier un champ perdu au milieu d’un projet géant.Ce simple exemple donne le ton de la conférence, qui impressionne parsa simplicité autant que par l’efficacité de sa compréhension. L’équipede PC SOFT a automatisé ce qui peut l’être, minimisant l’effort du pro-

grammeur. Plus complexe, l’analyse d’impact présente les consé-quences d’une modification. Par exemple si un paramètre est supprimé,on verra s’afficher l’ensemble des lignes de code où l’élément bientôtfantôme est encore utilisé.On l’aura compris, ce tour de France poursuivait deux buts au moins.D’un côté, séduire les prospects qui désireraient acheter. Et de l’autreconvaincre les utilisateurs qu’il existe une pléthore de fonctionnalitésqui n’ont probablement pas encore été explorées. ■ Jacques De Schryver

Actu EN BREF

19 22/08/2007 17:44 Page 19

Page 20: programmez100.pdf

EN BREF

Programmez! - N°100 SEPTEMBRE 200720

Interview EN BREF

ploitation (pour répondre à lademande du marché) peut complè-tement changer la donne ;

- des problèmes de performances etde convivialité natifs peuvent seposer ;

- l'équipe en charge du développe-ment doit penser en terme de multi-plate-forme, et non d'uneplate-forme unique.

Ces problèmes et la façon dont Qtpermet de les résoudre sont présen-tés dans un séminaire web quenous mettons à disposition surnotre site (Overcoming the Chal-lenges of Cross-Platform, Rich-ClientDevelopment).

P. : Quel jugement avez-vous sur lemarché mobile et les technologiesmobiles en général ?B.S. : Le marché mobile représenteun domaine qui est, lui aussi, enpleine évolution et passionnant.Trolltech perçoit très bien le poten-tiel du por tage des applicationsbureautiques sur des appareilsmobiles. Les développeurs Qt peu-vent facilement maîtriser Qtopia,notre plate-forme de développementlogiciel mobile reposant sur Qt, afinde cibler les appareils mobiles. Enoutre, grâce aux progrès des techno-logies mobiles, des applicationsinnovantes basées sur le web peu-vent être mises à disposition surdes téléphones du marché demasse. Le marché mobile est unespace à étudier de très près, etTrolltech y est au cœur. ■ François Tonic

TrollTech : expert en C++ et maintenant en JavaTrolltech est un éditeur bien connu des développeurs C++ qui veulentconstruire une interface graphique multi-plate-forme, et la librairie Qt rendbien des services. L’éditeur a récemment lancé la version Java, en plus desdéclinaisons Windows,MacOS X,Linux et mobile. Nous avons posé quelquesquestions à Benoit Schillings (Chief Technology Officer de Trolltech) pour ensavoir plus sur leur vision du marché et leur technologie.Programmez : Quelle est la roadmappour les prochains mois ? Quellessurprises attendre ?

Benoit Schillings :Le développementde logiciels resteun domaine pas-sionnant. Trolltecha créé TrollLabs,

qui permet de voir sur quelles nou-velles technologies nous travaillons.Cer tains éléments pourront êtreincorporés dans Qt, d'autres devien-dront de nouveaux produits. D'autresencore ne seront pas développésdavantage. Par exemple, TrollLabscontient des informations sur WebKitQt, un moteur de navigateur dans Qtque nous développons. Nous envisa-geons également Qt pour la plate-forme WinCE.

P : Quelles actions allez-vous meneren France autour des solutions Qt ?B.S. : Nous avons fait récemment untour de France en proposant des QtQuickStarts dans diverses villes. LesQuickStar ts sont des introductionsd'une journée à l'utilisation de Qt,destinées aux développeurs qui s'in-téressent au développement multi-plate-forme. Elles ont rencontré unfranc succès et nous allons sansdoute en organiser d'autres cetteannée, mais nous n'avons pas encorearrêté de dates.

P : Trolltech a sorti une édition Javade la librairie Qt, pourquoi cettedécision ? Quelles différences tech-niques entre la version C++ et la

version Java ? Quelle version deJava faudrait-il, et quels seront lesIDE supportés ? N'avez-vous paspeur des performances de Qt Java ?B.S. : Qt Jambi accroît les avantagesdu développement multi-plate-formepour les développeurs Java. Desenquêtes externes et nos propresétudes clients indiquent que les déve-loppeurs C++ souhaitent introduireJava dans leur développement et qu'ilexiste un vaste marché de dévelop-peurs Java. De plus, nous demandonstous les ans à nos clients leurs préfé-rences de langage, et Java est ressorticomme un choix clair. Il n'existe pas dedifférences majeures entre les deuxversions, hormis le fait que Qt Jambipermet le développement Java dansQt. Il supporte également Eclipse. AvecQt Jambi, bon nombre de problèmesde performances liés au seul Java sontéliminés. Nous vous invitons à télé-charger la librairie et à le constater parvous-même.

P : L'inter face des systèmes aconsidérablement évolué depuisquelques années. MacOS X fut l'undes premiers à introduire massive-ment la 3D, les effets, une nouvellegénération d'interface (ainsi queles librairies Quartz et le CoreImage), Vista fait la même chose etGNU Linux aussi. Que pensez-vousde cela ? Quels défis pour le déve-loppeur ?

B.S. : Comme vous le soulignez, ledéveloppement a considérablementévolué. Il est nécessaire de parvenir

à un développement efficace entreles diverses plates-formes. Lesdéveloppeurs sont chargés d'intro-duire ces nouveaux éléments d'inter-face utilisateur efficacement entrede multiples plates-formes. C'est làque Qt entre en jeu. Qt peut aider lesentreprises à commercialiser leursproduits plus rapidement en se char-geant du code sous-jacent, ce quipermet aux développeurs de l'entre-prise de se concentrer sur leurvaleur fondamentale. En outre,comme Qt est multi-plate-forme, lesentreprises peuvent cibler aisémentdifférentes plates-formes.

P. : Quels sont les points communset les différences quand on déve-loppe sur Windows, Linux etMacOS X avec Qt ? Quels piègesfaut-il éviter ?B.S. : Les équipes de développe-ment logiciel sont souvent confron-tées à un compromis difficile : lesperformances ou la portabilité. Ledéveloppement d'applicationsclientes riches et multi -plates-formes peut être un processus coû-teux et long, utilisant des structurespropriétaires distinctes pour chaqueplate-forme ciblée. Parmi les défistypes, on trouve :- des problèmes de taille et de com-plexité, par exemple ;

- de nouveaux impératifs fonction-nels imposent des améliorations enparallèle dans tous les ports ;

- dif férents systèmes d'exploitationévoluent hors synchronisation ;

- l'ajout d'un nouveau système d'ex-

NOUVEAU : donnez votre avis sur ce numéro www.programmez.com

20 22/08/2007 17:37 Page 20

Page 21: programmez100.pdf

EN BREF

Webcasts exclusifs les 9 et 16 octobre 2007Optimisez le développement et simplifiez l’administration

de vos bases de données multi plateformes

SGBD EN BREF

Lors de ces webcasts,

vous découvrirez les meilleures méthodes pour

simplifier la gestion quotidienne

de vos bases de données et

diagnostiquer rapidement

les sources de dégradation

des performances.

Assistez à ces webcasts :http://www.quest.com/fr/

Oracle 11g disponible !En pré-version depuis plusieurs mois, c’est mi-juillet que l’éditeur Oracle alancé officiellement (et au niveau mondial) la version 11g de sa base dedonnées. Oracle met en avant plusieurs fonctions : la qualité de service, lasécurité des données, la haute disponibilité 24 / 7, la montée en charge etla mise en place à " bas coût " des grilles informatiques. L’éditeur préciseque 400 fonctions ont été modifiées, améliorées ou introduites dans cette11g. L’un des défis fut de proposer aux entreprises une qualité de serviceoptimale dans la haute disponibilité et les grilles informatiques. L’éditeur acontinué son travail sur la configuration, l’installation et l’administration,afin de simplifier le travail des DBA et administrateurs. L’auto-configurationet les automatismes devraient aider les responsables au quotidien (l’auto-configuration étant une tendance forte dans les environnements de don-nées). Pour la gestion du changement, Oracle 11g introduit Oracle RealApplication Testing, pour aider les clients à tester et à gérer le changementdans leur environnement de production. Côté sécurité des données, la repri-se d’activité après un crash est un autre point important de cette 11g avecun mécanisme de partionnement et de compression des données. En pointde mire, en plus de la reprise d’activité, le cycle de vie des données, uneautre tendance forte du marché. La compression a bénéficié d’une atten-tion particulière car cela permet de minimiser la place physique mais aussid’optimiser le stockage ou encore la transmission des données. À cela serajoute une refonte des larges objets (LOB) pour accueillir plus facilementdes données de différents types et plus volumineuses. Le XML n’est pasoublié avec le support natif et la possibilité de stocker des données XML

dans la base. D’autre part, Oracle lance aussi des sessions d’entraînementOracle 11g dans son université maison. Côté développement, Oracle met àniveau les outils de développement pour tirer parti des nouveautés d’Oracle11g (Oracle Application Express). L’environnement embarque un nouveaucompilateur Java JIT, une intégration native avec Visual Studio 2005, la pré-sence d’un outil de migration d’Access à Oracle ou encore un codage enSQL et PL/SQL amélioré. Pour la version express rien n’est encore annoncé,mais 11g sera sans aucun doute disponible en version express. La versionLinux a été dévoilée mi-août. D’autre part, l’éditeur en a profité pour étofferson offre Entreprise Edition de la base de données qui comprend désormaisles éléments suivants : Real Application Testing, Advanced Compression,Total Recall et Active Data Guard. L’outil Compression doit compresser lesdonnées avec un ratio de 2 à 3. Total Recall permet de faciliter l’administra-tion des archives et de mieux gérer l’historique et les changements de don-nées.

Firebird 2.1 arrive bientôtLa nouvelle version du SGBD open source, Firebird, la 2.1, est actuellementen développement. La bêta est disponible depuis plusieurs semaines. Cetteversion apporte une nouvelle implémentation des triggers, la possibilité decréer des requêtes récursives dynamiques, des améliorations dans le langa-ge SQL et sur le support d’Unicode. Côté plate-forme, l’environnement fonc-tionne pleinement sur 32 et 64 (dont Windows 64). La partie sur l’interfacedistante a été largement améliorée et on peut aussi faire du mirroring debase via SQL. Actuellement, la version stabilisée est la 2.0.1.

21 SOFTWARE 22/08/2007 17:37 Page 21

Page 22: programmez100.pdf

EN BREF

Programmez! - N°100 SEPTEMBRE 200722

Perforce, système de gestion de configuration logicielle, est disponiblesur de nombreuses plate-formes, si vous souhaitez tester Perforce surune plate-forme différente de Windows, consultez le lien suivant :http://www.perforce.com/perforce/demo/testdrive.htmlLa version du serveur incluse sur le CD comporte toutes les fonctionna-lités offertes par Perforce mais est limitée à deux utilisateurs et à cinqespaces de travail.

Installation de Perforce dans un environnement WindowsL’installation du ser-veur Per force s’effec-tue par l’exécution duprogramme d’installa-tion " perforce.exe ". Apar tir de l’écran desconfigurations Per for-ce, choisissez l’option" Per force Administra-tor Install (Typical) ",

puis continuez avec les écrans suivants en conservant les paramètrespar défaut. Si vous avez des privilèges d'administrateur Windows, unservice Perforce sera créé pour vous avec un démarrage automatiquedu service. Si vous n'avez pas de privilèges d'administrateur, vousdevrez démarrer le serveur Perforce manuellement en exécutant la com-mande " p4d.exe " à partir d’une fenêtre de ligne de commandes.L’installation du client visuel Perforce P4V s’effectue par l’exécution duprogramme d’installation " p4vinst.exe ". Parcourez les différentsécrans d’installation en conservant les paramètres par défauts.

Premiers pas avec Perforce

Pour utiliser Perforce pour la première fois suivez ces étapes :1. Exécutez P4V à partir du menu Perforce2. A partir de la fenêtre des connexions cliquez le bouton " New " du

champ " Open Workspace "3. Donnez un nom à votre espace de travail et cliquez le bouton " OK "4. Entrez " c:\p4clients\mon_espace " dans le champ " Root " et

cliquez le bouton " Save "5. Cliquez le bouton " OK " de la fenêtre des connexionsLes étapes suivantes vous permettent d’ajouter vos premiers fichiersdans le dépôt Perforce :

1. A partir de l'explorateur de fichiers Windows, créez une arbores-cences tests incluant des sous dossiers et fichiers sous le dossier " c:\p4clients\myws " (à créer)

2. A partir de P4V, sélectionnez l’onglet " Workspace " (en bas àgauche) et appuyez sur la touche F5 pour rafraîchir l’arborescence devotre espace de travail

3. Sélectionnez l’arborescence créée au préalable et avec le boutondroit de la souris cliquez " Mark for Add "

4. Cliquez le triangle rouge de la barre d’outils (Ctrl+1) afin de visualiservotre premier " changelist "

5. A partir de cet écran (" Pending changelists "), sélectionnez "default"et avec le bouton droit de la souris cliquez " Submit "

6. Entrez une description pour votre " changelist " et cliquez le bouton " Submit "

Les étapes suivantes vous permettent de créer de nouvelles révisionspour les fichiers dans le dépôt Perforce :1. A partir de l’arborescence de votre espace de travail, sélectionnez un fichier2. Double cliquez le fichier afin de modifier son contenu à partir de l’édi-

teur défini par défaut pour l’extension du fichier3. Sélectionnez le fichier et avec le bouton droit de la souris, cliquez la

commande " Submit "4. Entrez une description pour votre nouveau " changelist " et cliquez le

bouton " Submit "

Allez plus loin avec PerforceCeci n’est qu’un rapide aperçu de ce que vous pouvez faire avec Perforce. Perforce offre bien d’autres fonctionnalités avancées comme le Revi-sion Graph et le Time Lapse View.

Un ensemble de vidéos démontrant les fonctionnalités les plusattrayantes de Perforce sont accessibles à partir de http://www.perfor-ce.com/perforce/demo/testdrive.html

En cas de problèmeComme vous avez pu le constater, Perforce est très facile à installer et àutiliser. Dans l’éventualité d’un problème d’installation ou pour touteautre question au sujet de Perforce, n’hésitez pas à contacter le sup-port technique de Perforce ([email protected]) réputé pour sondynamisme et son efficacité.

Actu EN BREF

Installation et démarrage de PerforceUn système rapide de gestion de configuration logicielle

Sur le CD ROM

22-Perforce 1p 22/08/2007 17:46 Page 22

Page 23: programmez100.pdf

Communiqué

MDD - Model Driven Development

L’expertise C# pilotée par le modèle UML

Comment tirer parti au mieux de la modé-lisation UML à des fins de productionautomatisée d’un code de qualité,

maintenu en cohérence avec le modèle ? L’approche MDA qui consiste à exploiter lemodèle par des mécanismes de transforma-tion répond précisément à cette problématiqueen assurant également la traçabilité entre lecode généré et les modèles. Avec Objecteering6, Objecteering Software met à disposition desdéveloppeurs C# une nouvelle génération d'ou-tils de développement guidé par le modèle, ens'appuyant sur les dernières avancées deMDA de UML2.1 et de C#.

Un haut niveau de services de guidageet d’automatisation dédiés C#Objecteering 6 guide et automatise le dévelop-pement C# en apportant la puissance de UMLet MDA à la plate-forme Visual Studio .Net, deMicrosoft. Il apporte :• Une production automatisée du code C#,

toujours cohérente avec le modèle,• Le support de patterns de conception pour

plus de productivité,• Une production de documentation .Net auto-

matique, pour une aide en ligne HTML,MSDN ou Visual Studio.

• Un support complet de C# 2.0 à partir de UML2• Une génération automatisée de la chaîne de

production (Makefile) à partir du modèle• Un support dédié du travail en équipe, avec

des " composants de modèles " assurant ladiffusion de parties applicatives C#/UMLvers d’autres équipes.

• Un reverse engineering C# (source et .net assem-bly) pour reprendre les applications existantes

• Un paramétrage puissant et aisé, à l’aide dugénérateur, permettant d’adapter la généra-tion de code C# à son contexte avec la tech-nologie MDA.

La richesse de UML2 traduite en C#Objecteering 6 exploite au mieux les nouvellescapacités du standard UML 2.1. Les templatesUML2 permettent ainsi efficacement de modé-liser et générer les generics C#. La gestion desréférences d’ assemblies, couplée à un servicede contrôle de cohérence sur leur bonne utilisa-tion permet de gérer finement les modes d’im-port C# avec leurs diverses options d'emploi.Les associations sont pleinement exploitées,

pour déduire les librairies de container appro-priées. Les attributes sont supportées à partirdu modèle. Une assistance experte C# appor-te un gain de qualité et de productivité auniveau du modèle. Par exemple, des règles denommage par défaut sont supportées et lagestion des event, delegate, property, indexeret C# container est intégrée à l’outil.

Une gestion de cohérence modèle/code permanenteAvec Objecteering 6, le modèle est le code : ledéveloppeur complète le modèle UML par l’al-gorithmique des méthodes, tout en étant guidédans l’outil. La modélisation est intégralementexploitée, l’utilisateur n’ayant jamais à refor-muler le modèle en C#. Les compléments decode sont attachés aux éléments du modèle,stockés dans le référentiel. A chaque instantla cohérence du modèle UML et du code C#est garantie. Le développeur peut ainsi éditerson application au niveau modèle sous Objec-teering ou au niveau code sous Visual Studio:quand le modèle est modifié, Objecteering re-génère le code de façon incrémentale et quandle code est modifié, il assure la mise à jour dumodèle via son référentiel.

Une ergonomie dédiée au programmeur C#Au sein du modèle UML, le développeur bénéfi-cie d’une interface utilisateur spécifique C# : ilretrouve les notions C# (iterator, override, sea-

Objecteering Software, éditeur de l’atelierObjecteering 6, est le spécialiste françaisUML/MDA pour le développement d’applica-tions guidé par le modèle. Sa suite d’outils couvre le cycle de vie de la ges-tion des exigences jusqu’au déploiement del’application pour les cibles Java/J2ee, C#.Net,C++, SQL, Corba et Fortran.

Pour plus d’informations :[email protected]

Tél. : 01 30 12 16 60

Objecteering 6 optimise MDA et UML2 pour générer un code C# d’un haut niveaud’expertise : il maximise la productivité et la qualité des développements C#.

led, etc.), dispose de boites de saisie dédiée,et de diagrammes UML spécifiques. Il disposede services dédiés C# (Ndoc, patterns, etc.)pour rendre son modèle encore plus productif.

Les gains MDA au-delà du codeArchitecturé depuis l’origine pour uneapproche MDA optimisée, Objecteering per-met de combiner les avantages du modèle,son indépendance des plateformes cibles et laproductivité en programmation. Son supportmulti-langages permet de réaliser des dévelop-pements combinant C#, C++, Java, SQL, etc.Le support intégré de l’analyse des besoins et dudictionnaire permet d’assurer une traçabilitémaintenue depuis les exigences jusqu’au codedans un même environnement.

Objecteering 6 : Diagramme de classes, assistant C# et code généré.

22-Perforce 1p 22/08/2007 17:46 Page 23

Page 24: programmez100.pdf

Dossier

Développeur : un métier d’avenir !

tions, bref être une source d’initiatives,une force de proposition.

Veille technologiquePour évoluer et rester à la pointe, le déve-loppeur doit surtout avoir un esprit ouvert,regarder ce qui se passe en dehors de sondomaine. Etre sectaire n’est pas un avan-tage. La veille technologique reste un tra-vail indispensable, ainsi que la formationou l’auto formation. Mais la SSII ou l’entre-prise doit aussi comprendre que pour main-tenir des développeurs à leur meilleurniveau, il faut investir et non pas attendrequ’ils fassent eux-mêmes la démarche. Lavalorisation du métier constitue un immen-

se défi en France (mais pas seulement). Sinotre pays veut continuer à peser sur lemarché technologique, il nous faut desdéveloppeurs haut de gamme, bien forméset compétents. Si la tendance pour lesentreprises est de dégrossir le serviceinformatique, le risque est de perdre, àterme, des compétences et une maîtrisetechnique concurrentielle au sein de lasociété. La logique purement financière ases limites… Dans ce grand dossier spécial, nous allonsvous montrer que le métier a évolué maisqu’il demeure dynamique.

■ François Tonic

Le métier continue d’évoluer, de muter. Onaura toujours besoin de développeurs purset durs, même si cette demande se rédui-ra, hormis dans des secteurs très préciscomme l’embarqué, le mobile qui nécessi-tent de fortes compétences techniques. Leniveau technique du développeur constitueun élément important. Si en plus, notredéveloppeur maîtrise plusieurs langages etun large éventail de technologies, il devientalors un développeur polyvalent plus qu’in-téressant. Le développeur mono langageest bel et bien mort, même dans le web. Parler de double compétence n’est pas unenouveauté. Aujourd’hui, un développeurtravaille de moins en moins tout seul, ildoit posséder un esprit collaboratif pourcommuniquer avec l’équipe, son environne-ment. Il doit aussi pouvoir posséder descompétences architecturales et métierspour comprendre le projet globalement etnon plus dans son petit coin. Mais au-delàde cela, le développeur doit aussi êtrecapable d’apporter des idées, des solu-

Fini pour les uns, plein d’avenir pour les autres, le développeur demeure un objet codant non iden-tifié. Il y a quelques années, on prédisait la mort du développeur. Force est de constater que cela n’apas été le cas, et c’est tant mieux.

24-33 métier3 22/08/2007 17:47 Page 24

Page 25: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200725

96% des développeurs aiment leur profession

Selon le Syntec Informatique, la quasi-totalité des développeurs a une perception très positive deson métier. Explications.

Le Syntec Informatique a présenté lebilan 2006 et les perspectives 2007dans les logiciels et services (L&S) : ce

domaine, en forte croissance, se porte bien.Le Syntec a également dressé la " cartogra-phie " du métier de développeur informa-tique : 87% d’hommes, 33 ans de moyenned’âge. Autre caractéristique : c’est une popu-lation très qualifiée, dont la moitié est titulai-re d’un Bac+5. Mieux : 70% des développeurssont de niveau Bac+4 ou Bac+5, un tiers pos-sède un Bac+2 et 12% seulement le Bac.

Moins de turn-over chez les dévelop-peurs que chez les autres informaticiensEn outre, les développeurs sont relativement“fidèles" à leur employeur, puisque l’étudeindique qu’ils ont 5 ans d’ancienneté en moyen-

ne dans l’entreprise et peuvent prétendre à uneévolution à partir de 3 ans et demi d’expérien-ce, en moyenne. Une différence par rapportaux autres informaticiens. Selon une étude del’Observatoire Social du Syntec Informatique,tous métiers confondus, près d’un tiers dessalariés a moins de deux ans d’anciennetédans l’établissement où il travaille. Commentexpliquer ce turn-over relativement faible chezles développeurs ? Selon le Syntec Informa-tique, d’abord par " une perception très positivedu métier ". En effet, 96% d’entre eux appré-

cient l’intérêt du développement. Ils y trouventun "intérêt intellectuel stimulant" et définissentce métier comme" en évolution permanente. " Entre 15% et 36% d’entre eux estiment qu’ilspeuvent évoluer au sein de leur entreprise, cequi signifie qu’ils y trouvent de bonnes condi-tions de travail (rémunération, travail au quoti-dien) et un intérêt professionnel suffisammentattractif (perspectives de carrière, formations)pour ne pas rejoindre d’autres structures (deuxtiers d’entre elles soulignent leurs difficultés àrecruter des " informaticiens ").

Un métier en pleine mutation et protéiforme Lorsqu’ils définissent leur métier, les dévelop-peurs soulignent qu’il est en pleine mutation etqu’il va exiger des niveaux de compétences etd’abstraction de plus en plus élevés, une grandepolyvalence et la capacité à travailler en réseauainsi que des qualités humaines et relation-nelles. Dernier point : l’étude montre que le déve-loppement nécessite " de se rapprocher d’autresmétiers : concepteurs, architectes, intégrateursd’application et de systèmes " et conclut qu’il yaura " de moins en moins de purs développeurs."Est-ce à dire que le développement est en voie dedisparition, alors que ceux qui le pratiquent sem-blent heureux de le faire ? Ou alors que les déve-loppeurs ne vont pas abandonner cette part deleur métier qu’ils aiment mais qu’ils vont enrichirleurs compétences ? Ou encore que d’autresmétiers vont intégrer une part plus importante dedéveloppement qu’aujourd’hui et qu’ils serontobligés d’intégrer ou d’augmenter cette fonctiondans leurs formations ? Quoi qu’il en soit, unecertitude : si leur métier n’est pas menacé, lesdéveloppeurs devront toutefois montrer à courtterme une importante capacité d’adaptation.■ Claire Padych

Portrait du développeurLe Syntec a dressé la " cartographie " dumétier de développeur informatique : • Masculin : 87% d’hommes• Trentenaire : 33 ans de moyenne d’âge. • Diplômé : 70% des développeurs sont deniveau Bac+4 ou Bac+5. Un tiers possèdeun Bac+2 et 12% seulement le Bac.

Entre 6% et 8% de croissanceprévue dans les L&S cette annéeSelon le Syntec Informatique, dans uncontexte de croissance peu dynamiquepuisque le PIB de la France était de 2% en2006 et pourrait être aussi moyen en2007, le secteur L&S tire son épingle dujeu avec une croissance de 6,5% l’an der-nier. Elle pourrait être sur des bases simi-laires, de 6% à 8% cette année.

Un besoin de 36 000 ingénieurset cadres informatique en 2007 Selon la même étude 40 000 à 50 000 infor-maticiens ont été recrutés l’an dernier (dont10 000 à 15 000 créations nettes d’em-

plois). En 2007, les deux tiers de profilsrecherchés concernent la réalisation, leconseil et le développement et un tiers lemarketing, la vente et l’administration.L’enquête BMO 2007 de l’Unédic/Crédocindique de son côté que 36 325 ingénieurs etcadres de l'informatique (sauf technico-com-merciaux) pourraient être recrutés en 2007.

Les métiers des éditeurs : 3 200entreprises, 73 000 personnesMalgré 10 000 créations d’emplois prévuesen deux ou trois ans, le marché de l’emploireste tendu sur le secteur des consultants

fonctionnels et techniques, développeurs,commerciaux. Un nouveau métier fait sonapparition : " responsable de l’offre ".

Source : Opiiec, IDC, Syntec Informatique

24-33 métier3 22/08/2007 17:48 Page 25

Page 26: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200726

Dossier PROGRAMMATION LINUX

Au cœur du code : les métiers du développementLe développement mène à tout… à condition d’accepter de coder ! Cette maxime répétée sur tousles tons par les recruteurs et les spécialistes souligne la nécessité d’envisager plusieurs métiersmais aussi de rester à l’affût à la fois des formations qui se multiplient et de faire de la veille sur lestechnologies les plus en vue.

I l y a ceux qui envisagent le développementcomme une symphonie. CommeDominique Duflo, DRH de Sogeti France :

" un développeur doit apprendre à coder maissa valeur ajoutée est la création. C’est unmétier d’art. Il doit être à la fois capable derésoudre un problème fonctionnel et penser àla " maintenabilité " afin qu’une autre per-sonne puisse poursuivre le projet. " Oucomme Jérôme Renard, consultant chez EZSystems (édition de logiciel, gestion de conte-nu en Open Source) : "Le code est indispen-sable dans nos métiers, même pour un archi-tecte. On entre dans le code, dans le cœur du

code, en se demandant,si l’on ajoute telle ou telleligne, ce qui va se pas-ser." Et Marc Boiteux,développeur expérimentéchez Effisoft d’enchérir : " Le code est très impor-

tant dans nos métiers. Il faut faire beaucoupde développement pour acquérir un niveauintéressant. Selon moi, il faut au moins coderpendant 5 ans pour pouvoir se présentercomme développeur ! Mais développer n’estpas seulement coder. Il faut aussi accepter etcomprendre un cahier des charges, réaliserdes tests techniques, faire de la recette, êtrecapable de se synchroniser avec les autresmembres de l’équipe. Faire un métier dans ledéveloppement, c’est la capacité de réaliserun produit compliqué et difficile. " Un aspectsouligné par Cyril Pierre de Geyer, architectetechnique et à la tête d’Anaska (formationsen Open Source) : " Le code est gratifiant sil’on considère que le développeur est le créa-teur ! Il faut penser intelligence d’applicationet ensuite, les métiers découlent de cettebase. " Une idée par tagée par OlivierMonreal, DG de Bewoopi, entreprise spéciali-sée dans les technologies mobiles. " Le plusimportant dans un recrutement est de déce-

ler la capacité de créer chez les dévelop-peurs. Nous consacrons entre 10% et 15% denotre CA en recherche pure, il faut des per-sonnes motivées qui soient également sen-sibles à l’ergonomie. "

Marc Alcantara, directeurstratégie et développe-ment chez Preceptel (start-up de 4 ans, labellisée " entreprise innovante " etspécialisée dans leslicences opérateurs télé-

coms) n’est d’ailleurs pas loin de penser quec’est le côté artistique de ses équipes qui apermis la naissance de Padeo, le dernier pro-duit né " de l’imagination des équipes ! Audépart, nous étions parti sur de la VOIP surligne fixe. Et finalement, notre produit se décli-ne aux antipodes de l’idée de départ, sur dumobile. Grâce à plusieurs types d’intelligenceet à la projection sur serveur et sur mobile dece que nous voulions faire sans savoir si nousle pouvions, les verrous technologiques ontsauté ! "

Homme de 33 ans, francilien et Bac+5 … Et il y a ceux qui essaient de déterminer unportrait-robot du développeur. L’Opiiec (Obser-vatoire des métiers de la Branche) s’est lancédans une étude magistrale " Les développeursinformatiques, enseignements et perspec-tives" (novembre 2006/ janvier 2007) pourtenter de percer le mystère du développeur.Résultat : l’étude estime la population desdéveloppeurs informatique à 78 119 per-sonnes ; dans 66% des cas, les développeurstravaillent au forfait. 61% des projets durentde 2 à 6 mois et 38% des développeurs ont eudes formations au cours des trois dernièresannées, notamment techniques (30%). Autres indications : 48% des développeurs tra-vaillent dans les grosses sociétés, tandis que

les plus petites structures (moins de 20 sala-riés) représentent les deux tiers du secteur etemploient un quart de développeurs. Ils sont56% à travailler en Ile de France. L’ensemblede cette population travaille en majorité pourles secteurs industrie (40%), banque (29%),commerce et distribution (26%), medias télé-coms (26%), assurances (20%). L’Opiiec note encore qu’une large majorité desdéveloppeurs est composée d’hommes (87%)avec une moyenne d’âge de 33 ans, mais que

Les activités des développeurs

Activités exercées Part des développeurshabituellement par qui les exerceles développeurs

développer le programme dans le langage retenu 91%participer à l'analyse fonctionnelle à partir des besoins des utilisateurs 89%participer à l'analyse détaillée (rédaction des spécifications techniques) 89%vérifier la conformité du développement avec le CDC 87%concevoir l'architecture logicielle 84%définir les procédures de test 83%réaliser les tests unitaires, identifier,traiter les dysfonctionnements éventuels 83%intégrer l'application dans le système 82%gérer la maintenance évolutive 80%réaliser les tests d'intégration 79%participer à la mise en production et/ou l'industrialisation 78%paramétrer les progiciels retenus pour l'architecture 77%gérer les configurations 77%gérer la maintenance corrective 76%suivre le planning 75%participer/animer les réunions techniques d'avancement 75%réaliser la documentation technique 68%analyser et gérer les risques liés au développement 67%réaliser la documentation utilisateurs 64%assurer une veille technologique 62%former les utilisateurs 62%encadrer une équipe 61%rédiger un bilan de développement 57%suivre les coûts 55%rédiger le plan qualité 47%

Source : Opiiec " Les développeurs informatiques,enseignements et perspectives " (janvier 2007)

24-33 métier3 22/08/2007 17:48 Page 26

Page 27: programmez100.pdf

Téléchargez sans conditions une copie gratuite de Perforcesur www.perforce.com. Vous bénéficiez d’une assistancetechnique gratuite pendant votre période d’évaluation.

Le module d'extension de Perforce pour Eclipse permet aux développeursd'accéder facilement au système de GCL Perforce depuis leur interface IDEEclipse. Il propose les fonctionnalités suivantes :

• Accès rapide à l'historique complet des fichiers • Prise en charge complète du développement collaboratif, avec possibilité

de fusionner les fichiers • Possibilité de travailler hors ligne lorsque la connexion avec le serveur

Perforce est indisponible • Outil de comparaison des fichiers et prise en charge du suivi des

défauts intégrés • Prise en charge de la fonction de refactoring de l'environnement Eclipse

Le module d'extension de Perforce pour Eclipse prend en charge lessystèmes d'exploitation Windows et Linux. Et ce n'est que l'un desnombreux outils intégrés dans le système de GCL Perforce.

Perforce Le système rapide de gestion de configuration logicielle

Présentation du moduled'extension de Perforcepour EclipsePour travailler avec Perforce dans uneinterface IDE Eclipse.

Toutes les marques commerciales, déposées ou non, appartiennent à leurs propriétaires respectifs.

Module d'extension de Perforce pour Eclipse

24-33 métier3 22/08/2007 17:49 Page 27

Page 28: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200728

Dossier PROGRAMMATION LINUX

Dénomination exacte des postes dans le développement60% d’entre eux sont plus jeunes (entre 25 et34 ans) et 50% sont au moins titulaires d’unBac+5. Enfin, l’Opiiec estime que 52% desdéveloppeurs seraient en SSII et 40% chez leséditeurs.

Les voies du développementconvergent toutes vers le travailcollaboratif Le rapport de l’Opiiec indique : " le métier dedéveloppeur informatique est en mutation. "Une évidence aujourd’hui. Car il n’existe pasune mais de multiples voies, échappant par-fois aux études. Pour Dominique Duflo, DRHde Sogeti France, elles sont de trois ordres : " les applications de gestion ; les applicationstechniques ou scientifiques (par exemple lelogiciel embarqué) et les applications commu-nicantes de type Web. Il existe donc plusieursfilières professionnelles et des métiers radica-lement différents. C’est pourquoi je pensequ’il n’y a pas un métier ou une voie uniquepossible pour un développeur mais plusieurset c’est une richesse ! "Elodie, IED chez Twinsoft (édition de logicielstélécoms pour le e-businees) a obtenu sondiplôme en juillet 2006 et elle en est aujour-d’hui à ce stade de réflexion sur les opportuni-tés qui s’offrent à elle. " Je suis dans unenvironnement où je peux découvrir tous lesmétiers, commencer par développer le produitpour aller à la relation client. Mais si à la sortiede l’école j’avais une vision binaire avec lesarchitectes qui déterminent les spécificités etles développeurs qui les appliquent, j’ai évo-lué : je suis maintenant convaincue qu’il faut

raisonner d’une manière globale. C’est-à-direque dans tous ces métiers du développement,même pour quelqu’un qui se dirige davantagevers l’aspect commercial ou endosse l’habitde chef de projet, l’aspect technique doit abso-lument rester ! " L’autre leitmotiv qui revient dans toutes lesbouches est la double notion de " travail colla-boratif " et " d’équipe ", quelle que soit la fonc-tion occupée. Ainsi, Jérôme Renard souligne : " J’aime la notion " d’objectifs négociés " chezEffisoft ! Par exemple si l’on doit sortir un étaten 15 jours, on peut s’appuyer sur une équipeavec des " référents ". L’un est chargé de ladocumentation, l’autre de la traduction, le troi-sième va s’occuper des problèmes tech-niques… Cette organisation permet une

répartition des tâches avec un objectif com-mun. C’est toute la différence avec une SSII oùl’on se retrouve seul face à une situation, chezun client et loin de sa société ! C’est aussi toutl’intérêt de rester dans une société dans laquel-le on se sent bien et avec laquelle on évolue, enmultipliant les expériences de développementqui aiguisent l’intérêt et permettent d’acquérirdes compétences réutilisables dans différentessituations. " Même préoccupation pour RolandBenedetti, managing director Europe du Sudchez EZ Systems qui recherche des profils mul-tiples " des jeunes et des moins jeunes respon-sables mais capables de s’impliquer en PHP ouen gestion de contenu. Ce qui compte, c’estl’excellence, la compétence, et d’être capablede travailler pour un but commun, " insiste-t-il.Aline Corvée, chef de projet chez SQLI estimequant à elle que " ce qui pêche parfois dansune équipe, c’est la volonté d’aller au-delà dece qui figure dans le cahier des charges. Le rôledu chef de projet est de répondre à ce cahier

Source : Les développeurs informatiques, enseignements et perspectives, Opiiec (novembre 2006/ janvier 2007)

Le DIF, vecteur de compétitivité individuel et collectif" Le DIF (droit individuel de formation) est un facteur de compétitivitépour les départements IT des PME, " martèle Hubert Barkate d’Adhara." Après des débuts plutôt frileux, le DIF commence à se faire connaîtrechez les salariés et à se mettre en place dans les entreprises.

Cependant, un écart important s’est creusé entre les grandes entreprises et les PME. Etpourtant le DIF, de par sa durée et sa structure, se positionne comme un vecteur de pro-ductivité très important car proche des préoccupations opérationnelles des entreprises. Ceconstat est d’autant plus fort pour les équipes informatiques des PME souvent à l’originede la valeur ajoutée créée par l’entreprise. Pour les salariés, c’est la possibilité, chaqueannée, d’acquérir de nouvelles compétences avec pour objectif d’améliorer leur employabi-lité et leurs compétences techniques. Cette caractéristique fondamentale est un atout pourles entreprises qui souhaitent investir sur " l’avenir " et fidéliser leurs collaborateurs. Cettenotion s’applique particulièrement aux PME gravitant dans le secteur des technologies pourqui la fidélisation de leurs collaborateurs est un enjeu de compétitivité majeur. "

24-33 métier3 22/08/2007 17:57 Page 28

Page 29: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200729

PROGRAMMATION LINUX

Langages informatique Méthodes de conception

des charges et de remettre parfois de l’ordrelorsque des développeurs trop passionnés sou-haitent aller plus loin. Le respect du contrat estnotre priorité, il n’est pas utile de rajouter deséléments qui n’ont pas été prévus lors de laconception du projet. "

Les technologies en vue et cellesqui tendent à disparaîtreMême si nombre d’étudiants en école d’infor-matique rêvent de devenir chef de projet etque les chiffres montrent que cette voie estparticulièrement empruntée par les dévelop-peurs, il existe d’autres possibilités. " L’ICDpeut évoluer vers le conseil et l’architecturetechnique. Etre " chef de projet " fait partied’une évolution naturelle, mais il ne faudraitpas limiter la carrière de développeur à ce seulobjectif ", précise Alexandra Lecordier, respon-sable RH chez SQLI. Hubert Barkate, président du groupe Adhara,spécialisé dans les formations avec 49centres répartis sur l’ensemble du territoire,milite pour que les développeurs de tousniveaux se forment. Selon lui, les technologiesévoluent sans cesse. " Les formations quisont les plus demandées sont : PHP ; Java ;.Net ; Web 2.0 Ajax; SQL Server 2005 Busi-ness Intelligence. Et les moins demandéessont le langage C, mais aussi l’AS 400 ; Cobol;Zope ; Perl ; VB script. Python est égalementmoins recherché, mais je pense que c’est tem-poraire. Enfin, avec la sortie de la nouvelle ver-sion Adobe CS3, la technologie Flex/AIR, trèsprometteuse, sera probablement le produitphare de la rentrée. Quant à Itil, on constatequ'il y a assez peu de projets qui émergent

malgré une campagne de communicationimportante depuis quelques mois ! " Cette analyse est précisée par l’étude " Déve-loppeurs " de l’Opiiec : 71% des développeurstravaillent sous Windows (contre 27% sousLinux). UML, Merise et Oracle sont les troisméthodes de conception les plus utilisées (àrespectivement 26%, 20% et 15%) et dans ledomaine des bases de données, les dévelop-peurs citent Oracle (33%), SQL Server (28%) etMYSL (27%). Pour ce qui est des tests enfin,65% utilisent des " outils internes- testsmanuels " et ils sont tout de même 26% àavouer " ne pas réaliser de test ! " Pourtant, les entreprises qui se spécialisentsur différents secteurs d’activités ne recher-chent pas toutes les mêmes profils de déve-loppeurs. " Les petites structures s’oriententvers PHP, MYSQL ou des langages Microsofttels que ASP.Net. Les grands groupes sontdavantage sur Java et .Net, mais on constate

que Java résiste très bienà la poussée de .Net ",confie Stéphane Rethore,responsable de l’offre IBau sein du groupe Cegos." L’arrivée de Visual Stu-dio 2005 a contribué à un

nouvel engouement ", poursuit-il. " Toutes nosformations se déroulent en 5 jours environ, lesdéveloppeurs peuvent bien sûr changer deniveau à chaque évolution de carrière. Lesdéveloppeurs qui se forment ont tous les âgeset si l’on peut parler d’une tendance, c’estcelle de C++ vers Java ", indique-t-il encoreavant de conclure : " les formations en Webont la cote. Nous avons davantage de sta-

giaires dans ce domaine que dans le clientriche. Ensuite, tout dépend de ce querecherche l’entreprise : du script en PHP quipeut être utilisé de manière simple, ou qui secomplexifie en objet. Mais globalement, nousvoyons que les développeurs évoluent tout aulong de leur carrière professionnelle et com-mencent parfois avec une formation simplequi se renforce quelques mois après. Dans cemétier, l’apprentissage est continu et je penseque c’est l’une des motivations les plus impor-tantes, commune à des développeurs deniveaux différents. "

L’avis des entreprises sur les qualités indispensables dans lesmétiers du développement…" Il y a quelques années encore, les recruteursne recherchaient pas massivement des jeunesdiplômés car ils devaient, dans un deuxièmetemps, les former. Mais aujourd’hui ils arriventsur un marché du travail tendu avec une bonneconnaissance des nouvelles technologies etse retrouvent face à des sociétés qui ont degros besoins de recrutement, " souligne EricToussaint, responsable marketing pôleexperts chez Expectra. Autre cible privilégiéepour les entreprises : les développeurs enposte qui maîtrisent les technologies les plusappréciées. " En 2001, j’ai mis mon CV surInternet car je souhaitais changer d’entreprise.En une semaine, j’ai reçu une trentaine decontacts. Seules 2 entreprises n’étaient pasdes SSII, " raconte Marc Boiteux. Tous lesdéveloppeurs confirment cet état de fait quis’est parfois ralenti au cours de la période2001-2003 mais qui a repris de plus belle

MÉTIER D’AVENIR

Source : Les développeurs informatiques, enseignements et perspectives, Opiiec (novembre 2006/ janvier 2007)

24-33 métier3 22/08/2007 18:12 Page 29

Page 30: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200730

Dossier PROGRAMMATION LINUX

Evolution des DI dans leur entrepriseNature desdéveloppements

depuis. Avec des propositions qui viennent parle biais des chasseurs de tête ou d’ancienscollègues et qui font de cette population l’unedes plus appréciée sur le marché du travail." Nous recherchons des profils avec des com-pétences techniques pour suivre un projet de Aà Z, mais également des développeurs qui ontdes compétences fonctionnelles pour com-prendre et connaître les environnements danslesquels ils doivent travailler. Chez SQLI, nousprivilégions toutefois la voie technique, mêmesi le collaborateur évolue vers les compé-tences métiers ", indique Alexandra Lecordier,responsable RH chez SQLI et qui résume lesdesiderata des entreprises. " La nouvellegénération de développeurs assemble, confi-gure, lie, publie les nouveaux composants ",souligne de son côté Olivier Picciotto, directeurgénéral de Twinsoft. " Il faut savoir écrire unpeu de syntaxe, avoir une bonne connaissancede l’outil, être capable d’assembler les blocs,savoir comment l’application se comporte auniveau fonctionnel. Et je pense qu’il faut envi-ron 5 ans pour devenir chef de projet." " Nous recherchons des profils Internet PHPLinux, mais aussi C/C++ pour diversifier lesapproches, " indique de son côté Olivier Mon-real de Bewoopi. Mais finalement, quel est le secret de la bonnealchimie ? Marc Alcantara en a une petiteidée : " c’est de former ces profils imaginatifs,et de les faire monter en compétence. Labonne équipe doit être efficace en recherchetechnologique et sur le plan fonctionnel. " Mais tous ceux qui côtoient les développeursou viennent de ce milieu sont convaincus quec’est le temps qui permet l’expertise.

Offres d’emploi Cobol dans le Top 10Dans un système, par définition soumis aux évolutions techniques multiples, unerecherche par " technologies " sur le site d’emploi lesjeudis.com montre les occurrencesqui reviennent sur un nombre global d’offres. A noter que Cobol entre dans le Top 10 (endate du 28/06/07) et confirme une analyse de l’Opiiec dans son rapport "Développeurs" :" certaines anciennes technologies toujours largement utilisées." De son côté, StéphaneRethore, responsable de l’offre IB au sein du groupe Cegos, souligne : " il y a plusieursannées, nous avons reconverti des cobolistes en java ! Je pense qu’il y a effectivement unenécessité de former quelques jeunes à Cobol pour pallier le papy-boom qui pourrait s’am-plifier dans les entreprises utilisatrices. "

Top 10 des technologiesJava EE (310); Java (244); C/C++/C# (215); .Net (156); SQL (102); PHP (59); Websphere(35); Abap (33); Cobol (22); Cognos (20); Powerbuilder (19); VB (17); Asp (16); Windev (15);Forms (12); SAS (12); Pacbase (11); Uml (11); Weblogic (10); Control M (9); Perl (8); Genio(8); Graphtalk (8); Business Object (7); Delphi (6); RPG (6); XML (6); Natural (6); Ada (5);CICS (5); VC++ (4); Adelia (4); Jboss (3).

D’abord des applications

0800 667 307Source : Les développeurs informatiques, enseignements et perspectives, Opiiec (novembre 2006/ janvier 2007)

24-33 métier3 22/08/2007 18:17 Page 30

Page 31: programmez100.pdf

Pour de plus amples informations:infragistics.com/dotnet

grids scheduling charting toolbars navigation menus listbars trees tabs explorer bars editors

WINDOWS FORMS ASP.NET WPF JSF

[email protected]

0800 667 307

NetAdvantagefor .NET 2007 Vol. 2

Concevez des tableaux de bord professionnels - Des graphiques stupéfiants ainsique des nouveaux gauges fournissant instantanément une compréhension claire desKey Performance Indicators

Executive Reports - Emmenez vos tableaux de bord au-delà de vos applications grâce auxfonctionnalités export/import d’Excel et PDF/XLS Document Exporting

Performance en temps réel - Nos Gauges peuvent afficher des données dynamiques pourun rapport visuel de missions critiques et des informations mises à jour régulièrement

Expérimentez l’information - Des graphiques specialisés enrichis pour les donnéesscientifiques, statistiques et financières permettant de présenter les champs de données engauges linéaires, digitales et radiaux

Elargissez une boite à outils riche - ainsi que tout ce que le développeur a besoin afin deconcevoir et de donner du style sans effort à vos interfaces utilisateur: grilles, calendriers,barres d’outils, trees, menus, onglets, éditeurs, Application Styling™ et bien plus encore

La boite à outils exceptionnelle pour la conception et le développement de vos interfaces utilisateur

learn more: infragistics.com/charts

NetAdvantage® for ASP.NET Charts and Gauges

Windows Forms avec PDF Export et WinDesktopAlert™

24-33 métier3 22/08/2007 18:15 Page 31

Page 32: programmez100.pdf

… et l’analyse d’experts de Sunsur les développeurs d’aujourd’huiet de demain

" L’approche du langage développeur a évolué.Avant, les cours sur C et C++ avec des driverstrès compliqués avaient beaucoup de succès.Mais cette population de développeurs sys-tèmes a migré vers des environnements plusstandardisés, en particulier depuis l’arrivée deJava. Le but des formations aujourd’hui est depermettre d’avoir un socle technologique soli-de pour exécuter du code sur dif férentesplates-formes. La notion d’apprentissage d’unlangage comme socle est aujourd’hui un peuen retrait car un langage comme Java s’en-seigne de plus en plus au niveau des écolesd’informaticiens ", indique Philippe Perez, res-ponsable de l’aspect formation chez Sun Edu-cation. Son collègue Hervé Bitteur spécialiséen logiciels au sein de l’équipe formation chezSun complète : " L’évolution va vers la standar-disation. Le développeur aujourd’hui ne refaitpas d’existant, il travaille à la périphérie dessystèmes existants. Le but de la formation estde donner accès à cette multitude de donnéespériphériques pour que le développeur puissetravailler de la manière la plus souple pos-sible. Les informaticiens qui travaillent dans lelogiciel ont à connaître et à assimiler les péri-phériques plutôt que de coder dans quelquelangage que ce soit. Un important panoramade technologies gravite autour de Sun : l’inté-rêt est de les faire connaître. La tendance vavers le bon choix architectural : trouver lesbonnes technologies pour mener à bien le pro-jet dans les meilleures conditions, plutôt qued’inventer de nouveaux langages. "Et Jean-Marie Calmel, responsable des rela-tions avec les entreprises chez Sun de conclu-re : " J’ose dire qu’il n’existe plus de " silo "aujourd’hui : un composant, le meilleur quisoit, mais qu’on ne sait pas utiliser ou qui esttrop peu développé, est inutile. On est dans letemps du " time to market ", c’est-à-dire quel’on n’a plus le temps de passer des annéessur une application mais les développeurs doi-vent très vite identifier le besoin du client etêtre capables d’intégrer la solution adéquate.Java est le moteur d’une transition qui passedu " je réinvente " à " je réutilise ". L’instinctdu développeur doit évoluer : il doit aller voirles composants prêts pour réaliser la fonctiondans les meilleures conditions. C’est la com-plexité de décision qui a augmenté. "

■ Claire Padych

Programmez! - N°100 SEPTEMBRE 200732

Dossier

" De 10%, je suis passé à 30% de développement dans mon quotidien "

Après avoir obtenu un Deug MIAS en 2001, Arnaud Caillieretz a obte-nu un diplôme d’ingénieur à l’institut des sciences et technologies(école polytechnique universitaire rattachée à Paris 6). Généraliste au départ, il se spécialise dans l’informatique industriel-le. Il intègre Sogeti où il commence par une mission dans le secteurdes finances pour un projet international. " Je faisais environ 10% dedéveloppement car j’appartenais à une équipe d’intégration. "

Sa fonction évolue en qualification. " D’un point de vue fonctionnel, j’ai appris à faire des scénarios de non-régression qui prennent une part de plus en plus importante dans ma mission. " Un autre projet se présente à lui. " Dans la phase de pré-production,je joue le rôle de développeur, mais ma mission a évolué vers l’expertise globale car l’ap-plication est déjà développée. Je passe aujourd’hui environ 30% de mon temps à développer, et si je rentre beaucoupdans le code, c’est pour détecter les points critiques et corriger les aspects qui peuventposer problème." Son niveau d’expertise a progressé grâce à l’expérience et il souhaite-rait " évoluer dans un sens de polyvalence pour aller vers la gestion technique ou l’archi-tecture ou encore la gestion d’équipe. "

" Dans chaque projet, je me réserve un peu de développement ! "

Aline Corvée est chef de projet. Moins de trente ans, issue d’unebonne école (l’EPF, ex école polytechnique féminine) avec cinq ansd’expérience, son profil est activement recherché par tous les cabi-nets de recrutement. Son aventure professionnelle coïncide avec sa dernière annéed’études, puisqu’elle se spécialise en SRI (systèmes informations etréseaux). Puis elle intègre la filiale d’une grande entreprise françai-

se, cotée au Cac 40, travaille sur un très gros projet mais ensuite, les perspectives sem-blent s’amoindrir. " Je rêvais de projets d’envergure, complexes et de travailler en équipeet rien de cela ne semblait arriver. "Elle rejoint donc SQLI en tant que développeur confirmée et trouve dans cette entreprisela dimension professionnelle et intellectuelle nécessaire pour progresser. Quelques temps plus tard, elle accède au poste de chef de projet. " Lorsque noussommes face à un nouveau projet, deux choix sont possibles. Soit nous avons carteblanche, soit la technologie est imposée par le client. Dans ce cas, il nous faut composeravec cet impératif et nous capitalisons cette expérience en la faisant remonter dans ceque nous appelons " la cellule architecte ". Cette initiative est très intéressante et per-met d’accroître notre expertise générale par un travail collaboratif qui peut servir à toutmoment. Une autre caractéristique que j’apprécie chez SQLI est la possibilité de se for-mer en permanence. Nous avons tous en commun un socle technique et je crois que sion me retirait la possibilité de développer, je serais malheureuse ! Et si je développemoins qu’avant, dans chaque projet que je suis, je me réserve un peu de développementpour rester en contact avec la technique. "Elle a récemment travaillé avec Sqli Agency sur un projet commun et a particulièrementapprécié de découvrir les impératifs de l’équipe et les trésors de créativité mis en com-mun pour concevoir un projet à plusieurs mains.

24-33 métier3 22/08/2007 18:15 Page 32

Page 33: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200733

PROGRAMMATION LINUX

" 40% de mon temps estemployé au développement … "Derick Rethans, architecte technique au seind’EZ Systems et lead du projet EZ Components.Il participe de façon très active aux projets PHP(notamment langage, Derick étant l’un des prin-

cipaux développeurs de celui-ci), Xdebug, SRM. Il livre sa vision dumonde du développement

Programmez! : Pourquoi êtes-vous devenu développeur?D.R. : Je ne sais pas vraiment " pourquoi " mais je sais comment !Ainsi, lorsque j’avais 12 ans, j’étais déjà fasciné par les ordinateurs.A la différence des autres enfants, jouer ne m’intéressait pas beau-coup ; je voulais essayer de faire faire à l’ordinateur tout ce que jevoulais. De cette fascination provient mon éducation en informatiquequi a fait de moi un développeur software. P! Quel regard portez-vous sur le présent de votre métier et en parti-culier sur les délocalisations auxquelles votre métier est confronté ?D.R. : Je ne crois pas que l’externalisation soit une menace réellepour l’industrie du software en Europe. Les éléments les plussimples seront vraisemblablement délocalisés tandis que la concep-tion et la maîtrise de projet resteront en Europe.P! : L’Open Source est-il une alternative pour rendre ce travail plusintéressant ?

D.R. : L’Open Source est seulement un outil pour les gens. Pour mapart, je suis ravi d’écrire du code qui sera plus accessible à un publicplus large. Plus de gens utilisent ce code et, en retour, cela permetaux utilisateurs de software de contribuer au produit avec leurs idéeset leurs spécificités. Il se créé donc plus d’interactivité ente les utili-sateurs et les développeurs.P! : Codez-vous toujours? Et quel intérêt y trouvez-vous ? D.R. : Je continue à développer et environ 40% de mon temps y estconsacré. Ce qui m’intéresse, c’est d’écrire de nouveaux algo-rithmes. J’ai besoin de faire de nouvelles choses que je ne faisaispas avant ou que je fais mieux maintenant parce que j’ai développémes capacités dans ce domaine.P! : Quelle est la place de PHP aujourd’hui dans le duel entre .Net etJava/Jave EE et dans le monde Web 2.0 ?D.R. : PHP est le seul langage conçu pour le Web. Les 2 autres lan-gages, comme beaucoup d’autres, produisent des solutions plusgénériques. C’est pourquoi PHP gardera son avance pour les solu-tions Web.P! : En tant que célèbre développeur, quels conseils donneriez-vousaux jeunes et aux autres ?D.R. : Essayer de ne pas seulement regarder les plates-formes pro-priétaires quand vous vous intéressez au développement software.Les plus grandes entreprises sont très fortes pour convaincre lesdéveloppeurs de travailler avec elles, mais il y a tant de choses plusintéressantes à faire…

" Des développeurs capables de travailler … "

Yannick Chapard, architectetechnique et cofondateur deClikeo, création de sitesInternet et de e-commerce." Nous développons en PHP 5,c’est le même confort d’utilisa-

tion que Java. Il n’y a que peu de contraintes et nousavons choisi MYSQL comme base de données.Nous sommes 4 au sein de notre société et noussommes polyvalents. C’est l’avantage de travailler dans une petite struc-ture où il faut être opérationnel. Nous faisons éga-lement appel à des freelances, ce qui nous permetd’augmenter rapidement nos effectifs lorsqu’un pro-jet l’exige. Avec un DUT en informatique, il mesemble que le développeur est tout à fait efficace,capable à la fois d’être autonome tout en sachanttravailler en équipe. Je pense vraiment que l’on peut passer une carriè-re à développer. La meilleure preuve nous est don-née par les créateurs de Google qui développentencore et toujours ! "

Pour les entreprises, le " workshop " version Sun

" La démarche " workshop " de Sun existe en France depuis 2002. Son originalité ?Plutôt que de se comporter en conseil ou en audit, son rôle est d’indiquer les orien-tations technologiques possibles avec les DSI en intégrant les DRH et dans unedeuxième phase ou parallèlement, de préparer les équipes. L’idée est de fairegagner du temps et éviter " l’effet de cascade ", lorsqu’il faut en catastrophe for-mer des compétences internes. Nos workshops permettent une montée en com-pétences et obligent les entreprises clientes à participer pleinement au projet.C’est un ensemble de cours avec des TP, pour faire évoluer les compétences.L’idée est de mettre à niveau les utilisateurs des technologies standardisées, 6 à9 mois après que les standards soient définis. " (Jean-Marie Calmel, responsabledes relations avec les entreprises et Hervé Bitteur de l’équipe formation chez Sun)

De gauche à droite : Jean-Pierre Calmel (OEM Platforms Senior Architect), Philippe Perez(responsable de l’aspect formation chez Sun Education ) et Hervé Bitteur (de l’équipeformation, spécialisé en logiciels).

MÉTIER D’AVENIR

24-33 métier3 22/08/2007 18:16 Page 33

Page 34: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200734

Dossier PROGRAMMATION LINUX

Salaires et emploi : Les métiers du développement sont-ils rémunérateurs ?Tous les indicateurs sont au vert dans l’informatique : les fonctions autour du développement sontparticulièrement prisées. Le plus grand risque des recruteurs est de voir leurs ressources happéespar la concurrence. Parmi toutes les solutions à leur disposition pour conserver leurs forces vives- et séduire les autres, " le package" global et personnalisé se développe. Il accompagne larémunération et les perspectives de carrière.

"Nous n’avons pas les moyens deperdre nos éléments ni d’entrerdans une guerre du recrutement

avec la concurrence ! " Dépité, Pascal Stopnic-ki, confondateur d’Effisoft en 1990 ? Pas lemoins du monde, car la tension du marché del’emploi " nous a permis d’évoluer en termesde rémunération, mais aussi de carrière. Unrecrutement se conçoit avec des variables quisont la qualité de vie au travail, des perspec-tives sur le long terme mais aussi du point devue de la rémunération ", indique-t-il sanstabou. Soit un " package " qui, outre une

bonne répar tition entrefixe et variable, proposedes solutions d’épargneentreprise… " Sur tout,nous voulons que noscollaborateurs se sententbien chez nous, " précise-

t-il. L’un des développeurs de l’entreprise,Mansour Tall, diplômé de l’ESGI en postedepuis un an, précise ce critère : " l’ambiancedans une entreprise est un élément fondamen-tal : j’ai la nationalité sénégalaise et j’aurais puavoir des difficulté pour obtenir les papiersnécessaires. Effisoft m’a permis de faire unstage de fin d’études et ensuite m’a proposé unCDI en m’aidant pour les différentes formalités.Je n’ai pas eu de difficultés à trouver un stage niun emploi. Lorsque j’étais en phase derecherche active, j’étais sans cesse contacté etmême maintenant que je suis en poste, je reçoisrégulièrement des propositions. Je maîtriseJava, Java EE, PHP, ASP, C++. L’école m’a per-mis d’apprendre les langages les plus impor-tants tout en me donnant les moyens d’enassimiler de nouveaux assez rapidement ! "Roland Benedetti, managing director respon-sable de l’Europe du Sud chez EZ Systems (édi-tion de logiciel, gestion de contenu en OpenSource) insiste lui aussi sur la nécessité de

motiver les troupes par l’implication au quoti-dien des collaborateurs : " le système debonus est lié au succès de l’entreprise ", sou-ligne-t-il. Quant aux responsables de structuresplus importantes, eux aussi jouent la carte dela fidélisation. Dominique Duflo, DRH de SogetiFrance souligne que l’entreprise a " des rela-tions particulières avec les personnes recru-tées : elles se fixent un objectif professionnelde 3 à 5 ans. Au cours de leurs missions, desbilans périodiques sont faits, des plans de for-mation sont envisagés, une importante plate-forme d’e-learning est à leur disposition car

dans ces métiers, il est indispensable d’acqué-rir en permanence les outils nécessaires pourbien évoluer. Et la carrière est chez nous trèsimpor tante : nous sommes un groupe de16 000 collaborateurs dans le monde dont 9 500 collaborateurs en France avec de mul-tiples possibilités d’orientation ! "

CMMI, l’un des outils privilégiés de SQLI" Nous nous appuyons sur le modèle PeopleCMM pour que nos collaborateurs puissentévoluer selon leurs objectifs, leurs capacités

Mieux payé en Ile-de-FranceSalaires dans le développement

Salaire annuel Médian, Médian, Médian, Maxi, Mini,en Euros national Ile de France province national national

Infographiste 23 110 26 150 23 010 30 400 17 500

Développeur 29 900 30 380 29 240 38 430 21 700

Analyste programmeur 30 750 33 850 26 890 34 030 21 130

Ingénieur développement 34 330 37 100 34 150 46 980 25 440

Ingénieur informaticien 35 140 36 930 34 910 37 300 29 080

Responsable informatique 37 630 41 960 33 000 69 860 27 620Source: Expectra, septembre 2006, "développement"

SOFTEAM Formation 2007 :

L’étude " salaires " d’Expectra sortie en septembre 2006 indique également qu’un ingé-nieur d’études R&D est, en moyenne, payé 12,6% de plus dans un grand groupe qu’en PME.

K€

34-38 22/08/2007 18:29 Page 34

Page 35: programmez100.pdf

SOFTEAM Formation 2007 :UML, Méthodes et Méthodologie

Introduction aux technologies objets et à UML 1 jLes diagrammes UML 2 jUML pour la maîtrise d’ouvrage et l’expression de besoins 2 jAnalyse et conception avec UML 4 jAnalyse et conception avec UML et un atelier de modélisation 5 jProcessus de développement objets : Etat de l’art 2 jDe UML.1.x à UML.2.0 1 jMéthodologie pour SOA 2 j

Architecture et IntégrationArchitecture et intégration : la synthèse 3 j Architecture SOA 2 jArchitecture et approche MDA 3 jDesign Patterns avec Java / J2EE 3 jDesign Patterns avec .Net 3 jCorba : Concepts et mise en œuvre 4 jDéveloppement de Web Services en Java 3 jDéveloppement de Web Services en C# 3 j

Développement Java /J2EEProgrammation orientée objet avec Java 4 jProgrammation Java avancée 4 jDéveloppement d’applications JEE 5 5 jDéveloppement d’applications JEE 5 Front End 4 jDéveloppement d’applications JEE 5 Back End avec EJB 3 3 jMaîtrise du framework Struts 3 jMaîtrise du framework JSF - Java Server Faces 3 jMaîtrise du framework Spring 3 jMapping Objet / Relationnel avec Hibernate 3 jDéveloppement d’IHM avec Swing 3 jDéveloppement d’IHM avec Ajax 2 jDéveloppement d’IHM avec Eclipse RCP 4 jDéveloppement d’IHM avec SWT 2 jDéveloppement de Web Services en Java 3 jDéveloppement d’applications embarquées avec J2ME 3 jDéveloppement de portlets 3 j

Développement .NETDéveloppement d’applications .NET / C# 4 jDéveloppement de Web Services avec C# 3 jPrincipes et architecture de la plate-forme .Net 1 jConception et développement avec .Net 2.0 5 jDéveloppement d’applications Web avec ASP.Net 2.0 5 jProgrammation avec Microsoft ADO.Net 3 j

Développement XML et autres langagesDéveloppement d'applications avec XML 4 jFormatage et transformation de documents XML avec XSL 2 jDéveloppement d'applications vocales avec VoiceXML 3 jDéveloppement en PHP 3 jDéveloppement d’applications avec C++ 3 j

Atelier Objecteering/UMLObjecteering UML Requirements 1 jObjecteering UML Modeler 1 jObjecteering Java Developer 2 jObjecteering C# Developer 2 jObjecteering C++ Developer 1 jObjecteering UML Profil Builder 2 jObjecteering MDA Modeler 2 j

SOA

SOA

SOA

SOA

SOA

SOA

Soyez prêts pour les nouvelles

architectures SOA!SOA est devenu en peu de temps le mot clé des développementslogiciels. SOA n’est toutefois qu’une nouvelle façon de faire quis’appuie sur un ensemble de technologies existantes : UML, J2EE,.Net, XML, etc. Maîtriser SOA implique ainsi maîtriser cestechnologies pour les associer efficacement au sein d’unenouvelle approche.

SOFTEAM, forte de son expérience en Méthodologie,Architecture et Développement, a construit un cursuscomplet de formation SOA qui vous permet de débuter dèsles phases amont, de poursuivre en architecture, et d’allerjusqu’à la réalisation dans le langage de votre choix.

SOA

Cartographie

Méthodologie

UML

Architecture

Patterns

J2EE

.NET

XML etWebServices

XML

EAI

BPM

Méthodologiepour SOA

Frameworks

Urbanisation

PortailArchitecture

SOA

WebServices en .Net

WebServices en J2EE

Web Services

Qui

nte&

sens

• 3

612

Calendrier complet et inscriptions en ligne

www.softeam.fr Tél. : 01 53 96 84 00 - Fax : 01 53 96 84 01

Paris : 21 avenue Victor Hugo - 75016Rennes - Nantes - Sophia Antipolis

34-38 22/08/2007 18:32 Page 35

Page 36: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200736

Dossieret les possibil itésqu’offre SQLI ", indiqueAlexandra Lecordier,responsable RH chezSQLI. Et poursuit : " tousnos postes ont été pas-sés au crible pour que

les collaborateurs puissent être mobiles eninterne et explorent les voies que nous leurproposons. Avec notre réseau d’agences enrégions, en Suisse, au Bénélux, au Maroc eten Espagne, nous leur donnons aussi la possi-bil ité d’évoluer géographiquement. Parailleurs, des entretiens semestriels et annuelssont organisés avec les managers et relais RHafin que le collaborateur puisse se projeter.Enfin, des formations sont dispensées trèsrégulièrement car ces métiers techniques sonten perpétuelle évolution. " Dans l’étude del’Opiiec " développeurs informatiques, ensei-gnements et perspectives " (janvier 2007), lesanalystes soulignent l’importance de misersur la polyvalence : la profession gagnerait àprivilégier les certifications transversales, dequalification professionnelle. Syntec informa-tique a emprunté cette voie avec les CQP. Sys-tématiser les méthodes (gestion de projet) etprocess qualité car aujourd’hui, 9% seulementdes entreprises du secteur sont certifiées ISO9001 et 3% ont un niveau CMMI. " Conserverd’une façon ou d’une autre la motivation à sescollaborateurs est donc l’enjeu que se don-nent nombre d’entreprises. Pour Aline Corvée,chef de projet chez SQLI, cela passe pard’autres responsabilités : " outre mon travailquotidien, j’assume aussi un rôle de RCT (res-ponsable en capitalisation technique) qui mepermet d’avoir une approche de conseil deréférent sur d’autres projets dont je n’ai pas laresponsabilité. Cette expérience me permetde préconiser des solutions techniques, l’utili-sation de telle ou telle brique dans la phaseanalytique par exemple. Le rôle de RCT m’offreégalement l’opportunité de faire des interven-tions ponctuelles sur d’autres projets et par-fois, lors de recrutements, d’intervenir aumoment du test. "

Choyer ses employés…Le maître-mot qui arrive en complément de " salaire " est " motivation ". Dans un marchéoù les développeurs ont davantage la mainqu’il y a quelques années, les négociations àl’embauche sont de plus en plus serrées. Eneffet, si les Français obtiennent la palme d’oreuropéenne de l’argent comme motivation

Les internautes ayant déposé un CV sur Cadremploi.fr et les employeurs ayant déposé leur offre nesont pas du tout d’accord sur la rémunération dans l’informatique.

Sour

ce :

Cadr

empl

oi.fr

, jui

n 20

07.

Les internautes ayant déposé un CV sur Cadremploi.fr et les employeurs ayant déposé leur offre nesont pas du tout d’accord sur la rémunération dans le domaine SI/ Telecom.

Comparaison entre les salaires déclarés dans le domaine informatique par lescandidats et les recruteurs, tous niveaux, tous secteurs et toutes régions

Comparaison entre les salaires déclarés par les candidats et les recruteurs, tous niveaux, toutes régions, secteur SI/ Telecom

Candidats

Recruteurs

34-38 22/08/2007 18:33 Page 36

Page 37: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200737

Si de nombreuses entreprises cherchent à renforcerleurs équipes, elles doivent éviter de défavoriser leurscollaborateurs en poste, même si les nouveaux arri-vants négocient des rémunérations que n’auraientpas imaginé ceux entrés précédemment dans l’entre-prise. Pour éviter d’avoir à gérer des conflits et desdéparts inopinés, un grand nombre d’entreprises ont

donc choisi de revaloriser l’ensemble des salaires.Selon l’étude de l’Opiiec, de 15 à 36% des dévelop-peurs évoluent au sein de leur entreprise, 57% ontexercé leur métier dans plusieurs entreprises, entre 5 et 11% d’entre eux évoluent vers une autre entreprisedu secteur et ils sont de 3 à 11% à quitter le secteurpour aller vers une entreprise utilisatrice.

Audrey Beauvillard, responsable du développe-ment ressources humaines et du recrutement,et Laurent Ellerbach, responsable des relationsdéveloppeurs, designers et Enseignement supé-rieur au sein de la division plates-formes et eco-système chez Microsoft France indiquent : " lesdéveloppeurs .Net sont mieux payés (+20%) queles développeurs Java qui sont eux-mêmesmieux payés (+10%) que les développeursPHP+Ajax qui sont eux-mêmes mieux payés(+15%) que les développeurs PHP. Bref, dans lacatégorie des développeurs, les moins bienpayés sont les développeurs PHP (et web engénéral hors ASP .Net) et les mieux payés, lesdéveloppeurs .Net." Une première réflexion sur cette affirmation : lesmétiers du développement sont très nombreuxet il n’existe pas de règle commune." Les langages les plus demandés par les recru-teurs sont Java/Java EE et .Net, " indique EricToussaint, responsable marketing pôle expertschez Expectra. " En ce qui concerne l’évolutiondes compétences des développeurs, il y a néces-sité d’avoir des compétences croisées, Micro-soft et technologie open source, " confirmeHuber t Barkate, président d’Adhara. " ChezSQLI, les technologies les plus demandées sontJava, Java EE et PHP ", précise à son tour Alexan-dra Lecordier. En sachant que le circuit PHPéchappe, pour beaucoup, aux réseaux clas-siques d’offres d’emplois.Enfin, une recherche par technologie sur le sitelesjeudis.com faite début juillet 2007, consa-crait la victoire de Java EE avec 325 propositionsd’emplois, suivi par Java (259) et C/C++/C#(209). En quatrième place arrivait .Net avec 154offres, soit 111% de propositions d’emplois sup-plémentaires sur Java EE par rapport à la tech-nologie Microsoft. Décidément, le conflit entremonde propriétaire et libre n’est pas fini !

Développeurs .Net : la meilleure rémunération ?

Compétences et salaires

Offres d’emploi

La rémunération, nerf de la (sur)vie de l’entreprise… L'âge des informaticiensAge

Moyen

Infographiste 32

Développeur 29

Analyste programmeur 31

Ingénieur développement 32

Ingénieur informaticien 30

Responsable informatique 38

MÉTIER D’AVENIR

Java EE

34-38 22/08/2007 18:47 Page 37

Page 38: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200738

Dossier PROGRAMMATION LINUX

" Un cycle de recrutement à la hausse "Pierre Lamblin, directeur du département Etudes etRecherches à l’Apec se réjouit des bons résultatsdans le domaine du recrutement. " En 2006, 45 000 recrutements ont été faits dans l’informa-tique ; tout laisse à penser que le record sera battucette année, nous sommes partis pour un cycle à lahausse ! " Selon l’Apec, la fourchette des salairesdes IED (ingénieurs études et développement) enrecherche d’emploi et en poste se situe entre 27 et43 K€ avec une médiane à 33 K€. Quant à la rému-nération des architectes techniques, elle varie entre35 et 55 K€ avec une médiane à 43 K€.

Sour

ce :

Off

res

empl

ois

Apec

, jui

n 20

07

En 2006, l’Apec recensait 6 898 offres d’emplois pour le métier de développeur, contre 1 878 offres en 2003.

En 4 ans, le volume d’emploi dans l’informatique a presque doublé. A noter toutefoisqu’une offre n’est pas forcément synonyme d’un recrutement même si la tendance à lahausse de l’emploi est évidente.

Volume des offres d’emplois cadres diffusées par l’Apec pour les métiers de développeurs,chefs de projet, architectes techniques et cadres sûreté/sécurité informatique - Evolution 2002-2006 -

Volume des offres d’emplois cadres diffusées par l’Apec pour la fonction informatique - Evolution 2002-2006 -

principale du travail (58%, soit 10 points deplus que la moyenne selon un sondage Mons-ter de janvier 2007) ils sont suivis de près parles Britanniques (54%), Irlandais (53%) etBelges (52%). Seuls 3% des Tricolores tra-vaillent " pour se dépasser " (contre 13% deBritanniques). Certes, la part des informati-ciens n’est pas explicite dans ce sondage,mais étant fortement chassés, il y a fort àparier que le turn-over dont ils font preuve estsurtout motivé par des questions pécuniaires.Ou des à-côtés qui leur permettent de bienvivre l’entreprise : les crèches inter-entre-prises commencent à se multiplier. Selon l’étu-de de l’Opiiec, 60% des développeurs ontentre 25 et 34 ans, ce qui signifie qu’ils ont ouvont avoir des enfants. Autres avantages misen avant, horaires modulables, site proched’une ligne de RER ou de métro en Ile-de-Fran-

ce, facilement accessible en province, bureauxmodernes, bonne mutuelle, esprit de corpsautour d’une course en mer lorsque l’entrepri-se a investi dans un voilier, ou d’un mara-thon... Les exemples ne manquent pas. Une autre enquête (observatoire Cadrem-ploi/LH2, juin 2007) va plus loin : 57% des 18-39 ans seraient même prêts à abandonnerune partie de leur salaire pour améliorer leurqualité de vie (contre 39% des plus de 40ans). L’étude montre encore que 54% decadres " ayant une fonction technique " sontplus favorables à un salaire moindre pour aug-menter leur qualité de vie (contre 46% demoyenne sur l’ensemble des cadres interro-gés). Est-ce la conséquence de la mauvaiseréputation de certaines pratiques des SSII quiont brisé certains informaticiens ? Nicolas Chabrier, PDG d’Evaluan (société née

à Mulhouse) n’hésite pas à faire le lien entrel’attitude de certaines SSII et le turn-over trèsprésent dans la profession. Ainsi, l’étude " Développeurs " de l’Opiiec indique qu’entre23% et 63% des développeurs d’entreprisesde 6 salariés et plus ont changé de fonctionaprès trois ans et demi en poste. Et selon plu-sieurs experts, sans doute en raison de mul-t iples conjonctions comme la vie enentreprise, la rémunération et les possibilitésde carrière, le turn-over aurait tendance à s’ac-centuer et les salariés à rester moins detemps encore en poste, hormis en province oùla tendance s’inverse et où les opportunitéssont moins nombreuses qu’à Paris. Les recruteurs n’ont pas fini de se perdre enconjectures pour imaginer mille astuces envue de motiver leurs troupes sans trop mettrela main au portefeuille… ■ Claire Padych

L’emploi en 2006

34-38 22/08/2007 18:50 Page 38

Page 39: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200739

L'offshore : menace ou nouvel Eldorado du développement ?Dans un contexte où se conjuguent compétitivité, innovation et retour sur investissements, la réduc-tion du coût du personnel et son employabilité hors de l'Hexagone sont deux données principalesqui accompagnent les notions de flexibilité et de réactivité.

Le prix du développement ainsi que celuide la recherche en dehors de nos fron-tières pose différentes questions. Celle

du travail et de la réduction des coûts pourperdurer. Mais aussi celle du risque encourupar les entreprises de perdre le contrôle detoutes leurs ressources compétentes, afin dedégager une économie que certains estimentcomprise entre 30% et 50%.La mondialisation et la nécessité pour lesentreprises de gagner en compétitivité par laréduction des coûts ont entraîné une multipli-cation des sites en dehors de la France. Lemythe de l'offshore qui entraîne une divisiondu travail et transfère des tâches subalternesà des développeurs moins chers est présentdans tous les esprits. Marxistes, libéraux ousans opinion. Il se fonde sur plusieurs élé-ments tangibles : des sources convergentesévoquent des baisses de coût annuelles de2% à 4%, imposées par les entreprisesclientes des SSII qui trouvent, dans les solu-tions d'offshore partiel, la possibilité de semaintenir dans cette bataille des prix. Toutefois, selon une étude du Syntec Informa-tique de janvier 2006, l'offshore représentaiten 2005 moins de 2% du CA des SSII et entre3 000 et 4 500 informaticiens travaillant pourla France depuis l'étranger. Jean-FrançoisRambicur, président de la commission écono-mie-marchés au sein du Syntec informatiqueindiquait également que la part de l'offshoredans le chiffre d'affaires du secteur devrait

croître et pourrait représenter de 4% à 6% àl'horizon de 2009. Mais l'opération est, selonJean-François Rambicur, limitée, dans la mesu-re où l'on peut estimer le plafond théoriquedes prestations « offshorisables » à moins de15 % du CA des services informatiques.

« La maturité de la France en matièred'offshore est très faible… »« Notre choix s'est porté sur le Maroc, carc'est un pays qui possède de nombreuxatouts. En quantité et en qualité puisquechaque année, 40 000 informaticiens y sont

formés. C'est un pays proche de la France,francophone. En outre, nous avons signé unaccord avec le gouvernement marocain, « leplan émergence » qui nous offre un certainsnombre d'avantages, notamment fiscaux, »indique Yahya El Mir, président du directoire deSQLI. D'autres entreprises ont choisi de s'implanteren Inde ou en Chine ou dans les pays de l'exbloc de l'Est, car, souligne le Syntec Informa-tique, « l'absence de centre offshore en propredevient même parfois un critère éliminatoiredans les référencements d'une SSII. » Demain sera donc offshore ou ne sera pas … Co-auteur de Conduite de projets informa-tiques offshore (Eyrolles, 2005) et créateurd'Outsourcing Advantage, qui aide les entre-prises à optimiser leurs projets informatiquesoffshore, Eric O'Neill est plus nuancé. Son ver-dict tombe : « la maturité de la France enmatière d'offshore est très faible.» Et la premiè-re cause de cette sous-représentation françaisedans les pays low-cost est, selon lui, la réticencedes DSI « rarement favorables à l'offshore. »Ceux-ci sont isolés des problématiques

SQLI partenaire de l'Université Mohamed 1er

SQLI a signé un partenariat avec l'Université Mohamed Premier en sep-tembre 2006. Cette université se situe à Oujda, à 700 km environ de lacapitale. C'est un centre de R&D / offshore entièrement dédié aux tech-nologies Open Source. L'entreprise bénéficie, au sein même de

l'Université, d'un fort potentiel de ressources et de locaux entièrement équipés des tech-nologies les plus avancées. En contrepartie, les experts du groupe interviennent dans lecadre de formations spécifiques et contribuent à l'enrichissement des cursus scolaires.

Yahya El Mir

Titre : Un exemple d'offshore : les tests au MarocSource : Syntec Informatique, Etude « position sur l'offshore », janvier 2006

MÉTIER D’AVENIR

39-41 dev web 2p 22/08/2007 18:52 Page 39

Page 40: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200740

Dossier PROGRAMMATION LINUX

Le cas Alcatel-Lucent préoccupe le SénatSymbole de l'offshore qui ne concernerait plus seulement les « OS développeurs » mais aussiles spécialistes en R&D, la multinationale Alcatel-Lucent est au cœur des débats, avec un CAde 18,6 milliards d'euros et 522 millions de bénéfices en 2006. Début 2007, elle annonce unplan de restructuration : 12 500 suppressions d'emplois, représentant près de 16 % de soneffectif total. Or les emplois menacés en France sont ceux d'ingénieurs en R&D. Au Sénat, une proposition de résolution tendant à la création d'une enquête chargée d'exa-miner les causes et les conséquences du plan de licenciements annoncé par Alcatel-Lucent,datée du 3 mai 2007 indique : « Alcatel Lucent poursuit une stratégie industrielle essen-tiellement basée sur le redéploiement vers l'Europe de l'Est et l'Extrême-Orient et sur uneimplantation locale dans les pays à forte croissance ou pays dits « émergents » dans les-quels elle veut s'imposer. La délocalisation de (…) certaines études vers la Chine est déjàune réalité. Alcatel avait d'ailleurs fait en 2001 l'acquisition de Shangaï Bell qui regroupe10 % des effectifs en R&D du groupe. La nécessité de « prendre des parts de marché » enChine, face à des concurrents qualifiés de « très agressifs », et l'accès à des financementschinois ne peut en toute logique qu'amener le groupe à renforcer son implantation dans unpays où l'on vend plus de cinq millions de portables par mois. (…) La crainte (…) de voirdans ce plan de restructuration une première étape vers une délocalisation du secteur R&Ddes sites français, est bien réelle. Si personne ne nie le caractère très « concurrentiel » dece secteur d'activité, il serait extrêmement intéressant de définir toutes les causes de ceplan pour comprendre les grandes restructurations en cours (…) Le groupe Alcatel-Lucentreçoit de la collectivité des dizaines de millions d'euros de subventions directes chaqueannée. En 2005, l'Europe a affiché des « ambitions » en matière de technologie de l'infor-mation et de la communication à la hauteur des enjeux qui sont considérables. (…)Aujourd'hui, la France et l'Europe risquent fort de voir passer très rapidement le train sanselles. (…) En déplaçant sa R&D vers la Chine, Alcatel-Lucent joue la pénétration renforcéedes produits chinois en Europe, plutôt que de contribuer - avec le reste de la filière et lespouvoirs publics - à mettre en oeuvre la stratégie de Lisbonne. »Ce cas restera-t-il isolé ou une « jurisprudence Alcatel-Lucent » augurera-t-elle une nouvelledistribution des cartes géo-technologiques, dans laquelle, la Chine pourrait être« l'usine »du monde tandis que l'Inde en serait « le bureau d'études » ? Menace ou fantasme, ilconcerne l'ensemble des développeurs IT.

commerciales et lorsqu'une équipe tournebien, ils ne comprennent pas la nécessité deremettre en cause leur organisation. Plus enclins que leurs DSI à tenter l'aventureoffshore, les dirigeants, quant à eux, ne mesu-rent pas toujours ses limites : « pour maîtriserses coûts il faut absolument investir, inventerun mode organisationnel différent et réfléchirà un autre processus d'industrialisation. Cer-tains imaginent que la délocalisation suffit etqu'elle produira des économies immédiates,sans mesurer les conséquences des diffé-rences culturelles, structurelles. Ils vont droità l'échec car ce ne sont pas des Françaisqu'ils ont face à eux ! »Une installation à Bengalor nécessite un bud-get transpor t plus lourd qu'à Varsovie ouRabat, il faut des cadres capables de bien maî-triser l'anglais ou mieux, la langue nationale…Bref, Eric O'Neill milite pour des structurestrès solides destinées aux développeursemployés à moindre coût et qui, loin du sitecommanditaire, doivent se plier aux mêmescontraintes que les Français : rendre un projetdans les temps. Il connaît parfaitement les dif-férentes zones d'offshore et l'ultime risque : laperte de tout contrôle sur la production déloca-lisée. Un risque qui a conduit certaines entre-prises américaines adeptes de l'offshoring àoutrance à faire demi-tour par la réinternalisa-tion (ou backsourcing) de leurs projets.

■ Claire Padych

Résistance à la délocalisation Selon le Truffle 100 (avril 2007), 73% deséditeurs interrogés déclarent ne pas envi-sager de délocaliser leur R&D (contre 67%en 2005). Raisons invoquées : maîtriserson savoir-faire est stratégique (66%), privi-légier la réactivité (59%) et « la R&D est aucœur de notre activité » (54%). La tendanceest confirmée par Christophe Deshayes :«81 % des DSI français estiment que l'in-formatique dans son ensemble n'est pasun candidat naturel à l'externalisation, tan-dis que 17% d'entre eux en admettentl'éventualité mais la réservent à des casbien particuliers comme l'hébergement desites web (75% des réponses) et la gestiondes télécoms (73% des réponses) » (Aprèsl'externalisation, le « Backsourcing ? »,Documental, 2005)

Développement du marché de l'outsourcing dans les pays d'Europe de l'Est et Centrale en volume de mar-ché (Millions d'euros) en 2005 et en croissance annuelle moyenne 2005/09.

Source : Extrait de l'étude « développement du marché de l'outsourcing en Europe Centrale et en Europede l'Est », Pierre Audoin Consultants, février 2006.

39-41 dev web 2p 22/08/2007 18:53 Page 40

Page 41: programmez100.pdf

39-41 dev web 2p 22/08/2007 18:53 Page 41

Page 42: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200742

Dossier

TEMOIGNAGESParoles de développeursAlexandre Gueniot 25 ans, développeur chez MicrosoftProgrammez : Qu'est-ce qui a changé depuisvos débuts dans ce métier ?A.G. : N’étant professionnel que depuis peu,

c’est difficile en ce qui me concerne de remarquer une grosse évolu-tion. Je crois que ce qui a le plus changé c’est l’échelle : le nombred’utilisateurs, la taille des entreprises, le poids des investisseurs. Onest passé de l’artisanal à l’industriel, on a perdu un peu de liberté créa-tive, mais on a gagné le grand pari des pionniers du logiciel : démocrati-ser l’informatique.En France, le développeur traîne une mauvaise image : travailennuyeux, mal payé, pas d'évolution ou de carrière, est-ce une réali-té ou une légende urbaine ?A.G. : Je crois que c’est une légende urbaine. Cela dit, si la question sepose c’est bien que certains le pensent : on n’est pas toujours respon-

sable de son image. Travail ennuyeux : Ce serait quand même un comblepour des personnes qui font en général ce métier par passion. On ne restepas à un poste qu’on n’aime pas. Mal payé : C’est vrai que les salairesfrançais sont plus bas que les salaires américains. Mais toutes lespetites start-up ne peuvent pas verser le même salaire que les géants dulogiciel. Il faut aussi savoir faire des sacrifices quand on croit à un projet,en faisant un pari sur l’avenir : ceux qui créent leur start-up commencentgénéralement sans revenu et survivent avec leurs économies jusqu’à cequ’ils aient leurs premiers clients. Pas d’évolution de carrière : Ceux quisont dans le métier depuis 5 ou 10 ans ont des postes plus enviables queles nouveaux arrivants. Encore une fois ça dépend des entreprises.On présente le développeur comme un artiste ou comme un simpleexécutant, dans quelle catégorie vous classez-vous ?A.G. : On est toujours un peu les deux. C’est vrai qu’on rêve tous d’avoirle droit de vie et de mort sur chaque ligne de code et de laisser librecours à notre délire créatif, mais derrière il y a des clients, des chefs deprojets, des investisseurs et on ne peut pas faire n’importe quoi.

Stéphane Mery Senior Manager Software Developmentchez ILOG.

Programmez : Pensez-vous que le métier dedéveloppeur a toujours mauvaise réputation ?S.M. : Nous avons la chance de travailler dans

une société dans laquelle le développeur est valorisé. Il doit avoir descompétences élevées, savoir travailler en équipe (internationale), êtrepluridisciplinaire, savoir communiquer. Les SSII n’investissent pas tou-

jours sur les personnes, mais la situation est très disparate selon l’en-treprise. J’ai l’impression que cela change un peu, même si dans lesécoles, en France, la culture scientifique reste très forte et l’informa-tique est souvent, encore, perçue comme un outil. Peut-être effective-ment que le métier n’a pas bonne presse. Mais on y arrive aussi parpassion, le développeur ambitionne de devenir architecte.

Comment voyez-vous l’évolution du métier ? S.M. : Je pense que le développeur mono langage n’existera plus. Lemétier a beaucoup évolué vers la conception / codage en même temps.

Rémi Baudot Responsable de la Formation chez BEA

Programmez : le métier de développeur vous semble-t-il ennuyeux aujourd’hui ? A-t-il une évolution ?R.B. : Le métier ne semble pas ennuyeuxmême s’il n’a pas bonne presse. Quand on

commence le métier comme développeur JEE, on pourrait le trouverplus fastidieux qu’avant car on est (sans doute) plus encadré, doncmoins libre. Est-ce néfaste ? Cela va peut-être scléroser le dévelop-peur. Mais il y a peut-être besoin de moins de développeurs de géniequ’auparavant. Nous avons à notre disposition, par exemple, des fra-meworks. Il y a aussi des évolutions en bien. Le développeur va plutôtavancer vers l’architecture. On parle souvent des problèmes de formation, de connaissance del’étudiant du monde réel, qu’en est-il réellement ?R.B. : J’y suis sensible. Il y a un manque d’adéquation entre l’école etl’entreprise. Les jeunes diplômés ne savent pas appréhender le monde de l’entreprise, notamment sur les tests, les per for-mances. On est toujours en retard, et il manque du temps pour

former le développeur. On fait des mises en production à chaud, d’oùde gros problèmes par la suite… On n’a pas pris le temps des tests,de la validation. La formation est-elle utilisée pour pallier ces manques ?R.B. : Elle reste encore assez restreinte. Les entreprises n’hésitent pasà raccourcir les cycles. Elles attendent (souvent) que le développeurs’auto-forme. Il faudrait faire un gros effort sur le développement…On critique régulièrement le salaire du développeur, qu’elle estvotre perception de la situation ? R.B. : On pourrait peut être faire un effort, il existe un gros turn-over,je pense que le développeur français a intérêt à rester (en France)mais en allant vers un niveau plus élevé. Comment le développeur peut-il évoluer ?R.B. : Il lui faut beaucoup d’ouverture. Un langage n’est qu’unlangage (finalement). On peut passer de l’un à l’autre sans trop de

difficulté, il ne faut pas hésiter à participer à des forums, des communautés, lire la presse spécialisée pour découvrir, approfondirde nouvelles choses. Le développeur peut être (et doit être) force depropositions surtout dans les nouvelles architectures. On a, on aura,besoin de développeurs métiers.

42-43 22/08/2007 18:54 Page 42

Page 43: programmez100.pdf

TEMOIGNAGESDes dangereux effets de bord de la pensée uniqueToujours plus sensible à l'argument marketing et toujours moins réceptive à l'argument technique,l'informatique française se prépare un sombre avenir.

Programmez! fêteson numéro 100 etpeut être fier d'unbeau parcours.Membre de l'équipedu magazine et fierde l'être, je fête éga-lement mes 25années de développe-

ment free lance. Une occasion de penser à unlong parcours et de me dire que j'ai eu beau-coup de chance. J'ai eu de la chance car j'aiappris l'informatique à un moment où la diver-sité, le bon sens et le goût pour l'efficacitéétaient de mise. J'ai eu la chance de bénéficierde l'expérience de gourous du développementau savoir-faire étendu. J'ai eu la chance de meformer, tout au long de ce parcours, à beau-coup de technologies. Tout un contexte quim'a jusqu'ici permet de travailler avec beau-coup d'indépendance.

Quand le marketing étouffe la technologieTel la peau de chagrin de Balzac, ce mondeinformatique si riche que j'ai connu est en trainde se réduire, de disparaître. Car malheureu-sement en France, c'est l'argument marketingqui de plus en plus l'emporte et prime devantl'argument technique. Adieu la diversité, adieule choix technologique pertinent. Il y a pourtantdes formations remarquables en France, maisles lauréats partent à l'étranger valoriser leurcompétences. Car aujourd'hui quoi qu'il arrive,quoi qu'il s'agisse de faire, on le fait en Java.Bien sûr je pourrais dire C#, mais cela ne chan-ge rien. On sait bien que C#=Java.clone('win-dows'). Alors je dis Java par commodité.Profitant de la montée en puissance d'Inter-

net, le marketing de Java a fait mouche.Voyons ce qu'il nous dit et pour marquer lesesprits, opposons lui un vénérable vieillard de60 ans: Lisp. Java est portable. Lisp aussi.L'argument est même ridicule car quel langageantérieur à Java et non estampillé Microsoft nes'est pas préoccupé de la portabilité ? Javaest généraliste. Lisp aussi. Java est à l'aisesur le réseau. Lisp aussi. Java gère la mémoireet dispose d'un ramasse-miettes. Mc Carthyavait déjà doté son premier Lisp d'un ramasse-miettes. Java apporte la sécurité. Lisp aussi.Java permet la programmation objet. Non seu-lement Lisp la supporte mais il supporte tousles paradigmes, et là où Java est verbeux, Lispest incroyablement expressif. Java est un stan-dard ? Non. Par contre Lisp est standardiséANSI. Je pourrais continuer à l'infini une com-paraison réellement accablante. Le matraqua-ge marketing a réussi à faire croire le contraire,mais Java n'apporte aucune innovation réelle,même en regard du vieux Lisp. Java apporteseulement la lourdeur, la non tenue à la char-ge, les dépassements de délais de développe-ment et l'explosion des budgets. Pourtant Lispet son modèle de développement incrémentalconviendrait si bien pour le développementrapide ainsi qu'à l'eXtreme Programming à lamode en ce moment. Le paradoxe est incom-préhensible, mais force est de reconnaître quele marketing a réussi son coup: la penséeunique règne et sans se poser de questions ondéveloppe avec Java (ou C#).

A l'Est le dangerMais fondamentalement, quel est le problème,quel est le danger ? Pourquoi pas le tout Javaaprès tout ? Le danger est à l'Est. On a beau-coup parlé il n'y a pas si longtemps du danger

du plombier polonais. L'informaticien polonaisest tout aussi dangereux, sinon plus. J'aiappris récemment qu'un développementindustriel a été réalisé en Haskell en Pologne.Haskell... langage de pointe, peut être d'ave-nir, totalement ignoré en France. Mais pasdans ces pays où on l'apprend avidement ettous azimuts. Je parle de l'informaticien polo-nais pour la boutade, mais la Russie, l'Inde etl'Est en général comptent de plus en plus d'in-formaticiens remarquablement brillants et auxchamps de compétences très étendus. Alorsque va-t-il se passer ? Est-il besoin de signalerqu'Internet aidant, s'il est un univers sensibleà la mondialisation, c'est bien celui de l'infor-matique ? Ces gens de l'Est ont besoin de tra-vailler et ils en sont capables. Surtout, ilsdeviennent bien plus capables et efficacesque nous. Quand plus personne ne saura fairede programmation système en France, euxsauront. Quand plus personne ne saura écrirerapidement, avec le langage adapté, un codeconcis et efficace, eux sauront. Et non seule-ment ils sauront le faire, mais ils sauront lefaire à des coûts très bas. Alors je voudraisque cet instant de réflexion, à l'occasion denotre numéro 100, aide à réveiller l'informa-tique française, ce que, autre paradoxe, l'over-dose de café ne par vient pas à faire.J'encourage les techniciens passionnés parleur métier de convaincre les décideurs frileux.Parce que si nous continuons ainsi de nousendormir dans la routine, si nous continuons àoublier ce que nous avons su faire, l'informati-cien polonais viendra nous piquer notre boulot.Et ce n'est pas lui qui sera à blâmer.

■ Frédéric Mazué [email protected]

Achetez les magazines, les articles en PDF et abonnez-vous en ligne

www.programmez.com

BOUTIQUE BOUTIQUE BOUTIQUE BOUTIQUE

TECHNIQUEPourquoi utiliser AspectJ et la programmation aspect ?

Web Toolkit

Programmez!

Prin

ted

in F

ranc

e -

Impr

imé

en F

ranc

e -

BELG

IQUE

6,4

5 €

- SU

ISSE

12

FS -

LU

XEM

BOUR

G 6,

45 €

- Ca

nada

8,9

5 $

CAN

DOM

Sur

f 6,9

0 €

- TO

M 9

40 X

PF -

MAR

OC 5

0 DH

Programmez!www.programmez.com

3:HIKONB=^UZ^Z]:?a@a@t@i@k;

M

4319

- 98

- F:

5,9

5 E

Mensuel - Juin 2007 - N°98

LE MAGAZINE DU DÉVELOPPEMENT

WEB 2Combiner Ajax et Java avec Telosys

OUTILSL'intégration continue avec CruiseControl

JAVAL'usine à développement SpringPYTHON Django : le framework web à tout faireC++

Créez vos interfaces Gnome

SGBDXUL

Avant-première :

PHP6Les nouvelles fonctions, ce qui change, migrer de PHP 5 à 6

Comparatif :Quelle base de données, pour quels besoins ?

Les critères pour bien choisir - Une avalanche de nouveautés

Maîtriser la plate-forme Mozilla

ConférenceMySQL :En attendant la v 6SGBD

XUL Maîtriser la plate-forme MozillaConstruire un composant"glisser-déposer"

TECHNIQUEPourquoi utiliser AspectJ et la programmation aspect ?

Web Toolkit

Programmez!

Prin

ted

in F

ranc

e -

Impr

imé

en F

ranc

e -

BELG

IQUE

6,4

5 €

- SU

ISSE

12

FS -

LU

XEM

BOUR

G 6,

45 €

- Ca

nada

8,9

5 $

CAN

DOM

Sur

f 6,9

0 €

- TO

M 9

40 X

PF -

MAR

OC 5

0 DH

Programmez!www.programmez.com

3:HIKONB=^UZ^Z]:?a@a@t@i@k;

M

4319

- 98

- F:

5,9

5 E

Mensuel - Juin 2007 - N°98

LE MAGAZINE DU DÉVELOPPEMENT

WEB 2Combiner Ajax et Java avec Telosys

OUTILSL'intégration continue avec CruiseControl

JAVAL'usine à développement SpringPYTHON Django : le framework web à tout faireC++

Créez vos interfaces Gnome

SGBDXUL

Avant-première :

PHP6Les nouvelles fonctions, ce qui change, migrer de PHP 5 à 6

Comparatif :Quelle base de données, pour quels besoins ?

Les critères pour bien choisir - Une avalanche de nouveautés

Maîtriser la plate-forme Mozilla

ConférenceMySQL :En attendant la v 6SGBD

XUL Maîtriser la plate-forme MozillaConstruire un composant"glisser-déposer"

MÉTIER D’AVENIR

42-43 22/08/2007 19:05 Page 43

Page 44: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200744

DossierTRIBUNE LIBRE

“ Les ingénieurs en Informatique ne veulent plus coder ”Vingt ans aupara-

vant, l’ordinateuréveillait des pas-

sions dans la tête des étudiants brillant enmathématiques. Dans les départements derecherche, les uns soutenaient une thèse surles bases de données relationnelles quandles autres mettaient au point un nouveaucompilateur. Aujourd’hui, c’est un objet com-mun, omniprésent. L’ingénieur en informa-tique n’est plus un technophile ; est-ce lafaute aux nouveaux environnements de déve-loppement haut niveau ? À Internet ? La fauteaux SSII et à l’outsourcing ? Le développeursemble être l’ouvrier de demain : quelle têtebien faite pourrait se passionner pour unobjet si banal lors de son choix de carrièrescientifique ? Pourtant la demande de véri-tables ingénieurs est bien là.Dans les années 90, si on voulait faire com-muniquer deux PC entre eux, il fallait (parfois)écrire à la main le code d’encapsulation dumessage, programmer l’algorithme d’envoi etde réception, gérer la synchronisation des soc-kets et vérifier que la mémoire et la CPUtenaient le choc. Aujourd’hui, un simple com-posant Java EE ou .NET fait le travail pourvous. Ces frameworks techniques ont allégé lacharge du développeur et accéléré les tempsde développement d’un logiciel. En mêmetemps, ils en ont diminué la complexité, lecodage devenant un assemblage de librairies,même s’il est toujours nécessaire d’assem-bler les morceaux. Résultat : plus besoin demettre les mains dans le cambouis, même sipour l’optimisation et dans des cas particu-liers, il faut tout de même y aller. La program-mation est devenue plus orientée métier (celuide l’utilisateur, de l’entreprise) grâce aux lan-gages objets dans un premier temps, puisgrâce à des environnements techniques ‘prêts-à-compiler’ qui vous déchargent des probléma-tiques d’accès aux données (comme les outilsde mapping), de communication, etc. D’unautre côté, avec l’arrivée d’Internet, on a renduplus accessible la programmation rudimentai-re pour les pages web, mais attention, le déve-loppement Internet reste complexe pour lesgros projets et des langages et technologies

de type Flex, JSP, Javascript… Avec le blog,même plus besoin de coder : on se limite auchoix des images et des couleurs… Au niveau professionnel, L’ingéniosité seretrouve alors dans la passerelle ‘métier-logi-ciel’ et non plus dans la création du logiciel lui-même. D’où cette récente vocation pour lemétier de Maîtrise d’ouvrage. Le MOA, commedisent les SSII, c’est celui qui comprend lemétier de l’utilisateur, du client, et l’expliqueensuite aux développeurs. Ils parlent le mêmeformalisme. Avant, l’ingénieur communiquaitavec son utilisateur final. Aujourd’hui le MOA ale beau rôle : l’informaticien n’a plus qu’à fairedu lego à partir de plans prémâchés ! Dans lebâtiment, c’est l’architecte et l’ouvrier. Leparallèle devient de plus en plus flagrant àmesure que les projets grandissent et s’orga-nisent : chacun son métier… On comprend aisément que notre future éliterenâcle à plonger dans les langages de pro-grammation. L’informatique est vue comme unmétier banal, mondialisé et appris dans toutesles langues. Il sor t autant d’ingénieurs eninformatique chaque année des écolesIndiennes qu’il y en a en exercice en France.Devant ce fait, l’étudiant en informatique enFrance se demande quelle va être sa placedemain dans l’entreprise. “Où sont les postesclés en phase avec ma formation ? " J’ai pasfait les classes préparatoires pour taper ducode toute la journée derrière un écran ! ".Pourtant, dans des secteurs exigeants commecelui de la Finance de marchés, la demande endéveloppeurs n’a jamais été aussi forte. Cap Fi Technology, société de conseil informa-tique spécialisée en Finance de Marchés,souffre particulièrement de la pénurie de déve-loppeurs : les banques doublent ou triplentleurs effectifs afin d’avoir le système d’infor-mation le plus performant et le plus innovant :architecture N-Tiers, tenue de portefeuille entemps réel, ferme de serveurs pour le calculde risques… Inutile de préciser qu’elles veu-lent les meilleurs et que le niveau techniquedes équipes informatiques doit flirter avec l’ex-cellence. Or, en choisissant la Finance commesecteur d’activité, un jeune ingénieur est dis-posé à taper du code pendant un an au mieux

afin d’évoluer rapidement vers du manage-ment ou de la maîtrise d’ouvrage. S’il possèdedes aptitudes à communiquer, il peut passerpar le support utilisateur en salle de marchésavant d’évoluer. Nous ne parlerons même pasdes ingénieurs ayant une bonne formation enmathématiques, comme l’Ensimag (EcoleNationale Supérieure d’Ingénieurs de Mathé-matiques appliquées à Grenoble) et qui veu-lent être directement traders !

Qu’y a-t-il de plus stimulant intellectuellement : piloter un avion bardé d’assistance ou le concevoir ?L’outsourcing n’est pas un risque fort car laconnaissance du métier est primordiale. UnDSI sous-traitera aisément la mise en placed’un outil de reporting mais ne confiera jamaisson modèle de données à une société exté-rieure. De même que la proximité utilisateurest essentielle dans la réussite d’un projetmétier : la preuve en est que la méthode degestion du développement dite itérative, c'est-à-dire avec des cycles courts allers-retoursentre la conception du logiciel et le client final,est en plein essor. Le métier d’informaticiendoit retrouver ses lettres de noblesse. Dansles entreprises dépendantes comme lesBanques d’investissement, L’ingénieur d’étudeset développement, le MOE en langage SSII,n’est pas assis derrière son écran toute la jour-née. Il prend en charge la responsabilité d’unepartie d’un projet, de la compréhension métierà la livraison et maintenance en production,avec des objectifs de délai, sécurité, rapiditéd’exécution et disponibilité, très contraignants.Il est à la fois l’architecte, l’ouvrier et l’assu-reur de son ouvrage. C’est un métier quis’adresse à des ingénieurs : excellente forma-tion technique sur les nouveaux langages, lescycles de projets comme sur le métier et la ges-tion de la relation utilisateur. Seuls ceux qui sesaliront les mains pourront prétendre à uneévolution de carrière ascendante les mettant àl’abri du spectre du développeur quadragénaire.

■ Rodolphe BellenguezDirecteur Associé (co-fondateur)Cap Fi Technology

44 expert 1p 22/08/2007 18:55 Page 44

Page 45: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200745

DossierTÉMOIGNAGE

“ Il y a une vraie attente des utilisateurs pourcréer de nouvelles expériences innovantes ”Ces treize dernières années,j’ai vu le métier du dévelop-pement se transformer demanière assez significative.

Les points positifs• Nouveaux paradigmes et technologies :

procédural, objet, évènementiel, centralisé,distribué, client lourd et léger, serveurs d’applications (.NET et Java).

• Richesse des ateliers de développement etdéferlante de méthodologies (UML, Agile,CMMI, RUP, Lean,…)

• Un besoin de proximité au métier et unedemande constante de créativité

Le revers de la médailleMalgré la disponibilité d’ateliers de développe-ment très productifs, les développeurs ont deplus en plus de mal à maintenir leurs connais-sances du fait de la complexité des technolo-gies. Parallèlement les utilisateurs continuentà leur demander plus de " time to market "avec moins de budget. Le développeur évoluedans un environnement for tement contrai-gnant et en mouvement permanent, où laseule constante est le changement !Le développeur a toujours en France une mau-vaise image. Généralement on à tendance àtrès peu valoriser l’ingénierie logicielle, mis àpart cer taines entreprises qui développentune vraie expertise dans le développementspécifique d’applications métier. Ayant acquisune réelle expertise dans le développement àfaçon, elles ont obtenu la reconnaissance etdu poids auprès de leur direction. Elles sont

classées dans les " Early adopter ". En France, développer et avoir 32 ans, c’estavoir raté sa carrière car le métier est vucomme une étape. Les développeurs qui ontplus de 40 ans, je les rencontre uniquementsur des projets internationaux. L’expertise sepaie, ils rayonnent et sont extrêmement pro-ductifs et pertinents. Ce type de profil manque souvent sur nos pro-jets et pourrait redorer le métier auprès desutilisateurs et des directions.

Un artiste ou un simple exécutant ?Un développeur est un ingénieur et il se doitd’être créatif et innovant car au quotidien sontravail est loin d’être répétitif. D’ailleurs, jepense qu’il faut renommer la fonction pour parlerde " concepteur d’application " pour mettrel’accent sur le créatif et l’expertise. Il y a unevraie attente des utilisateurs pour créer denouvelles expériences innovantes. Je classedonc le développeur dans la catégorie "Artiste".J’ajouterai également que le métier est en plei-ne transformation. En effet, les DSI externali-sent leurs équipes techniques et mettent enplace des processus d’industrialisation surtoute la chaîne de fabrication des projets. L’in-dustrialisation of fre aux développeurs lesoutils et les moyens pour l’aider à se focalisersur les tâches à forte valeur ajoutée et optimi-ser sa créativité : plus de métier, moins decomplexité technique, moins de travail répéti-tif, plus de qualité et plus de productivité !

Quelques conseils…C’est un métier passionnant qui évolue trèsvite et qui offre des opportunités de missionsdans divers métiers. La conception d’applica-

tion est au cœur des objectifs économiques detoute entreprise, ce qui induit automatique-ment beaucoup de pression mais aussi beau-coup d’attente en terme d’innovation.L’investissement personnel est important etdoit être animé par la passion afin de créerune vraie expertise. Il faut donc préparer sonparcours en commençant par se fixer desobjectifs de carrière et être conscient qu’àterme, seuls subsisteront les métiers tech-niques de haut niveau et ceux qui imposentune proximité aux clients. Tout ce qui relève dudéveloppement standard sans valeur ajoutéepour le cœur de métier est, ou sera rapide-ment externalisé dans les pays à faible coûtou/et industrialisé. D’ailleurs, la plupart desDSI se consacrent à l’amélioration des proces-sus pour passer d’une logique MOA / MOE àune logique purement service. Le développeurmotivé n’est pas près de s’ennuyer, et pour lesbons, je leurs conseillerai de débuter dans unesociété de services spécialisée en développe-ment et en architecture (demander la part duchiffre d’affaires sur les projets au forfait etles expertises est un excellent indicateur).Pour la technologie, l’expertise .NET est trèsdemandée.Pour conclure, la mobilité à l’étranger resteune expérience très positive et appréciée desrecruteurs. Essayez de trouver des missionsdans des projets internationaux ou alors expa-triez-vous.

■ Zaak CHALAL Fondateur de Red FabriQ,cabinet d’expertise et deconseil en architecture etindustrialisation des dévelop-pements. Contact : [email protected]

L’information permanente • L’actu de Programmez.com : le fil d’info quotidien

• La newsletter hebdo : la synthèse des informations indispensables.Abonnez-vous, c’est gratuit !

www.programmez.com

MÉTIER D’AVENIR

45 22/08/2007 19:06 Page 45

Page 46: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200746

Spécial 100

Pionniers du logicielAu risque d'en oublier quelques uns nous avons choisi ici de mettre les projecteurs sur quelquespionniers majeurs du logiciel. Certains sont devenus célèbres, d’autres sont méconnus. Chacun deces acteurs a été à l'origine d'une étape importante de l'histoire du logiciel ou de la programmation.

Tom KilburnLe 21 juin 1948, lepremier programmed’ordinateur s’exé-cute sur unemachine connuecomme "The Baby".Son auteur, TomKilburn a conçu etconstruit lamachine, aidé encela par soncompère FreddieWilliams alorsqu’il présideune chaire àl’Université deManchester. Il a

découvert les possibilités de l’informatique à Cambridge durant la guer-re alors qu’il avait été affecté à des activités liées à l’électronique. Aucours des trois décennies qui ont suivi, Kilburn a mené les développe-ments d’autres ordinateurs innovants à l’université de Manchester.

Grace HopperNée le 9 décembre 1906 à New York, a enseigné les mathématiquesavant de s'engager dans la Marine américaine en 1943. Elle est alorsassignée à l'équipe de Howard Aiken pour travailler sur l’ordinateurMark I de Harvard et sera la première personne à le programmer. À la finde la guerre, elle contribue au développement des générations sui-vantes de Mark. C’est elle qui découvre un jour une panne due à la pré-sence d’un petit insecte dans un circuit. Le premier " bug " a fait sonapparition ! En 1951, Grace Hopper a conçu le premier compilateur del’ordinateur Univac. Six ans plus tard, alors qu’elle est employée parIBM, elle prône l’idée d’un langage de programmation proche de l’an-glais et ses recherches aboutissent au COBOL. Elle a disparu en 1992.

Gary KildallEn 1973, Gary Kildall professeur d'informatiqueà l'Ecole Navale de Monterey lit une étrangeannonce : un micro-ordinateur pour 25 dollars !Intrigué, il se procure un microprocesseur Intel.Le fondeur lui propose alors de réaliser un simu-lateur du 8080 sur leur mini-ordinateur PDP-10.Comme 70 kilomètres séparent son domiciled'Intel, Kildall a l’idée d’écrire un système d'ex-

ploitation pour le 8080 : le CP/M, qui laisse son commanditaire indiffé-

rent. L'apparition des premiers PC est propice à CP/M. Kildall fondeDigital Research en 1976 et son système se retrouve sur des centainesde milliers de machines.En 1980, lorsqu’IBM rend visite à Microsoft afin d’acquérir CP/M, BillGates arrange un rendez-vous avec Kildall. Ce dernier dirige une sociétéflorissante et commet l’erreur de traiter les membres du projet IBM PC àla légère. Dépités, ils s’en retournent voir Gates qui saisit la balle aubond et produit MS-DOS !En 1991, Kildall a vendu Digital Research à Novell. Il a disparu 3 ansplus tard.

Douglas EngelbartSpécialiste des radars à l'US Navy, Engelbart aété le premier à avoir l'idée de coupler un écranvidéo à un ordinateur dès 1950. En 1963, il ima-gine un accessoire pour piloter les objets àl'écran, l'ancêtre de nos souris actuelles. Dès1968, Engelbart présente le premier prototyped'environnement graphique / souris. C'est égale-ment au sein de son équipe qu'a été établi en

1969 l'ARPANET, qui a plus tard donné naissance à Internet. Engelbartn'a pourtant tiré aucun parti de ses inventions et a sombré dans l'oubliaprès 1976. À partir de la fin des années 80, de nombreuses organisa-tions ont mis en avant le travail innovateur qu'il avait accompli.

Alan KaySi la programmation orientée objet a vu le jour,c'est grâce aux travaux réalisés par Alan Kay surSmalltalk lorsqu'il opérait dans les centres derecherches de Xerox au PARC (il y entra en1970). Kay a créé le premier prototype d'ordina-teur portable, le Dynabook (1972).Kay rentre chez Atari en 1980 et rejoint Apple en1984. S’il n’est pas un développeur né, il devient

une des têtes pensantes de la recherche d’Apple et sera un des AppleFellow de la Pomme au sein de l’ATG (Advanced Technology Group) jus-qu’à sa fermeture.

Bill GatesPassionné d’informatique dès son plus jeuneâge, Gates désarçonne les adultes par ses capa-cités intellectuelles. Lorsque l’Altair, le tout pre-mier micro-ordinateur, est annoncé à la fin 1974,il en écrit le BASIC depuis l’université d’Harvardet son langage tourne dès le premier essai. Ilcrée alors avec son ami Paul Allen la société

Le premier programme

46-51 pionier 22/08/2007 19:07 Page 46

Page 47: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200747

PROGRAMMATION LINUX

Microsoft qui diffuse un BASIC à tous les constructeurs de PC. LorsqueIBM se met à la recherche d’un système d’exploitation pour son proprePC, Gates parvient à imposer un MS-DOS qu’il a racheté à une petitesociété de sa ville natale, Seattle, et qui est alors adapté dans desconditions dantesques à la machine d’IBM.Une fois le MS-DOS présent sur l’IBM PC, Gates entreprend de le vendreà tous les constructeurs de compatibles PC. Il met ainsi en place uneextraordinaire vache à lait puisque chaque PC vendu fait entrer des dol-lars chez Microsoft ! Durant les années 80, Gates bataille seul contretous pour imposer son système graphique Windows dont personne nesemble vouloir. Lorsque la version 3.0 de Windows apparaît en mai 1990, il s’imposede lui-même et comme Microsoft est le seul éditeur à disposer d’appli-cations professionnelles comme Word et Excel, il devient l’éditeur n°1mondial, distançant ses concurrents sans espoir de retour — dans lafoulée, Gates devient l’homme le plus riche du monde.Le procès de 1998 pour " abus de position dominante " a quelque peuterni l’image du génie du logiciel. Gates s’est récemment refait uneréputation en consacrant une partie de sa fortune à des actions philan-thropiques.

Steve WozniakC’est en 1970 que Jobs afait la connaissance de cebarbu surdoué, de cinqans son aîné. Le coup defoudre a été immédiatpour cet ingénieur polo-nais, expert à ses heuresdu piratage téléphonique.Wozniak fait ses pre-mières armes en 1974 en

créant une copie de Pong, difficilement commercialisable : la mention " M... alors ! " apparaît lorsque le joueur rate son coup. Comme Wozniakadore les jeux, Jobs qui suit un stage chez Atari l’invite à venir jouer gra-tuitement durant la nuit. Il demande bientôt à " Woz " s’il saurait réaliser un jeu : le Casse-brique.Le zélé barbu le conçoit en quatre nuits de travail !Wozniak entre par la suite chez HP mais assiste tout comme Jobs àmaintes réunions de passionnés de micro-informatique. Ayant dénichéun lot de microprocesseurs bon marché, il entreprend de concevoir sapropre machine, l'Apple 1 et Jobs persuade une boutique d'en comman-der une cinquantaine. Wozniak s’attelle ensuite à la réalisation d’unmicro-ordinateur qui trancherait avec le bricolage de l’époque. Présenté au printemps 1977, l'Apple 2 devient le premier succès de lamicro-informatique et un ordinateur mythique pour de nombreux déve-loppeurs. En 1980, l’entrée en Bourse d’Apple fait de Wozniak, comme de soncompère, des millionnaires. Pourtant, " Woz " se désolidarise du projetMacintosh cher à Jobs. Dégoûté de voir cet ordinateur accaparer l'essentiel de l’attentionmédiatique, il démissionne d’Apple en 1985. Il va essentiellement s’occuper d’actions caritatives dans le domaine del'éducation, même s’il continue à garder un œil sur les nouvelles tech-nologies et à donner son avis.

Dan Bricklin En 1977, Dan a 26 ans et pour une raison obs-cure, est persuadé que sa profession - pro-grammeur - est en voie de disparition. Il décidede se frotter au monde des affaires et entre-prend à Harvard un cursus sur l'administrationdes entreprises. Au cours de ses travaux pra-tiques, Dan Bricklin réalise qu'il perd un tempsconsidérable à effectuer le calcul de simula-

tions financières. Il décide donc de concevoir un logiciel ad hoc. Surl'Apple 2 que lui prête un professeur, il développe les bases de Visi-Calc, et ce faisant, invente le concept du tableur. VisiCalc program-me sor t en octobre 1977. Dans une lettre d'information,l’investisseur Ben Rosen fait l'éloge de VisiCalc et Son article a uneffet immédiat : plusieurs entreprises commandent des dizainesd'exemplaires. Très vite, son impact sur les ventes de l’Apple 2 estmajeur. Le premier logiciel best-seller de la micro-informatique estné. Au cours des années 90, Bricklin a exploré le domaine de l’écri-ture manuscrite sur ordinateur. Il dirige aujourd’hui une petite éditionde logiciel, Software Gardens.

Bill Atkinson Employé d'Apple de la première heure (1978),Atkinson compte au moins quatre faits de gloi-re à son actif : QuickDraw (la partie graphiquedu MacOS originel), MacPaint (un outil de des-sin révolutionnaire lors de la sortie en 1984),HyperCard (un outil de programmation à la por-tée de tous - 1987) HyperCard est considérécomme le premier environnement de dévelop-

pement graphique. Le quatrième n'est pas le moindre : Atkinson estl'un des deux ingénieurs qui a persuadé Steve Jobs d'aller chezXerox voir les développements réalisés dans les laboratoires derecherche du PARC — c'est à la suite de cette visite que Jobs s'estlancé à fond dans le projet Macintosh. Jobs ira à PARC grâce aussi àla persévérance de Jeff Raskin, le véritable père du Macintosh(décédé le 26 février 2005). Jeff Raskin fut un des " théoriciens " del’interface graphique, notamment grâce à son livre The Human Inter-faceI. En 1990, Atkinson a cofondé General Magic, mais la sociétén'a pas rencontré le succès. Il est depuis devenu photographe.

Shigeru MiyamotoNintendo a eu la chance de recruter en 1977,presque par hasard, l’un de ces surdoués queles siècles prodiguent au compte-gouttes. Avecson air ahuri et son sentiment de décalage, Shi-geru Miyamoto ressemblait à bien des anticon-formistes de son époque. L’artiste maison vapourtant créer le plus grand hit du jeu vidéo,Super Mario (1985) — 193 millions d’unités.

L’orfèvre Miyamoto a manifesté un don inaltéré à transcender les tech-nologies de son temps. En 1998, apparaît le nouveau chef d'œuvre decelui qui est devenu quadragénaire : Zelda, The Ocarina of Time dégageune extraordinaire magie et se voit saluer comme " le plus beau dumonde ". À la tête d’une équipe de 400 personnes, Miyamoto continuede superviser plusieurs projets en parallèle chez Nintendo.

Loui

s Fa

bian

Bac

hrac

h

46-51 pionier 22/08/2007 19:07 Page 47

Page 48: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200748

Spécial 100

Mitch Kapor et Jonathan Sachs

Mitch Kapor est âgé de trente-deux ans lorsqu'ilfonde Lotus. Passionné de rock psychédélique, ila successivement été disc-jockey et professeurde méditation transcendantale. En 1977, il adécouvert la micro-informatique et vendu sa chaî-ne stéréo afin de faire l'emplette d'un Apple 2. Ila ensuite réalisé des logiciels pour Personal Soft-

ware qui édite le tableur Visicalc.En 1981, suite à la sortie de l’IBM PC, Kapor estime qu'il faut dévelop-per de toute urgence le VisiCalc de cette machine. Son tableur aura unatout supplémentaire : il permettra de traduire les chiffres en gra-phiques. Il reste à confier l'écriture du programme à un développeur detalent. Kapor le repère bientôt : Jonathan Sachs est un personnage reti-ré, dont le plaisir essentiel consiste à se retrouver devant un écran et deprogrammer. Leur logiciel est baptisé 1-2-3 du fait qu'il offre trois ser-vices : tableur, graphiques et gestion de fichiers. Kapor crée la société Lotus en avril 1982 et contacte l’investisseur BenRosen en vue d’un lancement conséquent. Plusieurs millions de dollarssont consacrés à la promotion de 1-2-3 auprès des entreprises. Lotusprésente son tableur au Comdex de Las Vegas en novembre 1982 et enl'espace de quelques jours, reçoit pour plus d'un million de dollars decommandes. Trois mois après sa sortie le 26 janvier 1983, 1-2-3 détrô-ne VisiCalc à la tête du hit-parade des ventes et devient le premier best-seller de l’IBM PC. Il va demeurer en tête des charts jusqu’en 1989 !Kapor quitte la présidence Lotus en 1986. Il va concevoir un autre logi-ciel, Agenda, puis diversifier ses activités. Il a par la suite cofondé l’Elec-tronic Frontier Foundation qui travaille à défendre le droit à la vie privéeet s’est fortement impliqué dans l’Open Source.

Alexei Pajitnov C’est en 1985 à l’Académie des Sciences de Moscou que le camaradePajitnov a développé son infernal casse-tête. Il officie alors dans unvétuste local où s’entassent les chercheurs - il faut attendre des heuresavant de pouvoir utiliser l’ordinateur de l’institut. Au bout de quelquessemaines, on joue à Tetris dans le moindre des instituts disposant d’unordinateur à Moscou et Pajitnov rêve de faire publier son jeu dans lereste du monde. Pas facile… " Vous ne pouvez imaginer comment étaitla Russie à cette époque. J’ai donc dit à mon boss de m’aider à publierTetris et que je n’exigeais aucune contrepartie… "

Un agent britannique découvreTetris au cours d’une visite àBudapest. Pour en obtenir lesdroits, il adresse fax sur fax àl’Académie des Sciences etreçoit un jour un télex favorable.Sans attendre, il vend Tetris àune filiale de Maxwell, un grou-pe de presse britannique. Tetris est un succès immédiat

dans le monde occidental où il se répand comme une traînée de poudredès la fin 1987. Hélas, Pajitnov ne perçoit pas un centime sur lesventes : l’Académie des Sciences empoche tous les revenus liés àTetris ! En 1989, Nintendo s’apprête à lancer la Game Boy. Son prési-dent Yamauchi décide qu’il faut une version de Tetris pour cette console

de poche. Un agent opérant pour le compte de Nintendo se rend à Mos-cou, et propose à l’Académie des Sciences une offre comme il ne s’enrefuse pas ! Maxwell intente un procès à Nintendo et la bataille juridiquese prolonge durant plusieurs années. Lors d’une rencontre avec Gorba-chev, Robert Maxwell va jusqu'à demander que le président russe inter-vienne pour casser le contrat avec Nintendo ! Sans succès.Tetris fait exploser les ventes de la Game Boy et Pajitnov ne touche tou-jours pas un kopeck sur ces millions de cartouches. Il faudra attendre1996 pour que Pajitnov, qui a émigré en Amérique et trouvé un emploichez Microsoft, puisse enfin percevoir des droits sur Tetris !

Philippe KahnIl est difficile de faire la part des choses entre lalégende et la réalité, au sujet de ce grand hâbleurqu'était Kahn dans les années 80. Cet ancienprofesseur de mathématiques à Grenoble racon-tait volontiers qu'il avait décroché l'un de sescontrats en faisant patienter plusieurs heures unprospect tandis qu'il faisait semblant, de sonbureau, de répondre à toutes sortes de com-

mandes… Ce qui est certain, c'est que Kahn a réussi avec son TurboPascal conçu avec brio par sa société Borland sise en Californie à créerle langage de programmation le plus populaire au milieu des années 80.Dans la foulée, Borland réalise d'autres logiciels de qualité dont la basede données Paradox et le tableur Quattro. Le rachat en 1991 de l'éditeurAshton-Tate, éditeur de dBase sonne toutefois le glas pour Borland, quiaccuse alors de lourdes pertes. En 1994, Kahn crée une nouvelle socié-té, Starfish, qui invente le caméraphone. En 2003, il a fondé Fullpoweravec une spécialisation dans les technologies miniatures et sans fil.

Ray OzzieC'est avec un logiciel complexe et dépourvu detoute ergonomie que Ray Ozzie a fait sespreuves : Symphony qui sort chez Lotus en 1984connaît tout de même quelques belles ventesdans le sillage du best-seller 1-2-3.Ozzie se rattrapera quelques années plus tard enréalisant Lotus Notes, un logiciel majeur de tra-vail en groupe qui va séduire 120 millions d'utili-

sateurs. Il crée ensuite la société Groove Networks, qui commercialiseun produit similaire à Notes visant à faciliter la collaboration au sein depetits groupes. Après le rachat de cette société par Microsoft, Ozzierejoint l’éditeur au poste de Chief Software Architect — un poste aupa-ravant tenu par Bill Gates lui-même.

John CarmackJohn Carmack évoque un premier de la classeavec ses cheveux blonds impeccablement coif-fés et ses lunettes. Signe particulier : il n’a decesse de se fixer des objectifs techniques enapparence insurmontables et de les résoudrecoûte que coûte. Vers la fin des années 80, il faitla connaissance de deux compères dont undénommé John Romero. Ensemble, ils fondent id

Software en février 1991, en Louisiane. Mai 1992 voit l’entité produireson premier jeu de tir avec vue subjective, Wolfenstein 3D. Ils décident

46-51 pionier 22/08/2007 19:08 Page 48

Page 49: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200749

PROGRAMMATION LINUX

d’adopter le principe d’une diffusion en shareware : l'édition propose unniveau gratuit et les joueurs alléchés peuvent acquérir les autres.Pour Doom, Carmack invente un moteur graphique révolutionnaire quidonne l'impression de se déplacer en temps réel dans un décor 3D, uneprouesse avec les ordinateurs de l'époque. Le 10 décembre 1993,Doom est envoyé sur plusieurs sites de téléchargement, id Softwareappliquant le même modèle de diffusion. Immédiatement, les serveurssont saturés de demandes et Doom devient un phénomène à grandeéchelle, d'autant qu'il est possible d'y jouer en réseau. The Economist va saluer l'innovation d’Id Software en matière de distri-bution. Id Software poursuit avec un autre hit, Quake, qui amplifie lespossibilités de jeu sur Internet. Carmack s'intéresse à présent auxfusées et aux vols spatiaux.

Linus TorvaldsC’est en 1991 que Linus Torvalds, un étudiantsuédois vivant à Helsinki et alors âgé de 21 ans,a développé la base du système Linux en s’inspi-rant du système Unix. Il choisit de le diffuser surInternet et propose à tout programmeur qui enaurait le désir de collaborer à son amélioration. Àsa grande surprise, il est submergé par lesréponses de participants.

Dès 1995, Linux commence à prendre son essor. Des sociétés privéestelles que Red Hat ou Caldera s’emparent du phénomène et proposentdes versions de Linux plus adaptées à une large diffusion. Vers la findes années 90, Linux est devenu le système d’exploitation utilisé sur unbon tiers des sites Web. L’origine de la mascotte, le pingouin (Tux), est obscure. Torvalds a pro-posé plusieurs versions, la plus drôle étant relative au fait qu’il auraitété mordu par un pingouin alors qu’il se trouvait en Australie, au zoo deCanberra : " Ce pingouin féroce m’a transmis une maladie peu connue,appelée la "pingouinite", laquelle a pour effet de vous maintenir éveillédurant des nuits entières à penser aux pingouins tout en ressentant unegrande affection à leur égard. "Torvalds vit aujourd'hui aux USA et travaille pour l'Open Source Develop-ment Lab. En 2006, Time Magazine l'a désigné parmi les personnagesayant révolutionné les 60 dernières années aux côtés des Beatles,Mikhail Gorbachev ou J.K Rowling — alors que Gates comme Jobsn'étaient pas cités.

Tim Berners-LeeSi le destin d’Internet a basculé, c'est parcequ'en 1991, Tim Berners-Lee, un informaticiendu CERN en Suisse a développé le World WideWeb - ou "toile d'araignée mondiale". Grâce à cesystème, il est devenu possible de créer aisé-ment des pages d’informations, et de créer desliens entre divers serveurs d’Internet. Dès son apparition, la communauté Internet

accueille le World Wide Web (www) avec le plus vif intérêt. Les principauxserveurs décident désormais de présenter désormais leurs informa-tions sous forme de pages écrites dans le langage HTML de Berners-Lee. Dès 1993, le Web devient un phénomène grand public.Fin 1994, Berners-Lee est entré au MIT de Boston et a supervisédiverses évolutions du Web.

Marc AndresseenNous sommes à la fin 1992 et le Web vient toutjuste d'apparaître. Pour qu'il puisse séduire legrand public, il manque un logiciel permettant denaviguer simplement. L’initiative est prise par unétudiant blond de 21 ans du NCSA dont le nomtrahit des origines scandinaves.Aidé de cinq autres programmeurs, Andreessenconsacre 8 semaines à la création de Mosaic.

Prêt en janvier 1993, le logiciel est placé en diffusion gratuite sur le ser-veur de la NCSA. Un phénomène de bouche à oreille se développe alors.Le 8 décembre 93, le New York Times estime que Mosaic est " l’appli-cation irrésistible tant attendue pour Internet ".Marc Andreessen reçoit alors un E-mail de Jim Clark, ancien fondateurde Silicon Graphics... Clark désire que le programmeur crée une versioncommerciale de Mosaic. Prêt en septembre 1994, le nouveau logicielest baptisé Netscape. Son succès est immédiat : en quelques mois, ils’impose comme le logiciel de choix pour surfer sur le Web. Le 8 août1995, l’entrée de Netscape à la bourse de New York se traduit par unedemande frénétique. C'est la première start-up à succès née avec leWeb. L'arrivée d'Internet Explorer de Microsoft stoppe l'essor de Nets-cape qui a été acquis par AOL en 1998 puis abandonné. Andreessen adepuis contribué à plusieurs projets liés au Web, dont une plate-formede création de réseaux sociaux.

James GoslingVers la fin des années 80, une petite division deSun dirigée par le canadien James Gosling tra-vaille sur un projet de décodeur pour la télévisionnumérique. De ces réflexions naît un langage deprogrammation baptisé Java, du nom d'une varié-té de café appréciée par les chercheurs de Sun.Le décodeur ne voit pas le jour. En revanche, vers1995, Java apparaît bien adapté à Internet : en

dopant les pages Web de mini-applications, il devient possible de lesenrichir avec des animations, des sons, de l'interactivité... Java s'estrapidement imposé comme un langage " universel " en quelquesannées, capable de rendre les applications indépendantes du système.En 1981, James conçoit le premier éditeur EMACS fonctionnant surUnix, le Gosling Emacs. James fut aussi à la fin des années 1980, l’ar-chitecte de NeWS (Network extensible Window System), un système àmulti fenêtre développé chez Sun.

Richard Stallman (ou RMS)Dès 1984, Stallman, avec son allure d'indécrot-table hippie entame sa longue quête en faveurdu logiciel libre. C'est à la suite de ses effortsque vont naître des systèmes tels queGNU/Linux (né en 1991 avec l’utilisation dunoyau Linux), aujourd'hui utilisés par desdizaines de millions d'utilisateurs. C’est lui quiinitie en 1985 un mouvement pour la création

d’un système d’exploitation libre appelé GNU, compatible Unix puis créedans la foulée la Free Software Foundation afin d'aider au financementde logiciels dont le code source est rendu public. Stallman est aussi,n’oublions pas, un développeur. En juin 1971, il rejoint le laboratoire

46-51 pionier 22/08/2007 19:09 Page 49

Page 50: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200750

Spécial 100 PROGRAMMATION LINUX

d’intelligence artificielle du MIT et devient un membre de la communau-té du hacking. C’est lui qui développa en 1975 l’éditeur EMACS. Stall-man part régulièrement en croisade pour dénoncer les dangers qu'il ditpercevoir dans les mécanismes de sécurité avancés de Windows Vistaou les lois restreignant la libre copie de chansons ou films protégés parle droit d'auteur.

Rasmus LerdorfLerdorf est né au Danemark mais a effectué sesétudes au Québec. En 1993, alors que le Webprend son essor, il développe son propre site afinde présenter son CV de programmeur. Désirantcontourner les limitations du HTML, il met aupoint quelques fonctions écrites en C. Afin depouvoir y faire appel, il a l'idée de les incluredans des balises spéciales entourées avec les

mention <? et ?>. PHP voit ainsi le jour vers novembre 1993. Intrigués,d'autres Webmasters contactent Rasmsus afin de savoir comment il aprocédé. En février 1994, il publie la première version de PersonalHome Page - PHP 1.0. Peu après, Rasmus décroche un emploi à l'uni-versité de Toronto et peut ainsi faire évoluer PHP, en y intégrant desstructures de programmation plus avancées : boucles, intégration deformulaires, support SQL... L'effort d'une communauté de dévelop-peurs permet de produire les versions ultérieures de ce langage quidevient la norme la plus répandue en matière de développement desites Web "dynamiques". Depuis 2002, Lerdorf est employé commeingénieur par Yahoo!.

Will WrightOn lui a souvent dit non, et l'His-toire lui a à chaque fois donnéraison. Génie des mathéma-tiques, Will Wright avait d'abordeu l'idée de Sim City, simulationde gestion d'une vil le, dès1987. Son idée était si originalequ’aucun éditeur ne voulait lepublier. Sim City a finalementété publié par Maxis en 1989 eta immédiatement rencontré unsuccès mondial ! En 1991, Wright récidive avecune nouvelle idée brillante, les

Sims qui simulent à présent la vie quotidienne d'une personne sous tousses angles : amis, famille, profession, etc. Cette fois, la traversée dudésert est plus longue; à chaque réunion marketing, Wright s'entend direque personne ne voudra jamais jouer à cela !Par chance, Electronic Arts rachète Maxis en 1997 et un français, LucBarthelet, découvre alors le potentiel des Sims. Il donne alors les cou-dées franches à ce drôle d'individu passionné d'Intelligence Artificielle— il adore construire des robots. Les Sims sort en février 2000 etdepuis, bat record sur record, ne quittant presque jamais le Top 10 desventes. Les diverses versions et extensions ont dépassé les 80 millionsd'exemplaires. Wright est reparti depuis belle lurette sur un projet plusfou encore, appelé, Spore et visant à simuler la création progressived'un univers entier à partir d'une simple particule !

Hans MoravecProfesseur de robotique à Carnegie Mellon, Moravec s'est distingué enprésentant en 1980 le premier prototype de robot mobile piloté par ordi-nateur, capable de négocier des obstacles non déterminés. Il s'est dis-tingué par ses prédictions extravagantes sur la vie artificielle, allantjusqu'à prétendre que les robots pourraient un jour être dotés d'uneintelligence évolutive. Depuis 2003, Moravec a fondé une Seegrid, uneentreprise de robotique visant au développement de robots totalementautonomes.

Larry Page et Sergey Brin Au printemps 1995, au campusde Stanford, l'élève Sergey Brinfait visiter les lieux à un étu-diant timide, Larry Page. Cesdeux surdoués ne savent pasencore qu'à partir de 1996, ilsvont s'attaquer à un problèmefaramineux : créer un moteur de

recherches surpassant ceux qui existent alors. Un de leurs professeursleur souffle la piste à suivre : tenir compte de la popularité d'un site enfonction des liens qui pointent vers lui. PageRank voit ainsi le jour.Les deux garçons créent la société Google en septembre 1998, avanttout pour pouvoir encaisser le chèque d'un professeur d'informatiquedésirant soutenir leur projet. Peu intéressés par la réussite financière,Page et Brin continuent de se comporter comme d'éternels étudiants,volontiers frondeurs. Entre temps, les consultations du moteur derecherche s'envolent et les deux investisseurs de Google les persua-dent tant bien que mal de la nécessi-té d'embaucher un gestionnaire puret dur, qui sera Eric Schmidt, débau-ché de Novell. L'insertion des liens publicitaires avec vente aux enchères des mots-clés — et une formule mathématique complexe comme en raffolent cesdeux ingénieurs —représente le deuxième étage de la fusée. Les reve-nus de Google montent en flèche et l'entrée en Bourse d'août 2004 esttriomphale. Dès l'année 2006, Page et Brin sont entrés dans le Top 30des hommes les plus riches du monde.

Janus Friis et Niklas ZennstromKaZaa et Skype... Le danoisFriis et le suédois Zenns-trom peuvent se targuerd'avoir été à l'origine dedeux des grands phéno-mènes en matière de logi-ciels, avec une constante :

le P2P. Apparu en mars 2000, le très controversé KaZaa serait le pro-gramme le plus téléchargé du Web (370 millions de fois). Apparu en2003, Skype est pour sa part devenue l'application de téléphonie sur IPla plus populaire d'Internet. C'estdire si la nouvelle aventure des deuxscandinaves, Joost, (télévision surInternet) est suivie avec intérêt.■ Daniel Ichbiah

46-51 pionier 22/08/2007 19:15 Page 50

Page 51: programmez100.pdf

46-51 pionier 22/08/2007 19:23 Page 51

Page 52: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200752

Spécial 100

Le Top 100des éditeurs français

Top 100 des Editeurs Français (en M€) (1)(2)(4)Rang Société CA CA CA

Edition Edition Total (3)Monde France

1 Dassault Systemes 991 102 11802 Business Objects 843 76 10003 GLTrade 147 24 1854 Atos Origin 133 10 53975 Cegid 128 124 2286 Sopra Group 125 74 8987 GFI Informatique 99 62 6338 Ilog 83 24 1459 Bull 75 15 114610 Linedata Services 67 15 14811 Cegedim 66 56 54012 Avanquest 65 8 7413 Lectra Systemes 61 6 21614 Esi Group 53 9 6615 Cartesis (Business Objects) 52 29 9216 Alcatel Genesys 44 10 14517 Infovista 33 15 4118 Viveo Finance 31 27 5419 Capgemini 30 0 770020 Berger Levrault (Magnus) 29 29 5321 Isagri 24 23 3622 Xrt-Cerg Finance 23 14 3323 Esker 21 3 2524 EBP 21 19 2425 Ares 20 20 43326 Cast 19 9 2327 Meta4 19 3 3528 Fiducial Informatique 19 19 4029 Pharmagest 19 19 6730 Generix / Influe 18 15 4531 Sab Ingénierie 18 15 2732 Jvs Groupe 17 17 2533 Coheris 16 14 3234 Orsyp 16 9 2435 IGE + XAO 15 10 2036 4D 15 4 1637 Prologue Software 15 8 2838 Genapi 15 15 3039 PC Soft 14 11 1740 Cegi 13 13 8641 Infolog Solutions (DL Consultants) 13 11 2142 Ever Team 12 10 1643 Missler 12 8 2544 Mega International 12 7 2245 Cylande 12 7 2246 Fininfo 11 11 13847 Planisware 11 7 1748 Itesoft 11 8 1749 Agrostar 11 11 4050 Ordirope 10 10 15

Top 100 des Editeurs Français (en M€) (1)(2)(4)Rang Société CA CA CA

Edition Edition Total (3)Monde France

51 Silicomp 10 10 12452 Horoquartz 10 10 2553 Jouve 9 7 10054 Harvest 9 9 1055 Civitas 9 9 1356 Corys Tess 9 6 1657 Sigma 9 9 4358 Staff and line 8 6 1159 Dimo Gestion 8 8 1260 Systar 8 8 1661 A2iA 8 5 962 Esterel Technologies 8 6 1263 VIF (vignon informatique) 8 7 1164 Lefebvre Software 8 8 1965 Medasys 8 7 1266 Bodet 8 4 4467 Axemble 7 7 2268 Business Document 7 5 969 Lascom 6 6 1070 Infologic 6 6 1171 Spiral Group 6 5 1572 Calystène & Médiane 6 6 673 SIS 6 6 1074 Qualiac 6 5 1175 Sefas Innovation 6 2 976 Proginov 6 6 1277 Infotel 6 5 7078 Divalto (Interlogiciel) 6 6 779 Sylogis.com 5 5 880 Hardis 5 5 3481 Access Commerce 5 5 982 Api Soft 5 5 683 IdealX 5 5 884 Silverprod 5 5 685 SNEDA 5 5 1186 Sword 5 5 14287 Winsoft 5 5 2088 PS Soft 5 3 589 As Groupe 5 5 890 Fimasys 5 2 1191 W4 5 4 592 ACA 5 5 1293 Groupe DP Logiciels (H2I, Krier) 5 5 894 Asterop 4 4 595 Cassiopae (ex Orfi) 4 4 1196 Siveco 4 4 797 Ciril SA 4 4 1298 Digitech 4 4 799 AS Infor (Cegid) 4 4 7100 Sinequa 4 3 4

I l indique que le marché fran-çais des logiciels est le troi-sième marché européen, der-

rière l’Allemagne et le Royaume-Uni. Il pèse plus de 8 200 M€, encroissance de plus de 5%. Lesoutils représentent 25%, les pro-giciels applicatifs 55%, et lessystèmes 20%. L’Indice fournit unpanorama détaillé de la positiondes éditeurs français et étrangerssur les marchés français et euro-péen. Les 100 premiers éditeurstotalisent plus de 3 900 M€ (édi-tion seule, hors services), en pro-gression de 12% par rapport à2005. Mais le marché reste domi-né par les américains (63%),comme le démontre le " Top 150des éditeurs sur le marché fran-çais ", toutes nationalités confon-dues. Le numéro 1, Microsoft, aun CA français qui représente 12fois celui du premier français,Dassault. Celui-ci figure au 10erang du Top 150.Les 10 leaders internationauxfigurent dans l’encadré ci-dessous.■ Jean Kaminsky

CA édition logiciels en France

10 Microsoft (US) 1244 M€

20 IBM (US) 545 M€

30 Oracle (US) 340 M€

00 (et sociétés rachetées)

40 SAP (Allemagne) 266 M€

50 Sage (UK) 227 M€

60 HP (US) 147 M€

70 Symantec (incl. Veritas, US) 130 M€

80 Cegid (FR) 124 M€

90 EMC (US) 108 M€

10 Dassault Systemes(FR) 102 M€

L’Association Française Des Editeurs de Logiciels (AFDEL), en partenariat avec l’institut Pierre AudoinConseils a rendu public en juin son Indice PAC/AFDEL.

(1) Activité produits logiciels, logiciels systèmes et d'infrastructures, outils.(2) Ce classement repose sur les chiffres d'affaires « produits » (CA Licences + CA Maintenance et Support).(3) CA Produits + Services.(4) Les chiffres présentés sont des estimations de Pierre Audoin Consultants et n'ont pas été validés par les sociétés.

52-60 outils 22/08/2007 19:24 Page 52

Page 53: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200753

Quand on parle outillage, chaque développeur bâtit souvent son propre environnement avec des outilscommerciaux et/ou open source. Et le choix se révèle immense quel que soit le domaine. Pour ce 100 e

numéro, nous vous proposons une sélection de 100 outils commerciaux, open source, connus, méconnus,dans tous les domaines, parmi lesquels il fut souvent difficile de choisir ! Impossible d’être exhaustif.Désolé pour les absents de la liste. Consultez sur le site programmez.com notre guide des logiciels !

Les100outilsincontournables

TEST.Test Parasoft

L’outil .Test représente le pendant de Jtest(Java) pour .Net de l’éditeur Parasoft. Il suppor-te Nunit. Il s’agit d’un outil d’automatisationdes tests unitaires et d’analyse de code. Onautomatise la génération et l’exécution destests. Surtout, on vérifie votre code selon 500règles standard de développement et on autocorrige les erreurs découver tes selon 200règles de violations.

XML< oxygen / > SyncRO Soft Ltd

Éditeur XML et debuggeur XSLT. Supporte lesbases de données XML, les schémas XML,Relax NG ou encore les grilles XML. L’éditeurprend en compte à chaque nouvelle version lesnouveautés et les avancées du monde XML.

SGBD4e Dimension 4D

Une des bases de données historique dumonde Mac, disponible aussi sous Windows.Environnement complet pour développer etdéployer des applications et bases de don-nées grâce à un RAD très complet. Disposed’un serveur et de multiples plug-in. La nouvel-le version possède un moteur SQL.

MODÉLISATIONAndroMDA AndroMDA.org

Outil open source de référence pour MDA. Ils’intègre à Eclipse. Il peut générer pour Spring,Java et .Net. Il s’interface avec les principauxoutils de modélisation du marché et supportela transformation des modèles.

IDEAnjuta Anjuta

EDI pour coder en C, C++. Il dispose de nom-breux templates et offre toutes les fonctionna-lités que l'on peut attendre d'un éditeur decette classe : colorisation syntaxique, complé-tion, compilation automatique... Il intègre éga-lement la prise en charge de CVS etSubversion et dispose d'un mécanisme deplug-in. Disponible sous Linux.

CONSTRUCTIONANT Apache

Outil d’automatisation de build pour les projetsquels que soient les langages. D’une grandesouplesse, on peut écrire des scripts pour définirles build. Il est largement utilisé par les éditeurset développeurs. Une version .Net existe (Nant).

COMPOSANTSAPI Google Google

Ce ne sont pas des outils mais des API et fra-meworks dédiés aux technologies et fonctionsGoogle. On en compte une trentaine pour lapublicité, la cartographie / géolocalisation, lesdonnées, la messagerie, les applications offli-ne / online avec Gear, etc. Une mine d’or pourle développeur web !

SOAAqualogic BEA

Comprend un ESB, un " annuaire " pour les ser-vices web, un intégrateur de données ainsi qu’unoutil de gestion d’accès et de sécurité applicati-ve. On dispose aussi d’un outil pour orchestrerles architectures complexes. Comprend aussiBEA 360°, dédié aux architectures SOA.

AJAXBackbase Backbase

Un des IDE Ajax les plus connus. Backbasepermet de créer des applications Ajax (à partirdu framework inclus en standard). Il prend encharge les standards du web et ne requiertpas de runtime. Il inclut par défaut plus de 50 objets widgets etfonctionne sur de nombreuses plates-formes.Pour l’entreprise, l’éditeur a sorti Ajax 360,incluant des ser vices et du suppor t, desbonnes pratiques, une meilleure gestion ducycle de vie.

GÉNÉRATIONBlu Age Netfective

Outil de génération de code pour Java EE et.Net. Il utilise les diagrammes UML et pour l’in-ter face s’appuie sur XHTML. À par tir desmodèles et méta modèles, il génère le codepour la cible choisie.

DÉBOGAGEBugzilla Mozilla

Outil de suivi de bug et de modification decode. Il s’utilise individuellement ou en équipe.Il gère la qualité logicielle ainsi que la soumis-sion des patches. Il s’intègre à de nombreuxoutils tiers et est une référence du marché.

COMPILATEURC++ Compiler Intel

Compilateur C++ intégrant les libraireshautes performances d’Intel afin d’optimiserle code sur les primitives et toute opérationmathématique. Disponible pour Linux, MacOSX et Windows.

SGBD

Dossier réalisé par François Tonic, Loïc Guillois, Fabrice Dewasme, Aurélien Vannieuwenhuyze, Maxime Vialette. Et avec l’aide de Frédéric Mazué.

52-60 outils 22/08/2007 19:25 Page 53

Page 54: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200754

Spécial 100Caché Intersystems

SGBD orienté objet, Caché d’Intersystems visel’approche au-delà du relationnel pour gagneren performance, en fiabilité. Comme les lan-gages objets sont aujourd’hui la règle, pasbesoin de passer par du mapping relationnelobjet pour aller d’un modèle à un autre. Deplus, les données peuvent être modelées enobjets et l’environnement a toutes les particu-larité de l’objet (polymorphisme, héritage, etc.).

COMPOSANTSChartFX Software FX

Écrit dès le départ nativement en C#, ChartFXs’utilise aussi bien avec VS 2005 qu’avec lesversions précédentes ou Borland C# Builder. Ilest orienté, comme son nom l’indique, afficha-ge de données, données. Il est expert en dia-grammes et en manipulation de données XML.

SGBDCodeBase Sequitter

Gamme d’outils dédiée aux bases de donnéespour simplifier l’accès aux données dans sonapplication. L’outil supporte les principauxSGBD et langages du marché (.Net, Java, C,C+, Python, etc.). Il n’y a pas de licence àpayer pour la distribution. L’implémentation deCodeBase se fait par une API.

WEBCodeCharge Studio Yes Software

Environnement de développement d’applica-tions web dynamiques avec prise en charge del’accès aux données (support des principauxSGBD). Côté langage, l’outil supporte PHP,ASP / ASP.Net, JSP, Perl, ColdFusion. Dans ladernière version, il inclut un modèle de repor-ting web. Pour simplifier le travail, de nom-breux assistants de créations sontdisponibles.

GÉNÉRATIONCodeFluent SoftFluent

Outil français de fabrique à logiciel, on partd’un modèle XML pour générer le code .Net(Java en cours de finalisation). Tout est écrit enXML. Il permet de faire du mapping objet rela-tionnel et supporte de nombreux outils tiers.

RAPPORTCrystal Reports BusinessObjects

Un des outils de création et de diffusion derapports les plus utilisés. Il s’interface aisé-ment avec Java et .Net soit dans l’environne-ment de Cr ystal Repor ts ou via son

environnement de développement. Les rap-ports s’utilisent aussi bien dans des applica-tions desktop que web.

SGBDDB2 9 Viper IBM

Avec Viper, IBM met à niveau sa base DB2.Elle inclut le support natif du XML. Viper pos-sède en fait deux stockages et deux moteurspour pouvoir stocker les données relation-nelles et les données XML. Pour le développe-ment, on dispose d’un workbench basé surEclipse. Il est possible d’utiliser Viper avecJava, PHP, .Net. L’installation et le déploie-ment de l’environnement se veulent plussimples et plus rapides. Viper introduit ausside nouveaux mécanismes de compression dedonnées. Une mise à jour est attendue dansles prochains mois. Db2 9 Express-C est l’édi-tion gratuite de DB2.

SGBD DbVisualizer Minq Software

Client SQL permettant la gestion de bases dedonnées. Db Visualizer offre les fonctionnalitésde visualisation du schéma de base de données,l’exécution de requêtes, analyse des per for-mances SQL etc. Ecrit en Java, il se veut multi-plate-forme et propose une multitude deconnecteurs (SQL Server, Oracle, postgreSQL…).

QUALITÉDevPartner Compuware

Édité par Compuware, DevPar tner est unegamme d’outils pour les équipes de dévelop-peurs et de testeurs travaillant en .Net et Java.L’édition Studio permet d’analyser le code, dediagnostiquer et de détecter les erreurs,d’analyser la mémoire, de réaliser une couver-ture de code, d’analyser les performances,etc. L’édition Serveur se destine plutôt auxapplications distribuées. L’outil DevPartnerSecurityChecker permet d’analyser le codeselon les règles et politiques de sécurité.

WEBDreamweaver Adobe

Environnement intégré pour développer etgérer des sites web statiques ou dynamiques.

La version CS 3 suppor te Ajax (frameworkSpr y) et les dernières technologies dyna-miques ainsi qu’une refonte totale de l’éditeurCSS. La référence du marché. S’intègre auxautres outils Adobe comme Photoshop.

IDEEasyPHP easyphp.org

Solution tout en un pour déployer un serveurweb Apache sous Windows. Il intègre égale-ment un serveur de bases de données MySQLet PHP. Il fait partie de l'outil le plus utilisé parles développeurs Web.

IDE / PLATE-FORMEEclipse Eclipse

Environnement de développement pour C, C++et Java. Modulaire, il est aujourd’hui l’un desoutils les plus utilisés par les développeurs.De nombreux IDE s’appuient sur Eclipse (ex.RadRails, JBoss IDE, ou encore Talend). Eclip-se est aussi une plate-forme avec de nom-breux projets et un client riche (Eclipse RCP).La v3.3 est la dernière version en date.

IDEEmacs gnu.org

Souvent oublié par les " jeunes ", Emacsdemeure l’éditeur de code de référence. D’unesouplesse et d’une ouverture incroyable, il saittout faire ou presque : C++, C, Java, Python,Tcl, Lisp, SQL, XML, etc. Peu consommateuren ressources systèmes et en mémoire,Emacs est parfait pour les gros projets.

WEBExpression Microsoft

Grosse nouveauté de l’été 2007, la gammeExpression de Microsoft. Il s’agit de nouveauxoutils de développement et de design web qui doivent concurrencer ceux d’Adobe et proposer de puissants outils s’appuyant sur lestechnologies du framework .Net 3.x. On disposed’un outil de graphisme, Design, de conception,Blend (concurrent de Flash), d’Expression Web(remplaçant de FrontPage) et de Media / MediaEncoder. Les versions 2.0 sont déjà en coursde développement et fourniront une meilleurecollaboration développeur – designer.

52-60 outils 22/08/2007 19:26 Page 54

Page 55: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200755

PROGRAMMATION LINUX

SGBDFirebird Firebird project

SGBD open source disponible sur Linux, Unixet Windows. Elle est issue de Borland Interba-se. L’environnement fonctionne en 32 et 64bits. Il suit rigoureusement la norme SQL. Laversion 2 a introduit de nombreuses nouveau-tés : réécriture de l’indexation, nouvelle inter-face, sécurité renforcée, le support du 64-bit.La version 2.1 est en cours de finalisation.

ANALYSEURFirebug

Plug-in pour firefox. Firebug analyse les feuillesde styles et le code HTML pour vous aider à ydéceler les anomalies. Il offre un débuggeuravancé pour Javascript.

WEBFlash Adobe

Technologie et outils pour concevoir etdéployer des animations, des interfaces inter-actives pour les sites web. Ce logiciel permetla création de graphiques vectoriels et de bit-map, un langage script appelé Action Scriptpermet la création d’applications dynamiques.

WEBFlex Builder Adobe

Flex est une plate-forme développée parAdobe, basée sur MXML, Flash et des servicesserveurs. Flex Builder est l’outil de développe-ment dédié, basé sur Eclipse. Permet de créerdes applications riches.

SOAFUSE Iona

L’éditeur Iona a présenté une suite intégréepour la SOA, le bus d’entreprise (ESB), le mes-saging, les web ser vices : FUSE. I l seconcentre sur l’infrastructure. Cette offre estcompatible avec l’offre commerciale de l’édi-teur : Artix. FUSE est issue du rachat de Logic-Blaze et de l’offre open source Celtix (versionlibre d’Artix). Pour les entreprises, l’éditeurpropose des services et supports.

COMPILATEURGCC gnu.org

L’un des outils libres les plus utilisés. Il s’agitdu compilateur pour C, C++, Objective C, Java,Ada et Fortran. Très extensible, au fil des versions, il n’acessé de supporter de nouveaux outils et lan-gages. Les dernières versions sont capablesd’auto vectoriser à la compilation.

SERVEURGlassfish Sun

Serveur d’applications de référence pour l’im-plémentation de Java EE 5. Le projet initié parSun grossit régulièrement. La version 2 arrive-ra bientôt et la version 3 est déjà prévue pourl’an prochain. La persistance de données sebase sur Toplink (Oracle). La v2 doit apporter une architecture de cluste-ring revue et corrigée. Compatible NetBeans,Eclipse, JBuilder et IntelliJ.

IDEGrasshopper 2.0 Mainsoft

Disponible gratuitement pour les développeurs,Grasshopper permet de déployer des applica-tions ASP.Net et .Net 2.0 sur Linux ou touteplate-forme ayant un serveur Java EE, sansavoir besoin de migrer le code ! L’outil compilele code en bytecode Java. Pour un développement d’entreprise, Mainsoftpropose aussi Mainsoft for Java EE EnterpriseEdition.

SOAHydra Rogue Wave

Rogue Wave, connu pour son expertise enC++, s’adresse aux services web et aux archi-tectures SOA avec HydraSuite et en particulieravec les outils HydraSCA, HydraSDO etHydraExpress. Il est possible de construiredes SOA avec des web services C++, Java ouC#. C’est avant tout un environnement deconception, de développement et de déploie-ment.

SGBDIngres Ingres

Base de données historique du marché, deretour depuis quelques années en open sour-ce. La version 2006 r2 simplifie l’installationet améliore l’interface utilisateur. Il supportela reprise d’activité après un crash ou encorele clustering. Pour le développement, on dispo-se d’Hibernate, ODBC / JDBC, de PHP, d’untoolkit Eclipse, d’Unicode, etc. Pour le dévelop-pement, on peut utiliser OpenROAD, un RADfourni par Ingres.

INSTALLATIONInstallAnywhere Macrovision

Installeur 100 % Java. L’outil supporte de nom-breux systèmes et est facilement extensibleavec une librairie de développement. À partird’un unique projet, on cible l’ensemble desplates-formes. Il supporte Java / Java EE. Un

format universel est même proposé pour tousles systèmes. Un module de désinstallationest inclus. Installation online et offline. Déve-loppement en équipe et 64-bit supporté.

INSTALLATIONInstallShield 11 Macrovision

Environnement de création d’installation inté-grant son propre langage. À partir d’une mêmeinter face, il est possible de gérer, créer etgénérer des installeurs spécifiques à diffé-rentes plates-formes. Les dernières versionssupportent Windows, .Net, les packages RPM,.Net, Unix, MacOS X. Une fonction Essayer –Acheter existe aussi, ainsi que la possibilité demettre en place un système d’activation dulogiciel et un service de notification de mise àjour pour prévenir l’utilisateur de la disponibili-té de patchs, nouvelles versions, etc.

TESTSInsure++ Parasoft

Il a pour objectif de trouver et de résoudre leserreurs mémoire, fuites mémoire, les pro-blèmes d’allocation, les conflits de définitionde variables, etc.

IDEIntellij Jetbrains

Environnement de développement Java sefocalisant sur le code et le développement. Ilprend en charge Java, les langages web, Rubyainsi que des frameworks comme Rails etGWT. L’IDE intègre toutes les fonctions néces-saires : refactoring, analyseur de code, déve-loppement d’entreprise, complétion du code,travail en équipe, API disponibles, etc.

Abonnez-vous

3numéros gratuits

coupon d’abonnement p. 95et sur

www.programmez.com

52-60 outils 22/08/2007 19:26 Page 55

Page 56: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200756

Spécial 100SOA

JBoss JEMS Jboss

Connu pour son serveur d’application, JBossdispose aussi d’une solide offre open sourcepour le middleware d’entreprise, avec JBossJEMS. Celui-ci constitue une fondation SOAcomprenant tous les outils pour créer sonmiddleware et mettre en place des services. Ils’est doté d’un moteur de règles métiers etsurtout il dispose d’un ESB.

IDEJBuilder CodeGear

Un des plus populaires IDE Java / Java EE avantl’écrasante domination d’Eclipse. S’appuyantjusqu’à récemment sur son propre socle tech-nique, JBuilder a évolué avec Java et a intégrétoujours plus de fonctions et d’éditeurs spéciali-sés. Aujourd’hui, JBuilder s’appuie sur Eclipse.

SERVEURJonas OW2

Serveur d’application Java EE open sourcegéré par OW2 Consortium (ex-ObjectWeb). Ilest certifié Java EE 1.4. Comme les autressolutions d’entreprise, le projet prend le virageSOA en intégrant un gestionnaire de workflow(Bonita), un moteur BPEL (Orchestra) et un por-tail eXo Plaform. La version 5 actuellement endéveloppement supportera Java EE 5 et lesdernières versions de Tomcat et Jetty. Pour lesEJB 3, Jonas 5 intégrera EasyBeans.

TESTSJprobe Quest Software

Édité par Quest Software, Jprobe permetd’analyser et de tester en profondeur sonapplication Java : couverture de code, mémoi-re, performances, montée en charge. Permetaussi de tester les portails Java.

OUTILSLabView National Instrument

Environnement de développement pour créerdes applications de tests, de mesures et de

contrôles. Très utilisé en industrie, il fonction-ne sur Linux, Windows et MacOS. La dernièreversion prend en charge le multicoeur. Unmodule de modélisation des systèmes com-plexes est disponible.

GUI Leonardi Lyria

Outil de génération d’interface graphique, Leo-nardi s’appuie sur un méta modèle qui fournitune structure du projet (il peut être généré parrétro ingéniering). Ensuite, on paramètre. Ledéveloppeur peut lier son modèle à un modèlede données, puis l’outil génère l’inter face.Idéal pour créer rapidement des squelettes,des maquettes.

TESTSLoadRunner HP

Solution de validation de performance leaderdu marché, supportant l'ensemble des applica-tions et intégrant des solutions de diagnostics.

DEBOGAGEMantis Mantis

Cet outil en ligne permet l'édition de rapportsde bogues. Il ne dispose pas de wiki intégré etdoit recourir à une solution externe. De plus, iln'offre pas d'interface web pour Subversion.Cependant il reste un outil très utilisé pour sonefficacité à gérer les rapports de bogues.

GESTIONMaven Apache

Outil libre de gestion de projet et d’automatisa-tion de build, à l’instar du projet Ant, mais plussimple (modèle basé sur XML comme Ant).Maven est surtout fait pour les projets Java.Pour décrire le projet, il utilise le Project ObjectModel. Un de ses points forts est la facilité demise en œuvre et la partie réseau.

MODÉLISATIONMia-Generation Mia

un des outils les plus réputés du marché. Il uti-lise des règles de générations. Il supporteUML (dont les profils UML), possède unmoteur de génération basé sur les templates,propose un cycle itératif. Il est multi-langage(Java, C#, XML, etc.) et suppor te de nom-breuses technologies et bases de données, cequi permet de l’utiliser sur des projets variés.

IDEMyEclipse Genuitec

MyEclipse est un IDE basé sur Eclipse mais

entièrement repackagé pour mieux utiliserEclipse, simplifier sa prise en main et amélio-rer le développement Java. L’environnementsuit les évolutions de la fondation Eclipse. Lav6 s’appuie sur Eclipse 3.3 et intègre Europa,la " distribution Eclipse intégrant 21 projets ".Les dernières évolutions de Java et Java EEsont supportées. Un excellent outil Java.

SGBDMySQL MySQL

Le SGBD libre le plus utilisé au monde ! Actuel-lement en version 5.x. Eprouvé depuis desannées, MySQL évolue au fur et à mesure. Ilpropose différents moteurs de stockage (ce quiest très pratique) et possède des fonctionsavancées dans la haute disponibilité, le cluste-ring, le transactionnel. Utilisable avec la plupartdes langages et outils de développements,c’est un outil incontournable.

IDENatJxT Nat System

Atelier de développement client riche basé surEclipse. Il permet de développer des projetspurs web ou Java EE. Il est capable de généreren RCP et Ajax. NatJxt doit vous permettre deréduire le temps et les coûts de développe-ment des applications métiers.

IDE / PLATE-FORMENetbeans Netbeans

IDE pour C, C++ et Java. Aussi complet qu’Eclip-se, il possède une interface meilleure et sur-tout un constructeur visuel d’interface. Intègrede nombreux plug-in en standard. Comme Eclip-se, il dispose d’une plate-forme technique etdes kits spécialisés (entreprise, mobilité).

COMPOSANTSNetAdvantage Infragistics

Suite de composants prêts à l’emploi pourenrichir facilement ses applications en suppor-tant les dernières inter faces, les dernièrestechnologies. Plusieurs dizaines d’objets sontprêts à l’emploi (bouton, grilles, tableaux,champs, etc.). NetAdvantage est disponiblepour WPF (.Net 3.0), ASP.Net, Windows Forms,JSF, Swing / JFC.

WEBNvu

Outil visuel de création de pages web. Il per-met de concevoir des pages HTML et des CSS.Il se veut rapidement maîtrisable. Libre, il fonc-tionne sur MacOS X, Windows, Linux. Il ne

52-60 outils 22/08/2007 19:26 Page 56

Page 57: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200757

PROGRAMMATION LINUX

devrait pas connaître d’évolutions. Un forkexiste sous le nom de Komposer. Son succes-seur sera Mozilla Composer.

MODÉLISATIONObjecteering Objecteering

Environnement complet, capable de faire aussibien du MDA que du MDD. Il s’agit d’un envi-ronnement complet de modélisation UML 2. Ilprend en compte les profils UML. Il proposeaussi bien la modélisation, le design, que lestests. Il peut se synchroniser avec Eclipse etdes outils de cycle de vie tiers. Il peut générerdu code Java, C++, C#, SQL, Corba ou Fortran.

WEBOpenLaszlo Laszlo

Technologie comparable à Flash et compatibleavec cette dernière. La compilation du code parle SDK génère des applicatifs en Flash et DHTML.Son principe réside en la création d’interfacesgraphiques via le LZX qui est une grammaire XMLà laquelle sont ajoutés des scripts d’actionsécrits en javascript. IBM et Sun travaillent active-ment sur cette technologie ouverte.

MDAOptimalJ Compuware

Un des premiers outils MDA du marché dont ilimplémente en profondeur les spécificationsde l’OMG. Il vise la plate-forme Java / Java EE.L’édition architecte permet de modéliser et degénérer l’ensemble de l’architecture.

SGBDOracle 11g Database Oracle

Incontournable sur le marché, Oracle a sor tidurant l’été la version 11 de sa base de données.Plusieurs centaines de nouveautés et d’améliora-tions. L’une des avancées est l’auto diagnostic etadministration de l’outil pour faciliter le travail auquotidien. La 11g étend le support à de nouveauxtypes de données (images, RIFD, vidéo…). Lesupport du XML a été amélioré.

SGBDOracle Database Express Edition Oracle

Déclinaison gratuite d’Oracle Database.Actuellement basée sur la 10g, cette versionallégée permet de développer et de déployerdes bases de données Oracle sans contrainte.Cette édition est limitée à un processeur parmachine, à 4 Go de données par utilisateur età un Go de mémoire. Le SGBD inclut pardéfaut l’outil de développement ApplicationExpression.

IDEOracle JDevelop Oracle

Oracle édite aussi des outils de développe-ment, l’un d’entre eux est Jdevelop, un IDE gra-tuit. Il permet de développer en Java / Java EE.Il incorpore aussi une approche MDA. Il inclutpar défaut Struts, Ant, Junit, Xdoclets, CVS(pour la gestion du code). Un SDK permet depersonnaliser et étendre l’outil.

GESTIONPerforce Perforce

Outil de gestion de configuration rapide et per-formant. Il s’interface avec de nombreux lan-gages et outils de développement. Il gère lestâches à faire dans le projet, possède sonpropre référentiel. On dispose d’une partieserveur, et d’une par tie client. Il gère lesbranches et s’intègre très bien avec des outilsde qualité. Implémente aussi les triggers.

SGBDPervasive PSQL 9 Pervasive

Base de données pour les ISV qui construisentet maintiennent des applications cruciales auxmissions. A l’ intention des petites etmoyennes entreprises. Pervasive PSQL vousoffre la performance, des capacités d'intégra-tion et un faible coût total de propriété.

IDEPHPEdit WaterProof

Un des IDE PHP les plus connus. Il propose unpuissant éditeur de code, un module dedebug, la complétion du code, un navigateurde code ainsi qu’un profileur. La version 2.1supportera PHPUnit, un framework de tests !Cette version permettra une meilleure intégra-tion avec les bases de données et un moduleFTP évolué.

QUALITÉPolySpace PolySpace

PolySpace est particulièrement utilisé dans lemilieu de l'informatique embarquée, plus spé-cialement celui des transports, de la défenseet de l'industrie. Il permet l'analyse de codeJava et C et mériterait à être plus connu etplus utilisé. Son efficacité est reconnue et leretour sur investissement peut être importantsur les projets critiques.

MODÉLISATIONPower AMC Sybase

Édité par Sybase, PowerAMC est un des outilsde modélisation UML et Merise les plusconnus. Il est possible aussi de modéliser desprocessus métiers et données d’un systèmed’information. Pour chaque modélisation, lagénération de code issue du modèle est alorspossible. La puissance de cet outil est égale-ment démontrée par sa faculté de réaliser dureverse engineering. Il peut satisfaire laconnexion à toutes les bases de données exis-tantes et permet la génération de code enJAVA, .net, Power builder et Webservices.

COMMUNICATIONPuTTY

Utilitaire permettant aux utilisateurs de Win-dows la possibilité de se connecter à unemachine Unix via un accès SSH ou RSH. Trèsléger et performant, le shell semble être exé-cuté en natif sur le poste hôte. Avec Putty, onpeut également se connecter en Telnet. Vouspourrez également utiliser PSCP et PSFTP.

LIBRAIRIEQt Trolltech

Édité par Trolltech, Qt est une des librairiesd’interface les plus connues et les plus utili-sées. Elle permet de créer des interfaces utili-sateurs multi-plates- formes en C++ et depuispeu en Java (Qt Jambi). Qt est aussi disponiblepour l’embarqué et les terminaux mobiles.

IDE Rational Professional Bundle IBM

Rational propose des dizaines d’outils pour ledéveloppeur, l’architecte, l’entreprise. Ce pac-kage spécial regroupe tous les outils (basés surEclipse) nécessaires pour concevoir des appli-cations et architectures portails, Java, Java EEet SOA. Il inclut des outils de tests commeFunctional Tester, Manual Tester. Pour l’organi-sation du projet, on dispose de l’outil RationalUnified Process (méthodologie RUP).

ATELIERRational Software Architect IBM

Outil phare de la gamme Rational, il s’agit d’unatelier complet de conception, de développe-ment basé sur Java EE, UML et l’approche

52-60 outils 22/08/2007 19:27 Page 57

Page 58: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200758

Spécial 100 PROGRAMMATION LINUX

MDD. Il utilise une API EMF et s’appuie aussisur les templates JET. Un outil très complet !

MODÉLISATIONRational XDE IBM

Un des outils majeurs de Rational : l’outil demodélisation UML 2.0, XDE. Il propose le déve-loppement piloté par modèle. Il supporte lesdesigns patterns, les templates de code, lemodèle MDA.

RÈGLESRules for .Net Ilog

L’outil d’Ilog permet de créer rapidement desrègles métiers sous .Net à partir d’un documentOffice et de pouvoir facilement les gérer, lesdévelopper, les maintenir sous Visual Studio.Ces règles se destinent aux applications .Net,Web et services web. En Java, on utilisera Jrules.

CONTENUSpip Spip

Système de gestion de contenu open source,très utilisé de par le monde. Il est écrit en PHP.Il permet de mettre en ligne rapidement, surun site, du contenu. Il est collaboratif et facile-ment extensible. Il simplifie largement la ges-tion de contenu pour le non spécialiste.

SGBDSQL Anywhere Ianywhere

Base de données taillée pour les applicationsmobiles. On dispose d’une édition serveurpour les applications d’entreprises, d’une édi-tion personnelle pour les applications depetites tailles. UltraLite est un SGBD fonction-nant avec 300 Ko de mémoire sur les princi-paux systèmes mobiles.

SGBDSQLBase Unify

Base relationnelle taillée pour le monde del’embarqué. L’environnement propose dans sadernière version un module de réplication etde synchronisation avec les clients desktop etentre le serveur et les SGBD Oracle et Micro-soft. Elle propose un triple cryptage DES.

SGBDSQL Server 2005 Microsoft

Base de données de Microsoft. Dans sa ver-sion 2005, SQL Server apporte au cœur de labase les notions d’objets, le support natif de.Net et du XML. Il s’inter face par faitementavec les applications .Net et Visual Studio. Ilembarque aussi sa propre version de SQL et

améliore considérablement les mécanismesde récupération. Un important effort a été faitsur la montée en charge, le clustering, la hauteperformance. Une édition mobile existe. Ontrouve également une édition gratuite,Express, et limitée dans la taille des données,le nombre de processeurs, la mémoire vive.

FRAMEWORKSpring

Cet outil apporte à la fois un support pour laprogrammation orientée aspect et implémentebien le modèle MVC. Il est courammentemployé dans les architectures en couche. Ilintègre de nombreuses librairies dont Hiberna-te, JSF, les EJB des modules pour la sécuritéou encore les services web.

FRAMEWORKStruts Apache

Struts apporte la rigueur du pattern MVC etune librairie de tag pour aider le développeur àconstruire des formulaires rapidement. Ce fra-mework supporte les interfaces évoluées enAjax tout comme le protocole SOAP pour lesservices web.

SOURCESubversion tigris.org

Très utile pour mettre en place une gestion desfichiers sources mais peut également servirpour la documentation de projet. Chaque déve-loppeur dispose d'une copie locale du dépôtdes sources.

GESTIONSurround SCM Seapine

Edité par Seapine, Surround SCM est un outilde gestion de configuration. Il gère les phasesdes projets, les branches, les référentiels. Ilsupporte les annuaires LDAP et ActiveDirecto-ry, le protocole WebDav ou encore la fonctionde fusion. Il s’intègre aux autres outils Seapi-ne comme TestTrack Pro pour la gestion et lesuivi des erreurs, des bugs, des requêtes.

SOASystinet HP

Outil de gouvernance SOA, Systinet offre unenvironnement de gestion très complet que cesoit pour la gouvernance, le référentiel, l’an-nuaire, l’exposition et la consommation de ser-vices. Permet de mettre en place des politiques d’ac-cès entre les utilisateurs et les fournisseursde services.

IDESweetDev Studio IDEO

IDE de développement Java basé sur Eclipse.SweetDev est un framework Java EE contenantde nombreux objets prêts à l’emploi, dérivantde Struts. Le studio doit permettre d’accélérerle développement Web. Le framework s’inter-face avec d’autres IDE comme JBuilder.

SGBD Talend Open Studio Talend

D’origine française, cette solution améliorel'intégration des données d'entreprise demanière innovante. L'approche graphique estefficace et permet la réalisation avec succèsdes différentes opérations de consolidation oude migration de données que l'on peut êtreamené à rencontrer dans le cadre de projetsd'informatique décisionnelle ou lors de larefonte d'un système d'information.

OUTILTeam Developer Unify

RAD pour réduire les phases de développe-ment (design, développement, déploiement). Ilsupporte Vista et le 64-bit Windows. Il intègreun explorateur de données, un outil de repor-ting, une gestion de code source en équipe. Ils’adapte aux grandes et petites équipes. Ilprend en charge les web services Java et .Net.

MODÉLISATIONTogether Borland

Environnement complet de modélisation UMLpour les architectes et développeurs. Il prenden charge UML 2 et le BPMN pour gérer etgénérer des processus métiers. Il permet degénérer du code à partir du modèle, de l’analy-ser. Prend aussi en charge MDA. Une des références du marché. Fonctionnepour Java et .Net.

DÉBOGAGETrac Edgewall

Application en ligne permettant l'édition et lesuivi de rapports de bogues. Il permet à uneéquipe de testeurs de publier facilement destickets sur une version donnée du logiciel enphase de test ou de recette. Chaque ticketcomporte un niveau de criticité ainsi qu'unedescription. Le traitement de celui-ci est ensuite affecté àun développeur. Le chef de projet, quant à lui,peut suivre l'évolution de la stabilité de sonprojet. Outil très utile pour une équipe de déve-loppement.

52-60 outils 22/08/2007 19:29 Page 58

Page 59: programmez100.pdf

52-60 outils 22/08/2007 19:34 Page 59

Page 60: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200760

Spécial 100 PROGRAMMATION LINUX

MODÉLISATIONUModel Altova

Outil de modélisation UML pour les archi-tectes, chefs de projets et développeurs. Sup-por te UML 2.1.1. Il peut transformer lesschémas XML en diagrammes UML. La généra-tion de code à partir du modèle se fait en Javaet C#, avec synchronisation modèle – code.Possibilité de créer le modèle à partir d’uncode. Un outil très puissant doté d’une bonneinterface graphique.

SÉCURITÉVisual Guard Novalys

Visual Guard permet de créer un rôle pourchaque utilisateur afin de sécuriser l’accèsaux dif férentes par ties de l’application.Chaque rôle est associé à un groupe de per-missions qui définit ce que l’utilisateur estautorisé à faire, voir et/ou modifier dans l’ap-plication et dans la base de données. Parexemple, vous pouvez cacher des informationsconfidentielles comme les salaires.

IDE Visual Studio 2005 Microsoft

IDE édité par Microsoft pour la programmationWindows et .Net. Il permet de développer pourles différentes éditions de .Net et supportetous les langages .Net. Très puissant, ilintègre l’ensemble des fonctions nécessairesaux développeurs (complétion, éditeur d’inter-face, debug, compilateur, gestion de projet,interface avec Team System, développementweb, etc.). Une gamme Express, gratuite, est disponiblepour découvrir le développement .Net (éditeurVisual Studio allégé). La version 2008 aliasOrcas sortira en février 2008.

TESTSVtune Intel

Gamme d’outils d’analyse de performancespour les applications C, C++, Fortran, Java,.Net. Permet de réaliser du tuning fin sur lesprocesseurs Intel. Supporte les codes 32 et64 ainsi que les dernières gammes de proces-seurs. Disponible sous Linux et Windows.

WEBWeb Performance Suite Web Performance

Web Performance Suite est une suite d’outilsde tests Web conçus pour les sites Web quiutilisent les technologies standard comme lesformulaires Web, J2EE, ASP, .NET/C#, PHP,Ruby, ColdFusion, Java, etc.

SOAWebMethod Suite SoftwareAG

Suite au rachat de WebMethod par Softwa-reAG, le nom CrossVision disparaît au profit deWebMethod Suite. Suite d’outils incluant desmodules de gouvernance, de compositiond’applications composites, de BPM, fonctionsd’intégration de l’infrastructure applicativeexistante, outils de modélisation et d’orches-tration. Présence d’un référentiel unique.Cette suite intégrera à terme (courant 2008)les éléments CrossVision et ceux provenantdes outils WebMethod.

ATELIERWindev PC Soft

Atelier de Génie Logiciel développé par lasociété PC Soft utilisant le W-Langage. Mais ilest aussi possible d’utiliser d’autres langagescomme Java, C++ et .Net. Cet outil décliné endeux versions (Windev , Windev mobile) seveut facile d’utilisation et offre un confort dedéveloppement apprécié de tout développeurvoulant réaliser une application rapidement.Une édition Web existe, WebDev.

MODÉLISATIONWin’Design Win’Design

Très puissant outil de modélisation, orientéentreprise. La gamme comprend 4 modules :database pour concevoir des bases de don-nées (avec fonction reverse), business pro-cess pour la modélisation de processusmétier, object pour la modélisation UML etenfin UserInterface pour la maquettage d’inter-face utilisateur. La version 8 apporte une nou-velle gestion des profils de paramétrages et untout nouveau module d’administration.

TESTWorkstation VMware

Solution de virtualisation pour les postes detravail. La version 6.x permet aux dévelop-peurs Eclipse et Visual Studio de déboguerdans des environnements virtuels, très pra-tique pour réaliser des tests sous plusieursenvironnements cibles.

SGBDXcalia Studio Xcalia

L’éditeur spécialisé dans le mapping relation-nel objet propose un puissant éditeur gra-phique pour créer le mapping objet Java. Ilgénère les metadonnées XML et les docu-ments liés. Il permet d’éviter de coder unegrande partie de la couche de mapping.

XMLXMLSpy Altova

Environnement de développement dédié à XMLet à ses dérivés. Il propose un éditeur XML, undesigner de schémas, des convertisseurs, desdebuggeurs spécialisés, une génération decode (Java, C#, C++). Pour les services web,on dispose d’un éditeur graphique WSDL, d’unclient et débuggeur SOAP. Un gestionnaire deprojet est disponible. S’intègre à Visual Studioet Eclipse. L’éditeur propose aussi une suitecomplète intégrant l’ensemble des outils XMLde la société (édition architecte et dévelop-peur).

DIVERSXULRunner Mozilla

XULRunner permet d’exécuter les applicationsécrites en XUL sans avoir à passer par un logi-ciel compatible XUL comme Firefox. Il inclut lemoteur Gecko et une grande partie des API deFirefox. Le développeur peut alors utiliser cetteplate-forme pour concevoir son application etbien utiliser les possibilités de XUL. Xulrunnerservira de socle de développement aux appli-cations Mozilla.

IDEZend Studio Zend

Edité par Zend, Zend Studio est rapidementdevenu une référence dans les outils de déve-loppement PHP. Il inclut un puissant éditeur,des modules de debug, d’analyses, d’optimi-sations. Il s’interface avec Subversion pour lagestion des sources. Il suppor te Internet Explorer, FTP pour ledéploiement ou encore Zend Framework, ainsique les code snippets. Les web services nesont pas oubliés (génération aisée des fichiersWSDL). On trouve aussi Zend Engine. Une approchedifférente du développement PHP avec ce fra-mework. Il reprend les idées clef de Java et.NET et tente de reprendre le modèle qui a faitle succès de Rails, notamment en ayant unedimension Web 2. Supporte l’internationalisa-tion, les services web, etc.

52-60 outils 22/08/2007 19:29 Page 60

Page 61: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200761

Spécial 100

Les100motsà connaître

L’informatique est le nid idéal pour les anglicismes, acronymes, sigles, abréviations, franglais. Et detemps en temps, avouons qu’on en abuse un peu. Comment choisir 100 mots ? Voilà un exercicequasi impossible car chaque développeur,architecte, responsable aura sa propre liste avec des pointscommuns et des divergences. Nullement exhaustive, cette liste a le mérite de vous donner quelquesbases et sans doute l’envie d’aller plus loin. Nous vous invitons courant septembre à explorer la rubrique dictionnaire sur notre site www.programmez.com etd’y déposer vos définitions.

Dossier réalisé par François Tonic, Loïc Guillois, Fabrice Dewasme, Aurélien.Vannieuwenhuyze, Maxime Vialette. Et avec l’aide de Frédéric Mazué.

AbstractionEn informatique, l’abstraction est une formed’indépendance de quelque chose par rapportà quelque chose d’autre. L’abstraction évite(aussi) aux développeurs de mettre trop lamain dans la plomberie interne.

ACLAcronyme de Access Control List, cette exten-sion des contrôles d’accès classiques dePOSIX permet d’assigner un jeu de droits (lec-ture (r), écriture (w) ou exécution (x)) à n’impor-te quel utilisateur ou groupe au lieu du seulpropriétaire, groupe et " autres " utilisés clas-siquement.

AgilitéLes méthodes agiles sont des méthodes deconception logicielles plaçant les demandesdu client au centre des préoccupations. Ellescherchent par cette approche pragmatique àcomplètement éradiquer " l’effet tunnel ".Exemple de méthode agile : XP, U.P…

AjaxAjax n’est pas un langage, mais un ensemblede techniques et de langages que l’on combi-ne. Ajax s’appuie sur HTML / xHTML, DOM,JavaScript, XML, XSLT et XMLhttprequest. Onl’identifie au web 2.0. Son principal avantageest d'éviter des reconstructions/recharge-ments complets de page Web, en permettantle rafraîchissement d'une ou plusieurs zonesseulement, au moyen de requêtes asyn-chrones. De nombreux frameworks Ajax exis-

tent (plus de 70) et des environnements dedéveloppement Ajax sont aussi disponibles.

Algorithme Moyen de présenter la résolution d’un calculénoncé et qui se présente sous forme d’unesuite d’opérations. En développement, lesalgorithmes sont très utilisés, notammentdans le graphisme, les opérations de calculs.Il existe de nombreux algorithmes : géné-riques, de résolution d’équation, de cryptage,d’indexation, séquentiel, réparti, etc.

Analyseur lexical (ou analyse lexicale)C’est la transformation d’un ensemble decaractères en un ensemble de lexèmes (outoken) dites unités lexicales. Une fois ce traite-ment réalisé, le résultat est envoyé à l’analy-seur syntaxique

Analyseur syntaxique (ou analysesyntaxique,ou parser en anglais)

Il s’agit d’un programme exploitant la structured’un texte. Cela suppose que le contenu analy-sé soit formalisé, et est vu comme un élémentd’un langage formel. Un ensemble de règles desyntaxes est appliqué (= grammaire formelle).Intervient souvent après une analyse lexicale.

AOPL’Aspect-Oriented Programming (programma-tion orientée aspect), est une nouvelle façond'aborder la programmation. Avec le découpa-ge des applications en modules, différentsniveaux d'abstraction peuvent être perçus(généralement liés au découpage applicatif en

couche). La programmation par aspect appor-te plus de modularité dans les développe-ments. De nombreux "tisseurs d'aspects"existent dans les différents langages mais l'undes plus célèbres reste certainement AspectJ.Il permet de séparer les éléments techniquesdes descriptions métiers dans une application.AOP n’est pas lié à un langage.

Application concurrenteUne application est concurrente lorsqu'elle aplusieurs flux d'exécution en parallèle. Lesapplications distribuées et multithread sontdeux exemples d'applications concurrentes.

Application multithread Une application multithread est une applicationdont le flux d'exécution se divise en flux paral-lèles appelés processus légers ou threads dansl'espace d'adressage d'un processus unique.

Arbre syntaxiqueArbre permettant de représenter la syntaxed’un objet. En compilation, l’arbre syntaxiqueabstrait représente la structure syntaxiqued’un code source.

Asynchrone L’asynchronisme qualifie deux processus qui nese déroulent pas au même moment. Au sein d’unprogramme, les appels de méthodes sont faits defaçon synchrone, c’est-à-dire que l’appelant attendle retour de l’appelé pour continuer son exécution.En asynchrone, l’appelant continue immédiate-ment son exécution après un appel. L’appelé réali-se son traitement de façon indépendante.

61-66 22/08/07 19:35 Page 61

Page 62: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200762

Spécial 100

Base de données Plus communément appelé SGBD (système degestion de base de données). Une base dedonnées est un ensemble structuré et organi-sé pour stocker, manipuler, gérer des don-nées. Il existe de nombreux types de SGBD :objet, relationnel, décisionnel, géographique,etc.

Byte-code (ou pseudo-code)Code " intermédiaire " entre le code source etle code exécutable. Il n’est pas utilisable telquel sur un processeur. Il nécessite unemachine virtuelle qui traduit et exécute le byte-code. Java et .Net utilisent ce type de code.

Closure (en français fermeture) Terme de programmation fonctionnelle. Uneclosure ou fermeture est l'ensemble constituéd'une fonction et des variables liées, non glo-bales, de son environnement lexical. Lesobjets de la Poo, ensembles de membres pri-vés et de méthodes (ou fonctions) de traite-ment, présentent une analogie avec lesclosures de la programmation fonctionnelle.

Collaboratif Désigne un environnement permettant de fairecollaborer, travailler ensemble plusieurs indivi-dus d’une même équipe ou non. Aujourd’hui,collaboratif s’est imposé dans les outils de tra-vail en équipe. Les éditeurs travaillent réguliè-rement sur de nouvelles solutions toujoursplus souples, comme IBM avec la technologieJazz. Collaboratif désigne aussi un mode demultitâche.

Compilation / compilateur Traduit un code source en code machine. C’estla compilation qui fournit une application exé-cutable. Les compilateurs modernes permet-tent d’optimiser le code par des directives ouoptions de compilation. Lors de la compilation,interviennent les phases d’analyses lexicales,syntaxiques, sémantiques. Il existe différentessortes de compilations comme la compilationcroisée ou encore la compilation distribuée.

Composant Brique logicielle. Un composant est un élé-ment d’un système, d’une application ayantdes fonctions prédéfinies et est capable, théo-riquement, de communiquer avec d’autrescomposants. Dans le développement, un com-posant est souvent synonyme d’extensions,

de plug-in, d’add-in que l’on rajoute à son envi-ronnement intégré (IDE). On parle aussi de pro-grammation orientée composant, c’est-à-direune programmation ayant une approche modu-laire de l’architecture applicative.

ConstructeurMéthode définie dans une classe et invoquéelors de l'instanciation de la classe, c'est-à-direlors de la construction de l'objet. Un construc-teur n'a jamais de valeur de retour.

Couplage faible Par opposition au couplage fort. Aussi nommécouplage lâche ou léger. Désigne une relationfaible entre deux entités, permettant une gran-de souplesse de programmation, de mise àjour. Ainsi, chaque entité peut être changée oumodifiée sans que cela impacte le reste del’application. Le couplage fort, au contraire,tisse un lien puissant, l’avantage est d’avoir,souvent, des performances et une optimisa-tion meilleures mais rend l’ensemble plus rigi-de à toute modification du code, del’application.

CryptographieEnsemble des techniques mathématiques per-mettant de chif frer un message afin de lerendre inintelligible et permettant d'assurer lasécurité de celui-ci.

DécompilationAction permettant de reconstituer tout ou par-tie du code source d’une application. Il s’agitd’une technique de rétro-conception.

DéploiementAction permettant la diffusion d’une applica-tion. On peut utiliser un installeur ou simple-ment un téléchargement. I l existe desdéploiements ne nécessitant pas d’installa-tion physique locale. Pour une applicationd’entreprise, on peut définir une politique dedéploiement.

Design Pattern (motif de conceptionou encore patron de conception)

Concept aidant à résoudre un problème récur-rent. Il décrit la solution au problème d’archi-tecture que l’on rencontre. Il s’agit de procédés de conceptions, desbonnes pratiques. Ce n’est pas du code, car ledesign pattern est le plus souvent indépen-dant du langage.

DOM (Document Object Model) Recommandé par le W3C, DOM est une APIreposant sur la représentation d’un documentXML ou HTML, sous forme d’arborescence denœuds. DOM définit également les méthodeset propriétés permettant de manipuler les don-nées (Ajout, suppression, modification…).

Encapsulation L’encapsulation permet de mettre quelquechose dans une autre chose. Dans la program-mation objet, cela permet de cacher une infor-mation d’un objet et d’exposer uniquement lesméthodes de manipulation. La notion varieselon les langages.

ErasureLors de l’utilisation de types génériques, l’era-sure qualifie l’opération de traduction desclasses passées en paramètres du type brut defaçon à maintenir une compatibilité binaire avecles anciennes versions du langage. Ainsi, à aucun moment le code d’une classegénérique ne peut connaître le type de la classe passée en paramètre de la classe générique brute.

Expression régulière Il s’agit d’une chaîne de caractères décrivantle contenu de chaînes. Cette description sefait selon la convention ayant servi à créer l’ex-pression. Chaque outil et langage spécifie à samanière l’expression régulière.

Framework Lorsque l'on traduit ce terme anglais, on obtient" cadre de travail ". En informatique, un frame-work est un socle structurant permettant lamise en oeuvre rapide d'une solution. Il exigede la part des développeurs un effort d'appren-tissage. Les frameworks les plus célèbres sontceux permettant de bâtir une application MVC :Rails, Struts, Spring, CakePHP.

GénéricitéCapacité qu'a un même code à s'appliquer àdes types différents et arbitraires.

Html (hypertext markup language)Langage de base des pages web utilisant desbalises. Il a évolué au fur et à mesure des ver-sions, une version 5 est envisagée. De nombreuses variantes existent : xHTML(HTML basé sur XML), DHTML (HTML dyna-mique), cHTML (HTML pour mobile).

61-66 22/08/07 19:36 Page 62

Page 63: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200763

PROGRAMMATION LINUX

IDE Integrated Development Environment ou EDI(Environnement de Développement Intégré enfrançais) est un programme permettant dedévelopper des applications. Les IDE peuventregrouper de nombreuses fonctionnalités : unéditeur de texte, un compilateur, un debugger,des fonctions telles que l'auto-complétion, lerefactoring, ... Les plus célèbres supportentd'ailleurs plusieurs langages, parmi eux, nouspouvons citer Eclipse, Visual Studio.

Installation Action qui consiste à installer, à mettre, sur unordinateur, un terminal, une application, uncomposant. On peut utiliser différentes tech-niques d’installation : locale en passant par uninstalleur (programme permettent d’installerl’application), en réseau. L’installeur est unenvironnement de création d’installation (ex. :Installshield).

Intégration Le développement d'un logiciel se découpe enplusieurs phases. Après l'analyse du besoin,la conception et le codage, viennent les testsqui vont notamment permettre d'aboutir à unproduit validé. Durant la phase d'intégration,les développeurs vont regrouper leurs travauxrespectifs afin de mettre à disposition unenouvelle version qui sera livrée au client.

Intégration continue Pratique popularisée par l'XP (eXtreme-Pro-gramming), cela consiste à réaliser au mini-mum une fois par jour la tâche d'intégrationdes différents développements réalisés parl'ensemble des membres d'une même équipede programmeurs. Dans un projet, l'une destâches les plus critiques étant justement l'inté-gration de l'ensemble du code source, il estnécessaire d'automatiser cette action. Denombreux outils comme CruiseControl permet-tent d'industrialiser cette tâche.

Internet Réseau interconnecté mondial utilisant le pro-tocole TCP/IP. Son origine remonte auxannées 1960 au ministère de la défense amé-ricain. Internet se mit en place en différentesétapes. En 1991, au Cern, on crée le WWW.Mosaic, le premier navigateur, voit le jour en1993.

Itération Au sens général, une itération représente un

des passages dans une boucle de répétition.Au sens méthodologique, ce terme estemployé pour désigner un des passages autravers de toutes les phases de réalisationd’un projet à l’aide d’une méthodologie itérati-ve comme UP (Unified Process).

Java Langage orienté objet créé par Sun et offi-

ciellement présenté en mai 1995. Un de sescréateurs est James Gosling. Théoriquement,le même code Java s’exécute partout sur uneJVM (machine virtuelle Java). En pratique, lesdifférences d’implémentation des JVM peu-vent gêner l’exécution du code et nécessite-ront alors des adaptations. Java est donc à la fois un langage et une plate-forme d’exécution. Java se décline aussi enentreprise avec Java EE et sur les mobilesavec Java ME. La version standard est JavaSE. Java s’imposa avec les applets Java pourInternet. Les applets sont de petites applica-tions Java que l’on embarque dans des pagesweb. Java est aujourd’hui en open source avecle projet OpenJDK.

Java EE (Java Entreprise Edition) Architecture définie par SUN, utilisant le langa-ge JAVA et définissant une plate-forme pour ledéveloppement d’application N-Tiers.

Javascript Langage de script initialement développé parNetscape. Le premier moteur Javascript dansun navigateur remonte à 1996. Ce langagepermet de manipuler simplement et rapide-ment des objets. Il s’exécute directementdans le navigateur. On peut manipuler des don-nées, des documents HTML via DOM.

JSR Java Specification Request. Il qualifie un pro-cessus de demande de réalisation de spécifi-cations complémentaires pour le langage Javaou des systèmes tirant parti du langage. Misen place par Sun, le processus de JSR estmaintenant ouvert.

Mashup Combinaison dans une application (composi-te), un site web de contenus provenant de dif-férentes sources (site, application, base dedonnées, etc.). Très pratique pour récupérerles informations que l’on souhaite dans untableau de bord, par exemple, ou un portail.

Message Driven Architecture Architecture pilotée par les messages, tiremassivement parti de l’asynchronisme. Elledécompose un système en un ensemble depetites tâches élémentaires qui peuvent s’exé-cuter de façon indépendante et qui sontdéclenchées sur réception d’un message

Middleware Ce terme regroupe des logiciels et les couchestechniques, utilisés comme intermédiairesavec d'autres logiciels / couches. Littérale-ment, ce terme est la composition de middle(milieu) et software (logiciel). Ces logiciels /couches fournissent généralement des ser-vices avancés liés aux besoins de communica-tion inter applications, comme des moniteurstemps réel et transactionnels, de la sécurisa-tion ainsi que la sérialisation.

Migration La migration est le passage d’une version d’unlogiciel à une autre ou d’un logiciel à un autre.En développement, la migration désigne l’actepar lequel on change totalement ou partielle-ment le code d’une application, d’un compo-sant. Il s’agit souvent de changer de langageou de version de langage, ou encore d’unchangement technologique.

Modélisation / Conception Etape préliminaire a tout développement d’ap-plication faisant appel à une grande capacitéd’abstraction de la par t du concepteur. Laconception permet de prendre les décisionsstratégiques et techniques afin de répondreaux besoins fonctionnels du nouveau systèmeapplicatif à mettre en place.

Les moteurs de règles Ce type de moteur se base sur un référentielde règles permettant de paramétrer le compor-tement de l'application. De nombreux métiersutilisent ce mécanisme, particulièrement lesbanques qui ont besoin d'une réactivité immé-diate lors de configurations de nouvellesof fres commerciales, du changement destaux, ... De nombreux produits proposent desimplémentations du principe du moteur derègle comme JBoss Rules ou JRules, ...

Noyau (ou kernel) Au cœur du système d’exploitation. Il gère lesprocessus et les ressources fondamentales,assure la communication entre les services,les couches. Le noyau fournit un niveau d’abs-

61-66 22/08/07 19:36 Page 63

Page 64: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200764

Spécial 100traction entre le matériel et les applications. Ilexiste de nombreux types de noyau : micro-noyau, nano-noyau, exo-noyau.

Obfuscation Technique permettant d’obfuscer un codesource, c’est à dire de le rendre incompréhen-sible en le modifiant grâce à des outils spéci-fiques, cela évite de rendre visible le code àtoute personne. Il peut prévenir toute action dereverse engineering.

Opérateurs booléens Une des bases de la programmation. Le termebooléen est un hommage à George Boole. Encodage, le booléen a pour valeur peut être 0ou 1 (soit vrai ou faux). Les opérateurs boo-léens dont l'évaluation retourne un … boo-léen, permettent d'ef fectuer des testslogiques. Ces opérateurs sont l'égalité, la nonégalité ainsi que les ET et OU logiques (notés== != && || en C+= ou Java).

Optimisation En programmation, on parlera volontairementd’optimisation du code en modifiant celui-cipour optimiser son fonctionnement, ses per-formances, l’utilisation des ressourcescomme la mémoire. Cette optimisation peutse faire notamment grâce à des tests de char-ge, un monitoring de l’application.

Paradigme Une représentation permettant de voir leschoses, le monde, exemple : le paradigmeobjet (= modèle objet).

Persistance La persistance est un mot employé pour quali-fier le fait de permettre à une application d’ex-ploiter ses données même après un arrêt ouun crash : les données persistent même aprèsun arrêt. Classiquement, la persistance desdonnées se fait dans une base de données (enutilisant un framework comme Hibernate parexemple) mais elle pourrait aussi se faire surdisque par la sérialisation.

Pointeur variable contenant une adresse mémoire. Lespointeurs typés sont les plus répandus (appa-rus avec le C), ajoutant un type au pointeur.

Polymorphisme Le polymorphisme permet d'appliquer unmême algorithme à des types différents. Il

existe plusieurs polymorphismes: polymorphis-me de compilation, polymorphisme d'exécu-tion et polymorphisme paramétrique.

Portée Une portée est le contexte dans lequel unevaleur et son expression sont associées. Ondistingue les portées statiques ou lexicalesqui définissent les associations à la compila-tion (Pascal, Common Lisp) et les portéesdynamiques qui diffèrent l'association à l'exé-cution. (Emacs Lisp).

Processus Le terme processus est très large et désigneune suite d’opérations normalisées exécutéespar une ou plusieurs personnes ou systèmesinformatiques. Les processus peuvent êtredes processus d’entreprises ou en informa-tique des " workflows ".

Programmation distribuée Une application distribuée est une applicationdont le flux exécution se répartit sur deux ou plu-sieurs machines reliées entre elles par un réseau.

Programmation fonctionnelle Paradigme de programmation tel qu'un pro-gramme se réduit en l'évaluation de fonctionsmathématiques sans état. Dans ce paradigme,les fonctions ont une sémantique de valeur etpeuvent être passées en argument à d'autresfonctions, ou retournées par des fonctions.Certains langages fonctionnels, dits impurs,admettent l'effet de bord, sous la forme d'af-fectation de variables. Par exemple Lisp ouScheme. Les langages fonctionnels purs telsMiranda, Haskell, Clean ne l'admettent pas.

Programmation impérative Paradigme de programmation qui définit unesuite d'états successifs dans une machine oudans un objet.

Programmation objet Paradigme de programmation qui consiste enla définition et la collaboration d'entités logi-cielles simples, les objets. Un objet est l'asso-ciation de données et de leur fonctions, ouméthodes, de traitement.

Protocole Dans les réseaux, on parlera de protocole decommunication (ex. : protocole réseau). Unprotocole est spécifique pour un type de com-munication. À l’origine, le protocole est une

couche indépendante entre plusieursmachines. Aujourd’hui, le protocole désignel’ensemble des règles de communication surdes machines dif férentes ou la même.Exemple ; http, RPC, SMTP, DHCP, FTP, TCP/IP.Le protocole fournit les critères nécessaires àl’établissement de la communication, sa vites-se, ses fonctions, la sécurité, etc.

RAD Rapid Application Development. Le conceptd’un environnement RAD est de proposer auxdéveloppeurs tous les outils et fonctions per-mettant de coder plus rapidement, de propo-ser une interface graphique, etc. On assimilesouvent RAD aux éditeurs visuels d’interfaceutilisateur mais ces éditeurs ne sont qu’unepartie d’un RAD même si le RAD est très orien-té interface et prototypage pour accélérer laconception et éviter de passer par les diffé-rentes phases du développement.

RCP Rich Client Platform, en français nous utilisonsle terme de client riche. Depuis de nom-breuses années, l'opposition s'est faite entreles clients dits"légers" (exécutés par l'inter-médiaire d'un navigateur web) et les clientsdits "lourds" (installés localement sur l'ordina-teur). Le terme "client riche" se veut être entreces deux concepts en alliant ainsi le meilleurdes deux mondes. Le terme de plate-forme estutilisé car, comme dans le cas d'Eclipse RCP,ces applications reposent sur un socle tech-nique permettant le support des plug-in, l'inter-face graphique.

Récursivité Principe important de la programmation. Unefonction ou un algorithme contenant un appelà lui-même est dit récursif.

Refactoring Procédé auquel ont recours les développeurspour remanier du code déjà écrit sans toucherune ligne de code et en respectant les règlessyntaxiques du langage. Il est proposé sous laforme d’une série d’outils dans les différentsIDE afin de rapidement généraliser un concept(move to parent), changer le packaging (move),extraire une interface ou encore générer desgetters/setters.

Réification La réification consiste à transformer unconcept en objet informatique. L’instance p de

61-66 22/08/07 19:37 Page 64

Page 65: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200765

PROGRAMMATION LINUX

la classe Point est une réification des coordon-nées d’un point.

Repository Ce terme est souvent utilisé en gestion docu-mentaire pour désigner le système permettantle stockage de contenu et les méta-donnéesassociées. La JSR 170 spécifie en Java com-ment sont stockés, recherchés, récupérés etversionnés des contenus.

Réseau Pour faire simple, un réseau est constitué deplusieurs machines interconnectées locale-ment ou à distance. Internet est un type deréseau, comme le réseau local, le réseau wifi,etc. Un réseau repose sur des protocoles decommunications pour se connecter, échanger.Le réseau possède une topologie d’accès.

Rétro-ingénierie (ou reverse engineering)

Souvent nommé rétro-conception. À par tird’une application, d’un composant, la rétro-conception doit permettre de retrouver lecode, la structure de données, par exemple,dans une application ou une base mal docu-mentée.

RFC L'acronyme de ce sigle est "Request For Com-ment". Il s'agit de documents décrivant despropositions d'innovations, de méthodologiesou de protocoles applicables à Internet. Cer-tains de ces documents sont devenus desstandards après leur adoption par l'IETF (Inter-net Ingineering Task Force)

RIA (Rich Internet Application) Les RIA sont des applications Web offrant lesmêmes possibilités que les applications auto-nomes. Les possibilités offertes par ces appli-cations sont nombreuses : glisser-déplacer,auto-complétion…

SCM ou Source Code Management,

regroupe toutes les solutions de gestion ducode source, que ce soit CVS, Subversion,Source Safe, Team Foundation Server, ... Ces solutions permettent à la fois de gérer leversionning du code source et de faciliter letravail en équipe. Des notions de branche, révi-sion sont les concepts les plus utilisés de cessolutions.

Script Une suite d’instructions simples, souvent peustructurées. Le langage de script est un langa-ge non compilé.

SDK Les Software Development Kit sont des pac-kages spéciaux des langages de développe-ment, de technologies permettant auxprogrammeurs d'utiliser le langage ou la tech-nologie. Le SDK permet d’implémenter uneapplication, une fonction, un langage, une tech-nologie. Il inclut des exemples, de la documen-tation, des outils, etc. On peut citer : la JDK,DirectX SDK. Pour la conception de pilotes, onparlera de DDK (Driver Developer Kit).

SécuritéLa sécurité d’un système est fondamentalecar elle qualifie sa vulnérabilité ou non à desattaques externes permettant de récupérer,modifier ou détruire des informations confiden-tielles, propres à l’entreprise. La mise enœuvre de la sécurité peut se faire à tousniveaux, que ce soit sur le système de fichiers,le système d’exploitation, les bases de don-nées, les applications, les protocoles...

Session Exécution d'un programme pour un utilisateurdonné. Lors d'une application web, chaque utilisateur possède une session (instance duprogramme) qui lui est propre permettant de véhiculer des données référant à cet utilisateur.

SOA Architecture orientée services. Il s’agit d’untype d’architecture basée sur des services oudes applications composites. SOA est avanttout un concept et non une technologie ou unoutil. SOA est apparu dans la mouvance desweb services et utilise largement les spécifica-tions de ces ser vices. Des spécificationspropres au SOA sont en cours de définition.

Surcharge Permet de redéfinir un opérateur ou une fonc-tion pour une utilisation différente de celle ori-ginalement définie. S’utilise beaucoup dans laprogrammation orientée objet. On parleraaussi de surcharge réseau ou serveur.

Synchronisation Permet de maintenir un ou plusieurs systèmesdans un état identique. On parle souvent de

synchronisation de systèmes de fichiers, ouencore de synchronisation de caches d’objets.

Syndication Anglicisme. Basiquement il s’agit de reprodui-re, de diffuser du contenu à plusieurs diffu-seurs. En informatique, la syndication estsouvent liée à la diffusion de tout ou partied’un contenu d’un site web disponible sousforme d’un flux RSS qu’un autre site récupèrevia une agrégation de flux.

Syntaxe La syntaxe dans le monde informatique estl’ensemble des règles pour écrire un codeselon les paramètres, les commandes, lesméthodes, les fonctions. On parlera de syn-taxe Java, C#, C++, etc. Pour coder, il fautconnaître la syntaxe du langage.

Système d'exploitation (ou Operating System en Anglais)

Ensemble de programmes faisant un lien entrele matériel, l’utilisateur et les applications. Unsystème se compose d’un noyau, de biblio-thèques, d’outils, d’applications, de pilotes,etc. Il prend en charge la communication avecle matériel, les réseaux, etc. Citons : MS-DOS,GNU Linux, Windows, Solaris, MacOS, etc.

Tests applicatifs Lors du développement d'applications il estnécessaire de réaliser ce que l'on appelle desbatteries de tests. Ces derniers sont classésen plusieurs catégories : test unitaire (permet-tant de valider une fonctionnalité spécifique,ceci est généralement effectué via des frame-works comme JUnit), test de non régression(permettant de s'assurer qu'une nouvelle ver-sion de l'application ne provoque pas desrégressions par rapport à une version précé-dente), test de montée en charge (permettantde s'assurer du flux maximum pouvant suppor-ter l'application) et les tests fonctionnels (laphase de recette réalisée avant la livraisond'une application).

Thread Processus léger (ou encore tâche légère). Unthread permet d’exécuter des fonctions indé-pendamment de l’application (elle n’est pasbloquée) et des autres processus. Dans cedernier cas, on parlera de multithreading. Laprogrammation multithreading est la base dudéveloppement moderne mais s’avère difficileà maîtriser car il faut gérer le thread, la priori-

61-66 22/08/07 19:37 Page 65

Page 66: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200766

Spécial 100 PROGRAMMATION LINUX

té, la concurrence, la synchronisation, etc. Àdifférencier du multitâche qui est la possibilitépour un système de faire fonctionner plusieursapplications simultanément.

Typage Fournir un type à une donnée, par exempletype booléen, entier, réel. Dans les langages,on donne aux pointeurs ou aux tableaux untype. On parle aussi de typage statique oudynamique. Par exemple le typage dynamiqueest apporté par la valeur manipulée par lavariable. Le typage fort permet de sécuriser letype et d’éviter les erreurs de typage.

UML (Unified Modeling Language)

Le langage de modélisation unifiée est utilisédans la conception d'applications. OrientéObjet, il permet de modéliser graphiquementles données et traitements.

Unicode Norme consistant à définir pour chaque carac-tère de n’importe quelle langue et écriture unidentifiant numérique et un nom unique.

Unix Système créé en 1969. Il est multi-utilisateuret multitâche. Il existe de nombreusesvariantes d’Unix, souvent propriétaires. Audébut réservé aux entreprises, Unix est dispo-nible aussi dans le grand public, notammentavec MacOS X et Linux s’en inspire largement.De nombreux Unix se basent sur le System Vd’ATT ou sur BSD.

Urbanisation En informatique, l'urbanisation représente unevision moderne de l'organisation du systèmed'information de l'entreprise. Elle consiste à ledécouper en modules indépendants de taillesvariables, ce qui permet d'accroître l'évolutivitédu système tout en maintenant une forte inter-opérabilité. Les architectures orientées servicessont une mise en oeuvre de cette approche.

Utilisabilité Notion permettant d'évaluer la qualité d'uneinter face homme machine. L'utilisabilité vaplus loin que l'ergonomie puisque celle-ci sefocalise sur l'utilisation des logiciels et permetd'en améliorer la qualité au travers deméthodes objectives et rationnelles telles queGOMS. L'utilisabilité est également spécifiéepar la norme ISO 9241.

Virtual Machine Le concept de machine permet d'exécuter plu-sieurs environnements sur un même ordina-teur. Initialement utilisé pour la virtualisationdes systèmes d'exploitation, de nombreuxoutils sont apparus tels que VMware, VirtualPC, Xen, Qemu... En programmation, le termede machine virtuelle a été introduit, à la placede celui d'interpréteur, par Sun Microsystemsavec la JVM (Java Virtual Machine) permettantd’exécuter un programme Java sur différentssystèmes rendant le code indépendant du sys-tème. Microsoft a adopté la même approchepour .Net.

VRML (Virtual Reality Modeling Language)

Langage orienté objet permettant la manipula-tion d’objets 3D.

W3C consortium international visant à définir et àpromouvoir des spécifications liées au mondedu web. Il fut fondé en 1994. Son travailconcerne l’architecture, l’interaction, l’inter-opérabilité, la mobilité, l’internationalisationou encore l’accessibilité. W3C travaille aussisur des domaines moins connus comme leweb sémantique, la sécurité. Il existe d’autresconsortiums comme l’OASIS.

Web 2 Concept du " nouveau web " plaçant l’utilisa-teur au cœur de l’application web, du site. On yparle beaucoup de collaboration, de réseausocial. À cela s’ajoutent les aspects tech-niques avec Ajax, le RIA, javascript, le blog,etc. C’est aussi l’arrivée de la publicité enligne comme Google AdSense. L’inter facedynamique et interactive est une autreconstante du web 2.

Web Services Le service web est une petite applicationcontenant une ou plusieurs fonctions, exposéesur Internet ou en interne. Le service web sertà échanger des données sur Internet à traversle protocole HTTP. Il repose sur des standardsdont les plus connus sont : UDDI, SOAP,WSDL. Le service web apporte une grandesouplesse d’architecture et applicative.

Widget Composant d’une interface graphique (ex. : unbouton, une listbox). Aujourd’hui, on parle de

widget pour désigner les gadgets. Ce sont depetites applications (en javascript, html, ajax,etc.) s’installe sur le bureau de son systèmed’exploitation ou utilisable sur un navigateur.

Workflow Le workflow désigne généralement la représen-tation informatique d’un processus. Commeen langage objet, il convient de distinguer lemodèle de workflow et son instance. Un modè-le de workflow peut suivre la spécification delangage du WFMC (Workflow Management Coa-lition) ou son propre formalisme. Un modèlede workflow ne peut donner lieu à une instan-ciation qu’au sein d’un runtime compatible.

WYSIWYG Ce que vous voyez est ce que vous obtenez.Concerne à l'origine les documents destinés àêtre imprimés et signifie qu’entre ce que l’on aà l’écran et ce que l’on aura au final sur papieraprès impression,il ne doit pas y avoir de diffé-rence. En programmation, et particulièrementau niveau interface, il ne doit pas y avoir de dif-férence entre l’interface créée dans un IDE, unRAD et l’interface utilisée par l’utilisateur. Mal-heureusement, cela n’est pas toujours vrai,notamment pour les sites Web car suivant lenavigateur, la présentation peut changer selonl’implémentation des langages et standards.

XML eXtensible Markup Language. XML est un lan-gage de balisage défini par le W3C. Il inclut lesupport d’Unicode ou encore des espaces denoms. Très souple, XML utilise aussi la notionde schéma permettant de définir la structured’un document et de s’y conformer. Il s’impo-se comme le format d’échange par excellencequels que soient l’application, le langage. XMLest à la base de nombreux dérivés (appelésdialectes). Cependant, ils ne sont pas toujourscompatibles entre eux.

XSL Langage permettant de définir la présentationdes documents XML.

61-66 22/08/07 19:37 Page 66

Page 67: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200767

Dossier Web 2.0 EN BREF

Penser une architecture Web 2.0Avant même de pouvoir concevoir une architecture Web 2.0, il faut bien comprendre de quoi il s’agitet les différentes implications que cela peut engendrer. A la différence de ce que nous avons connujusqu’alors, le Web 2.0 est avant tout la réflexion de son métier en tant que plate-forme de serviceréutilisable à distance.

Un des grands atouts de l’essor de Web2.0 est l’utilisation de nos servicespar des sites externes, qui non

contents d’utiliser notre source d’information,vont venir l’enrichir avec leurs propres valeursajoutées, afin de fournir un service encoreplus précis à l’utilisateur final. Cette réflexiondu Web en tant que plate-forme de servicesnous amène directement vers des architec-tures de type SOA (Service OrientedArchitecture) généralement à formats mul-tiples. On entend par là que la majorité desservices 2.0 présents sur la toile aujourd’huiprésentent différents formats de communica-tion. Nous retrouvons bien entendu le formatSOAP, mais le plus utilisé étant REST qui, enfait, se résume à un échange XML sur le pro-tocole HTTP. Il ne faut pas oublier le RSS quiest un des formats de syndication de l’infor-mation les plus répandus à ce jour. Un nou-veau format fait son apparition qui se basesur JSON (JavaScript Object Notation) permet-tant aux sites tiers utilisateurs du service,d’injecter directement des balises scriptsdans leurs pages afin de récupérer les don-nées dans un format traitable au sein d’unepage. Mais cela ne se limite pas à seulementtransférer les données au format JavaScript,cette nouvelle solution résoud certaines pro-blématiques, dont notamment le cross-domain qui jusqu’à lors nous empêchait d’ap-peler directement un service hors de sondomaine. Cette méthodologie se basant surl’inclusion de balises <script> dans vospages, aucune notion de sécurité n’est alorsprise en compte par le navigateur. Le pendantde ceci réside dans le fait que le service ren-voie bien les données annoncées et non pasdes informations malicieuses car, contraire-ment à un appel REST où vous pourrez contrô-ler la validité des données avant des les ren-voyer au navigateur, vous ne pourrez rien véri-fier avant injection des données dans votrepage. La diversité des formats de communi-cation est donc un atout majeur d’une archi-tecture Web 2.0.

Gérer l’informationUn autre aspect à prendre en compte lors de lamise en place d’une architecture de type Web2.0 est la gestion de l’information. L’enrichis-sement des contenus et la masse d’informa-tion exponentielle liée au Web 2.0 nous amèneà réfléchir à la hiérarchisation et classificationdes données. Il ne faut pas oublier qu’uneinformation mal classée est souvent perdueau milieu de notre site et donc pas forcémentconsommée. L’apparition des systèmes de "tagging" n’est pas un effet de mode Web 2.0,mais bien une nécessité de classificationsimple et efficace de l’information. A ne sur-tout pas négliger, cette partie de votre archi-tecture se doit d’être simple et efficace pourl’utilisateur final qui se veut maintenant acteuret non plus consommateur de vos services.Cette notion de l’utilisateur devenant " co-acteur, co-developpeur " de votre service estaussi primordiale pour le succès d’un site Web2.0. Prenez l’exemple d’Amazon ou d’eBay quiont été précurseurs dans l’implication de l’utili-sateur au sein de leur plate-forme. Amazon necrée pas son contenu, il le récupère desources externes. Sa grande valeur ajoutéeréside dans l’enrichissement de ce contenupar l’utilisateur au travers de commentaires,de notations etc. Cette implication de l’utilisa-teur dans la plate-forme Amazon amène une

valeur ajoutée qui fait le succès de ce type deservice. L’enjeu de la classification devientdonc encore plus important car votre systèmese doit de pouvoir gérer de l’information enprovenance directe de vos utilisateurs. Jepense qu’un des plus beaux exemples decette notion est le système Wiki et plus préci-sément Wikipédia pour une implémentationconcrète. Toute l’information du système Wiki-pédia provient directement des utilisateurs,mais elle est classée, hiérarchisée et doncfacilement consommable. D’un point de vue beaucoup plus technique,les nouvelles technologies de développementWeb 2.0 mises à notre disposition amènentaussi tout un lot de questions primordiales à lamise en place de votre site. Effectivement, il ya encore quelques années, aucune questionne se posait, l’architecture reposait sur unmode serveur où les pages étaient " rendues "vers le navigateur par la couche serveur. Maisl’apparition d’Ajax fait qu’aujourd’hui le ser-veur n’est plus forcément l’atout maître. Il fautpour cela se poser les bonnes questions,avant même de commencer à développer. Jeprendrais ici pour exemple l’implémentation duGuideTele (http://www.guidetele.com) qui tirepleinement partie d’Ajax. Le service GuideTelepuise son information d’une source extérieurequi, soit dit en passant, se résume aux don-

2e partie

67-69 22/08/07 19:32 Page 67

Page 68: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200768

Dossier Web 2.0 EN BREF

nées techniques relatives à un programme :chaîne, date, heure, titre … Une premièrephase d’enrichissement de cette information àdonc lieu pour venir ajouter des avis, nota-tions, bandes annonces provenant du systèmed’information GuideTele permettant de se dif-férencier des autres outils. Une fois cettephase d’acquisition et consolidation des don-nées effectuées, nous avons dû répondre àquelques questions primordiales :- Qui doit faire le rendu HTML de la grille ?- Le serveur doit-il transférer autre chose quedes données ?

- Allons-nous utiliser SOAP, REST, JSON ?Les réponses à ces différentes questions ontété primordiales dans les choix d’architectureset technologies liés à l’applicatif GuideTele etsurtout au modèle économique de notre client.Rien que le fait de choisir entre SOAP, REST,JSON pour le transfert entre le navigateur et leserveur peut engendrer des différences enterme de kilo-octets transférés. De surcroît, lavolumétrie d’utilisateurs accédant au serviceest telle que nous devions faire le choix le pluspertinent afin de limiter la bande passante aumaximum.

Le problème du renduLa deuxième grande question à laquelle nousavons dû répondre concerne le rendu HTML dela grille. Devait-il être fait par le serveur ou parle navigateur ? L’arrivée d’Ajax dans les cyclesde développement soulève toujours cettequestion qui peut sembler anodine, mais quiengendre des enjeux importants lorsque l’ontraite un nombre élevé d’utilisateurs en simul-tané. Effectivement, si le serveur s’occupe durendu, vous allez augmenter votre charge CPUpour le calcul des pages, augmenter votreconsommation de bande passante pour trans-férer ces dernières. Cependant, faire un renduen JavaScript est tout aussi coûteux pour l’uti-lisateur et dépend entièrement de sa puissan-ce hardware. Il ne faut pas oublier queJavaScript peut devenir très coûteux enmémoire lorsque vous devez traiter un grandnombre d’informations en une seule passe, etla phase de rendu est certainement l’une desplus onéreuses en terme CPU d’un applicatifAjax. Il vous faut donc bien étudier la charged’informations à traiter à chaque appel Ajaxafin de prendre la bonne décision. Dans notrecas, les informations traitent d’une journée deprogramme pour un ensemble de chaînes etsont donc traitables côté ClientSide. Le faitd’avoir choisi cette option a beaucoup d’im-

pact pour l’applicatif. Tout d’abord, le serveurne distribue que des données, ce qui allègegrandement la bande passante consommée.De plus, ne s’occupant pas de la par tie"rendu" HTML, sa charge CPU est diminuée etpermet donc de pouvoir répondre à plus derequêtes en simultané. La contrepar tie decette décision a été la mise en place des fonc-tions de rendu en JavaScript. Tout d’abord,cela implique un développeur Ajax confirmé ausein de votre équipe qui sera à même de géné-rer du HTML pour visualiser les données. Deplus, en fonction de la volumétrie de donnéesreçues, tout un cycle d’optimisation est néces-

saire pour ne pas saturer la charge CPU duposte de l’utilisateur final.Comme nous venons de le constater, penserune architecture Web 2.0 ne se résume pas àl’exposition de son métier par une coucheSOA, cela implique bon nombre de questionsqui assureront le succès de votre site. Pourma part, je pense primordial de toujours gar-der à l’esprit que l’utilisateur final se veutacteur de votre service et non pas simplementconsommateur !■ Aurélien VerlaOnline Strategies ManagerWygwam – http://www.wygwam.com

Le site d'O'Reilly passe à RubyIl y a quelques mois O'Reilly, éditeur de livres d’informatique, a décidé derefondre entièrement son site web et son système d'information. Le choixtechnologique s'est porté sur Ruby et plus particulièrement sur Ruby on

Rails. L'application Ruby sert pour le site et aussi pour l'intranet à l'ensemble des services :éditorial, commercial, marketing…). Et elle repose sur une base de données centralisée. « On peut ainsi voir le site internet comme une interface publique à notre base de données.Notre choix s'est porté sur Ruby On Rails car il permet, grâce à son architecture MVC et lelangage Ruby, de pouvoir interfacer un système de données rapidement et facilement. » pré-cise Julien Boulnois (développeur, O'Reilly). Pour les développeurs maison, Ruby on Rails permet de concevoir rapidement des applications complexes. « La partie la plus délicateconcerne la conception de la base de données, Ruby On Rails permettant ensuite de créerune interface autour de cette base » poursuit Julien Boulnois. Pour l'hébergement, l'éditeurpasse par plusieurs dedibox (http://www.dedibox.fr/) avec un système de clustering. Si Rubyest très apprécié, quelques défauts peuvent survenir. Les développeurs ont mis en éviden-ce un temps de réponse parfois plus long qu'avec PHP mais le problème peut être contour-né pour un renforcement de la partie matériel. « Au final, cette solution se révèle nettementplus économique puisque le temps/développeur gagné, grâce à la facilité du développement,vaut largement l'investissement de matériel. » conclut Julien Boulnois.

L’omniprésence de la video.

67-69 22/08/07 19:33 Page 68

Page 69: programmez100.pdf

67-69 22/08/07 19:34 Page 69

Page 70: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200770

Dossier Web 2.0

Accessibilité et référencementLes sites " nouvelle génération " reposent sur des librairies et frameworks toujours plus nombreux. Ces composants, s'ils permettent de créer des sites et applications d'une grande richesse fonctionnelle, introduisent de nouvelles problématiques.

Celles-ci doivent être prises en compte à différents stades de laconception pour éviter des écueils parfois très pénalisants. Mais

cela ne va pas forcément de soi.

AccessibilitéL'une des principales difficultés, lorsque l'on a fait le choix du " toutAjax ", consiste à maintenir une accessibilité compatible avec les handi-caps de certains utilisateurs, mais également avec les différents termi-naux susceptibles d'être utilisés pour accéder à votre réalisation.A dire vrai, ces contraintes ne sont pas propres au web 2.0 ; et depuistoujours, elles posent de sérieux problèmes aux concepteurs web, quirechignent souvent à les respecter. Le recours à Ajax a ajouté de nou-velles contraintes, mais il ne faut pas oublier celles déjà existantes, surlesquelles nous ne reviendrons pas. Nous vous invitons à vous rendresur www.accessiweb.org pour prendre connaissance des techniques àmettre en place pour permettre aux personnes handicapées d'accéder àvos contenus le plus confortablement possible.Pour ce qui concerne les sites web 2.0, la première des questions à seposer est : quid des utilisateurs qui ne peuvent exécuter de code Javas-cript ? Evidemment, ça limite les possibilités de fonctionnalités Ajax.Ensuite, la disposition des contenus doit tenir compte des différentstypes d'affichage, comme les terminaux mobiles par exemple.Le nombre d'incompatibilités entre les interfaces riches qu'offrent leweb 2.0 et les contraintes d'accès que rencontrent d'une part les per-sonnes handicapées et d'autre part les nouveaux terminaux (mobilesnotamment) est tel qu'il faut envisager de nouvelles solutions pourgarantir l'accès au plus grand nombre, des contenus.Le meilleur moyen aujourd'hui d'assurer cet accès est finalementsimple : il s'agit de prévoir en quelque sorte un mode " dégradé " de l'in-terface. Dégradé du point de vue de l'interface naturellement, pas descontenus. L'équation est assez simple : pour exclure le moins d'utilisa-teurs de l'accès au contenu, il faut simplifier au maximum le contenant.Google a été l’un des premiers a prendre clairement ce parti, en déve-loppant GMail, à la fois en mode web 2.0 et en HTML traditionnel. Enclair, et nous verrons dans la section suivante que cela est judicieux àplusieurs titres, il faut prévoir plusieurs versions du site.

Le problème de l’accessibilité des sites web 2.0 reste majeur pour lesgroupes de travail concernés, car les documents existants ne peuvents’appliquer tels quels aux sites à interface riches. Le W3C, organismeen charge des normes sur le web, travaille activement à la réalisationd’un document de référence nommé " Accessible Rich Internet Applica-tions " par l’intermédiaire du Web Accessibility Initiative (WAI). Demême, différentes associations européennes ont collaboré pour mettreau point le label " Euracert ", garantissant la conformité d’un site avecles directives établies par des organismes tels que le W3C (mais passeulement). Ces ressources seront à terme les plus solides pour réglerla majeure partie des problèmes d’accessibilité en web 2.0, commeelles le sont aujourd’hui pour le HTML traditionnel.

RéférencementEn effet, le référencement est un véritable problème pour les sites trop" ajaxisés ". La problématique rejoint celle de l'accessibilité dans cesens que les contenus sont indexés par des robots, qui font précisé-ment partie des clients souffrant d'un point de vue technique d'uneaccessibilité limitée, notamment eu égard à leur incapacité à exécuterdu code Javascript.D'un certain point de vue, le recours massif à Ajax nous confronte ànouveau à un problème que l'on pensait faire partie du passé : celui desframes ! Le principe est le même : comme les contenus sont chargésdynamiquement, en fonction d'actions de l'utilisateur, et que cesactions ne sont pas à la portée des robots, ceux-ci ne peuvent accéderà l'intégralité des contenus. En outre, ce mécanisme fait que le site nedispose plus que d'une adresse, ce qui pose également problème pourl'enregistrement de favoris sur des contenus précis.Pour contourner ces deux problèmes, il existe des solutions. Pas trèsconfortables, mais qui permettent cependant de sortir, au moins par-tiellement de l'impasse. Pour ce qui concerne les robots, le plus simpleconsiste tout simplement à leur fournir un contenu dans un format quileur est adapté, en vous basant sur la chaîne " User-Agent " que ceux-cifournissent lorsqu'ils consultent les pages d'un site.Cela peut être implémenté directement au niveau de serveurs webcomme Apache, grâce au module Rewrite, qui va pouvoir, si le User-

70-71 22/08/07 19:30 Page 70

Page 71: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200771

EN BREF

Agent correspond à une chaîne ou une expression régulière donnée,renvoyer la requête vers une nouvelle adresse :

RewriteCond %{HTTP_USER_AGENT} Bot RewriteRule (.*) /bot/$1 [L]

En plaçant ceci dans un fichier .htaccess, à la racine de votre site, chaquefois qu'une requête GET sera effectuée, si l'utilisateur contient le terme'Bot' dans son User-Agent, l'adresse initialement demandée sera pré-fixée de '/bot' pour aller chercher les fichiers dans un dossier spécial.L'intérêt est simple : si index.php propose un contenu au sein d'une inter-face Ajax, il sera possible cependant d'alimenter le robot en contenu per-tinent sur le site en le redirigeant sur une version minimaliste, necomprenant pour ainsi dire que du contenu, et des liens vers d'autrespages du site, qui seront elles aussi placées dans le dossier '/bot/'.

Imaginons par exemple un bot/index.php qui retournerait le contenu suivant :

<h1>Mon site – monsite.com</h1><h2>Ceci est la description de mon site</h2><h3>Première section</h3><ul>

<li> <a href='/rubrique1/sujet1.php'>Sujet 1</li><li> <a href='/rubrique1/sujet2.php'>Sujet 2</li><li> <a href='/rubrique1/sujetn.php'>Sujet n</li>

</ul><h3>Deuxième section</h3><ul>

<li> <a href='/rubrique2/sujet1.php'>Sujet 1</li><li> <a href='/rubrique2/sujet2.php'>Sujet 2</li><li> <a href='/rubrique2/sujetn.php'>Sujet n</li>

</ul>

Grâce à ce genre de page, le robot sera capable de " crawler " le site, enaccédant de lui-même aux différents sujets (contenus) présents dans lesite. Ce qui nous amène à devoir régler notre deuxième problème : celuides URL, car elles seront indexées par le robot, qui les proposera doncdans les résultats de recherche du moteur pour le compte duquel il aparcouru votre site.En ef fet, dans un site " tout-Ajax ", une adresse telle que " /rubrique1/sujet1.php " n'a pas grand sens, puisqu'Ajax permet dene pas recharger les pages, et donc par conséquent, interdit de changerl'URL en cours.Il faut donc prévoir dans votre site une autre réécriture d'URL, celle-cipour vos utilisateurs :

RewriteRule /(.*)/(.*)\.php index.php?rubrique=$1&sujet=$2

Ce faisant, vous pouvez dans votre page index.php prévoir de testerl'existence de ces deux variables :

if(isset($_GET['rubrique']) && isset($_GET['sujet'])){

// chargement du contenu concerné// directement dans la page d'accueil

}

else{

// chargement de la page d'accueil " normale "}

Cet exemple est schéma-tique, et appellerait sansdoute de nombreux aménage-ments pour être utilisé effec-tivement en production, maisl'idée est là : en fonction dutype de client, j'adapte lecontenu, et la manière de leprésenter.Parmi les améliorations à luiapporter, il faudrait ajouter unmoyen pour l'utilisateur deplacer un contenu donné enfavori. Cela est possible,sans que l'URL ait été réelle-ment chargée, mais... enJavascript. Alors cer tes, ce

n'est pas parfait, mais cela permet déjà d'alimenter les robots et depermettre d'accéder, par un lien direct, à autre chose que la page d'ac-cueil standard du site. Nous avons donc contourné deux problèmesessentiels.Pour un moteur comme Google, il est également possible de générer unfichier Sitempa, au format texte ou XML, pour lui indiquer les URL despages à visiter plutôt que de recourir au mécanisme de réécriture d'URL.Mais ceci est plus limitatif (tous les moteurs n'usent pas de ce genre defichier), et nécessite une déclaration dudit fichier auprès du moteur. Laréécriture d'URL a le mérite d'être (presque) universelle.

ConclusionAjax et le web 2.0 illustrent parfaitement un principe qui est, en infor-matique pour le moins, presque aussi vrai que la loi de Murphy (qui veutque le pire est nettement plus probable que le moins grave, comme lafameuse tartine avec sa confiture etc.) : plus c'est simple d'un côté,plus c'est compliqué au moins d'un autre côté !En l'occurrence, pour apporter au plus grand nombre une interface plusagréable à utiliser, il faut d'une part redoubler (et c'est un euphémisme)d'effort et d'ingéniosité au niveau du code, mais en outre, il faut beau-coup plus d'effort pour assurer une accessibilité correcte, et un référen-cement efficace.Tout ceci amène à se dire qu'il est préférable de bien réfléchir à l'impactréel du recours à Ajax en terme d'ergonomie, et d'intérêt pour l'utilisa-teur, avant de s'embarquer dans des développements nécessairementplus longs et compliqués que ne le demanderait une interface un peuplus traditionnelle.Il ne faut par ailleurs pas perdre de vue qu'Ajax n'est que l'une des com-posantes du web 2.0. Une autre, tout aussi essentielle, est la grandeinteraction que le service (site ou application) offre à l'utilisateur. Et cepoint n'est pas tant dépendant de la technique mise en oeuvre que de laconception même de l'ensemble.

■ Gauthier Delamarre

70-71 22/08/07 19:30 Page 71

Page 72: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200772

Dossier Web 2.0 EN BREF

Rentabiliser votre site web 2.0De nombreux modèles d'entreprises et/ou sites ont fait l'essor du modèle Web 2.0 comme Wikipédia,AdSense (Google), Flickr, LinkedFeed, Netvibes, Technorati, Dailymotion, YouTube, My Virtual OS(bureau virtuel) ou encore la plate-forme Live de Microsoft qui permet à la société d'entrer de pleinfouet dans l'ère du SaaS (Software as a Services : consommez les applications sous forme deservice avec un mode de monétisation à la consommation) facteur clé de l'émergence du Web 2.0.

Chacun de ces projets couvre demanière totale ou partielle un ou plu-sieurs des 7 facteurs mentionnés pré-

cédemment. Mais au-delà de ces qualifica-tions de projet de type Web 2.0, des ques-tions fondamentales restent en suspens : • Comment rentabiliser ou, selon le terme à la

mode, « monétiser » un site Web 2.0 ? • Quel marketing est adapté à un site Web 2.0 ?

Du classique au plus fin…Le grand classique des liens sponsorisés autravers de la plate-forme de Google Adsenseou encore de Microsoft adCenter semble clai-rement être la tête de course des moyens demonétisation. Combien de fois n'avez-vouspas déjà constaté la présence de ces petiteszones présentes sur un site web, un blog, unecommunauté ? Observez bien durant votrenavigation sur la toile ! Les communautés,blogs, sites de services gratuits et/ou payantsen regorgent et la capacité d'optimisation del'insertion de celles-ci est devenu une qualitéqui elle-même se monétise à prix d'or. Mais cen'est pas tout, la réussite d'un tel mode éco-nomique dépendra également de la volumé-trie, et inévitablement, du sujet traité ainsi quedu type de contenu diffusé (webcast ou pod-cast de plus en plus à la mode, contenu 3D deplus en plus prisé comme les mondes virtuels,contenu textuel, images, …). L'ergonomie etl'incorporation de ces parasites publicitairesdans l'environnement visuel du consommateurrestent un élément clé de la réussite de lamonétisation de votre projet. Rémunéré auclic, ce mode économique peut très vite deve-nir rentable si vous répondez favorablementaux critères mentionnés ci-dessus et plus prin-cipalement « au critère » qui est la volumétriede visiteurs. Mais ce n'est pas tout, d'autresmodes de monétisation sont à portée de mainsi votre volumétrie le permet, comme l'abon-nement à une régie publicitaire où il vous fau-dra avoir les bonnes entrées afin de ne pasvous retrouver sur le carreau lors des distribu-

tions de budgets de campagne ou encore l'ad-hésion à un programme d'affiliation, voire lavente directe ou indirecte par prescription surun blog web 2.0. Le paiement sous formed'abonnement ou de consommation à lademande de site ou de service web 2.0 resteégalement une piste à ne pas négliger. Unedernière approche de monétisation retrouvéerégulièrement sur des blogs dits Web 2.0 estla monétisation au travers de prestationsdirectes ou indirectes basées sur les compé-tences mises en avant au travers de celui-ci :veille technologique, reporting, …Mais ce n'est pas tout, la monétisation nepourra se passer que si vous réussissez préa-lablement votre marketing de site Web 2.0.

Contrairement aux projets de type Web 1.0 sebasant principalement sur des notions de taxo-nomy (classement dit standard), le Web 2.0travaille son marketing au travers d'uneapproche basée sur la folksonomy que nouspourrions qualifier de classement par les utili-sateurs, engendrant ainsi le « Marketing Viral »au travers des recommandations propagéesd'utilisateurs à utilisateurs eux-mêmes. Desméthodes de cooptation par les utilisateursmêmes sont un bel exemple de réussite, appli-qué dans l'univers du Web 2.0. L'utilisateur étant mis au centre de cette nou-velle approche du Web, il devient ainsi acteur,consommateur voire propriétaire des donnéesdisponibles ! L'explosion des blogs ces der-

Exemple d'un tableau de bord d'une publicité avec Google Adword. Ci-dessous, Google Maps.

AM

EN

RC

SPA

RIS

:B

421

527

797

INW

EB

WE

TRU

ST

:N

ous

croy

ons

auw

ebVo

irco

nditi

ons

Gén

éral

esd

eVe

nte

sur

ww

wam

enfr

*Prix

au01

/01/

2007

Tous

ces

tarif

sso

ntco

ncéd

ésp

our

unen

gage

men

tan

nuel

72-74 22/08/07 19:27 Page 72

Page 73: programmez100.pdf

AM

EN

RC

S P

AR

IS :

B 4

21 5

27 7

97.

IN W

EB

WE

TR

US

T :

Nou

s cr

oyon

s au

web

. Vo

ir co

nditi

ons

Gén

éral

es d

e Ve

nte

sur

ww

w.a

men

.fr.

*Prix

au

01/0

1/20

07.

Tous

ces

tar

ifs s

ont

conc

édés

pou

r un

eng

agem

ent

annu

el.

(1) D

u lu

ndi a

u sa

med

i de

9h à

18h

au

0899

70

9001

(1,3

4 €

l'app

el p

uis

0,34

€/m

n). (2

) Gar

antie

sat

isfa

it ou

rem

bour

sé s

ous

10 jo

urs.

AM

D, l

e lo

go A

MD

opt

eron

et

ses

décl

inai

sons

son

t de

s m

arqu

es d

épos

ées

de A

dvan

ced

Mic

ro D

evic

es In

c.

** O

ffre

d'un

e va

leur

de

412,

62 €

TTC

, rés

ervé

e au

x 30

0 pr

emie

rs c

lient

s ay

ant

sous

crit

sur

une

pério

de d

e 6

moi

s m

inim

um à

un

serv

eur

dédi

é D

UO

ave

c sy

stèm

e d'

expl

oita

tion

Win

dow

s.

serveurs dédiés DUO

N O M S D E D O M A I N E - H É B E R G E M E N T - C R É A T I O N D E S I T E - E - C O M M E R C E - R É F É R E N C E M E N T

Vous n'avez pas à nous prier pour vous offrir deux fois plus de performance !

NOUVEAUServeurs dédiés DUO

Pour les professionnelsles plus exigeants, AMENlance la nouvelle gammede serveurs dédiés DUO

basée sur des processeurs doublecoeur, disques durs en RAID, pourvous offrir 2 fois plus de puissance.

DUO 1000 99 € ht/mois*(118,40 € ttc/mois*)

AMD Opteron 1210 - 2x1,8GHz - RAM 1GBDisque dur 2x160GB - Raid Soft 2 adresses IP - Interface Plesk 8 jusqu'à 100domaines - Trafic illimité

DUO 2000 149 € ht/mois*(178,20 € ttc/mois*)

AMD Opteron 1212 - 2x2,0GHz - RAM 2GBDisque dur 2x200GB - Raid 1 matériel 4 adresses IP - Interface Plesk 8 jusqu'à 300domaines - Trafic illimité

DUO 4000 199 € ht/mois*(238,00 € ttc/mois*)

AMD Opteron 1214 - 2x2,2GHz - RAM 4GBDisque dur 2x250GB - Raid 1 matériel 6 adresses IP - Interface Plesk 8 jusqu'à 300domaines - Trafic illimité

Nous avons foi en un idéal de services, surtout lorsqu’il vous permet de bénéficier des dernières avancéestechniques : architecture réseau redondée, bande passante dédiée 2GB, haute disponibilité (99,9%),assistance technique par mail et téléphone 6j/7(1). Quant à notre ‘Garantie satisfait ou remboursé’(2), elle vous permettra d’atteindre la sérénité absolue. Si vous croyez au web, vous croirez en nous.

Pour plus de renseignements 0 892 55 66 77 (0,34€ / min) ou www.amen.fr

Compatibles &

Microsoft Expression Webvous offre tous les outils dont vous avez besoin pour créer des sites webdynamiques de qualité professionnelle : création CSS, prise en chargeXML, ASP.NET 2.0, DHTML,XHTML, CSS, Javascript…

OFFERT** !

72-74 22/08/07 19:28 Page 73

Page 74: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200774

Dossier Web 2.0 EN BREF

nières années : « blogosphère » ou « vlogo-sphère » en est un bon exemple.Certaines approches marketing très concrètesau travers de l'exploitation des réseauxsociaux comme YouTube, MySpace, FaceBookou Mixi semblent très adaptées à ce type demarketing. Les blogs permettent aux marquesd'établir un dialogue informel avec leursconsommateurs, voire de tester de nouvellesidées de produits et la réaction de leursclients. L'incorporation de messages publici-taires dans des webcasts ou podcasts permetégalement d'optimiser votre marketing web2.0 et même d'en profiter pour garantir au pas-sage la gratuité du contenu.En conclusion, la clé du succès d'un modèlemarketing dans l'univers Web 2.0 semble clai-rement attachée au degré d'implication desutilisateurs au sein du projet.

Et l'entreprise Web 2.0 dans tout çà ?La définition d'une entreprise de type Web 2.0est tout aussi hasardeuse. Les exemples citésprécédemment dans cet article tendent à fairecroire que toute entreprise peut aujourd'hui,quels que soient ses moyens, s'attaquer aumarché du Web 2.0. Il est par contre intéres-sant de se rendre compte que les sociétésWeb 2.0 natives bénéficient d'un avantage nonnégligeable. Celles-ci ne doivent pas abandon-ner leurs anciens schémas économiquesassociés de leurs modes de revenus initiaux. De manière pragmatique, la rentabilité ou leROI (Retour on Investment) d'une entreprisedite Web 2.0 ne se calcule pas de manière tra-ditionnelle. Effectivement, la valeur d'unesociété de cette catégorie n'est pas implicite-ment liée à son Chiffre d'Affaires ni à sesrésultats. De nombreux exemples regorgentaujourd'hui du web (Netvibes, DailyMotion,SecondLife, … ). Quel intérêt alors ? Le positionnement sur unmarché, l'acquisition d'une technologie parti-culière, la construction d'un por tefeuilleclients animeront alors les « entreprenautes »2.0. L'objectif principal de ceux-ci restant trèsrégulièrement la recherche de BusinessAngels, voire acheteurs de leur solution dèscelle-ci mise en place !

■ Grégory RenardCTO WygwamMicrosoft Regional Director -Microsoft MVPINETA Lead Belgium

La monétisation du web est un des sou-cis des entreprises, des éditeurs et debon nombre de sites. Le web 2.0 n'a

pas forcément révolutionné mais à renforcél'utilisation de la publicité. Et le phénomèneSaaS risque d'accentuer la tendance. Le SaaS, ou comment rendre un logiciel dispo-nible sous forme de service, est une orienta-tion de plus en plus forte. Mais attention à nepas tomber dans la facilité. Il y a tout d'abordles éditeurs émergents venant du Web qui peu-vent rapidement définir une application enSaaS et il y a les éditeurs traditionnels qui doi-vent apprendre à faire du service, car, on netranspose pas tel quel un logiciel en service. Ilfaut de la valeur, un intérêt. « Il existe une ten-dance sur la vente de logiciels en services quisera forte dans les prochaines années. Va-t-elle décoller lentement ou rapidement ? Lesacteurs traditionnels auront une nouvelleconcurrence. Il faut s'y préparer en anticipant »analyse Robert Raiola (directeur marketingEMEA, Adobe). Une action pro-active est doncnécessaire pour les éditeurs. Car il faut êtrecapable d'apporter aux utilisateurs un nou-veau lien en ligne, avec une interface riche,une interactivité, des fonctionnalités. L'envi-ronnement Popfly de Microsoft en est un bonexemple ou encore tous les traitements detexte en ligne. Il y a quelques mois, le webbruissait qu'Adobe lancerait rapidement unPhotoshop en ligne, financé par la publicité.Pour l'éditeur, mettre Photoshop tel quel n'estpas une évidence. « On ne sait pas faire Photo-shop sur le web. Il faut apprendre à développersur le web des solutions qui tournent bien »précise Robert Raiola. Quoi qu'il en soit la « servicisation » des logiciels est en marche.

De la pub si je peux segmenterComme déjà dit plus haut, il y a aujourd'hui dif-férents composants publicité. Le modèle domi-nant actuellement est le modèle gratuit. Et lessites capables d'attirer du monde et de seg-menter leur audience (âge, sexe, localisa-tion…) peuvent monétiser plus facilement leursite, en ciblant l'audience. « Cela fonctionne,mais c'est un modèle centralisé » poursuitRobert Raiola. Les liens sponsoriés et les

Une publicité en ligne renforcée

mots clés sont deux des modèles les plus fré-quents. On peut aussi trouver un modèle pseu-do gratuit : je propose un logiciel, un servicegratuit qui amènera à un logiciel ou servicepayant si l'utilisateur est content. On voit aussil'émergence de la car tographie en lignecomme Vir tual Ear th ou Google Maps, lepotentiel publicitaire peut être intéressant à lacondition de générer un trafic très importantou de proposer un service précis.La vidéo constitue un autre marché essentiel.Les sites comme MySpace, YouTube, DailyMo-tion attirent des millions de personnes chaquejour. La vidéo constitue de facto un supportpublicitaire. Ainsi, sur des sites comme AlloCi-né, les bandes annonces proposent une publi-cité courte avant les images du film. « Il y aune vraie valeur. L'utilisateur accepte la publi-cité. On peut voir des vidéos de qualité et on ala démarche d'aller chercher la vidéo », com-mente Robert Raiola.Là, il s'agit d'un cas intéressant car l'utilisa-teur cherche l'information, le contenu et si lapublicité existe dans ce contenu, il l'accepte, àcondition qu'elle soit non intrusive. Les méca-nismes d'overlay dans la vidéo, permettantd'inclure des textes, d'inclure une autrevidéo…, facilitent cela et surtout, on peut fairede l'overlay à la volée sans refaire un encoda-ge (selon l'environnement choisi). On peutdonc imaginer une publicité dynamique, fairedes campagnes. L'overlay peut aussi avoir unevaleur d'information, par exemple sur unevidéo, en mettant un marqueur pour afficherune fiche sur un produit intéressant. Unconstat semble tout de même s'imposer : lapub en ligne doit se faire de manière non intru-sive pour l'utilisateur qui ne doit pas la subir(au risque d'être rejetée), mais l'accepter.Bref, la pub en ligne devient plus interactive,plus visuelle, comme c'est le cas aujourd'huiavec des bannières interactives. Plus que jamais, la monétisation du web est àl'ordre du jour. Mais cette publicité peut aussise faire grâce au buzz, on l'a bien vu avec lephénomène iPhone d'Apple. Mais attention, ilfaut pour cela « une complicité entre la marqueet son public » conclut Robert Raiola. ■ François Tonic

72-74 22/08/07 19:29 Page 74

Page 75: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200775

Développement Web

Intégrer facilement FLEX et PHPCet article va traiter l’intégration de PHPMySQL avec Flex 2.0, ce qui vous permettra de développerdes applications RIA à l’aide de Flex et d’offrir une application dynamique à vos utilisateurs grâce au langage PHP.

Flex 2.0 a été initialement conçu par Macromédia puis racheté parAdobe. Son rôle principal est de permettre le développementd’applications internet riche (RIA) basées sur Flash, ActionScript

3.0 et MXML. L’avantage de Flex est d’offrir une grande portabilité desapplications étant donné que la plupart des ordinateurs actuels sontéquipés du lecteur Flash.

Outils de développementAdobe met à la disposition des développeurs l’outil FlexBuilder. Cet outilest basé la plate-forme Eclipse et téléchargeable à l’adresse suivante :http://www.adobe.com/devnet/flex/?tab:downloads=1

Interaction entre Flex et PHPL’interaction entre Flex et PHP peut s’effectuer de deux façons diffé-rentes. La première consiste à utiliser les composants AMFPHP etFlashRemoting. La seconde, l’emploi des HTTPServices.

Utilisation d’ AMFPHP et Flash RemotingLa figure 1, montre de façon générale l’interaction entre Flex et PHP. Oùl’on peut constater l’emploi des composants AMFPHP et FlashRemoting.

Figure 1 : Schéma général

Principe

Le principe consiste à définir un ensemble de services écrits en PHP,stockés dans un répertoire du composant AMFPHP. AMFPHP contient unfichier gateway.php dont le rôle est de communiquer avec l’ensembledes services PHP un peu à la manière d’une passerelle.Pour que Flex puisse utiliser la passerelle et par conséquent utiliser lesservices, un moyen de communication doit être mis en place. FlashRemoting jouera le rôle d’interlocuteur entre Flex et la passerelle enfournissant les interfaces API ActionScript nécessaires (figure 2).

Figure 2 : Schéma détaillé

Installation des composantsTout d’abord, il convient de télécharger Flash Remoting et AMFPHP. Atten-tion, ce composant ne sera fonctionnel que si Flash est installé. AMFPHPse trouve à l’adresse : http://sourceforge.net/projects/amfphp/

Pour l’installer, il suffit de décompresserl’archive à la racine de votre serveur Web.Dans le répertoire amfphp\amf-core\appse trouve le fichier servant de passerelle :gateway.php. Les services, quant à eux,sont à placer dans le répertoire amf-php\services.

Figure 3 : Arborescence du répertoire AMFPHP

Utilisation des HTTPServices

L’utilisation des HTTPServices est similaire à la méthode précédente.En effet, la méthode consiste à appeler un service PHP situé sur le ser-veur Web, mais contrairement à l’utilisation d’AMFPHP, un traitementsupplémentaire est à intégrer consistant à traduire le résultat de larequête au format XML.

Illustration par l’exempleAfin d’illustrer les concepts énoncés auparavant, je vous propose dedévelopper une petite application découpée en deux parties. La premiè-re mettra en œuvre les composants AMFPHP et FlashRemoting, pour laseconde, nous utiliserons les HTTPServices.

Préparation de l’environnement.Pour pouvoir réaliser l’application, vous devez posséder les élémentssuivants :- un serveur LAMP ou WAMP correctement configuré. - Flash Remoting- AMFPHP- FlexBuilder

L’application Je vous propose de développer un applicatif permettant de gérer l’ensemble des produits d’un petit magasin informatique et de fournirune interface de configuration d’ordinateur. L’interface de gestion desproduits (composants informatique) devra permettre de lister l’ensemble des produits du magasin, de les lister selon une catégoriespécifique, d’ajouter et de modifier un produit, d’en supprimer de façonlogique et définitive.

LANGAGE : PHPDIFFICULTÉ : •••••

APPLICATION : WEBSOURCE : oui

75-80 22/08/07 19:17 Page 75

Page 76: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200776

Développement Web

Figure 4 : Modélisation UML

Cet article ayant pour objectif de vous énoncer les principes d’utilisationde Flex et PHP, il n’est donc pas envisageable de détailler l’ensembledes méthodes de l’application. Par conséquent, nous allons nouscontenter de lister l’ensemble des composants informatiques du maga-sin en utilisant les deux méthodes d’interaction possibles. Néanmoins,vous trouverez l’exemple complet et commenté sur le CD Rom.

FLEX – PHP – AMFPHP – FLASH REMOTINGBase de donnéesCréons tout d’abord la base de données à l’aide du script fourni sur leCdrom accompagnant ce magazine.

Création du projet FLEXA la racine de votre serveur web, créez un répertoire nommé "configPC"puis crééz un nouveau projet dans FlexBuilder comme suit :

File > new > Flex Project How will your flex application access data ? : Basic>NextProject Name : flxConfigPcFolder : racine_de_votre_serveur_web\configPc>NextMain Application File : flxConfigPc.mxmlOutput Folder : bin>Finish

Mise en place de la passerelleCréation de la classeCréez un répertoire " Scripts " à la racine de l’application Flex. (figure 5)

Figure 5 : Répertoire "Scripts"

L’étape suivante consiste à créer une nouvelle classe " ConnectionPas-serelle " dans le répertoire nouvellement créé. Le menu de création dela classe vous est proposé à l’aide du clic droit sur le dossier " Scripts ".La figure 6, vous montre les paramètres à saisir pour la création de laclasse. A noter, l’utilisation de la super classe " flash.net.NetConnec-tion " permettant d’exécuter des traitements sur un serveur distant.

Figure 6 : Création de la classe "ConnexionPasserelle"

Le codepackage scripts{

import flash.net.NetConnection;import flash.net.ObjectEncoding;

public class ConnexionPasserelle extends NetConnection{

public function ConnexionPasserelle( sURL:String ){

objectEncoding = ObjectEncoding.AMF0;if (sURL) connect( sURL );

}}

}

On note l’import des classes NetConnection et ObjectEncoding, cettedernière permettant de savoir comment les objets sont représentésdans AMF. L’url de la passerelle est alors passée en paramètre, si cettedernière existe, la connexion s’effectue.

Les services PHPLes services PHP seront définis dans un fichier se trouvant dans lerépertoire " services " d’AMFPHP. Il suffit donc de créer le fichier " ser-vicesConfigPc.php " dont le contenu sera le suivant :

class servicesConfigPc{//-- Definition des services

LANGAGE : PHPDIFFICULTÉ : •••••

APPLICATION : WEBSOURCE : oui

75-80 22/08/07 19:18 Page 76

Page 77: programmez100.pdf

de remise sur l'ensemblede la gamme produits !

Zend Studio

Fonctions d’édition avancées

Support PHPdoc, code folding, templates,

auto-complétion, inspecteur d'objet...

Debugger

Exécution des pages pas à pas

directement depuis le navigateur,

performances script par script.

Support natif de SVN et CVS

Permet le travail collaboratif, favorisant

le respect des bonnes pratiques.

Avec Zend, PHP est entré dans l'ère de l'entreprise.

Offre spéciale réservée aux lecteurs de Programmez !

produits Zend Studio et Zend Guard rendez-vous directement sur notre site www.zend.com/programmez

Pour tout achat en volume ou pourla Zend Platform, appelez-nous au01 48 55 02 02 et citez Programmez

Zend Guard

Garantie de l’intégrité des sources

En rendant le code source illisible,

d’applications en production.

Protection de la propriété

intellectuelle

Empêche l’ingénierie inverse, Permet de

créer des versions d’essai et des licences.

Combinaison de l’obfuscation et du

cryptage

Le code original est d’abord obfusqué

maximale.

Zend Platform

Supervision complète des

applications PHP en production

Enregistrement des événements (erreurs,

scripts lents, événements personnalisés…)

avec leur contexte (GET, POST,

SESSIONS…)

Développement, recettage et

maintenance facilités

Permet, en liaison avec Studio, le

directement depuis la liste des

événements.

performances

Des mécanismes de cache (OP-Code,

contenu) permettent d'améliorer les

www.zend.com/fr

Pourquoi rester à l'âge de pierre ?

15%

75-80 22/08/07 19:19 Page 77

Page 78: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200778

Développement WebCF FIGURE 8

//-- Les servicesCF FIGURE 9

}

function servicesConfigPc(){

$this->methodTable = array(

"servListeComposants" => array( "description" => "Liste les composants",

"access" => "remote"),

"servListeComposantsCategorie" => array( "description" => "Liste les composants selon une categorie",

"access" => "remote"),

"servListeCategories" => array( "description" => "Liste les categories",

"access" => "remote"),

"servAjoutComposant" => array( "description" => "Ajout d'un composant",

"access" => "remote"),

"servModificationComposant" => array( "description" => "Modification d'un composant",

"access" => "remote")

);

}

//servListeComposantsfunction servListeComposants (){

//connexion à la base de donnée MySQL avec nom d'hôte, login et password$db = mysql_connect("localhost","userMYSQL","passMYSQL");

//Selection de la base de donnéemysql_select_db("db_configurateur", $db);

//Requete$Requete = "select CP.idComposant, CP.nomComposant,

CP.prixComposant, CAT.nomCategorie, CAT.idCategorieFrom tb_composant CP, tb_categorie CATwhere CP.fkCategorie = CAT.idCategorie";

$Resultat = mysql_query( $Requete );while ($row = mysql_fetch_object($Resultat)) {

$TableauDeComposants[] = $row;}

//Renvoi le tableau de composantsreturn ($TableauDeComposants);

}

//servAjoutComposantfunction servAjoutComposant($nomComposant, $prixComposant, $id

Categorie){

//connexion à la base de donnée MySQL avec nom d'hôte, login et password

$db = mysql_connect("localhost","userMYSQL","passMYSQL");

//Selection de la base de donnéemysql_select_db("db_configurateur", $db);

//Requete d'ajout$Requete = "insert into tb_composant (nomComposant,

prixComposant, fkCategorie) values('$nomComposant','$prixComposant','$idCategorie')";

$Exexution = mysql_query( $Requete );

return($Execution);

}

Création de l’interface graphiqueL’interface graphique se compose de deux onglets. Le premier permet-tant la gestion des composants informatiques, le second la réalisationd’une configuration d’un ordinateur.

Figure 7 : Onglet Composant

Lister l’ensemble des composantsCréation du scriptLa première étape consiste à créer un fichier ActionScript dans le réper-toire " Scripts ". Nous nommerons ce fichier " Composants " il com-prendra le code suivant :

//-- import du Responder qui permet de récupérer les informations//provenant du service appeléimport flash.net.Responder;

LANGAGE : PHPDIFFICULTÉ : •••••

APPLICATION : WEBSOURCE : oui

75-80 22/08/07 19:19 Page 78

Page 79: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200779

Développement Web//-- Import du script de connexion à la passerelle --import scripts.ConnexionPasserelle;

//-- Instanciation de la classe ConnexionPasserelle --public var gateway : ConnexionPasserelle;

//-- Tableau contenant les résultats de la requête --[Bindable] //Permet à l’interface graphique d’accéder a la variable listingComposantpublic var listingComposants:Array;

//-- Fonction permettant de lister tous les composants public function listerComposants(){

//-- Nouvelle connexion à la passerellegateway = new ConnexionPasserelle( "http://localhost/amfphp/amfphp

/gateway.php" );

//-- Appel du service servListeComposantsgateway.call( "servicesConfigPc.servListeComposants", new Responder

(actionResultat, actionErreur));}

//-- Action à réaliser si le service envoie un résultatpublic function actionResultat( resultat : Array ) : void{

listingComposants = resultat;}

//-- Action à réaliser si le service renvoie une erreurpublic function actionErreur( fault : String ) : void{

trace( fault );}

On note l’appel du fichier passerelle " gateway.php " par la spécificationde son url (http://localhost/amfphp/amfphp/gateway.php) il convientdonc d’adapter ce chemin en fonction de votre configuration.

Interaction avec l’interface graphique<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="listerComposants()">

<mx:TabNavigator borderStyle="solid" x="60" y="100" width="900"height="542">

<!-- Composants --><mx:VBox label="Composants" width="1000" height="509">

<!-- Canevas --><mx:Canvas width="863" height="509">

<!-- Import du script des composants --><mx:Script source="scripts/Composants.as"></mx:Script>

<mx:DataGrid id="grilleComposants" dataProvider="{listingComposants}"x="53" y="100" width="700" rowCount="10">

<mx:columns><mx:DataGridColumn headerText="Catégorie" dataField="nom

Categorie" width="200"/><mx:DataGridColumn headerText="Composant" dataField="nom

Composant" width="400"/><mx:DataGridColumn headerText="Prix" dataField="prixComposant"

width="100"/></mx:columns>

</mx:DataGrid>

</mx:Canvas></mx:VBox>

<!-- Configurateur --><mx:VBox label="Configurateur" width="863" height="509">

<!-- Canevas --><mx:Canvas width="863" height="509">

</mx:Canvas>

</mx:VBox></mx:TabNavigator>

</mx:Application>

On constate que lors de l’affichage de la page, la fonction " listerCom-posant " du script composant.as est appelée (creationComplete). Onretrouve la variable " listingComposant " qui permet d’alimenter le Data-Grid. Enfin, chaque colonne du datagrid est remplie en fonction d’unchamp précis, dont le nom (dataField) correspond à celui défini dans leservice PHP.

Figure 8 : Listing des composants

Emploi des HTTPServicesNous allons maintenant réitérer le listing des composants, mais cettefois à l’aide des HTTPServices. Pour commencer, créez un répertoirenommé " scriptsPHP " dans le projet flxConfigPc. Ajoutez ensuite aurépertoire nouvellement créé un document de type "File " nommé "configurateur.php "

Le code PHP :<?php

//connexion à la base de donnée MySQL avec nom d'hôte,login et password

$db = mysql_connect("localhost","userMysql","passMysql");

LANGAGE : PHPDIFFICULTÉ : •••••

APPLICATION : WEBSOURCE : oui

75-80 22/08/07 19:20 Page 79

Page 80: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200780

Développement WebPC/scriptsPHP/configurateur.php" useProxy="false"></mx:HTTPService>

Si l’on souhaite que le chargement soit effectué dès le lancement del’application, il convient d’ajouter ce code suivant :

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute" creationComplete=" listerComposant(); configurateurXML.send()" width="1062" height="854">

La dernière étape consiste à mettre en place le Datagrid et à spécifierson dataProvider :

<mx:DataGrid x="64" y="55" dataProvider="{configurateurXML.lastResult.composants.composant}" width="800" height="273"><mx:columns><mx:DataGridColumn headerText="Catégorie" dataField="nomCategorie"width="200"/>

<mx:DataGridColumn headerText="Composant" dataField="nomComposant"width="400"/>

<mx:DataGridColumn headerText="Prix" dataField="prixComposant" width="100"/><mx:DataGridColumn headerText="IdComposant" dataField="idComposant"width="100" visible="false"/>

<mx:DataGridColumn headerText="IdCategorie" dataField="idCategorie"width="100" visible="false"/>

</mx:columns></mx:DataGrid>

Lors de l’exécution de l’application, le résultat obtenu doit être iden-tique à celui de la première partie de cet article.

ConclusionVous voilà en mesure d’intégrer Flex au langage PHP via les deuxméthodes abordées tout au long de cet article. Il convient de noter queces deux méthodes se valent et portent leur différence sur le moded’exploitation des données. En utilisant les HTTPServices, les donnéesdoivent être absolument formatées en XML lors de la récupération maiségalement lors de l’envoi de données aux différents services. Charge àvous d’opter pour la méthode qui vous convient le mieux.Vous pouvez trouver l’exemple en ligne de l’application décrite dans cetarticle à l’adresse http://aurelienv.no-ip.org/ hébergée gracieusementpar la société Infogest de Valenciennes (www.igiste.com)

■ Aurélien VannieuwenhuyzeIngénieur concepteur / réalisateur Sylis France (www.sylis.com)

LANGAGE : PHPDIFFICULTÉ : •••••

APPLICATION : WEBSOURCE : oui

//Selection de la base de donnéemysql_select_db("db_configurateur", $db);

//Requete$Requete = "select CP.idComposant, CP.nomComposant,

CP.prixComposant, CAT.nomCategorie, CAT.idCategorieFrom tb_composant CP, tb_categorie CATwhere CP.fkCategorie = CAT.idCategorieAnd CP.supprComposant = 0";

//Resultat de la requete$Resultat = mysql_query( $Requete );

//Transformation du résultat en XML$ExportXML = "<composants>";

while ($Composants = mysql_fetch_object ($Resultat)){

$ExportXML .="<composant>";$ExportXML .="<idComposant>".$Composants->idComposant."

</idComposant>";$ExportXML .="<nomComposant>".$Composants->nomComposant."

</nomComposant>";$ExportXML .="<prixComposant>".$Composants->prixComposant."

</prixComposant>";$ExportXML .="<idCategorie>".$Composants->idCategorie."</

idCategorie>";$ExportXML .="<nomCategorie>".$Composants->nomCategorie."</

nomCategorie>";$ExportXML .="</composant>";

}

$ExportXML .= "</composants>";mysql_free_result($Resultat);print ($ExportXML)

?>

On constate que le résultat renvoyé est sous la forme XML :<Composants>

<Composant><idComposant> 1 </idComposant><nomComposant> nom du composant </nomComposant>

</Composant></Composants>

Mise en place dans l’interface FlexLa première chose à faire est d’invoquer le service via la balise HTTPService :

<mx:HTTPService id="configurateurXML" url="http://localhost/Config

Donnez votre avis sur ce numéro

www.programmez.com/magazine_satisfaction.php

Aidez-vous les uns les autresFORUM : dialogue et assistance

www.programmez.com

75-80 22/08/07 19:20 Page 80

Page 81: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200781

Développement Web EN BREF

Spry: l’AJAX selon AdobeDepuis l’acquisition de Macromedia, beaucoup de développeurs web attendaient la nouvelleversion de DreamWeaver, l’environnement de développement de sites web le plus utilisé aumonde. La version 9 est lancée sous le nom de DreamWeaver CS3 et fait partie intégrante de toutel’offre graphique d’Adobe.

Outre une interface homogénéisée avec la suite d’Adobe et desconnecteurs intelligents avec PhotoShop et Fireworks, la grandenouveauté de cette édition réside dans l’intrusion de librairies

AJAX : le framework Spry. Dévoilé il y a plus d’un an sur le labs(labs.adobe.com), Spry exprime la volonté de simplifier l’ajout de com-portement Ajax dans vos sites web : gestion dynamique de données XML,effets visuels évolués, widgets... La simplicité de ce framework plaira auxdesigners web et à ceux qui ont quelques notions de développement web.Dédié à l’expérience utilisateur, Spry viendra en complément des frame-works Ajax professionnels (BackBase, Symfony, Dojo…) pour l’intégrationaux SI des entreprises. Pour découvrir Spry, je propose de vous exposerles concepts de base du framework en manipulant de la donnée XML. Jefinirai en ajoutant au code quelques effets visuels et en étendant les pos-sibilités de Spry avec les widgets intégrés dans Dreamweaver CS3.

XMLDataSet : la source de données SpryLa technologie AJAX connaît un énorme succès car elle permet de faireévoluer le paradigme du web classique. L’objectif est de charger une foisla vue (le cadre applicatif) pour se concentrer ensuite sur l’échange dedonnées structurées (au format XML). L’expérience utilisateur s’en trouveaméliorée car cela minimise le rafraîchissement de pages, améliore lestemps de réponse et sollicite moins de bande passante. Les échanges dedonnées au format XML sont exécutés par le code JavaScript de vos pagesHTML. Je vais développer une page HTML qui représente dynamiquementde la donnée XML et change à la demande de source XML. L’objet XMLDa-taSet du framework Spry est la clef de voûte de cette architecture.

Représenter un fichier XML dans un tableau HTMLVoici la structure du fichier albums1.xml de description d’un album pho-tos que je souhaite traiter.

<?xml version="1.0" encoding="iso-8859-1"?><gallery>

<photos><photo nom="acropole" original="athenes.jpg" vignette="vathenes.jpg"/><photo nom="tour eiffel" original="paris.jpg" vignette="vparis.jpg"/><photo nom="grande muraille" original="chine.jpg" vignette="vchine.jpg"/><photo nom="big ben" original="londres.jpg" vignette="vlondres.jpg"/>

</photos></gallery>

Dans mon code HTML, je commence par charger deux librairies, JavaS-cript du framework Spry (Xpath.js pour naviguer dans mes donnéesXML, et SpryData.js pour charger et manipuler la donnée) :

<head><script type="text/javascript" src="../../includes/xpath.js"></script>

<script type="text/javascript" src="../../includes/SpryData.js"></script></head>

Je définis ensuite un objet XMLDataSet qui va charger le contenu demon fichier XML :

<script type="text/javascript">var dsAlbum = new Spry.Data.XMLDataSet("data/album1.xml", " gallery/photos/photo ");</script>

Le premier paramètre de ma fonction XMLDataSet est le chemin versmon fichier XML. Vous pouvez aussi indiquer ici le chemin vers un script(PHP, JSP, ASP, CGI…) qui effectue un traitement et renvoie du XML. Lesecond paramètre est une expression XPath qui indique quels sont lesnœuds qui m’intéressent. Dans cette exemple, je veux afficher tous lesnœuds " photo ", ainsi je navigue dans ma structure XML jusqu’àatteindre ce nœud. L’objet dsAlbum est donc le résultat de cette expres-sion, un tableau d’objets que l’on pourrait représenter ainsi.

[{ "@nom": "acropole", "@original": "athenes.jpg", "@vignette": "vathenes.jpg"},...

{ "@nom": "big ben", "@original": "londres.jpg", "@vignette": "vlondres.jpg"}]

Le symbole @ permet d’atteindre un attribut du nœud XML. Pouratteindre un élément, il suffit d’indiquer le nom du fils. Par exemple, sije manipule cette source XML :

<employe id=’345’>Michael Chaize</employe>

Si je demande à afficher ‘employe’, j’obtiens ‘Michael Chaize’. Si jedemande à afficher ‘employe/@id’ renvoie ‘345’. Mon DataSet étant défini, je rajoute une région dynamique pour le repré-senter dans ma page HTML. Je rajoute une région Spry :

<body>

81-83 22/08/07 19:10 Page 81

Page 82: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200782

Développement Web<div spry:region="dsAlbum"></body>

La région est automatiquement reliée et à l’écoute de mon DataSet. Siles valeurs de celui-ci sont mises à jour, la région va automatiquementse rafraîchir pour actualiser l’affichage des données. Vous pouvez indi-quer qu’une même région dynamique est reliée à plusieurs sources dedonnées. Il suffit de les nommer séparées d’un espace :

<div spry:region="dsAlbum dsPhotographes dsExpositions">

Il ne reste plus qu’à décider la façon d’afficher les données, dans untableau HTML par exemple :

<div spry:region="dsAlbum"><table border="1">

<tr><th scope="col">Nom</th><th scope="col">Chemin</th><th scope="col">Vignette</th>

</tr><tr>

<td>{dsAlbum::@nom}</td><td>{dsAlbum::@original}</td><td>{dsAlbum::@vignette}</td>

</tr></table></div>

Ce tableau n’affiche que la première ligne de mon DataSet XML.

Nom Chemin Vignetteacropole athenes.jpg vathenes.jpg

Pour afficher toutes les lignes de mon DataSet, j’utilise l’objet spry:repeat en réindiquant le DataSet. La boucle sera automatique sur l’élé-ment HTML, ici le tag <TR>, la ligne de mon tableau.

<tr spry:repeat="dsAlbum">

Je récupère bien l’intégralité de mon fichier :

Nom Chemin Vignetteacropole athenes.jpg vathenes.jpg

tour eiffel paris.jpg vparis.jpg

grande muraille chine.jpg vchine.jpg

big ben londres.jpg vlondres.jpg

Pour effectuer un simple tri sur mes colonnes, j’ai juste à insérer la com-mande spry:sort (en précisant le champ XML qui servira de tri alphanu-mérique) :

<th scope="col" spry:sort="@nom">Nom</th>

Il suffit de cliquer sur l’en-tête des colonnes pour que la donnée soitautomatiquement triée côté client. Désormais je souhaite charger dyna-miquement d’autres fichiers XML qui décrivent eux aussi des albumsphotos. Le tableau devra donc se mettre automatiquement à jour dès lechargement d’une nouvelle source XML. J’appelle la seconde sourcealbum2.xml. Pour modifier la source de données, je vais utiliser uneliste déroulante qui servira de sélecteur entre album1 et album2.

<select onchange="dsAlbum.setURL(this.value); dsAlbum.loadData();"><option value="data/album1.xml" selected>Set 1</option><option value="data/album2.xml">Set 2</option>

</select>

A chaque changement de la valeur de la liste, le chemin vers la nouvellesource est modifié (setURL) dans le dataSet et le chargement de la don-née XML est lancé (loadData). Cela fonctionne immédiatement car larégion dynamique est à l’écoute des changements du dataSet.Voici l’intégralité du code HTML et appréciez le peu de lignes qui sontnécessaires pour mettre en place cet affichage dynamique :

<html><head><title>Spry et mes photos</title><script type="text/javascript" src="include/xpath.js"></script><script type="text/javascript" src="include/SpryData.js"></script><script type="text/javascript">var dsAlbum = new Spry.Data.XMLDataSet("data/album1.xml", " gallery/photos/photo ");</script></head>

<body><select onchange="dsAlbum.setURL(this.value); dsAlbum.loadData();">

<option value="data/album1.xml">Set 1</option><option value="data/album2.xml">Set 2</option>

</select><div spry:region="dsAlbum">

<table border="1"><tr>

<th scope="col" spry:sort="@nom">Nom</th><th scope="col" spry:sort="@original">Chemin</th><th scope="col" spry:sort="@vignette">Vignette</th>

</tr><tr spry:repeat="dsAlbum">

<td>{dsAlbum::@nom}</td><td>{dsAlbum::@original}</td><td>{dsAlbum::@vignette}</td>

</tr></table></div></body></html>

Affichage des images et effets visuelsMaintenant que je sais récupérer des données XML et les manipuler, jevais améliorer l’affichage de mon album photo. J’utilise tout d’abord l’ob-jet spry:repeat pour afficher toutes les vignettes décrites dans le XML.

<div id="thumbContainer" spry:region="dsAlbum"><img src="vignettes/{dsAlbum::@vignette}" spry:repeat="dsAlbum"class="thumbs" onclick="dsAlbum.setCurrentRow('{ds_RowID}');"/>

</div>

81-83 22/08/07 19:10 Page 82

Page 83: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200783

EN BREF

<a onclick="Spry.Effect.DoFade('region1', {duration:1000,from:100,to:20,toggle:true});”> mon lien </a>

La fondue s’applique à l’élément region1. L’effet dure une seconde etréduira l’opacité à 20%. Sur l’album photo, je vais rajouter un effetShake qui remuera la photo à chaque nouvelle apparition.

<img src="vignettes/{dsAlbum::@vignette}" spry:repeat="dsAlbum"class="thumbs" onclick="dsAlbum.setCurrentRow('{ds_RowID}');Spry.Effect.DoShake('main');"/>

Voici le code source complet de l’album photo (j’ai juste supprimé ici les styles) :

<html xmlns="http://ns.adobe.com/spry"><head><title>Ajax Album Demo</title><script type="text/javascript" src="include/xpath.js"></script><script type="text/javascript" src="include/SpryData.js"></script><script type="text/javascript" src="include/SpryEffects.js"></script><script type="text/javascript">var dsAlbum = new Spry.Data.XMLDataSet("data/album1.xml", "gallery/photos/photo");</script><style type="text/css"><!--...--></style></head><body>

<div id="thumbContainer" spry:region="dsAlbum">

<img src="vignettes/{dsAlbum::@vignette}" spry:repeat="dsAlbum"class="thumbs" onclick="dsAlbum.setCurrentRow('{ds_RowID}');Spry.Effect.DoShake('main');"/></div><div id="main" spry:detailregion="dsAlbum"><img src="photos/{dsAlbum::@original}"/><br />Name:{@nom}</div></body></html>

Spry et Adobe DreamWeaver CS3Voici comment en quelques lignes de code, le framework Spry vous per-met de créer des régions dynamiques reliées à de la donnée XML et del’illustrer graphiquement à l’aide d’effets visuels. Spry, c’est aussi unensemble très complet de widgets directement accessibles dans l’inter-face de DreamWeaver CS3. Ces widgets permettent de proposer à l’uti-lisateur des contrôles de navigation avancés, comme l’accordéon, leszones extensibles, les onglets, les barres de menu… et aussi des com-posants de formulaires intelligents qui valident sans rafraîchissementles valeurs saisies.

Site : http://labs.adobe.com/technologies/spry/

■ Michaël Chaize Consultant Avant-Vente chez Adobe

Ma nouvelle région dynamique ‘thumbContainer’ répète cette fois ci destags <img>. J’utilise l’événement onclick pour indiquer à Spry quel estl’élément courant. J’ai indiqué précédemment que le dataSet représen-tait le XML en mémoire comme un tableau d’objet. A chaque clic sur uneimage, Spry va pointer automatiquement l’index du tableau sur la ligneoù se trouve l’image courante. Le fait d’obtenir simplement quelle est lavignette sélectionnée va permettre d’afficher la photo originelle.J’affiche la photo originelle dans une autre région dynamique.

<div id="main" spry:detailregion="dsAlbum"><img src="photos/{dsAlbum::@original}"/><br />Name:{@nom}</div>

Pour améliorer la disposition des vignettes et de la photo sur la page, jevais juste déclarer quelques styles CSS.

<style type="text/css"><!--

img.thumbs {float:left;height: 60px;...

}#main {

position:absolute;left:476px;...

}#thumbContainer {

left:23px;top:127px;...

}--></style>

La région dynamique des vignettes sera ainsi à gauche de la page et laphoto à droite.

Effets visuels avec spryPour ajouter un effet visuel à chaque affichage de photo, je charge lalibrairie des effets Spry.

<script type="text/javascript" src="include/SpryEffects.js"></script>

Plusieurs effets sont accessibles, tous très saisissants graphiquement.- Fade : fondue progressive- Highlight : Modifie le fond d’un élément pour le mettre en valeur- Blind Up / Down : Apparition par le haut ou le bas d’un cache- Slide Up / Down : Déplacement vertical de l’élément- Grow : Redimensionnement progressif- Shake : remue l’élément- Squish : Disparition en diagonale

L’appel de ces effets est très simple. Pour effectuer une fondue parexemple sur une région dynamique " region1 ", il suffit d’un appelJavaScript :

81-83 22/08/07 19:11 Page 83

Page 84: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200784

Technique

Les technologies AOP dans le monde .NETEn avril 2007, Microsoft a sorti la version 3.0 de son Entreprise Library. Parmi les nouveautés, ontrouve l’Application Block Policy Injection destinée à faire de l’AOP, acronyme signifiant AspectOriented Programming (programmation orienté aspect). Je vous propose de profiter de cettenouveauté pour faire le point sur cette technique, notamment en comparant différents tisseursdisponibles pour la plate-forme .NET, en termes de performance.

L’AOP est un modèle de programmation qui a pour but de faciliterle développement et la maintenance d’une application. Avec del’AOP il sera possible d’associer, a posteriori, un certain nombre

de traitements (appelés également aspects) à une ou plusieursméthodes. Généralement, il est possible d’appliquer des traitementsavant et/ou après l’appel des méthodes, ou encore suite à une excep-tion (Erreur! Source du renvoi introuvable.). On pourra, par exemple, réa-liser des opérations de trace en entrant et/ou en sortant des méthodessélectionnées. Le vocabulaire du domaine varie légèrement selon l’édi-teur. On appellera donc tisseur ou injecteur la brique logicielle chargée delier les méthodes aux traitements souhaités. On distingue 2 catégoriesde tisseurs : les statiques et les dynamiques. Les tisseurs statiquesinjectent du code dans la solution en phase de compilation. AspectDNG(1) est un exemple de tisseur statique. Les tisseurs dynamiques aucontraire, se basent sur l’utilisation d’un proxy généré à l’exécution(Erreur! Source du renvoi introuvable.). Dans la pratique, les tisseurs sta-tiques sont beaucoup plus rapides, car ils ne génèrent pas de proxy etdonc ne subissent pas de surcharge. En contrepartie, les tisseurs dyna-miques offrent généralement, une plus grande souplesse à l’exploitation.Ils permettent par exemple, d’ajouter/supprimer les traitements enphase de maintenance, ce qui n’est pas possible avec les tisseurs sta-tiques. Dans le cadre de cet article, nous nous intéresserons unique-ment à la famille des tisseurs dynamiques, dont fait partie l’ApplicationBlock Policy Injection de Microsoft. Les tisseurs utilisent des proxies.Cela signifie que les classes traitées par AOP seront, soit instanciéesdirectement à travers une fabrique spécifique, soit wrappées quand l’ins-tance à tisser existe déjà. Une fois ce proxy disponible, il s’utilise demanière transparente, en lieu et place de l’objet cible. L’opération decréation ou de wrapping, ainsi que le proxy lui-même, peuvent être plusou moins performants. C’est tout l’intérêt de les comparer pour faire sonchoix. Parmi les quelques tisseurs dynamiques pour le Framework.NET,j’ai retenu les composants suivants pour ce benchmark : l’EntrepriseLibrary de Microsoft, Spring.NET (2), Aspect# (3), NAspect (4) et Rapier-Loom.NET (4) . On notera que seuls les composants Entreprise Library etSpring.NET ont été testés dans leur version finale.

L’application block Policy InjectionCet Application Block a l’avantage d’être très simple d’utilisation. Lesclasses sur lesquelles greffer des aspects doivent cependant respectercertaines contraintes : soit hériter de la classe MarshalByRefObject, soitimplémenter une interface. On notera que cette dernière contrainte estimposée par les tisseurs Aspect# et Spring.NET. Cependant, contraire-ment aux tisseurs Rapier-Loom.NET et NAspect, les méthodes à intercep-ter n’ont pas besoin d’être virtuelles. Par la suite, tout peut être géré parconfiguration. Notons, qu’il est possible de préconfigurer la classe en

appliquant certains attributs (Tags) aux méthodes. Cette dernière, moinsflexible, ne sera pas utilisée dans le cadre des tests de performance.Exception faite de Rapier-Loom.NET, tous les tisseurs testés peuvent éga-lement être gérés dans le fichier de configuration. L’Application Block estfournie avec un certain nombre d’aspects prêts à l’emploi, ce qui n’estpas le cas des autres tisseurs. Microsoft les nomme Handlers, d’autresles nommeront Method Interceptor. On peut également créer ses propresHandlers, ce qui ouvre la voie à de nombreuses possibilités. C’est cettefonctionnalité de l’Application Block qui sera utilisée dans le cadre dubenchmark. Enfin, l’Entreprise Library offre une documentation de bonnefacture. Ce n’est pas toujours le cas des autres tisseurs. Ainsi, si celle deSpring.NET est très abondante, celle des autres laisse à désirer.

Le benchmarkOn peut voir donc, qu’attractive au premier abord, l’AOP apporte son lotde contraintes qu’il faut intégrer en phase de conception. Ensuite, il fautgarder à l’esprit que les tisseurs dynamiques font usage d’un proxy.Ceci implique une certaine surcharge à l’exécution. Le tableau 1 synthétise un comparatif de performance entre les diffé-rents tisseurs retenus. Les résultats sont exprimés en millisecondes.Les tests ont été réalisés sur un Pentium 4 à 3.2Ghz avec 2Go de RAM,sur .NET 2.0.

ItérationsTisseurs 1 000 10 000 100 000

Entreprise Library v3 (create) 291 738 5214

Entreprise Library v3 (wrap) 289 683 4640

Rapier Loom.NET 2.0 RC1 246 259 385

AspectSharp v2.1.1.1 (RC) 200 659 5491

NAspect v1.0 (2007-05-19) (6) 66 200 1553

Spring.NET v1.0.2 16 106 1025

Tableau 1: synthèse des résultats

On remarque, à l’évidence, qu’en dessous de 10 000 itérations, le tis-seur de Spring.NET est nettement le plus performant. La conception deRapier Loom.NET lui assure une parfaite montée en charge, mais desperformances comparativement moindres, en utilisation moins intensive.

(1) http://aspectdng.tigris.org(2) http://www.springframework.net(3) http://www.castleproject.org(4) http://www.puzzleframework.com(5) http://www.dcl.hpi.uni-potsdam.de/research/loom(6) Lors des tests, le composant NAspect a révélé que le mode wrapping(méthode CreateWrapper) générait des messages inappropriés sur la console.Les tests ont donc été limités à l’utilisation de la méthode CreateProxy.

84-85 22/08/07 19:08 Page 84

Page 85: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200785

PROGRAMMATION LINUX

Le codeVoici le code ayant servi à tester le composant de l’Entreprise Library.Afin d’éviter tout traitement parasite, un CustomHandler a été utilisé etla méthode interceptée ne fait aucun traitement. Le même algorithme aété repris pour le test de tous les autres tisseurs, garantissant ainsi unecohérence dans les résultats.

public interface IEntLibTest{

void Test();}

/// <summary>/// La classe à tisser./// </summary>public class EntLibTest : IEntLibTest{

/// <summary>/// Méthode qui ne fait rien. /// Histoire de prendre en compte les temps d'appel./// </summary>public void Test(){}

}

/// <summary>/// Handler personnalisé./// </summary>[ConfigurationElementType(typeof(CustomCallHandlerData))]public class EntLibTestAdvice : ICallHandler{

public EntLibTestAdvice(NameValueCollection col) {}

#region ICallHandler Membres

public IMethodReturn Invoke(IMethodInvocation input, GetNextHandlerDelegate getNext)

{// On peut placer un traitement préalable ici.IMethodReturn msg = getNext()(input, getNext); // l'appel// puis un autre après l'appel ici.return msg;

}

#endregion}

/// <summary>/// Cette classe contient les méthodes qui gèrent les tests./// </summary>public class EntLibTester{

/// <summary>/// Lance le test en utilisant le mode Wrap./// </summary>public void RunWrap(){

Stopwatch sw = new Stopwatch();int max = 1;bool flag = false;while (!flag){

sw.Start();for (int i = 0; i < max; i++){

IEntLibTest test = PolicyInjection.Wrap<IEntLibTest>(new EntLibTest());test.Test();

}sw.Stop();Console.WriteLine("Iterations:{1}, Durée:{0} ms",

sw.ElapsedMilliseconds, max);flag = (max == 100000 ? true : false);max = (max == 10000 ? 100000 : max);max = (max == 1000 ? 10000 : max);max = (max == 1 ? 1000 : max);

} }

/// <summary>/// Lance le test en utilisant le mode Create./// </summary>public void RunCreate(){

Stopwatch sw = new Stopwatch();int max = 1;bool flag = false;while (!flag){

sw.Start();for (int i = 0; i < max; i++){

IEntLibTest test = PolicyInjection.Create<EntLibTest, IEntLibTest>();test.Test();

}sw.Stop();Console.WriteLine("Iterations:{1}, Durée:{0} ms",

sw.ElapsedMilliseconds, max);flag = (max == 100000 ? true : false);max = (max == 10000 ? 100000 : max);max = (max == 1000 ? 10000 : max);max = (max == 1 ? 1000 : max);

} }

}

ConclusionAvec l’arrivée de l’Entreprise Library 3, la plate-forme .NET se dote d’unnouveau tisseur. L’AOP est une solution très avantageuse pour amélio-rer tant la lisibilité du code, que la productivité des développeurs. Si lecomposant de l’Entreprise Library est celui que j’ai trouvé le plus pra-tique à utiliser, celui-ci n’est pas des plus performants. On préfèreradonc Spring.NET quand la performance est primordiale.■ Joël Descombes - SQLI

84-85 22/08/07 19:09 Page 85

Page 86: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200786

Code

CMake, le make plus ultra des outils de constructionEncore peu connu, son adoption comme outil de construction de KDE 4 va le propulser sur le devantde la scène. Et c'est à juste titre. Découvrons le.

Programmez! 96 vous a présenté SCons, l'outil de constructionde projet basé sur Python. Nous examinons aujourd'hui CMake.Si avec les deux outils, le but est d'aboutir à la construction

d'un projet, chacun à sa propre philosophie, et donc, son domained'application. Scons a une philosophie à la Python. C'est un couteausuisse et un outil de haut niveau dans le sens où la configurationd'une construction (simple) se configure rapidement, en peu de lignes.Avec CMake les choses sont différentes. Avec CMake on rentre danstous les détails de la construction, même si, bien entendu, les dépen-dances classiques entre fichiers .h et .c sont automatiquementgérées. En fait CMake n'est pas un outil de construction de projets àproprement parler. C'est un outil de génération de makefile tout cequ'il y a de classique, et aussi, sous Windows, de projets Visual Studiosi on le souhaite. Une fois les makefiles ou les projets Visual Studiogénérés, la construction proprement dite est effectuée de manière tra-ditionnelle.

En remplacement des autotoolsToute personne qui a un jour compilé un projet Open Source a été

confrontée au trio de commandes:

./configuremakemake install

Les deux dernières commandes assurent la compilation et l'installationde l'application au moyen de makefile. Rien d'extraordinaire ici. Toutl'ésotérisme de la chose est concentré dans le script configure. Celui-ci,tout au long d'une exécution souvent bien trop longue, émet d'innom-brables messages du genre de celui-ci:

checking for sys/types.h... yes

Quand yes fait partie du message, pas d'inquiétude. Parfois no appa-raît, mais le script continue son travail et la construction d'un projetamputé de certaines fonctionnalités sera malgré tout possible, parfoisil s'arrête et la construction du projet sera impossible sur votre systèmeen raison de l'absence de librairies, de fichiers en-tête ou pour uneautre raison. En résumé, configure vérifie si votre système est capabled'accueillir totalement ou partiellement un projet et selon le résultat deses cogitations un (ou plusieurs) makefile sera généré pour la construc-tion à venir avec la commande make. Lancer un script configure est à la portée de tous. Mais si vous avezdéveloppé une application que vous souhaitez pouvoir être compilée surdiverses plates-formes ou même sur des Linux diversement configurés,vous devrez créer vous même le script configure et c'est là que l'affaire

1

se gâte sérieusement. Vous devrez écrire un fichier configure.ac remplide macros m4 hermétiques et utiliser les autotools que sont autoconf,automake et libtools. Le premier générant le fameux script configure,les deux autres générant les makefile à partir des prototypes que sontles makefile.am. Sans vouloir critiquer ces outils qui ont rendu des ser-vices inestimables, force est de reconnaître que les utiliser est éprou-vant pour de multiples raisons, dont la connaissance requise deplusieurs langages et syntaxes. C'est ici que CMake intervient. Son rôleest identique à celui du script configure mais il travaille à partir d'un ouplusieurs fichiers de commandes écrites dans un langage homogène etinfiniment plus intelligible que les macros m4. Lorsque CMake a termi-né son travail, qui est incomparablement plus rapide que l'exécutiond'un script configure, les makefile classiques sont générés et il ne resteplus qu'à les utiliser non moins classiquement. CMake est donc un outilde choix pour remplacer les autotools vieillissants (euphémisme..) etpour le développement multi plate-forme. En effet, vous pouvez avec luinon seulement préparer une construction de projet sous Unix maisaussi sous MacOS X, sous Windows avec possibilité de générer desmakefile pour nmake, mais aussi des projets Visual Studio comme nousl'avons dit. Vous avez encore la possibilité d'utiliser sans difficulté de nombreuxcompilateurs différents. Par sa nature, il est clair que CMake est essen-tiellement dédié aux applications écrites en C ou C++. Il est toutefoiscensé prendre en charge Java, possibilité que votre serviteur n'a jamaisessayé. En outre CMake est extensible au moyen de commandes per-sonnalisées. Alors tout est il parfait dans le monde de CMake ? Pas toutà fait. Même s'il n'est pas ardu et ingrat comme le sont les autotools, ilest, nécessairement, complexe. Or il est à regretter que sa documenta-tion ne soit pas à la hauteur de l'outil et qu'elle rende sa prise en maindifficile. Cette documentation n'est que la description de commandesen vrac. L'utilisation de ces commandes ne saute pas aux yeux de primeabord. Est-ce voulu ? Comme pour d'autres projets Open Source, unedocumentation payante venant sous la forme d'un livre vous est propo-sée. Cependant, une fois la prise en main effectuée, la puissance et lesavantages de CMake apparaissent et l'on comprend que le projet KDE 4l'ait adopté. Et votre serviteur ne serait pas surpris si à l'avenir CMakedevenait le nouveau standard pour la construction des projets OpenSource. Cela semble souhaitable du moins. Vous trouverez CMake àhttp://www.cmake.org. Son installation est une simple formalité.

Notre cahier des chargesNous allons écrire un projet en C de type Hello World, composé

d'un programme principal et d'une librairie construite séparément dansson propre répertoire. Nous voulons que le projet puisse être construitsous Unix, mais aussi sous Windows. Nous voulons que sous Unix laprésence de la librairie Curses soit détectée et que si la librairie est pré-

2

86-89 22/08/07 19:04 Page 86

Page 87: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200787

sente, notre application soit dotée d'une fonctionnalité supplémentaire.L'absence éventuelle de la librairie sera signalée sans faire échouer laconstruction, et si nous sommes sous Windows, la librairie ne sera pasrecherchée du tout. Enfin, nous voulons que sous UNIX, et sous UNIXseulement, l'exécutable produit soit installé dans un répertoire bin etque la librairie soit installée dans un répertoire lib, tous deux sous-réper-toires d'un répertoire qui sera spécifié au lancement de la constructiondu projet.

Organisation des sourcesCelle-ci est naturellement arborescente. A la racine nous dépo-

sons les sources de l'application principale. Dans un sous-répertoirebaptisé hellolib nous déposons les sources de la libraire, y compris lesen-têtes. Chaque répertoire du projet doit se voir attribuer un fichier decommandes à l'intention de CMake. Le lecteur trouvera notre projet surle Cd-Rom accompagnant le magazine ou sur notre site. Regardons nossources. Tout d'abord l'en-tête de la librairie.

/* fichier hellolib.h */#ifndef HELLOLIB_#define HELLOLIBextern void helloworld(void);#endif

Rien à remarquer. L'emploi de CMake est transparent ici. Voyons main-tenant le code de la librairie:

/* Fichier hellolib.c */#include <stdio.h>

#ifdef WIN32__declspec( dllexport ) void helloworld(void);#endif

void helloworld(void){

puts("Programmez!");puts("Abonnez vous! :-)");

}

Le seul point à remarquer est la compilation conditionnelle. Sous Win-dows et sans la déclaration d'exportation, notre librairie serait biengénérée sous la forme d'un fichier .dll, mais le fichier .lib ne serait pasgénéré, la librairie n'exportant aucune fonction. Ceci est spécifique auxoutils Windows et n'a sur le fond, rien à voir avec l'utilisation de CMakeproprement dit. Voici maintenant le code de l'application:

#include <stdio.h>#include "hellolib/hellolib.h"

#include "config.h"

int main(int argc, char *argv[]){

helloworld();

3

#ifdef CURSES_FOUNDputs("Ce programme est lié à la librairie curses");

#endif

return 0;}

Le code est tout simple. On remarquera à nouveau une compilationconditionnelle. Rien à voir cette fois avec une spécificité de plate-forme.Il s'agit simplement de la "fonctionnalité" que nous ajoutons à l'applica-tion si la libraire curses a été détectée au moment de la compilation.L'ajout se fait en fonction de la définition de la macro CURSES_FOUNDdont on se doute qu'elle réside dans le fichier en-tête config.h. Cepen-dant, nous n'écrivons pas nous-mêmes ce fichier. CMake le générerapour nous. Nous comprenons donc que le choix de CMake comme outilde construction a ici une répercussion directe sur le code de l'applica-tion. Les unixiens sont habitués à cela puisque le script configure peutgénérer un tel en-tête. Mais cette pratique est moins habituelle sousWindows.

Premiers pas avec les CMakeListsPour que CMake fonctionne correctement, chaque répertoire et

sous-répertoire d'un projet doit comporter un fichier de commandes dunom de CMakeLists.txt. Ce fichier est un simple fichier texte. Faisons-nousla main avec le CMakeLists.txt du sous-répertoire hellolib de notre projet.

SET (hellolib_src hellolib.c)ADD_LIBRARY (hellolib SHARED ${hellolib_src})

IF (UNIX)INSTALL(TARGETS hellolib DESTINATION "lib")

ENDIF (UNIX)

Les commandes CMake ne sont pas sensibles à la casse. En revanche,les paramètres entre parenthèses le sont. En observant cet exemple,nous constatons que le jeu de commandes CMake va au-delà d'unsimple jeu de commandes pour être finalement un véritable langage.Comme avec un langage, nous pouvons déclarer et définir desvariables, ce que nous faisons avec la commande SET. La variabledéclarée est hellolib_src. Son type est une liste. Ici hellolib.c est le seulélément. Si nous avions eu plusieurs fichiers sources pour notre librai-rie, nous aurions écrit:

SET (hellolib_src hellolib_src hellolib.c hellolib2.chellolib3.c hellolib4.c)

En séparant chaque nom de fichier par un espace et en allant à la ligneautant que de besoin. Dans l'exemple, la tabulation de la deuxièmeligne n'est pas requise. Nous pouvons aussi procéder à des itérationssur les éléments d'une liste au moyen du sandwich de commandesFOREACH/ENDFOREACH. Voici un exemple qui affiche chaque élémentl'un après l'autre :

SET (FICHIERS hellolib.c hellolib1.c hellolib2.chellolib3.c hellolib4.c)

4

LANGAGE : CDIFFICULTÉ : •••••

APPLICATION : BUILDSOURCE : oui

Donnez votre avis sur ce numéro www.programmez.com/magazine_satisfaction.php

86-89 22/08/07 19:05 Page 87

Page 88: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200788

CodeFOREACH(FICHIER ${FICHIERS})

MESSAGE(${FICHIER})ENDFOREACH(FICHIER)

La valeur d'une variable, simple ou liste, est récupérée avec la syntaxe${}. On remarquera bien la dernière ligne de l'exemple: le paramètre dele commande ENDFOREACH est FICHIER et non FICHIERS. En ce qui concerne la commande SET, il est utile de savoir qu'elle peutaussi définir ou modifier des variables d'environnement. Nous renvoyonsle lecteur à la documentation pour cela. Revenons à notreCMakelLists.txt. La deuxième commande, comme son nom l'indique,ajoute une librairie. Ajout à quoi ? Au projet naturellement. Nous y revien-drons un peu plus loin. Les trois dernières lignes de notre exempleconcernent l'installation de la librairie. Comme nous voulons que cetteinstallation se fasse sous UNIX uniquement, nous testons tout naturelle-ment la variable UNIX que CMake aura automatiquement créée si noustravaillons sur une plate-forme de type UNIX. La commande INSTALL estclaire. Son effet, comme on s'y attend, se répercute sur la cible install dumakefile qui sera généré. En revanche l'utilisation de IF recèle un piègequi mérite qu'on s'y attarde. Supposons que sous Windows nous souhai-tions émettre un message avertissant l'utilisateur que la librairie ne serapas installée. Voici ce que l'on est tenté d'écrire de prime abord :

IF (UNIX)INSTALL(TARGETS hellolib DESTINATION "lib")

ELSE (WIN32) # < -- !! NON !!MESSAGE("La libraire ne sera pas installée")

ENDIF (UNIX)

C'est tentant mais cela ne fonctionnera pas et aggravera votre ulcère àl'estomac tant que vous ne serez pas habitués à CMake (ou mis engarde par Programmez! :). La règle est que si la commande IF a testéUNIX, tout le reste doit suivre de même. Nous avons alors deux solu-tions la première est de traiter chaque plate-forme l'une après l'autre:

IF (UNIX)INSTALL(TARGETS hellolib DESTINATION "lib")

ENDIF (UNIX)

IF (WIN32)MESSAGE("La libraire ne sera pas installée")

ENDIF (WIN32)

Mais nous pouvons aussi imbriquer si nous le souhaitons à condition dele faire comme ceci, en remarquant bien le ELSE (UNIX):

IF (UNIX)INSTALL(TARGETS hellolib DESTINATION "lib")

ELSE (UNIX)IF (WIN32)

MESSAGE("La libraire ne sera pas installée")ENDIF (WIN32)

ENDIF (UNIX)

Signalons malgré tout qu'il est possible de faire fonctionner le premierexemple au moyen de cette commande:

SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)

Après quoi il devient possible d'écrire :

IF (UNIX)INSTALL(TARGETS hellolib DESTINATION "lib")

ELSEIF (WIN32)MESSAGE("La librairie ne sera pas installée")

ELSEIF (APPLE)MESSAGE("Croquez la pomme :)")

ELSE ()MESSAGE("Où êtes vous ?")

ENDIF ()

Toute la question étant de savoir si c'est une bonne idée, car ce n'estpas la pratique établie et il est sans doute préférable de se conformer àcette dernière pour ne pas obfusquer des CMakeLists complexes.

Recherche sur le système hôteNous regardons maintenant le CMakeLists.txt principal, à la raci-

ne du projet. Voici son contenu:

PROJECT(hello)

IF (UNIX)MESSAGE("-- Recherche de la librairie curses")FIND_PATH (CURSES_INCLUDE_DIR curses.h /usr/include)FIND_LIBRARY (CURSES_LIBRARY NAMES curses PATH /usr/lib)

IF (CURSES_INCLUDE_DIR AND CURSES_LIBRARY)SET (CURSES_FOUND TRUE)

ENDIF (CURSES_INCLUDE_DIR AND CURSES_LIBRARY)

IF (CURSES_FOUND)MESSAGE("-- Librairie curses trouvée")INCLUDE_DIRECTORIES (${CURSES_INCLUDE_DIR})

ELSE (CURSES_FOUND)MESSAGE("-- !! Librairie cursesabsente de votre système !!")

ENDIF (CURSES_FOUND)ENDIF (UNIX)

ADD_SUBDIRECTORY (hellolib)

SET (hello_src main.c)ADD_EXECUTABLE (hello ${hello_src})

CONFIGURE_FILE (${CMAKE_SOURCE_DIR}/config.h.cmake ${CMAKE_BINARY_DIR}/config.h)INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR})

TARGET_LINK_LIBRARIES (hello hellolib ${CURSES_LIBRARY})

5

86-89 22/08/07 19:05 Page 88

Page 89: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200789

LANGAGE : CDIFFICULTÉ : •••••

APPLICATION : BUILDSOURCE : oui

IF (UNIX)INSTALL(TARGETS hello DESTINATION "bin")

ENDIF (UNIX)

Maintenant que nous sommes familiarisés avec le maniement deCMake, ce code se comprend facilement. Nous commençons par définirle nom du projet. Puis, si et seulement si nous sommes sur UNIX, nousrecherchons curses dans les règles de l'art, à savoir la librairie et sesfichiers en-têtes. En cas de succès, le répertoire d'inclusion est ajoutéau projet. Sinon nous émettons un message d'avertissement qui ne faitpas échouer la construction. Si l'absence du curses était rédhibitoire,nous aurions simplement écrit:

MESSAGE(FATAL_ERROR "FATAL: Librairie curses introuvable")

Il n'est pas toujours nécessaire de rechercher aussi explicitement unelibrairie. CMake vient avec des commandes de recherche de packagetoutes prêtes pour les librairies courantes. Ces commandes sont docu-mentées. Ainsi pour curses, nous pouvions simplement écrire:

FIND_PACKAGE (Curses QUIET)

Après la recherche de curses, nous ajoutons le répertoire hellolib à notreprojet. Cet ajout fait que CMake ira dans le sous-répertoire, et comme il ytrouvera le CMakeLists.txt vu plus haut, il s'occupera de la constructionde la librairie. Viennent ensuite les commandes de construction de l'exé-cutable sur lesquelles nous ne nous arrêtons pas. Plus intéressante estla commande CONFIGURE_FILE qui provoquera la génération de l'en-têteconfig.h à partir d'un fichier config.h.cmake que voici :

#ifndef CONFIG_H_#define CONFIG_H_

#cmakedefine CURSES_FOUND 1#endif

Nous cherchons curses donc, automatiquement, une variableCURSES_FOUND va exister, qui prendra la valeur 1 ou 0 selon le résultatdes curses, pardon des courses :) Aurions nous cherché la libraire X11que X11_FOUND eut été définie, etc.

Revenons à notre CMakeList.txt. Nous ajoutons ensuite le répertoirecontenant config.h aux répertoires d'inclusion. Le reste des com-mandes tombe sous le sens, nous ne nous y attardons pas non plus.

Construction du projetImpatients, nous lançons la construction de notre projet, depuis

sa racine. Nous voulons que l'installation soit faite sous /home/fred:

cmake -DCMAKE_PREFIX_INSTALL=/home/fred .makemake install

Sous UNIX, un makefile est un makefile. Sous Windows nous disposonsde multiples types de cibles. Pour générer un simple makefile à l'atten-tion du NMake de Microsoft, nous procédons ainsi :

6

cmake -G "NMake Makefiles" .

Mais si nous voulons générer un projet pour Visual Studio, la commandedevient

cmake -G "Visual Studio 8 2005" .

Et pour connaître tous les cibles possibles, y compris pour des compila-teurs non Microsoft, on donnera cmake --help. A moins que l'on ne pré-fère utiliser l'outil graphique de CMake.

En guise de conclusionNous avons vu que CMake est un outil très complet, qui permet

de gérer un projet dans les moindres détails. Nous n'avons pas énumé-ré toutes ses possibilités ni ses finesses, loin s'en faut. Par exemple ilest possible, facilement, de spécifier des propriétés pour un source,propriétés qui feront que lui et lui seul sera compilé avec des optionsparticulières. Nous avons vu que CMake est parfait pour remplacer lesautotools ou même pour migrer un projet de Linux vers Windows etVisual Studio. De ce fait, il devrait logiquement s'imposer rapidementcomme un standard de L'Open Source.

■ Frédéric Mazué - [email protected]

7

86-89 22/08/07 19:06 Page 89

Page 90: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200790

Code

Hébergez votre site dans unordinateur PC "headless" SoekrisDe nos jours, chacun peut envisager d'être son propre hébergeur. Ce ne sont pas les possibilités quimanquent. Cet article vous propose quelques pistes et solutions, profitant de la richesse des outilset des logiciels Open Source.

Toute personne qui dispose d'une connexion permanente àInternet peut créer et héberger son site, dans la mesure où ledébit montant de la connexion est suffisant pour ce que l'on

souhaite faire. Dans les pages qui vont suivre, je vais vous décrire leschoix que j'ai faits, ainsi que les procédés et les logiciels que j'ai adop-tés, pour la création et l'hébergement de mon site personnel. Cetarticle ne veut pas entrer dans les détails, mais plutôt présenter unedémarche et des solutions intéressantes. Si vous êtes curieux etqu'un point vous semble obscur, je vous retrouverai avec plaisir surnotre forum pour en discuter.

Choix du matérielUn site doit pouvoir être atteint via son nom de domaine. Vous

pouvez en acheter un auprès de votre fournisseur d'accès à Internet,ainsi qu'une adresse IP fixe. Cependant, un abonnement (gratuit) àDynDNS pour mettre en correspondance un nom de domaine, choisi surhttp://www.dyndns.com, avec une IP dynamique est la solution que j'aichoisie et que je vous recommande pour un site personnel. Dans cecas, votre modem/routeur ADSL (j'utilise la "box" officielle de mon FAI)se chargera du rafraîchissement DynDNS à chaque fois qu'une nouvelleadresse IP vous sera attribuée. Cette solution est idéale car elle éviteque l'ordinateur qui héberge votre site ne soit directement accessiblevia Internet. Au lieu de cela, la "box" sert de pare-feu et se charge derediriger les connexions entrantes vers la machine. Si vous voulezconnecter la machine directement au Net, DynDNS fournit de petits logi-ciels qui s'occuperont alors du rafraîchissement. Nous devons mainte-nant choisir un ordinateur. En théorie, tout vieux PC est parfait pour cetravail et c'est l'occasion de recycler une machine périmée. Mais avecdeux problèmes potentiels: la consommation d'électricité et le bruit desventilateurs. J'ai opté pour une autre solution, un PC headless Soekrisnet4801 (http://www.soekris.com) (Fig. 1).Il s'agit d'un PC sans écran ni clavier, construit autour d'une AMDGeode 266 Mhz (équivalent à un Pentium I) avec 256 Mo de Ram. Onpeut y incorporer une carte Compact Flash et/ou un disque dur 2.5"(disque dur de portable). La machine comporte en outre une interfacesérie RS232 et trois interfaces Ethernet avec possibilité de booter surl'interface eth0. L'avantage de cette solution est une consommationélectrique très faible, 15W, et l'absence de bruit car le Geode ne chauf-fant pas, il n'y a pas de ventilateur. Le seul bruit, très très faible estcelui du disque 2.5" que j'ai monté. Totalement négligeable, et sinon, vusa taille, la machine peut facilement être rangée dans un placard :-) Unautre intérêt de cette solution est l'exercice d'y installer le systèmed'exploitation, car là, pas question de le faire depuis un CD-Rom ou unlecteur de disquette :-)

1

Choix du système d'exploitationLa machine, toute petite qu'elle est, doit tourner 24/24H et être

fiable. Un système d'exploitation sérieux s'impose donc. Les candidatssont OpenBSD, FreeBSD et Gnu/Linux. OpenBSD présente l'avantagede pourvoir booter en pxeboot (voir plus loin) et s'installer directementdepuis Internet, mais je le connais mal. FreeBSD est aussi une solutionintéressante, mais j'ai choisi Linux que je pense connaître assez bien ;)Quel Linux ? Debian est un candidat excellent car capable lui aussi des'installer pxeboot. Red Hat le fait aussi mais cette distribution est lour-de et très incommode pour la Soekris. Je pense qu'il est sage de l'évi-ter. J'ai naturellement choisi ma distribution préférée : Gentoo. Un desavantages est que cette distribution s'auto-compile. On peut ainsi opti-miser au mieux les exécutables, ce qui est bien venu, vu la faible puis-sance du Geode. Les paranoïaques de la sécurité hurlent au scandalelorsque je leur dis que gcc est présent sur mon serveur. Ca ne m'em-pêche pas de dormir. Si certains ont déjà essayé de casser mon site,personne n'y est pas encore parvenu :-)

Avant tout, communiquer avec le BIOS de la Soekris.Pour cela utiliser un ordinateur équipé d'un Linux. Connectez

celui-ci à la Soekris à l'aide d'un null-modem câble. Ensuite lancer le ter-minal minicom sur l'ordinateur. Depuis minicom, réglez le port série duPC à 19 600 bauds. Mettez la Soekris sous tension. Vous obtenez dansminicom un affichage semblable à celui de l'illustration ci-contre (Fig.2).Une fois dans le BIOS, vous pouvez essayer les différentes commandes(mal) documentées par le manuel. Mais il vous faut impérativement

3

2Fig.1 : Le PC Soekris, une toute petite boîte sympathique.

90-92 22/08/07 19:02 Page 90

Page 91: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200791

obtenir l'adresse MAC de l'interface réseau qui servira à booter Linux.Pour cela tapez dans minicom

boot f0

La Soekris va essayer de booter sur l'inter face réseau, ce qui vaéchouer bien évidemment. mais à l'issue de cet échec, vous verrezl'adresse MAC de la carte Ethernet affichée dans minicom :) Notez cetteadresse quelque part car vous en aurez besoin pour configurer un ser-veur DHCP.

Boostraper Gentoo dans la SoekrisGentoo est parfait, mais il n'est pas prévu de l'installer depuis le

réseau. Bien sûr, on peut jouer “petit”, installer Gentoo dans une Com-pact Flash ou un disque 2.5" sur une autre machine. Démonter la Com-pact Flash ou le disque et le monter dans la Gentoo. Mais il est bienplus amusant et éventuellement économique de booter depuis l'interfa-ce réseau. Cela dit comment faire ? Cela paraît impossible. Pourtant cene l'est pas. Avec la richesse des outils Open Source et la magie dessystèmes de fichiers Linux, c'est même facile. La démarche que jedécris n'est d'ailleurs pas réservée à Gentoo, mais peut être appliquéeà la distribution de votre choix. Fondamentalement, une distributionGentoo s'installe, après formatage d'un disque, par le désarchivaged'une archive dite stage3 qui contient les binaires constituant un systè-me minimum. Ce désarchivage est fait sur le dit disque et dans la parti-tion destinée à être la racine du système. Après désarchivage, onchroote sur la racine et on poursuit l'installation Mais avant de pouvoirfaire ça dans la Soekris, il faut au moins qu'un noyau y soit chargé, etun système de fichier racine monté. Donc il faut procéder par étape. Lapremière étape consiste à booter Soekris comme une machine sansdisque du tout avec la méthode pxeboot. La démarche est très claire-ment expliquée, en français, à http://www.gentoo.org/doc/fr/diskless-howto.xml. Etudiez ce document. Même si vous voulez installer uneautre distribution, les indications sont valables. Une fois le documentassimilé, il n'y a que peu à ajouter. Sur la machine maître (le PC clas-sique), nous devons faire deux opérations supplémentaires dans le sys-tème de fichiers destinée à Soekris. D'abord y déposer une archivestage3 (non décompressée donc) et qui servira après le boot réseau

4

(alias pxeboot). Ensuite chrootez vous une fois dans ce système defichiers (sur le PC) pour définir un mot de passe pour root. Quitter lechroot. Vérifiez que tous les démons (nfs, dhcp et tftp) sont lancés cor-rectement et que le maître est bien démarré sur un noyau supportant lafonctionnalité de serveur nfs. Vérifiez aussi que le service DHCP del'éventuelle "box" de votre fournisseur d'accès soit bien désactivé, afind'éviter un conflit avec le serveur DHCP de l'ordinateur maître. Tout est-il prêt ? Pas tout à fait :) Je vous conseille d'ajouter :

console=ttyS0,19200n81

à la ligne APPEND du fichier default du pxeboot, ceci afin d'avoir la sortie de la Soekris redirigée dans minicom. Rebootez maintenant la Soekris, puis bootez sur l'interface réseau, en deux commandes successives dans minicom:

reboot (puis Ctrl-p pour avoir la main)boot f0

Instant magique, ça marche ! :-) Quelle est la situation à ce stade ?Nous avons un Linux qui tourne dans la Soekris mais dont le systèmede fichier racine est sur l'ordinateur maître, situation normale pour ledémarrage que nous avons effectué. Nous pouvons saisir des com-mandes dans minicom comme dans un terminal Linux normal. Maisnous devons maintenant nous affranchir du maître, ce qui est la deuxiè-me étape. C'est facile. fdisk étant disponible, nous pouvons formater ledisque 2,5" de la soekris. Supposons ceci fait, avec par exemple uneracine devant être sur /dev/hda3. Il est temps de donner dans minicomdeux commandes dont la magie est étourdissante :

mkdir /mnt/soekrismount /dev/hda3 /mnt/soekris

Qu'avons nous fait ? Depuis Soekris nous avons créé un point de mon-tage dans le système de fichier qui réside sur le maître, puis nous avonsmonté notre disque local à Soekris sur ce système de fichiers distant. Etça marche! Linux, c'est quand même quelque chose :) Maintenant il suf-fit de décompresser le stage 3 dans /mnt/soekris, c'est-à-dire finale-ment sur notre disque local Soekris. Chrootez dans /mnt/soekris. Ca yest! Vous êtes dans la place. Il vous suffit de poursuivre la procédured'installation classique de Gentoo (http://www.gentoo.org/doc/fr/gen-too-x86-quickinstall.xml). Bien sûr, vous n'oublierez pas d'inclure ledémon ssh dans votre séquence de démarrage afin de pouvoir vousconnecter à distance après le redémarrage. Lors de ce redémarrage,vous repasserez par le BIOS de la Soekris et vous le configurerez pourbooter automatiquement sur le disque 2.5. C'est terminé. Vous dispo-sez d'un Linux embarqué qui vous emmènera d'amusements en satis-factions :)

Choix d'un serveur WebLa richesse du monde Open Source est telle que le choix est un

vrai embarras. J'ai commencé par servir des pages statiques avecApache. Avec l'intention de faire des pages dynamiques plus tard. Maisavec quoi? Vu la faible quantité de mémoire, pas avec Java, c'est sûr.Php serait très bien. J'ai pensé aussi à Ruby on Rails, ou même à Djan-go que je préfère à Ror, avec lighttpd pour économiser des ressources.

5

LANGAGE : -DIFFICULTÉ : •••••

APPLICATION : SERVEURSOURCE : non

Fig.2 : Communication établie avec le BIOS de la Soekris, via un terminal minicom.

90-92 22/08/07 19:03 Page 91

Page 92: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200792

CodeMais d'un autre côté je ne voulais pas que ma Soekris ne soit qu'un ser-veur Web. C'est aussi un serveur de courrier. PostgreSQL et d'autresbonnes choses y tournent. Et malgré tout cela, je ne veux pas d'unemachine qui passe son temps à écrire dans sa partition de swap. Php,Ror, Django sont tous des outils formidables, mais un peu gourmandsen ressources, voire lents, dans le contexte. Alors je me suis dit.Puisque l'environnement est tout petit, il faut voir grand :) Et j'ai optépour un très grand langage, injustement méconnu et incompris: Erlang.J'ai logiquement choisi Yaws, un serveur d'application écrit en Erlang.Pourquoi ce choix ? Parce que Erlang est un langage extrêmement per-formant car conçu pour piloter des systèmes en temps réel. Et aussiparce que Erlang est un langage concurrent. Quand Yaws tourne dansun système Erlang, je peux y faire tourner d'autres applications en paral-lèle. Des applications connexes à mon site Web ou totalement étran-gères comme des outils d'administration, et les faire communiquerentre elles. Ce qui est remarquable est qu'un processus supplémentai-re lancé dans un noeud Erlang ne coûte que 300 octets en moyenne. Vude l'extérieur Yaws ressemble à Php. Voici à titre d'exemple, ma paged'accueil réduite à sa plus simple expression:

<html><head></head><body>

<erl>out(A) ->

Peer = A#arg.client_ip_port,Ip = element(1, Peer),Port = element(2, Peer),H = A#arg.headers,{html, "<p>" ++ f("Votre adresse IP est: ~w.~w.~w.~w<br>",

[element(1,Ip), element(2,Ip),element(3,Ip), element(4,Ip)])

++ f("Vous utilisez actuellement le port: ~w<br>", [Port])++ f("Votre navigateur pr&eacute;tend &ecirc;tre: <br>~s",

[H#headers.user_agent])++ "</p>"}.

</erl></body></html>

Nous avons du code Erlang inséré dans le HTML, mais ce n'est que l'as-pect extérieur des choses. Car au sein de Yaws une page Web devientun processus Erlang comme un autre et comme tel peut communiqueravec tout le système. Ainsi faire une interface Web d'administration dela Soekris est un jeu d'enfant. Je fais encore tourner, dans le même systè-me Erlang, l'équivalent du vieux service Internet time (à l'heure d'hiver :)du port 13, mais sur le port 13013. Vous pouvez essayer depuis votremachine avec un petit coup de telnet:

telnet fmazue.is-a-geek.net 13013

Coût de ce service: 200 octets. Je laisserai ce service actif pendantdeux mois après parution de cet article. Au total, le runtime Erlang quifait tourner Yaws et tout le reste utilise moins de 5 Mo, ce qui est imbat-

table. Depuis que je suis passé à Erlang, ma Soekris n'a jamais écritdans sa partition de Swap :) J'espère, par cet article et à l'occasion dunuméro 100 de Programmez! vous avoir fait découvrir de nouvelles pos-sibilités sortant des sentiers battus et qui renouvelleront votre plaisir defaire de l'informatique.

■ Frédéric Mazué - [email protected]

LANGAGE : -DIFFICULTÉ : •••••

APPLICATION : SERVEURSOURCE : non

En résuméPour amorcer un Linux sur le réseau en pxeboot, il vous faut :- Une machine capable de booter sur une interface réseau telle quela Soekris.

- Un ordinateur maître équipé d'un Linux. Sachant que les outilslogiciels mentionnés ci-dessous font partie de toute distributionLinux qui se respecte, sur cet ordinateur maître devront être pré-sents:

-- un émulateur de terminal tel que minicom.-- Un noyau compilé avec support des fonctionnalités serveur NFS.-- Un serveur DCHP configuré pour attribuer une adresse IP à l'inter-

face réseau de la machine esclave. (Soekris)-- un serveur TFTP configuré pour uploader un noyau dans la machi-

ne esclave.-- un noyau compilé avec support des fonctionnalités client NFS.

C'est ce noyau qui sera uploadé dans la machine esclave.-- Une arborescence destinée à devenir le système de fichier racine

de l'esclave. Typiquement pour une distribution Gentoo cettearborescence est le contenu de l'archive stage3 d'installation deGentoo. On pourra ajouter tout ce qui pourra sembler pertinent àcette arborescence.

-- L'utilitaire de démarrage réseau pxeboot correctement configuré.-- Et enfin une bonne dose de patience, si vous tentez pour la pre-

mière fois ce genre d'aventure :)

FORUM dialogue et assistance www.programmez.com

90-92 22/08/07 19:03 Page 92

Page 93: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200793

Code

Découverte du Nova SDKNova SDK est un moteur 3D temps réel construit sur .NET 2.0 et DirectX 9.0c. Il permet d’intégrerau sein d’une application Windows Forms un rendu 3D rapide de qualité. Tout au long de cepremier article nous allons nous attacher à découvrir le modèle objet de Nova.Pour découvrir Novade manière ludique nous allons développer un petit jeu de bowling. Cet exercice nous permettrade passer en revue les points d’entrée et les concepts clef d’un moteur 3D moderne.

Le Nova SDK est basé sur deux assemblies que nous devrons référencer :• Vertice.Nova.dll• Vertice.Nova.Interop.dllDe plus pour accéder aux services mathématiques et géométriques debase, il nous faut référencer les assemblies de DirectX Graphics :• Microsoft.DirectX.dll• Microsoft.Direct3D.dll• Microsoft.Direct3DX.dllAvant de nous lancer dans la mise en place du jeu à proprement parler ilnous faut construire notre Windows Form. Cette dernière se composed’un bouton pour lancer une nouvelle partie et d’un panel dans lequelnous ferons nos rendus :Dans l’événement Load de notre formulaire nous allons nous occuperd’initialiser Nova SDK via sa méthode statique : NovaOmegaCore.Laun-ch. Cette méthode prend un premier paramètre qui est la clé d’enregis-trement. Dans notre cas, nous pouvons faire passer une chaîne vide(ceci indique à Nova de passer en mode démonstration. Le moteur resteentièrement fonctionnel mais cessera de fonctionner au bout de 5 minutes). Pour libérer les ressources associées au moteur il suffitd’appeler la méthode statique NovaOmegaCore.Stop dans l’événementFormClosing de notre formulaire.

Notre scèneLe point central d’un monde 3D est constitué par la scène. Une scèneest une entité qui regroupe tous les acteurs de notre simulation :• Une ou plusieurs caméras qui représentent les points de vue• Des objets géométriques qui vont être dessinés avec un habillage

issu de matériaux• Des lumières pour éclairer les objetsComme Nova se charge de toute la gestion (mémoire, accès, sauvegar-de), c’est via la méthode statique NovaOmegaCore.CreateScene quenous allons récupérer une instance de notre scène. Puis c’est au travers des méthodes CreateObject, CreateLight, CreateCamera etCreateFVFMaterial que nous allons instancier nos objets.

Le renduPour que notre rendu soit fluide il est important de donner la main leplus souvent possible au moteur de rendu. Nous allons un peu détour-ner le fonctionnement de la boucle de messages des Windows Formpour nous allouer un maximum de temps pour faire notre rendu. Pourcela, dans le fichier Program.cs, nous allons mettre ce code en place :

[STAThread]static void Main(){

Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Form1 f = new Form1();

f.Show();

while (f.Created){

f.Render();Application.DoEvents();

}}

Ainsi, nous allons pouvoir appeler notre fonction de rendu aussi souventque possible sans asphyxier le traitement des messages de notre fenêtre.La fonction de rendu est une simple fonction qui encapsule l’appel à laméthode scene.Render.

internal void Render(){

// On active le controle de la carte graphiqueNovaOmegaCore.BeginRender(pnlZoneRendu);// Dessin de la scènemaScene.Render();// On libère l'accès et on copie le tout sur pnlZoneRenduNovaOmegaCore.EndRender(true);

}

LANGAGE : C#DIFFICULTÉ : •••••

APPLICATION : 3DSOURCE : oui

93-96 22/08/07 18:58 Page 93

Page 94: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200794

CodeNous pouvons noter juste l’appel aux méthodes BeginRender etEndRender qui se charge d’ouvrir les canaux de communication avec lacarte graphique et qui transfère le résultat vers le panel de rendu (pnl-ZoneRendu).

Les objets de notre bowlingNotre jeu va se construire autour de la représentation suivante :• Un sol• Une boule• 9 quillesNova est capable de charger des scènes toutes prêtes et déjà habilléesen provenance d’outils comme Autodesk 3ds Max. Ceci dit dans notrecas nous allons nous contenter de construire nos objets " à la main ".Pour ce faire nous allons nous appuyer sur les fonctions de créationsparamétriques des objets de Nova : CreateAsBox, CreateAsSphere etCreateAsCylinder.Ces trois fonctions vont nous générer une structure géométrique pourchacun de nos objets :• Le sol : une boîte de 10 m sur 40 m• Les quilles : Des cylindres de 30 cm de rayon sur 1 m de haut• La boule : une sphère de 40 cm Une fois générés, nos objets doivent être habillés. Pour ce faire nousallons utiliser des matériaux. Un matériau définit la couleur de l’objet enfonction de l’éclairage direct et de l’éclairage ambiant.Nous allons pouvoir habiller notre boule de rouge, le sol de vert et lesquilles de bleu. Pour éclairer tout cela, une source lumineuse suffit (enplus de l’éclairage ambiant). Cette source sera ponctuelle et position-née non loin du joueur. Pour représenter ce dernier, nous allons utiliserune caméra qui est caractérisée par une position et une cible (l’endroitque regarde la caméra).

Intégration de la physiqueNova SDK intègre un moteur physique qui va nous permettre de simulerl’interaction entre les différents acteurs de notre bowling. Pour activer la physique il suffit de créer un simulateur et de demander àla scène d’activer l’option :

// On crée un simulateur de physiquemaScene.GlobalDomain.CreateVortexEngine(new Vector3(0,-9.0f, 0), 0.5f);maScene.Physics = true;

Notre simulateur est créé avec une vitesse de simulation (0.5) et un vec-teur indiquant la direction de la gravité (on prendra ici un vecteur prochede la gravité terrestre).Chaque objet souhaitant intégrer la simulation physique doit indiquerplusieurs points :• Type de proxy le représentant : Sphère ou boîte dans la majorité des cas• Masse• Type d’interaction souhaité : RigidBody (pour interagir pleinement) ou

Animated (pour ne pas subir les effets de la physique)• Subir ou non la gravité

Exemple pour une quille :quille.PhysicGeometryType = NovaObject.PhysicGeometryTypes.Box;

quille.PhysicState = NovaObject.PhysicStates.RigidBody;quille.Mass = 0.5f;

quille.HasPhysicsGravity = true;

Les capacités dynamiques des objets (frictions et capacité de restitu-tion) sont spécifiées sur les matériaux :

revetementQuille.Friction = 0.1f;revetementQuille.SlidingFriction = 0.1f;revetementQuille.Restitution = 0.9f;

Dans cet exemple, le revêtement des quilles renvoient beaucoup d’éner-gie lors d’un choc et est très adhérent (très peu de friction).Une fois que les objets physiques sont définis, la scène se charge defaire vivre le tout. Nous pouvons par la suite interagir avec les objetsphysiques en leur appliquant des forces localisées via la méthodeNovaObject.ApplyImpulse.

Gestion de la sourisNous allons permettre à l’utilisateur de notre jeu de se déplacer autourde la piste et de lancer la boule depuis son point de vue. Pour cela, nousallons capturer le déplacement de la souris et déplacer notre caméra(via sa propriété Position) le long d’un cercle centré sur la piste :

private void pnlZoneRendu_MouseMove(object sender, MouseEventArgs e){

NovaPickInfo pick = maScene.Pick(e.X, e.Y);

if (pick.Hit){

Cursor = Cursors.Hand;}else

Cursor = Cursors.Default;

if (e.Button == MouseButtons.Left){

angle += ((float)(e.X - initialX)) /100.0f;joueur.Position = new Vector3(20.0f * (float)Math.Sin(angle),

2.0f, -20.0f * (float)Math.Cos(angle));

initialX = e.X;}

}

De plus, en utilisant la méthode NovaScene.Pick nous allons pouvoirchanger le curseur de la souris si cette dernière passe au-dessus de laboule. Pour que la boule puisse être sélectionnée par la méthode Pick, ilsuffit juste que sa propriété Pickable soit vraie.Pour lancer notre boule, nous allons réagir au clic droit sur cette derniè-re pour lui appliquer une force :

private void pnlZoneRendu_MouseDown(object sender, MouseEventArgs e){

if (e.Button == MouseButtons.Left){

initialX = e.X;}

LANGAGE : C#DIFFICULTÉ : •••••

APPLICATION : 3DSOURCE : oui

93-96 22/08/07 18:59 Page 94

Page 95: programmez100.pdf

L’information à la carte

PR

OG

10

0OUI, je m’abonne ! ou abonnement en ligne : www.programmez.com

Offre limitée, valable jusqu’au 31 octobre 2007

Le renvoi du présent bul let inimplique pour le souscripteurl'acceptation pleine et entière detoutes les conditions de vente decette offre.

Conformément à la loi Informatiqueet Libertés du 05/01/78, vousdisposez d'un droit d'accès et derectification aux données vousconcernant. Par notre intermédiaire, vouspouvez être amené à recevoir despropositions d'autres sociétés ouassociations.Si vous ne le souhaitez pas, il voussuff i t de nous écrire en nousprécisant toutes vos coordonnées.

ECO1Recevez le magazine chaque mois

et économisez 20 €

11 Numéros

4455€€Au lieu de 65,45 €

(Prix au numéro)

(Prix France métropolitaine)

TECHNIQUE

Pourquoi utiliser AspectJ

et la programmation aspect ?

Web Toolkit

Programmez!Pr

inte

d in

Fra

nce

- Im

prim

é en

Fra

nce

-

BELG

IQUE

6,4

5 €

- SU

ISSE

12

FS -

LUXE

MBO

URG

6,45

€-

Cana

da 8

,95

$ CA

N

DOM

Sur

f 6,9

0 €

- TOM

940

XPF

- M

AROC

50

DH

Programmez!www.programmez.com

3:HIKONB=^UZ^Z]:?a@a@t@i@k;

M

4319

- 98

- F:

5,9

5 E

Mensuel - Juin 2007 - N°98LE MAGAZINE DU DÉVELOPPEMENT

WEB 2Combiner Ajax et Java

avec Telosys

OUTILSL'intégration continue

avec CruiseControl

JAVAL'usine à développement Spring

PYTHON Django :

le framework web à tout faire

C++Créez vos interfaces Gnome

SGBDXUL

Avant-première :

PHP6Les nouvelles fonctions, ce qui change, migrer de PHP 5 à 6

Comparatif :

Quelle base de données, pour quels besoins ?

Les critères pour bien choisir - Une avalanche de nouveautés

Maîtriser la

plate-forme Mozilla

Conférence

MySQL :En attendant la v 6

SGBDXULMaîtriser la

plate-forme Mozilla

Construire un composant

"glisser-déposer"

1_98 21/

5/27 16

:14 Page

1

Programmez!Pr

inte

d in

Fra

nce

- Im

prim

é en

Fra

nce

-

BELG

IQUE

6,4

5 €

- SU

ISSE

12

FS -

LUXE

MBO

URG

6,45

€-

Cana

da 8

,95

$ CA

N

DOM

Sur

f 6,9

0 €

- TOM

940

XPF

- M

AROC

50

DH

Programmez!www.programmez.com3:HIKONB=^UZ^Z]:?k@a@t@g@a;

M

4319

- 96

- F:

5,9

5 E

Mensuel - Avril 2007 - N°96LE MAGAZINE DU DÉVELOPPEMENT

TECHNIQUE

Débugger en Python

C++• Le multithread

avec boost

• Construire un projet

avec SCons

SÉCURITÉ

Comprendre et utiliser

la cryptographie

à courbe elliptique

VISTACréer vos gadgets

C# 3.0Tout savoir sur

le prochain C#

Java :Découvrez

Eclipse Callisto

14 outils de modélisation

pour bases de données

Nouveaux outils

WEB 2.0

Tous les projets dévoilés : Web 3, Singularity,

l’OS de demain selon Microsoft, Web OS, exokernel,

clavier virtuel, encre numérique, ordinateur quantique,

Service Modeling Language, L5G…

Virtualisation

COMPARATIF : 6 logiciels au service du développeur

Spécial

FUTURFUTUR

UML 2Panorama

1_96 19/

3/27 2

:11 Page

1

-30%

1 2Lisez chaque mois le magazineau format PDF (téléchargement)

11 Numéros

3300€€Tarif Monde entier

Inscription en ligne uniquement :www.programmez.com

TECHNIQUE

Pourquoi utiliser AspectJ

et la programmation aspect ?

Web Toolkit

Programmez!

Prin

ted

in F

ranc

e -

Impr

imé

en F

ranc

e -

BELG

IQUE

6,4

5 €

- SU

ISSE

12

FS -

LUXE

MBO

URG

6,45

€-

Cana

da 8

,95

$ CA

N

DOM

Sur

f 6,9

0 €

- TOM

940

XPF

- M

AROC

50

DH

Programmez!www.programmez.com

3:HIKONB=^UZ^Z]:?a@a@t@i@k;

M

4319

- 98

- F:

5,9

5 E

Mensuel - Juin 2007 - N°98LE MAGAZINE DU DÉVELOPPEMENT

WEB 2Combiner Ajax et Java

avec Telosys

OUTILSL'intégration continue

avec CruiseControl

JAVAL'usine à développement Spring

PYTHON Django :

le framework web à tout faire

C++Créez vos interfaces Gnome

SGBDXUL

Avant-première :

PHP6Les nouvelles fonctions, ce qui change, migrer de PHP 5 à 6

Comparatif :

Quelle base de données, pour quels besoins ?

Les critères pour bien choisir - Une avalanche de nouveautés

Maîtriser la

plate-forme Mozilla

Conférence

MySQL :En attendant la v 6

SGBDXULMaîtriser la

plate-forme Mozilla

Construire un composant

"glisser-déposer"

1_98 21/

5/27 16

:14 Page

1

Programmez!

Prin

ted

in F

ranc

e -

Impr

imé

en F

ranc

e -

BELG

IQUE

6,4

5 €

- SU

ISSE

12

FS -

LUXE

MBO

URG

6,45

€-

Cana

da 8

,95

$ CA

N

DOM

Sur

f 6,9

0 €

- TOM

940

XPF

- M

AROC

50

DH

Programmez!www.programmez.com

3:HIKONB=^UZ^Z]:?k@a@t@g@a;

M

4319

- 96

- F:

5,9

5 E

Mensuel - Avril 2007 - N°96LE MAGAZINE DU DÉVELOPPEMENT

TECHNIQUE

Débugger en Python

C++• Le multithread

avec boost

• Construire un projet

avec SCons

SÉCURITÉ

Comprendre et utiliser

la cryptographie

à courbe elliptique

VISTACréer vos gadgets

C# 3.0Tout savoir sur

le prochain C#

Java :Découvrez

Eclipse Callisto

14 outils de modélisation

pour bases de données

Nouveaux outils

WEB 2.0

Tous les projets dévoilés : Web 3, Singularity,

l’OS de demain selon Microsoft, Web OS, exokernel,

clavier virtuel, encre numérique, ordinateur quantique,

Service Modeling Language, L5G…

Virtualisation

COMPARATIF : 6 logiciels au service du développeur

Spécial

FUTURFUTUR

UML 2Panorama

1_96 19/

3/27 2

:11 Page

1

2,73€le numéro

2 3Vous devez justifier de votre statut d’étudiant

Economisez 26 €

11 Numéros

3399€€Au lieu de 65,45 €

(Prix au numéro)

(offre réservée France métropolitaine)

TECHNIQUE

Pourquoi utiliser AspectJ

et la programmation aspect ?

Web Toolkit

Programmez!

Prin

ted

in F

ranc

e -

Impr

imé

en F

ranc

e -

BELG

IQUE

6,4

5 €

- SU

ISSE

12

FS -

LUXE

MBO

URG

6,45

€-

Cana

da 8

,95

$ CA

N

DOM

Sur

f 6,9

0 €

- TOM

940

XPF

- M

AROC

50

DH

Programmez!www.programmez.com

3:HIKONB=^UZ^Z]:?a@a@t@i@k;

M

4319

- 98

- F:

5,9

5 E

Mensuel - Juin 2007 - N°98LE MAGAZINE DU DÉVELOPPEMENT

WEB 2Combiner Ajax et Java

avec Telosys

OUTILSL'intégration continue

avec CruiseControl

JAVAL'usine à développement Spring

PYTHON Django :

le framework web à tout faire

C++Créez vos interfaces Gnome

SGBDXUL

Avant-première :

PHP6Les nouvelles fonctions, ce qui change, migrer de PHP 5 à 6

Comparatif :

Quelle base de données, pour quels besoins ?

Les critères pour bien choisir - Une avalanche de nouveautés

Maîtriser la

plate-forme Mozilla

Conférence

MySQL :En attendant la v 6

SGBDXULMaîtriser la

plate-forme Mozilla

Construire un composant

"glisser-déposer"

1_98 21/

5/27 16

:14 Page

1

Programmez!

Prin

ted

in F

ranc

e -

Impr

imé

en F

ranc

e -

BELG

IQUE

6,4

5 €

- SU

ISSE

12

FS -

LUXE

MBO

URG

6,45

€-

Cana

da 8

,95

$ CA

N

DOM

Sur

f 6,9

0 €

- TOM

940

XPF

- M

AROC

50

DH

Programmez!www.programmez.com

3:HIKONB=^UZ^Z]:?k@a@t@g@a;

M

4319

- 96

- F:

5,9

5 E

Mensuel - Avril 2007 - N°96LE MAGAZINE DU DÉVELOPPEMENT

TECHNIQUE

Débugger en Python

C++• Le multithread

avec boost

• Construire un projet

avec SCons

SÉCURITÉ

Comprendre et utiliser

la cryptographie

à courbe elliptique

VISTACréer vos gadgets

C# 3.0Tout savoir sur

le prochain C#

Java :Découvrez

Eclipse Callisto

14 outils de modélisation

pour bases de données

Nouveaux outils

WEB 2.0

Tous les projets dévoilés : Web 3, Singularity,

l’OS de demain selon Microsoft, Web OS, exokernel,

clavier virtuel, encre numérique, ordinateur quantique,

Service Modeling Language, L5G…

Virtualisation

COMPARATIF : 6 logiciels au service du développeur

Spécial

FUTURFUTUR

UML 2Panorama

1_96 19/

3/27 2

:11 Page

1

-40%

3 ETUDIANTNUMERIQUE

■■ M. ■■ Mme ■■ Mlle Entreprise : ........................................................................................ Fonction : ...................................................

Nom : ........................................................................................ Prénom :....................................................................................................................................

Adresse : .........................................................................................................................................................................................................................................

Code postal : ............................................... Ville : ...................................................................................................................................................................

Tél : ........................................................................................ E-mail : ....................................................................................................................................

■■ Je joins mon règlement par chèque à l’ordre de Programmez ! ■■ Je souhaite régler à réception de facture

A remplir et retourner sous enveloppe affranchie à :Programmez ! - Service Abonnements - 22 rue René Boulanger - 75010 [email protected]

Programmez!Programmez!LE MAGAZINE DU DÉVELOPPEMENT

■■ ABONNEMENT 1 an ECO au prix de 45 € TTC. Tarif France métropolitaine. Tarifs hors France métropolitaine : CEE et Suisse : 51,83 € - Algérie, Maroc, Tunisie : 55,95 € - Canada : 64,33 € - Tom : 79,61 € - Dom : 62,84 € - Autres : nous consulter

■■ ABONNEMENT 1 an ETUDIANT (11 numéros) au prix de 39 € TTC. Offre limitée à la France métropolitaine.

Photocopie de la carte d’étudiant obligatoire

95-100 22/08/2007 19:37 Page 53

Page 96: programmez100.pdf

CodeLe rendu final donne donc :

ConclusionNous avons donc, tout au long de cet article, découvert certaines fonc-tionnalités de Nova et notamment, son interaction avec .NET et Win-dows Form. De très nombreuses options sont disponibles en particulierau niveau des textures, des formats de scènes, des interactions et descollisions. Dans un futur article, nous nous pencherons sur le charge-ment de scènes plus riches et sur les visites virtuelles à l’aide dumoteur de collisions. Une nouvelle version est prévue courant sep-tembre.

Liens utiles - Téléchargement de Nova SDK : http://www.ver tice.fr/files/NovaOmega 5.8 SDK.msi (Version gratuite limitée à 5 minutes d’exécution)- DirectX : http://msdn.microsoft.com/directx

■ David CATUHEDirecteur R&D - [email protected] - Bewise/Vertice

LANGAGE : C#DIFFICULTÉ : •••••

APPLICATION : 3DSOURCE : oui

else if (e.Button == MouseButtons.Right){

NovaPickInfo pick = maScene.Pick(e.X, e.Y);

if (pick.Hit){boule.ApplyImpulse(new Vector3(0, 0, 25.0f), pick.ImpactPoint);}

}}

La force est appliquée sur la boule au niveau du point cliqué.

Gestion des ombresPour finaliser notre simulation et lui donner un aspect un peu plus réa-liste, nous allons demander à Nova de simuler des ombres portées entemps réel. Pour cela, on demande à NovaOmegaCore d’activer le sten-cil buffer (un buffer de travail nécessaire dans les cas des ombres por-tées) et les ombres :

// Activation du calcul des ombresNovaOmegaCore.Shadows = true;// Activation de l'utilisation du Stencil BufferNovaOmegaCore.UseStencil = true;

Notre lumière va être définie comme émettrice d’ombres :

lumiere.ShadowMethod = NovaLight.SupportedShadowMethods.ShadowVolumes;

Finalement, chaque objet qui enverra de l’ombre va s’enregistrer auprèsde la lumière :

quille.CastShadows = true;quille.ReceiveShadows = true;lumiere.ShadowGenerator.AddShadowCaster(quille);

L’INFORMATION PERMANENTE✔ Abonnez-vousau format NUMERIQUE (PDF)

Tarif unique pour LE MONDE ENTIER

30 €(abonnement exclusivement en ligne surwww.programmez.com)

COUPON D’ABONNEMENT page 95 de ce numéro ou www.programmez.com

✔ 3 NUMEROS GRATUITS Faites des économies, abonnez-vous ! Exemple : en France, vous gagnez 20 euros, soit plusde 3 numéros !

✔ ETUDIANTS Tarif abonnement spécial 39 €

(France métropolitaine exclusivement)

93-96 22/08/07 18:59 Page 96

Page 97: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200797

Code

Modifier le ruban de Word 2007 avec Open XMLOpen XML est un format flexible : structure basée sur l’Open PackagingConvention, intégration de données métiers, etc. ; la nouvelle interface de Office2007 l’est tout autant avec son nouveau mécanisme de ruban. Dans cet articlenous allons ajouter un composant personnalisé au ruban Office et celui-ci nesera pas fourni par l’application mais par le document au format Open XML.

La possibilité d’étendre le ruban de la suite Office s’appelleRibbonX (Ribbon Extensibility). RibbonX permet de définir et decomposer une interface pour le ruban à partir d’une description

au format XML, ce qui simplifie de beaucoup la création de composantpersonnalisé. Ce composant sera constitué d’un bouton et d’uneméthode permettant de gérer l’évènement du clic en ajoutant " Helloworld ! " dans le document en cours.

Création de l’interface avec RibbonXLa première étape pour pouvoir intégrer une interface est bien évidem-ment de la créer, et c’est ce que vous allez faire en créant un répertoirenommé guiPerso et un fichier XML portant un nom quelconque, parexemple guiPerso.xml pour le reste de l’article. Nous allons utiliser lecontenu du listing 1 pour définir l’interface :

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"><ribbon>

<tabs><tab id="OngletPerso" label="Mon Onglet">

<group id="GroupeExemple" label="Programmez!"><button id="btnDisBonjour" label="Dire Bonjour !" size="large" on

Action="ThisDocument.DireBonjourEnAnglais" /></group >

</tab></tabs>

</ribbon></customUI>

La signification de l’élément customUI est aisée à comprendre toutcomme celle de ribbon. Concernant la définition de l’interface nous pou-vons remarquer l’élément tabs qui contient l’ensemble des onglets défi-nis, avec à l’intérieur un élément tab pour chaque onglet. A l’intérieurd’un onglet nous allons trouver un groupe – élément group - qui ras-semble plusieurs contrôles, parmi lesquels notre bouton, défini parl’élément button, dont on spécifie le libellé et l’action qui sera exécutéelors d’un clic. Nous en avons terminé avec l’interface en elle-même,penchons nous maintenant sur le comportement du bouton.

Définir le comportement du boutonOuvrez Office Word 2007 et enregistrez le document vierge avec l’ex-tension .docm, extension qui autorise le document à intégrer et poten-tiellement à exécuter la ou les macros qu’il contient. Nous allons encréer une qui contiendra la fonction DireBonjourEnAnglais qui sera exé-cutée par notre bouton. Ouvrez l’éditeur Visual Basic situé dans l’onglet

Développeur, et activez si néces-saire (en fonction de vos optionsde sécurité) les macros dans votredocument, puis saisissez le listing2 dans ThisDocument :

' Insère "Hello world !" au début du documentSub DireBonjourEnAnglais(ByVal control As IRibbonControl)

Dim MonTexte As StringMonTexte = "Hello world !"Dim MyRange As ObjectSet MyRange = ActiveDocument.RangeMyRange.InsertBefore (MonTexte)

End Sub

Enregistrez et fermez le document.

Rassembler l’interface et le comportementMaintenant, nous avons d’un côté l’interface dans un fichier XML, lui-même contenu dans un répertoire ; et de l’autre le document contenantune macro spécifiant le comportement de notre interface. Afin de relierces deux parties, nous allons être amené à ouvrir l’archive et à modifierle contenu de plusieurs parties. Tout d’abord, renommez le documentavec l’extension .zip et ouvrez le document avec votre outil de gestiond’archive ZIP préféré. Ajoutez le répertoire créé dans la première partieet contenant le fichier de définition de l’interface de manière à ce que cerépertoire se retrouve à la racine de l’archive. Extrayez la partie de rela-tion partie, c'est-à-dire le fichier .rels contenu dans le répertoire _rels àla racine de l’archive. Ouvrez le fichier et insérez la ligne suivante :

<Relationship Id="rId5" Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility" Target="guiPerso/guiPerso.xml"/>

Replacez le fichier de relations modifié dans l’archive à son emplace-ment d’origine, puis renommez l’archive avec son extension d’origine :.docm. Ouvrez le document pour observer le résultat (activer les macrossi vos options de sécurité le désactivent par défaut) :

ConclusionLa structure d’un document Open XML est par nature flexible. L’intégra-tion d’une interface graphique et d’une logique derrière celle-ci, mêmelimitée, démontre bien la puissance du format et la volonté d’Open XMLd’aller un cran au-delà du simple document bureautique tel que l’étaientles anciens formats binaires.■ Julien Chable - Développeur/Consultant Wygwam

LANGAGE : XMLDIFFICULTÉ : •••••

APPLICATION : OFFICESOURCE : oui

97 22/08/07 18:50 Page 97

Page 98: programmez100.pdf

Programmez! - N°100 SEPTEMBRE 200798

Livres PAR FRANÇOIS TONIC

car le développeur demeure un acteur majeurde l’interface numérique.

L’orienté objet, 3e édition◗ Difficulté : ****◗ Editeur : Eyrolles◗ Auteur :

Hugues Bersini◗ Prix : 32 €

Si la programmation objet est un paradigme deprogrammation incontournable, sa bonne com-préhension conditionne l’ensemble de votrecode. Or, l’objet n’est pas une entité facile àmaîtriser et à bien mettre en œuvre. Outre l’explication classique, l’auteur propose uneapproche pédagogique à base d’exercices. De nombreux exemples sont donnés en C++,Java 5, Python, PHP 5, C# et UML 2. L’ouvrageaborde aussi divers autres domaines commela persistance, les design pattern. Seul regret :l’absence de la sécurité.

Collections Expert IT Editions Eni

- GNU/Linux Fedoraspécial sécurité (39 €) :la sécurité demeure unproblème pour toutadministrateur, utilisa-teur et développeur.Les auteurs se focali-sent sur la sécurité

(les attaques, les mesures à prendre, lesmécanismes à utiliser) sur la distribution Fedo-ra. Tous les grands domaines y passent : lesscanneurs, les ports, les intrusions, etc. Unebonne initiation.- Le registre Windows Vista (39 €) : commetout bon Windows qui se respecte, Vista pos-sède une base de registre. Le lecteur pourraainsi découvrir les joies et malheurs de la basede registre avec les nouveautés, les fonctionsavancées, les manipulations possibles, etc.Une par tie aborde Windows Scripting Host(mais pas de Powershell). Ensuite, on rejointl’utilisation avancée de Vista avec quelquestechniques de gestion et des applications àmaîtriser.

Le guide du codeur Micro Application- VBA pour Office 2007 (20 €) : non VBA n’estpas totalement mort avec Office 2007. Lesauteurs détaillent outil par outil les possibilitésde programmation avec VBA. De nombreux

SQL parl’exemple◗ Difficulté : ****◗ Editeur : O’Reilly◗ Auteur :

Anthony Molinaro◗ Prix : 48 €

La base de données est incontournable maissa maîtrise ne va pas de soi pour un dévelop-peur et encore moins les requêtes SQL ! Stan-dard depuis des années, il évolue lentement etest disponible dans les principaux SGBD dumarché. SQL n’a jamais été votre favori ? Celivre vous montre par l’exemple ce que l’onpeut faire avec et surtout comment bien lefaire. Les fonctions sont regroupées par thé-matique pour faciliter la recherche : lectured’enregistrement, tri, tables, chaînes, dates,etc. Le contenu est très concret. On débutepar l’exposé du problème puis la solution parle code. Avantage indéniable : la solution estfaite selon le SGBD, l’auteur prend en compteSQL Server, PostgreSQL, Oracle, MySQL etDB2 ! L’ouvrage ne prend pas en compte lesdéclinaisons spécifiques du SQL d’Oracle oude Microsoft. Convient quel que soit sonniveau ! Un livre indispensable.

Interfaces numériques◗ Difficulté : ***◗ Editeur : Lavoisier◗ Auteur : collectif◗ Prix : 55 €

Qu’est-ce qu’une inter-face numérique ? De quoi se compose-t-elle ? À quoi sert-elle ?L’originalité de cetouvrage est d’être le

résultat de longues heures de débats,d’échanges entre artistes, professeurs, desacteurs de l’industrie. L’approche se fait parles aspects sociaux, cognitifs, de l’informationou encore de la communication. On découvreque l’inter face n’est pas figée dans sonconcept mais évolue sans cesse et surtoutexplore de nouveaux domaines, et l’annoncede Microsoft Surface l’a démontré dernière-ment. Il est passionnant de comprendre lesdifférentes visions que peut avoir une interfa-ce, comment modifier l’interaction homme –machine et l’impact de l’interface sur cetterelation. Le développement n’est pas oublié

exemples permettent de mieux comprendre lecode et mettre en pratique plus rapidement.Pratique et plutôt complet. - PHP 5 solutions et composants open source(15,74 €) : loin de l’habituel apprentissage dePHP, ce guide se propose de vous montrer lapuissance du langage via des solutions etcomposants prêts à l’emploi ! Et le choix seporte sur la messagerie, les forums, le e-com-merce, l’intégration de services externes, l’in-tégration d’Ajax dans PHP, etc. Pratique avanttout, avec du code, des exemples et une expli-cation claire.

OpenOffice 2.1◗ Difficulté : ***◗ Editeur : Dunod◗ Auteur :

Rémy Lentzner◗ Prix : 29,50 €

Vous utilisez ou voulezutil iser OpenOf fice 2.1 ? Cet ouvrage va

sans doute vous aider à mieux connaître cettesuite bureautique. L’auteur y détaille lesmodules traditionnels, au niveau des fonc-tions, de l’utilisation : traitement de texte, pré-sentation, tableur, base de données. Pourl’utilisateur averti, il y aura les macros et laprogrammation basic et une présentation desAPI. La bonne idée est de présenter l’interac-tion possible entre une base de données etOpenOffice, dommage que la partie Java serésume à quelques lignes. Autre regret, l’ab-sence d’une partie spécifique à ODF ou encoreà l’interopérabilité avec les fichiers MicrosoftOffice et OpenXML.

Ruby on Rails vite et efficace◗ Difficulté : **◗ Editeur : Dunod◗ Auteur : collectif◗ Prix : 19,90 €

Vous voulez être rapi-dement opérationnelsur Rails ? Voici unebonne idée de lecture.On débute par la pré-

sentation de Ruby. Puis c’est au tour de l’Acti-ve Record, de l’échafaudage, des vues, d’Ajax.Ce livre est plutôt une grande introduction àRails et non une formation à la programmationRails, cependant, on bénéficie d’un guide deréférences, d’une liste d’outils.

98 22/08/07 18:48 Page 98

Page 99: programmez100.pdf

[email protected]

Vous avez des produits ou solutions innovantes BUSINESS INNOVATION est votre village, contactez-nous :

Vous donnent rendez-vous sur l’espace BUSINESS INNOVATIONdu 25 au 29 septembre 2007 sur le stand D035-D043

APPLE EXPO PARIS 2007, HALL 5PARIS EXPO, PORTE DE VERSAILLES

L’INNOVATION S’EXPOSE À APPLE EXPO

LEMKE SOFTWARE - 4D - AQUAFADAS - MARK/SPACE - EX-CINDER - SOFTWARE MACKIEV - POWERDATANEWARETECH - APPLICATION SYSTEMS PARIS - SOFT EXPANSION - TANDBERG DATA

COMPUTERS UNLIMITED - 8SENS - RESSOURCES SI - ATEMPO - APC - OPALE - OPENOFFICE...

BUSINESS INNOVATION

Couv 100 23/08/2007 17:04 Page 99

Page 100: programmez100.pdf

Couv 100 22/08/2007 17:15 Page 100