0% ont trouvé ce document utile (0 vote)
78 vues46 pages

Conception d'Applications Web

Ce document présente le cours M1IF03 sur la conception d'applications web. Il introduit les objectifs, le contenu et l'organisation pratique du cours. Le document contient de nombreux détails sur le cours.

Transféré par

Eddy SHANGA
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
78 vues46 pages

Conception d'Applications Web

Ce document présente le cours M1IF03 sur la conception d'applications web. Il introduit les objectifs, le contenu et l'organisation pratique du cours. Le document contient de nombreux détails sur le cours.

Transféré par

Eddy SHANGA
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

M1IF03

Conception d’applications Web

INTRODUCTION
LIONEL MÉDINI
SEPTEMBRE 2023
Plan du cours

 Partie 1
 Présentation de l’UE

 Partie 2
 Généralités sur le World Wide Web
Objectif général de l’UE

 Comment envisager cette UE ?


 Permettre aux utilisateurs d’utiliser
- un Système d’Information (SI)
- un ensemble de services applicatifs
à travers leurs navigateurs Web
 Débouchés
 Concepteur / développeur « fullstack »

 Consultant, chef de projet…


Présentation générale de l’UE

 Intitulé de l’UE
 « Conception … »
 GL, méthodes de conception, patterns
 Et développement !
 « … d’applications… »
 Ensemble de briques fonctionnelles d’un SI
 Service rendu à l’utilisateur
 « … Web »
 2 définitions
 Tout ce qui peut être transféré par le protocole HTTP(S)
• Pages Web (HTML), autres types de documents (MIME)
 Tout ce qui peut être traité dans un navigateur Web
Présentation générale de l’UE

 Thématique générale « application Web »


 Définition provisoire
 « Application dont l’interface se situe dans un navigateur »
 Sera précisée tout au long du déroulement de l’UE

 Large éventail
 De solutions techniques (sockets, serveurs web, services web…)
 De paradigmes de programmation (POO, architectures distribuées
ou orientées services…)
 De niveaux de complexité (échanges de données, de documents,
appels de méthodes distantes, chorégraphie de services…)
 Aperçu des outils existants forcément limité
Positionnement de l’UE

 Prérequis
 Conception de pages web
 Description et mise en forme de pages Web : (X)HTML, CSS
 Structuration de données :
 XML, DTD, XML-Schema, XSL
 JSON, JSON-Schema

 Scripting
 Côté serveur : PHP (ou similaire)
 Côté client : JavaScript
 Autres
 Algorithmique et programmation (C, Java)
 Génie Logiciel (design patterns)
 Réseaux (couches « basses », sockets...)
 Persistance (bases de données)
Positionnement de l’UE

 Autres UE en parallèle
 M1IF05 : Réseaux

 M1IF01 : POO
Projet commun : multimif
 M1IF01 : gestion de projet
(non alternants)
 M1IF24 : BD NoSQL

 UE dépendant de celle-ci
 M1IF13 : Programmation Web avancée et mobile

 M2 TIW : Intergiciels et Services

 M2 TIW : Technologies Web synchrones et multi-dispositifs

 M2 SRS + TIW : Cloud, Stockage et Virtualisation

 M2 SRIV : Applications de l’Internet et administration réseau


Objectifs pédagogiques de l’UE

 Approche DevOps
 Installation d’une « stack » complète

 Déploiement / intégration continus

 Gestion du « run » (performance)

 Paradigmes de programmation
 Programmation déclarative (HTML, XSL, JSP…)

 Programmation événementielle (JavaScript)

 Mécanismes de scripting (côtés serveur et client)

 Démarches et outils de conception


 Les mêmes qu’en M1IF01 (modélisation, méthodes de GL)

 Couche persistance non abordée


Programme de l’UE

 Technologies côté serveur


 Utilisation d’un serveur Web
 Configuration et fonctionnement
 Protocole HTTP
 Sécurisation (HTTPS)

 Programmation côté serveur


 POO (Servlets, filtres)
 Scripting (JSP)

 Initiation aux services Web


 REpresentational State Transfer (REST)

 Web APIs
Programme de l’UE

 Technologies côté client


 Rappels JavaScript et scripting côté client
 « Dynamisation » des pages statiques
 Mécanismes de requêtes asynchrones
 Document Object Model (DOM)
 Asynchronous Javascript And XML (AJAX)
 Fetch API

 Templating
 Mustache
 Performance Web
Remarque

