Ministère du Travail, des Relations sociales, de la Famille et de la Solidarité Déclaration des mouvements de main-d œuvre par échange de données informatisées Informations de mise en œuvre Mai 2008 1/11
SOMMAIRE 1. INTRODUCTION... 3 2. MODE TEST ET MODE REEL... 4 3. SECURITE ET IDENTIFICATION... 4 4. SERVICES DISPONIBLES... 5 4.1. INTERACTIONS ENTRE LE DECLARANT ET TELE-DMMO... 5 4.2. SERVICEWEB «DECLARERDMMO( )» POUR LE DEPOT DES DECLARATIONS... 5 4.2.1. DESCRIPTION DU SERVICE «DECLARERDMMO( )»... 6 4.2.2. FORMAT DU FICHIER D ENTREE XML CONTENANT LES DECLARATIONS... 6 4.3. SERVICEWEB «STATUTDECLARATION ( )» POUR RECUPERER LE COMPTE RENDU DES DECLARATIONS... 6 4.3.1. DESCRIPTION DU SERVICE... 6 4.3.2. COMPTE RENDU DES DECLARATIONS ETATS ET ANOMALIES... 6 5. ACCUSE DE RECEPTION DE DEPOT DE FICHIER... 7 6. WSDL... 8 7. EXEMPLE D ECRITURE DE L APPLICATION CLIENTE... 9 8. INFORMATIONS UTILES... 11 8.1. INFORMATIONS SUR LES ENVIRONNEMENTS DE DEVELOPPEMENT ET LES LIBRAIRIES... 11 8.2. LIENS... 11 2/11
1. INTRODUCTION L objet de ce document est de présenter brièvement les éléments nécessaires pour la mise en place des Web Services dans le cadre de l application Télé-DMMO. Les fichiers ci-dessous sont fournis dans le fichier TeleDMMO EDI.zip Titre L accès aux Web Services Télé-DMMO EDI Charte.doc dmmoservices.wsdl Contenu https://www.dmmo.travail.gouv.fr/axis2/services/dmmowebs ervices La charte EDI Le fichier WSDL représente la description du service web. Il décrit les «fonctions» qu on peut appeler, les entités manipulées par ces «fonctions» (données en entrée et données en sorties», le protocole utilisé pour appeler ces fonctions (SOAP-http par exemple). Ce fichier est également accessible à l adresse suivante : DMMO.xsd DMMOSortie.xsd dmmo_30009574220061221160237.zip https://www.dmmo.travail.gouv.fr/axis2/services/dmmowebs ervices?wsdl Le schéma xml du fichier de la télé-déclaration des entreprises Le schéma xml du fichier rapport de la télé déclaration reçu par le webservice StatutDeclaration En exemple : le zip du fichier xml d une télé déclaration 3/11
2. MODE TEST ET MODE REEL Afin de permettre les tests, deux modes ont été mis en place test : aucune donnée ne sera intégrée en base. Un rapport sera quand même mis à disposition. intégration : enregistrement des déclarations validées dans la base. Ce paramètre figure dans le fichier xml que le télédéclarant envoie en entrée pour le service «declarerdmmo( )» Exemple <TDMMO_TYPE_TRAITEMENT >1</TDMMO_TYPE_TRAITEMENT> 3. SECURITE ET IDENTIFICATION Le protocole utilisé pour les webservices est de type HTTPS afin d assurer le cryptage et la confidentialité des données échangées entre le serveur TELE-DMMO et l établissement émetteur. Il n est pas prévu actuellement de mettre en place un système d authentification des logiciels utilisateurs du service web des TELEDMMO. De même, aucun certificat particulier n est demandé pour valider un dépôt de déclaration. L association SIREN/CodeDmmo permet de valider l identification et la prise en charge des déclarations contenues dans le fichier. 4/11
4. SERVICES DISPONIBLES 4.1. INTERACTIONS ENTRE LE DECLARANT ET TELE-DMMO La figure ci-dessous regroupe les actions qui interviendront entre le déclarant (logiciel éditeur) et l application TELE-DMMO. Figure 1 : diagramme de séquences entre les webservices teledmmo Deux servicesweb declarerdmmo() et statutdeclaration() seront directement accessibles depuis Internet. Il n est pas prévu actuellement de passer par un portail qui assurerait l accès aux services. 1. Le premier service declarerdmmo() permettra de déposer les déclarations sur le serveur de TELE-DMMO 2. Le deuxième service statutdeclaration() permettra de récupérer après dépôt le compte rendu du traitement de la ou les déclarations déposées. La présence de deux webservices provient du fait que le traitement des déclarations se fera de manière asynchrone par rapport au dépôt de fichier : Après dépôt, l analyse des déclarations sera automatiquement exécutée mais son temps de traitement sera fonction du nombre de déclarations déposées et du contenu de chaque déclaration. Pour ces raisons, la connexion ne peut pas rester ouverte en attente d un compte rendu en attendant que le traitement se termine. C est pour cela qu un deuxième webservices sera mis en place afin de fournir ultérieurement le compte rendu une fois l analyse et l intégration des déclarations terminée. 4.2. SERVICEWEB «DECLARERDMMO( )» POUR LE DEPOT DES DECLARATIONS 5/11
4.2.1. DESCRIPTION DU SERVICE «DECLARERDMMO( )» Les traitements et les règles fonctionnelles relatives aux déclarations qui seront transmises à l application seront effectués au niveau de l application TELE-DMMO Le tableau suivant illustre les différents paramètres qui seront pris en compte pour le service. NOMBRE TYPE DESCRIPTION Nom du service - - declarationdmmo() String Numéro de dépôt SIREN+ANNEE+MOIS+JOUR+HEURE+MIN+SEC Paramètres Fichier ZIP contenant le fichier XML contenant la ou 2 d entrée les déclarations à intégrer. Ce fichier XML devra byte[] porter le nom suivant : dmmo_(n Depot).xml Ex : dmmo_12001002020061220122301.xml Paramètre de sortie 1 String Renverra un code retour permettant d identifier la bonne réception des déclarations. La valeur du code est définie dans le paragraphe de ce document Tableau 1 : Description du service web des déclarations de mouvements de main d'œuvre 4.2.2. FORMAT DU FICHIER D ENTREE XML CONTENANT LES DECLARATIONS Le fichier XML qui sera passé en paramètre au service web devra répondre aux exigences du fichier XSD associé DMMO.xsd 4.3. SERVICEWEB «STATUTDECLARATION ( )» POUR RECUPERER LE COMPTE RENDU DES DECLARATIONS 4.3.1. DESCRIPTION DU SERVICE Ce service permet au déclarant de récupérer le compte rendu de son dépôt de fichier. Le tableau suivant illustre les différents paramètres qui seront pris en compte pour le service web. PARAMETRES NOMBRE TYPE DESCRIPTION Nom du service - - statutdéclaration ( ) Paramètres entrée 1 String Numéro d identification de dépôt du fichier Paramètre de sortie 1 byte[] Fourni un fichier ZIP contenant le fichier XML qui regroupe l état des déclarations qui ont été intégrée. Le fichier XML contenu dans le ZIP s intitulera :RetourDmmo_(N Depot).XML Tableau 2 : Description du service web «declarerdmmo( )» 4.3.2. COMPTE RENDU DES DECLARATIONS ETATS ET ANOMALIES Le fichier XML qui sera retourné par le serviceweb «statutdéclaration ( )» fera office d accusé de réception. Dans ce fichier XML, toutes les informations nécessaires seront mises à disposition du déclarant pour connaître le statut global de sa déclaration et le cas échéant, connaître les différentes anomalies. 6/11
5. ACCUSE DE RECEPTION DE DEPOT DE FICHIER Le tableau ci-dessous dresse la liste des codes possibles qui seront renvoyés suite au dépôt de fichier. Code retour Description 0 ACCEPTE - Dépôt déclaration reçu et validé 1 REFUSE - Fichier/flux ZIP non valide / non exploitable 2 REFUSE fichier XML non présent dans le ZIP 3 REFUSE - Structure XML non conforme par rapport au fichier XSD de référence 4 REFUSE - Authentification SIREN / code teledmmo erroné 5 REFUSE Erreur Technique sur serveur TELE-DMMO 7/11
6. WSDL Dans le WSDL le type du paramètre correspondant à un fichier binaire est : base64binary Ce type est défini dans le schéma de grammaire suivant : xmlns:xs=http://www.w3.org/2001/xmlschema Exemple :... <wsdl:types> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema" xmlns:types="http://dmmowebservices.webservice.dmmo.dagemo.com/types" targetnamespace="http://dmmowebservices.webservice.dmmo.dagemo.com/types" elementformdefault="unqualified" attributeformdefault="unqualified"> <xs:element name="envoyerdmmo"> <xs:complextype> <xs:sequence> <xs:element type="xs:base64binary" name="dmmoxml" /> </xs:sequence> </xs:complextype> </xs:element> <xs:element name="envoyerdmmoresponse"> <xs:complextype> <xs:sequence> <xs:element type="xs:base64binary" name="return" /> </xs:sequence> </xs:complextype> </xs:element> </xs:schema> </wsdl:types>... 8/11
7. EXEMPLE D ECRITURE DE L APPLICATION CLIENTE Le fichier post fixé par «Stub» permet l appel des web services et la réception des messages de réponse. Les étapes pour écrire un client : Etape 1 : Configurer le «Stub» Instancier le «stub» en lui passant en parametre l url du Web Service. Etape 2 : Construire le paramètre d entrée du service Etape 3 : Réceptionner la réponse du Service Etape 4 : Lire la réponse Voici une application qui teste le web service décrit dans les sections précédentes : package com.dagemo.dmmo.webservice.test; import java.io.bufferedreader; import java.io.file; import java.io.fileinputstream; import java.io.inputstream; import java.io.inputstreamreader; import com.dagemo.dmmo.webservice.dmmowebservices.dmmowebservicesstub; import com.dagemo.dmmo.webservice.dmmowebservices.types.declarerdmmo; import com.dagemo.dmmo.webservice.dmmowebservices.types.declarerdmmoresponse; public class Test { public static void main(string[] args) { try{ // Binding du webservice DmmoWebServicesStub stub = new DmmoWebServicesStub(null, "http://localhost:8080/axis2/services/dmmowebservices"); // Lecture du fichier à envoyer File file = new File("Test25Mo.txt"); InputStream in = new FileInputStream(file); BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(in)); StringBuffer xmlbuffer = new StringBuffer(); String ligne; while((ligne = bufferedreader.readline())!= null){ xmlbuffer.append(ligne); } bufferedreader.close(); // envoi et reception de la réponse System.out.println("Appel au webservice."); long start = System.currentTimeMillis(); DeclarerDmmo xml = new DeclarerDmmo(); xml.setdmmoxml(xmlbuffer.tostring()); DeclarerDmmoResponse reponse = stub.declarerdmmo(xml); // Lire la réponse 9/11
int resultat = reponse.get_return(); long duree = System.currentTimeMillis() - start; System.out.println("Resultat de l'appel: "+resultat+"\ntemps d'exécution = "+(duree/1000)); } } }catch (Exception e) { e.printstacktrace(); } 10/11
8. INFORMATIONS UTILES 8.1. INFORMATIONS SUR LES ENVIRONNEMENTS DE DEVELOPPEMENT ET LES LIBRAIRIES IDENTIFIANT VERSION LIENS DE TELECHARGEMENT DESCRIPTION 5.5 http ://tomcat.apache.org/ Apache Tomcat Serveur d application Java Runtime ObjectWeb Lomboz for JavaEE Development Axis 2 (War Distribution zip) Xalan-j Code Generator Wizard - Eclipse Plugin 1.5 http://java.sun.com/ 3.1.x http://forge.objectweb.org/projects /lomboz 1.0 http://ws.apache.org/axis2/downlo ad/1_0/download.cgi 2.7.0 http://apache.fastorama.com/dist/x ml/xalan-j/binaries/ http://www.apache.org/dyn/mirror s/mirrors.cgi/ws/axis2/tools/1_1/a xis2-eclipse-codegen-wizard.zip Environnement de développement base sur Eclipse. Il intègres : Web Tools dont Editeur WSDL, Ant, Ce zip contient le War deployable sur Tomcat permattant d administrer les web services. Contient des moteurs de transformations xml nécessaire pour axis Permet de générer un fichier WSDL à partir d une classe Java et des fichiers java à partir d un WSDL 8.2. LIENS Le site de Axis 2 : http://ws.apache.org/axis2/ Article sur les Web services et notament Axis2 : http://www.wso2.net/projects/axis2/java 11/11