Developpez.com - 4D
X

Choisissez d'abord la catégorieensuite la rubrique :


Interrogation du serveur Web 4D à partir d'un serveur Web Windows

Date de publication : Novembre 2004

Par Chiheb NASR (Ingénieur Contrôle Qualité, 4D SA)
 

Dans cette note technique nous présenterons l'installation et la configuration de l'extension 4DISAPI.DLL. Les informations techniques citées sont également valables pour le programme NPH-CGI4D.exe. Le but de cette note est de répondre aux fréquentes questions et interrogations relatives au déploiement de ces deux extensions : 4DISAPI.DLL et NPH-CGI4D.EXE.

I. Introduction
II. Fonctionnement des deux extensions
III. Les URLs spécifiques à 4DISAPI 
IV. Peut-on changer ou renommer le dossier SCRIPTS (ou CGI-BIN) ?
V. Peut-on renommer le nom du DLL ? 
VI. Peut-on interroger plusieurs serveurs Web 4D en même temps ? 
VII. Test de fonctionnement de l'extension et du serveur Web 4D
VIII. Exemple d'installation
IX. Conclusion


I. Introduction

Dans cette note technique nous présenterons l'installation et la configuration de l'extension 4DISAPI.DLL. Les informations techniques citées sont également valables pour le programme NPH-CGI4D.exe. Le but de cette note est de répondre aux fréquentes questions et interrogations relatives au déploiement des deux extensions : 4DISAPI.DLL et NPH-CGI4D.EXE.


II. Fonctionnement des deux extensions

Les deux extensions 4DISAPI.DLL et NPH-CGI4D.EXE permettent à un serveur http Windows comme IIS de rediriger des requêtes vers un serveur Web 4D par le biais des URLs. Les deux modules ont un fonctionnement identique mais les extensions CGI sont généralement moins performantes que celles des extensions ISAPI. En effet, 4DISAPI est un module chargé par le serveur Web Windows comme un plug-in et les requêtes sont donc transférées à 4D directement à partir du serveur Web Windows. Par contre, dans le cas de l'extension NPH-CGI4D.exe, qui est un programme externe, les requêtes sont envoyées du serveur Web Windows vers le programme CGI, puis à partir ce dernier vers le serveur Web 4D.

La réponse est ensuite acheminée au navigateur en sens inverse. Le corps de la requête ou de la réponse HTTP n'est jamais modifié par les extensions.

Pour plus d'informations sur le fonctionnement de ces deux extensions et sur le support des CGI en générale, vous pouvez consultez les documentations disponibles aux emplacements suivants :

Pour la gamme 6.8 et 2003:


Pour la gamme 2004 :


info Notes :

1. Cette solution ne supporte pas les requêtes SOAP. Les Web Services, disponibles depuis la version 2003.0 de 4D, est une nouvelle technologie de communications basée sur des standards (SOAP, XML) et qui n'a absolument pas besoin de ce genre d'intermédiaires. Les Web services devraient être l'orientation de nos futures applications Web en terme de communication Serveur-Serveur et/ou Serveur-Client.

2. La requête initiale envoyée au serveur IIS peut être effectuée en clair ou en mode sécurisé (SSL). La communication entre les deux serveurs HTTP et l'extension 4DISAPI.DLL s'effectue en clair.

3. 4DISAPI n'est pas compatible avec le mode contextuel du serveur Web 4D.

4. Il n'est pas possible de procéder à une authentification au niveau HTTP via l'extension 4DISAPI. Pour cela, il est nécessaire d'utiliser un formulaire HTML.

III. Les URLs spécifiques à 4DISAPI 

Pour reconnaître un URL destiné au serveur Web 4D, le serveur Web de Windows analyse son contenu et s'il détecte la présence du nom d'extension "4disapi.dll", il extrait la partie utile de l'URL pour la transférer à 4D. La portion de l'URL envoyée à 4D contient aussi les paramètres. L'exemple suivant illustre ce mécanisme :

http://www.MonsiteIIS.com/Scripts/4disapi.dll/4DACTION/Mamethode/Mesparams

Dans cet exemple l'adresse du site Web principal est  www.MonsiteIIS.com. Lorsque le serveur Web IIS reçoit cet URL, il redirige la portion de chemin qui suit le nom de l'extension au serveur Web 4D :

" /4DACTION/Mamethode/Mesparams"


IV. Peut-on changer ou renommer le dossier SCRIPTS (ou CGI-BIN) ?

Le dossier SCRIPTS (ou CGI-BIN selon le système) est le dossier par défaut d'emplacement des modules externes (Dll, CGI). On peut bien entendu choisir un autre dossier et/ou lui donner un autre nom pourvu qu'il ait les mêmes droits d'accès que le dossier par défaut en particulier le droit d'exécuter des programmes.


V. Peut-on renommer le nom du DLL ? 

