V. Web Services Objectifs Architecture Protocole web (SOAP)

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
« Les Mercredis du développement » Introduction Office « 12 » Présenté par Bernard Fedotoff Microsoft Regional Director Agilcom.
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.
19 septembre 2006 Tendances Logicielles IBM Rational Data Architect Un outil complet de modélisation et de conception pour SGBD Isabelle Claverie-Berge.
Connecter des données métier à Office SharePoint Server 2007 via le Business Data Catalog.
Chapitre 1 Introduction
Julien HERON.
Stéphanie CLAPIÉ Antoine RENARD
Les webservices Samira Silhadi-Hacid Malika Tarafi.
l'impact sur le eBusiness
Object Management Architecture (OMA)
L’architecture .net et ASP.net
Exposé de Système - Informatique et Réseau
Cours 6 : Les Web Services et UDDI Mars Version 1.0 -
Cours 5 : Les Web Services et WSDL Mars Version 1.0 -
1 Les technologies XML Cours 1 : Les Web Services et Architectures Orientées Services Fé vrier Version 1.0 -
Cours 2 : Les Web Services Concepts Généraux
Les Web Services.
Introduction Concepts fondamentaux Éléments d’architecture
Intégrer vos données avec.
Génie Documentiel Delacrétaz Jean-Marc
Le Workflow et ses outils
Introduction aux services WEB
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Etude des Technologies du Web services
XML-Family Web Services Description Language W.S.D.L.
Un intranet documentaire : concepts, outils et avantages
Le Travail Collaboratif ...
.Net Remoting.
Gestion des bases de données
Services fournis par le SI et technologies associées
An Introduction to distributed applications and ecommerce 1 1 Les services Web, XML et les places de marchés.
Séminaire Service Interoperability on Context Level in Ubiquitous Computing Environments Davide Bazzi IIUF Etude de larticle: Service Interoperability.
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.
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)
Web Services Objectifs Architecture Protocole web (SOAP)
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Créer des packages.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Introduction à la plateforme .NET
Les plateformes de développent des web services
Enterprise Java Beans 3.0 Cours INF Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU.
Metro Web Services Ben Yaflah Marouen Dhrif Mohamed Hbib Hajlaoui Nader.
Le web service
Mastère Professionnel Systèmes de Communication et Réseaux
Struts.
COMPARAISON ENTRE GNUTELLA ET FREENET
Intégration de données et applications via XML
IV. Web Services Objectifs Architecture Protocole web (SOAP)
Representational State Transfer - REST
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
Création d’applications distribuées.NET Ziriad Saibi Relation technique éditeurs de logiciels Microsoft France.
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.
Introduction Module 1.
Universel Description Discovery and Integration « UDDI «
Modèle à objets et sérialisation Olivier ChamlaFrançois Chastanet.
Chapitre 8 Protection du trafic réseau à l'aide de la sécurité IPSec et de certificats Module S43.
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:

V. Web Services Objectifs Architecture Protocole web (SOAP) Composition et de services web Projet

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

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

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

Architecture Web Services

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

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

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

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

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

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

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

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

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

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

Client Web de Recherche Architecture

SOAP

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

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

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

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

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

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

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">            <tickerSymbol>DIS</tickerSymbol>        </m:GetLastTradePrice>    </SOAP:Body> </SOAP:Envelope> Standard HTTP SOAP

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

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

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

REST: Representational State Transfer

REST Pas un standard Son succès: “The Way the Web works” Utilise par les plus grande applications distribuées Architecture client-serveur sans états Un nombre limite des opérations pour tout les ressources GET, POST, PUT, DELETE Sa caractéristique: Les ressources et les états d’une application identifiées par des URI Permet le bookmarking, link-sharing

REST Principles 1. Identify all conceptual entities to be exposed as services : 2. Create a URL to each resource http://www.example.org/testuser/bookmark/45 3. Categorize resources according to available operations: GET, PUT, POST, DELETE 4. Resources accessible via HTTP GET to be side-effect free HPI, Seminar Advanced Database Technology - WS0506 / 7

REST No representation should be an island Put hyperlinks into resource representations Enables clients to obtain related or additional information. 6. Design to reveal data gradually Not everything in a single response document Provide hyperlinks to obtain more details 7. Specify the format of response data using DTD/XSD For POST and PUT services provide a request specification 8. Describe how to invoke services using a WSDL or an HTML document HPI, Seminar Advanced Database Technology - WS0506 / 7

REST Overview Advantages: Drawbacks Development and testing without complex toolkits Debugging of REST requests with a web browser Requires a basic HTTP client, available in every common language REST services can be easily used by AJAX applications APIs in REST style are more “consumable” then complex APIs Lower learning curve for consumer Everything accessible through universal API Drawbacks Only few tools Restrictions for GET length sometimes may be a problem No direct bridge to the OOP world Similar to REST

Composition de Services Web

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

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

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

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

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

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

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

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

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

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

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

5. Stratégie des constructeurs Au cœur des systèmes Microsoft 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

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

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

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

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

