Les services Web sont considérés par beaucoup comme essentiels pour l’avenir des applications connectées à Internet. Une affirmation aussi audacieuse peut être faite pour deux raisons principales. Premièrement, les services Web permettent de connecter des applications distantes entre elles via le réseau Internet standard. Deuxièmement, ils permettent aux systèmes développés sur d’autres plates-formes et dans d’autres langages, tels que Linux et Java, de s’intégrer aux fonctionnalités développées dans .NET.
Dans cet article, nous expliquerons ce qui est unique dans les services Web et pourquoi ils sont si appréciés, et nous couvrirons tout ce que vous devez savoir pour les créer et les utiliser. Cet article abordera les sujets suivants :
- Ce qu’est un service Web.
- La relation entre le service web et le serveur.
Présentation des services Web
Avant de retrousser vos manches et de commencer à écrire des services Web, il est bon de comprendre leur fonctionnement. Nous allons voir ce que sont les services Web, comment ils sont apparus et comment ils se comparent au modèle d’application client/serveur du navigateur.
Les services Web sont des parties d’un système qui sont exposées à l’extérieur (comme les pages Web) via un nouveau format de fil standard ouvert. Cela permet à des applications disparates de communiquer entre elles et de partager des informations. La norme des services web elle-même repose sur d’autres normes telles que HTTP (pour le transport) et XML (pour le format des messages). En utilisant des technologies aussi largement acceptées, les services web ne dépendent d’aucun système propriétaire ou fournisseur. Ils peuvent donc être développés librement sur n’importe quelle plate-forme et dans n’importe quel langage : .NET, Java, Perl, etc.
Un service Web (tel que mis en œuvre dans .NET) est un ensemble de méthodes qui peuvent être appelées à distance. Ces méthodes acceptent des paramètres et renvoient éventuellement une valeur, tout comme les méthodes normales, ce qui permet d’exposer à un public plus large la grande majorité des fonctionnalités (appropriées) utilisées en interne dans une application.
Bien que les services web eux-mêmes soient relativement nouveaux, le concept qui les sous-tend ne l’est pas. Il existe depuis longtemps un besoin pour des applications disparates de communiquer entre elles afin de partager des informations et des fonctionnalités ; c’est ce qu’on appelle les services distribués. Historiquement, l’interconnexion de ces applications se faisait sur une base ad hoc, et seules les parties impliquées dans l’intégration décidaient de la structure et du format des données. Lorsqu’il est devenu évident qu’une spécification normalisée permettrait de réduire le temps de développement et les coûts, plusieurs options ont été proposées ; DCOM et CORBA en sont deux exemples. Ces options étaient toutefois basées sur des formats propriétaires, ce qui a ralenti leur acceptation par les développeurs et créé des obstacles à leur utilisation.
Elles imposaient également d’autres problèmes techniques, comme la nécessité d’utiliser des ports TCP/IP qui sont régulièrement bloqués par les pare-feu. Il fallait trouver une autre approche qui ne soit pas spécifique à un fournisseur ou à une plate-forme. C’est le cas des services web.
Le fait de disposer d’un mécanisme aussi souple offre deux avantages principaux aux développeurs d’applications Web :
- Vous pouvez tirer parti de toutes les fonctionnalités et informations personnalisées d’une application distincte, aussi facilement que vous utiliseriez les fonctionnalités fournies par le .NET Framework ou votre propre code d’application. Par exemple, vous pouvez récupérer le cours actuel de l’action d’une société, ou obtenir des nouvelles du secteur industriel concerné pour les afficher sur le site, fournissant ainsi plus d’informations à l’utilisateur final.
- Vous pouvez publier des informations et permettre à d’autres applications de les consommer. Par exemple, vous pouvez publier le catalogue de produits d’une entreprise dans un format qui permet à d’autres sites d’utiliser ces informations, ce qui peut augmenter les ventes.
Dans le cas de notre application Friends Reunion, les services Web peuvent être utilisés pour faciliter la création de sites affiliés, permettant aux gens de s’inscrire au système à partir du site Web de leurs anciens lycées, par exemple.
La relation entre les services Web et le modèle navigateur/serveur
Une façon simple de visualiser un service Web serait de le considérer comme une page Web qui, au lieu de renvoyer des informations utiles à l’utilisateur final, renvoie des informations qui peuvent être consommées par une autre application. Dans leur forme la plus simple, les demandes d’informations sont effectuées de manière similaire : appel d’une URL et transmission des informations requises soit sur l’URL (verbe GET), soit dans le corps de la demande (verbe POST). Des mécanismes plus complexes, tels que SOAP, sont également disponibles (nous verrons SOAP plus loin dans ce chapitre). Les requêtes pour ces URL sont ensuite prises en charge par IIS et le runtime .NET, tout comme elles le seraient pour une requête web pour un formulaire web, par exemple. Tout traitement nécessaire est effectué par le code écrit par le développeur, et les résultats sont renvoyés dans le corps de la réponse HTTP. Cependant, au lieu que la réponse soit un document HTML contenant des balises pour l’affichage, elle est constituée d’un document XML contenant des données.
Écrit par: Mehdi