JP4986418B2 - プロジェクトデータのキャッシュおよび同期をとる方法およびシステム - Google Patents

プロジェクトデータのキャッシュおよび同期をとる方法およびシステム Download PDF

Info

Publication number
JP4986418B2
JP4986418B2 JP2005189356A JP2005189356A JP4986418B2 JP 4986418 B2 JP4986418 B2 JP 4986418B2 JP 2005189356 A JP2005189356 A JP 2005189356A JP 2005189356 A JP2005189356 A JP 2005189356A JP 4986418 B2 JP4986418 B2 JP 4986418B2
Authority
JP
Japan
Prior art keywords
project
change
task
server
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005189356A
Other languages
English (en)
Other versions
JP2006099730A (ja
Inventor
エイチ.ビシュヌマーティ ラジェンドラ
アール.アイヤル ラジュ
バト スディン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006099730A publication Critical patent/JP2006099730A/ja
Application granted granted Critical
Publication of JP4986418B2 publication Critical patent/JP4986418B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management

Description

本発明は、一般に、プロジェクト管理方法およびプロジェクト管理システムに関する。より詳細には、本発明は、プロジェクト管理アプリケーションを使用する際にプロジェクトデータを高度に自動化して(intelligently)管理するための方法およびシステムに関する。
コンピュータ時代の到来とともに、コンピュータユーザおよびソフトウェアユーザは、書く、計算する、組織化する、プレゼンテーションを準備する、電子メールを送受信する、作曲するなどをユーザが行うのを支援するユーザフレンドリなソフトウェアアプリケーション群が登場し、そのようなアプリケーション群に慣れてきている。例えば、最新の文書処理アプリケーションにより、ユーザは、様々な役立つドキュメントを作成し、編集することができるようになった。別の例として、最新のプロジェクト管理アプリケーションにより、ユーザは、様々なプロジェクトに関連する仕事、リソース、および工数(labor)を組織化し、管理するためのプロジェクト管理スケジュールを作成することができるようになっている。
手動のプロジェクト管理システムおよびコンピュータ化されたプロジェクト管理システムは、管理者および計画者が、所与のプロジェクトを完了させるために要求される仕事、リソース、およびスケジュールを組織化し、計画することができるようにする。ほとんどのプロジェクトでは、いくつかの依存関係および制約により、プロジェクト全体のタイミングおよび完了、ならびにプロジェクト全体のを構成する下位工程のタイミングおよび完了が規定される。例えば、住宅建設プロジェクトでは、化粧壁下位工程(sub−project)は、通常、電気工事が完了するまで開始されないようにすることができる。また、いくつかの下位工程は、利用可能な労働およびリソースによって制約される可能性がある。プロジェクト管理スケジュールを作成し、自動化するため、プロジェクト管理ソフトウェアアプリケーション群が開発されている。多くのそのようなシステムでは、プロジェクト全体のを構成する仕事または下位工程は、ガントチャートなどのスケジューリングチャートにおいて設定され、それはプロジェクト全体を構成する所与のマイルストーンおよび関連する仕事に関する開始日と終了日を示し、利用されるリソース、ならびにプロジェクトを構成するマイルストーンおよび仕事に関連する制約に関する情報を提供する。
現在、一部のプロジェクト管理ソフトウェアアプリケーションは、クライアント/サーバアーキテクチャを利用してプロジェクトを管理する。それらのアプリケーションの多くでは、サーバは、プロジェクト関連データの大部分を格納するのに使用される。つまり、プロジェクトデータのほとんどは、サーバ上に保持され、複数のユーザによりアクセスが可能となっている。サーバ上のデータのサイズを非常に大きくすることが可能な場合もある。通常、ユーザがプロジェクトを保存する際には、データの全てをサーバに送信するか、またはプロジェクトを読み込む際にサーバからデータの全てを読み出される。以上の事項は、サーバに大量のデータを保存しようと、またはサーバから大量のデータを取り出そうと試みる場合、大きな問題となる可能性がある。読み込み問題および待ち時間問題は、複数のクライアントがサーバに接続し、保存動作および読み込み動作を試みる場合、悪化する可能性がある。さらに、サーバから大量のデータを読み込む/保存することを試みる場合、これらの処理は極めて煩雑となり、効率が悪化し、および費用が増加する可能性がある。パフォーマンス問題は、クライアントが、低帯域幅のWAN接続を介してサーバに接続した場合、特に深刻となる。
本発明の実施態様は、プロジェクト管理アプリケーションを使用してデータを高度に自動化して(intelligently)キャッシュし、同期をとることによってプロジェクトデータを管理する方法およびシステムを提供することにより、上述の、およびその他の問題を解決する。本発明の一実施態様は、プロジェクトデータを含むプロジェクトスケジュールを生成し、プロジェクトスケジュールに対する変更を探査し(monitor)、および探査された変更に従って所定の閾値が満たされているかどうかを判定することにより、プロジェクト管理アプリケーションのデータを管理するための方法を提供する。本発明の別の実施態様は、プロジェクトに関連するプロジェクトデータを受信すること、受信されたプロジェクトデータを格納済みのプロジェクトデータと比較することにより、データの差分を算出すること、および算出された差分に基づき、プロジェクトの中のプロジェクトデータを更新することにより、プロジェクト管理アプリケーションのプロジェクトデータを管理するための方法を提供する。本発明のさらに別の実施態様は、プロジェクトデータを含むプロジェクトを要求し、プロジェクトに関連する第1のバージョンスタンプを送信し、および第1のバージョンスタンプに関連するデータと第2のバージョンスタンプに関連するデータの比較に基づいてプロジェクトデータを受信することにより、プロジェクト管理アプリケーションのプロジェクトデータを管理するための方法を提供する。
本発明を特徴付ける以上、およびその他の特徴および利点は、以下の詳細な説明を読み、関連する図面を詳しく見ることで明白となろう。以上の一般的な説明と以下の詳細な説明はともに、典型的であり、説明的であるに過ぎず、請求される本発明を限定するものではないことを理解されたい。
以上簡単に説明したとおり、本発明の実施態様は、プロジェクト管理アプリケーションを使用する際に、プロジェクトデータをキャッシュするための方法およびシステムを目的とする。この方法およびシステムは、クライアントコンピュータのローカルキャッシュを利用して、プロジェクト管理アプリケーションを使用するプロジェクトデータを格納する。ユーザが、プロジェクトサーバ/データベースからデータを保存し、または読み込むことを所望する場合、本発明は、前述した読み込み問題および待ち時間問題を回避する可能性がある。さらに、本発明は、ユーザが、プロジェクトサーバ/データベースに必ずしも接続することなしに、プロジェクトデータの作成および/または編集を行うことができるようにする。
以下の詳細な説明では、本明細書の一部分を成す添付の図面を参照し、図面では、例示として、特定の実施形態または実施例が示されている。本発明の趣旨または範囲を逸脱することなく、それらの実施形態を組み合わせること、他の実施形態を利用すること、および構造上の変更を行うことができる。したがって、以下の詳細な説明は、限定する意味で解釈されるべきではなく、本発明の範囲は、特許請求の範囲およびその等価な範囲によって定義される。
動作環境
次に、いくつかの図のすべてで同様の符号が同様の要素を表している図面を参照して、本発明の態様、および典型的な動作環境を説明する。図1、および以下の説明は、本発明を実施することができる適切なコンピューティング環境の簡単な一般的説明を提供することを目的とする。本発明は、パーソナルコンピュータ上のオペレーティングシステム上で実行されるアプリケーションプログラムと連携して実行されるプログラムモジュール群の一般的な文脈で説明するが、本発明は、その他のプログラムモジュール群と組み合わせて実施することもできることが当業者には認識されよう。
一般に、プログラムモジュールには、特定の仕事を実行する、または特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造、およびその他のタイプの構造が含まれる。さらに、本発明は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースの家庭用電化製品またはプログラマブル家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含め、他のコンピュータシステム構成を使用して実施してもよいことが当業者には理解されよう。また、本発明は、通信網を介してリンクされたリモート処理装置によって仕事が実行される分散コンピューティング環境において実施することもできる。分散コンピューティング環境では、プログラムモジュール群は、ローカルメモリ記憶装置とリモートメモリ記憶装置の両方の中に配置することが可能である。
次に、図1を参照して、本発明の様々な実施形態を実施するためのパーソナルコンピュータ100に関する例示的なコンピュータアーキテクチャを説明する。図1に示すコンピュータアーキテクチャは、中央処理装置102(「CPU」)、ランダムアクセスメモリ106(「RAM」)および読み取り専用メモリ(「ROM」)108を含むシステムメモリ104、ならびにメモリをCPU102に結合するシステムバス110を含む、慣用のパーソナルコンピュータを示す。起動時などに、コンピュータ内部の要素間で情報を転送するのを支援する基本ルーチンを含む基本入出力システムが、ROM108の中に格納される。パーソナルコンピュータ100は、オペレーティングシステム114、アプリケーションプログラム116のようなアプリケーションプログラム群、およびデータを格納するための大容量記憶装置112をさらに含む。
大容量記憶装置112は、バス110に接続された大容量ストレージコントローラ(図示せず)を介してCPU102に接続される。大容量記憶装置112、および関連するコンピュータ読取可能な媒体により、パーソナルコンピュータ100のための不揮発性ストレージが提供される。本発明の実施形態によれば、大容量記憶装置112は、ローカルキャッシュまたはクライアントキャッシュ113を有するハードディスクを含む。前述したとおり、コンピュータ100は、キャッシュ113への保存動作および/またはキャッシュ113からの読み込み動作を管理するためのキャッシュマネージャアプリケーション115も含む。本明細書に含まれるコンピュータ読取可能な媒体の説明は、ハードディスクドライブまたはCD−ROMドライブなどの大容量記憶装置について述べるが、コンピュータ読取可能な媒体は、パーソナルコンピュータ100がアクセスすることができる任意の利用可能な媒体とすることが可能であることが、当業者には理解されるはずである。
例として、限定としてではなく、コンピュータ読取可能な媒体は、コンピュータ記憶媒体および通信媒体を含むことが可能である。コンピュータ記憶媒体には、コンピュータ読取可能命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を格納するために、任意の方法または技術で実装された揮発性媒体、および不揮発性媒体、リムーバブルな媒体およびリムーバブルでない媒体が含まれる。コンピュータ記憶媒体には、RAM、ROM、EPROM、EEPROM、フラッシュメモリまたは他のソリッドステートメモリ技術、CD−ROM、DVD、または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気記憶装置、あるいは所望の情報を格納するのに使用することができ、コンピュータがアクセスすることができる他の任意の媒体が含まれるが、以上には限定されない。
本発明の様々な実施形態によれば、パーソナルコンピュータ100は、インターネットなどの、TCP/IP網118または他のネットワークを介したリモートコンピュータ群への論理接続を使用する、ネットワーク化された環境において動作することができる。パーソナルコンピュータ100は、バス110に接続されたネットワークインタフェースユニット120を介して、TCP/IP網118に接続することができる。ネットワークインタフェースユニット120は、ローカルネットワーク、ワイドエリアネットワーク、およびその他のネットワークなどの、他のタイプのネットワーク、およびリモートコンピュータシステムに接続するのにも利用できることを理解されたい。パーソナルコンピュータ100は、キーボードまたはマウス(図示せず)を含め、いくつかのデバイスからの入力を受け取り、処理するための入出力コントローラ122も含むことが可能である。同様に、入出力コントローラ122は、ディスプレイスクリーン、プリンタ、または他の種類の出力デバイスに出力を与えることもできる。
簡単に前述したとおり、ワシントン州レッドモンドのマイクロソフトコーポレーションからのWINDOWS(登録商標)オペレーティングシステムなどの、ネットワーク化されたパーソナルコンピュータの動作を制御するのに適したオペレーティングシステム114を含め、いくつかのプログラムモジュール、およびデータファイルを、パーソナルコンピュータ100の大容量記憶装置112およびRAM106の中に格納することが可能である。大容量記憶装置112およびRAM106は、1つまたは複数のアプリケーションプログラムも格納することができる。詳細には、大容量記憶装置112およびRAM116は、様々な機能をユーザに提供するためのアプリケーションプログラム116を格納することができる。例えば、アプリケーションプログラム116は、スプレッドシートアプリケーションプログラム、電子メールアプリケーションプログラム124、ワードプロセッシングアプリケーションプログラム125、データベースアプリケーションプログラムなどの、多くの種類のプログラムを含むことができる。本発明の実施形態によれば、プロジェクト管理アプリケーションプログラム126が、本明細書で説明するプロジェクト管理スケジュールを準備するために備えられる。本発明に従って使用するための典型的なプロジェクト管理アプリケーションは、マイクロソフトコーポレーションによって製造される、Project ProfessionalおよびProject Serverである。
次に、図2を参照すると、分散コンピューティング環境200の簡略ブロック図が示されている。分散コンピューティング環境200は、親プロジェクトの所有者/管理者、および1つまたは複数の子である下位工程の所有者/管理者が、本発明の実施形態に従ってプロジェクトスケジュールを作成し、保持するために、Webサービスインタフェース215を使用してプロジェクトサーバ/データベース210と通信することができるようになっている。図2に示した分散コンピューティング環境200は、本発明の実施形態のための典型的な動作環境として動作する。本明細書で説明するとおり、プロジェクト全体のスケジュールは、親プロジェクトスケジュール、および1つまたは複数の階層関係にある子である下位工程から成るようにすることが可能である。
プロジェクトサーバ/データベース210は、図1を参照して例示し、説明したコンピュータ100に関し前述したとおり、オペレーティングシステム、プロセッサ、およびメモリ空間を含むコンポーネントを有する汎用コンピューティングシステムである。プロジェクトサーバ/データベース210は、全体的/親プロジェクトスケジュール、および本明細書で説明する個々の子の下位工程スケジュールの管理を構築し、表示し、可能にするための十分なコンピュータ実行可能命令を有するプロジェクト管理アプリケーション126をも備える。
プロジェクトサーバ/データベース210は、親プロジェクトスケジュールに関連するデータ、および個々の子である下位工程スケジュールの各々に関するデータを保持するためのバックエンドデータベースまたはリレーショナルデータベースをも含む。当業者には理解されるとおり、リレーショナルデータベースにより、本明細書で説明するプロジェクト全体のスケジュール、つまり親プロジェクトスケジュールを構成する異種のプロジェクトスケジュール間で格納済みのデータを交換するため、1つのプロジェクトスケジュールに関連して格納された情報が、1つまたは複数の他のプロジェクトスケジュールに関係付けることが可能となる。
図2に示すとおり、親/マスタコンピュータシステム220は、インターネットまたはイントラネット250などの分散コンピューティングシステムを介して、プロジェクトサーバ/データベース210と通信を行う。1つまたは複数の子/下位工程コンピューティングシステム230、240、...nが、インターネットまたはイントラネット250を介してプロジェクトサーバ/データベース210と通信するために示される。理解されるとおり、親プロジェクトスケジュールの所有者/管理者、および親プロジェクトスケジュールを構成する1つまたは複数の子である下位工程スケジュールの所有者/管理者によって操作されるコンピューティングシステム220、230、240、...nは、図1に示すコンピュータ100に関連して前述した処理機能およびメモリ機能を含むことができる。親および子の各コンピュータは、システムの「ピア」と呼ぶことができる。
個々のコンピューティングシステム220、230、240、...nの各々は、図1を参照して前述し、プロジェクトサーバ/データベース210において動作する、対応するプロジェクト管理アプリケーション126に対するクライアント側プロジェクト管理アプリケーションの役割を持つ、プロジェクト管理アプリケーション126も含むことができる。本発明の実施形態によれば、プロジェクトサーバ/データベース210は、親プロジェクトスケジュールの所有者/管理者、および子である下位工程スケジュールの所有者/管理者の間で自動的プロジェクトスケジュール変更を送信するため、電子メールアプリケーション124をも含み、またはアプリケーション124にアクセスするように動作することが可能である。
親プロジェクトスケジュールの所有者/管理者は、プロジェクトサーバ/データベース210に対して、インターネットまたはイントラネット250を介して、コンピューティングシステム220からプロジェクトスケジュールを作成することができる。個々の子である下位工程スケジュールの作成および保持も同様に、プロジェクトサーバ/データベース210に対して、インターネット/イントラネット250を介して、コンピューティングシステム230、240、...nから、子である下位工程の所有者/管理者によって作成することが可能である。親プロジェクトスケジュールの所有者/管理者、および1つまたは複数の子である下位工程スケジュールの所有者/管理者の間における通知は、プロジェクト管理アプリケーション126によるコマンドが行われると、電子メールアプリケーション124などの通信アプリケーションによって自動的に実行することが可能である。つまり、変更、または提案される変更により、影響を受けるプロジェクトスケジュール、または関連する下位工程スケジュールの所有者/管理者への通知が要求されると、プロジェクトサーバ/データベース210におけるプロジェクト管理アプリケーション126が、電子メールアプリケーション124のような通信アプリケーションを呼び出して、適切な通知メッセージが、影響を受ける当事者に送信されるようにすることができる。当業者には理解されるとおり、インスタントメッセージングシステム、電話システムなどを含め、他の形態の通信も、影響を受ける当事者への通知のために利用することができる。
プロジェクト管理方法およびプロジェクト管理システムの分野の当業者には認識されるとおり、所与のプロジェクトは、完了されなければならないいくつかの仕事を含むことが可能であり、各仕事は、利用可能なリソース、および仕事を完了させるのに要求される期間によって制約させることができる。さらに、一部の仕事は、関連する仕事が完了するまで、開始されないようにすることができる。多くのプロジェクトの場合、所与のプロジェクトを構成する個々の仕事は、別個の関連するプロジェクトスケジュールの下で管理され、処理される。例えば、住宅を建設するためにマスタプロジェクトスケジュールを準備することが可能である。マスタプロジェクトスケジュールは、全体的な骨組(general framing)の段階または仕事、電気の段階または仕事、および配管の段階または仕事などの、3つの段階または仕事を含むことが可能である。マスタプロジェクトの段階または仕事の各々は、所与の段階または仕事に関する自身のプロジェクトスケジュールを構築し、管理する下請け業者によって完了させることが可能である。例えば、第1の下位工程スケジュールは、全体的な骨組のために構築することが可能であり、第2の下位工程スケジュールは、電気工事のために構築することが可能であり、第3の下位工程スケジュールは、配管工事のために構築することが可能である。理解されるとおり、下位工程スケジュールの各々は、1つまたは複数の段階または仕事に細分することが可能であり、1つまたは複数の段階または仕事は、所与の下位工程内の1つまたは複数の仕事を完了させるためのさらなる下位工程に関連させることが可能である。
プロジェクト管理データの保存/読み込み
本発明の様々な態様によれば、プロジェクト管理データは、クライアントコンピューティングシステム100の大容量記憶装置112のハードディスクキャッシュなどの、ローカルキャッシュ113に読み込まれ、保存することが可能である。前述した読み込み問題および待ち時間問題の多くは、プロジェクト管理データをクライアントキャッシュ113に高度に自動化して保存し、読み込むめば、回避することができる。本発明は、読み込み時間中、および保存時間中にプロジェクトサーバ/データベース210からダウンロードされ、またはプロジェクトサーバ/データベース210に送信されるデータのサイズを縮小するための機構を提供する。
本発明の一態様によれば、トリガされると、キャッシュマネージャ115は、プロジェクトサーバ/データベース210のバックエンドデータベースにデータを保存し、およびこのバックエンドデータベースからデータを読み込むことを高度に自動化して行うWebサービスインタフェース215と通信する。以下に説明するとおり、キャッシュマネージャ115は、プロジェクトサーバ/データベース210とも対話しながら、プロジェクトデータを格納し、操作し、および管理するようにすることが可能である。また、キャッシュマネージャ115は、管理者(administrator)がキャッシュ113を操作することを可能にするインタフェースも提供する。
プロジェクトサーバ/データベース210は、プロジェクト管理者、チームメンバ、ならびにプロジェクトに積極的に関与し、またはプロジェクトによって権益が影響を受ける可能性がある様々な個人または組織の間において、オンライン共同作業を可能にする。また、プロジェクトサーバ210は、組織が、複数のプロジェクトにわたって標準を共有し、チェックイン機能とチェックアウト機能とによりプロジェクトを安全に保護するのを支援し、複数のプロジェクトにわたってリソースの利用可能性、およびその他のリソース情報を閲覧し、並びにプロジェクトのポートフォリオ(portfolio)を管理してポートフォリオについて報告を行うこともできるようにする。
親/マスタコンピュータ220に基づき、プロジェクト管理者は、プロジェクトサーバ/データベース210を使用して、多くの作業を実行することができる。すなわち、1)仕事をチームメンバに割り当て、完了した作業を常に把握しておき、チームメンバから仕事の更新を受け入れ、更新された情報をプロジェクトに組み込むことを自動的に、または手動で行うこと、2)詳細のステータスレポートを要求し、受領して、個々のステータスレポートを1つのプロジェクトステータスレポートにまとめて、他の人々に提示すること、3)what−if分析を実行して、プロジェクトの異なるバージョンを作成した後、費用、スケジュール、およびリソース割り当てを比較すること、4)リソースの利用可能性、リソース割り当て、および費用に対するスケジュール変更の影響を評価すること、および/または5)組織全体にわたるリソース利用可能性を閲覧し、チームを構成して、一般的なリソースを仕事に割り当てるようにし、技能セットに基づいてリソースを探し出し、置き換え、企業リソースの共通リストからチームを構成するといった作業である。
コンピュータ230のような子/下位コンピュータから、様々なチームメンバは、マイクロソフトコーポレーションによって製造されるProject Web Accessなどの、Webサービスインタフェース215を使用することにより、プロジェクトサーバ/データベース210上の情報にアクセスして、1)仕事割り当てを閲覧し、更新して、一部の割り当てについてプロジェクト管理者に応答し、完了した作業について一定の間隔で更新すること、2)新たな仕事を作成し、その仕事をプロジェクト管理者に、承認、およびプロジェクト計画への組み込みのために送信すること、3)仕事を他のチームメンバに委託すること、4)仕事の期間、および他の仕事に対する関係をグラフで示すためのガントチャート形式で仕事を閲覧すること、5)グループ化され、並べ替えられ、フィルタ処理された仕事を閲覧すること、および/または6)割り当てられた仕事だけでなく、プロジェクト全体に関する最新情報を閲覧することができる。他のプロジェクト管理者または上級管理者も、Webサービスインタフェース215を使用してプロジェクトサーバ/データベース210上の情報にアクセスし、プロジェクト情報、仕事情報、およびリソース情報を点検して、プロジェクトが、個々に、または組織全体にわたってどのように進んでいるかを確認することができる。
次に、図3を参照すると、本発明の一実施形態によるフローチャートが示されている。前述したとおり、プロジェクト管理者が、プロジェクト管理アプリケーション126を利用して、例えば、新たな建物建設プロジェクトなどのプロジェクトを作成し、または変更する(ブロック302)。プロジェクト管理アプリケーション126は、ユーザ入力を受け取り、これに応じてプロジェクト関連データを調整するように動作する。プロジェクト管理アプリケーション126が、自動保存機能によってプロジェクト関連データを自動的に保存する動作能力(operability)を備えるか(ブロック304)、あるいはユーザが、指定されたファンクションキーを使用し、またはプロジェクトメニューとインタフェースをとって(すなわち、標準の「ファイル」ボタンおよび「保存」ボタンを使用して)、プロジェクト関連データを手動で保存することができる(ブロック306)。
本発明によれば、プロジェクト関連データは、非同期の形でプロジェクトサーバ/データベース210に保存される。つまり、プロジェクト関連データは、ユーザが保存ボタンを押した場合にではなく、所定の閾値(以下に説明する)が満たされた場合に、プロジェクトサーバ/データベース210に保存される。プロジェクト関連データは、1)プロジェクト、2)仕事、3)リソース、4)仕事の間の制約、5)リソースに対する仕事の割り当て、6)プロジェクトビュー(view)およびリソースビュー、7)カレンダ−労働時間および労働日、ならびに非労働時間および労働日を定義する、および/または8)ルックアップテーブル、すなわちユーザが定義できる列に関する許容できる値を指定する、ユーザが定義したテーブルを含むことができる。
プロジェクト管理者などのユーザが、コンピューティングシステム100のようなクライアントコンピュータ上で初めてプロジェクトを作成すると、プロジェクト関連データが、キャッシュ113の中に格納される。プロジェクトが作成された後、ユーザが、プロジェクトデータを追加し、更新し、または削除するなどにより、プロジェクトを変更した場合にも、プロジェクト関連データは、キャッシュ113の中に格納される。しかし、本発明の実施形態によれば、特定のプロジェクトは、そのプロジェクトを変更する前に、ユーザによって「チェックアウト」されなければならない。この特定のプロジェクトは、別のユーザが変更することができるようにするためにはまず、再チェックインしなければならない。このチェックイン/チェックアウトプロセスにより、プロジェクトの無許可の変更が防止される。
前述したとおり、動作環境は、複数のユーザが、インターネットを介してプロジェクトサーバ/データベース210を使用してプロジェクトにアクセスすることを可能にする。以下に記述するとおり、プロジェクト情報は、プロジェクトサーバ/データベース210に定期的に送信される。より詳細には、「新たな」情報だけが、ある閾値が満たされると、プロジェクトサーバ/データベース210に送信される。この「新たな」情報は、データの「差分」または「デルタ」と呼ばれる。さらに、クライアントが、プロジェクトサーバ/データベース210からプロジェクトにアクセスしようと試みると、「新たな」情報だけが、クライアントに転送されて、プロジェクトが更新される。読み込み/待ち時間の問題は、プロジェクトサーバ/データベース210からプロジェクトの一部分だけを読み込むことにより、回避することができる可能性がある。
本発明の一実施形態によれば、キャッシュ113は、クライアントコンピュータ100によって読み込まれ、または保存されたすべてのファイルについてのメタデータ情報を保持する。メタデータ情報は、ローカルファイルパス、プロジェクトサーバ/データベース210との前回の同期時刻、様々なバージョンスタンプ、および/または各プロジェクトに関するその他の情報を含むが、これらには限定されない。同期時刻とは、クライアントコンピュータとプロジェクトサーバ/データベース210が対話して、特定のプロジェクトファイルを更新した時刻のことである。クライアントコンピュータ100がプロジェクトサーバ/データベース210と通信すると毎回、バージョンスタンプが、好ましくは、クライアントキャッシュ113の中に格納される。
本発明の一実施形態によれば、バージョンスタンプは、サーバ上の現在時刻を表わすことが可能な8バイト数、または自動的に増分される8バイト数とすることができる。バージョンスタンプは、常にプロジェクトサーバ/データベース210によって割り当てられるのが望ましい。プロジェクトサーバ/データベース210は、新たなデータ、または更新されたデータをクライアントから受信すると、バージョンスタンプ(プロジェクトサーバ/データベース210における現在時刻、または更新されているプロジェクトに関連付けられた前のバージョンスタンプに基づく、自動的に増分される数)を生成し、そのバージョンスタンプをプロジェクトに関連付ける。プロジェクトサーバ/データベース210はまた、新たなバージョンスタンプをクライアントに戻す。次回にクライアントが、更新されたデータを受信することを所望する際、クライアントは、そのバージョンスタンプをプロジェクトサーバ/データベース210に送信し、プロジェクトサーバ/データベース210が、クライアントのバージョンスタンプより新しいデータを返す。クライアントは、バージョンスタンプを不透明な(opaque)8バイト数として扱う。バージョンスタンプのためにより多いバイト、またはより少ないバイトを使用してもよいことが理解されよう。自動、または手動の増分の保存のたびに、クライアントコンピュータは、メタデータ、およびその他の情報を使用して、特定のプロジェクトに関連する変更されたデータプロパティを常に把握しておく。キャッシュマネージャ115が、保存の合間に変更されたすべてのプロパティを蓄積して、それらをキャッシュファイル113の中に格納する。
本発明の一実施形態によれば、キャッシュマネージャ115は、変更されたプロパティを3つの別個のカテゴリに編成する。すなわち、本発明の一実施形態によれば、新たなデータ、更新されたデータ、および削除されたデータである。次に、キャッシュマネージャ115が、変更されたプロパティを各カテゴリに従ってキャッシュ113の中に格納する。
ブロック308で、ある閾値に達すると、キャッシュマネージャ115は、プロジェクトサーバ/データベース210上に格納された特定のプロジェクトファイルを更新するために、プロジェクトサーバ/データベース210に送信されるべきデータの差分を準備する。ユーザがプロジェクトデータを編集した際、プロジェクト管理アプリケーション126は、追加され、変更され、または更新されたデータを常に把握しておく。本発明の一実施形態によれば、キャッシュ113が合計プロジェクトサイズの少なくともおよそ10パーセントという閾値を満たすデータ更新をする場合、キャッシュマネージャ115は、プロジェクトサーバ/データベース210上に格納された特定のプロジェクトファイルを更新するため、プロジェクトサーバ/データベース210に送信されるべきデータの差分またはデルタを準備する。本発明の代替の実施形態によれば、プロジェクト仕事のあるパーセンテージ、例えば30パーセントが変更された場合、キャッシュマネージャ115は、プロジェクトサーバ/データベース210上に格納された特定のプロジェクトファイルを更新するため、プロジェクトサーバ/データベース210に送信されるべきデータのデルタを準備する。
所定の閾値に達した場合、ブロック310で、クライアントコンピュータ100がプロジェクトサーバ/データベース210に接続されているかどうかが判定される。閾値に達していない場合、ブロック314で、フローはブロック302に戻り、ユーザは、プロジェクトを変更および/または閲覧することを続けるか、または異なるプロジェクトを開くことができる。クライアントコンピュータ100がプロジェクトサーバ/データベース210に接続されている場合、ブロック312で、データは、プロジェクトサーバ/データベース210に送信される。クライアントコンピュータ100がプロジェクトサーバ/データベース210に接続されていない場合、ブロック314で、フローはブロック302に戻る。クライアントは、閾値を確認する前にプロジェクトサーバ/データベースに接続されることが可能であることが理解されよう。
プロジェクトサーバ/データベース210のバックエンドデータベースは、プロジェクトエンティティ、すなわちプロジェクト、リソース、仕事、カレンダなどのそれぞれに対応する、いくつかの1次テーブルを含む。テーブルの中の各行は、作成時刻に対応するバージョンスタンプ、および/または最後の変更時刻に対応するバージョンスタンプを含むことができる。データベースは、各1次テーブルに対する、対応する「シャドー」テーブルも含む。例えば、プロジェクト、仕事、リソース、カレンダなどに対応するテーブルに対するシャドーテーブルが存在する。1次テーブルからある行が削除されると、その行のキーが、削除の時刻とともに、対応するシャドーテーブルの中に記録される。「キー」は、テーブル内のレコードを一意に識別するテーブル内の列を表すようにすることができる。本発明の一実施形態によれば、グローバル一意識別子(GUID)の組み合わせを、キーとして使用することが可能である。例えば、GUIDにより一意にプロジェクトを識別することができる。プロジェクトの中の仕事も同様に、その仕事独自のGUID、およびその仕事が属するプロジェクトのGUIDで一意に識別することが可能であり、以下同様である。
本明細書で説明するとおり、クライアントコンピュータからプロジェクトサーバ/データベース210に送信されるデータには、新たなデータ、変更されたデータ、および削除されたデータが含まれる。サーバは、サーバにおける現在時刻に基づくか、または現在のバージョンスタンプを増分することにより、プロジェクトに対する新たなバージョンスタンプを決める。新たなデータの場合、新たな行が、対応するプロジェクトサーバ/データベース210テーブルの中で、作成のバージョン、および/または最後の変更のバージョンとして新たなバージョンスタンプ(すなわち、関連するバージョンスタンプ)を伴って作成される。更新されたデータの場合、対応するプロジェクトサーバ/データベース210テーブルの中のデータが、対応する新たなバージョンスタンプで更新される。更新された行は、データが最後に変更された際のバージョンとして新たなバージョンスタンプを含む。削除されたデータについて、対応するサーバ/データベース210テーブルから行が削除される。削除された各行について、対応するシャドーテーブルに行が追加され、新たなバージョンスタンプ、および対応する1次行のキーが記入される。
デルタ計算が、プロジェクトサーバ/データベース210およびクライアントにおいてどのように行われるかの実施例として、次のシナリオを考慮されたい。この実施例に関して、「プロジェクトID」、「プロジェクト名」、および「バージョンスタンプ」という列を含む「Project」というテーブルを想定されたい。「プロジェクトID」列は、「Project」テーブルに対するキーである。「Task」という別のテーブルが、「プロジェクトID」、「仕事ID」、「仕事名」、「期間」、および「バージョンスタンプ」という列を含む。「プロジェクトID」および「仕事ID」という列は、Taskというテーブルに対するキーである。「TaskShadow」という別のテーブルが、削除された仕事の記録をとるのに使用される。「TaskShadow」テーブルは、「プロジェクトID」、「仕事ID」、および「バージョンスタンプ」という列を有する。以上のテーブルは、最初、空であるものと想定する。
上記の実施例で、「User1」というユーザは、3つの仕事、2日間の期間の仕事T1、3日間の期間の仕事T2、および5日間の期間の仕事T3を有する新たなプロジェクトP1を作成するものと想定する。ユーザは、マイクロソフトコーポレーションによって製造されたProject Professionalなど、プロジェクト管理アプリケーション126を使用してプロジェクトを作成する。User1がプロジェクトを保存することを選択すると、キャッシュマネージャ115は、プロジェクトサーバ/データベース210に送信するのに十分なデータをマネージャ115が有していると判定するものと想定する。このプロジェクトは、新たなプロジェクトであるため、すべてのデータが、「新たなデータ」バケット(bucket)に入れられ、プロジェクトサーバ/データベース210に送信される。プロジェクトサーバ/データベース210は、その新たなデータをプロジェクトサーバ/データベース210データベーステーブル群の中に挿入し、テーブル群は、プロジェクトサーバ/データベース210がバックエンドデータベースの更新を終了すると、以下のデータを有することとなる。すなわち、
Figure 0004986418
Figure 0004986418
Figure 0004986418
プロジェクトサーバ/データベース210は、「1」という現在のバージョンスタンプ値をクライアントに戻す。キャッシュマネージャ115は、マネージャ115が、User1に関してマネージャ115のキャッシュ113の中にプロジェクトP1のバージョン「1」を有することを記録する。次いでユーザ1はプロジェクトP1においてチェックする。
次に、User2という別のユーザが、プロジェクトP1を開こうと試みたものと想定されたい。キャッシュマネージャ115は、マネージャ115が、User2に関して、マネージャ115のキャッシュ113の中にプロジェクトP1を有さないと判定するため、0というバージョンスタンプとともに、プロジェクトP1データを求める要求をプロジェクトサーバ/データベース210に送信する。この時点で、プロジェクトサーバ/データベース210は、0より大きいバージョンスタンプを有するすべてのレコードを上記の2つのテーブルから取り出す。すべての行は、0より大きいバージョンスタンプを有するので、すべての行が取り出される。次に、プロジェクトサーバ/データベース210は、プロジェクトP1に関する行、ならびに仕事T1、T2、およびT3に関する行を、「1」という現在のバージョンスタンプ値とともに、削除されたデータに関する行は全くなしに、クライアントに戻す。クライアントがデータを受信すると、キャッシュマネージャ115が、そのデータをキャッシュ113に加え、User2に関して、マネージャ115のキャッシュの中に、バージョンスタンプ1を有するプロジェクトP1を有することを記録する。
次に、User2が、仕事T2を削除し、仕事T3の期間を4日間に変更し、3日間の期間を有する新たな仕事T4を追加することを決めたものと想定する。プロジェクト管理アプリケーション126は、ユーザ活動を追跡して、ある仕事が削除され、別の仕事が変更され、新たな仕事が作成されたと判定する。User2が、プロジェクトを保存してチェックインすることを決めると、キャッシュマネージャ115は、仕事T2を削除されるデータのバケットに入れ、仕事T3を更新されるデータのバケットに入れ、仕事T4を新たなデータのバケットに入れる。次に、キャッシュマネージャ115は、それらのバケットをプロジェクトサーバ/データベース210に送信する。プロジェクトサーバ/データベース210は、データを受信すると、削除されたデータのバケットを適用して、Tasksテーブルから仕事T2を削除し、仕事T2をTaskShadowテーブルに追加する。また、プロジェクトサーバ/データベース210は、仕事T2を更新し、新たな仕事T4をTasksテーブルの中に挿入する。以上のすべての変更は、「2」という次に高いバージョンスタンプを獲得する。したがって、変更が行われた後、テーブルは、以下のデータを有する。すなわち、
Figure 0004986418
Figure 0004986418
Figure 0004986418
次に、プロジェクトサーバ/データベース210は、「2」という最新のバージョンスタンプ値をクライアントに戻す。キャッシュマネージャ115は、マネージャ115が、User2に関して、マネージャ115のキャッシュ113の中にプロジェクトP1のバージョン「2」を有すると記録する。
上記の実施例を続け、次にUser1が、プロジェクトP1を再び開こうと試みたものと想定する。その時点で、キャッシュマネージャ115は、マネージャ115が、User1に関して、マネージャ115のキャッシュ113の中にプロジェクトP1のバージョン「1」を有すると判定し、バージョン「1」以来のプロジェクト「P1」に対する更新を求める要求をプロジェクトサーバ/データベース210に送信する。プロジェクトサーバ/データベース210は、サーバ/データベース210が、1つの削除された仕事のレコード(2という仕事ID値を有する仕事T2)、および「1」より大きいバージョン値を有する2つの新たな、または更新された仕事のレコード(仕事T3およびT4)を有すると判定する。プロジェクトサーバ/データベース210は、仕事T2(2という仕事IDを有する)を削除されたデータのバケットに入れ、仕事T3およびT4を新たなデータのバケットに入れて、「2」という現在のバージョンスタンプ値とともにクライアントに送信する。キャッシュマネージャ115は、プロジェクトのキャッシュされたコピーから仕事T2を削除し、マネージャ115が、仕事T3のより古いバージョンを既に有すると判定し、そのバージョンをプロジェクトサーバ/データベース210からのデータで更新し、プロジェクトサーバ/データベース210からのデータに基づいて新たな仕事T4を作成する。キャッシュマネージャ115は、次に、マネージャ115が、User1に関して、マネージャ115のキャッシュ113の中にプロジェクトP1のバージョン「2」を有することを記録する。この時点で、User1に関するキャッシュ113は、プロジェクトP1のサーババージョンと完全に同期がとられる。
前述したとおり、クライアントコンピュータが、データをプロジェクトサーバ/データベース210に送信した後、プロジェクトサーバ/データベース210は、現在のバージョンスタンプを、プロジェクトサーバ/データベース210上の特定のプロジェクトの変更時刻として、クライアントコンピュータに送信する。クライアントコンピュータ113のキャッシュマネージャ115は、バージョンスタンプを、そのプロジェクトに関する最新の同期時刻としてキャッシュ113の中に記録する。
このため、キャッシュ113は、プロジェクトデータプロパティに対するあらゆる変更を保持するが、変更されたデータは、閾値に達し、プロジェクトサーバ/データベース210に対する接続の準備が整うまで、プロジェクトサーバ/データベース210側で更新されない。したがって、接続の準備が整うと、特定のプロジェクトのデータが、プロジェクトサーバ/データベース210からクライアントコンピュータ上のプロジェクトアプリケーションに変更されたデータを転送することによって更新されるが、これを本明細書で「同期」と呼ぶ。これは、例えば、プロジェクト管理者が、自分のコンピュータ上でプロジェクトファイルを開き、プロジェクト管理者の知らないうちに、前のプロジェクト管理者がそのプロジェクトを変更している場合、特に重要である。同期ステップにより、プロジェクト管理者は、確実に最新のプロジェクトバージョンを有することとなる。
閾値に達することによってトリガされると、前述したとおり、クライアントコンピュータ100からプロジェクトサーバ/データベース210に送信されるデータは、プロジェクトサーバ/データベース210の中に存在する最新コピーと、キャッシュ113の中に存在するコピーとの差分となる。同様に、プロジェクトサーバ/データベース210からコンピューティングシステム100に読み込まれるデータも、キャッシュ113の中の最新コピーとプロジェクトサーバ/データベース210の中に存在するコピーの差分である。データの差分またはデルタだけを送信し、またはダウンロードすることにより、本発明は、コンピューティングシステム100とプロジェクトサーバ/データベース210との間で処理される(transacted)データの量を削減し、効率およびパフォーマンスを向上させる可能性がある。
前述したとおり、クライアントコンピュータからプロジェクトサーバ/データベース210にデータを保存する際、Webサービスインタフェース215が、保存されるべきデータをキュー(queue)に入れることにより、データベースに非同期で保存する。キャッシュマネージャ115は、データをプロジェクトサーバ/データベース210のバックエンドデータベースに保存するWebサービスインタフェース215と通信を行う。低い優先度のスレッドが、キューを処理し、データベースの中のデータを更新する。クライアントは、次回の保存を行う際、保存のステータスを求めるポーリングをプロジェクトサーバ/データベース210に対して行う。保存が何らかの理由で失敗した場合、クライアントは、すべてのデータをプロジェクトサーバ/データベース210に再送信して保存する。ユーザがアプリケーションを閉じているが、保存されるべきさらなるデータが存在する場合、クライアントは、保留中の保存が存在すること記録に残し(note)、次回にユーザがオンラインになった際に、保存を再試行する。
ユーザが、プロジェクトサーバ/データベース210からプロジェクトを読み込むことを所望すると、キャッシュマネージャ115は、プロジェクトID、ならびにプロジェクトが前回にプロジェクトサーバ/データベース210と同期をとった時点を示すバージョンスタンプを伴う要求をプロジェクトサーバ/データベース210に送信する。クライアントコンピュータは、プロジェクトに関してデータが一度も同期がとられていない場合、「0」を送信する。読み込み動作中、データは、次の2つのカテゴリまたはビン(bin)に分けることが可能である。すなわち、1)プロジェクト管理アプリケーションがユーザに提供することが絶対に必要なデータ、および2)ユーザが何か別のことを行っている際に、別個のスレッド上でダウンロードすることが可能なデータである。
ダウンロード中、Webサービスインタフェース215は、プロジェクトデータに関してプロジェクトサーバ/データベース210のデータベースにクエリを行い、データのデルタをクライアントコンピュータにストリーミングする。キャッシュマネージャ115は、プロジェクトサーバ/データベース210によって受信されたデルタをキャッシュ113の中のプロジェクコピーに適用して、ファイル全体をダウンロードせずに、最新のデータをユーザに提供する。データを2つのカテゴリに分けることにより、ユーザは、プロジェクトサーバ/データベース210から大量のデータがダウンロードされるのを待たずに、より良好な体験をする可能性がある。
可能な限り早くユーザに操作させるため、可能な限りダウンロードは少なくし、後に、残りのデータを背景スレッドでダウンロードすることが好ましい。エンティティ(仕事、リソースなど)の各々は、多くの属性を有する。それらの属性(プロパティ)の一部は、プロジェクトの文脈でデータの意味を理解するのにプロジェクト管理アプリケーション126が要する。例えば、仕事はID、開始日、期間のようなプロパティを有し、これらはプロジェクト管理アプリケーション126が、プロジェクト全体の文脈でその仕事の意味を理解するのに要求される可能性があるものである。仕事名、仕事の親、仕事が属するグループなどのその他のプロパティは、背景スレッドでダウンロードし、またはユーザがそのプロパティにアクセスしようと試みた際にダウンロードすることが可能である。好ましくは、プロジェクト管理アプリケーション126は、アプリケーション126が表示している行に関するコアデータをダウンロードし、その後、残りのプロパティを背景スレッドでダウンロードする。
要求を受信した後、プロジェクトサーバ/データベース210は、クライアントによって送信されたバージョンスタンプより大きいバージョンスタンプを有する行に関して、バックエンドデータベース内のすべての1次テーブルにクエリを行う。それらの行に対応するデータが、プロジェクトに関する新たなデータ、または更新されたデータとしてクライアントコンピュータに戻される。また、プロジェクトサーバ/データベース210は、クライアントが提供したバージョンスタンプより後に削除された行に関しても、1次テーブル群に関連するすべてのシャドーテーブルにクエリを行う。それらの行に対応するデータは、削除された行としてクライアントコンピュータに戻される。プロジェクトサーバ/データベース210は、最新のプロジェクトバージョンスタンプをクライアントコンピュータに戻す。キャッシュマネージャ115が、そのバージョンスタンプを使用して、そのプロジェクトに関する前回のデータ同期の時刻をキャッシュ113の中に記録する。
このため、伝送されたバージョンスタンプに基づき、プロジェクトサーバ/データベース210が、クライアントコンピュータに適用される必要があるデルタ(「新たな」データ)を計算し、データの第1のビンを送信する。データの第1のビンを受信した後、クライアントは、プロパティ全体を検査して(walk through)、キャッシュ113の中に格納された値を更新し、プロジェクトを読み込んで、ユーザが、ファイルに対する変更を行うことを可能にする。同時に、プロジェクトサーバ/データベース210は、データの第2のビンを異なるスレッドに送信し、ユーザがプロジェクトに取り組むにつれ、データを更新し続ける。ユーザがダウンロードされていないデータにアクセスした場合、プロジェクト管理アプリケーション126は、要求されたデータをダウンロードしながら、メッセージボックスを使用してユーザに通知する。
次に図4を参照すると、本発明の一実施形態による接続されたプロジェクトセッションに関するフローチャートが示されている。ブロック402で、ユーザは、プロジェクト管理アプリケーション126を使用して、プロジェクトファイルを開こうと試みる。ブロック404で、キャッシュマネージャ115は、その特定のプロジェクトファイルがキャッシュ113の中に存在するかどうかを確認する。ファイルは、例えばユーザがそのファイルを以前に開いている場合、キャッシュ113の中に存在する可能性がある。プロジェクトファイルがキャッシュ113の中に入っていない場合、ブロック406で、クライアントコンピュータ100がプロジェクトサーバ/データベース210に現在、接続されているかどうかが判定される。プロジェクトサーバ/データベース210に対する接続が存在せず、ファイルがキャッシュの中に入っていない場合、ブロック408で、プロジェクト管理アプリケーション126は、ユーザにファイルを開くことができないことを通知する。
プロジェクトサーバ/データベース210に対する接続が存在する場合、ブロック410で、キャッシュマネージャ115は、その特定のプロジェクトファイルを要求する要求を、Webサービスインタフェース215を介してプロジェクトサーバ/データベース210に送信する。ファイルは、プロジェクトサーバ/データベース210からクライアントコンピュータに送信され、クライアントコンピュータにおいて、キャッシュマネージャ115は、そのファイルをキャッシュ113の中に格納する(ブロック412)。ブロック414で、ファイルは、キャッシュ113から読み込まれる。ブロック416で、そのファイルがキャッシュ113の中に入っている場合、キャッシュマネージャ115は、そのファイルが、現在、ログされているか、またはチェックアウトされているかを判定する。ファイルがチェックアウトされている場合、ブロック418で、キャッシュマネージャ115は、Webサービスインタフェース215を介して、ユーザが依然として、ファイルを編集する権利を有するかどうかなどの、セキュリティ資格情報を調べ、管理者(administrator)が、ユーザによるファイルのチェックアウトを強制的に終了させているかどうかなどの、他の任意の更新情報を要求する要求を、プロジェクトサーバ/データベース210に送信する。ステップ414で、ファイルは、キャッシュ113から読み込まれる。ファイルが、ブロック416でチェックアウトされていなかった場合、フローは、ブロック410〜414に進み、前述したとおり、データの差分のキャッシュ113への送信、およびキャッシュ113からの読み込みが行われる。
次に図5を参照すると、本発明による、接続を解除されたプロジェクトセッションに関するフローチャートが示されている。本明細書で使用する「接続を解除された」とは、クライアントコンピュータとプロジェクトサーバ/データベース210との間で接続が利用可能でないことを指す。同様に、「接続された」とは、クライアントコンピュータと、プロジェクトサーバ/データベース210との間で接続が利用できることを指す。ブロック502で、ユーザは、プロジェクト管理アプリケーションを使用して、プロジェクトファイルを開こうと試みる。ブロック504で、キャッシュマネージャ115は、その特定のプロジェクトファイルがキャッシュ113の中に格納されているかどうかを調べる。ファイルがキャッシュ113の中に入っていない場合、ブロック506で、プロジェクト管理アプリケーションは、ユーザにそのファイルを開くことができないことを通知する。
そのファイルが、キャッシュ113の中に入っている場合、ブロック508で、キャッシュマネージャ115は、そのファイルがチェックアウトされているかどうかを判定する。ブロック510で、ファイルがチェックアウトされている場合、ファイルがキャッシュ113から読み込まれる。ファイルがチェックアウトされていない場合、ブロック512で、ユーザに読み取り専用モードでファイルを開くように指示が行われる。ユーザがファイルを読み取り専用モードで開くことに同意した場合、ファイルは、キャッシュから、読み取り専用モードで開かれる。ユーザがファイルを編集することを要望する場合、ファイルは開かれない。
前述したとおり、クライアントコンピュータは、ローカルキャッシュ113とインタフェースをとることができるので、ユーザは、オフライン状態である場合でもクライアント上で作業することができる。オフライン状態にある間、ユーザは、新たなプロジェクトを作成すること、または既存のプロジェクトがチェックアウトされている場合、そのプロジェクトを編集することができる。オフラインで作業している場合、キャッシュマネージャ115は、すべてのデータをキャッシュ113に格納する。次回にユーザがプロジェクトサーバ/データベース210に接続した際、閾値に達すると、ある妥当性検査が実行され、キャッシュ113の中のファイルと、プロジェクトサーバ/データベース210との間で同期がとられる。
ほとんどのユーザは、クライアントとプロジェクトサーバ/データベース210との間におけるセキュリティで保護された通信のためにHTTPSを使用する。本発明の実施形態によれば、クライアントとプロジェクトサーバ/データベース210は、データを固有のバイナリ形式で交換する。データは、より良好な帯域幅利用のために圧縮することもできる。好ましくは、未圧縮のデータに関してチェックサムが計算され、データとともにプロジェクトサーバ/データベース210に送信される。クライアントとプロジェクトサーバ/データベース210はともに、データを伸張した後、データのチェックサムを計算し、セキュリティ検証の一環として受信されたチェックサムに照らして、計算されたチェックサムを検証する。
前述したとおり、Project Professionalは、マイクロソフトコーポレーションによって製造されたプロジェクト管理アプリケーションである。Project Serverは、前述したとおり、複数のユーザが新たなプロジェクトを作成し、プロジェクトサーバ/データベース210のようなプロジェクトサーバから進行中のプロジェクトにアクセスすることができるようにする、Microsoftによって提供される別のアプリケーションである。例えば、1つの組織が、専用サーバ上にProject Serverをインストールし、その後、数名のプロジェクト管理者が、各システムがプロジェクトサーバと通信する個々のコンピューティングシステム上にProjectをインストールすることが可能である。
本明細書で説明するとおり、プロジェクト管理アプリケーション、および関連するリソースを使用してプロジェクトをキャッシュし、同期をとるための方法およびシステムが提供される。本発明の趣旨または範囲を逸脱することなく、本発明において様々な変更または変形を行うことができることが、当業者には明白であろう。本発明の他の実施形態は、本明細書を考慮し、本明細書で開示する本発明を実施することで、当業者には明白となろう。
本発明の諸実施形態に関する典型的なコンピューティングシステムを示す図である。 本発明の諸実施形態による、プロジェクトサーバ/データベースと通信している、親プロジェクトの所有者/管理者、および1つまたは複数の子の下位工程の所有者/管理者の間における相互関係を示す分散コンピューティング環境の簡略ブロック図である。 本発明の実施形態によるフローチャートである。 本発明の実施形態による別のフローチャートである。 本発明の実施形態によるさらに別のフローチャートである。
符号の説明
102 中央処理装置
104 システムメモリ
106 ランダムアクセスメモリ
108 読み取り専用メモリ
112 大容量記憶装置
113 キャッシュ
114 オペレーティングシステム
115 キャッシュマネージャ
116 アプリケーションプログラム
118 TCP/IP網
120 ネットワークインタフェースユニット
122 入出力コントローラ
124 電子メールアプリケーション
125 ワードプロセッシングアプリケーション
126 プロジェクト管理アプリケーション

