40
Introduction aux Services Web

Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Embed Size (px)

Citation preview

Page 1: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Introduction aux Services Web

Page 2: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Vue d’ensemble

Du web des humains…– HTML dans le navigateur– BD relationnelle sur le serveur, sites web dynamiques

…au web des machines : communication directe entre applications hétérogènes.

Des principes anciens…– Appels de procédures distants– architectures distribuées (CORBA, DCOM)

…dans un contexte nouveau – le web,– XML,– Commerce électronique à grande échelle

11/04/23 2

Page 3: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Le Web aujourd’hui Protocole: HTTP Documents: HTML Des millions de sites web

indépendants, des milliards de pages

Navigation et recherche par mots-clés

Publication de bases de données, accessibles à travers des formulaires.

311/04/23

Page 4: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

les services web

Possibilité d’invoquer une fonction sur un serveur web distant

Fournit une infrastructure souple pour les systèmes distribués, basée sur XML

2 applications principales– Commerce électronique– Accès à des bases de données distantes

411/04/23

Page 5: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Un exemple

11/04/23 5

SOURCE : W3C

Page 6: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

La vision: Trouver quelque chose

1. Interroger un annuaire : qui fournit des Choses? 2. Négocier avec les fournisseurs potentiels

• Nature exacte du service fourni• Qualité/coût/etc.

3. Interagir avec le service du fournisseur choisi• Connaître les modalités d’interaction• Introduire le service dans ma chaîne de traitements

4. Eventuellement composer des services5. Eventuellement publier mes propres services

11/04/23 6

Page 7: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Principe général d’architecture

11/04/23 7

SOURCE : W3C

Page 8: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

11/04/23 8

Un service web en action

Clientdu

ServiceWeb

Fournis-seurdu

ServiceWeb

AnnuaireUDDI

http://myservice.com/service

XML/SOAP body

Echanges réels (SOAP)

http://myservice.com?wsdl

Description du service

Modalités d’interaction (WSDL)

http://www.uddi.org

Lien vers un document WSDL

Trouver un fournisseur de service (UDDI)

SOURCE: SIMON HUTSON, KPMG

Page 9: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Idée principale: Intégration de technologies existantes en utilisant les standards du Web

11/04/23 9

Web

search

Distributed Computing

(Corba)

Knowledgerepresentation

IDL

workflow

soap

wsdl

BPEL4WS

uddi

XML

Page 10: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Organisation

Introduction Prérequis: XML Le protocole SOAP Description des services web: WSDL Annuaire des services web: UDDI Pour aller plus loin… Conclusion

11/04/23 10

Similaire à Corba (en plus simple)

Similaire à IDL

Les Pages Jaunestm

Page 11: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

SOAP (ex) Simple Object Access Protocol

11/04/23 11

Page 12: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Les points forts de SOAP

Protocole de communication entre applications:– Sans état– Unidirectionnel– Indépendant du protocole de communication.

Basé sur XML et les namespaces. Permet d’utiliser les protocoles du Web (HTTP/SMTP/…) Indépendant de la plateforme (windows, unix, mac, …) Simple et extensible

11/04/23 12

Page 13: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Principes de SOAP Permet d’envoyer des messages XML entre deux machines. Les messages sont « emballés » dans une enveloppe SOAP

– L’enveloppe SOAP utilise un XML schéma prédéfini– Le schéma du message dépend de l’application

11/04/23 13

SOAP EnvelopeSOAP Envelope(SOAP grammar) (SOAP grammar)

Application Application MessageMessage(Application-Specific (Application-Specific grammar) grammar)

Page 14: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Anatomie d’un message SOAP

Corps de message: SOAP Body– C’est la partie qui dépend de l’application– Conventions pour faire du RPC– Gestion des erreurs: SOAP Fault

Code Reason: compréhensible par un humain

Entêtes: SOAP Header – des méta-données pour un ou plusieurs destinataires du message.– Des moyens pour contrôler qui doit traiter quelle entête

11/04/23 14

Page 15: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

La pile réseau

11/04/23 15

SOAP envelopeextensions

XMLmessaging

Dataencoding

Networkprotocol

Qua

lity

of S

ervi

ce

Man

agea

bilit

y

Sec

urity

SOAPHeader

SOAP

XML

HTTPSMTPFTP…

Determine comment un message est envoyé.

Page 16: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

WSDL : Web Services Description language

11/04/23 16

Page 17: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Principes

Un langage (en XML) de description des services fournis par un serveur.

Une description de type « boîte noire » de ces services :– Quelles sont les opérations disponibles ?– Comment on y accède (adresse, protocole,…)– Quel est le format des messages échangés entre le client et le serveur:

