mercredi 2 janvier 2008

Une introduction à WCF

Objectifs de l'article
1. Qu’est – ce que WCF ?
2. Comment WCF s’intègre dans le développement distribué ?
3. Quels liens entre WCF et le développement orienté services ?

WCF peut être vu comme la prochaine vague de technologies de développement distribué de chez Microsoft. C’est un modèle de programmation unifié qui permet de réconcilier COM+, MSMQ, les services Web Xml et le .Net Remoting. Il encourage les principes des architectures orientées services. Il implémente en outre les spécifications WS-* en vue d’encourager l’interopérabilité.
WCF est un système orienté message basé sur les information des types .Net
· Messages basés sur SOAP
· Conception d’enveloppe et d’en – têtes.
· En outre une bonne partie des comportement peut être gérée de façon déclarative (par configuration).
o Notamment le basculement entre différents protocoles réseaux
o Les paramétrages sécurité
o Les encodages
L’ABC des points terminals
Dans WCF un point terminal est une connection physique constituée de :
· Une adresse (A)
· Une liaison (B pour Binding)
· Un contrat (C )



Schémas simplifié des points terminal dans WCF

Les contrats
Au niveau des contrats il faut distinguer :
Les contrats de type ServiceContract
o S’applique à la définition des types .Net (généralement des interfaces)
o Définit des PortType dans WSDL (Web Service Description Language)

Contrats de type OperationContract
o S’applique aux méthodes d’interface
o Définit des opérations sur les PortType

Un contrat :
Dans WCF un contrat est définit comme suit :


[ServiceContract]
public interface IProcessSchedule
{
[OperationContract(IsOneWay=true)]
void SetSchedule(ScheduleInfo info);
}


Les contrats de messagerie
On a distingue deux types :
Les contrats de type DataContract
o Définissent le corps du message
o S’appliquent à des types .Net concrets

Les contrats de type MessageContract
o S’appliquent à un type .Net (optionnellement)
o Définissent entièrement l’enveloppe SOAP (y compris l’en – tête)
Exemple de DataContract


[DataContract]
public class ScheduleInfo
{
[DataMember]
public string Description;
[DataMember]
public DateTime ScheduleDate;
}



La liaison
Quand on effectue des liaisons dans WCF on définira les éléments suivants :
Les liaisons dans un contrôle WCF
o Quelle est la spécification WS-* qui sera utilisée ?
o Quel est le protocole réseau utilisé ?
o Quel encodage de message utiliser ?
Les liaisons peuvent être crées au sein du code ou dans les fichiers de configuration
Ils permettent d’édifier la pile du canal WCF pour un point terminal particulier



Exemple de Liaison (Binding)


Le tableau suivant décrit les différents types de liaisons disponibles dans WCF


Dans le prochain article nous parlerons des canaux, de l’encodage et de la configuration des comportements. D’ici, là, les liens suivants vous permettront d’approfondir sur WCF.

Aucun commentaire: