I2EE:fabriquez votre propre serveur d'applications

I2EE:fabriquez votre propre serveur d'applications

Par Dominique Quatravaux
Date : lundi 7 juin 2004 09h55
Durée : 20 minutes
Langue :


Cette présentation raconte comment nous avons réalisé une application WWW en logiciel libre (IDX-PKI, http://idx-pki.idealx.org) avec mod_perl, en partant de rien, en construisant nos propres outils à partir de modules CPAN existants (depuis le système de tests unitaires jusqu'au modèle de sécurité en passant par l'interface "Web-services"), et comment nous avons inventé une très bonne infrastructure Modèle - Vue - Contrôleur appelée I2EE par erreur (!) à partir d'un mélange de Perl et de PHP. Nous organisons une visite guidée de cette architecture, en montrant comment les immenses pouvoirs de Perl nous ont aidé à concevoir, coder, déboguer et améliorer notre logiciel, et finalement le livrer à temps et à un haut niveau de qualité de code.

L'accent est mis sur les pratiques de programmation (en particulier la méthodologie de tests unitaires et le code de traitement des erreurs), et nous décrivons notre plateforme Modèle - Vue - Contrôleur maison en détail. Il est constitué d'un gestionnaire de réponses mod_perl, qui distribue les requêtes HTTP entrantes à de petits scripts en style CGI jouant le rôle de Contrôleurs. Le gestionnaire de réponses impose des contraintes sur l'ordre des opérations effectuées par ces scripts, à des fins de sécurité (authentification avant toute action) et de séparation du code (entre le contrôleur et la vue). Ces scripts font appel à un certain nombre de classes Perl indépendantes ayant leur propre jeu de tests (le Modèle), puis fabriquent une structure de données pour la réponse et enfin la transmettent à la Vue (une page PHP) en utilisant une redirection interne d'Apache. PHP ne peut pas maintenir d'état ou causer des effets de bord : il est utilisé comme un langage de patrons (templates) sophistiqué.

Une brève comparaison de ce système avec d'autres approches MVC est proposée, et en conclusion, nous expliquons comment nous avons facilement réutilisé cet environnement dans un autre projet (non encore publié), et les prévisions quant au futur de ce paquetage.