L'installation des extensions 4DISAPI s'effectue par simple copie des fichiers 4DISAPI.DLL ou dans le dossier [Scripts] du serveur http Windows (IIS). Chaque DLL installée doit être accompagnée d'un fichier de configuration (.INI). Le fichier .INI doit porter le même nom que la Dll (par exemple 4DISAPI.INI). L'extension et son fichier de configuration doivent être placés dans le même dossier. On peut les renommer en leur donnant un nom plus significatif pour l'utilisateur Web, par exemple Facturation.DLL et Facturation.INI. Dans ce cas les URLs seront de la forme suivante :

http://www.MonsiteIIS.com/Scripts/Facturation.dll/{Chemin d'accès}


VI. Peut-on interroger plusieurs serveurs Web 4D en même temps ? 

4DISAPI permet également de rediriger des requêtes http à partir d'un serveur Web Windows vers un ou plusieurs serveurs Web 4D. Les Serveurs 4D peuvent se trouver aussi bien sur la même machine que sur des machines différentes. Dans ce cas, placez dans le dossier [Scripts] du serveur IIS autant d'extensions que de serveurs 4D. Ensuite, Il faudra les renommer par exemple Paiement.DLL, Boutiques.DLL, etc. Il est également indispensable d'insérer un fichier de configuration par extension, et de le renommer en conséquence (Paiement.INI, Boutiques.INI, etc.).

Le fichier .INI est constitué d'une seule section : [Forward]. Cette section accepte les commandes suivantes :

      TargetServer = Nom ou adresse IP du serveur Web. Par défaut 127.0.0.1

      TargetPort = Port d'écoute. Par défaut 8080.

      Timeout = Délai maximum d'attente de la réponse du serveur. Par défaut 30

      Allowed = Liste des URL autorisés, séparés par des virgules.

      Forbidden = Liste des URL interdits, séparés par des virgules.

Vous trouverez plus de détails sur ces commandes dans la documentation disponible à l'emplacement cité plus haut.


VII. Test de fonctionnement de l'extension et du serveur Web 4D

On peut tester le fonctionnement de l'extension grâce à l'écho de la requête :

http://adresse-serveur/Scripts/4disapi.dll/ ~~echo

Il est important de noter que la réponse à cette requête est retournée même en cas de non disponibilité du serveur Web 4D. Par conséquent, il ne peut pas nous servir à tester le bon fonctionnement du serveur Web 4D. Voici la réponse retournée par la version 6.8 de l'extension 4DISAPI.DLL :

-------------------------------------------
Product information
Script name : /Scripts/Boutique.DLL(6.8)
Server software : Microsoft-IIS/5.0
Server protocol : HTTP/1.1
Gateway interface : CGI/1.1
-------------------------------------------

Des informations sur l'extension peuvent également être obtenues par le mot clé ~~info comme le montre l'URL suivant :

http://adresse-serveur/Scripts/4disapi.dll/ ~~info

Ci-après un exemple de réponse obtenue également aussi bien en cas de fonctionnement ou pas du serveur Web 4D :

-------------------------------------------
GET /~~echo HTTP/1.0
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: fr
Authorization:
Connection: Keep-Alive
Host: 127.0.0.1
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
----------------------------------------------------------------

Enfin, le mot clé ~~target est celui qui vous permet de tester si le serveur cible est joignable :

http://adresse-serveur/Scripts/4disapi.dll/ ~~target

L'une des deux réponses suivantes est retournée :

Good: target server reached : le serveur cible a répondu

Bad: target server not reached : le serveur est injoignable.


VIII. Exemple d'installation

Dans cet exemple on va créer un site Web principal nommé Demo_ISAPI publié par un serveur web IIS sous Windows 2000 via le port 80. Les fichiers html qui constituent le site Demo_ISAPI sont placés dans le dossier « D:\SITWEB_IIS ». On va faire communiquer ce site avec deux serveurs Web 4D : Boutiques et Paiement, publiés respectivement via le port 8080 et 8081.

Nous vous proposons, dans ce qui suit, un scénario d'installation et de test de fonctionnement de notre configuration :

On crée un site virtuel et on le nomme Demo_ISAPI.

On lui accorde l'autorisation d'exécution des extensions (Dll) et des programmes (CGI, exe). Ci-après une copie d'écran des propriétés de notre application Demo_ISAPI.

Pictures 0377x0368

Dans le dossier [Scripts] de Windows 2000, on copie le fichier 4DISAPI.DLL et son fichier d'accompagnement 4DISAPI.INI et on les renomme respectivement Boutiques.DLL et Boutiques.INI. Ensuite, on duplique ces deux fichiers et on renomme les deux nouveaux fichiers Paiement.DLL et Paiement.INI. Enfin, on édite le fichier Paiement.INI pour modifier le numéro de port d'écoute (par défaut 8080) et on le remplace par 8081. Voici comment le dossier [Scripts] se présente :

Pictures 0471x0256

Dans la page d'accueil de notre site Demo_ISAPI, on définie deux liens qui permettent d'interroger les deux sites Web 4D.

Le premier lien « Interroger le serveur Web 4D Boutiques » interroge le site Web 4D Boutiques via l'URL :

http://127.0.0.1/Scripts/Boutique.DLL/4DACTION/M_Hello

