Mise en route du serveur Web et gestion des connexions

4D - Documentation   Français   English   German   4e Dimension, Commandes par thèmes   4e Dimension, Liste alphabétique des commandes   4e Dimension, Constantes par thèmes   Retour   Précédent   Suivant

version 2004 (Modifiée)


4e Dimension, 4D Server et 4D Client contiennent un serveur Web vous permettant de publier de manière transparente et dynamique les données de vos bases sur le Web.

Cette section présente les étapes nécessaires à la publication des bases 4D et à la connexion de navigateurs, ainsi que les process de gestion des connexions.

Conditions de publication d'une base 4D sur le Web


Pour pouvoir publier une base 4D sur le Web à l'aide de 4e Dimension, de 4D Server ou de 4D Client, vous devez disposer des éléments décrits ci-dessous :

des licences 4D Web Extension, 4D Server Web Extension ou 4D Client Web Extension qui doivent être installées dans votre application. Pour plus d'informations sur ce point, reportez-vous au guide d'installation de 4D.

les connexions Web sont effectuées par le biais du protocole réseau TCP/IP. Par conséquent :

- le protocole TCP/IP doit être installé et correctement configuré sur votre machine. Reportez-vous à la documentation de votre ordinateur ou de votre système d'exploitation pour plus d'informations sur ce point.

- Si vous voulez utiliser le protocole SSL pour vos connexions, assurez-vous que les composants nécessaires sont correctement installés (reportez-vous à la section Utiliser le protocole SSL).

Une fois les points précédents contrôlés et réglés, vous devez démarrer le serveur Web depuis 4D. Ce point est traité plus loin dans cette section.

Autorisation de publication (4D Client)

Par défaut, tout poste 4D Client peut publier sur le Web la base à laquelle il est connecté. Vous pouvez toutefois contrôler la possibilité de publication Web de chaque 4D Client en utilisant le système de mots de passe de 4D.

En effet, les licences Web 4D Client sont considérées par 4D Server comme des licences de plug-ins. Ainsi, comme pour un plug-in, vous pouvez restreindre le droit d'utiliser les licences Web Server à un groupe d'utilisateurs spécifique.

Pour cela, affichez la page Groupes dans la Boîte à outils depuis 4D Client (vous devez disposer des autorisations d'accès adéquates pour modifier ces paramètres).

Sélectionnez un groupe dans la liste de gauche, puis cochez l'option Accès en regard de la ligne Web Server dans la zone de répartition des plug-ins :

Ci-dessus : seuls les utilisateurs appartenant au groupe "Web" sont autorisés à publier leur 4D Client en tant que serveur Web.

Configuration spécifique sous Mac OS X


Sous Mac OS X, l'utilisation des ports TCP/IP réservés à la publication Web requiert des privilèges d'accès spécifiques : seul l'utilisateur "root" de la machine peut lancer une application utilisant ces ports.

Il s'agit des ports 0 à 1023. Par défaut, une base 4D est publiée sur le port TCP 80 en mode standard et 443 en mode SSL.

Lorsque vous publiez une base 4D sur le port TCP par défaut sans vous être connecté en tant qu'utilisateur "root", une boîte de dialogue d'alerte vous le signale :

Pour pouvez utiliser le serveur Web sous Mac OS X, vous disposez de quatre possibilités :

Modifier les numéros des ports TCP utilisés par le serveur Web 4D.

Vous devez utiliser des numéros de ports supérieurs à 1023, par exemple 8080 pour le mode standard et 8043 pour le mode SSL.

Cette opération s'effectue dans la boîte de dialogue des Préferences de la base (cf. section Paramétrages du serveur Web) ou à l'aide de la commande FIXER PARAMETRE BASE. Dans ce cas, il sera nécessaire d'indiquer le numéro de port derrière chaque URL de connexion à la base (par exemple, http://www.mabase.fr/pages/mapage.html:8080 et https://www.mabase.fr/pages/paiement.html:8043.

Se connecter en tant qu'utilisateur "root"

Par défaut, l'utilisateur "root" n'est pas actif sur un poste sous Mac OS X. Vous devez d'abord l'activer, puis vous connecter sous ce nom d'utilisateur.

L'activation de l'utilisateur "root" s'effectue par l'intermédiaire de l'utilitaire Gestionnaire NetInfo (ou NetInfo Manager), fourni par Apple et installé dans le dossier Applications:Utilities.

Une fois l'utilitaire lancé, choisissez la commande Sécurité dans le menu Domaine, puis l'option Activer l'utilisateur root. Vous devez auparavant avoir identifié un administrateur de la machine via la commande Authentifier..., située dans le même menu (saisissez le nom abrégé et le mot de passe d'un administrateur de la machine).

