Les web services X3
Pré-requis
Le serveur XTEND n'accède au back-office X3 qu'au travers de l'appel de web services X3 pour l'accès aux données ou le traitement des actions utilisateurs.
Le développeur XTEND doit avoir acquis une bonne connaissance de la mise en oeuvre des web services X3 avant d'entreprendre la réalisation d'une application XTEND (architecture, pools de connexions, publication, tests...).
Par contre aucune compétence en développement n'est requise pour programmer l'appel des web services via les classes stub/proxy.
Le serveur de web services
Il est indispensable de disposer d'au moins un serveur de web services sur lequel seront publiés les sous-programmes ou objets X3 utilisés par les applications XTEND.
On peut choisir par exemple le même serveur X3WEB que celui qui héberge le serveur XTEND.
La première étape consiste à s'assurer que ce serveur est correctement configuré.
Identification du serveur
Le serveur de web service est identifié par un hostname et un port tcp. Pour la suite du document nous utiliserons l'adresse hostname:28880.
SOAP/HTTP
Simple Object Access Protocol et Hypertext Transfer Protocol sont les protocoles utilisés pour l'appel des web services X3
Le serveur de web service doit être accessible
S'assurer que l'adresse hostname:port est accessible à partir du serveur XTEND.
port est le port du serveur web frontal. la valeur par defaut est 28880
Pour cela il suffit de vérifier que l'adresse http://hostname:28880/root/ affiche bien la page d'accueil du serveur d'administration après saisie du mot de passe (sage/sage) par défaut.
Si la page ne s'affiche pas
- s'assurer que les services Apache/Tomcat sont bien lançés
- s'assurer que la commande 'ping hostname' renvoie une réponse
Les solutions/dossiers X3 doivent être publiés
Toutes les solutions/dossiers X3 auxquels accèdent les applications XTEND doivent être publiés sur le serveur X3WEB qui héberge le serveur de web services.
Cette opération est effectuée par l'administrateur via la console X3 lors de la configuration du serveur X3WEB.
La liste des applications publiées et accessible via le menu 'Home/Administration'
Les pools de connexions doivent être démarrés
Pool de connexion
Le serveur de web services met à disposition des applications tierces un ensemble de connexions X3 (client X3 de type web service) regroupés par 'groupe d'entrée' ou 'pool'.
Les pools de connexions sont créés et configurés via la console X3. La console permet entre autre de paramètrer le nombre de connexions du pool.
Le nombre de connexions attribué au pool détermine le nombre de requêtes (SOAP) qui peuvent être traitées simultanément par ce pools. Lorsque toutes les connexions sont occupées, les requêtes sont mises en file d'attente.
Configuration du serveur
Le serveur de web service doit disposer d'au moins un pool de connexion (groupe d'entrées) par solution/dossier qui publie des web services à destination des applications XTEND.
Ces pools de connexion doivent être dans l'état 'démarré' et doivent disposer d'au moins une connexion libre (<poolentry>) .
La liste des pools de connexions est accessible via la fonction 'Serveur de web services/Pools de connexions'.
Temps de réponse
Les temps de réponse d'une application XTEND et donc la 'fluidité' du site web dépendent fortement des temps de réponse obtenus lors de l'appel des web services. Nous recommandons de contrôler régulièrement :
- La disponibilité des connexions des pools de web services
- Dimensionner correctement le nombre de connexions des pools (licences web services)
- le taux de charge du serveur X3
- Attention aux traitements batch
Publication des web services
La publication des web services est effectuée par la fonction X3/
'Développement>Dictionnaire traitements>Traitements>Web services'.
Web services objet X3
Pour publier un web service objet il suffit de créer une fiche web service en indiquant le nom de publication (appelé aussi alias) et le code de l'objet (plus le code transaction).
La publication d'un objet X3 donne accès à toutes les actions de l'objet (lire, créer, enregistrer, supprimer par défaut) et à la liste gauche.
Le bouton d'action 'Supprimer' permet de 'dépublier' le web service.
Web services sous-programme
Pour publier un web service sous-programme il faut tout d'abord créer une fiche sous-programme qui permet de déclarer les paramètres et les groupes de publication via la fonction:
'Développement>Dictionnaire traitements>Traitements>Sous-programmes'
Il faut ensuite publier ce web service (bouton publication) et lui attribuer un alias comme pour le web service objet.
Groupes de publication
Les groupes de publication permettent d'associer logiquement des paramètres (de même dimension) pour former des entités distinctes.
Chaque groupe (ou entité) peut être considéré comme un enregistrement d'une table ou comme un type structure ou record.
Ils sont utilisés dans le paramétrage XTEND pour effectuer les 'mappings' entre les paramètres des web services et les entités XTEND.
Pour les sous programmes
Exemple pour un sous programme qui renvoie 6 paramètres qui représentent une liste d'adresses de livraison (shipaddr, shipcity, shipzip) et une liste d'adresses de facturations (invaddr, invcity, invzip). Ces paramètres pourront être regroupés en 2 entités ou groupes logiques SHIPADDR et INVADDR.
Pour les objets
Les noms des groupes de publication sont générés par X3. Ils correspondent aux codes des blocs des écrans.
Test des web services
Il est fortement recommandé de tester les web services sous-programmes ou objets X3 via la fonction 'Testeur de web services' du serveur X3WEB avant de les utiliser dans une application XTEND.
Localisation des web services dans XTEND
XTEND localise un web service par un identifiant unique valable pour tous les sites XTEND du dossier X3.
Cet identifiant fait référence à la fiche de localisation d'un web service qui contient entre autre les coordonnées du serveur de web service (hostname et port) et l'alias du pool de connexions.
Fonction
'Développement>Utilitaire>Divers>Pools Web services'