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

3.4.2.3 Transfert FTP

Une fois le document XML transformé, il doit être détecté puis transmis à un serveur FTP distant : AIX6 (10.1.101.113 port 21).

Illustration 138 : Représentation graphique du transfert du fichier XML par FTP, réalisé sous Netbeans

Pour construire ce transfert, il faut s'appuyer cette fois sur deux WSDL. Le premier permet d'attendre l'arrivée de certains fichiers dans un répertoire particulier (à l'image du service To_grc précédent) et le second permet d'enchaîner directement sur le transfert FTP vers AIX6. Les paramètres nécessaires à ces deux opérations sont spécifiés dans les WDSL (l'adresse du port d'écoute, le nom des fichiers attendus pour le premier WSDL, l'adresse du port FTP, le répertoire cible, le nom du fichier cible pour le second WSDL). Les composants sont, cette fois, au nombre de trois : un composant de type File pour le polling, un autre de type FTP pour le transfert et un troisième, central, pour orchestrer les deux autres.

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

.../...

xmlns:ns2="http://j2ee.netbeans.org/wsdl/SendInventory/ftpTransfer" xmlns:ns3="http://j2ee.netbeans.org/wsdl/SendInventory/fileTrigger" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0" xsi:schemaLocation="http://java.sun.com/xml/ns/jbi ./jbi.xsd">

<service-assembly>

<identification>

<name>PUT_GRC</name>

<description>Represents the Service Assembly of PUT_GRC</description>

</identification>

<service-unit>

<identification>

<name>PUT_GRC-PUT_GRC</name>

<description>Represents this Service Unit</description>

</identification>

<target>

<artifacts-zip>PUT_GRC.jar</artifacts-zip>

<component-name>sun-bpel-engine</component-name>

</target>

</service-unit>

<service-unit>

<identification>

<name>PUT_GRC-sun-file-binding</name>

<description>Represents this Service Unit</description>

</identification>

<target>

<artifacts-zip>sun-file-binding.jar</artifacts-zip>

<component-name>sun-file-binding</component-name>

</target>

</service-unit>

<service-unit>

<identification>

<name>PUT_GRC-sun-ftp-binding</name>

<description>Represents this Service Unit</description>

</identification>

<target>

<artifacts-zip>sun-ftp-binding.jar</artifacts-zip>

<component-name>sun-ftp-binding</component-name>

</target>

</service-unit>

<connections>

<connection>

<consumer endpoint-name="OutboundOneWayMessagingPortTypeRole_partnerRole" service-name="ns1:PartnerLink2"/>

<provider endpoint-name="OutboundOneWayMessagingPort" service-name="ns2:OutboundOneWayMessagingService"/>

</connection>

<connection>

<consumer endpoint-name="fileTrigger_InboundPort" service-name="ns3:FileInboundService"/>

<provider endpoint-name="FileInboundPortTypeRole_myRole" service-name="ns1:PartnerLink1"/>

</connection>

</connections>

</service-assembly>

</jbi>

Illustration 139 : Assemblage du transfert FTP pour la JBI (Jbi.xml)

L'orchestrateur central permet de définir les règles d'exécution des deux actions (polling et transfert). BPEL est le langage communément utilisé pour réaliser cette orchestration. Il est un dérivé de XML et est devenu depuis sa version 2, une spécification du consortium OASIS en mars 2007. Le choix d'un ESB doit également se faire de façon à ce que BPEL soit supporté dans sa version 2.0. Cette version est bien celle de la plate-forme de réalisation choisie.

Illustration 140 : Représentation graphique de l'orchestration, réalisée sous Netbeans

BPEL définit ainsi le processus, c'est à dire la logique d'enchaînement des actions (ici : attente et transfert de fichiers XML vers un serveur FTP). Sa construction est balisée à l'image d'un fichier XML :

q La balise <Process> constitue la racine du fichier BPEL. L'attribut « name » permet de nommer le processus,

q La balise <Import> permet d'importer les fichiers WSDL (un WSDL pour détecter les nouveaux fichiers, et un autre pour le transfert FTP),

q La balise <PartnerLinks> sert à lier le rôle de chaque WSDL au BPEL,

q La balise <Variables> définit les variables utiles au BPEL,

q La balise <Sequences> liste des actions du processus, elles-mêmes balisées :

<Receive> pour réceptionner le signal du Partenaire détectant un nouveau fichier,

<Assign> pour véhiculer le message,

<Invoke> pour appeler un Web Service.

Illustration 141 : Actions du processus BPEL (extrait du PUT_GRC.bpel)

Le BPEL PUT_GRC s'appuie sur deux services unitaires. Le premier service est dédié à la technologie de communication (File) correspondant un document XML généré dans un répertoire en attente de transfert. Le second service est le service FTP faisant appel à une méthode PUT afin de pousser le fichier détecté dans le répertoire, vers un autre répertoire sur le serveur FTP. A cet instant, il est important de s'assurer que le composant interne FTP de l'ESB retenu, offre les possibilités de sécurisation SSL (RFC 2228) et non la simple spécification RFC 959 sans cryptage. Cette condition est bien vérifiée par rapport à la plate-forme de réalisation.

précédent sommaire suivant