Telechargé par Kerdaoui Mohsen

2016 09 07 Archi web et Reseaux

publicité
INSTITUT SUPERIEUR DES ETUDES TECHNOLOGIQUES
DE SILIANA
1
ARCHITECTURES
WEB
ET
RESEAUX
2éme RSI
Iset Siliana
[email protected]
http://www.academiepro.com/enseignants-104-Chaabani.Nizar.html
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Objectifs
2
 Objectifs Généraux
 Faire acquérir à l’apprenant les connaissances de base relatives à







l’évolution de l’architecture web
- Fournir à l’auditeur les éléments théoriques de la construction et le
déploiement des applications web sécurisées et évolutives.
Objectifs Spécifiques
Comprendre la notion d’architecture web.
Connaître les architectures N-tiers, SOA de développement web.
Connaître les concepts du modèle MVC
Se familiariser avec l’architecture des systèmes mobiles
Maitriser l’évolution des réseaux pour la mise en ouvre de ses
architectures.
PRE-REQUIS
ARCH WEB & RX RSI21
UE : Développement Web et multimédia 1 & 2
Mr Nizar Chaabani
Eléments de Contenu
3
 Client/Serveur Web : Client léger et client riche.
 Architectures n-tiers : 2, 3, n, SOA, etc.
 Modèle MVC
 Architecture Logicielle J2EE
 Architecture des systèmes mobiles
 Web sémantique : architecture et concepts
ARCH WEB & RX RSI21
Mr Nizar Chaabani
BIBLIOGRAPHIE CONSEILLÉE
4
1)
2)
3)
4)
5)
Service-Oriented Architecture Compass - Business Value,
Planning and Enterprise Roadmap IBM Press Books by
Pearons plc. ISBN 0-13-187002-5
Berg (Martin van den), Bieberstein (Norbert),Ommeren
(Erik van), SOA for Profit : guide du manager pour une
SOA réussie, Sogeti et IBM, 2007
Manager avec les ERP, Architecture Orientée Services
(SOA), de Jean-Louis Lequeux, Editions d'organisation,
Paris, Avril 2008.ISBN 978-2-212-54094-9
Birol Berkem, Why SOA services need to be based on the
Business Motivation Model (BMM) ?, June 2008
SOA, Le guide de l'architecte d'un SI agile, 3e édition,
Xavier Fournier-Morel, Pascal Grojean, Guillaume Plouin,
Cyril Rognon, Collection InfoPro, Dunod, 2011
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Introduction :
5
 L'objectif premier d'un système d'information,
quel qu'il soit, est de permettre à plusieurs
utilisateurs d'accéder aux mêmes informations :
 Tout système d'information nécessite la
réalisation de trois groupes de fonctions:
le stockage des données,
 la logique applicative et
 la présentation.

ARCH WEB & RX RSI21
Mr Nizar Chaabani
6
 Stockage et accès aux données :
Le système de stockage des données a pour but de conserver une
quantité plus ou moins importantes de données de façon
structurée.
On peut utiliser pour cette partie des systèmes (très variés) qui
peuvent être :




des systèmes de fichiers,
des mainframes,
des systèmes de bases de données relationnelles,
etc...
ARCH WEB & RX RSI21
Mr Nizar Chaabani
7
 Logique applicative :
La logique applicative est la réalisation informatique
du mode de fonctionnement de l'entreprise.
Cette logique constitue les traitements nécessaires sur
l'information afin de la rendre exploitable par chaque
utilisateur.
 Présentation :
La présentation est la partie la plus
immédiatement visible pour l'utilisateur.
ARCH WEB & RX RSI21
Mr Nizar Chaabani
8
 Le web c'est un ensemble de machines en réseau
communiquant à l'aide d'un langage commun.
 Le web fonctionne en mode client/serveur
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Architectures client/serveur
CONSTITUENT UNE ÉTAPE
IMPORTANTE DANS L'ÉVOLUTION
DES SYSTÈMES D'INFORMATIONS…
Serveur web ou httpd
10
 Capable d'interpréter les requêtes http arrivant sur le port
associé au protocole HTTP
 Récupération des données d’un formulaire
REQUEST_METHOD :
POST ou GET
CONTENT_LENGTH :
Taille en octets du corps de la requête
QUERY_STRING :
Données transmises après le ? dans l'URL
ARCH WEB & RX RSI21
Mr Nizar Chaabani
11
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Principaux serveurs Web
12
 Apache (Unix / Linux)
 MIIS (Windows)
 Microsoft Internet Information Server Java Web
