JP2009522639A - 複数の並行ワークフロー持続スキーム - Google Patents

複数の並行ワークフロー持続スキーム Download PDF

Info

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
Application number
JP2008548518A
Other languages
English (en)
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 JP2009522639A publication Critical patent/JP2009522639A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow 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つ以上の持続サービスが、ワークフローに適合する(および/またはやり取りする)ことが可能となる。
以下は、本発明の特定の態様による例示的なルーティング持続サービスプロバイダを提供する。
Figure 2009522639
Figure 2009522639
Figure 2009522639
ここで図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)

  1. コンピュータ実装されるシステムであって、
    各ワークフローインスタンスを対応する持続サービス実装に経路指定するルーティング持続サービス(140)を有するワークフローシステム(100)と、
    複数の持続サービス実装(141、145)であって、前記対応する持続サービス実装が、前記ルーティング持続サービス(140)によってワークフロータイプに割り当てられる複数の持続サービス実装(141、145)と
    であるコンピュータ実行可能コンポーネントを備えることを特徴とするコンピュータ実装されるシステム。
  2. 前記ワークフローシステムは、ワークフローインスタンスと持続サービス実装との間のキャッシング関連を管理する関連検索コンポーネントをさらに備えることを特徴とする請求項1に記載のコンピュータ実装されるシステム。
  3. 前記関連検索コンポーネントは、表形式の配列をさらに備えることを特徴とする請求項2に記載のコンピュータ実装されるシステム。
  4. 前記関連検索コンポーネントは、ワークフロー識別の配列をさらに備えることを特徴とする請求項2に記載のコンピュータ実装されるシステム。
  5. 前記複数の持続サービス実装は、データベース、XML/テキストファイル、およびインメモリストレージの少なくとも1つを備えることを特徴とする請求項1に記載のコンピュータ実装されるシステム。
  6. ホストアプリケーションと持続ストアとの間のやり取りを提供するワークフロープロバイダクラスをさらに備えることを特徴とする請求項1に記載のコンピュータ実装されるシステム。
  7. 前記ワークフローインスタンスは、前記ルーティング持続サービスによって登録可能であることを特徴とする請求項2に記載のコンピュータ実装されるシステム。
  8. 前記複数の持続サービス実装は異なるアプリケーションに適合することを特徴とする請求項6に記載のコンピュータ実装されるシステム。
  9. コンピュータ実装される方法であって、
    ワークフローシステムに関連付けられる各ワークフローインスタンスを、ルーティングサービスプロバイダを介して、対応する持続サービス実装に割り当てることと、
    ワークフローインスタンスを前記対応する持続サービスから取得することと
    であるコンピュータ実行可能なアクトを含むことを特徴とするコンピュータ実装される方法。
  10. ルーティング登録情報を登録することをさらに含むことを特徴とする請求項9に記載のコンピュータ実装される方法。
  11. 前記ルーティングサービスプロバイダを確認することをさらに含むことを特徴とする請求項10に記載のコンピュータ実装される方法。
  12. ワークフローインスタンスを作成することをさらに含むことを特徴とする請求項9に記載のコンピュータ実装される方法。
  13. 前記ワークフローインスタンスと持続サービス実装との間の関連を、識別を介して登録することをさらに含むことを特徴とする請求項12に記載のコンピュータ実装される方法。
  14. ロード方法および保存方法の1つを、前記持続サービス実装から呼び出すことをさらに含むことを特徴とする請求項13に記載のコンピュータ実装される方法。
  15. 前記持続サービス実装に関連付けられるデータストアに接続することをさらに含むことを特徴とする請求項14に記載のコンピュータ実装される方法。
  16. ワークフロー状態表示を取得することをさらに含むことを特徴とする請求項15に記載のコンピュータ実装される方法。
  17. 前記ワークフロー状態表示をワークフローインスタンスに変換することをさらに含むことを特徴とする請求項16に記載のコンピュータ実装される方法。
  18. 前記ワークフローインスタンスをホストに返すことをさらに含むことを特徴とする請求項17に記載のコンピュータ実装される方法。
  19. 前記持続サービス実装の保存方法を呼び出すことをさらに含むことを特徴とする請求項18に記載のコンピュータ実装される方法。
  20. コンピュータ実装されるシステムであって、
    複数のデータストアについての持続関連機能をワークフローのランタイムに組み込むための手段(140)と、
    ワークフローインスタンスと複数の持続サービスとの間の関係をキャッシュするための手段(220)と
    であるコンピュータ実行可能なコンポーネントを備えることを特徴とするコンピュータ実装されるシステム。
JP2008548518A 2005-12-29 2006-11-21 複数の並行ワークフロー持続スキーム Withdrawn JP2009522639A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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