Pour invoquer le service Pour interpréter les résultats

…mais rien sur ce qu’ils font vraiment (leur sémantique).

11/04/23 17

Types XML Schema des entrées sorties.

Page 18: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Structure d’un document WSDL

Un service est composé de plusieurs opérations. Chaque opération peut avoir une entrée et/ou une sortie. Chacun de ces messages est composé de plusieurs parties. Chaque partie est décrite par un type. Ces éléments sont associés par des bindings à un

protocole particulier. Pour un protocole donné, les opérations associées

constituent un port, associé à une adresse.

11/04/23 18

Page 19: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Types : Définition XML Schema des données

11/04/23 19

Port Types

Service

Port

Binding

Operations

Messages

Types

<types><schema targetNamespace="http://example.com/stockquote.xsd"

xmlns="http://www.w3.org/2000/10/XMLSchema"><element name="TradePriceRequest">

<complexType><element name="tickerSymbol" type="string"/>

</complexType></element><element name="TradePrice">

<complexType><element name="price" type="float"/>

</complexType></element>

</schema></types>

Page 20: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Messages : Collections de types

11/04/23 20

Port Types

Service

Port

Binding

Operations

Messages

Types

<message name="GetLastTradePriceInput"><part name="body" element="xsd1:TradePriceRequest"/>

</message>

<message name="GetLastTradePriceOutput"><part name="body" element="xsd1:TradePrice"/>

</message>

Page 21: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Operations : Fonctions disponibles

11/04/23 21

Port Types

Service

Port

Binding

Operations

Messages

Types

<operation name="GetLastTradePrice"><soap:operation

soapAction="http://example.com/GetLastTradePrice"/><input>

<soap:body use="literal"/></input><output>

<soap:body use="literal"/></output>

</operation>

Définition du pattern d’intéraction par les entrées-sorties :- Input only- Output only- Input-Output- Output-Input

Page 22: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Port Types (interfaces): Ensembles d’opérations

11/04/23 22

Port Types

Service

Port

Binding

Operations

Messages

Types

<portType name="StockQuotePortType"><operation name="GetLastTradePrice">

<input message="tns:GetLastTradePriceInput"/><output message="tns:GetLastTradePriceOutput"/>

</operation></portType>

Page 23: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Binding : Associe des protocoles aux méthodes

11/04/23 23

Port Types

Service

Port

Binding

Operations

Messages

Types

<binding name="StockQuoteSoapBinding“type="tns:StockQuotePortType"><soap:binding style="document“

transport="http://schemas.xmlsoap.org/soap/http"/><operation name="GetLastTradePrice">

<soap:operation soapAction="http://example.com/GetLastTradePrice"/><input>

<soap:body use="literal"/></input><output>

<soap:body use="literal"/></output>

</operation></binding>

Trois types de bindings :• SOAP• HTTP GET & POST• MIME

Page 24: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Port : Associe une addresse (URL) à chaque Binding

11/04/23 24

Port Types

Service

Port

Binding

Operations

Messages

Types

<port name="StockQuotePort" binding="tns:StockQuoteBinding"><soap:address location="http://example.com/stockquote"/>

</port>

Page 25: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Service : ensemble de ports

11/04/23 25

Port Types

Service

Port

Binding

Operations

Messages

Types

<service name="StockQuoteService"><documentation>My first service</documentation><port name="StockQuotePort"

binding="tns:StockQuoteBinding"><soap:address

location="http://example.com/stockquote"/></port>

</service>

Page 26: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Implémentation des services web

11/04/23 26

Page 27: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

De nombreux acteurs

Microsoft .Net J2EE (Sun, IBM, etc...) Implémentations open-source … Intéropérabilité : Les services des uns sont utilisables

par les autres ! WS-I.org: Web Services interoperability organization

11/04/23 27

Page 28: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

UDDI : Universal Description, Discovery and Integration(of services)

11/04/23 28

Page 29: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

UDDI

Où trouver le service dont j’ai besoin ?– Quels sont les fournisseurs potentiels ?– Lequel est le meilleur pour moi ?

Noyau: annuaires – les pages jaunes– Liste d’entreprises + comment les contacter– Classification en catégories (à la Yahoo!)– Informations en +: protocole, coût, qualité, contrat…

Question cruciale : Qui contrôle l’annuaire ?– Par exemple: qui contrôle les catégories ? Qui peut

s’enregistrer dans l’annuaire ?

11/04/23 29

Page 30: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

UDDI (2)

Consortium industriel (IBM, Microsoft,…) + de 200 entreprises. Moyens de publier et de rechercher des services Beaucoup de bruit Limité

– Peu de services– Langage d’interrogation primitif– Informations très limitées

11/04/23 30

UDDIMicrosoft

Les entreprisesenregistrentDes services

Les clients choisissent des services

UDDIIBM

réplication

Page 31: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Fonctionnement

11/04/23 31

UDDI Business Registry

3. UBR assigns a unique identifier to each service and business registration

Marketplaces, search engines, and business apps query the registry to discover services at other companies

4.

Service TypeRegistrations

Companies, standards bodies, and programmers populate the registry with descriptions of different types of services

1.

BusinessRegistrationsBusinesses

populate the registry withdescriptions of the services they support

2.

Business uses this data to facilitate easier integration with each other over the Web

5.

SOURCE: UDDI.ORG

Page 32: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Contenu d’un annuaire

White pages: les entreprises– Adresse, numéro de tel, – Catégorie d’activité

Yellow pages: les services– Description textuelle– Classification en catégories

Green pages: infos techniques– Descriptions WSDL

3211/04/23

BusinessEntityBusinessEntity

BusinessServiceBusinessService

BindingTemplatesBindingTemplates

tModeltModel

publisherAssertionpublisherAssertion

Spécifs de services et taxonomies

Relations entre deux parties

Infos techniques

Page 33: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Pour aller plus loin

Sécurité Composition et orchestration Sémantique

11/04/23 33

Page 34: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Sécurité des services web

Principales fonctions :– Confidentialité– Authentication– Integrité des messages– Non-repudiation

Infrastructure– Cryptographie– Systèmes à clé publique, tels que RSA

11/04/23 34

Page 35: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Sécurité des services web (2)

HTTP fournit un méchanisme d’authentication très simple SSL: secure socket layer; un protocole pour transmettre des

données encryptées HTTPS = HTTP over SSL: très utilisé XML digital signature non-repudiation XML encryption

– SSL encrypte le message en entier; problème des intermédiaires.– XML encryption permet d’encrypter de manière sélective

11/04/23 35

Page 36: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Composition et orchestration

Comment – définir des intéractions entre services – en créer de nouveaux, par composition

S’apparente aux :– Systèmes de workflow– Transactions

Domaine très actif – Travaux de recherche– Spécifications industrielles (ex: IBM WSFL,

BPEL4WS, WSCI…)

11/04/23 36

Page 37: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Conclusion

11/04/23 37

Page 38: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Les points forts des services web

XML comme norme et modèle de données Le Web comme terrain de jeu La standardisation (w3c, OASIS)

– Intéropérabilité La modularité et l’extensibilité des specs :

– Choix du protocole– Synchrone / asynchrone

11/04/23 38

Page 39: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Vision d’ensemble La conception d’applications devient de la gestion de flux

entre services et d’évenements Les services atomiques sont vus comme des ensembles de

fonctions invocables Les services peuvent:

– Être situés n’importe où– Appartenir à n’importe qui– Être développés avec tous types d’outils– S’executer sur n’importe quelle plateforme

Les applications utilisent les services selon leurs besoins– Elles les découvrent grâce à UDDI– Peuvent négocier leur utilisation dynamiquement– Les choisir et les exécuter en temps réel.

11/04/23 39

SOURCE: IDC

Page 40: Introduction aux Services Web. Vue d’ensemble n Du web des humains… – HTML dans le navigateur – BD relationnelle sur le serveur, sites web dynamiques

Courte bibliographie XML – Extensible Markup Language XML (W3C): http://www.w3.org/XML/ XML Schema – XML Schema: http://www.w3.org/XML/Schema Xquery – XML Query: http://www.w3.org/XML/Query

W3C WS – Web Services Activity: http://www.w3.org/2002/ws HTTP – Hypertext Transfer Protocol: http://www.w3.org/Protocols/ SOAP – Simple Object Access Protocol: http://www.w3.org/TR/SOAP/ WSDL – Web Services Description Language: http://www.w3.org/TR/wsdl

OMG – Object Management Group : http://www.omg.org/ CORBA – Common Object Request Broker Architecture, see OMG

UDDI – Universal Description, Discovery, and Integration: http://www.uddi.org/ WSFL – Web Services Flow Language: http://xml.coverpages.org/wsfl.html WSCI – Web Services Choreography Interface: http://www.w3.org/TR/wsci/

Apache Axis – http://ws.apache.org/axis/ J2EE – Java 2 Platform, Enterprise Edition: http://java.sun.com/j2ee/

11/04/23 40