WCF - Architecture

WCF a une architecture en couches qui offre une prise en charge étendue pour le développement de diverses applications distribuées. L'architecture est expliquée ci-dessous en détail.

Contrats

La couche des contrats est juste à côté de la couche d'application et contient des informations similaires à celles d'un contrat réel qui spécifie le fonctionnement d'un service et le type d'informations accessibles qu'il produira. Les contrats sont essentiellement de quatre types décrits ci-dessous en bref -

  • Service contract - Ce contrat fournit des informations au client ainsi qu'au monde extérieur sur les offres du terminal et les protocoles à utiliser dans le processus de communication.

  • Data contract- Les données échangées par un service sont définies par un contrat de données. Le client et le service doivent être en accord avec le contrat de données.

  • Message contract- Un contrat de données est contrôlé par un contrat de message. Il effectue principalement la personnalisation du formatage de type des paramètres de message SOAP. Ici, il convient de mentionner que WCF utilise le format SOAP à des fins de communication. SOAP signifie Simple Object Access Protocol.

  • Policy and Binding- Il existe certaines conditions préalables à la communication avec un service, et ces conditions sont définies par une politique et un contrat contraignant. Un client doit suivre ce contrat.

Durée d'exécution du service

La couche d'exécution du service est juste en dessous de la couche des contrats. Il spécifie les divers comportements de service qui se produisent pendant l'exécution. Il existe de nombreux types de comportements qui peuvent subir une configuration et relever de l'exécution du service.

  • Throttling Behavior - Gère le nombre de messages traités.

  • Error Behavior - Définit le résultat de toute occurrence d'erreur de service interne.

  • Metadata Behavior - Spécifie la disponibilité des métadonnées vers le monde extérieur.

  • Instance Behavior - Définit le nombre d'instances à créer pour les rendre disponibles pour le client.

  • Transaction Behavior - Permet un changement d'état de la transaction en cas d'échec.

  • Dispatch Behavior - Contrôle la manière dont un message est traité par l'infrastructure de WCF.

  • Concurrency Behavior - Contrôle les fonctions qui s'exécutent en parallèle lors d'une communication client-serveur.

  • Parameter Filtering - Comprend le processus de validation des paramètres d'une méthode avant qu'elle ne soit appelée.

Messagerie

Cette couche, composée de plusieurs canaux, traite principalement du contenu du message à communiquer entre deux terminaux. Un ensemble de canaux forme une pile de canaux et les deux principaux types de canaux qui composent la pile de canaux sont les suivants -

  • Transport Channels - Ces canaux sont présents au bas d'une pile et sont responsables de l'envoi et de la réception de messages à l'aide de protocoles de transport tels que HTTP, TCP, Peer-to-Peer, Named Pipes et MSMQ.

  • Protocol Channels - Présent au sommet d'une pile, ces canaux également appelés canaux en couches, implémentent des protocoles au niveau filaire en modifiant les messages.

Activation et hébergement

La dernière couche de l'architecture WCF est l'endroit où les services sont réellement hébergés ou peuvent être exécutés pour un accès facile par le client. Cela se fait par divers mécanismes décrits ci-dessous en bref.

  • IIS- IIS signifie Internet Information Service. Il offre une myriade d'avantages en utilisant le protocole HTTP par un service. Ici, il n'est pas nécessaire d'avoir le code hôte pour activer le code de service; au lieu de cela, le code de service est activé automatiquement.

  • Windows Activation Service- Ceci est populairement connu sous le nom de WAS et est fourni avec IIS 7.0. Les communications basées sur HTTP et non HTTP sont possibles ici en utilisant les protocoles TCP ou Namedpipe.

  • Self-hosting- Il s'agit d'un mécanisme par lequel un service WCF est auto-hébergé en tant qu'application console. Ce mécanisme offre une flexibilité incroyable en termes de choix des protocoles souhaités et de définition de son propre schéma d'adressage.

  • Windows Service - L'hébergement d'un service WCF avec ce mécanisme est avantageux, car les services restent alors activés et accessibles au client en raison de l'absence d'activation d'exécution.