Les technologies liées au Web sont nombreuses et très riches

 Cette UE est
 un aperçu des types d’outils existants et de leur fonctionnement
 une description détaillée d’une partie de ces outils
 Langages dédiés au Web
 Programmation côté serveur et côté client
 Outils de conception d’applications Web complexes
 Cette UE n’est PAS
 une présentation exhaustive de tous les outils existants
 une référence complète des outils présentés

 N’hésitez pas à aller voir les pointeurs (références


bibliographiques) pour comprendre le cours et réaliser les TP
Organisation pratique de l’UE

 30 h de présentiel
 10 x 1h30 de CM

 10 x 1h30 de TP

 Évaluation
 TPs : Code + analyse automatique + compte-rendus +
soutenances
 CC final (~examen) : 2ème session en cours de 2nd semestre

 Coefficients : 66% TP – 33% Examen

Il est impératif de travailler en dehors des cours et TP

Tout TP rendu en plusieurs exemplaires sera noté


0 pour tous les groupes l’ayant rendu
Organisation pratique de l’UE

 Répartition en TP
 Votre groupe de TP est le même que pour M1IF24

 Intervenants professionnels
 Pratiquent les technos
 Sont aussi là pour recruter…
 Chaque intervenant passe dans un maximum de groupes de TP
 Vous devez
 Être présents aux TPs

 Ne pas changer de groupe


(et avoir un binôme dans le même groupe)
Organisation pratique de l’UE

 Emplois du temps de TP
 Les intervenants extérieurs ont des contraintes professionnelles
 Emplois du temps qui « sortent » des créneaux habituels
 « Tetris » avec d’autres UEs (M1IF01, M1IF24)
 Récupération des créneaux libres
 Pour simplifier : des calendriers Google (à jour)
 Planning des CM et de l'examen
 Planning des TPs du groupe A
 Planning des TPs du groupe B
 Planning des TPs du groupe C
 Planning des TPs du groupe D
 Certaines salles manquent encore (en attente)
 Ne venez qu’aux séances qui sont sur ces calendriers
(même si d’autres sont indiquées dans ADE)
Méthode de travail

 Retours sur l’UE


 UE de tronc commun, ambitieuse, mais nécessaire
 Pas que pour « faire du Web » : GL, SI, DevOps…
 Beaucoup de travail en TP
 Pour gagner du temps et être efficaces
 Partagez-vous le travail (à l’intérieur d’un binôme ;-)
 Git branches
 Mettez en place une infra fonctionnelle dès le début
 IDE, VM, CI/CD
 Apprenez à bien utiliser votre IDE
 Configuration (Maven, Git), raccourcis clavier, debugger, refactoring…
 Si possible, utilisez votre propre machine…
 Anticipez les deadlines
Important : à faire avant le début des TPs

 Installer et configurer votre environnement de travail


 Dans cette UE, vous aurez besoin de :
 Java : JDK >= 17
 IDE : de votre choix…
…mais vous avez accès à une licence JetBrains pour IntellJ
(Free educational licence avec votre adresse email Lyon1)
 Serveur et moteur de servlets Java : Apache tomcat

Réalisez la procédure d’installation et de configuration


Méthode de travail

 Utiliser le Chat
 Pour travailler en asynchrone

 3 salons
 Général :
https://go.rocket.chat/invite?host=chat-info.univ-
lyon1.fr&path=invite%2Fbt5Xdm
 Tps :
https://go.rocket.chat/invite?host=chat-info.univ-
lyon1.fr&path=invite%2FqYQnXA
 Foire aux binômes :
https://go.rocket.chat/invite?host=chat-info.univ-
lyon1.fr&path=invite%2FBQxsjA
Sources

 Reprise des supports de cours des années précédentes


(Lyon 1)
 de Sylvain Brandel, eux-mêmes issus de ceux d’Olivier Glück
 de Pierre-Antoine Champin (IUT Lyon1)
 Ces supports s'appuient eux-mêmes sur ceux de
 Fabrice Kordon, Isabelle Mounier, Christian Queinnec (PARIS 6),
Dominique Bouillet (INT), Laurent Lefèvre (ENS LYON), Olivier
Aubert (Univ. Nantes)…
 Autres sources
 W3C (standards)
 Autres organismes de standardisation
 Sites et ouvrages cités en bibliographie
 Mais dans tous les cas…
C’est sur le Web qu’on trouve le plus de choses sur le Web...
Bibliographie

 Ouvrages
 « Webmaster in a nutshell », S. Spainhour & R. Eckstein, O’Reilly
 « HTML et JavaScript », P. Chaléat et Daniel Charnay, Eyrolles
 « JavaScript, La référence », D. Flanagan, O’Reilly
 « Ajax en Pratique », D. Crane, E. Pascarello et D. James,
