Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
Nouvelles

Le nouveau RAD Server Lite (RSLite) dans RAD Studio 11

rad server blog banner 6

Dans le cadre de la version RAD Studio 11 Alexandria, nous avons annonc√© la disponibilit√© d’une nouvelle option de d√©ploiement et de licence de RAD Server, dans le but de simplifier le d√©ploiement pour les installations ne n√©cessitant pas un grand nombre de requ√™tes REST.

Qu’est-ce que RAD Server ?

Avant d’entrer dans les d√©tails, permettez-moi de vous rappeler ce qu’est RAD Server.¬†Il s’agit d’un moteur de serveur REST qui vous permet de d√©velopper rapidement des points de terminaison REST, principalement au service de JSON, en utilisant du code Delphi ou C++Builder bas√© sur FireDAC (ou d’autres couches d’acc√®s aux donn√©es).¬†En bref, vous cr√©ez des packages compl√©mentaires (BPL) enregistrant chacun des points de terminaison d’URL suppl√©mentaires et fournissant une impl√©mentation.¬†En plus de cela, RAD Server est livr√© avec un certain nombre de services pr√™ts √† l’emploi.¬†Vous pouvez en savoir plus sur¬†https://www.embarcadero.com/products/rad-server¬†.

Pourquoi RAD Server Lite ?

RAD Server nécessite une base de données principale, basée sur InterBase, et il est généralement déployé en tant que module DLL de serveur Web pour IIS ou Apache. Pour cette raison, un déploiement standard nécessite :

  • Le serveur web et sa configuration du module RAD Serveur
  • Le d√©ploiement et la configuration du RAD Server
  • Une installation d’InterBase avec une licence RAD Server √† usage sp√©cial (une licence que l’utilisateur doit enregistrer sur le p√©riph√©rique cible pour l’activer)

Pour le d√©veloppement, nous proposons depuis longtemps une version autonome de RAD Server, bas√©e sur le serveur HTTP Indy, qui offre des performances limit√©es mais un d√©ploiement beaucoup plus facile et la possibilit√© d’√™tre ex√©cut√© sous le d√©bogueur (vous pouvez donc d√©boguer le code de vos modules RAD Server) .¬†La version de d√©veloppement n’est pas destin√©e et elle n’est pas autoris√©e pour le d√©ploiement.¬†Le nombre d’utilisateurs que vous pouvez cr√©er est limit√© et il peut fonctionner avec une √©dition InterBase Developer locale (la licence correspondante fait partie de la licence RAD Studio).

RAD Server Lite (alias RSLite) offre un mod√®le de d√©ploiement plus simple pour les serveurs de test et les sc√©narios ne n√©cessitant pas beaucoup de d√©bit, et il le propose en utilisant le moteur de base de donn√©es int√©gr√© InterBase, IBToGo, au lieu du serveur complet et le combine avec un mod√®le de licence simplifi√©.¬†RSLite utilise le m√™me binaire de l’√©dition de d√©veloppement (fourni avec RAD Studio) ainsi que les binaires IBToGo et un fichier de bordereau de licence que vous pouvez d√©ployer avec votre solution (ne n√©cessitant aucune inscription sur l’ordinateur sur lequel vous le d√©ployez).

Parce qu’il utilise une base de donn√©es int√©gr√©e et parce qu’il utilise le composant Indy HTTP Server, il ne peut pas servir le m√™me nombre de requ√™tes par seconde qu’une installation RAD Server normale et il ne peut pas √©voluer avec plusieurs frontaux RAD Server.¬†Nous n’avons ajout√© aucune limitation cod√©e en dur, mais l’architecture sous-jacente utilis√©e par RSLite a une √©volutivit√© beaucoup plus limit√©e, mais nous nous attendons √† ce qu’elle soit suffisante pour de nombreux sc√©narios de d√©ploiement simples – en gardant √† l’esprit que le d√©bit d√©pend √©galement du code sp√©cifique vos modules RAD Server s’ex√©cutent.¬†Notez que pour un d√©ploiement sur un syst√®me public, nous vous recommandons d’√©viter d’exposer directement le serveur HTTP RSLite, mais de le rendre accessible via une configuration proxy, vous disposez donc toujours d’un serveur Web (comme Apache ou IIS) fournissant le contexte de s√©curit√© pour le HTTPS entrant appels et les transf√©rer √† RSLite.

