UDDI (Universal Description Discovery and Integration): Applications réparties

Documents pareils
Méthodes et Langages du Commerce Electronique

Programmation Web Avancée Introduction aux services Web

Introduction aux «Services Web»

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Le cadre des Web Services Partie 1 : Introduction

Sécurité des Web Services (SOAP vs REST)

Les Services Web. Jean-Pierre BORG EFORT

Les Web Services. Rapport de TE. Étudiants Cyrielle Lablanche Florens Seine Sébastien Gastaud. Encadrant Hervé Chang

Sommaire. Introduction La technologie ebxml EDI conventionnels versus ebxml Web Services et ebxml Acteurs de l ebxml Conclusion

Intégration d'applications à "gros grain" Unité d'intégration : le "service" (interface + contrat)

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

4. SERVICES WEB REST 46

Urbanisation des SI Conduite du changement IT 20/03/09. Patrick CHAMBET

Systèmes d'informations historique et mutations

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. A308, Université de Paris 13

L intégration d applications unifiée par les Services Web et XML Réconcilier J2EE.NET EIS et mainframes

Lieberman Software Corporation

Business Process Execution Language

SOAP Concepts Application à Glassfish

Problématiques de recherche. Figure Research Agenda for service-oriented computing

Prise en compte des ressources dans les composants logiciels parallèles

DenyAll Protect. Sécurité & accélération. Parefeux pour applications et services Web. de vos applications.

Vulnérabilités et sécurisation des applications Web

DenyAll Detect. Documentation technique 27/07/2015

Urbanisme du Système d Information et EAI

Approche Contract First

République Algérienne Démocratique et Populaire Université Abou Bakr Belkaid Tlemcen Faculté des Sciences Département d Informatique

Table des matières. 1. Installation de VMware ESXI Pré-requis Installation... 3

Web Application Models

WiFi Security Camera Quick Start Guide. Guide de départ rapide Caméra de surveillance Wi-Fi (P5)

Systèmes répartis. Fabrice Rossi Université Paris-IX Dauphine. Systèmes répartis p.1/49

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Introduction aux. services web 2 / 2

Les solutions de paiement CyberMUT (Crédit Mutuel) et CIC. Qui contacter pour commencer la mise en place d une configuration de test?

Architecture Orientée Service, JSON et API REST

Application Web et J2EE

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant

Module BD et sites WEB

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Tutoriel de formation SurveyMonkey

Gestion des Identités : 5 règles d'or. Patrice Kiotsekian Directeur Evidian France

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE

ZERO CONF. Exposé option Réseaux et Interconnexion d'ordinateurs P.BLEDU FA 08 C.PERROTIN TTN 08. p1/14

Hébergement de sites Web

Architectures Web Services RESTful

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

25 septembre Migration des accès au Registre national en protocole X.25 vers le protocole TCP/IP, pour les utilisateurs du Registre national

L architecture des services Web

Messagerie asynchrone et Services Web

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

Utiliser Améliorer Prêcher. Introduction à LDAP

1. La plate-forme LAMP

MANUEL DES CAMERAS IP

Les Architectures Orientées Services (SOA)

Prérequis réseau constructeurs

OpenPaaS Le réseau social d'entreprise

Sélection de sérvices Web à base de colonies de fourmis MÉMOIRE DE FIN D'ÉTUDE. Melle CHEMIDI Zoulikha. Jury

Les nouvelles architectures des SI : Etat de l Art

Le MSMQ. Version 1.0. Pierre-Franck Chauvet

Web Services : Beyond the peer-to-peer architecture

Architecture SOA Un Système d'information agile au service des entreprises et administrations

La VoIP: Les protocoles SIP, SCCP et H323. Jonathan BRIFFAUT Alexandre MARTIN

RELEASE NOTES. Les nouveautés Desktop Manager 2.8

Architectures d'intégration de données

Outils de traitements de logs Apache

Composition semi-automatique de Services Web

Supplément de renseignements : Examens d applications et pare-feux d applications web clarifiés Normes : Normes en matière de sécurité des données de

Accès aux ressources informatiques de l ENSEEIHT à distance

Hébergement et configuration de services WCF. Version 1.0