Server (versions pour Unix/ Linux / Windows) et
Jakarta-Tomcat (qui cohabite avec Apache)
Choix de la technologie
 Le choix de la technologie serveur dépend :



du système d’exploitation de la machine serveur
du type de bases de données à interroger
de la charge que doit supporter le serveur
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Quelques notions de base
13
 ** Notion 1 : Serveur de données
 Plate-forme gérant des bases de données à l’aide d’un SGBD
 ** Notion 2 : Serveur d’application
 Plate-forme gérant des composants applicatifs (EJB, ActiveX, Web
Services) et de publication Web (Servelet, JSP, ASP, …)
 ** Notion 3 : Client [lourd, léger, riche]
 Poste de travail avec logiciel de présentation associé gérant l’IHM
 Client lourd : code applicatif complet
 Client léger : pas de code applicatif, présentation en browser
 Client riche : le code applicatif qu’il faut et des outils de
présentation sophistiqués (intelligent, smart client)
ARCH WEB & RX RSI21
Mr Nizar Chaabani
web 1.0 vs web 2.0 vs web 3.0
14
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Rappels Web 1.0
15
 Web 1.0 = Service Internet permettant de naviguer à
travers des pages HTML statiques via HTTP
Transmission de la requête HTTP
Serveur Web

Poste client
Navigateur

Transmission de la réponse HTTP
par le serveur Web
ARCH WEB & RX RSI21 Mr Nizar Chaabani
Pages statiques
HTML et DHTML (côté client)
16
 HTML 4.01
 Dernière version de HTML, les nouveaux développements
portant sur XML (langage à tags ouverts)
 ** Notion 4 : DHTML (Dynamic HyperText Markup
Language)

Ensemble de spécifications complémentaires au HTML
permettant de rendre une page web dynamique côté client:
 Jscript
 DOM
 CSS
ARCH WEB & RX RSI21
Web
Mr Nizar Chaabani
Web 2.0 : Des techniques nouvelles
17
 Ajax: XML sur HTTP en mode





asynchrone via Javascript
REST: Style d’architecture de
services avec appels HTTP
XForms: Saisie déclarative
contrôlée en XML
XUL/XAML: Présentation
déclarative en XML
RDF (Resource Description Framework):
Langage d’annotation de
ressource en XML
…
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Web 2.0 : Quelques notions
18
 ** Notion : Web Service
 composant logiciel dont l’interface est décrite en XML (WSDL)
et invoquée en XML (SOAP)
 ** Notion : Ajax
 technique pour échanger et manipuler les données de manière
asynchrone avec le serveur Web
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Une évolution : le Web dynamique
19
Serveur Web

Traitement de la requête et sélection du
fichier contenant le programme
Requête http


Logiciel
serveur
Poste client

Dossier
contenant les
pages

Serveur
d'application
Base
de
données
Navigateur

Réponse HTTP
ARCH WEB & RX RSI21
We
Mr Nizar Chaabani
Application
métier
Client lourd :
20
 Le terme « client lourd », en anglais « fat
client » ou « heavy client »par opposition au
client léger, désigne une application cliente
graphique exécutée sur le système d'exploitation
de l'utilisateur.
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Client léger :
21
Le terme « client léger », parfois « client pauvre », en
anglais « thin client » par opposition au client lourd,
désigne une application accessible via une interface web
(en HTML) consultable à l'aide d'un navigateur web, où
la totalité de la logique métier est traitée du côté du
serveur. Pour ces raisons, le navigateur est parfois
appelé client universel.
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Client riche :
22
 Un « client riche » est un compromis entre le client léger et le
client lourd.
 L'objectif du client riche est donc de :
 proposer une interface graphique, basée sur la syntaxe XML,
 obtenir des fonctionnalités similaires à celles d'un client lourd
(glisser déposer, onglets, multi fenêtrage, menus déroulants, …).
 Il existe des standards permettant de définir une application riche :