Demander une licence

Passons maintenant aux aspects pratiques de RSLite.¬†Tout d’abord, vous devez racheter une licence, ce que vous pouvez faire avec n’importe quelle licence Enterprise ou Architect pour RAD Studio 11 (y compris Delphi 11 et C++Builder 11).¬†Il vous suffit de visiter la page :

https://reg.embarcadero.com/srs6/promotion.jsp?promoId=572

et suivez les instructions fournies : vous aurez besoin de votre cl√© d’enregistrement et de votre compte EDN.¬†Le processus ici ne consiste pas seulement √† recevoir une cl√© de licence pour RSLite, mais un fichier de bordereau (une licence stock√©e dans un fichier .TXT) que vous pouvez d√©ployer avec votre installation.¬†Cette licence n’a aucune limitation en termes de nombre d’installations (mais vous ne pouvez pas faire tourner deux instances sur la m√™me machine).¬†Notez que le fichier de licence doit √™tre plac√© dans un sous-dossier sp√©cifique, contrairement √† ce que les informations g√©n√©rales sur le site d’√©change peuvent sembler impliquer.

Déployer un projet RAD Server Lite

Une fois que vous avez la licence, comment déployez-vous RSLite ? Il y a deux considérations différentes :

  • Tout d’abord, vous devez cr√©er une configuration de d√©ploiement avec RSLite, les packages d’ex√©cution requis et le d√©ploiement IBToGo (les √©tapes sont ci-dessous)
  • Deuxi√®mement, 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 l’√©dition RAD Server Developer ne sera pas compatible

Les fichiers à déployer

Concr√®tement, voici les fichiers n√©cessaires au d√©ploiement d’une solution RSLite (en plus de vos packages applicatifs et de leurs d√©pendances) :

  1. L’ex√©cutable RSLite, qui est le m√™me que l’√©dition d√©veloppeur : EMSDevServer.exe disponible dans le dossier bin de RAD Studio (ou la version 64 bits similaire)
  2. Les packages d’ex√©cution RAD Studio requis, qui incluent ceux requis pour une installation minimale (list√©s ici et disponibles dans le dossier RAD Studio win32 ou win64 redist) ainsi que tout autre package d’ex√©cution requis par le code dans vos modules RAD Server :
    • moteurbind280.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 InterBase ToGo trouv√©s dans le dossier public InterBase redist (par exemple, C:/Users/Public/Documents/Embarcadero/Interbase/redist/InterBase2020) dans les sous-dossiers win32_togo ou win64_togo ‚ÄĒ pour Linux, vous pouvez trouver le libibtogo.so fichier dans le bon dossier de redist InterBase
  4. Ajoutez le fichier de licence obtenu ci-dessus dans le dossier interbase/license (partie de la configuration IBToGo redist)

exécution MSVC

