16128230-programmez119

Upload: debourou

Post on 15-Jul-2015

356 views

Category:

Documents


0 download

TRANSCRIPT

PROGRAMMEZ !

PROgrammez !www.programmez.commensuel n119 - mai 2009

Le magazine du dveloppement

Tout savoir sur

Eclipse 4.0 !

Silverlight 3.0 :Microsoft rvolutionne son web

CODER

pourle

istockphoto.com/Pgiam

FUNProgrammer pour le plaisir avec Wii Remote, Android, DeepZoom, Smallbasic, Skype, Yahoo !

Cloud ComputingVos applications sur le web ! Les diffrentes architectures du cloud Google App Engine la sauce Java Windows Azure, les services AmazonM 04319 - 119 - F: 5,95 E

Tmoignages

Faire carrire ltrangerServeurInstaller LAMP sans souci

WindowsPowerShell 2.0 : toutes les nouveauts

MthodeMatriser le Design Pattern Etat

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

Printed in France - Imprim en France - BELGIQUE 6,45 - SUISSE 12 FS - LUXEMBOURG 6,45 - DOM Surf 6,90 - Canada 8,95 $ CAN - TOM 940 XPF - MAROC 50 DH

Donnez votre avis sur ce numro : www.programmez.com/magazine_satisfaction.php

PRO grammez !Le magazine du dveloppement

numro 119 - mai 200912

sommaire\\

\\ actusLactualit en bref ..............................................................................8 Agenda ..............................................................................................8

\\ projetWindev : lentreprise avant tout ..........................................................11

22

\\ vnementsSolutions Linux : nuage, matriel et succs............................................12 Intel Software Conference ..................................................................13 Microsoft Mix 2009............................................................................14

\\ outilsDans les coulisses du projet Eclipse e4 ................................................16 Silverlight 3.0 : un cran au-dessus !......................................................22 27

\\ gros plan

Cloud Computing :Vos applications sur le web !Cloud Computing : plates-formes et fonctionnement................................27 Dveloppez en Java vos applications Google App Engine ..........................30 Manipuler les files de messages de Windows Azure Storage depuis Java ..33 Comprendre loffre et larchitecture Amazon Web Services......................37

\\ dossier : Coder pour le

FUN

41

Wiimote, XNA et C# ..........................................................................41 DeepZoom : un zoom infini pour le web ! ..............................................44 Dvelopper un dictaphone pour Android ................................................48 Un gadget Skype pour SideShow ..........................................................53 Raliser votre widget avec Yahoo ! Blueprint ..........................................58 Smallbasic : le langage de 7 77 ans ..................................................61

62

\\ carrireFaire carrire ltranger....................................................................62

\\ technologieVous ne reconnatrez plus votre C++ ....................................................64

\\ codeAjax et framework PHP ......................................................................66 Installer et utiliser Lamp / Wamp ........................................................68 Comprendre le Design Pattern Etat ......................................................70 Dcouvrir PowerShell 2 ......................................................................74

\\ temps libreEn direct des labos ! ..........................................................................79 Crer un jeu vido de A Z avec XNA (suite et fin) ................................80 Les livres du mois ..............................................................................82

En complment sur www.programmez.comCODELes sources des articles

NOUVEAULivres blancs : langages, outils...

TLCHARGEMENT QUOTIDIENECLIPSE e4 Tous les outils et leurs mises jour Actualit Forum Tutoriels, etc.

FAITES EVOLUER VOTRE CODE.Linnovation en dveloppement parallle.Analysez, compilez, dboguez, contrlez et optimisez votre code pour le multicore avec Intel Parallel Studio. Fait pour les applications srielles daujourdhui et les innovations parallles de demain.

Pr-commandez ds maintenant. Date de livraison le 26 mai.www.intel.com/software/parallelstudio

2009-2010, Intel Corporation. Tous droits rservs. Intel, le logo Intel, sont des marques dIntel Corporation, dposes ou enregistres aux tats-Unis et dans dautres pays.

PRO grammez !Le magazine du dveloppement

dito\\

Un ciel nuageuxSerions-nous retombs dans le cycle infernal de la bulle internet d'il y a 9 ans ? On dit souvent que l'Histoire ne se rpte jamais ou au contraire quelle n'est qu'un ternel recommencement... Avec notre fameux " nuage " informatique, qui n'est finalement qu'une autre utilisation des applications sur Internet, on redcouvre le Web fourre-tout et la profusion d'annonces autour du " cloud " pour rester tendance. Les esprits chagrins, ou les mauvais esprits, c'est selon l'humeur, diront " mais c'est simplement l'informatique la demande, et les applications en mode ASP d'il y a 10 ans ! ". Ce nest , ni totalement faux ni totalement vrai . Le " cloud " les remet au got du jour, et en y ajoutant une dimension indite ! Je paie lapplication et les ressources machines que j'utilise. Et surtout, je suis capable d'adapter en quelques secondes mon serveur " dans le nuage " au nombre d'utilisateurs connects mon application " nuage " ! Imaginez que vous ayiez un site web marchand qui connaisse priodiquement des pics d'activits; au lieu de payer des dizaines de serveurs sous-utiliss durant des mois, vous vous contentez de louer pour x heures les serveurs et les ressources ncessaires. Si pour l'utilisateur et l'administrateur, les avantages sont certains, cela reprsente pour l'diteur, une remise en cause et un changement profond de son modle conomique. Il doit passer de la vente de licences la location, mais il lui faudra plusieurs annes avant d'obtenir le mme chiffre d'affaires ! Par ailleurs sur la scurit, l'introprabilit entre les services, de nombreuses questions se posent car aujourd'hui de srieuses lacunes existent. Et les pannes successives sur Google, Windows Azure, Salesforces jettent le trouble sur la qualit de service et la disponibilit des services et des plates-formes. Les fournisseurs de nuage sont obligs de s'engager sur un taux de disponibilit. Mais que faire quand on agrge plusieurs services et qu'un prestataire tiers tombe, entranant le reste des services, qui, pourtant, est disponible ? Casse-tte en perspective sur les responsabilits. La solution ? Avoir deux ou trois prestataires de remplacement pour chaque service SaaS ! Et pour notre ami le dveloppeur, qu'est-ce que le Cloud change ? Il est peu concern pour le moment, car les technologies, les API, les plates-formes voluent rapidement et la mise en production s'avre dlicate sur des environnements non stables susceptibles de rendre obsolte un dveloppement. Cependant, ds aujourd'hui, le dveloppeur doit comprendre les enjeux, la philosophie du Cloud. Car si fondamentalement, le code ne change pas beaucoup d'un code classique sur sa machine, il doit tout de mme tre conscient des limites de certaines fonctions, acqurir de nouveaux rflexes de scurit, de modles de donnes, grer les modes connect-dconnect. Il lui faut composer avec les interfaces et une puissance machine sans rapport avec sa machine locale, repenser l'architecture, la structure de son application, de son code. Et surtout, il devra choisir la plate-forme Cloud computing et se limiter celle-ci, car chaque fournisseur diteur veut tirer la couverture soi... Aspirine non incluse. Franois Tonic

Rdaction : [email protected] Directeur de la Rdaction : Jean Kaminsky Rdacteur en Chef : Franois Tonic - [email protected] Ont collabor : F. Mazu, C. Remy, C. Soutou. Experts : G. Renard, B. Cab, G. Andr, G. Plouin, V. Bostoen, R. Kwon, L. Bar, C. Lomba, S. Mornas, D. Guignard, J. Chable, F. Queudret, C. Villeneuve, P. Guermonprez, J-Y. Terrien, F. Dupuis, R. Sabin Mompelat, F. Pedro, D. Cohen. Crdits photo : istockphoto.com/Pgiam Publicit : Rgie publicitaire, K-Now sarl Pour la publicit uniquement : Tl. : 01 41 77 16 03 - [email protected] Editeur : Go-02 sarl, 6 rue Bezout 75014 Paris - [email protected] Dpt lgal : parution - Commission paritaire : 0712K78366 ISSN : 1627-0908 Imprimeur : ETC - 76198 Yvetot Directeur de la publication : J-C VaudecraneAbonnement : Programmez 22, rue Ren Boulanger, 75472 Paris Cedex 10 - Tl. : 01 55 56 70 55 mail : [email protected] Fax : 01 40 03 97 79 - du lundi au jeudi de 9h30 12h30 et de 13h30 17h00, le vendredi de 9h00 12h00 et de 14h00 16h30. Tarifs abonnement (magazine seul) : 1 an - 11 numros France mtropolitaine : 49 - Etudiant : 39 - CEE et Suisse : 55,82 - Algrie, Maroc, Tunisie : 59,89 - Canada : 68,36 - Tom : 83,65 Dom : 66,82 - Autres pays : nous consulter. PDF : 30 (Monde Entier) souscription exclusivement sur www.programmez.com

LINFO PERMANENTEWWW.PROGRAMMEZ.COM

PROCHAIN NUMRON120 juin 2009, parution 31 mai

XP, les mthodespour mieux dvelopperLes mthodes agiles sont l pour mieux matriser un projet, un dveloppement.

Web 2.0

Silverlight 3.0 : tout ce qui va changer pour le dveloppeur et votre site web !

Multi-plate-formeCompiler pour plusieurs systmes, les langages utiliser, les outils dployer

actu \\ en bref Le SDK Android passe en version 1.5, ou presque. Pour le moment disponible en pr-version, ce SDK apporte de nombreuses nouveauts : amlioration des lments dinterface, rotation des applications, performances en hausse pour le GPS, Gmail, la camra. Le moteur webkit est lui aussi mis jour. Surtout, on dispose de nouvelles API (media Framework, fonctions vocales). Attention : le SDK prcdent ne fonctionne pas avec le nouveau plug-in. Site : http://developer.android.com/sdk/preview/ Vous rvez dutiliser CheckStyle avec vos codes C# ? Cest dsormais possible avec StyleCop. Son objectif : analyser le code C# et sortir un rapport des violations. Il permet de faciliter la correction des principales failles. Excellente initiative. Site : http://www.codeplex.com/StyleFix Netbeans travaille toujours sur la future version 6.7 devant sortir en juin prochain. Les grandes nouveauts sont lintgration de Maven et de Kenai, (sorte de forge pour y dposer des projets open source). Java 7 avance toujours. Une des nouveauts sera lintgration du Coin Project. Ce projet doit faciliter ce que lon appelle en anglais " Small language changes ". Cela doit par exemple permettre des appels aux constructeurs plus concis avec des paramtres, avoir des call avec des mthodes aux noms " exotiques ", notamment en utilisant des langages non Java. Coverity lance Coverity Build Analysis. Cette technologie innovante de Coverity veut donner aux entreprises les moyens de lutter efficacement contre le gaspillage de temps et dargent occasionn par les systmes de compilation sousperformants, lors des phases de dveloppement. QT Creator, le nouvel IDE graphique de Qt Software, est disponible depuis quelques semaines. Il propose un diteur avanc pour son code C++, des outils de gestion de projets et de build et possde bien entendu un puissant constructeur graphique dinterface. A tester durgence ! Site : http://www.qtsoftware.com/products/developer-tools

