Sie sind auf Seite 1von 43

Formation Webase 5

Formation Webase 5
Ses secrets, de larchitecture MVC lapplication Web

Adrien Grand <jpountz@via.ecp.fr>


Centrale Rseaux

Formation Webase 5

Sommaire
1 Obtenir des informations sur Webase 5 2 Composants de Webase 5

Un langage : Java Dirents frameworks Un serveur applicatif : Tomcat Un serveur web : Apache Une base de donne : PostgreSQL
3 Les concepts importants de Webase 5

Dependency injection et Aspect Oriented Programming Les architectures MVC et 3 tiers


4 Webase 5 avec les mains

Les principaux packages Webase 5 Les chiers de conguration de Webase 5

Formation Webase 5 Obtenir des informations sur Webase 5

Obtenir des informations sur Webase 5


Il existe dirents endroits o lon peut obtenir des informations sur Webase 5 : Le trac de Webase 5. Le wiki de VIA :
Le manuel de lutilisateur, Le manuel du dveloppeur,

Le rapport du projet. Les todos en cours. Demander un dveloppeur ou sur #webase@irc.diwi.org.

Formation Webase 5 Composants de Webase 5

Composants de Webase 5
Un langage de programation Java, Un meta framework Spring, Un framework MVC Struts, Un framework pour lORM1 Hibernate, Un framework de scurisation AcegiSecurity, Une implmentation de SOAP2 pour les web-services Axis, Un systme de logs Log4J, Un serveur applicatif Tomcat, Un serveur Web Apache, Une base de donnes PostgreSQL.
1 2

Object Relationnal Mapping Simple Object Access Protocol

Formation Webase 5 Composants de Webase 5 Un langage : Java

Outline
1 Obtenir des informations sur Webase 5 2 Composants de Webase 5

Un langage : Java Dirents frameworks Un serveur applicatif : Tomcat Un serveur web : Apache Une base de donne : PostgreSQL
3 Les concepts importants de Webase 5

Dependency injection et Aspect Oriented Programming Les architectures MVC et 3 tiers


4 Webase 5 avec les mains

Les principaux packages Webase 5 Les chiers de conguration de Webase 5

Formation Webase 5 Composants de Webase 5 Un langage : Java

Un langage de programmation : Java

Le langage de programmation utilis est Java. Pour apprendre le Java, tu peux lire les Slides de la formation de Tama et emprunter le livre Java en concentr disponible aux VIAlabs.

Formation Webase 5 Composants de Webase 5 Dirents frameworks

Outline
1 Obtenir des informations sur Webase 5 2 Composants de Webase 5

Un langage : Java Dirents frameworks Un serveur applicatif : Tomcat Un serveur web : Apache Une base de donne : PostgreSQL
3 Les concepts importants de Webase 5

Dependency injection et Aspect Oriented Programming Les architectures MVC et 3 tiers


4 Webase 5 avec les mains

Les principaux packages Webase 5 Les chiers de conguration de Webase 5

Formation Webase 5 Composants de Webase 5 Dirents frameworks

Un meta framework : Spring


Spring est un framework un peu particulier dans la mesure o il fournit pleins doutils pour relier tous les services utiles la cration dune application web. Spring introduit notamment deux concepts fondamentaux : Dependency Injection (DI), Aspect Oriented Programming (AOP). qui seront abords dans la section suivante. Spring vient notamment en secours dHibernate pour le modle (en fournissant des mthodes telles que getHibernateTemplate) et simplie encore laccs la base de donnes.

Formation Webase 5 Composants de Webase 5 Dirents frameworks

Un framework MVC : Struts

Webase5 utilise Struts comme Framework MVC. Struts soccupe notamment des parties vue et contrleur tandis que Spring fait le lien entre les 3 couches et vient en soutien dHibernate pour les modles. Struts permet notamment une gestion avance des templates grce Tiles un template est un assemblage de plusieurs JSPs, possibilit dhritage, etc.

Formation Webase 5 Composants de Webase 5 Dirents frameworks

Un framework grant la persistance des objets en base de donnes relationnelle : Hibernate


Hibernate implmente une syntaxe SQL particulire : le HQL. Cette couche permet de ne pas tre dpendant du type de base de donnes utilis (PostgreSQL, MySQL, etc...) et de manipuler directement des objets, ce qui simplie grandement les requtes. Par exemple, select carte from CarteVIA carte join carte.emprunts emprunt where lower(emprunt.compteCaution.membre.login) = ? On rcupre alors un objet de type CarteVIA. Hibernate dtermine la requete SQL quivalente grce aux chiers de mapping (en .hbm.xml) qui explicitent la correspondance table objet.

Formation Webase 5 Composants de Webase 5 Dirents frameworks

Un framework de scurisation : Acegi


