Déploiement de RAD Server Lite

De RAD Studio
Aller à : navigation, rechercher

RAD Server nécessite une base de données back-end basée sur InterBase, et est généralement déployé comme module DLL de serveur web pour IIS ou Apache. C'est pourquoi un déploiement standard nécessite :

  • Le serveur web et sa configuration du module RAD Server
  • Le déploiement et la configuration de RAD Server
  • Une installation d'InterBase avec une licence RAD Server spécifique (une licence dont l'utilisateur a besoin pour l'enregistrement sur le périphérique cible et l'activation)

Pour le développement, nous avons longtemps proposé une version autonome de RAD Server, basée sur le serveur Indy HTTP. Elle offre des performances limitées, mais est beaucoup plus facile à déployer et peut être exécutée sous le contrôle du débogueur (pour déboguer le code des modules RAD Server). La version développement n'est pas conçue pour le déploiement et ne dispose pas de licence adaptée. Elle limite le nombre d'utilisateurs qu'il est possible de créer et peut fonctionner avec InterBase Developer Edition en local (dont la licence fait partie de la licence RAD Studio).

RAD Server Lite (RSLite) offre un modèle de déploiement simple pour les serveurs et les scénarios de test ne nécessitant pas trop de débit. Il utilise pour cela le moteur de base de données intégré InterBase (IBToGo) au lieu d'un serveur complet, et le combine à un modèle de licence simplifié.

RSLite utilise le même binaire que l'édition Développement (fournie avec RAD Studio), ainsi que des binaires IBToGo et un fichier licence slip que vous pouvez déployer avec votre solution (aucun enregistrement n'est nécessaire sur l'ordinateur de déploiement). Comme il utilise une base de données incorporée et le composant du serveur Indy HTTP, il ne peut pas traiter le même nombre de demandes par seconde qu'une installation RAD Server standard complète, et il ne peut pas être mis à l'échelle avec plusieurs front-ends RAD Server.

L'architecture sous-jacente utilisée par RSLite a une capacité de scalabilité beaucoup plus limitée, mais que nous estimons suffisante pour de nombreux scénarios de déploiement simples. Gardez toutefois à l'esprit que le débit dépend aussi du code spécifique exécuté par vos modules RAD Server.

Conseil: Pour le déploiement sur un système public, nous vous recommandons d'éviter d'exposer directement le serveur RSLite HTTP. Rendez-le plutôt accessible via une configuration proxy. Ainsi, vous disposerez d'un serveur web (comme Apache ou IIS) pour assurer la sécurité des appels HTTPS entrants et leur transfert vers RSLite.

Comment obtenir une licence RAD Server Lite

Vous pouvez obtenir une licence avec n'importe quelle licence Enterprise ou Architect de RAD Studio 11 (y compris Delphi 11 et C++Builder 11). Consultez cette page et suivez les instructions fournies.

Remarque: Vous devez indiquer votre clé d'enregistrement et votre compte EDN.

Avec ce processus, vous recevez non seulement une clé de licence pour RSLite, mais également un fichier slip (une licence stockée dans un fichier .TXT) que vous pouvez déployer avec votre installation. Cette licence ne limite pas le nombre d'installations, mais ne permet pas d'exécuter deux instances sur la même machine.

Remarque: Le fichier de licence doit être placé dans un sous-dossier spécifique, contrairement à ce que peuvent indiquer les informations générales sur le site d'obtention de la licence.

Déploiement d'un projet RAD Server Lite

Une fois que vous avez la licence, vous devez prendre en compte deux éléments avant de déployer un projet :

  • D'abord, vous devez créer une configuration de déploiement avec RSLite, les packages d'exécution requis et le déploiement IBToGo (voir les étapes)
  • Ensuite, vous devez générer un fichier de base de données approprié pour la production, compatible avec la licence IBToGo. Une base de données locale créée par RAD Server Developer Edition ne sera pas compatible.

Les fichiers à déployer

