RAD Server Lite の配布

提供: RAD Studio
移動先: 案内検索

RAD サーバーには、InterBase をベースとしたバックエンド データベースが必要であり、通常、IIS または Apache のいずれかの Web サーバー DLL モジュールとして配布されます。 このことから、標準デプロイには次が必要です:

  • RAD サーバー モジュールの Web サーバーとその構成
  • RAD サーバーの配布と構成
  • 特別な目的の RAD サーバー ライセンスでの InterBase のインストール(ユーザーがアクティベートするためにターゲット デバイス上に登録する必要のあるライセンス)

開発のために、Indy HTTP サーバーに基づくスタンドアロン バージョンの RAD サーバーを長い間提供してきました。これは、パフォーマンスは制限されますが、配布がはるかに簡単であり、またデバッガ下で実行することもできます(つまり、RAD サーバー モジュール のコードをデバッグできます)。 開発バージョンは、配布用のものではなく、またそのためにライセンス許可されていません。 作成できるユーザー数には制限があり、ローカルの InterBase Developer エディションで動作します(そのライセンスは RAD Studio ライセンスの一部です)。

RAD Server Lite (RSLite)は、テスト サーバーと大量のスループットを必要としないシナリオを対象とした、よりシンプルな配布モデルを提供するもので、本格的なサーバーの代わりに IBToGo(InterBase 組み込みデータベース エンジン)を使用し、それを簡略化したライセンス モデルと組み合わせることで、提供しています。

RSLite は、(RAD Studio に同梱されている)開発版と同じバイナリと、IBToGo バイナリ、そして、ソリューションを配布できるライセンス slip ファイル(配布先のコンピューターに登録する必要はありません)を使用します。 組み込みデータベースを使用し、Indy HTTP サーバー コンポーネントを使用するため、通常の本格的な RAD サーバー インストールと同数の要求は処理できず、複数のRAD サーバー フロント エンドには拡張できません。

RSLite で使用される基盤アーキテクチャのスケーラビリティははるかに制限されていますが、多くのシンプルな配布シナリオでは十分に使用できるとされています --- ただし、スループットは、RAD サーバー モジュールが実行する特定のコードにも依存する点に注意してください。

ヒント: 公のシステム上へ配布する場合、RSLite HTTP サーバーを直接公開することは避け、プロキシ構成を介してアクセスできるようにすることをお勧めします。それにより、 Web サーバー(Apache や IIS など)で、受信した HTTPS 呼び出しに対してセキュリティ コンテキストを用意した上で、それらを RSLite に転送することが可能になります。

RAD Server Lite ライセンスの取得方法

RAD Studio 11 用の Enterprise または Architect ライセンスで(Delphi 11 および C++Builder 11 も含まれます)、ライセンス取得を行うことができます。 こちらのページにアクセスし、表示される手順に従ってください。

メモ: 登録キーと EDN アカウントが必要となります。

この手順では、RSLite のライセンス キーを受け取るだけではなく、インストールと共に配置できる slip ファイル(.txt ファイルに保存されているライセンス)も受け取ります。 このライセンスにはインストール数について制限はありませんが、同一マシン上に 2 つのインスタンスを実行することはできません。

メモ: ライセンス ファイルは、取得するサイトにある一般的な情報が示唆するものとは異なり、実際には、特定のサブ フォルダに配置する必要があります。

RAD Server Lite プロジェクトの配置

ライセンスを取得したら、プロジェクトを配置する前に、検討事項が 2 つあります。

  • まず、RSLite でデプロイメント設定を、また、必要なランタイム パッケージ、IBToGo デプロイメントを作成する必要があります(ステップはこちら)。
  • 次に、IBToGo ライセンスと互換性のある、運用時用の適切なデータベース ファイルを生成する必要があります。RAD Server Developer エディションによって作成されたローカル データベースは互換性がありません。

配置するファイル

実際には、これらが RSLite ソリューションを配置するために必要なファイルです(アプリケーション パッケージとその依存ファイルに加えて):

  1. RSLite 実行可能。Developer エディションと同様。EMSDevServer.exe が、RAD Studio の bin フォルダにあります(もしくは 64 ビット版の同等のフォルダ)。
  2. 必要な RAD Studio ランタイム パッケージ。これには、最小限のインストールに必要なもの(ここにリストされており、RAD Studio の win32 または win64 redist フォルダから入手可能)に加えて、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. InterBase ToGo デプロイメント ファイルは、パブリック ドキュメント下の InterBase redist フォルダ(例、C:\Users\Public Documents\Embarcadero\Interbase redist\InterBase2020)の、サブフォルダ win32_togo または win64_togo 内にあり、Linux の場合には、該当する InterBase redist フォルダ内に libibtogo.so ファイルがあります。
  4. 上で取得したライセンス ファイルを、interbase/license フォルダ(IBToGo redist 設定の一部)に追加します。

