Gestan en mode Client/Serveur

Gestan Client/Serveur est une architecture particulière de fonctionnement de Gestan Entreprise (depuis la version 13.0R), qui, dès lors que l’application est utilisée par un nombre important d’utilisateurs concurrents, d’accélérer très sensiblement les temps de réponse, et la facilité d’administration.

Nous recommandons cette configuration dans les cas d’utilisation de Gestan avec un nombre important d’utilisateurs et/ou de volumétrie importante sur les fichiers principaux (clients, écritures, produits…).

Les avantages :

  1. Accélération des temps de réponse
    En mode Client/Serveur, les temps de réponse sont beaucoup plus rapides, dans le cas d’utilisation multi-poste sur des réseaux non optimisés, avec des fichiers importants (clients, produits, écritures comptables…).
  2. Accès possible aux données via une connexion Internet
    Il est possible de configurer le serveur pour accéder à vos données depuis toute machine connectée à Internet (attention, les temps de réponse dépendent de la qualité de la connexion, et restent cependant sensiblement inférieurs à ceux de Gestan Cloud !)
  3. Maintenance facilitée
    Vous ne vous préoccupez plus de la mise à jour de vos machines sous Windows (windows update). Et le serveur de base de données comporte des utilitaires rendant plus facile les opérations d’administration de base.
  4. Protection des données
    En mode client/serveur, vous pouvez placer les données sur une répertoire non-partagé, accessible seulement par le serveur Manta. Ainsi, les fichiers de données sont protégés par le réseau contre toute manipulation inopportune.

Dans le mode “local”, le programme (Gestan.exe) discute directement avec la base de données (les fichiers xxxxx.FIC, .NDX et .MMO). La gestion des accès aux données est assurée exclusivement par le système d'exploitation (lectures, mises à jour, accès concurrents, caches, …), en l'occurrence Windows.

La mise à jour d'un serveur, ou la connexion d'une station de travail équipée d'un système d'exploitation antérieur à ceux déjà en place, peuvent provoquer des anomalies de partage Windows. Conséquence première pour les données : les index peuvent se déphaser. Il est donc très important de conserver les systèmes (serveur et clients) parfaitement à jour, et de vérifier leur interopérabilité. Pour cela, tous les postes doivent avoir le mécanisme “Windows update” actif.

En mode Client/Serveur, le programme Gestan.exe discute avec un serveur logiciel de données (appelé Manta, ou moteur HyperFileSQL Client/Serveur), et c’est ce serveur qui interroge la base et renvoie les données demandées. Le partage de fichier Windows n'est plus utilisé. Seul le moteur HyperFileSQL Client/Serveur se charge, sur le serveur, de l'accès aux données.

Cela a plusieurs avantages :

  • Le premier est de s’extraire de la gestion des accès réseau par Windows : les accès sont gérés par le serveur de données, en l’occurrence un serveur Manta. Même en réseau local, Gestan C/S pourra significativement améliorer les performances du programme, en matière de temps de réponse sur des configurations multiposte. Vous n’avez plus à vous préoccuper de la mise à jour correcte des couches réseau de vos machines sous Windows : la cohérence des machines du parc est en effet une condition importante de bon fonctionnement d’un réseau sous Windows.
  • Le second est tout aussi intéressant : il permet d’accéder aux données via le protocole TCP/IP, et donc par l’intermédiaire de tout type de connexion, cable réseau, USB, WiFi ou … Internet. Dans ce dernier cas d’accès, il permet par exemple d’avoir l’exécutable de Gestan (le programme gestan.exe) sur sa machine ou sa clé USB, et les données sur un serveur distant, en France, en Chine ou en Patagonie, pourvu qu’il soit accessible par Internet. Mais attention, les performances de ce type de connexion dépendent fortement des caractéristiques de la ligne Internet utilisée (en Patagonie, l'internet n'est pas terrible ;-)), et restent inférieurs aux temps de réponse de Gestan Cloud.
  • Enfin, le serveur de base de données comporte des outils qui rendent plus facile l’administration de la base.

Dès lors que vous possédez une licence Gestan Entreprise, vous pouvez configurer Gestan pour qu’il fonctionne en mode client/serveur. Ce mode d’installation est décrite ci-dessous, mais, si votre côté geek n’est pas avéré, vous pouvez aussi vous faire assister en prise de main à distance, par un partenaire Gestan, ou par ICS.

