Cours 4 : Web Services &UDDI & WSDL

Slides:



Advertisements
Présentations similaires
Les technologies décisionnelles et le portail
Advertisements

Les Web Services Schéma Directeur des Espaces numériques de Travail
Internet et le client- serveur Licence Pro IE Cours Internet / Intranet Le Web HTML Protocoles Le client universel Contenus dynamiques.
La plateforme.NET 2.0 vue par le développeur Pascal Belaud Microsoft France SAGA.NET
Agenda de la journée 10h00 : La place dASP.NET dans la plate-forme Microsoft 10h30 : Développement rapide dapplications Web en ASP.NET 12h00 : Construire.
« Les Mercredis du développement » Introduction Office « 12 » Présenté par Bernard Fedotoff Microsoft Regional Director Agilcom.
Nouveautés pour les développeurs Office System Scott Burmester Responsable des programmes PSPS.
ASSOCIATION DES CENTRALIENS CONFERENCE DE MARS 2002
Les Web Services Schéma Directeur des Espaces numériques de Travail
Xavier Blanc Web Services Xavier Blanc
Introduction aux environnements répartis
Première expérience d’utilisation des Web Services dans SmartTools Didier Parigot Projet OASIS INRIA Sophia www-sop.inria.fr/oasis/SmartTools Journée.
Architectures Orientées Services
Julien HERON.
Les services Web Jeremy Fierstone
Stéphanie CLAPIÉ Antoine RENARD
Les webservices Samira Silhadi-Hacid Malika Tarafi.
l'impact sur le eBusiness
L’architecture .net et ASP.net
Cours 6 : Les Web Services et SOAP Mars Version 1.0 -
Cours 6 : Les Web Services et UDDI Mars Version 1.0 -
1 Les technologies XML Cours 1 : Les Web Services et Architectures Orientées Services Fé vrier Version 1.0 -
1 Les technologies XML Cours 3 : Les Web Services – Implémentation – JAX-WS Février Version 1.0 -
1 Les technologies XML Cours 4 : Les Web Services et XML- RPC Février Version 1.0 -
Cours 2 : Les Web Services Concepts Généraux
Les Web Services.
Introduction Concepts fondamentaux Éléments d’architecture
Génie Documentiel Delacrétaz Jean-Marc
Les Web Services avec .Net
Le Workflow et ses outils
Introduction aux services WEB
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Chapitre 5 Web Services : Le nouveau standard JAX-WS 2.0
Les Services Web Avec.NET version 1.1. Un service Web en bref… Méthodes ou objets accessible à distance via SOAP (Simple Object Access Protocol ); SOAP.
Etude des Technologies du Web services
Serveurs d’application
XML-Family Web Services Description Language W.S.D.L.
ASP.NET un peu plus loin… Développement Rapide dApplications Web avec.NET.
7 - EAI Les EAI : Enterprise Application Integration Marché
Programmation Approche composants Ing5 SI
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
Soutenance de stage de fin d’études
Microsoft .NET.
An Introduction to distributed applications and ecommerce 1 1 Les services Web, XML et les places de marchés.
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
Enseignant de cours : M. Bouzguenda Lotfi
Technologies Web Microsoft
Internet et le client- serveur Licence Pro IE Cours Internet / Intranet Le Web HTML Protocoles Le client universel Contenus dynamiques.
Présentation de CORBA et de IIOP
CENTRALISATION DES CANDIDATS LOCATAIRES
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
Java Enterprise Edition, anciennement J2EE
Web Services Objectifs Architecture Protocole web (SOAP)
Introduction à la plateforme .NET
Metro Web Services Ben Yaflah Marouen Dhrif Mohamed Hbib Hajlaoui Nader.
Le web service
Mastère Professionnel Systèmes de Communication et Réseaux
Page 1Dernière mise à jour: 17 avril 2015 Service de l'enseignement des technologies de l'information, © HEC Montréal, Tous droits réservés.
Struts.
Cours MIAGE « Architectures Orientées Services »Henry Boccon-GibodCours MIAGE « Architectures Orientées Services »Henry Boccon-Gibod 1 Architectures Orientées.
IV. Web Services Objectifs Architecture Protocole web (SOAP)
21/02/2003DEA DISIC 1 Grid Computing Programming the grid: Distributed Software Components, P2P and Grid Web Services for Scientific Applications Tarak.
Web Services Objectifs Architecture Protocole web (SOAP)
Web Services 17/01/2009.
Présentation TELW M2 Contexte : passage de la matière de M1 en M2 Transformation cours->TDs Sujet plus haut niveau basé : Web Services echanges au format.
Introduction aux technologies des web services en Java EE
SOAP et les RPC XML SOAP WSDL RPC. Rappels sur le XML Langage avec des balises Très lisible Pour stocker des données Séparation entre contenu et présentation.
Universel Description Discovery and Integration « UDDI «
Parquet Geoffrey 3 ARIL EXIA.CESI ARRAS. Présentation du MLD Présentation de la persistance Présentation récapitulatif du projet JSP/SERVLET MVC Cycle.
Transcription de la présentation:

