次の方法で共有


Project Server 2010 のアーキテクチャ

 

適用先: Project Server 2010

トピックの最終更新日: 2016-11-30

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

この記事に含まれるセクションは次のとおりです。

  • アーキテクチャの概要

  • Web サーバー

  • Project Server Interface (PSI)

  • ビジネス オブジェクト

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

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

アーキテクチャの概要

Project Server 2010 と Office Project Server 2007 のアーキテクチャの概要の主な違いは、次のとおりです。

  • Project Server 2010 のインストール要件として Microsoft SharePoint Server 2010 Enterprise が必要です。Microsoft Office Project Server 2007 のファーム展開と同様、Project Server 2010 をファームに展開する場合は、ファーム内のすべてのアプリケーション サーバーとすべての Web サーバーに Project Server 2010 がインストールされている必要があります。

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

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

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

以下の図は、Project Server 2010 アーキテクチャの概要を示しています。Web サーバーおよび Project Server 上の Project Web App インスタンスが含まれています。Office Project Server 2007 と同様に、1 台のサーバーで Project Web App の複数のインスタンスを実行できます。

Project Server 2010 のアーキテクチャ

注意

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

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

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

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

フロントエンド層には、サードパーティのアプリケーション、Microsoft 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 サーバーを使用できます (アーキテクチャ図には示されていません)。

Project Server コンピューターに直接アクセスできる場合、クライアント アプリケーションと基幹業務 (LOB) Web アプリケーションのバックエンド コンポーネントは、PSI Web サービスへの SharePoint 共有サービス URL (http://server1:32843/ProjectServiceApplication/project.asmx など) を使用する PSI プロキシを使用できます。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 コンポーネントは、プロジェクト サイトのセットアップに Microsoft SharePoint Foundation 2010 構成データベースも使用します。また、カスタム ページ、ワークフロー、管理設定、ドキュメント、問題/リスク/コミットメントのリストなど、プロジェクト サイトのコンテンツに、コンテンツ データベースを使用します。SharePoint の構成データベースとコンテンツ データベースは、プロジェクト テンプレートとワークスペース、チームのグループ作業のカスタム リスト、レポートなど、プロジェクト管理用の追加機能をサポートします。

Web サーバー

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

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

  • Microsoft 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)

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 つのデータベースに分けられます。

  • 下書きデータベースには、Microsoft 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 は、プロジェクト スケジュールの手動更新と自動更新を両方ともサポートしています。既定の処理は、手動でのプロジェクトの更新です。つまり、プロジェクト マネージャーが Microsoft Project Professional でプロジェクトを開き、変更を適用し、プロジェクトを保存して発行することで、他のユーザーが変更を使用できるようにします。Microsoft Project Professional のスケジュール エンジンは、手動更新に対してスケジュールの変更を計算します。

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

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

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

    1. Microsoft Project Professional でプロジェクトを開く。

    2. Microsoft Project Professional でプロジェクトの発行を試みる

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

警告

Project Server のスケジュール エンジンと Microsoft Project Professional のスケジュール エンジンには、いくつかの制限事項と相違があります。たとえば、Project Server では、サブプロジェクトのスケジュールや、他のプロジェクトへのリンクのスケジュールは行われず、達成額フィールドも計算されません。詳細については、MSDN ライブラリ オンラインの「Project Server プログラミング」(https://go.microsoft.com/fwlink/?linkid=191606&clcid=0x411) で、「サーバー上でのプロジェクト スケジューリング」を参照してください。