Acegi soccupe de deux problmes importants : lauthentication, lautorisation. Ct authentication Acegi est congur pour authentier sur le LDAP du SdE. Ct autorisation, Acegi permet de restreindre en fonction des rles de la personne authentie : laccs aux direntes pages, la visualisation de certains lments dune page, lexcution des mthodes.

Formation Webase 5 Composants de Webase 5 Dirents frameworks

Une implmentation de SOAP pour les web-services : Axis

Axis est une implmentation de SOAP qui permet direntes applications hberges sur des htes dirents de partager des informations. On parle de web-service. Exemples : synchronisation de la chambre avec le SdE, communication avec le connectd.

Formation Webase 5 Composants de Webase 5 Dirents frameworks

Un systme de logs : Log4J

Pour dboguer, limportance des logs est cruciale. Avec Log4J, on peut : dnir le niveau de verbosit des logs des dirents composants de Webase 5 (Spring, Hibernate, etc...), ajouter ses propres logs trs simplement.

Formation Webase 5 Composants de Webase 5 Un serveur applicatif : Tomcat

Outline
1 Obtenir des informations sur Webase 5 2 Composants de Webase 5

Un langage : Java Dirents frameworks Un serveur applicatif : Tomcat Un serveur web : Apache Une base de donne : PostgreSQL
3 Les concepts importants de Webase 5

Dependency injection et Aspect Oriented Programming Les architectures MVC et 3 tiers


4 Webase 5 avec les mains

Les principaux packages Webase 5 Les chiers de conguration de Webase 5

Formation Webase 5 Composants de Webase 5 Un serveur applicatif : Tomcat

Un serveur applicatif : Tomcat

Tomcat sert dintermdiaire entre le serveur Web et le bytecode Java produit par compilation du code de Webase. Il se charge de traduire la requte du client que le serveur web lui a transmis, dexcuter les mthodes qui vont bien, et de retourner le rsultat au serveur web. Tomcat dispose dun serveur http et peut donc sexcuter de manire autonome (sur le port 8080 par dfaut) ou bien derrire Apache via lutilisation du mod_jk.

Formation Webase 5 Composants de Webase 5 Un serveur web : Apache

Outline
1 Obtenir des informations sur Webase 5 2 Composants de Webase 5

Un langage : Java Dirents frameworks Un serveur applicatif : Tomcat Un serveur web : Apache Une base de donne : PostgreSQL
3 Les concepts importants de Webase 5

Dependency injection et Aspect Oriented Programming Les architectures MVC et 3 tiers


4 Webase 5 avec les mains

Les principaux packages Webase 5 Les chiers de conguration de Webase 5

Formation Webase 5 Composants de Webase 5 Un serveur web : Apache

Un serveur web : Apache

On pourrait bien sr faire tourner Tomcat sur le port 80. Maintenant, si lon souhaite galement faire tourner un apache sur la mme machine, il se pose un problme : les deux serveurs ne peuvent pas tourner sur le port 80. La solution : lutilisation du mod_jk. Les requtes sont alors transmises Tomcat par Apache. Un autre intrt de mod_jk peut tre de faire tourner plusieurs instances dun serveur Tomcat derrire le mme Apache (si lou veut dcoupler ltat de fonctionnement pour dirents virtualhosts par exemple ou pour faire du load balancing avec des tomcats rpartis sur direntes machines).

Formation Webase 5 Composants de Webase 5 Une base de donne : PostgreSQL

Outline
1 Obtenir des informations sur Webase 5 2 Composants de Webase 5

Un langage : Java Dirents frameworks Un serveur applicatif : Tomcat Un serveur web : Apache Une base de donne : PostgreSQL
3 Les concepts importants de Webase 5

Dependency injection et Aspect Oriented Programming Les architectures MVC et 3 tiers


4 Webase 5 avec les mains

Les principaux packages Webase 5 Les chiers de conguration de Webase 5

Formation Webase 5 Composants de Webase 5 Une base de donne : PostgreSQL

Une base de donnes : PostgreSQL

Webase 5 utilise une base de donnes PostgreSQL. Cependant, grce la couche dabstraction fournie par Hibernate, il serait extrmement facile de changer.

Formation Webase 5 Les concepts importants de Webase 5 Dependency injection et Aspect Oriented Programming

Outline
1 Obtenir des informations sur Webase 5 2 Composants de Webase 5

Un langage : Java Dirents frameworks Un serveur applicatif : Tomcat Un serveur web : Apache Une base de donne : PostgreSQL
3 Les concepts importants de Webase 5

Dependency injection et Aspect Oriented Programming Les architectures MVC et 3 tiers


4 Webase 5 avec les mains

Les principaux packages Webase 5 Les chiers de conguration de Webase 5

Formation Webase 5 Les concepts importants de Webase 5 Dependency injection et Aspect Oriented Programming

Linjection de dpendance (DI)