Pour faire fonctionner Gestan en mode Client/Serveur, il faut tout d'abord installer le serveur de données “HFSQL” (Anciennement “Manta). Vous le trouverez gratuitement chez PC Soft sur cette page (télécharger le fichier identifié “HFSQL Client/Serveur”, WX220PACKHFSQLCS068.exe au 19/07/17, disponible sur ce lien).

Cette archive permet d'installer le “Centre de contrôle HyperFile SQL” pour une machine Windows ou une machine Linux.

Le Centre de Contrôle permet de se connecter au serveur de données HFSQL, et de le paramétrer. Il est à noter qu'il permet aussi de se connecter à un cluster de serveurs, avec équilibrage de charge, cette précision pouvant s'avérer utile pour un nombre d'utilisateurs très importants.

Le programme s'installe par défaut dans C:\Program Files\PC SOFT\Serveur HyperFileSQL.

Au moment de l'installation, vous pourrez déclarer des codes et des mots de passe pour les utilisateurs autorisés à paramétrer le Centre de Contrôle.

Localisation des données

Il est possible tout de suite de préciser à quel emplacement physique les fichiers de données doivent être installés : c'est le champ “Répertoire des bases de données” de l'onglet “Configuration”.

Par défaut, le répertoire est %%COMMONAPPDATA%%\PC SOFT\ServeurHyperFileSQL_[nom du serveur]\BDD, c'est à dire, par exemple

  • C:\Documents and Settings\All Users\Application Data\Gestan pour une machine sous XP;
  • C:\ProgramData\PC SOFT\ServeurHyperFileSQL_gescloud1-srv1\BDD pour une machine sous windows 7, et dont le nom windows serait gescloud1-srv1,

mais il est possible de désigner tout autre répertoire.

Dans le répertoire de destination, vous allez trouver les répertoires techniques nécessaires au fonctionnement du serveur de données Manta (fichiers de configuration, journaux, journaux des backups) :

Et vous allez trouver dans ce répertoire un sous-répertoire par base de données, comprenant à la fois les fichiers de données (fichiers .FIC, .NDX, .MMO), et un répertoire __System stockant les règles d'intégrité de la base, les triggers, et les éventuelles procédures stockées.

Importation d'une base de données

Le Centre de contrôle étant installé, et le répertoire de destination des données étant désigné, vous pouvez installer une base classique en mode client-serveur via le menu d'importation de base.

Le centre de contrôle vous demandera de préciser l'emplacement physique de la base à importer, puis le nom de la base tel qu'il sera connu du centre de contrôle, et l'emplacement de l'analyse.

L'emplacement physique de la base à importer, c'est seulement le répertoire DATABASE (et non pas le répertoire GESTAN qui contient le répertoire DATABASE).

L'analyse est la description de la base de données, c'est le fichier Gestan.wdd que vous trouverez dans le répertoire de programme.

L'aide en ligne du centre de contrôle contient d'autres indications sur les autres éléments paramétrables du serveur de données, mais à ce stade, tout est OK du côté du serveur Manta.

:!: Pour arrêter les services Manta : Panneau de Configuration > Outils d'administration > Services, et arreter les services Hyper File Server et MantaManager.

Il faut ensuite indiquer les paramètres de connexion à Gestan.

Pour ce faire, sous Gestan, utilisez le menu outils > Administration > Gestion multientreprise.

Cliquez sur “Nouveau”, et indiquez que vous voulez décrire une connexion Client/Serveur.

Installation en LAN

Voici un paramétrage pour une installation en LAN, c'est à dire sur le réseau local de votre entreprise.

Mettez ce que vous voulez dans le nom de la base, un nom qui vous permette de l'identifier (par exemple, le nom de la société).

Choisissez CS/LAN.

Cochez les cases “Mémoriser l'utilisateur” si vous souhaitez que le code user soit préaffiché sur la fenètre de connexion à Gestan, et la case “connexion automatique” si vous voulez que la connexion soit automatique dès lors que le couple utilisateur/mot de passe saisi est correct.

La zone répertoire document sert à indiquer à Gestan où doivent être stockés les fichiers documents (ceux rattachés aux contacts, notamment). En effet, comme il s'agit de fichiers “classiques” (.doc, .pdf, .jpg, etc), ils ne sont pas pris en compte par le serveur Manta, mais par Windows, qui a besoin de savoir où ils sont. En LAN, indiquez le répertoire partagé où devront être stockés les documents liés aux contacts. Ce répertoire devra être partagé et accessible en lecture écriture pour tous les utilisateurs de Gestan. Il peut être situé n'importe où.

