Accueil > Développer pour le Web > Framework Services Web : Introduction

Framework Services Web : Introduction

Par Apple Computer, Inc. © 2003 (Dernière mise à jour Septembre 2002),

Traduit par Thierry, 16/06/2003.

Bienvenue dans les frameworks Web services de Mac OS X version 10.2.

Ce chapitre et les suivants de cette série vous présentent les services Web disponibles sur Mac OS X. Certains concepts importants et certaines technologies qui se cachent derrière cette nouvelle technologie émergeante sont abordés dans ce chapitre.

Les boites à outils et les frameworks, y compris le WebServicesCore.framework d’Apple, un framework côté client pour accéder aux services Web à partir de Mac OS X et qui est nouveau dans la version 10.2, sont abordés au Chapitre 2, “Services Web : Les Tâches”. Certains outils et certaines techniques utilisés pour écrire des colles de services Web et les ajouter aux applications Cocoa, Carbon et AppleScript sont aussi abordés dans le Chapitre 2.

Enfin, le Chapter 3, “Services Web : Les Références”, apporte les références en matière d’API, de constantes et de types qui sont nouveaux dans le framework Services Web.

Définition des Services Web

Les Services Web peuvent être généralement définies comme étant un service logiciel auquel vous pouvez avoir accès sur Internet dans le but de récupérer un résultat particulier, en utilisant des protocoles standard du Web tels que XML et HTTP. Vous utilisez les Services Web pour effectuer une action sur ce qui est défini comme étant un point final (endpoint), habituellement un serveur HTTP, de façon à obtenir le résultat souhaité. Les Services Web sont la base de l’informatique distribuée sur Internet et offre beaucoup d’opportunités aux développeurs Web.

Les Services Web sont hétérogènes, en cela que les clients et les serveurs peuvent tourner sur différentes architectures et plate-formes mais qu’ils peuvent parler la même langue internationale qui est XML. C’est un des avantages majeurs de l’architecture des Services Web.

Voici quelques exemples de Services Web :

  • Services Web commercial basés sur un système de droits où, en échange d’informations spécifiques, le client paie un droit préétabli. Si vous avez un business qui requiert certaines informations, un développeur pourrait mettre en place un Service Web de façon à récupérer ces informations. En tant que client, vous accédez aux informations au travers d’une boite à outils pour Services Web et êtes facturé pour ça.
  • Intranet Entreprise, où un département Services Informations au sein de la compagnie publie un Service Web de façon à ce que ses propres outils exploitent ces données.
  • Services Web non-commerciaux, publiquement accessibles. La plupart sont des points finaux publics mis à disposition gratuitement par les compagnies et les développeurs Web. Par exemple, Barnes & Noble propose un Service Web sur Internet qui lorsque vous lui fournissez un numéro ISBN vous renvoie le prix du livre concerné. Il y a aussi plein de Services Web qui fournissent les cours de la bourse, la température d’un lieu donné ou les conditions de circulation, et plein d’autres services encore.

XML-RPC

Un invocation à une procédure distante (RPC) est une requête envoyée vers une application serveur situé à un autre endroit dans le but d’effectuer des opérations et de renvoyer des informations. XML-RPC est un protocole simple qui permet à un logiciel tournant dans des environnements différents d’effectuer des invocations de procédures distantes via Internet. XML-RPC utilise deux standards de l’industrie : XML (eXtensible Markup Language) pour encoder les messages, et HTTP (HyperText Transfer Protocol) pour les transporter. Un message XML-RPC correctement formatté est une requête HTTP POST dont le corps est en XML. Le serveur distant spécifié exécute l’invocation demandé et renvoie les données au format XML.

XML-RPC reconnaît les paramètres de la procédure par leur position. Les paramètres et les valeurs retournées peuvent être de types simples, tels que les nombres, les chaînes et les dates, ou de types plus complexes tels que les structures et les tables. Pour en savoir plus sur les messages XML-RPC, reportez-vous aux spécifications XML-RPC à l’adresse http://www.xmlrpc.com/spec.

Les spécifications définissent un message XML-RPC en tant que requête HTTP-POST. Le corps de la requête est en XML. Une procédure s’exécute sur le serveur et la valeur qu’elle renvoie est aussi formattée en XML. Les paramètres peuvent être des scalaires, des nombres, des chaînes, des dates, …, et peuvent aussi être des enregistrements complexes et des structures de liste.

