<!-- Slide number: 1 -->
Institut Supérieur des Etudes Technologiques de Bizerte
Unité d’Enseignement : ENVIRONNEMENTS DE DEVELOPPEMENT
Parcours : Développement des Systèmes d’Information (DSI)
Enseignant: Khaoula Jridi
Année Universitaire: 2015-2016

Architecture Logicielle
1
<!-- Slide number: 2 -->
Chapitre 2
Les Architectures web distribuées : Les Web Services
2
<!-- Slide number: 3 -->

Les objectifs du Chapitre
Comprendre la notion du web service.
Connaitre les différentes technologies du WS.
Savoir quelques architecture web distribuées.
3
<!-- Slide number: 4 -->

Plan du chapitre
Introduction
Architecture Web Services
Les Principales Technologies des services web
Les Outils de Développements des Services Web
4
<!-- Slide number: 5 -->
Introduction
Applications distribuées : Applications mettant en jeux différents processus s’exécutant sur des machines distantes.
Interopérabilité :communication entre objets écrits avec différents langages. application en C++ faisant appel à un programme distant écrit en JAVA.
(Exemple : CORBA).
Conséquences: mondialisation, décentralisation des ressources et des connaissances, Grid, travail à distance, répartition du calcul, applications multi-niveaux, Urbanisation des SI des entreprises.

5
<!-- Slide number: 6 -->
Introduction
L’urbanisation informatique définit l’organisation d’un SI à l’image d’une ville
- découper le SI en modules autonomes ( zone, quartier, îlot, bloc)
- localiser les zones d’échange d’informations(routes, ponts, tunnels) qui permettent de
découper les différents modules
Objectif faire évoluer le SI au même rythme que la stratégie et l’organisation des métiers de l’entreprise.
6
<!-- Slide number: 7 -->
Introduction
L’urbanisation: établir une cartographie applicative du SI en fonction du métier(les règles du métier de l’entreprise).
Pour l’entreprise : Avoir un SI conforme avec le processus métier


L’enjeu de l’urbanisation : faire évoluer le SI voire refaire certains morceaux, sans détruire l’existant, en intégrant des composants diverses et en exploitant les avancées technologiques dans un souci de cohérence générale, de réactivité et de flexibilité.
7
<!-- Slide number: 8 -->
Introduction

8
<!-- Slide number: 9 -->
Introduction

9
<!-- Slide number: 10 -->
Introduction
Urbanisation & WS
Les WS représentent une approche de réalisation de l’urbanisation.
Où
chaque application/système impliqué publie les informations ou transformations d’informations sous forme de services disponibles pour d’autres applications.
Publicité
accent sur les interactions synchrones entre applications (call / return).
forêt de systèmes invoquant respectivement leurs différents services
10
<!-- Slide number: 11 -->
I. Architecture Web Services
C’est quoi une AWS?
C’est :
Un type d'architecture reposant sur les standards de l'Internet
Architecture reposant sur des services permettant à des applications de communiquer sans préoccupation des technologies d'implantations utilisées de part et d'autre
Architecture basée sur les technologies XML
11
<!-- Slide number: 12 -->
I.1. Un service Web c’est quoi ?
WS
Un service web est :
Une « unité logique applicative » accessible en utilisant les protocoles standards d’Internet
Une «librairie» fournissant des données et des services à d’autres applications.
Un objet métier (voire un processus métier) qui peut être déployé et combiné sur Internet avec une faible dépendance vis-à-vis des technologies et des protocoles.
12
<!-- Slide number: 13 -->
I.1. Un service Web c’est quoi ?

