Reporting Services における SOAP の役割
レポート サーバー Web サービスでは、Simple Object Access Protocol (SOAP) メッセージングを使用し、ネットワーク経由でテキストベースのコマンドを送信します。これらのコマンドは XML テキスト形式であり、HTTP を使用して World Wide Web 経由で送信されます。レポート サーバー Web サービスでは、通信プロトコルとして SOAP を使用することで、アプリケーションとコンポーネントが開放型で広く普及しているインフラストラクチャを使用してレポート サーバーとデータを交換できるようにしています。SOAP 標準は www.w3.org/TR/SOAP で定義されています。
クライアント アプリケーションは、SOAP に対応しており、SOAP 要求を送信できる限り、SOAP クライアントして動作できます。レポート マネージャはそのような SOAP クライアントの 1 つです。レポート マネージャは、すべてのレポートとレポート関連コンテンツが格納されているレポート サーバー データベースへのインターフェイスを提供します。エンド ユーザーはアプリケーションを使用して、レポート サーバー名前空間のレポートとフォルダを参照し、管理できます。レポート マネージャはレポート サーバー Web サービス インフラストラクチャ上に構築されています。
レポート サーバーは SOAP サーバーとして動作します。SOAP サーバーは、SOAP クライアントから要求を受け取り、適切な応答を作成できる SOAP 対応サービスです。サーバーは要求を処理し、クライアントにエンコードされた応答を送り返します。
Reporting Services の SOAP メッセージは、クライアントで行われた要求の種類によってさまざまな形式を取ります。次の例は、レポート サーバー データベースからアイテムを削除する簡単な SOAP クライアント要求を表しています。
<soap:Envelope xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<DeleteItem xmlns="https://www.microsoft.com/sql/ReportingServer">
<item>/Samples/Report1</item>
</DeleteItem>
</soap:Body>
</soap:Envelope>
SOAP 自体は、メッセージを Envelope 要素に入れるよう要求します。メッセージは一括して Body 要素内に入ります。この例では、Body には DeleteItem メソッドの呼び出しが入っています。このメソッドは、削除するアイテムのパスを表す文字列パラメータを取ります。すべての SOAP 操作をメソッドにカプセル化する Microsoft.NET Framework クライアント プロキシ クラスを作成できます。次の MicrosoftVisual C# メソッドは上記の SOAP の例を表しています。
public void DeleteItem(string item);
サーバーからの応答は次のようになります。
<soap:Envelope xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<DeleteItemResponse xmlns="https://www.microsoft.com/sql/ReportingServer" />
</soap:Body>
</soap:Envelope>
DeleteItem メソッドに戻り値はないため、空の応答が返されます。