XAML (eXtensible Application Markup Language), prononcez
« zammel », un standard XML proposé par Microsoft ;
XUL, prononcez « zoul », un standard XML proposé par la
fondation Mozilla ;
Flex, un standard XML proposé par la société Macromedia
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Architectures n-tiers : 2, 3, n,
SOA,
23
ARCH WEB & RX RSI21
Mr Nizar Chaabani
24
I.
Niveau d’abstraction d’une application
II. Architecture 1-tiers
III. Architecture 2-tiers
IV. Architecture 3-tiers
V. Architecture n-tiers
VI. Architecture SOA
ARCH WEB & RX RSI21
Mr Nizar Chaabani
I. Niveau d’abstraction d’une application
25
Application
La couche de présentation
La logique applicative
Les données
ARCH WEB & RX RSI21
Mr Nizar Chaabani
II. Architecture 1-tiers
26
Les trois couches applicatives sont intimement liées et s'exécutent sur le
même ordinateur
- Les utilisateurs se connectent aux applications exécutées par le serveur
central (le mainframe) à l'aide de terminaux passifs
présentation
ARCH WEB & RX RSI21
applicative
Mr Nizar Chaabani
données
Tout est sur
la même
machine
III. Architecture 2-tiers
27
- Le poste client se contente de déléguer la gestion des données à un service
spécialisé
- L’ensemble des traitements applicatifs par le poste client : client lourd
- La gestion des données est prise en charge par un SGBD centralisé,
s'exécutant le plus souvent sur un serveur dédié
- Ce dernier est interrogé en utilisant un langage de requête qui, le plus
souvent, est SQL
ARCH WEB & RX RSI21
Mr Nizar Chaabani
III. Architecture 2-tiers
28
GET
Ressources
OUT
ARCH WEB & RX RSI21
Mr Nizar Chaabani
III. Architecture 2-tiers
29
L'architecture à deux niveaux (aussi appelée
architecture 2-tier),
« tier » signifiant rangée en anglais,
caractérise les systèmes clients/serveurs pour
lesquels :
le client demande une ressource (GET), et
 le serveur la lui fournit directement (OUT), en utilisant
ses propres ressources.

ARCH WEB & RX RSI21
Mr Nizar Chaabani
30
 Client : présentation + applicatif
présentation applicative
Client
données
Serveur
 Serveur : applicatif + gestion données
données
applicative
Serveur
ARCH WEB & RX RSI21
Mr Nizar Chaabani
présentation
Client
IV. Architecture 3-tiers
31
- Les données sont toujours gérées de façon centralisée
- La présentation est toujours prise en charge par le poste client
- La logique applicative est prise en charge par un serveur intermédiaire
Tier 1
Tier 2
Serveur
applicatif
Client
Présentation
ARCH WEB & RX RSI21
Logique métier
Mr Nizar Chaabani
Tier 3
BDD
Données
IV. Architecture 3-tiers
32
GET
GET
Ressources
OUT
ARCH WEB & RX RSI21
Mr Nizar Chaabani
OUT
IV. Architecture 3-tiers
33
Dans l'architecture à 3 niveaux, appelée architecture 3-tiers,
il existe un niveau intermédiaire, c'est une architecture
partagée entre :
1.
Un client, c'est-à-dire l'ordinateur demandeur de ressources, équipée
d'une interface utilisateur (généralement un navigateur web);
2.
Le serveur d'application (ou middleware), chargé de fournir les
ressources mais faisant appel à un autre serveur;
3.
Le serveur de données (ou database server) qui va fournir au
serveur d'application les données dont il a besoin.
ARCH WEB & RX RSI21
Mr Nizar Chaabani
IV. Architecture 3-tiers
34
Tiers Milieu
Tiers Client
Appareil
mobile
Browser
Web
Client
Java
Client
VB/C++
ARCH WEB & RX RSI21
SGBD
Serveur
WAP
Serveur
Web
Tiers Backend
Serveur
d’application
Application
ERP
Parefeu
…
Mr Nizar Chaabani
…
Application
mainframe
IV. Architecture 3-tiers
35
 Les 3 principaux tiers s'exécutent chacun sur une
machine différente
présentation
applicative
données
Couche présentation
Navigateur web sur machine cliente
Client léger
Couche applicative / métier
Serveur d'applications , Serveur HTTP exécutant des composants /
éléments logiciels qui génèrent dynamiquement du contenu HTML Via des
requêtes à des BDD distantes
Couche persistance
Serveur(s) de BDD de données
ARCH WEB & RX RSI21
Mr Nizar Chaabani
V. Architecture n-tiers
36
ARCH WEB & RX RSI21
Mr Nizar Chaabani
V. Architecture n-tiers
 dans l'architecture à 3 niveaux, chaque serveur (niveaux 2
et 3) effectue une tâche (un service) spécialisée :