Les Services Web fournissent une couche d'abstraction entre le client et le fournisseur d'un service. Cette couche est indépendante de la plateforme et du langage d'implémentation.
13
<!-- Slide number: 14 -->
a - Pourquoi faire ?
Les services Web permettent d’interconnecter :
Différentes entreprises
Différents matériels
Différentes applications
Différents clients
Distribuer et intégrer des logiques métiers
Les services Web sont faiblement couplés (mode de coopération entre les WS)
Architecture Logicielle
14
<!-- Slide number: 15 -->
b- Quels usage ?
Lorsqu’on a besoin d’interopérabilité dans des environnements applicatifs distribués
Faire interagir des composants hétérogènes, distants, et indépendants avec un protocole standard (SOAP).
Pour l’assemblage de composants faiblements couplés (définis de façon indépendante mais peuvent intéragir).
Architecture Logicielle
15
<!-- Slide number: 16 -->

16
<!-- Slide number: 17 -->
I.2. Atoûts des services Web
Réutilisabilité
Interopérabilité - indépendance de:
- La Plate-forme (Hardware et Système d’Exploitation, Pentium avec Windows, Sparc avec Sun Solaris,
PowerPc avec AIX, Pentium avec Linux, ..)
- L'implémentation (Java, C#, C++, ...)
- L'environnement de développement (J2EE,dotNET, ...)
Remarque :
Interopérabilité : Capacité des services Web à faire converser des applications & des composants hétérogènes
17
<!-- Slide number: 18 -->
I.2. Atoûts des services Web
Un WS permettant de consulter le cours de l'action IBM en Bourse à partir de son code de cotation.
Ce WS; fonctionnant sous Linux en Java et interrogé depuis une page Web Asp.net en même temps que depuis une
application PERL ou PHP.

18
<!-- Slide number: 19 -->
II. Les Principales Technologies des Services Web (XML, WSDL, UDDI, SOAP, ...)

Publicité
19
<!-- Slide number: 20 -->
Cycle de vie complet
Etape 1 : Déploiement du service Web
Etape 2 : Enregistrement du service Web
Etape 3 : Découverte du service Web
Etape 4 : Invocation du service Web par le client
Architecture Logicielle
20
<!-- Slide number: 21 -->

Architecture Logicielle
21
<!-- Slide number: 22 -->

Architecture Logicielle
22
<!-- Slide number: 23 -->

Architecture Logicielle
23
<!-- Slide number: 24 -->

Architecture Logicielle
24
<!-- Slide number: 25 -->
Les Technologies
SOAP
WSDL
UDDI
Architecture Logicielle
25
<!-- Slide number: 26 -->
1. SOAP
Simple
Object
Access
Protocol
Architecture Logicielle
26
<!-- Slide number: 27 -->
Les besoins du Web actuel
Le Web a besoin d’un nouveau protocole
Multi-langages, multi-plateformes
Respectant les formats d’échanges du Web
Réponses et requêtes en XML
Facile à implémenter sur différents protocoles de transport
RPC, HTTP ou autre.
Permettant de franchir les « firewalls »
ATTENTION : on perd le contrôle d’accès à faible granularité
Avec une spécification non propriétaire garantie par un organisme indépendant
W3C
La réponse : SOAP (Simple Object Access Protocol)
Architecture Logicielle
27
<!-- Slide number: 28 -->
La philosophie S.O.A.P
SOAP codifie simplement une pratique existante
Utilisation conjointe de XML et HTTP
SOAP est un protocole minimal pour appeler des méthodes sur des serveurs, services, composants, objets
Ne pas imposer une API ou un runtime
Ne pas imposer l’utilisation d’un ORB (CORBA, DCOM, …) ou d’un serveur web particulier (Apache, IIS, …)
Ne pas imposer un modèle de programmation
Plusieurs modèles peuvent être utilisés conjointement
Et “ne pas réinventer une nouvelle technologie”
Publicité
SOAP a été construit pour pouvoir être aisément porté sur toutes les plates-formes et les technologies
28
<!-- Slide number: 29 -->
Les 3 aspects d’un appel SOAP
SOAP peut être vu comme un autre RPC Objets
Les requêtes contiennent les paramètres IN et INOUT
Les réponses contiennent les paramètres INOUT et OUT
SOAP peut être vu comme un protocole d’échange de “message”
La requête contient un seul message (appel sérialisé d’une méthode sur un objet)
La réponse contient un seul message (retour sérialisé d’un appel de méthode sur un objet)
SOAP peut être vu comme un format d’échange de documents
La requête contient un document XML
Le serveur retourne une version transformée
Ces vues ne sont pas imposées par le protocole
Architecture Logicielle
29
<!-- Slide number: 30 -->
En résumé

