|
ndigo fait partie de la "vache texane"
(Longhorn), la nouvelle génération du système
d'exploitation Windows de Microsoft qui
sortira en 2006. Le framework Indigo sera en
charge de gérer toute l'infrastructure de
communication du système et en particulier de
faciliter la "connection" des
systèmes entre eux. Indigo privilégie
l'échange de message asynchrones au détriment
des concepts d'objets distribués.
Messages,
Web services et SOA
Indigo offre "une
infrastructure complète pour la création, la
consommation, la transformation et l'échange de
messages". J'interprète cela en
expliquant que le concept de Web service était
un niveau trop haut dans la pile des briques
technologiques du SOA et qu'en fait il aurait
fallu commencer les fondations directement au
niveau du message (figure 1). Bien que les Web
service pouvaient être décomposés en
messages, des standards comme WSDL ne laissent
pas suffisamment de degré de liberté pour
développer une SOA efficace. D'ailleurs, cela
apparaît dans
des standards comme WS-CDL (Web service
choreography) qui n'arrivent pas à exprimer
directement la chorégraphie de web services,
mais sont contraints de repartir au niveau du
message pour ensuite établir un lien avec des
web services définis par WS-DL.

Figure 1. Une
représentation possible de la pile des briques
technologiques des "web services"
A noter également que Microsoft commence à
penser en terme de "Sytèmes Fortement
Connectés" (Massively Connected Systems).
La notion de système connecté fait partie de
sa définition du concept "Orienté
Service":
|
Qu'est
ce que le concept "Orienté
Service"?
Le
concept "Orienté Service"
définit une nouvelle méthode pour
l'architecture des systèmes connectés,
fondée sur trois principes de base:
-
Un
service est un programme qui interagit
avec d'autres programmes au moyen de
messages
-
Un
client est un programme qui permet à
des humains d'utiliser des services
-
Un
système connecté est une collection
de services et clients
(source
Microsoft) |
J'aime beaucoup cette définition qui, d'une
manière très simple mais pas simpliste,
définit ce qu'est un service, une architecture
orientée service, et l'architecture applicative
sous-jacent (le "client" a souvent
été le parent pauvre des Web services et SOA).
Aujourd'hui, on peut connecter tout système
à tout autre système, le plus souvent avec une
bande passante confortable. Le Web a été le
premier système fortement connecté (navigateur-serveur).
Son succès peut être attribué au fait que les
standards du web son sémantiquement pauvres (donc
facile à mettre en oeuvre avec un bon degré
d'interopérabilité) et que les
"clients" du web (i.e vous et moi)
sont "sémantiquement tolérants".
Si nous voulons tirer les mêmes avantages de
cette connectivité entre programmes, nous
devons aller au-delà des standards du Web avec
notamment un travail important au niveau
sémantique. Aujourd'hui, la couche
technologique du SOA est en pleine construction.
Les standards s'appellent par exemple:
composition, orchestration, chorégraphie,
coordination, collaboration et
interaction.
Par conséquent, Indigo est encore loin
d'être une implémentation complète,
utilisable dans un contexte de SOA, mais c'est
certainement plus qu'une vision. Tout ceux qui
ont utilisé WSE 2.0 (Web Service Enhancement)
peuvent en témoigner. Aujourd'hui, les efforts
de développement d'Indigo cherchent d'abord à
aligner les modèles d'implémentation des
technologies Microsoft au concept de
programmation orientée service. On peut penser
que dans peu de temps Indigo s'attaquera aux
standards du SOA proprement dit. La bonne
nouvelle c'est qu'enfin on parle de message et
de "peer-to-peer" et plus seulement de
"Request-Response" et de consommateur/producteur.
Le
pari de Microsoft
Au delà de l'annonce d'Indigo (qui n'est pas
vraiment une nouvelle, puisqu'on ne trouve rien
de plus aujourd'hui que dans WSE 2.0),
Microsoft, prend un risque très fort en se
lançant le premier dans le bataille du SOA
alors que les technologies du SOA sont loin
d'être définies. BPEL est en plein travail
(sans avoir complètement cerné son cahier des
charges, ignorant tous les autres concepts de la
pile), WS-CDL a publié son premier draft,
Oracle et Sun viennent aussi d'introduire le
concept de "coordination" que je
trouve très intéressant (WS-CAF). Personne ne
travaille encore au niveau des sémantiques
métiers du SOA. ebXML semble bien placé pour
occuper cette place, il y a aussi des standards
de modélisation (BCF et BMC) qui permettraient
de passer du design-time au run-time en un clic
de souris.
Au passage, on peut qu'en même penser que Microsoft ne
se lance pas dans cette aventure totalement
au hasard. Les annonces sur les technologies du
SOA devraient pleuvoir dans les semaines qui
viennent. Il faut aussi considérer que le temps
presse pour assurer la croissance de .NET face a
J2EE. Il faut être sexy et apporter des
innovations réelles pour espérer convaincre.
Indigo est a mon sens une innovation majeure.
Bien sûr, IBM, SUN et Oracle sont sur les
talons de Microsoft. Et puis, il y a aussi une
petite société de la Silicon Valée, Collaxa,
qui pourrait très bien nous montrer et ouvrir
la voie du SOA avant tout le monde.
Conclusion
Le message est clair (:-), SOA représente
l'avenir des architectures d'entreprise. C'est
cette architecture qui nous permettra de tirer
partie des systèmes massivement connectés,
comme en son temps, l'architecture J2EE nous a
permis de conquérir le web. Il est peut être
temps de renommer SOAP, Service Oriented
Architecture Protocol, puisqu'Indigo marque, à
mon sens, la mort des concepts d'Objet Métier
et d'Objet Distribué. En sorte, la victoire du
message sur la méthode. Bienvenue dans le monde
de la Programmation Orientée Service (POS).
Nous avons une architecture, il nous manque
encore, je crois, un langage, si possible
sémantique (et pas syntactique) et déclaratif
(et non pas procédural).
Auteur :
Jean-Jacques Dubray
Biographie : Jean-Jacques est architecte
chez Attachmate où il travaille sur un nouveau
projet lié à SOA. Il travaille depuis 1997 sur
les technologies XML, Web Services, SOA et BPM.
Il a notamment participé a la conception des
standards: ebXML BPSS, BPML 0.4, et OAGIS. Il
est membre du "board" du Centre XML et Web
services de l'université de New-York. |