Vous êtes sur la page 1sur 43

Chapitre 1

Introduction aux
applications Web

Abdallah GHOURABI 1MP-RAD Dveloppement et intgration


2014/2015 dapplications Web
Introduction

2
Application Web
3

Cest quoi ?
Application manipulable grce un navigateur Web
Application rpartie entre plusieurs systmes
Repose sur les architectures distribues (muti-tiers)

Utilisations
Moteur de recherche
Webmail
Commerce lectronique
Jeux en ligne

Applications distribues (ou rparties)
4

Dfinition :
Une application distribue est un ensemble de programmes
distribus sur un rseau de communication qui collaborent pour
assurer un service
Principe :
Dans une architecture distribue type, les fonctions de
lapplication sont rparties entre un systme client (navigateur
Web, terminal, ) et un ou plusieurs systmes serveurs (serveur
Web, serveur de base de donnes, ..)
Exemples :
Grille de calcul
Application de commerce lectronique
Services Web

Pourquoi des applications distribues ?
5

Besoin intrinsque de l'application


Les utilisateurs sont rpartis (ex : site web)
Les donnes sont rparties (ex : stations mtos)
Partage de donnes/informations (ex :P2P)
Mais aussi
Besoin de performances (ex : gille de calcul)
Besoin de disponibilit (ex : redondance)
Besoin de modularit (ex : dcouplage gestion client /
gestion personnel)
Utilisation de services externes
Conception dune application informatique
6

En gnral, une application informatique peut tre


dcoupe en trois niveaux d'abstraction distincts :
Couche prsentation : encore appele IHM,
permet l'interaction de l'application avec
l'utilisateur.
Couche traitements (ou logique) : dcrivant les
traitements raliser par l'application.
Couche donnes : assure la gestion des donnes
de l'application (stockage et accs).
Evolution des applications
7

Prsen-
Service
tation
Prsen-
Service
tation
Internet of Things
Prsentation APIs
Prsentation Cloud Computing

Prsentation Traitements
Traitements Traitements Virtualisation
Traitements .
Donnes Donnes Donnes Donnes

1-tier 2-tiers Service Oriented Web-Oriented


Client/Serveur
3-tiers Architecture SOA Architecture WOA
Mainframe
1970s 1980s 1990s 2000s 2010s

* Gartner, 2014
Architecture 1-tier

8
Architecture 1-tier (Mainframe)
9

Architecture trs ancienne, avant lapparition du


mode Client/Serveur
Les rseaux informatiques taient configurs
autour d'un ordinateur central appel mainframe
auquel taient connects des terminaux passifs
(cran adjoint dun clavier sans unit centrale)
Tous les utilisateurs sont connects sur le mme
ordinateur central
Architecture 1-tier
10

Les trois couches applicatives sont lies et s'excutent sur le mme


ordinateur
On parle darchitecture centralise
Lordinateur central prend en charge l'intgralit des traitements, y
compris l'affichage qui est simplement dport sur des terminaux
passifs

Mainframe

Prsentation

Traitements

Donnes
Architecture 1-tier
11

Avantages :
Gestion des donnes et des traitements centralise ;
Facilit du dploiement ;
Maintenance matriel minime.

Inconvnients :
Interface homme-machine minimaliste (en mode texte) ;
Technologies anciennes ;
Surcharge au-del dun certain nombre dutilisateurs.
Architecture 2-tiers

12
Architecture 2-tiers (Client/Serveur)
13

Appele aussi architecture Client/Serveur


Modle de fonctionnement logiciel bas sur
lutilisation de deux types de logiciels : Client et
Serveur
Le dialogue entre les 2 logiciels peut se rsumer par :
Le client demande un service au serveur.
Le serveur ralise ce service et renvoie le rsultat au client.

Requte
Client Serveur
Rponse
Application Service
Modle Client / Serveur
14

Client : processus demandant l'excution d'une opration


un autre processus par envoi de requte et attendant la
rponse de cette opration par un message en retour.
Serveur : processus accomplissant une opration sur
demande d'un client, et lui transmettant le rsultat.
Requte : message transmis par un client un serveur
dcrivant l'opration excuter pour le compte du client.
Rponse : message transmis par un serveur un client
suite l'excution d'une opration, contenant le rsultat
de l'opration.
Modle de Gartner pour les
15
architectures 2-tiers
Exemples dapplications Client/Serveur
16

Client FTP / Serveur FTP