Langageukihiro "Matz" Matsumoto, crateur de Ruby, tait de passage Paris lors du salon Solutions Linux. Nous avons eu le plaisir de le rencontrer quelques minutes. " Jai dmarr le projet il y a 16 ans, en 1993. Ctait mon projet, mon langage, en Open Source. En 1995, avec la premire version, la communaut commena sagrandir avec les gens sy intressant en Europe, aux Etats Unis. " raconte Matz. Mais durant les premires annes comme il lvoque, la communaut fut surprise et essentiellement centre au Japon et les premires mailinglists internationales se dvelopprent dans un 2e temps en Anglais. " A partir de l, la popularit commena crotre " poursuit notre crateur. " Jai design le langage selon mes rflexions, mes convictions. Ruby est fait pour tre facilement utilisable. Cest je pense la raison de son succs. Mais il est (aussi) trs riche. Et redonne envie de programmer. Cest important je trouve ",

Le crateur de Ruby surpris par son succs ! Y

F.T.

commente Yukihiro. Quant limplmentation de Ruby sur les machines virtuelles comme Java ou .Net, le crateur rappelle quil sagit de son bb et quil y a deux lments considrer : le design et limplmentation. Mme si cela est une bonne chose, " dans le futur, il sera plus rapide. Et ce sera mon Ruby (qui sera implment) " rajoute Matz. Car un des problmes actuels est que limplmentation nest pas celle du langage " standard " mais dune version modifie et souvent incomplte. " Je communique avec les projets JRuby et IronRuby mais

je ne travaille pas avec eux. Je fixe, par exemple, les bugs ", poursuit Yukihiro. Aujourdhui, si Yukihiro reste le penseur de Ruby, plus de 50 comitters de la communaut travaillent faire voluer et dvelopper Ruby. Sur les outils, la situation est bonne. " Ruby est utilis par de nombreux dveloppeurs que ce soit sur Eclipse ou NetBeans qui lintgre par dfaut. Il faut avoir de meilleurs tests, de meilleurs profiling, etc. " commente Yukihiro. A noter la disponibilit de Ruby 1.9.1 qui fixe plusieurs bugs.

agenda \\MAI Les 12 et 13 mai 2009, CNIT Paris La Dfense : - Virtual forum (13 mai), pour tout savoir virtualiser www.virtualforum.fr - Solutions intranet travail collaboratif (12 et 13 mai), www.salon-intranet.com - Solutions IT On Demand (12 mai) tous les logiciels et services applicatifs en ligne la demande. - Management de projet www.groupesolutions.fr Les 16 et 17 mai, Paris La Villette, Ubuntu Party. Loccasion de tester la distribution, de rencontrer la communaut, de mieux connatre Ubuntu. Des confrences et ateliers se succderont les deux jours. Entre gratuite. www.ubuntu-party.org Le tour dcouverte Flex 3 et Air travers la France. Ateliers gratuits de dcouverte des outils Adobe http://www.baao.com/Formations/LE_TOUR_DE_F LEX_ET_AIR_.html

Le 26 Mai, Toulouse, premire dition de l"Open Source Software Industry Forum " (OSSIF), pour crer une rencontre annuelle entre les professionnels du logiciel libre et les grands comptes industriels locaux. http://www.ossi-forum.com/ Les 25 et 26 Mai 2009, Paris 12e, Chalet de la Porte Jaune. Edition 2009 de la confrence XP Day France, pour tout savoir sur les mthodes agiles. (www.xpday.fr).

ETRANGER JUIN Cambridge (Grande-Bretagne), du 16 au 18 juin Confrence Code Generation 2009 Lvnement phare europen sur les approches de gnration de code. Plus de 30 sessions pratiques prsentes par des experts de l'industrie http://www.codegeneration.net/cg2009/

8

PROgrammez ! \\ Mai 2009

actu \\ en bref Intel renforce sa prsence dans le projet du compilateur GCC. Plusieurs collaborateurs du fondeur vont participer aux dveloppements, lamlioration des fonctions de GCC, binutils, gdb et glibc. Une bonne nouvelle ! HP a surpris son monde en dvoilant un outil gratuit pour surveiller et scanner les applications Flash : SWFScan. Issu du laboratoire scurit, cet outil dcompile les applications et extrait le code ActionScript afin de vrifier les failles potentielles (60 failles contrles). Site : http://www.hp.com/go/swfscan SQL Server 2008 est mis jour en service pack 1. Deux nouveauts retenir : lintgration du pack dans linstalleur du SGBD, la version 2 du Report Builder destine la BI et au reporting. Pas de nouvelle fonction intgre. Le SP2 pour MS Office 2007 devrait tre disponible quand vous lirez ces lignes. En attendant la sortie de Java 7, le projet Jigsaw a t lanc dans le cadre de la JDK pour le rendre plus modulaire, plus souple. La premire tape concernera Java 7 qui devrait arriver dbut 2010. Lobjectif est de crer un systme de modules bas niveau, ddi spcifiquement la JDK et accessible aux dveloppeurs et Sun le supportera totalement. Il se veut complmentaire aux JSR 277, 294 et mme OSGi. Pour en savoir plus : http://blogs.sun.com/mr/entry/jigsaw Vous devez rdiger une documentation, un rapport technique ? Calenco peut vous aider. Il permet un usage collaboratif, une gnration multi format. Calenco se prsente sous forme dune application web, et un stockage au format XML des donnes.

Composant

Infragistics fait le printempsLditeur vient de sortir la version 2009.1 de sa suite NetAdvantage pour .Net. Pour cette dition, Infragistics a voulu miser sur les performances et la qualit gnrale des composants, tout en rajoutant de nouveaux composants. Rappelons que cette suite inclut ASP .Net, WPF et Windows Form. Le petit nouveau est Silverlight qui arrive en version technique (CTP) et est dj prt tre utilis avec Silverlight 3 ! Auparavant, lditeur avait mis jour sa suite NetAdvantage pour JSF qui introduit trois nouveauts : un modle objet client (dans le navigateur), vitant daller sur le serveur, un webgrid amlior (comme le support du CSV) et une fonction Icon pour faciliter le changement des tats des icnes.

Outil

Les outils de provenance du code source : un rel enjeu ?Avec la multiplication des licences, des briques open source, des codes sources extrieurs, il devient ncessaire de faire attention lorigine du code utilis afin dviter toute violation de proprit intellectuelle et en particulier un code mal identifi, des violations de licences ou mme un conflit inter licences. Ces outils visent soit vrifier la vole soit a posteriori le code : provenance (origine), licence utilise, dtecter des violations. Ils sappuient sur dimmenses bases de donnes rpertoriant des centaines de millions de lignes de code open source. On peut aussi y dfinir ses propres politiques de vrification. Pour une entreprise, ces outils peuvent viter bien des problmes comme on a pu le voir avec Cisco ou Free. HP propose deux solutions : FossBazaar et Fossology. Ce dernier vise la dcouverte du code, des licences. Surtout, loutil est disponible en open source ! Black Duck est aujourdhui lditeur le plus connu sur ce march, certes petit, mais destin un bel avenir. Notons enfin la prsence de Protecode. Originaire du Canada, il est depuis peu prsent en France. Une version dveloppeur est disponible : Developer IP Assistant. Elle supporte Java, javascript, C, C++, C#, VB, PHP Python. Il sintgre en , toute discrtion dans le dveloppement pour vrifier les ajouts de codes, les licences, etc.

Web

Ilog Elixir passe la 2eAprs plusieurs mois de dveloppement, la suite de composants graphiques pour Flex / Air dAdobe est enfin disponible en version 2. Plus que jamais, Elixir renforce sa partie prsentation et visuelle avec des effets amliors et des composants graphs bien plus labors. On peut ainsi concevoir des graphs dynamiques trs complexes, de la cartographie ou encore des calendriers. Les dveloppeurs ont beaucoup travaill sur loptimisation mais aussi sur la documentation qui tait parfois incomplte ou pas assez prcise. Ce nest pas pour autant quIlog oublie la v1 (supprime du catalogue) en fixant des bugs avec un second patch. Site : http://www.ilog.com/products/ilogelixir/

10

PROgrammez ! \\ Mai 2009

Windev : lentreprise avant toutans le prcdent numro, nous avions fait un focus sur cet atelier de dveloppement tout-en-un. Cest aussi un des succs logiciels franais les plus connus. Contrairement une ide reue, Windev nest pas que franco-franais. " Notre march est europen. Nous sommes prsents dans 60 pays dont les Etats-Unis, lAustralie ", prcise Virgil Saramito (directeur des ventes, PC Soft). Et les utilisateurs sont trs divers, mme si lentreprise est la cible principale, du grand compte la PME / TPE, sans oublier les dveloppeurs indpendants et les consultants, et les dveloppements sont majoritairement des applications de gestion.

Alter Way, intgrateur Open Source de rfrence, couvre les besoins de lensemble du systme dinformation avec ses quatre offres

CONSULTINGConseil en architecture Choix doutils Industrialisation Best practices Audits

D

SOLUTIONSSOLUTIONS APPLICATIVES Applications Web, ECM, E-commerce, Intgration de donnes, Business intelligence, Dveloppements spcifiques SOLUTIONS DINFRASTRUCTURE Supervision, Serveur de messagerie, Serveurs dinfrastructure, Bases de donnes, Management IP, Filtrage et partage des connexions Internet, Scurit

Des SSII spcialises en WindevArmstrong Solutions, SSII ralisant des logiciels sur mesure pour les entreprises et administrations, utilise depuis de nombreuses annes Windev qui est le principal environnement mis en uvre par les quipes. La socit est une SSII spcialise en Windev ; elles sont encore peu nombreuses en France. Mme si comme nous lindiquaient Franck Palusci et Bruno Richet, les grands comptes peuvent hsiter choisir Windev, cause du " politiquement correct ", et parce que loutil nest pas rfrenc par les DSI.

FORMATIONUn catalogue de plus de 60 formations Des programmes de certifications : PHP, MySQL, PostgreSQL, Java 1200 personnes formes par an Prs dune centaine dintervenants sur tous les sujets dont quinze internes certifis Des partenariats forts : SUN, MySql, Talend, Ingres

LouvertureMais comme le rappelle V. Saramito, Windev ne se limite pas cela, loutil est prsent dans lindustrie, notamment pour la ralisation des interfaces hommesmachines. Il offre galement des fonctions bas niveau, pratiques pour se connecter et piloter des matriels embarqus, rcuprer des donnes de capteurs, etc. Et lajout de Java et dun plug-in Eclipse apporte de nouvelles dimensions loutil. Quelle est la force de Windev ? " Nous avons un planning 5 ans. Nous nous adaptons aux demandes, au march " prcise V. Saramito. PC Soft sait ragir en intgrant rapidement des technologies qui simposent ou trs demandes par les utilisateurs. La ractivit est un lment important. Le web 2 est trs prsent, la version 14 renforce cela, avec Google, Java, Ajax, Salesforce ou encore les fonctions de mashup.

