Tâches en tant que Services Web
FlowForce Server vous permet de configurer des tâches comme services Web. FlowForce Server Advanced Edition vous permet également de configurer des messages AS2 comme services Web. Pour plus d’information, voir Envoyer des messages AS2 et Recevoir des messages AS2.Les tâches configurées comme services Web sont généralement destinées à être accédées par l'intermédiaire du programme. À des fins de test t de débogage, vous pouvez aussi invoqer de telles tâches depuis un navigateur.
Configurer une tâche en tant que service Web.
Pour rendre une tâche disponible en tant que service Web, suivez les étapes suivantes :
1.Créez une nouvelle tâche ou ouvrez une tâche existante pour l'édition.
2.Sélectionnez la case à cocher Rendre cette tâche disponible via HTTP à l’URL (voir la capture d’écran ci-dessous).
3.Saisir le nom du service Web dans le champ de texte.
Les tâches configurées en tant que services demeurent actives tant que FlowForce Server est en cours.
Note : | La touche est uniquement disponible si vous avez configuré le champ Nom d’hôte du service FlowForce Server depuis la page Configuration. Cliquer sur cette touche pour invoquer le service Web dans une nouvelle fenêtre de navigateur. Si vous n’avez pas configuré de nom d’hôte pour FlowForce Server, la touche ne sera pas affichée, mais vous pouvez néanmoins appeler le service Web en saisissant son URL manuellement dans la barre d'adresse du navigateur. |
Résultats possibles
Lorsque le service est invoqué, FlowForce Server exécute les tâches d'exécution de la tâche spécifiés et retourne un des résultats suivants :
•Le premier fichier de résultat de la dernière étape si la tâche produit un fichier de résultat.
•La sortie standard de la dernière étape si aucun fichier de résultat n'est produit (cela peut se produire lorsque vous travaillez avec la sortie de ligne de commande).
Un résultat valide est retourné avec un statut HTTP 200, avec l’en-tête Content-Type configuré conformément au résultat. L'en-tête Content-Type dépend du résultat réel. Un mappage MapForce résultera en text/xml s’il obtient une sortie XML ou text/plain pour la sortie de texte. La sortie standard d'autres fonctions est aussi retournée en tant que text/plain. Le résultat est retourné en tant que corps de réponse.
Les erreurs d'exécution sont rapportées dans un statut HTTP 5xx avec un message d'erreur générique. Pour plus d'informations, contrôlez le journal FlowForce Server (voir Consulter le journal de tâche).
Pour des exemples de services Web, voir Exposer une tâche en tant que Service Web.
Il est possible de configurer FlowForce pour qu'il retourne un résultat avant que toutes les étapes de la tâche soient exécutées. Cela est particulièrement utile si la tâche invoquée en tant que service prend beaucoup de temps. Le résultat précoce peut être traité par l'appelant en guise de confirmation que la tâche a été acceptée par FlowForce Server pour le traitement. Pour plus de détails, voir Étapes reportées.
Consulter les services Web actuels
Pour déployer le service Web, suivez une des étapes suivantes :
•Se rendre sur la page Accueil et cliquer sur Afficher tous les déclencheurs et les services actifs. Voir également Déclencheurs actifs.
•Accéder à l’URL suivante depuis votre navigateur : http://[FlowForceServer][ServerPort]/service/*.
Note : dans l’URL ci-dessus, [FlowForceServer] et [ServerPort] se réfèrent à l’adresse de réseau et de port sur lesquels FlowForce Server écoute. Par défaut, FlowForce Server est exécuté sur http://localhost:4646 (en partant du principe que vous y accédez depuis le même appareil) Le nom et le port du serveur sont définis à la page d’administration. Pour plus d'informations, voir Définir les paramètres de réseau..
Paramètres de service Web
Lorsque vous exposez une tâche en tant que service Web, tous les paramètres de tâche deviennent automatiquement des paramètres pour le service. Un paramètre de tâche doit avoir une valeur par défaut.
Lorsque le service est invoqué, FlowForce Server vérifie les paramètres fournis dans la requête par rapport à ceux définis dans la tâche. Si la validation du paramètre échoue, FlowForce Server retourne un statut 5xx HTTP. Dans ce cas, FlowForce Server affiche également le formulaire du paramètre HTML pour saisir manuellement le débogage et objectifs de tests.
Pour chaque paramètre de type Stream, la touche Parcourir est disponible à la page et vous pouvez l'utiliser pour charger le fichier requis en tant que paramètre.
Pour afficher le formulaire HTML de test sans conditions, veuillez fournir le paramètre intégré showform dans la requête (avec une valeur).
Pour appeler un service FlowForce Web avec des paramètres, un client peut utiliser une des options suivantes :
1.Pour des paramètres de type simple comme strings ou numbers, un client peut les fournir dans l'URL d'une requête GET ou POST. Pour un exemple, voir Exposer une tâche en tant que service Web.
2.Dans le cas de requêtes POST, un client peut en plus fournir des paramètres comme multipart/form-data ou comme application/x-www-form-urlencoded. Si le paramètre est de type stream dans FlowForce, alors le client doit les fournir en tant que multipart/form-data. Pour de tels paramètres, le formulaire HTML de test de navigateur affiche la touche Rechercher à côté du paramètre correspondant.
3.L'appel de client peut aussi contenir un contenu arbitraire dans le corps de la requête POST (cela se réfère spécifiquement à un contenu comme JSON ou XML, posté non pas comme paramètre, mais comme corps de la requête HTTP). Pour que cela soit possible, la tâche FlowForce doit contenir un seul paramètre de type stream. Si vous souhaitez des paramètres non-stream supplémentaires, ceux-ci doivent être fournis dans l'URL POST. Néanmoins, seul un paramètre de type stream doit être défini dans FlowForce ; les autres paramètres doivent être de type non-stream. Lorsque ces conditions sont remplies, le corps de requête sera traité en tant que données pour le paramètre stream. Aucune autre configuration n'est requise. Pour voir un exemple, voir Publier du JSON dans le service Web FlowForce.
Authentification de service Web
Par défaut FlowForce Server utilise une authentification HTTP Basic pour authentifier les clients appelant un service Web. Les identifiants des utilisateurs sont contrôlés par rapport à la base de données des utilisateurs de FlowForce Server (le même nom d'utilisateur et mot de passe utilisé pour s'inscrire sur l'interface d'administration web de FlowForce Server).
Pour rendre un service Web disponible sans identifiants, il faut accorder à l'utilisateur la permission Utiliser Service à l'utilisateur anonymous par défaut (voir aussi Comment fonctionnent les permissions). Vous pouvez toujours fournir des identifiants HTTP lorsqu'un service est disponible pour une utilisation anonyme. Les identifiants sont ensuite contrôlés par rapport à la base d'utilisateur FlowForce Server et l'exécution de service est attribuée à l'utilisateur authentifié au lieu de l'utilisateur anonyme.
Si vous fournissez des identifiants invalides, l'interface de requête retourne un statut HTTP de 401. Si vous n'avez pas fourni d'identifiants et que l’utilisation du service n'a pas été accordée à l'utilisateur anonyme de ce service, l'interface de requête retourne un statut HTTP de 401.
Si vous avez fourni des identifiants valides, mais que l'utilisateur authentifié n'a pas obtenu la permission Use Service sur ce service, l'interface de requête retournera un statut d'échec HTTP 4xx. Si vous tentez d’accéder à un service qui n’existe pas, vous obtiendrez le statut d’échec HTTP 4xx.
En option, l'authentification du domaine peut aussi être configurée, en plus de l'authentification de base HTTP. Pour plus d'informations concernant sa configuration, voir Changer les paramètres de Directory Service. Une fois que l'authentification du domaine Windows a été configurée, les utilisateurs seront en mesure d'accéder aux services Web exposés par FlowForce Server, si, toutefois, ils fournissent un nom d'utilisateur et un mot de passe valides pour le domaine respectif. Plus important, pour Active Directory, le nom d'utilisateur doit contenir le préfixe NT/ et doit contenir le nom de domaine, par exemple : NT/john.doe@my.domain.com.
Paramètres de la file d’attente
Les requêtes d’URL de service sont des types particuliers de déclencheurs et sont donc sujets aux mêmes contraintes de queue une fois que la connexion a été établie Voir Définir les paramètres de Queue.
Configurer la taille maximum du corps de requête HTTP
Une limite par défaut existe dans FlowForce Server qui établit la taille maximum du corps de requête HTTP, qui tourne autour de 100 MO. Lorsqu’un appelant publie des requêtes HTTP dans des tâches FlowForce exposées en tant que services Web et que le corps de requêtes HTTP dépasse cette limite, FlowForce Server peut retourner une erreur avec le texte suivant :
L’entité envoyée avec la requête dépasse la quantité autorisée maximum.
Pour accepter les requêtes de tailles plus importantes :
1.Ouvrir le fichier flowforce.ini dans un éditeur de texte.
2.Ajouter l’option max_request_body_size dans la section [Listen] ou [ListenSSL] et la configurer au nombre maximum de bytes qui doit être autorisé.
Par exemple, pour pouvoir activer une taille maximum de 500 MO, votre fichier flowforce.ini pourrait ressembler à l’exemple ci-dessous :
[Listen] |
Pour plus d'informations concernant le fichier .ini, voir Référence du fichier de configuration.
Reconfigurer les pool threads FlowForce Server
Si vous attendez un grand nombre de requêtes de service HTTP parallèle (par exemple, 20 ou plus simultanément), il est possible de reconfigurer le serveur pour un nombre un peu plus important de pool threads.
1.Ouvrir le fichier flowforce.ini dans un éditeur de texte.
2.Ajouter l’option thread_pool dans la section [Listen] ou [ListenSSL] du fichier .ini et la définir dans une valeur plus importante que 20.
3.Redémarrer le service.
Note: | Nous vous recommandons d’avoir deux sections séparées [Listen], une pour FlowForce Web Server (qui ne nécessite pas tant de pool threads) et les autres pour toutes les autres requêtes (sur un port différent, de préférence). Sinon, FlowForce Web Server sera en concurrence avec toutes les autres requêtes HTTP pour les pool threads. |