Un serveur peut donc utiliser les services d'un ou plusieurs autres
serveurs afin de fournir son propre service.
ARCH WEB & RX RSI21
Mr Nizar Chaabani
37
V. Architecture n-tiers
38
ARCH WEB & RX RSI21
Mr Nizar Chaabani
VI. Les Architectures orientées services (SOA)
39
Les applications au sein d’une entreprise : plusieurs
technologies
ARCH WEB & RX RSI21
Portail WEB
Application Java
Application .NET 2
Application Java 2
Application .NET
Portail WEB 2
Mr Nizar Chaabani
VI. Les Architectures orientées services (SOA)
40
Client 1
Client 2
Client 3
Service
Métier 1
Service
Métier 2
Service
Métier 3
Sans couche de médiation
ARCH WEB & RX RSI21
Mr Nizar Chaabani
VI. Les Architectures orientées services (SOA)
41
Client 1
Client 2
Client 3
Couche de Médiation
Service
Métier 1
Service
Métier 2
Avec couche de médiation
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Service
Métier 3
VI. Les Architectures orientées services (SOA)
42
L’architecture orientée service constitue un style
d’architecture basée sur le principe de séparation
de l’activité métier en une série de services. »
Processus métier
Métier
Fonctionnel
Use cases
Vue logique
Applicatif
Applications & logiciels
Technique
Physique
Infrastructure
ARCH WEB & RX RSI21
Mr Nizar Chaabani
VI. Les Architectures orientées services (SOA)
Web Services, l’interopérabilité sans adhérence !
43

Permet à des systèmes hétérogènes
d’interopérer




Fondé sur des standards internet


A travers les langages, les plateformes, les applications
D’ordinateur à ordinateur
A l’intérieur ou à l’extérieur d’un firewall
XML, SOAP, WSDL, UDDI
Technologie universellement adoptée

Consensus des acteurs clés
ARCH WEB & RX RSI21
Mr Nizar Chaabani
VI. Les Architectures orientées services (SOA)
44
SOA et Web Service ->fonctionnement
Le fonctionnement des services web repose sur un modèle en couches, dont les
trois couches fondamentales sont les suivantes :
•Échange , visant à décrire la structure des messages échangés par les
applications.
•Découverte, pour permettre de rechercher et de localiser un service web
particulier
•Description, dont l'objectif est la description des interfaces des services web
ARCH WEB & RX RSI21
Mr Nizar Chaabani
45
ARCH WEB & RX RSI21
Mr Nizar Chaabani
VI. Les Architectures orientées services (SOA)
46
Qu’est ce que SOA-> Principes
Les 4 grands principes du SOA




La définition des services
Les services sont autonomes
Les clients et les services ne partagent que des contrats
La compatibilité est basée sur les règles
Besoin de standardisation et la mise en commun des protocoles ( SOAP, XML,….)
La pensé orientée services
SOAP (Simple Object Access Protocol) est un protocole d'échange
Application 1
Message à traiter
Application 2
Message traité
Service 1
Service 2
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Service
Contrat Implémentation
VI. Les Architectures orientées services (SOA)
47
Cycle de vie des services
Identifier les services à mettre en place ;
Pour cela il doit répondre à quelque critère suivant :
 la réutilisation
 l’interopérabilité, offerte via Internet à d’autre SI
 autorise son emploi dans une composition.
ARCH WEB & RX RSI21
Mr Nizar Chaabani
VI. Les Architectures orientées services (SOA)
Processus
48
Modèle orienté
objets
(POO)
Modèle orienté
services (SOA)
ARCH WEB & RX RSI21
Mr Nizar Chaabani
VI. Les Architectures orientées services (SOA)
Processus
49
Il s’agit de centraliser la logique d’un processus dans un
composant dédié, qui prend en charge l’enchaînement et les
règles de gestion
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Architectures Orientées Services
Administration des services
50
•Disponibilité, Versioning, Monitoring, Déploiement
•Routage dynamique des requêtes et des réponses
•Audit, log
•Usage, facturation…
•Sécurité: authentification, autorisation, cryptage, signature

Intrusion

Attack

Timestamp

Statistics

Performance
Transform service,
request
Physical
Connection
 Switch Service
Monitoring

 Switch Implementation
Prioritization
Connector
XML
Firewall
Security
Logging
Access
Control

Identity

Authentication

Billing

Encryption

Royalties

Access control
ARCH WEB & RX RSI21
SLA
Accounting
Mr Nizar Chaabani
State
Mngmt

State

Recovery

Queuing
Transform
Service
Implementations
Aggregate
Composite
Aggregate or
Composite
services
Route
Other
Web
Services
Architectures Orientées Services
Synthèse
51
 Les architectures SOA permettent aux
applications de communiquer avec les
différentes ressources (données,
infrastructure, processus) par
l’échange de messages entre interfaces
réseaux
 SOA est permet de définir d’ interfaces
stables et cohérentes offertes sur des
implémentations volatiles
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Design Pattern MVC
52
ARCH WEB & RX RSI21
Mr Nizar Chaabani
53
 Architecture web