Cours 4 : Web Services &UDDI & WSDL Objectifs Architecture Protocole Web (RPC, SOAP) Orchestration Sécurité Conclusion

1. Objectifs des S.I. Accès rapide, intégré et généralisé à l’information pertinente en interne (Intranet) et en externe (Extranet, Internet) Système ouvert réduisant les coûts capable d'inter-opérer avec les applications existantes capable d'inter-opérer avec le monde extérieur (Extranet, Internet) Développement rapide d’applications (RAD) utilisation de composants distribués réduction des coûts de développement Administration simplifiée du système depuis le Web avec des outils d'assistance

Besoins des Applications Web Accès programmable à des services Cours de bourse Entrées d'annuaires Autorisation de cartes de crédits Authentification d'un client Enregistrement de clients Recherche Web, … Interface d'accès par fonctions URL longues contraignantes (ASCII, plats,  255) Pouvoir découvrir dynamiquement les services Paramètres structurés et diversifiés

Exemple d'applications Diffusion d'information horaires, incidents, états de stocks, etc. Documentation automatique librairie électronique, manuels, maintenance, etc. Gestion de sites Web dynamiques présentation, marketing, veille technologique, etc. Communication et "knowledge management" échanges de données, gestion ressources humaines, etc. Commerce électronique présentation, sélection, transaction, médiation, etc.

2. Architecture Web Services SERVEUR Service Provider SERVEUR Service Provider Request Publish Publish Service Registry SERVEUR Service Provider Request Publish SERVEUR Publish Request Find Service Provider SERVEUR Request WEB-HTTP Service Requester CLIENT

Qu'est ce qu'un Web Service ? Définition [W3C] Un Web service est un système logiciel identifié par une URI, dont les interfaces publiques et les liens sont définis et décrits en XML. Sa définition peut être découverte par d'autres systèmes logiciels. Ces systèmes peuvent interagir avec le service Web d'une manière prescrite par sa définition, en utilisant des messages XML portés par les protocoles Internet. Exposition Langage WSDL utilisé pour décrire le service Similaire à IDL mais basé sur XML Activation Protocole Web au-dessus de HTTP (RPC XML, SOAP) Autres protocoles possibles …

Les Composants Service Provider (Fournisseur de service) Application s'exécutant sur un serveur et comportant un module logiciel accessible par IxxNet en XML Service Registry (Annuaires de service) Annuaire des services publiés par les providers (UDDI) Géré sur un serveur niveau application, entreprise ou mondial Service Requester (Demandeur de service) Application cliente se liant à un service et invoquant ses fonctions par des messages XML (SOAP)

Description des services: WSDL Elément Type Types des paramètres (schéma XML) Elément Message Appel et retour de chaque opération Elément Port type Groupe d'opération Elément Binding URL de l'opération Type de protocole

Description en WSDL <definitions name = "..." xmlns: …> <types> <!--Définition des types de données; ceux des schémas utilisés par défaut--> … </types>  <message> <!--Déclaration des messages (entrées et sorties)--> … </message> <portType> <!--Déclaration des opérations (par association des messages)--> … </portType> <binding> <!--Définition de la liaison WSDL – SOAP (noms d'actions et codages)--> … </binding> <service name= " … " > <!--Déclaration des ports (groupes d'opérations et protocoles d'accès)-->… </service> </definitions>

Annuaire des services: UDDI Universal Description, Discovery and Integration Annuaire des services décrit par un document WSDL, spec. EJB, autre … Accessible en SOAP Fonctions Enregistrer votre société Enregistrer des services Enregistrer des opérations Découvrir des services … Annuaire UDDI Annuaire UDDI Gérant de requêtes Enveloppe + Document Dde de Service Programme

Contenu de l’annuaire Pages blanches (businessEntity) BusinessKey Name Description CategoryBag BusinessServices Pages jaunes (businessService) ServiceKey BindingTemplates Pages vertes (bindingTemplates) BindinKey AccessPoint Contenu défini par un schéma XML Spécifications pour réplication BusinessEntity tModel Spécifs de services et taxonomies BusinessService publisherAssertion BindingTemplates Relations entre deux parties Infos techniques

Un Service Web, c’est quoi ? Un service Web est une « unité logique applicative » accessible en utilisant les protocoles standard d’Internet Caractéristiques: Réutilisable Indépendamment de la plate-forme (UNIX, Windows, …) l’implémentation (VB, C#, Java, …) l’architecture sous-jacente (.NET, J2EE, …)

Web Services

Modèle des services

Serveur Annuaire UDDI Client Le Cusmar a trouvé ! Voici le serveur hébergeant ce service web Annuaire UDDI Le Cusmar recherche un service WEB « Quel format d’appel au service proposes-tu ? », demande le Cusmar Contrat SOAP Voici mon contrat (WSDL) XML Client XML Le Cusmar a compris comment invoquer ce service et t’envoie un document XML représentant sa requête XML J’ai exécuté ta requête et je te retourne le résultat

Fonctionnement de Web Services

Web Services : Place de XML Une technologie "enabling" description et invocation des services similaire à CORBA (IDL/IIOP) ou DCOM, mais textuel et Internet peut être intégrée en sur-couche à l'existant facilite l'interopérabilité et la connaissance Encapsulation des protocoles existants échange de données (résultats) échange de requêtes (RPC) contrôle de transactions (AXTP) Un nouveau protocole du W3C SOAP Web Protocol (WP) Apporte lisibilité, validation, contrôle, interopérabilité IBM, Sun, Microsoft supporteront le même WP

3. XML-RPC et SOAP XML-RPC SOAP et WP du W3C Appel de procédure distante sur Internet Requête en XML Résultat en XML Utilisable au-dessus de HTTP Format MIME text/xml Différents formats de paramètres possibles SOAP et WP du W3C Protocole plus complet et objet Sur HTTP, email, FTP, MQ, IIOP, etc. WP : ouverture, interopérabilité, sécurité ...

Architecture type SERVEUR SOAP IxxNet Donnees et acces aux aux objets Client Autre serveur Browser ... Serveur HTTP IxxNet Application Java Documents Handlers SOAP Data RunTime Transaction WSDL Application Donnees et Creation logic acces aux aux objets Services Noyau XML Parser, DOM, XSL, XQL, Xpointer, DOMlets Classes Java, Securite, Gestion du cache

SOAP Simple Object Access Protocol Intégration de XML au-dessus de HTTP : Pour accéder services, objets et serveurs Indépendant de toute plate-forme Codage universel XML par opposition aux spécifiques : DCOM - DCE/NDR CORBA - IIOP/CDR JAVA - RMI/JRMP RDA - XDR Résolution des problèmes de sécurité : Les firewalls supportent des ports spécifiques (HTTP, FTP) La plupart des middlewares assignent des ports dynamiques … Associé à WSDL pour publication d'interfaces

Un échange type Messages SOAP Appel Application Cliente HTTP Réponse Port de connexion (URL) Pare-feu Pare-feu Messages SOAP Procuration d'interface Appel Translateur SOAP Application Cliente HTTP RPC local Réponse Parser XML Parser XML Serveur d'application

Eléments d'un message Envelope Header Body Élément pouvant contenir des déclarations d'espaces de noms ou des sous-éléments Header Élément optionnel fils de Envelope Permet des extensions telles que authentification, session, etc. Body Élément obligatoire fils de Envelope Définit la méthode appelée, contient les paramètres Peut contenir un élément Fault en cas d'erreur

Structure d'un message Protocol Headers Entête de protocoles (HTTP, SMTP, …) SOAP Envelope <Envelope> SOAP Header <Header> SOAP Body <Body>

Exemple www.stockquoteserver.com float GetLastTradePrice (Symbol) Le dialogue : Application Application Request Middleware Middleware Reply SOAP SOAP Error HTTP HTTP www.e-xmlmedia.fr www.stockquoteserver.com

Le WSDL de l'exemple <definitions name="StockQuote" targetNamespace="http://example.com/stockquote.wsdl" xmlns:tns="http://example.com/stockquote.wsdl" xmlns:xsd1="http://example.com/stockquote.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <schema targetNamespace="http://example.com/stockquote.xsd" xmlns="http://www.w3.org/1999/XMLSchema"> <element name="TradePriceRequest"> <complexType> <all> <element name="tickerSymbol" type="string"/> </all> </complexType> </element> <element name="TradePrice"> <complexType> <all> <element name="price" type="float"/> </all> </complexType> </element> </schema> </types> <message name="GetLastTradePriceInput"> <part name="body" element="xsd1:TradePrice"/> </message> <message name="GetLastTradePriceOutput"> <part name="body" element="xsd1:TradePriceResult"/> </message> <portType name="StockQuotePortType"> <operation name="GetLastTradePrice"> <input message="tns:GetLastTradePriceInput"/> <output message="tns:GetLastTradePriceOutput"/> </operation> </portType> <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" namespace="http://example.com/stockquote.xsd" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </input> <output> <soap:body use="literal" namespace="http://example.com/stockquote.xsd" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> </output> </operation> </binding> <service name="StockQuoteService"> <documentation>My first service</documentation> <port name="StockQuotePort" binding="tns:StockQuoteBinding"> <soap:address location="http://example.com/stockquote"/> </port> </service> </definitions>

La requête POST /StockQuote HTTP/1.1 Host: www.stockquoteserver.com Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI#GetLastTradePrice" <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap">    <SOAP:Body>        <m:GetLastTradePrice xmlns:m="Some-URI">            <symbol>DIS</symbol>        </m:GetLastTradePrice>    </SOAP:Body> </SOAP:Envelope> Standard HTTP

La réponse HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap"/>    <SOAP:Body>        <m:GetLastTradePriceResponse xmlns:m="Some-URI">            <Price>34.5</Price>        </m:GetLastTradePriceResponse>    </SOAP:Body> </SOAP:Envelope> Standard HTTP

Bilan SOAP Protocole d’invocation de services Web Lisible et extensible Intégré à HTTP Passant les firewalls Description en WSDL Pousser par Microsoft, IBM, Ariba CORBA ou DCOM « killer »? Associé à nomination des objets Véritable échange de messages entre objets Performance ?

4. Stratégie des constructeurs Outil de développement .NET .net Framework SDK (//msdn.microsoft.com/webservices) Support depuis Visual Studio .Net Développement en tout langage (VB, C++, C#) Deux composants essentiels Common Language Runtime (MSIL) .net class Libraries (GUI, DB, ASP, …) Au cœur des systèmes MS Evolution de DNA vers .net, Visual Studio.net, … Compilation des langages MS en MSIL Machine virtuelle pour l'exécution Semblable à Java mais MS

Architecture .NET SOAP & XML Toolkits VB C++ C# JScript … Visual Studio .NET ASP.NET BCL.NET ADO.NET Common Language Runtime (CLR) Windows et COM+ Services Stratégie

Exemples d'applications MS Office (Word, Excel, Power Point, …) Services = composants distribués Accès par abonnement HailStorm devenu .net MyServices Communication par SOAP e-Commerce et ebXML Intégration de protocoles de e-commerce Complément de UDDI pour le e-commerce Remplacement de l'EDI traditionnelle EDIFACT

Exemple: Google Search requests Cache requests Spelling requests Soumet une requête avec un ensemble de paramètres à Google Web APIs service et reçoit en réponse un ensemble de résultats de recherche. Cache requests Soumet une URL à Google Web APIs service et reçoit en réponse le contenu de l'URL lors de la dernière visite du crawler Google. Spelling requests Soumet une requête à Google Web APIs service et reçoit en réponse une suggestion de correction orthographique pour la requête.

Statégie J2EE de SUN, IBM, … Ensemble d'API pour Java2 Intégration de RPC, SOAP, WSDL, … API spécialisée pour Java-XML (JAX) Java API for XML Processing (JAXP) Java Architecture for XML Binding (JAXB) Java API for XML Messaging (JAXM) Java API for XML-based RPC (JAX-RPC) Java API for XML Registries (JAXR)

Produits Apache SOAP (Apache project) Servlet permet de déployer les services Appel servlet depuis SOAP Web Services Toolkit (IBM, alphaWorks) Générateur WSDL à partir de classe Java ou EJB Générateur de Proxy client Java SunOne Produit similaire de SUN annoncé Version béta en démonstration Autres BEA, Broadvision, etc.

Architectures inter-opérables HTML Serveur de présentation Visual studio XML XML WEB Service WEB SERVICES .NET XML Java, C++, C#, Word, Excel, … … WEB SERVICES J2EE

5. Transactions et Processus Objectifs Modéliser des processus d'affaires / métiers Composer des services Web distribués Intégrer Orchestration d'activités Echanges XML Gestion de transactions Business Process Management Transaction Workflow Exemple : réservation Début Réserver Avion Louer Voiture Train Hotel OK ? Echec Succès oui non

Exemple : Pilotage Fabrication Echange B2B Partenaire Serveur d'entreprise Usine XML XML XML WEB XML Interface XML ERP XML Fournisseur Mainframe Client

Architecture Web Services Négociation Besoins Business Assemblage et Orchestration Publication et Découverte WSDL, UDDI Echange de Messages SOAP Protocoles de Transport HTTP, HTTPS, FTP, SMTP

Pile de travail W3C

Support de transactions Transaction simple Atomique Cohérente Isolée Durable Saga Séquence de transactions Compensations si échec T1 T2 T3 ... Tn T1 T2 CT2 CT1

Définitions Composition de services (Services Composition) Techniques permettant d'assembler des services Web pour réaliser des processus métiers par des primitives de contrôles (boucles, tests, traitement d'exception, etc.) et d'échanges (envoi et réception de messages).

Modélisation par Workflow Définition de processus Interface implémentation Flux d'activités et de messages Contrôle Données Modélisation en XML Langage d'orchestration Chorégraphie <activity name="demandePaiement"> <join condition=”(reserverVoiture OR reserverAvion) AND reserverHotel” when=”deferred”> </activity> commandeVacances reserverVacances Commande/Partie2 Commande/classe=2 Commande/classe=1 reserverVoiture reserverAvion reserverHotel Commande/partie1+partie2 demandePaiement

De multiples propositions WSFL Langage de workflow d'IBM Xlang Langage d'orchestration de Microsoft (BizTalk) BPML Workflow et orchestration de BPM.org BPSS Orienté B2B de ebXML BPEL Proposition commune de IBM, Microsoft et BEA Fusion WSFL et Xlang Intégration aux Web Services

Vers un véritable standard ? Trop de "standards" tue le standard Il y a aussi BPSS de ebXML Initiative commune Microsoft, IBM et BEA BPEL (Business Process Execution Language for Web Services) Création de groupes au W3C WS-Choregraphy WS-Transaction Les implémentations sont déjà là Intalio (BPML), BizTalk Server (XLang), WebSphere (WSFL), ...

6. En résumé ... Invocation dynamique de services WEB décrits en WSDL SOAP est le protocole d'invocation (WP) sur HTTP ou autre Intégrité et typage des données (schémas XML) Possibilité de découvrir dynamiquement les services (UDDI) Lisibilité et sécurité renforcée (standard de cryptage) Indépendance des constructeurs (W3C) Intégration des transactions, des workflows et de la sécurité en cours