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 ). Quelle source de valeur pour le Groupe Terrena?

( Télécharger le fichier original )
par Virginie ELIAS
Conservatoire des arts et métiers de Nantes - Pays de la Loire - Ingénieur CNAM 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

2.6.4.3 Le Wsdl

Les WSDL constituent les interfaces des services. Ils découlent naturellement des diagrammes d'Activités. Les activités peuvent être stéréotypées « Service » ou « Interface » dans le cadre d'une architecture SOA. Une interface fait appel à un service, mais un service n'est pas forcément exposé et donc objet d'une interface (exemple : service interne tels qu'un service de transport). Cibler les WSDL revient donc à identifier les besoins d'interface.

Illustration 121 : Exposition d'un service pour le consommateur

Ici, le consommateur dispose d'une interface d'accès au service d'extraction de données qui constitue un CRUD. Cette interface propose toutes les opérations disponibles pour cet accès. Le fournisseur quant à lui, détecte l'appel et exécute le CRUD correspondant à l'opération choisie (extraction de tiers par exemple).

Illustration 122 : Interface entre le composant de détection de fichier et le composant de transformation

Ici, l'ESB doit combiner l'action de deux composants : le premier composant détecte la présence d'un message, et le second le transforme. Ce couple est plus complexe puisqu'il renferme une transformation et donc une structure source et une structure cible différente. Mais il renferme aussi une interface car : « composant A » assemblé « composant B » => une interface.

Pour modéliser une interface de service, il faut donc d'abord s'intéresser aux services eux-mêmes.

Modélisation d'un WSDL pour un service CRUD

Les CRUD, ou services de données, détiennent les règles de gestion propres à un ou plusieurs objets métier (Tiers, Adresse, Solde ...) pour lequel ils détiennent la responsabilité d'accès. Ils renferment les opérations qui vont permettre de lire, de supprimer, de modifier ou de créer des données, mais également d'effectuer d'autres opérations plus complexe (recherches, mise en forme, agrégations etc ...). A ce stade il faut s'assurer que les CRUD soient les plus standardisés possible par rapport au Système d'information, afin de ne pas reproduire les travers connus au niveau des silos de données (la multiplicité des objets plus ou moins redondants est un frein à l'agilité).

Illustration 123 : Exemple de modelisation d'un service de données ou CRUD

Il a été décidé que les opérations de préparation (PreparerAdresse, preparerInfo_Generales, PreparerRIB) soient réunies dans un seul service d'extraction qui, enrichi de paramètres d'entrée, pourra tantôt préparer les adresses, tantôt les RIB ou les Information générales d'un tiers. Ce service fait l'objet d'une fiche comme tout autre service afin de constituer le catalogue des services disponibles.

Entête

 

Nom

EXTRACTION

Définition

A partir d'un objet tiers Pivot correspondant au paramètre P1, extraire l'ensemble des information de l'entité respectant la clause Where (P7), dans l'ordre précisé par le paramètre P8.

Type (Crud ou service Composé)

CRUD

Objet(s) utilisés

P1

Version

1.0

RACI

 

« Responsible »

en charge des modifications à apporter aux services

 

« Accountable »

en charge de la gestion du contrat

 

« Consulted »

à consulter avant d'apporter une modification au contrat

 

« Informed »

à informer de la modification du contrat.

 

Opérations

 

Nom

EXTRACTION

Objets Pivots (paramètres)

P1

Règles de Gestion

Nom not null

Traitement

Procédure oracle EXTRACTION(P1,P2,P3,P4,P5,P6,P7,P8)

Propriétés

 

Mode d'appel

WSDL

Contraintes de sécurité

Aucune

Niveau de tolérance aux pannes

Gcat disponible

Temps moyen d'exécution attendu (SLA)

2 secondes

Tableau 10 : Fiche Service

Magicdraw propose dans sa version entreprise un diagramme WSDL qui, à condition d'être familiarisé avec cette famille de diagramme, permet de constituer l'ossature des WSDL. Ainsi, comme les autres diagrammes du même outil, il est possible générer le code correspondant.

Illustration 124 : Diagramme WSDL du CRUD d'extraction réalisé sous MagicDraw

<?xml version="1.0" encoding="UTF-8"?>

<definitions name="EXTRACTION"

targetNamespace="http://extraction-table/EXTRACTION.wsdl"

xmlns="http://schemas.xmlsoap.org/wsdl/"

xmlns:tns="http://extraction-table/EXTRACTION.wsdl"

.../...

<message name="extractionTableInput">

<part name="param0" type="xsd:string"/>

<part name="param1" type="xsd:string"/>

<part name="param2" type="xsd:string"/>

<part name="param3" type="xsd:string"/>

<part name="param4" type="xsd:string"/>

<part name="param5" type="xsd:string"/>

<part name="param6" type="xsd:string"/>

<part name="param7" type="xsd:string"/>

.../...

<operation name="extractionTable">

<soap:operation soapAction="urn:extraction_table-EXTRACTION/extractionTable"/>

<input>

<soap:body use="encoded" encodingStyle= http://schemas.xmlsoap.org/soap/encoding/ namespace="urn:extraction_table-EXTRACTION"/>

</input>

<output>

<soap:body use="encoded" encodingStyle="http://s hemas.xmlsoap.org/soap/encoding/" namespae="urn:extraction_table-EXTRACTION"/>

</output>

</operation>

</binding>

.../...

</definitions>

Illustration 125 : Code WSDL du CRUD d'extraction

Cette modélisation de CRUD a été testée jusqu'à la phase de déploiement. Pour ce faire, un package Oracle « EXTRACTION » en Version 9i a été réalisé et exposé comme service grâce au module OC4J (Oracle Componant for J2ee) qui construit un WSDL à partir du package et le déploie. Il est intéressant de comparer le WSDL constitué à partir de la modélisation UML avec le WSDL généré par le module OC4J.

Des différences existent. Elles se situent par exemple au niveau de :

q L'encoding (UTF-8 pour le WSDL généré sur la machine unix implémentée de l'OC4J, contre Windows-1252 pour le Wsdl généré à partir d'une autre machine XP),

q La balise de documentation renseignée sur le WSDL construit à partir de l'OC4J.

Le reste est très comparable et cela permet d'affirmer que la phase de déploiement via le modeleur MagicDraw correspond au déploiement OC4J des package Oracle.

Rappel : dans la version 11g d'Oracle, les packages sont nativement exposés. Un Data Access Descriptor (DAD) permet de réunir plusieurs paramètres (utilisateur, mot de passe, chaîne de connexion, pool de connexion, compatibilité SSO etc ...). A partir de ce DAD, de l'addresse machine hébergeant le service WEB, le domaine, le numéro de port et le chemin d'accès à la procédure, il est possible d'appeler la procédure cataloguée à partir d'un simple browser (http://myserveur :77/pls/DADVELIAS/extraction).

précédent sommaire suivant