Télécharger la présentation
Publié parGinette Rey Modifié depuis plus de 9 années
1
Web Services Objectifs Architecture Protocole web (SOAP)
Composition de services web Sécurité 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 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 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
Description of providers
Vue d'ensemble Service Provider Application discovery? Description of providers and services UDDI Category Provider WSDL Service Publication SOAP Transport SOAP Client XML Service Call 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 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 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 Request Middleware Middleware 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 Passant les firewalls Description en WSDL 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. 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 Stratégie
27
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
28
Exemple: plate-forme d’Entreprise MS
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
29
Statégie J2EE de SUN, IBM, …
Offrent un ensemble d'API pour Java2 et XML (JAX) Java API for XML Processing (JAXP) Parsers, Processeur de feuilles de style Java Architecture for XML Binding (JAXB) Mapping de XML sur des objets Java Java API for XML Messaging (JAXM) Echange de messages SOAP Java API for XML-based RPC (JAX-RPC) Génération de WSDL Java API for XML Registries (JAXR) Accès à l'annuaire UDDI Stratégie
30
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 Stratégie
31
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
32
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
33
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
34
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
35
5. Processus métiers Objectifs Exemple : réservation
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 Transaction Workflow Exemple : réservation Début Réserver Avion Louer Voiture Train Hotel OK ? Echec Succès oui non BPM
36
Exemple : Pilotage Fabrication
Echange B2B Partenaire Serveur d'entreprise Usine XML XML XML WEB XML Interface XML ERP XML Fournisseur Mainframe Client BPM
37
Les briques à standardiser
Choreography - CDL4WS Business Processes Orchestration - BPEL4WS Transactions Quality of Service WS-Reliability WS-Security Coordination Context Management UDDI Discovery WSDL Description Description SOAP Message XML HTTP, IIOP, JMS, SMTP Transport
38
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
39
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 les 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 d'affaire. 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
40
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
41
Exemple Modélisation en XML Langage d'orchestration
Chorégraphie d'activités <activity name="demandePaiement"> <join condition=”(reserverVoiture OR reserverAvion) AND reserverHotel” when=”deferred”> </activity> <activity name="reserverAvion"> …. commandeVacances reserverVacances Commande/classe=1 Commande/classe=2 reserverVoiture reserverAvion reserverHotel demandePaiement BPM
42
BPEL4WS 1.0 (IBM, Microsoft)
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
43
BPEL: Processus composé d'activités
Compositions des web services synchrones et asynchrones Véritable langage de programmation parallèle codé en XML Assignation de variables locales et globales BPM
44
Exemple BPEL BPM <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
45
Qualité de services Nécessité de fiabiliser Nécessité de sécuriser
Les messages (WS-Reliability) Les activités (WS-Transactions) Courtes (Atomic Transactions) Longues (Business Activity) Nécessité de sécuriser Les échanges confidentiels (WS-Security) BPM
46
Bilan Processus Métiers
De multiples propositions un domaine chaud (voir SOA) BPEL s'impose comme un standard de fait Vers trois standards pour la qualité de services WS-Reliable Messaging WS-Transactions WS-Security Questions ? BPM
47
6. Protocoles de sécurité
Ensemble de protocoles pour sécuriser les échanges Intégration aux services Web WS-Security Englobe les standards : XKMS (XML Key Management Specification) spécification conjointe du W3C et de l'IETF pour intégrer la gestion de clés et certificats aux applications XML. délégation du traitement de la sécurité à un service spécialisé sur Internet offrant des services de gestion de clés publiques, certificats et signatures, accessible en SOAP. XML Signature XML Encryption Protocole Sécurité
48
XML Signature Qu'est-ce que XML Signature ? Principes
Standard du W3C et de l'IETF Signature de message en XML Architecture PKI sous-jacente Principes Appliquées à des "data objects" arbitraires Data objects sont placés dans un élément Cet élément est signé La signature est placée dans un élément signature Protocole Sécurité
49
Principe des signatures
B H H Résumé Résumé Document Document CPB CsB on compare CsA CPA Signature Signature Résumé L'égalité des résumés (digests) garantit que l'émetteur connaît la clé secrète de A, donc qu'il s'agit de A. Protocole Sécurité
50
Structure du message Protocole Sécurité </Signature>
Englobe l'information signée Ouvre la signature électronique <Signature> <SignedInfo> (CanonicalizationMethod) (SignatureMethod) (<Reference (URI=)? > (Transforms)? (DigestMethod) (DigestValue) </Reference>)+ </SignedInfo> (SignatureValue) (KeyInfo)? (Object)* </Signature> Décrit chaque objet à signer, en particulier sa localisation Indique la méthode de canonisation des objets Définit la liste des transformations appliquées à l'objet avant calcul du digest Référence la méthode de calcul du digest Définit l'algorithme utilisé pour transformer l'élément SignedInfo canonisé en SignatureValue Contient la valeur du digest de l'objet Contient la valeur du résumé de l'élément <SignedInfo> chiffré Définit les clés de chiffrements nécessaires au calcul de la signature Protocole Sécurité
51
XML Encryption Recommandation du W3C
Protocole d'échange des clés de cryptage Clé publiques Valeurs des données cryptées Algorithmes de cryptage Chaque élément peut être crypté Possibilité de crypter à tout niveau Clé symétrique ou asymétrique Exemple simple: <?xml version='1.0'?> <PaymentInfo> <Name>John Smith <Name/> <EncryptedData> <CipherData> <CipherValue>A23B45C56 </CipherValue> </CipherData> </EncryptedData> </PaymentInfo> Protocole Sécurité
52
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 Ajout de contrôle qualité (transactions, sécurités) Questions ? Conclusion
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.