1 / 49

Web Services

Web Services. Objectifs Architecture Protocole web (SOAP) Composition de services web Position du marché Conclusion. 1. Besoins des Applications Web. Le Web classique Conçu pour les applications à interactions humaines Partage d'information E-commerce de type B2C

kathleen
Download Presentation

Web Services

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Position du marché Conclusion

  2. 1. Besoins des Applications Web • Le Web classique • Conçu pour les applications à interactions humaines • Partage d'information • E-commerce de type B2C • Extensions nécessaires • Accès à l'information depuis des programmes • Processus de e-commerce B2B automatisés • Interopérabilité entre applications • Plate-forme pour le calcul distribué Introduction

  3. Principes des services Web • Proposer une plate-forme de traitement distribuée autour d'Internet/Intranet • Permettre l'interopérabilité totale entre composants • Offrir un modèle de composants simple • Modules avec interfaces de fonctions • Paramètres structurés et diversifiés en place des URL longues contraignantes (ASCII, plats,  255) • Permettre de découvrir dynamiquement les services • Annuaire de services et service de recherche • Offrir des outils d'intégration de composants • A l'échelle de l'Internet ou de l'Intranet Introduction

  4. Exemple d'applications • Diffusion d'information • horaires, incidents, états de stocks • cours de bourse, entrées d'annuaires, etc. • Contrôle d'information • autorisation de cartes de crédits • authentification d'un client • Mise à jour de logiciels • Documentation automatique • présentation, marketing, veille technologique • librairie électronique, manuels, maintenance, etc. • communication et "knowledge management" • Commerce électronique • présentation, sélection, transaction, médiation, etc. Introduction

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

  6. Qu'est ce qu'un Web Service ? • Définition [W3C] • Un Web service est un composant logiciel identifié par une URI, dont les interfaces publiques sont définies et appelées en XML. • Sa définition peut être découverte par d'autres systèmes logiciels. • Les services Web peuvent interagir entre eux d'une manière prescrite par leurs définitions, 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 … Architecture

  7. 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) Architecture

  8. Vue d'ensemble Category UDDI Descriptionof providers and services Provider discovery? Application WSDLService Publication SOAP Client XML Service Call Service Provider SOAP Transport Service SOAP Transport HTTP/S Architecture

  9. Description des services: WSDL • Elément Type • Types des paramètres (schéma XML) • Elément Message • Appel et retour d'opération • Elément Port type • Groupe d'opération • Elément Binding • URL de l'opération • Type de protocole Service Port (e.g. http://host/svc) Port Binding (e.g. SOAP) Binding Abstract interface portType operation(s) inMessage outMessage Architecture

  10. Description en WSDL <definitions name = "..." xmlns: …> <types> <!--Définition des types de données; basés sur ceux des schémas -->… </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> Architecture

  11. Exemple: GetLastTradePrice • <?xml version="1.0"?> <definitions name="StockQuote"> • <types> <schema> <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:TradePriceRequest"/> </message> • <message name="GetLastTradePriceOutput"> <part name="body" element="xsd1:TradePrice"/> </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"/> </input> <output> <soap:body use="literal"/> </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> Architecture

  12. 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 des services: UDDI Annuaire UDDI Annuaire UDDI Gérant de requêtes Enveloppe + Document Dde de Service Programme Architecture

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

  14. Principaux fournisseurs • IBM UDDI Registry • Un registre UDDI avec des fonctionnalités de recherche • www-3.ibm.com/services/uddi/ • Microsoft UDDI Business Registry (UBR) • uddi.microsoft.com/default.aspx • SAP UDDI Business Registry • Public pour l'instant • Systinet Registry • Support complet de UDDI V3 • www.systinet.com/products/sr/overview • Oracle Application Server UDDI Registry • otn.oracle.com/tech/webservices/htdocs/uddi/ Architecture

  15. Client Web de Recherche Architecture

  16. 3. SOAP Appelé • Inspiré du RPC DCE adapté à XML • Appel de procédure distante sur Internet Appelant Stub ou Proxy Appelant Skeleton ou Listener Appelé Souche Réseau d'interconnexion Souche SOAP

  17. Qu'est-ce-que SOAP ? • Simple Object Access Protocol • Ni simple, ni objet … • Invocations de fonctions en 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 session, sécurité, transaction … • Associé à WSDL pour publication d'interfaces SOAP

  18. Un échange type 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 CLIENT SERVEUR SOAP

  19. Eléments d'un message • Envelope • É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 SOAP

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

  21. Exemple • www.stockquoteserver.com • float GetLastTradePrice (Symbol) • Le dialogue : Application Application Request Middleware Middleware Reply SOAP SOAP HTTP HTTP Error www.xquark.org www.stockquoteserver.com SOAP

  22. La requête • POST /StockQuote HTTP/1.1Host: www.stockquoteserver.comContent-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 SOAP

  23. La réponse • HTTP/1.1 200 OKContent-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 SOAP

  24. Exemple: Google • Search 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. SOAP

  25. Protocole d’invocation de services Web Lisible et extensible Au-dessus de HTTP Description en WSDL Possibilité d’attachements MIME (PDF, GIF, BIN, …) Pousser par Microsoft, IBM, BEA, … CORBA ou DCOM « killer »? Associé à nomination des objets Véritable échange de messages entre objets Performance ? Questions ? Bilan SOAP SOAP

  26. Objectifs Modéliser des processus métiers (business process) Composer des services Web distribués Piloter l'exécution Orchestration d'activités Echanges XML Gestion de transactions Business Process Management Workflow Transaction et Saga Exemple : réservation 4. Orchestration de Services Web Début Réserver Hotel OK ? non Echec oui Réserver Avion OK ? non Réserver Train oui OK ? Louer Voiture oui non Echec OK ? non Echec oui Succès BPM

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

  28. Les briques à standardiser Choreography - CDL4WS Orchestration - BPEL4WS BusinessProcesses Transactions Quality ofService Coordination WS-Security WS-Reliability Context Management Discovery UDDI Description Description WSDL SOAP Message XML Transport HTTP, IIOP, JMS, SMTP

  29. Composition de services • Objectifs: • Alliances entre business pour offrir des services intégrés à valeur ajoutée en combinant des services existants • Réutilisation et extension de services existants • Support pour la planification, la définition et l'implémentation de services composés • Développement d'applications distribuées composées de services web BPM

  30. Quelques définitions • Processus métier (Business Process) • Module fonctionnel réalisé par enchaînement d'activités business exécutées par des acteurs échangeant des messages et implémentant des objets et règles spécifiques à une entreprise. • Orchestration d'activité (Activity Orchestration) • Mécanisme d'invocation, de contrôle et de coordination des activités participant à la réalisation de processus métier. • 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). BPM

  31. Modélisation par Workflow • Graphe acyclique d'activités modélisant un processus métier Les activités représentent les unités de traitement Les liens de contrôle définissent le flux d'exécution Les activités correspondent à des services Web [ WS] Les liens de données définissent le flux d'information. Les activités peuvent être d'autres business process BPM

  32. Composition d’activités simples et complexes • Description du flux d’activité en XML <sequence> Receive <PO> <flow> Invoke <InventoryService> Invoke <CreditService> </sequence> Reply <Invoice> BPM

  33. Vers un standard ? BPML (Intallio et al) BPSS (ebXML) WSCI (Sun et al) WS-Choreography (W3C) 2000/05 2001/03 2001/05 2001/06 2002/03 2002/06 2002/08 2003/01 2003/04 XLang (Microsoft) WSFL (IBM) WSCL (HP) BPEL4WS 1.0(IBM, Microsoft) BPEL4WS 1.1(OASIS) BPM

  34. BPEL: Structure d’un Business Process <process> <!– Definition and roles des participants --> <partnerLinks> ... </partnerLinks> <!- Données utilisées dans le process --> <variables> ... </variables> <!- Propriétés permettant les conversations --> <correlationSets> ... </correlationSets> <!- Gestion des exception --> <faultHandlers> ... </faultHandlers> <!- Traitement des erreurs --> <compensationHandlers> ... </compensationHandlers> <!- Gestion des compensations --> <eventHandlers> ... </eventHandlers> <!- Workflow d’activités --> (activités)* </process>

  35. BPEL: Business Process composé d'activités • Compositions des web services en séquence et parallèle • Véritable langage de programmation parallèle codé en XML BPM

  36. BPEL: Exemple <sequence> <receive partnerLink=“customer” portType=“lns:purchaseOrderPT" operation=“sendPurchaseOrder” variable=“PO” createInstance="yes" /> <flow> <invoke partnerLink=“inventoryChecker” portType=“lns:inventoryPT” operation="checkINV" inputVariable="inventoryRequest" outputVariable="inventoryResponse" /> <invoke partnerLink="creditChecker" portType=“lns:creditPT" operation="checkCRED" inputVariable="creditRequest" outputVariable="creditResponse" /> </flow> ... <reply partnerLink=“customer” portType=“lns:purchaseOrderPT” operation=“sendPurchaseOrder” variable=“invoice"/> </sequence> BPM

  37. Qualité de services • Nécessité de fiabiliser: • Les messages (WS-Reliability) • Garantie la livraison, les non dupliqués et l’ordre • S’ajoute comme un en-tête SOAP • Standard OASIS • Les activités (WS-Transactions) • Courtes (Atomic Transactions) • Longues (Business Activities) • Nécessité de sécuriser: • Les échanges confidentiels (Standard WS-Security) • PKI, Signature et Cryptage BPM

  38. De multiples propositions un domaine chaud (voir SOA) BPEL s'impose comme un standard de l’OASIS Vers trois standards pour la qualité de services WS-Reliable Messaging WS-Transactions WS-Security Questions ? Bilan Processus Métiers BPM

  39. 5. 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 Infrastructue (CLI) • .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 CIL (ex MSIL) • Machine virtuelle pour l'exécution CLI • Semblable à Java mais MS (et Novell: Mono) Stratégie

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

  41. Exemple: plate-forme d’Entreprise MS Applications Partenaires Infrastructure “Information Worker” Infrastructure Applicative Web Services Pattern & Design, ASP.NET Web Matrix, ASP.NET starter kit, Communautés Gestion des Données Outils de développement Administration et Sécurité Unix AS400 Infrastructure Système Linux OS390

  42. Produits J2EE • Apache AXIS (Open Source) • Servlet permet de déployer les services • Appel servlet depuis SOAP • Intégrés aux serveurs d'applications • API JAX chez IBM, BEA, Oracle, SUN, … • Equivalent de .NET dans le monde Java (JSP ~ ASP) • Nombreux assistants et outils • Large support expérimental de BPEL Stratégie

  43. Java WS Developer Pack (Sun) • Boite à outils logiciel gratuite pour construire, tester et déployer les applications Java/XML • Supporte les dernières versions des technologies et standards Web Services • Avec la dernière version Java WSDP 2.0, les développeurs : • Develop and deploy using the latest XML and Web services technologies slated for inclusion into Sun's deployment platforms. • Enhance Web services performance without revising WSDL files or application code with the refreshed Fast Infoset features from Java WSDP 1.6. • Create XML and Web service-enabled applications that exploit the enhanced security features with enhanced XWSS features. • Continue to enjoy Java interoperability and portability across different platforms and devices. • Simplify and lower the cost of legacy application integration, data interchange, and publishing in a Web environment.

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

  45. Composants métiers appelables par message XML Encapsulent les applications existantes Début du développement des architectures SOA Agilité du système d'information Développement des workflows de coopération Position des constructeurs Ability to Execute Completeness of Vision Challengers Leaders Microsoft IBM BEA Oracle SAP Fujitsu Sun HP CA Novell Siebel Peoplesoft Niche Players Visionaries Conclusion

  46. 6e société US de location 400 sites dans 26 pays, 260 sites US; +75.000 véhicules $750MM de revenu en 2001 Réservation à travers GDS Une alternative à GDS:les services Web XML Lien direct avec les partenaires… 25 en 2 mois. Exemple d'application: Dollar Rent a Car XML / SOAP NorthWest XML / SOAP ACMS Frontal WS SouthWest GlobalDistributionSystems Sabre Worldspan Amadeus Galileo $4 VaxVMS Dollar Rent a Car Conclusion

  47. Ligue de Football Professionnel • Ligue de Football Professionnel (CA 990M Euros) rebâtit son système de billetterie en .NET: • Système dimensionné et validé pour 8000 ventes/minutes • Un nouveau système qui simplifie le développement de nouveaux canaux/ partenariat : • Interopérabilité via Services Web avec les réseaux TicketNet et France Billet Conclusion

  48. SNCF: Fidélisation clients (CRM) • Aujourd'hui, la filiale Chargée de la gestion des programme de fidélité (cartes seniors, 12/25 ans ou grand voyageur) s'appuie sur plus de 30 modules Siebel dont les principaux sont Loyalty, pour la gestion de la fidélité pure, Call Center, Analytics (reporting et tableaux de bords) et Gestion des campagnes marketing. Il dispose d'une douzaine de sites de production dont l'outil interne de fidélisation de la SNCF, auquel il se connecte régulièrement pour mettre à jour ses données. Enfin, deux centres d'appels relaient les besoins clients liés à l'aspect fidélisation."Après 3 mois de mise en production, nous disposons d'un système qui fonctionne bien. Nous distribuons plus de 30 000 primes par mois, dont 30% par nos services Internet. Nous envoyons nos premiers mailings depuis trois semaines", ajoute Cyril Garnier. A terme, de nouvelles fonctions viendront encore enrichir l'offre de services Web tels le relevé de points à distance, l'achat de cartes, la modification de coordonnées clients ou la transformation des points en réservations. • Extrait du JDNET du 07/11/2005

  49. Invocation dynamique de services WEB décrits en WSDL SOAP est le protocole d'invocation (WP) sur HTTP 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 workflows (BPEL) Ajout de contrôle qualité (transaction, sécurité) Questions ? 7. En résumé ... Conclusion

More Related