Architecture Orientée Service
L'architecture orientée services est un modèle d'interaction applicative qui met en œuvre des services (composants logiciels) :
avec une forte cohérence interne (par l'utilisation d'un format d'échange pivot, le plus souvent XML)
des couplages externes « lâches » (par l'utilisation d'une couche d'interface interopérable, le plus souvent un service web WS-*)
L'objectif d'une architecture orientée services est donc de décomposer une fonctionnalité en un ensemble de fonctions basiques, appelées services, fournies par des composants et de décrire finement le schéma d'interaction entre ces services.
Notion de Service
C'est une fonction encapsulée dans un composant que l'on peut interroger à l'aide d'une requête composée d'un ou plusieurs paramètres et fournissant une ou plusieurs réponses. Idéalement chaque service doit être indépendant des autres afin de garantir sa réutilisabilité et son interopérabilité.
Description du service
La description du service, consiste à décrire les paramètres d'entrée du service et le format et le type des données retournées.
Le principal format de description de services est WSDL (Web Services Description Language), normalisé par le W3C.
Publication et Découverte
La publication consiste à publier dans un registre (en anglais registry ou repository) les services disponibles aux utilisateurs, tandis que la notion de découverte recouvre la possibilité de rechercher un service parmi ceux qui ont été publiés. Le principal standard utilisé est UDDI (Universal Description Discovery and Integration), normalisé par l'OASIS. L'UDDI est un annuaire de services fondé sur XML et plus particulièrement destiné aux services Web. Un annuaire UDDI permet de localiser sur le réseau le service Web recherché.
Invocation
L'invocation, représentant la connexion et l'interaction du client avec le service. Le principal protocole utilisé pour l'invocation de services est SOAP (Simple Object Access Protocol).
WebServices
Les services web représentent un mécanisme de communication entre applications distantes à travers le réseau internet indépendant de tout langage de programmation et de toute plate-forme d'exécution :
utilisant le protocole HTTP comme moyen de transport. Ainsi, les communications s'effectuent sur un support universel, maîtrisé et généralement non filtré par les pare-feux ;
employant une syntaxe basée sur la notation XML pour décrire les appels de fonctions distantes et les données échangées
organisant les mécanismes d'appel et de réponse.
Description
Le protocole standard le plus utilisé pour la description de services est WSDL.
Découverte
Le protocole standard le plus utilisé pour la découverte de services est UDDI.
Invocation
Il existe deux grands standards de services web, tous deux basés sur XML :
XML-RPC (XML Remote Procedure Call) , le plus ancien, fonctionnant sur un principe procédural et sans gestion des états.
SOAP (Simple Object Access Protocol), fonctionnant selon le modèle objet.
Windows Communication Foundation
C'est l'un des quatre composants majeurs du framework .NET 3.0 (avec WPF, CardSpace et WF). Le modèle de programmation WCF est une couche d'abstraction qui unifie et simplifie la mécanique d'intégration des services Web, .NET Remoting, Microsoft Transaction Server, et Microsoft Message Queuing.
Cette couche permet en outre la redistribution des rôles:
Le développeur conçoit et développe son service sans se soucier de son implémentation à cible. C'est-à-dire qu'il ne s'intéresse qu'aux caractéristiques structurantes du service pour son intégration au sein d'une Architecture orientée services : le service fonctionne-t-il en mode singleton, en mode asynchrone, avec un callback, etc.
L’intégrateur (ou l’administrateur), lui, détermine le protocole mais aussi le niveau et le mode de sécurisation du service ainsi développé.
WCF utilise des messages SOAP pour les communications entre processus. Quand un processus WCF discute avec un processus non WCF, le langage XML est utilisé pour les messages SOAP. Pour les messages entre processus WCF, les messages SOAP sont encodés au format binaire.
Un service WCF est composé de trois parties
une classe service
un environnement hôte
un ou plusieurs points finaux (Endpoint)
Point Finaux (Endpoint)
Un client se connecte à un service WCF via un Endpoint. Chaque service expose son contrat via un ou plusieurs Endpoint. Un endpoint a une adresse (url) et des bindings qui exposent comment les données seront transferées.
A/B/C : Address, Binding, Contract
Depuis le framework 3.5 on peut également utiliser un encodeur JSON.
Binding
Un binding détermine les protocoles de communication qui seront utilisés pour un service, les mécanismes de sécurité. Les bindings par défaut définissent des protocoles tels que SOAP over HTTP, SOAP over TCP, SOAP over MQ...
SOAP
SOAP est un protocole de RPC orienté objet bâti sur XML. Il permet la transmission de messages entre objets distants, ce qui veut dire qu'il autorise un objet à invoquer des méthodes d'objets physiquement situés sur un autre serveur. Le transfert se fait le plus souvent à l'aide du protocole HTTP, mais peut également se faire par un autre protocole, comme SMTP.
Le protocole SOAP est composé de deux parties :
une enveloppe, contenant des informations sur le message lui-même afin de permettre son acheminement et son traitement,
un modèle de données, définissant le format du message, c'est-à-dire les informations à transmettre.
Commentaires
Enregistrer un commentaire