Qu'est-ce qu'une SOA ?

Il y a plusieurs angles pour aborder les technologies SOA :

  • Un angle business / métier qui concerne l'agilité de l'entreprise
  • Un angle Système d'informations qui concerne notamment l'architecture applicative et l'infrastructure, avec des enjeux autour de la souplesse, urbanisation et composition du SI.

Il existe par ailleurs une problématique qui concerne la réconciliation des enjeux Business et SI, à savoir comment s'assurer que l'architecture du SI répond aux besoins Métier. La méthodologie Motion est la réponse de Microsoft dans ce domaine. Le document Application rapide des techniques d'architecture d'entreprise utilisées par Microsoft Motion propose une introduction à ce sujet.

Dans la suite de cet article, nous nous concentrerons sur les aspects techniques, à savoir les architectures de services pour le système d'informations, et la proposition de Microsoft dans ce cadre.

La SOA Microsoft décryptée

Tout d'abord, rappelons que la plate-forme applicative Microsoft permet de bâtir des architectures orientées services depuis 2003. Pour les personnes désireuses d'éviter l'utilisation des nouvelles technologies présentées ci-après, il est bon de rappeler que le système d'informations interne de Microsoft repose au quotidien sur des technologies disponibles depuis 2003. En tout état de fait, l'IT Microsoft propose à plus de 60.000 collaborateurs internes à l'entreprise et avec une disponibilité irréprochable (voir ci-après les générations SOA Microsoft) l'accès aux différents services exposés dans l'entreprise (mixte de spécifiques et ERP) dans des scénarios Client Léger, Client Desktop et Client Mobile.

Ces 5 dernières années, les principes des architectures orientées services se sont généralisés et de nombreux éditeurs se sont positionnés avec une offre dédiée à la gestion de ces nouveaux enjeux. Dorénavant, la plupart de ces éditeurs possèdent des lignes de produits "marketés" SOA. Tout en travaillant aux côtés des organismes de standardisation des Services Web, Microsoft s'est positionné de façon orthogonale par rapport à la plupart des éditeurs en ne proposant pas d'offre "marketée" SOA.
En effet, Microsoft propose à ses clients de bâtir leurs projets SOA à partir de leur existant plutôt qu'en procédant à l'achat de nouveaux produits dédiés à cette problématique. Parmi ceux-ci, on trouve notamment : Biztalk Server, Windows Server (UDDI Services et capacité de management) ainsi que les frameworks .Net - WSE (Web Service Enhancements) et plus récemment WCF (Windows Communication Foundation) - .

Courant 2006, les équipes Architecture Microsoft ont fait un effort de clarification de la proposition SOA Microsoft, et de capitalisation sur les expériences terrain. Ce travail s'est traduit par des livres blancs et des sites portails dédiés à la mise en œuvre d'architecture orientée services. Si bien qu'en Février 2007, la situation se présente globalement comme suit :

  • La plate-forme Microsoft permet d'urbaniser son système d'informations et développer ses applications selon une approche SOA
  • Les sources d'informations pour réaliser des architectures orientées services à partir des technologies Microsoft sont multiples, à commencer par le portail SOA Microsoft.

Au-delà de la polémique 'Faut-il renommer ses produits "SOA xxx" pour être un acteur SOA ?! ', nous aurons 3 ambitions :

  • Mettre en lumière le large éventail des fonctionnalités SOA proposées par les produits Microsoft
  • Dresser la liste des technologies utilisées dans certains scénarios SOA
  • Présenter quelques références Microsoft dans le cadre des projets SOA de niveau Entreprise.


Les générations de la SOA Microsoft

Un peu d'archéologie nous amène à distinguer les ères suivantes.

1ère génération : les services reposent sur un middleware
  • Correspond à l'approche composants distribués
  • En terme de technologie, il s'agit de COM/COM+ sur les infrastructures Windows
2nde génération : les services deviennent web et interopérables
  • On s'affranchit des middlewares propriétaires Windows et JAVA, ainsi que des middelware d'interopérabilité CORBA/IIOP (rendus obsolètes pour des raisons de complexité au niveau des développements et des infrastuctures nécessaires côté production)
  • C'est l'avènement des Services Web et la maturation des spécifications WS-* (WS-STAR Secure, Transactional, and Reliable).
  • La technologie IIS / ASMX et le framework WSE (Web Service Enhancements) sont alors à l'honneur chez Microsoft

