Faut-il renommer ses produits "SOA xxxx" pour être un acteur SOA ?!
Par Stève SFARTZ le mercredi 7 mars 2007, 16:10 - Architecture - Lien permanent
Guide pratique de la SOA Microsoft en février 2007
Ce guide s'adresse aux architectes, chefs de projets et développeurs qui
mettent en œuvre des applications de niveau locales ou départementales jusqu'à
la refontes de SI. Il a pour objectif d'apporter un éclairage des produits et
technologies de l'offre Microsoft qui contribuent à la réalisation de projets
SOA.
Pré-requis : Connaissance des concepts des architectures orientées
services
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 applications composites
- Le bureau métier
- Les portails d'entreprise SharePoint ou bien développés en spécifiques
- Les applications bureautiques
- Les processus métiers
- Les modèles économiques du type Software as a Service
- Les scénarios de Mashup
- Les échanges partenaires
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
- WCF - Windows Communication Foundation : exposer des services
- 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
- Biztalk Server pour ses aspects intégration et orchestration
- 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é.
- WinRM - Windows Remote Management : implémentation WS-Management
- WSS - Windows Sharepoint Services : les fonctionnalités de type portail
- AD
- ADFS - Active Directory Federation Services : fédération des identités entre services
- RMS - Windows Right Management Services : accéder à des contenus protégés
- WSD - Web Services for Devices : API proposée aux appareils mobiles
- MCF - MOM Connector Framework : pour remonter des alertes
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é.
- Serveurs métier & utilitaires
- Microsoft Dynamics CRM : les fonctionnalités de type CRM
- Microsoft Small Business Financials
- MapPoint
- Windows Live ID : le service Office Live Discovery Web Service permet de s'intégrerau mécanisme d’authentification Windows Live ID
- SQL Serveur
- SQL Server Reporting Services : accès complet aux fonctionnalités de Report Server
- SQL Server Integration Services : intégration de données externes via Web Services
- SQL Server Analysis Services : selon le protocole XML for Analysis (XML/A)
- Team Foundation server : interroger et insérer dans le référentiel de travail en équipe
- Office
- Exchange Server 2007
- Microsoft Unified Messaging
- Office 2003 Web Services Toolkit : depuis VBA, découvrir et consommer des Services Web situés dans des annuaires de services
- VSTO - Visual Studio Tools for Office : développer des accès à des services Web et les intégrer aux outils Office
- InfoPath : permet de créer des références vers des données issues de Web Services
- SharePoint Web Part Toolkit : intègre un consommateur de portlets au format WSRP
- Live Communications Server : accéder via des services AJAX / JSON aux services de LCS