Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Utilisation des moteurs de Mercator depuis une application distante : MercatorWebService

0000002263     -      12/08/2020

MercatorWebService est un outil permettant d'utiliser les moteurs de Mercator depuis une application distante. Cette application distante peut être développée sur n'importe quelle plateforme capable de mettre en place un client web service SOAP. Ceci ne se limite donc plus à l'environnement .net et apporte donc une réelle ouverture à plus ou moins tous les environnements de développement existants. MercatorWebService utilise en interne cette fonctionnalité : instancier l'environnement de Mercator Majuro au départ d'un programme .net externe. La configuration de base est construite avec un serveur IIS se trouvant dans le même réseau local que le Mercator auquel ce web service doit se lier.

MercatorWebService existe en trois versions, présentant toutes les mêmes méthodes, mais avec quelques différences en ce qui concerne certains types retournés :

  • Version avec types .net : dans cette version, les types DataSet et DataTable sont renvoyés selon ces mêmes types, tels qu'ils existent dans le framework .net. Cette version est donc principalement destinée pour une utilisation par un client écrit dans un langage .net.
  • Version avec types simplifiés : dans cette version, les types DataSet et DataTable sont renvoyés sous forme de arrays de classes simples. Cette version doit être utilisée si le client est écrit en Java, parce qu'il est impossible de générer un stub Java si la définition du web service contient des types DataSet ou DataTable de .net.
  • Version PHP : version intermédiaire

MercatorWebService offre une multitude de méthodes dont la liste est visible ici : 

Ces méthodes permettent de manipuler et d'accéder aux informations de ces moteurs :

  • BillingEngine
  • BookingEngine
  • ActionEngine
  • InventoryEngine
  • TransferEngine

De plus, MercatorWebService offre des méthodes permettant de lire la plupart des propriétés publiques de MercatorUi.Globals.


Installation :

L'installation du web service se fait simplement. Sur base d'un serveur IIS fonctionnel, il faut :

  • ajouter un site web
     
  • dans le répertoire principal de ce site web, dézipper MercatorWebServiceNet.zip ou MercatorWebServiceSimpl.zip ou MercatorWebServicePhp.zip, en fonction du choix par rapport aux critères indiqués ci-dessus
     
  • dans le répertoire Bin de ce site web, placer les assemblies MercatorTunnel, MercatorUi, MercatorDatabase, MercatorHtml et MercatorComponents du Mercator auquel il doit se lier
     
  • éditer le fichier web.config, dans la zone appSettings
    • MainDir : indiquer le répertoire principal de Mercator Majuro auquel ce web service doit se lier. Ce répertoire doit être un répertoire local.
    • IdDossier : en configuration multi-dossiers, indiquer l'ID du dossier, sinon laisser à vide
    • UserLogin : indiquer le nom de l'utilisateur Mercator sous lequel la session Mercator de MercatorWebSercice doit fonctionner
    • Password : indiquer le mot de passe de cet utilisateur
    • Sha1Seed : indiquer une chaîne libre qui sera utilisée pour le calcul du header soap sécurisant l'accès au web service
       
  • au niveau de l'application pool liée à ce site web :
    • indiquer que la version du framework à utiliser est 4.0
    • dans les propriétés avancées, compléter la propriété "Identité" avec les coordonnées d'un utilisateur disposant de suffisamment de droits pour :
      • pouvoir écrire dans les répertoires wwwroot/Log et wwwroot/Bin
      • avoir un accès complet au répertoire dans lequel se trouve le Mercator Majuro lié
         
  • au niveau de la réseautique, ouvrir le port utilisé (route, firewall, ...)

Le bon fonctionnement du web service peut être testé via ces url (à adapter en fonction du domaine que vous utilisez) :

  • http://webservice.full.mercator.eu/MercatorWebService.asmx
  • http://webservice.full.mercator.eu/MercatorWebService.asmx?wsdl
  • http://webservice.simpl.mercator.eu/MercatorWebService.asmx
  • http://webservice.simpl.mercator.eu/MercatorWebService.asmx?wsdl

A partir de ce moment, le web service est disponible et peut être utilisé par tout client supportant le protocole SOAP.

Lors de chaque démarrage de l'application ASP.net hébergeant le web service a lieu une vérification de la version des assemblies de Mercator (MercatorTunnel, MercatorUi, MercatorDatabase, MercatorHtml et MercatorComponents). Le cas échéant, ces assemblies sont copiées depuis le répertoire principal de Mercator vers le répertoire bin du web service.


Considérations importantes concernant la sécurité :

Un web service est réellement une porte d'entrée dans la configuration informatique d'une entreprise et singulièrement ici, vers l'ERP dans son ensemble. La sécurisation de son accès doit donc être une préocupation majeure des professionnels mettant en place cette infrastructure.

En standard, MercatorWebService offre ces fonctionnalités de sécurisation :

  • Toutes les méthodes critiques sont protégées par un header soap qui doit contenir une clé SHA1 dont l'algorithme de calcul se trouve ici.
  • MercatorWebService bloque pendant un certain temps les clients distants dont le nombre de tentatives de login via le header soap dépasse un certain nombre.

Si ces principes de base sont jugés insuffisants eu égard au niveau de protection que l'entreprise souhaite, d'autres pistes peuvent être explorées :

  • rendre MercatorWebService accessible en HTTPS et non en simple HTTP
  • limiter l'accès à MercatorWebService à des clients d'un VPN
  • ...

Ceci dépasse le cadre de cette information et du support Mercator. Mercator décline d'ailleurs toute responsabilité en cas d'atteinte à des données par l'intermédiaire de MercatorWebService. Nous rappelons ici que l'utilisation de MercatorWebService est tout à fait facultative et n'est en rien nécessaire pour le bon fonctionnement de Mercator.

 


 

Exemples de clients utilisant MercatorWebService :

Nous fournissons ici quelques exemples de clients utilisant MercatorWebService. Ils sont fournis "as is" et sans support. En effet, les particularités et les dysfonctionnements éventuels propres à chaque langage supportant plus ou moins bien le protocole SOAP ne relèvent pas du support Mercator. Les exemples sont donc donnés à titre indicatif. La liste n'est bien entendu pas exhaustive, puisque la plupart des environnements de développement actuels offrent la possibilité d'écrire plus ou moins facilement un client SOAP.

Les exemples donnés ne se limitent pas à la plateforme pour laquelle ils sont documentés. En effet, toutes les méthodes de MercatorWebService sont accessibles à tous les clients de ce web service.


Attention : depuis la version de décembre 2018, les ressources en local ne sont plus supportées.