Introduction aux. services web 2 / 2



Documents pareils
4. SERVICES WEB REST 46

1 Introduction. 2 Les contrats. 3 Les bindings. 4 Hébergement. 5 Consommation. 6 WCF et remoting. 7 Sessions, instantiations et concurrence

Hébergement et configuration de services WCF. Version 1.0

Architecture Orientée Service, JSON et API REST

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

Les Architectures Orientées Services (SOA)

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

Mise en œuvre des serveurs d application

Applications et Services WEB: Architecture REST

Introduction aux «Services Web»

Programmation Web. Introduction

ArcGIS 10.1 for Server

Introduction à Microsoft InfoPath 2010

Le Web de Données Dan VODISLAV Université de Cergy-Pontoise Master Informatique M2 Plan

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Responsable du cours : Héla Hachicha. Année Universitaire :

Architectures Web Services RESTful

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

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Programmation Web Avancée Introduction aux services Web

Le serveur web Windows Home Server 2011

Les Services Web. Jean-Pierre BORG EFORT

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Architectures web/bases de données

Urbanisme du Système d Information et EAI

EXTENSION de Microsoft Dynamics CRM Réf FR 80452

Analyse des techniques et des standards pour l interopérabilité entre plateformes

Bien architecturer une application REST

Petite définition : Présentation :

Compte Rendu d intégration d application

BizTalk Server Principales fonctions

SharePoint 2013 Développez en.net pour personnaliser SharePoint (Apps, REST, CSOM et Azure)

Infrastructure de Données Spatiales

CORBA. (Common Request Broker Architecture)

les techniques d'extraction, les formulaires et intégration dans un site WEB

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

L3 informatique TP n o 2 : Les applications réseau

Services web géographiques, état de l art et perspectives

Conférence SIG 2011 Versailles 5-6 Octobre 2011 Atelier Technique ArcGIS for Server en 10.1

NFP111 Systèmes et Applications Réparties

Environnements de développement (intégrés)

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

SPT Description du cours NORAMSOFT SPT2013. SharePoint 2013 pour développeurs

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

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

Nouveautés ArcGIS 10.1 for Server

Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG

Les nouvelles architectures des SI : Etat de l Art

Architectures d'intégration de données

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI

ArcGIS 10 Christophe Tourret Gaëtan Lavenu

Architectures n-tiers Intergiciels à objets et services web

Armand PY-PATINEC 2010

Cloud. Définition? 08/11/2012. James Urquhart The Wisdom of Clouds

La démarche SOA et l interopérabilité applicative

Single Sign On. Nicolas Dewaele. Single Sign On. Page 1. et Web SSO

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures

Urbanisation des Systèmes d'information

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

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

Formation en Logiciels Libres. Fiche d inscription

Catalogue des formations Edition 2015

Systèmes d'informations historique et mutations

arcopole Studio Annexe 7 Architectures Site du programme arcopole :

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

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

Configuration Matérielle et Logicielle AGORA V2

ABB personnalise son service client avec la plate-forme en ligne One ABB on the Web Jan Anders Solvik, Håkan Wärdell, Nathan Becker

Exia.Cesi Année Des bus de terrains, aux bus logiciels : Les «Entreprise Services Bus» (ESB) THESE. Écrit par :

Introduction à. Oracle Application Express

Programmation Web. Madalina Croitoru IUT Montpellier

Windows Azure Platform Développez, déployez et administrez pour le Cloud Microsoft

Hébergement de sites Web

Messagerie asynchrone et Services Web

Un serveur web léger et ouvert

Intégration de systèmes

Le Cloud Computing et le SI : Offre et différentiateurs Microsoft

Développer avec les technologies ESRI. ESRI Developer Network (EDN) Gaëtan LAVENU ESRI France Jérémie MAJEROWICZ ESRI France

CS REMOTE CARE - WEBDAV

Tour d horizon des différents SSO disponibles

SOAP Concepts Application à Glassfish

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

Mise à jour : Octobre 2011

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014