配置ウィザードの利用

次の手順に従って、配置ウィザードの RSLite 機能を使用してファイルを配置します。

  1. RSLite 機能を追加します。
  2. 次に、IBToGo 機能を追加します。
  3. iblite registration ファイルのチェックを外します。
  4. 「How to get a RAD Server Lite License」セクションで、配置するファイルを追加します: rslite アクティベーション ファイルを生成し、その対象を "interbase/license" と設定します。
  5. 次に、「Creating the Production Database」セクションから取得したファイルを追加して、emsserver.ini を ./ に配置するようにします。
  6. 最後に、「Creating the Production Database」セクションから取得したファイルを追加して、emsserver.ib を ./ に配置するようにします。

MSVC ランタイム

ターゲットの Windows マシン上で IBToGo(および IBToGo を使用する RSLite)を実行するには、Visual C++ 2013 ランタイム ライブラリがインストールされている必要があります。 RAD Studio のある開発者のマシンでは、大抵の場合、すでにインストールされていることでしょう。 しかしながら、一般的な配置対象のマシンでは、Microsoft からダウンロードしてインストールする必要があります。

運用データベースの作成

この設定では、RSLite を EMSDevServer.exe アプリケーションを実行することで開始させることができます。 ターゲット マシンに InterBase クライアントが入っている場合には、そちらの方を優先して認識してしまい、その InterBase クライアントが RAD Studio に同梱されていた Developer エディションならすべて動作しますが、標準 RAD サーバー Developer 設定の場合にはそうはいきません。

これは、RAD サーバーの起動時にログの最初の数行を調べることでわかります。 「RSLite」構成の場合、最初の数行は次のようになります:

{“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”}}

“Lite” が false に設定されているとコードが示している場合、gds32.dll(または 64 ビット版の)InterBase クライアント ライブラリの読み込みを、手動で無効にする必要があります。通常、これは C:\Windows\SysWOW64 にありますが、もし InterBase クライアント ライブラリが見つからない場合には、ローカルの ibtogo.dll が読み込まれます。

さて、RSLite を開始したものの(適切な設定で)、emsserver.ini ファイルと emsserver.ib データベース ファイルがなかった場合、それを作成するようメッセージが表示されます。 これを機能させるには、RSLite が RAD Studio のオブジェクトリポジトリ フォルダ(製品フォルダの下のObjRepos)で設定を見つける必要があります。 これを行うより簡単な方法は、Program Files (x86)\Embarcadero\Studio\22.0\ObjRepos\en\ems にあるファイルを、emsdevserver.exe からの相対パス「../ObjRepos/en」のフォルダにコピーすることです。つまり、RSLite のインストール ファイルを含むフォルダと同じレベルのディレクトリに、プロジェクト配置ディレクトリに、ObjRepost フォルダが必要となります。

メモ: これは、RSLite の各デプロイメント毎には必要なく、一度運用データベースを生成すれば、以降はターゲット コンピュータ上にそれをそのままコピーすることができます。 実際、開発環境で作成されたデータベースは、RSLite デプロイメントと互換性がありません。

RSLite デプロイメントと同じものを、ターゲット フォルダとして指定することをお勧めします。これにより、ウィザードは、emsserver.ini ファイルと emsserver.ib データベース ファイルをユーザーのデプロイメント フォルダに作成できるようになります。 これで、RSLite でのすべてのフォルダ、それらの設定ファイル、ランタイム パッケージおよび IBToGo(ライセンスを含む)を取得し、ターゲットの Windows コンピュータに配置するために必要なものがすべて揃ったことになります。

プロキシの設定

用語または保護や暗号化における制限の点から、RSLite を直接パブリックなWeb アプリケーションに公開するのは推奨されません。 専用サービスでプロキシ レイヤを使用するか、フロント エンドとして定評のある Web サービスの1つを使用することをお勧めします。 たとえば Apache の場合、仮想ホストの設定において、次のような設定で、HTTPS を有効にし、トラフィックを RSLite インスタンスにリダイレクトします:

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

Linux の場合

Linux の場合、上記と同様の手順を踏むことにより、すべてが期待通りに機能します。 また、代わりの方法として、RAD サーバーを完全にインストールした後、IBToGo を追加インストールすることも考えられます。

  • RAD インストール フォルダにある ems_install.sh を使用して、RAD サーバーをインストールします。これらを参照
  • IBToGo ファイルを、Linux(/usr/lib/ems)上の、Interbase “redist” フォルダから EMS フォルダにコピーします。
  • EMSDevServerCommand を実行し、ウィザードに従い、EMS データベースとその設定ファイルを作成します。
    メモ:

適切な権限を取得するには、sudo でアプリケーションを実行する必要がある場合があります。