Le nom du serveur est le nom windows de la machine (Nous avons observé qu'il était préférable d'utiliser l'IP de la machine). Le nom de la base de données est celui qui a été déclaré au centre de contrôle au moment de l'import de la base. Le code utilisateur et son mot de passe éventuels ont également été déclarés au moment de l'installation du Centre de Contrôle.

Le port standard est le 4900. Mais vous pouvez en utiliser un autre (sous réserve du même réglage sur le serveur Manta).

Indiquez ensuite le nom de la base de données, telle qu'elle est connue du serveur Manta (le nom sous laquelle vous l'avez importée). L'option de compression de trame est éventuellement utile en cas de connexion depuis une connexion à petit débit. Dans le cas général, laissez la décochée.

Pour une utilisation en LAN, il n'est pas nécessaire de crypter les données, le réseau étant réputé sûr (cela prend quelques microsecondes de plus).

Utilisateur et mot de passe sont les codes que vous avez déclaré sur le serveur Manta.

Le bouton “Tester” permet de tester la connexion, bien sûr.

Installation en WAN

Vous pouvez aussi installer vos données en WAN, sur un réseau étendu. Dans ce cas de figure, le programme Gestan.exe est sur votre machine locale, mais le serveur de données Manta est positionné sur un serveur distant, avec lequel vous communiquez non plus via un réseau Ethernet classique, mais avec une liaison de type ADSL.

Quand vous choisissez l'option CS WAN, le répertoire documents est laissé à blanc, car il n'est pas possible en CS/WAN de gérer les documents attachés aux contacts.

Le nom du serveur est l'adresse IP de la machine. Sur cette machine, il vous faudra contrôler que le port de communication utilisé par le serveur (4900 par défaut), est bien ouvert en TCP.

En mode WAN, il est fortement conseillé d'activer le cryptage des données, car sinon, elle transiteraient en clair sur le réseau Internet (comme la plupart de vos échanges, notamment mail, d'ailleurs !….).

Réglage du pare-feu Windows

Si la connexion avec le serveur ne peut être établie depuis un autre PC, c'est possiblement que la communication est interdite par un pare-feu.