Développement d'un logiciel VoIP BlackBerry

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

Internet Information Services (versions 7 et 7.5) Installation, configuration et maintenance du serveur Web de Microsoft

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

MailStore Server 7 Caractéristiques techniques

FILIÈRE TRAVAIL COLLABORATIF

NatRcs Ce document présente la liste des nouvelles fonctionnalités de la 7.00, disponible à partir de Mars 2011.

Module BD et sites WEB

Groupe Eyrolles, 2004 ISBN :

Exploration des technologies web pour créer une interaction entre Mahara et les plateformes professionnelles et sociales

Transcription:

Introduction aux services web 2 / 2 1

Calendrier 2 x CM A 107 mercredi 7 janvier 2015, 08 h 00 10 h 00 : introduction sur la théorie des services web mercredi 28 janvier 2015, 08 h 00 10 h 00 : introduction aux services web Microsoft 2 x TD A 107 mercredi 14 janvier 2015, 08 h 00 10 h 00 : préparation du TP 1 et du TP 2 mercredi 4 février 2015, 08 h 00 10 h 00 : préparation du TP 2 et du TP 3 3 x TP GR 18 (effectif réparti en deux groupes) jeudi 22 janvier 2015 : consommation de services web existants 08 h 00 10 h 00 : groupe B 10 h 00 12 h 00 : groupe A jeudi 12 février 2015 : création de services web Microsoft (1 / 2) 08 h 00 10 h 00 : groupe A 10 h 00 12 h 00 : groupe B jeudi 19 février 2015 : création de services web Microsoft (2 / 2) 08 h 00 10 h 00 : groupe B 10 h 00 12 h 00 : groupe A

Plan 1 er CM Vision théorique des services web 2 e CM Vision pratique des services web selon les outils proposés par Microsoft

Les standards WS-*

Les standards WS-* Dès la fin de la spécification de WSDL/SOAP/UDDI, leurs initiateurs avaient bien conscience de leur limites De par la volonté de consensus, la norme englobe finalement peu de choses (pas de sécurité, pas de souscriptions ) Tous les acteurs ont donc depuis le début des années 2000 ajouté des spécifications, dont certaines sont devenues des recommandations du W3C Lorsque vous entendez parler de web services WS-*, on parle donc de web services plus évolués que du simple WSDL/SOAP/UDDI

Les standards WS-* WS-Addressing Rajouter des informations de routage sur des messages SOAP Dans WSDL de base, la réponse à l appel se fait sur le channel HTTP déjà ouvert. Avec WS-A, il est possible de répondre sur un autre. (Asynchronicité) WS-Discovery Réaliser des multicasts sur un réseau pour découvrir les web services présents Exemple d implémentation dans Windows Vista/7 avec PNM (People Near Me)

Les standards WS-* WS-Management Normer l utilisation de SOAP pour des tâches d administration de serveurs, de logiciels Exemple d implémentation dans WinRM WS-Eventing Proposer une norme de souscription à un Web Service WS-Policy Définir des règles dans le WSDL en ce qui concerne la qualité de service, les certificats

Les standards WS-* WS-Transaction Ajouter à SOAP des informations nécessaires à l ouverture de transactions (ACID) WS-ReliableMessaging Définir les fonctionnalités nécessaires à SOAP et WSDL pour réaliser des solutions de messaging avec des web services

Les standards WS-* WS-Security Normer le cryptage, la signature de messages SOAP (hors utilisation de HTTPS, déjà supporté en natif) et l ajout de tokens de sécurité (Kerberos, SAML ) WS-Trust Normer le renouvellement des tokens de WS-Security et les services dédiés à cela WS-Federation Étendre l utilisation de WS-Security à une multitude de web services dans un environnement SOA Fourniture de contexte SSO

