(57)【要約】【課題】  プロジェクト管理アプリケーションにおけるプロジェクト間の依存関係を管理するための方法およびシステムを提供する。【解決手段】  これらの方法およびシステムは、プロジェクト間の依存関係を管理するための共有ウェブベース協調ワークスペースである１つまたは複数のプロジェクトウェブを利用する。【選択図】  図３Ａ
2006107448.tif 000002
【特許請求の範囲】
【請求項１】
プロジェクト管理アプリケーションを使用して１つまたは複数のプロジェクトを有するプログラムを管理するための方法であって、
スケジューリングデータを含めてプロジェクトスケジュールを生成するステップと、
前記プロジェクトについてのウェブを用意するステップと、
前記プロジェクトウェブ上でプロジェクト依存関係データを提供するステップと
を含むことを特徴とする方法。
【請求項２】
前記プロジェクトウェブ上のリストに前記プロジェクト依存関係データを記憶するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記プロジェクト依存関係データのレポートを生成するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記プロジェクト依存関係データを共有するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記プロジェクト依存関係データを使用するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項６】
ドキュメントを管理するように動作可能なサーバに対してプログラムデータを送信するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項７】
リストアイテムを管理するように動作可能なサーバに対してプログラムデータを送信するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記プロジェクト依存関係データが変化する場合に、コンシューマに対して通知を提供するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項９】
プロジェクトプロバイダが制御するウェブ上で前記プロジェクト依存関係データを作成するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１０】
リモートコンピュータを使用して、前記プロジェクト依存関係データを作成するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１１】
拡張マークアップ言語（ＸＭＬ）プロトコルを使用して前記プロジェクトウェブと情報をやりとりするステップをさらに含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
プロジェクトサーバを使用して前記プロジェクトウェブを用意して、１つまたは複数のコミットメントを記憶するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１３】
コミットメントビジネスオブジェクト（ＣＢＯ）モジュールを使用して前記プロジェクトサーバと前記プロジェクトウェブの間の通信を管理するステップをさらに含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
オブジェクトリンクプロバイダ（ＯＬＰ）を使用して１つまたは複数のタスクと１つまたは複数のコミットメントの間のリンクを保持するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１５】
コンピュータが実行するときに、請求項１に記載の方法を実施するコンピュータ実行可能命令を含むことを特徴とするコンピュータ読取り可能媒体。
【請求項１６】
プロジェクト管理アプリケーションを使用して１つまたは複数のプロジェクトを有するプログラムを管理するための方法であって、
第１のプロジェクトに関連し、少なくとも１つのタスク、開始日付、および完了日付を含むコミットメントを作成するステップと、
プロジェクトウェブ上で前記コミットメントを受信するステップと、
前記プロジェクトウェブ上で前記コミットメントを記憶するステップと
を含むことを特徴とする方法。
【請求項１７】
前記コミットメントを他のユーザと共有するステップをさらに含むことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記コミットメントが修正される場合に、通知をプロジェクトコンシューマに対して提供するステップをさらに含むことを特徴とする請求項１６に記載の方法。
【請求項１９】
リモートコンピュータを使用して、前記コミットメントを作成するステップをさらに含むことを特徴とする請求項１６に記載の方法。
【請求項２０】
コンピュータが実行するときに、請求項１６に記載の方法を実施するコンピュータ実行可能命令を含むことを特徴とするコンピュータ読取り可能媒体。
【請求項２１】
プロジェクト管理アプリケーションを使用して１つまたは複数のプロジェクトを有するプログラムを管理するための方法であって、
第１のプロジェクトに関連し、少なくとも１つのタスク、開始日付、および完了日付に関連するコミットメントを提供するステップと、
プロジェクトウェブに対して前記コミットメントを送信するステップと、
前記プロジェクトウェブを使用して、前記コミットメントを他のユーザに対して提供するステップと
を含むことを特徴とする方法。
【請求項２２】
コミットメントビジネスオブジェクト（ＣＢＯ）モジュールを使用してプロジェクトサーバと前記プロジェクトウェブの間の通信を管理するステップをさらに含むことを特徴とする請求項２１に記載の方法。
【請求項２３】
オブジェクトリンクプロバイダ（ＯＬＰ）を使用して１つまたは複数のタスクと１つまたは複数のコミットメントの間のリンクを保持するステップをさらに含むことを特徴とする請求項２１に記載の方法。
【請求項２４】
前記コミットメントの依存関係を作成し、または修正するステップをさらに含むことを特徴とする請求項２１に記載の方法。
【請求項２５】
コンピュータが実行するときに、請求項２１に記載の方法を実施するコンピュータ実行可能命令を含むことを特徴とするコンピュータ読取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にプロジェクト管理の方法およびシステムに関する。より詳細には、本発明は、企業プロジェクト管理アプリケーションのためのプロジェクト間のコミットメントまたは依存関係を提供し保持する方法およびシステムに関する。
【背景技術】
【０００２】
コンピュータ時代の到来と共に、コンピュータユーザおよびソフトウェアユーザは、ユーザが書き込み、計算し、オーガナイズし、プレゼンテーションの作成を行い、電子メールを送信し受信し、作曲をするなどを行うのを助けるユーザフレンドリなソフトウェアアプリケーションに慣れ親しんできている。現代のワードプロセッシングアプリケーションにより、例えばユーザは、様々な有用なドキュメントを作成し編集することができるようになる。別の例として、現代のプロジェクト管理アプリケーションにより、ユーザは、様々なプロジェクトに関連するタスク、リソースおよび労力を構成し管理するためのプロジェクト管理スケジュールを作成することができるようになる。
【０００３】
人手による、またコンピュータ化されたプロジェクト管理システムにより、管理者および計画立案者は、所与のプロジェクトの完了のために必要とされるタスク、リソース、およびスケジュールを構成し立案することができるようになる。ほとんどのプロジェクトにおいては、いくつかの依存関係および制約条件が、全体的なプロジェクト、およびこの全体的なプロジェクトを構成するサブプロジェクトのタイミングおよび完了を決定する。例えば、住宅建設プロジェクトにおいて、ドライウォールサブプロジェクトは、電気作業の完了まで一般的に開始することができない。また、いくつかのサブプロジェクトは、労力およびリソースの使用可能性によって制約される可能性がある。プロジェクト管理ソフトウェアアプリケーションが、プロジェクト管理スケジュールを作成し、自動化するために開発されてきている。かかる多くのシステムを用いて、全体的なプロジェクトを構成するタスクまたはサブプロジェクトは、所与のマイルストーンについての開始日付、完了日付と、この全体的なプロジェクトを構成する関連するタスクとを示す、ガントチャート（Ｇａｎｔｔ  ｃｈａｒｔ）などのチャートをスケジュールし、このプロジェクトを構成するマイルストーンおよびタスクに関連する利用されるリソースおよび制約条件に関する情報を提供する際に、設定される。
【０００４】
コミットメントとは、２人の人々（または２つの組織体）の間の１組の条件を履行するための合意のことである。すなわち、コミットメントは、２つ以上の事業体の間の依存関係として説明することができる。例えば、第１の企業チームが、ある日付、２００５年の８月８日までに、第２の企業チームに対して、あるアプリケーションのプロトタイプを送付することをコミットすることもある。この作業が行われるようにする責任のあるチームは、「コミットメントプロバイダ（ｃｏｍｍｉｔｍｅｎｔ  ｐｒｏｖｉｄｅｒ）」であり、一方、この１組の条件のタイムリな完了に依存するチームは、「コミットメントコンシューマ（ｃｏｍｍｉｔｍｅｎｔ  ｃｏｎｓｕｍｅｒ）」として知られている。この例においては、このコミットメントそれ自体は、このアプリケーションプロトタイプの送付となる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
以前のバージョンのマイクロソフトプロジェクト（Ｍｉｃｒｏｓｏｆｔ  Ｐｒｏｊｅｃｔ）においては、プロジェクト間のこの種の依存関係は、「ＣＰＬｉｎｋ」（ｃｒｏｓｓ−ｐｒｏｊｅｃｔ  ｌｉｎｋ：クロスプロジェクトリンク）を使用してモデル化されていた。マイクロソフトプロジェクトスタンダード（Ｍｉｃｒｏｓｏｆｔ  Ｐｒｏｊｅｃｔ  Ｓｔａｎｄａｒｄ）においては、例えばこの依存関係を確立するために、ユーザは、両方のプロジェクトをオープンし、１つのプロジェクトにおける１つのタスクから他のプロジェクトにおける他のタスクへと依存関係リンクをドラッグする必要があるはずである。すなわち、ＣＰＬｉｎｋは、密結合の一実装形態を提供しており、この実装形態では、１つのプロジェクトからのタスクは、クライアントステーションにおける別のプロジェクトにインポートされた。さらに、ＣＰＬｉｎｋを用いて、プロジェクトＡにおける１つのタスクからプロジェクトＢにおける別のタスクに及ぶ依存関係は、同じプロジェクト中の２つのタスクが取り扱われるのと同じ方法で取り扱われる。親タスク（ｏｒｉｇｉｎａｔｉｎｇ  ｔａｓｋ）が任意の手段によって変化したときはいつでも、この影響を受けたタスクにリンクした任意プロジェクト中で、このタスクはアップデートされた。この自動プロセスは、関与するすべてのプロジェクトにとって非常に侵襲的（ｉｎｖａｓｉｖｅ）な可能性があり、影響を受けたプロジェクトのプロジェクト管理者にとっては、場合によっては受け入れがたい結果となる可能性がある。
【０００６】
例えば、プロジェクト１中のタスクにおける変化は、プロジェクト１において、カスケーディングアップデート（ｃａｓｃａｄｉｎｇ  ｕｐｄａｔｅ）をもたらす可能性があり、ここで、クロスプロジェクトのリンクされたタスクでは、１つまたは複数の日付が影響を受けている。この場合には、クロスプロジェクトリンキングシステム（ｃｒｏｓｓ  ｐｒｏｊｅｃｔ  ｌｉｎｋｉｎｇ  ｓｙｓｔｅｍ）は、リンクされたプロジェクト、例えばプロジェクト２およびプロジェクト３をオープンし、これらのプロジェクト中のリンクされたタスクのミラー（ｍｉｒｒｏｒ）をアップデートするはずである。以上により、しばしばこの影響を受けたプロジェクト中に完全なスケジュールシフトがもたらされるはずであり、この変化を元に戻し（ｕｎｄｏ）、またはこの変化が起こらないように停止するメカニズムは存在しない。事態をさらに複雑にしてしまうことに、プロジェクト２およびプロジェクト３は、ＣＰＬｉｎｋそれ自体をもたらすこともあり、これらのＣＰＬｉｎｋは、この初期のＣＰＬｉｎｋアップデート中に修正される。このことは、プロジェクト２およびプロジェクト３に依存するすべてのプロジェクトをオープンさせ、アップデートさせるはずである。
【０００７】
基本的に、顧客が、複数のプロジェクトを管理している際に今日直面する問題の１つは、様々なプロジェクトにまたがる依存関係を取り扱うことである。例えば、２つのプロジェクト、すなわちプロジェクトＡおよびプロジェクトＢが存在すると仮定する。プロジェクトＢは、プロジェクトＡに依存する依存関係（すなわち、タスク、リソースなど）を有することもあり、逆もまた同様である。顧客は、プロジェクト間のこれらの依存関係を管理するかなり困難な問題に直面している。何かが、プロジェクトＡにおけるタスクに影響を及ぼすときには、プロジェクトＢはそれについて知りたいはずである。
【０００８】
現在では、プロジェクトＡにおけるこのタスクは、プロジェクトＢに、「そのまま（ａｓ−ｉｓ）」反映される。プロジェクトＡにおける日付のわずかな変更でさえ、プロジェクトＢのスケジュールに影響を及ぼすので、これは、多くの「ノイズ」をもたらす。現実の世界においては、別のプロジェクトに対するコミットメントを有するプロジェクト管理者は、通常、他のプロジェクトにとって「可視的な（ｖｉｓｉｂｌｅ）」この日付を制御したいと思うはずであり、自分のプロジェクト中のタスクに対して、実際のコミットメントの日付に先立った何らかのバッファを可能にしたいはずである。反対に、プロジェクトＢのプロジェクトマネージャは、依存したプロジェクト中のタスク変更が自分のプロジェクトにどのように影響を及ぼすかを制御したいと思うはずである。
【課題を解決するための手段】
【０００９】
本発明の実施形態は、プロジェクト管理アプリケーションにおいてクロスプロジェクトコミットメントを提供するための方法を提供することによって、以上および他の問題を解決している。コミットメントは、モデル化するタスク、および依存する１つまたは複数のタスクとは独立に存在する。これらのコミットメントはまた、コミットメントコンシューマおよびコミットメントプロバイダから独立に記憶される。本発明の一実施形態は、企業プロジェクト管理アプリケーションを使用して１つまたは複数のプロジェクトを有するプログラムを管理するための方法を提供している。この方法は、スケジューリングデータを含むプロジェクトスケジュールを生成すること、このプロジェクトについてのウェブを用意すること、およびこのプロジェクトウェブ上でプロジェクト依存関係データを作成することを含んでいる。本発明の他の実施形態は、第１のプロジェクトに関連したコミットメント（少なくとも１つのタスク、開始日付、および完了日付を含むコミットメント）を作成し、プロジェクトウェブ上でこのコミットメントを受信し、このプロジェクトウェブ上でこのコミットメントを記憶することにより、企業プロジェクト管理アプリケーションを使用して１つまたは複数のプロジェクトを有するプログラムを管理するための方法を提供している。本発明のさらに他の実施形態は、第１のプロジェクトに関連したコミットメント（少なくとも１つのタスク、開始日付、および完了日付に関連したコミットメント）を提供し、プロジェクトウェブに対してこのコミットメントを送信し、このプロジェクトウェブを使用してこのコミットメントを他のユーザに対して提供することにより、企業プロジェクト管理アプリケーションを使用して１つまたは複数のプロジェクトを有するプログラムを管理するための方法を提供している。
【００１０】
本発明を特徴づけるこれらおよび他の特徴および利点は、以下の詳細な説明を読み、その関連する図面を検討することにより明らかになろう。前述の一般的な説明も以下の詳細な説明も共に、例示的で説明するためのものにすぎず、請求している本発明を限定するものでないことを理解されたい。
【発明を実施するための最良の形態】
【００１１】
以上で簡単に説明したように、本発明の実施形態は、企業プロジェクト管理アプリケーションにおいてコミットメントを提供し保持するための方法およびシステムを対象にしている。この方法およびシステムは、企業プロジェクト管理アプリケーションにおけるプロジェクト間のコミットメントまたは依存関係を管理するように動作可能である。本発明は、プロジェクト間の依存関係を管理するために共有されたウェブベースの協調ワークスペースとなる１つまたは複数のプロジェクトウェブを利用している。
【００１２】
以下の詳細な説明においては、本明細書の一部分を形成する添付図面に対する参照が行われ、これらの図面中には、例証として特定の実施形態または実施例が示されている。本発明の趣旨および範囲を逸脱することなく、これらの実施形態は結合することができ、他の実施形態も利用することができ、また構成上の変更を行うことができる。したがって、以下の詳細な説明は限定的な意味では解釈されず、本発明の範囲は、添付の特許請求の範囲およびその等価形態によって定義される。
【００１３】
動作環境
次に図面を参照して、本発明の態様および例示の動作環境について説明することにする。図面中で、同様な番号は同様な要素を表している。図１および以下の説明では、本発明を実装することができる適切なコンピューティング環境の簡潔な一般的な説明を提供することを意図している。本発明は、パーソナルコンピュータのオペレーティングシステム上で実行されるアプリケーションプログラムに関連して実行されるプログラムモジュールの一般的な文脈で説明することにするが、本発明は、他のプログラムモジュールと組み合わせて実装することもできることが当業者には理解されよう。
【００１４】
一般的に、プログラムモジュールは、個々のタスクを実施し、または個々の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造、および他のタイプの構造を含んでいる。さらに、本発明が、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラマブルな大衆消費電子製品、ミニコンピュータ、メインフレームコンピュータなどを含めて他のコンピュータシステムコンフィギュレーションを用いて実行することもできることが当業者には理解されよう。本発明は、タスクが、通信ネットワークを介してリンクされるリモート処理デバイスによって実施される分散コンピューティング環境中で実行することもできる。分散コンピューティング環境においては、プログラムモジュールは、ローカルメモリストレージデバイス中にもリモートメモリストレージデバイス中にも配置することができる。
【００１５】
次に図１を参照して、本発明の様々な実施形態を実行するためのパーソナルコンピュータ１００についての例示のコンピュータアーキテクチャについて説明することにする。図１に示すコンピュータアーキテクチャは、「ＣＰＵ」（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ中央演算処理装置）１０２と、「ＲＡＭ」（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙランダムアクセスメモリ）１０６および「ＲＯＭ」（ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ読取り専用メモリ）１０８システムメモリ１０４を含むシステムメモリ１０４と、このメモリをＣＰＵ１０２に結合するシステムバス１１０を含む従来のパーソナルコンピュータを示している。起動中などにこのコンピュータ内のエレメント間で情報を転送する助けをする基本ルーチンを含む基本入出力システムは、ＲＯＭ１０８に記憶される。パーソナルコンピュータ１００は、オペレーティングシステム１１４、アプリケーションプログラム１１６などのアプリケーションプログラム、およびデータを記憶するためのマスストレージデバイス１１２をさらに含んでいる。
【００１６】
マスストレージデバイス１１２は、バス１１０に接続されたマスストレージコントローラ（図示せず）を介してＣＰＵ１０２に接続される。マスストレージデバイス１１２およびその関連するコンピュータ読取り可能媒体は、パーソナルコンピュータ１００のための不揮発性ストレージを提供する。本明細書中に含まれるコンピュータ読取り可能媒体の説明はハードディスクやＣＤ−ＲＯＭドライブなどのマスストレージデバイスを意味しているが、コンピュータ読取り可能媒体は、パーソナルコンピュータ１００がアクセスすることができる使用可能な任意の媒体とすることができることを当業者には理解されたい。
【００１７】
実施例として限定するものではないが、コンピュータ読取り可能媒体は、コンピュータストレージ媒体および通信媒体を含むことができる。コンピュータストレージ媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュール、他のデータなどの情報の記憶のための任意の方法または技術で実装される揮発性媒体および不揮発性媒体、着脱可能媒体および着脱不能媒体を含んでいる。コンピュータストレージ媒体は、それだけには限定されないが、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のソリッドステートメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤまたは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは所望の情報を記憶するために使用することができ、このコンピュータによってアクセスすることができる他の任意の媒体を含んでいる。
【００１８】
本発明の様々な実施形態によれば、パーソナルコンピュータ１００は、ＴＣＰ／ＩＰネットワーク１１８またはインターネットなど他のネットワークを介してリモートコンピュータへの論理接続を使用してネットワーク環境中で動作することもできる。パーソナルコンピュータ１００は、バス１１０に接続されたネットワークインターフェースユニット１２０を介してＴＣＰ／ＩＰネットワーク１１８に接続することができる。ネットワークインターフェースユニット１２０はまた、これを利用して、ローカルネットワーク、ワイドエリアネットワーク、他のネットワークなど、他のタイプのネットワークおよびリモートコンピュータシステムに対して接続することもできることを理解されたい。パーソナルコンピュータ１００は、キーボードまたはマウス（図示せず）を含めていくつかのデバイスからの入力を受け取り処理するための入出力コントローラ１２２を含むこともできる。同様に、入出力コントローラ１２２は、ディスプレイ画面、プリンタ、または他のタイプの出力デバイスへの出力を供給することもできる。
【００１９】
以上で簡単に述べたように、ワシントン州レッドモンド市のマイクロソフトからのＷＩＮＤＯＷＳ（登録商標）ＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムなど、ネットワーク化されたパーソナルコンピュータを制御するために適したオペレーティングシステム１１４を含めて、いくつかのプログラムモジュールおよびデータファイルをパーソナルコンピュータ１００のマスストレージデバイス１１２およびＲＡＭ１０６に記憶することができる。マスストレージデバイス１１２およびＲＡＭ１０６は、１つまたは複数のアプリケーションプログラムを記憶することもできる。特に、マスストレージデバイス１１２およびＲＡＭ１０６は、ユーザに対して様々な機能を提供するためのアプリケーションプログラム１１６を記憶することができる。例えば、アプリケーションプログラム１１６は、ワードプロセッシングアプリケーションプログラム、スプレッドシートアプリケーション、電子メールアプリケーション１２４、ワードプロセッシングアプリケーション１２５、データベースアプリケーションなど多くのタイプのプログラムを含むことができる。本発明の実施形態によれば、プロジェクト管理アプリケーション１２６は、本明細書中で説明しているようなプロジェクト管理スケジュールを作成するために含められる。本発明に従って使用するための一実施例のプロジェクト管理アプリケーションが、マイクロソフトが生産している、以下で「ＰＲＯＪＥＣＴ」と称するＥ  ＥＮＴＥＲＰＲＩＳＥ  ＰＲＯＪＥＣＴ、である。
【００２０】
次に図２を参照すると、分散コンピューティング環境２００の簡略化されたブロック図が示されている。この分散コンピューティング環境２００は、親プロジェクトおよび１つまたは複数の子サブプロジェクトの所有者／管理者が、本発明の実施形態によるプロジェクトスケジュールおよび関連するコミットメントまたは依存関係を作成し保持するために、プロジェクトサーバ／データベース２１０および二次サーバ２１５と情報をやりとりできるようにする。図２に示す分散コンピューティング環境２００は、本発明の実施形態についての例示の動作環境としての役割を果たす。本明細書中で説明しているように、全体的なプロジェクトスケジュールは、親プロジェクトスケジュールおよび１つまたは複数の階層的に関連した子サブプロジェクトから構成することができる。
【００２１】
本発明の実施形態によれば、この全体的なプロジェクトスケジュールまたは親プロジェクトスケジュール、および個々の独立に管理可能な子サブプロジェクトスケジュールが、プロジェクトサーバ／データベース２１０上に保持される。このプロジェクトサーバ／データベース２１０は、図１に関連して示し説明しているコンピュータ１００についての前述のオペレーティングシステム、プロセッサ、およびメモリ空間を含むコンポーネントを有する汎用コンピューティングシステムである。このプロジェクトサーバ／データベース２１０はまた、本明細書中で説明しているこの全体的／親プロジェクトスケジュールおよびこの個別の子サブプロジェクトスケジュールの管理を構築し、表示し、可能にするための十分なコンピュータ実行可能な命令を有するプロジェクト管理アプリケーション１２６を含んでいる。このプロジェクトサーバ／データベース２１０はまた、この親プロジェクトスケジュールに関連し、これらの個別の子サブプロジェクトスケジュールごとのデータを保持するためのリレーショナルデータベースも含んでいる。
【００２２】
本発明の実施形態によれば、以下でさらに説明しているように、プロジェクトに関連したコミットメントまたは依存関係は、例えばそのＷＩＮＤＯＷＳ（登録商標）ＳＥＲＶＥＲアプリケーションの一部分としてマイクロソフトが提供しているＳＨＡＲＥＰＯＩＮＴサーバアプリケーションなどの二次サーバ２１５、好ましくは（協調情報管理サーバとも呼ばれる）ウェブサーバ上に保持することができる。この二次サーバ２１５は、図１に関連して示し説明しているコンピュータ１００について以上で説明しているようなオペレーティングシステム、プロセッサ、およびメモリ空間を含むコンポーネントを有する汎用コンピューティングシステムである。
【００２３】
図２に示すように、親／マスタコンピュータシステム２２０は、インターネットやイントラネット２５０などの分散コンピューティングシステムを介してプロジェクトサーバ／データベース２１０と情報をやりとりするものとして示されている。二次サーバ２１５は、プロジェクトサーバ／データベース２１０と情報をやりとりするものとして示されている。この二次サーバ２１５とプロジェクトサーバ／データベース２１０は、インターネットまたはイントラネット２５０に類似したインターネットまたはイントラネットや、他の（ワイドまたはローカルの）ネットワークなどの分散コンピューティングシステムを介して情報をやりとりすることができる。１つまたは複数の子／サブプロジェクトコンピューティングシステム２３０、２４０、．．．、ｎは、インターネットまたはイントラネット２５０を介してプロジェクトサーバ／データベース２１０と情報をやりとりするものとして示されている。代替実施形態においては、コンピューティングシステム２１０、．．．、ｎも、二次サーバ２１５と情報をやりとりすることができる。
【００２４】
個々の各コンピューティングシステム２２０、．．．、ｎは、図１を参照して以上で説明したプロジェクト管理アプリケーション１２６を含み、プロジェクトサーバ／データベース２１０で動作する、対応したプロジェクト管理アプリケーション１２６に対するクライアント側プロジェクト管理アプリケーションとしての役割を果たすこともできる。本発明の実施形態によれば、プロジェクトサーバ／データベース２１０はまた、この親プロジェクトスケジュール、および子サブプロジェクトスケジュールの所有者／管理者に対して、またこの所有者／管理者から自動的なプロジェクトスケジュール変更を送信するための電子メールアプリケーション１２４を含むことができ、あるいは電子メールアプリケーション１２４にアクセスするように動作することもできる。
【００２５】
プロジェクトコミットメント
クロスプロジェクトコミットメントは、本明細書中でＣＰＣ（ｃｒｏｓｓ  ｐｒｏｊｅｃｔ  ｃｏｍｍｉｔｍｅｎｔ：クロスプロジェクトコミットメント）、あるいは単にコミットメントとして定義されるクロスプロジェクトリンクを独立なエンティティへと変換する。本発明の様々な実施形態によれば、それらがモデル化するタスク、およびそれらに依存するタスクと完全に独立に存在するコミットメントが提供され保持される。すなわち、これらのコミットメントは、コミットメントコンシューマおよびコミットメントプロバイダに対する二次サーバ３０８上に独立した様式で記憶される。二次サーバ３０８は、リンクしたプロジェクト間におけるブローカーサービス（ｂｒｏｋｅｒｉｎｇ  ｓｅｒｖｉｃｅ）または中間インターフェースを提供し、コミットメントデータが記憶される。
【００２６】
本発明の好ましい一実施形態によれば、１つまたは複数のコミットメントをホストするために１つまたは複数のＳＨＡＲＥＰＯＩＮＴリストを含む、ＳＨＡＲＥＰＯＩＮＴサーバなどの二次サーバ３０８が提供される。ＳＨＡＲＥＰＯＩＮＴサーバは、ウェブフォルダ（ｗｅｂ  ｆｏｌｄｅｒ）を作成し保持するように動作可能である。このウェブフォルダを使用して、コミットメントなどの情報を記憶することができる。ＳＨＡＲＥＰＯＩＮＴサーバを用いて、ユーザは、ウェブサーバ上のオブジェクトやウェブフォルダなどの情報を記憶することができる。ウェブフォルダは、情報をセーブする際に、ユーザに対してより良好な体験をもたらす傾向がある。
【００２７】
本発明の実施形態によれば、プロジェクト管理アプリケーションは、サーバ２１５や関連したサーバアプリケーションなどの二次サーバを利用して、プロジェクトに関連したコミットメントを提供し保持する。コミットメントは、１つまたは複数のプログラム、プロジェクト、タスクなどにまたがって存在することができる。このコンテキストにおいては、プログラムおよびプロジェクトに関連したコミットメントは、それぞれプログラムおよびプロジェクト依存関係データとして説明することができる。前述のように、コミットメントとは、一般的に、１組の条件を履行する２人の人々（または２つの組織体）の間の合意である。
【００２８】
この作業が行われるようにする責任のある人または事業体は、このコミットメントプロバイダであり、一方この１組の条件のタイムリな完了に依存する人または事業体は、このコミットメントコンシューマとして知られている。この実施例においては、コミットメントそれ自体は、この１組の条件の履行である。本発明により、ユーザはコミットメントを作成し、提供し、使用し、修正し、かつ／または削除することができるようになる。単にタイトルおよび日付であるコミットメントと、特定のコミットメントに影響を及ぼし、またはそれによる影響を受けるプロジェクトとを区別することは重要である。どの時点においても１つのコミットメントは、０〜ｎのプロバイダおよび０〜ｎのコンシューマを有する可能性がある。プロバイダは、コミットメントの日付に影響を及ぼし得るオブジェクトとして定義される。コンシューマは、コミットメント日付の変更によって影響を受け得るこれらのオブジェクトである。
【００２９】
コミットメントに関する最初の考察では、コミットメントプロバイダの数を０〜１に制限することになる。すなわち、このコミットメントの日付は、プロジェクト中の１つのタスクにより、あるいは完全に手作業によってＳＨＡＲＥＰＯＩＮＴリストなどのリスト中のコミットメント開始日付およびコミットメント完了日付を直接に編集することによって駆動することができる。本発明の一実施形態によれば、１つまたは複数のコミットメントを記憶するＳＨＡＲＥＰＯＩＮＴリストは、二次サーバ２１５などのＳＨＡＲＥＰＯＩＮＴサーバ上に存在する。本発明を限定するものではないが、ＳＨＡＲＥＰＯＩＮＴリストにコミットメントを記憶することにより、プロジェクト管理アプリケーションのユーザが、組込み電子メール通知システムを利用すること、作業フローモジュールをＳＨＡＲＥＰＯＩＮＴリストアイテムに簡単に接続すること、開発者が熟知しているＳＨＡＲＥＰＯＩＮＴ拡張性に組み入れることができるようになり、またカスタムフィールド（ｃｕｓｔｏｍ  ｆｉｅｌｄ）をコミットメントに割り当てて、ユーザの個別のニーズに合わせることもできる。
【００３０】
この実施例を用いて継続すると、コミットメントを、０〜ｎの事業体によって使用することもできる。すなわち、コミットメントに関心を表明できるプロジェクト数または人数には実際上の制限が存在しない。コミットメントに関心を表明することは、ＳＨＡＲＥＰＯＩＮＴサーバなどの二次サーバ２１５を介する変更イベントの電子メール通知を登録すること、または登録済みのコミットメントが変更されたときにプロジェクト管理アプリケーションにおいて指示を獲得することを含めて、多くの形態を取ることができる。以下で説明するように、本発明ではまた、選択コミットメントを用いてタスク上で日付を同期させる機能を提供している。
【００３１】
オペレーション
次に図３Ａを参照すると、プロジェクト管理アプリケーションにおいてコミットメントを提供し保持するための本発明の一実施形態が、示されている。この分散コンピューティング環境３００は、コンピューティングシステム３０２、プロジェクトサーバ３０４、データベースサーバ３０６、および二次サーバ３０８を含んでいる。図３Ａにおける破線は、マシン境界を示している。分散コンピューティング環境３００のコンポーネントは、図２に関連して前述したように一緒にネットワーク化されることが好ましい。しかし、プロジェクトサーバ３０４およびデータベースサーバ３０６は、単一のサーバとして実装することもできることが理解されよう。
【００３２】
本発明の一実施形態によれば、コンピューティングシステム３０２は、プロジェクトを作成し保持する、マイクロソフトが生産しているマイクロソフトプロジェクトプロフェッショナルなどのプロジェクト管理アプリケーション３１０を含んでいる。図３Ａに示すように、コンピューティングシステム３０２は、例えばＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ：シンプルオブジェクトアクセスプロトコル）などのＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ：拡張マークアップ言語）プロトコル、またはＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ：ハイパーテキスト転送プロトコル）などのワールドワイドウェブプロトコルを使用して、リンク３１４を介してプロジェクトサーバ３０４のウェブサービスインターフェース３１２と情報をやりとりする。ＳＯＡＰは、メッセージをネットワーク上に送信する前に、ウェブサービスの要求メッセージおよび応答メッセージ中の情報を符号化するために使用される軽量のＸＭＬベースのメッセージングプロトコルである。ＳＯＡＰメッセージは、どのオペレーティングシステムまたはプロトコルからも独立したものとすることができ、ＳＭＴＰ、ＭＩＭＥ、およびＨＴＴＰを含めて様々なインターネットプロトコルを使用して移送することができる。ウェブサービスインターフェース（ＰＳＩ）３１２は、図２を参照して前述したような、コンピューティングシステム３０２とプロジェクトサーバ３０４の間の通信インターフェースを提供する。図２に関連して説明したコンピューティングシステムと同様に、いくつかのコンピューティングシステムも、プロジェクトサーバ３０４と情報をやりとりすることができることが理解されよう。
【００３３】
プロジェクトサーバ３０４は、このプロジェクトにアクティブに関与し、あるいはその利益がこのプロジェクトによって影響を受けることもあり得る、プロジェクト管理者、チームメンバと、様々な個人および組織の間におけるオンライン協調を可能にする。プロジェクトサーバ３０４はまた、組織が、プロジェクト間で規格を共有すること、チェックイン機能およびチェックアウト機能を用いてセキュリティ保護されたプロジェクトを支援すること、リソースの使用可能性およびプロジェクトにまたがる他のリソース情報を閲覧すること、プロジェクトのポートフォリオを管理し報告することができるようにする。プロジェクトサーバ３０４は、リストアイテムおよび様々なドキュメントも管理する。
【００３４】
親／マスタコンピュータ２２０から、プロジェクト管理者は、プロジェクトサーバ３０４に接続して、いくつかのこと、すなわち１）チームメンバにタスクを割り当て、完了済みの作業を追跡して、それによって自動的または人手によって、チームメンバからのタスクアップデートを受け入れ、このアップデート済みの情報をプロジェクト中に組み込むこと、２）特にステータスレポートを要求し受信し、また個々のステータスレポートを１つのプロジェクトステータスレポートに統合して、他に提示すること、３）それらのプロジェクトの異なるバージョンを作成した後に、ｗｈａｔ−ｉｆ分析を実施して、コスト、スケジュール、およびリソース割付けについて比較すること、４）リソース使用可能性、リソース割付け、およびコストに対するスケジュール変更の影響を評価すること、５）組織にまたがってリソース使用可能性を閲覧し、チームを構成してタスクに対して一般的なリソースを割り当て、スキルセット（ｓｋｉｌｌ  ｓｅｔ）に基づいてリソースを見出し、置き換え、また企業リソースの共通リストからチームを構成すること、および／またはコミットメントを作成し修正することを行うことができる。
【００３５】
様々なチームメンバは、コンピュータ２３０などの子／サブコンピュータから、マイクロソフトが生産しているプロジェクトウェブアクセス（Ｐｒｏｊｅｃｔ  Ｗｅｂ  Ａｃｃｅｓｓ）などのウェブサービスインターフェース３１２を使用することにより、プロジェクトサーバ３０４上の情報にアクセスして、１）タスク割当てを検討しアップデートし、ある種の割当てについてそのプロジェクト管理者に応答し、また定期的に完了済みの作業についてのアップデートを送信すること、２）承認を取り、このプロジェクト計画に組み込むために、新しいタスクを作成し、これらをそのプロジェクト管理者に対して送信すること、３）タスクを他のチームメンバに委託すること、４）タスクの期間および他のタスクに対する関係のグラフィック表現についてガントチャート形式でタスクを閲覧すること、５）グループ化され、ソーティングされ、フィルタされたタスクを閲覧することを行うことができ、６）チームメンバはまた、割り当てられたタスクだけでなくこの全体プロジェクトについての最新情報を閲覧することもでき、かつ／またはコミットメントを使用することもできる。他のプロジェクト管理者または上級管理者は、ウェブサービスインターフェース３１２を使用して、プロジェクトサーバ３０４上の情報にアクセスして、プロジェクト、タスク、およびリソース情報を検討して、どのようにプロジェクトが個々に、または組織にわたって進行しているかについて調べることができる。
【００３６】
図３Ａをさらに参照すると、二次サーバ３０８は、少なくとも１つのモジュール、すなわち、例えばプロジェクトサーバ３０４のＣＢＯ（ｃｏｍｍｉｔｍｅｎｔ  ｂｕｓｉｎｅｓｓ  ｏｂｊｅｃｔ：コミットメントビジネスオブジェクト）モジュール３１８と情報をやりとりする共有リストモジュール３１６を含んでいる。ＣＢＯモジュール３１８は、好ましくは、例えばシンプルオブジェクトアクセスプロトコル（ＳＯＡＰ）などのＸＭＬプロトコルを使用してプロジェクトサーバ３０４と二次サーバ３０８の間の、読取りコマンド／書込みコマンド、論理オペレーションなどを含めた通信を管理する。この実施形態によれば、プロジェクトサーバ３０４は、１つまたは複数のタスクと１つまたは複数のコミットメントの間のリンクを保持するためのＯＬＰ（ｏｂｊｅｃｔ  ｌｉｎｋ  ｐｒｏｖｉｄｅｒ：オブジェクトリンクプロバイダ）３２０も含んでいる。ＯＬＰ３２０は、二次サーバ３０８中に記憶される特定のタスクおよびプロジェクトと、特定のコミットメントアイテムの間のリンクを保持するためのサービスとして説明することができる。データレイヤ３２２は、データベースサーバ３０６と情報をやりとりし、データベースサーバ３０６から情報を読み取り、データベースサーバ３０６へと情報を書き込むように動作可能な、プロジェクトサーバ３０４とデータサーバ３０６の間のインターフェースを実現する。
【００３７】
本明細書中で説明しているように、「プロジェクトウェブ」（図３Ｂ参照）は、システム３００を使用してあるプロジェクトが作成されるときに、プロジェクトサーバ３０６が用意する、二次サーバ３０８上の共有されるウェブベース協調ワークスペースのことを意味する。このプロジェクトウェブは、ユーザが、ドキュメントをアップロードし、課題またはリスクを提起し、次いでこれらのうちのどれかをプロジェクトプラン内の実際のタスクにリンクすることができるようにする。本発明によれば、システム３００は、このプロジェクトウェブを利用して、他のプロジェクトと共有することができる、１つのプロジェクトによって行われるコミットメントを記憶する。例えば、二次サーバ３０８は、１つまたは複数のコミットメントを追跡するための、１つまたは複数のプロジェクトウェブなどのウェブサービスを含むことができる。ユーザは、このプロジェクトウェブに問い合わせ、このクエリに基づいてウェブサービスからの情報を受信することができる。
【００３８】
以下でさらに説明しているように、本発明の実施形態によれば、各プロジェクトウェブは、このウェブが、使用されるように提供する１つまたは複数のコミットメントを追跡する。前述のように、コミットメントとは、２つの（またはそれより多い）事業体の間における１組の条件を履行する合意として定義される。一般的に、少なくとも１つのコミットメントプロバイダと少なくとも１つのコミットメントコンシューマが存在する。例えば、第１のプロジェクト管理者が、他のプロジェクト管理者など１つまたは複数のコミットメントコンシューマによって使用される１つまたは複数のコミットメントを提供したいと思っていると仮定する。すなわち、第１のプロジェクト管理者は、第２のプロジェクト管理者によって使用されるためのある種のプロジェクトからのタスク、リソース、または他のデータを提供する。この第１のプロジェクト管理者は、この第２のプロジェクト管理者が、タスクＡ、Ｂ、および／またはＣに依存する１つまたは複数のプロジェクトを有することに気が付く。
【００３９】
本発明の一実施形態によれば、この第１のプロジェクト管理者は、他のプロジェクト管理者によって使用されるための１つまたは複数の「コミットメント」として、１つまたは複数のタスク、リソース、または他のデータを指定することができる。これらのコミットメントは、ＷＩＮＤＯＷＳ（登録商標）ＳＨＡＲＥＰＯＩＮＴサービスウェブのＳＨＡＲＥＰＯＩＮＴサービスリストなど、二次サーバ３０８（「プロジェクトウェブ」）のリスト中に記憶することができる。このコミットメントがこのプロジェクトウェブ上に存在した後に、任意のプロジェクト管理者は、１つまたは複数のこれらのコミットメントを使用することができる。好ましい一実施形態によれば、コミットメントが、このプロジェクトウェブ上に存在した後に、影響を受ける可能性のある任意のコンシューマが、例えば電子メール通知、スケジューリングプログラムを介して、あるいはこのプロジェクト管理アプリケーションそれ自体からこのコミットメントに対する警告を受けることもある。使用側のプロジェクト管理者は、１つまたは複数のプロジェクト上で使用するために、提供側のプロジェクト管理者が、二次サーバ３０８上に記憶している１つまたは複数のコミットメントを使用することができる。これらの提供側および使用側のプロジェクト管理者、ならびに他者は、今や特定のコミットメントが特定のプロジェクトにどのように影響を及ぼすかについて制御することができる。
【００４０】
次に、図３Ｂをさらに参照すると、二次サーバ３０８と、コンピューティングシステム３０２と、プロジェクトサーバデータベース３０６の間のコミットメント関係についてのデータレイアウトを示す機能ブロック図が示されている。本発明の一実施形態によれば、プロジェクトサーバ３０４に保存されたプロジェクトごとに、この特定のプロジェクトに関連するＷＩＮＤＯＷＳ（登録商標）ＳＨＡＲＥＰＯＩＮＴサービスウェブなどのウェブ準備（ｗｅｂ  ｐｒｏｖｉｓｉｏｎ）が二次サーバ３０８上に作成される。前述のように、ユーザは、このプロジェクトサーバ／データベース、または二次サーバ３０８を使用してこのプロジェクトウェブとインターフェースして、プロジェクトドキュメントをアップロードし、課題を作成し、または二次サーバ３０８の他の機能を使用することができる。
【００４１】
前述のように、１つまたは複数のコミットメントは、ＳＨＡＲＥＰＯＩＮＴサーバ上に記憶されるＳＨＡＲＥＰＯＩＮＴモジュールのＳＨＡＲＥＰＯＩＮＴリストなど、二次サーバ３０８上の共有リストモジュール３１６の共有リスト中に記憶することができる。例えば、図３Ｂに示すように、二次サーバ３０８は、第１の共有リスト３３２を有する第１のプロジェクトウェブ３３０を含んでいる。第１の共有リスト３３２は、第１のプロジェクトに関連したコミットメント３３８を含んでいる。二次サーバ３０８は、第２の共有リスト３３６を有する第２のプロジェクトウェブ３３４を含むこともできる。第２の共有リスト３３６は、第２のプロジェクトに関連したコミットメント３４０を含んでいる。二次サーバ３０８は、任意数のプロジェクトウェブを含むことができ、本発明は、本明細書中に開示されたどの特定の実施例または実施形態によっても限定されることを意図していないことが理解されよう。
【００４２】
本発明によれば、各プロジェクトウェブは、このウェブが、使用されるように提供するコミットメントを追跡する。特定のコミットメントプロバイダは、（例えば、Ｐｒｏｊｅｃｔ＿２のウェブにおける）このリストのロケーションから推測することができる。本発明の一実施形態によれば、使用されるコミットメントにリンクされるタスクは、データベースサーバ３０６のＭＳＰ＿ＷＥＢ＿ＯＢＪＥＣＴ＿ＬＩＮＫＳテーブル３０７に記憶される。データベースサーバは、以下で説明しているＭＳＰ＿ＷＥＢ＿ＯＢＪＥＣＴＳテーブル３０９を含むこともできる。
【００４３】
図３Ｂに示すように、コンピューティングシステム３０２上のアプリケーション３１０は、この実施形態に従って、プロジェクトに関連したファイル、すなわちある種のプロジェクトデータを保持するためのバイナリ．ｍｐｐファイルを利用する。すべてのコンシューマデータは、データベースサーバ３０６の．ｍｐｐファイル３４２および３４４、ならびにＭＳＰ＿ＷＥＢ＿ＯＢＪＥＣＴ＿ＬＩＮＫＳなどのバイナリ．ｍｐｐファイルに記憶することができる。プロバイダタスクリンケージ（ｐｒｏｖｉｄｅｒ  ｔａｓｋ  ｌｉｎｋａｇｅ）も、データベースサーバ３０６のバイナリ．ｍｐｐファイルおよびＭＳＰ＿ＷＥＢ＿ＯＢＪＥＣＴ＿ＬＩＮＫＳ中に保持することができる。
【００４４】
本発明の一実施形態によれば、以下を含めて大多数のプロバイダデータは、関連するタスク上の拡張タスクフィールドを介して報告する目的のために正規化することができる。
・ＴａｒｇｅｔＳｔａｒｔ
・ＴａｒｇｅｔＦｉｎｉｓｈ
・ＣｏｍｍｉｔｍｅｎｔＬｉｎｋＴｙｐｅ
・ＣｏｍｍｉｔｍｅｎｔＵｉｄ（ＭＳＰ＿ＷＥＢ＿ＯＢＪＥＣＴＳ中においても）
【００４５】
このプロジェクト管理アプリケーション中のタスクに４つのフィールドを追加することができる。
・ＣｏｍｍｉｔｍｅｎｔＵｉｄ
・ＣｏｍｍｉｔｍｅｎｔＬｉｎｋＴｙｐｅ（ＴａｒｇｅｔＳｔａｒｔ、ＴａｒｇｅｔＦｉｎｉｓｈ、Ｃｏｎｓｕｍｅｄ）
・ＴａｒｇｅｔＳｔａｒｔ
・ＴａｒｇｅｔＦｉｎｉｓｈ
【００４６】
コミットメント／マイルストーンのレコードは、このプロジェクト管理アプリケーション中に保持することができる。
・ＳＰＬｉｓｔＩｔｅｍＩｄ（ＣｏｍｍｉｔｍｅｎｔＩｄ）
・ＣｏｍｍｉｔｍｅｎｔＮａｍｅ
・ＣｏｍｍｉｔｍｅｎｔＤａｔｅ（またはＣｏｍｍｉｔｍｅｎｔＳｔａｒｔおよびＣｏｍｍｉｔｍｅｎｔＦｉｎｉｓｈ）
・ＴａｓｋＩｄ
・ＣｏｍｍｉｔｍｅｎｔＴｙｐｅ
・Ｐｒｏｖｉｄｅｄ
・Ｃｏｎｓｕｍｅｄ
・ＩｓＳｈａｒｅｄＭｉｌｅＳｔｏｎｅ
・ＴａｓｋＬｉｎｋＴｙｐｅ
・ＴａｒｇｅｔＳｔａｒｔ
・ＴａｒｇｅｔＦｉｎｉｓｈ
・ＭｉｌｅＳｔｏｎｅ（これは、関連するＴａｓｋＬｉｎｋＴｙｐｅを有さないこともある使用されたコミットメントおよび共有されたマイルストーンについてのものである）
・データは、特定のプロジェクトにリンクされたウェブオブジェクトのすべてを含むプロジェクトレベルＸｍｌＤｏｍＤｏｃｕｍｅｎｔであるＷｅｂＯｂｊｅｃｔＤｏｃｕｍｅｎｔ中に記憶することができる。
【００４７】
以下で説明しているように、バイナリ．ｍｐｐファイルは、一般的にシステム３０２などのコンピューティングシステム上に存在している。本発明の一実施形態によれば、この．ｍｐｐファイルは、コミットメント、タスクリンケージ、およびこれらのコミットメントについてのターゲット日付を含めて、特定の１つのコミットメント、または１組のコミットメントについてのプロジェクト特有のリンケージ情報を記憶する。この情報は、各コミットメントが、個別のタスクの開始もしくは完了（またはその両方）に縛られるかどうか、あるいはそのコミットメントが、インポートされた（または使用された）コミットメントであるかどうかを含むこともできる。
【００４８】
データベースサーバ３０６中のデータは、これらの．ｍｐｐファイルおよびオブジェクトリンケージ情報から抽出された報告情報から構成することができる。本明細書中で使用されるように、オブジェクトリンケージ情報は、どのコミットメントがどのプロジェクトにリンクされるか、ならびに各コミットメントが二次サーバ共有リスト中においてどこに記憶されるかについてのレコードである。二次サーバ３０８は、コミットメントの実際のリストを記憶することが好ましい。コミットメントは、各プロバイダプロジェクト上の非常に簡単な拡張可能リスト中に存在することもできる。コミットメントが作成されるときには、そのコミットメントは、このプロバイダプロジェクト（図３Ｂ参照）によって制御されるウェブ上に作成される。
【００４９】
本発明の一実施形態によれば、この共有リストに保持されるデータは、例えば、コミットメント名、および（開始日付および完了日付を含む）日付を含むことができる。特定のコミットメントプロバイダについては、（例えば、Ｐｒｏｊｅｃｔ＿１４のウェブにおける）このリストのウェブロケーションから推測することもできる。このコミットメントコンシューマのレコードが、個別のウェブ中に保持されていないことが好ましい。図３Ｂに示すように、すべてのコンシューマデータは、コンピュータ３０２上のバイナリ．ｍｐｐファイル、およびデータベースサーバ３０６上のＭＳＰ＿ＷＥＢ＿ＯＢＪＥＣＴ＿ＬＩＮＫＳに記憶される。図に示すように、ＭＳＰ＿ＷＥＢ＿ＯＢＪＥＣＴＳテーブル３０９は、リスク、課題、およびドキュメントが追跡される方法と同様な方法で各コミットメントについてのエントリを含むことができる。
【００５０】
プロジェクトウェブオブジェクトにリンクされた、データベースサーバ３０６中の任意のオブジェクトは、オブジェクトリンクプロバイダ（Ｏｂｊｅｃｔ  Ｌｉｎｋ  Ｐｒｏｖｉｄｅｒ）３２０に記憶することができる。これらのオブジェクトは、コンピュータシステム３０２側上にしか存在しないプロジェクトおよびタスク、ならびにその場合にはこのプロジェクトウェブ側に記憶するコミットメント、課題、リスクおよび他の一部の物事から構成することができる。これらのオブジェクト間のリンクは、オブジェクトリンクプロバイダ３２０に記憶することができる。例えば、プロジェクトＡが、キータスクなど１つまたは複数のコミットメントを提供しているものと仮定する。プロジェクトＢは、１つまたは複数のこれらのコミットメントを使用したいと思っている。プロジェクト管理アプリケーション３１０は、コミットメントビジネスオブジェクト３１８に関連してプロジェクトウェブ上の共有リストにコミットメントを書き込むウェブサービスインターフェース３１２と情報をやりとりする。コミットメントビジネスオブジェクト３１８はまた、このプロジェクト中のタスクと、この共有リストおよびオブジェクトリンクプロバイダ３２０中のコミットメントラインアイテムとの間のリンクも提供する。したがって、システム３００は、１つのコミットメントが特定のタスクにリンクされることを知り続ける。以下でさらに説明しているように、使用側のプロジェクト管理者は、提供側のプロジェクト管理者によって行われている任意のコミットメントを閲覧することができ、これらのコミットメントを使用することを選択することができる。
【００５１】
コミットメント
本発明の実施形態によれば、このプロジェクト管理アプリケーションを使用して１つまたは複数のスケジュールを管理する際にコミットメントを作成し、使用することができる。前述のように、これらのコミットメントは、二次サーバ３０８上の共有リストに記憶することが好ましい。コミットメントが、あるプロジェクト中で使用されるときに、このコミットメントは、基本的にこのコンシューマプロジェクト中のあるタスクにリンクされ、または新しいタスクをこのコミットメントのために作成することができる。このコミットメントタスクは、「ＣｏｍｍｉｔｍｅｎｔＦｌａｇ」と呼ばれる特別なフラグセットを有することもできる。このコミットされたタスクは、ゼロの存続時間のマイルストーンタスクとすることもでき、また開始日付および完了日付が設定され、したがって非ゼロの存続時間を有するタスクとすることもできる。あるフラグがこのタスク中に記憶され、このフラグは、例えば、特別なフォーマッティングのガントバー（Ｇａｎｔｔ  ｂａｒ）などプロジェクト関連の事項について使用することができる。提供されるコミットメントは、このユーザが現在ブラウズしているプロジェクト管理アプリケーションファイルに起源を有するコミットメントとすることができる。使用されるコミットメントは、１つまたは複数の他のプロジェクトに起源を有したプロジェクトにこのユーザがインポートしているこれらのコミットメントである。
【００５２】
次に図４を参照すると、本発明の一実施形態が記述されている。図４は、プロジェクト管理アプリケーションからの画面ショットであり、ユーザがコミットメント４０２を表示する際に見るコミットメントペーン４００を示している。この現在のビューは、特定のオブジェクトまたはプログラムについてのいくつかのタスクに関連した提供されたコミットメント４０４を示している。各コミットメントは、記述４０８〜４１４、および関連する開始日付および終了日付４１６〜４３０を有しており、このユーザに例えば関連するタスクのタイプ、および予定された完了日付を知らせている。このユーザがあるコミットメント上にポインタを付けるときに、ポップアップペーン４３２がこのユーザに対して、より詳しい詳細を提供することが好ましい。この詳細の一部は、コミットメント状態４２４、依存プロジェクト４３６、タスク名、および／またはＵＩＤ４３８などを含むこともできる。コミットメントペーン４００は、ユーザが新しいコミットメント４０２を追加し、または既存のコミットメントを編集／削除できるようにする。ペーン４００は、二次サーバ３０８上のコミットメントロットに記憶される特定のプロジェクトによって行われるすべてのコミットメントを表示することが好ましい。代替実施形態によれば、詳細ペーン４２４は、リンクされたＭＳＰ＿ＷＥＢ＿ＯＢＪＥＣＴＳおよび拡張されたＳＨＡＲＥＰＯＩＮＴフィールドを含むこともできる。さらに詳しい、またはあまり詳しくない詳細をこのコミットメント詳細ペーン中に示すことができることが理解されよう。
【００５３】
次に図５を参照し、継続して図４を参照すると、コミットメントダイアログペーン５００が示されている。ユーザが、「新しいコミットメントの追加（ａｄｄ  ｎｅｗ  ｃｏｍｍｉｔｍｅｎｔ）」４４０をクリックするとき、このダイアログペーン５００は、オープンし、このユーザが、例えばプロジェクト管理アプリケーション３１０を使用してコミットメントを作成し、または追加することができるようにする。このユーザは、例えばこの「アップデート実行（ｇｅｔ  ｕｐｄａｔｅ）」ボタン４４２をクリックすることによってプロジェクトアプリケーションをアップデートし、あるいは「変更警告（ｃｈａｎｇｅ  ａｌｅｒｔ）」４４４をクリックすることによってプロジェクトに関連した変更に対する警告を受けることもできる。前述のように、このユーザが、「新しいコミットメントの追加」４４０をクリックすると、ウェブサービスインターフェース３１２コールが、「ＷＳＬＣｒｅａｔｅＣｏｍｍｉｔｍｅｎｔ（ＣｏｍｍｉｔｍｅｎｔＤａｔａ）」などのＸＭＬストリングを使用して行われ、ここでＣｏｍｍｉｔｍｅｎｔＤａｔａは、ＣｏｍｍｉｔｍｅｎｔＮａｍｅ、ＰｒｏｊｅｃｔＵｉｄ、ＴａｓｋＵｉｄ、ＣｏｍｍｉｔｍｅｎｔＳｔａｒｔ、およびＣｏｍｍｉｔｍｅｎｔＦｉｎｉｓｈから構成される。ＣｒｅａｔｅＣｏｍｍｉｔｍｅｎｔのリターン値は、この各プロジェクトウェブからのコミットメントウェブオブジェクトを表すＸＭＬストリングである。
【００５４】
コミットメントダイアログペーン５００を使用して、このユーザは、コミットメント５０２についての様々なフィールドを入力することができる。このフィールドは、前述のようにタイトル５０４、完了日付５０６、開始日付５０８、状態５１０、および／または記述５１２を含んでいる。さらに、このユーザは、リンクボックス５１４をチェックすることにより、このコミットメントをプロジェクトタスクにリンクすることができる。そうすることによって、このユーザは、このタスクのこの予想された開始日付および完了日付を使用して、これらの特定のコミットメント日付を駆動している。このユーザが、ＯＫ５１６をクリックするときに、これらのコミットメントは、プロジェクトサーバ３０６を介して二次サーバ３０８のこの共有リスト中で直接に作成される。代替実施形態においては、コミットメントが二次サーバ３０８と（以下で説明しているように）同期化されるときに、フィールド「コミットメントＧＵＩＤ（Ｃｏｍｍｉｔｍｅｎｔ  ＧＵＩＤ）」を使用して、１つまたは複数のコミットメントを識別する。さらに他のフィールド「コミットメントタイプ（Ｃｏｍｍｉｔｍｅｎｔ  Ｔｙｐｅ）」は、あるコミットメントが使用されるか提供されるかを表すことができる。図６に示すように、ユーザは、（例えば、図４のリストから）既存のコミットメントを選択して、編集（Ｅｄｉｔ）し、または削除（Ｄｅｌｅｔｅ）することができる。コミットメント６０２を正しくクリックすることにより、ドロップダウンメニュー６０４は、このユーザが、コミットメント６０２を編集６０６し、または削除６０８することができるようにする。このユーザが、コミットメントを編集６０６することを選ぶ場合には、図５のコミットメントダイアログにより、このユーザは、このコミットメントを選ぶことができるようになる。
【００５５】
次に図７を参照すると、特定のプロジェクトが、依存関係を取得している他のプロジェクトによって行われるすべてのコミットメント７０２をリストアップする依存関係ペーン７００が示されている。この場合にも、このユーザが、コミットメント７０２のうちの１つの上にポインタを付けるときには、ポップアップペーン７０６が、このユーザに対してより詳しい詳細を提供することが好ましい。このユーザは、図８に示す依存関係ダイアログペーン８００へとこのユーザを導く「新しい依存関係の追加（Ａｄｄ  ｎｅｗ  ｄｅｐｅｎｄｅｎｃｙ）」リンク７０８を選択することによって、新しい依存関係７０４を作成することができる。
【００５６】
依存関係ダイアログペーン８００を使用して、このユーザは、依存関係を取得したいと思うプロジェクトを選択することができる。「ブラウズ（Ｂｒｏｗｓｅ）」ボタン８０２をクリックすることにより、企業ファイル／オープンダイアログがオープンされ、それによって、このユーザは、特定のプロジェクト８０４を選択することができるようになる。プロジェクトが選択された後に、プロジェクト８０４からのコミットメントのリスト８０６が、このユーザに対して表示される。特定のコミットメントが選択されると、前述の詳細など、このコミットメント（読取り専用が好ましい）の詳細８０８が表示される。リンクボックス８１０をクリックすることにより、このユーザは、コミットメント８０６をプロジェクト８０４中のタスク８１２へとリンクすることを選ぶことができる。一実施形態においては、ユーザがあるコミットメントをタスクにリンクすることを選ぶときに、この特定のコミットメントは、このタスクの予想される開始日付および完了日付を「引き継ぐ」ことができる。
【００５７】
図９に示すように、このユーザは、依存関係ダイアログペーン９００を使用して、依存関係を編集／修正することを選択することもできる。依存コミットメント９０２を正しくクリックすることにより、ドロップダウンメニュー９０４は、このユーザが依存コミットメント９０２を編集９０６し、または削除９０８することを可能にする。このユーザが、依存コミットメントを編集９０６することを選ぶ場合、図８の依存関係ダイアログペーン８００が、このユーザに対して提示される。このユーザが、依存関係を削除することを選択する場合には、このプロジェクトがこのコミットメントと共に有する依存関係リンクは削除される。
【００５８】
本発明の一実施形態によれば、このシステム３００によって４つのフィールドを使用して、コミットメントを追跡することができる。この最初の２つのフィールド、すなわち「コミットメント開始（Ｃｏｍｍｉｔｍｅｎｔ  Ｓｔａｒｔ）」および「コミットメント完了（Ｃｏｍｍｉｔｍｅｎｔ  Ｆｉｎｉｓｈ）」は、外部コミットメントの開始日付および完了日付を表す。例えば、あるコミットメントがプロジェクト中で使用されるときには、タスクは、このスケジュール中におけるコミットメントを明らかにするために使用することができるコンシューマプロジェクト中で作成されることになる。このタスクは、このコミットメント日付によって駆動することができる。コミットメントが、二次サーバ３０８と（以下に説明するように）同期化されるときに、第３のフィールド「コミットメントＧＵＩＤ」を使用して、１つまたは複数のコミットメントを識別する。この第４のフィールド「コミットメントタイプ」は、コミットメントが使用されるか、提供されるかを表す。
【００５９】
前述のように、このプロジェクト管理アプリケーションは、プロジェクト管理者が、タスク、リソース、コミットメントなどを含めてプロジェクトおよび関連したスケジュールを作成することを可能にする。例えば、このプロジェクト管理者が、住宅の建設に対応するプロジェクトスケジュールを作成するためにこのプロジェクト管理アプリケーションを利用するものと仮定する。この建設プロジェクトは、基礎プロジェクト、枠組みプロジェクト（ｆｒａｍｉｎｇ  ｐｒｏｊｅｃｔ）、電気プロジェクトおよび配管プロジェクト、ならびにドライウォールおよび完了プロジェクトなどのいくつかの依存プロジェクトを含むことができる。各プロジェクトは、このプロジェクトを完了するために必要とされる１つまたは複数のタスクを含むことができる。
【００６０】
コミットメントの記憶
プロジェクトに関連した１組のコミットメントでは、例えば、これらの提供されたコミットメントおよびこれらの使用されたコミットメントは、このプロジェクトに沿ってドキュメントプロパティとして記憶することができ、次いで、このドキュメントプロパティを使用して、このプロジェクト中のこれらのコミットメントを二次サーバ３０８におけるこれらの変更と同期させる。一実施例として、あるコミットメントが、あるプロジェクト中で使用され、このコミットメント日付は、二次サーバ３０８中で変更されるものと仮定する。このプロジェクト中で使用されるすべてのコミットメントについての情報は、このプロジェクト中に、ドキュメントＰＩＤとして記憶することができる。このプロジェクト管理者が、このプロジェクト管理アプリケーションをオープンし、二次サーバ３０８に対して接続されるときには、このプロジェクトに関連するすべてのコミットメントのリストが、ウェブサービスインターフェースコール（ＧｅｔＰｒｏｊｅｃｔＷｅｂＯｂｊｅｃｔｓ）を使用して検索される。このプロジェクトと共に記憶されるこれらのコミットメントは、サーバ３０８から検索されるこれらのコミットメントと比較される。特定のプロジェクトのコミットメントは、ストリングタイプのドキュメントレベルフィールドの値として記憶することができる。
【００６１】
コミットメントの同期化
プロジェクトがオープンされ、二次サーバ３０８に対する接続が使用可能なとき、このプロジェクト中に記憶されるコミットメントは、二次サーバ３０８中のこれらのコミットメントと同期させられて、コミットメントに対する任意の変更を反映する。例えば、使用されたコミットメントの日付が変化していることもあり、この使用されたコミットメントが削除されていることもあり、提供されたコミットメントを駆動する日付が変化することもあり、あるいは提供されたコミットメントを駆動するタスクが削除されていることもある。
【００６２】
使用されたコミットメントの削除
コンピュータシステム３０２などのクライアントと二次サーバ３０８の間のコミットメントを同期化させる工程の一部分として、各コミットメントリストが、比較される。コミットメントが、このクライアントコピー中に存在するが、このサーバ中で使用可能でない場合には、このコミットメントは、このサーバから削除されてしまっている。削除されたコミットメントに縛られるタスクを有する用途はあまり存在しないので、このコミットされたタスクは、通常タスクに変換される。代わりに、コミットされたタスクを削除することもできる。
【００６３】
使用されたコミットメントの日付の変更
このクライアントおよび二次サーバ３０８中のコミットメントを比較する際に、これらの日付が異なっている場合には、これは、コミットメントの日付が二次サーバ３０８中で変更されていることを意味する。次いで、このユーザは、この変更についての通知を受けることができ、このコミットメントから作成されたタスクが、修正されることになる。この日付が変化した後に、これらのコミットメントのクライアントコピーは、この新しい日付を用いてアップデートされることになる。
【００６４】
提供されるコミットメントの同期化
プロジェクトがオープンされた後に、このプロジェクトに関与するコミットメントのリストは（このプロジェクトによって提供されるこれらのコミットメントもこのプロジェクトによって使用されるこれらのコミットメントも共に）、二次サーバ３０８から検索され、このプロジェクト中に記憶されるこのコミットメント情報と比較される。次いで、この提供されたコミットメントリストは、この比較に基づいてこれらの使用されたコミットメントと同期させられる。
【００６５】
新しいコミットメントがサーバ中で作成される
このクライアントとサーバの間で、これらの提供されるコミットメントを同期させる際に、このクライアントバージョン中に存在しないコミットメントが、このサーバコピー中に存在する場合には、これは、どのタスクにも関連しないコミットメントが、このプロジェクトによって提供されていることを意味する。次いで、ユーザは、このコミットメントをタスクに関連づけることができる。このＭＳＰ＿ＷＥＢ＿ＯＢＪＥＣＴテーブルおよびＭＳＰ＿ＷＥＢ＿ＯＢＪＥＣＴ＿ＬＩＮＫＳテーブルをアップデートして、リンキング情報を記憶することができる。また、このクライアント側ストレージをアップデートして、この新しく関連づけられたコミットメントを含めることもできる。
【００６６】
この実施例の住宅建設プロジェクトについて説明しているように、プロジェクト管理スケジュールの作成では、スケジューリング情報が、このプロジェクトの管理者によりこのプロジェクト管理アプリケーションに対して提供される必要がある。スケジューリング情報は、個々のタスクについての作業存続時間、労力および資材を含めたリソース割付け、様々なタスクの実施に対する制約条件、タスクとマイルストーンの間の依存関係など、この全体的プロジェクトのマイルストーンを含む様々なタスクのそれぞれに対する情報を含むことができる。スケジューリングエンジンが、スケジューリング情報を受け取った後に、すべてのタスクについての開始日付／完了日付が計算される。例えば、タスクの実施に対する制約条件は、所与のタスクが異なるタスクの開始に先立って完了される必要があることを規定することができる。あるいは、制約条件は、所与のタスクが、所与の期間中に完了される必要があるという規定を含むこともある。例えば、地方の建築規定では、資材は、交通渋滞を防止するために１日のある時間帯中に建築サイトに輸送することしかできないことが必要とされることもある。このプロジェクト管理アプリケーションに対して提供される依存関係は、第２のマイルストーンが、第１のマイルストーンの完了まで開始することができないという規定を含むこともある。プロジェクトマイルストーンを含む個々のタスクについて、あるタスクは、以前のタスクの完了まで開始することができないという依存関係が提供されることもある。
【００６７】
別の実施例として、プロジェクト管理者Ｂが、コミットメントペーンをオープンした後に、あるコミットメントを使用したいと思うものと仮定する。このプロジェクト管理アプリケーションは、このプロジェクトウェブから定義済みの任意のコミットメントをプルするウェブサービスインターフェースについて問い合わせ、次いでこのウェブサービスインターフェースをこのプロジェクト管理アプリケーションに対して返信する。したがって、プロジェクト管理者Ｂは、プロジェクト管理者Ａがいくつかのコミットメントを行っていることを知ることができる。次いで、このプロジェクト管理アプリケーションを使用して、プロジェクト管理者Ｂは、１つまたは複数のコミットメントを自分のスケジュールに追加することができる。セキュリティレイヤを実装することができ、その結果、プロジェクト管理者Ｂしか、閲覧し使用する許可を有するプロジェクトによって行われたコミットメントを見ることができない。プロジェクト管理者Ｂが、この選択されたコミットメントを使用した後に、このプロジェクトサーバは、このオブジェクトリンクプロバイダを介して、これらが、これらのタスクおよびこのプロジェクトによって使用されているという情報を、物事がこのコミットメント上で変化するときに保持する。次いで、プロジェクト管理者Ａは、誰がこれらのタスクを使用しているかについて通知を受ける。
【００６８】
前述のように、Ｅ  ＥＮＴＥＲＰＲＩＳＥ  ＰＲＯＪＥＣＴは、マイクロソフトが生産するプロジェクト管理アプリケーションである。Ｐｒｏｊｅｃｔ  Ｓｅｒｖｅｒは、マイクロソフトが提供する別のアプリケーションであり、このＰｒｏｊｅｃｔ  Ｓｅｒｖｅｒは、複数のユーザが、新しいプロジェクトを作成し、前述のプロジェクトサーバ３０６などのプロジェクトサーバからの進行中のプロジェクトにアクセスすることを可能にする。例えば、１つの組織は、専用サーバ上にＰｒｏｊｅｃｔ  Ｓｅｒｖｅｒをインストールすることができ、次いで幾人かのプロジェクト管理者は、個々のコンピューティングシステム上にＰｒｏｊｅｃｔをインストールすることができ、ここで各システムは、このプロジェクトサーバと情報をやりとりする。したがって典型的な環境において、起こることは、ある組織が、サーバ上にＰｒｏｊｅｃｔ  Ｓｅｒｖｅｒをインストールし、コンピューティングシステム上にＰｒｏｊｅｃｔをインストールし、このＰｒｏｊｅｃｔ  Ｓｅｒｖｅｒを無線または有線を介してＷＩＮＤＯＷＳ（登録商標）ＷＩＮＤＯＷＳ（登録商標）ＳＨＡＲＥＰＯＩＮＴサービスサーバなどの二次サーバに、またＳｅｑｕｅｌ  Ｓｅｒｖｅｒなどのデータベースサーバに接続することになるということである。
【００６９】
本明細書中で説明しているように、プロジェクト管理アプリケーションおよび関連するリソースを使用して、プロジェクトに関連したコミットメントを作成し保持するための方法およびシステムが実現される。本発明の範囲または趣旨を逸脱することなく、様々な変更および変形を本発明において行うことができることが当業者には明らかになろう。本明細書中に開示している本発明の明細書および実行についての考察から、本発明の他の実施形態が当業者には明らかになろう。
【図面の簡単な説明】
【００７０】
【図１】本発明の実施形態についての例示のコンピューティングシステムを示す図である。
【図２】本発明の実施形態による、プロジェクトサーバ／データベースおよび二次サーバと情報をやりとりする親プロジェクトと１つまたは複数の子サブプロジェクトの所有者／管理者の間の相互関係を示す、分散コンピューティング環境の簡略化されたブロック図である。
【図３Ａ】本発明の実施形態による、プロジェクトサーバ／データベースおよび二次サーバと情報をやりとりするクライアントコンピュータを示す分散コンピューティング環境の簡略化されたブロック図である。
【図３Ｂ】本発明の実施形態による、クライアントコンピュータ、プロジェクトサーバ／データベース、および二次サーバの一部分を示す分散コンピューティング環境の簡略化されたブロック図である。
【図４】本発明の実施形態による、プロジェクト管理アプリケーションのコミットメントペーンを示す図である。
【図５】本発明の実施形態による、プロジェクト管理アプリケーションのコミットメントダイアログペーンを示す図である。
【図６】本発明の実施形態による、プロジェクト管理アプリケーションのコミットメントペーンを示す図である。
【図７】本発明の実施形態による、プロジェクト管理アプリケーションの依存関係ペーンを示す図である。
【図８】本発明の実施形態による、プロジェクト管理アプリケーションの依存関係ダイアログペーンを示す図である。
【図９】本発明の実施形態による、プロジェクト管理アプリケーションの依存関係ペーンを示す図である。
【符号の説明】
【００７１】
３０２  コンピューティングシステム
３０４  プロジェクトサーバ
３０６  データベースサーバ
３０８  二次サーバ
【図１】
2006107448.tif 000003
【図２】
2006107448.tif 000004
【図３Ａ】
2006107448.tif 000005
【図３Ｂ】
2006107448.tif 000006
【図４】
2006107448.tif 000007
【図５】
2006107448.tif 000008
【図６】
2006107448.tif 000009
【図７】
2006107448.tif 000010
【図８】
2006107448.tif 000011
【図９】
2006107448.tif 000012
【外国語明細書】
2006107448000001.pdf