Client Web (navigateur) / Serveur Web
Client lourd / Serveur de base de donnes
Client DNS (navigateur Web) / Serveur DNS
.
Limites de larchitecture Client/Serveur
17

Architectures de plus en plus complexes


Application de commerce en ligne
Radio/tlvision numrique interactive
Moteur de recherche

Dans le modle client/serveur toute la complexit


est concentre dans le serveur
Problme de performance/disponibilit
Rpartition de charge (load balancing)
Problme pour matriser la complexit
Architectures multicouches (n-Tiers)
Matriser la complexit : les architectures
multi-tiers
18

Lapplication devient complexe :


Difficile dvelopper
Difficile tester
Difficile maintenir
Difficile faire voluer

Solution : les architectures multi-tiers (muticouches)


Dcouper lapplication en un ensemble de composants (ou
couches) fonctionnels distincts et faiblement coupls.
Architecture 3-tiers

19
Architecture 3-tiers
20

Chaque couche (tier) assure des fonctions ddies :


Couche Client : fonctions de prsentation
Interface utilisateur
Correspond la partie visible de lapplication et interactive
avec les utilisateurs
Couche du milieu : fonctions applicatives/orientes mtier
Validation des donnes des utilisateurs
Modlisation des processus mtiers (traitements, analyse, )
Couche Donnes : fonctions de stockage de donnes
Architecture 3-tiers
21

Trois niveaux de service distincts :


Premier niveau : l'affichage et les traitements locaux (contrles de
saisie, mise en forme de donnes... ) sont pris en charge par client,
Deuxime niveau : les traitements applicatifs globaux sont pris en
charge par le service applicatif,
Troisime niveau : les services de base de donnes sont pris en
charge par un SGBD.

Client Serveur Serveur de


intermdiaire donnes
Service applicatif SGBD
Prsentation

Traitements Traitement Donnes


locaux
Architecture 3-tiers Client
22

Sur la couche prsentation, une application cliente


est charge de laffichage et de la saisie des
donnes :
Client lger
Navigateur (HTTP/(X)HTML),
Applets (RMI),
Application excutable,
etc,
Client lourd
Client lourd et Client lger
23

Les clients lourds sont des logiciels destins tre


installs localement sur une machine en opposition
aux clients lgers qui sexcutent par exemple dans un
navigateur Web, mais ncessitent un serveur.
Par exemple, Google Maps constitue un client lger
puisque tout sexcute sur un serveur et est affich
dans un navigateur Web,
Par contre, Google Earth est un client lourd puisque
lapplication doit tre installe manuellement sur
lordinateur.
Service applicatif
24

Assure la ralisation des fonctions spcifiques de


lapplication
Dans le cas dune application Web, la logique
applicative est prise en charge par le serveur HTTP
Plusieurs technologies peuvent tre utilises :
CGI
les scripts cot serveur comme ASP, PHP, JSP qui sont
interprts par le serveur pour gnrer des pages web
dynamiquement.
les servlets Java

Fonction de stockage
Sur la couche donnes, les serveurs du systme
dinformation stockent les donnes relatives aux
composants mtiers :
Systme de gestion de base de donnes
ERP (Enterprise Ressource Planning)
Annuaires dentreprise
Fichiers XML,
Architecture 3-tiers : Application Web
26

Client Serveur Web Serveur de


donnes
requte HTTP requte SQL SGBD
Prsentation
rponse HTTP rponse SQL

Traitements Traitement Donnes


locaux

Navigateur Web Apache (PHP) MySql


Tomcat (JSP) Oracle
IIS (ASP) Access

Architecture 3-tiers
27

Avantages :
Allgement du poste de travail client avec lintroduction de
clients dits lgers
Simplifie le dveloppement
Gain en productivit
Maintenance de larchitecture est plus aise car elle concerne
bien souvent quun composant
Amlioration de la scurit des donnes, en supprimant le lien
entre le client et les donnes

Limites :
Toute la complexit de lapplication rside dans le tier
intermdiaire
Architecture n-tiers

28
Architecture n-tiers
29

Larchitecture n-tiers peut contenir un nombre illimit


de couches.
Permet de concevoir des applications puissantes et
simples maintenir
Permet de distribuer plus librement la logique
applicative, ce qui facilite la rpartition de la charge
entre tous les niveaux

Meilleures performances
Des services de scurit
Une plus grande flexibilit/souplesse
Une facilit dans la gestion des sessions
Architecture 4-tiers
30

