Mise en route du serveur Web et gestion des connexions

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

version 2003 (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 fenêtre des mots de passe depuis 4D Client (vous devez disposer des autorisations d'accès adéquates pour modifier ces paramètres). Lorsque la fenêtre des mots de passe est au premier plan, choisissez la commande Répartir les accès aux plug-ins... dans le menu Mot de passe.

Dans la boîte de dialogue de répartition des plug-ins, sélectionnez la ligne Web Server puis associez-lui un groupe d'utilisateurs à l'aide du pop up menu Accès au groupe :

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 MacOS 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 :

Il est possible de modifier ce numéro de port par défaut en mode HTTP standard. En revanche, la publication SSL est obligatoirement effectuée via le port 443.

Vous disposez de trois possibilités :

Modifier le numéro du port TCP utilisé par le serveur Web 4D.

Vous devez utiliser un port dont le numéro est supérieur à 1023, par exemple le port 8080.

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).

Toutefois, notez que cette solution n'est applicable qu'aux serveurs Web 4D publiés en HTTP standard, c'est-à-dire n'utilisant pas le protocole SSL. En effet, la publication SSL d'un serveur Web 4D s'effectue obligatoirement via le port 443. Pour pouvoir publier un serveur Web 4D en mode sécurisé, vous devez obligatoirement vous connecter en tant qu'utilisateur "root".

Se connecter en tant qu'utilisateur "root"

Par défaut, l'utilisateur "root" n'est pas actif sur un poste sous MacOS 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 MacOS 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 MacOS 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.

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 Web, situé dans la barre de menus de 4D Server et dans la barre de menus du mode Utilisation de 4e Dimension et de 4D Client. Ce menu vous permet de lancer et d'arrêter le serveur Web à tout moment :

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 Server ou de 4e Dimension/4D Client (mode Structure).

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

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 Web ou en appelant les commandes LANCER SERVEUR WEB et ARRETER SERVEUR WEB.

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 Serveur Web, Premiers pas (Partie I).

(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 Server Web :

en choisissant Lancer le serveur Web dans le menu Web de 4D Server ou de 4e Dimension/4D Client (mode Utilisation).

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 Server Web :

En choisissant Arrêter le serveur Web dans le menu Web de 4D Server ou de 4e Dimension/4D Client (mode Utilisation).

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 2003, Commandes par thèmes   4e Dimension 2003, Liste alphabétique des commandes   4e Dimension 2003, Constantes par thèmes   Retour   Précédent   Suivant