Claims (24)

  1. クライアント装置のプロジェクト管理アプリケーションとプロジェクトサーバの間プロジェクトデータの同期を管理するコンピュータ実施方法であって、
    前記コンピュータ実施方法は、
    前記プロジェクトサーバに格納されているプロジェクトスケジュールのコピー前記クライアント装置にて取得するステップであって、前記プロジェクトスケジュールのコピーは、複数のプロジェクトタスクを含み、前記プロジェクトスケジュールのコピーは、前記クライアント装置のキャッシュメモリに格納され、前記キャッシュメモリは、前記プロジェクトスケジュールのコピーとは別のプロジェクトタスクのテーブルを含み、前記プロジェクトタスクのそれぞれは、前記プロジェクトタスクのバージョンを示すバージョンスタンプを含む、ステップと、
    前記プロジェクトスケジュールのコピーの複数のプロジェクトタスクの少なくとも一つに対する変更を前記クライアント装置にて受信するステップであって、前記変更は、前記クライアント装置のキャッシュメモリに維持される、ステップと、
    前記変更が、前記クライアント装置のキャッシュマネージャとともに格納されているプリセットの変更閾値を満たすサイズのデータ更新を含むかどうかを前記キャッシュマネージャによって判定するステップであって、前記変更閾値は、前記キャッシュメモリに格納されている前記プロジェクトスケジュールのコピーのデータ全体に関して前記キャッシュメモリに維持されているデータ更新の許容量のパーセントの閾値である、ステップと、
    前記変更閾値が満たされたと判定すると、前記クライアント装置のキャッシュマネージャに、
    前記キャッシュメモリに維持されている前記データ更新のそれぞれの変更のプロパティを識別させ、
    前記変更のプロパティで前記プロジェクトサーバに格納されている前記プロジェクトスケジュールに対する更新を引き起こすために、前記プロジェクトスケジュールの不変部分のプロパティを送信することなく、それぞれの変更のプロパティを前記プロジェクトサーバに送信させ、
    それぞれの変更に対する更新されたバージョンスタンプを前記プロジェクトサーバから受信させ、
    前記キャッシュマネージャにある前記テーブルを前記バージョンスタンプで更新させる
    ステップと
    を備えたことを特徴とするコンピュータ実施方法。
  2. 前記キャッシュマネージャに、タスク更新コンテナ、新タスクコンテナ、および削除タスクコンテナを生成させるステップをさらに備えたことを特徴とする請求項1に記載のコンピュータ実施方法。
  3. 前記変更のプロパティが前記複数のプロジェクトタスクの一つに対する変更に関連することを前記キャッシュマネージャによって識別するステップと、
    前記変更を前記タスク更新コンテナに格納するステップと、
    前記タスク更新コンテナを前記プロジェクトサーバに送信するステップと、
    前記変更についての更新されたバージョンスタンプを前記プロジェクトサーバから受信するステップと、
    前記変更の関連タスクに関連して前記キャッシュマネージャのテーブルに前記更新されたバージョンスタンプを格納するステップと
    さらに備えたことを特徴とする請求項2に記載のコンピュータ実施方法。
  4. 前記変更のプロパティが新しいタスクに関連することを前記キャッシュマネージャによって識別するステップと、
    前記変更を前記新タスクコンテナに格納するステップと、
    前記新タスクコンテナを前記プロジェクトサーバに送信するステップと、
    前記変更についての更新されたバージョンスタンプを前記プロジェクトサーバから受信するステップと、
    前記新しいタスクのインジケーションを前記キャッシュマネージャのテーブルに生成するステップと、
    前記新しいタスクについて生成されたインジケーションに関連して前記キャッシュマネージャのテーブルに前記更新されたバージョンスタンプを格納するステップと
    をさらに備えたことを特徴とする請求項2に記載の方法。
  5. 前記変更のプロパティが削除タスクに関連することを前記キャッシュマネージャによって識別するステップと、
    前記変更を前記削除タスクコンテナに格納するステップと、
    前記削除タスクコンテナを前記プロジェクトサーバに送信するステップと、
    前記変更についての更新されたバージョンスタンプを前記プロジェクトサーバから受信するステップと、
    前記削除タスクのインジケーションを前記キャッシュマネージャのテーブルから取り除くステップと、
    タスクシャドーテーブルを前記キャッシュマネージャに生成するステップと、
    前記削除タスクのインジケーションを前記キャッシュマネージャのタスクシャドーテーブルに生成するステップと、
    前記削除タスクについて生成されたインジケーションに関連して前記キャッシュマネージャのタスクシャドーテーブルに前記更新されたバージョンスタンプを格納するステップと
    をさらに備えたことを特徴とする請求項2に記載の方法。
  6. 前記複数のプロジェクトタスクを含む前記プロジェクトスケジュールのコピーを取得するステップは、前記プロジェクトスケジュールの変更部分を前記プロジェクトサーバから取得すること、および前記キャッシュメモリに格納されている前記プロジェクトスケジュールのバージョンを更新して前記キャッシュメモリのプロジェクトスケジュールの現在バージョンを取得することを含むことを特徴とする請求項1に記載の方法。
  7. 前記プロジェクトスケジュールの変更部分を前記プロジェクトサーバから取得することは、前記プロジェクトスケジュールの変更部分を二つの別個のスレッドで受信することを含み、第1のスレッドは、前記キャッシュマネージャによって最初に受信される高い優先度のスレッドであり、第2のスレッドは、前記キャッシュマネージャによって2番目に受信される低い優先度のスレッドであることを特徴とする請求項6に記載の方法。
  8. クライアント装置のプロジェクト管理アプリケーションとプロジェクトサーバの間のプロジェクトデータの同期を管理するコンピュータ実行可能命令を格納するコンピュータ読み取り可能な記憶媒体であって、
    前記コンピュータ実行可能命令は、実行されると、前記クライアント装置に、
    前記プロジェクトサーバに格納されているプロジェクトスケジュールのコピーを取得するステップであって、前記プロジェクトスケジュールのコピーは、複数のプロジェクトタスクを含み、前記プロジェクトスケジュールのコピーは、前記クライアント装置のメモリに格納され、前記メモリは、バージョンスタンプに関連した複数のプロジェクトタスクのインジケーションを含む、前記プロジェクトスケジュールのコピーとは別のプロジェクトタスクのテーブルを含む、ステップと、
    前記プロジェクトスケジュールのコピーの複数のプロジェクトタスクの少なくとも一つのプロジェクトタスクに対する変更を受信するステップであって、前記変更は、前記プロジェクトサーバに送信されなかった他のプロジェクトタスクに対する変更を含む他のデータ更新とともに前記クライアント装置のメモリ内に格納される、ステップと、
    前記変更および以前に行われた他の変更が、メモリマネージャのプリセットの変更閾値を満たすかどうかを前記メモリマネージャによって判定するステップであって、前記プリセットの変更閾値は、前記プロジェクトタスクの総数に関連して修正されたタスクの数である、ステップと、
    前記変更閾値が満たされたと判定すると、前記メモリマネージャに、
    前記変更のプロパティを識別させ、
    前記変更のプロパティで前記プロジェクトサーバに格納されている前記プロジェクトスケジュールに対する更新を引き起こすために、前記プロジェクトスケジュールの不変部分のプロパティを送信することなく、前記変更のプロパティを前記プロジェクトサーバに送信させ、
    前記変更に対する更新されたバージョンスタンプを前記プロジェクトサーバから受信させ、
    前記メモリマネージャにある前記テーブルを前記バージョンスタンプで更新させる
    ステップと
    を含む方法を実行させることを特徴とするコンピュータ読み取り可能な記憶媒体
  9. 前記変更閾値は、前記メモリに格納されている前記プロジェクトスケジュールのコピーのデータ全体に関して更新データの許容量のパーセントの閾値であることを特徴とする請求項8に記載のコンピュータ読み取り可能な記憶媒体。
  10. 前記メモリマネージャに、タスク更新コンテナ、新タスクコンテナ、および削除タスクコンテナを生成させるステップをさらに含むことを特徴とする請求項8に記載のコンピュータ読み取り可能な記憶媒体。
  11. 前記変更のプロパティが前記複数のプロジェクトタスクの一つに対する変更に関連することを前記メモリマネージャによって識別するステップと、
    前記変更を前記タスク更新コンテナに格納するステップと、
    前記タスク更新コンテナを前記プロジェクトサーバに送信するステップと、
    前記変更についての更新されたバージョンスタンプを前記プロジェクトサーバから受信するステップと、
    前記変更の関連タスクに関連して前記メモリマネージャのテーブルに前記更新されたバージョンスタンプを格納するステップと
    さらに含むことを特徴とする請求項10に記載のコンピュータ読み取り可能な記憶媒体。
  12. 前記変更のプロパティが新しいタスクに関連することを前記メモリマネージャによって識別するステップと、
    前記変更を前記新タスクコンテナに格納するステップと、
    前記新タスクコンテナを前記プロジェクトサーバに送信するステップと、
    前記変更についての更新されたバージョンスタンプを前記プロジェクトサーバから受信するステップと、
    前記新しいタスクのインジケーションを前記メモリマネージャのテーブルに生成するステップと、
    前記新しいタスクについて生成されたインジケーションに関連して前記メモリマネージャのテーブルに前記更新されたバージョンスタンプを格納するステップと
    をさらに含むことを特徴とする請求項10に記載のコンピュータ読み取り可能な記憶媒体。
  13. 前記変更のプロパティが削除タスクに関連することを前記メモリマネージャによって識別するステップと、
    前記変更を前記削除タスクコンテナに格納するステップと、
    前記削除タスクコンテナを前記プロジェクトサーバに送信するステップと、
    前記変更についての更新されたバージョンスタンプを前記プロジェクトサーバから受信するステップと、
    前記削除タスクのインジケーションを前記メモリマネージャのテーブルから取り除くステップと、
    タスクシャドーテーブルを前記メモリマネージャに生成するステップと、
    前記削除タスクのインジケーションを前記メモリマネージャのタスクシャドーテーブルに生成するステップと、
    前記削除タスクについて生成されたインジケーションに関連して前記メモリマネージャのタスクシャドーテーブルに前記更新されたバージョンスタンプを格納するステップと
    をさらに含むことを特徴とする請求項10に記載のコンピュータ読み取り可能な記憶媒体。
  14. 前記複数のプロジェクトタスクを含む前記プロジェクトスケジュールのコピーを取得するステップは、前記プロジェクトスケジュールの変更部分を前記プロジェクトサーバから取得すること、および前記メモリに格納されている前記プロジェクトスケジュールのバージョンを更新して前記メモリのプロジェクトスケジュールの現在バージョンを取得することを含むことを特徴とする請求項8に記載のコンピュータ読み取り可能な記憶媒体。
  15. 前記プロジェクトスケジュールの変更部分を前記プロジェクトサーバから取得することは、前記プロジェクトスケジュールの変更部分を二つの別個のスレッドで受信することを含み、第1のスレッドは、前記メモリマネージャによって最初に受信される高い優先度のスレッドであり、第2のスレッドは、前記メモリマネージャによって2番目に受信される低い優先度のスレッドであることを特徴とする請求項14に記載のコンピュータ読み取り可能な記憶媒体。
  16. クライアント装置のプロジェクト管理アプリケーションとプロジェクトサーバの間のプロジェクトデータの同期を管理するシステムであって、
    前記システムは、
    プロセッサと、
    コンピュータ実行可能命令を格納するメモリと
    を備え、
    前記コンピュータ実行可能命令は、実行されると、前記クライアント装置に、
    前記プロジェクトサーバに格納されているプロジェクトスケジュールのコピーを取得するステップであって、前記プロジェクトスケジュールのコピーは、複数のプロジェクトタスクを含み、前記プロジェクトスケジュールのコピーは、前記クライアント装置のメモリに格納され、前記メモリは、バージョンスタンプに関連した複数のプロジェクトタスクのインジケーションを含む、前記プロジェクトスケジュールのコピーとは別のプロジェクトタスクのテーブルを含む、ステップと、
    前記プロジェクトスケジュールのコピーの複数のプロジェクトタスクの少なくとも一つのプロジェクトタスクに対する変更を受信するステップであって、前記変更は、データ更新とともに前記クライアント装置のメモリに維持される、ステップと、
    前記変更を含む前記データ更新が、前記クライアント装置のメモリマネージャのプリセットの変更閾値を満たすかどうかを前記メモリマネージャによって判定するステップと、
    前記変更閾値が満たされたと判定すると、前記クライアント装置のメモリマネージャに、
    前記変更のプロパティを識別させ、
    前記変更のプロパティで前記プロジェクトサーバに格納されている前記プロジェクトスケジュールに対する更新を引き起こすために、前記プロジェクトスケジュールの不変部分のプロパティを送信することなく、前記変更のプロパティを前記プロジェクトサーバに送信させ、
    前記変更に対する更新されたバージョンスタンプを前記プロジェクトサーバから受信させ、
    前記メモリマネージャにある前記テーブルを前記バージョンスタンプで更新させる
    ステップと
    を含む方法を実行させることを特徴とするシステム。
  17. 前記変更閾値は、前記メモリに格納されている前記プロジェクトスケジュールのコピーのデータ全体に関して更新データの許容量のパーセントの閾値であることを特徴とする請求項16に記載のシステム。
  18. 前記変更閾値は、前記プロジェクトスケジュールの複数のプロジェクトタスクに関連してプロジェクトタスクの変更のパーセントであることを特徴とする請求項16に記載のシステム。
  19. 前記メモリマネージャに、タスク更新コンテナ、新タスクコンテナ、および削除タスクコンテナを生成させるステップをさらに含むことを特徴とする請求項16に記載のシステム。
  20. 前記変更のプロパティが前記複数のプロジェクトタスクの一つに対する変更に関連することを前記メモリマネージャによって識別するステップと、
    前記変更を前記タスク更新コンテナに格納するステップと、
    前記タスク更新コンテナを前記プロジェクトサーバに送信するステップと、
    前記変更についての更新されたバージョンスタンプを前記プロジェクトサーバから受信するステップと、
    前記変更の関連タスクに関連して前記メモリマネージャのテーブルに前記更新されたバージョンスタンプを格納するステップと
    さらに含むことを特徴とする請求項19に記載のシステム。
  21. 前記変更のプロパティが新しいタスクに関連することを前記メモリマネージャによって識別するステップと、
    前記変更を前記新タスクコンテナに格納するステップと、
    前記新タスクコンテナを前記プロジェクトサーバに送信するステップと、
    前記変更についての更新されたバージョンスタンプを前記プロジェクトサーバから受信するステップと、
    前記新しいタスクのインジケーションを前記メモリマネージャのテーブルに生成するステップと、
    前記新しいタスクについて生成されたインジケーションに関連して前記メモリマネージャのテーブルに前記更新されたバージョンスタンプを格納するステップと
    をさらに含むことを特徴とする請求項19に記載のシステム。
  22. 前記変更のプロパティが削除タスクに関連することを前記メモリマネージャによって識別するステップと、
    前記変更を前記削除タスクコンテナに格納するステップと、
    前記削除タスクコンテナを前記プロジェクトサーバに送信するステップと、
    前記変更についての更新されたバージョンスタンプを前記プロジェクトサーバから受信するステップと、
    前記削除タスクのインジケーションを前記メモリマネージャのテーブルから取り除くステップと、
    タスクシャドーテーブルを前記メモリマネージャに生成するステップと、
    前記削除タスクのインジケーションを前記メモリマネージャのタスクシャドーテーブルに生成するステップと、
    前記削除タスクについて生成されたインジケーションに関連して前記メモリマネージャのタスクシャドーテーブルに前記更新されたバージョンスタンプを格納するステップと
    をさらに含むことを特徴とする請求項19に記載のシステム。
  23. 前記複数のプロジェクトタスクを含む前記プロジェクトスケジュールのコピーを取得するステップは、前記プロジェクトスケジュールの変更部分を前記プロジェクトサーバから取得すること、および前記メモリに格納されている前記プロジェクトスケジュールのバージョンを更新して前記メモリのプロジェクトスケジュールの現在バージョンを取得することを含むことを特徴とする請求項16に記載のシステム。
  24. 前記プロジェクトスケジュールの変更部分を前記プロジェクトサーバから取得することは、前記プロジェクトスケジュールの変更部分を二つの別個のスレッドで受信することを含み、第1のスレッドは、前記メモリマネージャによって最初に受信される高い優先度のスレッドであり、第2のスレッドは、前記メモリマネージャによって2番目に受信される低い優先度のスレッドであることを特徴とする請求項23に記載のシステム。
