Le poste client reprend la main

afternoonhandsomelySoftware and s/w Development

Nov 17, 2012 (4 years and 7 months ago)

360 views

Le poste client
reprend la main
Frédéric BAUCHER,
pour IFIPS-A3
NAL, Automne 2007
Plan
•Rappels sur le pattern MVC
•Architecture pour le web
–JSP et les taglibs
–Struts
–JSF
•Architecture pour les clients riches
–Java Web Start
–XUL
–Flex
Les solutions
•Architecture Web
–Pour le navigateur
–Struts
•Architecture RIA
–Pour un client dédiéou une extension d’un
navigateur
–Firefoxet XUL
–NetbeansPlatform
–AIR (solution Adobe)
Terminologie
•RIA : RichInternet Application
•RDA : RichDesktop Application
–RDIA (terme de la communautéFlash)
•Expérience utilisateur
MVC
Model –View–Controller
•Organisation en couche
•Contrôleur reçoit les entrées utilisateurs
PAC
•Presentation–Abstraction –Control
–Organisation hiérarchique (agent)
–La présentation reçoit les entrées utilisateur
PAC versus MVC
•Contrôleur PAC
–piloter la cohérence des facettes logicielles
entre elles
•Contrôleur MVC
–gère les entrées de l'utilisateur et de ce fait lui
permet de piloter l'exécution du programme
MVC1
A l’origine :
Servlet=>
code HTML dans les
sources Java
Est apparu
JSP =>
code Java dans les
balises JSP …
MVC2
Extrait de http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html
eshop.jsp
ShoppingServlet.java
Les tags
•jsp:useBean
•jsp:setDescriptor
Extrait de http://www.jsptut.com/Forms.jsp
getName.html
saveName.jsp
nextPage.jsp
Exemple : les tags
nextPage.jsp
saveName.jsp
getName.html
Définir son propre tag
helloWorld.jsp
Extrait de http://www.orionserver.com/docs/tutorials/taglibs/1.html
L’interface Tag de tagext
Code traitant le tag
(appelépar le web
container grâce
aux info du handle)
Accroche (handle)
PageContext
Framework pour web-container
•Action-basedframework
–Struts2
•Component-basedframework
–JSF(JSR-127, Java CommunityProcess),
–Wicket(Apache Foundation)
–Tapestry
Struts2
Quelques lignes sur Struts
struts.xml
Interceptors
•Mécanisme autour de l’Action
–Pre& post process
–Validation des données de la requête
–Traitement des exceptions
–Callback aux étapes du cycle de traitement
Struts
JSF : intro
Exemple
descripteur de déploiement
Extrait de web.xml
Extrait de faces-config.xml
Fichier java
Model/calculator.java
calculatorControler.java
Exemple : page renvoyée
results.jsp
Extrait de http://www.ibm.com/developerworks/java/library/j-jsf2/index.html?S_TACT=105AGX02&S_CMP=EDU
Des composants réutilisables
Clients riches
•Java Web Start
•Les clients riches dans le navigateurs
–Languagede description d’interfaces
•XUL
•MXML
•Les clients hors navigateurs
–Les plateformes
•Eclipse RCP
•NetbeansPlatforms
Java Web Start
Extrait de http://pagesperso-orange.fr/emmanuel.remy/
texte.jnlp
MozillaXUL
•XUL pour décrire l’interface
•JavaScript pour les traitement locaux
–Flux XML, JSON pour les échanges de
données
•XPCOM pour les traitements distants
–mysqlxpcom
Focus sur Flex
•Modèles de déploiement
–Client-sideonly
–Access server data throughsimple RPC
services
–FlexData Services
Client-only& simple RPC
FlexData Services
MVC dans Cairngorn
Autre exemple basésur Flash
•LZX est une description
XML
et
JavaScript
de
l'application identique, sur le principe, à
XUL
et
XAML
. Cette description déclarative permet de
construire une interface graphique très
rapidement et de bénéficier d'un prototype dans
un laps de temps réduit.
•Le serveur OpenLaszloest une
servlet
Java
qui
compile l'application LZX en un binaire
exécutable. L'application résultante est compilée
au choix par l'utilisateur vers le format
propriétaire Flash, ou vers le format ouvert
HTML
/
AJAX
.
Conclusion
•Modèles d’exécution
–Ajax
–JSF, Struts
–RCP
Ajax
JSF, Struts
RCP