introduction aux services web. vue d’ensemble n du web des humains… – html dans le navigateur...
TRANSCRIPT
Introduction aux Services Web
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
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
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
Un exemple
11/04/23 5
SOURCE : W3C
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
Principe général d’architecture
11/04/23 7
SOURCE : W3C
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
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
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
SOAP (ex) Simple Object Access Protocol
11/04/23 11
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
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)
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
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é.
WSDL : Web Services Description language
11/04/23 16
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.
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
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>
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>
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
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>
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
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>
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>
Implémentation des services web
11/04/23 26
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
UDDI : Universal Description, Discovery and Integration(of services)
11/04/23 28
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
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
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
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
Pour aller plus loin
Sécurité Composition et orchestration Sémantique
11/04/23 33
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
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
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
Conclusion
11/04/23 37
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
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
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