サービス オブジェクト モデル
最終更新日: 2010年4月20日
適用対象: SharePoint Foundation 2010
この記事の内容
SPFarm オブジェクト
SPServer オブジェクト
サービス オブジェクト
クライアント (フロントエンド) オブジェクト
Microsoft SharePoint Foundation 2010 では、SharePoint 2010 サイトのさまざまな特徴を表すオブジェクトへのアクセスに使用できる高度な構造化サーバー側オブジェクト モデルを提供しています。オブジェクト階層の上位レベルのオブジェクトからドリルダウンして、コードで使用する必要のあるメンバーが含まれるオブジェクトを取得することができます。
次の図は、SharePoint 2010 の Service Application Framework を実装するときの主要クラス間の関係を示しています。実線の矢印は、親クラスから、その親オブジェクトのコレクション プロパティで保持されている子クラスの種類へと向かっています。点線の矢印は、SPServiceInstance クラスが、SPService クラスによって表されたファーム全体にわたるサービスの実行中のプロセス (インスタンス) を表すことを示しています。
図 1. Service Application Framework におけるクラスの関係
SPFarm オブジェクト
SPFarm オブジェクトはサーバー ファームを表しています。この SPFarm は、構成ストア階層の最上位レベルのオブジェクトです。サーバー ファームは物理サーバーの負荷分散されたクラスターです。クライアント コンピューターからの着信ネットワーク接続は、負荷分散ソフトウェア (またはハードウェア) によって、ファーム内でそのとき最も負荷の軽いコンピューターに送信されます。クライアント接続の提供に伴う負荷は、このようにして複数のサーバー、プロセッサ、ハード ディスク、および他の周辺機器に分散されます。
物理サーバーは、SPServer オブジェクトによって表されます。SPServer には、SPFarm から継承するメンバーのほかに、サーバーの IP アドレスが保持された Address プロパティと、ファーム内のサーバーの役割を識別する Role プロパティが含まれます。ServiceInstances プロパティには、サーバーで実行されている Windows サービスおよび Web サービスのすべてのインスタンスへの参照が保持されています。
SPServer オブジェクト
SPServer オブジェクトは、サーバーが SharePoint サーバー ファームに接続されるときに作成されます。SPServer.Local は構成オブジェクトです。ファーム内のサーバーの一覧は、[サーバーの全体管理] で確認できます。SPServer は SPPersistedObject オブジェクトから継承します。SPPersistedObject をインスタンス化するオブジェクトは、SharePoint 2010 構成データベースに保持されています。
SharePoint 2010 ファーム内の物理サーバーは、SPServer オブジェクトによって表されます。このオブジェクトには、サーバーの IP アドレスが保持された Address プロパティと、ファーム内のサーバーの役割を識別する Role プロパティが含まれます。ServiceInstances プロパティには、サーバーで実行されている Windows サービスおよび Web サービスのすべてのインスタンスへの参照が保持されています。
サービス オブジェクト
サービス オブジェクト (バックエンド システム オブジェクトとも呼ばれます) は、共有サービスをクライアント フロントエンド オブジェクトに提供します。たとえば、次のようなオブジェクトがあります。
SPService
SPService クラスは、サーバー ファームで使用可能なサービス、またはサーバー ファームにインストールされているサービスを表します。
すべての SPService オブジェクトには Instances プロパティがあり、これにはファーム内のさまざまなサーバー上で実行されているサービスのすべてのインスタンスが保持されています。各サービスにはインスタンスが 1 つだけあり、任意の 1 つのサーバーで実行されますが、サービスの中にはインスタンスが複数あり、それぞれのインスタンスが異なるサーバーで実行されるものもあります。各インスタンスは、SPServiceInstance から派生するクラスのオブジェクトによって表されます。
SPServiceInstance
SPServiceInstance クラスは、ファーム内のサーバーのサービスのインスタンスを表します。サービス インスタンスはスケーラビリティとフォールト トレランスを提供します。このサービス インスタンスは、同じ種類の他のすべてのサーバー インスタンスと機能は同じですが、こうしたサーバー インスタンスから独立しています。SPServiceInstance オブジェクトは、サービスがファーム内のサーバーにインストールされるときに作成されます。サービス インスタンスを使用できるようにするには、実行中のサービス アプリケーションが必要です。サービスが実行されている各コンピューターに、開始および停止が可能な独自のサービス インスタンスがあります。指定されたサービスの 1 つのサービス インスタンスが実行中の場合、サービスは完全に機能します。サービス インスタンスは、ホスト プロセスをサービス アプリケーションに提供し、開発者がプログラムによって開始または停止できます。または、ファーム管理者が [システム設定] の [サーバーのサービスの管理] セクションにある [サーバーの全体管理] を使用して開始または停止できます。
Provision() を使用して、サービス インスタンスを開始 (準備) します。Windows PowerShell では、get-SPServiceInstance を使用して、サーバーにインストールされているサービスのコレクションを判断します。
SPServiceApplication
サービス インスタンスによってサービス アプリケーションがホストされます。サービス インスタンスがない場合、サービス アプリケーションは使用できません。サービス アプリケーションには、アプリケーション固有のデータと設定が含まれています。また、管理者設定が含まれるサービス インターフェイスを提供し、ユーザー データを制御できます。
各サービス アプリケーションが、他のすべてのサービス アプリケーションから切り離されています。たとえば、財務検索サービス アプリケーションは、人事検索サービス アプリケーションから切り離されています。この 2 つのアプリケーションが同じサーバー ファームでホストされている場合でも、それは変わりません。
SPServiceApplication を使用してサービス アプリケーションを作成するのは、通常、ファーム管理者です。ファーム管理者は、次のいずれかを使用して、SPServiceApplication オブジェクトを作成できます。
ファーム構成ウィザード
検証モードのインストール (スタンドアロン インストール)
[新しいサービス アプリケーション] ページの [サーバーの全体管理]
Windows PowerShell
SPServiceApplicationCollection は、サービスのサービス アプリケーションのコレクションです。これは、[サービス アプリケーションの管理] の [サーバーの全体管理] で使用されます。
SPIisWebServiceApplication
SPIisWebServiceApplication クラスは、ISharedServiceApplication インターフェイスを実装します。このクラスにより、サービス アプリケーションをトポロジ サービスを介して発行 (提供) できます。
クライアント (フロントエンド) オブジェクト
クライアント アプリケーションは、バックエンド サービスと通信します。クライアントは、通信を開始するアプリケーションです。サービスは、自身との通信をクライアントが開始するのを待ち、通信が開始されたらそれに対して応答するアプリケーションです。たとえば、次のようなクライアント サービス オブジェクトがあります。
SPServiceProxy
サービス プロキシは、サーバー ファームにインストールされているサービス クライアントを表します。
SPServiceProxy オブジェクトは、SPServiceApplicationProxy オブジェクトの親です。これは、SPServiceApplication の親である、サーバー側での SPService オブジェクトと同等のオブジェクトです。これらの親オブジェクトは、子オブジェクトのクラス ファクトリとして見なすこともできます。
SPServiceApplicationProxy
SPServiceApplicationProxy オブジェクトは、サービス アプリケーションへの接続を表し、サービス アプリケーションのパブリック (フロントエンド) インターフェイスを提供します。SPServiceApplicationProxy は、リモート ファームへの接続をサポートし、クライアント コードがリモート サービス アプリケーションを使用できるようにします。サービス アプリケーションはローカルにインストールできないので、クライアントから直接呼び出すことはできません。
SPServiceApplicationProxy は、サービス アプリケーションで自動作成されます。少なくとも、サービス プロキシは、リモート サービス アプリケーションへの呼び出しを転送します。SPServiceApplicationProxy を、サービス アプリケーションへの接続に関する追加ロジックを実装する場所として使用することもできます。
ファーム管理者は、[サーバーの全体管理] の [サービス フェデレーション] セクションで SPServiceApplicationProxy を明示的に作成できます。