CampusPress
 Sites Web
 http://www.w3.org/
 http://w3schools.com/
 http://www.developpez.com/
 http://www.laltruiste.com/
 http://www.commentcamarche.net/
Plan de ce cours

 Partie 1
 Présentation de l’UE

 Partie 2
 Généralités sur le World Wide Web
World Wide Web

 Principe original : accéder à des documents textuels


 situés sur des machines accessibles par Internet

 reliés entre eux par un mécanisme de lien « hypertexte »

 Actuellement : servir des ressources


 De différentes natures : texte, image, son, vidéo, contenu
applicatif…
 Hypermédia

 Interactives

 Permettant à l’utilisateur d’accéder à un service donné :


rechercher de l’information, acheter un objet, accéder à ses
mails, consulter ses comptes en banque…
 Nombreuses évolutions techniques
Rappel : Internet

 Un réseau de réseaux interconnectés (d’où le nom)


 Un ensemble de matériels, logiciels et protocoles
(notamment IP)
 Un ensemble de services
 Application qui utilise un protocole et un numéro de port
 e-mail, transfert de fichiers, connexion à distance, WWW…
 Une somme « d’inventions » qui s’accumulent
 Mécanismes réseau de base (TCP/IP)
 Nommage et adressage des ressources (DNS, URL)
 Outils et protocoles spécialisés
 Langages d’échange d’informations standardisés (HTML, XML…)
Bref historique d’Internet

 1959-1968 : Programme ARPA


 le ministère américain de la défense lance un réseau capable de supporter les conséquences
d’un conflit nucléaire
 1969 : ARPANET, l’ancêtre d’Internet
 les universités américaines s’équipent de gros ordinateurs et se connectent au réseau
ARPANET
 1970-1982 : Ouverture sur le monde
 premières connexions avec la Norvège et Londres
 1983 : Naissance d’Internet
 protocole TCP/IP : tous les réseaux s’interconnectent
 les militaires quittent le navire
 1986 : Les autoroutes de l’Information
 la National Science Fondation déploie des super-ordinateurs pour augmenter le débit
d’Internet
 1987-1992 : Les années d’expansion
 les fournisseurs d’accès apparaissent
 les entreprises privées se connectent au réseau
 1993-2003 : L’explosion d’Internet


ouverture au grand public
avènement du WEB et du courrier électronique } marché considérable
Genèse du Web : la notion d’hypertexte

 Principe
 S’abstraire de l’aspect linéaire du document textuel
 Mécanisme intellectuel permettant le cheminement d’une information à
une autre  navigation, butinage, transclusion
 Historique
 1945 : invention de la notion d’hypertexte
 Vannevar Bush, As We may think, Atlantic Monthly, 1945
 1965 : invention du terme d’hypertexte
 Ted Nelson, projet Xanadu
 Années 1960 : premier système hypertexte fonctionnel
 NLS (oNLine System), Douglas Englebart
 1987-2004 : diffusion du logiciel HyperCard
 Programme et environnement graphique de programmation, créé par Bill
Atkinson pour Mac OS, livré avec les Mac
 1987 : première conférence HyperText
 Sponsorisée par l’ACM
Naissance du Web (1989-1991)

 Mars 89 : projet de création d’un hypertexte documentaire


distribué sur le réseau du CERN
 Origine : Tim Berners-Lee, puis Robert Cailliau (1990)
 Choix des technologies TCP/IP et ouverture de la première connexion du
CERN avec Internet
 Mise au point des 3 technologies de base du Web : URL, HTML et
HTTP
 Septembre 90 : 1er site Web fonctionnel (mode texte)
 1er serveur Web : nxoc01.cern.ch
 1er navigateur Web : WorlWideWeb (rebaptisé
plus tard Nexus), développé en Objective C
 Août 1991 : publication du projet
WorldWideWeb dans un message
sur UseNet
 Décembre 91 : démonstration publique Le premier serveur Web,
à la conférence Hypertext'91 (San Antonio) un NeXT Cube
(source : Wikipédia)
Historique du Web
 1993 : Mosaic : premier navigateur « grand public » Nombre de sites référencés
 Marc Andreessen, NCSA : plateformes X, puis Mac et Windows
 affichage d’images (GIF et XBM) dans les pages Web
1990 : 1 (CERN)
 prise en charge de formulaires interactifs
1991 : premier site hors
 1994 : création du W3C
d’Europe (SLAC, Stanford)
 à l’initiative du CERN (Genève) et du MIT (Boston)
 président : Tim Berners-Lee
