Als Teil der RAD Studio 11 Alexandria-Version haben wir die Verfügbarkeit einer neuen Option zum Bereitstellen und Lizenzieren von RAD Server angekündigt, mit dem Ziel, die Bereitstellung für Installationen zu vereinfachen, die keine großen REST-Anforderungen erfordern.
Table of Contents
Was ist RAD-Server?
Bevor ich zu den Einzelheiten komme, möchte ich Sie daran erinnern, was RAD Server ist. Es handelt sich um eine REST-Server-Engine, mit der Sie schnell REST-Endpunkte entwickeln können, die hauptsächlich JSON bedienen, indem Sie Delphi- oder C++Builder-Code verwenden, der auf FireDAC (oder anderen Datenzugriffsschichten) basiert. Kurz gesagt, Sie erstellen Add-on-Pakete (BPLs), die jeweils zusätzliche URL-Endpunkte registrieren und eine Implementierung bereitstellen. Darüber hinaus enthält RAD Server eine Reihe von gebrauchsfertigen Diensten. Weitere Informationen finden Sie unter https://www.embarcadero.com/products/rad-server .
Warum RAD Server Lite?
RAD Server erfordert eine auf InterBase basierende Backend-Datenbank und wird im Allgemeinen als Webserver-DLL-Modul für IIS oder Apache bereitgestellt. Aus diesem Grund erfordert eine Standardbereitstellung:
- Der Webserver und seine Konfiguration des RAD Server-Moduls
- Bereitstellung und Konfiguration des RAD-Servers
- Eine Installation von InterBase mit einer speziellen RAD Server-Lizenz (eine Lizenz, die der Benutzer zur Aktivierung auf dem Zielgerät registrieren muss)
Für die Entwicklung bieten wir seit langem eine eigenständige Version von RAD Server an, die auf dem Indy-HTTP-Server basiert, die eine begrenzte Leistung bietet, aber eine viel einfachere Bereitstellung und die Möglichkeit, unter dem Debugger ausgeführt zu werden (damit Sie Ihren RAD Server-Modulcode debuggen können). . Die Entwicklungsversion ist nicht vorgesehen und nicht für die Bereitstellung lizenziert. Die Anzahl der Benutzer, die Sie erstellen können, ist begrenzt und kann mit einer lokalen InterBase Developer Edition verwendet werden (die Lizenz dafür ist Teil der RAD Studio-Lizenz).
RAD Server Lite (auch bekannt als RSLite) bietet ein einfacheres Bereitstellungsmodell für Testserver und Szenarien, die keinen großen Durchsatz erfordern, und bietet dies durch die Verwendung der eingebetteten InterBase-Datenbank-Engine IBToGo anstelle des ausgewachsenen Servers und kombiniert es mit einem vereinfachtes Lizenzmodell. RSLite verwendet dieselbe Binärdatei der Development Edition (die mit RAD Studio geliefert wird) zusammen mit IBToGo-Binärdateien und einer Lizenzbelegdatei, die Sie mit Ihrer Lösung bereitstellen können (ohne Registrierung auf dem Computer, auf dem Sie sie bereitstellen).
Da es eine eingebettete Datenbank verwendet und die Indy HTTP Server-Komponente verwendet, kann es nicht die gleiche Anzahl von Anforderungen pro Sekunde einer regulären vollständigen RAD Server-Installation verarbeiten und es kann nicht mit mehreren RAD Server-Frontends skaliert werden. Wir haben keine hartcodierten Einschränkungen hinzugefügt, aber die von RSLite verwendete zugrunde liegende Architektur hat eine viel eingeschränktere Skalierbarkeit, aber wir erwarten, dass sie für viele einfache Bereitstellungsszenarien ausreicht – wobei der Durchsatz auch vom spezifischen Code abhängt Ihre RAD Server-Module werden ausgeführt. Beachten Sie, dass wir für die Bereitstellung auf einem öffentlichen System empfehlen, den RSLite-HTTP-Server nicht direkt verfügbar zu machen, sondern über eine Proxy-Konfiguration zugänglich zu machen, damit Sie immer noch einen Webserver (wie Apache oder IIS) haben, der den Sicherheitskontext für das eingehende HTTPS bereitstellt Anrufe und leitet diese an RSLite weiter.
Nach einer Lizenz fragen
Kommen wir nun zu den praktischen Aspekten von RSLite. Als erstes müssen Sie eine Lizenz einlösen, was Sie mit jeder Enterprise- oder Architect-Lizenz für RAD Studio 11 (einschließlich Delphi 11 und C++Builder 11) tun können. Alles was Sie tun müssen, ist die Seite zu besuchen:
https://reg.embarcadero.com/srs6/promotion.jsp?promoId=572
und folgen Sie den Anweisungen: Sie benötigen Ihren Registrierungsschlüssel und Ihr EDN-Konto. Der Prozess hier besteht nicht nur darin, einen Lizenzschlüssel für RSLite zu erhalten, sondern eine Slip-Datei (eine in einer TXT-Datei gespeicherte Lizenz), die Sie zusammen mit Ihrer Installation bereitstellen können. Diese Lizenz hat keine Beschränkungen in Bezug auf die Anzahl der Installationen (Sie können jedoch nicht zwei Instanzen auf demselben Computer ausführen). Beachten Sie, dass die Lizenzdatei in einem bestimmten Unterordner abgelegt werden muss, im Gegensatz zu den allgemeinen Informationen auf der Einlösungsseite.
Bereitstellen eines RAD Server Lite-Projekts
Wie stellen Sie RSLite bereit, sobald Sie die Lizenz haben? Es gibt zwei unterschiedliche Überlegungen:
- Zuerst müssen Sie eine Bereitstellungskonfiguration mit RSLite, den erforderlichen Laufzeitpaketen und der IBToGo-Bereitstellung erstellen (Schritte sind unten).
- Zweitens müssen Sie eine geeignete Datenbankdatei für die Produktion generieren, die mit der IBToGo-Lizenz kompatibel ist – eine lokale Datenbank, die mit der RAD Server Developer Edition erstellt wurde, ist nicht kompatibel
Die bereitzustellenden Dateien
In der Praxis sind dies die Dateien, die zum Bereitstellen einer RSLite-Lösung erforderlich sind (zusätzlich zu Ihren Anwendungspaketen und deren Abhängigkeiten):
- Die ausführbare RSLite-Datei, die mit der Developer Edition identisch ist: EMSDevServer.exe, verfügbar im bin-Ordner von RAD Studio (oder die ähnliche 64-Bit-Version)
- Die erforderlichen RAD Studio-Laufzeitpakete, darunter die für eine minimale Installation erforderlichen (hier aufgelistet und im RAD Studio-Ordner win32 oder win64 redist verfügbar) sowie alle anderen Laufzeitpakete, die für den Code in Ihren RAD Server-Modulen erforderlich sind:
- 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
- Die InterBase ToGo-Bereitstellungsdateien, die sich im öffentlichen Dokument InterBase redist-Ordner befinden (z. B. C:/Users/Public/Documents/Embarcadero/Interbase/redist/InterBase2020) in den Unterordnern win32_togo oder win64_togo – für Linux finden Sie die libibtogo.so Datei im richtigen InterBase Redist-Ordner
- Fügen Sie die oben erhaltene Lizenzdatei zum Interbase/License-Ordner hinzu (Teil der IBToGo Redist-Konfiguration).
MSVC-Laufzeit
Beachten Sie auch, dass zum Ausführen von IBToGo (und damit RSLite mit IBToGo) auf einem Windows-Zielcomputer die Visual C++ 2013-Laufzeitbibliothek installiert sein muss. Auf einem Entwicklercomputer mit RAD Studio ist es höchstwahrscheinlich bereits installiert. Auf einem allgemeinen Zielbereitstellungscomputer müssen Sie es jedoch möglicherweise installieren, nachdem Sie es von Microsoft heruntergeladen haben .
Erstellen der Produktionsdatenbank
Mit dieser Konfiguration können Sie RSLite starten, indem Sie die Anwendung EMSDevServer.exe ausführen. Wenn der Zielcomputer jedoch über einen InterBase-Client verfügt, erhält dieser eine höhere Priorität, und wenn es sich bei dem InterBase-Client um die Developer Edition handelt, die mit RAD Studio geliefert wird, funktioniert alles außer in einer standardmäßigen RAD Server Developer-Konfiguration.
Sie können dies leicht herausfinden, denn wenn RAD Server startet, wird Ihnen mitgeteilt, ob dies eine „RSLite“-Konfiguration in seinem Protokoll ist. Die ersten Zeilen sehen so aus:
{“Thread”:19124”,ConfigLoaded”:{”Dateiname”:”[Ordner]emsserver.ini””,Exists”:true}} {”Thread”:19124”,Lizenzierung”:{ “Lite”:true , ”Licensed”:true”,LicensedMaxUsers”:2}} {”Thread”:19124”,DBConnection”:{”InstanceName”:”””,”Filename”:”[folder]emsserver.ib”}}
Wenn der Code anzeigt, dass „Lite“ auf false gesetzt ist, müssen Sie möglicherweise das Laden der InterBase-Clientbibliothek gds32.dll (oder ihrer 64-Bit-Version) manuell deaktivieren, die sich im Allgemeinen in C:/Windows/SysWOW64 befindet (wenn der InterBase-Client Bibliothek nicht gefunden werden kann, lädt sie die lokale ibtogo.dll – etwas, das wir in einer kommenden Version konfigurierbar machen werden).
Wenn Sie nun RSLite (mit der richtigen Konfiguration) starten und es keine Datei emsserver.ini und keine Datenbankdatei emsserver.ib gibt, werden Sie aufgefordert, eine zu erstellen. Damit dies funktioniert, muss RSLite die Konfiguration im Objekt-Repository-Ordner von RAD Studio finden (ObjRepos unter dem Produktordner). Am einfachsten geht das, indem man die Dateien unter ObjRepos/en/ems in einen Ordner mit diesem relativen Pfad von emsdevserver.exe: „../ObjRepos/en“ kopiert. Mit anderen Worten, Sie benötigen einen ObjRepost-Ordner auf derselben Ebene wie der Ordner, der Ihre RSLite-Installation enthält
Hinweis: Dies ist nicht für jede RSLite-Bereitstellung erforderlich, sondern nur einmal, um eine Produktionsdatenbank zu generieren, die Sie später unverändert auf die Zielcomputer kopieren können. Tatsächlich ist die in einer Entwicklungsumgebung erstellte Datenbank nicht mit der RSLite-Bereitstellung kompatibel.
Ich empfehle Ihnen, als Zielordner den gleichen Zielordner wie bei Ihrer RSLite-Bereitstellung anzugeben, damit der Assistent eine emsserver.ini-Datei und eine emsserver.ib-Datenbankdatei in Ihrem Bereitstellungsordner erstellt. Holen Sie sich jetzt den gesamten Ordner mit RSLite, diesen Konfigurationsdateien, den Laufzeitpaketen und IBToGo, einschließlich der Lizenz, und Sie haben alles, was Sie für die Bereitstellung auf einem Windows-Zielcomputer benötigen.
Proxy-Konfiguration
Wie bereits erwähnt, ist es aufgrund seiner Einschränkungen in Bezug auf Schutz und Verschlüsselung nicht empfehlenswert, RSLite direkt als öffentliche Webanwendung bereitzustellen. Ich würde empfehlen, eine Proxy-Schicht mit einem dedizierten Dienst zu verwenden oder einen der beliebten Webdienste als Front-End zu verwenden. In Apache konfigurieren Sie beispielsweise einen virtuellen Host, aktivieren HTTPS und leiten den Datenverkehr mit einer Konfiguration wie der folgenden an die RSLite-Instanz um:
[crayon-6739036d9fb4b248559412/]
Für Linux
Für Linux können Sie ähnliche Schritte wie oben ausführen und alles sollte wie erwartet funktionieren. Alternativ können Sie auch den vollständigen RAD-Server installieren und dann IBToGo zur Installation hinzufügen:
-
- Installieren Sie den RAD-Server mit der Datei ems_install.sh, die im RAD-Installationsordner verfügbar ist (https://docwiki.embarcadero.com/RADStudio/Sydney/en/Configuring_Your_RAD_Server_Engine_or_RAD_Server_Console_on_Linux)
- Kopieren Sie die IBToGo-Dateien aus dem Interbase-Ordner „redist“ in den EMS-Ordner unter Linux (/usr/lib/ems)
- Führen Sie den EMSDevServerCommand aus und folgen Sie dem Assistenten, um die EMS-Datenbank und die Konfigurationsdatei zu erstellen (beachten Sie, dass Sie die Anwendung möglicherweise über sudo ausführen müssen, um die richtigen Berechtigungen zu haben ).
Upgrade auf den vollständigen RAD-Server
Abschließend möchte ich Sie daran erinnern, dass RSLite einen begrenzten Umfang in Bezug auf den Datenverkehr mit Benutzeranforderungen hat, den es verarbeiten kann. Wenn Sie eine höhere Bandbreite und einen höheren Durchsatz benötigen, empfehlen wir, stattdessen den vollständigen RAD-Server bereitzustellen.
Jeder Kunde mit einer Enterprise Edition von RAD Studio, Delphi oder C++Builder erhält eine Bereitstellungslizenz der Vollversion von RAD Server. Kunden der Architect Edition erhalten eine unbegrenzte Bereitstellungslizenz (die jedoch noch eine Aktivierung für jeden Server erfordert, auf dem Sie die Bereitstellung durchführen möchten). Alternativ können Sie sich an unser Vertriebsteam wenden, um eine VAR-Vereinbarung für RAD Server zu erhalten, die es Ihnen ermöglicht, den vollständigen RAD Server einfach durch Bereitstellung einer Belegdatei zusammen mit Ihrer Anwendung an eine unbegrenzte Anzahl von Kunden und ohne Registrierung zu verteilen.