Les standards WS-* MTOM pour SOAP Message Transmission Optimization Mecanism est une optimisation de SOAP pour ne pas sérialiser en XML les données binaires éventuellement transmises La sérialisation texte d une donnée binaire est usuellement réalisée en Base64 Encoding, qui encode 3 octets en 4 caractères Base64 encode en effet 24 bits (3 octets) en les séparant en 4 blocs de 6 bits (64 valeurs décimales) et en leur affectant un caractère parmi {A-Za-z0-9+/}

Les standards WS-* Ces standards sont très nombreux, plus ou moins matures et peu supportés pour certains Liste non exhaustive : http://en.wikipedia.org/wiki/ws-* Heureusement une norme d interopérabilité a été établie pour déterminer lesquels de ces standards sont implémentés par les parties en présence

Interopérabilité Les niveaux d interopérabilité sont normés dans WS-I Basic Profile Une spécification du WS-I Consortium Il y en a eu historiquement 3 grandes versions 2006: WS-I Basic Profile 1.1 (SOAP 1.1, WSDL 1.1, UDDI 2.0) 2010: WS-I Basic Profile 1.2 (Standards WS-*: Ajout de MTOM, WS-Addressing ) 2010: WS-I Basic Profile 2.0 (Passage à SOAP 1.2 et UDDI 3) La 1.1 est encore la plus répandue à ce jour

Infrastructure Client/Serveur

Côté client Le client génère un stub ou classe proxy avec un outil à partir de WSDL Ce stub masque la complexité de deux parties Le sérialiseur/désérialiseur SOAP L encapsuleur de requêtes HTTP

En pratique en.net Pour utiliser un Web Service on ajoute une Web Reference dans Visual Studio, en fournissant l URL du WSDL. Cela génère un stub ou classe proxy, que l on peut appeler comme toute autre classe Elle transmettra les appels et retours SOAP de manière transparente

Côté serveur C est un peu plus complexe car si la partie sérialisation et encapsulation reste, il faut aussi un listener HTTP, et l implémentation du service Le retour est symétrique

En pratique en.net Dans la plupart des langages, développer un web service est ceci dit aisé Plus question de taper le WSDL et le SOAP à la main Depuis.NET 2.0 par exemple il suffit de déclarer une classe comme fille de WebService, et de déclarer les méthodes exposées comme [WebMethod] public class CalcService : System.Web.Services.WebService { } [WebMethod] public int Add(int x, int y) { } return x + y; Puis de déployer la librairie compilée et un fichier d appel (anciennement.asmx, puis.svc) dans un serveur web (IIS ou Cassini)

Démo / Rappel Web Services «Simples»

Windows Communication Foundation

La notion de contrat Objectifs Permet d exprimer sous la forme de contrats la coopération entre les fournisseurs et les utilisateurs de services Sépare l interface de l implantation des objets Masque les divers problèmes liés à l interopérabilité : Hétérogénéité Localisation Un contrat spécifie les types manipulés par un ensemble d applications réparties : Les types d objets (ou interfaces) Les types de données échangés entre les objets Le contrat : Isole les clients et fournisseurs de l infrastructure logicielle et matérielle Les met en relation à travers le bus On remarque une analogie à ce qui a pu être vu avec CORBA (IDL)

Windows Communication Foundation WCF a pour but d unifier le développement de services autour d un modèle unifié Un service dans WCF est défini par trois composants, désignés par les lettres A, B et C A comme Address l URL du service B comme Binding ou comment on communique avec le service (protocole ) C comme Contract ce qu expose le service

Windows Communication Foundation Ce principe sépare la notion de contrat de service (dont le principe est partagé par toutes les technologies) de son hébergement

Windows Communication Foundation Dans l ordre on commence déjà par définir le contrat Deux classes dans WCF, les ServiceContract et les DataContract Le service et ses données complexes On définit donc notre classe de données [DataContract] public class Etudiant { } [DataMember] public string Nom

Windows Communication Foundation Et notre contrat de service [ServiceContract] public interface IGestionEtudiantsService { [OperationContract] public List<Etudiant> ListerEtudiants(); } Qui doit être implémenté par une classe (interface) public class GestionEtudiantsImpl:IGestionEtudiantsService { } public List<Etudiant> ListerEtudiants() { }

