|
En trois journées denses et concrètes, tout ce que doivent savoir les
DSI, chefs de projet et développeurs : une synthèse des outils,
méthodes, langages, middlewares et environnements de développement.
- Les évolutions clés du développement d’applications :
abstraction de la conception, modélisation, urbanisme des solutions.
- Les nouvelles architectures fondées sur l'asynchronisme
des traitements, sur la réutilisation et la distribution
des composants.
- Le formalisme : de l'objet aux composants, de C++ à Java et
C#. Les processus nouveaux : compilation intermédiaire,
assemblages et archives.
- Les conteneurs d'applications, nouvelles boîtes à
outils des développeurs.
- Le rôle central de XML, l'émergence des SOA et des Web
Services.
- Le panorama des solutions du marché, avantages et inconvénients,
exemples concrets de mise en œuvre.
- La mutation du métier de développeur : abstraction,
réutilisation, communication.
Nombreux exemples à l'appui, ce séminaire aborde les
aspects techniques auxquels sont confrontés aujourd'hui chefs
de projet et développeurs : l'adaptation à de nouveaux
environnements et langages, le changement de repères, le recours
aux frameworks. Il fait le point sur les services mis à leur
disposition via les serveurs d'applications et laisse une large place
à XML, moteur d'intégration et de communication entre
applications.
|
 |
Évolution des fondements
: plates-formes, méthodologies, XML |
|
- Changements de repères
- Le nouveau modèle de SI : un hub http et intégration tous azimuts.
- Du procédural à l’objet, du spécifique au standard, du jetable au réutilisable.
- Du modèle compilation-exécution au modèle compilation virtuelle, interprétation et compilation Just In Time (JIT).
- Du modèle propriétaire synchrone : Cobol/CICS/ DB2, Cobol/TDS/IDSII aux conteneurs d’applications et à la désynchronisation des applications.
- Distribution et urbanisation des applications : SOA et services Web.
- Le client riche : du XML pur aux solutions Java et .Net.
- Le back-office et les projets de migration lourde
- La réalité du marché : vraies questions et fausses idées.
- Les applications de back-office, le rôle des développeurs traditionnels et des langages procéduraux.
- Les problèmes concrets de cartographie et de recours aux compétences spécialisées.
- La réalité de Cobol et le portage de ses applications.
- La réutilisation des transactions via les passerelles et les architectures SOA.
- La résurgence des L4G qui se sont adaptés.
- Le nouveau périmètre méthodologique
- Les trois niveaux de modélisation : global SI, données, processus.
- Méthodologies, langages de modélisation et modeleurs.
- UML et la génération d’applications via MDA (UML 2), BPMN.
- Les plates-formes de modélisation : MEGA, Rational, etc.
- Les modèles de données et la présence de Merise.
- Le départ véritable des moteurs de règles.
- L’évolution de la gestion de projet
- Le mouvement des méthodes agiles : du prédictif à l’adaptable.
- Les méthodes les plus courantes : Lean Software, Programmation Extrême et Scrum.
- Les problématiques traditionnelles du développement : tests, mesure de productivité, qualité.
- XML
- L’importance stratégique de XML.
- La structure d’un document XML : les fondements DTD/Schéma, parser, espaces de noms.
- Les standards XPath, XLink, XSL.
- Les frameworks XML Java et .Net.
- Les bases de données XML.
- Exemples concrets.
|
 |
De l’objet aux composants |
|
- Les principes de base
- Les types de composants : boîtes blanches et noires.
- Les principes fondamentaux de l’objet : classe, packages et espaces de noms, héritage, interface, encapsulage, surcharge de méthodes, polymorphisme de méthodes, transtypage, gestion par références, gestion des exceptions, agrégation, composition.
- La distribution des composants
- La nécessité d’un middleware de communication.
- Les référentiels de composants.
- Les problématiques d’authentification et de sécurité liées à la distribution des composants : vers une véritable gestion des identités.
|
 |