HOSTINGHbergement haute disponibilit 24/7 Exploitation et infogrance Solutions SaaS Solutions de stockage Solutions de-commerce Des solutions techniques performantes et stables

Des solutions tout faireMais les rsultats ravissent les responsables. La SSII voit dans un langage de programmation en franais, un atout (cest plus comprhensible, mme pour un non dveloppeur). Et la disponibilit de WebDev -ddi aux dveloppements web- fait aussi ses preuves. Ainsi, Armstrong Solutions a conu, entre autres, le site de Speedy Et la SSII aligne plusieurs dizaines de rfrences, en particulier dans les grandes entreprises. Jean Vidames

TECHNOLOGIESPHP / Python / Java / ECM JasperSoft / Talend / Bases de donnes Open-Xchange

www.alterway.fr

OPEN SOURCELe libre, autrement

vnements \\ linux

Solutions Linux : nuage, matriel et succsIncontestablement, ldition 2009 de Solutions Linux a remport un beau succs : plus de 8000 visiteurs, plus dune centaine dexposants, des dizaines dassociations, communauts, un public constitu pour plus dun tiers de professionnels et en particulier de TPE / PME. Rendez-vous est dj donn fin mars 2010 la Porte de Versailles.

P

lusieurs tendances taient perceptibles durant le salon : une prsence discrte des logiciels par rapport aux annes prcdentes, le retour en force du matriel (en particulier les serveurs), des intgrateurs et SSII open source toujours aussi prsents, et enfin, la monte en puissance dUbuntu et du cloud computing. Le cloud a t une des vedettes de cette dition 2009, notamment dans les keynotes et les confrences. Ubuntu avait un discours trs prcis sur le sujet avec la prsentation de la future version 8.10 de la mouture serveur de la distribution. Ubuntu profitait de labsence de Red Hat pour se montrer. Pari russi. Lambition dUbuntu ? Proposer une alternative Windows Server, Libre et Open Source que les fournisseurs de Cloud pourraient utiliser. Lobjectif de lditeur nest pas de proposer sa propre plate-forme La prsence dUbuntu via Amazon Web Services illustre cela. Outre labsence de Red Hat, on notait la discrtion

D.R.

dIBM mais par contre un certain dynamisme de Sun avec MySQL et les serveurs

Plus de communaut moins de logicielsLa partie association fut elle aussi active, notamment contre la loi Hadopi, mais surtout grce une prsence plus importante quen 2008. Et cest une bonne nouvelle ! Lesprit communautaire prouve quil demeure vivace et bien l ! Le reste du salon tait tout de mme assez orient professionnels, entreprises, peu grand public, hormis dans les communauts. Laudience du salon prouve son orientation entreprise. Et la forte prsence des serveurs et hbergeurs dmontre cette tendance. Les acteurs souhaitent profiter de la crise et de lintrt nouveau des entreprises envers lOpen Source. Autre bonne nouvelle : le renouveau marqu du consortium OW2 que lon sentait un peu terne depuis quelques mois. Le salon fut ainsi loccasion dorganiser une grande confrence et de prsenter Elastic Grid. Ce projet est une couche de provisionning ddie au cloud et rentrant au niveau de l'infrastructure IAAS. Il vise parfaitement contrler, surveiller ce qui se passe dans son

cloud, dans les applications, les serveurs. Bien plus fin que la console EC2, Elastic Grid pourrait tre repris dans le prochain Ubuntu Server orient cloud.

Et les dveloppeurs ?Si les logiciels furent discrets (hormis les classiques openOffice, la messagerie qui se pose en alternative Exchange), le dveloppeur ntait pas non plus la fte. Peu de choses spcifiques dans les alles. Novell dvoilait le trs attendu SuSe Studio, un outil en ligne pour configurer et gnrer une distribution SuSe ! La partie dveloppeur la plus intressante tait sans aucun doute dans les communauts et en particulier autour de Ruby, PHP Quelques diteurs taient . tout de mme prsents comme Xool Technologies. Xool est une SSII franaise spcialise dans les logiciels industriels et en particulier sur les outils de tests. Le salon fut aussi loccasion de croiser Tristan Nitot de Mozilla Europe et de parler du futur de Mozilla et tout particulirement de Firefox 3.5 et mme 4.0, ou encore de rencontrer pour quelques heures peine le crateur de Ruby ou le nouveau patron de Zend F.T.

Quelques annonces retenirlinutop : un PC 100 % open source, de dimensions rduites le but ? rduire le cot de maintenance. Disponible en deux versions il est idal pour les coles, les petites structures. Globull de Bull : un projet innovant de Bull ! On peut y stocker son environnement de travail sur ce botier hautement scuris. Peut tre un peu cher pour le particulier mais pour crypter et scuriser des donnes, cest lidal ! Azuki : enfin quelque chose pour le dveloppeur. Azuki propose une plate-forme complte de dveloppement et notamment un toolkit RIA, le tout reposant sur un socle open source, dont lincontournable Spring. Accord de formation entre Anaska et Sun : Anaska dj fortement prsent dans les formations MySQL, la socit (groupe Alter Way) va proposer lensemble de la gamme Sun (Glassfish, JavaFX, etc.).

12

PROgrammez ! \\ Mai 2009

confrence \\ intel

Intel est connu pour ses processeurs mais un peu moins pour ses logiciels destins aux dveloppeurs C++ et Fortran permettant de profiler, doptimiser son code. Comme chaque anne, le fondeur organise une confrence logicielle en Europe. Cette anne, elle sest droule Salzbourg en Autriche, centre exclusivement sur le code parallle.lus dune centaine de personnes furent rassembles au cur de la vieille ville de Salzbourg : des revendeurs Intel, des partenaires, des journalistes et des dveloppeurs. Les sessions ont prsent Parallel Studio, la bote outils pour le code parallle dIntel qui sera disponible en juin prochain. Et le dfi est la hauteur de lenjeu : selon une statistique fournie par Microsoft, peine 3 % des dveloppeurs ont mis en uvre ces 6 derniers mois des instructions parallles dans leur code ! Intel a rappel le challenge : avec la gnralisation des processeurs multiples curs (mme si la majorit des ordinateurs utiliss sont en monocoeur), comment tirer parti de cette puissance ? La seule solution est dadapter son code, de loptimiser pour quil fonctionne paralllement sur plusieurs curs. Or ce travail reste dlicat et complexe. Cest pour cela que dans toutes les sessions techniques, le message de lintgration et de la simplicit a t martel.

P

montrer comment ce plugin pour lIDE de Microsoft aide le dveloppeur, facilite la paralllisation du code, le debug, le profiling. Cependant Intel demeure raliste : Parallel Studio nest pas une solution miracle. Au dveloppeur de faire, aussi, son travail de codeur : il faut utiliser les bons outils, savoir comment on paralllise son code et encore plus les zones de code parallliser (car on ne paralllise pas tout son code). Et il faut savoir mettre en place un cycle de dveloppement parallle : on " designe " le code, on code, on dbogue, on vrifie et on " tune ". Car noubliez pas un lment vital : un mauvais code paralllis sexcutera lentement. Un code optimis aux bons endroits sera particulirement efficace.

Le futur selon Intel SoftwareLa journe sest conclue avec lintervention de James Reinders, vangliste et directeur des logiciels de dveloppements qui a prsent quelques nouveauts venir. Les outils tels que vTune vont bnficier des fonctions de Parallel Studio dans les versions sortant courant 2010. Toujours pour lanne prochaine, Intel promet la disponibilit de Parallel Studio Advisor, du support de Windows 7, de Visual Studio 2010 (et du concurrency runtime qui nest pas actuellement pris en compte). Mais lun des aspects les plus importants de cette session finale fut le projet Ct Technology que James range dans la catgorie " program-

Aider le dveloppeur" Go Parallel " voil pour le slogan. La question est de savoir comment y aller. Intel a rappel quil existe deux gammes : la gamme actuelle avec le compilateur, le Thread Building Blocks, etc. et Parallel Studio. Ce dernier vise uniquement les dveloppeurs C++ sous Windows alors que les autres outils sont disponibles sur diffrents langages et pour diffrents systmes. Lintgration avec Visual Studio a t largement mise en avant par les diffrentes sessions. Objectif :

mation parallle avance ". Ct permet de faire de la programmation parallle de donnes, un axe doptimisation particulirement important pour Intel. Une bta publique sera disponible vers la fin de lanne. Il sagit dobtenir un haut niveau dabstraction, capable de monte en charge tout en offrant des performances leves. Le tout sans recompiler son code, et les outils maison (et de partenaires ?) supporteront cette technologie. Au final, une des rflexions de James mais aussi de Microsoft durant la journe fut : " faut-il un langage parallle, de nouveaux outils, de nouvelles librairies ? ". Sur le langage spcifique au monde parallle, James Reinders trouve lide intressante mais pose tout de suite la question sur le code actuel, sa migration. Ce serait un vritable Big Bang affirme-t-il. La question est loin dtre tranche mme si le but dIntel est daider le dveloppeur concevoir parallle. Mais alors pourquoi Parallel Studio nest-il pas disponible sur dautres systmes et IDE que Windows et Visual Studio ? L encore, James a t clair : Intel nest pas oppos une arrive sur Linux, mais quels IDE supporter ? Pourquoi pas Eclipse ? Un constat revenait souvent dans la bouche des participants : vanglisation, pdagogie, formation. Le dveloppement parallle exige une rigueur, une matrise du code mais aussi des librairies, des fonctions, et ce, mme si les diteurs simplifient lapproche. Franois Tonic

Mai 2009 \\ PROgrammez !

13

Photo : Thomas Pintaric (Pintaric)

Intel mise plus que jamais sur la paralllisation du code

vnements \\ web

Microsoft Mix 2009 : la grand messedu web et du Cloud computing !Pour la quatrime anne conscutive, Microsoft organisait le Mix Las Vegas du 18 au 20 mars dernier. Cet vnement ddi aux graphistes, intgrateurs et dveloppeurs web tait cette anne orient sur le thme de linnovation par lusage et le design ! Et les annonces ont t la hauteur de nos attentes.

C

ette dition 2009 prenait une tournure par ticulire avec la crise conomique actuelle. Premier constat : nous nous attendions une audience moindre par rapport lan dernier, que nenni : trs forte participation ! Beaucoup semblaient chercher un souffle dinnovation et de rupture avec la crise actuelle ! La mentalit positive et constructive, typiquement amricaine, tait bien au rendez-vous ! fonctions de diagnostic CSS et surtout le SuperPreview. Il permet de tester directement son application web, son site, le rendu, le comportement, sur diffrents navigateurs via le module SuperPreview. Occasion aussi de rappeler lexistence dASP.Net MVC. Il sagit dun nouvel lment coll ASP .net avec une approche purement MVC. Ct ASP .Net, la v4 a t prsente. Elle comprendra : les web forms, une approche MVC, Ajax, JQuery, un cache distribu. Autre bonne nouvelle, Visual Studio 2010 for Web Development se complte avec une orientation code renforce, le support amlior de JavaScript, Ajax et JQuery ou encore des fonctions de publication et dploiement. Notons aussi les annonces suivantes : Web Server Extensions, Windows Web App Gallery (la boutique dapplication Microsoft) et enfin, et peut tre le plus important : Web Platform Installer. Microsoft vous permettra au travers de cet outil de rcuprer directement depuis votre propre plate-forme des applications web quelles soient en ASP .NET ou en PHP par exemple, et de les publier (dployer) directement sur votre serveur (app + db), voire sur un serveur on the cloud. Des annonces, encore des annonces avec la mise disposition de Commerce Server 2009.