Un des objectifs de Spring est de dcoupler toutes les parties dune application web de sorte quelles naient pas besoin de se soucier les unes des autres pour fonctionner. Utilisation massive dinterfaces. On importe ces interfaces et cest Spring qui se charge de mettre la bonne implmentation derrire. Cest linjection de dpendance.

Formation Webase 5 Les concepts importants de Webase 5 Dependency injection et Aspect Oriented Programming

LAspect Oriented Programming (AOP)

Toujours pour dcoupler, lAOP est une best practice dont le but est de sparer les aspects : transaction, logs, etc. Une fonction doit soccuper uniquement de la tche dont elle est responsable. Utilisation abondante des annotations et des chiers de conguration de Spring.

Formation Webase 5 Les concepts importants de Webase 5 Les architectures MVC et 3 tiers

Outline
1 Obtenir des informations sur Webase 5 2 Composants de Webase 5

Un langage : Java Dirents frameworks Un serveur applicatif : Tomcat Un serveur web : Apache Une base de donne : PostgreSQL
3 Les concepts importants de Webase 5

Dependency injection et Aspect Oriented Programming Les architectures MVC et 3 tiers


4 Webase 5 avec les mains

Les principaux packages Webase 5 Les chiers de conguration de Webase 5

Formation Webase 5 Les concepts importants de Webase 5 Les architectures MVC et 3 tiers

LArchitecture MVC

Avec larchitecture MVC, une application web est divise en deux entits distinctes : le modle les donnes qui seront aches, la vue la structure logique de la page web. Mais a nest pas tout, il faut maintenant faire passer les donnes aux vues Rle du contrleur.

Formation Webase 5 Les concepts importants de Webase 5 Les architectures MVC et 3 tiers

Larchitecture 3 tiers

Avec larchitecture 3 tiers, une application web est divise en trois couches : la prsentation ce que lutilisateur voit, la business logic le cur de lapplication, le DAO les donnes et laccs aux donnes. La rgle dor est que chaque couche ne doit communiquer quavec la couche juste en dessous. Ainsi, la couche prsentation ne peut communiquer quavec la couche business mais ne doit jamais communiquer directement avec la couche DAO.

Formation Webase 5 Webase 5 avec les mains Les principaux packages Webase 5

Outline
1 Obtenir des informations sur Webase 5 2 Composants de Webase 5

Un langage : Java Dirents frameworks Un serveur applicatif : Tomcat Un serveur web : Apache Une base de donne : PostgreSQL
3 Les concepts importants de Webase 5

Dependency injection et Aspect Oriented Programming Les architectures MVC et 3 tiers


4 Webase 5 avec les mains

Les principaux packages Webase 5 Les chiers de conguration de Webase 5

Formation Webase 5 Webase 5 avec les mains Les principaux packages Webase 5

Les principaux packages Webase 5

Le projet Webase 5 est compos de dirents packages ayant chacun un rle bien particulier. Prenons lexemple de la gestion des prts des membres.

Formation Webase 5 Webase 5 avec les mains Les principaux packages Webase 5

webase5.action.forward

webase5.action.forward Les vues gnriques de Webase 5. Dans le cadre de la gestion des prts, cette action renvoit un forward qui achera lensemble des prts du membre, le montant sur le compte de caution, etc...

Formation Webase 5 Webase 5 avec les mains Les principaux packages Webase 5

webase5.action
webase5.action Les classes de ce package hritent gnralement dune classe correspondante dans action.forward. Par exemple, si lon souhaite crditer le compte de caution, on cre une classe MembreCrediterCompteCaution qui hrite de MembrePretsForward, crdite le compte de caution, et qui selon le cas renvoie soit un redirect, soit super.execute. Certaines actions nont pas daction forward associ (typiquement la recherche de membre) et hritent donc simplement de la classe Action.

Formation Webase 5 Webase 5 avec les mains Les principaux packages Webase 5

webase5.dao

webase5.dao Data Access Objects. Ce package contient toutes les mthodes daccs la base de donnes. Par exemple linterface AdministrationDao contient tous les prototypes des mthodes dnies dans AdministrationImpl qui implmente les mthodes dclares dans AdministrationDao. Dans AdministrationDaoImpl, on trouvera notamment la mthode ndEmpruntsByMembre (utilise par MembrePretsForward). webase5.dao.ldap Idem pour laccs au LDAP.

Formation Webase 5 Webase 5 avec les mains Les principaux packages Webase 5

webase5.dao

webase5.exception Les exceptions lances par Webase. On y trouve notamment EmpruntNonRendusException.

Formation Webase 5 Webase 5 avec les mains Les principaux packages Webase 5

webase5.form