Le deuxième lien « Interroger le serveur Web 4D Paiement » fait appel au site Web Paiement via l'URL:

http://127.0.0.1/Scripts/Paiement.DLL/4DACTION/M_Hello

L'URL http://127.0.0.1/demo_isapi/ permet d'afficher la page d'accueil de notre application Demo_ISAPI.


Voici le code 4D de la méthode M_Hello :

      $vheure:= Chaine( Heure courante(*))
      $vMessage:="Cette page est servie par le serveur Web 4D (Boutiques) "+"<br>"+"<br>"
      ENVOYER TEXTE HTML($vMessage+"Coucou je suis le site Boutiques : "+$vheure)


La méthode M_Hello est identique dans les deux bases de données à l'exception du changement du nom de serveur Web inséré dans le texte (Boutiques ou Paiement).

   · On lance une première base de données 4D (Boutiques) et on publie son serveur Web sur le port 8080.
   · On lance une deuxième base de données 4D (Paiement) et on publie son serveur Web sur le port 8081.
   · On ouvre une session du navigateur et on demande l'url suivant :
      http://127.0.0.1/demo_isapi/

La page d'accueil suivante de notre site Demo_ISAPI sera affichée :

Pictures 0303x0222

Lorsque l'on clique sur le lien « Interroger le serveur Web 4D Boutiques », qui fait appel au serveur Web 4D via l'extension Boutique.dll, la page html suivante sera envoyée par le serveur Web 4D (Boutiques) :

Pictures 0261x0209

Lorsque l'on clique sur le lien « Interroger le serveur Web 4D Paiement », qui fait appel au serveur Web 4D via l'extension Paiement.dll, la page html suivante sera envoyée par le serveur Web 4D (Paiement) :

Pictures 0264x0211

IX. Conclusion

Dans cette note technique nous avons présenté, tout en nous appuyant sur un exemple concret, le principe de fonctionnement, l'installation et l'exploitation de l'extension 4DISAPI.DLL. Nous avons également essayé de répondre aux fréquentes questions et interrogations relatives au déploiement de cette extension et du programme NPH-CGI4D.EXE.

warning Attention : il est important de vous signaler une incompatibilité de la librairie 4DISAPI.DLL et du serveur Web IIS version 6 installé par défaut sur le système Windows 2003 Serveur. Il s'agit d'un problème de chargement de la DLL qui est en cours d'étude par le service Contrôle Qualité de 4D SA.

__________________________________________________
Copyright © 1985-2009 4D SA - Tous droits réservés
Tous les efforts ont été faits pour que le contenu de cette note technique présente le maximum de fiabilité possible.
Néanmoins, les différents éléments composant cette note technique, et le cas échéant, le code, sont fournis sans garantie d'aucune sorte. L'auteur et 4D S.A. déclinent donc toute responsabilité quant à l'utilisation qui pourrait être faite de ces éléments, tant à l'égard de leurs utilisateurs que des tiers.
Les informations contenues dans ce document peuvent faire l'objet de modifications sans préavis et ne sauraient en aucune manière engager 4D SA. La fourniture du logiciel décrit dans ce document est régie par un octroi de licence dont les termes sont précisés par ailleurs dans la licence électronique figurant sur le support du Logiciel et de la Documentation afférente. Le logiciel et sa documentation ne peuvent être utilisés, copiés ou reproduits sur quelque support que ce soit et de quelque manière que ce soit, que conformément aux termes de cette licence.
Aucune partie de ce document ne peut être reproduite ou recopiée de quelque manière que ce soit, électronique ou mécanique, y compris par photocopie, enregistrement, archivage ou tout autre procédé de stockage, de traitement et de récupération d'informations, pour d'autres buts que l'usage personnel de l'acheteur, et ce exclusivement aux conditions contractuelles, sans la permission explicite de 4D SA.
4D, 4D Calc, 4D Draw, 4D Write, 4D Insider, 4ème Dimension ®, 4D Server, 4D Compiler ainsi que les logos 4e Dimension, sont des marques enregistrées de 4D SA.
Windows,Windows NT,Win 32s et Microsoft sont des marques enregistrées de Microsoft Corporation.
Apple, Macintosh, Power Macintosh, LaserWriter, ImageWriter, QuickTime sont des marques enregistrées ou des noms commerciaux de Apple Computer,Inc.
Mac2Win Software Copyright © 1990-2002 est un produit de Altura Software,Inc.
4D Write contient des éléments de "MacLink Plus file translation", un produit de DataViz, Inc,55 Corporate drive,Trumbull,CT,USA.
XTND Copyright 1992-2002 © 4D SA. Tous droits réservés.
XTND Technology Copyright 1989-2002 © Claris Corporation.. Tous droits réservés ACROBAT © Copyright 1987-2002, Secret Commercial Adobe Systems Inc.Tous droits réservés. ACROBAT est une marque enregistrée d'Adobe Systems Inc.
Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.
__________________________________________________
 



Valid XHTML 1.1!Valid CSS!

Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.
Contacter le responsable de la rubrique 4D