Bonjour,
J'écris ici, n'étant pas certain que ce soit l'endroit approprié pour une tel réflexion.
Notre système d'information, à l'image de beaucoup d'autres, tourne autour d'une application principale, ou plutôt devrais-je dire autour d'une base de données quasi unique.
Une douzaine d'application se servent en données de manière quotidienne sans quasi aucun contrôles. Vous me direz tant qu'il s'agit de récupération ce n'est pas catastrophique bien que pour moi cela me semble déjà dingue.
Deux choses principales me choquent :
1. deux de ces applications insèrent de la données (sans contrôles non plus) voir en suppriment...
2. à chaque modification de la structure du modèle originel, la maintenance est sympathique je puis vous l'assurez.
Depuis presque deux ans, j'ai mis en oeuvre pour une nième application connexe, une couche applicative qui régente les échanges les échanges entre cette nième application et la base de données principales du SI. Après de nombreuses réunions et réflexions, cette couche applicative (basé sur des services pour le moment) va être utilisé par plusieurs applications.
Au commencement, de la nième application, les deux projets étaient en Java, je ne m'étai pas trop questionné sur la bonne manière à employer, à tort.
J'ai développé la couche service, inclus ce jar, dans ma nouvelle appli et développé la logique de la seconde application.
Ainsi cela pose la question de l’implémentation pour la mise à disposition de ces services. Pour le moment je suis parti sur du webservices.
Mais comme les technologies sont différentes (Java, Php, Python), je souhaiterai poussé la réflexion encore plus loin.
Je m'explique.
Si on développe du webservices, je devrai en théorie, ne plus inclure le jar dans ma nième application et utilisé les webservices que je vais devoir mettre à disposition.
Cela dit, j'ai utilisé beaucoup de facilité que cela m'offrait (suivi des transactions JPA, lazy-loading, etc...).
Avec la mise en place tout çà deviendra de fait impossible. De plus, si on veut pousser le concept plus loin, il faudra dans l'idéale, même plus exposé les objets de la DAO.
Mais peut-être que je fais fausse route ?
Toujours est-il que cela m'oblige à revoir la structure même de la nième application, ce qui n'est en soit pas un vrai problème et même salvateur car cela permet après deux ans de vie de l'application de revoir certaines portions du code écrites trop vite.
Le passage par une couche webservices oblige-t-il à passer par une couche d'abstraction de la DAO ?
Comment exposer les constantes pour ne pas avoir à les maintenir dans la couche services et dans les autres projets Java sans pour autant exposer la logique métier et donc le lien avec la DAO ?
J'ai bien d'autres problématiques encore mais je pense que c'est déjà bien assez pour ce post.
D'avance merci de vos réponses.
HadanMarv
Partager