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 設定の一部)に追加します。

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 に設定されていると出た場合には、通常 C:\Windows\SysWOW64 にある、gds32.dll(またはその 64 ビット版)InterBase クライアント ライブラリの読み込みを、手動で無効にする必要があります。 (InterBase クライアント ライブラリが見つからない場合には、ローカルにある ibtogo.dll が読み込まれます — これについては、今後のリリースで設定変更可能にする予定です)。

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

メモ: これは、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 でアプリケーションを実行する必要がある場合があります。