Windows Communication Foundation Address et Binding sont spécifiés dans le fichier de configuration du service (app.config ou web.config) <system.servicemodel> <services> <service name="mynamespace.myservice"> <endpoint address="myservice" binding="basichttpbinding" contract="mynamespace.iservice" /> <host> <baseaddresses> <baseaddress baseaddress="http://localhost:8080/simple" /> </baseaddresses> </host> </service> </services> </system.servicemodel>

Windows Communication Foundation Les bindings peuvent être de différents types, pour couvrir les service abordés plus hauts HTTP TCP et Named Pipes MSMQ Chaque binding peut être configuré avec des bindingconfiguration pour s adapter à tous les scénarii ComNonTransactionalBinding pour les services COM par exemple

Bindings disponibles

Windows Communication Foundation Dès lors hébergement du service peut se réaliser: Dans une application de son choix (self hosted) dont une classe étend ServiceBase et définit OnStart() et OnStop() Dans Windows Activation Service (WAS) un service Windows dédié Dans les deux cas précédents, le nombre de protocoles est élevé (HTTP, TCP, Named Pipes ) et extensible Mais ce ne sont pas ceux qui nous intéressent

Windows Communication Foundation La dernière option (traditionnelle avant WCF) est l hébergement dans IIS (Internet Information Services) Le serveur Web de Microsoft Ce qui limite bien sûr au protocole HTTP Il suffit de déployer dans IIS la DLL de notre service, avec un fichier.svc qui comprend généralement une seule ligne: <% @ServiceHost language="c#" Service="MyNameSpace.MyService" %>

Windows Communication Foundation IIS permet d utiliser les différents bindings HTTP disponibles BasicHttpBinding : le plus répandu, Basic Profile 1.1, recommandé pour les scénarii d interopérabilité WsHttpBinding : prise en charge des technologies WS-* (transactionnel, messaging avec A/R, WS-Addressing ) WsDualHttpBinding : idem qu au dessus avec ACK WsFederationHttpBinding : sécurité fédérée entre différents services (WS-Federation) BasicHttpBinding est de loin le plus utilisé Le choix du type de binding dépend de l utilisation faite et des systèmes concernés:

Personnalisation des Services Microsoft Démo

Publication sur IIS depuis VS20xx Procédure : Se rendre dans l outil de gestion de sites web IIS Créer un nouveau dossier virtuel Ouvrir le service web dans Visual Studio Dans les paramètres du projet, onglet serveur web : choisir IIS local au lieu de IIS Express Préciser dans l URL cible le dossier virtuel créé dans IIS Appuyer sur <F5>

Personnalisation du Service IIS Démo

Exemple de Client JAVA

Création d un client Java Procédure de création Créer un nouveau projet Java avec l EDI NetBeans, par exemple Créer un nouveau fichier de la catégorie Web Services / Web Service Client Préciser la localisation du fichier WSDL

Création d un client Java Procédure de création Interface d exploitation sous NetBeans

Exemple de Client JAVA Démo

Services Web Microsoft Avantages Intégrité, cohérence et homogénéité (qualité) Productivité assurée Interopérabilité assurée de facto Inconvénients (leitmotiv) Outils commerciaux Environnement «fermé» même si des efforts d ouverture sont en cours Outils spécifiques nécessaires pour la création et le déploiement même si des efforts d ouverture sont également en cours

Nouvelles architectures (1 / 3) REpresentational State Transfer (REST) C est un «style d architecture» orienté ressource, pas une technologie! Repose sur le protocole standard HTTP Ressource : Décrite par une URI (Uniform Resource Identifier) originale Identifiée par un identificateur de ressource Support natif de la lecture par GET, l écriture par POST, la mise à jour par PUT et la suppression par DELETE Équivalent Microsoft : Production également possible par WCF, le.net Framework 4 et Microsoft Unified Communications Web API (utilisable conjointement de Microsoft LINQ, Language INtegrated Query) Disponible en pré-packagé sur Microsoft Azure Sécurité assurée par OAuth