imvision System Manager

Serveur Appliance IPAM et Services Réseaux

Urbanisation des Systèmes d'information

Développement d'un logiciel VoIP BlackBerry

Gestion des identités Christian-Pierre Belin

Approche Hybride de la Diffusion OTT. Julien Privé / Senior Solutions Engineer

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Configurer le Serveur avec une adresse IP Statique (INTERFACE :FastEthernet) : et un masque

OPC Factory Server- Réglage des paramètres de communication

(1) Network Camera

CAS IT-Interceptor. Formation «Certificate of Advanced Studies»

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion

VXPERT SYSTEMES. CITRIX NETSCALER 10.1 et SMS PASSCODE 6.2. Guide d installation et de configuration pour Xenapp 6.5 avec SMS PASSCODE 6.

Connaître la version de SharePoint installée

Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1

0LFURVRIW&RUSRUDWLRQ7RXVGURLWVUpVHUYpV /HV LQIRUPDWLRQV FRQWHQXHV GDQV FH GRFXPHQW UHIOqWHQW OH SRLQW GH YXH GH OD VRFLpWp0LFURVRIWVXU OHVVXMHWV

Manuel d implémentation des Web Services Sous Axis1 et Axis2/Tomcat/linux. Par Pr Bouabid EL OUAHIDI

INSTALLATION DEBIAN. Installation par le réseau

L annuaire et le Service DNS

Transcription:

UDDI (Universal Description Discovery and Integration): Applications réparties D après les cours de : Jenny Benois-Pineau, LABRI Didier Donsez, LIG Nicolas Ferry Stéphane Lavirotte Dino Lopez-Pacheco 01/05/2010 1