webase5.form Les formulaires de Webase 5. Ils permettent de rcuprer les donnes rentres dans le html gnr. On doit y dnir les variables que lon rcupre et les setters et getters associs. Il est galement prfrable de crer une mthode validate qui sassure de lintgrit des donnes entres et ventuellement une mthode reset qui se charge de remplir le formulaire avec des valeurs par dfaut lors du chargement de la page ou de la rinitialisation du formulaire.

Formation Webase 5 Webase 5 avec les mains Les principaux packages Webase 5

webase5.model

webase5.model Cest l que sont dnies les classes utilises dans le reste du code de Webase. On y trouve par exemple la dnition de la classe Emprunt et de ses mthodes de base (toString, les setters, getters, etc...). webase5.model.ldap Idem pour les classes dont les informations se trouvent dans le LDAP et non la base de donnes webase5. webase5.model.topologie Idem pour la base de topologie.

Formation Webase 5 Webase 5 avec les mains Les principaux packages Webase 5

webase5.service

webase5.service Cest l que sont dnies les mthodes de haut niveau associes aux dirents composants logiques de Webase 5 : la permanence, les trsorerie, etc... Par exemple, linterface TresorerieService dnit les prototypes des mthodes dnies dans TresorerieServiceImpl qui implmente TresorerieService. On peut notamment y trouver la mthode crediterCompteCaution utilise par laction MembreCrediterCompteCaution.

Formation Webase 5 Webase 5 avec les mains Les principaux packages Webase 5

webase5.ws

webase5.ws Cest l quon trouve les classes utilises pour les web-services. Par exemple, pour repiauler un membre, il y a un proxy MembreSeviceProxy qui permet Illusion dappeler la mthode repiaulerMembre de sorte de synchroniser la localisation des machines dans Webase 5 et la piaule des membres sur le campus.

Formation Webase 5 Webase 5 avec les mains Les chiers de conguration de Webase 5

Outline
1 Obtenir des informations sur Webase 5 2 Composants de Webase 5

Un langage : Java Dirents frameworks Un serveur applicatif : Tomcat Un serveur web : Apache Une base de donne : PostgreSQL
3 Les concepts importants de Webase 5

Dependency injection et Aspect Oriented Programming Les architectures MVC et 3 tiers


4 Webase 5 avec les mains

Les principaux packages Webase 5 Les chiers de conguration de Webase 5

Formation Webase 5 Webase 5 avec les mains Les chiers de conguration de Webase 5

acegi.xml

Cest l que sont dnis les paramtres relatifs lauthentication et les autorisations. On trouve notamment en bas du chier les autorisations requises pour charger telle ou telle page en fonction de luri. Il exite une documentation trs bien faite disponible http://www.acegisecurity.org/docbook/acegi.html.

Formation Webase 5 Webase 5 avec les mains Les chiers de conguration de Webase 5

hibernate.xml

Dans ce chier, on dnit les paramtres de la base de donnes(son type (PostgreSQL), lutilisateur avec lequel il faut se connecter, le mot de passe, etc...), du LDAP SdE et de lActive Directory an de pouvoir eectuer les requtes HQL de faon transparente. Il y a aussi les chiers de mapping qui sevent faire la correspondance entre le champ dune table et lattribut dune classe.

Formation Webase 5 Webase 5 avec les mains Les chiers de conguration de Webase 5

log4j.xml

Dans le log4j.xml, on peut dnir le format des logs que lon dsire ainsi que le degr de verbosit des dirents composants de Webase : Spring, Hibernate, etc... La syntaxe est trs intuitive.

Formation Webase 5 Webase 5 avec les mains Les chiers de conguration de Webase 5

webase5-spring.xml

Spring sert de glue entre les dirents compsosants de Webase 5 et on trouve donc normments de paramtres dnis dans ce chier, notamment : lemplacement des chiers de conguration globaux webase5.properties et mail.properties, les beans de Service, la correspondance uri action, divers beans.

Formation Webase 5 Webase 5 avec les mains Les chiers de conguration de Webase 5

struts-cong.xml

Dans le chier de conguration de struts, on peut trouver : la correspondance nom du formulaire classe associe, laction invoquer en fonction de luri (redondance avec Spring) ainsi que le template charger en fonction du forward appel (donn par mapping.ndForwardnomDuForward) dans les actions) un lien vers la cong de Tiles pour que Struts puisse faire la correspondance nom du template JSPs.

Formation Webase 5 Webase 5 avec les mains Les chiers de conguration de Webase 5

webase5-tiles.xml

Cest l que sont dnis les templates. On dnit dabord un template dfaut avec le menu, le header, le footer, etc... communs toutes les pages de Webase 5. Ensuite on cre des templates qui hritent de ce template principal en remplaant le corps et les onglets. La syntaxe est trs simple comprendre.

Formation Webase 5 Webase 5 avec les mains Les chiers de conguration de Webase 5

Cest ni ! :(

FIN

Das könnte Ihnen auch gefallen