En pratique, il s'agit des fichiers nécessaires pour déployer une solution RSLite (en plus des packages de votre application et de leurs dépendances) :

  1. L'exécutable de RSLite, qui est le même que pour l'édition Développeur ( EMSDevServer.exe), accessible dans le dossier bin de RAD Studio (ou la version 64 bits similaire)
  2. Les packages d'exécution RAD Studio requis, qui incluent les packages indispensables pour une installation minimale (répertoriés ici et accessibles dans le dossier redist de RAD Studio win32 ou win64), ainsi que tout autre package d'exécution requis par le code de vos modules RAD Server :
    • bindengine280.bpl
    • dbrtl280.bpl
    • emsclientfiredac280.bpl
    • emsserverapi280.bpl
    • FireDAC280.bpl
    • FireDACCommon280.bpl
    • FireDACCommonDriver280.bpl
    • FireDACIBDriver280.bpl
    • rtl280.bpl
    • vcl280.bpl
    • vcldb280.bpl
    • vclFireDAC280.bpl
    • vclimg280.bpl
    • vclwinx280.bpl
    • vclx280.bpl
    • Xmlrtl280.bpl
  3. Les fichiers de déploiement de InterBase ToGo qui se trouvent dans le dossier redist de documents publics d'InterBase (par exemple, C:\Users\Public Documents\Embarcadero\Interbase redist\InterBase2020) dans les sous-dossiers win32_togo ou win64_togo. Pour Linux, le fichier libibtogo.so se trouve dans le dossier redist d'InterBase approprié.
  4. Ajoutez le fichier de licence obtenu ci-dessus dans le dossier interbase/license (qui fait partie de la configuration redist d'IBToGo).

Utilisation de l'expert de déploiement

Déployez vos fichiers en utilisant la fonctionnalité RSLite dans l'expert de déploiement. Pour cela, procédez comme suit :

  1. Ajoutez la fonctionnalité RSLite.
  2. Ensuite, ajoutez la fonctionnalité IBToGo.
  3. Désactivez la case à cocher du fichier d'enregistrement iblite.
  4. Dans la section Comment obtenir une licence RAD Server Lite, ajoutez le fichier à déployer : générez un fichier d'activation rslite et définissez sa destination sur "interbase/license".
  5. Ensuite, ajoutez le fichier obtenu dans la section Création de la base de données de production pour déployer emsserver.ini vers ./.
  6. Enfin, ajoutez le fichier obtenu dans la section Création de la base de données de production pour déployer emsserver.ib vers ./.

Runtime MSVC

Pour exécuter IBToGo (et RSLite en utilisant IBToGo) sur une machine Windows cible, la bibliothèque d'exécution Visual C++ 2013 doit être installée. Sur une machine de développeur avec RAD Studio, elle est probablement déjà installée. Sur une machine de déploiement cible générale, par contre, vous devez l'installer après l'avoir téléchargée sur le site de Microsoft.

Création de la base de données de production

Avec cette configuration, vous pouvez démarrer RSLite en exécutant l'application EMSDevServer.exe. Notez que si un client InterBase est installé sur la machine cible, il est considéré comme prioritaire. Si le client InterBase fait partie de l'édition Développeur fournie avec RAD Studio, il fonctionne parfaitement dans une configuration RAD Server Developer standard.

Vous pouvez déterminer cela en observant les premières lignes du journal lors du démarrage de RAD Server. S'il s'agit d'une configuration "RSLite", les premières lignes ressemblent à ceci :

{“Thread”:19124,”ConfigLoaded”:{“Filename”:”[folder]emsserver.ini”,”Exists”:true}}
{“Thread”:19124,”Licensing”:{“Lite”:true,”Licensed”:true,”LicensedMaxUsers”:2}}
{“Thread”:19124,”DBConnection”:{“InstanceName”:””,”Filename”:”[folder]emsserver.ib”}}

Si le code indique que "Lite" est défini sur false, vous pouvez désactiver manuellement le chargement de la bibliothèque client InterBase gds32.dll (ou sa version 64 bits), qui se trouve généralement dans C:\Windows\SysWOW64 (si la bibliothèque client InterBase est introuvable, le fichier ibtogo.dll local est chargé).

Lorsque vous démarrez RSLite (sans configuration appropriée) et qu'il n'y a pas de fichier emsserver.ini ni de fichier de base de données emsserver.ib, vous êtes invité à en créer un. Pour cela, RSLite doit trouver la configuration dans le dossier du référentiel d'objets de RAD Studio (ObjRepos sous le dossier du produit). La façon la plus simple de procéder est de copier les fichiers sous Program Files (x86)\Embarcadero\Studio\22.0\ObjRepos\en\ems dans un dossier ayant ce chemin d'accès relatif à emsdevserver.exe : "../ObjRepos/en". Autrement dit, un dossier ObjRepost doit se trouver au même niveau de répertoire que le dossier contenant votre installation de RSLite, le répertoire de déploiement du projet.

Remarque: Vous n'avez pas besoin de faire cela pour chaque déploiement de RSLite, seulement une fois pour générer une base de données de production, que vous pourrez ensuite copier en l'état sur les ordinateurs cible. En fait, la base de données créée dans un environnement de développement n'est pas compatible avec le déploiement de RSLite.

Nous vous recommandons de spécifier le dossier de déploiement de RSLite comme dossier cible pour que l'expert crée un fichier emsserver.ini et un fichier de base de données emsserver.ib dans votre dossier de déploiement. Avec le dossier de RSLite, ces fichiers de configuration, les packages d'exécution et IBToGo, y compris la licence, vous avez tout ce dont vous avez besoin pour réaliser le déploiement sur un ordinateur Windows cible.

Configuration proxy

Nous ne recommandons pas d'exposer RSLite directement comme une application web publique en raison de ses limites de protection et d'encryptage. Nous recommandons d'utiliser une couche proxy avec un service dédié ou d'utiliser l'un des services web courants comme front-end. Dans Apache, par exemple, vous pouvez configurer un hôte virtuel, activer HTTPS et rediriger le trafic vers l'instance de RSLite avec une configuration comme celle-ci :

ProxyPass / http://localhost:8088
ProxyPassReverse / http://localhost:8088
ProxyPreserveHost On

Pour Linux

Pour Linux, vous pouvez suivre la même procédure que ci-dessus. Tout devrait fonctionner comme prévu. Sinon, vous pouvez également installer la version complète de RAD Server, puis ajouter IBToGo à l'installation :

  • Installez RAD Server en utilisant le fichier ems_install.sh accessible dans le dossier d'installation de RAD. Voir ici.
  • Copiez les fichiers IBToGo du dossier "redist" d'Interbase dans le dossier EMS sur Linux (/usr/lib/ems).
  • Exécutez EMSDevServerCommand et suivez l'expert pour créer la base de données EMS et le fichier de configuration.
    Remarque: Vous devrez peut-être exécuter l'application via sudo pour avoir les autorisations appropriées.