JP2005189356A 2004-09-28 2005-06-29 プロジェクトデータのキャッシュおよび同期をとる方法およびシステム Expired - Fee Related JP4986418B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/952,284 US8005710B2 (en) 2004-09-28 2004-09-28 Methods and systems for caching and synchronizing project data
US10/952,284 2004-09-28

Publications (2)

Publication Number Publication Date
JP2006099730A JP2006099730A (ja) 2006-04-13
JP4986418B2 true JP4986418B2 (ja) 2012-07-25

Family

ID=34940197

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005189356A Expired - Fee Related JP4986418B2 (ja) 2004-09-28 2005-06-29 プロジェクトデータのキャッシュおよび同期をとる方法およびシステム

Country Status (5)

Country Link
US (1) US8005710B2 (ja)
EP (1) EP1640881A3 (ja)
JP (1) JP4986418B2 (ja)
KR (1) KR101213923B1 (ja)
CN (1) CN1755720A (ja)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7774742B2 (en) * 2003-11-04 2010-08-10 Realization Technologies, Inc. Facilitation of multi-project management using task hierarchy
JP4490192B2 (ja) * 2004-07-02 2010-06-23 株式会社エヌ・ティ・ティ・ドコモ マルチタスク実行システム
US8341590B1 (en) 2007-12-12 2012-12-25 Accurev, Inc. System for relating workflow status to code component status in a software project
US9292276B1 (en) 2004-07-19 2016-03-22 Micro Focus (IP) Development Limited Method and system for utilizing change packages
US8473893B2 (en) * 2008-09-30 2013-06-25 Accurev, Inc. Integration of external software analysis processes with software configuration management applications
US8667465B2 (en) * 2008-03-31 2014-03-04 Accurev, Inc. System for estimating a software product release time from version information
US8548967B1 (en) 2007-12-12 2013-10-01 Accurev, Inc. System for visual query and manipulation of configuration management records
US8429297B1 (en) * 2005-09-28 2013-04-23 Oracle America, Inc. Web service invocation framework with integrated directory-based distributor
US9201939B2 (en) * 2006-06-02 2015-12-01 Salesforce.Com, Inc. Method and system for pushing data to a plurality of devices in an on-demand service environment
JP4842690B2 (ja) * 2006-04-14 2011-12-21 富士通株式会社 アプリケーション管理プログラム、アプリケーション管理方法およびアプリケーション管理装置
US20070255763A1 (en) * 2006-04-27 2007-11-01 International Business Machines Corporation Database replication method and system
US8799043B2 (en) * 2006-06-07 2014-08-05 Ricoh Company, Ltd. Consolidation of member schedules with a project schedule in a network-based management system
JP4144890B2 (ja) * 2006-06-08 2008-09-03 インターナショナル・ビジネス・マシーンズ・コーポレーション 開発プロジェクトの日程表作成を支援するシステムおよびその方法
CN101136087A (zh) * 2006-08-31 2008-03-05 国际商业机器公司 用于在项目管理中进行活动管理的系统和方法
US20080163191A1 (en) * 2006-12-27 2008-07-03 International Business Machines Corporation System and method for file transfer management
US8935372B2 (en) * 2007-02-02 2015-01-13 Sony Corporation Mediation server, terminals and distributed processing method
US20080263103A1 (en) 2007-03-02 2008-10-23 Mcgregor Lucas Digital asset management system (DAMS)
US9152433B2 (en) * 2007-03-15 2015-10-06 Ricoh Company Ltd. Class object wrappers for document object model (DOM) elements for project task management system for managing project schedules over a network
US8826282B2 (en) * 2007-03-15 2014-09-02 Ricoh Company, Ltd. Project task management system for managing project schedules over a network
US8666794B1 (en) * 2007-03-26 2014-03-04 Sprint Communications Company L.P. Project management tool
EP2012261A1 (en) * 2007-06-13 2009-01-07 Sap Ag Processing and exchanging data of collaborative tasks
US8082274B2 (en) * 2007-06-28 2011-12-20 Microsoft Corporation Scheduling application allowing freeform data entry
US8549520B2 (en) * 2007-07-31 2013-10-01 Sap Ag Distributed task handling
CN101377746A (zh) * 2007-08-31 2009-03-04 鸿富锦精密工业(深圳)有限公司 排程任务更新系统及方法
US9697171B2 (en) * 2007-10-09 2017-07-04 Internaitonal Business Machines Corporation Multi-writer revision synchronization in a dispersed storage network
US8650154B2 (en) * 2008-02-19 2014-02-11 International Business Machines Corporation Document synchronization solution
US20090217241A1 (en) * 2008-02-22 2009-08-27 Tetsuro Motoyama Graceful termination of a web enabled client
US20090217240A1 (en) * 2008-02-22 2009-08-27 Tetsuro Motoyama Script generation for graceful termination of a web enabled client by a web server
US8725679B2 (en) * 2008-04-07 2014-05-13 International Business Machines Corporation Client side caching of synchronized data
US8706768B2 (en) * 2008-05-16 2014-04-22 Ricoh Company, Ltd. Managing to-do lists in task schedules in a project management system
US8352498B2 (en) * 2008-05-16 2013-01-08 Ricoh Company, Ltd. Managing to-do lists in a schedule editor in a project management system
US8321257B2 (en) * 2008-05-16 2012-11-27 Ricoh Company, Ltd. Managing project schedule data using separate current and historical task schedule data
US20090287522A1 (en) * 2008-05-16 2009-11-19 Tetsuro Motoyama To-Do List Representation In The Database Of A Project Management System
US8676919B2 (en) * 2008-06-26 2014-03-18 Microsoft Corporation Asynchronously editing a synchronous data store, such as a project management data store
US8862489B2 (en) * 2008-09-16 2014-10-14 Ricoh Company, Ltd. Project management system with inspection functionality
US20100070328A1 (en) * 2008-09-16 2010-03-18 Tetsuro Motoyama Managing Project Schedule Data Using Project Task State Data
US8019813B2 (en) * 2009-05-12 2011-09-13 Microsoft Corporation Synchronizing self-referencing fields during two-way synchronization
US8028070B2 (en) * 2009-05-18 2011-09-27 Microsoft Corporation Synchronizing tasks between servers
US8160911B2 (en) * 2009-05-19 2012-04-17 Microsoft Corporation Project management applications utilizing summary tasks for top-down project planning
EP2275951A1 (en) * 2009-07-17 2011-01-19 Accenture Global Services GmbH A data processing method, system, and computer program product
US20110029440A1 (en) * 2009-08-03 2011-02-03 Tetsuro Motoyama Approach for Managing Project Schedule Data in a Project Management System
US8694985B2 (en) * 2009-10-30 2014-04-08 Apple Inc. Managing digital content in hierarchies
JP2014510330A (ja) * 2011-01-25 2014-04-24 ティファニー・ホージー・ブラウン 建設業の建築情報管理、ソフトウェア、及び方法
JP5602311B2 (ja) * 2011-04-15 2014-10-08 株式会社日立製作所 ファイル共有システム及びファイル共有方法
US8949275B1 (en) * 2011-04-29 2015-02-03 Google Inc. Inter-application to do list management
JP2013054561A (ja) * 2011-09-05 2013-03-21 Fuji Xerox Co Ltd 作業情報管理装置及びプログラム
US9009318B2 (en) * 2011-11-03 2015-04-14 Microsoft Corporation Offline resource allocation algorithms
US20130145247A1 (en) * 2011-12-06 2013-06-06 Google Inc. Synchronization Service Tree
US10885060B2 (en) 2012-02-28 2021-01-05 International Business Machines Corporation On-demand file synchronization
US9015115B2 (en) * 2012-04-30 2015-04-21 Oracle International Corporation Project management system with asynchronous updating
US8861005B2 (en) * 2012-09-28 2014-10-14 Interactive Memories, Inc. Methods for real time discovery, selection, and engagement of most economically feasible printing service vendors among multiple known vendors
US10771548B2 (en) 2012-12-07 2020-09-08 Mx Technologies, Inc. Data sync engine, method and software
US11429651B2 (en) * 2013-03-14 2022-08-30 International Business Machines Corporation Document provenance scoring based on changes between document versions
US9766871B2 (en) * 2013-05-16 2017-09-19 Siemens Aktiengesellschaft Method and apparatus for operating a processing and/or production installation
US9632878B1 (en) * 2013-09-20 2017-04-25 Amazon Technologies, Inc. Verification of database table partitions during backup
US9633051B1 (en) 2013-09-20 2017-04-25 Amazon Technologies, Inc. Backup of partitioned database tables
CN103533029B (zh) * 2013-09-26 2017-05-24 广州中国科学院软件应用技术研究所 甘特图数据加载方法及系统
JP5520413B1 (ja) * 2013-11-06 2014-06-11 株式会社アイ・ピー・エス プロジェクトデータ管理サーバ、およびプロジェクトデータ管理プログラム
US10200496B2 (en) * 2014-12-09 2019-02-05 Successfactors, Inc. User interface configuration tool
US9824401B2 (en) * 2015-01-01 2017-11-21 Bank Of America Corporation Data excavator
US10621388B2 (en) * 2016-07-20 2020-04-14 Sap Se Automatic delta query support for backend databases
GB2557892A (en) * 2016-09-12 2018-07-04 Disguise Tech Limited A node and method for stage production management
US11227282B2 (en) * 2018-08-20 2022-01-18 Probloch LLC Time-bounded activity chains with multiple authenticated agent participation bound by distributed single-source-of-truth networks that can enforce automated value transfer
WO2020181152A1 (en) * 2019-03-05 2020-09-10 Farrokh Shokooh Utility network project modeling & management
JP2020149330A (ja) * 2019-03-13 2020-09-17 富士ゼロックス株式会社 情報処理装置及びプログラム
US11892985B2 (en) * 2019-09-16 2024-02-06 Aveva Software, Llc Computerized systems and methods for bi-directional file sharing and synchronization on and over a network
CN112675538B (zh) * 2020-12-28 2023-08-01 腾讯科技(深圳)有限公司 数据同步方法、装置、设备及介质
US11720548B1 (en) * 2021-03-18 2023-08-08 Amazon Technologies, Inc. Shadow data lakes
US11816081B1 (en) 2021-03-18 2023-11-14 Amazon Technologies, Inc. Efficient query optimization on distributed data sets
US20230306029A1 (en) * 2022-03-25 2023-09-28 Atlassian Pty Ltd. Systems and methods for loading content

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06324928A (ja) * 1993-05-14 1994-11-25 Mitsubishi Electric Corp ログ生成装置とファイルの異なるバージョンの調停のための装置及び異なる場所にあるコンピュータファイルの異なるバージョンを調停するための装置
US6345259B1 (en) * 1993-09-28 2002-02-05 The Dow Chemical Company System and method for integrating business and manufacturing environments
US6029175A (en) * 1995-10-26 2000-02-22 Teknowledge Corporation Automatic retrieval of changed files by a network software agent
JP3279201B2 (ja) * 1996-05-17 2002-04-30 富士ゼロックス株式会社 情報処理装置
US5826239A (en) * 1996-12-17 1998-10-20 Hewlett-Packard Company Distributed workflow resource management system and method
US5923552A (en) * 1996-12-31 1999-07-13 Buildnet, Inc. Systems and methods for facilitating the exchange of information between separate business entities
US6026410A (en) * 1997-02-10 2000-02-15 Actioneer, Inc. Information organization and collaboration tool for processing notes and action requests in computer systems
US5999947A (en) 1997-05-27 1999-12-07 Arkona, Llc Distributing database differences corresponding to database change events made to a database table located on a server computer
US5924096A (en) * 1997-10-15 1999-07-13 Novell, Inc. Distributed database using indexed into tags to tracks events according to type, update cache, create virtual update log on demand
US6519763B1 (en) * 1998-03-30 2003-02-11 Compuware Corporation Time management and task completion and prediction software
US20010056362A1 (en) * 1998-07-29 2001-12-27 Mike Hanagan Modular, convergent customer care and billing system
US6449622B1 (en) * 1999-03-08 2002-09-10 Starfish Software, Inc. System and methods for synchronizing datasets when dataset changes may be received out of order
US6487469B1 (en) * 1998-11-13 2002-11-26 Texas Instruments Incorporated System and method for integrating schedule and design environments
US6415259B1 (en) * 1999-07-15 2002-07-02 American Management Systems, Inc. Automatic work progress tracking and optimizing engine for a telecommunications customer care and billing system
US6622152B1 (en) * 2000-05-09 2003-09-16 International Business Machines Corporation Remote log based replication solution
US7162499B2 (en) * 2000-06-21 2007-01-09 Microsoft Corporation Linked value replication
US7752214B2 (en) * 2000-09-01 2010-07-06 Op40, Inc. Extended environment data structure for distributed digital assets over a multi-tier computer network
JP2002169881A (ja) * 2000-09-20 2002-06-14 Atlantis:Kk ビジネスモデル原案の事業化システム
JP2002170057A (ja) 2000-09-20 2002-06-14 Atlantis:Kk インターネットを利用した消費者からのアイデア募集及び知的財産運用代理システム
US6985915B2 (en) * 2001-02-28 2006-01-10 Kiran Somalwar Application independent write monitoring method for fast backup and synchronization of files
US7092972B2 (en) * 2002-05-09 2006-08-15 Sun Microsystems, Inc. Delta transfers in distributed file systems
CA2513503A1 (en) 2003-01-17 2004-08-12 Tacit Networks, Inc. Method and system for use of storage caching with a distributed file system

