JP2009536403A - ワーク・アイテム・イベント処理 - Google Patents
ワーク・アイテム・イベント処理 Download PDFInfo
- Publication number
- JP2009536403A JP2009536403A JP2009509756A JP2009509756A JP2009536403A JP 2009536403 A JP2009536403 A JP 2009536403A JP 2009509756 A JP2009509756 A JP 2009509756A JP 2009509756 A JP2009509756 A JP 2009509756A JP 2009536403 A JP2009536403 A JP 2009536403A
- Authority
- JP
- Japan
- Prior art keywords
- event
- queue table
- events
- work item
- failover
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本明細書で詳述するのは、特に、フロントエンド・アプリケーションとバックエンド・サーバとの間のイベント・フローを監視する技術である。1つの方法は、新規イベントがバックエンド・サーバで受け取られる技術である。この新規イベントは、イベントのタイプを有し、これは、新規イベント・フラグを設定するのに使用され、該新規イベント・フラグはそのタイプの新規イベントが受け取られたことを指し示す。新規イベントがキュー・テーブルに追加される。キュー・テーブルから1つまたは複数のイベントが選択され、フェイルオーバー機構が、選択されたイベントが処理中の間、維持される。
Description
多くのソフトウェア・アプリケーションにおいて、特にネットワーク環境においては、1つまたは複数のステートレスな(stateless)フロントエンドのアプリケーションが、単一のステートフルな(state-full)バックエンドに接続する。種々のオブジェクトにアクセスする要求、種々のオブジェクトを変更する要求、種々のオブジェクトを除去する要求などのイベントが、フロントエンド・アプリケーションで受け取られ、バックエンドに転送される。同じオブジェクトへのアクセスを求める複数の要求が同時に、またはほぼ同時に受け取られる。多くのそのようなアプリケーションにおいては、そのようないずれの競合する要求も、オブジェクトがアクセスされている間、オブジェクトをロックすることにより、対処される。
ステートフルなバックエンドのオブジェクトがロックされると、要求が現在処理中のアプリケーションのみが、オブジェクトにアクセスすることができる。このようにして、潜在的に競合するアクセス要求や変更要求がオブジェクトに対して同時に行われないので、オブジェクトのインテグリティ(integrity:完全性)が保たれ、破損が避けられる。
この方法には多数の問題が存在する。例えば、オブジェクト・ハンドラは、新規のイベントが受け取られたことを確定する手段を持たない。イベント・ディスパッチ機構は、すでに処理中のイベントと、処理を待機中のイベントと、を区別できない。また、ほとんどのコンピュータ・アプリケーションと同様に、どのイベントが処理済みであるか、どのイベントが現在処理中であるか、どのイベントが未処理であるかの履歴が全く保持されないので、システム障害が重大な時間のロスにつながる。
本明細書で詳述するのは、特に、フロントエンド・アプリケーションとバックエンド・サーバとの間のイベント・フローを監視する技術である。複数のフロントエンド・アプリケーションがバックエンド・サーバ上の同じオブジェクトにアクセスしようとする時、その要求は、キュー・テーブルでキューイングされる。同じバッチ内で処理されるオブジェクトのタイプに従ってキュー・テーブルの順序付けを行うことにより、処理はより効率的になる。新規イベントが受け取られる時に設定されるフラグを組み込むことにより、イベント・ディスパッチ機構は、キュー・テーブルをポーリングすることを必要とせずに、新規イベントを知るようになる。キュー・テーブル内のイベントをフラグ設定することは、まだ処理する必要のある他のイベントに対して、どのイベントがすでに処理中であるかを識別することになる。フェイルオーバー「イベント」および関連するモニタを実装することにより、バックエンドが「処理中」の選択したイベントのシステム障害を検出することを可能にし、「正常」バージョンのキュー・テーブルを保存し、次の更新時にフェイルオーバー「イベント」を維持することにより、システムは最小のロスで障害から回復することができる。
この技術の1つの方法では、新規イベントがバックエンドに送られる。新規イベントは関連するイベント・タイプを有する。新規イベントが受け取られると、新規イベント・フラグが、その関連するイベント・タイプに基づいて設定され、特定のイベント・タイプの新規イベントが受け取られたことを指し示す。新規イベントはキュー・テーブルに追加される。複数のイベントが、処理するために、時にはイベント・タイプに基づき、事前にある時間に設定された期限切れ時間(expiration time)を有するグループで、キュー・テーブルから選択される。処理グループ内の各イベントがマークされ、その結果、システムが別のビジネス・アプリケーションが同じイベントを平行して処理するのを防止することになる。
この技術の別の方法では、例えば、1つまたは複数のイベントが処理するのに選択された時に、フェイルオーバー・イベントがキュー・テーブルに追加される。フェイルオーバーの保護イベントは期限切れタイマー(expiration timer)を有する。フェイルオーバー・イベントは監視され、期限切れタイマーが満了した場合、システム障害が発生し、システムは、回復されることが必要になる。例えば、処理中にキュー・テーブルへのアクセスに成功することによって、期限切れタイマーをリセットすることができる。「正常な」状態のキュー・テーブルが保存され、その結果、期限切れタイマーが満了した場合、キュー・テーブルを既知の正常なバージョンに回復することができる。キュー・テーブルの正常なバージョンは、例えば、期限切れタイマーが作成されるときに保存することができる。
上述した「発明を解決するための手段」として説明した内容は、以下の「発明を実施するための最良の形態」でさらに詳述する概念の選択を簡潔に説明するためのものである。本説明は、「請求の範囲」についての重要な機能または不可欠な機能を特定するものではなく、「請求の範囲」を限定するのに使用されることを意図していない。
本明細書の一部に組み込まれ、本明細書の一部を形成する添付図面は、実施形態を示すものであり、本記述と共に「請求の範囲」の原理を説明するのに役立つ。
いくつかの実施形態に関して詳細に言及する。主題を代替実施形態と併せて説明するが、「請求の範囲」の事項をこれらの実施形態に限定するためのものではないことは理解されるだろう。むしろ、「請求の範囲」の事項は、「請求の範囲」により定義される本発明の精神と範囲に含まれる代替物、変更物、等価物を網羅することを意図している。
さらに、以下の詳細な説明において、請求の範囲の主題についての深い理解を提供するために、多数の具体的な細部について説明する。しかし、当業者は、これらの具体的な細部を有しない、またはこれらと等価なものを有する実施形態が実施できることは認識するであろう。その他に、主題の捉え方(aspects)や機能を不必要に分かりにくくしないように、周知の方法、プロシージャ、コンポーネント、回路は、詳細に説明されていない。
以下の詳細な説明の一部は、方法に特有の表現で提示され、説明される。複数のステップとその順序付けは、本方法の動作を説明する本明細書内の図(図6)に示されており、これらのステップとその順序付けは例にすぎない。幾つかの実施形態が、本明細書の図のフローチャート内に列挙されたステップについて、種々の他のステップまたは変形を、本明細書内で図示し説明した以外の順序で、実行するのに十分適している。
詳細な説明の一部は、コンピュータ・メモリ上で実行することができる、データビットに関する動作についての、プロシージャ、ステップ、論理ブロック、処理、および他の記号的表現に特有の表現で、提示されている。これらの説明および表現は、データ処理分野の技術者により使用される意味であり、彼らの仕事の内容を最も効果的に他の当業者に伝達する。プロシージャ、コンピュータ実行ステップ、論理ブロック、処理などが示されるが、一般にこれらは、望ましい結果につながるステップまたは命令の首尾一貫した順序であると考えられる。それらのステップは、物理量の物理操作を要求するステップである。通常は、必ずというわけではないが、これらの物理量は、コンピュータ・システム内で保存され、転送され、結合され、比較され、またはその他の方法で操作されることが可能な電気信号または磁気信号の形をとる。これらの信号を、ビット、値、要素、記号、文字、専門語(terms)、数字などとして参照することは、主に共通に使用できるという理由から時々便利であることが分かった。
しかしながら、これらの語および同様な語の全ては、適切な物理量に関連付けられるべきであって、これらの物理量に付けられた便利なラベルに過ぎないということを心に留めておくべきある。以下の説明から明らかであるように、その他の方法で具体的に示さない限り、本発明全体にわたり、「アクセス」「書き込み」「格納(保存)」「送信」「トラバース」「関連付け」「識別」などの用語を使用する説明は、コンピュータ・システムまたは同様の電子計算装置のアクションおよび処理を指す。コンピュータ・システムまたは同様の電子計算装置は、コンピュータ・システム・レジスタおよびメモリ内の物理(電子)量として表されたデータを操作し、コンピュータ・システム・メモリまたはレジスタ、またはその他の該情報の記憶装置、送信装置または表示装置内の物理量として同様に表されたその他のデータに変換する。
コンピューティング・システム環境10などのコンピューティング装置は、通常、少なくともいくつかの形式のコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピューティング装置によりアクセスできる任意の利用可能な媒体である。例として、コンピュータ可読媒体はコンピュータ記憶媒体および通信媒体を含んでもよいが、これらに限定されない。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラム・モジュールなどの情報を格納するために任意の方法または技術で実装される揮発性および不揮発性で、取り外し可能および取り外し不可能な媒体を含む。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュ・メモリ、またはその他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)またはその他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク、またはその他の磁気記憶装置、所望の情報を格納するのに使用できる、またはコンピューティング装置によりアクセスできる、任意のその他の媒体を含むが、これらに限定されない。一般的に空きの媒体(Vacation media )は、コンピュータ可読命令、データ構造、プログラム・モジュール、またはその他のデータを、キャリア波、またはその他の搬送波機構などの変調されたデータ信号の形で具現化し、任意の情報配信媒体を含む。用語「変調データ信号」は、情報を信号でエンコードするような態様で設定または変更された1つまたは複数の特性セットを有する信号を意味する。例として、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、音響、RF、赤外線などの無線媒体、およびその他の無線媒体を含むが、これらに限定されない。さらに、上述の任意の組み合わせは、コンピュータ可読媒体の範囲に含まれるべきである。
いくつかの実施形態を、1つまたは複数のコンピュータまたはその他の装置により実行されるプログラム・モジュールなどのコンピュータ実行可能命令の一般的なコンテキストで説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。通常、プログラム・モジュールの機能性が、種々の実施形態で望ましいように組み合わせされ、あるいは分散されることができる。
ワークアイテム・イベント・モニタを以下に説明する。いくつかの実施形態において、ワークアイテム・イベント・モニタは、ウェブ・サーバ環境やポータル・サーバ環境などのサーバ・アプリケーションのバックエンドで動作する。モニタは、ステートレスなフロントエンド・アプリケーションから複数の競合する要求を、バックエンド全体で利用可能なステートフルなオブジェクトに調整する。
ワークアイテム・イベント・モニタは、キュー・テーブル(queuing table)を使用して、バックエンドの適切なオブジェクトにまだ配信されていない、フロントエンド・アプリケーションから受け取られたイベントを追跡する。いくつかの実施形態では、さらにワークアイテム・イベント・モニタは、イベント・ディスパッチ機構としての働きもする。本明細書内で示すように、多数の方法でこのキュー・テーブルを監視し、変更することにより、ワークアイテム・イベント・モニタは、タイミング良く新規イベントについてオブジェクトに情報を提供することができ、特定のイベントが配信されたか、または配信する必要があるかを追跡することができ、サーバーのシステム障害から回復させることができ、キュー・テーブルをより効率的にすることができる。
(基本コンピューティング装置)
図1に関して、幾つかの実施形態を実装する例示的なシステムは、コンピューティング・システム環境10などの、汎用コンピューティング・システム環境を含む。その最も基本的な構成においては、コンピューティング・システム環境10は、通常、少なくとも1つの処理ユニット12およびメモリ14を含む。コンピューティング・システム環境の厳密な構成およびタイプに基づいて、メモリ14は揮発性(RAMなど)か、不揮発性(ROM、フラッシュメモリなど)か、これら2つのいくつかの組み合わせとすることができる。この最も基本の構成は、図1では破線16で示されている。さらに、コンピューティング・システム環境10は、追加の機能/機能性を有してもよい。例えば、コンピューティング・システム環境10はさらに、追加の記憶装置(取り外し可能および/または取り外し不可能)を含んでもよい。この記憶装置には、磁気または光のディスクまたはテープを含むが、これらに限定されない。そのような追加の記憶装置は図1では、取り外し可能記憶装置18および取り外し不可能記憶装置20により示されている。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラム・モジュール、またはその他のデータなどの情報を記憶するための任意の方法または技術で実装された揮発性および不揮発性、取り外し可能および取り外し不可能な媒体を含む。メモリ14、取り外し可能な記憶装置18、取り外し不可能な記憶装置20は全て、コンピュータ記憶媒体の例である。
図1に関して、幾つかの実施形態を実装する例示的なシステムは、コンピューティング・システム環境10などの、汎用コンピューティング・システム環境を含む。その最も基本的な構成においては、コンピューティング・システム環境10は、通常、少なくとも1つの処理ユニット12およびメモリ14を含む。コンピューティング・システム環境の厳密な構成およびタイプに基づいて、メモリ14は揮発性(RAMなど)か、不揮発性(ROM、フラッシュメモリなど)か、これら2つのいくつかの組み合わせとすることができる。この最も基本の構成は、図1では破線16で示されている。さらに、コンピューティング・システム環境10は、追加の機能/機能性を有してもよい。例えば、コンピューティング・システム環境10はさらに、追加の記憶装置(取り外し可能および/または取り外し不可能)を含んでもよい。この記憶装置には、磁気または光のディスクまたはテープを含むが、これらに限定されない。そのような追加の記憶装置は図1では、取り外し可能記憶装置18および取り外し不可能記憶装置20により示されている。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラム・モジュール、またはその他のデータなどの情報を記憶するための任意の方法または技術で実装された揮発性および不揮発性、取り外し可能および取り外し不可能な媒体を含む。メモリ14、取り外し可能な記憶装置18、取り外し不可能な記憶装置20は全て、コンピュータ記憶媒体の例である。
コンピューティング・システム環境10はさらに、他の装置との通信を可能にする通信接続22を含むことができる。通信接続22は、通信媒体の一例である。
コンピューティング・システム環境10はさらに、キーボード、マウス、ペン、音声入力装置、タッチ入力装置などの入力装置(単数または複数)を含むことができる。ディスプレイ、スピーカ、プリンタなどの出力装置(単数または複数)も含むことができる。これらの装置全ては当技術分野で周知であり、ここで詳細に説明する必要はない。
(コンピューティング環境)
図2は、一実施形態に従うシステム200が示されている。システム200が特定の機能を含むとして示されているが、システム200は一例にすぎないということは理解されたい。その他の実施形態では、システム200は、示された以外の追加の機能、より少ない機能、または異なる機能を含んでもよい。さらに、いくつかの実施形態では、記載された機能は複数の個別の要素に分離してもよいし、組み合わせてより少ない要素にしてもよい。
図2は、一実施形態に従うシステム200が示されている。システム200が特定の機能を含むとして示されているが、システム200は一例にすぎないということは理解されたい。その他の実施形態では、システム200は、示された以外の追加の機能、より少ない機能、または異なる機能を含んでもよい。さらに、いくつかの実施形態では、記載された機能は複数の個別の要素に分離してもよいし、組み合わせてより少ない要素にしてもよい。
図示するように、システム200は、単一のステートフルなバックエンド220をインターフェースする複数のステートレスなフロントエンド・アプリケーション210、211、212を示す。いくつかの実施形態では、フロントエンド・アプリケーションとバックエンド・アプリケーションとの両方を、コンピューティング・システム環境10などの単一のコンピュータ・システム上で実装してもよい。その他の実施形態では、1つまたは複数のフロントエンド・アプリケーションは遠隔で実行し、例えば単一のウェブ・サーバにアクセスする複数のウェブ・クライアントなどのネットワーク接続を介してバックエンド220にアクセスしてもよい。その他の実施形態では、フロントエンド・アプリケーション210、211、および/または212はその他の方法でバックエンド220と通信する。図示したバックエンド220は、データ・ストア230に接続されている。いくつかの実施形態では、データ・ストア230は、例えばSQLデータベースのデータベースである。その他の実施形態では、データ・ストア230はその他の方法で実装される。
図3は、一実施形態に従うバックエンド220の詳細なブロック図である。バックエンド220は特定の機能を含むとして示されているが、バックエンド220は一例にすぎないということは理解されたい。その他の実施形態では、バックエンド220は、示された以外の追加の機能、より少ない機能、または異なる機能を含んでもよい。さらに、いくつかの実施形態では、記載された機能は複数の個別の要素に分離してもよいし、組み合わせてより少ない要素にしてもよい。
図示するように、バックエンド220は、キュー・テーブル221を含む。いくつかの実施形態では、キュー・テーブル221はバックエンド220に使用されて、フロントエンド・アプリケーションから受け取ったイベントを、データ・ストア230内のオブジェクトに配信されるまで保持する。いくつかの実施形態では、キュー・テーブル221はさらに、これらの要求を順序付けし、より効率的な処理を行うために使用される。
バックエンド220はさらに、いくつかのバッチ・テーブル222、223、224を含むとして示されている。複数のバッチ・テーブルを含むいくつかの実施形態では、フロントエンド・アプリケーションから受け取られたイベントおよびバックエンド220により生成されたイベントは、いくつかのバッチ・タイプに分類(sort)される。これらのバッチ・タイプの幾つかまたは全ては、バックエンド内のバッチ・テーブルに関連付けられていることができる。これらのバッチ・テーブルを使用して、イベントを処理するのに必要な追加の情報を保存することができる。その他の実施形態では、バッチ・テーブルを省略している。
図3は、キュー・テーブル221、バッチ・テーブル222〜224をバックエンド220の一部として示されているが、いくつかの実施形態では、これらのテーブルはバックエンド220にアクセス可能な任意の場所に保存されてもよい。例えば、これらのテーブルをデータ・ストア230内に格納してもよい。
図3はさらに、バックエンド220に接続されたデータ・ストア230を示す。データ・ストア230は、ワークフロー・タイプのオブジェクト、ワークフロー・オブジェクト231を収容しているとして示されている。
(イベントの効率的な順序付け)
システムの効率、特に要求を効率的に処理することは、実質的に、イベントがどのような順序でキュー・テーブルから対象とするオブジェクトに渡されるかによって決まる。いくつかの実施形態では、キュー・テーブルまたはその調整テーブルに対するインデックスは、この処理を速めるように順序付けされる。
システムの効率、特に要求を効率的に処理することは、実質的に、イベントがどのような順序でキュー・テーブルから対象とするオブジェクトに渡されるかによって決まる。いくつかの実施形態では、キュー・テーブルまたはその調整テーブルに対するインデックスは、この処理を速めるように順序付けされる。
キュー・テーブルの1つの手法は、イベントが処理されるべき時刻に基づいてそのテーブルを順序付けすることである。例えば、イベントがフロントエンドからバックエンドに渡されると、追加の要求される処理時間が生じることが多い。この処理時間は、要求に対する優先度、緊急度レベルを示すことができる。例えば、リアルタイムにバックエンドからのデータを求めるリアルタイム・アプリケーションは、イベントが早急に処理されることを要求するが、別の、非リアルタイムなフロントエンド・アプリケーションから受け取られたイベントは、緊急度が低く、したがってより長い利用可能な処理時間を有する。
いくつかの実施形態では、キュー・テーブルを順序付けする別の手法がとられている。いくつかのそのような実施形態では、キュー・テーブルまたはキュー・テーブルに対するインデックスは、バッチ・タイプにより順序付けされる。このようにして、特定のバッチ・タイプの全てのジョブが、一緒にグループ化され、その後一緒に処理される。同じバッチ内で処理されるオブジェクトのタイプに従ってキュー・テーブルを順序付けすることにより、これらの実施形態ではその他の手法では欠如している、あるレベルの効率性が得られる。
(新規イベントの監視)
イベント管理に対するキュー・テーブル手法に固有の1つの問題は、バックエンドが待機イベントを認識するが、種々のオブジェクトに対するイベント・ハンドラが一般に存在しないことである。いくつかの手法において、この問題は、キュー・テーブルをポーリングすることにより対処される。特定のオブジェクト用のイベント・ハンドラが、キュー・テーブルへのアクセス権が与えられ、イベント・ハンドラが担当するオブジェクトに向けられたイベントを、キュー・テーブル全体を通して、検索することになる。
イベント管理に対するキュー・テーブル手法に固有の1つの問題は、バックエンドが待機イベントを認識するが、種々のオブジェクトに対するイベント・ハンドラが一般に存在しないことである。いくつかの手法において、この問題は、キュー・テーブルをポーリングすることにより対処される。特定のオブジェクト用のイベント・ハンドラが、キュー・テーブルへのアクセス権が与えられ、イベント・ハンドラが担当するオブジェクトに向けられたイベントを、キュー・テーブル全体を通して、検索することになる。
いくつかの実施形態において、この問題は、イベントがキュー・テーブルに追加される際にイベントを監視することで、より良く対処できる。一実施形態では、例えば、バックエンドで実行中のワークアイテム・イベント・モニタは、イベントがキュー・テーブルに追加されるときにイベントを監視する。イベントが特定のバッチ・タイプ、例えばワークフロー・オブジェクトのイベントである場合、ワークアイテム・イベント・モニタは、このタイプの新規イベントが追加されたことを表示するシグナルまたはフラグを更新する。いくつかの実施形態では、このフラグは、特定のオブジェクト用のイベント・ハンドラに利用できる。
一実施形態においては、フラグは、簡単なブール(Boolean)タイプであり、このタイプの新規のイベントがあるか否かを表示する。その他の実施形態では、より複雑なフラグ・システムが利用される。
いくつかの実施形態において、新規のイベント・フラグが、適切なバッチ・タイプのバッチ・テーブルに配置され、例えば、新規ワークフロー・イベントを指し示す新規イベント・フラグが、ワークフロー・タイプ用のバッチ・テーブルの一部になる。その他の実施形態では、フラグはその他の場所に配置される。
(イベントのディスパッチ)
キュー・テーブルの手法により生じた別の問題は、イベントが適切なイベント・ハンドラに渡されたか否かをイベント・ディスパッチ機構がどのようにして判断するかである。いくつかの実施形態では、この問題に対処するのに使用される手法は、イベントをキュー・テーブル自身内でマーク付けすることである。
キュー・テーブルの手法により生じた別の問題は、イベントが適切なイベント・ハンドラに渡されたか否かをイベント・ディスパッチ機構がどのようにして判断するかである。いくつかの実施形態では、この問題に対処するのに使用される手法は、イベントをキュー・テーブル自身内でマーク付けすることである。
いくつかの実施形態では、イベント・ディスパッチ機構がキュー・テーブルを調べて、今実行されるべきワークアイテムを識別する。いくつかの実施形態では、このタスクは、上述の方法で、処理時間が期限切れになった処理時間を有する、または期限切れになりつつある処理時間を有する、特定のバッチ・タイプに関連する全てのワークアイテムを見つけることにより、達成される。このようにキュー・テーブルを調べることは、処理されていないイベントと、現在処理中のイベントとの両方を識別することになる。
異なるフロントエンド・マシーン上で実行する複数のイベント・ハンドラに重複イベントを渡すのを避けるために、現在処理中のイベントは、排除する必要がある。いくつかの実施形態では、これは、キュー・テーブル内のワークアイテムをタグ付けして、すでにイベント・ハンドラに渡されたことを示すことにより対処される。いくつかのそのような実施形態では、このタグ付けは、特定のイベントがすでに処理されたか否かを表示する簡単なブール・フラグの形式である。その他の実施形態では、例えば、イベントは、グローバル一意識別子またはGUIDの識別子でマーク付けされる。いくつかの実施形態では、イベントは追加の情報を伝達するような方法でマーク付けされる。別の実施形態では、その他の方法が、すでに適切なイベント・ハンドラに渡されたイベントを識別するのに、使用される。いくつかの実施形態では、この手法は、タグやマークの非存在が特定のイベントがすでに処理されたか否かを表示するという点で、逆になる。
いくつかの実施形態では、タグ付けされていないイベントは、処理するために選択された際にマーク付けされる。例えば、ワークフロー・タイプのイベントを処理すべきである場合、すでにタグ付けされたワークフロー・タイプのどのイベントも無視され、タグ付けされていないイベントがタグ付けされてイベント・ハンドラに渡される。例えば、SQL環境のいくつかの実施形態では、これは2ステップ処理になる。まず、タグ付けされていないイベントがマーク付けされ、次に新しくタグ付けされたイベントが選択される。その他のデータ記憶装置環境を含むその他の実施形態では、このプロセスはより少ないステップか、または追加のステップが必要になる場合がある。
いくつかの実施形態では、処理が完了したとき、イベントはキュー・テーブルから削除されない可能性がある。この状況は、例えば、完全に完了するために、そのイベントが、その後にさらに処理が必要になるなどの、種々の理由から、生じる可能性がある。いくつかのそのような実施形態では、イベントの現在処理中の動作が完了すると、イベントが現在処理中であることを表示するタグが削除される。
(障害回復)
コンピューティング・アプリケーションに固有の関心事(concern)の1つは、障害回復である。本明細書で述べるように、バックエンド・サーバがキュー・テーブル内のイベントが原因で機能しなくなる場合、キュー・テーブルをリストアできるいくつかの手段を組み込むことは、回復プロセスに有益である。
コンピューティング・アプリケーションに固有の関心事(concern)の1つは、障害回復である。本明細書で述べるように、バックエンド・サーバがキュー・テーブル内のイベントが原因で機能しなくなる場合、キュー・テーブルをリストアできるいくつかの手段を組み込むことは、回復プロセスに有益である。
いくつかの実施形態では、このワークアイテム・イベント・モニタは、そのような障害回復機構を組み込む。いくつかのそのような実施形態では、ワークアイテム・イベント・モニタは、システム障害を識別し、システムが安定であると認識されると、キュー・テーブルの前のバージョンに戻すことができる。
いくつかの実施形態では、このタスクは、フェイルオーバー・タイプのイベントをキュー・テーブルに追加することにより達成される。いくつかの実施形態では、このイベントはワークアイテム・イベント・モニタにより生成される。その他の実施形態では、このイベントの作成前に、その他の機構が対応することができる。フェイルオーバー・イベントはキュー・テーブルに追加され、所定の時間に、例えば、追加された時点から15分で期限切れになるように設定される。いくつかの実施形態では、キュー・テーブルがタッチされたときは常に、例えば、キュー・テーブル内のワークアイテムが処理のために選択され、処理IDでタグ付けされるときは常に、フェイルオーバーの期限切れ時間(expiration time)がリセットされる。
一方、いくつかのそのような実施形態では、フェイルオーバー保護モジュールはしばしば、例えば、5分ごとにキュー・テーブルを検査し、フェイルオーバー・イベントを観察する。期限切れになったフェイルオーバー・イベントが検出される場合、ワークアイテム・イベント・モニタは何らかのシステム障害が発生したと認識する。いくつかの実施形態では、システムは、フェイルオーバー保護モジュールが最後にキュー・テーブルのチェックに成功した時の状態に戻る。その他の実施形態では、システムは最後のフェイルオーバー・イベントがリセットされた時の状態に戻る。
いくつかの実施形態において、キュー・テーブルの最後のバッチが処理されたときにフェイルオーバー・イベントは削除される。その他の実施形態では、複数のフェイルオーバー・イベントは、それぞれ異なるバッチ・タイプに関連付けられて利用される。そのような実施形態では、新規のバッチがキュー・テーブルに入るときにフェイルオーバー・イベントが追加され、そのバッチの処理が完了されるときにフェイルオーバー・イベントは削除される。
時間の長さについて上記で例示したが、フェイルオーバー・イベントの期限切れ時間(expiration time)およびフェイルオーバー保護モジュールの動作頻度は、さまざまな実施形態によって異なることは理解されたい。いくつかの実施形態では、システム管理者がこれらのチェックが行われる頻度を判断できるなど、これらの時間は、ユーザが設定可能である。
(ワークアイテム・イベント・モニタ)
図4は、本発明に従うワークアイテム・イベント・モニタのブロック図を示す。ワークアイテム・イベント・モニタ400は、具体的な方法で配置された具体的なコンポーネントを有するとして示されているが、ワークアイテム・イベント・モニタ400は例示するためのものであって、排他的ではない。その他の実施形態では、ワークアイテム・イベント・モニタは、異なるコンポーネント、および/または異なる方法で配置されたコンポーネントを有する。
図4は、本発明に従うワークアイテム・イベント・モニタのブロック図を示す。ワークアイテム・イベント・モニタ400は、具体的な方法で配置された具体的なコンポーネントを有するとして示されているが、ワークアイテム・イベント・モニタ400は例示するためのものであって、排他的ではない。その他の実施形態では、ワークアイテム・イベント・モニタは、異なるコンポーネント、および/または異なる方法で配置されたコンポーネントを有する。
図示した実施形態において、ワークアイテム・イベント・モニタ400は、バックエンド・サーバの一部として実行される。その他の実施形態では、ワークアイテム・イベント・モニタ400は別の場所で実行することができる。
ワークアイテム・イベント・モニタ400は、入力モジュール410を有するとして示されている。図示した実施形態において、入力モジュール410は、ワークアイテム・イベント・モニタ400が、フロントエンド・アプリケーション、例えばフロントエンド210からイベントを受け取ることを可能にする。ワークアイテム・イベント・モニタ400は、また出力モジュール490を有し、これは、いくつかの実施形態では、適切なイベント・ハンドラ、例えば、データ・ストア230内のオブジェクト、にイベントをディスパッチするのに使用される。
ワークアイテム・イベント・モニタ400はさらに、キュー・テーブル420を有するとして示されている。キュー・テーブル420は、フロントエンド・アプリケーションから受け取られたイベントを、列にして待機させるのに使用される。ワークアイテム・イベント・モニタ400はさらに、多数のバッチ・テーブル425a〜425nを有するとして示されている。これらのバッチ・テーブルを含むいくつかの実施形態では、特定のバッチ・タイプに関連付けられた各バッチ・テーブルは、そのバッチ・タイプのイベントの処理に関する情報を保存するのに使用される。
ワークアイテム・イベント・モニタ400は、新規イベント・モニタ430を組み込み、これは、入力モジュール410から受け取った入力を監視し、新規イベントを識別する。ワークアイテム・イベント・モニタ400は、図示するように、キュー順序付けモジュール435を含む。いくつかの実施形態では、キュー順序付けモジュール435は、効率を高めるようにキュー・テーブル420内のイベントを配列する。その他の実施形態では、キュー順序付けモジュール435は、キュー・テーブル420へのインデックス・ファイルを変更する。
ワークアイテム・イベント・モニタ400はさらに、イベント・ディスパッチ・モジュール440を含む。イベント・ディスパッチ・モジュール440は、キュー・テーブル420にアクセスし、処理すべきイベントを識別する。図示するように、イベント・ディスパッチ・モジュール440は、いくつかのタイマー・ジョブ441a〜441nを組み込む。いくつかの実施形態では、各バッチ・タイプは、個別の関連付けられたタイマー・ジョブ441を有する。その他の実施形態では、異なる数のタイマー・ジョブ441が使用される。
ワークアイテム・イベント・モニタ400はさらに、フェイルオーバー保護モジュール450を含む。フェイルオーバー保護モジュール450は、キュー・テーブル424の期限切れになったフェイルオーバー・イベントを監視する。
(ワークアイテム・イベント・モニタの操作)
図5は、一実施形態に従うワークアイテム・イベント・モニタの利用方法のフローチャート500を示す。フローチャート500では固有のステップを示しているが、このステップは例にすぎない。つまり、本発明の実施形態は、種々のその他の(追加の)ステップまたはフローチャート500に示されたステップの変形を実行するのに適している。フローチャート500のステップは提示されたのとは異なる順序で実行してもよく、必ずしもフローチャート500の全てのステップを実行しなくてもよいことは理解されたい。
図5は、一実施形態に従うワークアイテム・イベント・モニタの利用方法のフローチャート500を示す。フローチャート500では固有のステップを示しているが、このステップは例にすぎない。つまり、本発明の実施形態は、種々のその他の(追加の)ステップまたはフローチャート500に示されたステップの変形を実行するのに適している。フローチャート500のステップは提示されたのとは異なる順序で実行してもよく、必ずしもフローチャート500の全てのステップを実行しなくてもよいことは理解されたい。
ステップ510と図2、4を参照すると、ワークアイテム・イベント・モニタが新規イベントを受け取る。例えば、フロントエンド210が、入力モジュール410により受け取られるイベントをバックエンド220にサブミットする。
ステップ520と図4を参照すると、新規イベント・フラグが更新される。いくつかの実施形態では、新規イベント・フラグは、受け取るワーク・アイテム・イベントのタイプに対応する。例えば、受け取られたイベントがワークフロー・タイプである場合、新規イベント・モニタ430は、ワークフロー・タイプに対応するバッチ・テーブル425内のフラグを更新する。
ステップ530と図4を参照すると、新規イベントがキュー・テーブルに追加される。例えば、新規イベント・モニタ430が受け取ったイベントをキュー・テーブル420に渡す。
ステップ540と図4を参照すると、キュー・テーブルはバッチ・タイプに基づいて順序付けされる。いくつかの実施形態では、同じバッチ・タイプで、同じまたは同じくらいの期限切れ時間(expiration time)を有する全てのイベントを一緒にグループ化する。例えば、ワークアイテム・イベント・モニタ400が、それまでに期限切れ時間(expiration times)を有するワークフロー・タイプのいくつかのイベントを受け取った場合、これらのイベントは一緒に処理されるようにグループ化される。
ステップ550と図4を参照すると、イベントが処理のために選択される。いくつかの実施形態では、イベントはジョブのタイプと期限切れ時間(expiration time)に基づいてキュー・テーブルから選択される。いくつかのそのような実施形態では、現在処理中でないイベントのみが選択される、例えば、すでに処理中としてマーク付けされていないイベントのみが選択される。例えば、イベント・ディスパッチ・モジュール440は、ワークフロー・タイプのイベントで、処理中であるとしてすでにマーク付けされておらず、キュー・テーブル420からこれから実行するようにスケジューリングされた全てのイベント、を選択する。
いくつかの実施形態では、イベント選択は、タイマーによってトリガされる。いくつかのそのような実施形態では、複数のタイマーが利用され、特定のイベント・タイプは固有のタイマーを有してもよい。例えば、ワークフロー・タイプに関連付けられたタイマー・ジョブ441aは、リセットしたり期限が切れたりするときには常にワークフロー・タイプのイベントの選択をトリガする。その他の実施形態では、単一のタイマーが利用される。いくつかの実施形態では、イベント選択はその他の方法によりトリガされる。
ステップ560と図4を参照すると、選択されたイベントが処理中であるとしてマーク付けされる。上述したように、種々の実施形態では、このステップは、多数のポイントで実装することができる。例えば、イベント・ディスパッチ・モジュール440は、キュー・テーブル420内の選択したワークフロー・イベントを、GUIDでマーク付けすることにより識別する。
ステップ570と図4を参照すると、選択したイベントは適切なイベント・ハンドラに渡される。例えば、イベント・ディスパッチ・モジュール440により選択されたイベントは、処理するために出力モジュール490に渡される。
(フェイルオーバー保護の利用)
図6を参照すると、一実施形態に従うフェイルオーバー保護を利用することによる障害回復の方法のフローチャート600が示される。フローチャート600では、具体的なステップが示されているが、このステップは例にすぎない。つまり、本発明の実施形態は、種々のその他の(追加の)ステップまたはフローチャート600に示されたステップの変形を実行するのに適している。フローチャート600のステップは提示されたのとは異なる順序で実行してもよく、必ずしも全てのフローチャート600のステップを実行しなくてもよいことは理解されたい。
図6を参照すると、一実施形態に従うフェイルオーバー保護を利用することによる障害回復の方法のフローチャート600が示される。フローチャート600では、具体的なステップが示されているが、このステップは例にすぎない。つまり、本発明の実施形態は、種々のその他の(追加の)ステップまたはフローチャート600に示されたステップの変形を実行するのに適している。フローチャート600のステップは提示されたのとは異なる順序で実行してもよく、必ずしも全てのフローチャート600のステップを実行しなくてもよいことは理解されたい。
ステップ610と図4を参照すると、フェイルオーバー・イベントがキュー・テーブルに追加される。上述したように、このイベントを追加するための機構はさまざまな実施形態によって異なる。いくつかの実施形態では、フェイルオーバー・イベントは、新規イベントがキュー・テーブルに追加されるときには常に追加される。その他の実施形態では、フェイルオーバー・イベントは、イベントの1つのバッチが処理するために選択されるときに追加される。例えば、新規イベントが入力モジュール410により受け取られ、新規イベント・モニタ430に渡され、キュー・テーブル420に追加され、そして複数のイベントがバッチ・テーブル425内で処理するために選択される時に、フェイルオーバー・イベントがキュー・テーブル420に追加される。
ステップ620と図4を参照すると、フェイルオーバー・イベントが更新される。上述したように、フェイルオーバー・イベントが、事前に設定された期限切れ時間(expiration time)を有して、キュー・テーブルに追加される。フェイルオーバー・イベントが期限切れになるまで放置される場合、これはシステムがなんらかの形で機能しなくなったことを指す。システムが正常に実行すると、フェイルオーバー・イベントは期限切れになる前に更新され、期限切れタイマーがリセットされる。いくつかの実施形態では、フェイルオーバー・イベントが関連付けられたイベント・タイプに対してキュー・テーブルがアクセスされると、フェイルオーバー・イベントは更新される。いくつかの実施形態では、上述したように、フェイルオーバー・イベント保護によりフェイルオーバー・イベントは更新される。
ステップ630と図4を参照すると、フェイルオーバー・イベントが削除される。いくつかの実施形態では、フェイルオーバー・イベントに関連したバッチの処理が完了したときにフェイルオーバー・イベントは削除される。いくつかのその他の実施形態では、キュー・テーブル内にイベントが残っていないときにこの削除が生じる。例えば、キュー・テーブル420がフェイルオーバー・イベントを除いて、空(empty)の時、そのフェイルオーバー・イベントが削除される。いくつかの実施形態では、この削除は、フェイルオーバー保護モジュール450により実行される。その他の実施形態では、このタスクはイベント・ディスパッチ・モジュール440により実行される。その他の実施形態では、その他の方法で、キュー・テーブルからフェイルオーバー・イベントが削除される。
各イベントのタイプが関連するフェイルオーバー・イベントを有する場合を含む、その他の実施形態では、フェイルオーバー・イベントは、キュー・テーブル内に、それに関連したイベント・タイプのイベントが何もないときに、削除される。
フローチャート600で示すように、ステップ650、660、670はループされ、ステップ620と同時に実行される。その他の実施形態では、これらのステップを異なる順序で実行してもよい。
ステップ650と図4を参照すると、キュー・テーブルは、定期的に期限切れになったフェイルオーバー・イベントに対してチェックされる。例えば、フェイルオーバー保護モジュール450は、期限切れになったフェイルオーバー・イベントに対して5分ごとにキュー・テーブルをチェックしながら、キュー・テーブルを監視する。フェイルオーバー・イベントがキュー・テーブル内に存在し、期限切れになった場合、システムはイベントがキュー・テーブル内に残っていることを認識するが、最後のフェイルオーバー・イベントが更新されて以来、キュー・テーブルへのアクセスが成功することはない。
ステップ660と図4を参照すると、期限切れになったフェイルオーバー・イベントが発生しない場合、キュー・テーブルの今の状態が保存される。例えば、フェイルオーバー保護モジュール450は、キュー・テーブル420をチェックし、期限切れになったフェイルオーバー・イベントがないことを発見して、キュー・テーブル420の現在の状態は、正常であると認識されて、保存される。いくつかの実施形態において、キュー・テーブルの状態は、フェイルオーバー・イベントの更新が成功するたびにバックアップされる。例えば、処理時にキュー・テーブルがアクセスされる時は常に、フェイルオーバー・イベントが更新され、キュー・テーブルの現在の状態がバックアップされる。
ステップ670と図4を参照すると、期限切れになったフェイルオーバー・イベントがキュー・テーブル内に配置される場合、キュー・テーブルは保存された状態に戻る。例えば、フェイルオーバー保護モジュール450が、キュー・テーブル420内に期限切れになったフェイルオーバー・イベントを検出する場合、キュー・テーブル420は最後に保存した「正常な」状態、例えば、フェイルオーバー・イベントが更新された最後の状態に戻る必要がある。いくつかの実施形態では、ワークアイテム・イベント・モニタは、期限切れになったフェイルオーバー・イベントが検出された場合に追加の動作を実行する。
主題が、構造的特徴および/または方法論的な動作に固有の言葉で説明してきたが、請求の範囲で定義された主題は、必ずしも上述の具体的な特徴または動作に限定されないことは理解されたい。むしろ、上述した具体的な特徴および動作は、請求の範囲を実施する例示的な形態として開示されたものである。
Claims (20)
- イベント・タイプのプロパティを備えるイベントを受け取るステップ、
前記イベント・タイプのプロパティに対応する新規イベント・フラグを更新するステップ、
複数のイベントを含むキュー・テーブルに前記イベントを追加するステップ、
前記キュー・テーブルから前記複数のイベントのうち1つまたは複数を選択して、選択したイベントのグループを得るステップ、および
前記選択したイベントのグループが処理中であることを表示するために、前記選択したイベントのグループをマーク付けするステップと
を含むことを特徴とするイベント・モニタの操作方法。 - 前記イベント・タイプのプロパティに基づいて、前記キュー・テーブルを順序付けするステップをさらに含むことを特徴とする、請求項1に記載の方法。
- 前記選択するステップは、前記イベント・タイプのプロパティを有する前記複数のイベントのうち1つまたは複数を識別するステップを含むことを特徴とする、請求項2に記載の方法。
- 前記新規イベントは、期限切れ時間(expiration time)を備えることを特徴とする、請求項1に記載の方法。
- 前記選択するステップは、設定された期限切れ時間(expiration time)を有する前記複数のイベントのうち1つまたは複数を識別するステップを含むことを特徴とする、請求項4に記載の方法。
- 前記選択したイベントのグループを出力するステップをさらに含むことを特徴とする、請求項1に記載の方法。
- 前記キュー・テーブルはSQLテーブルを備えることを特徴とする、請求項1に記載の方法。
- ステップを実行するためのコンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記ステップは、
期限切れタイマー(expiration timer)を備えるフェイルオーバー・イベントをキュー・テーブルに追加するステップ、
前記キュー・テーブルの正常状態を保存するステップ、
前記フェイルオーバー・イベントと前記期限切れタイマー(expiration timer)とを監視するステップ、および
前記期限切れタイマー(expiration timer)が経過した場合、前記キュー・テーブルを前記正常な状態にリストアするステップ
を含むことを特徴とするコンピュータ可読媒体。 - 前記キュー・テーブルへのアクセスに成功した時に、前記期限切れタイマー(expiration timer)をリセットするステップをさらに含むことを特徴とする、請求項8に記載のコンピュータ可読媒体。
- 前記キュー・テーブルの前記正常な状態を更新するステップをさらに含むことを特徴とする、請求項9に記載のコンピュータ可読媒体。
- 前記正常な状態を更新するステップは、前記期限切れタイマー(expiration timer)のリセットに成功した時に発生することを特徴とする、請求項10に記載のコンピュータ可読媒体。
- 前記監視するステップは、定期的に前記キュー・テーブルにアクセスするステップを含むことを特徴とする、請求項8に記載のコンピュータ可読媒体。
- 前記フェイルオーバー・イベントを追加するステップは、前記キュー・テーブルからのイベントの処理に応答して行うことを特徴とする、請求項8に記載のコンピュータ可読媒体。
- 前記処理が完了した時に、前記キュー・テーブルから前記フェイルオーバー・イベントを削除するステップをさらに含むことを特徴とする、請求項13に記載のコンピュータ可読媒体。
- 待機イベントを保存するためのキュー・テーブル、
前記待機イベントを前記キュー・テーブルに追加したことを検出するための、前記キュー・テーブルに結合された新規イベント・モニタ、
前記待機イベントが前記キュー・テーブルに追加されたことを指し示すための、前記新規イベント・モニタに結合された、新規イベント・フラグ、および
前記キュー・テーブルから前記待機イベントを選択するための、前記キュー・テーブルに結合されたイベント・ディスパッチャ
を備えることを特徴とする、ワークアイテム・イベント・モニタ。 - 前記待機イベントは、イベント・タイプを備えることを特徴とする、請求項15に記載のワークアイテム・イベント・モニタ。
- 前記イベント・ディスパッチャは、前記イベント・タイプに基づいて、前記キュー・テーブルから前記待機イベントを選択することを特徴とする、請求項16に記載のワークアイテム・イベント・モニタ。
- 前記新規イベント・フラグを収容するための、前記新規イベント・モニタに結合された、バッチ・テーブルをさらに備えることを特徴とする、請求項15に記載のワークアイテム・イベント・モニタ。
- 前記イベント・ディスパッチャは、前記待機イベントを選択すべき時間を指し示すタイマーをさらに備えることを特徴とする、請求項15に記載のワークアイテム・イベント・モニタ。
- 前記ワークアイテム・イベント・モニタ内の障害を検出するための、前記キュー・テーブルに結合された、フェイルオーバー保護モニタをさらに備えることを特徴とする、請求項15に記載のワークアイテム・イベント・モニタ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/418,864 US7877757B2 (en) | 2006-05-05 | 2006-05-05 | Work item event monitor for procession of queued events |
PCT/US2007/010918 WO2007130621A2 (en) | 2006-05-05 | 2007-05-04 | Work item event procession |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009536403A true JP2009536403A (ja) | 2009-10-08 |
Family
ID=38662616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009509756A Withdrawn JP2009536403A (ja) | 2006-05-05 | 2007-05-04 | ワーク・アイテム・イベント処理 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7877757B2 (ja) |
EP (1) | EP2021948A4 (ja) |
JP (1) | JP2009536403A (ja) |
KR (1) | KR101365840B1 (ja) |
CN (1) | CN101438275B (ja) |
CL (1) | CL2007001254A1 (ja) |
TW (1) | TW200821863A (ja) |
WO (1) | WO2007130621A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019516171A (ja) * | 2016-03-24 | 2019-06-13 | アリババ グループ ホウルディング リミテッド | サービス処理方法、デバイス、及びシステム |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8909748B1 (en) | 2006-06-22 | 2014-12-09 | Emc Corporation | Configurable views of context-relevant content |
US8898264B1 (en) | 2006-06-22 | 2014-11-25 | Emc Corporation | Linking business objects and documents |
US8898078B2 (en) | 2010-05-21 | 2014-11-25 | Microsoft Corporation | Scalable billing with de-duplication in aggregator |
US8380736B2 (en) * | 2010-05-21 | 2013-02-19 | Microsoft Corporation | De-duplication in billing system |
US20130290385A1 (en) * | 2012-04-30 | 2013-10-31 | Charles B. Morrey, III | Durably recording events for performing file system operations |
WO2020190558A1 (en) * | 2019-03-15 | 2020-09-24 | Fungible, Inc. | Providing scalable and concurrent file systems |
KR102224771B1 (ko) | 2019-04-24 | 2021-03-08 | 주식회사 티맥스티베로 | 데이터베이스 중단 관리 방법 |
KR102247247B1 (ko) * | 2019-06-05 | 2021-05-03 | 주식회사 티맥스티베로 | 데이터베이스 관리 방법 |
US20230153084A1 (en) * | 2021-11-15 | 2023-05-18 | SymOps, Inc. | System and method for processing events |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004192047A (ja) * | 2002-12-06 | 2004-07-08 | Internatl Business Mach Corp <Ibm> | メッセージ処理装置、メッセージ処理方法、及びメッセージ処理プログラム |
WO2004102438A2 (en) * | 2003-05-16 | 2004-11-25 | Sap Aktiengesellschaft | Business process management for a message-based exchange infrastructure |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6242251A (ja) | 1985-08-20 | 1987-02-24 | Matsushita Electric Ind Co Ltd | イベントスケジユ−リング方法 |
US5634127A (en) * | 1994-11-30 | 1997-05-27 | International Business Machines Corporation | Methods and apparatus for implementing a message driven processor in a client-server environment |
US5754857A (en) * | 1995-12-08 | 1998-05-19 | Sun Microsystems, Inc. | Distributed asynchronous workflow on the net |
US6212529B1 (en) | 1996-11-13 | 2001-04-03 | Puma Technology, Inc. | Synchronization of databases using filters |
EP0854431A3 (en) * | 1997-01-20 | 2001-03-07 | International Business Machines Corporation | Events as activities in process models of workflow management systems |
US5978836A (en) * | 1997-07-28 | 1999-11-02 | Solectron Corporation | Workflow systems and methods |
US6320882B1 (en) * | 1997-09-29 | 2001-11-20 | Nortel Networks Limited | Method and apparatus for handling multiple real-time service events |
US6115646A (en) | 1997-12-18 | 2000-09-05 | Nortel Networks Limited | Dynamic and generic process automation system |
US6505228B1 (en) | 1998-07-22 | 2003-01-07 | Cisco Technology, Inc. | Dynamic determination of execution sequence |
US6535905B1 (en) | 1999-04-29 | 2003-03-18 | Intel Corporation | Method and apparatus for thread switching within a multithreaded processor |
US6668281B1 (en) * | 1999-06-10 | 2003-12-23 | General Interactive, Inc. | Relationship management system and method using asynchronous electronic messaging |
US6662199B1 (en) * | 2000-01-04 | 2003-12-09 | Printcafe Systems, Inc. | Method and apparatus for customized hosted applications |
US20020032692A1 (en) * | 2000-09-08 | 2002-03-14 | Atsuhito Suzuki | Workflow management method and workflow management system of controlling workflow process |
GB0029226D0 (en) * | 2000-11-30 | 2001-01-17 | Ebbon Dacs Ltd | Improvements relating to information systems |
US7174534B2 (en) * | 2001-01-22 | 2007-02-06 | Symbol Technologies, Inc. | Efficient system and method for running and analyzing multi-channel, multi-modal applications |
US7240324B2 (en) * | 2001-02-28 | 2007-07-03 | Hewlett-Packard Development Company, L.P. | Event-based scheduling method and system for workflow activities |
US20020138321A1 (en) * | 2001-03-20 | 2002-09-26 | Applied Materials, Inc. | Fault tolerant and automated computer software workflow |
DE60203117T2 (de) * | 2001-05-12 | 2006-05-24 | International Business Machines Corp. | Signalisierung von ereignissen in arbeitsfluss-verwaltungssystemen |
US7454751B2 (en) * | 2001-06-07 | 2008-11-18 | Intel Corporation | Fault-tolerant system and methods with trusted message acknowledgement |
WO2003014927A2 (en) * | 2001-08-08 | 2003-02-20 | Trivium Systems Inc. | Scalable messaging platform for the integration of business software components |
US8549048B2 (en) * | 2001-12-19 | 2013-10-01 | Emc Corporation | Workflow database for scalable storage service |
US8271882B2 (en) * | 2002-04-24 | 2012-09-18 | Sap Ag | Processing life and work events |
US20040162741A1 (en) * | 2003-02-07 | 2004-08-19 | David Flaxer | Method and apparatus for product lifecycle management in a distributed environment enabled by dynamic business process composition and execution by rule inference |
US20050022164A1 (en) * | 2003-02-25 | 2005-01-27 | Bea Systems, Inc. | Systems and methods utilizing a workflow definition language |
US6985920B2 (en) * | 2003-06-23 | 2006-01-10 | Protego Networks Inc. | Method and system for determining intra-session event correlation across network address translation devices |
WO2005008433A2 (en) * | 2003-07-11 | 2005-01-27 | Computer Associates Think, Inc. | System and method for creating and using self describing events in automation |
SE526532C2 (sv) | 2003-08-27 | 2005-10-04 | Unirox Wireless Technology Ab | Förfarande, server och dataprogramsprodukt för fjärrhantering av Web-tjänstarbetsflöden |
US7296008B2 (en) * | 2004-08-24 | 2007-11-13 | Symantec Operating Corporation | Generation and use of a time map for accessing a prior image of a storage device |
US7409587B2 (en) * | 2004-08-24 | 2008-08-05 | Symantec Operating Corporation | Recovering from storage transaction failures using checkpoints |
CN1318971C (zh) * | 2003-11-18 | 2007-05-30 | 神达电脑股份有限公司 | 提升多任务作业环境下数据储存装置整体工作效率的方法 |
US7779421B2 (en) * | 2005-06-30 | 2010-08-17 | Ebay Inc. | Business event processing |
-
2006
- 2006-05-05 US US11/418,864 patent/US7877757B2/en active Active
-
2007
- 2007-05-01 TW TW096115492A patent/TW200821863A/zh unknown
- 2007-05-03 CL CL2007001254A patent/CL2007001254A1/es unknown
- 2007-05-04 JP JP2009509756A patent/JP2009536403A/ja not_active Withdrawn
- 2007-05-04 KR KR1020087027144A patent/KR101365840B1/ko active IP Right Grant
- 2007-05-04 WO PCT/US2007/010918 patent/WO2007130621A2/en active Application Filing
- 2007-05-04 EP EP07794576A patent/EP2021948A4/en not_active Withdrawn
- 2007-05-04 CN CN200780016111XA patent/CN101438275B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004192047A (ja) * | 2002-12-06 | 2004-07-08 | Internatl Business Mach Corp <Ibm> | メッセージ処理装置、メッセージ処理方法、及びメッセージ処理プログラム |
WO2004102438A2 (en) * | 2003-05-16 | 2004-11-25 | Sap Aktiengesellschaft | Business process management for a message-based exchange infrastructure |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019516171A (ja) * | 2016-03-24 | 2019-06-13 | アリババ グループ ホウルディング リミテッド | サービス処理方法、デバイス、及びシステム |
US11445030B2 (en) | 2016-03-24 | 2022-09-13 | Advanced New Technologies Co., Ltd. | Service processing method, device, and system |
Also Published As
Publication number | Publication date |
---|---|
CL2007001254A1 (es) | 2008-01-18 |
CN101438275B (zh) | 2012-07-04 |
KR20090005367A (ko) | 2009-01-13 |
WO2007130621A2 (en) | 2007-11-15 |
WO2007130621A3 (en) | 2007-12-27 |
KR101365840B1 (ko) | 2014-02-21 |
EP2021948A2 (en) | 2009-02-11 |
EP2021948A4 (en) | 2009-12-16 |
CN101438275A (zh) | 2009-05-20 |
US20070261063A1 (en) | 2007-11-08 |
TW200821863A (en) | 2008-05-16 |
US7877757B2 (en) | 2011-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009536403A (ja) | ワーク・アイテム・イベント処理 | |
US7698602B2 (en) | Systems, methods and computer products for trace capability per work unit | |
JP5075736B2 (ja) | 仮想サーバのシステム障害回復方法及びそのシステム | |
US8140591B2 (en) | Enabling workflow awareness within a business process management (BPM) system | |
US8996925B2 (en) | Managing error logs in a distributed network fabric | |
US20070255682A1 (en) | Fault tolerant facility for the aggregation of data from multiple processing units | |
US9189303B2 (en) | Shadow queues for recovery of messages | |
US11221785B2 (en) | Managing replication state for deleted objects | |
US7624309B2 (en) | Automated client recovery and service ticketing | |
JP2005267233A (ja) | バックアップシステム及び方法並びにプログラム | |
JP5705871B2 (ja) | 分散された永続性インスタンスに対するロックの解決 | |
US20190171493A1 (en) | Managing metadata for a distributed processing system with manager agents and worker agents | |
JP5268589B2 (ja) | 情報処理装置及び情報処理装置の運用方法 | |
JP2016538631A (ja) | トランザクション処理方法および装置 | |
US8468386B2 (en) | Detecting and recovering from process failures | |
CN106874343B (zh) | 一种时序数据库的数据删除方法及系统 | |
WO2024179138A1 (zh) | 消息处理方法、装置、通信设备及存储介质 | |
JP5642725B2 (ja) | 性能分析装置、性能分析方法及び性能分析プログラム | |
CN111971667B (zh) | 可恢复的合并排序 | |
CN116955006A (zh) | 数据备份方法、导出方法、恢复方法、装置、设备及介质 | |
JP5884566B2 (ja) | バッチ処理システム、進捗状況確認装置、進捗状況確認方法、及びプログラム | |
JP5466740B2 (ja) | 仮想サーバのシステム障害回復方法及びそのシステム | |
US11340964B2 (en) | Systems and methods for efficient management of advanced functions in software defined storage systems | |
CN107209882B (zh) | 对于处在管理之下的设备的多阶段撤销注册 | |
CN104220982A (zh) | 一种事务处理方法与装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100430 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120914 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20121023 |