Elles ne sont pas si nombreuses, les entreprises qui misent sur PHP pour développer leurs applications métier. Spécialement dans la banque, un secteur qui n'adopte les technologies open source qu'au compte-gouttes. La filiale d'affacturage Transfact du Crédit Agricole un chiffre d'affaires de 4,6 milliards d'euros a pourtant osé. Elle a même fêté, l'an dernier, le dix millième utilisateur de son application Batica. Utilisée au quotidien par tout le groupe, celle-ci fournit en temps réel des renseignements tels que la solvabilité sur les entreprises françaises et internationales.
Gérer une volumétrie impressionnante
Batica fait la part belle aux logiciels libres : Apache, MySQL et PHP. Il s'agit néanmoins d'une application critique. A double titre : par son implication dans les processus quotidiens du groupe et par les volumétries qu'elle manipule. Plus de 10 000 utilisateurs visualisent jusqu'à 350 pages (avec transaction) par minute. La base de données renferme 60 millions d'enregistrements, soit 15 Go de données. L'équipe de développement de Batica ne compte pourtant que deux développeurs permanents. « Pour tenir nos engagements en termes de disponibilité, de performances et de qualité, nous n'avions qu'une seule solution : industrialiser nos développements PHP », explique Yoann Le Naour, chef de projet maîtrise d'oeuvre au sein de la DSI du Crédit Agricole Transfact. Une démarche qui s'est mise en place progressivement pendant deux ans, en fonction de l'évolution de Batica et de la sortie d'outils open source dédiés à l'amélioration de la qualité du code.
Tout commence en 2000. Face à l'immaturité de J2EE et en l'absence d'une alternative Microsoft crédible, l'équipe de développement retient la base MySQL et la plate-forme PHP. « Gratuite, performante, souple, facile à mettre en oeuvre, dotée d'une énorme base de connaissances et d'une documentation en ligne toujours actualisée... PHP avait tout pour plaire », argumente Yoann Le Naour. Les premiers développements, initiés avec PHP 3, ne sont pourtant guère concluants. « Nous avons fait toutes les erreurs des débutants », dit Yoann Le Naour. PHP est un langage simple et permissif. Cette souplesse constitue aussi sa faiblesse si aucune méthodologie ne lui est associée pour encadrer les développements.
Créer un même univers de développement
L'équipe de Batica profite donc de l'arrivée de PHP 4, un an plus tard, pour refondre complètement l'application en rationalisant ses méthodes de développement. « Nous avons commencé par tout recoder en orienté objet. Et cela en respectant scrupuleusement des règles de nommage des classes, des fichiers, etc. » , explique Yoann Le Naour. Afin de garantir l'ouverture et l'évolutivité de l'application, Transfact retient l'architecture Model Vue Controller (MVC). Et ce pour découpler au maximum l'accès aux données, la couche de présentation et la logique d'assemblage des traitements métier. « Ainsi exposons-nous une même classe métier en HTML, ou en XML-RPC pour les filiales utilisant Batica comme une source de données », explique Eric Colinet, ingénieur d'études.
De taille modeste, l'équipe de développement de Batica adopte néanmoins une démarche proche du concept d'usine logicielle. Le gestionnaire de code source CVS est utilisé depuis 2001 pour éviter les écrasements intempestifs de code et favoriser la réutilisation des composants existants. Toute l'équipe recourt au même environnement de développement : Zend Studio. « Nous développons plus vite, et les nouveaux intervenants appréhendent plus facilement l'application en naviguant de classe en classe, se félicite Eric Colinet. Côté serveur, nous disposons aussi d'un débogueur, bien pratique pour supprimer les goulets d'étranglement. »
Une documentation technique automatique
Les développeurs vérifient systématiquement les données en entrée pour renforcer la sécurité de l'application. Et, par exemple, éviter les attaques par injection de code. A l'aide des logiciels PHPDocumentor et PHPXRef, ils ajoutent aussi des commentaires standards afin d'automatiser la génération de la documentation technique. Cette dernière est centralisée sur un « wiki » (page web modifiable en mode consultation), accessible aux développeurs et aux administrateurs système.
Pour garantir la qualité du code, l'équipe de Batica exécute une batterie de tests en amont de la recette. Chaque méthode de haut niveau est dotée d'une interface spécifique, utilisée par un outil de test unitaire. Ce dernier vérifie automatiquement l'application, à la recherche d'éventuels dysfonctionnements dans les classes métier. Un second outil s'appuie sur les mêmes interfaces pour tester la montée en charge des classes et vérifier leur niveau de performance. Développés en interne et reposant sur PHP CLI, ces outils sont pilotés par des scripts. Lesquels sont déclenchés en ligne de commande, ou appelés depuis un logiciel d'automatisation des tests. « Nous recourons aussi à OpenSTA pour simuler une montée en charge du point de vue de l'utilisateur », ajoute Eric Colinet. Lorsqu'il subsiste des bogues, l'outil de suivi Mantis les liste et vérifie leur correction au fur et à mesure de leur découverte. Il assure aussi la liaison entre les développeurs et les utilisateurs, qui s'en servent comme un outil de gestion des exigences. « Ils déclarent un nouveau besoin de la même façon qu'ils déclarent un nouveau bogue », explique Yoann Le Naour.
Enfin, 60 scripts développés en PHP CLI effectuent certaines tâches récurrentes. Par exemple, l'alimentation de l'application en données provenant de partenaires comme la Banque de France. Ces scripts participent aussi à la supervision, en complément de l'outil Nagios, qui surveille les services de bas niveau de l'application. « Pour les suivis plus complexes, nous nous sommes lancés dans un développement spécifique, basé sur l'outil open source RRDTools », précise Yoann Le Naour.
Aujourd'hui, l'écosystème de PHP fournit presque tous les outils nécessaires à l'industrialisation des développements. Seule vraie difficulté : choisir ces outils et parvenir à les intégrer les uns aux autres. « Constituer une plate-forme de développement spécifique à PHP est un préalable indispensable avant d'initier de grands projets ou de migrer des applications critiques » , dit Yoann Le Naour. Cela prend du temps et nécessite une veille permanente.
Une application d'affacturage haut de gamme :
![]()
43 caisses régionales et 10 filiales concernées.
![]()
10 000 utilisateurs enregistrés.
![]()
150 connexions simultanées.
![]()
60 millions d'enregistrements.
![]()
300 classes.
Produit : Zend Studio
Fonction : ce studio de développement offre les mêmes fonctions qu'Eclipse dans le monde Java, et que Visual Studio .Net dans le monde Microsoft.
Gestion de codeProduit : subversion
Fonction : stocke de façon cohérente les différentes versions du code source. Offre des fonctions de verrou, d'historique, etc.
Suivi de boguesProduit : Mantis
Fonction : liste les bogues. Suit les corrections.
TestsProduit : OpenSTA
Fonction : tests unitaires et tests de montée en charge. Sert à valider la qualité du code lors du développement (classe par classe) ou avant le déploiement (test par lots).
DocumentationProduit : PHP documentor, PHPDoc et PHPXRef
Fonction : avec l'appui des commentaires du code, ces outils créent automatiquement une aide en ligne en documentant les interfaces des API.
AdministrationProduit : PHP CLI, Zend Platform et RRDTools
Fonction : CLI écrit des scripts qui s'exécutent en ligne de commande. Ceux-ci remplacent Perl et les différents scripts Unix, Linux et Windows.
![]() |
Kaspersky Anti Virus 2012 :
Telechargez gratuitement la protection essentielle contre les virus !
|
|
![]() |
Infrastructure réseau vieillissante?
Découvrez la boutique 01net !
|
|
1 Numericable2 Darty câble 30Mbps3 Orange
> Plus de détails

![]() |
Kaspersky Pure:
La protection ultime de votre quotidien numérique.
|
|
