x4-webservices


x4-webservices

 

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 Architecture Service Requester Service Provider Service Provider Service Provider Service Provider WEB-HTTP CLIENT Service Registry Request Request Request Request Publish Publish Publish Publish Find SERVEUR SERVEUR SERVEUR SERVEUR SERVEUR 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 HTTP/S Description of providers and services UDDI Category Category Provider Provider WSDL Service Publication WSDL Service Publication SOAP Transport SOAP Transport SOAP Client SOAP Client XML Service Call SOAP Transport SOAP Transport Service Service Service Provider Application discovery ? 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 Architecture Service Port (e.g. http://host/svc) Binding (e.g. SOAP) Abstract interface portType operation(s) inMessage outMessage Port Binding 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 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 Gérant de requêtes Enveloppe + Document Programm e Dde de Service Annuaire UDDI Architecture 13 Contenu de l?annuaire ? 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 BusinessEntity BusinessEntity BusinessService BusinessService BindingTemplates BindingTemplates tModel tModel publisherAssertion publisherAssertion Spécifs de services et taxonomies 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 ? Inspiré du RPC DCE adapté à XML ? Appel de procédure distante sur Internet Appelant Appelé Appelant Appelé Souche Réseau d'interconnexion Souche Stub ou Proxy Skeleton ou Listener 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 Application Cliente Parser XML Procuration d'interface Translateur SOAP Parser XML Serveur d'application Messages SOAP Appel Réponse HTTP RPC local Port de connexion (URL) Pare-feu Pare-feu SOAP CLIENT SERVEUR 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 SOAP Envelope SOAP Header SOAP Body Entête de protocoles (HTTP, SMTP, ?) <Envelope> <Header> <Body> SOAP 21 Exemple ? www.stockquoteserver.com ? float GetLastTradePrice (Symbol) ? Le dialogue : Application Middleware SOAP HTTP Application Middleware SOAP HTTP www.stockquoteserver.com Request Reply Error www.xquark.org SOAP 22 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 SOAP 23 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 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 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. Orchestration 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 ? Gestion de transactions ? Business Process Management ? Workflow ? Transaction et Saga ? Exemple : réservation BPM Début Réserver Avion Louer Voiture Réserver Train Réserver Hotel OK ? OK ? OK ? OK ? Echec Echec Echec Succès oui oui oui oui non non non non 27 Exemple : Pilotage Fabrication Fournisseur ERP Usine Partenaire Echange B2B Mainframe Serveur d'entreprise Interface XML XML XML XML XML XML Client WEB BPM 28 Les briques à standardiser Description HTTP, IIOP, JMS, SMTP Transport XML Message SOAP WSDL UDDI Discovery Transactions Coordination WS-Security WS-Reliability Quality of Service Orchestration - BPEL4WS Business Processes Context Description Management Choreography - CDL4WS 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 BPM Les activités représentent les unités de traitement Les liens de données définissent le flux d'information. [ WS] Les activités peuvent être d'autres business process Les liens de contrôle définissent le flux d'exécution Les activités correspondent à des services Web 32 Composition d?activités simples et complexes ? Description du flux d?activité en XML BPM Invoke <InventoryService> Invoke <CreditService> Reply <Invoice> Receive <PO> <sequence> <flow> </sequence> 33 Vers un standard ? BPM 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 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 Bilan Processus Métiers ? 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 ? 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 VB C++ JScript ? C# ASP.NET ADO.NET BCL.NET Common Language Runtime (CLR) Windows et COM+ Services SOAP & XML Toolkits Visual Studio .NET Stratégie 41 Infrastructure Système Gestion des Données Infrastructure Applicative Infrastructure ?Information Worker? Infrastructure ?Information Worker? Outils de développement Outils de développement Administration et Sécurité Administration et Sécurité Pattern & Design, ASP.NET Web Matrix, ASP.NET starter kit, Communautés Applications Applications Partenaires Partenaires Exemple: plate-forme d?Entreprise MS Unix Unix Linux Linux OS390 OS390 AS400 AS400 Web Services Web Services 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 Serveur de présentation XML XML HTML Stratégie ? Java, C++, C#, Word, Excel, ? WEB SERVICES J2EE XML Visual studio WEB SERVICES .NET 45 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 Completeness of Vision Completeness of Vision Challengers Leaders Niche Players Visionaries Ability to Execute Ability to Execute Oracle Oracle IBM IBM HP HP BEA Microsoft Microsoft CA CA Siebel Siebel Peoplesoft Peoplesoft Novell Novell SAP SAP Fujitsu Fujitsu Sun Sun Conclusion 46 Exemple d'application: Dollar Rent a Car ? 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. Dollar Rent a Car Dollar Rent a Car VaxVMS VaxVMS Frontal WS Frontal WS ACMS ACMS XML / SOAP XML / SOAP SouthWest SouthWest G Global lobal D Distribution istribution S Systems ystems Sabre Sabre Worldspan Worldspan Amadeus Amadeus Galileo Galileo XML / SOAP XML / SOAP NorthWest NorthWest $4 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 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

PARTAGER SUR

Envoyer le lien par email
799
READS
5
DOWN
0
FOLLOW
4
EMBED
DOCUMENT # TAGS
#web services  #soap  #rest 

licence non indiquée


DOCUMENT # INDEX
WEB 
img

Partagé par  philaos

 Suivre

Auteur:
Source:Non communiquée