Les frameworks techniques et frameworks d’architecture |
|
- L’importance des frameworks
- Les langages objet indissociables de leur environnement.
- Un choix Java xE vs .Net qui se pose rarement.
- Les délicats problèmes de mapping de données et de gestion de la persistance.
- Les frameworks Java xE
- La gestion globale du monde Java : le JCP et les JSR.
- La nouvelle donne liée à l’arrivée d’Oracle.
- L’architecture générale et les versions : Java SE, Java EE, Java ME, Java Card.
- Le modèle EJB et sa complexité : session, MDB, principes de fonctionnement.
- Les apports d'EJB 3.0 (EJB 5), Java SE 6 et Java EE 6.
- L’inévitable ouverture de Java vers l’Open Source.
- Des langages script interprétables dans la JVM Java : Ruby, Groovy, Python, etc. Une date importante.
- .NET de Microsoft
- .Net : la volonté serveur de Microsoft pour une crédibilité dans le domaine du back-office.
- Le modèle fonctionnel : diversité des langages, compilation Just In Time, Assembly.
- Les langages compatibles et leur modèle de référence CLI.
- L’espace d’exécution CLR (Common Language Runtime).
- Les espaces de noms de .NET.
- .Net 3.5 et le futur 4.0 : distinction entre l’OS et le serveur d’applications.
- Mono : .Net sur Linux. Une réalité.
- Les frameworks d’architecture (complément)
- Le recours aux motifs de conception.
- Classification historique des principaux motifs : singleton, composite, adapter, etc.
- Le motif MVC (SmallTalk) et ses déclinaisons JSF, Spring, RoR et Struts.
- Le motif Hibernate.
- La “virtualisation” de l’accès aux données : JDO, SDO.
- Linq, la solution universelle de Microsoft. Vers une écriture harmonieuse de l’accès aux données.
- Les frameworks d’intégration (ESB) : pour remplacer les serveurs d’intégration (EAI).
- L’exemple concret d’un framework Open Source : Celtix.
- Les serveurs d’applications
- Le rôle d’un serveur d’applications : les services rendus aux applications.
- La distinction entre container servlet/JSP et container d'EJB.
- La concentration des serveurs d’applications Java.
- JBoss, WebSphere, Oracle, Tomcat dans le monde Java.
- Les serveurs d’applications Windows pour .Net.
|
 |
Les langages modernes : Java, C#, VB.Net, etc. |
|
- Java et la maturité
- L’irrésistible poussée des langages objet.
- Le cahier des charges de Java.
- Les concepts nouveaux de Java 5 : annotations, assertions, etc.
- Un rapprochement de plus en plus net avec C#.
- C#
- Caractéristiques fondamentales du langage.
- Principes opératoires : compilateur, préprocesseur, contrôle des erreurs.
- Gestion des classes, délégués et événements.
- À quelles applications est destiné C# ? Une comparaison avec Visual Basic .NET et Java. Avantages et inconvénients.
- Les autres (principaux) langages de la galaxie .Net
- ASP.Net.
- Visual Basic .Net.
|
 |
Les architectures éclatées SOA et Web Services |
|
- Vers un modèle générique d’applications composites à composants distribués : les SOA
- Principes de l’architecture SOA.
- Architectures point à point ou fondées sur un bus d’intégration : les critères de choix.
- Les briques de conception d’une architecture SOA.
- Les écueils de la granularité et de la généricité.
- Les plates-formes de développement SOA.
- L’orchestration des services : SCA.
- Les SOA et les mainframes.
- La distribution des applications : les services Web
- Organisation et mise en œuvre d’une architecture de services Web distribués.
- Les standards SOAP, WSDL et UDDI, fondés sur XML.
- L’authentification des services Web.
- L’orchestration des services Web : BPEL.
- Exemples concrets de mise en œuvre.
|
 |
