Index: topia/doc/ToPIA.rst diff -u topia/doc/ToPIA.rst:1.1 topia/doc/ToPIA.rst:1.2 --- topia/doc/ToPIA.rst:1.1 Wed Jun 30 12:32:32 2004 +++ topia/doc/ToPIA.rst Fri Dec 24 11:38:50 2004 @@ -1,5 +1,38 @@ ToPIA ===== -ToPIA signifie -'Tools for Portable and Independant Architecture' +ToPIA est un framework d'abstraction des plateformes techniques. + +Qu'est-ce à dire ? +================== + +Le cycle de développement en Y traditionnel peut être représenté de la manière suivante : + +.. image:: images/MDA.png + + +Les deux branches, la branche fonctionnelle, porteuse de la solution logique, et la branche technique, qui définit la plateforme technique sur laquelle la solution sera implantée, se rejoignent en amont de la conception détaillée et du codage. +Cette projection peut être accompagnée de génération de code, mais il reste toujours une certaine quantité de code écrite à la main. + +Cette séparation des responsabilités et ce processsus donne pleine satisfaction lors du développement initial d'un logiciel. +La vie d'un logiciel commence toutefois au moment de sa mise en production et les évolutions qui y seront apportées sont de deux natures : +- Evolutions fonctionnelles : Ajout de fonctionnalités, correction de bugs, ... +- Evolutions techniques : Changement de bases de données, changement de techno sur les UI, nouveaux accès (SOAP ?), ... + +Si les évolutions fonctionnelles sont prises en compte par la nature itérative des processus de développement, les évolutions techniques sont elles difficiles. + +Comment passer d'hibernate à JDO, de Swing au client léger, des EJB aux conteneurs légers ? +En supprimant les dépendances de votre code sur les briques techniques, en codant sur une plateforme technique abstraite, interfaces et facades au travers desquels vous pourrez manipuler les différentes solutions techniques que vous retiendrez. +Hibernate et JDO ne sont que deux API d'accès aux données; Swing et client léger, des UI; les EJB et les conteneurs légers, des logiques métiers déportées... + +Et ToPIA alors ? +================ + +ToPIA propose une telle plateforme. + +.. image:: images/ToPIA.png + +Vous codez en regard d'une API qui abstrait la distribution (1-tiers ?, 2-tiers ?, 3-tiers ?, n-tiers ? quels protocoles d'accès ?), la persistence (quelles bases bien sûr, mais également quel framework ?, quelle API de requètage (EJB-QL, JDO-QL, ... ?), quel méchanisme transactionnel ?), quelle UI ? +Puis vous projettez votre application sur la palteforme de votre choix. + +Essayez !