Silverlight 3, ASP.Net 4, Expression 3Mix dbuta avec une premire keynote tenue par Bill Buxton (Microsoft Research), durant de longues minutes il a rappel limportance du design et de lexprience utilisateur versus design / produits. Le tout appuy sur un rapide historique. Microsoft semble vouloir continuer pousser lexprience utilisateur avant les technologies. Une bonne chose ! Aujourdhui, 800 personnes travaillent sur le sujet. Cette exprience utilisateur passe forcment par une analyse approfondie de deux notions : Linvestissement, depuis lide jusque la capacit de lexploiter Le temps entre le brouillon et le prototype Lintervention de Scott Guthrie tait trs attendue. Scott rappela tout dabord la vision de Microsoft sur le web : media, RIA, outils, la collaboration designer dveloppeur. Et nous fmes tout de suite immergs avec la prsentation dExpression 3.0 ! Tout dabord, un important focus sur lIDE de dveloppement web : Expression Web. Il pourrait se rsumer ainsi : utilisation des standards web, multi-langage, suppor t du ftp scuris,

Windows AzureCt cloud computing, Microsoft a prcis de nombreux lments par rapport Azure. Ainsi nous savons dsormais que la plate-forme sera commercialise ds 2009 avec une pr-version au plus tard en octobre prochain. Sur la technologie, on disposera dsormais dun support PHP via fastCGI et surtout dun niveau de scurit plus flexible via le .Net full trust. Sur les services, on notera lapparition des bases de donnes relationnelles sur le SQL Data Services et encore plus de standards web sur le .Net Services. Scott termina enfin sur la partie BizSpark et expliqua nouveau les fondements de ce programme Microsoft ! BizSpark tant lextension lchelle mondiale du trs clbre programme, dorigine Franaise, daccompagnement des start-up par Microsoft. Enfin noublions pas une annonce importante autour dAzure : la golocalisation. Les dveloppeurs pourront spcifier la localisation des applications et des donnes afin damliorer la latence rseau. A condition daccder un Datacenter plus proche pour

14

PROgrammez ! \\ Mai 2009

