51
SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

Embed Size (px)

Citation preview

Page 1: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

SOAInteropérabilité entre SII de partenaires commerciaux

Espace Informatique NeuchâteloisJeudi 22 novembre 2007

Page 2: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 2

Plan

Projet de recherche HES-SO

DémonstrateurPrincipes

Base du dialogue entre les SII des 3 partenaires

Plate-forme technique

Environnement de développement

Service

Chorégraphie du processus global

Orchestration du processus de chaque partenaire

Réalisation de l’interface de visualisation

Conclusions

Page 3: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 3

Projet HES-SO

Page 4: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 4

BPMS – 4 - SME Projet HES-SO

• Plate-forme de compétences

• Démonstrateur montrant l’interopérabilité de divers BPMS

Business Process Management SystemsFor Small To Medium-Sized Enterprises

Page 5: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 5

Cas pratique Projet HES-SO

Page 6: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 6

Démonstrateur

Une page Web, pour garantir la portabilité, permet de visualiser simultanément l’état des processus internes de chacun des 3 partenaires

Page 7: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 7

Démonstrateur - Principes

Le démonstrateur est un modèle de simulation

• Un modèle est une simplification de la réalité

• Un modèle privilégie un point de vue

Page 8: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 8

Entités informatiques

• 3 SII distincts – Détaillant– Producteur– Transporteur

• SII Détaillant– Console de visualisation d’avancement du processus

global– Console de saisie de commande

Principes

Page 9: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 9

ScénarioPrincipes

Page 10: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 10

Simulation des tâchesPrincipes

Chaque tâche réalisée par le SII d’un des

partenaires est simulé par une temporisation de

30s

Chaque tâche réalisée par le SII d’un des

partenaires est simulé par une temporisation de

30s

Page 11: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 11

Notification de changement d’étatsPrincipes

Démonstrateur

Transporteur

Etat du processus

Détaillant Producteur

Etat du processus

Etat du processus

La console de visualisation réinterroge les SII des partenaires

toutes les 10s

La console de visualisation réinterroge les SII des partenaires

toutes les 10s

Page 12: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 12

Base du dialogue entre SII des 3 partenaires

• Envoi de message | N/Réf – Notre référenceID (Clé primaire) de l’objet du message c/o l’expéditeur

• Réponse de messageID (clé primaire) de l’objet créé par le destinataire et qui servira de référence pour les échanges ultérieurs (V/Réf)

• Envoi de message | V/Réf – Votre référenceID (Clé primaire) de l’objet du message c/o le destinataire

Page 13: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 13

MCD - DétaillantBase dialogue

N/Réf

V/Réf

Page 14: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 14

MCD - ProducteurBase dialogue

N/Réf

V/Réf

Page 15: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 15

MCD - TransporteurBase dialogue

N/Réf

V/Réf

Page 16: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 16

Démonstrateur – Plate-forme technique

Démonstrateur

Serveur d’application (iAS)

Base de données Oracle

SchémaDétaillant

SchémaTransporteur

SchémaProducteur

CartoucheWeb PL/SQL

Services WebProducteur

Services WebTransporteur

Services Web Détaillant

Page 17: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 17

Démonstrateur – Environnement de développement

FonctionnalitésEnvironnement de développement

Base de données Oracle Designer

Applications Web/PLSQL Oracle Designer

Réalisation et publication des services Web

Oracle JDeveloper

Console de visualisationOracle DesignerAJAX

Modélisation de scénarios, d’orchestration et de chorégraphie

IBM Rational Rose

Page 18: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 18

Démonstrateur – Service

Exécution du codeassocié aux services

ApplicationDétaillant

ApplicationProducteur

Services WebProducteur

Publication des services offerts

Invocationd’un service

Functions et procédures

Réalisation des services

Page 19: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 19

Exemple de l’envoi de la commande du détaillant au producteurService

Page 20: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 20

Procédure PL/SQL Créer commande c/o le producteur

FUNCTION NEWORDER (RETAILERID IN NUMBER ,ORDERITEMS IN PROD_PACK.TYPE_ORDERITEMS ) RETURN INTEGER ISVL_NUMCMD NUMBER(9);

BEGIN -- Recherche séquence de la commande SELECT CMD_SEQ.NEXTVAL INTO VL_NUMCMD FROM DUAL ; -- Insertion commandes INSERT INTO COMMANDES (NUMERO, DET_NUMERO, DATE_RECEPTION, ETAT) VALUES (VL_NUMCMD, RETAILERID, SYSDATE, 'OUVERTE'); -- Insertion des lignes de commandes FOR i IN 1..ORDERITEMS.COUNT LOOP INSERT INTO LIGNECOMMANDES (CMD_NUMERO, PROD_NUMERO, QUANTITE) VALUES (VL_NUMCMD, ORDERITEMS(i).IDPROD, ORDERITEMS(i).QUANTITE); END LOOP ; COMMIT; RETURN VL_NUMCMD;END;