Pour plus d'informations sur cette opération, veuillez vous reporter à la documentation de Mac OS X. Une fois l'utilisateur "root" créé, vous devez fermer la session (menu Pomme) puis vous connecter sous le nom d'utilisateur "root". Il vous est alors possible de lancer le serveur Web sur le numéro de port 80, ou un serveur Web 4D en mode sécurisé.

Transférer le port

Cette troisième solution permet de publier une base Web 4D sous Mac OS X sans qu'il soit nécessaire de spécifier le numéro de port derrière chaque URL de connexion au serveur et sans être l'utilisateur "root". Elle est basée sur le transfert de port. Le principe consiste à transférer, au niveau du système, les requêtes reçues sur le numéro de port TCP standard (80) à celui défini dans la base 4D (devra être supérieur à 1023). Notez que cette astuce ne fonctionne pas avec les connexions sécurisées (le port TCP 443 n'est pas modifiable).

Pour effectuer l'opération, vous devrez vous connecter en tant qu'utilisateur "root", lancer le Terminal et utiliser des commandes Unix.

Pour mettre en place le transfert de port sous Mac OS X (en supposant que votre adresse IP est 192.168.93.45) :

1. Ouvrez une session en tant qu'utilisateur root (cf. paragraphe précédent).

2. Lancez le programme Terminal.

Ce programme se trouve dans le dossier Applications:Utilities.

3. Saisissez "su" (compte spécial "utilisateur substitut") puis le mot de passe de l'utilisateur root.

4. Saisissez la commande suivante :

ipfw add 400 fwd 192.168.93.45,8080 tcp from any to 192.168.93.45 80

Bien entendu, vous devez remplacer "192.168.93.45" par votre propre adresse IP.

Le chiffre 400 est le numéro de référence de cette opération.

5. Quittez le programme Terminal.

6. Lancez votre application 4D en tant qu'utilisateur standard.

7. Dans les Préférences de la base, fixez le port TCP de publication Web à 8080.

Dès lors, Mac OSX est prêt à transférer instantanément les requêtes reçues sur le port 80 vers le port 8080, de manière transparente pour l'utilisateur.

Pour supprimer ce mode de fonctionnement :

1. Lancez le programme Terminal et saisissez :

ipfw delete 400

Les requêtes reçues sur le port 80 ne sont alors plus transférées au port 8080.

Ouvrir une session root temporaire

Le principe de cette solution est le suivant : le lancement initial du serveur Web de 4e Dimension s'effectue dans une session "root" ouverte dans ce but et refermée automatiquement au bout de quelques instants. Cette nouveauté fonctionne avec 4e Dimension, 4D Server, 4D Client et les applications exécutables 4D Runtime.

Voici le détail de la séquence :

1. L'application 4e Dimension est exécutée au sein d'une session utilisateur classique.

2. L'utilisateur lance le serveur sur le port standard (port 80).

Une boîte de dialogue d'alerte informe l'utilisateur que l'opération est impossible. La boîte de dialogue permet de saisir un nom et un mot de passe d'administrateur de la machine.

3. L'utilisateur saisit un nom et un mot de passe d'administrateur de la machine.

Grâce à ces informations, 4e Dimension pourra modifier les privilèges de l'application et la déclarer sous l'utilisateur "root".

4. L'utilisateur est invité à redémarrer l'application.

5. Au lancement, l'application 4e Dimension démarre dans une session root.

6. Si l'option "Publier la base au démarrage" est cochée dans Préférences de l'application, le serveur Web est lancé sur le port 80.

Si l'option "Autoriser SSL pour le serveur Web" est cochée, le port SSL (443 par défaut) est également ouvert.

7. Au bout de quelques secondes, la session root est automatiquement refermée et remplacée par une session de l'utilisateur courant.

Le serveur Web reste publié et la session utilisateur se déroule normalement.

L'inconvénient de ce mécanisme est qu'une fois en place, vous ne pouvez plus démarrer et redémarrer le serveur Web à volonté au cours de la session. En effet, il n'est pas possible de passer d'une session d'utilisateur standard à une session "root" (privilèges supérieurs) sans redémarrer l'application. Ce mécanisme ne fonctionne donc qu'au lancement de l'application.

Démarrer le serveur Web 4D


Le serveur Web 4D peut être démarré de trois manières différentes :

par l'intermédiaire du menu Exécuter de 4e Dimension et de 4D Client ou du menu Web de 4D Server. Ce menu vous permet de lancer et d'arrêter le serveur Web à tout moment :

4e Dimension et 4D Client :

4D Server :

par la publication automatique de la base à chaque fois qu'elle est ouverte. Pour que la base soit automatiquement publiée comme serveur Web, choisissez la commande Préférences... dans le menu Edition de 4D.

La fenêtre des Préférences s'affiche. Cliquez sur le thème Web, page Configuration :

Dans la zone "Publication du serveur Web", cochez la case Publier la base au démarrage puis cliquez sur le bouton OK. La base sera désormais automatiquement publiée comme serveur Web chaque fois que vous l'ouvrirez avec 4e Dimension, 4D Server ou 4D Client.

par programmation, en appelant la commande LANCER SERVEUR WEB.

Note : Il n'est pas nécessaire de rouvrir votre base de données pour lancer ou arrêter sa publication comme serveur Web. Vous pouvez interrompre et redémarrer le serveur Web autant de fois que vous voulez à l'aide du menu Exécuter ou en appelant les commandes LANCER SERVEUR WEB et ARRETER SERVEUR WEB.

Tester le serveur Web


La commande Tester le serveur Web permet de contrôler le fonctionnement du serveur Web intégré (4e Dimension et 4D Client uniquement). Cette commande est accessible dans le menu Exécuter lorsque le serveur Web est lancé :

Lorsque vous sélectionnez cette commande, la page d'accueil du site Web publié par l'application 4D s'affiche dans une fenêtre de votre navigateur par défaut :

Cette commande permet de vérifier le fonctionnement du serveur Web, l'affichage de la page d'accueil, etc. La page est appelée via l'URL Localhost, qui est le raccourci standard désignant l'adresse IP de la machine sur laquelle est exécuté le navigateur. La commande tient compte du numéro de port TCP de publication spécifié dans les Préférences de l'application.

Connexion à une base 4D publiée sur le Web


Une fois que vous avez lancé la publication d'une base 4D sur le Web, vous pouvez vous y connecter avec un navigateur Web. Pour cela :

Si votre site Web dispose d'un nom d'hôte enregistré (par exemple, "www.bellesfleurs.com"), il vous suffit d'indiquer ce nom dans la zone "Ouvrir", "Adresse" ou encore "Lieu" du navigateur puis d'appuyer sur la touche Entrée pour vous connecter.

Si votre site Web ne dispose pas d'un nom enregistré, indiquez l'adresse IP de la machine de la base (par exemple 123.4.567.89) dans la zone "Ouvrir", "Adresse" ou encore "Lieu" du navigateur puis appuyez sur la touche Entrée.

A cet instant, votre navigateur doit afficher la page d'accueil de votre site Web. Si vous avez publié une base en conservant les paramétrages standard, vous devez obtenir la page d'accueil par défaut du serveur Web de 4e Dimension. Cette page vous permet de tester la connexion et le fonctionnement du serveur.

Vous pouvez également rencontrer une des situations décrites ci-dessous.

Note : Si votre base est protégée par un système de contrôle d'accès, il se peut que vous ayez à saisir un nom et un mot de passe (pour plus d'informations, reportez-vous à la section Sécurité des connexions).