vnements \\ webson application Nous devrions en apprendre davantage lautomne, avec la prochaine PDC ! ResourceBrowser. Revenons un peu en arrire, en octobre 2008 durant la PDC 2008. Lors de cet vnement, Microsoft effectuait le lancement de la plate-forme Azure Services et plus particulirement sur la brique Live Services du Live Framework CTP comprenant un outil de navigation (une forme de Reflector pour le Cloud //Live Services) : le Live Framework Resource Model Browser. Ayant dcid de pousser nos investigations dans le domaine du S+S Azure Services Platform ds mon retour de Los Angeles, nous avons trs vite dcouvert les limites de cet outil (bien que trs intressant la base, mais prsentant certaines difficults lors de la navigation au sein des donnes stockes dans Live Mesh principalement dans sa convivialit lusage). Suite cela, nous avons dcid de dvelopper, avec Sebastien Warin, un outil visuel permettant de naviguer au sein du Resource Model du LiveFx. Nous avons abouti rapidement sur une premire version baptise Mesh Object Browser (MOB) pour enfin voluer vers le Live Framework Explorer (LFE). LFE incorpore les fonctionnalits initiales du ressource browser et prsente galement dautres fonctionnalits bien intressantes que nous avons embarques lors de son dveloppement en plus du ct interface et incorporation VS2008, voici une rapide liste des premires fonctionnalits de celui-ci : Intgration Visual Studio 2008 SP1 sous forme daddin Navigation au sein de votre ressource modle Live Services - Contacts - Profiles (informations) - Mesh - Devices - News - MeshObject Cration, mise jour, suppression de vos MeshObjects Upload et Download de vos fichiers hbergs sur le cloud (Mesh) Sauvegarde de vos settings en tant que MeshObject (particulirement intressant pour les speakers ;p) Nhsitez pas nous faire quelques retours directement sur la plate-forme CodePlex, nous permettant ainsi damliorer, voire de corriger quelques bugs qui pourraient persister au sein du Live Framework Explorer.

Silverlight 3Nous ne nous tendrons pas ici sur Silverlight 3 prsent dans un article de ce numro. Internet Explorer 8 : disponible ! La seconde keynote fut trs oriente navigateur et tout particulirement IE 8 ! Dean Hachamovitch, IE General Manager, sest occup de prsenter aux centaines de designers et dveloppeurs la version 8 du navigateur maison ! Les axes de cette version sont : les donnes, le design. Le design de IE 8 se veut bas et orient donnes ! Et surtout Microsoft mise sur les dveloppeurs pour exploiter les nouveauts du navigateur comme le webslice. Nous y reviendrons dans un prochain numro. Parmi les nombreuses fonctions, on notera principalement : - gestion des crashs dans les onglets : IE ne tombe pas quand sur un onglet, une erreur se produit, seul longlet en cause sera tu. - Performance globale en hausse, notamment sur le javascript - Meilleure protection contre les fraudes et contenus illicites. - Disponible en 25 langues.

Conclusion du Mix 2009Bien que venus initialement pour recevoir plus dinformations quant au futur modle conomique de Microsoft Azure Services Platform, et malgr la non information de Microsoft ce sujet, nous avons t plus que satisfaits de cet vnement compte tenu de la diversit des annonces et des technologies prsentes. Audel des keynotes et sessions, ces vnements sont un rel vecteur de rseautage en puissance au travers des soires, discussions de couloir, repas organiss par notre hte ! Et chacun sait que Microsoft a clairement la matrise de lart de recevoir ! Noublions pas le prochain objectif cl que sera la PDC 2009 de Los Angeles, Microsoft nous annoncera peut-tre enfin son modle conomique Cloud ainsi que sa vritable stratgie au travers de la multiplicit des technologies et produits comme Azure, Mesh, Web App Gallery, Grgory Renard CTO - R&I Manager Wygwam Microsoft Regional Director - Microsoft MVP (Most Valuable Professional)

Live Framework Explorer !Nous avons eu lhonneur et le plaisir durant notre session Mix (" lighting up web and client applications with Microsoft Live Services ") de lancer personnellement le Live Framework Explorer 1.0, un add-in pour Visual Studio ! Cet outil est le fruit de travaux de notre quipe R&I Wygwam et fut trs rapidement dtect par les quipes Azure Services Platform / Live Services de Microsoft Corp en la personne de James Senior, pour ensuite nous supporter dans la finalisation de celui-ci et son lancement lors du Microsoft Mix 2009 de Las Vegas. une bien belle aventure, il faut lavouer ! Cet outil sinscrit dans la stratgie Azure Services Platform de Microsoft / Live Services. LFE est un outil dans la parfaite continuit de celui fourni par dfaut dans le SDK du Live Framework : le LiveFx-

Mai 2009 \\ PROgrammez !

15

outils \\ java

Tlchargement sur le site www.programmez.com

Dans les coulisses du projet Eclipse e4Il y a un peu plus dun an, forts du constat que leur outil favori tait perfectible dans certains domaines (complexit de mise en uvre de certains concepts par un dveloppeur de plug-in, limitations fonctionnelles dans lIDE, ), des utilisateurs et des dveloppeurs ont commenc organiser des tables rondes pour rflchir aux fonctionnalits cls dune future version majeure dEclipse Le projet e4 tait n !ous le savez trs certainement, Eclipse est lorigine un IDE modulaire et extensible conu pour dvelopper du Java. En 2004, il est nanmoins apparu que cet IDE, tait tant et si bien modulaire, que les briques de base le constituant pouvaient servir de socle des applications quelconques. Cest le fameux Eclipse RCP (pour Rich Client Platform), que de nombreux dveloppeurs rutilisent aujourdhui, en venant ajouter leurs " briques " (leurs plug-in) au-dessus de celles que propose le framework. Ainsi, aujourdhui Eclipse, cest non seulement une des communauts les plus larges et les plus actives du monde de lOpen Source, mais cest aussi et surtout une panoplie de technologies qui sont bien souvent devenues des rfrences dans leurs catgories respectives. Vous avez ainsi tous forcment entendu parler dOSGi et de son modle de composants (rappelons quEquinox, un sous-projet Eclipse, est limplmentation de rfrence de la norme OSGi), de RCP qui fut un des premiers cadres pour la construction de clients riches, dEMF comme support aux dmarches MDD/MDA, et bien dautres !Fig.1

V

ge " Write Once, Run Everywhere " si cher Sun nest malheureusement pas toujours applicable dans le monde Eclipse. En effet, qui na jamais rv dcrire un code de prsentation parfaitement portable, et dainsi coder des IHM rendues nativement quelle que soit la cible (desktop, Web, PDA, ) ? Grce des technologies comme RAP (Rich Ajax Platform) ou eRCP (embedded Rich Client Platform), ce rve est en partie accessible, mais il reste pour linstant trs difficile de saffranchir des limites lies aux diffrences fondamentales entre les diffrentes plates-formes : avez-vous dj essay, par exemple, la programmation multithread dans une application Web crite en Javascript ?! [Fig.1]. Cest pour pallier ces limitations grandissantes que diffrents groupes de travail ont t lancs, supports par des grands comptes (IBM, encore bien prsent, mais aussi Adobe, Windriver, Freescale, ) et galement un grand nombre de dveloppeurs indpendants.

LES AXES MAJEURS DVOLUTIONSParmi tous les chantiers en cours, prenons le temps de nous attarder sur ceux qui vont vritablement rvolutionner le monde Eclipse.

Des limitations historiquesCeux et celles dentre vous qui se sont dj aventurs dans le dveloppement de plug-in Eclipse ne me contrediront pas si jaffirme ici que cest une tche particulirement ardue, et quil est bien souvent difficile de savoir par quel bout commencer lorsque lon se retrouve lch dans la jungle des API Eclipse. Pour faire simple, et en ne noircissant qu peine le tableau, ces API sont en effet souvent difficiles trouver, puis matriser. La plupart du temps, il existe plusieurs faons de rsoudre le mme problme, en passant par des API diffrentes, et la meilleure des faons de faire nest pas ncessairement documente Un autre des reproches souvent mis concerne le fait quEclipse, mme dans sa dclinaison RCP est une plate-forme encore trop , connote " IDE ". Il nest en effet pas toujours ais de venir rutiliser des mcanismes Eclipse de base sans leur aspect " IDE ". Les mtaphores de " vue ", de " perspective ", d" diteur ", bien que souvent intressantes, sont parfois limitatives, voire compltement inadaptes. Enfin, malgr lincroyable modularit quapporte OSGi, et la sparation bien distincte entre le " runtime " et la couche RCP lada,

Modlisation du " workbench "Il est bien souvent reproch la plate-forme Eclipse (et RCP en particulier), sa complexit. Non pas quil soit systmatiquement compliqu de coder des fonctionnalits utilisant lAPI Eclipse, mais plutt quil faille souvent jongler entre plusieurs manires de raliser la mme chose, dcoder certains fonctionnements obscurs, et jongler parmi des dizaines dinterfaces. En outre, larchitecture actuelle dEclipse RCP si elle respecte le paradigme MVC, est loin den faire , une implmentation cohrente et homogne, et il est ainsi loin dtre vident de porter Eclipse sur un toolkit graphique diffrent autre que SWT mme si le projet RAP y arrive plutt bien. Afin duniformiser la faon dont doit idalement sarchitecturer toute application RCP (vues, onglets, perspectives, ), un groupe de travail commenc modliser formellement le workbench Eclipse. Lobjectif est davoir un cadre plus strict pour la conception de son application RCP l o lon errait auparavant dans une jungle dAPI. , Le modle de ce quest un workbench a t crit en utilisant Ecore, le langage de modlisation propos par EMF (Eclipse Modeling Fra-

16

PROgrammez ! \\ Mai 2009

Intel Software Development Products

La Rvolution du ParalllismeIntel Parallel Studio est un jeu doutils paralllisme pourles dveloppeurs Visual Studio C/C++. Crez des applications parallles pour Windows optimises et innovantes et concourrez dans lindustrie du multicore grce Intel Composer, Intel Parallel Inspector et Intel Parallel Amplifier.

Intel Parallel Composer fournit des options de dveloppementparalllisme sans prcdent. Son association de compilateurs, librairies et extension dbogueur parallle pour les dveloppeurs Microsoft Visual Studio C/C++ supporte aisment et rapidement le multithreading dapplications sries et parallles.

Intel Parallel Inspector est le meilleur outil de vrification derreursmultithreading pour les dveloppeurs Microsoft Visual Studio C/C++. A la diffrence des autres vrificateurs derreurs, Parallel Inspector est le moyen le plus rapide et simple de pointer les erreurs mmoires et multithreading latentes.

Intel Parallel Amplifier simplifie la recherche rapide de goulotsdtranglement de performance sans avoir besoin de connatre larchitecture processeur ou le code assembl. Une analyse fine pour une performance optimale, incluant les cores est pleinement exploite.

Intel Parallel Studio: 619 HT Intel Parallel Composer: 309 HT Intel Parallel Inspector: 309 HT Intel Parallel Amplier: 309 HT

Plus dinformations sur :

Tel : 0825 07 06 07 [email protected]

www.sosdevelopers.com/parallel-studio.htm

outils \\ javamework) [Fig.2]. Sans dtailler par le menu tous les bnfices apports par lutilisation dEMF, indiquons simplement quil simplifie grandement lcriture de code habituellement ennuyeux crire et/ou source possible derreurs : persistance, coute des vnements de modification du modle, etc. En outre, lutilisation dEMF permettra, si ncessaire, lenrichissement du modle de workbench " officiel " sans avoir faire des " rustines " comme cest malheureusement le cas pour Eclipse 3.x }); shell.pack(); shell.open(); } } Cette nouvelle fonctionnalit est dautant plus intressante que le support du debug est dores et dj disponible. En dautres termes : vous placez des points darrts dans votre code Java, et votre programme entre en debug quand votre animation Flash arrive sur le bout de code en question ! Une autre piste douverture dEclipse au monde du Web, mme si elle est pour linstant ltat embryonnaire, est lintgration qui a t faite du projet Mozilla Bespin avec Eclipse. Bespin est un framework pour ldition de code (coloration syntaxique, autocompltion, ) depuis un navigateur Web. Un prototype disponible dans e4 0.9 M2 couple le serveur Bespin de Mozilla avec le moteur JDT dEclipse, permettant ainsi dditer du code Java dans un navigateur, tout en sollicitant JDT ct serveur pour la compilation, la remonte derreurs, etc. Lintrt dutiliser son IDE distance peu paratre un peu loufoque, mais il est pourtant intressant de se dire quun norme serveur (ou mieux, le " cloud ") pourrait utiliser sa puissance de calcul pour lancer les tests unitaires de tout le projet chaque changement de code, ou produise des mtriques habituellement non utilises, car coteuses calculer Pour vous faire votre propre opinion sur lutilit de Bespin, la procdure dcrite sur le wiki dEclipse (http://wiki.eclipse.org/E4/Bespin) vous permettra de configurer et lancer votre propre serveur. [Fig.3]

Ouverture au monde du WebLa nouveaut la plus impressionnante dEclipse 4 est trs certainement la premire version dun compilateur crois SWT vers Flex/ActionScript. claircissons tout de suite un possible malentendu : il nest absolument pas question ici denvisager, par la magie de ce compilateur, porter, sans opration supplmentaire, lintgralit dune application pense " desktop " vers le Web. Il y a en effet des diffrences fondamentales entre les modles dapplication de ces deux mondes. En revanche, la rutilisation au niveau composant (de la couche prsentation, notamment) apparat comme particulirement allchante. Ainsi, avec un des plug-in permettant la compilation de code SWT vers ActionScript installs dans votre IDE (voir notre encadr sur linstallation de4), il devient particulirement simple dcrire votre IHM (ou, plus impressionnant encore, de porter une IHM existante), en pur Java / SWT : il suffit de crer un nouveau projet Java, utilisant la JRE ddie ActionScript que vous aurez dfinie. Il faut galement rendre ce projet dpendant du projet org.eclipse.swt que vous avez import du CD-ROM. Une IHM de type " Hello World ! " ressemblerait ainsi ceci : import org.eclipse.swt.SWT; [] public class Main { public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new GridLayout(1, false)); shell.setText("My shell!"); final Button b = new Button(shell, SWT.PUSH); b.setText("Push me!"); b.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { b.setText("Hello!"); }Fig.2

Une rvolution dans le codage des IHMQue celui qui na jamais t agac par la quantit de code (le plus souvent particulirement rbarbatif) ncessaire pour crire une IHM me jette la premire pierre Il est vrai que certains toolkits graphiques sen sortent mieux que dautres au niveau de la verbosit, et souvent dautant mieux sils sont coupls un concepteur dIHM " WYSIWYG ", mais il faut bien avouer que devoir dcortiquer des dizaines de lignes de codes pour comprendre pourquoi notreFig.3

Fig. 2 Modle Ecore du workbench

Fig. 3 Edition de code via Bespin

18

PROgrammez ! \\ Mai 2009

outils \\ javabouton " OK " sobstine ne pas saligner correctement est particulirement nervant ! Afin damliorer la lisibilit, la portabilit, et la rutilisabilit des interfaces graphiques, diffrents groupes de dveloppeurs, inspirs par XAML (Microsoft), XUL (Mozilla) ou MXML (Adobe Flex), ont rflchi des approches permettant de venir (d)crire celles-ci de manire dclarative. Par exemple, grce XWT et sa syntaxe inspire du XAML de Microsoft, on peut dcrire ce genre dIHM : } Et obtenir le rsultat suivant : [Fig.4] Le code permettant de dynamiquement interprter un code source XWT est particulirement simple : public class Application { public static void main(String[] args) {Fig.4

URL content = Application.class. getResource("HelloWorld.xwt"); try { XWT.open(content); } catch (Exception e) { e.printStackTrace(); } }

Les avantages dune approche dclarative sont multiples : Le " code " est trs lisible, et particulirement concis. Il est compltement indpendant du toolkit graphique cible : bien que XWT soit conu dans loptique dobtenir des IHM SWT, rien dans sa syntaxe nempche de viser Swing, GTK, Qt, voire ExtJS ! Il est possible dappliquer un " look&feel " particulier en utilisant la norme CSS (oui oui, vous avez bien lu !) Lutilisation dun dialecte XML facilite la cration doutils pour la manipulation des IHMs ; XWT est dailleurs fourni avec un diteur WYSIWYG.

Ouverture aux autres langagesParce que Java nest pas le langage idal, loin sen faut, il est des cas o lon aimerait bnficier du modle de la modularit dOSGi tout en pouvant choisir le langage le mieux adapt pour implmenter une fonctionnalit donne. Ainsi, on peut imaginer crire un plug-in Eclipse en utilisant un DSL de son cru support par Ruby ou Scala, ou bien utiliser Clojure ou Lua pour bnficier des mcanismes de mta-programmation quils proposent. Un premier prototype, bas sur JavaScript, a t dvelopp pour valider la faisabilit de ce type dintgration. En venant tendre les

Installer et utiliser e4

L

e build le plus rcent de4 (0.9 M2) ncessite une version intermdiaire dEclipse 3.5 (le futur Galileo, sortant fin juin), plus prcisment la M6, pour fonctionner. Il vous faut donc dans un premier temps la rcuprer, depuis le site Eclipse : http://download.eclipse.org/eclipse/. Lensemble des composants de la 0.9 M2 est disponible sous forme dun update site zipp sur notre site www.programmez.com (eclipse-e4-repo-0.9M2.zip). Une fois votre Eclipse 3.5 M6 lanc, il vous suffit de venir le rfrencer (" Help > Install New Software " puis " Add " ; choisissez un nom explicite, " e4 0.9 M2 " par exemple, et indiquez le chemin vers le ZIP (" Archive " dans le champ " Location: ". Une fois lupdate site ajout, cochez les composants suivants, puis terminez lassistant : Une fois linstallation de tous les composants effectue, et aprs avoir, comme

propos par lassistant, redmarr Eclipse, vous tes quasiment prts ! Pour faciliter votre mise en route, vous trouverez galement sur notre site plusieurs projets Eclipse quil convient dimporter dans votre workspace. Ils sont contenus dans le zip e4-programmez-projects.zip quil vous suffit dimporter (" File > Import > Existing Projects into Workspace " puis " Select archive file "). Enfin, si vous souhaitez utiliser le crosscompilateur SWT vers Flex, vous aurez besoin du SDK Flex (disponible ladresse http://opensource.adobe.com). Une fois celui-ci install, il faut rajouter la ligne Dflex.sdk= la toute fin de votre fichier eclipse.ini. La compilation croise est plutt simple mettre en uvre : il faut dfinir une nouvelle JRE (" Window > Preferences > Java > Installed JREs ") de type " ActionScript VM " dont le " JRE Home " pointe vers le dossier dins-

tallation de votre Internet Explorer ou de votre Firefox. Pour pouvoir dbugger vos futures applications Flash crites en Java, vous prendrez soin dinstaller dans le navigateur choisi le plug-in Flash dans sa version " debug ".

Mai 2009 Recevez la Newsletter www.programmez.com/inscription.php \\ PROgrammez ! 19

outils \\ javacouches trs basses dEquinox (en particulier la couche grant le cycle de vie des composants), il peut traiter de manire particulire les plug-in dont le Manifest (voir Programmez ! n115) contient lentte JavaScript-Bundle, et ainsi interprter correctement le code JavaScript quils contiennent (voir http://wiki.eclipse.org/E4/JavaScript pour plus dinformations). Si cette possibilit de mlanger plusieurs langages vous parat farfelue, dites-vous simplement que vous faites certainement cela tous les jours. Qui na jamais en effet t amen travailler sur une application a priori 100% Java, mais qui appelait en ralit un script Ruby pour traiter tel import de fichier CSV, lanait tel traitement via un script Shell, etc. ?

EclipseCon : prparer le futurLe rassemblement annuel de la communaut Eclipse a eu lieu du 23 au 26 mars Santa Clara. Conscients des attentes autour du projet e4, les organisateurs de la confrence ont rserv une trs large place e4 dans le programme de celle-ci, et ce sont plus dune quinzaine de prsentations qui se sont tenues. Ainsi, la confrence a t loccasion dapprendre ou de confirmer quelques informations intressantes : Tout sera mis en uvre pour quEclipse 4 soit le plus possible compatible avec la version 3.x Les dveloppeurs encouragent ds maintenant les utilisateurs dmarrer des projets " rels " mettant en uvre e4 car, mme si beaucoup de choses vont voluer dans les mois venir, les grandes lignes, elles, sont bel et bien traces. Et surtout la sortie de4 en 2010 semble toujours dactualit !

Une vritable plate-formeHistoriquement, Eclipse a t conu pour tre un environnement de dveloppement de code Java facilement extensible (grce son mcanisme de plug-in, comme vous laurez bien sr devin). Toutefois, il est rapidement apparu comme une vidence que cet IDE ddi Java tait en fait tellement modulaire quil pouvait, en ralit, tre vu comme une " plate-forme tout faire ", rendant un ensemble de services allant de la simple gestion des prfrences utilisateur la cration dinterfaces graphiques bases sur les notions de vues et de perspectives bien connues des aficionados dEclipse. On voit ainsi apparatre de plus en plus dapplications construites audessus dEclipse, et il est parfois bien compliqu dexpliquer clairement pourquoi elles utilisent Eclipse alors mme quelles nont rien dun IDE Pour viter cette incomprhension parfois lgitime, un effort particulier est men afin que les technologies de " runtime " soient mieux identifies, et quelles se dmarquent plus clairement des projets plus orients " dveloppeur " (lIDE lui-mme, les outils Java, C, PHP , etc.). Cest dailleurs cela qui a conduit la cration du sous-projet RT (Runtime Project) en mars 2008. Le projet RT est au cur de la feuille de route dEclipse 4. Il sagit en effet de garantir que les technologies disponibles dans lcosystme Eclipse soient utilisables de manire compltement indpendante de lIDE Eclipse. Le projet RT hberge ainsi dj un certain nombre de sous-projets orients " runtime ". Citons par exemple ECF, lEclipse Communication Framework, qui propose un ensemble dAPI pour la gestion des communications. ECF se prsente sous la forme de bundles (plug-in) que quiconque ayant traiter des problmatiques de communication client/serveur, de transfert de fichiers, etc. peut utiliser, voire mme tendre. Le projet RT fait galement la part belle une technologie phare du moment : le Cloud Computing. Des projets comme SMILA, Gyrex, et bien sr Equinox devraient ainsi tre amens voluer dans une optique dutilisation massivement distribue, dans laquelle le modle de composant OSGi trouve tout naturellement sa place. Afin de se rapprocher au maximum de la " plate-forme idale ", il faut galement noter que, paralllement lavance des travaux sur e4, les experts du consortium OSGi travaillent une modernisation profonde de celui-ci (un " OSGi 2.0 ", en quelque sorte). En effet, pour des raisons de compatibilit avec un maximum de plates-formes (notamment dans le monde de lembarqu), le standard OSGi R4.2 dfinit des API parfois trop peu contraintes et donc souvent ambiges, en particulier car elles ne mettent pas profit les generics de Java 5.

Reprise du workspaceParalllement aux rvolutions fonctionnelles voques prcdemment, il faut prciser que des amliorations beaucoup plus pragmatiques sont apportes du ct de lIDE, afin de venir corriger certaines limitations historiques. Parmi ces volutions, celles concernant le modle du " workspace " Eclipse est la plus aboutie. En effet, la gestion des projets, ainsi que des ressources (dossiers et fichiers) quils contiennent, nest pas toujours satisfaisante dans Eclipse 3.x. Un IDE tel que Visual Studio, permet par exemple de crer des ressources " virtuelles ", qui peuvent tre des liens symboliques vers des ressources externes, ou bien des groupes agrgeant virtuellement des ressources contenues dans un projet. Cest prcisment ce genre de fonctionnalits que proposera lIDE Eclipse 4, ouvrant ainsi la porte une meilleure gestion de projets C ou C++, trop souvent compliqus bien organiser. Cette version remanie du modle des ressources est dj bien avance, et disponible dans la 0.9 M2. Cerise sur le gteau, la notion de groupe et de ressource lie est mme rtrocompatible Eclipse 3.4 !

Rendez-vous dans un peu plus dun anVous laurez compris, la communaut sest fixe un objectif particulirement ambitieux, dautant plus que la sortie officielle dEclipse 4 est pour linstant programme pour 2010. Pourtant, tout porte croire que la conduite agile le fameux " Eclipse Way " qui est faite du projet (milestones rgulires, intgration continue, ), ainsi que la grande motivation des parties prenantes, vont permettre daboutir une prochaine version majeure dEclipse digne de ce nom ! Benjamin Cab Expert Eclipse Anyware Technologies http://www.anyware-tech.com http://blog.benjamin-cabe.com.

20

PROgrammez ! \\ Mai 2009

Des composants interface utilisateurs suprieurs pour Windows Forms, WPF, ASP.NET et Silverlight Pour de plus amples infos : infragistics.comFour Platforms. One Package.0800 667 307

grids

tree

menus

navigation

charts

& more!

Copyright 1996-2009 Infragistics, Inc. All rights reserved. Infragistics, the Infragistics logo and NetAdvantage are registered trademarks of Infragistics, Inc. All other trademarks or registered trademarks are the respective property of their owners.

outils \\ web

Silverlight 3.0 : un cran au-dessus !

Microsoft MIX 09, qui sest tenu Las Vegas a donn lieu de nombreuses annonces. Microsoft a profit du buzz mdiatique de cet vnement, ddi aux designers et dveloppeurs, pour prsenter la nouvelle mouture de Silverlight, intitule Silverlight 3.

Silverlight 3 arrive la fois sur Eclipse avec Eclipse4sl et aussi sur MacOS X pour la partie dveloppement toujours grce Eclipse !http://go.microsoft.com/fwlink/?linkid=143433 Expression Blend 3 preview : http://www.microsoft.com/expression/tryit/blendpreview.aspx Petite astuce, Microsoft a regroup lintgralit de ces outils en un seul package dinstallation, sauf naturellement, Expression Blend. Vous retrouverez ce package ladresse suivante : http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=11dc7151-dbd64e39-878f-5081863cbb5d ce package comprend aussi les Silverlight 3 Tools pour Visual Studio 2008 SP1. Pour rcapituler, il suffit dinstaller ce dernier package et vous serez fin prt dvelopper avec Silverlight 3. Attention, en installant Silverlight 3 vous supprimez le plugin Silverlight 2. En ce qui concerne les Tools pour Silverlight 2 il existe une manipulation astucieuse pour continuer dvelopper en Silverlight 2 avec du Silverlight 3 install sur sa machine. Plus dinformation sur cette manipulation : http://www.jeff.wilcox.name/2009/03/sxs-sl2-sl3-building/

C

ontrairement au passage de Silverlight 1 Silverlight 2, celui Silverlight 3 sera beaucoup plus ais car il ne sagit pas dun changement de technologie mais bel et bien dun ajout de nouvelles fonctionnalits. A travers cet article, nous allons tenter de dcouvrir les principales nouveauts apparues dans cette version 3 bta 1.

Installation de Silverlight 3La version de Silverlight 3 annonce au MIX09 est la bta 1. Elle na donc pas vocation tre distribue au grand public, mais seulement aux dveloppeurs afin quils puissent commencer apprhender les nouveauts de ce plugin. En dautres termes, la version Go-Live na pas t encore annonce et il nest donc pas possible, lheure actuelle, de commercialiser des applications Silverlight 3. Si vous tes dveloppeur et impatient de dcouvrir les nouveauts de Silverlight 3, nhsitez pas installer une VPC et suivre les liens ci-dessous qui vous permettront dinstaller votre environnement de dveloppement : Le SDK de Silverlight 3 bta 1 : http://www.microsoft.com/downloads/details.aspx?FamilyID=D09B6ECF9A45-4D99-B752-2A330A937BC4&displaylang=en La documentation du framework Silverlight 3 : http://go.microsoft.com/fwlink/?LinkId=144350 Le plugin Silverlight 3 pour les dveloppeurs :Fig.1

LES NOUVEAUTS FONCTIONNELLESLa 3D au cur de Silverlight[Fig.1] Contrairement aux ides reues Silverlight 3 ne gre pas la 3D proprement parler, nanmoins il est capable de projeter des plans dans un contexte 3D, on parle alors de " Projection de plan ". Silverlight vient donc combler son retard vis--vis dActionScript en ce quiFig.2 Fig.3

22

PROgrammez ! \\ Mai 2009

outils \\ webconcerne la gestion de la 3D. [Fig.2]. Chaque contrle Silverlight, savoir un Grid, un bouton ou une TextBox est capable de se projeter dans un environnement 3D. Voyons comment cela fonctionne du ct XAML et du ct code. A nouvelle fonctionnalit, nouvelles proprits, Silverlight 3 se voit donc ajouter 12 nouvelles proprits ddies la manipulation 3D, accessibles directement depuis votre code XAML mais aussi ct code C#. Nous retrouvons donc : CenterOfRotation(X|Y|Z) pour modifier le centre de rotation suivant laxe GlobalOffset(X|Y|Z) pour modifier la focale globale LocalOffset(X|Y|Z) pour modifier la focale propre lobjet courant (UIElement) Rotation(X|Y|Z) pour effectuer une rotation de lobjet suivant laxe [Fig.3] Ct XAML, tout comme le RenderTransform, il sagit dajouter un nud de type Projection : Ct Code C# il suffit dutiliser les DepedencyProperty : monCanvas.Projection.GetValue(PlaneProjection.RotationXProperty); monCanvas.Projection.SetValue(PlaneProjection.RotationXProper ty, maValeur); lments Storyboard nont pas vocation tre soumis lacclration GPU. Lanimation modifiant lobjet en permanence, celui-ci serait sans cesse re-rendu et ce, au dtriment du cache. Par dfaut, une application nayant que des animations classiques et des contrles basiques naura pas besoin de lacclration GPU, il est donc inutile de lactiver si vous nen ressentez pas le besoin. Le calcul du FPS de votre application sera le meilleur moyen pour savoir si oui ou non cette fonctionnalit vous est indispensable.

Le Save File Dialog pour des scnarios encore plus riches

[Fig.4] Silverlight 3 permet prsent denregistrer des fichiers sur la machine cliente. La nouvelle classe SaveFileDialog permet via la mthode ShowDialog dafficher la fentre Enregistrer sous propre votre systme dexploitation. Cette fonctionnalit est bien entendu scurise car elle ncessite laction de lutilisateur. Voyons le fonctionnement de cette classe avec le code C# : private void btnSave_Click(object sender, RoutedEventArgs e) { SaveFileDialog mySaveDialog = new SaveFileDialog(); mySaveDialog.Filter = "Text Files (.txt)|*.txt|All Files |*.*"; bool? ret = mySaveDialog.ShowDialog(); if (ret == true) { using (Stream fs = (Stream)mySaveDialog.OpenFile()) { byte[] info = (new UTF8Encoding(true)).GetBytes (tbTest.Text); fs.Write(info, 0, info.Length); fs.Close(); } } }

Lacclration GPU au profit des performancesLacclration GPU permet Silverlight dutiliser votre carte graphique pour soccuper du rendu de certains lments graphiques de votre interface (ceux que vous dsirez), et ce, dans le but de soulager votre processeur. Cette technologie sappuie sur DirectX pour les utilisateurs Windows, et OpenGL pour les utilisateurs Mac. Lactivation de lacclration graphique seffectue au niveau de la page HTML dans la balise : Une fois active au niveau du plugin vous allez pouvoir ajouter dans votre XAML : Le CacheMode vous permet de cibler des lments spcifiques o vous souhaitez profiter de lacclration matrielle. Noter que lacclration GPU est rserve aux ressources gourmandes comme la 3D, les vidos hautes dfinitions, lanimation de Path lourd, etc. Les

Cela ouvre les portes de nouveaux scnarios. Vous allez pouvoir sauvegarder des DataGrid au format Excel, au format CSV, etc. au sein de vos applications Silverlight. En couplant cette fonctionnalit au mode dconnect de Silverlight 3, lusage de Silverlight se voit rellement enrichi.

Fig.4

Mai 2009 LACTU AU QUOTIDIEN www.programmez.com \\ PROgrammez ! 23

outils \\ webLe Databinding dlmentSilverlight 3 vient enrichir le modle de Databinding existant de Silverlight 2, en introduisant la notion de Element Databinding, dj connue des dveloppeurs WPF. Le concept du " Element Databinding " consiste lier la valeur de la proprit dun lment avec la proprit dun autre lment. Ainsi il est possible de lier la valeur dun Slider avec la largeur dun Rectangle. Lintrt de cette syntaxe est quelle ne ncessite pas lintervention dun dveloppeur. Il suffit de connatre le langage XAML ou bien dutiliser Expression Blend bon escient. De plus, cette syntaxe permet dconomiser de nombreuses lignes de code. [Fig.5] { uv.y = uv.y + (sin(uv.y*100)*0.03); return tex2D( input , uv.xy); } Ce code a pour effet dinverser limage et de londuler comme le reflet de leau. Exemple tir du trs bon blog de Jeff Prosise : http://www.wintellect.com/CS/blogs/jprosise/ [Fig.7]

Les animations prconuesLes Easing Animation. Ce sont des animations avec des dclrations, des acclrations et des changements de valeur prdfinies. En Silverlight 2 il tait ncessaire dutiliser des AnimationUsingKeyFrames et des KeySplines. A prsent il suffit de choisir un type danimation prdfini pour appliquer une animation nimporte quel objet et obtenir des effets graphiques plutt intressants. [Fig.8] Chaque Easing Animation a ses propres proprits afin de pouvoir la personnaliser souhait, cependant toutes les Easing Animation ont la proprit EasingMode en commun. Elle permet de renseigner lorsque le Easing sapplique, savoir, la fin, au dbut ou la fin et au dbut de lanimation: EaseIn, EaseOut, EaseInOut. Voici les types danimation prdfinis : BackEase, BounceEase, CircleEase, CubicEase, ElasticEase, ExponentialEase, PowerEase, QuadraticEase, QuarticEase, QuinticEase, SineEase. Chacune dentre elles apporte un effet visuel diffrent et intressant. Les animations les plus impressionnantes sont bien entendu le BounceEase et lElasticEase. Tout comme les animations classiques ces animations prdfinies sont aptes animer nimporte quelle DepedencyProperty, autrement dit, vous les animations 3D !

Les filtres graphiques

[Fig.6]

TextBlock Text=Pixel shaders> Comme le montre lexemple de la figure 6, les Pixel Shaders peuvent servir appliquer des effets graphiques tels que des effets de Blur et des effets dombrage Shadow. Un Pixel Shader est un objet qui transforme les pixels juste avant le rendu. Par dfaut, Silverlight proposes deux effets diffrents : BlurEffect et DropShadowEffect. Lun des gros points forts de cette nouveaut est la possibilit den crer soi-mme. Pour cela, il faut utiliser le langage High-Level Shading Language (HLSL) et le SDK de DirectX (http://msdn.microsoft.com/enus/directx/aa937788.aspx) afin de crer des fichier.FX. Voici un exemple de fichier FX : sampler2D input : register(S0); float4 main(float2 uv : TEXCOORD) : COLOR

En savoir plusPour aller plus loin avec les nouveauts de Silverlight 3 voici une liste de liens intressants : Program manager Silverlight : http://timheuer.com/blog/ Program manager Silverlight : http://blogs.msdn.com/jstegman/ Mike Snow et son incontournable " Tips of the Day " : http://silverlight.net/blogs/msnow/ Le blog officiel de la team Silverlight : Fig.7 http://team.silverlight.net/ Andy beaulieu : http://www.andybeaulieu.com/ Vous pourrez retrouver lintgralit des nouveauts Silverlight 3 en franais et en vido sur mon site : http://www.guillaumeandre.com/

Fig.5

Fig.6

Fig.8

Guillaume ANDRE Dveloppeur RIA - Wygwam

24

PROgrammez ! \\ Mai 2009

gros plan \\ cloud

Cloud ComputingVos applications sur le web !istockphoto.com/Pgiam

me si le SaaS reste modeste en parts de march, les utilisateurs et les diteurs sy mettent. Durant de nombreuses annes, le modle initi par Microsoft, Software + Services (ou S+S), soit le Logiciel + les services sera incontestablement le modle qui va tre disponible. On gardera les classiques licences ou souscriptions (dans le monde open source) et on accdera des services, des applications, complmentaires ou non, en ligne, soit sur le web. Plusieurs cueils restent plus que jamais dactualit : le manque dinteroprabilit entre les solutions et les services, limmaturit des API et SDK, des plates-formes Cloud encore en bta ou peine disponibles, un changement aussi radical dans la distribution des applications et donc du modle conomique.

M

Le cloud impose en effet ce que lon appelle depuis plus de 10 ans linformatique la demande. Cest--dire que lon paie ce que lon utilise rellement. On loue de lapplication, du temps serveurs, des ressources serveurs. Cest une vritable rvolution permettant, si lapplication est bien code, de pouvoir ajuster en quelques minutes peine, le nombre de serveurs ncessaires lors dun pic de charge. Comme dans le monde logiciel classique, plusieurs univers saffrontent dans le Cloud. Vous avez les partisans dun cloud computing ouvert, interoprable, reposant sur des standards, des spcifications connues et indpendantes, et des fournisseurs / diteurs privilgiant leur propre plate-forme (plus ou moins ferme) et tissant des accords bilatraux avec dautres diteurs. Il existe l un rel risque, comme nous le

connaissons sur les plates-formes RIA ou au dbut des Web Services et la profusion de spcifications. Quest-ce qui change pour le dveloppeur ? Beaucoup et peu la fois. peu, car les grands fournisseurs de plates-formes tentent de faire une transition le plus en douceur possible. Ainsi Google en incluant Java dans App Engine vite de redvelopper son application Java mme sil y a encore de nombreux manques fonctionnels. Microsoft fait de mme avec .Net naturellement, mais aussi avec des langages non .Net. Cest un gage important envers le dveloppeur. Cependant, linstabilit des API et des SDK gne le dveloppement et hormis utiliser des systmes dploys sur un Cloud hberg comme Amazon EC3, les plates-formes App Engine ou Azure restent viter pour une application en production. Trop tt. Mais cela changera rapidement ! Cependant, le Cloud impose de nouveaux rflexes dans la gestion des donnes, dans les instances serveurs et les applications, ou encore sur le fait de grer du code local et serveur ou le online et le offline. Incontestablement, le dveloppeur doit devenir peu peu un dveloppeur web dun nouveau genre. Pour ce premier grand dossier " cloud " dans Programmez !, nous avons voulu tre trs pratique et concret : architectures, Azure, Google App Engine, Amazon ! Nous reviendrons trs rgulirement sur le nuage informatique pour vous prparer et expliquer au mieux les technologies et plates-formes des diteurs. Franois Tonic

26

PROgrammez ! \\ Mai 2009

gros plan \\ cloud

Plates-formes et fonctionnementLe terme Cloud Computing se traduit littralement par " informatique dans les nuages , ces nuages faisant rfrence Internet et au web. Pour bien comprendre cette terminologie, il faut rappeler quInternet est un rseau trs complexe et difficile apprhender, car constitu de millions de connexions utilisant des technologies trs disparates (fibre optique, cble, ADSL, etc.). Le monde de lInternet est compltement abstrait pour la plupart des utilisateurs, il na pas de ralit gographique tangible.application de Cloud Computing que nous utilisons peut se trouver San Francisco, dans un satellite ou mme sur la Lune : cela fait finalement peu de diffrence pour nous. Les nuages du Cloud Computing font rfrence cette abstraction. Ils font aussi rfrence au fait que lon reprsente souvent Internet sous la forme dun nuage dans les schmas informatiques. Le Cloud Computing signifie donc que les applications en ligne sont utilises comme si elles taient situes dans lther, dans un espace sans ralit physique. [Fig.1]

L

Des architectures ddies et optimises : les applications SaaS bnficient dun environnement dexcution conu pour un usage en ligne avec une forte charge utilisateur ; elles sont lies cet environnement et ne peuvent pas tre " dmnages " simplement sur un serveur en entreprise. La mise en avant de fonctions collaboratives : les SaaS mettent laccent sur les pratiques collaboratives hrites du web 2.0 ; La fourniture dAPI ouvertes : les SaaS fournissent des API permettant de faire appel leurs fonctionnalits.

Fig.1

Que signifie SaaS ?SaaS signifie Software as a Service, cest--dire un logiciel fourni sous la forme de service et non sous la forme de programme informatique (code binaire installer sur une machine. Les utilisateurs des applications SaaS accdent ce service via Internet. La diffrence entre SaaS et logiciel est essentielle. En effet, les SaaS proposent des logiciels oprationnels, prts lemploi, sans passer par une tape dinstallation, et sans aucune tche de maintenance. Les SaaS sont excuts sur des plates-formes mises disposition par des acteurs (comme Google ou Salesforce) que nous appellerons oprateurs SaaS, car leur mtier est plus proche de ceux des oprateurs tlcoms que de celui des diteurs de logiciels. Les SaaS sont les successeurs des ASP (Application Service Providers). Ils se distinguent de ces derniers par : Lusage dinterfaces RIA ;

Le concept de Cloud Computing englobe les concepts de Software as a Service (SaaS) et de Platform as a Service (PaaS).

Que signifie PaaS ?PaaS signifie Platform as a Service. Ce terme dsigne une plate-forme dexcution hberge par un oprateur et accde depuis Internet. Cette plate-forme peut tre utilise pour excuter des SaaS, et peut aussi tre mise la disposition des entreprises qui souhaitent faire hberger leurs applications issues de dveloppements spcifiques. Amazon a t prcurseur dans ce domaine avec Amazon web Services (AWS). Les PaaS se distinguent des hbergeurs classiques par : Une grande abstraction de la plateforme. Lentreprise utilisatrice ne connat pas les configurations des machines qui excutent son application. Une architecture trs haute disponibilit base sur des datacenters rpartis dans le monde entier, et garantissant une grande rsisFig.2

tance aux sinistres (inondations, incendies, etc.) Les plates-formes PaaS reposent gnralement sur les composants suivants : Un ensemble de datacenters : leur nombre est toujours suprieur trois. Dans les cas de Microsoft ou

Mai 2009 \\ PROgrammez !

27

gros plan \\ cloudde Google, les centres se comptent en dizaines. Une couche dexcution sur une machine virtuelle via un hyperviseur, ou sur un runtime de type Java, .NET... Une couche de persistance accde via HTTP sous forme de base de donnes ou de fichiers. Une couche dauthentification en local ou dlgue l annuaire de scurit de lentreprise. Une couche dintgration : une API ou un bus dintgration pour changer des donnes avec lentreprise. Une console dadministration qui permet de grer le dploiement et le versioning des applications, ainsi que le monitoring de la plate-forme. [Fig.2] machines ou disques utiliss ; en revanche, on connat toutes les couches de son architecture logicielle. SalesForce force.com Loffre force.com se dcompose en plusieurs couches : Le service dexcution de la plateforme est bas sur Apex, un langage de haut niveau qui permet de crer rapidement des applications dinformatique de gestion : il nest pas adapt la cration dautres types dapplications. Ce langage est comparable un RAD comme PowerBuilder ou Oracle Forms. Force.com Database est le service de persistance. Cest une base de donnes, accde par un langage de requtage de haut niveau : SOQL, Salesforce Object Query Langage. Force.com Connect est le service dintgration. Il propose des connecteurs natifs pour Lotus, SAP et Oracle Business ; il supporte lintgration web services, REST, JEE et .NET. La philosophie de force.com est doffrir une plate-forme de dveloppement rapide pour des applications de gestion. Laccent est donc mis sur la simplicit du dveloppement et non sur la comprhension de larchitecture sous-jacente. Force.com plaira aux matrises douvrages par sa proposition dagilit et de dlgation des tches techniques. Google App Engine Loffre Google App Engine se dcompose selon les couches : Le service dexcution de la plateforme est bas sur un runtime Python. Il semble que Google ait choisi ce langage pour permettre de crer des applications trs grande performance. Cependant, pour satisfaire aux exigences des entreprises, peu enclines se former au langage Python, Google a annonc le support prochain du langage Java. DataStore est le service de persistance. Cest une base de donnes, accde par un langage de requtage de haut niveau : GQL, Google Query Langage. En termes dintgration, la PaaS offre des API vers des fonctions de Google Apps. Mais elle ne propose pas de bus dintgration proprement parler. La philosophie de Google App Engine consiste proposer une plate-forme offrant une grande puissance de traitement et une grande capacit de stockage : il sagit de mettre les gigantesques capacits des datacenters Google la disposition des entreprises. Ces dernires pourront donc lui confier leurs applications trs forte charge ou celles qui ncessitent beaucoup despace de stockage. La contrepartie de cette promesse de puissance est une architecture assez contrainte et lusage dun langage peu utilis dans les entreprises. Mme lorsque Google proposera lusage de Java sur sa plate-forme, il est probable que larchitecture restera contrainte, afin dutiliser au mieux les ressources des datacenters Google. Microsoft Azure Services Platform Microsoft a tir les enseignements des plates-formes lances avant la sienne : lditeur de Redmond propose ainsi un modle la croise des chemins entre runtime .NET et machine virtuelle. Loffre Azure se dcompose en plusieurs couches : Le service dexcution de la plateforme est bas sur le runtime .NET : la CLR. SQL Services est le service de persistance. Cest une base de donnes non relationnelle, accde selon le style REST. .NET Services intgre le service dintgration. La philosophie dAzure avec le dveloppement .NET est de permettre aux dveloppeurs de retrouver des langages/environnements de dveloppement connus. Cependant, cette cohrence peut tre trompeuse car les applications doivent tre amnages. Azure pourra terme excuter du code natif (C++), et il sera possible de dployer ses propres machines virtuelles, selon la pratique propose par Amazon. Microsoft veut ainsi satisfaire les dveloppeurs qui souhaitent utiliser .NET, comme ceux qui prfrent dployer leur propre machine virtuelle.

Les principales plates-formes disponiblesAmazon Web Services Loffre AWS se dcompose en plusieurs couches : EC2 est le service dexcution de la plate-forme. Il est bas sur la virtualisation par hyperviseur Xen. SimpleDB et S3, Simple Storage Service, sont les services de persistance. SimpleDB est un service de base de donnes, tandis que S3 permet le stockage de fichiers. Ces services sont accds selon le style REST. SQS, Simple Queue Service est le ser vice dintgration. Il permet lchange de messages entre AWS et dautres infrastructures. La philosophie dAWS consiste donner aux quipes informatiques une matrise complte de leur architecture logicielle. Loffre est destine des profils trs techniques, qui souhaitent grer leur application bas niveau. La seule abstraction propose par AWS concerne la partie matrielle : lorsquon utilise la plate-forme, on na pas connaissance des

Cet article est ralis partir dextrait de louvrage : " Cloud Computing & SaaS : une rupture dcisive pour l'informatique d'entreprise ", Dunod, par Guillaume Plouin, Directeur programme innovation SQLI

28

PROgrammez ! \\ Mai 2009

gros plan \\ cloud

TUTORIEL sur www.programmez.com

Dveloppez en Java vos applications Google App EngineIl y a peu prs un an, Google ouvrait l'App Engine aux dveloppeurs, il n'tait alors possible de dployer que des applications dveloppes en Python. Depuis le 7 avril, Java est disponible !

G

oogle App Engine (GAE) est une offre de Cloud Computing permettant aux dveloppeurs dhberger leurs applications Web sur les serveurs de Google. Les applications ainsi hberges bnficient de ce fait de la mme capacit de monte en charge que les services Google tels que Gmail ou Google Finance. Un des atouts de Google App Engine est que gratuitement un dveloppeur peut dployer une application accde raison de 5 millions de pages vues par mois, ce qui est somme toute une offre dhbergement intressante. Au-del de ces quotas, il est possible dacheter des ressources supplmentaires. Depuis quelques mois, nous pouvions voir dans la roadmap de ce projet que le support dautres langages tait un des objectifs de Google. Aujourd'hui, cest chose faite, Google ouvre son service une nouvelle communaut et contrairement leur poisson davril, ce nest pas Fortran mais bien Java qui est dsormais support. Cette nouvelle devrait donc tre accueillie avec un vif enthousiasme lorsque lon sait que le support de Java a t lune des premires volutions suggres par les dveloppeurs lors de la sortie de la premire version de lApp Engine.

Lintgration de JavaLa version Java ne droge pas au qualificatif de " Simple dutilisation " qui caractrisait la version Python. En effet, il ny a pas de diffrence majeure dans lapproche quont ces deux dernires. Un atout supplmentaire de la version Java et qui a son importance, cest le fait quelle saccompagne dun plugin Eclipse. Il est ainsi possible de crer une application et de la dployer en quelques clics. De plus, lintgration avec GWT (Google Web Toolkit) est enfantine et propose par dfaut par le plugin. Lenvironnement de dveloppement App Engine Java supporte les versions Java 5 et Java 6, sachant que sur les serveurs distants cest la 6 qui est supporte. Les pr-requis au dveloppement et au dploiement dapplications sur la plate-forme sont relativement faibles : avoir install Java et le SDK de lApp Engine. Linstallation du plugin Eclipse est bien entendu un plus non ngligeable. Ladministration des applications se fait via la mme interface que pour les applications Python. Il est ainsi possible de voir la rpartition de la charge dans le temps, les requtes HTTP les plus rcurrentes, le taux dutilisation ramen aux quotas. Il est galement possible de consulter les logs. Enfin, une page permet daccder aux donnes stockes dans le Datastore. Etudions de plus prs larchitecture dun projet et lutilisation des API

gin Eclipse, vous obtiendrez une structuration semblable celle de la figure ci-dessous : Cette arborescence de projet ne prsente pas de spcificit particulire, on notera la prsence dun fichier web.xml permettant dassurer le mapping entre les URL et les classes des Servlets. Lorsque vous dployez une application sur Google App Engine, une association sopre entre les fichiers que vous transfrez sur les serveurs de Google et les applications que vous tes en mesure dadministrer. Cette association est possible grce un identifiant que vous vous devez de retranscrire dans le fichier appengine-web.xml. Ce fichier est lquivalent du fichier app.yaml de la version Python de lApp Engine. Les Servlets sont tout fait communes et ne diffrent pas de celles que lon peut dvelopper dans une application traditionnelle. La Servlet dun HelloWorld pourrait donc se prsenter ainsi : package com.sfeir.demo; import java.io.IOException; import javax.servlet.http.*; public class DemoServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServlet Response resp) throws IOException { resp.setContentType("text/plain"); resp.getWriter().println("Hello, world"); } } Intressons nous maintenant aux API spcifiques de Google App Engine.

Utiliser les APIAuthentification Ajouter un systme dauthentification des utilisateurs se fait tout aussi facilement quavec la version Python : package com.sfeir.demo; import java.io.IOException;

Passons la pratiqueLes applications Google App Engine doivent tre structures en respectant larborescence WAR, ainsi, si vous crez un projet via le plu-

30

PROgrammez ! \\ Mai 2009

gros plan \\ cloudimport import import import javax.servlet.http.*; com.google.appengine.api.users.User; com.google.appengine.api.users.UserService; com.google.appengine.api.users.UserServiceFactory; import javax.jdo.annotations.PrimaryKey; import com.google.appengine.api.users.User; @PersistenceCapable(identityType = IdentityType.APPLICATION) public class Comment { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Long id; @Persistent private User author; @Persistent private String content; @Persistent private Date date; public Comment(User author, String content, Date date) { this.author = author; this.content = content; this.date = date; } } Il est ensuite trs simple de manipuler cet objet au travers de lAPI. Ainsi, pour persister une instance de cet objet, on peut utiliser le PersistenceManager de la manire suivante : Comment comment = new Comment(user.getNickName(), content, new Date()) ; PersistenceManagerFactory pmfInstance = JDOHelper.getPersistenceManagerFactory("transactionsoptional"); PersistenceManager pm = pmfInstance.get().getPersistence Manager(); try { pm.makePersistent(comment); } finally { pm.close(); } Au mme titre quil tait possible dinterroger la base au trav