ToPIA est un framework d’abstraction des plateformes techniques. À l’heure actuelle ToPIA se focalise sur la persistence des données.

UML to business

Lorsque vous utilisez ToPIA, vous définissez votre modèle UML, puis vous codez votre code métier sans vous soucier de la persistence. C’est ToPIA qui va s’occuper de ce qui se passe entre ces 2 étapes.

Comment ça marche ?

Avant tout, vous devez créer un modèle UML qui représente vos objets métier.

Ici, nous avons un modèle très simple dans lequel un employé est caractérisé par son nom, son genre et sa ville de résidence. Une société est constituée d’un nom, d’un SIRET et d’une liste d’employés.

Employee and Company model

En amont de la compilation, ToPIA va générer (grâce à Eugene) les fichiers nécessaires à son bon fonctionnement. Ces fichiers générés ajoutés au code que vous avez écrit constituent les sources de l’application. Cela signifie que vous bénéficiez de toute la robustesse d’une compilation Java, alliée à une sérieuse économie de lignes de code. Lorsque vous packagez votre application, vous packagez donc des sources déjà générées, rien n’est généré ultérieurement.

Les fichiers ainsi générés vous permettent de manipuler vos objets, de les charger depuis la base, les persister, les supprimer … Pour cela, vous disposez de plusieurs API de base qui donnent accès aux opérations les plus courantes, mais également des classes générées qui vous évitent de devoir écrire 80% du code nécessaire à la manipulation de vos objets.

Par exemple, admettons que vous souhaitiez rechercher tous les emplyés qui habitent Nantes. Vous pouvez le faire en une seule ligne sans vous soucier de comment charger des objets depuis la base :

List<Employee> employees =
    personDao.forCityEquals("Nantes").findAll();

À l’éxécution, ToPIA va traduire ces appels de méthodes en requêtes compréhensibles par le support de persistence. À l’heure actuelle, ToPIa se base sur Hibernate, mais le framework est pensé de manière à masquer autant que possible ce choix technique afin de faciliter une éventuelle migration vers un autre framework de mapping objet-relationnel.

Plus de détails sur les cycles en Y…

Les services

Autour de la persistence, ToPIA propose un certain nombre de services qui peuvent être activés ou non et qui vous permettent de bénéficier d’autres fonctionnalités ou encore de rajouter des comportements auxquels nous n’aurions pas pensé.

  • Service de gestion des mises à jour : permet de gérer les migrations de base lorsque vous déployez une nouvelle version de votre application ;
  • Service de gestion des mises à jour (Flyway) : permet également de gérer les migrations de base en se basant sur Flyway ;
  • Service de gestion des mises à jour (Liquibase) : permet également de gérer les migrations de base en se basant sur Liquibase ;
  • Service de réplication : permet de répliquer des données de base à base ;
  • Service CSV : service gérant les imports et expots au format CSV.

Avantages

  • Principales méthodes générées pour le recherche/chargement des objets ;
  • Pas de mapping ORM à écrire ;
  • Génération de code intelligente (basée sur l’héritage Java, compilation, …) ;
  • En dépit de la génération de code, il est toujours possible de remplacer une classe générée ;
  • Déjà utilisé dans des projets à forte volumétrie ;
  • Quasi-indépendance du code métier par rapport à la solution de persistence ;
  • Migrations facilitées lors des livraisons de nouvelles versions ;
  • Intégration transparente à l’outil de construction du projet (Maven, …) ;

Par où commencer ?

ToPIA est disponible sur Maven Central :

<dependency>
  <groupId>org.nuiton</groupId>
  <artifactId>topia-perssitence</artifactId>
  <version>3.0-beta-14</version>
</dependency>

Consultez les tutos pour créer votre projet à base de ToPIA en fonction de votre besoin :

Version 3.0

INFO La version 3.0 de ToPIA est en cours de développement. Si vous utilisiez déjà la version 2, consultez le guide de migration.