1992 : 26
 but : standardisation et développement du Web

 1994 : Apparition des navigateurs privés Juin 1993 : 130


 M. Andreessen crée Netscape Communications Corp.

 1995 : Microsoft lance la « guerre des navigateurs » Juin 1994 : 2738


 Apparition d’Internet Explorer pour Windows 95
Juin 1995 : 23 500
 1995 : Altavista : premier « gros » moteur de recherche
 1996 : Navigateur Opera Janvier 1996 : ~ 100 000
 1998 : Apparition de Google
Avril 1997 : > 1 million
 2003 : Apple lance Safari
 2004 : Première version de Mozilla Firefox Février 2000 : > 11 millions
 2004 : première conférence « Web 2.0 »
Février 2007 : > 100 millions
 2008 : Google lance Google Chrome
 Actuellement : explosion du Web mobile Février 2009 : ~ 216 millions
 En cours de développement : Web sémantique, de données,
des objets…
Aspects techniques du Web

 Les 3 mécanismes de base du Web


 URL
 Le Web permet d’accéder à un ensemble de ressources
 Le mécanisme de localisation peut faire appel au protocole DNS

 HTTP
 Protocole de niveau applicatif
 Paradigme client-serveur
 Protocole sans état (pas de « mémoire » des transactions précédentes)
 HTML
 Langage de description de « pages Web »
 Texte, images et autres objets

 Liens hypermédias entre les pages

 Programmation déclarative
Aspects techniques du Web

 Les forces en présence


 Côté client : l’utilisateur utilise un navigateur
 Client HTTP
 Interprète les pages Web et les affiche à l’utilisateur
 Peut effectuer des traitements plus complexes (plugins, moteur de
scripts…)
 Côté serveur : le Webmaster gère un serveur Web
 Attend les requêtes HTTP et y répond
 En renvoyant des ressources dont il dispose
 En interrogeant plusieurs modules (sécurité, scripting,
redirection…)
 En interrogeant d’autres outils pour les traitements complexes
 On parle aussi de serveur Web pour désigner la machine qui
héberge le programme serveur (abus de langage)
Fonctionnement du Web en un schéma

Internet Serveur Web

Le nom duLe serveur


serveur dans
trouve (sur un disque)
l’URL
ou calcule
est transformé (dynamiquement)
en adresse IP
HTML la ressource
(résolution DNS). demandée.
Le serveur Web est identifié.
HTTP Le serveur
Une requête
renvoie
HTTP la estpage
adressée
(X)HTML
au serveur
Un internaute (utilisateur) correspondant
via Internet (routage).
à la requête au client
utilise un client Web (navigateur) par le même moyen.
Le client
pour interprète
identifie
obtenir lala
une page
pagepar (page Web)
ressource
Web
son
suradresse
et
unl’affiche
(URL).
serveur à distant…
l’utilisateur

http://www.google.
fr/
Autre
client Web
Navigateur = Client Ressource demandée
Web
Popularité du Web

 Pour l’internaute
 Accessibilité « world-wide »

 Interfaces graphiques conviviales

 Interactivité et richesse des services

 Grande quantité d'informations disponibles (Web « 1.0 »)

 Possibilité de contribuer en tant qu’utilisateur (Web « 2.0 »)

 Pour le développeur
 Simplicité des développements (technologies de base…)

 Liens avec les outils applicatifs installés sur le serveur (shell,


Perl, Java…)
 Indépendance par rapport aux plateformes des clients
Répartition des clients (sept. 2023)

 Fixes

 Source : http://en.wikipedia.org/wiki/Usage_share_of_web_browsers

 Source :
https://gs.statcounter.com/browser-market-share/desktop/worldwide#monthly-201008-202308
Répartition des clients (sept. 2023)

 Mobiles

 Source :
https://gs.statcounter.com/browser-market-share/mobile/worldwide#monthly-201008-202308
Répartition des clients (sept. 2023)

 Tous dispositifs

Nov. 2016

 Source :
https://gs.statcounter.com/platform-market-share/desktop-mobile-tablet#monthly-201308-202308
L’approche DevOps
34

 Contraction de Developers et Operations teams


 Un mouvement pour rapprocher ces deux métiers combinant
une culture, des pratiques et des outils
 Objectifs
 Augmenter la collaboration entre ces équipes

 Améliorer la qualité de la solution produite

 Augmenter la fréquence des mises à jour

 Automatiser l’infrastructure, les workflows, les tests…

 Mesurer les performances

 Répondre plus rapidement à l’évolution des besoins métier


L’approche DevOps
35

 Contraction de Developers et Operations teams