Si vous utilisez le pare-feu de Windows, il faut ouvrir le port 4900 en TCP, comme paramétré ci-dessous (vous pouvez restreindre l'exception à votre réseau interne)

Si vous avez une box internet et un réseau local, il faut probablement ajouter une règle de redirection de ports.

Ci-dessous le réglage d'une livebox d'Orange pour un serveur HFSQL qui serait installé sur la machine 192.168.1.100

Voir aussi :

A partir de la version 13.0R de Gestan, vous pouvez tester le fonctionnement en mode C/S, avec accès aux données via Internet.

Ouvrez votre Gestan installé en local, puis via le menu Outils > Administration > Gestion multi-entreprise, créez une nouvelle connexion en mode Client-Serveur avec les paramètres indiqués ci-dessous :

Le mot de passe est : 29ERGxJ7

Cryptage : vous pouvez choisir l'option que vous voulez.

Sur l'écran de connexion à Gestan qui apparaîtra :
Code : BB (comme Bugs Bunny LOL !)
Mot de passe : BB (re-LOL)

Les temps de réponse en Client/Serveur.

Ils dépendent essentiellement de la qualité de votre connexion Intenet.

Sur notre serveur de démonstration, la liaison est assurée de notre côté par une fibre à 100mbps montant et descendant (voir ci dessous le résultat du test)

Si vous avez une ligne équivalente les temps de réponse seront très corrects pour une utilisation ponctuelle. Si vous avez une ligne fibre pro, là vous pourrez avoir des temps de réponse équivalents à l'utilisation locale.

Vous pouvez tester le débit de votre ligne chez DégroupTest : ce lien.

Si vous souhaitez que les données Gestan de votre propre serveur puissent être accessibles depuis l'extérieur via Internet (le protocole HTTP), il faut ouvrir votre port 4900 en TCP. Depuis les machines client, il faudra indiquer l'adresse IP de votre serveur.

Il faudra ouvrir un port dans le firewall protégeant le serveur.

On pourra au choix :

  • Placer le serveur dans la DMZ, l'ensemble des ports du serveur sera alors visible depuis Internet. Si le serveur est protégé par son propre Firewall logiciel (ex celui du SP2 de Windows XP, IpTable sous Linux), il faut alors ouvrir le port du serveur HFSQL (qui est par défaut 4900).
  • Effectuer un forward de port sur son routeur-firewall. Il faut rajouter une règle dans le routeur qui spécifie que les connexions arrivant sur un port X depuis Internet seront transférées sur la machine hébergeant le serveur HFSQL sur le port 4900 (ou celui précisé dans HFConf.ini)

Si le client utilise un firewall, de la même manière, il faut que celui-ci permette aux applications de se connecter via le port utilisé vers l'extérieur

Pour vérifier que votre port 4900 est ouvert, vous pouvez utiliser telnet (telnet [IP] 4900).

(Merci à Guillaume Bayle - PC Soft)

Sur quels points porter son attention pour une configuration correcte en mode Client/Serveur ? (certains points sont aussi valables pour l'optimisation des temps de réponse en mode classique en réseau)

la RAM

Le plus important est d'avoir une quantité de mémoire suffisante sur le serveur. En effet, lorsque la mémoire vient à manquer le système utilise un fichier d'échange sur disque (swap) qui fait chuter les performances, jusqu'à rendre les temps de réponse absolument horribles si le fichier d'échange mémoire de Windows est sur le même disque que les données du moteur HyperFileSQL Client/Serveur.

De façon générale, 4 Go de RAM sont un bon point de départ. C'est la mémoire standard sur les configurations serveur actuelles.

Pour une évaluation précise de la quantité de RAM nécessaire, elle peut être faite lors de tests “grandeur nature” de l'application, en s'appuyant sur les statistiques d'activité du serveur. Il suffit, dans le centre de contrôle HyperFileSQL, d'aller sur le volet “Logs et statistiques”, puis de : - indiquer la période de test, - cliquer sur “Afficher”, - utiliser le volet “Paramètres” de la fenêtre “Statistiques d'activité du serveur HyperFileSQL”, pour connaître la RAM utilisée, l'utilisation des caches…

Vous pouvez ainsi évaluer finement la RAM utilisée par une ou plusieurs connexions, afin d'évaluer la RAM nécessaire suivant le nombre de postes à connecter au serveur lors de la mise en production.

Il ne faut pas oublier de prendre en compte la RAM également nécessaire au système (1 Go minimum), et aux autres applications.

Attention, système et processeur ont une grande incidence sur la mémoire. En 32 bits, un processus ne peut théoriquement pas allouer plus de 2 Go (environ 1,6 Go au maximum dans la pratique). Si les estimations des besoins en RAM sont au-delà de 2 Go, il faut donc un processeur 64 bits.

La vitesse des disques

Lorsque le serveur a la bonne quantité de mémoire, vous êtes déjà assuré d'avoir de bon temps de réponse. Pour les améliorer, il faut des disques rapides : 7 400 tours 15 000 si possible. Pour des performances optimales, il est préférable d'opter pour :

  • un disque séparé pour les données et le système (surtout son fichier d'échange. Pour déplacer le swap : voir ici, ou .)
  • des disques immédiatement sur le PC (Les systèmes NAS sont de plus en plus diffusés. Ces machines sont conçues pour du backup, et non pour une utilisation comme serveur de fichier. Elles ne sont donc pas recommandées en terme de vitesse, mais nous avons remarqué que leurs performances s'améliorent régulièrement).
  • un système RAID en fonction du niveau de sécurité requis par les applications.

La qualité du processeur

Si la quantité de RAM n'est pas facteur limitant, la rapidité du processeur aura une incidence sur la réponse du serveur. Un processeur “Core 2 Duo” est généralement suffisant. Un “Quad core” ou plus sera à privilégier, si les applications exécutent de nombreux traitements sur le serveur (procédures stockées, triggers…)

La qualité du réseau

Utilisez des routeurs de bonne qualité. En particulier, les fonctions de routage de certaines boxes sont franchement mauvaises.

Le système d'exploitation

Le moteur HyperFileSQL Client/Serveur est disponible pour Windows en 32 et 64 bits, et pour Linux en 32 bits. Il est donc possible d'utiliser un serveur sous Windows ou sur Linux, le choix est à effectuer en fonction des habitudes et compétences des équipes en charge de l'administration.

Pour Windows toutes les versions peuvent convenir. Une version “serveur” sera cependant à privilégier pour les meilleures performances, et la sécurité du système.

Pour Linux les distributions les plus utilisées sont les suivantes : Debian 4.0 (Etch), OpenSuse 10.3, Ubuntu 7.10 et 8.04, Fedora 8 et 9, Mandriva 2008.

Voir aussi le blog de PCSOFT : http://blogs.pcsoft.fr/billets.awp?blog=hyperfilesql_performances

Pour faire la migration inverse, c'est à dire passer d'un Gestan Client/Serveur à un Gestan Classique, rien de plus simple !

Il suffit d'aller dans le répertoire des données Client/Serveur (voir ce lien), et de faire un copier des fichiers *.fic, *.ndx et *.mmo qui se trouvent dans ce répertoire (c'est à dire tous les fichiers), et de les coller dans un répertoire DATABASE local (par exemple C:\GESTAN\DATABASE).

Puis, dans Gestan, via le menu “Gestion multi entreprise”, vous déclarez une nouvelle connexion classique, en désignant ce répertoire local comme répertoire de base (ici, C:\GESTAN)

En cas de problème d'index, le centre de gestion HFSQL permet de reconstruire les index des fichiers.

Pour cela, sélectionnez la base dans laquelle se trouvent les fichiers à réindexer, puis faites un clic droit, et sélectionnez l'option “Optimiser et réparer”.

Sur l'écran qui s'ouvre, sélectionner l'option “Reconstruire les index”, et cliquez sur le bouton “Démarrer l'optimisation des fichiers”.

Il n'est pas mauvais d'effectuer, environ une fois par mois, l'option “Optimiser la vitesse des index”. Cette opération est susceptible d'améliorer les performances. Vous pouvez effectuer automatiquement cette optimisation via les éléments planifiés du centre de contrôle.

On ne le répétera jamais assez : la stratégie de sauvegarde est la première des questions qui se pose au responsable informatique d'une société.

Le centre de contrôle dispose d'un outil qui permet d'automatiser les sauvegardes très facilement.

Pour cela :

  • cliquez sur la base à sauvegarder.
  • cliquez sur le bouton “Nouvelle sauvegarde”
  • déroulez les menus qui s'affichent. Vous pouvez vous dispenser de stocker les index
  • sur les options des scénarios de sauvegarde, vous pouvez choisir “sauvegarde mensuelle complète + sauvegarde quotidienne différentielle.

En mode Client/Serveur, vous pouvez obtenir ce message, lorsque vous générez une pièce à partir d'une autre (création d'une facture à partir d'un devis, par exemple) :

Les cardinalités côté clé étrangère (1,1) entre les rubriques <FACTURE.IDFACTURE> et <FACTLIGNE.IDFACTURE> ne sont pas respectées.

Explication technique

Il s'agit d'un défaut de Windev en client/serveur, pour lequel nous n'avons pas d'explication à l'heure présente.

Les fichiers FACTURE et FACTURELIGNE sont aliasés : ce qui veut dire qu'à une seule description de fichier correspond plusieurs fichiers physiques. Or Windev, apparemment, n'assigne par correctement ces fichiers en mode client/serveur : au moment de la génération d'une pièce à partir d'une autre, l'assignation n'est pas encore effectuée au moment de l'ordre d'écriture, ce qui fait que lorsqu'il écrit par exemple une nouvelle ligne de devis, HyperFile va vérifier dans le fichier des factures (et non pas des devis) que le numéro de devis existe.

Solution : réinstallation du serveur

Ce problème se résout en réinstallant très proprement le serveur et les données. De la même façon que la cause du problème nous est actuellement inconnue, la raison pour laquelle la solution fonctionne nous est tout aussi inconnue ! Mais ça marche.

  • Arrêtez le serveur, et déplacez les données de la base vers un répertoire lambda (les données de la base sont …dans le répertoire que vous avez spécifié au centre de contrôle HFSQL, ou alors, par défaut, dans %%COMMONAPPDATA%%\PC SOFT\ServeurHyperFileSQL_[nom du serveur]\BDD)
  • Assurez-vous que vous avez bien la dernière version du serveur. Pour cela consultez la page de téléchargement du site PCSoft citée plus haut.
  • Si ce n'est pas la dernière version, réinstallez le serveur HFSQL.
  • Installez la dernière version de Gestan (c'est important, car elle contient une version de l'analyse .wdd à jour)
  • Connectez vous au centre de contrôle HFSQL et arrêtez le serveur
  • Supprimez les répertoires Système du répertoire de la base et le répertoire du Serveur HFSQL(les répertoires __JNL, __JNLBackup, __System, __TRS, et le répertoire des bases qui se situent dans le même répertoire).
  • Puis importez à nouveau la base.

Contrôle de la résolution : Sur une base de test client/serveur, générez une facture à partir d'une autre pièce dont le n° de facture n'existe pas. Par ex, vous avez les factures de 1 à 10. Mettez vous sur la liste des devis, sélectionnez le devis 11 (ou supérieur), et cliquez sur “Gen facture”. Si tout se passe bien, c'est que la nouvelle installation est correcte.