Notez √©galement que pour ex√©cuter IBToGo (et donc 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, vous l’auriez probablement d√©j√† install√©.¬†Cependant, sur une machine de d√©ploiement cible g√©n√©rale, vous devrez peut-√™tre l’installer apr√®s l’avoir¬†t√©l√©charg√© √† partir 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.¬†Si la machine cible a un client InterBase, cependant, il le choisira avec une priorit√© plus √©lev√©e, et si le client InterBase est l’√©dition Developer fournie avec RAD Studio, tout fonctionnera mais dans une configuration RAD Server Developer standard.

Vous pouvez le comprendre facilement car lorsque RAD Server d√©marre, il vous indique s’il s’agit d’une configuration ¬ę RSLite ¬Ľ dans son journal.¬†Les premi√®res lignes ressembleront √†¬†:

{‚Äú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 devrez peut-√™tre d√©sactiver manuellement le chargement de la biblioth√®que cliente InterBase gds32.dll (ou sa version 64 bits), g√©n√©ralement trouv√©e dans C:/Windows/SysWOW64 (si le client InterBase la biblioth√®que est introuvable, elle charge le fichier ibtogo.dll local – quelque chose que nous rendrons configurable dans une prochaine version).

Maintenant, si vous d√©marrez RSLite (avec la configuration appropri√©e) et qu’il n’y a pas de fichier emsserver.ini ni de fichier de base de donn√©es emsserver.ib, il vous demandera d’en cr√©er un.¬†Pour que cela fonctionne, RSLite doit trouver la configuration dans le dossier Object Repository de RAD Studio (ObjRepos sous le dossier produit).¬†Le moyen le plus simple de le faire est de copier les fichiers sous ObjRepos/en/ems dans un dossier avec ce chemin relatif depuis emsdevserver.exe : ¬ę ../ObjRepos/en ¬Ľ.¬†En d’autres termes, vous avez besoin d’un dossier ObjRepost au m√™me niveau que le dossier contenant votre installation RSLite

Remarque : Ceci n’est pas n√©cessaire pour chaque d√©ploiement RSLite, une seule fois pour g√©n√©rer une base de donn√©es de production que vous pourrez ensuite copier telle quelle sur les ordinateurs cibles.¬†En effet la base de donn√©es cr√©√©e dans un environnement de d√©veloppement n’est pas compatible avec le d√©ploiement RSLite.

Je vous recommande de sp√©cifier comme dossier cible le m√™me que celui de votre d√©ploiement RSLite, afin que l’assistant cr√©e un fichier emsserver.ini et un fichier de base de donn√©es emsserver.ib dans votre dossier de d√©ploiement.¬†Maintenant, r√©cup√©rez l’int√©gralit√© du dossier avec RSLite, ces fichiers de configuration, les packages d’ex√©cution et IBToGo, y compris la licence, et vous avez tout ce dont vous avez besoin pour d√©ployer sur un ordinateur Windows cible.

Configuration du proxy

Comme je l’ai mentionn√©, il n’est pas recommand√© d’exposer RSLite directement en tant qu’application Web publique, en raison de ses limites en termes de protection et de cryptage.¬†Je recommanderais d’utiliser une couche proxy, avec un service d√©di√© ou d’utiliser l’un des services Web populaires en tant que frontal.¬†Dans Apache, par exemple, vous configurez un h√īte virtuel, activez HTTPS et redirigez les trafics vers l’instance RSLite avec une configuration comme celle-ci¬†:

Pour Linux

Pour Linux, vous pouvez suivre les m√™mes √©tapes que ci-dessus et tout devrait fonctionner comme pr√©vu.¬†Comme alternative, vous pouvez √©galement envisager d’installer le serveur RAD complet et d’ajouter IBToGo √† ‚Äč‚Äčl’installation¬†:

    • Installez le serveur RAD √† l’aide du fichier ems_install.sh disponible dans le dossier d’installation RAD (https://docwiki.embarcadero.com/RADStudio/Sydney/en/setting_Your_RAD_Server_Engine_or_RAD_Server_Console_on_Linux)
    • Copiez les fichiers IBToGo du dossier ¬ę redist ¬Ľ d’Interbase vers le dossier EMS sous Linux (/usr/lib/ems)
    • Ex√©cutez EMSDevServerCommand et suivez l’assistant pour cr√©er la base de donn√©es EMS et le fichier de configuration (notez que vous devrez peut-√™tre ex√©cuter l’application via¬†sudo¬†pour avoir les autorisations appropri√©es¬†)

Mise à niveau vers le serveur RAD complet

Pour terminer, permettez-moi de vous rappeler que RSLite a une port√©e limit√©e en termes de trafic de demandes d’utilisateurs qu’il peut g√©rer.¬†Si vous avez besoin d’une bande passante et d’un d√©bit plus √©lev√©s, nous vous recommandons plut√īt de d√©ployer le serveur RAD complet.

Tout client disposant d’une √©dition Entreprise de RAD Studio, Delphi ou C++Builder re√ßoit une licence de d√©ploiement de la version compl√®te de production de RAD Server.¬†Les clients de l’√©dition Architect re√ßoivent une licence de d√©ploiement illimit√©e (mais qui n√©cessite toujours une activation pour chaque serveur sur lequel vous souhaitez effectuer le d√©ploiement).¬†Alternativement, vous pouvez contacter notre √©quipe commerciale pour un accord VAR Server RAD, qui vous permettrait de distribuer le serveur RAD complet en d√©ployant simplement un fichier de bordereau avec votre application, √† un nombre illimit√© de clients et sans inscription requise.


What's Coming in Delphi, C++Builder, and RAD Studio 11.2 Alexandria

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Leave a Reply

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

IN THE ARTICLES