Service

Page 21: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 21

Transformation de la procédure PL/SQL Créer commande en service WebService

Station de développementJDeveloper

ApplicationProducteur

Services WebProducteur

Publication des services offerts

Functions et procédures

Réalisation des services

1. Reprise des signaturesdes procédures et fonctions à publier comme services

2. Réalisation et publication des services

Lien entre réalisationet code exécutable

Page 22: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 22

Extraits du fichier WSDL de définition du service Web Créer commande

… <element name="neworderElement"> <complexType> <sequence> <element name="retailerid" type="decimal" nillable="true"/> <element name="orderitems" type="tns:ProdPackOrderitemUser" nillable="true" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> </element> <element name="neworderResponseElement"> <complexType> <sequence> <element name="result" type="int" nillable="true"/> </sequence> </complexType> </element>… <service name="WSProductor_newOrder"> <port name="WSProductor_newOrderSoapHttpPort" binding="tns:WSProductor_newOrderSoapHttp"> <soap:address location="http://iasprod.ig.he-arc.ch:80/BPMSPROD_WS-newOrder-

context-root/WSProductor_newOrderSoapHttpPort"/> </port> </service>

Service

Page 23: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 23

Exemple d’enveloppe de message SOAP envoyé au SII du producteurService

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body xmlns:ns1="http://bpmsprod_prod10g/WSProductor_newOrder.wsdl/types/"> <ns1:neworderElement> <ns1:retailerid>2000</ns1:retailerid> <ns1:orderitems> <ns1:idprod>9001</ns1:idprod> <ns1:quantite>1</ns1:quantite> </ns1:orderitems> </ns1:neworderElement> </soap:Body></soap:Envelope>

Page 24: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 24

Exemple de message SOAP de retour du SII du producteurService

<env:Envelope  xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"  xmlns:xsd="http://www.w3.org/2001/XMLSchema"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:ns0="http://bpmsprod_prod10g/WSProductor_newOrder.wsdl/types/"> <env:Body>  <ns0:neworderResponseElement>   <ns0:result>742</ns0:result>  </ns0:neworderResponseElement> </env:Body></env:Envelope

Page 25: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 25

Procédure PL/SQL d’invocation de service Web c/o le détaillant (1)

FUNCTION NEWORDER (PE_RETAILERID IN INTEGER ,PE_ORDERITEMS IN INVWSPROD_PACK.TYPE_ORDERITEMS ) RETURN INTEGER ISVL_REQUEST SOAP_API.T_REQUEST;VL_NUMCMDPROD INTEGER(9);VL_RESPONSE SOAP_API.T_RESPONSE;

BEGIN VL_REQUEST := SOAP_API.new_request(p_method => 'ns1:neworderElement', p_namespace => 'xmlns:ns1="http://bpmsprod_prod10g/WSProductor_newOrder.wsdl/types/"', p_envelope_tag => 'soap'); -- Ajout du paramètre id détaillant SOAP_API.add_parameter( p_request => VL_REQUEST, p_name => 'ns1:retailerid', p_type => 'xsd:decimal', p_value => PE_RETAILERID);

Service

Page 26: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 26

Procédure PL/SQL d’invocation de service Web c/o le détaillant (1)

-- Ajout du paramètre commande FOR i IN 1..PE_ORDERITEMS.COUNT LOOP SOAP_API.add_parameter( p_request => VL_REQUEST, p_name => 'ns1:orderitems', p_type => 'tns:ProdPackOrderitemUser', p_value => '<ns1:idprod>'||PE_ORDERITEMS(i).IDPROD||'</ns1:idprod><ns1:quantite>'||PE_ORDERITEMS(i).QUANTITE||'</ns1:quantite>'); END LOOP; VL_RESPONSE := SOAP_API.invoke( p_request => VL_REQUEST, p_url => PARAMETRAGE.VG_IASNAME||'/BPMSPROD_WS-newOrder-context-root/WSProductor_newOrderSoapHttpPort', p_action => 'neworderResponseElement'); VL_NUMCMDPROD := SOAP_API.get_return_value(p_response => VL_RESPONSE, p_name => 'ns0:result', p_namespace => 'xmlns:ns0="http://bpmsprod_prod10g/WSProductor_newOrder.wsdl/types/"'); RETURN VL_NUMCMDPROD;END;

Remarque: PARAMETRAGE.VG_ISNAME contient l’URL du serveur d’application iAS

