02.07.2013 Views

article de presse - Cap Data Consulting

article de presse - Cap Data Consulting

article de presse - Cap Data Consulting

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

T echnologie<br />

Dans l’exemple précé<strong>de</strong>nt, la métho<strong>de</strong><br />

AnnulerComman<strong>de</strong> n’a qu’un seul paramètre et<br />

celui-ci est d’un type simple. Dans la réalité,<br />

les informations échangées sont souvent plus<br />

nombreuses et plus complexes. Pour répondre<br />

à ce besoin, WCF fournit les attributs<br />

[<strong>Data</strong>Contract] et [<strong>Data</strong>Member] qui permettent<br />

<strong>de</strong> construire <strong>de</strong>s messages avec une structure<br />

plus complexe. Là encore, il n’y a pas d’adhérences<br />

entre la classe et le framework WCF<br />

(à l’exception <strong>de</strong>s attributs).<br />

Exemple d’utilisation d’un <strong>Data</strong>Contract<br />

simple :<br />

Dans les exemples ci-<strong>de</strong>ssus, il n’est fait mention<br />

à aucun moment du protocole <strong>de</strong> transport<br />

utilisé pour appeler le service. L’opération<br />

qui consiste à « accrocher » l’implémentation<br />

d’un service à un protocole <strong>de</strong> transport s’appelle<br />

le « binding ». Cette opération peut-être<br />

réalisée <strong>de</strong> <strong>de</strong>ux façons :<br />

- par l’intermédiaire d’un fichier <strong>de</strong> configuration,<br />

- <strong>de</strong> façon programmatique dans le co<strong>de</strong> <strong>de</strong><br />

l’application.<br />

La première solution est <strong>de</strong> loin la plus recommandable.<br />

Les protocoles supportés à ce jour<br />

par WCF sont : HTTP, Named pipes, TCP et<br />

MSMQ.<br />

Une fois que le contrat <strong>de</strong> service est écrit, que<br />

l’implémentation est terminée et que l’on a<br />

décrit dans un fichier <strong>de</strong> configuration les<br />

règles <strong>de</strong> binding, il faut exécuter le service.<br />

Rappelons qu’un service est un processus serveur<br />

à l’écoute <strong>de</strong>s requêtes <strong>de</strong>s clients. Pour<br />

ce faire, WCF supporte <strong>de</strong>ux mo<strong>de</strong>s d’exécution<br />

différents :<br />

- le « self-hosting » permet <strong>de</strong> lancer son<br />

propre serveur WCF à l’intérieur d’un processus<br />

Windows. Les services doivent être démarrés<br />

manuellement par <strong>de</strong>s appels à la classe<br />

ServiceHost. Ce mo<strong>de</strong> est idéal lorsque les<br />

services ne sont pas consommés par <strong>de</strong>s tiers<br />

extérieurs au programme<br />

- le « web-hosting<br />

» repose sur<br />

l’utilisation du<br />

serveur Web IIS<br />

pour héberger les<br />

services WCF. Il<br />

offre le démarrage<br />

automatique<br />

<strong>de</strong>s services.<br />

Un troisième<br />

mo<strong>de</strong> d’exécution<br />

est en cours <strong>de</strong> préparation, il concerne Biztalk<br />

Server (le moteur EAI <strong>de</strong> Microsoft) pour lequel<br />

un connecteur WCF est prévu.<br />

WCF offre également un support pour faire participer<br />

les services à <strong>de</strong>s transactions. Là aussi,<br />

la mise en œuvre passe par l’utilisation d’annotations.<br />

SCA<br />

SCA (Service Component Architecture) est une<br />

initiative conjointe d’IBM, BEA, Oracle et Iona<br />

pour mettre au point un framework <strong>de</strong> communication<br />

unifié concurrent <strong>de</strong> WCF. Ce projet<br />

est beaucoup plus récent puisqu’il n’a été<br />

