index

SOA : Service Oriented Architecture

Le but des SOA est d'unifier des applications hétérogènes , et de leur permettre de collaborer.
Plusieurs solutions sont apparues ces dernieres années: Qu'est ce qu'il faut en penser? Que choisir ? Que faut-il éliminer? Quelles sont leurs différences ? Leurs points communs ? Lesquels survivront dans 5 ans? Dans 1 ans?

Les spécifs, c'est clair, sont quasiment illisibles.(230 pages pour JBI, J'ai arrete l'impression de la premiere specif du SCA (Assembly Model Spécification) à 80 pages et ainsi de suite ...)
Les experts (Mais qui sont ils ???? ) , sont tous suspects de partialité, défendent leurs crèmeries ou leurs prestations...

Restons pragmatique : Au bout du compte, ce sera un produit, un serveur, une application distribuée ou non. Essayons de faire le tour de ce qui existe ...
Au secours! Quoi faire ?

Les produits

Nom home SCA JBI ESB Version
swordfish http://www.eclipse.org/swordfish/ *** *** *** Sortie Imminente
Mule http://mule.mulesource.org/ *** *** ***** -
Tuscany http://incubator.apache.org/tuscany/ ***** - - 1.2
open-esb https://open-esb.dev.java.net/ ***** ***** 2.0
petals http://petals.objectweb.org/ ***** ***** ***** 2.1.2
servicemix http://servicemix.apache.org/home.html ***** ***** ***** 4.0
WebSphere www.ibm.com/websphere/ - - - -
fabric3 http://fabric3.codehaus.org/ ***** * * 0.5 Alpha2 Release
Newton http://newton.codecauldron.org/ ***** * * 1.2
HydraSCA http://www.roguewave.com/products/hydra/hydrasca.php******** -
Weblogic http://commerce.bea.com/showproduct.jsp?family=WLS&major=10.3SCA&minor=-1 ***** * * -
Oracle http://www.oracle.com/technologies/soa/events.html ***** * * -
covansys http://www.covansys.com/what/SCAFrameworkforSOA.htm ***** * * -

Comment évaluer un ESB ?

servicemix faq
Devant les besoins d'intégration d'un middleware, il est logique de considérer l'adoption d'un ESB. En faisant les évaluations des logiciels, il est important d'approcher le choses de mannière à ce que vos exigences soient l'instrument central du processus. Il y a habituellement deux niveaux d'évaluation qui doivent être considérés lors de l'adoption de n'importe quel software : vos besoins métiers et les fonctionnalités du logiciel (Ici de l'ESB). Il y a de nombreux points dans ces 2 niveaux, et nous allons les passer en revue.

Votre objectif métier


Ne dites pas que votre objectif métier c'est le SOA. C'est le comment, pas le pourquoi. SOA n'est qu'une façon de penser l'architecture logicielle. Votre objectif métier c'est le but que vous essayez d'atteindre dans votre activité à travers l'usage du logiciel que vous ètes en train de mettre en place. Voilà un exemple:
Notre objectif métier est de combiner des données météo avec des cartes pour fournir aux clients des prévisions météo immédiates pour leurs destinations quand ils font des réservations de voyage sur notre portail. Cela facilite non seulement les projets de voyage, mais aussi permet à notre système d'annonces publicitaire de mieux cibler les clients . Cela apportera un plus à nos clients, mais permettra de mieux cibler les publicités pour tenter d'augmenter le taux de conversions (clics sur annonces).

Remarquez que l'objectif métier est concentré sur le but du logiciel du point de vue métier. Le but est de: Comprendre vos objectifs métiers vous met en meilleure position pour définir des exigences fonctionnelles pour atteindre cet objectif.

Vos exigences fonctionnelles

Une fois compris les objectifs métiers du projet, passons aux exigences fonctionnelles. Ci dessous sont listés quelques exemples d'exigences fonctionnelles pour notre objectif métier:
Ces exigences fonctionnelles augmentent dramatiquement lorsque l'objectif métier est identifié et clairement communiqué à toutes les personnes concernées dans le projet. De telles exigences vont ammener les choix d'architecture du système et du logiciel.

Vos choix d'architecture

Avant de commencer à contacter des fournisseurs, il est important d'établir quelques choix d'architecture. Ces choix ne sont pas gravés dans le marbre.Cela peut inclure de concevoir le système d'une façon "Orientée Service", d'utiliser certains packages, et peut être le hardware et les softs de test. Vous avez peut être fait ces choix de façon implicite à travers vos expériences précédentes. Si il en est ainsi, il est important d'identifier et de communiquer ces décisions explicitement aux différentes paties-prenantes pour qu'il y ait un certain niveau de clarté dans le groupe.
En travailant à travers ces exercices, vous devriez avoir non seulement un ensemble de solutions à partager, mais vous aurez aussi vos critères d'évaluation d'un ESB.

Vos critère pour évaluer un ESB

N'import quelle évaluation de software demande la connaissance des sujets discuttés plus haut. Sans une bonne maîtrise de ces sujets, il est difficile d'évaluer la capicité d'un logiciel d'atteindre des buts spécifiques.
Il est important aussi de ne pas comparer les solutions logiciellles fonction par fonction. Cette méthode d'évaluation ne donne une image quand au but attendu du logiciel.
Par exemple:
Quelle importance si un logiciel A affirme fournir des accés sécurisés vers des ressources X, mais que son API est vraiment compliqué à utiliser ?
Quelle importance si un logiciel B annonce fonctions 1, 2 et 3 mais que ses performances sont déplorables ?
Une expérience personnelle avec un logiciel donné dans votre environnement est une priorité.Quans on parle d'ESB, c'est encore plus critique parceque l'ESB contrôle l'intégration du système et que deux scenarios d'intégration ne sont jamais identiques. Déployer un ESB dans votre environnement pour résoudre un ou deux de vos problèmes par une validation de conception vous donnera bien plus d'informations et de conclusions que n'importe quelles comparaisons sur papier.

Vocabulaire

Standards WS-*

Standards Axis2 CXF JAX-WS/
Metro
WS-Addressing X X X
WS-Coordination X

X
WS-MetadataExchange


X
WS-Policy X X X
WS-ReliableMessaging X X X
Web Services Security X X X
WS-SecureConversation X

X
WS-SecurityPolicy


X
WS-Transaction X

X
WS-Trust X

X
WS-Federation



References