standard
ARCH WEB & RX RSI21
Mr Nizar Chaabani
 Architecture web MVC
Models, Views, and Controllers

View
SQL
Model
Database
Controller
Web Server
HTTP
Browser
MVC
55
• Le Modèle-Vue-Contrôleur organise l'interface
Homme-machine d'une application logicielle en
– un modèle (objet métier, modèle de
données)
– une vue (présentation, interface utilisateur)
– un contrôleur (logique de contrôle, gestion
des événements, traitement)
ARCH WEB & RX RSI21
Mr Nizar Chaabani
MVC - objectifs
56
• séparation entre
–
–
–
les données
la présentation
les traitements
• Meilleur réutilisabilité du code
–
Facilite la maintenance
ARCH WEB & RX RSI21
Mr Nizar Chaabani
MVC Frameworks
57
 J2EE:
 Struts
 Spring MVC
 PHP
 CakePHP
 Strusts4php
 C#.NET
 Girders
 Ruby on Rails
ARCH WEB & RX RSI21
Mr Nizar Chaabani
MVC58- web
• La logique applicative est constituée des
scripts réalisant les demandes de
l'utilisateur (contrôleur), des classes
métiers et des classes d'accès aux
données (modèle).
• L'interface utilisateur sera gérée la
plupart du temps par un navigateur
web, elle peut éventuellement être
un autre site web communiquant via
des webservices.
ARCH WEB & RX RSI21
Mr Nizar Chaabani
MVC en image
59
•couche ihm: c'est l'interface utilisateur encore appelé
interface homme machine
•couche métier : c'est le coeur de l'application où réside les
objets traités par l'application
•couche dao : couche d'accès aux données (data access object).
Cette couche permet une indépendance de la logique métier et
du stockage des données associées
ARCH WEB & RX RSI21
Mr Nizar Chaabani
MVC en action
60
1.
2.
3.
4.
5.
le client fait une demande au contrôleur. Ce contrôleur voit passer
toutes les demandes des clients
le contrôleur doit traiter la demande. Pour ce faire, il peut avoir
besoin de la couche métier, cette dernière peut éventuellement
accéder aux données (via la couche dao)
le contrôleur effectue les traitements nécessaires sur / avec les
objets renvoyés par la couche métier
le contrôleur sélectionne et nourrit la (les) vue(s) pour présenter
les résultats du traitement qui vient d'être effectuée
la vue est enfin envoyée au client par le contrôleur
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Le modèle
61
• décrit et contient les données manipulées par
l'application, ainsi que des traitements propres à ces
données
• les résultats renvoyés par le modèle sont dénués de
toute présentation
• le modèle contient toute la logique métier de
l'application
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Le modèle - DAO
62
• Data Access Object
– Le Dao a pour but de transformer chaque enregistrement
contenu dans une bases de données en objets et
inversement
• Correspondance bijective (SGBD / paradigme
objet)
–
–
–
–
une table (appelée aussi relation)  une liste d’objets
une ligne d’une table (appelée aussi tuple ou
enregistrement)  un objet
un champs de base de données  un attribut d’objet
une valeur d’un champs  une valeur d’attribut d’un
objet
• L’objet est capable de se sauver / détruire en base
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Le modèle - la couche métier
63
• Idéalement la couche métier utilise une ORM et un
DAO, qui utilisent eux-mêmes la DAL
–
Dans ce cas là les méthodes CRUD (Create Read Update
Delete) ainsi que les dépendances entre objets sont gérées par
les couches supérieures
•
La couche métier ne contient alors que les traitements métiers
(propre à l’objet)
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Le modèle
64
ARCH WEB & RX RSI21
Mr Nizar Chaabani
vue
65
• interface avec laquelle l'utilisateur interagit
• présentation des résultats renvoyés par la
couche modèle, après le traitement du
contrôleur
• recevoir toutes les actions de l'utilisateur (clic
de souris, sélection d'une entrée, boutons,
soumission de formulaire …)
–
événements envoyés au contrôleur
• La vue n'effectue aucun traitement
ARCH WEB & RX RSI21
Mr Nizar Chaabani
contrôleur
66
• Détermine l'action à réaliser (analyse de la
requête HTTP)
• gestion des événements de synchronisation
entre modèle et vue
• Si une action nécessite un changement des
données
–
–
demande la modification des données au
modèle
avertit ensuite la vue que les données ont
changé pour qu'elle se mette à jour
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Contrôleur et actions
67
• Le contrôleur analyse la requête HTTP (et
notamment les variables)
pour déterminer l’action à exécuter
–
• Le contrôleur doit déterminer les vues
associées (les templates HTML, mais aussi les
css et js à embarquer)
• Multitude d’action = contrôleur lourd
Modèle MVC2
–
•
•
Un contrôleur principal redirige vers des contrôleurs
spécialisés (méthode dispatch)
Les contrôleurs spécialisés exécutent effectivement l’action
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Séquence typique de traitement
MVC2
68
1.
2.
3.
4.
5.
6.
la requête est analysée par le front contrôler
Le contrôleur spécialisé adéquat est appelé avec
la requête en paramètre
Le contrôleur spécialisé demande, via l’action
adéquat, au(x) modèle(s) approprié(s)
d'effectuer les traitements
le contrôleur spécialisé sélectionne la (les)
vue(s) adaptée(s)
le contrôleur spécialisé remplit la vue adaptée
avec le résultats des traitements
le contrôleur spécialisé renvoie la vue adaptée.
ARCH WEB & RX RSI21
Mr Nizar Chaabani
69
B O NNES P RA T I Q U ES P O U R
L ’ A D M I NI ST RA T IO N D ES SI T ES
WEB
ARCH WEB & RX RSI21
Mr Nizar Chaabani
70
 Application utilisant le protocole HTTP (80) ou