Un état des lieux nous permet de constater que, soit les grandes entreprises disposent d'une telle infrastructure, soit elles sont en train de la mettre en place. A ce titre, Microsoft IT présente sur le portail infrastructure SOA, les snapshots de son infrastructure interne de services.
De nombreuses références à base de technologies SOA Microsoft de 2nde génération sont par ailleurs disponibles :

Il est bon de signaler que de grandes entreprises qui ont investi sur des technologies Microsoft en 1ère génération réussissent leur évolution technologique vers la 2nde génération : témoignage de la Poste - Grand Large sur un projet d'envergure estimés à plus de 50.000 jours /homme.

3ème génération : les services sont universels et le couplage est faible
  • Cette phase marque une rupture par rapport à l'approche exclusive "Services Web", il s'agit d'un niveau d'abstraction plus élevé.
  • Les équipes de développement ne se soucient plus des technologies utilisées par les applications consommatrices des services. Au niveau communication, de multiples possibilités sont offertes grâce à la notion de "bindings", tels que :
    • faire cohabiter différents protocoles et différentes versions de ces protocoles (HTTP/SOAP1.1, HTTP/SOAP1.2, WS-*/SOAP...),
    • configurer dynamiquement un canal de communication en fonction des capacités de son correspondant (à la fois côté serveur du service et consommateur du service)

Ainsi , les équipes de production prennent la main sur la configuration des communication : elles peuvent sélectionner les protocoles adaptés et surtout optimisés pour leur environnement (car il faut bien au bout du chemin que les performances soient au rendez-vous) :

  • Binaire/ TCP pour des communication entre applications Windows - Windows et en intranet,
  • Services Web pour des communications entre technologies hétérogènes (.Net, JAVA, legacy Windows, legacy MainFrame, legacy Unix...)

Cette 3ème génération de la SOA promeut l'évolutivité des services, indépendamment des contraintes d'interopérabilité et des règles édifiées au niveau supérieur de l'organisation : la communication est configurable, adaptable, optimisable dynamiquement.
La règle n'est plus Evolutivité ou Interopérabilité ou Performances mais une triplet Evolutivité + Interopérabilité + Performances.

Microsoft a investi lourdement en Recherche & Développement pour préparer cette 3ème génération de services et proposer Windows Communication Foundation.
WCF est ce framework - innovant - dédié à la gestion de ces communications des applications .Net avec des possibilités de configuration dynamique.
De plus, WCF est utilisable dans tous types d'applications .Net : Applications Web au sein d'IIS ou bien des applications Desktop, batchs et services Windows (on parle de hosting WCF)...
Enfin, l'offre Serveurs Microsoft s'appuie progressivement sur ce nouveau framework pour bénéficier de ses vertus : évolutivité, interopérabilité, performances. Biztalk Serveur 2006 R2 propose ainsi d'exposer des endpoints via WCF et un nouveau framework d'adaptateurs.

Néanmoins, les fondations d'une architecture de services ne peut se limiter pas aux aspects communication. Afin de répondre au triptyque Expose, Compose, Consume exposés ci-après, il faut pouvoir assembler, organiser, orchestrer des appels de services. Là encore Microsoft a innové : le moteur de workflow WF - Windows Workflow Foundation permet d'externaliser la logique d'appels de messages au sein d'orchestrations. Ces orchestrations peuvent là aussi s'exécuter au sein des d'applications .Net (on parle de hosting WF) ou bien au sein de serveurs dédiés tels que Biztalk Server.

Malgré le fait que cette génération de la SOA Microsoft ne soit en version finale que depuis Novembre 2006, des sociétés visionnaires font reposer dès maintenant leurs investissements SOA sur ces technologies, notamment KiwiBank.
Par ailleurs, les analystes positionnent la technologie SOA Microsoft en tête de course "Microsoft is SOA ready for Wall Street".

Il y a fort à parier que vous souhaiterez vous orienter vers cette SOA de 3ème génération en ce début 2007.

La démarche SOA préconisée : Incrémental + Interopérable + Innovation

Le document "Real World SOA" détaille la démarche SOA proposée par Microsoft. Lien en français.

Outre les aspects interopérabilité qui sont le lot commun des architectures orientées services, la démarche Microsoft a l'originalité de proposer un processus incrémental de mise en place d'une SOA qui rompt avec la stratégie de la plupart des éditeurs SOA pour lesquels la mise en place d'une infrastructure dédiée reste un préalable à l'exploitation de services.

A nouveau, Microsoft se différencie en expliquant comment il est possible - à l'extrême - de ne démarrer avec rien d'autres qu'un OS Windows, pour graduellement ajouter des briques techniques au rythme de la croissance dans les niveaux de maturité SOA souhaités par l'entreprise. Cette démarche est illustrée par le triptyque Expose, Compose, Consume présenté dans le document cité précédemment.

Si Microsoft peut se positionner de la sorte, c'est bien grâce à ces technologies innovantes qui ont été placées au cœur de la plate-forme, à savoir les frameworks Windows Communication Foundation (WCF)et Windows Workflow Foundation (WF).

Néanmoins, il serait réducteur de penser que l'implémentation SOA proposée par Microsoft se limite à WCF et WF. A ces composants disponibles en version 3.0 du framework .Net, viennent s'ajouter les services techniques de l'OS Windows disponibles quant à eux depuis plus de 10 ans, notamment le serveur d'applications IIS, le network load balancer - NLB, le coordinateur de transactions distribuées COM+ - MSDTC... Notez que que l'ensemble de ces services sont disponibles sans coût additionnel, c'est-à-dire, pas de dépense autre l'OS Windows.

Pour résumer, vous construirez votre SOA d'entreprise en vous appuyant sur les services disponibles dans l'OS Windows (Serveur d'application Internet Information Server - IIS, Gestionnaire de file de messages - MSMQ, Annuaire de services - UDDI Services, infrastructure de management - WMI). Vous complèterez en temps utile votre SOA par des serveurs existants dans votre SI ou bien de nouveaux serveurs Microsoft (Biztalk Server, SQL Server...) ou encore des technologies tierces (référentiels, outils de management). Cette approche SOA est possible grâce à l'interopérabilité fournie de facto par les technologies .Net .

Catégorisation de la SOA Microsoft

Comment parler de SOA, sans entrer dans le détail des fonctionnalités de niveau services proposés par les technologies, offres et serveurs Microsoft ? C'est ce que propose l'article MSDN Web Services and the Microsoft Platform.
De façon complémentaire à cet article, nous proposons de répartir en 3 catégories les technologies SOA disponibles au sein de la plate-forme Microsoft :

1. Les foundations de ces services ("SOA enablers") : ce sont les composants techniques qui permettent d'exposer et composer des services. Ce sont ces technologies qui réalisent une infrastructure de services.

D'autre part, les services consommables sous forme de Services Web : ces services pouvant donc être invoqués depuis des technologies Microsoft ou tierces. Sur ce point nous distinguerons :

2. les Services Web exposés par l'OS ("in the box") : technologies de facto ou installées sur les OS Microsoft et sans coût supplémentaire

3. des Services Web exposés par la gamme Serveurs d'Entreprise Microsoft (SQL Server, Dynamics, SharePoint Server, Office System…)

Il est très difficile de dresser une liste complète étant donnée la variété des services proposés sur la plate-forme Microsoft, et l'évolution constante de cette liste de services. L'état présenté en annexe n'a donc pas vocation à être exhaustif mais plutôt à vous faire découvrir le champ du possible pour vous inviter à entrouvrir la boîte de Pandore.

Quelle ambition donner à sa SOA ?

Au delà des technologies, des serveurs et des éditeurs, il est important de garder en ligne de mire la motivation de votre projet SOA. Bref, nous vous recommandons de prendre un peu de recul par rapport aux technologies, et penser scénarios d'utilisation plutôt que technologies. Dès lors, on parlera des "usages de la SOA", et l'on distinguera notamment :

Les usages de la SOA sont nombreux.
Il peut être tentant pour une entreprise, de se concentrer sur un usage particulier plutôt que de se doter d'une infrastructure de services capables de réaliser une large gamme d'usages...
Ce point est stratégique pour une entreprise : quelle ambition donner à sa SOA ?

La prudence voudra de privilégier une SOA pragmatique qui vise les usages souhaités par les équipes métiers sur le court et moyen terme plutôt qu'une SOA à l'ambition globale qui couvrirait des scénarios futuristes et hasardeux. Pour appuyer cette stratégie, rappelons que nous n'en sommes qu'au début de la 3ème génération des architectures de services ?!

La position de Microsoft sur ce point est de privilégier le pragmatisme au travers de la démarche incarnée par le triptyque : Expose, Compose, Consume.

Et si je veux me doter d'un ESB ?

Il nous reste à aborder un point qui fait couler beaucoup d'encre : l'Enterprise Service Bus (ESB).

Nous ne définirons pas ce qu'est un ESB dans la mesure où il n'a pas de définition qui fasse l'unanimité (quand le marketing s'en mêle !), donc entendez ce que vous avez envie d'entendre derrière ce terme.

La mise en place d'un ESB entre dans le cadre d'une démarche globale d'entreprise et donc nous l'avons vu, fera l'objet d'un niveau certain d'incertitudes. Les entreprises se lanceront donc avec précaution dans une démarche de ce type, et prendront soin dans un premier temps de dresser la liste des fonctionnalités de la vision ESB qu'elles souhaitent réaliser.
Dans la même ligne que la SOA, il est bon de signaler que Microsoft n'a pas d'offre produit "marketée" ESB.
Cependant, il y a fort à parier que si vous recherchez un ESB, vous trouverez des réponses dans le Microsoft ESB for Biztalk Server 2006. Cette offre correspond à un kit prêt à l'emploi de mise en œuvre d'un ESB (implémentation, documentation…), et peut être intégrée dans votre environnement par les partenaires Microsoft.

Perspectives

Si les acteurs J2EE ont pris le leadership SOA au travers du marketing de leurs offres, Microsoft a initié le mouvement de banalisation de la technologie SOA en la relayant au niveau de la tuyauterie, et ce, en proposant une infrastructure SOA, en partie, sans coût supplémentaire, au travers des frameworks WCF, WF ainsi que des services proposés par l'OS Windows.

Les technologies d'exposition (WCF) et de composition (WF) de services proposées par Microsoft apportent des garanties uniques de pérennité pour les investissements réalisés dans la refonte de traitements métier en architecture orientés services.

De plus, nous avons vu comment l'orientation services est présente dans toutes les couches de la plate-forme Microsoft (l'OS, le framework .Net, les serveurs et les offres produits) pour délivrer différents usages.


Annexes

1. Les fondations des services (SOA enablers)

Les technologies suivantes exécutent vos services (ce sont des conteneurs) , ou bien elles contribuent à la mise à disposition de vos services (référentiel, management, transport des messages, gestionnaire de transactions distribuées...).

  • Le framework .Net
    • WCF - Windows Communication Foundation : exposer des services
      • COM+ Service Model Configuration Tool : exposer des composants COM+ sous forme de services WCF
    • WF - Windows Workflow Foundation : composer, orchestrer
    • WCS - Windows CardSpace : pour véhiculer des identités
  • Les serveurs Microsoft
    • Biztalk Server pour ses aspects intégration et orchestration
      • Biztalk HIS : exposer son existant Mainframe
      • Biztalk WCF Adapter Framework : développer des connecteurs spécifiques
    • SQL Server : référentiel de données et de traitements
      • Exposer ses procédures stockées
      • SSSB - Service Broker : véhiculer des messages
      • SSIS - Integration Services : intégrer des données (ETL)
    • MOM - System Center Operation Manager : Gestion des infrastructures selon une vue services
  • Les technologies présentes dans les OS Microsoft
    • MSDTC - Microsoft Distributed Transaction Coordinator : en charge de la gestion des transactions distribuées
    • IIS - Internet Information server : gère le hosting de services (conteneur WCF)
      • ASMX / ASPP.Net : exposer des services simples
    • NLB : Network Load Balancing : gérer sa montée en charge
    • WPAS - Windows Process Activitation Services : activation de services WCF à partir de la génération Vista / Longhorn (alternative à IIS)
    • UDDI Services : annuaire de services
    • WSS - Windows Sharepoint WSRP Producers : exposer des WebParts au format WSRP
    • WMI - Windows Management Infrastructure : référentiel des données de management utilisé notamment par l'instrumentation WCF
2. Les Services Web exposés par l'OS (SOA "in the box")

Les OS Windows proposent un accès via une API de Services Web à certaines de leurs fonctionnalités techniques. Ils sont donc interrogeables par toute technologie puisqu'ils répondent aux standards d'interopérabilité.

3. Les Services Web exposés par les serveurs Microsoft

Les serveurs présentés ci-après proposent une API de Services Web, utilisables par toute technologie puisqu'ils répondent aux standards d'interopérabilité.