Cap Gemini Institut : Développement et Open Source

Publié le Mis à jour le Par

Organisation, outils, démarches spécifiques

Ce séminaire de référence examine l’impact de l’utilisation de l’Open Source dans les projets logiciels. Il examine les différents niveaux d’adoption par les équipes projet : utilisation de composants d’infrastructure, choix d’outils et de solutions issues du libre, prise en compte des méthodes de développement communautaire, participation à des projets Open Source. Les apports et les risques liés à l’Open Source sont analysés au travers de nombreux exemples illustrant :

  • l’organisation des équipes de développement ainsi que les relations avec les prestataires et les communautés de développeurs. Les facteurs favorisant la pérennité de ses investissements logiciels ;
  • les différents niveaux de collaboration avec les communautés de développement. Les méthodologies et outils à adopter à chacun de ces niveaux ;
  • l’utilisation d’outils Open Source afin de maîtriser ses propres développements : outils de développement, outils de conception, outils de tests, etc. ;
  • les principaux frameworks techniques de développement sur les environnements Java, PHP, et .Net ;
  • l’état de l’art des solutions applicatives (portail, gestion de contenu, groupware, outils collaboratifs, etc.) issues du libre ;
  • les solutions d’infrastructure Open Source pour garantir un niveau de service donné en déploiement.


1. L’Open Source dans les projets

  • Concepts fondamentaux
  • * Historique, motivations, chiffres et tendances.
  • * Les différentes licences Open Source, les pièges à éviter.
  • * Les acteurs de l’Open Source dans le domaine du développement logiciel (clients finaux, sociétés de services, éditeurs, etc.).
  • * Impact de la perte de propriété du code utilisé et/ou produit par les équipes de développement.
  • * Évaluation de la pérennité d’une solution issue de l’Open Source : organisation et taille de la communauté, activité, les sites à consulter (sf.net, freasmeat.net, fsf.org, etc.).
  • * Prévention des principaux risques : les coûts cachés, les pseudo-solutions Open Source, le support, les conflits d’intérêt, les « roadmaps », etc.
  • * Apports de l’Open Source à l’évolutivité et la pérennité de ses investissements logiciels.
  • Modèle de participation aux communautés
  • * Formes de contribution (Bugs Reports/Request For Enhancement, Support/Abonnement aux mailings lists, Création de documentation ou traduction, Patches/Correction de bugs, Extension et implémentation de nouvelles fonctionnalités)
  • * Les statuts : project leader, commiter, contributor.
  • * Favoriser l’émergence d’une communauté et gestion des conflits d’intérêt entre ses propres objectifs et ceux de la communauté.
  • Étude de cas d’un projet Open Source applicatif
  • * Acteurs, motivations, rôles.
  • * Les étapes de mise en libre de ce logiciel auprès de la communauté.
  • * Maintenance par un regroupement d’entreprises et administrations utilisatrices.

2. Méthodologies Open Source et industrialisation des développements

  • Les principes popularisés par l’Open Source
  • * « Release Early, Release Often »
  • * « Keep It Simple Stupid »
  • * Les concepts de l’eXtreme Programing applicables en entreprise : peer review, build automatique, tests unitaires, auto-documentation, etc.
  • L’environnement des développeurs / concepteurs
  • * Les ateliers de conception UML.
  • * Les ateliers de développement Eclipse.
  • * Source code manager, règles d’utilisation et politique de versionning : CVS, subversion.
  • * Automatisation des builds et stratégie : nightly-build, snapshot, etc.
  • L’environnement de support au déploiement
  • * Les tests automatiques : Maven/Cruise Control, Canoo WebTest, etc.
  • * Les outils de suivi des bugs : JIRA, Mantis, Bugzilla.
  • * Les mailings lists Users, Developpers, Announcement, Commit.

3. Les principaux frameworks techniques

  • Les serveurs d’applications cible
  • * La prise en compte de l’Open Source dans ses choix de serveurs d’applications.
  • * PHP, Java, .Net, Zope : forces, faiblesses, opportunités, risques.
  • * Identifier quand les développeurs font du propriétaire sur du libre.
  • * Faire du libre sur du propriétaire : exemple les communautés .Net.
  • Framework PHP
  • * Les différents mécanismes de templates.
  • * Les principaux frameworks : PHPLib, Horde, BinaryCloud, Seagull, etc.
  • * PEAR, l’entrepôt de composants du PHPGroup.
  • * Implémentation de Web Services en PHP.
  • * Génération de graphiques, production de PDF, manipulation de documents Office, etc.
  • Framework Java
  • * Le cas des serveurs d’applications Java Open Source : moteur de servlets, containers EJB, implémentation JDO, etc.
  • * Les différents projets Jakarta (Turbine, Avalon, Velocity, Jelly, Commons, etc.).
  • * Vue d’ensemble de Struts : briques fournies, APIs, fonctionnement général, les limites.
  • * Exemple d’architecture applicative à base de différentes briques performantes : Xform pour la validation, Hibernate pour le mapping objet/relationnel, etc.
  • * Implémentation de Web Services en Java.
  • * Génération de graphiques, production de PDF, manipulation de documents Office, etc.
  • Framework .Net
  • * Les communautés de développeurs .Net.
  • * Les différents modèles de distribution de composants sur la plate-forme .Net et exemples (GPL, ASP.Net Starter Kit, etc.).
  • * Le projet Mono.
  • Problématique d’urbanisation
  • * Cohabitation de plusieurs briques Open Source. Démarche pour mettre en place une “glue” efficace.
  • * Solution de Single Sign On : CAS, etc.
  • * Intégration type EAI léger : BIE, OpenConnector, etc.

4. Les briques fonctionnelles majeures

  • Une troisième voie
  • * Entre développement spécifique et intégration de produits packagés : la troisième voie.
  • * Les stratégies gagnantes d’adoption : prototypage, projet pilote, généralisation.
  • Solution de portail
  • * Ce que cache le besoin portail : gestion de contenu Web, portail d’intégration, outils de collaboration.
  • * Les huit briques fonctionnelles : intégration à l’existant ; catégorisation des contenus ; recherche ; publication du contenu ; automatisation des process ; outils de collaboration ; personnalisation/customisation ; analyses de statistiques.
  • * État de l’art des principales solutions Open Source : SPIP-Agora, EZPublish, Zope, RedHat CCM, Typo 3, uPortal, JetSpeed, DotNetNuke, etc.
  • Groupware
  • * Les solutions de gestion de projet : PHProjekt, phpCollab, dotProject, etc.
  • * Les outils de gestion électronique de document.
  • Moteur de recherche
  • * Les besoins couverts par les moteurs de recherche issus du libre : recherche plein texte, propagation des recherches, recherche dans des formats natifs (PDF, Word, etc.).
  • * État de l’art des principales solutions.

5. Les composants d’infrastructure influant sur les développements

  • Répartition de charges/ Reprise sur incident
  • * Précautions à prendre dans ses développements pour rester compatible avec ces technologies.
  • * Reverse Proxy : Apache, configuration Bind, Squid, etc.
  • * Solution de type cluster : Linux Virtual Server, Beowulf, etc.
  • * Système maître/esclave : HeartBeat.
  • Mécanismes de cache
  • * Caches de données : Squid.
  • * Caches applicatifs en PHP, Java.
  • Monitoring/Statistiques
  • * Détection de bon fonctionnement d’un service applicatif.
  • * Statistiques ressources système : MRTG, RRDtool, etc.
  • * Analyse de logs : Logcheck, Webalizer, Awstat, etc.

PRIX: 1 480 €HT (1 770,08 €TTC)