Nouvelles architectures (2 / 3) REpresentational State Transfer (REST) Avantages Facile à mettre en œuvre d une façon générale : aucun outil nécessaire «Léger» : pas de contenu verbeux en XML (par rapport à l utilisation de WSDL et SOAP) => moins consommateur de bande passante Contenus lisibles (compréhensibles) à la fois par les êtres humains et les machines => consommation simplifiée Support du cache Sécurité assurée par HTTP Inconvénients : Création du service «plus complexe» de par le fait que l on n utilise pas d outils «générateurs automatiques» côté serveur Notion de contrat non supportée (à gérer soit-même) Sécurité assurée par HTTP Résumé : «-1» pour SOAP côté client : «difficile» à consommer «-1» pour REST côté serveur : «difficile» à implémenter

Nouvelles architectures (3 / 3) Services Web Sémantiques Basés sur les outils du web sémantique Utilisation de ressources décrites au format RDF (Resource Description Framework), OWL (Web Ontology Language) Stockage des données sous forme de «triplets» Sujet ----- Prédicat ----- Objet/Valeur Opérations sur les ressources exposées : création, modification suppression Traitement sur les données : SPARQL (SPARQL Protocol and RDF Query Language)

Exemples de services web Côté serveur : Application serveur Exposition du service : Microsoft Internet Information Services (IIS), Apache HTTPD, Apache Tomcat, Sun/Oracle GlassFish Langage : C#, C/C++, ASP, JAVA, PHP, Python, XML, JSON, Côté client : Application client ou serveur, web ou native Langage : C#, C/C++, ASP, JAVA, PHP, Python, HTML/JavaScript, Applications et technologies complètement interopérables si les spécifications «service web» sont respectées

Exemples de services web Sources de données INSPIRE (Application CArGOS) Infrastructure d'information géographique dans la Communauté européenne Consultation de données publiques en Europe Bases de données interopérables via une API web (GetCapabilities, GetMap,...) Données géoréférencées Différents protocoles d échange : Description des données et services : CSW (Catalog Service for the Web) Consultation et affichage de cartes : Web Map Service (WMS) Web Map Tile Service (WMTS) Téléchargement de données Raster : Web Coverage Service (WMS) Vectorielles : Web Feature Service (WFS) Données publiques : http://cargos.huma-num.fr/

Exemples de services web Météo France Plusieurs API web accessibles avec ou sans redevance (selon la nature des services) Utilisation du service au moyen d une clef Échange de données : Animations satellites, Modèles et données de prévision Observations radar, satellite Bulletins climatologiques, à différentes fréquences Ensemble de fonctionnalités permettant une simplification des tâches de gestion côté vendeur Données publiques : https://donneespubliques.meteofrance.fr/

Exemples de services web Amazon Web Services (AWS) Contrat client établi selon les options choisies Plusieurs API web gratuites ou payantes Utilisation du service au moyen d une clef Échange de données : Produits : catalogues, prix, description, stocks Marketting : inventaires, commandes, paiements Ensemble de fonctionnalités permettant une simplification des tâches de gestion côté vendeur Plus de détails : http://aws.amazon.com/fr/

Conclusion

Conclusion Les web services sont un indéniable succès depuis 10 ans et leur facilité d utilisation croît au fil du temps Les normes pour définir les bases d une véritable architecture SOA à base de web services sont en constante évolution Microsoft a choisi d unifier tous ses middlewares orientés service dans l unique Windows Communication Foundation (WCF)

Conclusion Ce que l on retient de l ensemble Cours/TD/TP Architectures des services web Création de services web avec les outils Microsoft et la suite Visual Studio avec ou sans WCF Publication de services web au sein du serveur web intégré à Visual Studio ou IIS local Consommation de services web depuis un client Windows (ou web) en C# Consommation de services web depuis des applications écrites dans d autres langages (JAVA pour l exemple)