3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS...

56
3I017 - TECHNOLOGIES DU WEB Introduction - Architecture orientée service Monday 27 th January, 2020 Laure Soulier

Transcript of 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS...

Page 1: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 2: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 3: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 4: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 5: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 6: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 7: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 8: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 9: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 10: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 11: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 12: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 13: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 14: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 15: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 16: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 17: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 18: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 19: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 20: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 21: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 22: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 23: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 24: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 25: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 26: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 27: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 28: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 29: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 30: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 31: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 32: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 33: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 34: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 35: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 36: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 37: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 38: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 39: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 40: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 41: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 42: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 43: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 44: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 45: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 46: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 47: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 48: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 49: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 50: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 51: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 52: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 53: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 54: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 55: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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
Page 56: 3I017 - Technologies du Web - Introduction - Architecture orientée … · 2020-01-27 · 2 AOS (Suite) et API REST Modélisation (TD) Prise en main 3 BD rel (MySQL) Services (I)

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