Service

Page 27: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 27

Démonstrateur – Chorégraphie du processus global

• Normes – WSCI (Web Services Choregraphy Interface)

– WS-CDL (Web Services Choregraphy Description Language)

• Chorégraphie du démonstrateur réalisé à l’aide de diagrammes d’activités d’UML

Notre processus global implique des interactions pair-à-pair entre les 3 partenaires sans chef d’orchestre

Définition d’une chorégraphie

Page 28: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 28

Vue globaleChorégraphie

A

B

GH

D

Mode de saisie

Saisie commande par un moyen externe

Saisie commande par le démonstrateur

cdedet : CommandeDetai llant

[Ouverte]

cdedet : CommandeDetai llant

[Livraison avisée]

* Envoi commande au producteur

cdedet : CommandeDetai llant

[Envoyée]

* Réception de la marchandise

cdedet : CommandeDetai llant

[Livrée]

Mise à jour commande

cdedet : CommandeDetai llant

[Chargement en route]

Créer commande

Insertion commande

Mise à jour commande

Créer commande

* Demander un transport

cdeprod : CommandeProducteur

[Ouverte]

cdeprod : CommandeProducteur

[Transport demandé]

cdeprod : CommandeProducteur

[Transport confirmé]

cdeprod : CommandeProducteur

[Chargement conditionné]

cdeprod : CommandeProducteur

[Prise en charge]

cdeprod : CommandeProducteur

[Recue par le détaillant]

Mise à jour commande

* Conditionnement du chargement

Mise à jour commande

Mise à jour commande

Informer détail lant de la livraison

trsp : DemandeTransport

[Ouverte]

* Traiter demande

trsp : DemandeTransport

[Programmée]

* Chargement de la marchandise

trsp : DemandeTransport[Marchandise conditionnée]

trsp : DemandeTransport

[En route]

trsp : DemandeTransport

[Quittancée]

Créer demande de transport

Mise à jour demande

Mise à jour demande

C

FF2

E

: Transporteur : Producteur : Détaillant : Collaborateur du détaillant

Page 29: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 29

1er fragmentChorégraphie

Page 30: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 30

2ème fragmentChorégraphie

Page 31: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 31

3ème fragmentChorégraphie

Page 32: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 32

4ème fragmentChorégraphie

Page 33: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 33

5ème fragmentChorégraphie

Page 34: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 34

6ème fragmentChorégraphie

Page 35: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 35

7ème fragmentChorégraphie

Page 36: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 36

Démonstrateur – Orchestration du processus de chaque partenaire

• Normes – BPEL4WS ou WS-BPEL (Business Process Execution

Language For Web Services)

• Orchestration des processus internes de chaque partenaires du démonstrateur réalisé à l’aide de diagrammes états et transitions d’UML

Le SII de chaque partenaire organise la partie de processus qui lui est propre

Définition d’une orchestration

Page 37: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 37

DétaillantOrchestration

Page 38: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 38

ProducteurOrchestration

Page 39: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 39

TransporteurOrchestration

Page 40: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 40

Réalisation de l’interface de visualisation

1

2

3

4

5

6

7

Page 41: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 41

Modèle

Etats– Activités– Actions

Transitions– Gardes

Visualisation

...

Saisie commande

exit/ Crée(cdeDet)

Préparation envoi au producteur

do/ Raffraichiexit/ Crée (cdeProd)

[ cdeDet=Ouverte ] / Focus Détaillant

Demande de transport

do/ Raffraichiexit/ Crée(trsp)

[ cdeDet=Envoyee ] / Focus Producteur

Conditionnement de la marchandise

do/ Raffraichi

Chargement et transport

do/ Raffraichi

[ cdeProd=Chargement conditionné ] / Focus Transporteur

Réception de la marchandise

entry/ Raffraichi

[ trsp=En route ] / Focus Détaillant

Traiter demande de transport

do/ Raffraichi

[ cdeProd=Transport demandé ] / Focus Transporteur

[ trsp=Programmé ] / Focus Producteur

Page 42: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 42

Structure générale du code JavascriptVisualisation

demarre SaisieDemonstrateur

Mode

demarre EcouteSeule

demarre SaisieIntefaceiAS

enregistre Saisie

Saisie val idée

traite Saisie

Fin traitement SII détai llant

raffraichi

recherche NouvelleCommande

trouvé?

[ Oui ] / Attente 10s

traite NouvelleCommande

[ Non ]

traite Raffraichissement

chge Focus

Processus terminé?

[ Non ] / Attente 10s

Page 43: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 43

Rendu partiel de pageVisualisation

• AJAX – Asynchronous Javascript And XML