Les architectures "clients" et les langages script |
|
- Les nouveaux modèles d’architectures
- Éclatement du modèle 3-tiers.
- Nouvelles architectures applicatives en 2010.
- Allégement du poste client.
- Les clients riches
- Principe du client riche.
- Différentes formes de client riche : RIA contre RDA.
- Du pur XML au client Silverlight, AIR, Java FX ou Google Native.
- AIR d'Adobe contre .Net et Java.
- Les applications Internet/Intranet côté client : vers l'archirecture Web 2.0
- L’évolution de HTML : HTML 5.
- La génération dynamique des pages HTML : les modèles ASP, PHP, Cold Fusion et JSP.
- PHP et son nouveau statut de langage majeur.
- Un nouveau venu prometteur : Ruby.
- Mise en page côté client : JavaScript et l’avènement de la programmation “behind the scene”, type Ajax.
- La mécanique d’un développement Ajax et l’usage de l’objet XMLHttpRequest.
- Les frameworks de développement Ajax.
- Exemples de mise en œuvre.
- Les techniques d’intégration côté client
- Le principe des portlets et WSRP.
- Le principe des mashups.
- Les protocoles d’échange d’informations : RSS, Atom.
- Déjà une offre mature de plates-formes de développement de mashups.
|
 |
Les plates-formes de développement |
|
- Le problème des AGL (Atelier de Génie Logiciel)
- Les constituants d’un AGL moderne.
- Les nouvelles usines à logiciels : IBM, Visual Team System (Microsoft).
- Les concepts d’accompagnement au développement : refactoring, gestion des sources et exécutables, profiling, documentation automatique, génération du code.
- La collaboration dans le développement : l’apport de l’Open Source et l’arrivée de Jazz chez IBM.
- Les communautés de développement
- L’essor d’Eclipse et d’un nouveau “business model”.
- Un monde de plug-ins pour Eclipse.
- Avantages et inconvénients, conditions de mise en œuvre.
- L’avenir de la solution Netbeans de Sun.
- Le développement “dans les nuages”
- Principe de développement dans les nuages.
- Mode virtualisé et multitenant.
- Les solutions concrètes : Azure de Microsoft, Google App Engine, Amazon EC2.
- Avantages et inconvénients.
|
 |
Les spécificités du développement Open Source |
| - Le cadre général
- Les modes de fonctionnement.
- La problématique des licences.
- Les précautions à prendre.
- Les aspects concrets d’un développement Open Source
- L’intégration (parfois difficile) dans un projet Open Source existant : les règles à respecter.
- La réutilisation contrôlée de composants soumis à licence.
- Le fonctionnement au quotidien d’un projet Open Source.
|
 | Déploiement et performances |
|
- Le déploiement des applications modernes
- Le syndrome du client lourd.
- Les formes modernes de déploiement : virtualisation et streaming, les solutions Microsoft, VMware, Citrix.
- Le déploiement spécifique des clients riches Java et .Net.
- Le problème des performances
- La complexité accrue et l’éclatement des applications modernes à l’origine de nombreux déboires.
- Un nouveau venu, l’APM : Application Performance Management.
- Les outils de tuning d’applications Java et .Net.
|
 | Les problématiques applicatives nouvelles |
| - Les applications pour postes mobiles
- Les contraintes : taille des scripts, particularismes de l’affichage.
- Les natures distinctes d’applications mobiles : vers un mode connecté.
- Les frameworks du marché spécifiques .Net et Java ME.
- L’arrivée des frameworks ordiphones (smartphones) : Android (Google), Symbian, Sun, Apple, RIM.
- Les places de marché applicatives pour smartphones.
- Les applications multimédias
- Les particularismes d’une application multimédia.
- La gestion spécifique des clips sonores et des vidéos.
|
 | L’évolution des métiers du développement |
| - Un monde en profonde mutation
- Les grandes évolutions du métier : offshore et outsourcing. Quelles limites ?
- La migration vers les compétences “nouvelles” (frameworks, objet, etc.).
- L’importance cruciale de la modélisation : une manière nouvelle d’aborder l’objet.
- L’influence de l'Open Source.
- Comment les DSI voient-ils leurs besoins à court et moyen terme. N’y a-t-il pas incompréhension ?
- L’évolution prévisible des métiers
- Architecte de développement.
- Référent de maîtrise d’ouvrage.
- L’inévitable refonte des processus de formation.
|