Module WI4 : Web Services et Mise en oeuvre avec WCF .Net


Synthèse des retours et évolution du cours prévue en 2017-2018

retours 2017

EVOLUTIONS PREVUES EN 2017

Contenu

Organisation

l'Objectif étant de donner un grand nombre de note avec des retours réguliers.

VOTRE AVIS sur le Cours et l'Utilisation du Microsoft Cloud Azure NOUS INTERESSE

Veuillez remplir ce questionnaire en ligne et l'envoyer

REMPLIR CE FORMULAIRE


Semaine 1 :

mise en place et manipulation de votre environnement de travail

ATTENTION ATTENTION à la synchronisation de OneDrive ! Quelques consignes et configurations à faire ....

Rappel SI3 du Web au Web Services

Autres références :

Cours HTTP

Les variables d'environnement et les Cgi-Bin

EXEMPLES de cgi-bin


Semaine 2 :

Cours REST, ROA, et Service Web RESTFul

Présentation Cours REST, ROA, et Service Web RESTFul sous WCF

TD WS-REST C# WCF . Net (2h)

TD Introduction WS-REST et client sous WCF .Net en C#

TD Serveur WS-REST sous WCF .Net en C#

Correction TD2.a

Correction du client aux Web Service du velib parisien


Semaine 3 :

Cours SOA et Service Web WS-SOAP

Présentation Cours SOA et Service Web WS-SOAP

TD WS-SOAP C# WCF . Net (2h)

TD Introduction WS-SOAP sous WCF .Net en C#


Semaine 4 :

Cours / TD MetaData Exchange et Langages de Description de Service

Cours Langage de Description de Services, ex. WSDL

TD MetaData Exchange (wSDL pour WS-SOAP) sous WCF- Windows Communication Foundation


Semaine 5 :

Cours / Modèle ABC de WCF

Cours Modèle ABC de WCF

TD Clients wsdl, clients Google et Chaine de services Web


Semaine 6 :

Cours de Synthèse

Synthèse et TD à rendre

Sujet

L'objectif de ce sujet est d'exploiter pleinement WCF .Net, tant pour des configurations standards comme WS-SOAP et WS-REST mais aussi dans les multiples “bindings” de Services, au-delà du Web d'ailleurs. Le TD à rendre porte sur plusieurs versions basées sur une approche incrémentale. Il est ambitieux. En faire qu'une partie permettra donc d'obtenir une note satisfaisante dans la mesure où le rendu est de qualité.

Chaque client de test sera implémenté dans un projet Win32 Console ou un plus :

Question 1: Version 1.0, optimisation de l'utilisation des Velibs de la ville de Paris

Les approches SOA et en particulier WSOA (Web Service oriented Architecture) sont principalement adaptées aux développements d'applications entre différents acteurs logiciels (en général des fournisseurs de services logiciels distincts). Nous avons vu dans les TDs précédents comment accéder à différents services avec des technologies différentes.

Nous allons donc utiliser les web services fournis sur la gestion des Velib de Paris, ainsi que des web services logiciels de planification de déplacement comme Google Map (vu en TD), Waze ou OpenStreetMap.

Il s'agit alors de développer un service logiciel de type Web Service SOAP qui planifiera le meilleur trajet piéton + vélo Vélib en fonction de la position de départ et d'arrivée de l'usager et de la disponibilité des vélos dans les stations. Son interface est simple. Elle fournit un trajet à suivre (sous forme textuelle ou graphique, comme indiqué ci-dessus) et indique le trajet à suivre pour atteindre la station de Vélib la plus proche,

Question 2 sur la Tarification des services

A partir d'un modèle de coût (coûts associés à une requête sur chacun des services sont autant de variables dans votre équation, y compris le vôtre …) donner une évaluation des tarifs pour 1 utilisation de vos services.

Faite des évaluations avec les coûts que vous trouverez chez les fournisseurs pour une utilisation professionnelle de votre service.

Question 3 : Version 2.0 : multi-bindings Extranet / Intranet

WCF .Net offre la possibilité de choisir simplement les bindings qui conviennent le mieux à votre implémentation et déploiement de services. Ainsi avec le changement de quelques paramètres de configuration (Cf. fichier App.config) il est possible de choisir parmi une dizaine de configurations vues en cours. Dans la mesure où vous voulez distinguer le binding de la mise en œuvre de votre service entre votre intranet et extranet, configurez 2 point d'accès pour votre service :

Développez 2 clients de test en mode textuel ou graphique (Cf. ci-dessus).

Vous simulerez votre réseau intranet avec la plage d'adresses locales : 127.168.0.x (dont localhost) et votre extranet avec votre adresse IP publique (attention, la politique de sécurité de l'établissement ne vous permet d'accéder à votre adresse que depuis une machine du même réseau local. Utilisez donc la machine de votre binôme pour les tests)

RENDU de TD6

Ce TD se fera en groupes d'au plus 2 étudiants.