Un Service Web, c est quoi? Caractéristiques Réutilisable Indépendamment de la plate-forme (UNIX, Windows, ) du langage pour l implémentation (VB, C#, Java ) la plate-forme de développement sous-jacente (.NET, J2EE, Axis ) HTML Serveur Présentation XML XML Web services.net Java, c++ XML Web services J2EE 01/05/2010 2 XML

Cinématique générale white green yellow UDDI WSDL WSDL Publier rechercher WSDL Service Web Métier Appli cliente Stub Bind Serveur Web Serveur d appli Client 01/05/2010 3

Pourquoi UDDI? SOAP/WSDL permettent d invoquer des services Web mais pas de les rechercher UDDI ne répond pas aux mêmes besoins que les LDAP qui références aussi bien personnes, objets que dispositifs matériels Les annuaires UDDI sont orientés B2B On y trouve des informations techniques (WSDL) Des informations sur l entreprise 01/05/2010 4

Introduction Le standard UDDI a été proposé par Microsoft, IBM et Ariba en septembre 2000. Trois annuaires majeurs: Le premier est hébergé par Microsoft. Le second par IBM. Le troisième (plus récent) par HP. UDDI est une spécification qui décrit comment publier et découvrir des services Web sur un réseau Objectif : Faire un annuaire mondial d entreprise et de leurs services. Deux types d actions possibles sur un annuaire UDDI Publier son service Rechercher un service Grammaire XML (schéma XML) selon la spécification Soumission/interrogation basées sur SOAP Mais aussi possible en XML-RPC ou Corba 01/05/2010 5

UDDI architecture De nombreux nœuds dans un UBR ( UDDI Business Registry) Donne l impression d accéder à un système unique mais en réalité composé d un ensemble de nœuds Les données sont synchronisées par réplication toutes les 24h IBM Client Réplication Réplication Ariba Réplication Microsoft UBR On peut mettre en place son propre annuaire privé. 01/05/2010 6

Modèle UDDI 01/05/2010 7

Le modèle UDDI Le modèle UDDI comporte 5 structures de données BusinessEntity : Ensemble d informations sur l entreprise qui expose le service BusinessService : Ensemble d informations sur les services exposés par l entreprise BindingTemplate : Ensemble d informations sur le lieu d hébergement du service tmodel : Ensemble d informations sur le mode d accès au service (WSDL!) publisherassertion : Ensemble d informations contractuelles pour accéder au service 01/05/2010 8

Exemple Schéma BusinessEntity <element name="businessentity" type="uddi:businessentity" /> <complextype name="businessentity"> <sequence> BusinessEntity <element ref="uddi:discoveryurls" minoccurs="0" /> <element ref="uddi:name" uddi:name maxoccurs="unbounded" /> uddi:description <element ref="uddi:description" minoccurs="0" maxoccurs="unbounded" /> uddi:contacts <element ref="uddi:contacts" minoccurs="0" /> uddi:businessservices <element ref="uddi:businessservices" minoccurs="0" /> uddi:identifierbag <element ref="uddi:identifierbag" minoccurs="0" /> uddi:categorybag <element ref="uddi:categorybag" minoccurs="0" /> </sequence> businesskey <attribute name="businesskey" authorizedname type="uddi:businesskey" use="required" /> <attribute name="operator" type="string" use="optional" /> <attribute name="authorizedname" type="string" use="optional" /> * </complextype> 01/05/2010 9

Exemple Schéma BusinessService <element name="businessservice" type="uddi:businessservice" /> <complextype name="businessservice"> <sequence> BusinessService <element ref="uddi:name" minoccurs="0" maxoccurs="unbounded" /> uddi:name <element ref="uddi:description" minoccurs="0" maxoccurs="unbounded" uddi:description /> uddi:bindingtemplate <element ref="uddi:bindingtemplates" uddi:categorybag minoccurs="0" /> <element ref="uddi:categorybag" minoccurs="0" /> </sequence> servicekey <attribute name="servicekey" businesskey type="uddi:servicekey" use="required" /> <attribute name="businesskey" type="uddi:businesskey" use="optional" /> </complextype> 01/05/2010 10

Exemple Schéma BindingTemplate <element name="bindingtemplate" type="uddi:bindingtemplate" /> <complextype name="bindingtemplate"> <sequence> <element ref="uddi:description" BindingTemplate minoccurs="0" maxoccurs="unbounded" /> <choice> uddi:accesspoint <element ref="uddi:accesspoint" uddi:hostingredirector /> uddi:tmodelinstancedetails tmodel <element ref="uddi:hostingredirector" /> </choice> servicekey <element ref="uddi:tmodelinstancedetails" businesskey /> </sequence> <attribute name="servicekey" type="uddi:servicekey" use="optional" /> <attribute name="bindingkey" type="uddi:bindingkey" use="required" /> </complextype> 01/05/2010 11

WSDL et tmodel tmodel de Hertz (http://www.tutorialspoint.com/uddi/uddi_with_wsdl.htm) <tmodel authorizedname="..." operator="..." tmodelkey="..."> <name>hertzreserveservice</name> <description xml:lang="en"> WSDL description of the Hertz reservation service interface </description> <overviewdoc> <description xml:lang="en"> WSDL source document. </description> <overviewurl> http://mach3.ebphost.net/wsdl/hertz_reserve.wsdl </overviewurl> </overviewdoc> <categorybag> <keyedreference tmodelkey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4" keyname="uddi-org:types" keyvalue="wsdlspec"/> </categorybag> </tmodel> 01/05/2010 12

Recherche de Web services Les annuaires UDDI ont pour but de localiser des services Web hébergés dans le monde entier Différents types de recherches: Pages blanches (BusinessEntity) On cherche un service par contact, nom et adresse Pages jaunes (BusinessService) On recherche un service par sujet, par domaine Pages vertes (BindingTemplate) On recherche un service en fonction de ces caractéristiques techniques Les opérateurs UDDI vous garantissent la sécurité et l intégrité des services Web contenus dans un annuaire 01/05/2010 13

Primitives de recherche find_binding : pour obtenir la liaison du service considéré find_business : pour obtenir l identité de l entreprise qui expose le service find_relatedbusiness : pour obtenir les entreprises en relations avec celle qui publie le service find_service : pour obtenir l interface du service find_tmodel : récupère le modèle de données associées Pour plus de détails get_businessdetail get_servicedetail get_bindingdetail get_tmodeldetail 01/05/2010 14

Publication de service Web La publication d un service Web requiert que l entreprise s authentifie auprès de l opérateur UDDI Il faut fournir les données nécessaire à l exploitation du service Web (IP, Nom de domaine, modalités d utilisation ) 01/05/2010 15

Primitives de publication Enregistrer save_business save_service save_binding save_tmodel Sécurité get_authtoken discard_authtoken Détruire delete_business delete_service delete_binding delete_tmodel 01/05/2010 16

UDDI : caractéristiques importantes Neutre en terme de protocole comme tout registre, il peut y avoir des pointeurs sur n importe quoi (email, web page ) Possibilité de faire des recherches par domaine d activité, service, Web Service, binding Pas de QoS Nécessite un modérateur Risques d entrées erronées, de doublons, de fraude Nœuds privés et publics autorisés 01/05/2010 17

Finding a Business using Microsoft.Uddi; using Microsoft.Uddi.Api; try { // Configure the connection for the UDDI node that is to be accessed Inquire.Url = "http://uddi.rte.microsoft.com/inquire"; // Create an object to find a business FindBusiness fb = new FindBusiness(); fb.names.add("microsoft"); // Send the prepared find business request BusinessList bizlist = fb.send(); Console.WriteLine("Businesses found=" + bizlist.businessinfos.count.tostring()); } catch (UddiException e) { Console.WriteLine("UDDI exception: " + e.number + " " + e.message); }catch(exception e){ Console.WriteLine("General exception: " + e.message);} 01/05/2010 18

Saving a business try { // Configure for the site that are going to access Publish.Url = "https://uddi.rte.microsoft.com/publish"; Publish.User = " *** insert your user name *** "; Publish.Password = " *** insert your password *** "; // Create an object to save a business SaveBusiness sb = new SaveBusiness(); // Add a business entity and allocate a name sb.businessentities.add(); sb.businessentities[0].names.add(" *** insert your business name *** "); // Send the prepared save business request BusinessDetail savedb = sb.send(); // Interpret the returned business detail to examine the allocated business key Console.WriteLine("Business: " + savedb.businessentities[0].names[0].text); Console.WriteLine(" Allocated key: " + savedb.businessentities[0].businesskey); } catch (UddiException e) { Console.WriteLine("UDDI exception: " + e.number + " " + e.message);} catch (Exception e) { Console.WriteLine("General exception: " + e.message);} 01/05/2010 19

Deleting a business try { // Configure for the site that are going to access Publish.Url = "https://uddi.rte.microsoft.com/publish"; Publish.User = " *** insert your user name *** "; Publish.Password = " *** insert your password *** "; // Provide the key to the business you want to delete // e.g. string bizkey = "86673abe 3ca1 4147 893c 83ac0d941c76"; string bizkey = " *** insert the business key *** "; DeleteBusiness db = new DeleteBusiness(); db.businesskeys.add(bizkey); DispositionReport drep = db.send(); Console.WriteLine("Disposition report: " + drep.results[0].errinfo.errcode.tostring()); } catch (UddiException e) { Console.WriteLine("UDDI exception: " + e.number + " " + e.message);} catch (Exception e) { Console.WriteLine("General exception: " + e.message);} 01/05/2010 20

WS Inspection IBM et microsoft ont proposé une autre norme plus simple: WS inspection Mêmes objectifs que UDDI, les services sont aussi décrits en WSDL WSIL représente une entité spécifique, ses services, ses contacts, est fourni par celui qui le représente On considère que l on connait déjà le fournisseur donc pas d équivalent à businessentity 01/05/2010 21

WS-Discovery Sans annuaire! Multicast requêtes pouvant porter sur le nom Service Service Client Service Quand un service rejoint le réseau il envoi également un message l annonçant (moins de polling) 01/05/2010 22

WS-Discovery 01/05/2010 23

Web services pour dispositifs Une approche sans annuaire! 01/05/2010 24

Motivations Faire travailler des dispositifs les uns avec les autres Limitation à de l envoi de données sur le réseau Conserver le code de l application «privé» Etre agnostique par rapport au réseau, à l OS, au langage de programmation Mise à jour de l implémentation sans affecter l interopérabilité Augmenter les performances Augmenter les possibilités Etre d accord sur le format et le sens des données Choix de protocoles éprouvés (W3C, IETF) Définition des Dispositifs et Services par un Forum 01/05/2010 25

Introduction Le forum UPnP une initiative industrielle Conçue pour permettre la connectivité simple et robuste entre dispositifs de différents fournisseurs L'architecture d'upnp permet la découverte puis le contrôle de dispositifs sur un réseau, indépendant Des OS Des langages de programmation, Des réseaux physiques et locaux. La technologie d'upnp s appuie pour cela sur des normes existantes IP, UDP et TCP, HTTP, XML et SOAP http://www.upnp.org/ 01/05/2010 26

Architecture Services : plus petite entité, propose des actions Device : entité se composant de services et d autres device (un root device inclus des embedded device) (Serveur) Control point : permet de découvrir et de contrôler des devices. (Client) Un dispositif peut être control point et device Control Point LAN Device Service Internet Device Service LAN Control Point Service 01/05/2010 27

Spécificités Recherche et Découverte distribuée Les entités logicielles se découvrent dans leurs environnement immédiat. Communication événementielle Recherche de services et publication contract Service producteur Souscription Notifications événementielles client Aujourd hui UPnP Demain DPWS (Device Profile For Web Services) 01/05/2010 28

La pile UPnP 1. Adressing : acquisition d une adresse ip dans le réseau (Auto-IP si pas de DHCP) 2. Discovery : mise en relation des entités du réseau avec SSDP. Cette phase est utilisée par les control points ainsi que les device pour s identifier sur un réseau puis pour confirmer leurs présences. 3. Description : phase visant à fournir aux points de contrôles des informations décrivant les devices, services. Cette description est écrite en XML. 4. Control : permet au point de contrôle d envoyer des commandes aux devices 5. Eventing : informer les points de contrôle des changements d état. 6. Presentation : un device peut fournir une URL de présentation des devices. 01/05/2010 29

Conclusion UDDI et UPnP 01/05/2010 30

Actuellement white green yellow UDDI WSDL WSDL Publier rechercher WSDL Service Web Métier Appli cliente Stub Bind Serveur Web Serveur d appli Client 01/05/2010 31

On s oriente de plus en plus vers Multicast requêtes pouvant porter sur le nom Service Service Client Service Quand un service rejoint le réseau il envoi également un message l annonçant (moins de polling) 01/05/2010 32

Conclusion Générale Web services 01/05/2010 33

Les Services Web La 3ème génération du Web Technologies Standards du Web SOAP WSDL Technologies non standardisées UDDI WSDD, WSFL, ASMX, 01/05/2010 34

Un Service Web, c est quoi? Caractéristiques Réutilisable Indépendamment de la plate-forme (UNIX, Windows, ) du langage pour l implémentation (VB, C#, Java ) la plate-forme de développement sous-jacente (.NET, J2EE, Axis ) HTML Serveur Présentation XML XML Web services.net Java, c++ XML Web services J2EE 01/05/2010 35 XML

Ils permettent Les Services Web permettent d interconnecter : Différentes entreprises Différents matériels Différentes applications Différents clients Remplacer les outils actuels (RPC, DCOM, CORBA, RMI) par une approche entièrement ouverte et interopérable, basée sur la généralisation des serveurs Web avec scripts CGI. Faire interagir des composants hétérogènes, distants, et indépendants avec un protocole standard (SOAP). Attention on arrive vite au plat de spaghettis avec des services interconnectés partout!! Réponses : SOA et orchestrations 01/05/2010 36

Références Cours UDDI Didier Donsez http://membres-liglab.imag.fr/donsez/cours/wsdluddi.pdf Spécification WS-Discovery http://specs.xmlsoap.org/ws/2005/04/discovery/wsdiscovery.pdf Code http://www.informit.com/articles/article.aspx?p=101150&s eqnum=4 Cours UPnP Didier Donsez http://membresliglab.imag.fr/donsez/cours/upnposgi/tutorial.htm Cours UPnP Stéphane Lavirotte/Gaetan Rey/Jean Yves Tigli http://kistren.polytech.unice.fr/cours/iam01/cours%20upn P.pdf http://www.tutorialspoint.com/uddi/uddi_with_wsdl.htm 01/05/2010 37