Spring Web Flow - TeeJUG 2008
-
Upload
teejug -
Category
Technology
-
view
2.611 -
download
1
Transcript of Spring Web Flow - TeeJUG 2008
![Page 2: Spring Web Flow - TeeJUG 2008](https://reader033.fdocuments.net/reader033/viewer/2022060111/55695673d8b42ad3278b4c9c/html5/thumbnails/2.jpg)
14/04/2008
Plan
IntroductionIntroduction
Pourquoi Spring Web Flow ?Pourquoi Spring Web Flow ?
DémoDémo
ArchitectureArchitecture
ExempleExemple
RécapitulatifRécapitulatif
![Page 3: Spring Web Flow - TeeJUG 2008](https://reader033.fdocuments.net/reader033/viewer/2022060111/55695673d8b42ad3278b4c9c/html5/thumbnails/3.jpg)
14/04/2008
Qui suis-je ?
Mohamed Ahmed SASSI
� Diplômé de l’INSAT (Génie Logiciel)� Actuellement Consultant JEE chez Oxia
![Page 4: Spring Web Flow - TeeJUG 2008](https://reader033.fdocuments.net/reader033/viewer/2022060111/55695673d8b42ad3278b4c9c/html5/thumbnails/4.jpg)
14/04/2008
Qu’est ce que Spring Web Flow
� Spring Web Flow est un sous-projet du projet Spring Framework
� Spring Web Flow permet de construire des modules réutilisable et indépendantsappelés flows
![Page 5: Spring Web Flow - TeeJUG 2008](https://reader033.fdocuments.net/reader033/viewer/2022060111/55695673d8b42ad3278b4c9c/html5/thumbnails/5.jpg)
14/04/2008
Pourquoi Spring Web Flow ?
� Définition du flux� Le flux de navigation est clairement visible a travers la définition de flux Web (XML file)
� La définition du flux est totalement indépendantes des spécificités web.
� Définition technique cohérente du webflow� On n’est pas forcé d’utiliser des contrôleurs spécifiques dans des situations très particulières
![Page 6: Spring Web Flow - TeeJUG 2008](https://reader033.fdocuments.net/reader033/viewer/2022060111/55695673d8b42ad3278b4c9c/html5/thumbnails/6.jpg)
14/04/2008
Quoi d’autre ?
• Navigation• L'application Web typique est un mélange d'exigences de navigation • Navigation libre
• Stateless• Lors de l’invocation:
• Elle fait le travail demandé• Sélectionne la view à afficher
• Le tout dans une seule request
• Flux contrôlé• Statefull• Guide l'utilisateur avec une progression linéaire • Affiche une view en sollicitant les données demandées par cette dernière
![Page 7: Spring Web Flow - TeeJUG 2008](https://reader033.fdocuments.net/reader033/viewer/2022060111/55695673d8b42ad3278b4c9c/html5/thumbnails/7.jpg)
14/04/2008
et puis ??
� Scopes� Anciennes Applications Web
• Request Scope• Session Scope• Application Scope
� Solution Spring Web Flow• Request Scope• Flash Scope• Flow Scope• Conversation Scope
� � Scopes s’adaptent mieux aux uses cases de navigation
![Page 8: Spring Web Flow - TeeJUG 2008](https://reader033.fdocuments.net/reader033/viewer/2022060111/55695673d8b42ad3278b4c9c/html5/thumbnails/8.jpg)
14/04/2008
Encore ??!!
� Spring Web Flow (SWF) gère totalement :� Les conversations de l’utilisateur avec l’application Web.
� L’état dans lequel se trouve l’application avec possibilité de sauvegarde sur disque dur pour un retour ultérieur.
� Tous les contrôles de navigation tel que Le retour en arrière et le rafraîchissement …
� Les continuations : SWF peut restaurer l’état dans lequel il était et toutes ses variables avec les anciennes valeurs.
![Page 9: Spring Web Flow - TeeJUG 2008](https://reader033.fdocuments.net/reader033/viewer/2022060111/55695673d8b42ad3278b4c9c/html5/thumbnails/9.jpg)
14/04/2008
Architecture
� L’intégration � Spring Web Flow est très indépendant �Il a un point d’entrée spécifique pour les frameworks les plus connus
![Page 10: Spring Web Flow - TeeJUG 2008](https://reader033.fdocuments.net/reader033/viewer/2022060111/55695673d8b42ad3278b4c9c/html5/thumbnails/10.jpg)
14/04/2008
Architecture interne
� FlowExecutionManager est la façade centrale responsable de lancer les exécutions de flux pour les clients.
� Chaque exécution d’un flux est une nouvelle conversation avec le serveur.
� chaque conversation prend une structure de données locale propre à elle, appelée flow scope
![Page 11: Spring Web Flow - TeeJUG 2008](https://reader033.fdocuments.net/reader033/viewer/2022060111/55695673d8b42ad3278b4c9c/html5/thumbnails/11.jpg)
14/04/2008
Composantes
� Avec Spring Web Flow, la tâche principale des développeurs est le design et la mise en place de la définition du flux.
� Web flow est composé d’un ensemble de states
� Chaque state contient un ou plusieurs transitions utilisés pour aller vers les autres states.
� La transition est déclenché avec un event.
![Page 12: Spring Web Flow - TeeJUG 2008](https://reader033.fdocuments.net/reader033/viewer/2022060111/55695673d8b42ad3278b4c9c/html5/thumbnails/12.jpg)
14/04/2008
Flows (Flux)
� Le flux définit une conversation, ou un dialogue, entre les utilisateurs et le serveur
![Page 13: Spring Web Flow - TeeJUG 2008](https://reader033.fdocuments.net/reader033/viewer/2022060111/55695673d8b42ad3278b4c9c/html5/thumbnails/13.jpg)
14/04/2008
States (États)
� Les étapes d'un flux sont appelés states.� Action state
• Exécute un code applicatif typiquement délégué à un service dans le middle tier.
� View state• Affiche une vue, permettant ainsi à l'utilisateur de participer au flux en entrant des données ou en voyant un message.
� Subflow state• Appelle un autre flux comme sous-flux (subflow).
� Decision state• Évalue une condition pour conduire une transition à un nouvel état (state).
� Start State• Indique par quel état le flux commence.
� End state• Termine un flux.
![Page 14: Spring Web Flow - TeeJUG 2008](https://reader033.fdocuments.net/reader033/viewer/2022060111/55695673d8b42ad3278b4c9c/html5/thumbnails/14.jpg)
14/04/2008
Transitions
� Tous les états, sauf des états finaux (endstates), sont transitionable et maintiennent un jeu d'une ou plusieurs transitions qui définissent "les chemins permis" à d'autres états
� La transition est déclenché avec un event.
![Page 15: Spring Web Flow - TeeJUG 2008](https://reader033.fdocuments.net/reader033/viewer/2022060111/55695673d8b42ad3278b4c9c/html5/thumbnails/15.jpg)
14/04/2008
Events (Événements)
� Un événement est traité comme un résultat d'état, il est considéré comme le résultat logique de l'exécution d'un état
� Ce n’est que “Quelque chose qui s’est passé” dans l’état.
![Page 16: Spring Web Flow - TeeJUG 2008](https://reader033.fdocuments.net/reader033/viewer/2022060111/55695673d8b42ad3278b4c9c/html5/thumbnails/16.jpg)
14/04/2008
Récapitulons !!
� Les importants avantages de SWF:� capture le flux de navigation d'une façon claire et facilement lisible
� Permet de modéliser la navigation dans une application web avec une manière cohérente.
� Gère tous les contrôles de navigations, assurant le bon fonctionnement de l’application même si l’utilisateur utiliser le retour arrière ou le refresh.
� Permet de packager une partie d’une application web comme un module indépendant et réutilisable.
� offre une gestion sophistiquée d'état, fournissant plusieurs nouveaux scopes pour les données d’une conversation
![Page 17: Spring Web Flow - TeeJUG 2008](https://reader033.fdocuments.net/reader033/viewer/2022060111/55695673d8b42ad3278b4c9c/html5/thumbnails/17.jpg)
14/04/2008
L’exemple (Phonebook)
![Page 18: Spring Web Flow - TeeJUG 2008](https://reader033.fdocuments.net/reader033/viewer/2022060111/55695673d8b42ad3278b4c9c/html5/thumbnails/18.jpg)
14/04/2008
Principe de l’application
� Permet de chercher un salarié de la sociétéutilisant quelques critères de recherche
� Une fois que la personne trouvée, il est possible de consulter ses informations détaillées (le téléphone, les collègues)
![Page 19: Spring Web Flow - TeeJUG 2008](https://reader033.fdocuments.net/reader033/viewer/2022060111/55695673d8b42ad3278b4c9c/html5/thumbnails/19.jpg)
14/04/2008
Application
� Le code source pour l'application phonebook est inclus dans la distribution de Spring Web Flow.
� Vous pouvez aussi essayer l'application phonebook en ligne à :
http://spring.ervacon.com/swf-phonebook/.
![Page 20: Spring Web Flow - TeeJUG 2008](https://reader033.fdocuments.net/reader033/viewer/2022060111/55695673d8b42ad3278b4c9c/html5/thumbnails/20.jpg)
14/04/2008
Intégration avec Spring MVC
� Le composant qui fait cette intégration est un contrôleur spécifique de SWF:
org.springframework.webflow.executor.mvc.FlowController
� Ce contrôleur traitera tout le Flux côtéapplication
� Configuration dans phonebook-servlet-config.xml
<bean name="/phonebook.htm" class=
"org.springframework.webflow.executor.mvc.FlowController">
<property name="flowExecutor" ref="flowExecutor"/>
</bean>
![Page 21: Spring Web Flow - TeeJUG 2008](https://reader033.fdocuments.net/reader033/viewer/2022060111/55695673d8b42ad3278b4c9c/html5/thumbnails/21.jpg)
14/04/2008
La démo