Produits J2EE Apache AXIS (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

Architecture Type Stratégie

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

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

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

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

Intégration de données (EII)

2. Intégration de données (EII) Base de données intégrée virtuelle approche où les données intégrées ne sont pas matérialisées dans un SGBD intégration à la demande pour répondre aux requêtes Seules les données utiles sont manipulées L’utilisation d’un cache augmente les performances Limitations performance calculs d’intégration complexes, sources lentes ou indisponibles Difficultés de mises à jour Intégration de données

Enjeux de l’intégration Selon études IBM: pour 1$ dépensé pour une application packagée, de 5 à 9$ sont dépensés pour assurer son intégration Selon le Gartner: 40% des budgets IT sont dépensés en intégration Selon Morgan Stanley: l’intégration de données est devenue la priorité N°1 des entreprises en conjonction avec le e-business et le CRM Introduction

Données géographiques Exemple de scénario Systèmes classiques CLIENT Données techniques Site 5 Commandes, Clients, Factures Vue intégrée Site 4 Site 1 Opérations des produits Réseau de communication Données géographiques Données textuelles Site 2 Site 3 Descriptions des produits SERVEUR Localisation des clients Intégration de données

Hétérogénéité des modèles Source 2: Repository XML Source 1: SGBDR <!ELEMENT Vin (Cru, Degre, Description+)> <!ATTLIST Vin nv CDATA #IMPLIED> <!ELEMENT Buveur (Nom, Place,Date, Type)> <!ATTLIST Buveur nb CDATA #IMPLIED> <!ELEMENT Catalogue (Vin, Offre, Publicité?)+> ... Nom DateN Pays Type Buveurs Vins NV Cru Mill Degre Source 4: LDAP personne Source 3: WEB buveur service chef employé boire Personne Boisson vins Région Description Intégration de données

Vue intégrée pour la médiation Schéma intégré mappings Schéma source Schéma source Source 1 Source 2 Méthodes de mapping Descendante (le schéma de médiation est une vue) - GAV Ascendante (le schéma source est une vue) - LAV Mixte (la combinaison de schémas sources est une vue) Intégration de données

Hétérogénéité des langages Source 1: RDBMS Source 2: XML Repository ODBC/JDBC SQL SOAP XQuery Source 4: LDAP Source 3: WEB LDAP QUERY Google Text Queries WEB Services Intégration de données

Traitement d’une requête globale Source 1 + Wrapper 1 Vue Intégrée Traduction q1 Q Décomposition Intégration q2 Traduction Vue utilisateur Médiateur Source 2 + Wrapper 2 Dans tous les cas, le médiateur génère des sous-requêtes optimisées à partir de Q Intégration de données

Avantages des médiateurs Support d’un langage de requêtes uniforme pour les données hétérogènes (SQL/XML ou XQuery) Accès intégré par API objet et services Web (requêtes paramétrées) Transparence à la localisation des données pour les applications Disponibilité accrue des données en cas de pannes des serveurs par gestion de copies Intrusion minimum au niveau des serveurs Transparence à l’hétérogénéité des sources Intégration de données

Services Coordination Architecture DARPA I3 Services Interaction Applications objet Applications client Browser web Niveau Client Services Coordination Facilitateur 1 Facilitateur 2 Services Integration Niveau Médiation Médiateur 1 Médiateur N Services Translation Wrapper Wrapper Wrapper Niveau Source ... Services Accès Source 1 Source 2 Source N Intégration de données

Schéma de médiation XML Atouts Un modèle complet (XML Schema) plus riche que le relationnel Permet de mixer documents et données structurées Langages de requêtes normalisé: XQuery, SQL/XML Bien adapté aux échanges B2B: Unification des noms possible, mécanisme de "namespaces"  Difficultés : Technologie complexe à maîtriser Performance de XML (texte) Intégration de données

Des produits industriels Enosys Médiateur XQuery Librairie de wrappers Nimble.com Racheté par Actuate Base d'intégration sémantique Correspondance entre Xpath IBM Xperanto XQuery au-dessus de SGBDR Compilation en SQL Médience (INRIABO) Relationnel + API XML Liquid Data (BEA) Dérivé de Enosys Vues XML/XQuery IBM Information Integrator Système hybride SQL et XML Basé sur SQL/XML OLE/DB.NET Extension de OLE/DB à XML Interrogation SQL for XML DENODO Plate-forme d'intégration SQL Extension à XQuery en cours Intégration de données

IBM DB2 Information Integrator Accès unifié à des vues SQL/XML Tables virtuelles avec colonnes XML docs Interrogation en SQL/XML SQL avec fonctions XPath Accès à toute source SQL (DB2, Oracle, Sybase, etc.) MQ message queues   Lotus Notes   Documentum Enterprise Content Management System web search engines and Web services MS Excel spreadsheets, XML docs and more Intégration de données

BO Data Integrator Site #2 Intégré à BO XI Solution mixte Relationnel/XML Architecture récursive Server Site #1 Application #2 Server Données DR Application #1 Site #3 Données CD Server Application #3 Données NP Intégration de données

Liquid Data de BEA Architecture intégrée à WebLogic Intégration de données

Bilan Les bases fédérées s'orientent vers XML XQuery distribué est en marche Technologie idéale pour Portails BD Interrogation multi-sources Exemples d'applications Le dossier patient virtuel Le portail touristique Problèmes Architecture complexe Performance Intégration de données

Projet Library Thing REST Java/PHP BD REST ISBNdb Client relationelle BDLocale: Initialisation Web service: Définir le fichier WSDL qui exporte les operations: getBooksForAuthor(name-author); getInfoAuthor(name-author); getBookForTitle(title); Library Thing REST Java/PHP ISBNdb Client BD relationelle REST SOAP Web service BDLocale: Définir un schéma relationnel Appeler le Service Web SOAP exporte par la base locale Appel de Service Web (Web call) Télécharger document URI avec la réponse REST Stocker sur le disque Appliquer la transformation XSLT pour extraire les tuples Insérer dans la base locale les tuples resulat

Our approach Dynamically integrate data provided by Web Service APIs Examples of Web Services exported by known Web sites MusicBrainz, Last.fm for the music domain Amazon, ISBNdb, LibraryThing for the books domain IMDB, IVA (Internet Video Archive) for the film domain We are interested in integrating: Web services wrapping accesses to databases

Data integration Query Mediator Dynamically computes the Web calls that answer the query RDF Warehouse The local base is enriched with the results of the Web calls 74 74