JP2009522639A - 複数の並行ワークフロー持続スキーム - Google Patents
複数の並行ワークフロー持続スキーム Download PDFInfo
- Publication number
- JP2009522639A JP2009522639A JP2008548518A JP2008548518A JP2009522639A JP 2009522639 A JP2009522639 A JP 2009522639A JP 2008548518 A JP2008548518 A JP 2008548518A JP 2008548518 A JP2008548518 A JP 2008548518A JP 2009522639 A JP2009522639 A JP 2009522639A
- Authority
- JP
- Japan
- Prior art keywords
- workflow
- computer
- persistence
- service
- persistent
- 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
- 230000002688 persistence Effects 0.000 title claims abstract description 82
- 238000000034 method Methods 0.000 claims abstract description 63
- 230000003993 interaction Effects 0.000 claims abstract description 6
- 230000002085 persistent effect Effects 0.000 claims description 37
- 230000007246 mechanism Effects 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 23
- 238000004891 communication Methods 0.000 description 14
- 230000000694 effects Effects 0.000 description 14
- 238000012545 processing Methods 0.000 description 11
- 238000007726 management method Methods 0.000 description 10
- 230000009471 action Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000000725 suspension Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
-
- 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
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06316—Sequencing of tasks or work
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow analysis
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Engineering & Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Operations Research (AREA)
- Marketing (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Game Theory and Decision Science (AREA)
- Educational Administration (AREA)
- Development Economics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Computer And Data Communications (AREA)
Abstract
ルーティング持続サービスおよび関連検索コンポーネントを利用することを介して、ワークフロー管理、および複数の持続ストアとのワークフローのやり取りを供給するシステムおよび方法。ルーティング持続サービスは、各ワークフローを対応する持続ストアに経路指定し、および/または割り当て、関連検索コンポーネントは、ワークフローインスタンスと複数の持続サービスとの間のキャッシング関連を管理する。したがって本発明は、一般的な抽象ワークフロープロバイダについての複数の具体的な実装を並行使用するための拡張可能および/または接続可能なメカニズムを促進する。
Description
本発明は、複数の並行ワークフロー持続スキームに関する。
典型的に、今日企業で採用されるすべてのソフトウェアは、ビジネスプロセスをサポートする。そのようなプロセスのいくつかは、アプリケーションの中で通信だけに依拠して完全に自動化されているが、他のものは、人々が、プロセスを開始し、プロセスが使用するドキュメントを承認し、発生するいずれかの例外的な状況を解決することに依拠する。いずれの場合でも、共通しているのは、プロセスに関与する人々およびソフトウェアのアクティビティ(activity)を記述するワークフローとして知られている、個別の一連のステップを特定することである。そのようなワークフローを定義すると、アプリケーションを、ビジネスプロセスをサポートする定義に関して構築することができる。
換言すると、ワークフローは一般に、組織の中の情報および制御のフローである。企業は、効果的に競争するために、そのようなプロセスを定義し、文書化し、合理化しようと絶えず努める。ビジネスの場では、これらのプロセスには、販売および注文の処理、購入業務、在庫の制御および管理、製造および生産管理、出荷および受取、支払勘定などが含まれる。
現在、コンピュータシステムおよび関連ソフトウェアは、企業および他の組織が自己のワークフローを改善することができるツールを提供する。ソフトウェアツールを使用して、企業のワークフローのプロセスまたはスケジュールをモデル化し、非効率性および可能性のある改善を識別することができる。さらに、プロセスが、人々、部門(department)、建物(plant)の間で、または別々の会社の間でも、データの交換を伴う場合、コンピュータシステムおよびネットワークを使用して、そのような交換を実装することができる。そのようなシステムおよびソフトウェアツールはさらに、大規模な計算、および典型的にビジネス関連情報と関連付けられる他のデータまたは情報の処理を実装することができる。
したがって、ワークフロー管理には、組織のビジネスプロセスにおける情報フロー制御の効率的な管理が含まれ、そのような情報処理の自動化は、現代のビジネスの世界に多くの効果的な改善をもたらした。さらに、そのようなワークフロー管理の自動化により、企業および他の組織が、インターネットなどのグローバルコンピュータネットワークを含むコンピュータシステムでワークフロートランザクションを実行することによって、さらに実績(performance)を改善することが現在可能となっている。
典型的なワークフローベースのアプリケーションは、複数の条件が満たされることを必要とすることが多い。例えば、そのような条件の1つは、ビジネスルールに基づいて決定を行う能力である。そのようなルールは、簡単なルール(例えば、信用調査の結果に基づく、はい/いいえの決定など)と、より複雑なルール(例えば、最初の引受決定を行うために評価しなければならない、大きくなる可能性のあるセット(potentially large set))を含むことができる。別の必要条件は、ワークフローの外にある他のソフトウェアおよび他のシステムとの通信である。例えば、最初の要求を、アプリケーションの一部分から受信することができるが、いくつかの局面(例えば、クレジットサービスに連絡すること)では、他のウェブサービスまたは技術を使用する通信を要求することができる。満たされるべきさらなる条件は、ユーザとのワークフローの適切なやり取りである。例えば、ワークフローは典型的に、ユーザインタフェース自体を表示すること、または他のソフトウェアを通じて人間とやり取りすることができなければならない。さらに、ワークフローのライフタイムを通じて状態(state)を維持する能力が、満たされる必要がある他の条件である。したがって、ソフトウェアでワークフローを作成し、実行することは、固有の課題(unique challenge)をもたらす。
例えば、いくつかのビジネスプロセスは、完了するのに何時間、何日間、または何週間もかかる可能性があり、そのような長さの時間の間のワークフローの現在の状態についての情報を維持することを求めている。さらに、そのような種類の長期ワークフロー(long-running workflow)は、典型的にノンブロッキングの方法で別のソフトウェアと通信することも要求され、非同期通信により問題が引き起こされる可能性がある。同時に、ソフトウェア中で固定されたやり取りのモデル化は、比較的容易であるが、消費者は、オンザフライでビジネスプロセスを変更する能力などのさらなる柔軟性を引き続き要求する傾向がある。種々のアプリケーションを取り扱うことはさらに、ワークフローの作成および管理に関係する複雑性を増加させる可能性がある。
ワークフローツールに関する多くのアプリケーションは、企業または組織の内部にある。モデムまたは他のタイプの通信リンクを有するネットワーク化されたコンピュータの出現によって、リモートロケーションでのコンピュータシステムは現在、互いに容易に通信することができる。そのような向上された通信により、コンピュータシステムのワークフローアプリケーションを会社内の離れた施設の間で使用することが可能になる。例としては、適切な販売員による確認のために、本社から、離れた場所の営業所に顧客注文を転送し、確認を本社へ返送することが挙げられる。ワークフローアプリケーションはまた、異なる会社間の企業取引の処理に特に有用である可能性がある。典型的なアプリケーションでは、売り手−買い手の関係を有する2つの会社は、購入注文、製品の出荷、請求、および集金の発生と処理を自動化することを望むことがある。
例えば、顧客関係管理(CRM:customer relationship management)などの特定の問題、または金融サービスなどの特定のバーティカルマーケットをターゲットとするアプリケーションを、ワークフローに関して構築することができる。そのような種類のアプリケーションは一般に、多くの異なるビジネスプロセスを実装する。Windows(登録商標) Workflow Foundationなどの一般的なワークフローファンデーションでそれらのプロセスを動かすロジックを構築することにより、アプリケーションを、より速く構築し、より迅速に変更し、より簡単にカスタマイズすることができる。さらに、そのようなプロセスを自動化することにより、他では不可能な著しい効率の向上をもたらすことができる。
しかし、そのようなワークフロー技術の会社間アプリケーションは、複数の会社の協力、ならびに個々の会社の既存のコンピュータシステムおよびアプリケーションの適切なインタフェーシングおよび適切な持続サービス(persistence service)の実装を必要とする。さらに、そのようなワークフローとやり取りするホストアプリケーションは、典型的に同じ持続メカニズムを利用せざるを得ない。そのようなアプローチは、柔軟性を提供するものではなく、したがって異なるアプリケーションが異なるバックエンドとのやり取りを必要とする場合には適当ではない。
したがって、従来のシステムおよびデバイスに関連する上述の例示的な欠点を克服することが必要である。
以下は、特許請求される対象のいくつかの態様についての基本的な理解を与えるために、簡略化した要約を提示する。この要約は広範な概要ではない。主要な/重要な要素を識別すること、または特許請求される対象の範囲を線引きすることを意図するものではない。その唯一の目的は、後に提示されるより詳細な説明に対する前置きとして、いくつかの概念を簡略化した形式で提示することである。
本発明は、ルーティング持続サービス(routing persistence service)および関連検索コンポーネント(association lookup component)を利用することを介して、ワークフロー管理、ならびに複数の持続サービス実装/ストアとのワークフローのやり取りを供給するシステムおよび方法を提供する。ルーティング持続サービスは、ワークフロータイプを持続ストアに経路指定(route)し、および/または割り当て、ワークフローの状態に関するデータ(プロパティ値、現在のアクティビティ、実行シーケンス、中断情報、再開時間、メタデータ、タイムスタンプなど)は、持続ストアに保存される。したがって、ルーティング持続サービスは、持続関連機能(persistence related functionality)をワークフローのランタイム(runtime)に組み込み、ワークフローのインスタンスのそれぞれを、対応する持続サービス実装(persistence service implementation)に登録することができる。さらに、そのようなルーティング持続サービスは、関連検索コンポーネントとやり取りして、ワークフローインスタンスと複数の持続サービス実装との間のキャッシング関連(caching association)を管理する。したがって、1つの持続サービスとやり取りするための従来のワークフローランタイムの典型的な制限とは関係なく、本発明により2つ以上の持続サービスが、ワークフローに適合し、および/またはやり取りすることが可能となる。さらに、そのようなシステムは、一般的で抽象的なワークフロープロバイダについての複数の具体的な実装を同時使用するための、拡張可能および/またはプラグ可能なメカニズムを促進することができる。
例えば、ルーティング持続サービスを、最初に登録し、続いてワークフローに関連付けられるホストサービスによって確認する(verify)ことができる。ワークフロープロバイダのタイプに基づいて、所望の持続サービス実装を(例えば、プログラム的に、および/または構成設定を介して)選択することができ、ワークフローを作成することができる。次に、ワークフローは、インメモリ、リレーショナルデータストア、XML/テキストファイルなどの所望の持続サービス実装に関連付けられる識別(identification)を割り当てることができ、異なるタイプのワークフローを異なる持続ストアに割り当てる(および/またはやり取りする)ことができる。
本発明の態様による関連方法では、ホストアプリケーションは、最初にワークフローのエンジンおよび/またはランタイムに関連付けられるルーティング持続サービスを確認することによって、動作中のワークフローにアクセスすることができる。続いて、ワークフローインスタンス識別(例えば、ID番号など)に基づいて、対応する持続サービスは関連検索コンポーネント(例えば、表形式の配列(tabular arrangement))を介して、ロード方法(load method)を呼び出すこと、および/または保存方法(save method)を呼び出すことができる。次いで、ワークフローインスタンスに(例えば、ホストアプリケーションを介して)アクセスすることが可能である。
ワークフローのインスタンスを保存することに関する本発明のさらなる態様によると、最初に、ワークフローに関連付けられるルーティング持続サービスが確認される。続いてワークフローインスタンスに基づいて、そのようなワークフローインスタンスについてワークフロー状態表示(workflow state representation)が生成される。次いで、そのようなワークフロー状態表示に関連付けられるデータを持続状態(persistence state)に保存することができる。
関連方法では、ワークフローのインスタンスをロードするために、ルーティング持続サービスが最初に確認され、対応する持続ストアへのアクセスが提供される。続いてワークフローインスタンス状態表示を、そのような対応する持続ストアから取得する。次いで、そのような表示は、ワークフローインスタンスに変換され、例えばホストアプリケーションに提供される。
本発明のさらなる態様によると、持続ストアの中のワークフローインスタンスを、関連検索コンポーネントから登録解除することができる。例えば、ワークフローが完了すると、ワークフローインスタンス識別とルーティング持続サービスとの間の関連付け(association)は、(例えば、メモリ内の表の関連付けから)登録が解除される。
複数の持続ストアに適合する/やり取りすることによって、本発明は、異なる種類のアプリケーションが異なるバックエンドと通信するのが可能にするように、ワークフローファンデーションモデルを向上させる。例えば、顧客関係管理(CRM)は、顧客データベースとやり取りすることができるが、ワークフローを活用する別のカスタムメイドのアプリケーションは、別の持続サービス実装を利用する。
前述および関連する目的の達成のために、特許請求される対象の特定の例示的な態様を、以下の説明および添付の図面に関連して本明細書で説明する。これらの態様は、本対象を実施することができる様々な方法を示すものであり、それらのすべては、特許請求される対象の範囲内であることが意図される。他の利点および新規の特徴は、添付の図面とともに考慮される場合に、以下の詳細な説明から明らかになる。
ここで本発明の様々な態様を、同様の参照番号が同様または類似の要素を指す添付の図面を参照して説明する。しかし、図面およびそれに関連する詳細な説明は、特許請求される対象を、開示される特定の形式に限定することを意図するものではないことを理解されたい。むしろ、その意図は、特許請求される対象の精神および範囲内にあるすべての変更形態、同等の物、および代替形態を包含することである。
本明細書で使用される際、「コンポーネント」、「システム」、「サービス」などの用語は、ハードウェア、ハードウェアとソフトウェアとの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかのコンピュータ関連のエンティティを指すことが意図されている。例えば、コンポーネントは、限定ではないが、プロセッサで稼動するプロセス、プロセッサ、オブジェクト、実行可能ファイル(executable)、実行スレッド、プログラム、および/またはコンピュータとすることができる。例として、コンピュータで稼動するアプリケーションとコンピュータの両方とも、コンポーネントとすることができる。1つまたは複数のコンポーネントは、プロセスおよび/または実行スレッド内に存在することができ、コンポーネントを、1つのコンピュータ上に局所化すること、および/または2つまたはそれ以上のコンピュータ間に分散することができる。
「例示的」という語は、本明細書では例、実例または具体例としての役割を果たすことを意味するように使用される。「例示的」であるとして本明細書で説明される任意の態様または設計は、必ずしも他の態様または設計よりも好ましいもの、または有利なものとして解釈されるべきではない。
さらに、ソフトウェア、ファームウェア、ハードウェア、もしくはそれらの任意の組合せを作成して、コンピュータもしくはプロセッサベースのデバイスを制御して、本明細書で詳述される態様を実装するように、開示される対象を、標準的なプログラミングおよび/またはエンジニアリング技術を使用するシステム、方法、装置または生成物として実装することができる。本明細書で使用される場合のコンピュータプログラムという用語は、任意のコンピュータ読み取り可能なデバイス、キャリア、または媒体からアクセス可能なコンピュータプログラムを含むことが意図されている。例えば、コンピュータ読み取り可能な媒体は、磁気ストレージデバイス(例えば、ハードディスク、フロッピー(登録商標)ディスク、磁気ストライプなど)、光ディスク(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)など)、スマートカード、およびフラッシュメモリデバイス(例えば、カード、スティック)を含むことができるが、これらに限定されるものではない。さらに、搬送波を、電子メールの送受信の際に、またはインターネットもしくはローカルエリアネットワーク(LAN)などのネットワークにアクセスする際に使用されるようなコンピュータ読み取り可能な電子データを搬送するために用いることができることを認識されたい。当然のことながら、当業者であれば、特許請求される対象の範囲または精神から逸脱することなく、この構成に対して多くの変更を行うことができることは理解されよう。
最初に図1を参照すると、ルーティング持続サービス140を利用して、ワークフローの管理、および複数の持続サービス実装/ストア141〜145(nを整数として1からnまで)とのワークフローのやり取りを可能にする、ワークフローシステム100のブロック図が図示されている。ワークフローは、アクティビティのマップ(map)として定義される人間またはシステムのプロセスをモデル化することができる。アクティビティとは、ワークフローの中のアクト(act)であり、ワークフローについての実行(execution)、再使用、および構成の単位である。アクティビティのマップは、ルール、アクション、状態、およびそれらの関係を表す。典型的に、ワークフローは、ワークフローエンジン/ランタイム110を介して稼動し、ワークフローランタイムは、ホスト120によって示されているように、いくつかのルールに従って、ワークフローランタイムをホストするために外部アプリケーションを必要とする。
ホスト120は、ワークフロープロバイダベースクラス(Workflow Provider Base Class)135を通じて、ワークフロープロバイダ(Workflow Provider)130とやり取りする。さらに、ホスト120は、1つまたは複数のプロセスの作成、ワークフローの適切な実行のために必要とされる様々なコンポーネント間の呼び出しのマーシャリング(marshaling of call)、および分離メカニズムのセットアップなどの、多くの追加的で重要な態様に関与する可能性がある。さらにホスト120は、スケーラビリティの理由でマシン内の複数の中央処理装置(CPU)を利用するために、またはマシンのファーム(farm)で多数のワークフローインスタンスを実行するために、複数のプロセスを作成することができる。ホスト120はさらに、ワークフローの待ち時間が長くなりそうなときに適用するポリシー(policy)を制御し、特定のイベントを聞いてそれらをユーザまたは管理者に伝え、それぞれのワークフローについてタイムアウトおよび再試行を設定し、パフォーマンスカウンタを公開し、デバッギングおよび診断の目的でログ情報を書き込むことができる。
ワークフローシステム100に関連付けられるワークフローは、そのために特に確立されたサービスを通じて、外部と通信することができ、そのようなサービスは、ワークフロー内のイベントドリブンのアクティビティがフックする(hook up)こととなるイベントを起こすことができる。同様に、このサービスは、ワークフローについてのパブリックメソッド(public method)を公開して、ホストを呼び出すため、ホストにデータを送信する。ワークフローを、例えばコンピュータシステム内の実行のためのスケジュールの形式で定義することができる。スケジュールには、特定の並列性(concurrency)、依存性(dependency)、およびそれらと関連付けられるトランザクションの属性を有するアクション(action)のセットを含めることができる。それぞれのスケジュールは、スケジュールの定義、スケジュール内の現在の位置、ならびにそのスケジュールと関連付けられるアクティブもしくはライブ(live)のデータおよびオブジェクトを含む、関連スケジュール状態(associated schedule state)を有する。スケジュール内では、トランザクション境界(transaction boundary)はアクションのグループ分け(grouping)に基づいて存在することができる。このことに関して、トランザクションは、個々のアクションもしくはトランザクション、またはそれらのグループを含むことができる。以下でさらに論じられるように、アクションを、シリアル方式で(serial fashion)実行されるシーケンスと、アクションが並行して実行されるタスクとにグループ分けすることができる。したがって、このグループ分けに基づいて、並行性の属性(concurrency attribute)を、スケジュール内のアクションおよびトランザクションで決定する(resolve)ことができる。
典型的に、ワークフローは、実行する間、状態を維持する。そのような状態は、ワークフローの開発者によって定義されるデータおよびプロパティの値と、内部実行状態(internal execution state)との両方を含むことができる。さらに実行状態(execution state)は、実行シーケンス(execution sequence)を伴う現在のアクティビティ、および任意の関連ある中断情報(relevant suspension information)(例えば、遅延による中断が導入された場合に、ワークフローを再開する時間など)を含むことができる。さらに、実行シーケンスと関連付けられるメタデータを、トラックする(例えば、アクティビティ実行のタイムスタンプなど)ことができ、そのような情報を、実行されたワークフローについての後の分析に使用することができる。
典型的にはこの情報のすべてを、いくつかの持続ストア141〜145に保存しなければならない。本発明のワークフローシステム100は、ワークフロープロバイダイダ130を利用して、基礎をなすストレージと共通のアプリケーションプログラムインタフェース(API)とのやり取りを抽象化する(abstract)ことができ、ワークフローを、例えば(ワークフロー開発者によって定義される)名前の組合せによって、また固有の識別子(identifier)によって識別することができる。したがって、ワークフロープロバイダは、ワークフローの新たなインスタンスを作成し、識別子を与えられたシリアライズされたインスタンス(serialized instance)をロードし、ワークフローインスタンスを保存し、そして既存のワークフローを列挙することを可能にすることができる。複数のワークフローを有するアプリケーションは、本発明の一態様により、異なるワークフローインスタンスについて異なるプロバイダタイプ/実装を選択することができる。これにより、ワークフローは、例えば異なる持続セマンティクス(persistence semantics)、または異なるデータベースのバックエンドを使用することができる。
図1に図示されるように、ルーティング持続サービス140は、ワークフローインスタンスを、複数の持続ストア141〜145から選択される持続ストアに経路指定し、および/または割り当てる。このように、ワークフローの状態に関するデータ(プロパティ値、現在のアクティビティ、実行シーケンス、中断情報、再開時間、メタデータ、タイムスタンプなど)は、持続ストアに保存される。したがって、ルーティング持続サービス140は、持続関連機能をワークフローのランタイムに組み込み、ワークフローインスタンスのそれぞれを対応する持続サービスに登録することができる。さらに、そのようなルーティング持続サービスは、以下で詳細に説明されるように、関連検索コンポーネント(図示せず)とやり取りして、ワークフローインスタンスと複数の持続サービスとの間のキャッシング関連を管理する。したがって、1つの持続サービスとやり取りするための従来のワークフローランタイムの典型的な制限とは関係なく、本発明により、2つ以上の持続サービスが、ワークフローに適合する(および/またはやり取りする)ことが可能となる。
以下は、本発明の特定の態様による例示的なルーティング持続サービスプロバイダを提供する。
ここで図2を参照すると、関連検索コンポーネント220とやり取りして、ワークフローインスタンスと複数の持続サービス232〜234との間のキャッシング関連を管理する、ルーティング持続サービス210のブロック図が図示されている。したがって、ワークフローを、インメモリ、関連データストア、XMLテキストファイルなどの所望の持続ストアに関連付けられるべき識別に割り当てることができ、個々のワークフローを、異なる持続ストアに割り当てる(および/またはやり取りする)ことができる。関連検索コンポーネント220は、その検索についてワークフローインスタンスに関連付けられるプロパティ情報(例えば、属性)を受信することができる。検索コンポーネント220は、ワークフローインスタンスを持続サービスに対応させる(例えば、表形式の)検索リスト(lookup list)を含むことができる。
検索コンポーネント220はさらに、ワークフローインスタンスに関連付けられる情報(例えば、データタイプ(DataType)、データベースおよび/またはオブジェクト)を取得する/利用する。この情報は、例えばワークフローに関連付けられるプロパティを含むことができる。少なくとも部分的に、プロパティ情報とワークフローインスタンスに関連付けられる情報とに基づいて、検索コンポーネントは、構成された検索制御(configured lookup control)(例えば、ID、ディスプレイ値、およびそれらと関連付けるのに必要なメタデータ)を生成することができる。このように、プロパティ値、現在のアクティビティ、実行シーケンス、中断情報、再開時間、メタデータ、およびタイムスタンプなどは、対応する持続ストア230〜234に保存される。さらに、持続ストアをワークフローIDに基づいて選択することができる。クエリ(query)を、ワークフローストアに実行要求(submit)して、クエリ基準(query criteria)に基づいて合致するワークフローを見つけ出すことができる。
本発明の一態様により、システム200は、IDと、ワークフローインスタンスおよび持続サービス実装を関連付けるのに必要とされるメタデータの持続性を組み込む。例えば、ワークフローおよびワークフローインスタンスの状態に関するデータは、プロパティ値、現在のアクティビティ、実行シーケンス、中断情報、再開時間、メタデータ、およびタイムスタンプなどを含むことができ、持続ストアに保存される。ワークフロープロバイダのタイプおよびワークフローインスタンスに基づいて、所望の持続サービス実装230〜234を、(例えば、プログラム的に、および/または構成設定、タグを使用するページ構成などを介して)選択することができ、ワークフローインスタンスは、その中で持続する。複数の持続ストア230〜234に適合する/やり取りすることによって、ワークフローファンデーションのモデルは、異なるタイプのアプリケーションが異なるバックエンドと通信することを可能にするように向上される。例えば、顧客関係管理(CRM)は、顧客データベースとやり取りすることができるが、ワークフローを活用する別のカスタムメイドのアプリケーションは、別の持続サービス実装を利用する。
関連検索コンポーネント220は、識別子からワークフローインスタンスまでマッピングを介してトレースすることによって、(例えば、識別子のソースからターゲットのワークフローインスタンスへの)依存性(dependency)を利用することができる。例えば、識別子がワークフローインスタンスに対応するように、階層合致リスト(hierarchy match list)を生成することができる。このように、マッピング定義ツール(mapping definition tool)は、識別子(ソース)からワークフローインスタンス(ターゲット)へのデータ変換を図式的(graphically)に特定することを可能にすることができる。
先に説明されるように、関連検索コンポーネント220は、ワークフローインスタンスに関連付けられる識別情報(例えば、データタイプ、データベースおよび/またはオブジェクト)を取得する。この情報は、例えば、ワークフローインスタンスに関連付けられるプロパティを含むことができる。少なくとも部分的に、プロパティ情報とワークフローインスタンスに関連付けられる情報とに基づいて、関連検索コンポーネント220は、それぞれの持続サービス実装および/またはデータストアに接続し、ワークフロー状態表示230〜234を取得することができる。そのようなワークフロー状態表示を、返すために、ワークフローインスタンスに変換することができる。
図3は、本発明の一態様による、ワークフローを作成し、持続サービス実装とともに登録するための例示的なフローチャート300を図示する。本明細書では、例示的な方法を、様々なイベントおよび/またはアクトについての一連のブロック表示として図示し、説明するが、本発明は、そのようなブロックの図示される順序によって限定されるものではない。例えば、いくつかのアクトまたはイベントは本発明に従って、本明細書で図示される順序とは別に、異なる順序で、および/または他のアクトもしくはイベントと並行して、生じることがある。さらに、本発明による方法を実装するために、図示されるすべてのブロック、イベントまたはアクトが必要とされるわけではない。さらに、本発明による例示的な方法および他の方法を、本明細書で図示され説明される方法と関連して、また図示もしくは説明されていない他のシステムおよび装置と関連して、実装することができることは理解されよう。最初に310で、ワークフローシステムに関連付けられるルーティング持続サービス(routing persistence service)を確認する。そのようなルーティング持続サービスは、ワークフローを、複数の持続ストアから選択される1つの持続ストアに経路指定および/または割り当てることができる。したがって、ワークフローの状態に関連するデータ(例えば、プロパティ値、現在のアクティビティ、実行シーケンス、中断情報、再開時間、メタデータ、タイムスタンプなど)は、持続ストアに保存される。したがって、ルーティング持続サービスは、持続関連機能をワークフローのランタイムに組み込み、ワークフローのインスタンスのそれぞれを、対応する持続サービスに登録することができる。320で、ワークフロープロバイダのタイプに基づいて、持続サービス実装は、(例えば、プログラム的に、および/または構成設定を通じて)指定および/または取得される。330で、ワークフローを作成し、識別に関連付けることができ、そのような識別は340で、ワークフローインスタンスと対応する持続サービス実装との間で登録される。
図4は、本発明の一態様にかかる、ワークフローランタイムによるルーティング持続サービスに関する例示的な登録方法400を図示する。最初に410で、ルーティング持続サービスに関連した情報が、例えばウェブ構成を介して、および/またはプログラム的に取得される。そのようなルーティング持続サービスは、その後420で、ワークフローシステムに関連してオペレーションを開始し、以下で詳細に説明されるようにワークフローインスタンスを持続サービス実装に登録/登録解除(un-register)するためのマッピングを作成することができる。本発明の態様により、1つの関連について複数の実装が存在し得ることを理解されたい。例えば、複数のワークフローを有するアプリケーションは、本発明の態様によって、ワークフロータイプそれぞれについて異なるプロバイダ実装を選択することができる。これによりワークフローは、異なる持続セマンティクス、または異なるデータベースのバックエンドを使用することが可能になる。ワークフローインスタンスを、データベースまたは同等のストレージにシリアライズすることができ、その後ワークフローの中断の間に、そこからワークフローインスタンスを取り出し、デシリアライズ(deserialize)し、再開することができる。例えば、ワークフローは、多くの理由で中断される可能性がある。すなわち、アクティビティ実行のキャンセル、実行を継続するアクティビティの不能、後の実行を延期するために導入される特定の遅延、および後の実行が異なるユーザによって行われることを必要とするユーザコンテキストの切り替えなどの理由である。同じワークフロー定義(例えば、タイプ/クラス)に由来する2つのワークフローインスタンスは、異なる持続ストアを有するか、または利用することができることを理解されたい。
図5は、本発明の一態様による、ワークフローのランタイムを介してホストアプリケーションにより稼働中のワークフローにアクセスする方法を図示する。ホストアプリケーションは、510で、最初にワークフローエンジンおよび/またはランタイムに関連付けられるルーティング持続サービスを確認することによって、稼働中のワークフローにアクセスすることができる。続いて520で、ワークフローインスタンス識別(例えば、ID番号)に基づいて、対応する持続サービスは、関連検索コンポーネント(例えば、表形式の配列)を介して、ロード方法530を呼び出す、および/または保存方法540を呼び出すことができる。その後ワークフローインスタンスに(例えば、ホストアプリケーションを介して)アクセスすることができる。複数の持続ストアに適合する/やり取りすることによって、本発明は、異なる種類のアプリケーションを可能にするようにワークフローファンデーションを向上させる。
図6は、図5のアクト530にかかるワークフローのインスタンスをロードするための関連方法600を図示する。図6に図示されるように、ルーティング持続サービスは、最初に610で確認され、620で持続ストアに対するアクセスが提供され、630でワークフローインスタンスの状態表示が、対応する持続ストアから取得される。その後そのような表示を、640でワークフローインスタンスに変換することができる。次いでワークフローインスタンスを、その操作に関するホストアプリケーションに提供することができる。
同様に、図7は、図5のアクト540で図示されるようなワークフローのインスタンスを保存するための方法700を図示する。最初に、710でワークフローに関連付けられるルーティング持続サービスが確認され、保存されるべきワークフローが720で取得される。続いて730で、ワークフロー状態表示が、ワークフローインスタンスに関して生成される。そのような表示に関連するデータを、その後740で、データストアおよび/または持続サービス実装に保存することができる。このようにして750で、ワークフローランタイムの保存イベントを起こすことができ、上記で詳しく説明されたように、ワークフローインスタンスにアクセスすることができる。
図8は、持続ストアの中のワークフローインスタンスを関連検索コンポーネントから登録解除する方法800を図示する。例えば、ワークフローが完了すると、ワークフローインスタンスの識別とルーティング持続サービスとの間の関連は、(例えば、メモリ内の表の関連から)登録解除される。最初に810で、ワークフローに関連付けられるルーティング持続サービスが確認される。続いて820で、ワークフローが完了したかチェックされる。完了している場合、830で、ホストにそのように通知することができる。続いて840で、ワークフローインスタンス識別とルーティング持続サービスとの間の関連を、登録解除することができる。
開示される対象の様々な態様に関するコンテキストを提供するために、図9および10とともに以下の議論は、開示される対象の様々な態様を実装することができる適切な環境についての、簡潔で一般的な説明を提供することが意図される。本対象を、1つのコンピュータおよび/または複数のコンピュータで実行するコンピュータプログラムのコンピュータ実行可能命令の一般的なコンテキストで上述したが、当業者であれば、本発明を、別のプログラムモジュールとの組合せでも実装することができることが理解されよう。一般に、プログラムモジュールには、特定のタスクを実行および/または特定の抽象データタイプを実施するルーティン、プログラム、コンポーネント、およびデータ構造などが含まれる。さらに当業者であれば、本発明の方法を、シングルプロセッサもしくはマルチプロセッサのコンピュータシステム、ミニコンピューティングデバイス、メインフレームコンピュータ、およびパーソナルコンピュータ、ハンドヘルドコンピューティングデバイス(例えば、携帯情報端末(PDA)、電話機、時計)、マイクロプロセッサベースもしくはプログラム可能な家庭用電子機器もしくは産業用電子機器などを含む、他のコンピュータシステム構成で実施することができることが理解されよう。図示される態様を、通信ネットワークを通じてリンクされるリモート処理デバイスによってタスクが実行される、分散コンピューティング環境で実施することもできる。しかし、本発明のすべての態様ではなくても一部の態様を、スタンドアローンのコンピュータで実施することができる。分散コンピューティング環境では、プログラムモジュールを、ローカルおよびリモートの両方のメモリストレージデバイスに配置することができる。
図9を参照すると、コンピュータ912を含む、本発明の様々な態様を実装するための例示的環境910が説明されている。コンピュータ912には、処理ユニット914、システムメモリ916、およびシステムバス918が含まれる。システムバス918は、限定ではないがシステムメモリ916を含むシステムコンポーネントを処理ユニット914に結合する。処理ユニット914は、様々な利用可能なプロセッサのいずれかとすることができる。デュアルマイクロプロセッサおよび他のマイクロプロセッサのアーキテクチャを、処理ユニット914として利用することもできる。
システムバス918は、メモリバスもしくはメモリコントローラ、周辺バスもしくは外部バス、および/または様々な利用可能なバスアークテクチャのいずれかを使用するローカルバスを含む、いくつかのバス構造のいずれかとすることができ、様々な利用可能なバスアークテクチャには、限定ではないが、11ビットバス、ISA(Industrial Standard Architecture)、MSA(Micro-Channel Architecture)、EISA(Extended ISA)、IDE(Intelligent Drive Electronics)、VLB(VESA Local Bus)、PCI(Peripheral Component Interconnect)、USB(Universal Serial Bus)、AGP(Advanced Graphics Port)、PCMCIA(Personal Computer Memory Card International Association bus)、およびSCSI(Small Computer Systems Interface)が含まれる。
システムメモリ916は、揮発性メモリ920、および不揮発性メモリ922を含む。起動の間などに、コンピュータ912内の要素の間で情報を転送する基本ルーチンを含む基本入力/出力システム(BIOS)は、不揮発性メモリ922の中に格納される。限定ではなく例として、不揮発性メモリ922は、ROM、PROM、EPROM、EEPROM、またはフラッシュメモリを含むことができる。揮発性メモリ920は、外部キャッシュメモリとして機能するRAMを含む。限定ではなく例として、RAMは、SRAM、DRAM、SDRAM、DDR SDRAM、ESDRAM、SLDRAM、およびDRRAMなどの多くの形式で利用可能である。
コンピュータ912は、リムーバブル/非リムーバブル、揮発性/不揮発性のコンピュータストレージ媒体も含む。図9は、例えばディスクストレージ924を示す。ディスクストレージ924には、限定ではないが、磁気ディスクドライブ、フロッピー(登録商標)ディスクドライブ、テープドライブ、Jazドライブ、Zipドライブ、LS−100ドライブ、フラッシュメモリカード、またはメモリスティックなどのデバイスが含まれる。さらに、ディスクストレージ924は、限定ではないがCD−ROM、CD−Rドライブ、CD−RWドライブ、またはDVD−ROMなどの光ディスクドライブを含む他のストレージ媒体と別に、またはそれとの組合せでストレージ媒体を含むことが可能である。ディスクストレージデバイス924のシステムバス918への接続を容易にするために、典型的にはインタフェース926などのリムーバブルまたは非リムーバブルのインタフェースが使用される。
図9は、適切なオペレーティング環境910の中で説明されるユーザと基本的なコンピュータリソースとの間の媒介(intermediary)としての機能するソフトウェアを説明しているということを理解されたい。そのようなソフトウェアには、オペレーティングシステム928が含まれる。ディスクストレージ924に格納することができるオペレーティングシステム928は、コンピュータシステム912のリソースを制御し、割り当てるように機能する。システムアプリケーション930は、オペレーティングシステム928によりリソースの管理を利用して、プログラムモジュール932およびプログラムデータ934を通じて、システムメモリ916またはディスクストレージ924のいずれかに格納される。本明細書で説明される様々なコンポーネントを、様々なオペレーティングシステム、またはオペレーティングシステムの組合せで実装することができることを理解されたい。
ユーザは、入力デバイス936を通じて、コンピュータ912にコマンドまたは情報を入力する。入力デバイス936には、限定ではないが、マウス、トラックボール、スタイラス、タッチパッド、キーボード、マイクロフォン、ジョイスティック、ゲームパッド、衛星アンテナ、スキャナ、TVチューナーカード、デジタルカメラ、デジタルビデオカメラ、およびウェブカメラなどが含まれる。これらおよび他の入力デバイスは、インタフェースポート938を介して、システムバス918を通じて処理ユニット914に接続する。インタフェースポート938には、例えばシリアルポート、パラレルポート、ゲームポート、およびUSBが含まれる。出力デバイス940は、入力デバイス936と同じタイプのポートのいくつかを使用する。したがって、例えばUSBポートを使用して、入力をコンピュータ912に提供し、コンピュータ912からの情報を出力デバイス940に出力することができる。特定のアダプタを必要とする他の出力デバイス940の中に、モニタ、スピーカ、およびプリンタなどのいくつかの出力デバイス940が存在するということを示すために、出力アダプタ942を載せている。出力アダプタ942には、限定ではなく例として、出力デバイス940とシステムバス918との間の接続手段を提供するビデオおよびサウンドカードが含まれる。他のデバイスおよび/またはデバイスのシステムは、リモートコンピュータ944のように入力と出力との両方の能力を提供するということに留意されたい。
コンピュータ912は、リモートコンピュータ944などの1つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境の中で動作することができる。リモートコンピュータ944は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ワークステーション、マイクロプロセッサベースのアプライアンス、およびピアデバイスもしくは他の一般的なネットワークノードなどとすることができ、典型的には、コンピュータ912に関して説明された要素の多くまたはすべてを含む。簡潔さのため、メモリストレージデバイス946のみが、リモートコンピュータ944とともに示されている。リモートコンピュータ944は、ネットワークインタフェース948を通じてコンピュータ912に論理的に接続され、通信接続950を介して物理的に接続される。ネットワークインタフェース948は、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)などの通信ネットワークを含む。LAN技術には、FDDI、CDDI、Ethernet(登録商標)/IEEE802.3、およびToken Ring/IEEE802.5などが含まれる。WAN技術には、限定ではないが、ポイントツーポイントリンク、ISDNおよびその変形などの回線交換ネットワーク、パケット交換ネットワーク、ならびにDSLが含まれる。
通信接続950は、ネットワークインタフェース948をバス918に接続するのに利用されるハードウェア/ソフトウェアを指す。通信接続950は、例として、明確さのためにコンピュータ912の内部に示されているが、コンピュータ912の外部にあることも可能である。ネットワークインタフェース948への接続に必要なハードウェア/ソフトウェアには、単に例示の目的であるが、標準の電話機グレードのモデム(regular telephone grade modem)、ケーブルモデムおよびDSLモデム、ISDNアダプタ、ならびにEthernet(登録商標)カードなどの、内部的および外部的技術(internal and external technology)が含まれる。
図10は、本発明のワークフロー実装を組み込むのに利用することができるサンプルのコンピューティング環境1000の概略的なブロック図である。システム1000には、1つまたは複数のクライアント1010が含まれる。クライアント1010は、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティングデバイス)とすることができる。システム1000には、1つまたは複数のサーバ1030も含まれる。サーバ1030も、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティングデバイス)とすることができる。サーバ1030は、例えば、本明細書で説明されるコンポーネントを利用することにより変換を実行するスレッドを収容することができる。クライアント1010とサーバ1030との間の1つの可能な通信は、2つまたはそれ以上のコンピュータプロセスの間で伝送されるように構成されたデータパケットの形式とすることができる。システム1000には、クライアント1010とサーバ1030との間の通信を容易にするのに使用することができる通信フレームワーク1050が含まれる。クライアント1010は、クライアント1010にローカルに情報を格納するのに利用されることが可能な1つまたは複数のクライアントデータストア1060に、動作可能に接続される。同様に、サーバ1030は、サーバ1030にローカルに情報を格納するのに利用されることが可能な1つまたは複数のサーバデータストア1040に、動作可能に接続される。
上述されたものには、様々な例示的な態様が含まれる。当然のことながら、これらの態様を説明するために、コンポーネントまたは方法のすべての考えられる組合せを述べることは不可能であるが、当業者であれば、多くのさらなる組合せおよび置き換えが可能であるということが理解されよう。したがって、本明細書で説明される態様は、添付の請求項の精神および範囲内に収まる、すべてのそのような代替形態、変更形態、および変形形態を包含することが意図される。さらに「含む」という語が詳細な説明または特許請求の範囲のいずれかにおいて使用される限りにおいては、そのような語は、「備える」が請求項の中で用いられるときに変形語(transitional word)として解釈されるように、「備える」という語と同様に包括的であることが意図される。
Claims (20)
- コンピュータ実装されるシステムであって、
各ワークフローインスタンスを対応する持続サービス実装に経路指定するルーティング持続サービス(140)を有するワークフローシステム(100)と、
複数の持続サービス実装(141、145)であって、前記対応する持続サービス実装が、前記ルーティング持続サービス(140)によってワークフロータイプに割り当てられる複数の持続サービス実装(141、145)と
であるコンピュータ実行可能コンポーネントを備えることを特徴とするコンピュータ実装されるシステム。 - 前記ワークフローシステムは、ワークフローインスタンスと持続サービス実装との間のキャッシング関連を管理する関連検索コンポーネントをさらに備えることを特徴とする請求項1に記載のコンピュータ実装されるシステム。
- 前記関連検索コンポーネントは、表形式の配列をさらに備えることを特徴とする請求項2に記載のコンピュータ実装されるシステム。
- 前記関連検索コンポーネントは、ワークフロー識別の配列をさらに備えることを特徴とする請求項2に記載のコンピュータ実装されるシステム。
- 前記複数の持続サービス実装は、データベース、XML/テキストファイル、およびインメモリストレージの少なくとも1つを備えることを特徴とする請求項1に記載のコンピュータ実装されるシステム。
- ホストアプリケーションと持続ストアとの間のやり取りを提供するワークフロープロバイダクラスをさらに備えることを特徴とする請求項1に記載のコンピュータ実装されるシステム。
- 前記ワークフローインスタンスは、前記ルーティング持続サービスによって登録可能であることを特徴とする請求項2に記載のコンピュータ実装されるシステム。
- 前記複数の持続サービス実装は異なるアプリケーションに適合することを特徴とする請求項6に記載のコンピュータ実装されるシステム。
- コンピュータ実装される方法であって、
ワークフローシステムに関連付けられる各ワークフローインスタンスを、ルーティングサービスプロバイダを介して、対応する持続サービス実装に割り当てることと、
ワークフローインスタンスを前記対応する持続サービスから取得することと
であるコンピュータ実行可能なアクトを含むことを特徴とするコンピュータ実装される方法。 - ルーティング登録情報を登録することをさらに含むことを特徴とする請求項9に記載のコンピュータ実装される方法。
- 前記ルーティングサービスプロバイダを確認することをさらに含むことを特徴とする請求項10に記載のコンピュータ実装される方法。
- ワークフローインスタンスを作成することをさらに含むことを特徴とする請求項9に記載のコンピュータ実装される方法。
- 前記ワークフローインスタンスと持続サービス実装との間の関連を、識別を介して登録することをさらに含むことを特徴とする請求項12に記載のコンピュータ実装される方法。
- ロード方法および保存方法の1つを、前記持続サービス実装から呼び出すことをさらに含むことを特徴とする請求項13に記載のコンピュータ実装される方法。
- 前記持続サービス実装に関連付けられるデータストアに接続することをさらに含むことを特徴とする請求項14に記載のコンピュータ実装される方法。
- ワークフロー状態表示を取得することをさらに含むことを特徴とする請求項15に記載のコンピュータ実装される方法。
- 前記ワークフロー状態表示をワークフローインスタンスに変換することをさらに含むことを特徴とする請求項16に記載のコンピュータ実装される方法。
- 前記ワークフローインスタンスをホストに返すことをさらに含むことを特徴とする請求項17に記載のコンピュータ実装される方法。
- 前記持続サービス実装の保存方法を呼び出すことをさらに含むことを特徴とする請求項18に記載のコンピュータ実装される方法。
- コンピュータ実装されるシステムであって、
複数のデータストアについての持続関連機能をワークフローのランタイムに組み込むための手段(140)と、
ワークフローインスタンスと複数の持続サービスとの間の関係をキャッシュするための手段(220)と
であるコンピュータ実行可能なコンポーネントを備えることを特徴とするコンピュータ実装されるシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/321,789 US20070156486A1 (en) | 2005-12-29 | 2005-12-29 | Multiple concurrent workflow persistence schemes |
PCT/US2006/045309 WO2007078461A1 (en) | 2005-12-29 | 2006-11-21 | Multiple concurrent workflow persistence schemes |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009522639A true JP2009522639A (ja) | 2009-06-11 |
Family
ID=38225703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008548518A Withdrawn JP2009522639A (ja) | 2005-12-29 | 2006-11-21 | 複数の並行ワークフロー持続スキーム |
Country Status (8)
Country | Link |
---|---|
US (1) | US20070156486A1 (ja) |
EP (1) | EP1966719A1 (ja) |
JP (1) | JP2009522639A (ja) |
KR (1) | KR20080080349A (ja) |
CN (1) | CN101351789A (ja) |
BR (1) | BRPI0618982A2 (ja) |
RU (1) | RU2008126117A (ja) |
WO (1) | WO2007078461A1 (ja) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8849691B2 (en) | 2005-12-29 | 2014-09-30 | Microsoft Corporation | Modeling user input and interaction in workflow based applications |
US8626557B2 (en) * | 2006-09-26 | 2014-01-07 | International Business Machines Corporation | System and method of providing snapshot to support approval of workflow changes |
CN101286212A (zh) * | 2007-04-12 | 2008-10-15 | 国际商业机器公司 | 业务流程执行方法、业务流程引擎及其部署方法 |
US8078555B2 (en) * | 2007-12-14 | 2011-12-13 | Microsoft Corporation | Decoupling static program data and execution data |
US10169199B2 (en) | 2008-06-10 | 2019-01-01 | Microsoft Technology Licensing, Llc | Automatic model-specific debugger extensions |
US9354847B2 (en) | 2008-12-29 | 2016-05-31 | Microsoft Technology Licensing, Llc | Interface infrastructure for a continuation based runtime |
US8250588B2 (en) * | 2009-06-16 | 2012-08-21 | Microsoft Corporation | Persisting application state |
US9535908B2 (en) * | 2009-07-02 | 2017-01-03 | Sharp Laboratories Of America, Inc. | Auto-retrieving to avoid data binding |
US8424009B2 (en) * | 2009-12-04 | 2013-04-16 | Microsoft Corporation | Lock resolution for distributed durable instances |
KR20110066520A (ko) * | 2009-12-11 | 2011-06-17 | 한국전자통신연구원 | SaaS 환경에서의 워크플로우 맞춤화 방법 |
US20110179303A1 (en) | 2010-01-15 | 2011-07-21 | Microsoft Corporation | Persistent application activation and timer notifications |
US8140591B2 (en) * | 2010-01-19 | 2012-03-20 | International Business Machines Corporation | Enabling workflow awareness within a business process management (BPM) system |
US8296780B2 (en) * | 2010-03-23 | 2012-10-23 | Microsoft Corporation | Reducing persistence commands |
US9741006B2 (en) | 2010-05-14 | 2017-08-22 | Oracle International Corporation | System and method for providing complex access control in workflows |
US9589240B2 (en) * | 2010-05-14 | 2017-03-07 | Oracle International Corporation | System and method for flexible chaining of distinct workflow task instances in a business process execution language workflow |
US9852382B2 (en) | 2010-05-14 | 2017-12-26 | Oracle International Corporation | Dynamic human workflow task assignment using business rules |
US8819055B2 (en) | 2010-05-14 | 2014-08-26 | Oracle International Corporation | System and method for logical people groups |
US8522256B2 (en) * | 2010-10-12 | 2013-08-27 | Microsoft Corporation | Hosting non-messaging workflows in a messaging host |
KR20120067889A (ko) * | 2010-12-16 | 2012-06-26 | 한국전자통신연구원 | 멀티 테넌트를 지원하는 워크플로우 처리 시스템 및 그 방법 |
US8862975B2 (en) * | 2011-09-19 | 2014-10-14 | Microsoft Corporation | Web-based workflow service visualization and navigation |
US9536264B2 (en) | 2011-11-14 | 2017-01-03 | Microsoft Technology Licensing, Llc | Host agnostic messaging in a continuation based runtime |
CN102521712B (zh) * | 2011-12-27 | 2015-09-23 | 东软集团股份有限公司 | 一种流程实例数据处理方法和装置 |
CN103426045B (zh) * | 2012-05-22 | 2016-06-29 | 阿里巴巴集团控股有限公司 | 一种流程虚拟机的流转方法和装置 |
RU2630383C2 (ru) * | 2012-08-27 | 2017-09-07 | Общество с ограниченной ответственностью "Колловэар" | Способ обработки процессов машиной состояний |
CN104036335A (zh) * | 2013-03-04 | 2014-09-10 | 富士通株式会社 | 数据处理方法和数据处理装置 |
US10037197B2 (en) | 2013-03-15 | 2018-07-31 | Oracle International Corporation | Flexible microinstruction system for constructing microprograms which execute tasks, gateways, and events of BPMN models |
CN103778511A (zh) * | 2014-01-27 | 2014-05-07 | 北京荣之联科技股份有限公司 | 跨系统监控流程的方法及装置 |
CN104216785B (zh) * | 2014-08-26 | 2017-10-10 | 烽火通信科技股份有限公司 | 通用策略任务系统及其实现方法 |
CN106354566B (zh) | 2015-07-14 | 2019-11-29 | 华为技术有限公司 | 一种命令处理的方法以及服务器 |
Family Cites Families (83)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US953929A (en) * | 1908-11-28 | 1910-04-05 | Crosse Plow Company | Seeder. |
US5490097A (en) * | 1993-03-22 | 1996-02-06 | Fujitsu Limited | System and method for modeling, analyzing and executing work process plans |
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 |
JP2666755B2 (ja) * | 1995-01-11 | 1997-10-22 | 日本電気株式会社 | ワークフローシステム |
US7069451B1 (en) * | 1995-02-13 | 2006-06-27 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US5999911A (en) * | 1995-06-02 | 1999-12-07 | Mentor Graphics Corporation | Method and system for managing workflow |
US6272672B1 (en) * | 1995-09-06 | 2001-08-07 | Melvin E. Conway | Dataflow processing with events |
DE19705955A1 (de) * | 1996-03-29 | 1997-10-02 | Ibm | Verfahren zum Generieren einer Implementierung eines Workflow-Prozessmodells in einer Objektumgebung |
EP0954816A4 (en) * | 1996-04-10 | 2001-01-31 | Paul M Konnersman | COMPUTERIZED SYSTEM FOR WORKING PROCESSES CONSISTING OF INTER-DEPENDENT DECISIONS INVOLVING ONE OR MORE PARTICIPANTS |
JPH10105623A (ja) * | 1996-09-27 | 1998-04-24 | Hitachi Ltd | 階層型ワークフロー管理方法及びワークフロー書類回覧方法 |
US6041306A (en) * | 1996-12-05 | 2000-03-21 | Hewlett-Packard Company | System and method for performing flexible workflow process execution in a distributed workflow management system |
JPH10207939A (ja) * | 1997-01-17 | 1998-08-07 | Nec Corp | ワークフローシステム |
EP0854431A3 (en) * | 1997-01-20 | 2001-03-07 | International Business Machines Corporation | Events as activities in process models of workflow management systems |
US6047260A (en) * | 1997-06-05 | 2000-04-04 | Attention Control Systems, Inc. | Intelligent planning and calendaring system with cueing feature and floating tasks |
US5960404A (en) * | 1997-08-28 | 1999-09-28 | International Business Machines Corp. | Mechanism for heterogeneous, peer-to-peer, and disconnected workflow operation |
US5999910A (en) * | 1997-10-06 | 1999-12-07 | Fmr Corp. | Processing a workflow item |
US6339838B1 (en) * | 1998-01-02 | 2002-01-15 | At&T Corp. | Control of commercial processes |
US6230197B1 (en) * | 1998-09-11 | 2001-05-08 | Genesys Telecommunications Laboratories, Inc. | Method and apparatus for rules-based storage and retrieval of multimedia interactions within a communication center |
JPH11306244A (ja) * | 1998-04-16 | 1999-11-05 | Hitachi Ltd | ワーク管理システム |
US6134559A (en) * | 1998-04-27 | 2000-10-17 | Oracle Corporation | Uniform object model having methods and additional features for integrating objects defined by different foreign object type systems into a single type system |
US6430538B1 (en) * | 1998-04-30 | 2002-08-06 | Enterworks | Workflow management system, method and medium with personal subflows |
US6397191B1 (en) * | 1998-06-05 | 2002-05-28 | I2 Technologies Us, Inc. | Object-oriented workflow for multi-enterprise collaboration |
US6442528B1 (en) * | 1998-06-05 | 2002-08-27 | I2 Technologies Us, Inc. | Exemplar workflow used in the design and deployment of a workflow for multi-enterprise collaboration |
US6282531B1 (en) * | 1998-06-12 | 2001-08-28 | Cognimed, Llc | System for managing applied knowledge and workflow in multiple dimensions and contexts |
JP2003528358A (ja) * | 1998-08-24 | 2003-09-24 | 富士通株式会社 | ワークフローシステムおよび方法 |
US6772407B1 (en) * | 1998-10-02 | 2004-08-03 | International Business Machines Corporation | Staging objects in workflow management systems |
US6820118B1 (en) * | 1999-01-20 | 2004-11-16 | International Business Machines Corporation | Method and system for providing a linkage between systems management systems and applications |
DE10003015A1 (de) * | 1999-02-06 | 2000-08-17 | Ibm | Die Erzeugung von Ereignis-Bedingungs-Aktions-Regeln aus Prozessmodellen |
US6499023B1 (en) * | 1999-02-19 | 2002-12-24 | Lucent Technologies Inc. | Data item evaluation based on the combination of multiple factors |
US6473794B1 (en) * | 1999-05-27 | 2002-10-29 | Accenture Llp | System for establishing plan to test components of web based framework by displaying pictorial representation and conveying indicia coded components of existing network framework |
US6434568B1 (en) * | 1999-08-31 | 2002-08-13 | Accenture Llp | Information services patterns in a netcentric environment |
US6539396B1 (en) * | 1999-08-31 | 2003-03-25 | Accenture Llp | Multi-object identifier system and method for information service pattern environment |
US6769113B1 (en) * | 1999-10-08 | 2004-07-27 | International Business Machines Corporation | Enterprise process models and enterprise application for information technologies |
US6968503B1 (en) * | 2000-03-09 | 2005-11-22 | Quovadx, Inc. | XML user interface for a workflow server |
US7503033B2 (en) * | 2000-04-28 | 2009-03-10 | Microsoft Corporation | Model for business workflow processes |
US6772216B1 (en) * | 2000-05-19 | 2004-08-03 | Sun Microsystems, Inc. | Interaction protocol for managing cross company processes among network-distributed applications |
US6922685B2 (en) * | 2000-05-22 | 2005-07-26 | Mci, Inc. | Method and system for managing partitioned data resources |
JP2001356907A (ja) * | 2000-06-09 | 2001-12-26 | Ibm Japan Ltd | 処理コード情報を有するデータベース・システムおよび情報処理システム |
US6854016B1 (en) * | 2000-06-19 | 2005-02-08 | International Business Machines Corporation | System and method for a web based trust model governing delivery of services and programs |
US7219304B1 (en) * | 2000-06-19 | 2007-05-15 | International Business Machines Corporation | System and method for developing and administering web applications and services from a workflow, enterprise, and mail-enabled web application server and platform |
US6859217B2 (en) * | 2000-07-19 | 2005-02-22 | Microsoft Corporation | System and method to display and manage data within hierarchies and polyarchies of information |
US20020038450A1 (en) * | 2000-08-03 | 2002-03-28 | International Business Machines Corporation | Method and system to run stored procedures as workflow activity implementations |
WO2002019652A2 (en) * | 2000-08-28 | 2002-03-07 | Ramesh Venkataramaiah | System and method for transmitting and retrieving data via a distributed persistence framework |
US20020188597A1 (en) * | 2000-09-01 | 2002-12-12 | Jonathan Kern | Methods and systems for linking tasks to workflow |
US7653566B2 (en) * | 2000-11-30 | 2010-01-26 | Handysoft Global Corporation | Systems and methods for automating a process of business decision making and workflow |
US6801227B2 (en) * | 2001-01-16 | 2004-10-05 | Siemens Medical Solutions Health Services Inc. | System and user interface supporting user navigation and concurrent application operation |
US6675133B2 (en) * | 2001-03-05 | 2004-01-06 | Ncs Pearsons, Inc. | Pre-data-collection applications test processing system |
US6966049B2 (en) * | 2001-04-24 | 2005-11-15 | Heuristics Physics Laboratories, Inc. | Software development tool employing workflows for developing user interactive programs |
US6941514B2 (en) * | 2001-04-30 | 2005-09-06 | Bellsouth Intellectual Property Corporation | System and method for priority-based work order scheduling |
US6983421B1 (en) * | 2001-06-22 | 2006-01-03 | I2 Technologies Us, Inc. | Using connectors to automatically update graphical user interface elements at a client system according to an updated state of a configuration |
US7069536B2 (en) * | 2001-06-28 | 2006-06-27 | International Business Machines Corporation | Method, system, and program for executing a workflow |
US7100147B2 (en) * | 2001-06-28 | 2006-08-29 | International Business Machines Corporation | Method, system, and program for generating a workflow |
US20030023622A1 (en) * | 2001-07-27 | 2003-01-30 | Liaison Technology, Inc. | Manual activity persistence in content management workflow systems |
US20030055668A1 (en) * | 2001-08-08 | 2003-03-20 | Amitabh Saran | Workflow engine for automating business processes in scalable multiprocessor computer platforms |
US20030078975A1 (en) * | 2001-10-09 | 2003-04-24 | Norman Ken Ouchi | File based workflow system and methods |
US20030090514A1 (en) * | 2001-10-23 | 2003-05-15 | Cole Douglas J. | Business process user interface generation system and method |
US7370335B1 (en) * | 2001-11-29 | 2008-05-06 | Vignette Corporation | System and method for providing a public application program interface |
US20030171961A1 (en) * | 2002-03-06 | 2003-09-11 | International Business Machines Corporation | System and method for dynamically routing an object through an organization's workflow system |
US7865867B2 (en) * | 2002-03-08 | 2011-01-04 | Agile Software Corporation | System and method for managing and monitoring multiple workflows |
US7149747B1 (en) * | 2002-06-27 | 2006-12-12 | Siebel Systems, Inc. | Dynamic generation of user interface components |
AU2003262702A1 (en) * | 2002-08-23 | 2004-03-11 | Jway Group, Inc. | Extensible user interface (xui) framework and development environment |
US20040078105A1 (en) * | 2002-09-03 | 2004-04-22 | Charles Moon | System and method for workflow process management |
WO2004038556A2 (en) * | 2002-10-23 | 2004-05-06 | David Theiler | Method and apparatus for managing workflow |
US20040103014A1 (en) * | 2002-11-25 | 2004-05-27 | Teegan Hugh A. | System and method for composing and constraining automated workflow |
US7272820B2 (en) * | 2002-12-12 | 2007-09-18 | Extrapoles Pty Limited | Graphical development of fully executable transactional workflow applications with adaptive high-performance capacity |
US7171664B2 (en) * | 2002-12-16 | 2007-01-30 | International Business Machines Corporation | Content management system and method of employing extensible workflow entities with user-defined attributes in an object-oriented framework |
US7711694B2 (en) * | 2002-12-23 | 2010-05-04 | Sap Ag | System and methods for user-customizable enterprise workflow management |
US7409674B2 (en) * | 2002-12-26 | 2008-08-05 | Research In Motion Limited | System and method of creating and communicating with component based wireless applications |
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 |
US6839062B2 (en) * | 2003-02-24 | 2005-01-04 | Microsoft Corporation | Usage semantics |
US20050044173A1 (en) * | 2003-02-28 | 2005-02-24 | Olander Daryl B. | System and method for implementing business processes in a portal |
US20050005259A1 (en) * | 2003-03-14 | 2005-01-06 | Infowave Software, Inc. | System and method for communication and mapping of business objects between mobile client devices and a plurality of backend systems |
US7876705B2 (en) * | 2003-06-25 | 2011-01-25 | Schlumberger Technology Corporation | Method and apparatus and program storage device for generating a workflow in response to a user objective and generating software modules in response to the workflow and executing the software modules to produce a product |
JP2005050318A (ja) * | 2003-07-16 | 2005-02-24 | Ricoh Co Ltd | ワークフロー管理装置、ワークフロー管理方法、ワークフロー管理プログラム及び記録媒体 |
US7831693B2 (en) * | 2003-08-18 | 2010-11-09 | Oracle America, Inc. | Structured methodology and design patterns for web services |
CA2443454A1 (en) * | 2003-09-11 | 2005-03-11 | Teamplate Inc. | Data binding method in workflow system |
US20050096959A1 (en) * | 2003-10-31 | 2005-05-05 | Microsoft Corporation | Rule engine method and system |
US7698383B2 (en) * | 2004-02-27 | 2010-04-13 | Research In Motion Limited | System and method for building component applications using metadata defined mapping between message and data domains |
US20050203757A1 (en) * | 2004-03-11 | 2005-09-15 | Hui Lei | System and method for pervasive enablement of business processes |
US7881233B2 (en) * | 2004-09-01 | 2011-02-01 | Cisco Technology, Inc. | Techniques for planning a conference using location data |
US20060069596A1 (en) * | 2004-09-29 | 2006-03-30 | Microsoft Corporation | Workflow hosting computing system using a collaborative application |
US7506001B2 (en) * | 2006-11-01 | 2009-03-17 | I3Solutions | Enterprise proposal management system |
US20100324948A1 (en) * | 2009-06-18 | 2010-12-23 | Microsoft Corporation | Managing event timelines |
-
2005
- 2005-12-29 US US11/321,789 patent/US20070156486A1/en not_active Abandoned
-
2006
- 2006-11-21 CN CNA2006800499808A patent/CN101351789A/zh active Pending
- 2006-11-21 RU RU2008126117/09A patent/RU2008126117A/ru not_active Application Discontinuation
- 2006-11-21 BR BRPI0618982-2A patent/BRPI0618982A2/pt not_active Application Discontinuation
- 2006-11-21 EP EP06838333A patent/EP1966719A1/en not_active Withdrawn
- 2006-11-21 WO PCT/US2006/045309 patent/WO2007078461A1/en active Application Filing
- 2006-11-21 JP JP2008548518A patent/JP2009522639A/ja not_active Withdrawn
- 2006-11-21 KR KR1020087015770A patent/KR20080080349A/ko not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
KR20080080349A (ko) | 2008-09-03 |
US20070156486A1 (en) | 2007-07-05 |
EP1966719A1 (en) | 2008-09-10 |
WO2007078461A1 (en) | 2007-07-12 |
BRPI0618982A2 (pt) | 2011-09-20 |
RU2008126117A (ru) | 2010-01-10 |
CN101351789A (zh) | 2009-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009522639A (ja) | 複数の並行ワークフロー持続スキーム | |
Helland | Life beyond distributed transactions | |
US9710773B2 (en) | Modeling user input and interaction in workflow based applications | |
KR20080087802A (ko) | 작업 흐름에 대한 객체 모델 | |
US20230401187A1 (en) | Method and system for migrating content between enterprise content management systems | |
CN102375731B (zh) | 一种免编码集成应用软件平台系统 | |
EP1693765B1 (en) | A data processing system and method | |
CN100594498C (zh) | 海量数据实时处理架构及用于该架构的实时随需处理平台 | |
US7043714B2 (en) | Method, system, and program for using objects in data stores during execution of a workflow | |
US9021392B2 (en) | Managing extension projects with repository based tagging | |
US7945613B2 (en) | Method for non-disruptively associating applications and middleware components with information technology infrastructure | |
US8458729B2 (en) | Managing and optimizing workflows among computer applications | |
CN110806933B (zh) | 一种批量任务处理方法、装置、设备和存储介质 | |
KR20080087801A (ko) | 최종 사용자에 의한 워크플로의 동적 재배치 | |
KR20130116165A (ko) | 통합된 워크플로우와 데이터베이스 트랜잭션 | |
JP2006528801A (ja) | サービス指向ビジネスフレームワークのサービス管理 | |
EP1806688A1 (en) | Decentralised audit system in collaborative workflow environment | |
US20190197601A1 (en) | SaaS CLOUD-BASED SYSTEM FOR SOURCING, PROCURING AND SELLING ENGINEERING COMPONENTS | |
CN116151631A (zh) | 一种业务决策处理系统、一种业务决策处理方法和装置 | |
US20090132463A1 (en) | System and method for facilitating transition between ibm® websphere® mq workflow and ibm® websphere® process server | |
US7707432B2 (en) | Enabling communication between an application program and services used by the application program | |
US7840452B2 (en) | Application, method and process for managing part exchangeability across functional boundaries | |
US20060037031A1 (en) | Enabling communication between a service and an application program | |
KR100383673B1 (ko) | 라우팅 맵을 이용한 워크플로우 시스템의 동적 라우팅 방법 | |
CN112633851A (zh) | 一种控制幂等的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20100202 |