Un mouvement pour rapprocher ces deux métiers,


combinant une culture, des pratiques et des outils

 Workflow

 Source : AWS
L’approche DevOps
36

 Culture
 Briser les silos entre les équipes
 Chaque équipe est consciente des préoccupations des autres
 Les équipes échangent des informations et se facilitent
mutuellement le travail
 Augmenter les compétences des équipes
 Chaque personne connaît sa place dans un workflow global
 Chaque personne est capable d’améliorer son travail grâce à sa
connaissance des entrants et des sortants des autres tâches
 Employés plus impliqués, mieux valorisés
 Gains de productivité (facilite l’agilité)

 Accélération du « time-to-market »

 Amélioration de la satisfaction du client


L’approche DevOps
37

 Pratiques
 Déploiement continu
 Modulariser le code
 Réduire le temps de déploiement

 Intégration continue
 Tester et merger fréquemment son code
 Livraison continue
 Déployer automatiquement chaque release sur un environnement de
test similaire à l’environnement de production
 Augmenter la fréquence de déploiement sur l’environnement de
production
L’approche DevOps
38

 Pratiques
 Microservices
 Facilite la modularisation du code et du déploiement
 « Infrastructure as code »
 Environnements de développement et de production identiques
 Gestion de la configuration des environnements par du code
 Opérations de configuration et de déploiement définies
programmatiquement
 On utilise des techniques de GL (versionning, patterns…) pour la
gestion des infrastructures
 Meilleure scalabilité des déploiements
L’approche DevOps
39

 Pratiques
 Monitoring et logging
 En termes de : qualité, performance, évolution des besoins
 Permet d’analyser l’impact des déploiements
 Améliorer et optimiser le code en continu

 Communication et collaboration entre les équipes


 Unification des workflows de développement et de mise en
production
 Mise en place de règles et documentation des processus
 Responsabilisation de toutes les équipes sur ces processus
L’approche DevOps appliquée au Web

Scalabilité
 Exemple d’architecture :
Sécurité Web application data
Data
module 1 source1
HTTPS HTTP
Front server Verticale
reverse proxy
Web application data
Data
module 2 source 2
file

Static
Web application Web application Horizontale
content
module 3 module 3

Séparation des contenus data data


statiques / dynamiques Sharding
Data Data Data Data
source 3.1 source 3.2 source 3.3 source 3.4
L’approche DevOps appliquée au Web
Déploiement
 Exemple d’architecture : et intégration
continus
Web application data
Data
module 1 source1
HTTPS Front server HTTP
reverse proxy
Web application data
Data
module 2 source 2
file

Static
content Web application Web application
module 3 module 3

data data

Data Data Data Data


source 3.1 source 3.2 source 3.3 source 3.4
L’approche DevOps appliquée au Web

 Exemple d’architecture :
Web application data
Data
module 1 source1
HTTPS Front server HTTP
reverse proxy
Web application data
Data
module 2 source 2
file

Static
content Web application Web application
module 3 module 3

data data

Monitoring
Data Data Data Data
Feedback source 3.1 source 3.2 source 3.3 source 3.4
L’approche DevOps
43

 (quelques) Outils
 Gestion du code / documentation
 SVN, Git, Mercurial
 Issues / communication
 Redmine, Mantis, Bugzilla
 Tests
 …, Chaos Monkey
 Packaging : Binary repository manager
 GitHub package registry, Sonatype Nexus
 Déploiement / Intégration continue
 Jenkins
 Livraison : Application-release automation (ARA)
 Chef, Puppet, SaltStack, Ansible…
 Monitoring / logging / mesure de perf : Application Performance
Management (APM)
 Stackify Retrace, New Relic
Les événements liés au Web

 À Lyon
 Groupes d’utilisateurs
 LyonJS, JUG, CARA, LYAUG, apéro PHP, CocoaHeads…
 Référence : Lyon Tech Hub (calendrier Google)

 À l’UCBL
 Fonds de Soutien et de Développement des Initiatives
Etudiantes
http://etu.univ-lyon1.fr/vie-etudiante/financer-votre-
projet/fsdie-mode-d-emploi-506763.kjsp?RH=1197015715894
 Cellule concours :
http://fst-informatique.univ-lyon1.fr/formation/cellule-
concours/
Aucun rapport…

 Il reste de la place en alternance


 Réunion d’info jeudi 21 septembre 14h00 en TD12
Page d’accueil de l’UE

https://perso.univ-lyon1.fr/lionel.medini/enseignement/#md=M1IF03/index

Vous aimerez peut-être aussi