次の方法で共有


Project Server 2010 のアーキテクチャ

適用対象: Office 2010 | Project 2010 | Project Server 2010 | SharePoint Server 2010

Microsoft Project Server 2010 は、Microsoft Office Project Server 2007 で導入されたアーキテクチャを拡張する真の多層システムです。Project Server アーキテクチャのフロントエンド層には、Microsoft Project Professional 2010 クライアントと Project Web App クライアントが含まれます。フロントエンド アプリケーションは Project Server Interface (PSI) Web サービスを通してのみ中間層と通信し、中間層はビジネス オブジェクト層と通信します。ビジネス オブジェクトは、データ アクセス層 (DAL) を介してデータベースを使用します。クライアント アプリケーションがプライマリ データベースに直接アクセスすることはありません。Project Server は、ビジネス オブジェクトと DAL をクライアントから隠ぺいします。

このトピックには、以下のセクションが含まれます。

  • アーキテクチャの概要

  • Project Web App サーバー

  • ビジネス オブジェクト

  • データ アクセス層とデータベース

  • 発行とサーバー側スケジュール

アーキテクチャの概要

Project Server 2010 と Office Project Server 2007 の主要な相違点は次のとおりです。

  • Project Server 2010 では、Project Server を実行するコンピューターおよび SharePoint ファーム内のすべての Project Web App サーバーに、Microsoft SharePoint Server 2010 Enterprise 版がインストールされている必要があります。

  • PSI には、Windows Communication Foundation (WCF) インターフェイスと、Web サービス用の ASMX インターフェイスの両方が含まれます。

  • Project Server のワークフロー プラットフォームは、PSI、ビジネス オブジェクト層、および DAL に統合されており、SharePoint プラットフォームの Windows Workflow Foundation (WF) が基になっています。

  • Project Server のタスク、割り当て、および割り当て状態のデータは、Microsoft Outlook アドインではなく、Microsoft Exchange Server (図 1 では示されていません) と統合されています。

図 1 は Project Server 2010 アーキテクチャの概要を示した図であり、オプションの Project Web App フロントエンド サーバーおよび Project Server 上の Project Web App インスタンスも含まれています。Project Server 2007 と同様に、1 台のサーバーで Project Web App の複数のインスタンスを実行できます。

図 1. Project Server のアーキテクチャの概要

Project Server アーキテクチャ

注意

  • Project Server 2010 では、PSI の WCF インターフェイスまたは ASMX インターフェイスを使用できます。Project Web App クライアントと Project Professional 2010 クライアントは、どちらも、WCF インターフェイスを使用します。

  • 図 1 の PSI フォワーダーは、2 つのコンポーネント、WCF フォワーダーと Web サービス フォワーダーで構成されています。ASMX インターフェイスを使用するクライアントは、Web サービス フォワーダーを通して PSI を呼び出します。WCF インターフェイスを使用するクライアントは、WCF フォワーダーを通して PSI を呼び出します。

  • 図 1 では、境界ネットワーク ("非武装地帯" または DMZ とも呼ばれます) にファイアウォールを追加することで Project Web App サーバーを分離できることは示されていません。

  • SharePoint Web サービス サイトは SharePoint Server 2010 の一部であり、図 1 には示されていません。SharePoint Web サービス サイトには、Project サービス アプリケーションと、ASMX および WCF サービス用の PSI 仮想ディレクトリが含まれます。Project Server 2010 の Project サービス アプリケーションは、Project Server 2007 の共有サービス アプリケーションに代わるものです。

フロントエンド層には、サードパーティのアプリケーション、Project Professional、および Project Web App が含まれます。Project Web App は、Internet Explorer を使用して Microsoft ASP.NET 3.5 のページを表示します。Project Web App ページは、PSI と通信する Project Server Web パーツを使用し、標準の SharePoint Server 2010 Web パーツも使用します。

別のコンピューター上のクライアント アプリケーションは、サービス プロキシを介して PSI を呼び出します。WCF インターフェイスを使用する外部のクライアントは、https://ServerName/ProjectServerName/_vti_bin/psi/ProjectServer.svc を通して PSI にアクセスします。ASMX Web サービス インターフェイスを使用するクライアントは、Project Web App の URL の 1 つ (http://server1/pwa/_vti_bin/psi/project.asmx など) を使用します。Project Server にイントラネット経由でアクセスできないアプリケーションは、境界ネットワークの Project Web App サーバーを使用できます (図 1 には示されていません)。

