WCF Services Généralités

Personnellement, j'ai déjà utilisé les WCF Services, c'est l'évolution permettant une meilleur interopérabilité entre différentes applications c'est donc un élément clef de l'architecture logicielle. Je ne prends note ici que des points qui m'intéressent particulièrement.

Web Services, Service References, c'est forcément un peu confus, disons que les Web Services permettent la communication entre applications web tandis que les Service References possède plusieurs Endpoints permettant la communication entre applications hétérogènes.

Comprendre les Application Domains .NET

Du code managé peut être hosté par un Service Windows (Process). Le CLR isole le code managé en créant des partitions logiques séparées à l'intérieur du Service Windows que l'on appelle Application Domains. Un seul Process peut contenir plusieurs Application Domains. Chaque Domaine d'Application hoste des parties distinctes de code encapsulé dans des Assemblies.

Cette capacité d'un Service Windows de hoster des Application Domains possède plusieurs avantages :
  • Les Application Domains ont un impacte neutre sur le système d'exploitation et sur la plateforme .NET car elle créée une abstraction de la notion d'exécutable ou de librairie. 
  • Les Application Domains peuvent être contrôlées à loisir chargées et déchargées.
  • Les différents Application Domains qui existe au sein d'un Process sont indépendantes les unes des autres et reste fonctionnelle lorsque l'une se plante.

Hébergement d'un service WCF

WCF à besoin d'au moins un Domaine d'Application hosté dans un Service Windows.

Un service WCF peut être hébergé soit dans une application cliente, Console ou Winform ou Service Windows soit dans une application ASP.NET sur un serveur IIS dans ce cas on pourra utiliser les protocoles http/https pour communiquer avec le service.

Lors du choix du host certaine considérations sont à prendre en compte :
  • Disponibilité : Quand souhaitez vous que votre service soit joignable ?
  • Fiabilité : Que se passe t-il si votre service s'arrête, est ce que cela affecte les autres consommateurs ?
  • Versioning : Devez-vous supporter des versions différentes et anciennes de votre service ? Savez vous qui consomme votre service ?
  • Déploiement : Quel est votre modèle de déploiement ? Installez-vous avec un packages de déploiement d'installation de Microsoft et Visual studio, ou un xcopy est-il suffisant ?
  • État : Vos services sont-ils sans état ? Ou avez-vous besoin de l'état de session dans votre service ?
Remarque : Le modèle de programmation WCF est agnostique de l'endroit où il est en cours d'exécution, passer à un autre hôte est toujours possible plus tard, et cela signifie que vous n'aurez pas à modifier  votre implémentation de service. En règle générale, vous commencerez avec un scénario auto-hébergé dans une application console pour test-drive et prototyper vos services.

Service WCF qui se hoste lui même

Pour qu'un service se hoste lui-même deux choses sont nécessaires, le runtime WCF et une application .NET managée dans laquelle vous hébergée le ServiceHost et qui doit contenir le code pour démarrer et stopper le service.

Pour aller plus loin, je vous propose l'article suivant : WCF Services par la pratique

Vous pouvez également lire : WCF Services Ressources
Les ressources nécessaires pour travailler avec WCF.


Aucun commentaire:

Enregistrer un commentaire

Pour plus d'interactivité, n'hésitez pas à laisser votre commentaire.