Architecture Web

Client Serveur Web Serveur Serveur de


dapplication donnes

Prsentation
Prsentation Logique Donnes
Traitements mtier
Serveur Web Rle
31

Traite les requtes HTTP et les rponses


Spare la prsentation de la logique applicative
Gnre du contenu dynamiquement
Transforme des requtes HTTP dans un format
compris par lapplication
Identifie la session de lutilisateur
Supporte plusieurs types de clients
Serveur dapplication Rle
32

Un serveur d'applications est un conteneur


d'applications grant la scurit et la fiabilit
(tolrance aux pannes) des applications qu'il
contient et excute.
Les applications contenues sont des composants
modulaires rutilisables : des objets que l'on peut
assembler en fonction de l'application que l'on
dsire obtenir.
Le serveur d'applications est capable de travailler
avec d'autres serveurs.
Serveur dapplication Caractristiques
33

Scurit : fournir des services, tels que


l'authentification et l'autorisation pour contrler
laccs aux donnes de lapplication
Gestion de composants : outils et services pour grer
les composants du systme et la logique mtier
Rpartition de charge et disponibilit
Passage lchelle : capacit du systme accrotre
ses ressources matrielles
Gestion des transactions
Quelques serveurs dapplication
34

Serveurs JEE : Glassfish, JOnAS, JBoss, IBM


WebSphere
Serveurs .NET : .NET Entreprise Server
Serveurs PHP : Zend
2 grandes plates-formes
35

Microsoft :
.NET

Java :
Java EE
.NET
36

Plate-forme de Microsoft pour le dveloppement


de diffrents types dapplications :
GUI/Web/service/mobile/serveur/cloud/
Sexcute sur les systmes dexploitation Windows
de Microsoft
Ensemble vari de technologies et de
bibliothques
Plusieurs langages de programmation : C#, C++,
VB.NET, J#,
Architecture .NET
37
Architecture .NET
38

Langages : un choix vari de langages de programmation (C++, C#,


VB.NET, J#, )
Common Language Specification : assure l'interoprabilit entre les
diffrents langages
.NET Framework Class Library :
ASP.NET, Web Forms et Web Services : cre des interfaces utilisateurs pour les
applications Web et les services Web
Windows Forms : cre des interfaces graphiques pour les applications Windows
ADO.NET and XML : permet laccs aux bases de donnes et aux documents XML
Base Class Library : contient tous les types rutilisables et les classes standards utiliser
dans la POO
Common Language Runtime : moteur dexcution dapplications .NET
Operating System
Visual Studio .NET : environnement de dveloppement .NET
Excution des programmes .NET
39

1. Les codes .NET sont compils


dans un langage intermdiaire
appel Common Intermediate
Language (CIL)
2. Le langage CIL se compile au
niveau de la Common Language
Runtime (CLR) pour fournir un
code excutable
Java EE
40

Java EE (Enterprise Edition) est une spcification


(contrairement .NET)
Une application Java EE assemble des composants :
Clients : HTML, applets,
Web : servlets, JSP,
Business (mtier) : EJB
La plateforme JEE regroupe un ensemble trs riche
dAPI (interfaces de programmation) pour le
dveloppement d'applications d'entreprise
Une application JEE se dploie et sexcute dans un
serveur dapplications
Architecture JEE
41
Les API de JEE
42

Les API JEE peuvent tre regroupes en trois


grandes catgories :
Composants : Servlet, JSP, EJB
Services : JDBC, JTA/JTS, JNDI, JCA, JAAS
Communication : RMI, JMS, JavaMail
Comparaison Java EE / .NET
43

.NET Java EE Diffrences


Partagent les mmes caractristiques.
Langage C#, multi-langages Java Java EE est plate-forme indpendant mais langage spcifique,
.NET est langage indpendant, mais plate-forme spcifique
Services Base Class Library Java Api Similaires

ASP.NET utilise tous les langages supports dans .NET et est


Prsentation ASP.NET Servlet, JSP, JSF compil en code natif par le CLR. JSP utilise le code Java,
compil en bytecode
CLR permet du code de plusieurs langages dutiliser un
Interprteur CLR JVM
ensemble de composants partags
Web Forms
GUI Swing
Win Forms
Accs BD ADO.NET JDBC, JPA,
Services
oui oui
Web
Middleware oui oui
Technologie Produit Spcification

Vous aimerez peut-être aussi