function newXMLHttpRequest(){

try {return new XMLHttpRequest(); }

catch(e) {

try {var aObj = new ActiveXObject("Msxml2.XMLHTTP");}

catch (e) {

try {var aObj = new ActiveXObject("Microsoft.XMLHTTP");}

catch(e) {return false;}

}

}

return aObj;

};

Page 44: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 44

Rendu partiel de page synchroniséVisualisation

function executeXMLHttpRequest(procServeur, param, foncExecute){

var http = newXMLHttpRequest() ;

http.open("POST",procServeur,false) ; // false pour une requête synchrone

http.setRequestHeader("Content-Type","application/x-www-form-urlencoded") ;

http.send(param) ;

var docXML = http.responseXML.documentElement;

if (http.status == 200) {

eval(foncExecute);

} else {

alert("L'erreur suivante est survenue: " + http.status);

};

};

Page 45: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 45

Fonction raffraichiVisualisation

function raffraichi() {

// pour autant que la commande du détaillant soit enregistrée

if (commandeDetNum != "") {

var donnee = "PE_NUMERO=" + commandeDetNum;

executeXMLHttpRequest ("det_module.rendEtat",

donnee, "traiteRaffraichissement(docXML,DETAILLANT)");

// pour autant que la commande du producteur soit enregistrée

if (commandeProdNum != "") {

var donnee = "PE_NUMERO=" + commandeProdNum;

executeXMLHttpRequest ("det_module.rendEtatProd",

donnee, "traiteRaffraichissement(docXML,PRODUCTEUR)");

Page 46: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 46

Requête REST d’interrogation d’état d’une commande du détaillantVisualisation

PROCEDURE RENDETAT

(PE_NUMERO IN VARCHAR2

) IS

VL_ETAT COMMANDES.ETAT%TYPE;

BEGIN

SELECT ETAT INTO VL_ETAT FROM COMMANDES

WHERE NUMERO = PE_NUMERO;

owa_util.mime_header('text/xml', true);

htp.p ( co_declarationXML);

htp.p('<reponse>');

htp.p('<etat>' || VL_ETAT ||'</etat>');

htp.p('</reponse>');

END;

Page 47: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 47

Requête REST d’interrogation d’état d’un objet de partenaire (commande producteur)Visualisation

PROCEDURE RENDETATPROD

(PE_NUMERO IN VARCHAR2

) IS

VL_ETAT COMMANDES.ETAT%TYPE;

BEGIN

VL_ETAT := INVWSPROD_PACK.ETATCOMMANDE(PE_NUMERO);

owa_util.mime_header('text/xml', true);

htp.p ( co_declarationXML);

htp.p('<reponse>');

htp.p('<etat>' || VL_ETAT ||'</etat>');

htp.p('</reponse>');

END;

Page 48: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 48

Message SOAP d’interrogation d’état d’un objet de partenaire (commande producteur)Visualisation

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<soap:Body xmlns:ns1="http://bpmsprod_prod10g/WSProductor_etatCommande.wsdl/types/">

<ns1:etatcommandeElement>

<ns1:peIdcmdprod>1182</ns1:peIdcmdprod>

</ns1:etatcommandeElement>

</soap:Body>

</soap:Envelope>

Page 49: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 49

Message SOAP de réponse d’état d’un objet de partenaire (commande producteur)Visualisation

<env:Envelope  xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"  xmlns:xsd="http://www.w3.org/2001/XMLSchema"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:ns0="http://bpmsprod_prod10g/WSProductor_etatCommande.wsdl/types/"> <env:Body>  <ns0:etatcommandeResponseElement>   <ns0:result>RECUE PAR DETAILLANT</ns0:result>  </ns0:etatcommandeResponseElement> </env:Body></env:Envelope>

Page 50: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 50

7. Conclusions

• Ne nécessite pas une refonte des applications et le recours à des logiciels spécifiques

• Soigner le référencement des objets des tiers impliqués

• Charge de travail relativement restreinte– Env. 20-30 jours pour le développement et la

documentation de l’application et des services des 3 partenaires

– Env. 10 jours pour la conception, le développement et la documentation de l’interface de démonstration

Page 51: SOA Interopérabilité entre SII de partenaires commerciaux Espace Informatique Neuchâtelois Jeudi 22 novembre 2007

22 novembre 2007 / p.-a. sunier SOA - Interopérabilité entre SII de partenaires commerciaux 51

Références

Site du laboratoire de génie logiciel de la HE-Arc:http://lgl.isnetne.ch/

Rubriques:Ra&D

Sagex-18305

EnseignementMéthodologie

Modélisation

Le site renvoie à d’autres références plus complètes.