Architecture Logicielle
30
<!-- Slide number: 31 -->
Pourquoi utiliser HTTP ?
HTTP (HyperText Transfer Protocol) est le protocole de communication principal de l’Internet
HTTP est disponible sur toutes les plates-formes
HTTP est un protocole simple, qui ne requière que peu de support pour
fonctionner correctement
HTTP est un protocole sans connexion
Peu de paquets sont nécessaires pour échanger des informations
HTTP offre un niveau de sécurité simple et effectif
HTTP est le seul protocole utilisable à travers des pare-feu
Architecture Logicielle
31
<!-- Slide number: 32 -->
Fonctionnement d’HTTP (aspect atelier )
HTTP utilise un protocole requête/réponse basé sur du texte
La première ligne de la requête contient 3 éléments
Verbe : POST/GET/HEAD
URI : /default.htm
Protocole : HTTP/1.0 - HTTP/1.1
La première ligne de la réponse contient 2 éléments
État : 200, 402
Phrase : OK, Unauthorized
Les lignes suivantes contiennent un nombre arbitraire d’entête
Le “contenu” suit une ligne d’entête vide
Utilisé essentiellement pour les réponses et pour les requêtes POST
Architecture Logicielle
32
<!-- Slide number: 33 -->
Pourquoi utiliser XML ?
Utilise du texte (peut être lu et écrit directement)
Construire correctement du texte XML est simple
XML est aujourd’hui adopté par tous les acteurs de l’Internet : plates-formes,
éditeurs, …
XML permet une extensibilité aisée par l’utilisation d’espaces de nommage
(namespaces et URIs)
XML permet d’ajouter du typage et de la structure à des informations
W3C n’impose pas un API mais en recommande un (DOM)
33
<!-- Slide number: 34 -->
SOAP Message Structure

Architecture Logicielle
34
<!-- Slide number: 35 -->
Publicité
2. WSDL
Web
Services
Description
Language
Architecture Logicielle
35
<!-- Slide number: 36 -->
La description des Services Web
Comment décrire le contrat entre le client et le serveur?
WSDL est un langage qui permet de décrire:
- un service Web
- et comment l’ invoquer
36
<!-- Slide number: 37 -->
3. UDDI
Universal
Description,
Discovery
and Integration
Architecture Logicielle
37
<!-- Slide number: 38 -->
La publication des services Web
- Comment disponibiliser les services au monde extérieur?
UDDI est un annuaire qui permet:
- l’enregistrement des services.
- la découverte des informations sur les services.
38
<!-- Slide number: 39 -->
UDDI

39
<!-- Slide number: 40 -->
Objectifs
Annuaire mondial d'entreprises pour permettre d'automatiser les communications entre prestataires, clients, etc.
Plusieurs entrées indexées : nom, carte d'identité des sociétés, description des produits, services applicatifs invocables à distance (références des connexions)
Architecture Logicielle
40
<!-- Slide number: 41 -->
UDDI en détail
Une structure de données basée sur XML pour faciliter la découverte des services (XML Schema).
• Similaire à la figure qui suit
41
<!-- Slide number: 42 -->

Architecture Logicielle
42
<!-- Slide number: 43 -->
Récapitulons

43
<!-- Slide number: 44 -->

Exemple :
44
<!-- Slide number: 45 -->
III. Les Outils de Développements des Services Web

45
<!-- Slide number: 46 -->
Des Questions ?
46