クライアント アプリケーションおよび基幹業務 (LOB) Web アプリケーションのバックエンド コンポーネントは、Project Server コンピューターに直接アクセスできる場合は、PSI Web サービスに対する Project Server サービス アプリケーションの URL を使用する PSI プロキシを使用できます (http://server1:32843/ProjectServiceApplication/project.asmx など)。SharePoint Server 2010 の SharePoint Web サービス アプリケーションの既定のポートは、ポート 32843 です。Project サービス アプリケーションの仮想ディレクトリへの直接アクセスを使用できるのは、アプリケーションが偽装を使用する必要がある場合、または上位の権限で実行する必要がある場合だけです。

中間層には、PSI とビジネス ロジック層が含まれます。ビジネス ロジック層は、Project Server のビジネス エンティティを表す論理ビジネス オブジェクトで構成されます。ビジネス オブジェクトには、プロジェクト、タスク、リソース、割り当てなどが含まれます。PSI とビジネス ロジック層は緊密に結合されており、同じサーバー上に配置されます。クライアント アプリケーションは PSI Web サービスを呼び出し、PSI はビジネス ロジック層のビジネス オブジェクトを呼び出します。

DAL は、中間層とデータベースの間の通信を提供します。Project Server のすべてのデータは、Microsoft SQL Server データベースに格納されます。Project Server のデータベースは、下書き、発行済み、アーカイブ、およびレポートの各ストアに分類されます。クライアント アプリケーションは、プロジェクト データをレポート データベースから読み取ることができます。クライアントが下書き、発行済み、アーカイブの各データベースにアクセスするときは、PSI のみを使用する必要があります。レポート データ サービス (RDS、図 1 には示されていません) は、ほぼリアルタイムで、レポート データベースを発行済みデータで更新します。Project Server 2010 では、Project Server のすべてのデータベースを異なるサーバーに配置できます。

Project Server の Project Web App コンポーネントは、プロジェクト サイトのセットアップに SharePoint Foundation 2010 の構成データベースも使用します。また、カスタム ページ、ワークフロー、管理設定、ドキュメント、および問題、リスク、コミットメントのリストなどのプロジェクト サイトのコンテンツに、コンテンツ データベースを使用します。SharePoint の構成データベースとコンテンツ データベースは、プロジェクト テンプレートとワークスペース、チームのグループ作業のカスタム リスト、レポートなど、プロジェクト管理用の追加機能をサポートします。

Project Web App サーバー

1 つまたは複数の Project Web App サーバーを企業のイントラネットにインストールして、イントラネット クライアントの負荷を分散させることができます。クライアント アプリケーションが異なる Project Web App サーバーを使用するとき、PSI の呼び出しは、PSI フォワーダーを通して、Project Server コンピューター上の PSI Web サービスにルーティングされます。PSI フォワーダー (WCF フォワーダーまたは Web サービス フォワーダー) は、以下の機能を実行します。

  • リモート クライアントから PSI への呼び出しを最適化します。

  • Project Professional のクライアント側アクティブ キャッシュと連動するサーバー ベースのキャッシュを備え、Project Server へのラウンドトリップ呼び出しの数を減らします。

ユーザーが Project Server から認証 Cookie を受信した後、PSI フォワーダーは Project Server コンピューター上の PSI Web サービスに要求を透過的に送信します。PSI フォワーダーは、LAN および WAN のどちらについてもパフォーマンスと信頼性が向上しています。

Project Web App は ASP.NET 3.5 で開発されています。.aspx ファイルの表示要素 (HTML、サーバー コントロール、静的テキスト) は、コンパイル済みアセンブリ (.dll ファイル) に含まれる分離コード クラスのプログラミング ロジックから分離されています。最上位ページ、プロジェクト センター、レポート センターなど、Project Web App 内のサイト ページは、Web パーツを使用してカスタマイズできます。[サーバー設定] ページや [タイムシートの管理] ページのように、[サイトの操作] メニューに [ページの編集] オプションがないアプリケーション ページは編集できません。

Project Server Interface

PSI は Project Server の API です。PSI オブジェクト モデルは、Project Server の機能をすべての外部アプリケーションに公開します。Project Professional 2010、Project Web App、LOB、その他のサードパーティ アプリケーションは、PSI を使用して、下書き、発行済み、アーカイブの各データベース内の Project Server データにアクセスします。PSI は、バックエンドの LOB アプリケーションから WCF サービスおよび ASMX Web サービス呼び出しを通して、または PSI プロキシを通して使用できます。

PSI の Web メソッドは、通常、ビジネス オブジェクトと情報を交換するための手段として、型指定された DataSet オブジェクトを生成または消費します。PSI のリファレンスには DataSet のドキュメントが含まれます。

ビジネス オブジェクト

Project Server の内部オブジェクト モデルには、ビジネス オブジェクトが含まれます。クライアント アプリケーションは PSI を介してのみビジネス オブジェクトにアクセスし、DAL を呼び出すことができるのはビジネス オブジェクトのみです。

ビジネス オブジェクトは論理エンティティであり、3 種類に分類できます。

  • コア エンティティは、プロジェクト、タスク、割り当て、リソース、カレンダーなどのオブジェクトです。コア エンティティには、権限や名前付け規則などの基本的なビジネス ロジックが含まれます。

  • ビジネス エンティティは、タイムシート、ポートフォリオ、モデルなどのオブジェクトです。ビジネス エンティティは追加のビジネス ロジックを含み、通常はコア エンティティの組み合わせから構築されます。

  • サポート エンティティは、セキュリティ、検証などのオブジェクトです。

開発者は、ビジネス オブジェクトのことを直接考慮する必要はありません。PSI が API とビジネス オブジェクトのマッピングを処理します。

データ アクセス層とデータベース

DAL は Project Server の内部に存在し、外部のアプリケーションに対しては公開されません。DAL は、ビジネス エンティティでのデータの論理的な表現と物理的なデータベース テーブルの間の変換を行います。各論理エンティティは、複数の異なるテーブルに格納されます。DAL は、接続の管理、クエリの実行、トランザクションの開始/コミット/ロールバックに必要な作業をカプセル化します。

Project Server のデータは、SQL Server の 4 つのデータベースに分けられます。

  • 下書きデータベースには、Project Professional および他のアプリケーションの未発行プロジェクトを保存するためのテーブルが含まれます。Project Web App では、下書きデータベースのプロジェクト データは表示されません。

  • 発行済みデータベースには、すべての発行済みプロジェクト、およびエンタープライズ リソース、エンタープライズ グローバル テンプレート、その他のプロジェクト テンプレートが格納されます。発行済みプロジェクトは、Project Web App に表示されます。発行済みデータベースには、Project Web App に固有のテーブル (タイムシート、モデル、ビューなど) およびグローバル データ テーブル (ユーザー設定フィールド、参照テーブル、セキュリティ、メタデータ) も格納されます。

  • アーカイブ データベースには、プロジェクトとその他のデータのバックアップ バージョンが保存されます。

  • レポート データベース (RDB) は、レポートおよび OLAP キューブを生成するためのステージング領域です。レポート データベース内のデータは広範であり、ほぼリアルタイムで更新されます。テーブルとビューは、読み取り専用のレポート生成用に最適化されています。たとえば、RDB のテーブルは、冗長なデータを提供し、リレーショナル テーブルの数を減らすために、非正規化されています。

リソースやプロジェクトなどのエンティティは複数のテーブルに分かれている場合があり、特定のエンティティに関連するすべてのテーブルには同じ主キーが設定されています。主キーは、特定のエンティティの 1 つのインスタンスを一意に識別する単一の列です。一意の識別子は GUID です。

ドキュメントに記載されているのはレポート データベースのスキーマだけです。下書き、発行済み、アーカイブの各データベースにアクセスするには、必ず PSI を使用する必要があります。レポート データベースには、Project Server 2010 のデータベース スキーマで定義されていないテーブル、フィールド (プロパティ)、およびエンティティを追加できます。コア データベースにテーブルを追加する場合は、カスタム アセンブリ、Web サービス、ビジネス オブジェクト、およびデータ アクセスの完全なスタックも提供する必要があります。レポート データベースは簡単に変更できます。Project Server のコア データベースは変更しないことをお勧めします。

発行とサーバー側スケジュール

Project Server 2010 は、手動と自動の両方によるプロジェクト スケジュールの更新をサポートします。既定の処理は、手動でのプロジェクトの更新です。つまり、プロジェクト マネージャーが Project Professional でプロジェクトを開き、変更を適用し、プロジェクトを保存して発行することで、他のユーザーが変更を利用できるようにします。Project Professional のスケジュール エンジンは、手動更新に対するスケジュールの変更を計算します。

Project Server のスケジュール エンジンを利用することで、PSI を使用してプロジェクトを自動更新できます。Project Server では、以下の手順により、プロジェクト マネージャーが下書きバージョンを使用している間に、プロジェクトの発行済みバージョンを更新できます。

  1. Project Server が更新の適用と発行済みバージョンの再スケジュールを自動的に行います。

  2. 次のどちらかのイベントが発生すると、Project Server は更新を保存し、下書きバージョンに適用します。

    • Project Professional でプロジェクトが開かれます。

    • Project Professional でプロジェクトの発行が試みられます。

  3. 競合がある場合、プロジェクト マネージャーは下書きバージョンを発行する前に競合を解決する必要があります。

注意

Project Server のスケジュール エンジンと Project Professional のスケジュール エンジンの間には、いくつかの制限事項と相違があります。たとえば、Project Server では、サブプロジェクトのスケジュールまたは他のプロジェクトへのリンクのスケジュールは行われず、達成額フィールドの計算も行われません。詳細については、「Project Server プログラミング」でサーバーでのプロジェクトのスケジュールに関するセクションを参照してください。

関連項目

概念

Project Server プログラミング

PSI が行うこと、行わないこと

WCF と PSI の概要

その他のリソース

開発者向け Project 2010 の概要