Bonjour,

Je suis chargé de la refonte de plusieurs de nos applications web plutôt à usage interne d'une personne partie à la retraite et je cherche à définir une architecture optimale en fonction de certains critères.

État des lieux :
- Une dizaine d'applications de petite taille principalement CRUD (avec prédominance de R) avec pour la plupart l'architecture suivante (aucun framework, tomcat utilisé, code métier à cheval dans la jsp (avec appels jdbc à des procédures stockées pl/sql ce niveau) ou dans les servlets en fonction des pages)
- Charge maximale de plusieurs dizaines d'utilisateurs connectés à l'application
- Nécessité d'utiliser un CAS-SSO
- Nécessité d'un couplage avec notre LDAP et peut être à terme AD (actuellement il y a un recopie du LDAP dans les tables ce qui est loin d'être optimal)

Bref, en l'état actuel ces applications sont difficilement maintenables et encore moins évolutives.

Il y a des contraintes humaines fortes.
Actuellement l'approche était 1 personne - 1 application avec peu/pas d'échanges entre développeur. Par exemple une personne qui a travaillé avec un "pseudo-framework" maison depuis 10-15 ans qui ne connaît pas les JSP et génère toute les pages dans la servlet mais connaît très bien le langage Java en tant que tel alors que depuis 10 ans elle travaillait avec la personne qui mettait tout dans la servlet.

L'environnement technique est limité à RedHat/CentOS/ Java 7 avec base Oracle (actuel mais surdimensionné pour des applications avec 5 à 10 tables et taille < 500.000 enregistrements au max, 1M si l'on veut prendre de la marge) mais possibilité de passer à MariaDB ou éventuellement à Postgresql.

Le but final est d'avoir des applications un minimum standardisé sur l'architecture et déployable plus facilement par l'équipe d'exploitation qu'actuellement.

- Initialement j'avais pensé à une architecture JSF pour la vue et JPA pour l'accès aux données mais le changement est sans doute très important par rapport à l'état des lieux
- Un framework type Struts2 permettrait au moins de nettoyer la vue par rapport en l'état actuel et de commencer à apporter des bonnes pratiques en restant sur une approche par action
- Rester sur des jsp/servlets de base avec comme objectif de déjà coder proprement et de remettre de l'ordre dans l'existant mais avec un risque de devoir réinventer la roue.

- L'utilisation de Maven est envisagé comme outil de build.

Merci de vos commentaires qui me permettrait de proposer un choix cohérent.