JP5129351B2 - 一貫性を有するシグナリング状態の変化 - Google Patents

一貫性を有するシグナリング状態の変化 Download PDF

Info

Publication number
JP5129351B2
JP5129351B2 JP2010548762A JP2010548762A JP5129351B2 JP 5129351 B2 JP5129351 B2 JP 5129351B2 JP 2010548762 A JP2010548762 A JP 2010548762A JP 2010548762 A JP2010548762 A JP 2010548762A JP 5129351 B2 JP5129351 B2 JP 5129351B2
Authority
JP
Japan
Prior art keywords
node
setting
listeners
components
node graph
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.)
Active
Application number
JP2010548762A
Other languages
English (en)
Other versions
JP2011513835A5 (ja
JP2011513835A (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 JP2011513835A publication Critical patent/JP2011513835A/ja
Publication of JP2011513835A5 publication Critical patent/JP2011513835A5/ja
Application granted granted Critical
Publication of JP5129351B2 publication Critical patent/JP5129351B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Hardware Redundancy (AREA)
  • Telephonic Communication Services (AREA)

Description

本発明は、一貫性を有するシグナリング状態の変化に関する。
コンピュータ化されたシステムにおいて使用されるアプリケーションプログラムは、典型的には、さまざまな異なる理由から互いに依存する複数の異なるコンポーネントまたはモジュールを含む。例えば、単一の計算アプリケーションプログラムは、計算モジュールからの1または複数の出力値を識別する度に即座にリフレッシュする(即ち、新しい出力を表示する)出力表示コンポーネントを含むことがある。計算モジュールは、今度は、1または複数の入力コンポーネントから1または複数の数値および関数入力を受信する度に計算を実行するように構成されることがある。このように、表示コンポーネントは、計算モジュールだけでなく、最終的に計算アプリケーション内のさまざまな入力コンポーネントの各々に依存するであろう。
このような依存性をソフトウェアレベルで構成することができる多くの異なる方法がある。例えば、上述の計算モジュールは、それで計算された値を「公開する」ことによってその値を「待ち受ける(listening)」その他の表示コンポーネントが、公開された時にその値を識別して一部の動作を実行できるようにすることがある。値が公開されたときを識別するために、表示コンポーネントは、今度は、最終的に公開された値を識別するおよび/または受信するリスナーを確立することがある(例えば、「イベント」を確立する)。他の場合、計算モジュールは、新しく計算された任意の値をその計算モジュールに登録された特定の他のコンポーネントに渡す(例えば、「シグナリング」)ようにそれ自体が構成されることがある。このように、或るソフトウェアコンポーネントから別のソフトウェアコンポーネントにデータを転送するための複数の「プッシュ」・「プル」形式構造があることを認識されたい。
このように、プログラマがモジュールまたはコンポーネント間で依存性を生成することを望む度に、プログラマは、典型的には、依存性を符号にして書き込む必要があり、時にはその関係性のリスナーを生成することさえあるだろう。例えば、プログラマは、或るコンポーネントによって値が公開された時にそれを読み出すだけでなくその値を依存性の連鎖に在る別のコンポーネントに送る、リスナーを書くことがある。プログラマは、その上、または、あるいは他の論理を書き込むことがあり、それによって一部の特定の条件が満たされた場合(例えば、値を特定のサイズにする)のみ、コンポーネントがその値を進ませる。その結果、コンポーネントの連鎖に在る各リスナーが異なる方法、および異なる速度で値を処理できることを認識されたい。
論理を各リスナーに書き込むこの能力は、プログラミングの柔軟性をある程度提供することができるが、依存性の連鎖を過度に複雑にすることにもなりかねず、および/または、過度の複雑さのため精度を保障することが困難である。例えば、複雑な依存性の連鎖は、各リスナーが1または複数のソースノードの事実上同じ変更に対してそれぞれに、異なるレートで応答する多くの異なるリスナーを有し得る。これは、依存性の連鎖に在る後続コンポーネントの競合条件になりかねない。具体的には、同じソースからの値を受信した2つのコンポーネントに依存しているディペンデントチャイルド(dependent child)は、1つのペアレントコンポーネント(parent component)から正しく更新された値を処理し得るが、古い値を使用して再度実行し得る。あるいは、そのディペンデントチャイルドのコンポーネントは、決して起こりそうにない条件のために無制限なハングアップになることがある。これは、依存性の連鎖にさらに連鎖反応をもたらし得る。
上述に加えて、標準のシステムを用いて、情報を受信するためのより直接的な経路が好適である場合でさえもソフトウェアコンポーネント間の同じ依存性を使用できる。例えば、1つの依存性の連鎖は、ソースノードAから中間ノードC、次いでエンドノードDまでの依存性に関わることがある。しかしながら他の場合では、ノードAは、エンドノードDからの値のみを必要とする場合がある。例えば、第2の実行コンテキストにおいて、エンドノードDは、必ずしもソースノードAの値をすぐに必要とするわけではなく、ソースノードAが変更されたことのみを知りさえすればよい。ほとんどの場合、第2の実行コンテキストでさえも、ノードDはノードAが変更されたことのみを知る必要があるとしても、ノードAからC、次いでDまでの実値のリレーになおも関わるであろう。長い依存性の連鎖、特にいくつかの異なる条件に関わる1つにおいて、エンドノードDがソースノードAが変更されたことを単純に見つけ出すだけでも多大で不必要な遅延になるであろう。
このような問題を克服する一部の標準機構は、頻繁なリフレッシュレートを異なるリスナーの各々に単純に符号化することを含む。一部の場合において効果的であるが、これは計算コストが高く、特に多数のリスナーと関わることがあるところでは不必要であることを認識されたい。例えば、依存性の連鎖内の一部の基本的なソースコンポーネントがしばしば変更し、一方で他の基本的なコンポーネントはまれにしか変更しない場合がある。さらに、また別のコンポーネントは、特定の出力さえ含むことができないので、そのエンドノードにおいてわざわざ値を渡す(および計算する)ことは、特に不必要となるであろう。例えば、最終値のみを表示し、他には表示画面上に現在表示しているものがないスプレッドシート上のセルは、これらのセルが表示されている間は更新される必要がない。
万能の手法を実行することは、従って、不必要になることが多い。さらに、依存性が2回登録されることと、他のダウンストリームのリスナーより先にアップストリームのリスナーが一部のデータを必ず取り扱うという保証がほとんどないことが多いために、現在のシステムには非効率が多い傾向にある。この種の論点は、まれにしか変更しない小規模のコンポーネントにとっては問題にならないかもしれないが、この種の論点は、継続的に変更する多くの表示データを有するシステム(例えば、証券データの処理)を不必要に遅くするまたはハングアップさせかねない。さらに、このような論点は、反応しないコンポーネント、または他の不必要な処理の遅延になりかねない。
従って、対処することができる複雑なソフトウェアの依存性において値変更をレポートすることに関連する困難が多くある。
本発明の実施は、複雑なソフトウェアの依存性の連鎖において配信、レポートティング、および/またはその他の処理状態/値変更に対する同期手法を確保するシステム、方法、およびコンピュータプログラム製品を提供する。特に、本発明の実施は、システムがソフトウェアコンポーネントの依存性の連鎖に対応するノードグラフを確立して、すべてのノードに信号が送られた後でノードグラフに在るすべてのリスナーを呼び出す2段階手法を含む。このように、リスナーを依存性の連鎖の順序で呼び出すことができるため、本発明の実施は、すべてのリスナーが、関連するソースコンポーネントと事実上同じ状態に基づいた、適切な順序で値を受信することを確保することによって一貫性を確保することができる。
例えば、依存性の連鎖に在る一貫性のある1または複数の値のセットを処理する本発明の実施に従った方法は、1または複数のソースノードと依存性の連鎖において順序付けられる1または複数の依存コンポーネントとを含む複数のコンポーネントに対応する複数のノードの生成に関わることができる。その方法は、ノードごとに、バイナリインジケータを1または複数のソースコンポーネントが開始状態を備えることを示す第1の設定に設定することを含むこともできる。さらに、その方法は、1または複数のソースコンポーネントにおいて後続状態の変更を識別すると、ノードごとの各バイナリインジケータを第2の設定に設定することに関わることができる。さらに、その方法は、生成された複数のノードに登録されている1または複数のリスナーを呼び出すことに関わることができる。この場合、1または複数のリスナーは、1または複数のソースコンポーネントにおける後続状態に基づいて実行するために同期される。
さらに、保証された値のセットのみに基づいてインメモリデータ構造を生成および更新する本発明の実施に従った別の方法は、開始ノードグラフの生成を含むことができる。開始ノードグラフは、1または複数のソースコンポーネントに従属する1または複数の依存コンポーネントを含む複数のコンポーネントに対応する。この場合、開始ノードグラフの各ノードは、第1の設定に設定される。この方法は、1または複数のソースコンポーネントが更新値に変更したことを識別すると、更新値をキャッシュして、更新値に基づいて開始ノードグラフを登録したすべてのリスナーを開始して処理を実行することを含むこともできる。さらに、この方法は、更新値に基づいて開始されたすべてのリスナーを処理し終えた後にその開始ノードグラフを廃棄することを含むことができる。さらに、この方法は、1または複数のソースコンポーネントへの1または複数の後続変更に基づいて後続のノードグラフを生成することを含むことができる。
本発明の概要は、以下の発明の詳細な説明でさらに説明される概念の選択されたものを簡易な形式で導入するために与えられた。本発明の概要は、特許請求の範囲の対象事項での重要な特徴または不可欠な特徴を特定することを意図せず、または特許請求の範囲の対象事項の範囲を決めるのに役立つものとして用いられることを意図しない。
本発明の付加的な特徴および利点は、以下の説明に示されるが、その一部においては説明によって明らかになるであろうし、または本発明の実施によって知得することもできる。本発明の特徴および利点を、添付の特許請求の範囲において特に指摘された手段およびその組み合わせによって実現して得ることができる。本発明のこれらと他の特徴は、以下の説明および添付の特許請求の範囲によってより完全に明白になるであろうし、以下に示された本発明の実施によって知得することもできる。
本発明の上記に列挙したものと他の利点および特徴を得ることができる方法を説明するために、簡単に上述した本発明のより詳細な説明は、添付図面に示されたその具体的な実施形態を参照することによって示されるであろう。これらの図面は本発明の典型的な実施形態のみを表し、従って、その範囲が限定されるものと見なされないことを理解した上で、本発明は、添付図面の使用を通じて付加的な具体性を用いて説明されるであろう。
本発明の実施に係る、シグナリングシステムが依存性の連鎖のノードを識別する図式的外観図である。 本発明の実施に係る、シグナリングシステムが依存性の連鎖に在る各ノードを信号で送る図式的概略図である。 本発明の実施に係る、シグナリングシステムが依存性の連鎖に在るノードを信号で送った後にリスナーを呼び出す図式的概略図である。 依存性の連鎖において依存ノード間の一貫性を確実なものにするための本発明の実施に係る方法のフローチャートである。 本発明の実施に係る、ノード間の一貫性を確実なものにするために異なる依存性の連鎖構造を生成する方法のフローチャートである。
本発明の実施は、複雑なソフトウェアの依存性の連鎖において配信、レポートティング、および/またはその他の処理状態/値変更に対する同期手法を確保するシステム、方法、およびコンピュータプログラム製品にまで及ぶ。特に、本発明の実施は、システムがソフトウェアコンポーネントの依存性の連鎖に対応するノードグラフを確立して、すべてのノードに信号が送られた後でノードグラフに在るすべてのリスナーを呼び出す2段階手法を含む。このように、リスナーを依存性の連鎖の順序で呼び出すことができるため、本発明の実施は、すべてのリスナーが、関連するソースコンポーネントと事実上同じ状態に基づいた、適切な順序で値を受信することを確保することによって一貫性を確保することができる。
本明細書でより完全に理解されるように、これらと他の利点を、少なくとも一部において2段階通知、および一度に最大の配信通知を使用して実現させることができる。さらに、対象とする通知グラフは、本明細書で説明するように、(グラフの形で表示したような)依存順序によって状態変更通知を提供する。特に状態変更の通知は(変更された値を必ずしも渡す必要なく)、すべての古いノードは古いとプログラムが正しく判定することができた後にのみ生じる。このように、通知は、与えられたノードに対して1回のみ生じる(サイクルと呼ぶ)。この結果、本発明のこれらと他の態様は、依存状態についての合理的な仮定を提供するために理解されて、マルチスレッド環境におけるシステムの保証を維持管理するのに役立つことができる。
図1Aは、依存性の連鎖においてシグナリングシステム100が、一貫性のあるシグナリングを確保するために少なくとも1セットの依存ソフトウェアコンポーネントに対してノードグラフを準備する図式的外観図を示す。例えば、図1Aは、システム100がコンポーネントA110、B120、C130、D140、E150、およびF160を備えることを示す。さらに、図1Aは、コンポーネントA110がコンポーネントB120およびコンポーネントCに依存し、一方でコンポーネントB120がコンポーネントD140に依存して、コンポーネントCがコンポーネントE150に従属することを示す。さらに、図1Aは、コンポーネントD140がコンポーネントF160に従属し、コンポーネントDおよびコンポーネントEは、条件付きで互いに関連することを示す。例えば、コンポーネントEは、コンポーネントDから得られる値が或るサイズまたは長さである場合にのみ値を計算することがある。
このように、このソフトウェアコンポーネントA−Fのセットを、複数の、ソースノード、依存ノード、およびエンドノードまたはそれらのいずれかを備える「依存性の連鎖」を形成するものとして一般的に考えることができる。この特定の例において、コンポーネントF160を、基本的には依存性の連鎖におけるソースノードとして理解することができる。これとは対照的に、コンポーネントB、C、D、およびEを中間ノードとして基本的に理解することができ、コンポーネントAを依存性の連鎖の依存ノードとして理解することができる。
もちろん、しかしながら、依存性の連鎖における別のノードに対しては依存性の連鎖における任意のノードを依存ノード、中間ノード、またはソースノードとして見なすことができることも認識されたい。例えば、コンポーネントD140を、コンポーネントB120にとってのソースノードおよび/またはコンポーネントE150にとってのソースノードと見なすことができる。同様にコンポーネントE150を、コンポーネントC130にとってのソースノードと見なすことができる等である。さらに、さまざまな実行コンテキストに実際に依存するいかなる時でも図示された依存性の連鎖を長くし、短くし、多少複雑にし得ることを認識されたい。例えば、コンポーネントAは、一度の計算にコンポーネントB−Fが関わるが、他の計算においてこれよりも多いまたは少ないコンポーネントノードを含む一つの特定の計算のための出力モジュールを備え得る。
図1Aは、システム100がソフトウェアコンポーネントの依存性の連鎖に対応する(あるいは表す)ノードグラフ113を準備することができることを示す。一般的に、ノードグラフ113は、関連のあるソフトウェアコンポーネント(例えば、110、120、130、140、150、160)の状態変更に基づいて生成されて廃棄されるリンクノード(110a、120a、130a、140a、150a、および160a)を有するインメモリデータ構造のセットを備える。例えば、コンポーネントAによって一部の処理が要求されると、処理モジュール105は、その特定の要求に対して依存性の連鎖に或る各ソフトウェアコンポーネント110、120、130、140、150、160をトラバースして、対応するノードグラフ113を準備する。特に、図1Aは、処理モジュール105がノード110a、120a、130a、140a、150a、および160aを備えるノードグラフ113を準備することを示し、これらのノードはコンポーネント110、120、130、140、150、160にそれぞれが対応する。
ノードグラフ113に加えて、図1Aは、処理モジュール105がさらにリスナーレジストリ170に在るソフトウェアコンポーネントごとに異なるリスナーの各々を登録することを示す。例えば、さまざまなコンポーネント110、120、130等をトラバースして依存性を識別すると、各コンポーネントは、特定のリスナーに表示を与えることもできる。処理モジュール105は、次に、識別した時に識別された各リスナーをリスナーレジストリに登録することができ、このようにして依存性の連鎖において近似したまたは全く同じ順序で登録することができる。例えば、図1Aは、コンポーネントB120、D145、E155の各々が、リスナーB125、D145、E155等のリスナーをそれぞれ使用することを示す。従って、図1Aは、リスナーレジストリ170が、関連する依存性の連鎖の順序においてリスナーD145、リスナーE155、およびリスナーB125の表示を備えることを示す。
どのイベントにおいても、システム100は、ソフトウェアコンポーネントの状態の変更を反映させて管理するためにノードグラフ113を生成して廃棄することができる。例えば、処理モジュール105は、ソースノードFが或る値(例えば、「0」または「状態1」165)に等しい時にこの特定のノードグラフ113を生成した可能性がある。ソースノードFが第1の状態から後続の別の状態または値に変更(例えば、「0」から「10」に−図示せず)する時、システム100は、(例えば、処理モジュール105を経由して)ノードグラフ113を更新して、単に変更が起きたという事実でも反映させることができる。システム100は、次に、すべてのコンポーネントが何らかの望ましい処理をし終える機会が得られる時間までこの特定の状態でノードグラフ113を保持することができる。いったんさまざまなコンポーネント110、120、130が最初にノードグラフ113を変更させたソースノードの変更を処理し終えると、処理モジュール105は、ノードグラフ113を廃棄して、必要な新しいノードグラフと共に再び開始することができる。その結果、システム100は、基本的に、コンポーネント110、120、130が以前の変更(例えば、「0」から「10」への変更)を処理する間、対応するノードが新しく更新された状態で受信するのを禁止する。
ソフトウェアコンポーネントの処理におけるこのような一貫性および統一性は、本発明の実施に従った1または複数のシグナリング機能を使用して、少なくとも一部において可能になる。例えば、図1Aは、ノードグラフ113のさまざまなノード110a、120a等の各々は、バイナリインジケータ117a、127a、137a、147a、157a、および167a等のバイナリインジケータを備える(または準備する)ことを示す。この特定の例示において、バイナリインジケータは、特定の開始設定または第1の設定を識別する「+」記号として示される。具体的には、例示された「+」記号の例は、与えられたソフトウェアソースコンポーネントのデフォルト値(例えば、コンポーネント160の状態165)を意味し、任意の変更が処理される前の依存性の連鎖がその値に基づく。
このように、本明細書でより完全に認識されるように、ノードグラフ113を構成して、バイナリインジケータの変更が元のソースノードの特定の状態とリンクされるようにすることができる。例えば、コンポーネントF160の状態の変更が受信(即ち、メッセージ180)されるとすぐに、システム100は、新しい値(例えば、「0」から「10」に変更された値)をキャッシュすることができ、ソースコンポーネントF160に起きることがあるその他の後続変更の有無にかかわらず、その新しい値をノードグラフ113に自動でリンクさせることができる。さらに、システム100は、ソースコンポーネントの値(例えば、コンポーネントF160)の後続変更を、要求された時間に新しい(またはリフレッシュされた)ノードグラフ(図示せず)に任意にリンクさせることができる。
従って、この線に沿って、「バイナリ」インジケータは、本明細書で論じるように、もう一つの値にのみ、一度だけ変更することができる。このように、処理モジュール105が特定のソフトウェアソースコンポーネント(例えば、160)に対する値の変更を識別した時、バイナリインジケータ117a、127a等は、その変更を反映するために1回のみ更新される。例えば、図1Aは、処理モジュール105が、コンポーネントF160が更新されたことを表示するメッセージ180を受信することを示す。図1Bに示すように、処理モジュール105は、次に、異なるノード110a、120a等の各々を通じて信号185を送る。信号185は今度、バイナリインジケータの「+」状態から「−」状態への変更の表記を含み、このようにしてバイナリインジケータの開始設定を後続設定に単純に更新する。
さらに、信号185は、基本的にソースノードF160aから開始される依存性の連鎖の順序で送られる。例えば、図1Bは、信号185が最初にノードF160aに送られ、次にノードD140aに、次にノードE150a等に送られることを示し、この結果167a、157a、147aの設定(即ち、「+」)から、それぞれ167b、157b、147bの設定(即ち、「−」)にバイナリインジケータが変更される。最後に、信号185は、ノードグラフ113内のすべてのノードが信号185を受信するまで各依存性を通じて信号を渡す。ほとんどの場合、各ノードは、信号を一度しか受信しない。しかしながら本発明の実施は、この他の理由でノードが信号(またはその他の信号)を繰り返し受信する場合でも、各バイナリインジケータがそれでもなお「最大限でも1回」しか変更しないため、この場合に適応することができる。
具体的には、各バイナリインジケータ147を一度しか(即ち、「最大限でも1回」)変更することができないため、他の信号(または繰り返しの信号)は、変更された/更新されたノードのバイナリインジケータを変更することができない。つまり、これらの図で使用された具体的な用語を参照すると、いったん図示された「−」記号に設定されると、与えられたバイナリインジケータを「+」記号に戻して変更することができない。このように、図示されたノードグラフ113のシグナリング経路は、イベントにおいて或るノードが何かの事情で特定の信号185をあちこちに循環させたとしても機能するであろう。当然、「最大限でも1回」の変更に対するバイナリインジケータの構成とは別に、ノード自体もこの種の問題を避けるように構成することができる。少なくとも一実施において、例えば、ノードグラフ113の各ノードは、生成時に別のノードへのバックチャネルを用いずに構成される。このように、ノードF160aは信号185を少なくともノードD140aにリレーするが、ノードF160aは、ノードD140aから帰還信号を受信することができない。
システム100は、与えられたノードグラフに在るすべてのノードが(信号185を経由して)更新されるまでこの特定の依存性の連鎖における処理を起こすことができないことをさらに確保する。少なくとも一つの実施において、例えば、システム100は、すべてのバイナリインジケータが設定されて更新されるまで、または信号185が少なくとも1回はノードグラフ113に在るすべてのノードに到達するまでリスナー125、145、または155の呼び出しを保留することによってこの一貫性を確保する。このような実施において、従って、ノードグラフの生成の開始(例えば、図1A)は、単にリスナー125.145、および155を発見することなので、結果として何の処理も行われないだろう。システム100がコンポーネントFの更新(例えば、メッセージ180)を受信する時点においても、システム100は、ソースノードの開始変更を反映させるためにバイナリインジケータが更新されるまでリスナー125、145、または155のいずれも呼び出さないであろう。
すべてのバイナリインジケータを更新した後のリスナーの呼び出しに加えて、システム100は、特定の順序でリスナーを呼び出すことによって一貫性をさらに向上させることができる。例えば、図1A−1Cは、リスナーレジストリ170が、リスナー125、145、および145の参照を、基本的には処理モジュール105によってそれらが識別された順序で格納することを示す。特に、図1A−1Cは、リスナーレジストリ170が、これらの特定のリスナーの順序を、最初はリスナーD145、次にリスナーE155、そして次にリスナーB125の順序で格納することを示す。その結果、処理モジュール105が最終的にこれらの特定のリスナーを呼び出す時、処理モジュール105は、近似した処理順序でしかそれを行なわない。例えば、図1Cは、処理モジュールがノードグラフ113を通じてメッセージ190に近似した依存性の連鎖の順序を適用して、ノードD140aおよびE150aに対応するリスナーD145およびE155を、ノードB120aに対応するリスナーB125の前に呼び出すことができることを示す。
システム100はこれらのリスナーの各々を呼び出すので、対応する各ソフトウェアコンポーネントは、ソースコンポーネントの値変更に基づいて処理を実行することができる。例えば、いったんリスナー145が呼び出されると、ソフトウェアコンポーネントD140は、このノードグラフ113と関連付けされたキャッシュ値(例えば、ソースコンポーネントF160に提示された値)で処理を任意に実行することができる。いったんリスナーE155およびB125が呼び出されると、コンポーネントE150およびB120は、すでに処理された、および/またはメッセージ180からのコンポーネントFの最新の更新に基づいてノードDから提供された値を任意に読み出すことができる。
システム100は、このように各リスナーを呼び出すことだけでなく、依存性の連鎖に沿って連続する値を処理することも順序付けることを認識されたい。これにより、特定のソフトウェアコンポーネントが別のソース/中間ノードから読み出す各値が、すでに処理された、最新の値のみに基づくという見込みが増加する。さらに、いったんすべてのリスナーがコンポーネントF160に割り当てられた状態に基づいて呼び出されて、すべての処理が完了すると、処理モジュール150は、ノードグラフ113を廃棄する。必要に応じて、システム100は、コンポーネントFのさらに別の変更に対応する別のノードグラフを準備することができる。
従って、図1A、1B、および1Cは、依存性の連鎖内のコンポーネントが一度にソースノードの1つの状態変更のみを効率的に、基本的に正しい順序で処理することを確保するための1または複数の図式またはコンポーネントを提供する。これにより、多くの重要な保証を提供することができ、このような特定の場合における競合条件(同じ連鎖内の現在の値と古い値との間の処理)に対して時々生じる懸念を軽減するあるいは無くすことができる。
上述に加えて、本発明の実施を、特定の結果を達成するための1または複数の動作を備える方法において説明することもできる。例えば、図2は、依存性の連鎖に在る1または複数の値の一貫性のあるセットを処理する方法のフローチャートを示す。さらに、図3は、保証された値のセットのみに基づいて依存性の連鎖を表すインメモリデータ構造を生成して更新する付加的または代替的方法を示す。図2および図3のフローチャートの動作は、図1A−図1Cのコンポーネントおよび図式に対して以下で説明される。
例えば、図2は、依存性の連鎖に在る1または複数の値の一貫性のあるセットを処理する方法が、依存性の連鎖に在るノードを識別する動作200を備えることができることを示す。動作200は、依存性の連鎖において順序付けられる1または複数のソースコンポーネントおよび1または複数の依存コンポーネントを含む複数のコンポーネントに対応する複数のノードを生成することを含む。例えば、処理モジュール105は、コンポーネントA110から処理の要求を受信して、それに対応する依存性の連鎖をトラバース(traverse)して、コンポーネントAが依存する異なるコンポーネントの各々を識別する。処理モジュール105は、次に、Aが依存する識別されたコンポーネントと相関する依存性の連鎖に在る1または複数のノードを備えた対応するノードグラフ113のデータ構造を生成する。
図2は、バイナリインジケータをノードごとに設定する動作210を備えることができる方法も示す。動作210は、ノードごとに、バイナリインジケータを、1または複数のソースコンポーネントが開始状態を備えることを示す第1の設定に設定することを含む。例えば、図1Aは、処理モジュール105が、ノードグラフ113に在るノードごとにバイナリインジケータ117a、127a、137a、147a、157a、および167aを生成して設定することを示す。一実施において、この特定のバイナリインジケータを開始状態(165)に設定して、1または複数のソースコンポーネント(例えば、コンポーネントF160)の値を、ノードグラフの構成がまだ変更されていない時間から効率的に明確にする。
さらに、図2は、この方法が、ソースノードが変更した後にすべてのバイナリインジケータを第2の設定に設定する動作220を備えることができることを示す。動作220は、1または複数のソースコンポーネントにおいて後続状態の変更を識別すると、ノードごとに各バイナリインジケータを第2の設定に設定することを含む。例えば、図1Bに示すように、ノードグラフ113内のバイナリインジケータの各々を、別の後続の表示にする第1の変更等、いったん処理モジュール105がノードFの変更を識別すると、処理モジュール105は即座にその変更のシグナリングを開始する。具体的に、図1Bは、処理モジュール105が信号185をノードグラフ113に在る各ノードに渡してその「+」設定を「−」設定にすることを示す。
さらに、図2は、この方法が、依存性の連鎖においてすべてのリスナーを呼び出す動作230を備えることができることを示す。動作230は、生成された複数のノードに登録されている1または複数のリスナーを呼び出すことを含み、1または複数のソースコンポーネントにおける後続状態に基づいて実行するために1または複数のリスナーが同期される。例えば、バイナリインジケータの各々がマイナス記号に変更されると、図1Cは、システム100がコンポーネントごとの各リスナーを呼び出して、リスナーが依存性の連鎖において元々識別された順序で(例えば、ソースノードに最も近いリスナーからエンドノードに最も近いリスナーへ進む)この方法を行うことを示す。例えば、図1Cは、システム100が最初にリスナーD145を呼び出し、次にリスナーE155、次にリスナーB125等を呼び出すことを示す。
上述に加えて、図3は、保証された値のセットのみに基づいて依存性の連鎖を作成する本発明に従った付加的または代替的方法が、第1の状態に基づいてノードグラフを生成する動作300を備えることができることを示す。動作300は、1または複数のソースコンポーネントに従属する1または複数の依存コンポーネントを含む複数のコンポーネントに対応する開始ノードグラフを生成することを含み、そこで開始ノードグラフの各ノードが第1の設定に設定される。例えば、図1Aは、処理モジュール105が、処理要求180を識別するとコンポーネント110、120、130、140、150、160をトラバースして、対応するノード110a、120a等を含むノードグラフ113を生成することを示す。この場合、処理モジュール105は、各ノードに在るバイナリインジケータ(117a、127a等)を開始状態(即ち、「+」)にさらに設定して、ノードグラフ113が、ソースノードコンポーネントF160の開始状態(165)に基づくことを示す。
図3は、この方法が、状態変更が複製された後にすべてのリスナーを呼び出す動作310を備えることができることも示す。動作310は、1または複数のソースコンポーネントが更新値に変更されたことを識別すると、その更新値をキャッシュすることと、開始ノードグラフを登録したすべてのリスナーを開始して更新値に基づいた処理を実行することを含む。例えば、図1Bおよび1Cは、コンポーネントノードFを更新するメッセージ180を受信すると、処理モジュール105は、すべてのバイナリインジケータを、例えば、ノードグラフ113に在る147b、157b、167b等の別の記号表示に変更して(即ち、「−」に変更する)、レジストリ170に在るすべてのリスナーをさらに呼び出すことを示す。
さらに、図3は、この方法が、ノードグラフを廃棄する動作320を備えることができることを示す。動作320は、開始されたすべてのリスナーが更新値に基づいて処理し終えた後に開始ノードグラフを廃棄することを含む。例えば、図3に示した各リスナーがノードグラフ113が利用可能な最新値にアクセスした後に処理モジュール105は、ノードグラフ113を廃棄する。異なるバイナリインジケータ147b、157b等の各々を一回しか変更することができないので、呼び出された他リスナーのいずれによっても、異なるコンポーネントまたはノードに変わる他の後続変更が複製されることができず、取り扱うこともできない。よって、システム100は依存ノードグラフ113を廃棄する。
さらに、図3は、その方法が、更新状態に基づいて新しいノードグラフを生成する動作330を備えることができることを示す。動作330は、1または複数のソースコンポーネントに変わる1または複数の後続変更に基づいて後続のノードグラフを生成することを含む。このように、例えば、コンポーネントA110によって新しい処理要求が受信されると、処理モジュール105は、この特定の要求に関する依存性の連鎖のセットを再度トラバース(traverse)して、新しいノードグラフに関するノードの新しいセットを識別(図示せず)し得る。ノードグラフ113と同様に、この新しいノードグラフも、対応するソースノードの最新の変更に基づくにもかかわらずインメモリデータ構造になるであろう。特に、このノードグラフは、図1Aに示したものと同じ表示を備えることができるが、この実行コンテキストが異なり、異なる依存性を有する場合があるので、異なるコンポーネントまたはノードも備え得る。
このような新しいノードグラフおよび新しい依存性の連鎖の生成を継続的にリフレッシュし、再生し、そして必要に応じて廃棄することができることを認識されたい。いずれにしても、本発明の実施はこのように、ソースノード値の変更が、依存性の連鎖を通じて特定のノードグラフのコンテキストにおいて、一貫性のある方法で一度のみ処理されることを確保する。従って、本発明の実施は、ソフトウェアコンポーネントが非常に複雑な依存性の連鎖になっていても、値の処理において高度な精度および一貫性を確保することができる。
本発明の実施形態は、以下により詳細に論じられるように、さまざまなコンピュータハードウェアを含む専用または汎用コンピュータを備えることができる。本発明の範囲における実施形態は、コンピュータ可読媒体も含み、その上に格納されるコンピュータ実行可能命令またはデータ構造を搭載または有する。このようなコンピュータ可読媒体は、汎用または専用コンピュータがアクセスすることができる利用可能な任意の媒体にすることができる。
例を挙げると、このようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROM、または他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶装置、またはコンピュータ実行可能命令またはデータ構造の形式において望ましいプログラムコード手段を搭載または格納するために使用することができて、汎用または専用コンピュータによってアクセスすることができるその他の媒体を備えることができるが、これに限らない。情報が、ネットワークまたは別の通信接続(有線、無線、または有線もしくは無線の組み合わせのいずれか)を経由してコンピュータに転送または提供される場合、そのコンピュータは、適切にその接続をコンピュータ可読媒体と見なす。このように、こうした接続はいずれも適切に、コンピュータ可読媒体と呼ばれる。上記の組み合わせも、コンピュータ可読媒体の範囲内に含めなければならない。
コンピュータ実行可能命令は、例えば、汎用コンピュータ、専用コンピュータ、または専用処理デバイスに、或る機能または機能群を実行させる命令およびデータを備える。発明の対象事項を、構造的特徴または方法論的動作に特有の言語で説明しているが、添付の特許請求の範囲で定義された本発明の対象事項は、上述した具体的な特徴または動作に必ずしも限定されないことを理解されたい。むしろ上述した具体的な特徴および動作は、特許請求の範囲を実装する例示的な形態として開示される。
本発明を、その精神または不可欠な特性から逸脱することなく、他の具体的な形態に実施してもよい。説明した実施形態は、あらゆる点において単に例示的と見なされ、限定されるものではない。本発明の範囲は、従って、上述の説明よりはむしろ添付の特許請求の範囲によって示される。特許請求の範囲と同等の意味および範囲に入るすべての変更は、それらの範囲内に含まれるものとする。

Claims (19)

  1. コンピュータ化された環境におけるシグナリングを行うシステムにおいて、前記シグナリングを行うシステムは依存性の連鎖を通じてデータを或るところから別のところへ中継する複数のコンポーネントを備え、競合条件を避ける方法において前記依存性の連鎖における1または複数の値の一貫性のあるセットを処理する方法であって、前記方法は、
    依存性の連鎖において順序付けられる、1または複数のソースコンポーネントおよび1または複数の依存コンポーネントを含む複数のコンポーネントに対応する複数のノードを生成することと、
    ノードごとに、バイナリインジケータを、1または複数のソースコンポーネントが開始状態を備えることを示す第1の設定に設定することと、
    前記1または複数のソースコンポーネントにおいて後続状態の変更を識別すると、関連するノードの各バイナリインジケータを第2の設定に設定するために、前記依存性の連鎖における各ノードに信号を送信することと、
    ノードごとの前記バイナリインジケータを前記第2の設定に設定した後、前記生成された複数のノードに対応する1または複数のリスナーを呼び出すことであって、前記1または複数のソースコンポーネントにおける前記後続状態に基づいて、前記依存性の連鎖において識別された順序で前記1または複数のリスナーを呼び出すことを実行する、ことと
    の動作を備えることを特徴とする方法。
  2. 前記第2の設定は、前記1または複数のソースコンポーネントが後続状態に変更されたことのみを示し、前記1または複数のソースコンポーネントが前記後続状態に変更された更新値を直接示さない設定であることを特徴とする請求項1に記載の方法。
  3. 各バイナリインジケータを第2の設定に設定する前記動作は、前記各バイナリインジケータの開始設定を後続設定に更新する信号を前記依存性の連鎖に在る各ノードに送る動作を含むことを特徴とする請求項1に記載の方法。
  4. 前記依存性の連鎖に在る前記ノードの1つに在る対応するバイナリインジケータを前記第2の設定に設定した後に、続いて前記信号を繰り返し受信することと、
    前記続いて受信された信号を無視することであって、前記バイナリインジケータが前記第2の設定に設定されたままである、ことと
    の動作をさらに備えることを特徴とする請求項3に記載の方法。
  5. 前記依存性の連鎖に在る前記複数のノードを生成する時に、前記1または複数のリスナーを識別する動作をさらに備えることを特徴とする請求項1に記載の方法。
  6. 記識別された1または複数のリスナーを、少なくとも各バイナリインジケータが前記第2の設定に変更されるまで、リスナーレジストリ内に格納する動作をさらに備え、
    前記1または複数のリスナーは、各バイナリインジケータが前記第2の設定に変更された後にのみ呼び出されることを特徴とする請求項5に記載の方法。
  7. 記1または複数のリスナーを、前記依存性の連鎖におけるコンポーネントの前記順序付けに対応する順序で、リスナーレジストリ内に格納する動作をさらに備えることを特徴とする請求項5に記載の方法。
  8. 前記依存性の連鎖に登録されている1または複数のリスナーを呼び出す前記動作は、前記1または複数のリスナーを、前記リスナーレジストリに在る前記1または複数のリスナーが格納される順序で呼び出す動作を含むことを特徴とする請求項7に記載の方法。
  9. 前記生成されたノードのすべてを表し、かつ前記依存性の連鎖における依存性に対応する、ノードグラフを備えるインメモリデータ構造を作成することと、
    前記後続状態の変更を識別すると、前記1または複数のソースコンポーネントの更新値をキャッシュすることと
    の動作をさらに備えることを特徴とする請求項1に記載の方法。
  10. 前記ノードグラフの後続状態への変更に基づく新しいバージョンを備える新しいインメモリデータ構造を作成することと、
    前記1または複数のソースコンポーネントの後続状態への変更に基づく新しい変更を識別すると、前記1または複数のソースコンポーネントの後続状態への変更に基づく新しい値をキャッシュすることと
    の動作をさらに備えることを特徴とする請求項9に記載の方法。
  11. 前記1または複数のソースコンポーネントの前記キャッシュされた更新値を前記ノードグラフを備える前記インメモリデータ構造と関連付けることと、
    前記1または複数のソースコンポーネントの前記キャッシュされた新しい値を前記ノードグラフの前記新しいバージョンを備える前記新しいインメモリデータ構造と関連付けることと
    の動作をさらに備えることを特徴とする請求項10に記載の方法。
  12. ノードグラフを備える前記インメモリデータ構造のいずれかに対応する前記呼び出された1または複数のリスナーのすべてを処理し終えたことを識別することと、
    前記特定のインメモリデータ構造を廃棄することと
    の動作をさらに備えることを特徴とする請求項11に記載の方法。
  13. コンピュータ化された環境におけるシグナリングを行うシステムにおいて、前記シグナリングを行うシステムは依存性の連鎖を通じてデータを或るところから別のところへ中継する複数のコンポーネントを備え、保証された値のセットのみに基づいて前記依存性の連鎖を表すインメモリデータ構造を生成および更新する方法であって、前記方法は、
    1または複数のソースコンポーネントに従属する1または複数の依存コンポーネントを含む複数のコンポーネントに対応する開始ノードグラフを生成することであって、前記開始ノードグラフの各ノードが第1の設定に設定される、ことと、
    前記1または複数のソースコンポーネントの既定値が更新値に変更されたことを識別すると、前記更新値に基づいて前記更新値をキャッシュし、および信号を前記ノードグラフ上に在る
    すべてのノードに送ることであって、前記信号が各ノードを前記第1の設定から第2の設定に変更する、ことと
    前記ノードグラフ上に在る各ノードが前記第1の設定から第2の設定に変更された後、前記開始ノードグラフにあるすべてのリスナーを開始して処理を実行することと、
    前記更新値に基づいて開始されたすべてのリスナーを処理し終えた後に、前記開始ノードグラフを廃棄することと、
    前記1または複数のコンポーネントの1または複数の後続状態への変更に基づいて後続のノードグラフを生成することと
    の動作を備えることを特徴とする方法。
  14. 前記複数のコンポーネントに対応するすべての前記リスナーを、前記依存性の連鎖におけるコンポーネントの順序でリスナーレジストリに格納する動作をさらに備えることを特徴とする請求項13に記載の方法。
  15. 前記リスナーは、前記リスナーレジストリに格納された前記順序で開始されることを特徴とする請求項14に記載の方法。
  16. 前記1または複数のソースコンポーネントに対応する1または複数のリスナーの新しいセットをリスナーレジストリに格納する動作をさらに備え、前記1または複数のリスナーの新しいセットが前記後続の依存性ノードグラフに対応することを特徴とする請求項13に記載の方法。
  17. 前記後続のノードグラフに在る各ノードが前記第1の設定に設定されることであって、前記方法は、
    前記対応する1または複数のソースコンポーネントが後続状態への変更に基づく新しい値に変更したことを識別することと、
    信号を前記後続のノードグラフ上に在るすべてのノードに送ることであって、前記信号が各ノードを前記第1の設定から第2の設定に変更する、ことと
    の動作をさらに備えることを特徴とする請求項13に記載の方法。
  18. 前記新しい値をキャッシュすることと、
    前記新しい値を前記後続のノードグラフと関連付けることであって、続いて前記後続のノードグラフ上で呼び出されたすべてのリスナーが前記新しい値に基づいて処理を実行する、ことと
    の動作をさらに備えることを特徴とする請求項17に記載の方法。
  19. コンピュータ化された環境におけるシグナリングを行うシステムにおいて、前記シグナリングを行うシステムは依存性の連鎖を通じてデータを或るところから別のところへ中継する複数のコンポーネントを備え、コンピュータ実行可能命令が実行されると前記システムにおける1または複数のプロセッサが1つの方法を遂行する、前記命令を含むコンピュータプログラムが格納されたコンピュータ読み取り可能記録媒体であって、前記方法は、
    依存性の連鎖において順序付けられる、1または複数のソースコンポーネントおよび1または複数の依存コンポーネントを含む複数のコンポーネントに対応する複数のノードを生成することと、
    ノードごとに、バイナリインジケータを、1または複数のソースコンポーネントが開始状態を備えることを示す第1の設定に設定することと、
    前記1または複数のソースコンポーネントにおいて後続状態の変更を識別すると、関連するノードの各バイナリインジケータを第2の設定に設定するために、前記依存性の連鎖における各ノードに信号を送信することと、
    ノードごとの前記バイナリインジケータを前記第2の設定に設定した後、前記生成された複数のノードに対応する1または複数のリスナーを呼び出すことであって、前記1または複数のソースコンポーネントにおける前記後続状態に基づいて、前記依存性の連鎖において識別された順序で前記1または複数のリスナーを呼び出すことを実行する、ことと
    を備えることを特徴とするコンピュータ読み取り可能記録媒体。
JP2010548762A 2008-02-25 2009-01-23 一貫性を有するシグナリング状態の変化 Active JP5129351B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/037,004 US7860900B2 (en) 2008-02-25 2008-02-25 Consistently signaling state changes
US12/037,004 2008-02-25
PCT/US2009/031890 WO2009108427A2 (en) 2008-02-25 2009-01-23 Consistently signaling state changes

Publications (3)

Publication Number Publication Date
JP2011513835A JP2011513835A (ja) 2011-04-28
JP2011513835A5 JP2011513835A5 (ja) 2012-03-22
JP5129351B2 true JP5129351B2 (ja) 2013-01-30

Family

ID=40999338

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010548762A Active JP5129351B2 (ja) 2008-02-25 2009-01-23 一貫性を有するシグナリング状態の変化

Country Status (5)

Country Link
US (1) US7860900B2 (ja)
EP (1) EP2260378A4 (ja)
JP (1) JP5129351B2 (ja)
CN (1) CN101952799B (ja)
WO (1) WO2009108427A2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719841B2 (en) * 2007-11-16 2014-05-06 Microsoft Corporation Dispatch mechanism for coordinating application and communication medium state
US8505030B2 (en) * 2007-11-16 2013-08-06 Microsoft Corporation Coordinating resources using a volatile network intermediary
US9021503B2 (en) * 2007-11-16 2015-04-28 Microsoft Technology Licensing, Llc Coordinating application state and communication medium state
US7899798B2 (en) * 2008-02-25 2011-03-01 Microsoft Corporation Observing and reporting changes in complex software dependencies
US8301706B2 (en) 2009-06-15 2012-10-30 Microsoft Corporation Routing of pooled messages via an intermediary
US8549538B2 (en) * 2010-03-18 2013-10-01 Microsoft Corporation Coordinating communication medium state for subtasks
US8250234B2 (en) 2010-04-26 2012-08-21 Microsoft Corporation Hierarchically disassembling messages
CN101840230B (zh) * 2010-06-04 2012-02-01 浙江中控技术股份有限公司 一种监控和管理数据的方法及系统
JP2012088815A (ja) * 2010-10-15 2012-05-10 Toshiba Corp マイクロプロセッサ動作監視システム
EP3633991A1 (en) 2011-12-29 2020-04-08 Swisscom AG Method and system for optimized encoding
GB2506596A (en) * 2012-10-02 2014-04-09 Ibm Managing a set of software modules in a runtime environment
US9880918B2 (en) * 2014-06-16 2018-01-30 Amazon Technologies, Inc. Mobile and remote runtime integration
US9940212B2 (en) * 2016-06-09 2018-04-10 Google Llc Automatic qubit calibration
CN110413632B (zh) * 2018-04-26 2023-05-30 腾讯科技(深圳)有限公司 管理状态的方法、装置、计算机可读介质及电子设备
US20210042167A1 (en) * 2019-08-07 2021-02-11 Microsoft Technology Licensing, Llc Dynamic Package Dependency(ies)
CN111736836B (zh) * 2020-07-22 2020-11-17 平安国际智慧城市科技股份有限公司 基于关系图的组件配置方法、装置及计算机可读存储介质

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5317734A (en) * 1989-08-29 1994-05-31 North American Philips Corporation Method of synchronizing parallel processors employing channels and compiling method minimizing cross-processor data dependencies
FR2681451B1 (fr) * 1991-09-13 1993-11-12 Bull Sa Procede de gestion d'objets structures.
DE69528749T2 (de) * 1995-02-17 2003-09-18 Ibm Objektorientierte Programmierschnittstelle zur Entwicklung und zur Ausführung einer Netzwerkverwaltungsapplikation auf einer Netzwerkkommunikationsinfrastruktur
US5808625A (en) * 1995-08-04 1998-09-15 Silicon Graphics Incorporated System and method for using dependency graphs for the control of a graphics creation process
US6817019B1 (en) * 1996-05-31 2004-11-09 International Business Machines Corporation Tracking and propagating updates to a message-driven system of interdependent components
US6718550B1 (en) * 1996-06-26 2004-04-06 Sun Microsystems, Inc. Method and apparatus for improving the performance of object invocation
US6256712B1 (en) * 1997-08-01 2001-07-03 International Business Machines Corporation Scaleable method for maintaining and making consistent updates to caches
US6538651B1 (en) * 1999-03-19 2003-03-25 John Hayman Parametric geometric element definition and generation system and method
US20030014513A1 (en) * 2000-12-27 2003-01-16 Ruths Derek Augustus Samuel System and method for collaborative data resource representation
US7133874B2 (en) * 2001-12-13 2006-11-07 Microsoft Corporation Prototyping model for components of a software program
US20030140058A1 (en) * 2002-01-18 2003-07-24 Vitria Technology, Inc. Method and apparatus for sharing information between applications using common objects
CA2373211A1 (en) * 2002-02-22 2003-08-22 Catena Networks Canada Inc. Fault notification filtering
US20040024807A1 (en) * 2002-07-31 2004-02-05 Microsoft Corporation Asynchronous updates of weakly consistent distributed state information
US7096459B2 (en) * 2002-09-11 2006-08-22 International Business Machines Corporation Methods and apparatus for root cause identification and problem determination in distributed systems
US7711680B2 (en) * 2003-03-24 2010-05-04 Siebel Systems, Inc. Common common object
US7529823B2 (en) * 2003-03-27 2009-05-05 Microsoft Corporation Notifications for shared resources
US20040261060A1 (en) * 2003-06-20 2004-12-23 Haselden J. Kirk Dependency based package deployment
US20040268302A1 (en) * 2003-06-26 2004-12-30 Microsoft Corporation Framework for determining and exposing binary dependencies
US7562346B2 (en) * 2003-09-02 2009-07-14 Microsoft Corporation Software componentization for building a software product
US7644376B2 (en) * 2003-10-23 2010-01-05 Microsoft Corporation Flexible architecture for notifying applications of state changes
US7415706B1 (en) * 2003-12-01 2008-08-19 Cisco Technology, Inc. Dynamic handling of multiple software component versions for device management
US7568195B2 (en) * 2003-12-16 2009-07-28 Microsoft Corporation Determining a maximal set of dependent software updates valid for installation
US7660805B2 (en) * 2003-12-23 2010-02-09 Canon Kabushiki Kaisha Method of generating data servers for heterogeneous data sources
US20050203920A1 (en) * 2004-03-10 2005-09-15 Yu Deng Metadata-related mappings in a system
US20070156737A1 (en) * 2005-12-15 2007-07-05 First Data Corporation Application integration systems and methods
US7904892B2 (en) * 2006-01-06 2011-03-08 Northrop Grumman Corporation Systems and methods for identifying and displaying dependencies

Also Published As

Publication number Publication date
EP2260378A2 (en) 2010-12-15
EP2260378A4 (en) 2012-10-31
WO2009108427A2 (en) 2009-09-03
CN101952799A (zh) 2011-01-19
WO2009108427A3 (en) 2009-11-05
JP2011513835A (ja) 2011-04-28
US20090216793A1 (en) 2009-08-27
CN101952799B (zh) 2013-06-26
US7860900B2 (en) 2010-12-28

Similar Documents

Publication Publication Date Title
JP5129351B2 (ja) 一貫性を有するシグナリング状態の変化
WO2021088437A1 (zh) 基于多环境离线任务的版本发布方法及装置
US7899798B2 (en) Observing and reporting changes in complex software dependencies
CN108008950B (zh) 一种用户界面更新的实现方法及装置
JP2011513835A5 (ja)
US20130007773A1 (en) Systems, methods, apparatuses, and computer program products for facilitating integration of third party technology with a database
CN111427859B (zh) 一种消息处理方法、装置、电子设备及存储介质
AU2011282969A1 (en) Application instance and query stores
CN103226474A (zh) 网页脚本与浏览器程序之间的交互方法、装置及系统
CN111782201B (zh) 实现业务代码和编排拓扑图联动的方法及装置
US10303558B2 (en) Checkpointing higher order query operators
CN112131013A (zh) 分布式系统中调用链的监控方法、装置、设备及存储介质
JP5421228B2 (ja) 仮想タスクを使用した関係可視化のためのプログラム、装置およびその方法
US20200267206A1 (en) Method and apparatus for data quality framework module
CN115809056B (zh) 组件复用实现方法、装置和终端设备、可读存储介质
CN105068912B (zh) 用于执行网页任务的方法和装置
CN111176987A (zh) 前端日志统一输出的方法、装置、计算机设备及存储介质
US11816177B2 (en) Streaming static web page generation
CN110417912B (zh) 一种文件下载完成后回调的方法
CN114238834A (zh) 基于发布订阅式物联网大数据实时处理方法、装置及系统
CN111475317B (zh) Spark批次时间修改方法、装置、设备和存储介质
US11558180B2 (en) Key-value store with blockchain properties
CN113849516A (zh) 数字地图的更新方法及装置、电子设备、存储介质
CN109960659B (zh) 用于检测应用程序的方法和装置
US8584143B2 (en) Collection access in a parallel environment

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120113

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120202

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20120202

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20120215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120403

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120703

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: 20121002

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: 20121101

R150 Certificate of patent or registration of utility model

Ref document number: 5129351

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: 20151109

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

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