(57)【特許請求の範囲】
【請求項１】
製品データ管理（ＰＤＭ）データ処理システムの行う方法であって、
特定タイプ（ｘ）のデータについてのロック要求（２０５、３０５、４０５）を受け付けるステップと、
前記ロック要求（２０５、３０５、４０５）に応じて当該ロック要求を処理するステップであって、前記ロック要求（２０５）に応じて複数のデータオブジェクト（ｙ）についての前記特定タイプ（ｘ）のデータをロックすることを含むステップ（２１０）と、
前記複数のデータオブジェクト（ｙ）の少なくとも１つについての前記特定タイプ（ｘ）のデータに対する少なくとも１つの変更を受け付けるステップ（２１５）と、
前記受け付けた変更にしたがって、前記特定タイプ（ｘ）のデータを変更することにより、前記複数のオブジェクト（ｙ）の少なくとも１つを更新し、セーブするステップ（２２０）と、
を含む、ことを特徴とする方法。
【請求項２】
前記ロック要求（３０５）を処理するステップは、前記特定タイプ（ｘ）のデータが前記複数のデータオブジェクト（ｙ）の少なくとも１つについてすでにロックされているか判別するステップ（３１０）を含む、請求項１記載の方法。
【請求項３】
前記ロック要求（３０５）を処理するステップは、前記ロック要求（３０５）に応じた変更が許されるか判別するステップ（３２０）を含む、請求項１または２記載の方法。
【請求項４】
前記ＰＤＭデータ処理システム（６００）は、前記特定タイプ（ｘ）のデータについての明示的なアンロック要求をさらに受け取り（５０５）、当該アンロック要求に応じて、複数のデータオブジェクト（ｙ）についての前記特定タイプ（ｘ）のデータをアンロックすること（５３５）を含む前記アンロック要求を処理する、請求項１から３のいずれか１項記載の方法。
【請求項５】
前記アンロック要求（５１０）はユーザ（ｚ）に対応するものであり、前記アンロック要求を処理すること（５１０）は、前記特定タイプ（ｘ）のデータが前記オブジェクト（ｙ）および前記ユーザ（ｚ）について現在ロックされているか判別すること（５１５）を含む、請求項４記載の方法。
【請求項６】
前記複数のオブジェクト（ｙ）は、前記特定タイプ（ｘ）のデータに対する変更に従ってそれぞれ更新される、請求項１から５のいずれか１項記載の方法。
【請求項７】
前記複数のオブジェクト（ｙ）についての異なるタイプ（ｘ）のデータが、前記特定タイプ（ｘ）のデータがロックされているとき、他の処理（６２０、６３０）により更新可能である、請求項１から３のいずれか１項記載の方法。
【請求項８】
少なくとも１つのプロセッサ（１０２）と、アクセス可能メモリ（１０８、１２６）とを有する製品データ管理（ＰＤＭ）データ処理システム（１００、６００）であって、
前記ＰＤＭデータ処理システム（１００、６００）は、
特定タイプ（ｘ）のデータについてのロック要求を受け付け（２０５、３０５、４０５）、
前記ロック要求に応じて当該ロック要求を処理し、この際、前記ロック要求（２０５）に応じて複数のデータオブジェクト（ｙ）についての前記特定タイプ（ｘ）のデータをロックし（２１０）、
前記複数のデータオブジェクト（ｙ）の少なくとも１つについての前記特定タイプ（ｘ）のデータに対する少なくとも１つの変更を受け付け（２１５）、
前記受け付けた変更にしたがって、前記特定タイプ（ｘ）のデータを変更することにより、前記複数のオブジェクト（ｙ）の少なくとも１つを更新し、セーブする（２２０）、
ことを特徴とするＰＤＭデータ処理システム。
【請求項９】
前記ロック要求（３０５）の処理は、前記特定タイプ（ｘ）のデータが前記複数のデータオブジェクト（ｙ）の少なくとも１つについてすでにロックされているか判別すること（３１０）を含む、請求項８記載のＰＤＭデータ処理システム。
【請求項１０】
前記ロック要求（３０５）の処理は、前記ロック要求（３０５）に応じた変更が許されるか判別すること（３２０）を含む、請求項８または９記載のＰＤＭデータ処理システム。
【請求項１１】
前記ＰＤＭデータ処理システム（６００）は、前記特定タイプ（ｘ）のデータについての明示的なアンロック要求をさらに受け取り（５０５）、当該アンロック要求に応じて、複数のデータオブジェクト（ｙ）についての前記特定タイプ（ｘ）のデータをアンロックすること（５３５）を含む前記アンロック要求を処理する、請求項８から１０のいずれか１項記載のＰＤＭデータ処理システム。
【請求項１２】
前記アンロック要求（５１０）はユーザ（ｚ）に対応するものであり、前記アンロック要求を処理すること（５１０）は、前記特定タイプ（ｘ）のデータが前記オブジェクト（ｙ）および前記ユーザ（ｚ）について現在ロックされているか判別すること（５１５）を含む、請求項１１記載のＰＤＭデータ処理システム。
【請求項１３】
前記複数のオブジェクト（ｙ）は、前記特定タイプ（ｘ）のデータに対する変更に従ってそれぞれ更新される、請求項８から１２のいずれか１項記載のＰＤＭデータ処理システム。
【請求項１４】
前記複数のオブジェクト（ｙ）についての異なるタイプ（ｘ）のデータが、前記特定タイプ（ｘ）のデータがロックされているとき、他の処理（６２０、６３０）により更新可能である、請求項８から１０のいずれか１項記載のＰＤＭデータ処理システム。
【請求項１５】
実行可能命令がコードされた、コンピュータ読み取り可能な不揮発性媒体であって、
前記命令は、実行時に、製品データ管理（ＰＤＭ）データ処理システムに、
特定タイプ（ｘ）のデータについてのロック要求（２０５、３０５、４０５）を受け付けるステップと、
前記ロック要求（２０５、３０５、４０５）に応じて当該ロック要求を処理するステップであって、前記ロック要求（２０５）に応じて複数のデータオブジェクト（ｙ）についての前記特定タイプ（ｘ）のデータをロックするステップ（２１０）を含むステップと、
前記複数のデータオブジェクト（ｙ）の少なくとも１つについての前記特定タイプ（ｘ）のデータに対する少なくとも１つの変更を受け付けるステップ（２１５）と、
前記特定タイプ（ｘ）のデータを変更することにより、前記受け付けた変更にしたがって、前記複数のオブジェクト（ｙ）の少なくとも１つを更新し、セーブするステップ（２２０）と、
を実行させるものである、ことを特徴とするコンピュータ読み取り可能な媒体。
【請求項１６】
前記ロック要求（３０５）を処理するステップは、前記特定タイプ（ｘ）のデータが前記複数のデータオブジェクト（ｙ）の少なくとも１つについてすでにロックされているか判別するステップ（３１０）を含む、請求項１５記載のコンピュータ読み取り可能な媒体。
【請求項１７】
前記ロック要求（３０５）を処理するステップは、前記要求に応じた変更が許されるか判別するステップ（３２０）を含む、請求項１５または１６記載のコンピュータ読み取り可能な媒体。
【請求項１８】
前記ＰＤＭデータ処理システム（６００）は、前記特定タイプ（ｘ）のデータについての明示的なアンロック要求をさらに受け取り（５０５）、当該アンロック要求に応じて、複数のデータオブジェクト（ｙ）についての前記特定タイプ（ｘ）のデータをアンロックすること（５３５）を含む前記アンロック要求を処理する、請求項１５から１７のいずれか１項記載のコンピュータ読み取り可能な媒体。
【請求項１９】
前記アンロック要求（５１０）はユーザ（ｚ）に対応するものであり、前記アンロック要求（５１０）を処理することは、前記特定タイプ（ｘ）のデータが前記オブジェクト（ｙ）および前記ユーザ（ｚ）について現在ロックされているか判別すること（５１５）を含む、請求項１８記載のコンピュータ読み取り可能な媒体。
【請求項２０】
前記複数のオブジェクト（ｙ）は、前記特定タイプ（ｘ）のデータに対する変更に従ってそれぞれ更新される、請求項１５から１９のいずれか１項記載のコンピュータ読み取り可能な媒体。
【請求項２１】
前記複数のオブジェクト（ｙ）についての異なるタイプ（ｘ）のデータが、前記特定タイプ（ｘ）のデータがロックされているとき、他の処理（６２０、６３０）により更新可能である、請求項１５から１７のいずれか１項記載のコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、独立請求項に記載のオブジェクトデータ要素の選択的ロックのための、方法、製品データ管理データ処理システムおよびコンピュータ読み取り可能媒体に関する。
【背景技術】
【０００２】
本発明は、概して、コンピュータ支援による設計、視覚化および製造システム（「ＣＡＤシステム」）、製品ライフサイクル管理（「ＰＬＭ」）システム、プロジェクトおよびスケジュール管理システム、ならびに、製品および他の物についてのデータを管理するシステム（個別的または集合的に、製品データ管理（「ＰＤＭ」）システム）に関する。
【０００３】
ＰＤＭシステムは、機能の中でもとりわけ、タスクスケジューリングを含む、プロジェクトスケジュールの生成および管理において、ユーザを支援する。
【発明の概要】
【課題を解決するための手段】
【０００４】
種々の開示される実施形態は、スケジュール管理機能において、有利には本明細書中に記載の処理を実行するよう構成されたＰＤＭシステムにおいて特に有用な選択的データロックおよび編集のためのシステムおよび方法に関する。
【０００５】
種々の実施形態には、ＰＤＭシステム、方法および媒体が含まれる。本方法は、特定タイプのデータについてのロック要求を受け付けるステップを含む。本方法は、ロック要求に応じて当該ロック要求を処理するステップであって、ロック要求に応じて複数のデータオブジェクトについての前記特定タイプのデータをロックすることを含むステップを含む。本方法は、複数のデータオブジェクトの少なくとも１つについての特定タイプのデータに対する少なくとも１つの変更を受け付けるステップを含む。本方法は、受け付けた変更にしたがって、特定タイプのデータを変更することにより、複数のオブジェクトの少なくとも１つを更新し、セーブするステップを含む。
【０００６】
上記は、当業者が以下の詳細な説明をより良く理解できるように本発明の特徴および技術的な利点をかなり大雑把に述べたものである。特許請求の範囲の対象を成す本発明の付加的な特徴及び利点を以下において説明する。当業者であれば、本発明の変更又は本発明と同一の目的を達成するための構造を設計するための基礎として、開示された着想及び特定の実施の形態を容易に使用することができるであろう。また、当業者であれば、そのような等価物はその最も広い形態においても、本発明の精神及び範囲から逸脱するものではないことが分かるであろう。
【０００７】
以下の詳細な説明の前に、本明細書にわたり使用される幾つかの用語又は語句の定義を明確にすることは有利であると思われる。「含む」及び「有する」という語、またそれらから派生した語は限定的でない包含を意味する。「又は」という語は包含的な語であり、すなわち「及び／又は」を意味する。「関連した」及び「それと関連した」ならびにそれらから派生した語は「含む」、「中に含まれる」、「相互に接続されている」、「有する」、「中に有する」、「〜に、又は〜と接続する」、「〜に、又は〜と結合する」、「〜と通信可能である」、「〜と協働する」、「交互配置する」、「近接して並置する」、「〜に近接している」、「〜に、又は〜と結び付けられている」、「持つ」、「〜の性質を有する」等を意味する。また「コントローラ」という語は、ハードウェア、ファームウェア、ソフトウェア、又はそれらのうちの少なくとも２つの組合せによって実施されていようと、少なくとも１つの動作を制御する任意のデバイス、システム又はその一部を意味する。任意の特定のコントローラに関連した機能は中央に集中していてもよいし、局所的であれ遠隔的であれ分散していても良いことを言及しておく。本願明細書全体にわたり幾つかの語及び語句の定義が示されるが、当業者であれば、そのような定義は、殆どではないにしろ、多くの場合、このように定義された語及び語句の以前の用法及び将来の用法にも当てはまることを理解するであろう。幾つかの語は多様な実施の形態を含んでいるが、添付の特許請求の範囲における記載はこれらの語を特定の実施の形態に明示的な的に限定している。
【０００８】
本明細書及び本発明の利点をより完璧に理解するために、以下では、添付の図面を参照しながら本発明を説明する。図面において、同一の参照番号は同一の対象を表している。
【図面の簡単な説明】
【０００９】
【図１】実現可能な一実施形態におけるデータ処理システムのブロック図を示す。
【図２】開示の実施形態にかかる処理のフローチャートを示す。
【図３】開示の実施形態にかかる処理のフローチャートを示す。
【図４】開示の実施形態にかかる処理のフローチャートを示す。
【図５】開示の実施形態にかかる処理のフローチャートを示す。
【図６】開示の実施形態にかかる並行更新の例の簡単なブロック図を示す。
【発明を実施するための形態】
【００１０】
下記において説明する図１から図５、また本明細書に開示されている原理を説明するために用いられる種々の実施の形態は単に説明を目的としたものに過ぎず、本発明の範囲を限定するものと解するべきではない。当業者であれば、本発明の原理は適切に構成されたあらゆる装置によって実現できることが分かるであろう。以下では、限定を意図したものではない実施例を参照しながら、本発明の多くの革新的な教示について説明する。
【００１１】
プロジェクト管理システムおよび他のＰＤＭシステムは、高レベルの相互依存性を有している。タスクはリソース可用性および他のタスクの完了に依存している。僅かな変更は、スケジュールにおける複数のオブジェクトにわたって連続する「連鎖的（ripple）」変更を生じさせる。共同システムでは、これらの各変更は、保持する理由の中でもとりわけ、データインテグリティを強化し、並行性を可能とするために保持されなければならない。連鎖的影響のため、多数の僅かな変更が行われると、同じフィールドが多数回変更され、過剰なネットワークトラフィックおよびデータベーストラフィックが生じる。最終値のみが重要であり、いずれの中間値も必要ではないため、それらのトラフィックは過剰であると見なされる。
【００１２】
プロジェクト全体がロックされた場合、システムは並行性をサポートしない。同じオブジェクトに対する並行更新を可能としつつ、所定の概念的または論理的境界（物理的境界の対語）に基づいて、オブジェクト上のフィールドをロックする方法は現在存在しない。開示の実施形態によれば、全体的なロックの代わりに選択的かつインテリジェントなロックが可能となる。
【００１３】
データインテグリティを保持するために、データ破壊を防止するためフィールドをロックすることが重要である。この方法論では、あるタイプのデータへの同時アクセス、および、別のタイプのデータへの単一ユーザのアクセスが可能となり、かつ、データインテグリティおよびシステム並行性を維持しつつ、ネットワークトラフィックまたはデータベーストラフィックを低減することが可能となる。プロジェクト管理システムでは、ただ一人のスケジュールの所有者／計画者が計画を修正することができるが、潜在的な数百のユーザが各人のタスクステータスおよび実行データを並行して更新する必要がある。
【００１４】
開示の実施形態には、種々のスケジューリング機能をチェックおよびロックするための改善されたシステムおよび方法が含まれる。
【００１５】
図１は、１つの実施の形態を実施することができる、例えばＣＡＤシステムとしてのデータ処理システムのブロック回路図を示す。図示されているデータ処理システムはプロセッサ１０２を含んでおり、このプロセッサ１０２は２次キャッシュ／ブリッジ１０４に接続されている。２次キャッシュ／ブリッジ１０４はさらにローカルシステムバス１０６に接続されている。ローカルバスシステム１０６は、例えば、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）アーキテクチャバスである。図示されている実施例におけるローカルバスシステムには、メインメモリ１０８及びグラフィックアダプタ１１０も接続されている。グラフィックアダプタ１１０をディスプレイ１１１に接続することもできる。
【００１６】
他の周辺装置、例えばローカルエリアネットワーク（ＬＡＮ）／ワイドエリアネットワーク／無線（例えばＷｉＦｉ）アダプタ１１２もローカルバスシステム１０６に接続することができる。拡張バスインタフェース１１４は、ローカルバスシステム１０６を入力／出力（Ｉ／Ｏ）バス１１６に接続させる。Ｉ／Ｏバス１１６にはキーボード／マウスアダプタ１１８、ディスクコントローラ１２０及びＩ／Ｏアダプタ１２２が接続されている。ディスクコントローラ１２０を記録装置１２６に接続することができ、この記録装置１２６は機械使用可能又は機械読み出し可能なあらゆる適切な記憶媒体で良く、不揮発性のハードコーディングタイプの媒体、例えば読み出し専用メモリ（ＲＯＭ）又は電気的に消去及びプログラミング可能な読み出し専用メモリ（ＥＥＰＲＯＭ）、磁気タイプの記録装置及びユーザ記録可能なタイプの媒体、例えばフロッピーディスク、ハードディスクドライブ及びコンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）又はディジタル多目的ディスク（ＤＶＤ）及び他の公知の光学的、電気的又は磁気的な記録装置がこれに含まれるが、記憶媒体はこれらの例に限定されるものではない。
【００１７】
図示されている例におけるＩ／Ｏバス１１６にはオーディオアダプタ１２４も接続されており、このオーディオアダプタ１２４には音声を再生するためにスピーカ（図示せず）を接続することができる。キーボード／マウスアダプタ１１８は、例えばマウス、トラックボール、トラックポインタ等のポインティングデバイス（図示せず）のためのコネクションを提供する。
【００１８】
当業者には、図１に図示されているハードウェアを特定の実施の形態のために変更できることは明らかである。例えば、他の周辺装置、例えば光学ディスクドライブ等も付加的に使用することができるか、又は、図示されているハードウェアの代わりに使用することができる。図示されている実施例は説明を目的としたものに過ぎず、本発明に関する構造的な制限を暗示することを意図したものではない。
【００１９】
本発明の実施の形態によるデータ処理システムは、グラフィカルユーザインタフェースを使用するオペレーティングシステムを含んでいる。オペレーティングシステムは複数のディスプレイウィンドウをグラフィカルユーザインタフェースにおいて同時に表示することができ、各ディスプレイウィンドウは種々のアプリケーションへのインタフェース又は同一のアプリケーションの種々のインスタンスへのインタフェースを提供する。ユーザはポインティングデバイスを介してグラフィカルユーザインタフェースにおけるカーソルを操作することができる。カーソルの位置を変更することができる、及び／又は、カーソルの位置として所望のレスポンスを起動させるために行なわれたイベント、例えばマウスボタンのクリックが考えられる。
【００２０】
商用の種々のオペレーティングシステムの内の１つ、例えばＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）のバージョン（レドモンド（ワシントン州）に位置するＭｉｃｒｏｓｏｆｔ社の製品）を、適切に変更されている場合には使用することができる。オペレーティングシステムは、本明細書において説明する本発明に従い修正又は作成されている。
【００２１】
ＬＡＮ／ＷＡＮ／無線アダプタ１１２を（データ処理システム１００の一部ではない）ネットワーク１３０に接続することができ、このネットワーク１３０として、当業者には周知であるような、公共又は私用のあらゆるデータ処理システムネットワーク、又は、ネットワークの組み合わせが考えられ、例えばインターネットが含まれる。データ処理システム１００はネットワーク１３０を介してサーバシステム１４０と通信することができ、このサーバシステム１４０もまたデータ処理システム１００の一部ではないが、例えば、別個のデータ処理システム１００として実施することができる。
【００２２】
種々の実施形態には、物理的属性のかわりに、機能的範囲をチェックおよびロックし、かつ、ネットワークトラフィックおよびデータベーストラフィックを低減するためにこれらの処理を利用するためのシステムおよび方法が含まれる。
【００２３】
概略的に記載すれば、ＰＤＭシステムへの適用の際、適用により、オブジェクト（ｙ）上のタイプ（ｘ）のデータの更新が試みられ、システムは当該タイプについて特定的なロックを要求し、タイプ（ｘ）が当該オブジェクトについて未だロックされていなければ、ロックを可能にするのみである。これによって、たとえば、同じオブジェクト（ｘ）上にない全てのタイプ（ｘ）に対する異なるユーザ（ｚ）による並行更新が可能となる。
【００２４】
種々の実施形態では、オブジェクト（ｙ）は、ＰＤＭシステムにおいて実現されたスケジュール管理システムにおけるタスクであり、タスクには異なるタイプ（ｘ）の情報が含まれる。スケジューリングの実施形態では、タイプにはスケジュールタイプ、タスクスケジューリングデータ、割り当て、依存性、スケジュールとタスクの成果物、タスク原価計算情報、タスク実行情報、スケジュールメンバーシップ、通知、カレンダなどが含まれる。
【００２５】
ロックを開状態に維持することにより、データインテグリティを強化するために中間的な更新をサーバに送る必要がない。本明細書中に記載の処理には、編集が完了し、ロックが解放された後の、サーバ上のデータの遅延更新が含まれる。
【００２６】
図２は、選択的ロックを用いた高速データ編集のための、１つ以上のＰＤＭシステム１００により実行可能な、開示の実施形態にかかる処理のフローチャートを示す。この処理によれば、本開示における、タイプに基づくロックを用いた、タイプ（ｘ）データへの大きな全体的変更が行われる。
【００２７】
本システムは特定タイプのデータについてのロック要求を受け付ける（ステップ２０５）。本明細書中で用いられるとき、「受け付ける」とは、記録媒体からのロード、他のシステムまたは処理からの受信、ユーザとの対話を介した受け付けなどを含む。これは、本明細書中に記載されるように、明示的なロック要求または暗黙のロック要求であってよい。
【００２８】
ロック要求に応じて、システムはロック要求を処理し、このロック要求には、少なくとも幾つかの場合、複数のデータオブジェクトについての特定タイプのデータをロックすることが含まれる（ステップ２１０）。
【００２９】
システムは複数のデータオブジェクトの少なくとも１つについての特定タイプのデータに対する少なくとも１つの変更を受け付ける（ステップ２１５）。もちろん、変更がない場合には、このステップは省略される。
【００３０】
システムは、特定タイプのデータを変更することにより、受け付けた変更にしたがってデータオブジェクトを更新し、セーブする。複数のオブジェクトが特定タイプのデータに対する変更でもって全て更新される場合もある。これには、受け付けた変更に従って、複数のオブジェクトに対する同一の変更をなすことが含まれるが、これに限定されない。変更がない場合、データオブジェクトは更新およびセーブされる必要は無く、このステップは省略可能である。
【００３１】
システムは特定タイプのデータについての明示的なアンロック要求を受け付けることができる（ステップ２２５）。
【００３２】
アンロック要求に応じて、システムは、ロック要求を処理し、このロック要求には、少なくとも場合により、複数のデータオブジェクトについての特定タイプのデータのアンロックが含まれる（ステップ２３０）。
【００３３】
図３は、明示的なロック要求を処理するために１つ以上のＰＤＭシステムによって実行可能な、開示の実施形態にかかる処理のフローチャートを示す。
【００３４】
システムは、特定タイプのデータについての明示的なロック要求を受け付ける（ステップ３０５）。要求はたとえばユーザから受け付けられる。この例において、要求は、オブジェクト（ｙ）においてデータタイプ（ｘ）をロックするものであり、ユーザ（ｚ）によりなされる。
【００３５】
システムは特定タイプのデータが当該オブジェクトについてすでにロックされているかを判別する（ステップ３１０）。このステップには、特定タイプのデータが、ユーザが要求をなすことにより当該オブジェクトについてすでにロックされているか判別することが含まれてもよい。この例では、システムは、オブジェクト（ｙ）におけるデータタイプ（ｘ）がユーザ（ｚ）によりすでにロックされているか判別する。
【００３６】
すでにロックされている場合、処理は終了する（ステップ３１５）。というのも、要求されたロックはすでに存在しているからである。この場合、このステップには、ユーザが要求をなすことによりタイプがすでにロックされているという応答を返すことが含まれ、または、タイプが異なるユーザによりすでにロックされている場合にエラーを返すことが含まれてもよい。
【００３７】
システムは、要求に応答する変更が許されるか判別する（ステップ３２０）。これには、たとえば、要求するユーザ（ｚ）がオブジェクト（ｙ）におけるタイプ（ｘ）に対する変更を行うことが許されるか判別することが含まれる。
【００３８】
変更が許されない場合、処理は終了する（ステップ３２５において）。このステップにはエラーを返すことが含まれてもよい。変更が許される場合、システムは要求に従ってオブジェクト（ｙ）におけるデータタイプ（ｘ）をロックする（ステップ３３０）。種々の実施形態では、オブジェクトの他のデータタイプはロックされない。
【００３９】
図４は、開示の実施形態にかかる処理のフローチャートを示し、これは、明示的なアンロック要求を処理するために、１つ以上のＰＤＭシステム１００により実行可能である。
【００４０】
システムは、特定タイプのデータについての明示的なアンロック要求を受け付ける（ステップ４０５）。要求は、たとえばユーザから受け付けられる。この例では、要求はオブジェクト（ｙ）におけるデータタイプ（ｘ）をアンロックするものであり、ユーザ（ｚ）によりなされる。
【００４１】
システムは、特定タイプのデータが当該オブジェクトについて現在ロックされているか判別する（ステップ４１０）。このステップには、たとえば、ユーザが要求をなすことにより当該オブジェクトについてすでに特定タイプのデータがロックされているか判別することが含まれる。この例では、システムは、オブジェクト（ｙ）におけるデータタイプ（ｘ）がユーザ（ｚ）によってすでにロックされているか判別する。これは、たとえば、全てのオブジェクト（ｙ）について一度行われる。
【００４２】
ユーザによりすでにロックされている場合、システムはオブジェクトにおけるタイプをアンロックする（ステップ４１５）。その後処理は終了する（ステップ４２０）。これは、たとえば、全てのオブジェクト（ｙ）について一度行われる。
【００４３】
特定タイプのデータが、ユーザがなした要求により当該オブジェクトについてすでにロックされていない場合、処理は終了する（ステップ４２５）。このステップには、ユーザが当該オブジェクトについて当該タイプをアンロックすることが許されないというエラーを返すことが含まれても良い。
【００４４】
図５は、開示の実施形態にかかる処理のフローチャートを示し、これは、暗黙のロック要求を処理するために１つ以上のＰＤＭシステム１００により実行可能である。
【００４５】
システムはオブジェクトについて特定タイプのデータを更新する要求を受け付ける（ステップ５０５）。この要求はたとえばユーザから受け付けられる。この例では、要求はオブジェクト（ｙ）におけるデータタイプ（ｘ）を更新するものであり、ユーザ（ｚ）によりなされる。
【００４６】
システムは、特定タイプのデータが当該オブジェクトについてすでにロックされているか判別する（ステップ５１０）。このステップには、ユーザがなした要求により、特定タイプのデータがすでに当該オブジェクトについてすでにロックされているか判別することも含まれてもよい。この例では、システムは、オブジェクト（ｙ）におけるデータタイプ（ｘ）がすでにユーザ（ｚ）によりロックされているか判別する。これはたとえば全てのオブジェクト（ｙ）について一度行われる。
【００４７】
データタイプが当該ユーザについてロックされていない場合、システムは要求された更新を処理し（ステップ５４５）、処理を終了する（ステップ５４０）。これは、たとえば全てのオブジェクト（ｙ）について一度行われる。ただし、データタイプがすでに当該ユーザについてロックされていた場合には、更新後に自動的にアンロックされない。このような場合、ステップ５１５〜５３５に記載の処理はスキップまたは省略可能である。
【００４８】
システムはタイプおよびオブジェクトが異なるユーザにより現在ロックされているか判別する（ステップ５１５）。ロックされている場合、処理は終了する（ステップ５４０）。このステップには、ユーザにエラーまたは他の応答を返すことが含まれてもよい。
【００４９】
システムは、要求された更新が許されるか判別する（ステップ５２０）。これには、要求するユーザ（ｙ）がオブジェクト（ｙ）におけるタイプ（ｘ）に対する変更を行うことが許されるか判別することが含まれてもよい。
【００５０】
変更が許されない場合、処理は終了する（ステップ５４０）。このステップには、エラーを返すことが含まれても良い。
【００５１】
変更が許される場合、システムは、要求に応じてオブジェクト（ｙ）におけるデータタイプ（ｘ）をロックする（ステップ５２５）。システムは、要求された更新を処理する（ステップ５３０）。ステップ５３０および５４５は、同様に実行可能であり、ここではわかりやすいように別にされている。
【００５２】
その後、システムはオブジェクト（ｙ）におけるデータタイプ（ｘ）をアンロックし（ステップ５３５）、処理は終了する（ステップ５４０）。これは全てのオブジェクト（ｙ）について一度行われても良い。
【００５３】
種々の実施形態では、特定タイプのデータにロックが適用される場合、これらの部分のみがユーザに対してロックされ、他のユーザについては許されない一方、複数のオブジェクトにおける他のデータタイプが依然として更新が許される。すなわち、複数のオブジェクトについての異なるタイプのデータが他の処理またはユーザによって更新可能である一方、特定タイプのデータはロックされている。
【００５４】
本明細書中で用いられる種々の処理は、種々のデータの高速更新のための単一のシステムにおいて用いることができ、複数のＰＤＭシステムによってともに用いることができ、これにより、有利には、複数のシステムおよびそのユーザは、現在ロックされていない全てのデータタイプを同時に更新できる。
【００５５】
多くの用途において、異なるタイプの更新は保持されるオブジェクトの異なる部分に影響する。本明細書中に記載の処理によれば、データインテグリティの維持が可能となる一方、物理的境界ではなく論理的境界に基づいてオブジェクトの異なる範囲の並行更新が可能となる。
【００５６】
図６は、例示的なスケジュールの文脈における、本明細書に記載される技術を用いた並行更新の例の簡略化されたブロック図を示す。
【００５７】
この図において、ＰＤＭシステム６００は、タスクオブジェクト６１０を保持し、保存する。タスクオブジェクト６１０は、２つのタイプのデータ、すなわち、タスクスケジューリングデータ６１２およびタスク実行データ６１４を含む。タスクスケジューリングデータおよびタスク実行データは、限定的な実施例では無く、本明細書中に記載の処理は、同様に他のタイプのデータにも適用可能である。
【００５８】
第１の処理またはユーザ６２０、たとえばスケジュールのコーディネータは、特定のデータタイプ、たとえばタスクオブジェクト６１０上のタスクスケジューリングデータ６１２についてのロックを要求する。これにより、第１のユーザ６２０はタスクスケジューリングデータ６１２に対する排他的権利を得ることができる。
【００５９】
同時に、第２のユーザまたは処理６３０、たとえばより低い許可が割り当てられたユーザは、同じタスクオブジェクト６１０上のタスク実行データ６１４を更新することが許される。というのも、タスクスケジューリングデータ６１２のみが第１のユーザ６２０によってロックされているからである。第１のユーザ６２０および第２のユーザ６３０はＰＤＭシステム６００と同じかまたは異なるシステム上にあってよく、ＰＤＭシステム６００に対してそれぞれローカルまたはリモートであってよい。
【００６０】
本明細書中で用いられる場合、「オブジェクト」はチェックされるデータオブジェクトをいう。これは物理オブジェクトまたはオブジェクトの集約された群などの表現であってよい。「タイプ」とはなされる更新のタイプをいう。１つのオブジェクトは複数の独立なタイプの更新を含んで良い。「全体的ロック」とは、オブジェクト全体（またはオブジェクトの集合）に適用されるロックをいう。
【００６１】
他に記載しない限り、上述の種々の処理、アクションおよびステップは、種々の実施形態において、同時に、連続的に、異なる順で、または、省略されてよい。
【００６２】
当業者であれば、単純且つ明確にするために、本発明を用いた使用に適した全てのデータ処理システムの完全な構造及び動作は本明細書において図示又は説明していないことが分かる。その代わりに、本発明に固有のデータ処理システム又は本発明の理解のために必要なデータ処理システムのみを図示及び説明している。データ処理システム１００のその他の部分の構造及び動作は、当業者には公知である現行の種々の任意の実施の形態に従うもので良い。
【００６３】
本明細書には完全に機能的なシステムの文脈での記述が含まれているが、当業者であれば、本発明のメカニズムの少なくとも一部は種々の任意の形態の機械使用可能、コンピュータ使用可能又はコンピュータ読み出し可読な媒体に記録された命令の形態で配布できること、また本発明はその配布物を実際に実行するために使用される特定タイプの命令又は信号が記録されている媒体又は記憶媒体に関係なく同様に適用されることを理解するであろうということを言及することは重要である。それらの命令は、実行されれば、データ処理システムに本明細書において説明した方法を実施させることができる。機械使用可能／機械読み出し可能又はコンピュータ使用可能／コンピュータ読み出し可能な媒体の例には、不揮発のハードコーディングタイプの媒体、例えば読み出し専用メモリ（ＲＯＭ）又は電気的に消去及びプログラミング可能な読み出し専用メモリ（ＥＥＰＲＯＭ）及びユーザ記録可能なタイプの媒体、例えばフロッピーディスク、ハードディスクドライブ及びコンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）又はディジタル多目的ディスク（ＤＶＤ）が含まれる。
【符号の説明】
【００６４】
１００  データ処理システム、ＣＡＤデータ処理システム
１０２  プロセッサ
１０４  キャッシュ／ブリッジ
１０６  ローカルシステムバス
１０８  主メモリ
１１０  グラフィックアダプタ
１１１  ディスプレイ
１１２  ローカルエリアネットワーク／ワイドエリアネットワーク／無線アダプタ
１１４  拡張バスインタフェース
１１６  入力／出力バス
１１８  キーボード／マウスアダプタ
１２０  ディスクコントローラ
１２２  Ｉ／Ｏアダプタ
１２４  オーディオアダプタ
１３０  ネットワーク
１４０  サーバシステム
２０５  特定タイプのデータについてのロック要求を受け付け
２１０  複数のデータオブジェクトについての特定タイプのデータをロック
２１５  特定タイプのデータに対する少なくとも１つの変更を受け付け（任意選択的）
２２０  受け付けた変更にしたがってデータオブジェクトを更新し、セーブ
２２５  特定タイプのデータについての明示的なアンロック要求を受け付け
２３０  アンロック要求に応じてロック要求を処理
３０５  特定タイプのデータについてのロック要求を受け付け
３１０  特定タイプのデータが当該オブジェクトについてすでにロックされているか判別
３１５  すでにロックされている場合、処理を終了
３２０  要求に従う変更が許されているが判別
３２５  許されていない場合、処理は終了
３３０  許されている場合、要求にしたがってオブジェクトにおけるデータタイプをロック
４０５  特定タイプのデータについての明示的なアンロック要求を受け付け
４１０  特定タイプのデータが現在ロックされているか判別
４１５  ユーザによってすでにロックされている場合、オブジェクトにおけるタイプをアンロック
４２０  処理を終了
４２５  特定タイプのデータがユーザになした要求により当該オブジェクトについてすでにロックされていない場合、処理を終了
５０５  オブジェクトについての特定タイプのデータを更新するための要求を受け付け
５１０  特定タイプのデータが同一ユーザにより当該オブジェクトについてすでにロックされているか判別
５１５  当該オブジェクトのタイプが、異なるユーザにより現在ロックされているか判別
５２０  ステップ５１５においてｙｅｓの場合、要求された更新を許可
５２５  ステップ５２０においてｙｅｓの場合、要求に従ってオブジェクトにおけるデータタイプをロック
５３０  要求された更新を処理
５３５  オブジェクトにおける当該データタイプをアンロック
５４５  特定タイプのデータが当該ユーザについてすでにロックされている場合、要求された更新を処理
６００  ＰＤＭシステム
６１０  タスクオブジェクト
６１２  タスクスケジューリングデータ
６１４  タスク実行データ
６２０  第１のユーザ、第１の処理
６３０  第２のユーザ、第２の処理
ＣＡＤ  コンピュータ支援設計
ＰＣＩ  ペリフェラルコンポーネントインターコネクト
ＰＤＭ  製品データ管理
ＰＬＭ  製品ライフサイクル管理
ｙ  オブジェクト
ｘ  オブジェクトタイプ
ｚ  ユーザ
【図１】
0005855235.tif 000002
【図２】
0005855235.tif 000003
【図３】
0005855235.tif 000004
【図４】
0005855235.tif 000005
【図５】
0005855235.tif 000006
【図６】
0005855235.tif 000007