DataSnap サーバーの作成
[ファイル|新規作成|その他...|Delphi プロジェクト(または、C++Builder プロジェクト)|DataSnap Server]
これらのオプションを使用して、サンプルの DataSnap のサーバーやブローカを作成したり、別のサーバー モジュールを既存の DataSnap アプリケーションに追加することができます。サーバー モジュールを使用すると、クライアント アプリケーションに公開可能なサーバー メソッドを実装することができます。
従来の DataSnap サーバーは少なくとも次の 3 つのコンポーネントから構成されます。
- 独自の中間層サーバーを作成するための TDSServer
- TDSServerClass
- トランスポート クラス
TDSServer は、トランスポートとサーバー メソッド クラスの作成および存続期間を管理します。
TDSServerClass を使用すると、OnGetClass イベントをオーバーライドすることで、動的メソッド呼び出しを使ってリモート クライアントから呼び出すことができる公開メソッドを備えたアプリケーションのサーバー側クラスを指定することができます。このクラスのメソッドは DBX クライアント プロバイダや ADO.NET プロバイダなどのリモート クライアントから呼び出すことができ、そのために必要な要件は次の 2 つだけです。
- クラスが TComponent の下位クラスでなければならない。
- MethodInfo 指令を有効にする必要がある。
DataSnap サーバーにいったん接続すると、アプリケーション サーバー内のメソッドをストアド プロシージャと同じように呼び出すことができます。たとえば、新しいクラス TSqlServerMethod を使用すると、コマンド テキストのテキスト クラスおよびメソッド名とそのメソッドのパラメータを指定することでサーバー メソッドを呼び出すことができます。サーバー メソッドでは、TDBXReader を使用して、クライアントとの間でデータセットをやり取りできます。新しいスマート テーブルは、DataSnap でサポートしているさまざまなデータセットを抽象化したものであるため、クライアントとサーバーの間で透過的に受け渡すことができます。
トランスポート層は、TDSTCPServerTransport と TDSHTTPService で構成されます。
TRemoteDataModule を拡張するアプリケーションのサーバー側クラスを作成して、そこに含まれるプロバイダにクライアント側の新しい TDBXAppServerConnection クライアント コンポーネントからアクセスできるようにすることも可能です。TDBXAppServerConnection は、dbExpress を使って DataSnap サーバーに接続するためのもので、既存のアプリケーションの互換性を保ちつつ新しい DataSnap 機能を活用できるようにするために用意されています。新しいアプリケーションでは、DataSnap のために TRemoteDataModule を使用する必要はありません。
メモ: アプリケーション サーバーをデータベースに接続する必要はまったくありません。