WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Architecture soa (architecture orientée services)

( Télécharger le fichier original )
par Virginie ELIAS
CNAM Nantes - Pays de la Loire - Ingénieur en Informatique 2009
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

1.4.4 ESB

Depuis la fin des années 90, le monde des logiciels libres n'a eu de cesse de vouloir gagner ses lettres de noblesse auprès des entreprises qui les ont accueillis de prime abord avec une certaine méfiance. L'ESB41(*) est souvent représenté comme l' « héritier » de l'EAI, à la différence près qu'il s'appuie sur des standards lui permettant, par exemple, de pouvoir communiquer avec d'autres ESB. Il constitue, en quelque sorte, la colonne vertébrale d'un système d'information agile car les applications amenées à communiquer ensemble, peuvent être très hétérogènes allant jusqu'à inclure des ERP et des plates-formes Web, le tout sur la base de protocoles très différents (HTTP42(*), SOAP43(*) ...).

Les principaux concepts de l'ESB sont les services Web, le routage intelligent basé sur le contenu, la traçabilité, les transformations et l'échange de messages asynchrones, ainsi que la centralisation de la sécurité. L'interopérabilité est très forte car la mise en oeuvre d'un ESB passe avant tout par l'utilisation systématique de standards comme XML, JMS pour les services. Le monitoring de l'activité de l'ESB est assuré par le BAM (Business Activity Monitoring) et la modélisation des processus métiers orchestrés par l'ESB est rendue possible par l'utilisation du BPM (Business Process Management). Cette standardisation de l'intégration rend son coût plus attractif que celui des EAI.

Et déjà les communautés libres proposent des solutions ESB. Nous pouvons citer par exemple le projet Petals soutenu par le consortium OW244(*). C'est par l'arrivée des ESB que s'accélère la prise en compte des standards par les outils EAI stratégiques, amenant ces derniers à revoir leur politique tarifaire. EAI et ESB finissent alors par se rejoindre et il n'est pas rare de trouver une solution se targuant de la mention « EAI/ESB ». Mais la ressemblance entre EAI et ESB n'est que de façade.

1.4.4.1 Constitution de l'ESB

La JBI

La norme JSR-20845(*) définit le fonctionnement de la « Java Business Intégration »46(*) (JBI) et fournit le mode de fonctionnement des composants ainsi que le mode de routage des messages XML vers ces derniers. C'est là que se situe le socle du bus ESB.

Le Composant

Les composants sont, soit externes au bus (dits «Binding Componant» ou BC) et servent de connecteurs avec les applications métiers, ou alors internes (dits «Service Engine» ou SE) car ils sont invoqués à l'intérieur du bus.

Chaque Composant est soit Fournisseur (« Provider ») car il fournit un service interne au bus, soit Client ou aussi appelé Consommateur (« Consumer ») car il se place dans une position d'écoute de l'extérieur, prêt à déclencher un service interne. Un Binding Componant peut ainsi être Provider et/ou Consumer, par contre, un service engine ne peut être que Provider.

Les instances de service sont placées dans un fichier zip appelé le Service Assembling Artifact (SA), en autant de Service(s) Unit (SU). A chacun de ces niveaux de services est associé un fichier jbi.xml contenant la description du fonctionnement du service et les points d'entrée et de sortie (les Endpoints47(*)). Le SA correspond au Use Case UML48(*).

Illustration 9 : Cas d'utilisation / Services

Si le Endpoint du service « VérifierActifs » est favorable alors le service « CréerPrêt » pourra être instancié pour la demande de prêt. Si le Endpoint du service « CréerPrêt » est valide alors l'accord de prêt sera transmis.

Un service peut être utilisé à la demande d'un utilisateur, ou en masse, par un traitement batch. Il y a deux types de services : les services métiers qui répondent à une fonction métier (exemple : calcul d'un taux de marge) et les services d'infrastructure ou services techniques qui sont utilisés par les services métiers mais qui représentent des fonctions transverses du SI (exemple : gestion des comptes utilisateurs).

L'exemple ci après est extrait d'une maquette qui m'a servi à la compréhension des principes de base d'un ESB. Il s'agit de la mise en place d'un flux FTP dans l'ESB Petals49(*) (soutenu par le consortium OW2).

Illustration 10 : Service SU - Get FTP

Illustration 11 : Service SA pointant sur un SU FTP

Il s'agit là de la description de deux niveaux de services JBI : un service unitaire chargé de produire un GET FTP, et l'enveloppe de ce service, appelée « service assembly » ou « SA ». C'est en XML, langage de l'interopérabilité par excellence, et à partir sa grammaire structurante (Xml Schema) que les composants de l'ESB sont définis.

* 41 ESB (Enterprise Service Bus) : architecture fonctionnant comme un bus entre des clients et des fournisseurs de services

* 42 Http (HyperText Transfer Protocol): dans le protocole de transfert Hyper Texte, une méthode est une commande spécifiant un type de requête demandant au serveur d'effectuer une action. Cette action concerne une ressource identifiée par l'URL qui suit le nom de la méthode. (SSL est une forme sécurisée de HTTP).

* 43 Soap (Simple Object Access Protocol) : protocole de RPC orienté objet bâti sur XML. Il permet la transmission de messages entre objets distants, ce qui veut dire qu'il autorise un objet à invoquer des méthodes d'objets physiquement situés sur un autre serveur. Le transfert se fait le plus souvent à l'aide du protocole HTTP, mais peut également se faire par un autre protocole, comme SMTP.

* 44 OW2 : ObjectWeb est un consortium actif d'industriels internationaux (INRIA, Bull, France Télécom, Thales Group ou Red Hat) engagé en matière de Commerce électronique, d'EAI, de Services web. Il s'engage sur le respect de standard de l'OMG (Object Management Group) , le JCP(Java Community Process ), OSGi (Open Services Gateway initiative).

* 45 JSR-208 : http://www.jcp.org/en/jsr/detail?id=208.

* 46 JBI (Java Business Intégration) : spécification normalisant ces intégrations via un jeu d'API permettant à tout fournisseur de pouvoir se connecter à un conteneur JBI pour échanger des messages avec le reste du SI.

* 47 Endpoints : point d'accès à un service.

* 48 UML (Unified Modeling Language ou langage de modélisation unifié) : langage graphique de modélisation des données et des traitements. Pour approfondir : http://www.uml.org.

* 49 Petals : bus d'entreprise orienté services (ESB) hautement distribué, construit sur les spécifications JBI. Le projet est dirigé par EBM Websourcing, et développé selon les orientations du consortium OW2.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Piètre disciple, qui ne surpasse pas son maitre !"   Léonard de Vinci