Also Published As

Publication number Publication date
CN1755720A (zh) 2006-04-05
KR20060048712A (ko) 2006-05-18
EP1640881A2 (en) 2006-03-29
EP1640881A3 (en) 2006-12-27
US20060070019A1 (en) 2006-03-30
US8005710B2 (en) 2011-08-23
JP2006099730A (ja) 2006-04-13
KR101213923B1 (ko) 2012-12-18

Similar Documents

Publication Publication Date Title
JP4986418B2 (ja) プロジェクトデータのキャッシュおよび同期をとる方法およびシステム
US8826281B2 (en) Managing document publication using time-driven job scheduling
US7496886B2 (en) Method and system for providing cross project commitments
US9165283B2 (en) Method and system to process a request to create a collaborative task
CA2595922C (en) Managing the status of documents in a distributed storage system
KR101176647B1 (ko) 컴퓨터-사용가능 프로젝트 관리 방법 및 시스템에서의계층적인 프로젝트들
US7818663B2 (en) Editable information management system and method
US9632768B2 (en) Exchanging project-related data in a client-server architecture
US7389335B2 (en) Workflow management based on an integrated view of resource identity
US7698280B2 (en) Active cache offline sharing of project files
US9720920B2 (en) Employing user-context in connection with backup or restore of data
US20070239725A1 (en) Active cache offline access and management of project files
JP2006099728A (ja) 共同アプリケーションにおけるワークフローの関連付け
JP2003520363A (ja) 部分的に複製されるデータベースシステムのネットワークにおけるデータメンテナンス方法
JP2009505226A (ja) サーバ側のプロジェクトマネージャ
US20060218198A1 (en) Method and computer-readable medium for formula-based document retention
US8635198B1 (en) Centralized, server-less content management
US8027960B2 (en) Intelligent deletion of elements to maintain referential integrity of dynamically assembled components in a content management system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110816

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111116

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120417

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120424

R150 Certificate of patent or registration of utility model

Ref document number: 4986418

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees