3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS...
Transcript of 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS...
3I017 - TECHNOLOGIES DUWEBIntroduction - Architecture orienteacutee service
Monday 27
thJanuary 2020
Laure Soulier
Organisation de lrsquoUE
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Objectifs de lrsquoUE
Acquisition de techniques pour le deacuteveloppement de sites
Web modernes
Architectures des Sites Web sociaux
Deacuteveloppement de services Web
Deacuteveloppement drsquointerfaces hommemachine
Traitement de grandes masses de donneacutees
L3 Info - 3IN017 151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Objectifs de lrsquoUE
Un enseignement rdquoconcretrdquo baseacute sur la manipulation de
technologies
Cours Preacutesentation des diffeacuterentes technologies et de leur articulationcours drsquoouverture sur des sujets connexes
TD Prise en mains des technologies
TP Mise en oeuvre de ces technologies
Les TPs sont tous structureacutes autour du deacuteveloppement drsquoun site web
L3 Info - 3IN017 251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Objectifs de lrsquoUE
Deacuteveloppement drsquoun site web type social
L3 Info - 3IN017 351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation
Evaluation de lrsquoUE
bull LrsquoUE nrsquoest pas une UE difficile mais une UE dense une agrave deuxtechnologies par semaine aucun retour en arriegravere
bull 50 controcircle continundash Evaluation serveur agrave mi-parcours (5pts)ndash Soutenance de projet (15pts)
bull 50 Examen terminal sur feuille Lrsquoexamen est long
L3 Info - 3IN017 451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation
Evaluation serveur agrave mi-parcours 5
bull Se deacuteroule en TME 5bull Faire le point sur ce qui a eacuteteacute fait et ce qui manquebull Permet de commencer le deacuteveloppement du client la semaine suivante
L3 Info - 3IN017 551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation
Soutenance de projet 15
bull Projet en binocircme ou monocircmebull Reacutealisation de Birdy cocircteacute Client + cocircteacute Serveurbull Impleacutementation de fonctionnaliteacutes obligatoires - voir cahier des chargesbull Impleacutementation de fonctionnaliteacutes additionnelles
Notation
bull Preacutesentation de la reacutealisation (TME 11) 7bull Modifications agrave apporter au projet 8
Attention il y a du code existant on le sait et on va veacuterifier bull Veacuterification automatique de plagiat (avec projets existants sur le web et
tous les projets de la promo)bull Vous devez connaicirctre parfaitement votre codebull Vous devez savoir lrsquoexpliquer et y ajouter des modifications
L3 Info - 3IN017 651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation de projet
A reacutealiser
bull Page drsquoaccueil
bull Formulaires de connexion enregistrement
bull Page de profil
bull Fonctions drsquoajout de contacts
bull Fonctionnaliteacutes permettant de poster un commentaire
bull Fonctions de recherches theacutematiques
bull Statistiques sur les utilisateurs (centres drsquointeacuterecircts amis les plus actifs tauxde reacuteponse etc)
bull Plus tout autre fonctionnaliteacute originale
L3 Info - 3IN017 751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Planning de lrsquoUE
S Cours TD TME1 Intro - AOSServices - -2 AOS (Suite) et API REST Modeacutelisation (TD) Prise en main3 BD rel (MySQL) Services (I) Services4 Big DataNoSQL - MongoDB MySQL MySQL5 HTMLCSSJavascript MongoDB MongDB (I)6 Javascript ReactJS C-S Eval serveur (4h TME)7 React JS HTMLCSS (4h TME)8 Cours drsquoouverture ReactJS Dev client9 Cloud Computing ReactJS Dev Client10 Moteur de recherche - MapReduce ReactJS Dev client11 Annales MapReduce MapReduce12 - Soutenance projet (2h TME)
(I) interro TD - agrave titre indicatif voir avec le chargeacute de TD eacutevaluation TME mi-parcours et projet
L3 Info - 3IN017 851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
AttentionOn a que 11 semaines ) Il faut utiliser les technos reacutecentes et robustes
Choix de lrsquoenseignementOn a deacutecideacute de srsquoappuyer sur vos connaissance acquises
bull Client Web (et non pas client mobile de type IPhoneAndroid)bull Serveur Tomcat (JAVA)bull On garde une base SQL (mais on rajoute du NoSQL)
L3 Info - 3IN017 951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Ce que lrsquoon va utiliser
bull Preacutesentation graphique HTML CSS JavascriptReact JS
bull Serveur de service Web Apache Tomcat
bull Language deacuteveloppement cocircteacute serveur JAVA
bull Communication client - serveur React JS (librairie axios)
bull Bases de Donneacutees MySQL MongoDB
L3 Info - 3IN017 1051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Les TPs sont tous structureacutes autour du deacuteveloppement drsquoun
site de type LeBonPlan
Cela implique
Les TPs sont additifs ) retardabsence agrave un TP doit ecirctre rattrapeacute avantle TP suivant
Les TDs introduisent les TPs ) absence en TD = grosses difficulteacutes enTP
Les cours preacutesentent les technologies ) absence en cours = retard en TP
L3 Info - 3IN017 1151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Si le point 1 nrsquoest qursquoaffaire de deacutebrouillardise le point 2 est celui qui doitrester dans un coin de votre tecircte
Si les technos doivent ecirctre maicirctriseacutees le plus important demeure lacompreacutehension de leur imbrication
Les diffeacuterents points abordeacutes recoupent des notions eacutetudieacutees en profondeuren Master programmation distribueacutee (Master SAR) reacuteseau (Master RES)deacuteveloppement logiciel (Master STL) traitement de donneacutees (Master DAC)
L3 Info - 3IN017 1251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Ce que le cours nrsquoest pasne vous apporte pas
bull Une connaissance profonde de toutes les technologiesbull Vous ne serez pas expert de deacuteveloppement web agrave la fin de ce cours A vous
de parfaire vos connaissancesbull Il y a des technologies plus reacutecentes (Spring Angular ) qui demandent
un niveau drsquoabstraction plus important Si vous comprenez ce cours voussaurez apprendre ces technologies
Reacutepeacutetition Cette UE est structureacutee autour drsquoun projet qui doit ecirctre la sourcede motivation de chacun Les enseignants seront ouverts (et favorables) agravetoute propositionpersonnalisation de lrsquoUE Pas de projetimplication ) pas derdquodiplocircmerdquo
L3 Info - 3IN017 1351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Pour vous aider Forum de discussion
bull Utilisation drsquoune messagerie pour les discussions entre eacutetudiants +enseignantseacutetudiants
bull Vous pouvez poser toutes les questionsbull Vous pouvez (devez) vous reacutepondre entre vous (on reacutepondra eacutegalement)bull MAIS ON NE PARTAGE PAS DE CODE (Je sais tout )bull Inscription httpschannellip6frsignup_user_completeid=6hs5kuh8effj7eenu3cnt4bhar
Questions CoursTDProjet BirdyLogistique - ExamensRandom - ActuWeb
L3 Info - 3IN017 1451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La team TechnoWeb
bull Laure Soulier responsable drsquoUE chargeacutee du cours TDTMEbull Jean-Noeumll Vittaut chargeacute TDTMEbull Adrien Pouyet chargeacute TDTME
L3 Info - 3IN017 1551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Questions
L3 Info - 3IN017 1651
Architecture Client-Serveur
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Architecture Client-Serveur
Mais plusieurs configurations
bull Un client un serveurbull Plusieurs clients un serveurbull Un client des serveurs
L3 Info - 3IN017 1751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture Client serveur
bull Client (HTML CSS JAVASCRIP )ndash Il eacutetablit la connexion au serveur agrave destination drsquoun ou plusieurs ports
reacuteseauxndash lorsque la connexion est accepteacutee par le serveur il communique
interroge le serveur au moyen de requecirctesbull Serveur
ndash Il attend une connexion entrante sur un ou plusieurs portsndash A la connexion drsquoun client sur le port il communique avec le client au
moyen de reacuteponsesL3 Info - 3IN017 1851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Pages Web stockeacutees sur un serveur Web
lthtmlgtLe symbole de Linux estltimg src=laquo photopng raquogthelliplthtmlgt get photopng
host Le symbole de Linux est
eacutecran du navigateur
disque durdu serveur
get linuxhtmlhost
internet
lthtmlgthellipLe symbole de Linux estltimg src=laquophotopngraquogthelliplthtmlgt
linuxhtml
photopng
Quest-ce que Linux
lthtmlgthellip Le symbole de Linux estltimg src=laquo photopng raquohelliplthtmlgt
200 en-tecirctes
200 en-tecirctes
L3 Info - 3IN017 1951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Mise en place de services Web
34 +21 = 55
eacutecran du navigateur
disque duret processeur
du serveur
get additionphpN1=34ampN2=21
internet
lthtmlgt34+21= 55lthtmlgt
200 en-tecirctes
Combien font
34 21+ OKlthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
lthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
L3 Info - 3IN017 2051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Modegravele - Vue - Controlleur (MVC)
L3 Info - 3IN017 2151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Serveurs PHP vs JAVA
bull Deux grandes eacutecoles
PHP Symfony Doctrinebull Avantages
ndash Apprentissage facilendash Multi-plateformesndash Deacuteploiement drsquoapplication
simplesndash Neacutecessite peu de configura-
tion
bull Inconvenientsndash Pas de typage (langage de
script) maintenance et de-bug tregraves compliqueacutes
ndash Pas de reacutetro-compatibiliteacute(pas adaptable si codeacute aveclrsquoancienne version de PHP)
JAVA TOMCAT Servletsbull Avantages
ndash Plus adapteacute pour des appli-cations web qui neacutecessitentdes preacutecisions dans les opeacutera-tions
ndash Etape de compilation qui fa-cilite la maintenante
ndash Eco systegraveme plus deacuteveloppeacuteque PHP reacutetro-compatibiliteacute
bull Inconveacutenientsndash Systegraveme lourd lors du deacute-
ploiementconfigndash Apprentissage plus com-
pliqueacute que PHP
L3 Info - 3IN017 2251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
De tregraves nombreuses technos
bull Langages deacuteveloppement Web Java PHP ASP etc
bull Frameworks de deacuteveloppement Struts Java Server Faces Flex Open Lazlo etc
bull Serveurs de services Web Tomcat IIS Google Web Server etc
bull Moteurs de bases de donneacutees MySQL Hadoop MongoDB etc
bull Formats drsquoeacutechange HTML XML JSON SOAP etc
L3 Info - 3IN017 2351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Objectifs de lrsquoUE
Acquisition de techniques pour le deacuteveloppement de sites
Web modernes
Architectures des Sites Web sociaux
Deacuteveloppement de services Web
Deacuteveloppement drsquointerfaces hommemachine
Traitement de grandes masses de donneacutees
L3 Info - 3IN017 151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Objectifs de lrsquoUE
Un enseignement rdquoconcretrdquo baseacute sur la manipulation de
technologies
Cours Preacutesentation des diffeacuterentes technologies et de leur articulationcours drsquoouverture sur des sujets connexes
TD Prise en mains des technologies
TP Mise en oeuvre de ces technologies
Les TPs sont tous structureacutes autour du deacuteveloppement drsquoun site web
L3 Info - 3IN017 251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Objectifs de lrsquoUE
Deacuteveloppement drsquoun site web type social
L3 Info - 3IN017 351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation
Evaluation de lrsquoUE
bull LrsquoUE nrsquoest pas une UE difficile mais une UE dense une agrave deuxtechnologies par semaine aucun retour en arriegravere
bull 50 controcircle continundash Evaluation serveur agrave mi-parcours (5pts)ndash Soutenance de projet (15pts)
bull 50 Examen terminal sur feuille Lrsquoexamen est long
L3 Info - 3IN017 451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation
Evaluation serveur agrave mi-parcours 5
bull Se deacuteroule en TME 5bull Faire le point sur ce qui a eacuteteacute fait et ce qui manquebull Permet de commencer le deacuteveloppement du client la semaine suivante
L3 Info - 3IN017 551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation
Soutenance de projet 15
bull Projet en binocircme ou monocircmebull Reacutealisation de Birdy cocircteacute Client + cocircteacute Serveurbull Impleacutementation de fonctionnaliteacutes obligatoires - voir cahier des chargesbull Impleacutementation de fonctionnaliteacutes additionnelles
Notation
bull Preacutesentation de la reacutealisation (TME 11) 7bull Modifications agrave apporter au projet 8
Attention il y a du code existant on le sait et on va veacuterifier bull Veacuterification automatique de plagiat (avec projets existants sur le web et
tous les projets de la promo)bull Vous devez connaicirctre parfaitement votre codebull Vous devez savoir lrsquoexpliquer et y ajouter des modifications
L3 Info - 3IN017 651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation de projet
A reacutealiser
bull Page drsquoaccueil
bull Formulaires de connexion enregistrement
bull Page de profil
bull Fonctions drsquoajout de contacts
bull Fonctionnaliteacutes permettant de poster un commentaire
bull Fonctions de recherches theacutematiques
bull Statistiques sur les utilisateurs (centres drsquointeacuterecircts amis les plus actifs tauxde reacuteponse etc)
bull Plus tout autre fonctionnaliteacute originale
L3 Info - 3IN017 751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Planning de lrsquoUE
S Cours TD TME1 Intro - AOSServices - -2 AOS (Suite) et API REST Modeacutelisation (TD) Prise en main3 BD rel (MySQL) Services (I) Services4 Big DataNoSQL - MongoDB MySQL MySQL5 HTMLCSSJavascript MongoDB MongDB (I)6 Javascript ReactJS C-S Eval serveur (4h TME)7 React JS HTMLCSS (4h TME)8 Cours drsquoouverture ReactJS Dev client9 Cloud Computing ReactJS Dev Client10 Moteur de recherche - MapReduce ReactJS Dev client11 Annales MapReduce MapReduce12 - Soutenance projet (2h TME)
(I) interro TD - agrave titre indicatif voir avec le chargeacute de TD eacutevaluation TME mi-parcours et projet
L3 Info - 3IN017 851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
AttentionOn a que 11 semaines ) Il faut utiliser les technos reacutecentes et robustes
Choix de lrsquoenseignementOn a deacutecideacute de srsquoappuyer sur vos connaissance acquises
bull Client Web (et non pas client mobile de type IPhoneAndroid)bull Serveur Tomcat (JAVA)bull On garde une base SQL (mais on rajoute du NoSQL)
L3 Info - 3IN017 951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Ce que lrsquoon va utiliser
bull Preacutesentation graphique HTML CSS JavascriptReact JS
bull Serveur de service Web Apache Tomcat
bull Language deacuteveloppement cocircteacute serveur JAVA
bull Communication client - serveur React JS (librairie axios)
bull Bases de Donneacutees MySQL MongoDB
L3 Info - 3IN017 1051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Les TPs sont tous structureacutes autour du deacuteveloppement drsquoun
site de type LeBonPlan
Cela implique
Les TPs sont additifs ) retardabsence agrave un TP doit ecirctre rattrapeacute avantle TP suivant
Les TDs introduisent les TPs ) absence en TD = grosses difficulteacutes enTP
Les cours preacutesentent les technologies ) absence en cours = retard en TP
L3 Info - 3IN017 1151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Si le point 1 nrsquoest qursquoaffaire de deacutebrouillardise le point 2 est celui qui doitrester dans un coin de votre tecircte
Si les technos doivent ecirctre maicirctriseacutees le plus important demeure lacompreacutehension de leur imbrication
Les diffeacuterents points abordeacutes recoupent des notions eacutetudieacutees en profondeuren Master programmation distribueacutee (Master SAR) reacuteseau (Master RES)deacuteveloppement logiciel (Master STL) traitement de donneacutees (Master DAC)
L3 Info - 3IN017 1251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Ce que le cours nrsquoest pasne vous apporte pas
bull Une connaissance profonde de toutes les technologiesbull Vous ne serez pas expert de deacuteveloppement web agrave la fin de ce cours A vous
de parfaire vos connaissancesbull Il y a des technologies plus reacutecentes (Spring Angular ) qui demandent
un niveau drsquoabstraction plus important Si vous comprenez ce cours voussaurez apprendre ces technologies
Reacutepeacutetition Cette UE est structureacutee autour drsquoun projet qui doit ecirctre la sourcede motivation de chacun Les enseignants seront ouverts (et favorables) agravetoute propositionpersonnalisation de lrsquoUE Pas de projetimplication ) pas derdquodiplocircmerdquo
L3 Info - 3IN017 1351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Pour vous aider Forum de discussion
bull Utilisation drsquoune messagerie pour les discussions entre eacutetudiants +enseignantseacutetudiants
bull Vous pouvez poser toutes les questionsbull Vous pouvez (devez) vous reacutepondre entre vous (on reacutepondra eacutegalement)bull MAIS ON NE PARTAGE PAS DE CODE (Je sais tout )bull Inscription httpschannellip6frsignup_user_completeid=6hs5kuh8effj7eenu3cnt4bhar
Questions CoursTDProjet BirdyLogistique - ExamensRandom - ActuWeb
L3 Info - 3IN017 1451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La team TechnoWeb
bull Laure Soulier responsable drsquoUE chargeacutee du cours TDTMEbull Jean-Noeumll Vittaut chargeacute TDTMEbull Adrien Pouyet chargeacute TDTME
L3 Info - 3IN017 1551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Questions
L3 Info - 3IN017 1651
Architecture Client-Serveur
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Architecture Client-Serveur
Mais plusieurs configurations
bull Un client un serveurbull Plusieurs clients un serveurbull Un client des serveurs
L3 Info - 3IN017 1751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture Client serveur
bull Client (HTML CSS JAVASCRIP )ndash Il eacutetablit la connexion au serveur agrave destination drsquoun ou plusieurs ports
reacuteseauxndash lorsque la connexion est accepteacutee par le serveur il communique
interroge le serveur au moyen de requecirctesbull Serveur
ndash Il attend une connexion entrante sur un ou plusieurs portsndash A la connexion drsquoun client sur le port il communique avec le client au
moyen de reacuteponsesL3 Info - 3IN017 1851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Pages Web stockeacutees sur un serveur Web
lthtmlgtLe symbole de Linux estltimg src=laquo photopng raquogthelliplthtmlgt get photopng
host Le symbole de Linux est
eacutecran du navigateur
disque durdu serveur
get linuxhtmlhost
internet
lthtmlgthellipLe symbole de Linux estltimg src=laquophotopngraquogthelliplthtmlgt
linuxhtml
photopng
Quest-ce que Linux
lthtmlgthellip Le symbole de Linux estltimg src=laquo photopng raquohelliplthtmlgt
200 en-tecirctes
200 en-tecirctes
L3 Info - 3IN017 1951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Mise en place de services Web
34 +21 = 55
eacutecran du navigateur
disque duret processeur
du serveur
get additionphpN1=34ampN2=21
internet
lthtmlgt34+21= 55lthtmlgt
200 en-tecirctes
Combien font
34 21+ OKlthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
lthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
L3 Info - 3IN017 2051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Modegravele - Vue - Controlleur (MVC)
L3 Info - 3IN017 2151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Serveurs PHP vs JAVA
bull Deux grandes eacutecoles
PHP Symfony Doctrinebull Avantages
ndash Apprentissage facilendash Multi-plateformesndash Deacuteploiement drsquoapplication
simplesndash Neacutecessite peu de configura-
tion
bull Inconvenientsndash Pas de typage (langage de
script) maintenance et de-bug tregraves compliqueacutes
ndash Pas de reacutetro-compatibiliteacute(pas adaptable si codeacute aveclrsquoancienne version de PHP)
JAVA TOMCAT Servletsbull Avantages
ndash Plus adapteacute pour des appli-cations web qui neacutecessitentdes preacutecisions dans les opeacutera-tions
ndash Etape de compilation qui fa-cilite la maintenante
ndash Eco systegraveme plus deacuteveloppeacuteque PHP reacutetro-compatibiliteacute
bull Inconveacutenientsndash Systegraveme lourd lors du deacute-
ploiementconfigndash Apprentissage plus com-
pliqueacute que PHP
L3 Info - 3IN017 2251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
De tregraves nombreuses technos
bull Langages deacuteveloppement Web Java PHP ASP etc
bull Frameworks de deacuteveloppement Struts Java Server Faces Flex Open Lazlo etc
bull Serveurs de services Web Tomcat IIS Google Web Server etc
bull Moteurs de bases de donneacutees MySQL Hadoop MongoDB etc
bull Formats drsquoeacutechange HTML XML JSON SOAP etc
L3 Info - 3IN017 2351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Objectifs de lrsquoUE
Acquisition de techniques pour le deacuteveloppement de sites
Web modernes
Architectures des Sites Web sociaux
Deacuteveloppement de services Web
Deacuteveloppement drsquointerfaces hommemachine
Traitement de grandes masses de donneacutees
L3 Info - 3IN017 151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Objectifs de lrsquoUE
Un enseignement rdquoconcretrdquo baseacute sur la manipulation de
technologies
Cours Preacutesentation des diffeacuterentes technologies et de leur articulationcours drsquoouverture sur des sujets connexes
TD Prise en mains des technologies
TP Mise en oeuvre de ces technologies
Les TPs sont tous structureacutes autour du deacuteveloppement drsquoun site web
L3 Info - 3IN017 251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Objectifs de lrsquoUE
Deacuteveloppement drsquoun site web type social
L3 Info - 3IN017 351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation
Evaluation de lrsquoUE
bull LrsquoUE nrsquoest pas une UE difficile mais une UE dense une agrave deuxtechnologies par semaine aucun retour en arriegravere
bull 50 controcircle continundash Evaluation serveur agrave mi-parcours (5pts)ndash Soutenance de projet (15pts)
bull 50 Examen terminal sur feuille Lrsquoexamen est long
L3 Info - 3IN017 451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation
Evaluation serveur agrave mi-parcours 5
bull Se deacuteroule en TME 5bull Faire le point sur ce qui a eacuteteacute fait et ce qui manquebull Permet de commencer le deacuteveloppement du client la semaine suivante
L3 Info - 3IN017 551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation
Soutenance de projet 15
bull Projet en binocircme ou monocircmebull Reacutealisation de Birdy cocircteacute Client + cocircteacute Serveurbull Impleacutementation de fonctionnaliteacutes obligatoires - voir cahier des chargesbull Impleacutementation de fonctionnaliteacutes additionnelles
Notation
bull Preacutesentation de la reacutealisation (TME 11) 7bull Modifications agrave apporter au projet 8
Attention il y a du code existant on le sait et on va veacuterifier bull Veacuterification automatique de plagiat (avec projets existants sur le web et
tous les projets de la promo)bull Vous devez connaicirctre parfaitement votre codebull Vous devez savoir lrsquoexpliquer et y ajouter des modifications
L3 Info - 3IN017 651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation de projet
A reacutealiser
bull Page drsquoaccueil
bull Formulaires de connexion enregistrement
bull Page de profil
bull Fonctions drsquoajout de contacts
bull Fonctionnaliteacutes permettant de poster un commentaire
bull Fonctions de recherches theacutematiques
bull Statistiques sur les utilisateurs (centres drsquointeacuterecircts amis les plus actifs tauxde reacuteponse etc)
bull Plus tout autre fonctionnaliteacute originale
L3 Info - 3IN017 751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Planning de lrsquoUE
S Cours TD TME1 Intro - AOSServices - -2 AOS (Suite) et API REST Modeacutelisation (TD) Prise en main3 BD rel (MySQL) Services (I) Services4 Big DataNoSQL - MongoDB MySQL MySQL5 HTMLCSSJavascript MongoDB MongDB (I)6 Javascript ReactJS C-S Eval serveur (4h TME)7 React JS HTMLCSS (4h TME)8 Cours drsquoouverture ReactJS Dev client9 Cloud Computing ReactJS Dev Client10 Moteur de recherche - MapReduce ReactJS Dev client11 Annales MapReduce MapReduce12 - Soutenance projet (2h TME)
(I) interro TD - agrave titre indicatif voir avec le chargeacute de TD eacutevaluation TME mi-parcours et projet
L3 Info - 3IN017 851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
AttentionOn a que 11 semaines ) Il faut utiliser les technos reacutecentes et robustes
Choix de lrsquoenseignementOn a deacutecideacute de srsquoappuyer sur vos connaissance acquises
bull Client Web (et non pas client mobile de type IPhoneAndroid)bull Serveur Tomcat (JAVA)bull On garde une base SQL (mais on rajoute du NoSQL)
L3 Info - 3IN017 951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Ce que lrsquoon va utiliser
bull Preacutesentation graphique HTML CSS JavascriptReact JS
bull Serveur de service Web Apache Tomcat
bull Language deacuteveloppement cocircteacute serveur JAVA
bull Communication client - serveur React JS (librairie axios)
bull Bases de Donneacutees MySQL MongoDB
L3 Info - 3IN017 1051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Les TPs sont tous structureacutes autour du deacuteveloppement drsquoun
site de type LeBonPlan
Cela implique
Les TPs sont additifs ) retardabsence agrave un TP doit ecirctre rattrapeacute avantle TP suivant
Les TDs introduisent les TPs ) absence en TD = grosses difficulteacutes enTP
Les cours preacutesentent les technologies ) absence en cours = retard en TP
L3 Info - 3IN017 1151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Si le point 1 nrsquoest qursquoaffaire de deacutebrouillardise le point 2 est celui qui doitrester dans un coin de votre tecircte
Si les technos doivent ecirctre maicirctriseacutees le plus important demeure lacompreacutehension de leur imbrication
Les diffeacuterents points abordeacutes recoupent des notions eacutetudieacutees en profondeuren Master programmation distribueacutee (Master SAR) reacuteseau (Master RES)deacuteveloppement logiciel (Master STL) traitement de donneacutees (Master DAC)
L3 Info - 3IN017 1251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Ce que le cours nrsquoest pasne vous apporte pas
bull Une connaissance profonde de toutes les technologiesbull Vous ne serez pas expert de deacuteveloppement web agrave la fin de ce cours A vous
de parfaire vos connaissancesbull Il y a des technologies plus reacutecentes (Spring Angular ) qui demandent
un niveau drsquoabstraction plus important Si vous comprenez ce cours voussaurez apprendre ces technologies
Reacutepeacutetition Cette UE est structureacutee autour drsquoun projet qui doit ecirctre la sourcede motivation de chacun Les enseignants seront ouverts (et favorables) agravetoute propositionpersonnalisation de lrsquoUE Pas de projetimplication ) pas derdquodiplocircmerdquo
L3 Info - 3IN017 1351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Pour vous aider Forum de discussion
bull Utilisation drsquoune messagerie pour les discussions entre eacutetudiants +enseignantseacutetudiants
bull Vous pouvez poser toutes les questionsbull Vous pouvez (devez) vous reacutepondre entre vous (on reacutepondra eacutegalement)bull MAIS ON NE PARTAGE PAS DE CODE (Je sais tout )bull Inscription httpschannellip6frsignup_user_completeid=6hs5kuh8effj7eenu3cnt4bhar
Questions CoursTDProjet BirdyLogistique - ExamensRandom - ActuWeb
L3 Info - 3IN017 1451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La team TechnoWeb
bull Laure Soulier responsable drsquoUE chargeacutee du cours TDTMEbull Jean-Noeumll Vittaut chargeacute TDTMEbull Adrien Pouyet chargeacute TDTME
L3 Info - 3IN017 1551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Questions
L3 Info - 3IN017 1651
Architecture Client-Serveur
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Architecture Client-Serveur
Mais plusieurs configurations
bull Un client un serveurbull Plusieurs clients un serveurbull Un client des serveurs
L3 Info - 3IN017 1751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture Client serveur
bull Client (HTML CSS JAVASCRIP )ndash Il eacutetablit la connexion au serveur agrave destination drsquoun ou plusieurs ports
reacuteseauxndash lorsque la connexion est accepteacutee par le serveur il communique
interroge le serveur au moyen de requecirctesbull Serveur
ndash Il attend une connexion entrante sur un ou plusieurs portsndash A la connexion drsquoun client sur le port il communique avec le client au
moyen de reacuteponsesL3 Info - 3IN017 1851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Pages Web stockeacutees sur un serveur Web
lthtmlgtLe symbole de Linux estltimg src=laquo photopng raquogthelliplthtmlgt get photopng
host Le symbole de Linux est
eacutecran du navigateur
disque durdu serveur
get linuxhtmlhost
internet
lthtmlgthellipLe symbole de Linux estltimg src=laquophotopngraquogthelliplthtmlgt
linuxhtml
photopng
Quest-ce que Linux
lthtmlgthellip Le symbole de Linux estltimg src=laquo photopng raquohelliplthtmlgt
200 en-tecirctes
200 en-tecirctes
L3 Info - 3IN017 1951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Mise en place de services Web
34 +21 = 55
eacutecran du navigateur
disque duret processeur
du serveur
get additionphpN1=34ampN2=21
internet
lthtmlgt34+21= 55lthtmlgt
200 en-tecirctes
Combien font
34 21+ OKlthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
lthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
L3 Info - 3IN017 2051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Modegravele - Vue - Controlleur (MVC)
L3 Info - 3IN017 2151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Serveurs PHP vs JAVA
bull Deux grandes eacutecoles
PHP Symfony Doctrinebull Avantages
ndash Apprentissage facilendash Multi-plateformesndash Deacuteploiement drsquoapplication
simplesndash Neacutecessite peu de configura-
tion
bull Inconvenientsndash Pas de typage (langage de
script) maintenance et de-bug tregraves compliqueacutes
ndash Pas de reacutetro-compatibiliteacute(pas adaptable si codeacute aveclrsquoancienne version de PHP)
JAVA TOMCAT Servletsbull Avantages
ndash Plus adapteacute pour des appli-cations web qui neacutecessitentdes preacutecisions dans les opeacutera-tions
ndash Etape de compilation qui fa-cilite la maintenante
ndash Eco systegraveme plus deacuteveloppeacuteque PHP reacutetro-compatibiliteacute
bull Inconveacutenientsndash Systegraveme lourd lors du deacute-
ploiementconfigndash Apprentissage plus com-
pliqueacute que PHP
L3 Info - 3IN017 2251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
De tregraves nombreuses technos
bull Langages deacuteveloppement Web Java PHP ASP etc
bull Frameworks de deacuteveloppement Struts Java Server Faces Flex Open Lazlo etc
bull Serveurs de services Web Tomcat IIS Google Web Server etc
bull Moteurs de bases de donneacutees MySQL Hadoop MongoDB etc
bull Formats drsquoeacutechange HTML XML JSON SOAP etc
L3 Info - 3IN017 2351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Objectifs de lrsquoUE
Un enseignement rdquoconcretrdquo baseacute sur la manipulation de
technologies
Cours Preacutesentation des diffeacuterentes technologies et de leur articulationcours drsquoouverture sur des sujets connexes
TD Prise en mains des technologies
TP Mise en oeuvre de ces technologies
Les TPs sont tous structureacutes autour du deacuteveloppement drsquoun site web
L3 Info - 3IN017 251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Objectifs de lrsquoUE
Deacuteveloppement drsquoun site web type social
L3 Info - 3IN017 351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation
Evaluation de lrsquoUE
bull LrsquoUE nrsquoest pas une UE difficile mais une UE dense une agrave deuxtechnologies par semaine aucun retour en arriegravere
bull 50 controcircle continundash Evaluation serveur agrave mi-parcours (5pts)ndash Soutenance de projet (15pts)
bull 50 Examen terminal sur feuille Lrsquoexamen est long
L3 Info - 3IN017 451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation
Evaluation serveur agrave mi-parcours 5
bull Se deacuteroule en TME 5bull Faire le point sur ce qui a eacuteteacute fait et ce qui manquebull Permet de commencer le deacuteveloppement du client la semaine suivante
L3 Info - 3IN017 551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation
Soutenance de projet 15
bull Projet en binocircme ou monocircmebull Reacutealisation de Birdy cocircteacute Client + cocircteacute Serveurbull Impleacutementation de fonctionnaliteacutes obligatoires - voir cahier des chargesbull Impleacutementation de fonctionnaliteacutes additionnelles
Notation
bull Preacutesentation de la reacutealisation (TME 11) 7bull Modifications agrave apporter au projet 8
Attention il y a du code existant on le sait et on va veacuterifier bull Veacuterification automatique de plagiat (avec projets existants sur le web et
tous les projets de la promo)bull Vous devez connaicirctre parfaitement votre codebull Vous devez savoir lrsquoexpliquer et y ajouter des modifications
L3 Info - 3IN017 651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation de projet
A reacutealiser
bull Page drsquoaccueil
bull Formulaires de connexion enregistrement
bull Page de profil
bull Fonctions drsquoajout de contacts
bull Fonctionnaliteacutes permettant de poster un commentaire
bull Fonctions de recherches theacutematiques
bull Statistiques sur les utilisateurs (centres drsquointeacuterecircts amis les plus actifs tauxde reacuteponse etc)
bull Plus tout autre fonctionnaliteacute originale
L3 Info - 3IN017 751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Planning de lrsquoUE
S Cours TD TME1 Intro - AOSServices - -2 AOS (Suite) et API REST Modeacutelisation (TD) Prise en main3 BD rel (MySQL) Services (I) Services4 Big DataNoSQL - MongoDB MySQL MySQL5 HTMLCSSJavascript MongoDB MongDB (I)6 Javascript ReactJS C-S Eval serveur (4h TME)7 React JS HTMLCSS (4h TME)8 Cours drsquoouverture ReactJS Dev client9 Cloud Computing ReactJS Dev Client10 Moteur de recherche - MapReduce ReactJS Dev client11 Annales MapReduce MapReduce12 - Soutenance projet (2h TME)
(I) interro TD - agrave titre indicatif voir avec le chargeacute de TD eacutevaluation TME mi-parcours et projet
L3 Info - 3IN017 851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
AttentionOn a que 11 semaines ) Il faut utiliser les technos reacutecentes et robustes
Choix de lrsquoenseignementOn a deacutecideacute de srsquoappuyer sur vos connaissance acquises
bull Client Web (et non pas client mobile de type IPhoneAndroid)bull Serveur Tomcat (JAVA)bull On garde une base SQL (mais on rajoute du NoSQL)
L3 Info - 3IN017 951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Ce que lrsquoon va utiliser
bull Preacutesentation graphique HTML CSS JavascriptReact JS
bull Serveur de service Web Apache Tomcat
bull Language deacuteveloppement cocircteacute serveur JAVA
bull Communication client - serveur React JS (librairie axios)
bull Bases de Donneacutees MySQL MongoDB
L3 Info - 3IN017 1051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Les TPs sont tous structureacutes autour du deacuteveloppement drsquoun
site de type LeBonPlan
Cela implique
Les TPs sont additifs ) retardabsence agrave un TP doit ecirctre rattrapeacute avantle TP suivant
Les TDs introduisent les TPs ) absence en TD = grosses difficulteacutes enTP
Les cours preacutesentent les technologies ) absence en cours = retard en TP
L3 Info - 3IN017 1151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Si le point 1 nrsquoest qursquoaffaire de deacutebrouillardise le point 2 est celui qui doitrester dans un coin de votre tecircte
Si les technos doivent ecirctre maicirctriseacutees le plus important demeure lacompreacutehension de leur imbrication
Les diffeacuterents points abordeacutes recoupent des notions eacutetudieacutees en profondeuren Master programmation distribueacutee (Master SAR) reacuteseau (Master RES)deacuteveloppement logiciel (Master STL) traitement de donneacutees (Master DAC)
L3 Info - 3IN017 1251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Ce que le cours nrsquoest pasne vous apporte pas
bull Une connaissance profonde de toutes les technologiesbull Vous ne serez pas expert de deacuteveloppement web agrave la fin de ce cours A vous
de parfaire vos connaissancesbull Il y a des technologies plus reacutecentes (Spring Angular ) qui demandent
un niveau drsquoabstraction plus important Si vous comprenez ce cours voussaurez apprendre ces technologies
Reacutepeacutetition Cette UE est structureacutee autour drsquoun projet qui doit ecirctre la sourcede motivation de chacun Les enseignants seront ouverts (et favorables) agravetoute propositionpersonnalisation de lrsquoUE Pas de projetimplication ) pas derdquodiplocircmerdquo
L3 Info - 3IN017 1351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Pour vous aider Forum de discussion
bull Utilisation drsquoune messagerie pour les discussions entre eacutetudiants +enseignantseacutetudiants
bull Vous pouvez poser toutes les questionsbull Vous pouvez (devez) vous reacutepondre entre vous (on reacutepondra eacutegalement)bull MAIS ON NE PARTAGE PAS DE CODE (Je sais tout )bull Inscription httpschannellip6frsignup_user_completeid=6hs5kuh8effj7eenu3cnt4bhar
Questions CoursTDProjet BirdyLogistique - ExamensRandom - ActuWeb
L3 Info - 3IN017 1451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La team TechnoWeb
bull Laure Soulier responsable drsquoUE chargeacutee du cours TDTMEbull Jean-Noeumll Vittaut chargeacute TDTMEbull Adrien Pouyet chargeacute TDTME
L3 Info - 3IN017 1551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Questions
L3 Info - 3IN017 1651
Architecture Client-Serveur
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Architecture Client-Serveur
Mais plusieurs configurations
bull Un client un serveurbull Plusieurs clients un serveurbull Un client des serveurs
L3 Info - 3IN017 1751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture Client serveur
bull Client (HTML CSS JAVASCRIP )ndash Il eacutetablit la connexion au serveur agrave destination drsquoun ou plusieurs ports
reacuteseauxndash lorsque la connexion est accepteacutee par le serveur il communique
interroge le serveur au moyen de requecirctesbull Serveur
ndash Il attend une connexion entrante sur un ou plusieurs portsndash A la connexion drsquoun client sur le port il communique avec le client au
moyen de reacuteponsesL3 Info - 3IN017 1851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Pages Web stockeacutees sur un serveur Web
lthtmlgtLe symbole de Linux estltimg src=laquo photopng raquogthelliplthtmlgt get photopng
host Le symbole de Linux est
eacutecran du navigateur
disque durdu serveur
get linuxhtmlhost
internet
lthtmlgthellipLe symbole de Linux estltimg src=laquophotopngraquogthelliplthtmlgt
linuxhtml
photopng
Quest-ce que Linux
lthtmlgthellip Le symbole de Linux estltimg src=laquo photopng raquohelliplthtmlgt
200 en-tecirctes
200 en-tecirctes
L3 Info - 3IN017 1951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Mise en place de services Web
34 +21 = 55
eacutecran du navigateur
disque duret processeur
du serveur
get additionphpN1=34ampN2=21
internet
lthtmlgt34+21= 55lthtmlgt
200 en-tecirctes
Combien font
34 21+ OKlthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
lthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
L3 Info - 3IN017 2051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Modegravele - Vue - Controlleur (MVC)
L3 Info - 3IN017 2151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Serveurs PHP vs JAVA
bull Deux grandes eacutecoles
PHP Symfony Doctrinebull Avantages
ndash Apprentissage facilendash Multi-plateformesndash Deacuteploiement drsquoapplication
simplesndash Neacutecessite peu de configura-
tion
bull Inconvenientsndash Pas de typage (langage de
script) maintenance et de-bug tregraves compliqueacutes
ndash Pas de reacutetro-compatibiliteacute(pas adaptable si codeacute aveclrsquoancienne version de PHP)
JAVA TOMCAT Servletsbull Avantages
ndash Plus adapteacute pour des appli-cations web qui neacutecessitentdes preacutecisions dans les opeacutera-tions
ndash Etape de compilation qui fa-cilite la maintenante
ndash Eco systegraveme plus deacuteveloppeacuteque PHP reacutetro-compatibiliteacute
bull Inconveacutenientsndash Systegraveme lourd lors du deacute-
ploiementconfigndash Apprentissage plus com-
pliqueacute que PHP
L3 Info - 3IN017 2251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
De tregraves nombreuses technos
bull Langages deacuteveloppement Web Java PHP ASP etc
bull Frameworks de deacuteveloppement Struts Java Server Faces Flex Open Lazlo etc
bull Serveurs de services Web Tomcat IIS Google Web Server etc
bull Moteurs de bases de donneacutees MySQL Hadoop MongoDB etc
bull Formats drsquoeacutechange HTML XML JSON SOAP etc
L3 Info - 3IN017 2351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Objectifs de lrsquoUE
Deacuteveloppement drsquoun site web type social
L3 Info - 3IN017 351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation
Evaluation de lrsquoUE
bull LrsquoUE nrsquoest pas une UE difficile mais une UE dense une agrave deuxtechnologies par semaine aucun retour en arriegravere
bull 50 controcircle continundash Evaluation serveur agrave mi-parcours (5pts)ndash Soutenance de projet (15pts)
bull 50 Examen terminal sur feuille Lrsquoexamen est long
L3 Info - 3IN017 451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation
Evaluation serveur agrave mi-parcours 5
bull Se deacuteroule en TME 5bull Faire le point sur ce qui a eacuteteacute fait et ce qui manquebull Permet de commencer le deacuteveloppement du client la semaine suivante
L3 Info - 3IN017 551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation
Soutenance de projet 15
bull Projet en binocircme ou monocircmebull Reacutealisation de Birdy cocircteacute Client + cocircteacute Serveurbull Impleacutementation de fonctionnaliteacutes obligatoires - voir cahier des chargesbull Impleacutementation de fonctionnaliteacutes additionnelles
Notation
bull Preacutesentation de la reacutealisation (TME 11) 7bull Modifications agrave apporter au projet 8
Attention il y a du code existant on le sait et on va veacuterifier bull Veacuterification automatique de plagiat (avec projets existants sur le web et
tous les projets de la promo)bull Vous devez connaicirctre parfaitement votre codebull Vous devez savoir lrsquoexpliquer et y ajouter des modifications
L3 Info - 3IN017 651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation de projet
A reacutealiser
bull Page drsquoaccueil
bull Formulaires de connexion enregistrement
bull Page de profil
bull Fonctions drsquoajout de contacts
bull Fonctionnaliteacutes permettant de poster un commentaire
bull Fonctions de recherches theacutematiques
bull Statistiques sur les utilisateurs (centres drsquointeacuterecircts amis les plus actifs tauxde reacuteponse etc)
bull Plus tout autre fonctionnaliteacute originale
L3 Info - 3IN017 751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Planning de lrsquoUE
S Cours TD TME1 Intro - AOSServices - -2 AOS (Suite) et API REST Modeacutelisation (TD) Prise en main3 BD rel (MySQL) Services (I) Services4 Big DataNoSQL - MongoDB MySQL MySQL5 HTMLCSSJavascript MongoDB MongDB (I)6 Javascript ReactJS C-S Eval serveur (4h TME)7 React JS HTMLCSS (4h TME)8 Cours drsquoouverture ReactJS Dev client9 Cloud Computing ReactJS Dev Client10 Moteur de recherche - MapReduce ReactJS Dev client11 Annales MapReduce MapReduce12 - Soutenance projet (2h TME)
(I) interro TD - agrave titre indicatif voir avec le chargeacute de TD eacutevaluation TME mi-parcours et projet
L3 Info - 3IN017 851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
AttentionOn a que 11 semaines ) Il faut utiliser les technos reacutecentes et robustes
Choix de lrsquoenseignementOn a deacutecideacute de srsquoappuyer sur vos connaissance acquises
bull Client Web (et non pas client mobile de type IPhoneAndroid)bull Serveur Tomcat (JAVA)bull On garde une base SQL (mais on rajoute du NoSQL)
L3 Info - 3IN017 951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Ce que lrsquoon va utiliser
bull Preacutesentation graphique HTML CSS JavascriptReact JS
bull Serveur de service Web Apache Tomcat
bull Language deacuteveloppement cocircteacute serveur JAVA
bull Communication client - serveur React JS (librairie axios)
bull Bases de Donneacutees MySQL MongoDB
L3 Info - 3IN017 1051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Les TPs sont tous structureacutes autour du deacuteveloppement drsquoun
site de type LeBonPlan
Cela implique
Les TPs sont additifs ) retardabsence agrave un TP doit ecirctre rattrapeacute avantle TP suivant
Les TDs introduisent les TPs ) absence en TD = grosses difficulteacutes enTP
Les cours preacutesentent les technologies ) absence en cours = retard en TP
L3 Info - 3IN017 1151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Si le point 1 nrsquoest qursquoaffaire de deacutebrouillardise le point 2 est celui qui doitrester dans un coin de votre tecircte
Si les technos doivent ecirctre maicirctriseacutees le plus important demeure lacompreacutehension de leur imbrication
Les diffeacuterents points abordeacutes recoupent des notions eacutetudieacutees en profondeuren Master programmation distribueacutee (Master SAR) reacuteseau (Master RES)deacuteveloppement logiciel (Master STL) traitement de donneacutees (Master DAC)
L3 Info - 3IN017 1251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Ce que le cours nrsquoest pasne vous apporte pas
bull Une connaissance profonde de toutes les technologiesbull Vous ne serez pas expert de deacuteveloppement web agrave la fin de ce cours A vous
de parfaire vos connaissancesbull Il y a des technologies plus reacutecentes (Spring Angular ) qui demandent
un niveau drsquoabstraction plus important Si vous comprenez ce cours voussaurez apprendre ces technologies
Reacutepeacutetition Cette UE est structureacutee autour drsquoun projet qui doit ecirctre la sourcede motivation de chacun Les enseignants seront ouverts (et favorables) agravetoute propositionpersonnalisation de lrsquoUE Pas de projetimplication ) pas derdquodiplocircmerdquo
L3 Info - 3IN017 1351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Pour vous aider Forum de discussion
bull Utilisation drsquoune messagerie pour les discussions entre eacutetudiants +enseignantseacutetudiants
bull Vous pouvez poser toutes les questionsbull Vous pouvez (devez) vous reacutepondre entre vous (on reacutepondra eacutegalement)bull MAIS ON NE PARTAGE PAS DE CODE (Je sais tout )bull Inscription httpschannellip6frsignup_user_completeid=6hs5kuh8effj7eenu3cnt4bhar
Questions CoursTDProjet BirdyLogistique - ExamensRandom - ActuWeb
L3 Info - 3IN017 1451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La team TechnoWeb
bull Laure Soulier responsable drsquoUE chargeacutee du cours TDTMEbull Jean-Noeumll Vittaut chargeacute TDTMEbull Adrien Pouyet chargeacute TDTME
L3 Info - 3IN017 1551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Questions
L3 Info - 3IN017 1651
Architecture Client-Serveur
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Architecture Client-Serveur
Mais plusieurs configurations
bull Un client un serveurbull Plusieurs clients un serveurbull Un client des serveurs
L3 Info - 3IN017 1751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture Client serveur
bull Client (HTML CSS JAVASCRIP )ndash Il eacutetablit la connexion au serveur agrave destination drsquoun ou plusieurs ports
reacuteseauxndash lorsque la connexion est accepteacutee par le serveur il communique
interroge le serveur au moyen de requecirctesbull Serveur
ndash Il attend une connexion entrante sur un ou plusieurs portsndash A la connexion drsquoun client sur le port il communique avec le client au
moyen de reacuteponsesL3 Info - 3IN017 1851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Pages Web stockeacutees sur un serveur Web
lthtmlgtLe symbole de Linux estltimg src=laquo photopng raquogthelliplthtmlgt get photopng
host Le symbole de Linux est
eacutecran du navigateur
disque durdu serveur
get linuxhtmlhost
internet
lthtmlgthellipLe symbole de Linux estltimg src=laquophotopngraquogthelliplthtmlgt
linuxhtml
photopng
Quest-ce que Linux
lthtmlgthellip Le symbole de Linux estltimg src=laquo photopng raquohelliplthtmlgt
200 en-tecirctes
200 en-tecirctes
L3 Info - 3IN017 1951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Mise en place de services Web
34 +21 = 55
eacutecran du navigateur
disque duret processeur
du serveur
get additionphpN1=34ampN2=21
internet
lthtmlgt34+21= 55lthtmlgt
200 en-tecirctes
Combien font
34 21+ OKlthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
lthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
L3 Info - 3IN017 2051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Modegravele - Vue - Controlleur (MVC)
L3 Info - 3IN017 2151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Serveurs PHP vs JAVA
bull Deux grandes eacutecoles
PHP Symfony Doctrinebull Avantages
ndash Apprentissage facilendash Multi-plateformesndash Deacuteploiement drsquoapplication
simplesndash Neacutecessite peu de configura-
tion
bull Inconvenientsndash Pas de typage (langage de
script) maintenance et de-bug tregraves compliqueacutes
ndash Pas de reacutetro-compatibiliteacute(pas adaptable si codeacute aveclrsquoancienne version de PHP)
JAVA TOMCAT Servletsbull Avantages
ndash Plus adapteacute pour des appli-cations web qui neacutecessitentdes preacutecisions dans les opeacutera-tions
ndash Etape de compilation qui fa-cilite la maintenante
ndash Eco systegraveme plus deacuteveloppeacuteque PHP reacutetro-compatibiliteacute
bull Inconveacutenientsndash Systegraveme lourd lors du deacute-
ploiementconfigndash Apprentissage plus com-
pliqueacute que PHP
L3 Info - 3IN017 2251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
De tregraves nombreuses technos
bull Langages deacuteveloppement Web Java PHP ASP etc
bull Frameworks de deacuteveloppement Struts Java Server Faces Flex Open Lazlo etc
bull Serveurs de services Web Tomcat IIS Google Web Server etc
bull Moteurs de bases de donneacutees MySQL Hadoop MongoDB etc
bull Formats drsquoeacutechange HTML XML JSON SOAP etc
L3 Info - 3IN017 2351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation
Evaluation de lrsquoUE
bull LrsquoUE nrsquoest pas une UE difficile mais une UE dense une agrave deuxtechnologies par semaine aucun retour en arriegravere
bull 50 controcircle continundash Evaluation serveur agrave mi-parcours (5pts)ndash Soutenance de projet (15pts)
bull 50 Examen terminal sur feuille Lrsquoexamen est long
L3 Info - 3IN017 451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation
Evaluation serveur agrave mi-parcours 5
bull Se deacuteroule en TME 5bull Faire le point sur ce qui a eacuteteacute fait et ce qui manquebull Permet de commencer le deacuteveloppement du client la semaine suivante
L3 Info - 3IN017 551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation
Soutenance de projet 15
bull Projet en binocircme ou monocircmebull Reacutealisation de Birdy cocircteacute Client + cocircteacute Serveurbull Impleacutementation de fonctionnaliteacutes obligatoires - voir cahier des chargesbull Impleacutementation de fonctionnaliteacutes additionnelles
Notation
bull Preacutesentation de la reacutealisation (TME 11) 7bull Modifications agrave apporter au projet 8
Attention il y a du code existant on le sait et on va veacuterifier bull Veacuterification automatique de plagiat (avec projets existants sur le web et
tous les projets de la promo)bull Vous devez connaicirctre parfaitement votre codebull Vous devez savoir lrsquoexpliquer et y ajouter des modifications
L3 Info - 3IN017 651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation de projet
A reacutealiser
bull Page drsquoaccueil
bull Formulaires de connexion enregistrement
bull Page de profil
bull Fonctions drsquoajout de contacts
bull Fonctionnaliteacutes permettant de poster un commentaire
bull Fonctions de recherches theacutematiques
bull Statistiques sur les utilisateurs (centres drsquointeacuterecircts amis les plus actifs tauxde reacuteponse etc)
bull Plus tout autre fonctionnaliteacute originale
L3 Info - 3IN017 751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Planning de lrsquoUE
S Cours TD TME1 Intro - AOSServices - -2 AOS (Suite) et API REST Modeacutelisation (TD) Prise en main3 BD rel (MySQL) Services (I) Services4 Big DataNoSQL - MongoDB MySQL MySQL5 HTMLCSSJavascript MongoDB MongDB (I)6 Javascript ReactJS C-S Eval serveur (4h TME)7 React JS HTMLCSS (4h TME)8 Cours drsquoouverture ReactJS Dev client9 Cloud Computing ReactJS Dev Client10 Moteur de recherche - MapReduce ReactJS Dev client11 Annales MapReduce MapReduce12 - Soutenance projet (2h TME)
(I) interro TD - agrave titre indicatif voir avec le chargeacute de TD eacutevaluation TME mi-parcours et projet
L3 Info - 3IN017 851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
AttentionOn a que 11 semaines ) Il faut utiliser les technos reacutecentes et robustes
Choix de lrsquoenseignementOn a deacutecideacute de srsquoappuyer sur vos connaissance acquises
bull Client Web (et non pas client mobile de type IPhoneAndroid)bull Serveur Tomcat (JAVA)bull On garde une base SQL (mais on rajoute du NoSQL)
L3 Info - 3IN017 951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Ce que lrsquoon va utiliser
bull Preacutesentation graphique HTML CSS JavascriptReact JS
bull Serveur de service Web Apache Tomcat
bull Language deacuteveloppement cocircteacute serveur JAVA
bull Communication client - serveur React JS (librairie axios)
bull Bases de Donneacutees MySQL MongoDB
L3 Info - 3IN017 1051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Les TPs sont tous structureacutes autour du deacuteveloppement drsquoun
site de type LeBonPlan
Cela implique
Les TPs sont additifs ) retardabsence agrave un TP doit ecirctre rattrapeacute avantle TP suivant
Les TDs introduisent les TPs ) absence en TD = grosses difficulteacutes enTP
Les cours preacutesentent les technologies ) absence en cours = retard en TP
L3 Info - 3IN017 1151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Si le point 1 nrsquoest qursquoaffaire de deacutebrouillardise le point 2 est celui qui doitrester dans un coin de votre tecircte
Si les technos doivent ecirctre maicirctriseacutees le plus important demeure lacompreacutehension de leur imbrication
Les diffeacuterents points abordeacutes recoupent des notions eacutetudieacutees en profondeuren Master programmation distribueacutee (Master SAR) reacuteseau (Master RES)deacuteveloppement logiciel (Master STL) traitement de donneacutees (Master DAC)
L3 Info - 3IN017 1251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Ce que le cours nrsquoest pasne vous apporte pas
bull Une connaissance profonde de toutes les technologiesbull Vous ne serez pas expert de deacuteveloppement web agrave la fin de ce cours A vous
de parfaire vos connaissancesbull Il y a des technologies plus reacutecentes (Spring Angular ) qui demandent
un niveau drsquoabstraction plus important Si vous comprenez ce cours voussaurez apprendre ces technologies
Reacutepeacutetition Cette UE est structureacutee autour drsquoun projet qui doit ecirctre la sourcede motivation de chacun Les enseignants seront ouverts (et favorables) agravetoute propositionpersonnalisation de lrsquoUE Pas de projetimplication ) pas derdquodiplocircmerdquo
L3 Info - 3IN017 1351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Pour vous aider Forum de discussion
bull Utilisation drsquoune messagerie pour les discussions entre eacutetudiants +enseignantseacutetudiants
bull Vous pouvez poser toutes les questionsbull Vous pouvez (devez) vous reacutepondre entre vous (on reacutepondra eacutegalement)bull MAIS ON NE PARTAGE PAS DE CODE (Je sais tout )bull Inscription httpschannellip6frsignup_user_completeid=6hs5kuh8effj7eenu3cnt4bhar
Questions CoursTDProjet BirdyLogistique - ExamensRandom - ActuWeb
L3 Info - 3IN017 1451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La team TechnoWeb
bull Laure Soulier responsable drsquoUE chargeacutee du cours TDTMEbull Jean-Noeumll Vittaut chargeacute TDTMEbull Adrien Pouyet chargeacute TDTME
L3 Info - 3IN017 1551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Questions
L3 Info - 3IN017 1651
Architecture Client-Serveur
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Architecture Client-Serveur
Mais plusieurs configurations
bull Un client un serveurbull Plusieurs clients un serveurbull Un client des serveurs
L3 Info - 3IN017 1751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture Client serveur
bull Client (HTML CSS JAVASCRIP )ndash Il eacutetablit la connexion au serveur agrave destination drsquoun ou plusieurs ports
reacuteseauxndash lorsque la connexion est accepteacutee par le serveur il communique
interroge le serveur au moyen de requecirctesbull Serveur
ndash Il attend une connexion entrante sur un ou plusieurs portsndash A la connexion drsquoun client sur le port il communique avec le client au
moyen de reacuteponsesL3 Info - 3IN017 1851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Pages Web stockeacutees sur un serveur Web
lthtmlgtLe symbole de Linux estltimg src=laquo photopng raquogthelliplthtmlgt get photopng
host Le symbole de Linux est
eacutecran du navigateur
disque durdu serveur
get linuxhtmlhost
internet
lthtmlgthellipLe symbole de Linux estltimg src=laquophotopngraquogthelliplthtmlgt
linuxhtml
photopng
Quest-ce que Linux
lthtmlgthellip Le symbole de Linux estltimg src=laquo photopng raquohelliplthtmlgt
200 en-tecirctes
200 en-tecirctes
L3 Info - 3IN017 1951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Mise en place de services Web
34 +21 = 55
eacutecran du navigateur
disque duret processeur
du serveur
get additionphpN1=34ampN2=21
internet
lthtmlgt34+21= 55lthtmlgt
200 en-tecirctes
Combien font
34 21+ OKlthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
lthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
L3 Info - 3IN017 2051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Modegravele - Vue - Controlleur (MVC)
L3 Info - 3IN017 2151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Serveurs PHP vs JAVA
bull Deux grandes eacutecoles
PHP Symfony Doctrinebull Avantages
ndash Apprentissage facilendash Multi-plateformesndash Deacuteploiement drsquoapplication
simplesndash Neacutecessite peu de configura-
tion
bull Inconvenientsndash Pas de typage (langage de
script) maintenance et de-bug tregraves compliqueacutes
ndash Pas de reacutetro-compatibiliteacute(pas adaptable si codeacute aveclrsquoancienne version de PHP)
JAVA TOMCAT Servletsbull Avantages
ndash Plus adapteacute pour des appli-cations web qui neacutecessitentdes preacutecisions dans les opeacutera-tions
ndash Etape de compilation qui fa-cilite la maintenante
ndash Eco systegraveme plus deacuteveloppeacuteque PHP reacutetro-compatibiliteacute
bull Inconveacutenientsndash Systegraveme lourd lors du deacute-
ploiementconfigndash Apprentissage plus com-
pliqueacute que PHP
L3 Info - 3IN017 2251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
De tregraves nombreuses technos
bull Langages deacuteveloppement Web Java PHP ASP etc
bull Frameworks de deacuteveloppement Struts Java Server Faces Flex Open Lazlo etc
bull Serveurs de services Web Tomcat IIS Google Web Server etc
bull Moteurs de bases de donneacutees MySQL Hadoop MongoDB etc
bull Formats drsquoeacutechange HTML XML JSON SOAP etc
L3 Info - 3IN017 2351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation
Evaluation serveur agrave mi-parcours 5
bull Se deacuteroule en TME 5bull Faire le point sur ce qui a eacuteteacute fait et ce qui manquebull Permet de commencer le deacuteveloppement du client la semaine suivante
L3 Info - 3IN017 551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation
Soutenance de projet 15
bull Projet en binocircme ou monocircmebull Reacutealisation de Birdy cocircteacute Client + cocircteacute Serveurbull Impleacutementation de fonctionnaliteacutes obligatoires - voir cahier des chargesbull Impleacutementation de fonctionnaliteacutes additionnelles
Notation
bull Preacutesentation de la reacutealisation (TME 11) 7bull Modifications agrave apporter au projet 8
Attention il y a du code existant on le sait et on va veacuterifier bull Veacuterification automatique de plagiat (avec projets existants sur le web et
tous les projets de la promo)bull Vous devez connaicirctre parfaitement votre codebull Vous devez savoir lrsquoexpliquer et y ajouter des modifications
L3 Info - 3IN017 651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation de projet
A reacutealiser
bull Page drsquoaccueil
bull Formulaires de connexion enregistrement
bull Page de profil
bull Fonctions drsquoajout de contacts
bull Fonctionnaliteacutes permettant de poster un commentaire
bull Fonctions de recherches theacutematiques
bull Statistiques sur les utilisateurs (centres drsquointeacuterecircts amis les plus actifs tauxde reacuteponse etc)
bull Plus tout autre fonctionnaliteacute originale
L3 Info - 3IN017 751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Planning de lrsquoUE
S Cours TD TME1 Intro - AOSServices - -2 AOS (Suite) et API REST Modeacutelisation (TD) Prise en main3 BD rel (MySQL) Services (I) Services4 Big DataNoSQL - MongoDB MySQL MySQL5 HTMLCSSJavascript MongoDB MongDB (I)6 Javascript ReactJS C-S Eval serveur (4h TME)7 React JS HTMLCSS (4h TME)8 Cours drsquoouverture ReactJS Dev client9 Cloud Computing ReactJS Dev Client10 Moteur de recherche - MapReduce ReactJS Dev client11 Annales MapReduce MapReduce12 - Soutenance projet (2h TME)
(I) interro TD - agrave titre indicatif voir avec le chargeacute de TD eacutevaluation TME mi-parcours et projet
L3 Info - 3IN017 851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
AttentionOn a que 11 semaines ) Il faut utiliser les technos reacutecentes et robustes
Choix de lrsquoenseignementOn a deacutecideacute de srsquoappuyer sur vos connaissance acquises
bull Client Web (et non pas client mobile de type IPhoneAndroid)bull Serveur Tomcat (JAVA)bull On garde une base SQL (mais on rajoute du NoSQL)
L3 Info - 3IN017 951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Ce que lrsquoon va utiliser
bull Preacutesentation graphique HTML CSS JavascriptReact JS
bull Serveur de service Web Apache Tomcat
bull Language deacuteveloppement cocircteacute serveur JAVA
bull Communication client - serveur React JS (librairie axios)
bull Bases de Donneacutees MySQL MongoDB
L3 Info - 3IN017 1051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Les TPs sont tous structureacutes autour du deacuteveloppement drsquoun
site de type LeBonPlan
Cela implique
Les TPs sont additifs ) retardabsence agrave un TP doit ecirctre rattrapeacute avantle TP suivant
Les TDs introduisent les TPs ) absence en TD = grosses difficulteacutes enTP
Les cours preacutesentent les technologies ) absence en cours = retard en TP
L3 Info - 3IN017 1151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Si le point 1 nrsquoest qursquoaffaire de deacutebrouillardise le point 2 est celui qui doitrester dans un coin de votre tecircte
Si les technos doivent ecirctre maicirctriseacutees le plus important demeure lacompreacutehension de leur imbrication
Les diffeacuterents points abordeacutes recoupent des notions eacutetudieacutees en profondeuren Master programmation distribueacutee (Master SAR) reacuteseau (Master RES)deacuteveloppement logiciel (Master STL) traitement de donneacutees (Master DAC)
L3 Info - 3IN017 1251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Ce que le cours nrsquoest pasne vous apporte pas
bull Une connaissance profonde de toutes les technologiesbull Vous ne serez pas expert de deacuteveloppement web agrave la fin de ce cours A vous
de parfaire vos connaissancesbull Il y a des technologies plus reacutecentes (Spring Angular ) qui demandent
un niveau drsquoabstraction plus important Si vous comprenez ce cours voussaurez apprendre ces technologies
Reacutepeacutetition Cette UE est structureacutee autour drsquoun projet qui doit ecirctre la sourcede motivation de chacun Les enseignants seront ouverts (et favorables) agravetoute propositionpersonnalisation de lrsquoUE Pas de projetimplication ) pas derdquodiplocircmerdquo
L3 Info - 3IN017 1351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Pour vous aider Forum de discussion
bull Utilisation drsquoune messagerie pour les discussions entre eacutetudiants +enseignantseacutetudiants
bull Vous pouvez poser toutes les questionsbull Vous pouvez (devez) vous reacutepondre entre vous (on reacutepondra eacutegalement)bull MAIS ON NE PARTAGE PAS DE CODE (Je sais tout )bull Inscription httpschannellip6frsignup_user_completeid=6hs5kuh8effj7eenu3cnt4bhar
Questions CoursTDProjet BirdyLogistique - ExamensRandom - ActuWeb
L3 Info - 3IN017 1451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La team TechnoWeb
bull Laure Soulier responsable drsquoUE chargeacutee du cours TDTMEbull Jean-Noeumll Vittaut chargeacute TDTMEbull Adrien Pouyet chargeacute TDTME
L3 Info - 3IN017 1551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Questions
L3 Info - 3IN017 1651
Architecture Client-Serveur
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Architecture Client-Serveur
Mais plusieurs configurations
bull Un client un serveurbull Plusieurs clients un serveurbull Un client des serveurs
L3 Info - 3IN017 1751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture Client serveur
bull Client (HTML CSS JAVASCRIP )ndash Il eacutetablit la connexion au serveur agrave destination drsquoun ou plusieurs ports
reacuteseauxndash lorsque la connexion est accepteacutee par le serveur il communique
interroge le serveur au moyen de requecirctesbull Serveur
ndash Il attend une connexion entrante sur un ou plusieurs portsndash A la connexion drsquoun client sur le port il communique avec le client au
moyen de reacuteponsesL3 Info - 3IN017 1851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Pages Web stockeacutees sur un serveur Web
lthtmlgtLe symbole de Linux estltimg src=laquo photopng raquogthelliplthtmlgt get photopng
host Le symbole de Linux est
eacutecran du navigateur
disque durdu serveur
get linuxhtmlhost
internet
lthtmlgthellipLe symbole de Linux estltimg src=laquophotopngraquogthelliplthtmlgt
linuxhtml
photopng
Quest-ce que Linux
lthtmlgthellip Le symbole de Linux estltimg src=laquo photopng raquohelliplthtmlgt
200 en-tecirctes
200 en-tecirctes
L3 Info - 3IN017 1951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Mise en place de services Web
34 +21 = 55
eacutecran du navigateur
disque duret processeur
du serveur
get additionphpN1=34ampN2=21
internet
lthtmlgt34+21= 55lthtmlgt
200 en-tecirctes
Combien font
34 21+ OKlthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
lthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
L3 Info - 3IN017 2051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Modegravele - Vue - Controlleur (MVC)
L3 Info - 3IN017 2151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Serveurs PHP vs JAVA
bull Deux grandes eacutecoles
PHP Symfony Doctrinebull Avantages
ndash Apprentissage facilendash Multi-plateformesndash Deacuteploiement drsquoapplication
simplesndash Neacutecessite peu de configura-
tion
bull Inconvenientsndash Pas de typage (langage de
script) maintenance et de-bug tregraves compliqueacutes
ndash Pas de reacutetro-compatibiliteacute(pas adaptable si codeacute aveclrsquoancienne version de PHP)
JAVA TOMCAT Servletsbull Avantages
ndash Plus adapteacute pour des appli-cations web qui neacutecessitentdes preacutecisions dans les opeacutera-tions
ndash Etape de compilation qui fa-cilite la maintenante
ndash Eco systegraveme plus deacuteveloppeacuteque PHP reacutetro-compatibiliteacute
bull Inconveacutenientsndash Systegraveme lourd lors du deacute-
ploiementconfigndash Apprentissage plus com-
pliqueacute que PHP
L3 Info - 3IN017 2251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
De tregraves nombreuses technos
bull Langages deacuteveloppement Web Java PHP ASP etc
bull Frameworks de deacuteveloppement Struts Java Server Faces Flex Open Lazlo etc
bull Serveurs de services Web Tomcat IIS Google Web Server etc
bull Moteurs de bases de donneacutees MySQL Hadoop MongoDB etc
bull Formats drsquoeacutechange HTML XML JSON SOAP etc
L3 Info - 3IN017 2351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation
Soutenance de projet 15
bull Projet en binocircme ou monocircmebull Reacutealisation de Birdy cocircteacute Client + cocircteacute Serveurbull Impleacutementation de fonctionnaliteacutes obligatoires - voir cahier des chargesbull Impleacutementation de fonctionnaliteacutes additionnelles
Notation
bull Preacutesentation de la reacutealisation (TME 11) 7bull Modifications agrave apporter au projet 8
Attention il y a du code existant on le sait et on va veacuterifier bull Veacuterification automatique de plagiat (avec projets existants sur le web et
tous les projets de la promo)bull Vous devez connaicirctre parfaitement votre codebull Vous devez savoir lrsquoexpliquer et y ajouter des modifications
L3 Info - 3IN017 651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation de projet
A reacutealiser
bull Page drsquoaccueil
bull Formulaires de connexion enregistrement
bull Page de profil
bull Fonctions drsquoajout de contacts
bull Fonctionnaliteacutes permettant de poster un commentaire
bull Fonctions de recherches theacutematiques
bull Statistiques sur les utilisateurs (centres drsquointeacuterecircts amis les plus actifs tauxde reacuteponse etc)
bull Plus tout autre fonctionnaliteacute originale
L3 Info - 3IN017 751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Planning de lrsquoUE
S Cours TD TME1 Intro - AOSServices - -2 AOS (Suite) et API REST Modeacutelisation (TD) Prise en main3 BD rel (MySQL) Services (I) Services4 Big DataNoSQL - MongoDB MySQL MySQL5 HTMLCSSJavascript MongoDB MongDB (I)6 Javascript ReactJS C-S Eval serveur (4h TME)7 React JS HTMLCSS (4h TME)8 Cours drsquoouverture ReactJS Dev client9 Cloud Computing ReactJS Dev Client10 Moteur de recherche - MapReduce ReactJS Dev client11 Annales MapReduce MapReduce12 - Soutenance projet (2h TME)
(I) interro TD - agrave titre indicatif voir avec le chargeacute de TD eacutevaluation TME mi-parcours et projet
L3 Info - 3IN017 851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
AttentionOn a que 11 semaines ) Il faut utiliser les technos reacutecentes et robustes
Choix de lrsquoenseignementOn a deacutecideacute de srsquoappuyer sur vos connaissance acquises
bull Client Web (et non pas client mobile de type IPhoneAndroid)bull Serveur Tomcat (JAVA)bull On garde une base SQL (mais on rajoute du NoSQL)
L3 Info - 3IN017 951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Ce que lrsquoon va utiliser
bull Preacutesentation graphique HTML CSS JavascriptReact JS
bull Serveur de service Web Apache Tomcat
bull Language deacuteveloppement cocircteacute serveur JAVA
bull Communication client - serveur React JS (librairie axios)
bull Bases de Donneacutees MySQL MongoDB
L3 Info - 3IN017 1051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Les TPs sont tous structureacutes autour du deacuteveloppement drsquoun
site de type LeBonPlan
Cela implique
Les TPs sont additifs ) retardabsence agrave un TP doit ecirctre rattrapeacute avantle TP suivant
Les TDs introduisent les TPs ) absence en TD = grosses difficulteacutes enTP
Les cours preacutesentent les technologies ) absence en cours = retard en TP
L3 Info - 3IN017 1151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Si le point 1 nrsquoest qursquoaffaire de deacutebrouillardise le point 2 est celui qui doitrester dans un coin de votre tecircte
Si les technos doivent ecirctre maicirctriseacutees le plus important demeure lacompreacutehension de leur imbrication
Les diffeacuterents points abordeacutes recoupent des notions eacutetudieacutees en profondeuren Master programmation distribueacutee (Master SAR) reacuteseau (Master RES)deacuteveloppement logiciel (Master STL) traitement de donneacutees (Master DAC)
L3 Info - 3IN017 1251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Ce que le cours nrsquoest pasne vous apporte pas
bull Une connaissance profonde de toutes les technologiesbull Vous ne serez pas expert de deacuteveloppement web agrave la fin de ce cours A vous
de parfaire vos connaissancesbull Il y a des technologies plus reacutecentes (Spring Angular ) qui demandent
un niveau drsquoabstraction plus important Si vous comprenez ce cours voussaurez apprendre ces technologies
Reacutepeacutetition Cette UE est structureacutee autour drsquoun projet qui doit ecirctre la sourcede motivation de chacun Les enseignants seront ouverts (et favorables) agravetoute propositionpersonnalisation de lrsquoUE Pas de projetimplication ) pas derdquodiplocircmerdquo
L3 Info - 3IN017 1351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Pour vous aider Forum de discussion
bull Utilisation drsquoune messagerie pour les discussions entre eacutetudiants +enseignantseacutetudiants
bull Vous pouvez poser toutes les questionsbull Vous pouvez (devez) vous reacutepondre entre vous (on reacutepondra eacutegalement)bull MAIS ON NE PARTAGE PAS DE CODE (Je sais tout )bull Inscription httpschannellip6frsignup_user_completeid=6hs5kuh8effj7eenu3cnt4bhar
Questions CoursTDProjet BirdyLogistique - ExamensRandom - ActuWeb
L3 Info - 3IN017 1451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La team TechnoWeb
bull Laure Soulier responsable drsquoUE chargeacutee du cours TDTMEbull Jean-Noeumll Vittaut chargeacute TDTMEbull Adrien Pouyet chargeacute TDTME
L3 Info - 3IN017 1551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Questions
L3 Info - 3IN017 1651
Architecture Client-Serveur
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Architecture Client-Serveur
Mais plusieurs configurations
bull Un client un serveurbull Plusieurs clients un serveurbull Un client des serveurs
L3 Info - 3IN017 1751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture Client serveur
bull Client (HTML CSS JAVASCRIP )ndash Il eacutetablit la connexion au serveur agrave destination drsquoun ou plusieurs ports
reacuteseauxndash lorsque la connexion est accepteacutee par le serveur il communique
interroge le serveur au moyen de requecirctesbull Serveur
ndash Il attend une connexion entrante sur un ou plusieurs portsndash A la connexion drsquoun client sur le port il communique avec le client au
moyen de reacuteponsesL3 Info - 3IN017 1851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Pages Web stockeacutees sur un serveur Web
lthtmlgtLe symbole de Linux estltimg src=laquo photopng raquogthelliplthtmlgt get photopng
host Le symbole de Linux est
eacutecran du navigateur
disque durdu serveur
get linuxhtmlhost
internet
lthtmlgthellipLe symbole de Linux estltimg src=laquophotopngraquogthelliplthtmlgt
linuxhtml
photopng
Quest-ce que Linux
lthtmlgthellip Le symbole de Linux estltimg src=laquo photopng raquohelliplthtmlgt
200 en-tecirctes
200 en-tecirctes
L3 Info - 3IN017 1951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Mise en place de services Web
34 +21 = 55
eacutecran du navigateur
disque duret processeur
du serveur
get additionphpN1=34ampN2=21
internet
lthtmlgt34+21= 55lthtmlgt
200 en-tecirctes
Combien font
34 21+ OKlthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
lthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
L3 Info - 3IN017 2051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Modegravele - Vue - Controlleur (MVC)
L3 Info - 3IN017 2151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Serveurs PHP vs JAVA
bull Deux grandes eacutecoles
PHP Symfony Doctrinebull Avantages
ndash Apprentissage facilendash Multi-plateformesndash Deacuteploiement drsquoapplication
simplesndash Neacutecessite peu de configura-
tion
bull Inconvenientsndash Pas de typage (langage de
script) maintenance et de-bug tregraves compliqueacutes
ndash Pas de reacutetro-compatibiliteacute(pas adaptable si codeacute aveclrsquoancienne version de PHP)
JAVA TOMCAT Servletsbull Avantages
ndash Plus adapteacute pour des appli-cations web qui neacutecessitentdes preacutecisions dans les opeacutera-tions
ndash Etape de compilation qui fa-cilite la maintenante
ndash Eco systegraveme plus deacuteveloppeacuteque PHP reacutetro-compatibiliteacute
bull Inconveacutenientsndash Systegraveme lourd lors du deacute-
ploiementconfigndash Apprentissage plus com-
pliqueacute que PHP
L3 Info - 3IN017 2251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
De tregraves nombreuses technos
bull Langages deacuteveloppement Web Java PHP ASP etc
bull Frameworks de deacuteveloppement Struts Java Server Faces Flex Open Lazlo etc
bull Serveurs de services Web Tomcat IIS Google Web Server etc
bull Moteurs de bases de donneacutees MySQL Hadoop MongoDB etc
bull Formats drsquoeacutechange HTML XML JSON SOAP etc
L3 Info - 3IN017 2351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Evaluation de projet
A reacutealiser
bull Page drsquoaccueil
bull Formulaires de connexion enregistrement
bull Page de profil
bull Fonctions drsquoajout de contacts
bull Fonctionnaliteacutes permettant de poster un commentaire
bull Fonctions de recherches theacutematiques
bull Statistiques sur les utilisateurs (centres drsquointeacuterecircts amis les plus actifs tauxde reacuteponse etc)
bull Plus tout autre fonctionnaliteacute originale
L3 Info - 3IN017 751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Planning de lrsquoUE
S Cours TD TME1 Intro - AOSServices - -2 AOS (Suite) et API REST Modeacutelisation (TD) Prise en main3 BD rel (MySQL) Services (I) Services4 Big DataNoSQL - MongoDB MySQL MySQL5 HTMLCSSJavascript MongoDB MongDB (I)6 Javascript ReactJS C-S Eval serveur (4h TME)7 React JS HTMLCSS (4h TME)8 Cours drsquoouverture ReactJS Dev client9 Cloud Computing ReactJS Dev Client10 Moteur de recherche - MapReduce ReactJS Dev client11 Annales MapReduce MapReduce12 - Soutenance projet (2h TME)
(I) interro TD - agrave titre indicatif voir avec le chargeacute de TD eacutevaluation TME mi-parcours et projet
L3 Info - 3IN017 851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
AttentionOn a que 11 semaines ) Il faut utiliser les technos reacutecentes et robustes
Choix de lrsquoenseignementOn a deacutecideacute de srsquoappuyer sur vos connaissance acquises
bull Client Web (et non pas client mobile de type IPhoneAndroid)bull Serveur Tomcat (JAVA)bull On garde une base SQL (mais on rajoute du NoSQL)
L3 Info - 3IN017 951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Ce que lrsquoon va utiliser
bull Preacutesentation graphique HTML CSS JavascriptReact JS
bull Serveur de service Web Apache Tomcat
bull Language deacuteveloppement cocircteacute serveur JAVA
bull Communication client - serveur React JS (librairie axios)
bull Bases de Donneacutees MySQL MongoDB
L3 Info - 3IN017 1051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Les TPs sont tous structureacutes autour du deacuteveloppement drsquoun
site de type LeBonPlan
Cela implique
Les TPs sont additifs ) retardabsence agrave un TP doit ecirctre rattrapeacute avantle TP suivant
Les TDs introduisent les TPs ) absence en TD = grosses difficulteacutes enTP
Les cours preacutesentent les technologies ) absence en cours = retard en TP
L3 Info - 3IN017 1151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Si le point 1 nrsquoest qursquoaffaire de deacutebrouillardise le point 2 est celui qui doitrester dans un coin de votre tecircte
Si les technos doivent ecirctre maicirctriseacutees le plus important demeure lacompreacutehension de leur imbrication
Les diffeacuterents points abordeacutes recoupent des notions eacutetudieacutees en profondeuren Master programmation distribueacutee (Master SAR) reacuteseau (Master RES)deacuteveloppement logiciel (Master STL) traitement de donneacutees (Master DAC)
L3 Info - 3IN017 1251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Ce que le cours nrsquoest pasne vous apporte pas
bull Une connaissance profonde de toutes les technologiesbull Vous ne serez pas expert de deacuteveloppement web agrave la fin de ce cours A vous
de parfaire vos connaissancesbull Il y a des technologies plus reacutecentes (Spring Angular ) qui demandent
un niveau drsquoabstraction plus important Si vous comprenez ce cours voussaurez apprendre ces technologies
Reacutepeacutetition Cette UE est structureacutee autour drsquoun projet qui doit ecirctre la sourcede motivation de chacun Les enseignants seront ouverts (et favorables) agravetoute propositionpersonnalisation de lrsquoUE Pas de projetimplication ) pas derdquodiplocircmerdquo
L3 Info - 3IN017 1351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Pour vous aider Forum de discussion
bull Utilisation drsquoune messagerie pour les discussions entre eacutetudiants +enseignantseacutetudiants
bull Vous pouvez poser toutes les questionsbull Vous pouvez (devez) vous reacutepondre entre vous (on reacutepondra eacutegalement)bull MAIS ON NE PARTAGE PAS DE CODE (Je sais tout )bull Inscription httpschannellip6frsignup_user_completeid=6hs5kuh8effj7eenu3cnt4bhar
Questions CoursTDProjet BirdyLogistique - ExamensRandom - ActuWeb
L3 Info - 3IN017 1451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La team TechnoWeb
bull Laure Soulier responsable drsquoUE chargeacutee du cours TDTMEbull Jean-Noeumll Vittaut chargeacute TDTMEbull Adrien Pouyet chargeacute TDTME
L3 Info - 3IN017 1551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Questions
L3 Info - 3IN017 1651
Architecture Client-Serveur
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Architecture Client-Serveur
Mais plusieurs configurations
bull Un client un serveurbull Plusieurs clients un serveurbull Un client des serveurs
L3 Info - 3IN017 1751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture Client serveur
bull Client (HTML CSS JAVASCRIP )ndash Il eacutetablit la connexion au serveur agrave destination drsquoun ou plusieurs ports
reacuteseauxndash lorsque la connexion est accepteacutee par le serveur il communique
interroge le serveur au moyen de requecirctesbull Serveur
ndash Il attend une connexion entrante sur un ou plusieurs portsndash A la connexion drsquoun client sur le port il communique avec le client au
moyen de reacuteponsesL3 Info - 3IN017 1851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Pages Web stockeacutees sur un serveur Web
lthtmlgtLe symbole de Linux estltimg src=laquo photopng raquogthelliplthtmlgt get photopng
host Le symbole de Linux est
eacutecran du navigateur
disque durdu serveur
get linuxhtmlhost
internet
lthtmlgthellipLe symbole de Linux estltimg src=laquophotopngraquogthelliplthtmlgt
linuxhtml
photopng
Quest-ce que Linux
lthtmlgthellip Le symbole de Linux estltimg src=laquo photopng raquohelliplthtmlgt
200 en-tecirctes
200 en-tecirctes
L3 Info - 3IN017 1951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Mise en place de services Web
34 +21 = 55
eacutecran du navigateur
disque duret processeur
du serveur
get additionphpN1=34ampN2=21
internet
lthtmlgt34+21= 55lthtmlgt
200 en-tecirctes
Combien font
34 21+ OKlthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
lthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
L3 Info - 3IN017 2051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Modegravele - Vue - Controlleur (MVC)
L3 Info - 3IN017 2151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Serveurs PHP vs JAVA
bull Deux grandes eacutecoles
PHP Symfony Doctrinebull Avantages
ndash Apprentissage facilendash Multi-plateformesndash Deacuteploiement drsquoapplication
simplesndash Neacutecessite peu de configura-
tion
bull Inconvenientsndash Pas de typage (langage de
script) maintenance et de-bug tregraves compliqueacutes
ndash Pas de reacutetro-compatibiliteacute(pas adaptable si codeacute aveclrsquoancienne version de PHP)
JAVA TOMCAT Servletsbull Avantages
ndash Plus adapteacute pour des appli-cations web qui neacutecessitentdes preacutecisions dans les opeacutera-tions
ndash Etape de compilation qui fa-cilite la maintenante
ndash Eco systegraveme plus deacuteveloppeacuteque PHP reacutetro-compatibiliteacute
bull Inconveacutenientsndash Systegraveme lourd lors du deacute-
ploiementconfigndash Apprentissage plus com-
pliqueacute que PHP
L3 Info - 3IN017 2251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
De tregraves nombreuses technos
bull Langages deacuteveloppement Web Java PHP ASP etc
bull Frameworks de deacuteveloppement Struts Java Server Faces Flex Open Lazlo etc
bull Serveurs de services Web Tomcat IIS Google Web Server etc
bull Moteurs de bases de donneacutees MySQL Hadoop MongoDB etc
bull Formats drsquoeacutechange HTML XML JSON SOAP etc
L3 Info - 3IN017 2351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Planning de lrsquoUE
S Cours TD TME1 Intro - AOSServices - -2 AOS (Suite) et API REST Modeacutelisation (TD) Prise en main3 BD rel (MySQL) Services (I) Services4 Big DataNoSQL - MongoDB MySQL MySQL5 HTMLCSSJavascript MongoDB MongDB (I)6 Javascript ReactJS C-S Eval serveur (4h TME)7 React JS HTMLCSS (4h TME)8 Cours drsquoouverture ReactJS Dev client9 Cloud Computing ReactJS Dev Client10 Moteur de recherche - MapReduce ReactJS Dev client11 Annales MapReduce MapReduce12 - Soutenance projet (2h TME)
(I) interro TD - agrave titre indicatif voir avec le chargeacute de TD eacutevaluation TME mi-parcours et projet
L3 Info - 3IN017 851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
AttentionOn a que 11 semaines ) Il faut utiliser les technos reacutecentes et robustes
Choix de lrsquoenseignementOn a deacutecideacute de srsquoappuyer sur vos connaissance acquises
bull Client Web (et non pas client mobile de type IPhoneAndroid)bull Serveur Tomcat (JAVA)bull On garde une base SQL (mais on rajoute du NoSQL)
L3 Info - 3IN017 951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Ce que lrsquoon va utiliser
bull Preacutesentation graphique HTML CSS JavascriptReact JS
bull Serveur de service Web Apache Tomcat
bull Language deacuteveloppement cocircteacute serveur JAVA
bull Communication client - serveur React JS (librairie axios)
bull Bases de Donneacutees MySQL MongoDB
L3 Info - 3IN017 1051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Les TPs sont tous structureacutes autour du deacuteveloppement drsquoun
site de type LeBonPlan
Cela implique
Les TPs sont additifs ) retardabsence agrave un TP doit ecirctre rattrapeacute avantle TP suivant
Les TDs introduisent les TPs ) absence en TD = grosses difficulteacutes enTP
Les cours preacutesentent les technologies ) absence en cours = retard en TP
L3 Info - 3IN017 1151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Si le point 1 nrsquoest qursquoaffaire de deacutebrouillardise le point 2 est celui qui doitrester dans un coin de votre tecircte
Si les technos doivent ecirctre maicirctriseacutees le plus important demeure lacompreacutehension de leur imbrication
Les diffeacuterents points abordeacutes recoupent des notions eacutetudieacutees en profondeuren Master programmation distribueacutee (Master SAR) reacuteseau (Master RES)deacuteveloppement logiciel (Master STL) traitement de donneacutees (Master DAC)
L3 Info - 3IN017 1251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Ce que le cours nrsquoest pasne vous apporte pas
bull Une connaissance profonde de toutes les technologiesbull Vous ne serez pas expert de deacuteveloppement web agrave la fin de ce cours A vous
de parfaire vos connaissancesbull Il y a des technologies plus reacutecentes (Spring Angular ) qui demandent
un niveau drsquoabstraction plus important Si vous comprenez ce cours voussaurez apprendre ces technologies
Reacutepeacutetition Cette UE est structureacutee autour drsquoun projet qui doit ecirctre la sourcede motivation de chacun Les enseignants seront ouverts (et favorables) agravetoute propositionpersonnalisation de lrsquoUE Pas de projetimplication ) pas derdquodiplocircmerdquo
L3 Info - 3IN017 1351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Pour vous aider Forum de discussion
bull Utilisation drsquoune messagerie pour les discussions entre eacutetudiants +enseignantseacutetudiants
bull Vous pouvez poser toutes les questionsbull Vous pouvez (devez) vous reacutepondre entre vous (on reacutepondra eacutegalement)bull MAIS ON NE PARTAGE PAS DE CODE (Je sais tout )bull Inscription httpschannellip6frsignup_user_completeid=6hs5kuh8effj7eenu3cnt4bhar
Questions CoursTDProjet BirdyLogistique - ExamensRandom - ActuWeb
L3 Info - 3IN017 1451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La team TechnoWeb
bull Laure Soulier responsable drsquoUE chargeacutee du cours TDTMEbull Jean-Noeumll Vittaut chargeacute TDTMEbull Adrien Pouyet chargeacute TDTME
L3 Info - 3IN017 1551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Questions
L3 Info - 3IN017 1651
Architecture Client-Serveur
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Architecture Client-Serveur
Mais plusieurs configurations
bull Un client un serveurbull Plusieurs clients un serveurbull Un client des serveurs
L3 Info - 3IN017 1751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture Client serveur
bull Client (HTML CSS JAVASCRIP )ndash Il eacutetablit la connexion au serveur agrave destination drsquoun ou plusieurs ports
reacuteseauxndash lorsque la connexion est accepteacutee par le serveur il communique
interroge le serveur au moyen de requecirctesbull Serveur
ndash Il attend une connexion entrante sur un ou plusieurs portsndash A la connexion drsquoun client sur le port il communique avec le client au
moyen de reacuteponsesL3 Info - 3IN017 1851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Pages Web stockeacutees sur un serveur Web
lthtmlgtLe symbole de Linux estltimg src=laquo photopng raquogthelliplthtmlgt get photopng
host Le symbole de Linux est
eacutecran du navigateur
disque durdu serveur
get linuxhtmlhost
internet
lthtmlgthellipLe symbole de Linux estltimg src=laquophotopngraquogthelliplthtmlgt
linuxhtml
photopng
Quest-ce que Linux
lthtmlgthellip Le symbole de Linux estltimg src=laquo photopng raquohelliplthtmlgt
200 en-tecirctes
200 en-tecirctes
L3 Info - 3IN017 1951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Mise en place de services Web
34 +21 = 55
eacutecran du navigateur
disque duret processeur
du serveur
get additionphpN1=34ampN2=21
internet
lthtmlgt34+21= 55lthtmlgt
200 en-tecirctes
Combien font
34 21+ OKlthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
lthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
L3 Info - 3IN017 2051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Modegravele - Vue - Controlleur (MVC)
L3 Info - 3IN017 2151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Serveurs PHP vs JAVA
bull Deux grandes eacutecoles
PHP Symfony Doctrinebull Avantages
ndash Apprentissage facilendash Multi-plateformesndash Deacuteploiement drsquoapplication
simplesndash Neacutecessite peu de configura-
tion
bull Inconvenientsndash Pas de typage (langage de
script) maintenance et de-bug tregraves compliqueacutes
ndash Pas de reacutetro-compatibiliteacute(pas adaptable si codeacute aveclrsquoancienne version de PHP)
JAVA TOMCAT Servletsbull Avantages
ndash Plus adapteacute pour des appli-cations web qui neacutecessitentdes preacutecisions dans les opeacutera-tions
ndash Etape de compilation qui fa-cilite la maintenante
ndash Eco systegraveme plus deacuteveloppeacuteque PHP reacutetro-compatibiliteacute
bull Inconveacutenientsndash Systegraveme lourd lors du deacute-
ploiementconfigndash Apprentissage plus com-
pliqueacute que PHP
L3 Info - 3IN017 2251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
De tregraves nombreuses technos
bull Langages deacuteveloppement Web Java PHP ASP etc
bull Frameworks de deacuteveloppement Struts Java Server Faces Flex Open Lazlo etc
bull Serveurs de services Web Tomcat IIS Google Web Server etc
bull Moteurs de bases de donneacutees MySQL Hadoop MongoDB etc
bull Formats drsquoeacutechange HTML XML JSON SOAP etc
L3 Info - 3IN017 2351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
AttentionOn a que 11 semaines ) Il faut utiliser les technos reacutecentes et robustes
Choix de lrsquoenseignementOn a deacutecideacute de srsquoappuyer sur vos connaissance acquises
bull Client Web (et non pas client mobile de type IPhoneAndroid)bull Serveur Tomcat (JAVA)bull On garde une base SQL (mais on rajoute du NoSQL)
L3 Info - 3IN017 951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Ce que lrsquoon va utiliser
bull Preacutesentation graphique HTML CSS JavascriptReact JS
bull Serveur de service Web Apache Tomcat
bull Language deacuteveloppement cocircteacute serveur JAVA
bull Communication client - serveur React JS (librairie axios)
bull Bases de Donneacutees MySQL MongoDB
L3 Info - 3IN017 1051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Les TPs sont tous structureacutes autour du deacuteveloppement drsquoun
site de type LeBonPlan
Cela implique
Les TPs sont additifs ) retardabsence agrave un TP doit ecirctre rattrapeacute avantle TP suivant
Les TDs introduisent les TPs ) absence en TD = grosses difficulteacutes enTP
Les cours preacutesentent les technologies ) absence en cours = retard en TP
L3 Info - 3IN017 1151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Si le point 1 nrsquoest qursquoaffaire de deacutebrouillardise le point 2 est celui qui doitrester dans un coin de votre tecircte
Si les technos doivent ecirctre maicirctriseacutees le plus important demeure lacompreacutehension de leur imbrication
Les diffeacuterents points abordeacutes recoupent des notions eacutetudieacutees en profondeuren Master programmation distribueacutee (Master SAR) reacuteseau (Master RES)deacuteveloppement logiciel (Master STL) traitement de donneacutees (Master DAC)
L3 Info - 3IN017 1251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Ce que le cours nrsquoest pasne vous apporte pas
bull Une connaissance profonde de toutes les technologiesbull Vous ne serez pas expert de deacuteveloppement web agrave la fin de ce cours A vous
de parfaire vos connaissancesbull Il y a des technologies plus reacutecentes (Spring Angular ) qui demandent
un niveau drsquoabstraction plus important Si vous comprenez ce cours voussaurez apprendre ces technologies
Reacutepeacutetition Cette UE est structureacutee autour drsquoun projet qui doit ecirctre la sourcede motivation de chacun Les enseignants seront ouverts (et favorables) agravetoute propositionpersonnalisation de lrsquoUE Pas de projetimplication ) pas derdquodiplocircmerdquo
L3 Info - 3IN017 1351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Pour vous aider Forum de discussion
bull Utilisation drsquoune messagerie pour les discussions entre eacutetudiants +enseignantseacutetudiants
bull Vous pouvez poser toutes les questionsbull Vous pouvez (devez) vous reacutepondre entre vous (on reacutepondra eacutegalement)bull MAIS ON NE PARTAGE PAS DE CODE (Je sais tout )bull Inscription httpschannellip6frsignup_user_completeid=6hs5kuh8effj7eenu3cnt4bhar
Questions CoursTDProjet BirdyLogistique - ExamensRandom - ActuWeb
L3 Info - 3IN017 1451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La team TechnoWeb
bull Laure Soulier responsable drsquoUE chargeacutee du cours TDTMEbull Jean-Noeumll Vittaut chargeacute TDTMEbull Adrien Pouyet chargeacute TDTME
L3 Info - 3IN017 1551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Questions
L3 Info - 3IN017 1651
Architecture Client-Serveur
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Architecture Client-Serveur
Mais plusieurs configurations
bull Un client un serveurbull Plusieurs clients un serveurbull Un client des serveurs
L3 Info - 3IN017 1751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture Client serveur
bull Client (HTML CSS JAVASCRIP )ndash Il eacutetablit la connexion au serveur agrave destination drsquoun ou plusieurs ports
reacuteseauxndash lorsque la connexion est accepteacutee par le serveur il communique
interroge le serveur au moyen de requecirctesbull Serveur
ndash Il attend une connexion entrante sur un ou plusieurs portsndash A la connexion drsquoun client sur le port il communique avec le client au
moyen de reacuteponsesL3 Info - 3IN017 1851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Pages Web stockeacutees sur un serveur Web
lthtmlgtLe symbole de Linux estltimg src=laquo photopng raquogthelliplthtmlgt get photopng
host Le symbole de Linux est
eacutecran du navigateur
disque durdu serveur
get linuxhtmlhost
internet
lthtmlgthellipLe symbole de Linux estltimg src=laquophotopngraquogthelliplthtmlgt
linuxhtml
photopng
Quest-ce que Linux
lthtmlgthellip Le symbole de Linux estltimg src=laquo photopng raquohelliplthtmlgt
200 en-tecirctes
200 en-tecirctes
L3 Info - 3IN017 1951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Mise en place de services Web
34 +21 = 55
eacutecran du navigateur
disque duret processeur
du serveur
get additionphpN1=34ampN2=21
internet
lthtmlgt34+21= 55lthtmlgt
200 en-tecirctes
Combien font
34 21+ OKlthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
lthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
L3 Info - 3IN017 2051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Modegravele - Vue - Controlleur (MVC)
L3 Info - 3IN017 2151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Serveurs PHP vs JAVA
bull Deux grandes eacutecoles
PHP Symfony Doctrinebull Avantages
ndash Apprentissage facilendash Multi-plateformesndash Deacuteploiement drsquoapplication
simplesndash Neacutecessite peu de configura-
tion
bull Inconvenientsndash Pas de typage (langage de
script) maintenance et de-bug tregraves compliqueacutes
ndash Pas de reacutetro-compatibiliteacute(pas adaptable si codeacute aveclrsquoancienne version de PHP)
JAVA TOMCAT Servletsbull Avantages
ndash Plus adapteacute pour des appli-cations web qui neacutecessitentdes preacutecisions dans les opeacutera-tions
ndash Etape de compilation qui fa-cilite la maintenante
ndash Eco systegraveme plus deacuteveloppeacuteque PHP reacutetro-compatibiliteacute
bull Inconveacutenientsndash Systegraveme lourd lors du deacute-
ploiementconfigndash Apprentissage plus com-
pliqueacute que PHP
L3 Info - 3IN017 2251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
De tregraves nombreuses technos
bull Langages deacuteveloppement Web Java PHP ASP etc
bull Frameworks de deacuteveloppement Struts Java Server Faces Flex Open Lazlo etc
bull Serveurs de services Web Tomcat IIS Google Web Server etc
bull Moteurs de bases de donneacutees MySQL Hadoop MongoDB etc
bull Formats drsquoeacutechange HTML XML JSON SOAP etc
L3 Info - 3IN017 2351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Ce que lrsquoon va utiliser
bull Preacutesentation graphique HTML CSS JavascriptReact JS
bull Serveur de service Web Apache Tomcat
bull Language deacuteveloppement cocircteacute serveur JAVA
bull Communication client - serveur React JS (librairie axios)
bull Bases de Donneacutees MySQL MongoDB
L3 Info - 3IN017 1051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Les TPs sont tous structureacutes autour du deacuteveloppement drsquoun
site de type LeBonPlan
Cela implique
Les TPs sont additifs ) retardabsence agrave un TP doit ecirctre rattrapeacute avantle TP suivant
Les TDs introduisent les TPs ) absence en TD = grosses difficulteacutes enTP
Les cours preacutesentent les technologies ) absence en cours = retard en TP
L3 Info - 3IN017 1151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Si le point 1 nrsquoest qursquoaffaire de deacutebrouillardise le point 2 est celui qui doitrester dans un coin de votre tecircte
Si les technos doivent ecirctre maicirctriseacutees le plus important demeure lacompreacutehension de leur imbrication
Les diffeacuterents points abordeacutes recoupent des notions eacutetudieacutees en profondeuren Master programmation distribueacutee (Master SAR) reacuteseau (Master RES)deacuteveloppement logiciel (Master STL) traitement de donneacutees (Master DAC)
L3 Info - 3IN017 1251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Ce que le cours nrsquoest pasne vous apporte pas
bull Une connaissance profonde de toutes les technologiesbull Vous ne serez pas expert de deacuteveloppement web agrave la fin de ce cours A vous
de parfaire vos connaissancesbull Il y a des technologies plus reacutecentes (Spring Angular ) qui demandent
un niveau drsquoabstraction plus important Si vous comprenez ce cours voussaurez apprendre ces technologies
Reacutepeacutetition Cette UE est structureacutee autour drsquoun projet qui doit ecirctre la sourcede motivation de chacun Les enseignants seront ouverts (et favorables) agravetoute propositionpersonnalisation de lrsquoUE Pas de projetimplication ) pas derdquodiplocircmerdquo
L3 Info - 3IN017 1351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Pour vous aider Forum de discussion
bull Utilisation drsquoune messagerie pour les discussions entre eacutetudiants +enseignantseacutetudiants
bull Vous pouvez poser toutes les questionsbull Vous pouvez (devez) vous reacutepondre entre vous (on reacutepondra eacutegalement)bull MAIS ON NE PARTAGE PAS DE CODE (Je sais tout )bull Inscription httpschannellip6frsignup_user_completeid=6hs5kuh8effj7eenu3cnt4bhar
Questions CoursTDProjet BirdyLogistique - ExamensRandom - ActuWeb
L3 Info - 3IN017 1451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La team TechnoWeb
bull Laure Soulier responsable drsquoUE chargeacutee du cours TDTMEbull Jean-Noeumll Vittaut chargeacute TDTMEbull Adrien Pouyet chargeacute TDTME
L3 Info - 3IN017 1551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Questions
L3 Info - 3IN017 1651
Architecture Client-Serveur
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Architecture Client-Serveur
Mais plusieurs configurations
bull Un client un serveurbull Plusieurs clients un serveurbull Un client des serveurs
L3 Info - 3IN017 1751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture Client serveur
bull Client (HTML CSS JAVASCRIP )ndash Il eacutetablit la connexion au serveur agrave destination drsquoun ou plusieurs ports
reacuteseauxndash lorsque la connexion est accepteacutee par le serveur il communique
interroge le serveur au moyen de requecirctesbull Serveur
ndash Il attend une connexion entrante sur un ou plusieurs portsndash A la connexion drsquoun client sur le port il communique avec le client au
moyen de reacuteponsesL3 Info - 3IN017 1851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Pages Web stockeacutees sur un serveur Web
lthtmlgtLe symbole de Linux estltimg src=laquo photopng raquogthelliplthtmlgt get photopng
host Le symbole de Linux est
eacutecran du navigateur
disque durdu serveur
get linuxhtmlhost
internet
lthtmlgthellipLe symbole de Linux estltimg src=laquophotopngraquogthelliplthtmlgt
linuxhtml
photopng
Quest-ce que Linux
lthtmlgthellip Le symbole de Linux estltimg src=laquo photopng raquohelliplthtmlgt
200 en-tecirctes
200 en-tecirctes
L3 Info - 3IN017 1951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Mise en place de services Web
34 +21 = 55
eacutecran du navigateur
disque duret processeur
du serveur
get additionphpN1=34ampN2=21
internet
lthtmlgt34+21= 55lthtmlgt
200 en-tecirctes
Combien font
34 21+ OKlthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
lthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
L3 Info - 3IN017 2051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Modegravele - Vue - Controlleur (MVC)
L3 Info - 3IN017 2151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Serveurs PHP vs JAVA
bull Deux grandes eacutecoles
PHP Symfony Doctrinebull Avantages
ndash Apprentissage facilendash Multi-plateformesndash Deacuteploiement drsquoapplication
simplesndash Neacutecessite peu de configura-
tion
bull Inconvenientsndash Pas de typage (langage de
script) maintenance et de-bug tregraves compliqueacutes
ndash Pas de reacutetro-compatibiliteacute(pas adaptable si codeacute aveclrsquoancienne version de PHP)
JAVA TOMCAT Servletsbull Avantages
ndash Plus adapteacute pour des appli-cations web qui neacutecessitentdes preacutecisions dans les opeacutera-tions
ndash Etape de compilation qui fa-cilite la maintenante
ndash Eco systegraveme plus deacuteveloppeacuteque PHP reacutetro-compatibiliteacute
bull Inconveacutenientsndash Systegraveme lourd lors du deacute-
ploiementconfigndash Apprentissage plus com-
pliqueacute que PHP
L3 Info - 3IN017 2251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
De tregraves nombreuses technos
bull Langages deacuteveloppement Web Java PHP ASP etc
bull Frameworks de deacuteveloppement Struts Java Server Faces Flex Open Lazlo etc
bull Serveurs de services Web Tomcat IIS Google Web Server etc
bull Moteurs de bases de donneacutees MySQL Hadoop MongoDB etc
bull Formats drsquoeacutechange HTML XML JSON SOAP etc
L3 Info - 3IN017 2351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Les TPs sont tous structureacutes autour du deacuteveloppement drsquoun
site de type LeBonPlan
Cela implique
Les TPs sont additifs ) retardabsence agrave un TP doit ecirctre rattrapeacute avantle TP suivant
Les TDs introduisent les TPs ) absence en TD = grosses difficulteacutes enTP
Les cours preacutesentent les technologies ) absence en cours = retard en TP
L3 Info - 3IN017 1151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Si le point 1 nrsquoest qursquoaffaire de deacutebrouillardise le point 2 est celui qui doitrester dans un coin de votre tecircte
Si les technos doivent ecirctre maicirctriseacutees le plus important demeure lacompreacutehension de leur imbrication
Les diffeacuterents points abordeacutes recoupent des notions eacutetudieacutees en profondeuren Master programmation distribueacutee (Master SAR) reacuteseau (Master RES)deacuteveloppement logiciel (Master STL) traitement de donneacutees (Master DAC)
L3 Info - 3IN017 1251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Ce que le cours nrsquoest pasne vous apporte pas
bull Une connaissance profonde de toutes les technologiesbull Vous ne serez pas expert de deacuteveloppement web agrave la fin de ce cours A vous
de parfaire vos connaissancesbull Il y a des technologies plus reacutecentes (Spring Angular ) qui demandent
un niveau drsquoabstraction plus important Si vous comprenez ce cours voussaurez apprendre ces technologies
Reacutepeacutetition Cette UE est structureacutee autour drsquoun projet qui doit ecirctre la sourcede motivation de chacun Les enseignants seront ouverts (et favorables) agravetoute propositionpersonnalisation de lrsquoUE Pas de projetimplication ) pas derdquodiplocircmerdquo
L3 Info - 3IN017 1351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Pour vous aider Forum de discussion
bull Utilisation drsquoune messagerie pour les discussions entre eacutetudiants +enseignantseacutetudiants
bull Vous pouvez poser toutes les questionsbull Vous pouvez (devez) vous reacutepondre entre vous (on reacutepondra eacutegalement)bull MAIS ON NE PARTAGE PAS DE CODE (Je sais tout )bull Inscription httpschannellip6frsignup_user_completeid=6hs5kuh8effj7eenu3cnt4bhar
Questions CoursTDProjet BirdyLogistique - ExamensRandom - ActuWeb
L3 Info - 3IN017 1451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La team TechnoWeb
bull Laure Soulier responsable drsquoUE chargeacutee du cours TDTMEbull Jean-Noeumll Vittaut chargeacute TDTMEbull Adrien Pouyet chargeacute TDTME
L3 Info - 3IN017 1551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Questions
L3 Info - 3IN017 1651
Architecture Client-Serveur
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Architecture Client-Serveur
Mais plusieurs configurations
bull Un client un serveurbull Plusieurs clients un serveurbull Un client des serveurs
L3 Info - 3IN017 1751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture Client serveur
bull Client (HTML CSS JAVASCRIP )ndash Il eacutetablit la connexion au serveur agrave destination drsquoun ou plusieurs ports
reacuteseauxndash lorsque la connexion est accepteacutee par le serveur il communique
interroge le serveur au moyen de requecirctesbull Serveur
ndash Il attend une connexion entrante sur un ou plusieurs portsndash A la connexion drsquoun client sur le port il communique avec le client au
moyen de reacuteponsesL3 Info - 3IN017 1851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Pages Web stockeacutees sur un serveur Web
lthtmlgtLe symbole de Linux estltimg src=laquo photopng raquogthelliplthtmlgt get photopng
host Le symbole de Linux est
eacutecran du navigateur
disque durdu serveur
get linuxhtmlhost
internet
lthtmlgthellipLe symbole de Linux estltimg src=laquophotopngraquogthelliplthtmlgt
linuxhtml
photopng
Quest-ce que Linux
lthtmlgthellip Le symbole de Linux estltimg src=laquo photopng raquohelliplthtmlgt
200 en-tecirctes
200 en-tecirctes
L3 Info - 3IN017 1951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Mise en place de services Web
34 +21 = 55
eacutecran du navigateur
disque duret processeur
du serveur
get additionphpN1=34ampN2=21
internet
lthtmlgt34+21= 55lthtmlgt
200 en-tecirctes
Combien font
34 21+ OKlthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
lthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
L3 Info - 3IN017 2051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Modegravele - Vue - Controlleur (MVC)
L3 Info - 3IN017 2151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Serveurs PHP vs JAVA
bull Deux grandes eacutecoles
PHP Symfony Doctrinebull Avantages
ndash Apprentissage facilendash Multi-plateformesndash Deacuteploiement drsquoapplication
simplesndash Neacutecessite peu de configura-
tion
bull Inconvenientsndash Pas de typage (langage de
script) maintenance et de-bug tregraves compliqueacutes
ndash Pas de reacutetro-compatibiliteacute(pas adaptable si codeacute aveclrsquoancienne version de PHP)
JAVA TOMCAT Servletsbull Avantages
ndash Plus adapteacute pour des appli-cations web qui neacutecessitentdes preacutecisions dans les opeacutera-tions
ndash Etape de compilation qui fa-cilite la maintenante
ndash Eco systegraveme plus deacuteveloppeacuteque PHP reacutetro-compatibiliteacute
bull Inconveacutenientsndash Systegraveme lourd lors du deacute-
ploiementconfigndash Apprentissage plus com-
pliqueacute que PHP
L3 Info - 3IN017 2251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
De tregraves nombreuses technos
bull Langages deacuteveloppement Web Java PHP ASP etc
bull Frameworks de deacuteveloppement Struts Java Server Faces Flex Open Lazlo etc
bull Serveurs de services Web Tomcat IIS Google Web Server etc
bull Moteurs de bases de donneacutees MySQL Hadoop MongoDB etc
bull Formats drsquoeacutechange HTML XML JSON SOAP etc
L3 Info - 3IN017 2351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Si le point 1 nrsquoest qursquoaffaire de deacutebrouillardise le point 2 est celui qui doitrester dans un coin de votre tecircte
Si les technos doivent ecirctre maicirctriseacutees le plus important demeure lacompreacutehension de leur imbrication
Les diffeacuterents points abordeacutes recoupent des notions eacutetudieacutees en profondeuren Master programmation distribueacutee (Master SAR) reacuteseau (Master RES)deacuteveloppement logiciel (Master STL) traitement de donneacutees (Master DAC)
L3 Info - 3IN017 1251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Ce que le cours nrsquoest pasne vous apporte pas
bull Une connaissance profonde de toutes les technologiesbull Vous ne serez pas expert de deacuteveloppement web agrave la fin de ce cours A vous
de parfaire vos connaissancesbull Il y a des technologies plus reacutecentes (Spring Angular ) qui demandent
un niveau drsquoabstraction plus important Si vous comprenez ce cours voussaurez apprendre ces technologies
Reacutepeacutetition Cette UE est structureacutee autour drsquoun projet qui doit ecirctre la sourcede motivation de chacun Les enseignants seront ouverts (et favorables) agravetoute propositionpersonnalisation de lrsquoUE Pas de projetimplication ) pas derdquodiplocircmerdquo
L3 Info - 3IN017 1351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Pour vous aider Forum de discussion
bull Utilisation drsquoune messagerie pour les discussions entre eacutetudiants +enseignantseacutetudiants
bull Vous pouvez poser toutes les questionsbull Vous pouvez (devez) vous reacutepondre entre vous (on reacutepondra eacutegalement)bull MAIS ON NE PARTAGE PAS DE CODE (Je sais tout )bull Inscription httpschannellip6frsignup_user_completeid=6hs5kuh8effj7eenu3cnt4bhar
Questions CoursTDProjet BirdyLogistique - ExamensRandom - ActuWeb
L3 Info - 3IN017 1451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La team TechnoWeb
bull Laure Soulier responsable drsquoUE chargeacutee du cours TDTMEbull Jean-Noeumll Vittaut chargeacute TDTMEbull Adrien Pouyet chargeacute TDTME
L3 Info - 3IN017 1551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Questions
L3 Info - 3IN017 1651
Architecture Client-Serveur
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Architecture Client-Serveur
Mais plusieurs configurations
bull Un client un serveurbull Plusieurs clients un serveurbull Un client des serveurs
L3 Info - 3IN017 1751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture Client serveur
bull Client (HTML CSS JAVASCRIP )ndash Il eacutetablit la connexion au serveur agrave destination drsquoun ou plusieurs ports
reacuteseauxndash lorsque la connexion est accepteacutee par le serveur il communique
interroge le serveur au moyen de requecirctesbull Serveur
ndash Il attend une connexion entrante sur un ou plusieurs portsndash A la connexion drsquoun client sur le port il communique avec le client au
moyen de reacuteponsesL3 Info - 3IN017 1851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Pages Web stockeacutees sur un serveur Web
lthtmlgtLe symbole de Linux estltimg src=laquo photopng raquogthelliplthtmlgt get photopng
host Le symbole de Linux est
eacutecran du navigateur
disque durdu serveur
get linuxhtmlhost
internet
lthtmlgthellipLe symbole de Linux estltimg src=laquophotopngraquogthelliplthtmlgt
linuxhtml
photopng
Quest-ce que Linux
lthtmlgthellip Le symbole de Linux estltimg src=laquo photopng raquohelliplthtmlgt
200 en-tecirctes
200 en-tecirctes
L3 Info - 3IN017 1951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Mise en place de services Web
34 +21 = 55
eacutecran du navigateur
disque duret processeur
du serveur
get additionphpN1=34ampN2=21
internet
lthtmlgt34+21= 55lthtmlgt
200 en-tecirctes
Combien font
34 21+ OKlthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
lthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
L3 Info - 3IN017 2051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Modegravele - Vue - Controlleur (MVC)
L3 Info - 3IN017 2151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Serveurs PHP vs JAVA
bull Deux grandes eacutecoles
PHP Symfony Doctrinebull Avantages
ndash Apprentissage facilendash Multi-plateformesndash Deacuteploiement drsquoapplication
simplesndash Neacutecessite peu de configura-
tion
bull Inconvenientsndash Pas de typage (langage de
script) maintenance et de-bug tregraves compliqueacutes
ndash Pas de reacutetro-compatibiliteacute(pas adaptable si codeacute aveclrsquoancienne version de PHP)
JAVA TOMCAT Servletsbull Avantages
ndash Plus adapteacute pour des appli-cations web qui neacutecessitentdes preacutecisions dans les opeacutera-tions
ndash Etape de compilation qui fa-cilite la maintenante
ndash Eco systegraveme plus deacuteveloppeacuteque PHP reacutetro-compatibiliteacute
bull Inconveacutenientsndash Systegraveme lourd lors du deacute-
ploiementconfigndash Apprentissage plus com-
pliqueacute que PHP
L3 Info - 3IN017 2251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
De tregraves nombreuses technos
bull Langages deacuteveloppement Web Java PHP ASP etc
bull Frameworks de deacuteveloppement Struts Java Server Faces Flex Open Lazlo etc
bull Serveurs de services Web Tomcat IIS Google Web Server etc
bull Moteurs de bases de donneacutees MySQL Hadoop MongoDB etc
bull Formats drsquoeacutechange HTML XML JSON SOAP etc
L3 Info - 3IN017 2351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
En reacutesumeacute
Objectif double du cours
bull Vous enseigner - donner un point drsquoentreacutee - pour un ensemble de technolo-gies
bull Vous eacuteclairer sur les eacutevolutions actuelles de lrsquoinformatique
Ce que le cours nrsquoest pasne vous apporte pas
bull Une connaissance profonde de toutes les technologiesbull Vous ne serez pas expert de deacuteveloppement web agrave la fin de ce cours A vous
de parfaire vos connaissancesbull Il y a des technologies plus reacutecentes (Spring Angular ) qui demandent
un niveau drsquoabstraction plus important Si vous comprenez ce cours voussaurez apprendre ces technologies
Reacutepeacutetition Cette UE est structureacutee autour drsquoun projet qui doit ecirctre la sourcede motivation de chacun Les enseignants seront ouverts (et favorables) agravetoute propositionpersonnalisation de lrsquoUE Pas de projetimplication ) pas derdquodiplocircmerdquo
L3 Info - 3IN017 1351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Pour vous aider Forum de discussion
bull Utilisation drsquoune messagerie pour les discussions entre eacutetudiants +enseignantseacutetudiants
bull Vous pouvez poser toutes les questionsbull Vous pouvez (devez) vous reacutepondre entre vous (on reacutepondra eacutegalement)bull MAIS ON NE PARTAGE PAS DE CODE (Je sais tout )bull Inscription httpschannellip6frsignup_user_completeid=6hs5kuh8effj7eenu3cnt4bhar
Questions CoursTDProjet BirdyLogistique - ExamensRandom - ActuWeb
L3 Info - 3IN017 1451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La team TechnoWeb
bull Laure Soulier responsable drsquoUE chargeacutee du cours TDTMEbull Jean-Noeumll Vittaut chargeacute TDTMEbull Adrien Pouyet chargeacute TDTME
L3 Info - 3IN017 1551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Questions
L3 Info - 3IN017 1651
Architecture Client-Serveur
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Architecture Client-Serveur
Mais plusieurs configurations
bull Un client un serveurbull Plusieurs clients un serveurbull Un client des serveurs
L3 Info - 3IN017 1751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture Client serveur
bull Client (HTML CSS JAVASCRIP )ndash Il eacutetablit la connexion au serveur agrave destination drsquoun ou plusieurs ports
reacuteseauxndash lorsque la connexion est accepteacutee par le serveur il communique
interroge le serveur au moyen de requecirctesbull Serveur
ndash Il attend une connexion entrante sur un ou plusieurs portsndash A la connexion drsquoun client sur le port il communique avec le client au
moyen de reacuteponsesL3 Info - 3IN017 1851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Pages Web stockeacutees sur un serveur Web
lthtmlgtLe symbole de Linux estltimg src=laquo photopng raquogthelliplthtmlgt get photopng
host Le symbole de Linux est
eacutecran du navigateur
disque durdu serveur
get linuxhtmlhost
internet
lthtmlgthellipLe symbole de Linux estltimg src=laquophotopngraquogthelliplthtmlgt
linuxhtml
photopng
Quest-ce que Linux
lthtmlgthellip Le symbole de Linux estltimg src=laquo photopng raquohelliplthtmlgt
200 en-tecirctes
200 en-tecirctes
L3 Info - 3IN017 1951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Mise en place de services Web
34 +21 = 55
eacutecran du navigateur
disque duret processeur
du serveur
get additionphpN1=34ampN2=21
internet
lthtmlgt34+21= 55lthtmlgt
200 en-tecirctes
Combien font
34 21+ OKlthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
lthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
L3 Info - 3IN017 2051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Modegravele - Vue - Controlleur (MVC)
L3 Info - 3IN017 2151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Serveurs PHP vs JAVA
bull Deux grandes eacutecoles
PHP Symfony Doctrinebull Avantages
ndash Apprentissage facilendash Multi-plateformesndash Deacuteploiement drsquoapplication
simplesndash Neacutecessite peu de configura-
tion
bull Inconvenientsndash Pas de typage (langage de
script) maintenance et de-bug tregraves compliqueacutes
ndash Pas de reacutetro-compatibiliteacute(pas adaptable si codeacute aveclrsquoancienne version de PHP)
JAVA TOMCAT Servletsbull Avantages
ndash Plus adapteacute pour des appli-cations web qui neacutecessitentdes preacutecisions dans les opeacutera-tions
ndash Etape de compilation qui fa-cilite la maintenante
ndash Eco systegraveme plus deacuteveloppeacuteque PHP reacutetro-compatibiliteacute
bull Inconveacutenientsndash Systegraveme lourd lors du deacute-
ploiementconfigndash Apprentissage plus com-
pliqueacute que PHP
L3 Info - 3IN017 2251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
De tregraves nombreuses technos
bull Langages deacuteveloppement Web Java PHP ASP etc
bull Frameworks de deacuteveloppement Struts Java Server Faces Flex Open Lazlo etc
bull Serveurs de services Web Tomcat IIS Google Web Server etc
bull Moteurs de bases de donneacutees MySQL Hadoop MongoDB etc
bull Formats drsquoeacutechange HTML XML JSON SOAP etc
L3 Info - 3IN017 2351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Pour vous aider Forum de discussion
bull Utilisation drsquoune messagerie pour les discussions entre eacutetudiants +enseignantseacutetudiants
bull Vous pouvez poser toutes les questionsbull Vous pouvez (devez) vous reacutepondre entre vous (on reacutepondra eacutegalement)bull MAIS ON NE PARTAGE PAS DE CODE (Je sais tout )bull Inscription httpschannellip6frsignup_user_completeid=6hs5kuh8effj7eenu3cnt4bhar
Questions CoursTDProjet BirdyLogistique - ExamensRandom - ActuWeb
L3 Info - 3IN017 1451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La team TechnoWeb
bull Laure Soulier responsable drsquoUE chargeacutee du cours TDTMEbull Jean-Noeumll Vittaut chargeacute TDTMEbull Adrien Pouyet chargeacute TDTME
L3 Info - 3IN017 1551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Questions
L3 Info - 3IN017 1651
Architecture Client-Serveur
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Architecture Client-Serveur
Mais plusieurs configurations
bull Un client un serveurbull Plusieurs clients un serveurbull Un client des serveurs
L3 Info - 3IN017 1751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture Client serveur
bull Client (HTML CSS JAVASCRIP )ndash Il eacutetablit la connexion au serveur agrave destination drsquoun ou plusieurs ports
reacuteseauxndash lorsque la connexion est accepteacutee par le serveur il communique
interroge le serveur au moyen de requecirctesbull Serveur
ndash Il attend une connexion entrante sur un ou plusieurs portsndash A la connexion drsquoun client sur le port il communique avec le client au
moyen de reacuteponsesL3 Info - 3IN017 1851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Pages Web stockeacutees sur un serveur Web
lthtmlgtLe symbole de Linux estltimg src=laquo photopng raquogthelliplthtmlgt get photopng
host Le symbole de Linux est
eacutecran du navigateur
disque durdu serveur
get linuxhtmlhost
internet
lthtmlgthellipLe symbole de Linux estltimg src=laquophotopngraquogthelliplthtmlgt
linuxhtml
photopng
Quest-ce que Linux
lthtmlgthellip Le symbole de Linux estltimg src=laquo photopng raquohelliplthtmlgt
200 en-tecirctes
200 en-tecirctes
L3 Info - 3IN017 1951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Mise en place de services Web
34 +21 = 55
eacutecran du navigateur
disque duret processeur
du serveur
get additionphpN1=34ampN2=21
internet
lthtmlgt34+21= 55lthtmlgt
200 en-tecirctes
Combien font
34 21+ OKlthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
lthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
L3 Info - 3IN017 2051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Modegravele - Vue - Controlleur (MVC)
L3 Info - 3IN017 2151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Serveurs PHP vs JAVA
bull Deux grandes eacutecoles
PHP Symfony Doctrinebull Avantages
ndash Apprentissage facilendash Multi-plateformesndash Deacuteploiement drsquoapplication
simplesndash Neacutecessite peu de configura-
tion
bull Inconvenientsndash Pas de typage (langage de
script) maintenance et de-bug tregraves compliqueacutes
ndash Pas de reacutetro-compatibiliteacute(pas adaptable si codeacute aveclrsquoancienne version de PHP)
JAVA TOMCAT Servletsbull Avantages
ndash Plus adapteacute pour des appli-cations web qui neacutecessitentdes preacutecisions dans les opeacutera-tions
ndash Etape de compilation qui fa-cilite la maintenante
ndash Eco systegraveme plus deacuteveloppeacuteque PHP reacutetro-compatibiliteacute
bull Inconveacutenientsndash Systegraveme lourd lors du deacute-
ploiementconfigndash Apprentissage plus com-
pliqueacute que PHP
L3 Info - 3IN017 2251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
De tregraves nombreuses technos
bull Langages deacuteveloppement Web Java PHP ASP etc
bull Frameworks de deacuteveloppement Struts Java Server Faces Flex Open Lazlo etc
bull Serveurs de services Web Tomcat IIS Google Web Server etc
bull Moteurs de bases de donneacutees MySQL Hadoop MongoDB etc
bull Formats drsquoeacutechange HTML XML JSON SOAP etc
L3 Info - 3IN017 2351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La team TechnoWeb
bull Laure Soulier responsable drsquoUE chargeacutee du cours TDTMEbull Jean-Noeumll Vittaut chargeacute TDTMEbull Adrien Pouyet chargeacute TDTME
L3 Info - 3IN017 1551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Questions
L3 Info - 3IN017 1651
Architecture Client-Serveur
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Architecture Client-Serveur
Mais plusieurs configurations
bull Un client un serveurbull Plusieurs clients un serveurbull Un client des serveurs
L3 Info - 3IN017 1751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture Client serveur
bull Client (HTML CSS JAVASCRIP )ndash Il eacutetablit la connexion au serveur agrave destination drsquoun ou plusieurs ports
reacuteseauxndash lorsque la connexion est accepteacutee par le serveur il communique
interroge le serveur au moyen de requecirctesbull Serveur
ndash Il attend une connexion entrante sur un ou plusieurs portsndash A la connexion drsquoun client sur le port il communique avec le client au
moyen de reacuteponsesL3 Info - 3IN017 1851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Pages Web stockeacutees sur un serveur Web
lthtmlgtLe symbole de Linux estltimg src=laquo photopng raquogthelliplthtmlgt get photopng
host Le symbole de Linux est
eacutecran du navigateur
disque durdu serveur
get linuxhtmlhost
internet
lthtmlgthellipLe symbole de Linux estltimg src=laquophotopngraquogthelliplthtmlgt
linuxhtml
photopng
Quest-ce que Linux
lthtmlgthellip Le symbole de Linux estltimg src=laquo photopng raquohelliplthtmlgt
200 en-tecirctes
200 en-tecirctes
L3 Info - 3IN017 1951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Mise en place de services Web
34 +21 = 55
eacutecran du navigateur
disque duret processeur
du serveur
get additionphpN1=34ampN2=21
internet
lthtmlgt34+21= 55lthtmlgt
200 en-tecirctes
Combien font
34 21+ OKlthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
lthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
L3 Info - 3IN017 2051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Modegravele - Vue - Controlleur (MVC)
L3 Info - 3IN017 2151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Serveurs PHP vs JAVA
bull Deux grandes eacutecoles
PHP Symfony Doctrinebull Avantages
ndash Apprentissage facilendash Multi-plateformesndash Deacuteploiement drsquoapplication
simplesndash Neacutecessite peu de configura-
tion
bull Inconvenientsndash Pas de typage (langage de
script) maintenance et de-bug tregraves compliqueacutes
ndash Pas de reacutetro-compatibiliteacute(pas adaptable si codeacute aveclrsquoancienne version de PHP)
JAVA TOMCAT Servletsbull Avantages
ndash Plus adapteacute pour des appli-cations web qui neacutecessitentdes preacutecisions dans les opeacutera-tions
ndash Etape de compilation qui fa-cilite la maintenante
ndash Eco systegraveme plus deacuteveloppeacuteque PHP reacutetro-compatibiliteacute
bull Inconveacutenientsndash Systegraveme lourd lors du deacute-
ploiementconfigndash Apprentissage plus com-
pliqueacute que PHP
L3 Info - 3IN017 2251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
De tregraves nombreuses technos
bull Langages deacuteveloppement Web Java PHP ASP etc
bull Frameworks de deacuteveloppement Struts Java Server Faces Flex Open Lazlo etc
bull Serveurs de services Web Tomcat IIS Google Web Server etc
bull Moteurs de bases de donneacutees MySQL Hadoop MongoDB etc
bull Formats drsquoeacutechange HTML XML JSON SOAP etc
L3 Info - 3IN017 2351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Questions
L3 Info - 3IN017 1651
Architecture Client-Serveur
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Architecture Client-Serveur
Mais plusieurs configurations
bull Un client un serveurbull Plusieurs clients un serveurbull Un client des serveurs
L3 Info - 3IN017 1751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture Client serveur
bull Client (HTML CSS JAVASCRIP )ndash Il eacutetablit la connexion au serveur agrave destination drsquoun ou plusieurs ports
reacuteseauxndash lorsque la connexion est accepteacutee par le serveur il communique
interroge le serveur au moyen de requecirctesbull Serveur
ndash Il attend une connexion entrante sur un ou plusieurs portsndash A la connexion drsquoun client sur le port il communique avec le client au
moyen de reacuteponsesL3 Info - 3IN017 1851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Pages Web stockeacutees sur un serveur Web
lthtmlgtLe symbole de Linux estltimg src=laquo photopng raquogthelliplthtmlgt get photopng
host Le symbole de Linux est
eacutecran du navigateur
disque durdu serveur
get linuxhtmlhost
internet
lthtmlgthellipLe symbole de Linux estltimg src=laquophotopngraquogthelliplthtmlgt
linuxhtml
photopng
Quest-ce que Linux
lthtmlgthellip Le symbole de Linux estltimg src=laquo photopng raquohelliplthtmlgt
200 en-tecirctes
200 en-tecirctes
L3 Info - 3IN017 1951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Mise en place de services Web
34 +21 = 55
eacutecran du navigateur
disque duret processeur
du serveur
get additionphpN1=34ampN2=21
internet
lthtmlgt34+21= 55lthtmlgt
200 en-tecirctes
Combien font
34 21+ OKlthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
lthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
L3 Info - 3IN017 2051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Modegravele - Vue - Controlleur (MVC)
L3 Info - 3IN017 2151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Serveurs PHP vs JAVA
bull Deux grandes eacutecoles
PHP Symfony Doctrinebull Avantages
ndash Apprentissage facilendash Multi-plateformesndash Deacuteploiement drsquoapplication
simplesndash Neacutecessite peu de configura-
tion
bull Inconvenientsndash Pas de typage (langage de
script) maintenance et de-bug tregraves compliqueacutes
ndash Pas de reacutetro-compatibiliteacute(pas adaptable si codeacute aveclrsquoancienne version de PHP)
JAVA TOMCAT Servletsbull Avantages
ndash Plus adapteacute pour des appli-cations web qui neacutecessitentdes preacutecisions dans les opeacutera-tions
ndash Etape de compilation qui fa-cilite la maintenante
ndash Eco systegraveme plus deacuteveloppeacuteque PHP reacutetro-compatibiliteacute
bull Inconveacutenientsndash Systegraveme lourd lors du deacute-
ploiementconfigndash Apprentissage plus com-
pliqueacute que PHP
L3 Info - 3IN017 2251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
De tregraves nombreuses technos
bull Langages deacuteveloppement Web Java PHP ASP etc
bull Frameworks de deacuteveloppement Struts Java Server Faces Flex Open Lazlo etc
bull Serveurs de services Web Tomcat IIS Google Web Server etc
bull Moteurs de bases de donneacutees MySQL Hadoop MongoDB etc
bull Formats drsquoeacutechange HTML XML JSON SOAP etc
L3 Info - 3IN017 2351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Architecture Client-Serveur
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Architecture Client-Serveur
Mais plusieurs configurations
bull Un client un serveurbull Plusieurs clients un serveurbull Un client des serveurs
L3 Info - 3IN017 1751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture Client serveur
bull Client (HTML CSS JAVASCRIP )ndash Il eacutetablit la connexion au serveur agrave destination drsquoun ou plusieurs ports
reacuteseauxndash lorsque la connexion est accepteacutee par le serveur il communique
interroge le serveur au moyen de requecirctesbull Serveur
ndash Il attend une connexion entrante sur un ou plusieurs portsndash A la connexion drsquoun client sur le port il communique avec le client au
moyen de reacuteponsesL3 Info - 3IN017 1851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Pages Web stockeacutees sur un serveur Web
lthtmlgtLe symbole de Linux estltimg src=laquo photopng raquogthelliplthtmlgt get photopng
host Le symbole de Linux est
eacutecran du navigateur
disque durdu serveur
get linuxhtmlhost
internet
lthtmlgthellipLe symbole de Linux estltimg src=laquophotopngraquogthelliplthtmlgt
linuxhtml
photopng
Quest-ce que Linux
lthtmlgthellip Le symbole de Linux estltimg src=laquo photopng raquohelliplthtmlgt
200 en-tecirctes
200 en-tecirctes
L3 Info - 3IN017 1951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Mise en place de services Web
34 +21 = 55
eacutecran du navigateur
disque duret processeur
du serveur
get additionphpN1=34ampN2=21
internet
lthtmlgt34+21= 55lthtmlgt
200 en-tecirctes
Combien font
34 21+ OKlthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
lthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
L3 Info - 3IN017 2051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Modegravele - Vue - Controlleur (MVC)
L3 Info - 3IN017 2151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Serveurs PHP vs JAVA
bull Deux grandes eacutecoles
PHP Symfony Doctrinebull Avantages
ndash Apprentissage facilendash Multi-plateformesndash Deacuteploiement drsquoapplication
simplesndash Neacutecessite peu de configura-
tion
bull Inconvenientsndash Pas de typage (langage de
script) maintenance et de-bug tregraves compliqueacutes
ndash Pas de reacutetro-compatibiliteacute(pas adaptable si codeacute aveclrsquoancienne version de PHP)
JAVA TOMCAT Servletsbull Avantages
ndash Plus adapteacute pour des appli-cations web qui neacutecessitentdes preacutecisions dans les opeacutera-tions
ndash Etape de compilation qui fa-cilite la maintenante
ndash Eco systegraveme plus deacuteveloppeacuteque PHP reacutetro-compatibiliteacute
bull Inconveacutenientsndash Systegraveme lourd lors du deacute-
ploiementconfigndash Apprentissage plus com-
pliqueacute que PHP
L3 Info - 3IN017 2251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
De tregraves nombreuses technos
bull Langages deacuteveloppement Web Java PHP ASP etc
bull Frameworks de deacuteveloppement Struts Java Server Faces Flex Open Lazlo etc
bull Serveurs de services Web Tomcat IIS Google Web Server etc
bull Moteurs de bases de donneacutees MySQL Hadoop MongoDB etc
bull Formats drsquoeacutechange HTML XML JSON SOAP etc
L3 Info - 3IN017 2351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Architecture Client-Serveur
Mais plusieurs configurations
bull Un client un serveurbull Plusieurs clients un serveurbull Un client des serveurs
L3 Info - 3IN017 1751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture Client serveur
bull Client (HTML CSS JAVASCRIP )ndash Il eacutetablit la connexion au serveur agrave destination drsquoun ou plusieurs ports
reacuteseauxndash lorsque la connexion est accepteacutee par le serveur il communique
interroge le serveur au moyen de requecirctesbull Serveur
ndash Il attend une connexion entrante sur un ou plusieurs portsndash A la connexion drsquoun client sur le port il communique avec le client au
moyen de reacuteponsesL3 Info - 3IN017 1851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Pages Web stockeacutees sur un serveur Web
lthtmlgtLe symbole de Linux estltimg src=laquo photopng raquogthelliplthtmlgt get photopng
host Le symbole de Linux est
eacutecran du navigateur
disque durdu serveur
get linuxhtmlhost
internet
lthtmlgthellipLe symbole de Linux estltimg src=laquophotopngraquogthelliplthtmlgt
linuxhtml
photopng
Quest-ce que Linux
lthtmlgthellip Le symbole de Linux estltimg src=laquo photopng raquohelliplthtmlgt
200 en-tecirctes
200 en-tecirctes
L3 Info - 3IN017 1951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Mise en place de services Web
34 +21 = 55
eacutecran du navigateur
disque duret processeur
du serveur
get additionphpN1=34ampN2=21
internet
lthtmlgt34+21= 55lthtmlgt
200 en-tecirctes
Combien font
34 21+ OKlthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
lthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
L3 Info - 3IN017 2051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Modegravele - Vue - Controlleur (MVC)
L3 Info - 3IN017 2151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Serveurs PHP vs JAVA
bull Deux grandes eacutecoles
PHP Symfony Doctrinebull Avantages
ndash Apprentissage facilendash Multi-plateformesndash Deacuteploiement drsquoapplication
simplesndash Neacutecessite peu de configura-
tion
bull Inconvenientsndash Pas de typage (langage de
script) maintenance et de-bug tregraves compliqueacutes
ndash Pas de reacutetro-compatibiliteacute(pas adaptable si codeacute aveclrsquoancienne version de PHP)
JAVA TOMCAT Servletsbull Avantages
ndash Plus adapteacute pour des appli-cations web qui neacutecessitentdes preacutecisions dans les opeacutera-tions
ndash Etape de compilation qui fa-cilite la maintenante
ndash Eco systegraveme plus deacuteveloppeacuteque PHP reacutetro-compatibiliteacute
bull Inconveacutenientsndash Systegraveme lourd lors du deacute-
ploiementconfigndash Apprentissage plus com-
pliqueacute que PHP
L3 Info - 3IN017 2251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
De tregraves nombreuses technos
bull Langages deacuteveloppement Web Java PHP ASP etc
bull Frameworks de deacuteveloppement Struts Java Server Faces Flex Open Lazlo etc
bull Serveurs de services Web Tomcat IIS Google Web Server etc
bull Moteurs de bases de donneacutees MySQL Hadoop MongoDB etc
bull Formats drsquoeacutechange HTML XML JSON SOAP etc
L3 Info - 3IN017 2351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture Client serveur
bull Client (HTML CSS JAVASCRIP )ndash Il eacutetablit la connexion au serveur agrave destination drsquoun ou plusieurs ports
reacuteseauxndash lorsque la connexion est accepteacutee par le serveur il communique
interroge le serveur au moyen de requecirctesbull Serveur
ndash Il attend une connexion entrante sur un ou plusieurs portsndash A la connexion drsquoun client sur le port il communique avec le client au
moyen de reacuteponsesL3 Info - 3IN017 1851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Pages Web stockeacutees sur un serveur Web
lthtmlgtLe symbole de Linux estltimg src=laquo photopng raquogthelliplthtmlgt get photopng
host Le symbole de Linux est
eacutecran du navigateur
disque durdu serveur
get linuxhtmlhost
internet
lthtmlgthellipLe symbole de Linux estltimg src=laquophotopngraquogthelliplthtmlgt
linuxhtml
photopng
Quest-ce que Linux
lthtmlgthellip Le symbole de Linux estltimg src=laquo photopng raquohelliplthtmlgt
200 en-tecirctes
200 en-tecirctes
L3 Info - 3IN017 1951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Mise en place de services Web
34 +21 = 55
eacutecran du navigateur
disque duret processeur
du serveur
get additionphpN1=34ampN2=21
internet
lthtmlgt34+21= 55lthtmlgt
200 en-tecirctes
Combien font
34 21+ OKlthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
lthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
L3 Info - 3IN017 2051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Modegravele - Vue - Controlleur (MVC)
L3 Info - 3IN017 2151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Serveurs PHP vs JAVA
bull Deux grandes eacutecoles
PHP Symfony Doctrinebull Avantages
ndash Apprentissage facilendash Multi-plateformesndash Deacuteploiement drsquoapplication
simplesndash Neacutecessite peu de configura-
tion
bull Inconvenientsndash Pas de typage (langage de
script) maintenance et de-bug tregraves compliqueacutes
ndash Pas de reacutetro-compatibiliteacute(pas adaptable si codeacute aveclrsquoancienne version de PHP)
JAVA TOMCAT Servletsbull Avantages
ndash Plus adapteacute pour des appli-cations web qui neacutecessitentdes preacutecisions dans les opeacutera-tions
ndash Etape de compilation qui fa-cilite la maintenante
ndash Eco systegraveme plus deacuteveloppeacuteque PHP reacutetro-compatibiliteacute
bull Inconveacutenientsndash Systegraveme lourd lors du deacute-
ploiementconfigndash Apprentissage plus com-
pliqueacute que PHP
L3 Info - 3IN017 2251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
De tregraves nombreuses technos
bull Langages deacuteveloppement Web Java PHP ASP etc
bull Frameworks de deacuteveloppement Struts Java Server Faces Flex Open Lazlo etc
bull Serveurs de services Web Tomcat IIS Google Web Server etc
bull Moteurs de bases de donneacutees MySQL Hadoop MongoDB etc
bull Formats drsquoeacutechange HTML XML JSON SOAP etc
L3 Info - 3IN017 2351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Pages Web stockeacutees sur un serveur Web
lthtmlgtLe symbole de Linux estltimg src=laquo photopng raquogthelliplthtmlgt get photopng
host Le symbole de Linux est
eacutecran du navigateur
disque durdu serveur
get linuxhtmlhost
internet
lthtmlgthellipLe symbole de Linux estltimg src=laquophotopngraquogthelliplthtmlgt
linuxhtml
photopng
Quest-ce que Linux
lthtmlgthellip Le symbole de Linux estltimg src=laquo photopng raquohelliplthtmlgt
200 en-tecirctes
200 en-tecirctes
L3 Info - 3IN017 1951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Mise en place de services Web
34 +21 = 55
eacutecran du navigateur
disque duret processeur
du serveur
get additionphpN1=34ampN2=21
internet
lthtmlgt34+21= 55lthtmlgt
200 en-tecirctes
Combien font
34 21+ OKlthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
lthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
L3 Info - 3IN017 2051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Modegravele - Vue - Controlleur (MVC)
L3 Info - 3IN017 2151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Serveurs PHP vs JAVA
bull Deux grandes eacutecoles
PHP Symfony Doctrinebull Avantages
ndash Apprentissage facilendash Multi-plateformesndash Deacuteploiement drsquoapplication
simplesndash Neacutecessite peu de configura-
tion
bull Inconvenientsndash Pas de typage (langage de
script) maintenance et de-bug tregraves compliqueacutes
ndash Pas de reacutetro-compatibiliteacute(pas adaptable si codeacute aveclrsquoancienne version de PHP)
JAVA TOMCAT Servletsbull Avantages
ndash Plus adapteacute pour des appli-cations web qui neacutecessitentdes preacutecisions dans les opeacutera-tions
ndash Etape de compilation qui fa-cilite la maintenante
ndash Eco systegraveme plus deacuteveloppeacuteque PHP reacutetro-compatibiliteacute
bull Inconveacutenientsndash Systegraveme lourd lors du deacute-
ploiementconfigndash Apprentissage plus com-
pliqueacute que PHP
L3 Info - 3IN017 2251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
De tregraves nombreuses technos
bull Langages deacuteveloppement Web Java PHP ASP etc
bull Frameworks de deacuteveloppement Struts Java Server Faces Flex Open Lazlo etc
bull Serveurs de services Web Tomcat IIS Google Web Server etc
bull Moteurs de bases de donneacutees MySQL Hadoop MongoDB etc
bull Formats drsquoeacutechange HTML XML JSON SOAP etc
L3 Info - 3IN017 2351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Mise en place de services Web
34 +21 = 55
eacutecran du navigateur
disque duret processeur
du serveur
get additionphpN1=34ampN2=21
internet
lthtmlgt34+21= 55lthtmlgt
200 en-tecirctes
Combien font
34 21+ OKlthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
lthtmlgtlt $resu=$N1+$N2print ldquo$N1 + $N2 = $resurdquo gtlthtmlgt
L3 Info - 3IN017 2051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Modegravele - Vue - Controlleur (MVC)
L3 Info - 3IN017 2151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Serveurs PHP vs JAVA
bull Deux grandes eacutecoles
PHP Symfony Doctrinebull Avantages
ndash Apprentissage facilendash Multi-plateformesndash Deacuteploiement drsquoapplication
simplesndash Neacutecessite peu de configura-
tion
bull Inconvenientsndash Pas de typage (langage de
script) maintenance et de-bug tregraves compliqueacutes
ndash Pas de reacutetro-compatibiliteacute(pas adaptable si codeacute aveclrsquoancienne version de PHP)
JAVA TOMCAT Servletsbull Avantages
ndash Plus adapteacute pour des appli-cations web qui neacutecessitentdes preacutecisions dans les opeacutera-tions
ndash Etape de compilation qui fa-cilite la maintenante
ndash Eco systegraveme plus deacuteveloppeacuteque PHP reacutetro-compatibiliteacute
bull Inconveacutenientsndash Systegraveme lourd lors du deacute-
ploiementconfigndash Apprentissage plus com-
pliqueacute que PHP
L3 Info - 3IN017 2251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
De tregraves nombreuses technos
bull Langages deacuteveloppement Web Java PHP ASP etc
bull Frameworks de deacuteveloppement Struts Java Server Faces Flex Open Lazlo etc
bull Serveurs de services Web Tomcat IIS Google Web Server etc
bull Moteurs de bases de donneacutees MySQL Hadoop MongoDB etc
bull Formats drsquoeacutechange HTML XML JSON SOAP etc
L3 Info - 3IN017 2351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
Modegravele - Vue - Controlleur (MVC)
L3 Info - 3IN017 2151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Serveurs PHP vs JAVA
bull Deux grandes eacutecoles
PHP Symfony Doctrinebull Avantages
ndash Apprentissage facilendash Multi-plateformesndash Deacuteploiement drsquoapplication
simplesndash Neacutecessite peu de configura-
tion
bull Inconvenientsndash Pas de typage (langage de
script) maintenance et de-bug tregraves compliqueacutes
ndash Pas de reacutetro-compatibiliteacute(pas adaptable si codeacute aveclrsquoancienne version de PHP)
JAVA TOMCAT Servletsbull Avantages
ndash Plus adapteacute pour des appli-cations web qui neacutecessitentdes preacutecisions dans les opeacutera-tions
ndash Etape de compilation qui fa-cilite la maintenante
ndash Eco systegraveme plus deacuteveloppeacuteque PHP reacutetro-compatibiliteacute
bull Inconveacutenientsndash Systegraveme lourd lors du deacute-
ploiementconfigndash Apprentissage plus com-
pliqueacute que PHP
L3 Info - 3IN017 2251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
De tregraves nombreuses technos
bull Langages deacuteveloppement Web Java PHP ASP etc
bull Frameworks de deacuteveloppement Struts Java Server Faces Flex Open Lazlo etc
bull Serveurs de services Web Tomcat IIS Google Web Server etc
bull Moteurs de bases de donneacutees MySQL Hadoop MongoDB etc
bull Formats drsquoeacutechange HTML XML JSON SOAP etc
L3 Info - 3IN017 2351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Serveurs PHP vs JAVA
bull Deux grandes eacutecoles
PHP Symfony Doctrinebull Avantages
ndash Apprentissage facilendash Multi-plateformesndash Deacuteploiement drsquoapplication
simplesndash Neacutecessite peu de configura-
tion
bull Inconvenientsndash Pas de typage (langage de
script) maintenance et de-bug tregraves compliqueacutes
ndash Pas de reacutetro-compatibiliteacute(pas adaptable si codeacute aveclrsquoancienne version de PHP)
JAVA TOMCAT Servletsbull Avantages
ndash Plus adapteacute pour des appli-cations web qui neacutecessitentdes preacutecisions dans les opeacutera-tions
ndash Etape de compilation qui fa-cilite la maintenante
ndash Eco systegraveme plus deacuteveloppeacuteque PHP reacutetro-compatibiliteacute
bull Inconveacutenientsndash Systegraveme lourd lors du deacute-
ploiementconfigndash Apprentissage plus com-
pliqueacute que PHP
L3 Info - 3IN017 2251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
De tregraves nombreuses technos
bull Langages deacuteveloppement Web Java PHP ASP etc
bull Frameworks de deacuteveloppement Struts Java Server Faces Flex Open Lazlo etc
bull Serveurs de services Web Tomcat IIS Google Web Server etc
bull Moteurs de bases de donneacutees MySQL Hadoop MongoDB etc
bull Formats drsquoeacutechange HTML XML JSON SOAP etc
L3 Info - 3IN017 2351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Deacuteveloppement drsquoun site type reacuteseau social
De tregraves nombreuses technos
bull Langages deacuteveloppement Web Java PHP ASP etc
bull Frameworks de deacuteveloppement Struts Java Server Faces Flex Open Lazlo etc
bull Serveurs de services Web Tomcat IIS Google Web Server etc
bull Moteurs de bases de donneacutees MySQL Hadoop MongoDB etc
bull Formats drsquoeacutechange HTML XML JSON SOAP etc
L3 Info - 3IN017 2351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Client
bull HTMLbull CSSbull JavaScriptbull AJAX
Technologies drsquoeacutechange de donneacutees
bull JSONbull XMLbull APIREST - Web API
L3 Info - 3IN017 2451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Quelles Technologies
Technologies Serveur
bull Serveur Web (ici TOMCAT)bull Base de donneacutees
ndash SQL (ici MySQL)ndash NoSQL (ici MongoDB)
Technologies de traitement
bull MapReduce
L3 Info - 3IN017 2551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API
L3 Info - 3IN017 2651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Web API et Tomcat
L3 Info - 3IN017 2751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Concregravetement
Etude de CasLe cours est structureacute autour du deacuteveloppement rdquofrom scracthrdquo drsquoun site Webde type Twitter incluant
bull Une interface Web pour les utilisateursbull Une API disponible pour le deacuteveloppement drsquoapplicationsbull Un serveur permettant le stockage de grandes masses de donneacutees dy-
namiquesbull Une interface de traitement de donneacutees
L3 Info - 3IN017 2851
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Vers une Architecture Orienteacutee Service
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 2951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
Diffeacuterents paradigmes
bull Proceacutedures
(source wikipedia)
La programmation proceacutedurale est un paradigme de programmation baseacute sur leconcept drsquoappel proceacutedural Une proceacutedure contient simplement une seacuteriedrsquoeacutetapes agrave reacutealiser Nrsquoimporte quelle proceacutedure peut ecirctre appeleacutee agrave nrsquoimportequelle eacutetape de lrsquoexeacutecution du programme
bull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Proceacutedures
1 int somme(int a int b)2 int somme=a+b3 4 5 6 if (sommegt0)7 return somme8 else9 return -10
10 11
Limites
bull Difficulteacute de reacuteutilisation du codebull Lisibiliteacutebull Maintenance
L3 Info - 3IN017 3151
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objet
(source wikipedia)
Un objet repreacutesente un concept une ideacutee ou toute entiteacute du monde physique Ilpossegravede une structure interne et un comportement et il sait communiquer avecses pairs Il srsquoagit donc de repreacutesenter ces objets et leurs relations lacommunication entre les objets via leurs relations permet de reacutealiser lesfonctionnaliteacutes attendues de reacutesoudre le ou les problegravemes
bull Programmation Orienteacutee Composantsbull Programmation Orienteacutee Service
L3 Info - 3IN017 3251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation programmation orienteacutee objet
bull Objet ndash Donneacutees (variables drsquoinstances)ndash Traitements (meacutethodes)ndash Principe drsquoencapsulation on accegravede aux variables au travers des
meacutethodes (accesseurs)bull Relations entre les objets
ndash Inclusion drsquoobjets1 public class Temperature2 public int tempe3 public int getTempe() return tempe 4 5
6 public class Radiateur 7 public String nom8 public Temperature temp9
ndash Relations drsquoheacuteritage1 public class Vehicule2 public class Avion implements Vehicule3 public class Voiture implements Vehicule4 public class Camion implements Vehicule
L3 Info - 3IN017 3351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
Diffeacuterents paradigmes
bull Proceacuteduresbull Programmation Orienteacutee Objetbull Programmation Orienteacutee Composants
(source wikipedia)
La programmation orienteacutee composant (POC) consiste agrave utiliser une approchemodulaire au niveau de lrsquoarchitecture drsquoun projet informatique ce qui permetdrsquoassurer au logiciel une meilleure lisibiliteacute et une meilleure maintenance Lesdeacuteveloppeurs au lieu de creacuteer un exeacutecutable monolithique (1 seul bloc) seservent de briques reacuteutilisables
bull Programmation Orienteacutee Service
L3 Info - 3IN017 3451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paradigmes de programmation Programmation Orienteacutee Composants
bull Composant ndash Code compileacute versionneacute et reacuteutilisable module logicielndash Composants isoleacutes pas besoin de connaicirctre les modules deacutependants
pour les utiliserndash Communication avec le monde exteacuterieur avec port offert (export) et
port requis (inport)bull Avantages
ndash Sous-traitance speacutecialisationndash Faciliteacute de mise agrave journdash Faciliteacute de livraison ou deacuteploiementndash Langages diffeacuterents entre les composants
bull Inconvenientsndash Deacuteveloppement agrave long termendash Importance de la modeacutelisationndash Aucun controcircle total sur le projetndash Propagation drsquoerreur quand les composants sont imbriqueacutes
L3 Info - 3IN017 3551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 3651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Architecture orienteacutee ServiceUne architecture orienteacutee services (noteacutee SOA pour Services OrientedArchitecture) est une architecture logicielle srsquoappuyant sur un ensemble deservices simples Elle permet de deacutecomposer une fonctionnaliteacute en un ensemblede fonctions basiques appeleacutees services fournies par des composants et dedeacutecrire finement le scheacutema drsquointeraction entre ces servicesLorsque lrsquoarchitecture SOA srsquoappuie sur des web services on parle alors deWSOA pour Web Services Oriented Architecture
L3 Info - 3IN017 3751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Avantages des WS
bull Les services Web fournissent lrsquointeropeacuterabiliteacute entre divers logiciels fonction-nant sur diverses plates-formes
bull Les services Web utilisent des standards et protocoles ouvertsbull Les protocoles et les formats de donneacutees sont au format texte dans la mesure
du possible facilitant ainsi la compreacutehension du fonctionnement global deseacutechanges
bull Baseacutes sur le protocole HTTP les services Web peuvent fonctionner autravers de nombreux pare-feu sans neacutecessiter des changements sur les regraveglesde filtrage
bull Les outils de deacuteveloppement srsquoappuyant sur ces standards permettent lacreacuteation automatique de programmes utilisant les services Web existants
L3 Info - 3IN017 3851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Inconveacutenients des WS
bull Coucircts de conception et de deacuteveloppement initiaux conseacutequentsbull Les services Web souffrent de performances faibles pour des traitements
faibles (notion de couches)
L3 Info - 3IN017 3951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
L3 Info - 3IN017 4051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Les Web Services
L3 Info - 3IN017 4151
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Tomcat et servlets
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Tomcat
Apache Tomcat est
bull un conteneur libre de servlets et JSPbull un projet principal de la fondation Apachebull eacutecrit en langage Java et peut donc srsquoexeacutecuter via la machine virtuelle Java
sur nrsquoimporte quel systegraveme drsquoexploitationbull Aujourdrsquohui Tomcat 9
Tomcat nrsquoest pas un serveur Web et est utiliseacute en parallegravele drsquoun serveur Webclassique (Apache)
L3 Info - 3IN017 4251
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les Servlets Deacutefinition
bull Applications javabull Exeacutecuteacutees cocircteacute serveurbull Traitement de requecirctes HTTP et geacuteneacuteration de reacuteponses dynamiques - com-
parables aux CGIbull Permettent drsquoeacutetendre les fonctionnaliteacutes de base drsquoun serveur HTTP
Avantages
bull Portabiliteacute (java)bull Puissance avec lrsquoaccegraves agrave la totaliteacute de lrsquoAPI javabull Rapiditeacute (la Servlet est chargeacutee une seule fois)bull Bons outils de deacuteveloppement (Eclipse)bull Compatible avec vos connaissances )
L3 Info - 3IN017 4351
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
L3 Info - 3IN017 4451
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Exportation de lrsquoapplication Web dans un fichier drsquoarchive de type WAR
Arborescence
ApplicationWebwar|_ fichiershtml|_ fichiersjsp|_ reacutepertoiresfichiers|_ META-INF
|_ MANIFESTMF|_ WEB-INF
|_ webxml|_ classes|_ Servletsclass|_ lib
|_ bibliothequesjar
L3 Info - 3IN017 4551
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Deacuteploiement sur le serveur TOMCAT (via lrsquointerface de manager de TOMCAT)
L3 Info - 3IN017 4651
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Exemple
Appel de la Servlet
L3 Info - 3IN017 4751
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet
Les servlets peuvent rdquorendrerdquo nrsquoimporte quel type de contenu
bull textebull HTMLbull XMLbull binaire (fichier image son)bull bull JSON
L3 Info - 3IN017 4851
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
La class HttpServlet
1 public abtract class HttpServlet extends GenericServlet 2 HttpServlet()3
4 meacutethodes reacutepondant aux diffeacuterents types de requecirctes5 protected void doDelete(HttpServletRequest req HttpServletResponse resp)6 protected void doGet(HttpServletRequest req HttpServletResponse resp)7 protected void doHead(HttpServletRequest req HttpServletResponse resp)8 protected void doOptions(HttpServletRequest req HttpServletResponse resp)9 protected void doPost(HttpServletRequest req HttpServletResponse resp)
10 protected void doPut(HttpServletRequest req HttpServletResponse resp)11 protected void doTrace(HttpServletRequest req HttpServletResponse resp)12
13 permet dutiliser le cache cocircteacute client14 protected long getLastModified(HttpServletRequest req)15
16 geacuterent le dispatching en fontion du type de requecircte17 protected void service(HttpServletRequest req HttpServetResponse resp)18 protected void service(ServletRequest req ServletResponse res)19
L3 Info - 3IN017 4951
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Servlet Paramegravetres
Reacutecupeacuteration des paramegravetresLes paramegravetres de formulaires sont reacutecupeacuterables via HttpServletRequest Lareacutecupeacuteration se fait par les meacutethodes suivantes
bull Enumeration getParameterNames()
bull String getParameter(String name)
bull String [] getParameterValues(String name)
L3 Info - 3IN017 5051
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-
Organisation de lrsquoUE Architecture Client-Serveur Vers une Architecture Orienteacutee Service Tomcat et servlets
Paramegravetres de Servlet
1 public class HelloPost extends HttpServlet2 public void doGet(HttpServletRequest req3 HttpServletResponse resp) throws4 ServletExceptionIOException 5 String prenom = reqgetParameter(prenom)6 respsetContentType(texthtml)7 PrintWriter out= respgetWriter()8 outprintln(lthtmlgt)9 outprintln(ltbodygt)
10 outprintln(lth1gtBonjour + prenom + lth1gt)11 outprintln(ltpgtCeci est ma premiere Servletltpgt)12 outprintln(ltbodygt)13 outprintln(lthtmlgt)14 15
URL associeacutee httpMyServletHelloampprenom=michel
L3 Info - 3IN017 5151
- Organisation de lUE
- Architecture Client-Serveur
- Vers une Architecture Orienteacutee Service
- Tomcat et servlets
-