Architectures Web Distribuées : Les Web Services

Institut Supérieur des Études Technologiques de Bizerte
1/46
100%

<!-- 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

![C:\Users\user\Desktop\IsetBizerte.jpg](Picture2.jpg)

Architecture Logicielle

1

<!-- Slide number: 2 -->

Chapitre 2

Les Architectures web distribuées : Les Web Services

2

<!-- Slide number: 3 -->

![C:\Users\user\Desktop\goals.jpg](Picture2.jpg)

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 -->

![C:\Users\user\Desktop\plan.jpg](Picture2.jpg)

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.

![MESH-network.jpg (960×631)](Picture2.jpg)

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

![](Picture2.jpg)

![](Picture3.jpg)

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

![](Picture2.jpg)

8

<!-- Slide number: 9 -->

Introduction

![urbanisation-plan.jpg (550×413)](Picture2.jpg)

9

<!-- Slide number: 10 -->

Introduction

Urbanisation & WS

Les WS représentent une approche de réalisation de l’urbanisation.

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 ?

![](Image7.jpg)

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 -->

![](Picture2.jpg)

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.

![](Picture1.jpg)

18

<!-- Slide number: 19 -->

II. Les Principales Technologies des Services Web (XML, WSDL, UDDI, SOAP, ...)

![](Image7.jpg)

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 -->

![](Picture2.jpg)

Architecture Logicielle

21

<!-- Slide number: 22 -->

![](Picture2.jpg)

Architecture Logicielle

22

<!-- Slide number: 23 -->

![](Picture2.jpg)

Architecture Logicielle

23

<!-- Slide number: 24 -->

![](Picture2.jpg)

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é

![](Picture2.jpg)

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

![](Picture2.jpg)

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

![](Picture2.jpg)

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 -->

![](Picture2.jpg)

Architecture Logicielle

42

<!-- Slide number: 43 -->

Récapitulons

![](Picture2.jpg)

43

<!-- Slide number: 44 -->

![](Picture2.jpg)

Exemple :

44

<!-- Slide number: 45 -->

III. Les Outils de Développements des Services Web

![](Image7.jpg)

45

<!-- Slide number: 46 -->

Des Questions ?

46

Architectures Web Distribuées : Les Web Services

Institut Supérieur des Études Technologiques de Bizerte · Information Systems and Software Development · notes

Voir tous les documents en génie logiciel

<!-- 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

![C:\Users\user\Desktop\IsetBizerte.jpg](Picture2.jpg)

Architecture Logicielle

1

<!-- Slide number: 2 -->

Chapitre 2

Les Architectures web distribuées : Les Web Services

2

<!-- Slide number: 3 -->

![C:\Users\user\Desktop\goals.jpg](Picture2.jpg)

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 -->

![C:\Users\user\Desktop\plan.jpg](Picture2.jpg)

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.

![MESH-network.jpg (960×631)](Picture2.jpg)

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

![](Picture2.jpg)

![](Picture3.jpg)

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

![](Picture2.jpg)

8

<!-- Slide number: 9 -->

Introduction

![urbanisation-plan.jpg (550×413)](Picture2.jpg)

9

<!-- Slide number: 10 -->

Introduction

Urbanisation & WS

Les WS représentent une approche de réalisation de l’urbanisation.

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 ?

![](Image7.jpg)

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 -->

![](Picture2.jpg)

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.

![](Picture1.jpg)

18

<!-- Slide number: 19 -->

II. Les Principales Technologies des Services Web (XML, WSDL, UDDI, SOAP, ...)

![](Image7.jpg)

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 -->

![](Picture2.jpg)

Architecture Logicielle

21

<!-- Slide number: 22 -->

![](Picture2.jpg)

Architecture Logicielle

22

<!-- Slide number: 23 -->

![](Picture2.jpg)

Architecture Logicielle

23

<!-- Slide number: 24 -->

![](Picture2.jpg)

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é

![](Picture2.jpg)

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

![](Picture2.jpg)

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

![](Picture2.jpg)

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 -->

![](Picture2.jpg)

Architecture Logicielle

42

<!-- Slide number: 43 -->

Récapitulons

![](Picture2.jpg)

43

<!-- Slide number: 44 -->

![](Picture2.jpg)

Exemple :

44

<!-- Slide number: 45 -->

III. Les Outils de Développements des Services Web

![](Image7.jpg)

45

<!-- Slide number: 46 -->

Des Questions ?

46