Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Client riche et nouvelles technologies

5,453 views

Published on

Published in: Technology
  • Be the first to comment

Client riche et nouvelles technologies

  1. 1. <ul><li>Xam Xamlé </li></ul>Nouvelles Technologies & Client Riche Sébastien Letélié 10 janvier 2008 www.itaware.eu
  2. 2. Sommaire <ul><li>Evolution des architectures </li></ul><ul><li>Qu’est ce que RIA, RDA, RMA, RCP …? </li></ul><ul><li>Technologies du client riche </li></ul><ul><ul><li>L’approche Web 2.0 avec AJAX </li></ul></ul><ul><ul><li>La vision Microsoft </li></ul></ul><ul><ul><li>La percée d’Adobe </li></ul></ul><ul><ul><li>La continuité de Sun </li></ul></ul><ul><ul><li>La démarcation d’Eclipse </li></ul></ul><ul><ul><li>La stratégie Google </li></ul></ul><ul><ul><li>Et les autres… </li></ul></ul><ul><li>Communication client/serveur </li></ul><ul><li>Mode déconnecté </li></ul><ul><li>Quelles technos pour quels besoins ? </li></ul><ul><li>L’importance du SOA </li></ul><ul><li>Architectures émergentes et nouveaux rôles </li></ul>
  3. 3. Evolutions des architectures Client Réseau Serveur Riche Léger Lourd SQL Socket HTML, XML/XSLT HTTP XML, JSON HTTP, SOAP, MQ
  4. 4. Qu’est ce que RIA … ? <ul><li>Rich = </li></ul><ul><ul><li>Meilleure expérience utilisateur </li></ul></ul><ul><ul><li>Gestion du mode déconnecté </li></ul></ul><ul><ul><li>Pallier les contraintes du Web (fin du modèle HTTP request/response) </li></ul></ul><ul><ul><li>Émergence du SOA </li></ul></ul><ul><ul><li>Séparation des tâches : conception / design / développement </li></ul></ul>RIA Rich Internet Application RWA Rich Web Application RDA Rich Desktop Application RMA Rich Mobile Application RCP Rich Client Platform RWP Rich Web Platform
  5. 5. Technologies du client riche <ul><li>L’approche Web 2.0 avec AJAX </li></ul><ul><li>La vision Microsoft </li></ul><ul><li>La percée d’Adobe </li></ul><ul><li>La continuité de Sun </li></ul><ul><li>La démarcation d’Eclipse </li></ul><ul><li>La stratégie Google </li></ul><ul><li>Et les autres… </li></ul>
  6. 6. L’approche Web 2.0 avec AJAX <ul><li>AJAX : Asynchronous Javascript And XML </li></ul><ul><ul><li>XMLHttpRequest / Iframe invisible </li></ul></ul><ul><ul><li>DOM + CSS </li></ul></ul><ul><ul><li>XML ou JSON </li></ul></ul><ul><li>Objectif : pouvoir ne rafraîchir que les composants qui en ont besoin suivant les actions de l’utilisateur </li></ul><ul><ul><li>Plus de rafraichissement complet </li></ul></ul><ul><ul><li>Une page unique </li></ul></ul><ul><li>Historique </li></ul><ul><ul><li>Techno existante depuis longtemps </li></ul></ul><ul><ul><li>Mais problématiques majeures: </li></ul></ul><ul><ul><ul><li>interprétation différente des navigateurs du code Javascript </li></ul></ul></ul><ul><ul><ul><li>Difficulté de débuggage </li></ul></ul></ul><ul><ul><ul><li>Pas d’IDE </li></ul></ul></ul><ul><ul><li>DHTML fut une première étape </li></ul></ul>
  7. 7. L’approche Web 2.0 avec AJAX <ul><li>Pourquoi maintenant ? </li></ul><ul><ul><li>Emergence d’API : prototype, dojo, scriptaculous </li></ul></ul><ul><ul><li>Emergence de framework de composants : Rialto, Ext … </li></ul></ul><ul><ul><li>Emergence des outils : </li></ul></ul><ul><ul><ul><li>Eclipse ATF </li></ul></ul></ul><ul><ul><ul><li>Firebug </li></ul></ul></ul><ul><ul><ul><li>GWT </li></ul></ul></ul><ul><ul><ul><li>Volta </li></ul></ul></ul><ul><li>Que devient l’existant : JSF, Struts, WebObjects, Wicket, ASP… ? </li></ul><ul><ul><li>Complémentarité </li></ul></ul><ul><ul><ul><li>Rialto JSF, PHP… </li></ul></ul></ul><ul><ul><ul><li>WebObjects & Project Wonder </li></ul></ul></ul><ul><ul><li>A terme ces framework ne seront peut être plus utilisés que pour la partie serveur </li></ul></ul><ul><ul><ul><li>Abandon des JSP, WOD </li></ul></ul></ul>
  8. 8. La vision Microsoft <ul><li>Silverlight </li></ul><ul><ul><li>RWA </li></ul></ul><ul><ul><li>Sous-ensemble de WPF </li></ul></ul><ul><li>WPF (Windows Presentation Foundation) </li></ul><ul><ul><li>RDA </li></ul></ul><ul><ul><li>Bibliothèques de composants riches </li></ul></ul><ul><ul><li>XAML </li></ul></ul><ul><li>WCF (Windows Communication Foundation) </li></ul><ul><ul><li>70% du .NET 3.0 </li></ul></ul><ul><ul><li>SOAP, HTTP, Socket, MQ … </li></ul></ul><ul><li>CLR (Common Language Runtime) </li></ul><ul><ul><li>IronPython, IronRuby, C++, C#, VB.NET </li></ul></ul><ul><li>Volta </li></ul><ul><ul><li>Recompilateur Web de formulaire WinForms </li></ul></ul><ul><li>Outils </li></ul><ul><ul><li>Visual Studio 2008 </li></ul></ul><ul><ul><li>Expression Tools (Blend, Media, Web, Design) </li></ul></ul>
  9. 9. XAML <ul><li>Exemples </li></ul><ul><ul><li>Démo </li></ul></ul><Page xmlns=&quot;&quot;> <TextBlock> Salut, le Monde! </TextBlock> </Page> <windows Width=&quot;600&quot; Height=&quot;480&quot; Text=&quot;Mon Programme&quot;> <FlowPanel> <Label Name=&quot;Montexte&quot; FontSize=&quot;20&quot;> Mon application </label> <Button Width=&quot;80&quot; Click=&quot;BoutonClic&quot;> Fermer </Button> </FlowPanel> </windows>
  10. 10. La vision Microsoft <ul><li>Points Forts </li></ul><ul><ul><li>Vidéo </li></ul></ul><ul><ul><li>Richesse des composants </li></ul></ul><ul><ul><li>Multi-Langage </li></ul></ul><ul><ul><li>Communauté existante </li></ul></ul><ul><li>Points Faibles </li></ul><ul><ul><li>Totalement propriétaire </li></ul></ul><ul><ul><li>Faible pénétration du plugin </li></ul></ul><ul><ul><li>Peu mature doit faire ses preuves </li></ul></ul>
  11. 11. La percée d’Adobe <ul><li>FLEX </li></ul><ul><ul><li>RWA </li></ul></ul><ul><ul><li>Extension de Flash pour l’entreprise </li></ul></ul><ul><ul><li>Bibliothèque de composants d’informatique de gestion </li></ul></ul><ul><ul><ul><li>formulaire & tableau </li></ul></ul></ul><ul><ul><li>MXML </li></ul></ul><ul><li>AIR </li></ul><ul><ul><li>RDA </li></ul></ul><ul><ul><li>FlashPlayer + Flex </li></ul></ul><ul><li>Communication </li></ul><ul><ul><li>Web Services (SOAP/AMF/HTTP) </li></ul></ul><ul><ul><li>MQ (BlazeDS) </li></ul></ul><ul><li>Langage </li></ul><ul><ul><li>ActiveScript 3.0 </li></ul></ul><ul><li>Outils </li></ul><ul><ul><li>FlexBuilder : Eclipse plugins </li></ul></ul><ul><ul><li>Thermo </li></ul></ul>
  12. 12. MXML & Action Script 3 <ul><li>Exemples & DEMO </li></ul><ul><ul><li>Appel de service </li></ul></ul><ul><ul><li>Data binding </li></ul></ul><?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <mx:Application xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; applicationComplete=&quot;employees.send()&quot;> <mx:HTTPService id=&quot;employees&quot; useProxy=&quot;false&quot; method=&quot;POST&quot; url=&quot;http://localhost:8080/test/employees.jsp&quot; /> <mx:DataGrid dataProvider=&quot;{employees.lastResult.people.person}&quot; width=&quot;60%&quot;> <mx:columns> <mx:DataGridColumn dataField=&quot;name&quot; headerText=&quot;Name&quot;/> <mx:DataGridColumn dataField=&quot;age&quot; headerText=&quot;Age&quot;/> <mx:DataGridColumn dataField=&quot;skills&quot; headerText=&quot;Skills&quot;/> </mx:columns> </mx:DataGrid> </mx:Application>
  13. 13. MXML & Action Script 3 <ul><li>Exemples </li></ul><ul><ul><li>Event Driven Programming </li></ul></ul><?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <mx:Button xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; width=&quot;104&quot; height=&quot;28&quot; cornerRadius=&quot;10&quot; fillColors=&quot;[#00ff00, #00B000]&quot; label=&quot;Add Item&quot; fontSize=&quot;12&quot; click=&quot;greenClickEventHandler()&quot;> <mx:Metadata> [Event(name=&quot;addItemEvent&quot;, type=&quot;flash.events.Event&quot;)] </mx:Metadata> <mx:Script> <![CDATA[ private function greenClickEventHandler():void{ trace(&quot; Ouch! I got clicked! Let me tell this to the world.&quot;); dispatchEvent(new Event(&quot;addItemEvent&quot;, true)); } ]]> </mx:Script> </mx:Button>
  14. 14. La percée d’Adobe <ul><li>Points Forts </li></ul><ul><ul><li>Pénétration du plugin Flash > 98% </li></ul></ul><ul><ul><li>Communauté importante </li></ul></ul><ul><ul><li>Flex 3 SDK sera open source </li></ul></ul><ul><ul><li>Flex Builder en Eclipse </li></ul></ul><ul><ul><li>Intégration avec applications Web existantes </li></ul></ul><ul><ul><li>Blaze DS gratuit </li></ul></ul><ul><ul><li>Indépendant de la techno coté serveur </li></ul></ul><ul><li>Points Faibles </li></ul><ul><ul><li>Solution propriétaire </li></ul></ul><ul><ul><li>Adaptation au monde de l’entreprise </li></ul></ul><ul><ul><li>Nécessité de maitriser un nouveau langage </li></ul></ul><ul><ul><li>Dépendant du Flash Player </li></ul></ul>
  15. 15. La continuité de Sun <ul><li>JavaFX </li></ul><ul><ul><li>Ensemble d’outils pour la mise en œuvre d’applications RIA </li></ul></ul><ul><ul><li>Java FX Script </li></ul></ul><ul><ul><ul><li>F3 – Chris Oliver </li></ul></ul></ul><ul><ul><ul><li>Langage de script pour la conception rapide de UI riches </li></ul></ul></ul><ul><ul><li>Java FX Mobile </li></ul></ul><ul><ul><ul><li>J2ME + API </li></ul></ul></ul><ul><li>Swing - le retour </li></ul><ul><ul><li>Amélioration des performances depuis Java 6 </li></ul></ul><ul><ul><li>SwingLabs </li></ul></ul><ul><ul><ul><li>JDIC, SwingX </li></ul></ul></ul><ul><li>Outils </li></ul><ul><ul><li>NetBeans 6.0 </li></ul></ul><ul><ul><li>Java FX Pad </li></ul></ul><ul><li>NetBeans Platform </li></ul><ul><ul><li>RCP </li></ul></ul>
  16. 16. Exemple de code Java FX Script import javafx.ui.*; import javafx.ui.canvas.*; import java.util.Date; import java.lang.Math; import java.lang.System; public class Timer { private attribute elapsed: Number; public attribute minutes: Number; public attribute seconds: Number; public attribute hours: Number; public attribute running: Boolean; } attribute Timer.elapsed = bind if running then [1..20] dur 1000 linear while running continue if true else 0; trigger on Timer.elapsed = value { var now = new Date(); minutes = now.getMinutes(); seconds = now.getSeconds() + (now.getTime() % 1000)/1000; hours = now.getHours(); } public class Clock extends CompositeNode { public attribute ticking: Boolean; } operation Clock.composeNode() { var t = Timer {running: bind ticking}; return Group { var font = new Font(&quot;Dialog&quot;, &quot;PLAIN&quot;, 15) var secs = bind t.seconds var mins = bind t.minutes + secs/60 var hrs = bind t.hours + mins/60 <ul><li>content:[ </li></ul><ul><li>Rect { height: 200, width: 5000, fill: white}, </li></ul><ul><ul><li>Circle {cx: 100, cy: 100, radius: 80, fill: white, stroke: black, strokeWidth: 1}, </li></ul></ul><ul><ul><li>Group { </li></ul></ul><ul><li>transform: translate( 100, 100 ) </li></ul><ul><li>content: foreach( i in [1..12] ) </li></ul><ul><li>Text { </li></ul><ul><li>var radians = Math.toRadians( 30 * i - 90 ) </li></ul><ul><li>transform: [translate( 70*Math.cos( radians ), 70*Math.sin( radians ) )] </li></ul><ul><li>content: &quot;{i}&quot; </li></ul><ul><li>valign: MIDDLE, halign: CENTER </li></ul><ul><li>} </li></ul><ul><li>}, </li></ul><ul><li>Group { </li></ul><ul><li>transform: translate(100, 100) </li></ul><ul><li>var hourHand = </li></ul><ul><li>Line {x1: 0, y1: 0, x2: 0, y2: -35, </li></ul><ul><li>strokeWidth: 4, stroke: black </li></ul><ul><li>transform: bind rotate(hrs*30, 0, 0) </li></ul><ul><li>} </li></ul><ul><li>var minuteHand = </li></ul><ul><li>Line {x1: 0, y1: 0, x2: 0, y2: -55, </li></ul><ul><li>strokeWidth: 2, stroke: black, </li></ul><ul><li>transform: bind rotate(mins * 6, 0, 0) </li></ul><ul><li>} </li></ul><ul><li>var secondHand = </li></ul><ul><li>Line {x1: 0, y1: 0, x2: 0, y2: -75, </li></ul><ul><li>strokeWidth: 1, stroke: red, </li></ul><ul><li>transform: bind rotate(t.seconds * 6, 0, 0) </li></ul><ul><li>} </li></ul><ul><li>content: [hourHand, minuteHand, secondHand] </li></ul><ul><li>}, </li></ul><ul><li>Circle {cx: 100, cy: 100, radius: 3, fill: black, stroke: black } </li></ul><ul><li>] </li></ul><ul><li>}; </li></ul><ul><li>} </li></ul>
  17. 17. La continuité de Sun <ul><li>JSR : Swing Application Framework & Beans Binding </li></ul><ul><li>Démos </li></ul><ul><ul><li>Joshua Marinacci : LightOut </li></ul></ul><ul><ul><li>Roman Strobl : NetBeans 6.0 </li></ul></ul><ul><li>Points Forts </li></ul><ul><ul><li>API ouvertes </li></ul></ul><ul><ul><li>API complètes </li></ul></ul><ul><ul><li>Communauté très importante </li></ul></ul><ul><ul><li>Historique </li></ul></ul><ul><ul><li>Sécurité </li></ul></ul><ul><li>Points Faibles </li></ul><ul><ul><li>Pénétration de la JVM </li></ul></ul><ul><ul><li>Temps de chargement, taille et installation du plugin </li></ul></ul><ul><ul><ul><li>Consumer JRE </li></ul></ul></ul><ul><ul><li>Outils de design pour Java FX Script </li></ul></ul><ul><ul><ul><li>Java FX Designer </li></ul></ul></ul>
  18. 18. La démarcation d’Eclipse <ul><li>Eclipse RCP </li></ul><ul><ul><li>Rich Client Platform </li></ul></ul><ul><ul><li>SWT+JFace </li></ul></ul><ul><ul><ul><li>Nebula Widgets </li></ul></ul></ul><ul><ul><li>Eclipse Data Binding </li></ul></ul><ul><ul><li>EXSWT </li></ul></ul><ul><ul><li>BIRT : Business Intelligence Reporting Tool </li></ul></ul><ul><li>Eclipse RAP </li></ul><ul><ul><li>Rich Ajax Platform </li></ul></ul><ul><ul><ul><li>&quot; build rich, Ajax-enabled Web applications by using the Eclipse development model &quot; </li></ul></ul></ul><ul><ul><li>RWT+JFace </li></ul></ul><ul><ul><ul><li>QOOXDOO (Inoopract) </li></ul></ul></ul>
  19. 19. EXSWT <ul><li>DEMO RCP & RAP </li></ul><ul><li>XSWT Dave J. Orme </li></ul><ul><ul><li>SWT en XML </li></ul></ul><ul><ul><li>30% de code en moins </li></ul></ul><ul><ul><li>Couplage lâche </li></ul></ul><ul><li>EXSWT Tom Shindl </li></ul><ul><ul><li>XBL </li></ul></ul><w:composite background=&quot;#82cff1&quot;> <a:layout x:class=&quot;gridLayout&quot; f:numColumns=&quot;2&quot; /> <w:label background=&quot;#82cff1&quot; text=&quot;Raison :&quot;> <a:layoutData x:class=&quot;gridData&quot; f:horizontalAlignment=&quot;GridData.END&quot; /> </w:label> <w:text w:style=&quot;SWT.BORDER&quot; x:id=&quot;callReason&quot; font=&quot;Arial,10,SWT.BOLD&quot;> <a:layoutData x:class=&quot;gridData&quot; f:widthHint=&quot;320&quot; f:horizontalAlignment=&quot;GridData.BEGINNING&quot; /> </w:text> <w:label background=&quot;#82cff1&quot; text=&quot;Type :&quot;> <a:layoutData x:class=&quot;gridData&quot; f:horizontalAlignment=&quot;GridData.END&quot; /> </w:label> <v:comboViewer x:id=&quot;missionType&quot; v:style=&quot;SWT.READ_ONLY&quot; font=&quot;Arial,10,SWT.BOLD&quot;> <a:combo.layoutData x:class=&quot;gridData&quot; f:widthHint=&quot;120&quot; f:horizontalAlignment=&quot;GridData.BEGINNING&quot; /> </v:comboViewer> </w:composite>
  20. 20. Eclipse Data Binding <ul><li>Design Pattern Observer </li></ul><ul><li>Conversion </li></ul><ul><li>Validation </li></ul><ul><li>Noyau indépendant d’Eclipse </li></ul><ul><ul><li>org.eclipse.core.databinding </li></ul></ul><ul><ul><li>Implémentation pour GWT </li></ul></ul>Realm.runWithDefault(SWTObservables.getRealm(Display.getCurrent()), new Runnable() { public void run() { DataBindingContext dbc = new DataBindingContext(); dbc.bindValue(SWTObservables.observeText((Text) controls.get(&quot;number&quot;), SWT.FocusOut), BeansObservables.observeValue(criterias, &quot;number&quot;), null, null); dbc.bindValue(SWTObservables.observeSelection((Button) controls.get(&quot;isGroup&quot;)), BeansObservables.observeValue(criterias, &quot;group&quot;), null, null); } });
  21. 21. La démarcation d’Eclipse <ul><li>Points forts </li></ul><ul><ul><li>RAD </li></ul></ul><ul><ul><li>Multi plates-formes </li></ul></ul><ul><ul><li>Formulaires / Wizards / Editeur </li></ul></ul><ul><ul><li>Modularité </li></ul></ul><ul><ul><ul><li>Equinox </li></ul></ul></ul><ul><ul><ul><li>Points d’extension </li></ul></ul></ul><ul><li>Points Faibles </li></ul><ul><ul><li>Visual Editor </li></ul></ul><ul><ul><ul><li>Instanciations WindowsBuilber </li></ul></ul></ul><ul><ul><li>Communauté stagnante </li></ul></ul><ul><ul><li>Richesse des composants </li></ul></ul>
  22. 22. La stratégie Google <ul><li>GWT : Google Web Toolkit </li></ul><ul><ul><li>Compilateur de code Java en Javascript </li></ul></ul><ul><ul><li>Masque la complexité de Javascript </li></ul></ul><ul><ul><li>Facilite le debug </li></ul></ul><ul><ul><li>Ouvre la porte de l’AJAX au développeur JAVA </li></ul></ul><ul><ul><li>Gère les incompatibilité entre navigateurs </li></ul></ul><ul><ul><li>Obfuscation de code => plus léger </li></ul></ul>
  23. 23. La stratégie Google <ul><li>Google Gears </li></ul><ul><ul><li>Plugin de navigateur permettant d’étendre la bibliothèque Javascript notamment pour gérer le mode déconnecté </li></ul></ul><ul><ul><li>Dion Almaer : «  Gears is mistakenly seen to be about &quot;offline&quot;, when that is just the surface  » </li></ul></ul><ul><ul><li>Extension du navigateur avec des API </li></ul></ul><ul><ul><ul><li>Image Manipulation </li></ul></ul></ul><ul><ul><ul><li>Desktop Shortcut </li></ul></ul></ul><ul><ul><ul><li>Location </li></ul></ul></ul><ul><ul><ul><li>WorkerPool </li></ul></ul></ul><ul><ul><ul><li>Messaging </li></ul></ul></ul><ul><ul><ul><li>Blob </li></ul></ul></ul><ul><ul><ul><li>Crypto </li></ul></ul></ul><ul><li>Android </li></ul><ul><ul><li>OS pour téléphone mobile </li></ul></ul><ul><li>Google Maps et Streets </li></ul><ul><li>Ne fournit pas de solution RIA mais offre des outils pour l’intégrer dans ses applications </li></ul>
  24. 24. Et les autres … <ul><li>OpenLazlo </li></ul><ul><li>XUL / Prism / XULRunner </li></ul><ul><li>Akrogen / Tk-UI </li></ul><ul><li>Wazaabi </li></ul><ul><li>Appcelerator </li></ul><ul><li>Widget Server </li></ul>
  25. 25. Communications client/serveur <ul><li>Web Services / SOAP </li></ul><ul><ul><li>WCF, JAX-WS, Axis2, Xfire </li></ul></ul><ul><ul><li>Client Javascript ? </li></ul></ul><ul><li>REST </li></ul><ul><li>Messaging (MOM) </li></ul><ul><ul><li>BlazeDS </li></ul></ul><ul><ul><li>Google Gears </li></ul></ul><ul><ul><li>Applet+JMS </li></ul></ul><ul><li>Sérialization </li></ul><ul><ul><li>WebObjects EODistribution framework </li></ul></ul><ul><ul><li>Spring HTTP Invoker </li></ul></ul><ul><ul><li>JSON/XML </li></ul></ul><ul><li>Push </li></ul><ul><ul><li>BlazeDS </li></ul></ul><ul><ul><li>Applet </li></ul></ul><ul><ul><li>Comet </li></ul></ul>
  26. 26. Mode Push : Comet <ul><li>Long lived HTTP request via XmlHttpRequest </li></ul><ul><ul><li>Pushlet démo </li></ul></ul><ul><li>Doit être supporté par le serveur </li></ul><ul><ul><li>Jetty, Apache2.2, Glassfish </li></ul></ul><ul><li>Gmail, Gtalk, Meebo utilisent déjà cette technique </li></ul>
  27. 27. Mode déconnecté <ul><li>Java DB </li></ul><ul><ul><li>Apache Derby </li></ul></ul><ul><li>Google Gears </li></ul><ul><li>DOJO offline </li></ul><ul><li>Firefox 3 </li></ul><ul><ul><li>Gestion du mode déconnecté </li></ul></ul><ul><li>! Synchronisation </li></ul>
  28. 28. Bilan <ul><li>Collaboration graphiste / développeur </li></ul><ul><ul><li>Format pivot : XAML, MXML, HTML/DOM, Java FX Script </li></ul></ul><ul><ul><li>Importance d’un langage de définition d’UI (script ou XML) </li></ul></ul><ul><li>Communication </li></ul><ul><ul><li>La notion de service n’a jamais été aussi importante </li></ul></ul><ul><ul><li>Toutes les formes de communication ont leur intérêt </li></ul></ul><ul><li>Mode déconnecté </li></ul><ul><ul><li>De plus en plus demandé </li></ul></ul><ul><ul><ul><li>Mode dégradé </li></ul></ul></ul><ul><ul><ul><li>Mobilité </li></ul></ul></ul><ul><li>Eléments prépondérant </li></ul><ul><ul><li>DataBinding client </li></ul></ul><ul><ul><li>Event Driven Programming </li></ul></ul>
  29. 29. Quelles technos pour quels besoins <ul><li>Aucune solution ne fait tout </li></ul><ul><li>Bien connaître les avantages et inconvénients </li></ul><ul><li>Avoir un minimum de retour d’expérience sur chaque </li></ul><ul><li>S’assurer de la pérennité </li></ul><ul><ul><li>Communauté </li></ul></ul><ul><ul><li>Opensource vs commercial </li></ul></ul><ul><li>Outils de développement et de design </li></ul><ul><li>Mixer les technologies </li></ul><ul><ul><li>IRIS démo </li></ul></ul>
  30. 30. L’importance du SOA <ul><li>Les échanges client / serveur </li></ul><ul><ul><li>Le client riche implique un nouveau mode d’échange sur le web </li></ul></ul><ul><li>La combinaison des technologies </li></ul><ul><ul><li>Du Flex avec du Java, du Rialto avec du PHP </li></ul></ul><ul><li>Les tests </li></ul><ul><li>La délimitation des fonctionnalités </li></ul><ul><li>La souplesse </li></ul><ul><ul><li>Meilleure évolutivité </li></ul></ul><ul><ul><li>Facilité de maintenance </li></ul></ul><ul><li>Le SOA devient une nécessité pour la pérennité des applications </li></ul>
  31. 31. Les technologies émergentes <ul><li>Orchestration des services : </li></ul><ul><ul><li>BPM : Business Process Model </li></ul></ul><ul><ul><li>Machines à états </li></ul></ul><ul><ul><li>Moteur de règles </li></ul></ul><ul><li>Intégration </li></ul><ul><ul><li>ESB : Enterprise Service Bus </li></ul></ul><ul><li>Facilité de déploiement et maintenance = modularité </li></ul><ul><ul><li>OSGi </li></ul></ul><ul><ul><ul><li>démo </li></ul></ul></ul><ul><ul><li>JSR 277 Java Module System & JSR 291 Dynamic Component Support </li></ul></ul><ul><li>Architectures </li></ul><ul><ul><li>EDA : Event Driven Architecture </li></ul></ul><ul><li>Langages </li></ul><ul><ul><li>Scripts : Groovy, Ruby, Python, JS … </li></ul></ul><ul><ul><li>DSL : Domain Specific Language </li></ul></ul>
  32. 32. Les nouveaux rôles <ul><li>La persistance du duo développeur/graphiste </li></ul><ul><ul><li>Plusieurs outils un format </li></ul></ul><ul><li>L’avènement de l’ergonome </li></ul><ul><ul><li>Riche mais comment ?! </li></ul></ul><ul><ul><li>Le médiateur entre l’utilisateur et le réalisateur </li></ul></ul><ul><li>Le nouvel architecte </li></ul><ul><ul><li>Penser service </li></ul></ul><ul><ul><li>Rester objet </li></ul></ul>
  33. 33. A surveiller … <ul><li>WebOS </li></ul><ul><ul><li>Exo Platform </li></ul></ul><ul><li>Virtualisation </li></ul><ul><ul><li>Virtual PC, VMWare, QEMU </li></ul></ul><ul><li>SaaS : Software as a Service </li></ul><ul><ul><li>Google Docs </li></ul></ul><ul><ul><li>Zoho </li></ul></ul><ul><li>Jeux, mondes virtuels et réseaux sociaux </li></ul>
  34. 34. A suivre ... <ul><li>Blogs </li></ul><ul><ul><li>www.itaware.eu </li></ul></ul><ul><ul><li>blog.improve.fr ? </li></ul></ul><ul><li>Xam Xamlé </li></ul><ul><ul><li>½ journée par mois </li></ul></ul>

×