(1) La connexion échoue, vous obtenez un message du type "...le serveur n'accepte pas de connexions ou est occupé...". Dans ce cas, effectuez les contrôles suivants :

Vérifiez que le nom du serveur ou l'adresse IP que vous avez saisi(e) est correct(e).

Vérifiez que 4e Dimension, 4D Server ou 4D Client est bien lancé et que le serveur Web a bien démarré.

Vérifiez que la base de données est bien configurée pour être publiée sur le port TCP Web par défaut, c'est-à-dire 80 (voir aussi point 4).

Vérifiez que le protocole réseau TCP/IP est correctement configuré sur la machine serveur et sur la machine du navigateur (les deux machines doivent se trouver sur le même réseau ou sous-réseau, ou les routeurs doivent être correctement configurés).

Vérifiez les connexions physiques.

Si vous ne testez pas localement votre propre site mais essayez de vous connecter à une base Web publiée sur Internet ou Intranet par quelqu'un d'autre, il se peut qu'en définitive le message décrive une situation réelle : le poste serveur peut être éteint ou occupé, dans ce cas vous pouvez tenter de vous connecter ultérieurement ou contacter l'administrateur du site Web.

(2) La connexion est établie, mais vous obtenez une erreur HTTP 404, "Fichier non trouvé". Ce cas signifie que la page d'accueil du site n'a pu être servie. Dans ce cas, vérifiez que la page d'accueil existe bien à l'emplacement défini dans les Préférences de la base (cf. section Paramétrages du serveur Web) ou à l'aide de la commande FIXER PAGE ACCUEIL.

