リモート データ アクセスのアーキテクチャ
リモート データ アクセス (RDA) では、Microsoft SQL Server Compact 3.5 の 3 つのコンポーネント (SQL Server Compact 3.5 データベース エンジン、SQL Server Compact 3.5 クライアント エージェント、および SQL Server Compact 3.5 サーバー エージェント) を使用します。
RDA では、サーバー上の SQL Server データベースとデバイス上の SQL Server Compact 3.5 データベース間の通信メカニズムとして、Microsoft インターネット インフォメーション サービス (IIS) を使用します。次の図に示すように、SQL Server Compact 3.5データベース エンジン、SQL Server Compact 3.5 クライアント エージェント、および SQL Server Compact 3.5 サーバー エージェントが連動して RDA を実現します。
SQL Server Compact 3.5 データベース エンジン
SQL Server Compact 3.5データベース エンジンでは、デバイス上の SQL Server データ ストアを管理します。監視設定付きでプルした場合、データベース エンジンでは各レコードで少量の変更監視用情報を保持することにより、挿入、更新、または削除されるすべてのレコードを監視します。SQL Server のデータにインデックスが存在する場合、RDA ではローカル データへのインデックス作成もサポートされます。
SQL Server Compact 3.5 クライアント エージェント
デバイス上の SQL Server Compact 3.5 クライアント エージェントは、RDA に使用する主要なコンポーネントです。クライアント エージェントは、RDA オブジェクト インターフェイスを実装します。アプリケーションではこのインターフェイスを呼び出し、RDA をプログラムを使用して制御します。
次の表で、SQL Server Compact 3.5 クライアント エージェントが RDA オブジェクトのメソッドの呼び出しに応じて行う操作を説明します。
メソッド |
操作 |
---|---|
Pull |
HTTP 経由で SQL Server Compact 3.5 サーバー エージェントに要求を転送します。SQL Server Compact 3.5 クライアント エージェントは SQL Server からレコードセットを受け取り、SQL Server Compact 3.5 データベースにレコードセットを格納します。 |
Push |
SQL Server Compact 3.5 データベースから挿入、更新、および削除されたすべてのレコードを取り出し、HTTP 経由で SQL Server Compact 3.5 サーバー エージェントに送信します。 |
SubmitSQL |
指定された SQL 要求を、HTTP 経由で SQL Server Compact 3.5 サーバー エージェントに転送します。 |
SQL Server Compact 3.5 サーバー エージェント
SQL Server Compact 3.5 サーバー エージェントは IIS を実行するコンピュータ上に置かれ、SQL Server Compact 3.5 クライアント エージェントによって行われる HTTP 要求を処理します。このサーバー エージェントは、SQL Server と SQL Server Compact 3.5 間のデータ交換を管理する際に、一時的なメッセージ ファイル (*.in と *.out) を使用します。
次の表で、SQL Server Compact 3.5 サーバー エージェントが RDA オブジェクトのメソッドの呼び出しに応じて行う操作を説明します。
メソッド |
操作 |
---|---|
Pull |
SQL Server Compact 3.5 クライアント エージェントから要求を受け取り、OLE DB Provider for SQL Server を使用して SQL Server に接続し、クライアントの SQL ステートメントを呼び出します。SQL Server Compact 3.5 サーバー エージェントは SQL Server Compact 3.5 クライアント エージェントに HTTP 経由で結果のレコードセットを返します。 |
Push |
挿入、更新、および削除されたすべてのレコードを SQL Server Compact 3.5 クライアント エージェントから受け取り、OLE DB を使用して SQL Server に接続し、SQL Server データベースのレコードを挿入、更新、または削除します。エラーが発生した場合、SQL Server Compact 3.5 サーバー エージェントは SQL Server Compact 3.5 クライアント エージェントに HTTP 経由でエラーを報告します。 |
SubmitSQL |
指定された SQL 要求を、HTTP 経由で SQL Server Compact 3.5 クライアント エージェントから受け取り、OLE DB を使用して SQL Server に接続し、クライアントの SQL ステートメントを呼び出します。エラーが発生した場合、SQL Server Compact 3.5 サーバー エージェントは SQL Server Compact 3.5 クライアント エージェントに HTTP 経由でエラーを報告します。 |