SOAP

SOAP (Simple Object Access Protocol) est un protocole RPC conçu pour un environnement distribué dans lequel un serveur peut consister en une hiérarchie d’objets dont les méthodes peuvent être invocationées via Internet. Le but de SOAP est d’établir un protocole standard qui servira à la fois aux fournisseurs de Services Web et à leurs utilisateurs. Comme avec d’autres protocoles d’invocations de procédures distantes, SOAP utilise XML pour encoder les messages et HTTP pour les transporter. Une requête SOAP contient une en-tête et une enveloppe qui contient le corps de la requête.

Une différence clé entre les protocoles SOAP et XML-RPC porte sur le fait qu’avec SOAP les paramètres sont optionnels (une requête doit encoder le paramètre de la méthode à l’intérieur de son XML), au lieu d’être reconnus par leur position. Pour en savoir plus sur les messages SOAP, reportez-vous aux spécifications SOAP à l’adresse http://www.w3.org/TR/.

Les invocations de procédures distantes fournissent un outil puissant pour accéder à des services via Internet. Par exemple, il y a déjà de nombreux serveurs web qui peuvent vérifier une orthographe, traduire des textes en différentes langues, fournir des cours de bourse, fournir la météo et les informations de traffic, et plus encore. Vous pouvez trouver quelques services disponibles sur des sites tels que XMethods à l’adresse http://www.xmethods.net/. Vous trouvere aussi sur ces sites les informations nécessaires pour effectuer les invocations de procédures distantes vers ces services.

A partir de Mac OS X version 10.1, AppleScript et le Apple Event Manager apportent le support de XML-RPC et de SOAP tel que :

  • Les rédacteurs de scripts puissent faire des invocations XML-RPC et des requêtes SOAP à partir de leurs scripts.
  • Les développeurs puissent faire des invocations XML-RPC et des requêtes SOAP à partir de leurs applications ou à partir d’autres bouts de code en envoyant des Apple events.

WSDL

Le Web Services Description Language (WSDL) est un langage basé sur XML utilisé pour décrire les services offerts par un business et pour permettre à des individus ou d’autres business d’accéder électroniquement à ces services. WSDL est le pierre angulaire de l’initiative “Universal Description, Discovery, and Integration (UDDI)” dont Microsoft, IBM et Ariba sont les fers de lance. UDDI est un registre mondial basé sur XML à destination des entreprises et autres affaires qui leur permet de rendre visible leur business et leurs services sur Internet. WSDL est le langage utilisé pour cela.

WSDL est dérivé du Simple Object Access Protocol (SOAP) de Microosft et du Network Accessible Service Specification Language (NASSL) d’IBM. WSDL remplace à la fois NASSL et SOAP comme moyen d’expression des services business dans le registre UDDI.

Invoquer un Service Web

XML-RPC et SOAP sont les formats pour invoquer un Service Web. Ils sont réciproquement exclusifs, juste par des modes différents d’emballage des données que vous envoyez au Service Web. Ils sont tous les deux basés sur XML, qui est le standard de présentation des informations de façon fiable, garantissant la compréhension du message et aussi facile à lire pour un oeil humain. Ils resposent sur HTTP ; les Services Web sont généralement invocationés ou construits avec HTTP-POST.

Dans le diagramme de la Figure 1-1, SOAP est assis sur les schémas XML, ce qui vous procure un système riche en types différents.

XML chevauchant HTTP est en générale la représentation que l’on a d’un Service Web.

Figure 1-1 : Les encodages XML-RPC et SOAP au-dessus de XML à son tour au-dessus de HTTP

Encodage Section 5

Avec ce type d’encodage, le code XML que vous envoyez est fortement typé par des balises XML, qui spécifient, par exemple, que cet élément est un nombre entier ou que cet élément est une chaîne. Les schémas XML vous permettent de construire des types complexes.

Le Statut des Services Web XML

Dans les spécifications Userland XML-RPC, XML-RPC est utilisé pour implémenter un mécanisme RPC simple au-dessus de XML à son tour au-dessus d’un HTTP post. Cette spécification est complète ; vous pouvez l’implémenter aujourd’hui et elle est guarantie dans son fonctionnement futur.

