mercredi 19 novembre 2008

WCF et les Software Factory templates

Dans leur livre, Software Factories, Jack Greenfield et Keith Short ont discuté le fait que le développement basé sur des modèles dépend de l'esquisse de de languages de modélisation à objectifs généraux en faveur des DSL (Domain Specific Language)

 
Un DSL modélise les concepts rencontrés dans un domaine spécifique. Les DSL doivent être utilisées en conjonction avec le framework de classes correspondant, un ensemble de classes spécifiquement conçus pour couvrir le même domaine. Donc lorsque le DSL est utilisé pour modéliser des voies spécifiques par lesquelles ces classes peuvent être utilisées, il devrait alors être possible de générer le logiciel décrit dans le modèle à partir des classes de framework
 
La combinaison d'un DSL et le framework de classes correspondante constitue le noyau du modèle  software factory. Les modèles de Software Factory servent à la fabrication de plusieurs variété d'un même type de logici
 
Un bon exemple de modèle de Software Factory est le concepteur des formularies Windows dans Visual Studio .Net. Dans ce cas particulier, le concepteur de formulaires Windows est la DSL, la boîte à outils ainsi que l'éditeur des propriétés ainsi que les classes de l'espace de noms System.Windows.Forms constituent le framework de classes. Les utilisateurs du concepteur de formulaires Windows l'utilisent pour modéliser les logiciels qui sont générés à partir de ces classes
 
Les programmeurs ont utilize le concepteur de formulaires Windows et des outils similaires dans d'autres environments de développements pendant de nombreuses années pour developer des interfaces utilisateur. En bref Greenfield et Shrot ont introduit le concept des modèles de Software factory, sans pour autant créer quelque chose de nouveau. Ils sont plutôt en train de formaliser un concept qui s'est déjà révélé efficace, et suggèrent qu'il peut être utilisé pour développer une variété de logiciels au-delà des interfaces utilisateur
 

WCF est un modèle de Software Factory pour la communication entre logiciels. Il consiste ne une DSL appelée le Modèle de Service (Service Model)  et un framework de classes appelé la couche de canaux (Channel Layer). Le modèle de service consiste en des classes faisant partie de l'espace de nom System.ServiceModel et un language de configuration XML. La couche de canaux consistes en des classes disponibles dans l'espace de noms System.ServiceModel.Channel. Les développeurs modélisent comment un morceaux de logiciel peut communiquer en utilisant le modèle de service, ainsi que les composants de communication dont ils ont besoin d'inclure dans leur logiciels qui sont générés à partir de la couche de canaux,

 

En conformité avec leur modèle.Plus tard s'ils ont besoin d'effectuer des changements ou de decrier comment leur logiciel communiqué, ils apportent des alterations à leur modèle, et les modifications ou ajouts à leur logiciel sont générés. S'ils désirent modéliser une forme de communication qui n'est pas déjà supportée par la couche canaux, ils peuvent construire ou acheter un canal adéquat à ajouter à la couche canaux, et continuer à générer leur logiciel comme ils le faisaient habituellement, exactement comme l'utilisateur d'un concepteur de formulaires Windows peut construire ou acheter des contrôles graphiques à ajouter à la boite à outil du concepteur graphique

 

Les termes clefs dans le modèle de service de WCF sont les fameux ABC (Adress, Binding, Contract) soit en français Adresse, Liaison et Contrat. L'adresse définit là ou se trouve le logiciel, la liaison spécifie les protocoles pour communiquer avec le logiciel, et le contrat définit ce qu'il va effectuer. En conséquent le bien trouvé acronyme ABC peut vous aider à vous en rappeler : il faudrait le remplacer par ALC en français. En jargon WCF, une adresse, une liaison et un contrat constituent ce qu'on appelle un point terminal (endpoint en Anglais)

 


--
Alain Lompo
Excelta - Conseils et services informatiques
MCT
MCSD For Microsoft .Net
MVP Windows Systems Server / Biztalk Server
Certifié ITIL et Microsoft Biztalk Server