La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

IV. Web Services Objectifs Architecture Protocole web (SOAP)

Présentations similaires


Présentation au sujet: "IV. Web Services Objectifs Architecture Protocole web (SOAP)"— Transcription de la présentation:

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

2 1. Besoins des Applications Web
Le Web classique (1.0) Conçu pour les applications à interactions humaines Partage d'information publiée par les serveurs E-commerce de type B2C Extensions nécessaires Accès à l'information depuis des programmes Accès par le Web à des applications existantes Interopérabilité entre applications sur Internet/Intranet Processus de e-commerce B2B automatisés Sociétés et clients doivent pouvoir travailler ensemble Eviter le danger de « mort par isolation » 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 interface composée de fonctions Paramètres structurés et diversifiés en place des URL longues contraignantes (ASCII, plats,  4K) 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 SERVEUR Service Provider Request 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 constituants 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 Description of providers
Vue d'ensemble Interface Service Provider Application Find? W S D L Description of providers and services UDDI Category Provider WSDL Service Publication Encodeur SOAP Interface client XML Service Call Translateur 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. 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=" <operation name="GetLastTradePrice"> <soap:operation soapAction=" <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=" </port> </service> </definitions> Architecture

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

13 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 d’interfaces et taxonomies BusinessService Publisher Assertion Binding Templates 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 Oracle Application Server UDDI Registry otn.oracle.com/tech/webservices/htdocs/uddi/ Architecture

15 Client Web de Recherche
Architecture

16 3. SOAP 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 Appelé 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 SOAP Messages SOAP Appel Application Cliente HTTP
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 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 SOAP

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

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

22 La requête POST /StockQuote HTTP/1.1 Host: Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI#GetLastTradePrice" <SOAP:Envelope xmlns: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/ OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <SOAP:Envelope xmlns: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 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. SOAP

25 Bilan SOAP 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 ? SOAP

26 4. Composition de Services Web
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 sûrs Gestion de transactions Business Process Management Workflow d’activité Exemple : réservation Début Réserver Avion Louer Voiture Train Hotel OK ? Echec Succès oui non BPM

27 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 Fourniture d’outils avec interfaces graphiques permettant de déclarer les compositions sans programmer BPM

28 Les briques à standardiser
Choreography - CDL4WS Business Processes Orchestration - BPEL4WS Transactions Quality of Service WS-Messaging WS-Security Notifications Quality Management UDDI Discovery WSDL Description Description SOAP Message XML HTTP, IIOP, JMS, SMTP Transport BPM

29 WS-Messaging Objectifs : Moyens
Assurer le transfert fiable de messages en présence de pannes Identifier et tracer les messages S’intégrer aux en-têtes SOAP Moyens Numérotation des messages par séquences Accusés de réception BPM

30 WS-Transaction Objectifs Moyens : deux modèles intégrés
Permettre l’atomicité des transactions courtes Gérer efficacement les transactions longues multi-sites Supporter des business process fiables Moyens : deux modèles intégrés Atomic transaction (AT) Utilisé pour assurer l’atomicité d’activités de courte durée Intégration du protocole de validation en deux étapes Business Activity (BA) Utilisé pour coordonner des activités de longues durées Intégration des sagas avec des compensations de fonctions Les messages de contrôle s’intègrent aux entêtes SOAP BPM

31 WS-Security : Fonctions de base
Authentification: Qui a envoyé ce message ? Attestations (Credentials) Login/Password Certificat digital Autorisation: Que peut faire cet utilisateur ? Droits d’accès accordés aux utilisateurs Utilisation de rôles pour grouper les droits Confidentialité: Qui peut lire ce message ? Cryptage des données Clés secrètes ou couple publique/privée pour crypter/décrypter Intégrité: Quelqu’un a-t-il modifié ce message message? Signature digitale pour comparer messages envoyés et reçus BPM

32 WS-Security : Les standards
XKMS (XML Key Management Specification) Gestion des clés publiques et privées Encapsule les architectures PKI XML Signature – W3C Ajoute une signature codée en XML au message La signature est le cryptage d’un digest par clé privé Le digestest obtenu par hachage du document signé XML Encryption – W3C et IETF Cryptage des messages Possibilité de crypter des fragments différemment Le fragment crypté est remplacé par du binaire base 64 BPM

33 WS-BPEL : Business Process Modelling
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

34 WS-BPEL : Exemple Description du flux d’activité en XML
<sequence> Receive <PO> <flow> Invoke <InventoryService> Invoke <CreditService> Reply <Invoice> </sequence> BPM