(3) La connexion est établie, mais vous obtenez une page Web avec le message "Barre de menu/Cette base de données ne peut être publiée sur le Web telle quelle, vous devez d'abord créer une barre de menus". Cela signifie que vous êtes bien connecté à la base publiée en mode contextuel, mais qu'aucune page d'accueil ni barre de menus n'est définie (en mode contextuel, 4D publie la barre de menus n°1 comme page d'accueil par défaut si aucune page HTML n'est spécifiée). Pour plus d'informations, reportez-vous à la section Premiers pas.

(4) La connexion est établie, mais vous n'obtenez pas la page Web que vous attendiez ! Cela peut se produire lorsque plusieurs serveurs Web sont exécutés simultanément sur la même machine. Par exemple :

Vous avez lancé une seule base Web 4D, mais sur un système Windows qui exécute déjà son propre serveur Web.

Vous avez lancé plusieurs bases Web 4D sur la même machine.

Dans les cas décrits ci-dessus, il vous suffit de changer les numéros des ports TCP sur lesquels vos bases 4D Web sont publiées. Pour cela, reportez-vous à la section Paramétrages du serveur Web.

Gestion des process Web


Divers process 4D prennent en charge la publication Web des bases de données et la connexion des navigateurs. Ce paragraphe décrit ces process ainsi que leurs caractéristiques.

Process Serveur Web

Le process Serveur Web s'exécute lorsque la base est publiée en tant que serveur Web.

Dans la page Process de l'Explorateur d'exécution présentée ci-dessous, le process Server Web est le cinquième process :

Ce process est un process du noyau de 4D, vous ne pouvez donc pas l'arrêter à l'aide de la commande Tuer. De même, vous ne pouvez pas effectuer de communication interprocess à l'aide des commandes comme APPELER PROCESS. Notez que le process Serveur Web n'a pas d'éléments d'interface (fenêtres, menus, etc.).

Vous pouvez démarrer le process Serveur Web :

en choisissant Lancer le serveur Web dans le menu Web de 4D Server ou le menu Exécuter de 4e Dimension/4D Client.

en appelant la commande LANCER SERVEUR WEB.

en ouvrant une base pour laquelle la préférence Publier la base au démarrage a été sélectionnée.

Vous pouvez arrêter le process Serveur Web :

En choisissant Arrêter le serveur Web dans le menu Web de 4D Server ou le menu Exécuter de 4e Dimension/4D Client.

en appelant la commande ARRETER SERVEUR WEB.

en quittant une base publiée comme serveur Web.

Le rôle du process Serveur Web est de gérer les tentatives de connexion Web. Lorsque vous démarrez le process Serveur Web, vous n'ouvrez pas de connexion Web, vous permettez aux utilisateurs Web de se connecter à la base. Lorsque vous arrêtez le process Serveur Web, vous ne fermez pas les process de connexion Web ouverts (s'il y en a), simplement vous ne permettez plus à des utilisateurs Web de se connecter à la base.

Si des process de connexion Web étaient ouverts au moment où vous arrêtez le process Serveur Web, chacun de ces process continue à s'exécuter normalement.

Par conséquent, un délai d'attente peut être nécessaire avant l'arrêt complet du process Serveur Web.

Process Web et process Connexion Web

Chaque fois qu'un navigateur Web tente de se connecter à la base, la requête est gérée par le process Serveur Web, qui procède de la manière suivante :

D'abord, il crée un ou plusieurs process 4D locaux appelés Process Web pour gérer et évaluer la connexion au navigateur Web.

Note : Ces process gèrent toutes les requêtes HTTP. Ils s'exécutent très rapidement puis sont "tués" ou endormis. En effet, à des fins d'optimisation du serveur Web, une fois qu'il a traité une requête, un process de connexion Web temporaire est gelé pendant quelques secondes pour être éventuellement réactivé lorsqu'une autre requête arrive. Ce mécanisme peut être ajusté (délai d'attente, nombre minimum et maximum de process à conserver dans la "réserve" de process) à l'aide de la commande FIXER PARAMETRE BASE.

Si la requête ne nécessite pas la création d'un contexte, le process Web prend en charge le traitement de la requête et l'envoi de la réponse éventuelle au navigateur. Le process temporaire est alors tué ou endormi (cf. ci-dessus).

Si la requête nécessite la création d'un contexte, il vérifie alors si les ressources disponibles sont suffisantes. Si cela n'est pas le cas, il envoie au navigateur Web le message suivant : "Cette base de données n'a pas encore été paramétrée pour le Web".

Si la connexion Web est correctement effectuée, un process Connexion Web est créé. Ce process gèrera toute la session Web pour cette connexion. La liste des process, présentée ci-dessous, affiche le process de connexion Web "Connexion Web n° 235958112" démarré à la suite de la connexion du navigateur Web :

Notez que le sixième process, qui a été démarré puis tué, a géré l'initialisation de la connexion Web.

Note : Pour plus d'informations sur la gestion des contextes, reportez-vous à la section Utiliser le mode contextuel.

Si, au cours de la session, la connexion passe du mode contextuel au mode sans contexte, le process de connexion Web (numéroté) est immédiatement tué. A l'inverse, si au cours de la session, la connexion passe du mode sans contexte au mode contextuel, un process de connexion Web numéroté est créé.

Référence

ARRETER SERVEUR WEB, ENVOYER FICHIER HTML, FIXER LIMITES AFFICHAGE WEB, FIXER RACINE HTML, FIXER TEMPORISATION WEB, Utiliser le protocole SSL.


4D - Documentation   Français   English   German   4e Dimension, Commandes par thèmes   4e Dimension, Liste alphabétique des commandes   4e Dimension, Constantes par thèmes   Retour   Précédent   Suivant