Ce TD est à rendre à l'enseignant responsable du cours sous la forme suivante :

  1. Vos solution (ex. la sous arborescence des fichiers et répertoires) doivent être regroupés dans un fichier <votre_nom>.zip, où <votre_nom> est votre nom (sans le prénom) tout en minuscules. Ce fichier et toute les arborescences qu'il contient doivent se “dézipper” dans un répertoire commun <votre_nom>.
  2. Un fichier README.txt doit être rédigé pour donner un minimum d'explications sur votre solution, son déploiement, sa mise en oeuvre. Fournir des scripts associés pour automatiser cette phase de déploiement et de test sera un plus.
  3. Le fichier .zip et le fichier README.doc (les calculs de la question 2 nécessitent un format pour les équations) doivent être attaché à un email à l'attention de tigli@unice.fr
  4. Votre email à l'attention de tigli@unice.fr doit comporter le sujet suivant : [TD6 APP REP SI4 2017] [<votre_nom>], où <votre_nom> est votre nom (sans le prénom) tout en minuscules.
  1. La date limite de rendu est le Dimanche 21/05/17 à minuit . Toute heure de retard sera pénalisée par un point de moins sur la note du TD.
  2. Tout rendu qui ne respectera pas l'intégralité des consignes ci-dessus ne sera pas pris en compte car potentiellement intraitable et perdu lors de la collecte et le rangement automatique de mails.

FAQ : Frequently Asked Questions

Peut-on avoir plusieurs contrats pour un service ?

Dans le cadre de la définition d'un service pour WCF, il est possible de définir plusieurs contrats. Un service est en fait défini par une liste de “endpoints”, eux mêmes composés des 3 éléments : une adresse, un “binding”, un contrat. Voici une illustration sur ce point

Peut-on recevoir plusieurs exceptions dans le cadre du porttype Requête/Réponse de WSDL ?

Dans le cadre d'un porttype de type requête - réponse, seuls deux messages sont envoyés. Le premier du client vers le serveur (<input>) et le second du serveur vers le client. Dans ce dernier cas il peut s'agit d'un message de retour “normal” (<output>) mais aussi d'une erreur qui déclenchera une exception (<fault>). Dans ce dernier cas il y aura autant de messages associés que d'exceptions possibles. C'est en ce sens que l'on peut distinguer différentes exceptions car différents messages.

Annexes du Cours


Références

Programming WCF services de Juval Lowy

Pro WCF 4 pratical microsoft SOA implementation de Nishith Pathak

Tutoriaux de base et avancés sur WCF

Pages officielles de Microsofts sur Windows Communication Foundation


API web Services Google

Utilisation des Services Web de Google appelés aussi APIs

Les APIs Google sont principalement des Services Web de type REST / GET. Les paramètres d'appel sont donc présents dans l'url.

Par exemple : https://maps.googleapis.com/maps/api/streetview?size=600x300&location=43.6419409,7.0306163&heading=151.78&pitch=-0.76&key=<XXXXXKEYXXXXX>

Pour chaque API vous devez créer un projet et obtenir une Clef <XXXXXKEYXXXXX>.

Ceci se déroule en 3 étapes :

  1. Activer Google Street View Image API
  2. Créer les clés appropriées
Liste des Services Web de Google

Les Services Web de Google se trouvent sur Google Developers

Selon l'APIs diverses explications vous seront fournies comme :


Outils logiciels pour les TDs de ce Cours

Visual Studio version Pro ( post VS 2012)
Les prochains travaux dirigés utiliseront l'IDE Visual Studio 2013 en version professionnelle.

Vous pouvez récupérer une version de Visual Studio Professional 2013.

Vous devez pour cela créer un compte sur https://www.dreamspark.com/Account/SignIn.aspx depuis une adresse de messagerie d'établissement scolaire (domaine). Pour nous, le compte est attaché à l'établissement POLYTECH'NICE (et non Polytech'Nice Sophia Antipolis).

Vous devez alors avoir accès à des téléchargements gratuits sur la page https://www.dreamspark.com/Student/Software-Catalog.aspx. Vous pourrez télécharger Visual Studio Professional 2013 depuis https://www.dreamspark.com/Product/Product.aspx?productid=72

Vérifiez bien que vous pouvez créer un projet du type : Projet > Visual C# > WCF

Si vous n'avez pas de projet type “WCF” c'est que vous n'avez pas installé de version “Pro”. ATTENTION car dans ce cas VOUS NE POURREZ PAS FAIRE LES TDS !!!

En cas de Pb envoyez moi un mail avec un sujet : [PB SI4 : Visual Studio 2013 Profesionnal]

cURL

Il s'agit d'un utilitaire en ligne de commandes qui permet d'accéder à toutes les commandes HTTP et idéal pour tester les API REST

Voici le site de téléchargement des distributions de cURL tout OS : cURL

Test Automatique de Web Service


Evaluations et Corrections


ARCHIVES

Cours Internet et Réseaux - SI4 - Polytech'Nice - Département Sciences Informatiques

Cours Applications Réparties - SI4 - Polytech'Nice - Département Sciences Informatiques

App Rep 2015 2016

App Rep 2014 2015