サービスのアーキテクチャ (Reporting Services)
Reporting Services のレポート サーバーは、個別のアプリケーション ドメインで実行される異なる機能で構成される Windows サービスとして実装されます。このサービスは、レポート マネージャ、レポート サーバー Web サービス、およびバックグラウンド処理の各機能領域をホストします。このトピックでは、有効にする機能や発生した問題のトラブルシューティングの方法を十分な情報に基づいて決定できるように、サービスの構成について説明します。
アーキテクチャの図
次の図は、Reporting Services のサービスのアーキテクチャを示しています。
注意 |
---|
このアーキテクチャ図には、レポート サーバーの機能がすべて反映されているわけではありません。たとえば、初期化と可逆暗号化は重要なサーバー操作ですが、この図の 3 つの機能領域には含まれません。 |
サービスとインフラストラクチャ
レポート サーバー Windows サービスには、1 つのプロセスで 1 つのアカウントを使用して実行され、1 つのレポート サーバー データベースと構成ファイルのセットにアクセスする、一連のアプリケーションが統合されています。サービス全体の構成設定は、RSeportServer.config、ReportServerServices.exe.config、およびレポート サーバー データベースに格納されます。
サービス内では、レポート マネージャ、Web サービス、およびバックグラウンド処理が、個別のアプリケーション ドメインで実行されます。この 3 つの機能領域のすべてが既定で有効になりますが、サービスのどの部分を使用できるようにするかはいつでも構成できます。たとえば、要求時レポートや対話型レポートをサポートしない場合は Web サービスを無効にすることができます。
サーバーの機能領域は個別のアプリケーション ドメインに分離されていますが、メモリやプロセスの状態はサービス全体で管理されます。たとえば、メモリのしきい値はサービス全体に対して構成されます。また、レポート サーバーでは再利用の操作が内部操作として処理されるため、サービスの個々の部分を必要に応じて個別に再利用することはできません。ただし、構成設定を指定して、永続的な接続を開いたままにしておく時間を指定することはできます。
サービスの機能領域を複数のインスタンスの間で分割する場合 (たとえば、1 つ目のインスタンスでレポート マネージャを有効にし、2 つ目のインスタンスで Web サービスを有効にし、3 つ目のインスタンスでバックグラウンド処理を有効にする場合など) は、メモリと構成の設定はそのインスタンスで実行されているアプリケーションのみに適用されます。サービスの機能領域を分割した場合も、機能領域間の依存関係が完全になくなるわけではないので注意してください。レポート サーバーを完全にインストールした場合、通常は 3 つの領域のすべてが使用されます。詳細については、「Reporting Services 機能を有効または無効にする方法」を参照してください。
HTTP リスナ
Reporting Services には、ローカル コンピュータの特定のポートで HTTP.SYS 宛ての受信要求を監視する HTTP リスナが含まれています。ホスト名とポートは、サーバーの構成時に URL 予約で指定します。使用しているオペレーティング システムによっては、指定するポートを他のアプリケーションと共有できます。
HTTP リスナは、HTTP 1.1 プロトコルを実装し、オペレーティング システムに組み込まれている HTTP.SYS 機能を使用します。そのため、Reporting Services では、HTTP.SYS が内部コンポーネントとして含まれているオペレーティング システムが必要になります。
HTTP リスナが要求を処理するときには、要求が認証レイヤに転送されてユーザーの ID が確認されます。レポート サーバー Web サービスは、要求が認証されてから呼び出されます。
HTTP リスナは、バージョン 1.0 の HTTP サーバー API を使用します。詳細については、MSDN の「HTTP サーバー API」を参照してください。
認証レイヤ
Reporting Services には、要求を送信するユーザーやアプリケーションの ID を確認する認証レイヤが含まれています。サポートされている認証の種類は、Windows 統合セキュリティ、NTLM 認証、基本認証、フォーム認証、カスタム認証、および匿名アクセスです。Reporting Services で既定で使用されるのは Windows 統合セキュリティと NTLM 認証ですが、構成ファイルで別の認証の種類を指定できます。各レポート サーバー インスタンスで構成できる認証の種類は 1 つだけです。スケールアウト配置構成の場合は、環境内のすべてのノードで認証の種類を統一する必要があります。
レポート サーバーの認証は、使用しているネットワークのセキュリティ設定とクライアント アプリケーションのコンテキストで動作します。特定の認証の種類を使用できるかどうかは、ブラウザとネットワークのセキュリティ機能によって決まります。たとえば、Windows 統合セキュリティを使用するには、Internet Explorer と Kerberos ネットワーク認証が必要なほか、権限借用が有効になっている必要もあります。さらに、統合セキュリティをレポート データ ソース接続に対して使用する場合は、委任を有効にしてリモート データ ソースに接続できるようにする必要もあります。
Reporting Services における認証の詳細については、「Reporting Services での認証の構成」を参照してください。
レポート マネージャ
レポート マネージャは、レポート サーバー Web サービスへの Web フロントエンド アクセスを提供するゼロ フットプリントのクライアントです。このツールを使用すると、特に何も設定しなくてもレポート サーバーのコンテンツや操作を表示および管理できます。
既定では、同じサーバー インスタンスで実行されている Web サービスへのフロントエンド アクセスが提供されます。そのサーバー インスタンスで Web サービスが有効になっていない場合は、構成ファイルで URL を設定することによって、レポート マネージャが別のインスタンスや別のコンピュータのレポート サーバー Web サービスを指すように指定することができます。
レポート マネージャは、クライアント コンピュータのブラウザ セッションの内部で実行されます。クライアントに格納されるアプリケーション ファイルや設定はありません。セッション状態は、ブラウザ ウィンドウが開いている限り保持されます。ユーザー固有の設定は、レポート サーバー データベースに保存され、そのユーザーがレポート マネージャに接続するたびに再利用されます。
レポート マネージャのサブスクリプション定義ページでは、カスタム配信拡張機能の設定を使用することができます。カスタム配信拡張機能を作成して配置すると、その拡張機能のオプションやテキストが動的に表示されます。
レポート マネージャを使用するには、レポート マネージャへの URL を定義する必要があります。このため、最初に URL を作成しないことで、レポート マネージャを事実上無効にすることができます。Reporting Services を既定の構成でインストールした場合は、既に URL が作成されているため、無効にするにはその URL を削除する必要があります。
レポート サーバーを SharePoint 統合モードで実行するように構成すると、レポート マネージャは無効になります。SharePoint 統合モードで実行されているレポート サーバーでは、URL が構成されているかどうかに関係なく、レポート マネージャを使用することはできません。
レポート マネージャの詳細については、「レポート マネージャ」および「レポート マネージャを構成する方法」を参照してください。
レポート サーバー Web サービス
レポート サーバー Web サービスは、ユーザーまたはアプリケーションによってリアルタイムで開始されるすべての要求時のレポート/モデル処理要求 (レポート マネージャとの間でやり取りされるほとんどの要求を含む) のコア エンジンです。
レポート サーバー Web サービスでは、要求時に実行されるレポートのエンド ツー エンドの処理を実行します。対話型の処理をサポートするために、要求の処理に先立ってユーザーの認証と承認規則の確認が行われます。Web サービスでは、既定の Windows セキュリティ拡張機能とカスタム認証拡張機能がサポートされています。
Web サービスは、レポート サーバーと組み合わせるカスタム アプリケーションの主要なプログラム インターフェイスでもあります。カスタム ユーザー インターフェイスを用意する場合は、レポート マネージャなしで Web サービスを使用できます。
詳細については、「レポート サーバー Web サービス」を参照してください。
バックグラウンド処理
バックグラウンド処理とは、レポート サーバーによって開始され、バックグラウンドで実行される操作のことです。ほとんどのバックグラウンド処理は、スケジュールされたレポート処理とサブスクリプションの配信によって構成されますが、レポート サーバー データベースのメンテナンス タスクもバックグラウンド処理に含まれます。
スケジュール、サブスクリプション、および配信の各バックグラウンド処理は、Management Studio のポリシー ベースの管理の [Reporting Services のセキュリティ構成] ファセットを使用すると、構成することも無効にすることもできます。これらの操作を無効にすると、スケジュールされたレポート処理やモデル処理を現在のサービス インスタンスで使用できなくなります。データベース メンテナンスは、サーバーの動作を維持する基本的なタスクであるため、無効にすることはできません。
バックグラウンド処理の操作の定義は、フロントエンド アプリケーションや Web サービスによって決まります。具体的に言うと、スケジュールとサブスクリプションはレポート マネージャのアプリケーション ページ (レポート サーバーが SharePoint 統合モードで構成されている場合は SharePoint サイト) で作成され、Web サービスに転送されます。その後、Web サービスで定義が作成されて、レポート サーバー データベースに格納されます。
バックエンド処理へのプログラムによるアクセスを必要とするカスタム コードを用意する場合は、Reporting Services WMI プロバイダを使用します。詳細については、「Reporting Services WMI プロバイダ」を参照してください。スケジュールと配信処理の機能の詳細については、「スケジュールおよび配信のプロセッサ」を参照してください。
バックグラウンド処理の認証とメモリ管理
サービスのアーキテクチャの図に示されているように、バックグラウンド処理では、認証とメモリ管理がレポート マネージャや Web サービスとは異なる方法で処理されます。バックグラウンド処理では、Authz.dll を使用して、サブスクリプションの作成に使用されたユーザー アカウントにレポートを表示するための適切な権限があるかどうかを確認します。これにより、レポートを受信しようとしているユーザーがドメインの有効な Windows ユーザーであることが確認されます。バックグラウンド処理として実行される他のすべてのレポート処理やモデル処理は、自動実行アカウントの ID で要求されます。