SOAP, cependant, est un standard en cours de développement. La syntaxe est un peu différente de celle de XML-RPC. Au fur et à mesure que SOAP évolue, de plus en plus d’extensions sont ajoutées. SOAP 1.1 est une recommandation du W3C, ce qui signifie qu’il est finalisé. SOAP 1.2. est encore une cible mouvante et ses extensions ne sont pas encore terminées. La plupart des travaux effectués sur ces extensions est mené par Microsoft et IBM.

En plus, SOAP comprend une en-tête qui peut contenir des informations suppémentaires à destination des extensions SOAP ; ces extensions peuvent tout ce qu’un fournisseur de services souhaiterait spécifier.

XML-RPC contre SOAP

SOAP et XML-RPC sont des protocoles proches l’un de l’autre de part leur tentative d’homogénéiser le passage des paramètres aux Services Web. SOAP est actuellement une recommandation du W3C et est activement amélioré et développé par Microsoft et d’autres compagnies. L’initiative .NET de Microsoft est largement conduite par la possibilité d’accéder de manière transparente aux Services Web au travers de messages SOAP.

XML-RPC est une spécification finalisée qui est moins verbeuse et plus facile à implémenter que SOAP. SOAP et XML-RPC fonctionne tous les deux en transformat un ensemble de paramètres (scalaires, chaînes, dates, tables, enregistrements et données binaires) en XML en vue de leur transmission. XML-RPC est défini comme opérant au-dessus d’une connexion HTTP, alors que SOAP décrit le format de l’enveloppe d’une requête RPC qui peut être envoyée par HTTP, SMTP ou d’autres protocoles.

SOAP passe les paramètres par leur nom et XML-RPC les passe par leur position. Ceci est important car une routine qui dépend de l’ordre des paramètres en XML-RPC doit être invocationée prudemment pour obtenir des résultats corrects.

SOAP permet l’utilisation de types d’enregistrements utilisateur en étendant le document XML grace aux XML Schemas. XML-RPC ne permet que les types de base définis dans les spécifications. (En réalité, tout type peut être défini en utilisant ces types primaires).

A la fois SOAP et XML-RPC supportent le passage de données binaires dans un document XML en utilisant l’encodage Base-64. XML-RPC comporte cependant un défaut majeur en cela qu’il définit que les paramètres de type chaîne sont des textes ASCII. Quelques serveurs XML-RPC imposeront cela en forçant l’utilisateur à passer des textes internationnaux sous la forme de données encodées en Base-64.

Spécifications XML-RPC

Les spécifications complètes sont disponibles à l’adresse :

http://www.xmlrpc.com/spec

Note du W3C sur SOAP 1.1

SOAP est transport-agnostique, cela signifie que c’est un format d’enveloppe mais pas la transmission. Il y a des recommandations si vous l’envoyer via HTTP, telles que des en-têtes supplémentaires à ajouter, ou la manière de discuter avec le serveur en termes de codes erreurs retournés. Mais le message SOAP en tant que tel est le même.

Les spécifications complètes sont disponibles à l’adresse :

http://www.w3.org/TR/SOAP/

Le schéma est disponible à l’adresse :

http://schemas.xmlsoap.org/soap/envelope

http://schemas.xmlsoap.org/soap/encoding

Spécifications WSDL

WSDL définit une grammaire basée sur XML pour décrire les services réseau sous forme d’ensemble de points finaux qui acceptent les messages contenant soit des informations orientées document soit des informations orientées procédure. La page d’index des spécifications WSDL renvoie aux spécifications de WSDL 1.1, aux schémas en rapport et à un survol des spécifications.

Les spécifications complètes sont disponibles à l’adresse :

http://www.w3.org/TR/wsdl

Schéma WSDL

Le Framework WSDL est disponible à l’adresse :

http://schemas.xmlsoap.org/wsdl/

La liaison WSDL SOAP est disponible à l’adresse :

http://schemas.xmlsoap.org/wsdl/soap

La liaison WSDL HTTP GET & POST est disponible à l’adresse :

http://schemas.xmlsoap.org/wsdl/http/

La liaison WSDL MIME est disponible à l’adresse :

http://schemas.xmlsoap.org/wsdl/mime/

Ressources Développeurs

Apple fournit un certain nombre de ressources disponibles pour assister les développeurs, dont :

Textes originaux en anglais sur developer.apple.com : WebServices - Introduction

Thierry Développer pour le Web , , , ,

  1. Pas encore de commentaire
  1. Pas encore de trackbacks
S'abonner aux commentaires de cet article