JP2004038965A - 拡張可能なオンデマンドプロパティシステム - Google Patents

拡張可能なオンデマンドプロパティシステム Download PDF

Info

Publication number
JP2004038965A
JP2004038965A JP2003178498A JP2003178498A JP2004038965A JP 2004038965 A JP2004038965 A JP 2004038965A JP 2003178498 A JP2003178498 A JP 2003178498A JP 2003178498 A JP2003178498 A JP 2003178498A JP 2004038965 A JP2004038965 A JP 2004038965A
Authority
JP
Japan
Prior art keywords
property
value
computer
relationship
expression
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.)
Granted
Application number
JP2003178498A
Other languages
English (en)
Other versions
JP5279979B2 (ja
Inventor
Mark J Finocchio
マーク ジェイ.フィノッチオ
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 JP2004038965A publication Critical patent/JP2004038965A/ja
Application granted granted Critical
Publication of JP5279979B2 publication Critical patent/JP5279979B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/4492Inheritance

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】オブジェクトのプロパティを処理するシステムおよび方法を提供すること。
【解決手段】より具体的には、このシステムおよび方法は、プロパティ間の関係を形式的に表現する依存関係機構を提供する。この関係は、グローバルまたはローカルに適用することができる。依存関係機構を使用して、このプロパティシステムはプロパティ間の関係を監視することができ、異なるプロパティ間の循環性を実行中に検出することができる。このシステムおよび方法はまた、プロパティのうちのいずれかについての値を計算する評価機構を提供する。プロパティシステムがオンデマンドであるので、ローカル記憶域に値を格納する必要がない。依存関係機構と評価機構は拡張可能であり、それにより、プロパティシステムが直接的関係、継承、逆継承、プロパティシート、カプセル化などのどんなタイプの関係もモデル化することが可能となる。
【選択図】 図2

Description

【背景技術】
【0001】
今日、大部分のアプリケーションはオブジェクトを使用して書かれている。このオブジェクトは、第3者から供給を受けることができ、またはあるアプリケーション向けに特に開発することができる。オブジェクトを使用することにより、コードを容易に再利用することができ、および変更を行うことなく多数の異なるアプリケーションにコードを組み込むことができる。加えて、変更が必要な場合、オブジェクトの機能を継承する新しいオブジェクトを作成することができる。次いで、必要に応じてその新しいオブジェクトに新しい特定の機能を追加することができる。このように既存のオブジェクトを再利用および修正できることにより、新しいアプリケーションの開発時間が削減され、時には数ヶ月から数週間にまで削減されることもある。
【0002】
しかし、オブジェクトの使用が非常に一般的になり、有益であるが、このオブジェクト中のプロパティを処理する現在の手法はいくつかの欠点を有する。例えば、オブジェクト中の第1のプロパティが別のオブジェクト中の第2のプロパティに依存する場合、開発者は、第2のプロパティを監視(すなわち聴取)し、それが変化したときに第1のプロパティを変更するコードを書かなければならない。この機能を実行する単純化したコードの一部は、以下のようなものである。
【0003】
Figure 2004038965
【考案の開示】
【発明が解決しようとする課題】
【0004】
上記のように、このコールバック関数は、第1のプロパティ(例えばButton1 Pressed)が変化したときはいつでも、第2のプロパティ(すなわちBackgroundColor)についての値を返す。したがって、第1のプロパティの状態が変化するごとに、コールバック中に値(例えば、赤色または灰色)が計算され、第2のプロパティ内に格納される。この技法は第2のプロパティについてのオブジェクト内に記憶域を必要とする。この記憶域は、第2のプロパティについての現状態を保つのに使用される。
【0005】
開発者はこれらのオブジェクトを別々に開発することができるので、様々なオブジェクト内のプロパティの一部の間で循環が生じる可能性がある。例えば、上記の例で続けると、Button1 Pressedプロパティの状態を変更する、backgroundColorプロパティについてのコールバック関数を追加することができる。backgroundColorが変化したためにbutton pressedプロパティの状態を変更するコールバック関数を有することはあまり現実的ではなく、通常はアプリケーションで生じないが、2つのプロパティが互いの状態を変更するときに生じる問題を示す助けになる。実際のアプリケーションでは、通常、2つのパラメータは互いの状態を直接変更しないが、他の従属プロパティにより、この単純な例によって示される循環性が引き起こされる。したがって、上記の例が与えられた場合、実行時に、2つのプロパティの一方が状態を変更すると、両者は無期限に状態を変更し続けることになる。その場合、適切なオペレーションを行う前にこの循環性の問題を識別し、訂正しなければならない。遺憾ながら、プロパティ変化のあらゆる組合せをテストすることは非常に難しい。したがって、この循環性の問題の一部が、ソフトウェア製品をリリースした後になって表面化する可能性がある。
【0006】
少なくともこれらの制約のために、オブジェクトのプロパティを処理する現在のモデルは理想的ではない。
【0007】
本発明は、従属プロパティに関連するオペレーションが呼び出されるまで、第1プロパティの変化が従属プロパティに影響を及ぼさないようにオブジェクトのプロパティを処理するシステムおよび方法を目的とする。
【課題を解決するための手段】
【0008】
したがって、オンデマンドタイプのプロパティシステムが提供される。より具体的には、このシステムおよび方法は、プロパティ間の関係を形式的に表現する依存関係メカニズムを提供する。この関係は、グローバルまたはローカルに適用することができる。依存関係メカニズムを使用して、このプロパティシステムはプロパティ間の関係を監視することができ、異なるプロパティ間の循環性を実行中に検出することができる。このシステムおよび方法はまた、登録されたプロパティのうちのいずれかについての値を計算する評価メカニズムを提供する。依存関係メカニズムと評価メカニズムは共に拡張可能であり、それにより、プロパティシステムが直接的関係、継承、逆継承、プロパティシート、カプセル化などのどんなタイプの関係もモデル化することが可能となる。
【0009】
本発明の一利点は、ローカル記憶域に値を格納する必要がないことである。加えて、プロパティシステムがオンデマンドであるので、本発明のプロパティシステムは、速度やメモリ性能に関して、よりスケーラブルである。
【0010】
本発明の別の利点は、開発中のプロパティを適切に処理するための複雑なリスナやコールバック関数をもはや開発者が書く必要がないことである。
【0011】
本発明のさらに別の利点は、オブジェクト内のプロパティ用の記憶域の管理がより効率的になり、便利になることである。各オブジェクトインスタンスはもはや、そのオブジェクト内に各プロパティについてのローカル記憶域を有する必要がない。
【0012】
本発明のさらに別の利点は、プロパティシステムが実行時にプロパティ間の循環性を検出し、この循環性を遮断することである。
【発明を実施するための最良の形態】
【0013】
簡潔に述べると、本発明はオンデマンドプロパティシステムを提供する。このオンデマンドプロパティシステムは、従属プロパティに関連するオペレーションが呼び出されるまで、第1プロパティの変化が従属プロパティに影響を及ぼさないようにオブジェクトのプロパティを処理する。より具体的には、このシステムおよび方法は、プロパティ間の関係を形式的に表現する依存関係メカニズムを提供する。この関係は、グローバルまたはローカルに適用することができる。依存関係メカニズムを使用して、このプロパティシステムはプロパティ間の関係を監視することができ、異なるプロパティ間の循環性を実行中に検出することができる。このシステムおよび方法はまた、プロパティのうちのいずれかについての値を計算する評価メカニズムを提供する。プロパティシステムがオンデマンドであるので、ローカル記憶域に値を格納する必要がない。依存関係メカニズムと評価メカニズムは拡張可能であり、それにより、プロパティシステムが直接的関係、継承、逆継承、プロパティシート、カプセル化などのどんなタイプの関係もモデル化することが可能となる。本発明の上記その他の態様は、以下の詳細な説明を読んだ後に明らかになるであろう。
【0014】
図1を参照すると、本発明を実施する1つの例示的システムは、コンピューティング装置100などのコンピューティング装置を含む。非常に基本的な構成では、コンピューティング装置100は一般に、少なくとも1つのプロセッサ102およびメモリ104を含む。コンピューティング装置の厳密な構成およびタイプに応じて、システムメモリ104は、揮発性(RAMなど)、不揮発性(ROM、フラッシュメモリなど)、またはその2つの組合せとすることができる。システムメモリ104は、一般にオペレーティングシステム105、および1つまたは複数のプログラムモジュール106を含み、およびプログラムデータ107を含むことができる。プログラムモジュール106の例には、ワシントン州レドモンドのMicrosoft CorporationによるVisual Studio IntelliSenseや、オブジェクトライブラリを使用する他のソフトウェアプログラミング環境が含まれる。加えて、プログラムモジュール106には、ソフトウェアプログラミング環境を使用して作成されたソフトウェアアプリケーションが含まれる。これらのソフトウェアアプリケーションがプロセッサ102上で実行されるとき、プロパティエンジンが、本発明によるソフトウェアアプリケーションを処理する。プロパティエンジンはオペレーティングシステム105の一部でよく、または別のプログラムモジュール106でよい。このコンピューティング装置100の基本的構成を、図1では破線108内の構成要素によって示す。
【0015】
コンピューティング装置100は、追加の特徴または機能を有することができる。例えばコンピューティング装置100は、例えば磁気ディスク、光ディスク、あるいはテープなどの(取外し可能および/または取外し不能な)追加のデータ記憶装置も含むことができる。図1では、このような追加の記憶装置をリムーバブル記憶装置109およびノンリムーバブル記憶装置110で示す。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための何らかの方法または技術で実装された、揮発性/不揮発性のリムーバブル/ノンリムーバブル媒体を含むことができる。システムメモリ104、リムーバブル記憶装置109、およびノンリムーバブル記憶装置110はすべて、コンピュータ記憶媒体の例である。コンピュータ記憶媒体には、限定はしないが、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリ技術、CD−ROM、デジタルバーサタイルディスク(DVD)、または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶装置、あるいは、所望の情報を記憶するのに使用することができ、コンピューティング装置100でアクセスすることができる他のどんな媒体も含まれる。このようなどんなコンピュータ記憶媒体も装置100の一部とすることができる。コンピューティング装置100はまた、キーボード、マウス、ペン、音声入力装置、タッチ入力装置などの入力装置112も含むことができる。ディスプレイ、スピーカ、プリンタなどの出力装置114を含めることもできる。これらの装置は当技術分野で周知であり、ここで詳細に論じる必要はない。
【0016】
コンピューティング装置100はまた、ネットワーク経由などでその装置が他のコンピューティング装置118と通信することを可能にする通信接続116も含むことができる。通信接続116は通信媒体の一例である。通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータにより、搬送波または他の移送メカニズムなどの被変調データ信号として実施することができ、その通信媒体にはどんな情報送達媒体も含まれる。「被変調データ信号」という用語は、信号の特性集合のうちの1つまたは複数を有する信号、または情報を符号化するように変化する信号を意味する。例えば、限定はしないが、通信媒体には、ワイヤードネットワークまたはダイレクトワイヤード接続などのワイヤード媒体、ならびに音響媒体、RF媒体、赤外線媒体、および他のワイヤレス媒体などのワイヤレス媒体が含まれる。本明細書で使用するコンピュータ可読媒体という用語は、記憶媒体と通信媒体のどちらも含む。
【0017】
図2は、本発明によるプロパティシステムの1つの例示的実装を説明する際に使用するプロパティ関係の図式的表現である。このプロパティ関係は、直接的関係210および継承関係220を含む。概略として、直接的関係210のプロパティ変化が、最終的に継承関係220内のプロパティに影響を及ぼす。図2にモデル化したプロパティ関係はプロパティ間の直接的関係および継承関係を表すが、本発明のプロパティシステムを、逆継承、データバインディング、カプセル化、プロパティシートなどの他の関係をモデル化するのに使用できることを当業者なら理解するであろう。したがって、図2にモデル化した関係を、本発明の機能の非限定的な例として示す。
【0018】
直接的関係210は、2つのノード212および214を含む。以下の議論では、ノードとは、プロパティに作用させるためにプロパティエンジンに対して2つの共通インターフェースを公開するオブジェクトを指す。簡単に言えば、図4と共に後に詳細に説明するが、2つの共通インターフェースは、照会機能と1組の機能を含む。ノード212は、ボタンに関するPressedプロパティなどのProperty1 216を含む。ノード214は、ボタンの背景についてのColorプロパティなどのProperty2 218を含む。始めに説明したように、従来のプロパティシステムは、Property1 216を監視するリスナ機能を実装し、Property1 216が変化したとき、従来のプロパティシステムはそれに応じてProperty2 218を更新する。
【0019】
しかし、対照的に本発明のプロパティシステムは、Property1 216とProperty2 218の間の関係をモデル化する。この関係の場合、ノード212はノード214に対するソースとして指定される。ノード214は従属部と呼ばれる。一般には、ソースは別のノードに影響を及ぼすノードを表す。従属部は、別のノードの影響を受けるノードを表す。上記で示した例では、アプリケーション内の任意のオブジェクトは、Property2 218に作用させるために共通インターフェースの一方を使用することができる。簡単に言えば、後で図5および6と共にそれぞれ詳細に説明するgetValue()メソッドおよびsetValue()メソッドにより、すべてのノードによって共通インターフェースが提供されることが保証される。この共通インターフェースにより、プロパティエンジンおよび任意のオブジェクトが、共通インターフェースを使用して所望のプロパティにアクセスすることが可能となる。例えば、照会(すなわちgetValue)は、そのソースのうちの1つから、関係のある値を最終的に得る。図2に示す直接的関係210では、このソースはノード212である。したがって、ノード214内にProperty2 218のためのローカル記憶域を必要とせずに、所望のオペレーションがオンデマンドで実行される。
【0020】
継承関係220は、複数のノード222〜230を含む。ノードは、リーフノード(例えばノード224〜230)中のプロパティがリーフノードの継承プロパティである継承Property2 234〜240それぞれのためのローカル記憶域を必ずしも有さないことを除き、継承のために従来型の階層式に構築される。むしろ本発明によれば、これらのプロパティ234〜240についての値を照会および設定する2つの共通インターフェースを使用して、プロパティにオンデマンドに作用させる。
【0021】
直接的関係210中のノード214と、継承関係220中のノード222が実際には同じノードであることに気付くであろう。このノードを別々に図示したのは、単に本発明がモデル化することのできる2つのタイプの関係を説明するのに好都合であるからに過ぎない。しかし、ノード214およびノード222は実際には同じであるので、アプリケーション内の任意のオブジェクトは、値を照会するなど子プロパティ(例えばProperty2 240)に作用させるために、共通インターフェースの一方を使用することができる。この照会により、ノードのうちの1つから最終的に値が得られる。値の取得元のノードは直接的ソースでよく、またはノード230の直接的ソース(すなわちノード226)から間接的に導出された間接的ソースでよい。一部のノード(例えばノード226)がノード222に対する従属部としてのラベルであっても、その同じノードが別のノードに対するソースとなれることを当業者なら理解するであろう。例えば、ノード226は従属ノード230に対するソースである。これらのすべての依存関係は個々にモデル化することができる。
【0022】
1つのノードがいくつかのソースを有することができ、その1つのノードがそれ自体、複数のノードに対するソースとなれることを当業者なら理解するであろう。これらの関係はそれぞれ、本発明に従ってモデル化される。しかし、関係がモデル化された後は、ソースのうち1つに対して、別のソースをそのソースに追加するなどの変更が行われた場合、元のノードを修正する必要はない。むしろ本発明によれば、元のノードはこの変更をほとんど認識せず、プロパティエンジンが、その変更に影響を及ぼすように必要な基礎的メカニズムを実行する。これにより、開発者に大きな利点がもたらされる。
【0023】
直接的関係および継承関係をモデル化するときのプロパティシステムのオペレーションを概略的に説明したので、次に基礎的メカニズムを説明する。一般には、プロパティシステムは、他のプロパティに影響を及ぼす、あるプロパティに対する変更をプロパティエンジンが認識できるように、プロパティ間のこれらの関係を記述する依存関係メカニズム(例えばreportDependentメソッド)を提供する。加えて、プロパティシステムは、作用を受けているプロパティを評価する評価メカニズム(例えばevaluateメソッド)を提供する。本発明の一実施形態では、これらのメカニズムは共に、クラス(例えばExpressionクラス)を通じて提供される。
【0024】
図3は、例示的なExpressionクラスの図式的表現である。このExpressionクラスは、コンストラクタ302、evaluateメソッド304、reportDependentメソッド306、およびsetValueメソッド308を含む。加えて、Expressionクラスは、ソースがデータベースフィールドなどの外部であるときのための外部reportDependentメソッド310を含むことができる。コンストラクタ302は、コンストラクタ302がexpressionオブジェクトを作成している対象の従属プロパティに対するソースを指定するソースパラメータ303を取る。したがってこのexpressionクラス400は、reportDependentメソッド306を介して依存関係メカニズムを提供し、Evaluateメソッド304を介して評価メカニズムを提供する。開発者は、登録されたパラメータごとにreportDependentメソッド306およびEvaluateメソッド304を上書きする。evaluateメソッド304、reportDependentメソッド306、およびsetValueメソッド308がそれぞれ、一方がノードを指定し、他方がプロパティIDを介してプロパティを指定する少なくとも2つのパラメータを有することに気付くであろう。
【0025】
図2の継承関係を用いて続けると、1つの例示的Evaluateメソッド304は以下のようなものでよい。
Figure 2004038965
【0026】
したがって、この上書きされたEvaluateメソッド304は、パラメータとして渡されたオブジェクトの親からの値を返そうと試みる。ノードと、評価中の従属部に関連するpropertyIDがパラメータとして渡される。次いで値がそのソースから計算される。上記の継承の例では、そのソースは親を含む。しかし、親もモデル化され、上書きされたevaluateメソッドを有するので、評価プロセスは、最終的に値が返されるまで、ツリーの上方に向かって、他のソースまで続く可能性がある。図2では、getValueがノード212に対して実行されるときにこのことが生じる。値を得るための検索経路を決定する責任を開発者が負うことを当業者なら理解するであろう。例えば上記の継承の例では、ノード222に関連するevaluationメソッドはデフォルト値を提供することができる。したがってexpressionクラスにより、どこから値を得るべきかを決定し、およびどのシーケンスを検索するかを決定する際に、評価メカニズムを非常に拡張的にすることが可能となることを当業者なら理解するであろう。
【0027】
reportDependentメソッド306もまた、形式的な依存関係をプロパティシステムに対して指定するために開発者により上書きされる。簡単に言えば、図6および7の流れ図と共により詳細に説明するが、reportDependentメソッド306は、変更されたソースを有する各従属部を無効にすることを担う。従属部のうちの1つがソースである場合、そのソースに対するreportDependentメソッドが起動され、その従属部が無効にされる。したがって、reportDependentプロセスは、変更の影響を受けるすべての関係を無効にするまで再帰的に続行する。一実施形態では、プロパティエンジンによって提供されるインターフェース(例えばNode.MarkDependent(PropertyID))によって従属部が無効とマークされる。以下は、図2で説明した継承関係についての例示的な上書きされたreportDependentメソッド306である。
【0028】
【表1】
Figure 2004038965
【0029】
【表2】
Figure 2004038965
【0030】
したがって、この例示的な上書きされたreportDependentメソッド306では、あらゆる子に関するProperty2が無効にされる。加えて、ノードの親プロパティが変化した場合、あらゆる子に関する、継承されたあらゆるプロパティを無効とマークしなければならない。本発明の別の改良では、一実施形態において、いくつかのプロパティをすぐに無効にする特別な無効化メソッドが提供される。
【0031】
前述のように、プロパティシステムがこの形式的依存関係を提供するために、特定の共通APIが各ノードで利用可能にされる。これらの共通APIにより、プロパティエンジンおよび任意のオブジェクトが共通インターフェース(例えばAPI)を使用して所望のプロパティにアクセスすることが可能となる。
【0032】
図4は、本発明による、特定の共通インターフェースをノードに提供するプログラミングモデル400の図式的表現である。以下の議論では、オブジェクトという用語は、クラスのインスタンスを指すのに用いる。各オブジェクトについて、オブジェクトがインスタンス化される元のクラスが存在することを当業者なら理解するであろう。さらに、オブジェクトは複数のクラスから導出された機能を有することができる。プログラミングモデル400はノードクラス402を提供する。プロパティエンジンはノードクラス402について認識している。ノードクラス402は、setValue()メソッド406およびgetValue()メソッド408を含む。setValue()メソッド406およびgetValue()メソッド408は、各ノードによって提供される共通インターフェースを表す。開発者オブジェクト404は、ノードクラス402(すなわちsetValue()メソッド406およびgetValue()メソッド408)によって提供される機能を継承する。開発者オブジェクト404は、1つまたは複数のプロパティ(例えばProperty1およびProperty2)を含むことができる。開発者オブジェクト404内では、命令が書き込まれ、registerPropertyコール(例えばregisterPropertyコール410および412)を使用して1つまたは複数の各プロパティが登録される。
【0033】
registerPropertyメソッド422は、プロパティエンジン内のプロパティマネージャ420によって提供される。プロパティマネージャ420は、登録されたプロパティ(例えばProperty1およびProperty2)を管理し、登録されたプロパティに関する関連情報がプロパティ情報ストア430に格納される。プロパティ情報ストア420は、図1に示すコンピュータシステム100内のメモリに常駐する。あるいは、プロパティ情報ストア420の一部をキャッシュしたり、記憶媒体上に格納したりすることができる。プロパティ情報ストア420は、登録されたプロパティごとのプロパティエントリ(例えばプロパティエントリ432および434)を含む。本発明によれば、プロパティエントリ434は、プロパティ識別子フィールド436および式フィールド438を含む。加えて、プロパティエントリ434は、名前フィールド、タイプフィールド、デフォルト値フィールドなどの、登録されたプロパティに関係する他のフィールドを含むことができる。デフォルト値フィールドは、プロパティについてのデフォルト値を格納する。このデフォルト値は、式がソースから値を計算することができない場合に使用される。
【0034】
プロパティエントリ434は、登録されたプロパティごとにプロパティ識別子フィールド436内に固有プロパティ識別子を格納する。一実施形態では、固有プロパティ識別子は、RegisterProperty()によって生成される。式フィールド438は、固有プロパティ識別子に関連する導出式オブジェクトを格納する。この導出式オブジェクトは、レジスタプロパティコール(例えばレジスタプロパティコール410および412)中の式パラメータ440から得られる。前述のように、導出式オブジェクトは、上書きされたevaluate()メソッドおよび上書きされたreportDependent()メソッドを含む。したがって、各プロパティを登録した後は、依存関係メカニズムおよび評価メカニズムは、登録されたプロパティに関連する導出式オブジェクトを介してグローバルに利用可能である。別の実施形態では、グローバル式をローカル式で上書きすることができる。ローカル式は、ローカル値について認識している式によって提供される。これらのローカル式は、ノードクラス中のプロパティエンジンによって提供されるreadLocalValueを使用して、ローカル値を取り出す。したがってローカル式により、ノード上にローカルに格納された値を取り出すことが可能となる。
【0035】
ノードクラス402が、readLocalValue()メソッド(図示せず)およびwriteLocalValue()メソッド(図示せず)などの内部で使用される追加のメソッドも提供することを当業者なら理解するであろう。一実施形態では、readLocalValue()メソッドは、前述のようなローカル式によって使用される。ローカル式はgetValueによって間接的に呼び出される。writeLocalValue()は、setValue()メソッド406によって使用される。式が、「子」の式に関連するevaluate()メソッドを「親」の式が呼び出す他の式を含むことを当業者はさらに理解されよう。「子」の式は、親の式に対する間接的ソースと呼ばれる。
【0036】
図5は、本発明による、登録されたプロパティについての値を取り出す例示的getValueプロセスを示す論理的流れ図である。処理はブロック501で始まり、ブロック501では、プロパティ(以後、当該のプロパティと呼ぶ)に関する照会を開始する。処理はブロック502に進む。
【0037】
ブロック502では、プロセスはキャッシュをチェックし、当該のプロパティについての値を以前にキャッシュしているかどうかを判定する。通常は、検索を最適化するために当該のプロパティがキャッシュされる。処理は判定ブロック504に進む。
【0038】
判定ブロック504では、当該のプロパティを以前にキャッシュしているかどうかについて判定を行う。当該のプロパティを以前にキャッシュしている場合、プロセスはキャッシュした値を使用し、ブロック512に進む。あるいは、プロセスはブロック506に進む。
【0039】
ブロック506では、プロセスは、当該のプロパティについての式を評価する。前述のように、この式は、登録されたグローバル式でよく、または現ノードについてのグローバル式を上書きするローカル式でよい。グローバル式がローカル値を理解し、および式がローカルに格納される場合に式を評価する限りにおいて、ローカル式はグローバル式を上書きすることができる。これらの式は、プロパティシート、データベースフィールドなどの様々なソースを検索することを含むことができる。開発者はまた、評価メソッドを変更することにより、それに応じてソースの検索順序に優先順位を付けることもできる。ソースのうち1つが値を有すると、式は評価を停止する。しかし、従属部である各ソースもまた、getValueプロセス500の間に検索されるソースを有する。処理は判定ブロック508に進む。
【0040】
判定ブロック508では、式プロセスが首尾よく値を計算したかどうかについて判定を行う。式プロセスが成功した場合、取り出された値が返され、プロセスはブロック512に進む。あるいは、式プロセスが成功しなかった場合、処理はブロック510に進む。
【0041】
ブロック510では、当該のプロパティについてのデフォルト値を取り出す。デフォルト値は、当該のプロパティが登録されたときにプロパティ情報内に格納される。デフォルト値は、registerPropertyコール内のパラメータとして渡される。処理はブロック512に進む。
【0042】
ブロック512では、アプリケーションは、値を受け取ったときの式のステージ、値を決定する際に取得したホップの数などに基づいて重みメトリックを計算することができる。重みメトリックを格納し、後の検索を最適化する目的で当該のどのプロパティをキャッシュするかについて知的な判定を行うためにその重みメトリックを使用する。重みメトリックは、値を取り出すときに必要であったホップの数に基づく。ホップとは、コールされた各getValue()メソッドを指す。次いで処理は終了する。
【0043】
図6は、本発明による、登録されたプロパティについての値を設定するset valueプロセスを示す論理的流れ図である。このプロセスはブロック601で始まる。ブロック601では、アプリケーションが実行中であり、プロパティが登録されている。処理はブロック602に進む。
【0044】
ブロック602では、アプリケーションは当該のプロパティについてsetValue()をコールする。始めに述べたように、各オブジェクトは共通インターフェース(例えばgetValue()およびsetValue())を提供するノードクラスから派生する。処理は判定ブロック604に進む。
【0045】
判定ブロック604では、式がそれ自体で値の格納を処理したかどうかについて判定を行う。これにより、ノード上のローカル記憶域以外の別の位置に式が値を格納することが可能となる。例えば、式がデータバインディングをモデル化している場合、設定する必要のある値は外部のデータベース内に常駐する。したがって、式が外部のデータベース内の値を設定した後は、ブロック606および608を迂回し、式は、値の格納を処理したことをsetValueに伝える。したがって、式が実際の値の格納を処理する場合、処理は終了に進む。そうでない場合、処理はブロック606に進む。
【0046】
ブロック606では、setValue()コールでパラメータとして提供された新しい値が、setValue()コール中のパラメータとしても渡されたプロパティ識別子に関連するオブジェクト上にローカルに格納される。オブジェクトは一般に、オブジェクト内にローカルにオブジェクトのプロパティ用の記憶域を有さないので、新しい値を格納するために動的な記憶域を割り振ることができる。処理はブロック608に進む。
【0047】
ブロック608では、notify dependentsプロセスを開始する。簡単に言えば、図7と共に後で詳細に説明するが、このnotify dependentsは、依存関係メカニズムを使用して、当該のプロパティがソースである各従属部を無効にする。前述のように、この無効化は、当該のプロパティに対する変更によって影響を受ける直接的従属部または間接的従属部が存在しなくなるまで行われる、反復的な性質のものである。次いで処理は完了する。
【0048】
図7は、図6のset valueプロセスで使用するのに適した例示的な報告プロセスを示す論理的流れ図である。処理はブロック701で始まる。ブロック701では、ソースについての値が既に変化している。処理はブロック702に進む。
【0049】
ブロック702では、変更通知をキューに入れる。変更通知が特定のノード上の特定のプロパティに対して使用可能にされる場合、現在の値は常にキャッシュされる。これは、変更通知で使用される古い値を表す。したがって、キャッシュを消去する前に、古い値を変更通知内に格納する。次いで、新しい値を計算し、再キャッシュする。その後、通知はファイアする準備ができている。処理はブロック706に進む。
【0050】
ブロック706では、当該のプロパティに関してキャッシュをクリアする。当該のあるプロパティについて、プロパティエンジンで維持されるキャッシュが、当該のプロパティについての値を含まない可能性があることを当業者なら理解するであろう。したがって、式が、キャッシュから当該のプロパティについての誤った値を意図せずに取り出すことがない。処理はブロック708に進む。
【0051】
ブロック708では、従属プロバイダを起動する。この従属プロバイダは、式(すなわちreportDependents)である。markDependentプロセスは、それ自体の他の従属部を有する従属部を「マーク」している可能性があるので、これらの他の従属部ごとのreportDependentメソッドを起動する。これらの他の従属部のreportDependentメソッドをそれぞれ起動したとき、新しいmarkDependentプロセスが開始される。したがって、各markDependentプロセスは、異なる従属部に関して処理している。このプロセスの間、プロパティエンジンは、無効にしたプロパティのリストを維持し、そのプロパティのうちの1つが2回現れた場合、プロパティエンジンは、このソースに関連する従属関係が循環性であることを認識する。したがって、プロパティエンジンは循環性を遮断する。これは従来のプロパティシステムに勝る別の利点である。次いで処理は完了し、リターンに進む。
【0052】
上記の仕様、例、およびデータにより、本発明の構成の製造および使用についての完全な説明が与えられる。本発明の精神および範囲から逸脱することなく、本発明の多数の実施形態を作成することができるので、本発明は、頭記の特許請求の範囲に属する。
【0053】
以下に、本発明の拡張可能な性質を示す。この例(すなわちDBBindExpression)は、外部データベースフィールドについての値を設定し、取り出す2方向バインディングを示す。
Figure 2004038965
Figure 2004038965

【図面の簡単な説明】
【0054】
【図1】本発明の1つの例示的実施形態で使用することのできる例示的コンピューティング装置を示す図である。
【図2】本発明による、プロパティシステムによってモデル化することのできるプロパティ関係の図式的表現である。
【図3】本発明の一実施形態による、依存関係メカニズムおよび評価メカニズムを与えるExpressionクラスについての例示的シンタックスを示す図である。
【図4】本発明による、ノードへの特定の共通インターフェースを提供するプログラミングモデルの図式的表現である。
【図5】本発明による、登録されたプロパティについての値を取り出すget valueプロセスを示す論理的流れ図である。
【図6】本発明による、登録されたプロパティについての値を設定するset valueプロセスを示す論理的流れ図である。
【図7】図6のset valueプロセスで使用するのに適した例示的な報告プロセスを示す論理的流れ図である。
【符号の説明】
【0055】
100 コンピューティング装置
102 プロセッサ
104 メモリ
105 オペレーティングシステム
106 プログラムモジュール
107 プログラムデータ
109 リムーバブル記憶装置
110 ノンリムーバブル記憶装置
112 入力装置
114 出力装置
116 通信接続
118 他のコンピューティング装置
210 直接的関係
220 継承関係
212、214、222、224、226、228、230 ノード
216 Property1
218、234、236、238、240 Property2
302 コンストラクタ
304 evaluateメソッド
306 reportDependentメソッド
308 setValueメソッド
310 reportDependentメソッド
400 expressionクラス、プログラミングモデル
402 ノードクラス
404 開発者オブジェクト
406 setValue()メソッド
408 getValue()メソッド
410、412 registerPropertyコール
420 プロパティマネージャ
430 プロパティ情報ストア
432、434 プロパティエントリ
436 プロパティ識別子フィールド
438 式フィールド
440 式パラメータ

Claims (25)

  1. コンピュータ実行可能コンポーネントを含むコンピュータ可読媒体であって、
    1組の共通インターフェースを公開するプロパティエンジンであって、各共通インターフェースが、オブジェクトのプロパティに対して作用するように構成され、前記プロパティが、前記共通インターフェースに渡されるパラメータによって識別され、前記共通インターフェースがさらに、前記識別されたプロパティに関連する式に基づいて、前記識別されたプロパティに対して作用するように構成されるプロパティエンジンと、
    オブジェクトの前記プロパティを登録し、および前記パラメータに対応する前記プロパティにプロパティ識別子を割り当てるように構成されたプロパティマネージャと
    を含むことを特徴とするコンピュータ可読媒体。
  2. 前記式は、前記プロパティと少なくとも1つの他のプロパティの間の関係を記述するように動作可能な依存関係メカニズムを含むことを特徴とする請求項1に記載のコンピュータ可読媒体。
  3. 前記関係は、直接的関係、カプセル化関係、継承関係、逆継承関係、データバインディング関係のうち1つを含むことを特徴とする請求項2に記載のコンピュータ可読媒体。
  4. 前記関係は従属部および少なくとも1つのソースを含み、前記少なくとも1つのソースは、前記ソースが変更を受ける場合に前記従属部に変更を及ぼすことを特徴とする請求項2に記載のコンピュータ可読媒体。
  5. 前記1組の共通インターフェースは、前記プロパティがソースであり、および前記プロパティが変更を受けたとき、前記少なくとも1つの他のプロパティを無効にする第1メソッドを含むことを特徴とする請求項4に記載のコンピュータ可読媒体。
  6. 前記1組の共通インターフェースは、前記プロパティについての値を設定し、および前記プロパティについての前記値を設定する際に前記第1メソッドを起動する第2メソッドを含むことを特徴とする請求項5に記載のコンピュータ可読媒体。
  7. 前記プロパティが、他のプロパティの第1組に対して従属部として識別され、他のプロパティの第2組に対してソースとして識別されることを特徴とする請求項4に記載のコンピュータ可読媒体。
  8. 前記1組の共通インターフェースは、前記プロパティが従属部であり、および前記ソースのうち1つが変更を受けたとき、前記プロパティを無効にする第1メソッドを含むことを特徴とする請求項4に記載のコンピュータ可読媒体。
  9. 前記1組の共通インターフェースは、前記式に基づいて前記プロパティについての値を得る第3メソッドを含むことを特徴とする請求項1に記載のコンピュータ可読媒体。
  10. 前記式は、前記プロパティが登録されるときにインスタンス化される式オブジェクトを含み、前記式オブジェクトは、プロパティの値を求める要求に応答して前記プロパティについての値を決定する評価メソッドと、前記プロパティと少なくとも1つの他のプロパティの間の関係を記述する報告メソッドとを有することを特徴とする請求項1に記載のコンピュータ可読媒体。
  11. オブジェクトのプロパティを管理するコンピュータ実装方法であって、
    式を、オブジェクトのプロパティと関連付けるステップであって、前記式は、前記プロパティと少なくとも1つのソースプロパティの間の関係を定義するステップと、
    プロパティの値を求める要求に応答して、前記式を評価し、前記プロパティの前記値を決定するステップと、
    プロパティの前記値を返すステップと
    を含むことを特徴とする方法。
  12. 前記式によって定義された関係は、前記少なくとも1つのソースプロパティの値と、前記プロパティの前記値の間の関係に対応することを特徴とする請求項11に記載のコンピュータ実装方法。
  13. 前記式を評価するステップは、前記少なくとも1つのソースプロパティの前記値を決定して前記プロパティの前記値を計算するステップを含むことを特徴とする請求項12に記載のコンピュータ実装方法。
  14. 前記少なくとも1つのソースプロパティの値が、別の式によって定義されることを特徴とする請求項13に記載のコンピュータ実装方法。
  15. 前記少なくとも1つのソースプロパティが変更を受けたとき、前記プロパティの前記値を無効にするステップをさらに含むことを特徴とする請求項11に記載のコンピュータ実装方法。
  16. 前記プロパティの前記値を求める後続の要求に応答して、前記少なくとも1つのソースプロパティに対する前記変更に基づいて、前記式を再評価し、前記プロパティの新しい値を決定するステップをさらに含むことを特徴とする請求項15に記載のコンピュータ実装方法。
  17. 前記無効にするステップは、前記プロパティの前記値をキャッシュからクリアするステップを含むことを特徴とする請求項15に記載のコンピュータ実装方法。
  18. 前記プロパティの値の変化に応答して、他の式によって定義され、および前記プロパティがソースである他のプロパティ値を無効にするステップをさらに含むことを特徴とする請求項11に記載のコンピュータ実装方法。
  19. 無効にされる前記少なくとも1つの他のプロパティを監視して、前記関係内に循環性が存在するかどうかを判定するステップをさらに含むことを特徴とする請求項18に記載のコンピュータ実装方法。
  20. データ構造を用いて符号化されたコンピュータ可読媒体であって、
    プロパティにそれぞれ対応する複数のデータフィールドを有する第1データ構造であって、前記データフィールドは、前記プロパティの値を格納する第1データ構造と、
    前記第1データ構造の前記データフィールドのうちの少なくとも1つと他のプロパティの間の関係をそれぞれ定義する複数の式を有する第2データ構造と
    を有することを特徴とするコンピュータ可読媒体。
  21. 前記第1データ構造は、オブジェクトのプロパティについての値のキャッシュを有することを特徴とする請求項20に記載のコンピュータ可読媒体。
  22. 前記関係は、直接的関係、カプセル化関係、継承関係、逆継承関係、データバインディング関係のうち1つを含むことを特徴とする請求項20に記載のコンピュータ可読媒体。
  23. 前記関係は従属部および少なくとも1つのソースを含み、前記少なくとも1つのソースは、前記ソースが変更を受ける場合に前記従属部に変更を及ぼすことを特徴とする請求項22に記載のコンピュータ可読媒体。
  24. 前記第1データ構造は第1プロパティの値を格納し、前記第1プロパティの前記値が、前記第1プロパティの前記値が依存する別のプロパティの値の変化に応答して無効にされることを特徴とする請求項20に記載のコンピュータ可読媒体。
  25. 前記第1プロパティに依存する他のプロパティの値が、前記第1プロパティの前記値の変化に応答して無効にされることを特徴とする請求項24に記載のコンピュータ可読媒体。
JP2003178498A 2002-06-28 2003-06-23 オブジェクトのプロパティを管理する方法 Expired - Lifetime JP5279979B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/186,985 US6986123B2 (en) 2002-06-28 2002-06-28 Extensible on-demand property system
US10/186,985 2002-06-28

Publications (2)

Publication Number Publication Date
JP2004038965A true JP2004038965A (ja) 2004-02-05
JP5279979B2 JP5279979B2 (ja) 2013-09-04

Family

ID=29779971

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003178498A Expired - Lifetime JP5279979B2 (ja) 2002-06-28 2003-06-23 オブジェクトのプロパティを管理する方法

Country Status (3)

Country Link
US (2) US6986123B2 (ja)
EP (1) EP1383045A3 (ja)
JP (1) JP5279979B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005301985A (ja) * 2004-02-26 2005-10-27 Ricoh Co Ltd 情報処理装置、オブジェクト生成方法、オブジェクト変換方法、オブジェクト生成プログラム、オブジェクト変換プログラム及び記録媒体

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7505987B2 (en) * 2003-05-13 2009-03-17 Microsoft Corporation Method and system for providing interface defaults
US7278091B2 (en) * 2003-05-13 2007-10-02 Microsoft Corporation Method and system for selectively enforcing presentation themes
US7954110B1 (en) * 2004-06-22 2011-05-31 Apple Inc. Observing properties associated with an object in an object-oriented programming platform
US7707490B2 (en) 2004-06-23 2010-04-27 Microsoft Corporation Systems and methods for flexible report designs including table, matrix and hybrid designs
US20060026498A1 (en) * 2004-07-30 2006-02-02 Microsoft Corporation Systems and methods for controlling report properties based on aggregate scope
US7559023B2 (en) 2004-08-27 2009-07-07 Microsoft Corporation Systems and methods for declaratively controlling the visual state of items in a report
US7634724B2 (en) 2004-08-30 2009-12-15 Microsoft Corporation Systems and methods for supporting custom graphical representations in reporting software
US8631347B2 (en) * 2004-11-15 2014-01-14 Microsoft Corporation Electronic document style matrix
US20070055693A1 (en) * 2005-09-07 2007-03-08 Simon Galbraith Data recovery method
US20070061349A1 (en) * 2005-09-15 2007-03-15 Microsoft Corporation Hierarchically describing shapes
US8001526B2 (en) * 2005-09-15 2011-08-16 Microsoft Corporation Hierarchical property storage
US20070061351A1 (en) * 2005-09-13 2007-03-15 Microsoft Corporation Shape object text
US7899820B2 (en) * 2005-12-14 2011-03-01 Business Objects Software Ltd. Apparatus and method for transporting business intelligence objects between business intelligence systems
US7856450B2 (en) * 2006-12-18 2010-12-21 Business Objects Software Ltd. Apparatus and method for distributing information between business intelligence systems
US8321853B2 (en) * 2007-05-11 2012-11-27 Microsoft Corporation Type and property definition support for software
US8245144B2 (en) * 2008-06-27 2012-08-14 Microsoft Corporation Object model for a user interface
US8356058B2 (en) * 2009-11-19 2013-01-15 Microsoft Corporation Runtime dependency analysis for calculated properties
JPWO2011099053A1 (ja) * 2010-02-10 2013-06-13 株式会社日立製作所 プロダクトライン型開発支援装置
US8756611B2 (en) 2010-12-07 2014-06-17 International Business Machines Corporation Delayed expansion of values in context
US8271520B1 (en) * 2011-03-31 2012-09-18 Accenture Global Services Limited Expression editor tool
USD733732S1 (en) * 2013-05-14 2015-07-07 Microsoft Corporation Display screen with graphical user interface
WO2017119889A1 (en) * 2016-01-07 2017-07-13 Hewlett Packard Enterprise Development Lp Management of application properties
CN107244165A (zh) * 2017-06-09 2017-10-13 浙江新盛蓝科技有限公司 一种圆规教具及其绘图实现方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05204652A (ja) * 1991-10-03 1993-08-13 Internatl Business Mach Corp <Ibm> オブジェクト属性値の継承及び伝搬の決定方法及びデータ処理システム
JPH05233185A (ja) * 1992-02-18 1993-09-10 Nec Corp ユーザ・インタフェース制御方式
JPH0793119A (ja) * 1993-09-21 1995-04-07 Mitsubishi Electric Corp グラフィカルユーザインタフェース装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819283A (en) * 1993-05-11 1998-10-06 Apple Computer, Inc. Method and system for the extensibility of objects
US5581761A (en) * 1993-07-20 1996-12-03 Sun Microsystems, Inc. Methods and apparatus for providing an extensible set of auxiliary services for objects in an object-oriented system
US6049805A (en) * 1998-02-24 2000-04-11 Microsoft Corporation Dynamic event mechanism for objects with associational relationships
US6275979B1 (en) * 1998-03-11 2001-08-14 International Business Machines Corporation Implementation for an object oriented run-time extensible item
US6289500B1 (en) * 1998-03-11 2001-09-11 International Business Machines Corporation Object mechanism and method that creates domain-neutral objects with domain-specific run-time extensions in an appropriate collection
US6918123B1 (en) * 1998-10-02 2005-07-12 Koninklijke Philips Electronics N.V. Calls identify scenario for control of software objects via property routes
US6499062B1 (en) * 1998-12-17 2002-12-24 Koninklijke Philips Electronics N.V. Synchronizing property changes to enable multiple control options
US7080383B1 (en) * 1999-01-29 2006-07-18 Microsoft Corporation System and method for extending functionality of a class object
US6401083B1 (en) * 1999-03-18 2002-06-04 Oracle Corporation Method and mechanism for associating properties with objects and instances
US6880126B1 (en) * 1999-08-03 2005-04-12 International Business Machines Corporation Controlling presentation of a GUI, using view controllers created by an application mediator, by identifying a destination to access a target to retrieve data
US6598060B2 (en) * 2000-12-27 2003-07-22 Microsoft Corporation Method and system for creating and maintaining version-specific properties in a distributed environment
US7055132B2 (en) * 2002-06-28 2006-05-30 Microsoft Corporation System and method for associating properties with objects

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05204652A (ja) * 1991-10-03 1993-08-13 Internatl Business Mach Corp <Ibm> オブジェクト属性値の継承及び伝搬の決定方法及びデータ処理システム
JPH05233185A (ja) * 1992-02-18 1993-09-10 Nec Corp ユーザ・インタフェース制御方式
JPH0793119A (ja) * 1993-09-21 1995-04-07 Mitsubishi Electric Corp グラフィカルユーザインタフェース装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005301985A (ja) * 2004-02-26 2005-10-27 Ricoh Co Ltd 情報処理装置、オブジェクト生成方法、オブジェクト変換方法、オブジェクト生成プログラム、オブジェクト変換プログラム及び記録媒体

Also Published As

Publication number Publication date
US7661091B2 (en) 2010-02-09
EP1383045A3 (en) 2006-05-03
US6986123B2 (en) 2006-01-10
US20040003138A1 (en) 2004-01-01
US20050188354A1 (en) 2005-08-25
JP5279979B2 (ja) 2013-09-04
EP1383045A2 (en) 2004-01-21

Similar Documents

Publication Publication Date Title
US7661091B2 (en) Extensible on-demand property system
JP4365142B2 (ja) プロパティをオブジェクトに関連付けするための、コンピュータ可読媒体、システム、および、方法
EP3072070B1 (en) Callpath finder
US7653880B2 (en) Application of data-binding mechanism to perform command binding
US7490098B2 (en) Apparatus, system, and method for processing hierarchical data in disparate data repositories
US8335773B2 (en) Stable linking and patchability of business processes through hierarchical versioning
US20200342008A1 (en) System for lightweight objects
US8001526B2 (en) Hierarchical property storage
US7539687B2 (en) Priority binding
US20050165830A1 (en) Application programming interfaces for an on-demand property system
CN117193802A (zh) 提供对应用程序内容多个实例的访问的合并空间
US8490068B1 (en) Method and system for feature migration
US11068468B2 (en) Extensible validation framework
US7970778B2 (en) Automatically persisting data from a model to a database
US9058339B2 (en) Source control inheritance locking
Cao et al. A formalism for graph-oriented distributed programming

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060621

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090904

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091002

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091224

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100202

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100702

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20100705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100705

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100726

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20100813

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120326

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130522

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5279979

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term