dévoilé que fin 2005. Contrairement à WCF qui<br />

est totalement dédié à la plate-forme .NET,<br />

SCA se veut plus ouvert et adresse à la fois les<br />

plates-formes J2EE, C++, voire PHP.<br />

Même si la terminologie utilisée dans SCA est<br />

différente, il repose sur les mêmes principes<br />

que WCF, en particulier :<br />

- l’utilisation d’annotations Java (l’équivalent<br />

<strong>de</strong>s attributs <strong>de</strong> .NET),<br />

- le co<strong>de</strong> reste indépendant du framework<br />

(hors utilisation <strong>de</strong> SDO),<br />

- le binding se fait <strong>de</strong> façon déclarative à l’ai<strong>de</strong><br />

<strong>de</strong> fichiers XML,<br />

- la compatibilité avec SOAP et les protocoles<br />

WS-XXX,<br />

- le support <strong>de</strong>s échanges synchrones et asynchrones.<br />

Il existe néanmoins quelques différences<br />

importantes :<br />

- SCA va plus loin que WCF et propose <strong>de</strong>s<br />

solutions pour assembler <strong>de</strong>s composants<br />

- il n’y a pas d’équivalent <strong>de</strong> l’attribut<br />

[<strong>Data</strong>Contract] dans SCA. A la place, c’est SDO<br />

qui est proposé pour échanger <strong>de</strong>s structures<br />

<strong>de</strong> données complexes. Ce choix est difficilement<br />

justifiable car il induit un couplage fort<br />

Programmez n°85 50 avril 2006<br />

avec le framework et entraînera sans doute<br />

<strong>de</strong>s problèmes <strong>de</strong> compatibilité avec <strong>de</strong>s<br />

clients non-SCA.<br />

- SCA est prévu pour s’adapter sur différentes<br />

technologies existantes (classes Java, EJB …)<br />

alors que WCF est cantonné au mon<strong>de</strong> .NET.<br />

La date <strong>de</strong> disponibilité <strong>de</strong>s premières implémentations<br />

<strong>de</strong> SCA n’est pas encore connue.<br />

Enfin, on remarquera l’absence notable <strong>de</strong> Sun<br />

qui travaille sur son propre framework avec JBI<br />

(Java Business Integration).<br />

Conclusion<br />

Les nouveaux frameworks <strong>de</strong> communication<br />

vont profondément changer les pratiques <strong>de</strong><br />

programmation en simplifiant le travail <strong>de</strong>s<br />

développeurs. En effet, le co<strong>de</strong> <strong>de</strong>s services<br />

développés va <strong>de</strong>venir indépendant <strong>de</strong> la<br />

façon dont le service est consommé (http, JMS,<br />

MSMQ …). C’est une véritable révolution dans<br />

le développement d’applications distribuées.<br />

Les <strong>de</strong>ux technologies sont multi langages<br />

(WCF supporte l’ensemble <strong>de</strong>s langages <strong>de</strong> la<br />

plate-forme .NET), et SCA est en plus multiplate-forme<br />

(J2EE, C++ …). Ce <strong>de</strong>rnier point,<br />

combiné au fait que SCA est conçu par un<br />

consortium d’éditeurs laisse présager <strong>de</strong>s<br />

temps <strong>de</strong> mise au point assez longs.<br />

Pour l’instant, Microsoft dispose d’une longueur<br />

d’avance, en attendant les premières<br />

implémentations <strong>de</strong> SCA ….<br />

Aller plus loin<br />

Pour en savoir plus sur SCA, consulter le document<br />

« SCA : Building your first Application –<br />

Simplified BigBanking », disponible sur le site<br />

<strong>de</strong> BEA.<br />

http://<strong>de</strong>v2<strong>de</strong>v.bea.com/2005/11/SCA_BuildingY<br />

ourFirstApplication_V09.pdf<br />

■ Médéric Morel mail@me<strong>de</strong>ric.net

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!