35 Les standards de l’OASIS
WS-Messaging 1.1 Juin 2007 WS-Transaction 1.1 mai 2007 WS-Security Février 2006 WS-BPEL 2.0 Avril 2007 2000/05 XLang (Microsoft) 2001/03 BPML (Intallio et al) 2001/05 WSFL (IBM) 2001/06 BPSS (ebXML) 2002/03 BPEL4WS 1.0 (IBM, Microsoft) BPEL4WS 1.1 (OASIS) 2002/06 2003/01 WS-Choreography (W3C) 2003/04 WSCI (Sun et al) WSCL (HP) 2002/08 BPM

36 Bilan Processus Métiers
Un domaine chaud Au cœur des architectures SOA Développements de nombreux outils BPEL s'impose comme un standard de l’OASIS Le W3C a des groupes de travail connexes Vers plusieurs standards pour la qualité de services WS-Messaging WS-Transaction WS-Security WS-Notification Questions ? BPM

37 5. Stratégie des constructeurs
Au cœur des systèmes Microsoft Evolution de DNA vers .Net avec échanges en XML Visual Studio.Net et .Net Framework 2.0 SDK Permettent le développement de Web Services Génération de proxy client à partir de WSDL Publication et découverte facilitées en UDDI Utilisable depuis 20 langages de programmation Développement possible de pages ASP comme WS Invocables depuis les outils Office Version open source de .Net par Novell: Mono Stratégie

38 Common Language Runtime Common Language Specification
Architecture .NET Operating System Common Language Runtime Base Class Library ADO.NET and XML ASP.NET Web Forms Web Services Windows Forms Common Language Specification VB C++ C# JScript J# Visual Studio.NET Stratégie

39 Extensions des Web Services
Sécurité, routage et attachements binaires WCF (Windows Communication Framework) Implémentation des standards WS-* de ws-i.org Moteur de workflow de base Stratégie

40 Exemple de développement WS en ASP.Net
WebService Language="VB" Class= "StockQuote" %> Imports System Imports System.Web.Services Public Class StockQuote :Inherits WebService <WebMethod()> Public Function GetLastTradePrice (ByVal tickerSymbol As String) As Float /* Calcul du prix Price */ Return Price End Function End Class Génération automatique du WSDL et du translateur SOAP Possibilité d’appel par client HTTP ou API SOAP générée Stratégie

41 Intérêt de la généralisation des WS
Infrastructure Système Gestion des Données Infrastructure Applicative Infrastructure “Information Worker” Outils de développement Administration et Sécurité Pattern & Design, ASP.NET Web Matrix, ASP.NET starter kit, Communautés Applications Partenaires Web Services Unix AS400 Linux OS390 Stratégie

42 Produits J2EE Apache AXIS2 (Open Source)
Servlet permettant de déployer les services à partir d’un fichier archive et d’un descripteur XML Génération automatique du WSDL Appel du servlet depuis SOAP par browser ou client riche 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 Architecture Type Stratégie

44 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. Stratégie

45 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

46 Position des constructeurs
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 Challengers Leaders Ability to Execute Microsoft IBM BEA Oracle SAP Fujitsu Sun HP CA Novell Siebel Peoplesoft Niche Players Visionaries Completeness of Vision Conclusion

47 Exemple d'application: Dollar Rent a Car
6e société US de location 400 sites dans 26 pays, 260 sites US; 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. Global Distribution Systems XML / SOAP NorthWest Sabre Worldspan On valorise un existant, ici VaxVMS On change de chaine de valeur On améliore la profitabilité Amadeus Galileo $4 Frontal WS ACMS XML / SOAP SouthWest VaxVMS Conclusion Dollar Rent a Car

48 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 8000 ventes/minutes : de quoi remplir le stade Vélodrome de Marseille ( places) en 8 min Le système est déployé dans les grands clubs de foot (premier déployement au Stade Lyonnais,) avec pour étape suivante de se connecter aux réseaux de distribution TicketNET et France Billet. L’approche Service Web et le potentiel d’intéropérabilité on convaincu la LFP : le système pourra potentiellement permettre aux clubs qui le souhaite de mettre en place une boutique en ligne (promotions pour les supporters, etc) mais aussi s’interfacer avec le reste du SI de chaque club. Ligue Nationale de foot Conclusion

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

50 7. En résumé ... 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 ? Conclusion


Télécharger ppt "IV. Web Services Objectifs Architecture Protocole web (SOAP)"

Présentations similaires


Annonces Google