HTTPS (443) pour être pilotée par un utilisateur
 L’utilisateur a besoin d’un simple navigateur Web ou
d’une application propriétaire utilisant le protocole
HTTP/HTTPS pour travailler sur l’applicatif
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Architecture d’une application Web
71
Serveur Web
HTTP / HTTPS
Port 80 / 443
Apache
IIS
Iplanet
XML, Soap, HTML, Zeus
Etc.
etc.
App. Web
Application
Server
RMI
IIOP
XML
Soap
etc.
CGI,
PHP
Etc.
XML
SQL
XML
JDBC
etc.
App. Web
Client Web
ARCH WEB & RX RSI21
Firewall
Classique
Mr Nizar Chaabani
DB
DB
Les attaques web
72
ARCH WEB & RX RSI21
Mr Nizar Chaabani
SQL Injection
73
technique qui permet aux attaquants d’injecter des
requêtes SQL directement sur la base de données qui se
trouve derrière un serveur Web, en manipulant l’entrée «
INPUT » à une application.
Exemple : sur une page d’authentification « login.asp »,
l’utilisateur est amené à saisir un Nom d’utilisateur «
User1 » et un mot de passe « pass2012 », cette opération
se traduit sous forme d’un requête SQL :
SELECT * FROM Utilisateur WHERE nom= ‘User1'
and mot_passe=‘pass2012’
ARCH WEB & RX RSI21
Mr Nizar Chaabani
74
Dans le cas de SQL Server, « -- » est utilisé pour mettre un
commentaire jusqu’à la fin de la ligne, la requête serait alors
SELECT * FROM Utilisateur WHERE username= or 1=1
Cette requête recherche dans la base de données les champs dont le
nom d’utilisateur est vide en réponse à la condition. La requête
va retourner tous les champs de la table utilisateur et l’attaquant
serait authentifié.
L’attaquant a réussi ainsi à s’authentifier sans avoir pour
autant utilisé de nom d’utilisateur ni de mot de passe.
ARCH WEB & RX RSI21
Mr Nizar Chaabani
75
ARCH WEB & RX RSI21
Mr Nizar Chaabani
SQL INJECTION – Comment se protéger
76
Les fondamentaux défenses:
Règle 1:Utilisation Prepared Statements(requêtes
paramétrées)
Règle 2:Utilisation de procédures stockées.
Règle 3: Valider toutes les entrées utilisateur Fourni de
coté serveur
Les défenses additionnel:
Exécuter avec le moindre des privilèges.
White List Input Validation.
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Protection contre les injections
77
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Protection contre les injections
78
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Protection contre les injections
79
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Protection contre les injections
80
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Protection contre le vol de session
81
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Protection contre le vol de session
82
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Protection contre le vol de session
83
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Bonnes pratiques pour l’administration
des sites web
84
1)Sécurisation de la plateforme d’hébergement:
 Mise à jour et hardening du serveur.
 Détection d’intrusion réseau.
 Détection d’intrusion au niveau de l’hôte (HIDS).
 Détection antivirale
 Filtrage applicatif
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Bonnes pratiques pour l’administration des
sites web
85
2)Suivi et audit des logs enregistrés au niveau de la
plateforme de connexion :
 log d’administration,
 log d’accès public,
3.Sauvegarde des données sensible :
 Applicatif
 base de données
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Bonnes pratiques pour l’administration des
sites web
86
SECURISATION DU BD
 Mettre à jour le SGBD avec les derniers correctifs
stables
 Utiliser des algorithmes de hachage/cryptage pour
stocker les données critiques
 Sécuriser le serveur de base de données derrière un
firewall et utiliser un IDS pour détecter toute tentative
d’intrusion
 Le serveur de base de données ne devrait pas avoir une
adresse IP accessible au public
 L'accès à la base de données ne devrait être autorisé
qu'à partir du serveur web sur un port bien particulier
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Bonnes pratiques pour l’administration des
sites web
87
 Protéger contre les attaques de brute force
 Utiliser l'authentification forte, si possible (one time password,
certificat numérique, etc.)
 Verrouiller un compte après un nombre déterminé de tentatives de
connexion a échoué
 Identifier l'emplacement dans le réseau:
 Serveur web est situé dans une DMZ
 Évaluer la configuration du firewall:
 Serveur web est protégé par un pare-feu de couche d'application
 Firewall contrôle tout le trafic entre l'Internet et le serveur web
 Pare-feu bloque tout le trafic entrant vers le serveur web, sauf les
ports TCP 80 (HTTP) et / ou 443 (HTTPS)
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Bonnes pratiques pour l’administration des
sites web
88
 Évaluer les commutateurs réseau
 Les commutateurs sont utilisés pour protéger contre
les écoutes réseau
 Évaluer les répartiteurs de charge (Load
balancers)
 Les répartiteurs de charge sont utilisés pour
augmenter la disponibilité du serveur web
 Les équilibreurs de charge sont complétés par les
caches web
 Evaluer le reverse proxy
 Le reverse proxy est utilisé comme une passerelle de
sécurité pour accroître la disponibilité du serveur web
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Architecture Logicielle J2EE
89
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Qu’est ce que le Java EE (ou J2EE)
90
 La Plateforme JEE désigne les technologies Java
utilisées pour le développement d'applications
«d’entreprise » distribuées (Répartie, multicouches, n-tiers)
 JEE est une plate-forme fortement orientée
serveur.
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Répartition des fonctions
91
sur la couche présentation, une application cliente est chargée
de l’affichage et de la saisie des données
 Client web léger, Application java client ou applets (RMI),
2. sur la couche application, un serveur d’application maintient
des composants métiers utilisés pour modéliser sous forme
d’objet les processus de l’application Serveurs de:
 présentation, outils métiers, servlets,JSP , EJB
3. sur la couche données, les serveurs du système d’information
d’entreprise stockent les composants métiers
 bases de données relationnelles ou objets, intégrés (ERP),
annuaires d’entreprise LDAP,…
1.
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Serveurs d'applications JEE
92
 Architecture Web
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Architecture: schéma de principe
93
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Principes de JEE
94
 L’architecture JEE est une architecture d’application distribuée à base de
composants. Ces composants sont mis en œuvre par l’intermédiaire des
conteneurs
Tiers
Tiers
Tiers Interface
Services Web
Navigateur
Conteneur
Applet
Serveur Web
Internet
Composant Client
Applet/
Html/wml
ARCH WEB & RX RSI21
Conteneur
Web
Composant Web
Servlet/JSP
Mr Nizar Chaabani
Tiers Métier
Données
Serveur
d’application
Conteneur
EJB
Composant
Métier
Bean
Serveur de
bases de
données
Composants J2EE
95
 Un composant est une unité logicielle de niveau
applicatif.
 JEE supporte les types de composants suivants :
applets,
 application clientes,
 JavaBeans
 composants Enterprise JavaBeans (EJB),
 composants Web,
 composants adaptateurs de ressource
 etc

ARCH WEB & RX RSI21
Mr Nizar Chaabani
Android
96
ARCH WEB & RX RSI21
Mr Nizar Chaabani
97
 Première plateforme ouverte pour appareils
mobiles.Les applications natives et tierces utilisent
les mêmes API.
 Un système d’exploitation open source libre pour
appareils mobiles;
 Un environnement de développement ouvert
construit sur un noyau Linux open source;
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Concurrents
98
 iOS(iphone OS): Un système mobile développé par
Apple;
 Windows mobile: C’est le nom générique donné à
différentes versions de Microsoft Windows
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Pourquoi développer une application mobile?
99
Pour les professionnels
✔
✔
✔
✔
L’application augmente l’accessibilité au site
L’application permet de générer du trafic
Le marché est en pleine croissance
Une application contribue à l’image de marque
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Versions disponibles
100
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Plateforme de téléchargement
101

Google Play : anciennement dénommée Android
Market
Boutique en ligne
Client mail (Gmail)
Gestion des SMS
PIM (Google Calendar, gestion des contacts, etc.)
Google Maps
Navigateur Web basé sur WebKit
Messagerie instantanée (Google Chat, MSN, etc.)
Android Market Place
etc.
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Architecture générale
102
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Architecture - Kernel Linux
103
 Basé sur Linux (version du noyau : 2.6) mais ce n'est pas Linux ! (pas
de support de la glibc, X non présent)
 Le kernel Linux offre :




Une couche d'abstraction matérielle
Gestion de la mémoire
Gestion des processus
Gestion de la couche réseau
 Il est possible d'accéder à la console (le shell)
depuis la commande adb
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Architecture - Application Framework
Core Plateform Services
104
 Activity Manager


Gère le cycle de vie des applications
Maintient une « pile de navigation » permettant de switcher d'une application à une
autre et de restaurer son état précédent
 Package Manager

Utilisé par l'Activity Manager pour charger les informations des fichiers .apk
(Android package file)
 Window Manager

Gestionnaire de fenêtres des applications
 Resource Manager

Gère tout ce qui ne relève pas du code (ressources statiques, images, audio, etc.)
 Content Provider

Gère le partage des données entre applications
 View System

Fournit l'ensemble des composants graphiques
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Architecture - Application Framework
Hardware Services
105
 Permettent d'accéder aux APIs matérielles de bas niveau
 Telephony Service

Permet l'accès aux interfaces "téléphonique" (GSM, 3G, etc.)
 Location Service

Permet d'accéder au GPS
 Bluetooth Service

Permet d'accéder à l'interface bluetooth
 Wifi Service

Permet d'accéder à l'interface Wifi
 USB Service

Permet d'accéder aux interfaces USB du terminal
 Sensor Service

Permet d'accéder aux détecteurs (détecteurs de luminosité, etc.)
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Le moteur d'exécution d'Android
106
 Un moteur d'exécution (« runtime system » en
anglais) est un programme qui permet l’exécution
d'autres programmes.
 pour utiliser des applications développées en Java
sur votre ordinateur vous avez besoin du JRE (« Java
Runtime Environment »).
 Pour Android Elle contient certaines bibliothèques
de base du Java accompagnées de bibliothèques
spécifiques à Android et la machine virtuelle «
Dalvik ».
ARCH WEB & RX RSI21
Mr Nizar Chaabani
la compilation et à l'exécution d'un programme
Java standard.
107
ARCH WEB & RX RSI21
Mr Nizar Chaabani
la compilation et à l’exécution d'un programme
Android standard
108
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Arborescence d’un projet Android
109
Arborescence d’un projet Dossiers crées
automatiquement lors de la création d’un projet :
 bin : binaires generés
 libs : bibliothèques
 res : fichiers de ressources (icones, layout, . . . )
 src : fichiers sources (code Java)
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Installation d’une application
110
 Liste des périphériques avec ADB
 ADB (Android Debug Bridge) outls d'une
communication entre le smartphone et pc.
adb devices
 Installation Une application est installée sur un AVD
ou sur un matériel a l’aide de la commande :
adb install NomApk.apk
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Boîte à outils
111
ARCH WEB & RX RSI21
Mr Nizar Chaabani
SDK Android
112
 Le kit de développement Android(SDK) fournit
l’environnement de travail pour développer, tester et
déboguer des applications Android.
 Dans le SDK on trouve:
1. Les
API Android qui sont le coeur du SDK. Composés
de bibliothéques d’API Android, ils donnent au
développeur accès à la pile Android.
2. Des outils de développement qui permettent de
compiler et déboguer vos applications.
3. Le virtual Device Manager et l’Emulateur qui
fournit un meilleur environnement de test
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Virtual Device Manager
113
 Le SDK Android et le Virtual Device Manager sont
utilisés pour créer et gérer les AVD(Android Virtual
Devices) et les packages du SDK.
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Emulateur
114
 L’emulateur d’Android est un outil de test et de
débogage d’application Android.
 Il fournit une connexion réseau complète, une
simulation d’envoi et de réception d’appels et de
SMS.
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Composants d’une application Android
115
 Les applications Android sont constitués de composants
à couplage.
 Les composants sont liés par un manifeste d’application
qui décrit chacun d’eux et comment ils interagissent.
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Activity : le cycle de vie
116
ARCH WEB & RX RSI21
Mr Nizar Chaabani
Téléchargement