TSIG2 Développeurs J2EE Et MVC 1. Présentation générale Les architectures distribuées implémentent des composants sur différentes machines en utilisant des serveurs d’applications., des serveurs de données.. On les appelle aussi architecture « multi-tiers ». Dans une architecture distribuée, il existe forcément un client (station de travail…) et un ou plusieurs serveurs (mainframe, As400, pc, serveur Unix, …)les fonctions sont réparties entre le client et les serveurs les informations sont échangées via le réseau. Le modèle MVC apparu dans les années 90, s’intégre dans cette architecture et permet d’éliminer des inconvénients de la programmation traditionnelle en s’iriantant vers le développement par composants. 2. Introduction du modèle MVC Dans une application, on peut distinguer : La présentation. C’est typiquement une interface graphique de type windows ou swing, ou de type HTML ou Xml sur le navigateur du client. La partie fonctionnelle qui réalise le traitement particulier. Cette partie est orientée « métier », elle utilise les objets « métiers » définis lors de l’analyse par exemple Client, Commande, Produit. Elle incorpore la validation des données, les calculs éventuels, l’état des données…. La partie « accès aux données ». Son rôle est d’assurer le lien avec le SGBD. Les données peuvent être extraites de la base, modifiées, écrites, supprimées dans l’application, la base de données doit être mises à jour. L’architecture MVC (modèle vue contrôleur) préconise la séparation du développement de ces trois couches. Une application MVC présentera donc : Une partie Interface de présentation c’est la vue par exemple écran Html ou écran swing ou écran windows. Cette partie peut intégrer des contrôles de saisie. Elle s’occupe de présenter les données reçues du contrôleur et lui transmet les actions à effectuer en fonction des demandes des utilisateurs. Exemple : Affichage d’un compte client dans une banque. Le client entre son n° et demande à voir son compte. Une couche applicative ou contrôleur réalisant le traitement. Les objets métiers sont utilisés pour ces traitements. Exemple : Le contrôleur a reçu la demande du client et son numéro, il fait une requête à la couche données, récupère les informations du client dans un objet métier de classe « Client », et toutes les opérations réalisées par le client et les stocke dans un objet métier ici « LesOpérations ». Il peut alors calculer le solde du compte et l’envoyer à la vue. Une couche accès aux données ou modèle qui effectue les requêtes, prévoit les opérations de mises à jour dans la base. Cette couche doit assurer la sécurité des opérations comme les transactions, les contrôles d’accès. Elle doit également garantir la cohérence des données. -1- TSIG2 Développeurs J2EE Et MVC 3. Inconvénient de la démarche « classique » La programmation classique comporte un certain nombre d’inconvénients. Chaque programme est « artisanal », il ne répond à aucune spécification générale. La structure de l’application est peu visible, l’évolution de l’application est difficile. Une modification implique tout le programme. Un changement de technologie induit une réécriture totale. Exemple : passage en Intranet d’une application windows Tout est à la charge du programmeur, présentation, logique d’application, traitement des données. Le travail est difficilement partageable. L’objet peut être utilisé mais n’a pas réellement sa place dans une démarche organisée. Ce type de programmation reste valable pour les petits projets à durée de vie courte qu’on appelle parfois projets « jetables » car ils sont rapides à développer et à remplacer. Elle ne correspond pas aux impératifs des architectures distribuées. D’ autre part l’engenierie informatique tend à répondre à de nouvelles exigences de standardisation pour une amélioration de la qualité dans une démarche plus « industrielle ». 4. Les composants logiciels Le modèle MVC est un paradigmerécent. Il a été rendu possible par l’évolution des technologies (client /serveur n-tiers, réseaux, objets etc..). La programmation par « composants » logiciels a également été à l’origine du modèle. Un composant regroupe des instructions et implémente une fonction particulière. Exemple : Composant d’accès aux données client ou composant de traduction euro/franc. Cela facilite la réutilisation, et permet les applications réparties par assemblage de composants existants. Parmi les différentes technologies de composants on peut citer les ActiveX (Com/Dcom), web services (.Net) de Microsoft Les Applets, JavaBean, EJB (entreprise java beans) etc.. de java. Les composants CORBA Les composants web servlets, Jsp(java server page) Le Applets s’exécutent sur le client, les Beans sur le serveur. Dans toutes ces technologies, un containeur encapsule le composant et assure un certain nombre de services comme le nommage, la sécurité, la persistance, la gestion de transaction…. Un espace d’exécution assure le chargement et le lien avec le système local. La JVM (java virtual machine) sert d’espace d’exécution en Java. Elle permet le développement, le déploiement et l’exécution. 5. Java et développement web Le développement web java se fait le plus souvent en utilisant un serveur d’application ou un serveur d’application d’entreprise. Serveur d’application -2- TSIG2 Développeurs J2EE Et MVC Un serveur d’application est un logiciel qui s’intégre au serveur web et lui apporte des fonctionnalités supplémentaires. Par exemple Tomcat s’intégre à Apache ou à IIS et sert de moteur d’exécution pour les Servlets et les JSP. Il permet de gérer les transactions, les connexions aux bases de données etc… Tomcat est un projet de l’Apache Software Foundation. Serveur d’application d’entreprise Ils sont utilisés pour les applications qui demandent un haut niveau de disponibilité et sont une extension des serveurs d’applications web. Ils permettent une gestion des transactions améliorées(mécanisme de transactions sur plusieurs machines, équilibage de charge, distribution de la logique fonctionnelle et transactionnelle sur plusieurs machines etc…). Les serveurs d’applications d’entreprise permettent le développement des EJB(entreprise java beans) 7. Mvc avec Tomcat Tomcat permet le développement de servlets et de JSP ce qui va permettre d’implémenter MVC. 1. le navigateur lance une requête qui est soumise à Tomcat via le serveur web. La réception de cette requête peut être faite par un servlet ou un JSP (traduit en servlet par Tomcat) qui constitue la vue. 2. La partie traitement est soumise au controleur (javabean). 3. Le controleur fait appel au modèle (classes java) . Ces classes réalisent l’accès aux données requises par le traitement. Elles doivent respecter les spécifications EJB(constructeur par défaut, un « getter » et un « setter » par données privée de la classe). 4. Le traitement récupére les données ou le résultat de l’opération dans des objets métiers correspondants aux objets manipulés. Les données peuvent être banalisées sous forme de collections par exemple . 5. La vue restitue les résultats . Les EJB seront utilisés comme composants à la place des javaBeans avec un serveur d’applications d’entreprise. -3-