JP5006382B2 - 軽量スレッドの並行処理制御のための宣言型モデル - Google Patents
軽量スレッドの並行処理制御のための宣言型モデル Download PDFInfo
- Publication number
- JP5006382B2 JP5006382B2 JP2009502787A JP2009502787A JP5006382B2 JP 5006382 B2 JP5006382 B2 JP 5006382B2 JP 2009502787 A JP2009502787 A JP 2009502787A JP 2009502787 A JP2009502787 A JP 2009502787A JP 5006382 B2 JP5006382 B2 JP 5006382B2
- Authority
- JP
- Japan
- Prior art keywords
- work items
- synchronization
- execution thread
- handle
- virtual execution
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/52—Indexing scheme relating to G06F9/52
- G06F2209/522—Manager
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
Description
1) 同期フィルタは、[SupportsSynchronization]属性を有する全てのアクティビティに適用される。
2) RootActivity及び同期範囲の全ては、{handle,(GrantedLock)}についての辞書を保持する。各々のGrantedLock構造は、アクティビティ及びWaitListを保持する。GrantedLockはシリアライズすることが可能で、よって辞書であり、両方がパッシベーションを克服することができる。
3) 各々の同期範囲は、その子同期範囲に対するロックマネージャである。ルートアクティビティは、デフォルトのロックマネージャである。ロックマネージャは、子ロック同期範囲に対するロックを許諾して、ロックを得ることができない子同期範囲の待ちリストを保持する責任を負う。
4) 実行(例えば、アクティビティの階層に基づく)についてのWFスレッドの階層及びロックマネージャ/同期範囲についての同様の階層が存在する。
5) その実行方法のSynchronizationFilterは、コールバックで通っているAcquireLocksを呼び出す。
6) AcquireLockが真に戻る場合、アクティビティ実行は進む。そうでなければ、アクティビティ実行はExecuting状態のままである。
7) AcquireLockの範囲内で:
a. アクティビティは、それ自体及び*all*のその子に対する同期ハンドルを集める。いずれかの子が同期ハンドルを有していない場合、さらに階層内でさらに進むのをやめる。次にそれは、重複を除去して、全てのハンドルをソートする。このことは、いかなるデッドロックも避けるためである。
b. ハンドルがない場合、AcquireLockは真に戻る。同期範囲の実行は、それが何にも同期していないので(ノーオペレーション命令)、進むことができる。
c. AcquireLockは、同期範囲である親を探してまたはルートを見つけるまで親階層を進み続ける。各々のステップで同期範囲の親に出会うと、集めたハンドルの各々に対して、親のgrantedlocks辞書がハンドルを有するか否かを調べる。有していない場合には、ロックが与えられた所定のハンドルに対するアクティビティとしてそれ自体を追加する。すでにハンドルを有していて、保有者でない場合、それ自体を待ちリストに加える。それが待ちリストのうちの1つに少なくとも加えられたいずれのポイントでも、AcquireLockは偽に戻る。いずれかの同期範囲親がハンドルの空でないリストを有する場合、親はすでに全てのロックを得たのでブレークして真に戻る。親の同期フィルタは常に子供の前に実行されることを思い出しなさい。
8) 同期フィルタは、アクティビティを完了状態に予約する。一旦完了状態に進むと、フィルタはReleaseLockを呼び出す。
9) ReleaseLockの範囲内で:
a. 各々のステップについて、各々のハンドルに対して親チェーンを進み、所定のハンドルで待っているアクティビティを集める。
b. 全ての待ちアクティビティに対して、再度ロックを得ることを試みる。ロックを得ることができるものに対して、フィルタのコールバックを呼び出す。
Claims (16)
- ワークフローにおいて、特定の共有資源へのアクセスをシリアライズして、スレッド間の同期を実行するシステムであって、前記システムは、
複数の作業項目をスケジューラキューに記憶するメモリ領域であって、前記複数の作業項目の1つ以上は、前記ワークフローにおけるアクティビティにおいて階層構造を有し、かつ前記アクティビティに関連付けられ、前記複数の作業項目の各々は実行スレッドに関連付けられる、メモリ領域と、
コンピュータ実行可能命令を実行するように設定されているプロセッサであって、前記コンピュータ実行可能命令が前記プロセッサに実行させる方法は、
前記スケジューラキューにおける複数の作業項目の各々に同期ハンドルを割り当てる第1のステップであって、前記同期ハンドルは前記複数の作業項目によりアクセスされる予定の前記特定の共有資源を示し、前記スケジューラキュー内の2つ以上の作業項目が同一の同期ハンドルを有すると、前記特定の共有資源は前記同一の同期ハンドルを有する作業項目により共有されている、第1のステップと、
前記割り当てた同期ハンドルを有する作業項目の各々を、仮想実行スレッドにまとめる第2のステップであって、前記仮想実行スレッドは、前記実行スレッドの上に論理的に作成され、前記仮想実行スレッドにおける作業項目は、前記仮想実行スレッドにおける他の作業項目に割り当てた同期ハンドルと同一の同期ハンドルを有する、第2のステップと
前記仮想実行スレッドにおける作業項目の各々に対して、前記割り当てた同期ハンドルと前記アクティビティの前記階層構造における作業項目の位置とに基づいてトークン値を計算する第3のステップと、
前記計算したトークン値に基づいて同期キューに前記仮想実行スレッドにおける作業項目をソートして入れる第4のステップと、
前記同期キューの前記ソートした作業項目の各々を順番に実行して、前期特定の共有資源へのアクセスをシリアライズして、前記仮想実行スレッド間の同期を実行する第5のステップと、
前記同期キューの前記ソートした作業項目の各々を順番に実行している間に、その実行に係る前記仮想実行スレッドが、パッシベーションを要するか否かを判定する第6のステップと、
前記第6のステップにおいて、パッシベーションを要すると判定した場合、前記パッシベーションを要する仮想実行スレッドにおける作業項目及び関連するトークン値をデータストアに記憶することにより、前記同期キューをパッシベートする第7のステップと
を含む、プロセッサと
を備えたことを特徴とするシステム。 - 前記コンピュータ実行可能命令が前記プロセッサに実行させる方法は、前記仮想実行スレッドにおける作業項目の各々に対する前記割り当てた同期ハンドルのプロパティを明示することによって、前記仮想実行スレッドにおける作業項目の各々に対する前記割り当てた同期ハンドルを宣言的に定義するステップをさらに含むことを特徴とする請求項1に記載のシステム。
- 前記第1のステップは、前記複数の作業項目の各々と関連するスレッド範囲を定義するステップを含むことを特徴とする請求項1に記載のシステム。
- 前記階層構造はツリー構造であって、前記第4のステップは、前記ツリー構造における作業項目の位置に基づいて前記仮想実行スレッドにおける作業項目をソートするステップを含むことを特徴とする請求項1に記載のシステム。
- 前記第5のステップは、前記ワークフローを処理することと、関連する状態オートマトンとに従って実行する作業項目の処理状態を実行中の状態に移行することにより前記ソートした作業項目を実行するステップを含むことを特徴とする請求項1に記載のシステム。
- ワークフローにおいて、特定の共有資源へのアクセスをシリアライズして、スレッド間の同期を実行する方法であって、前記方法は、
実行する複数の作業項目をスケジューラキューに入れる第1のステップであって、前記複数の作業項目の1つ以上は、前記ワークフローにおけるアクティビティに関連付けられ、かつ前記アクティビティにおいて順番に並べられ、前記複数の作業項目の各々は実行スレッドに関連付けられる、第1のステップと、
前記スケジューラキューにおける複数の作業項目の各々に同期ハンドルを割り当てる第2のステップであって、前記同期ハンドルは前記複数の作業項目によりアクセスされる予定の前記特定の共有資源を示し、前記スケジューラキュー内の2つ以上の作業項目が同一の同期ハンドルを有すると、前記特定の共有資源は前記同一の同期ハンドルを有する作業項目により共有される、第2のステップと、
前記割り当てた同期ハンドルを有する作業項目の各々を、仮想実行スレッドにまとめる第3のステップであって、前記仮想実行スレッドは、前記実行スレッドの上に論理的に作成され、前記仮想実行スレッドにおける作業項目は、前記仮想実行スレッドにおける他の作業項目に割り当てた同期ハンドルと同一の同期ハンドルを有する、第3のステップと
前記仮想実行スレッドにおける作業項目の各々に対して、前記割り当てた同期ハンドル、及び前記アクティビティの前記順番における作業項目の位置に基づいてトークン値を計算する第4のステップと、
前記計算したトークン値に基づいて同期キューに前記仮想実行スレッドにおける作業項目をソートして入れる第5のステップと、
前記同期キューの前記ソートした作業項目の各々を順番に実行して、前記特定の共有資源へのアクセスをシリアライズして、前記仮想実行スレッド間の同期を実行する第6のステップと、
前記同期キューの前記ソートした作業項目の各々を順番に実行している間に、その実行に係る前記仮想実行スレッドが、パッシベーションを要するか否かを判定する第7のステップと、
前記第7のステップにおいて、パッシベーションを要すると判定した場合、前記パッシベーションを要する仮想実行スレッドにおける作業項目及び関連するトークン値をデータストアに記憶することにより、前記同期キューをパッシベートする第8のステップと
を備えたことを特徴とする方法。 - 前記仮想実行スレッドにおける作業項目の各々に対する前記割り当てた同期ハンドルのプロパティを明示することにより、前記仮想実行スレッドにおける作業項目の各々に対する前記割り当てた同期ハンドルを宣言的に定義するステップをさらに備えたことを特徴とする請求項6に記載の方法。
- 前記第2のステップは、前記スケジューラキューにおける複数の作業項目の各々に文字列トークンを割り当てるステップを含むことを特徴とする請求項6に記載の方法。
- 前記第2のステップは、前記複数の作業項目の各々と関連するスレッド範囲を定義するステップを含むことを特徴とする請求項6に記載の方法。
- 前記アクティビティの前記順番は、ツリー構造を横断する順番に対応し、前記第5のステップは、前記ツリー構造における作業項目の位置に基づいて前記仮想実行スレッドにおける作業項目をソートするステップを含むことを特徴とする請求項6に記載の方法。
- 前記第6のステップは、前記ワークフローを処理することと、関連する状態オートマトンとに従って実行する作業項目の処理状態を実行中の状態に移行することにより前記ソートした作業項目を実行するステップを含むことを特徴とする請求項6に記載の方法。
- 請求項6乃至11のうちの1つに記載の方法を実行させるコンピュータ実行可能命令を有することを特徴とするコンピュータ可読記憶媒体。
- ワークフローにおいて、特定の共有資源へのアクセスをシリアライズして、スレッド間の同期を実行するコンピュータ実行可能コンポーネントを有する1つ以上のコンピュータ可読記憶媒体であって、前記コンピュータ実行可能コンポーネントは、
複数の作業項目をスケジューラキューに記憶する記憶コンポーネントであって、前記複数の作業項目の1つ以上は前記ワークフローにおけるアクティビティに関連付けられ、かつ前記アクティビティにおいてツリー構造を有し、前記複数の作業項目の各々は実行スレッドと関係付けられる、記憶コンポーネントと、
前記スケジューラキューにおける複数の作業項目の各々に同期ハンドルを割り当てる同期コンポーネントであって、前記同期ハンドルは、前記複数の作業項目によりアクセスされる予定の前記特定の共有資源を示し、前記スケジューラキュー内の2つ以上の作業項目が同一の同期ハンドルを有すると、前記特定の共有資源は、前記同一の同期ハンドルを有する作業項目により共有され、前記割り当てた同期ハンドルを有する前記作業項目の各々を、仮想実行スレッドにまとめ、前記仮想実行スレッドは、前記実行スレッドの上に論理的に作成され、前記仮想実行スレッドにおける作業項目は、前記仮想実行スレッドにおける他の作業項目に割り当てた同期ハンドルと同一の同期ハンドルを有する、同期コンポーネントと、
前記割り当てた同期ハンドル及び前記アクティビティの前記ツリー構造における作業項目の位置に基づいて、前記仮想実行スレッドにおける作業項目の各々に対するトークン値を計算するトークンコンポーネントと、
前記作業項目の各々に関連する前記計算したトークン値に基づいて同期キューに前記仮想実行スレッドにおける作業項目をソートして入れるソートコンポーネントと、
前記同期キューの前記ソートした作業項目の各々を順番に実行して、前記特定の共有資源へのアクセスをシリアライズして、前記仮想実行スレッド間の同期を実行する実行コンポーネントと、
前記同期キューの前記ソートした作業項目の各々を順番に実行している間に、その実行に係る前記仮想実行スレッドが、パッシベーションを要するか否かを判定し、パッシベーションを要すると判定した場合、前記パッシベーションを要する仮想実行スレッドにおける作業項目及び関連するトークン値をデータストアに記憶することにより、前記同期キューをパッシベートするパッシベーションコンポーネントと
を備えたことを特徴とするコンピュータ可読記憶媒体。 - 前記仮想実行スレッドにおける作業項目の各々に対する前記割り当てた同期ハンドルのプロパティを明示することにより、前記仮想実行スレッドにおける作業項目の各々に対する前記割り当てた同期ハンドルを宣言的に定義する定義コンポーネントをさらに備えたことを特徴とする請求項13に記載のコンピュータ可読記憶媒体。
- 前記同期コンポーネントは、前記複数の作業項目の各々と関連するスレッド範囲を定義することをさらに含むことを特徴とする請求項13に記載のコンピュータ可読記憶媒体。
- 前記実行コンポーネントは、前記ワークフローを処理することと、関連する状態オートマトンとに従って前記実行する作業項目の処理状態を実行中の状態に移行することにより前記ソートした作業項目を実行することをさらに含むことを特徴とする請求項13に記載のコンピュータ可読記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/393,966 US8024405B2 (en) | 2006-03-30 | 2006-03-30 | Declarative model for concurrency-control across lightweight threads |
US11/393,966 | 2006-03-30 | ||
PCT/US2007/004633 WO2007120390A1 (en) | 2006-03-30 | 2007-02-21 | Declarative model for concurrency-control across lightweight threads |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009532756A JP2009532756A (ja) | 2009-09-10 |
JP5006382B2 true JP5006382B2 (ja) | 2012-08-22 |
Family
ID=38560811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009502787A Expired - Fee Related JP5006382B2 (ja) | 2006-03-30 | 2007-02-21 | 軽量スレッドの並行処理制御のための宣言型モデル |
Country Status (9)
Country | Link |
---|---|
US (1) | US8024405B2 (ja) |
EP (1) | EP2013847A4 (ja) |
JP (1) | JP5006382B2 (ja) |
KR (1) | KR20090008198A (ja) |
BR (1) | BRPI0710036A2 (ja) |
CA (1) | CA2644360A1 (ja) |
MX (1) | MX2008011915A (ja) |
RU (1) | RU2008138707A (ja) |
WO (1) | WO2007120390A1 (ja) |
Families Citing this family (32)
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 |
US9274921B2 (en) * | 2006-12-27 | 2016-03-01 | International Business Machines Corporation | System and method for managing code displacement |
US8108868B2 (en) * | 2007-12-18 | 2012-01-31 | Microsoft Corporation | Workflow execution plans through completion condition critical path analysis |
US8181155B2 (en) * | 2008-02-29 | 2012-05-15 | Microsoft Corporation | Unified expression and location framework |
US8161492B2 (en) * | 2008-04-15 | 2012-04-17 | Microsoft Corporation | Continuation based runtimes in transactions |
US9354847B2 (en) | 2008-12-29 | 2016-05-31 | Microsoft Technology Licensing, Llc | Interface infrastructure for a continuation based runtime |
US20100169618A1 (en) * | 2008-12-30 | 2010-07-01 | Microsoft Corporation | Identifying concurrency control from a sequential proof |
US9135584B2 (en) * | 2009-02-28 | 2015-09-15 | International Business Machines Corporation | Method and apparatus to model content state and access control in backend-systems and business processes |
US8683432B2 (en) * | 2009-03-20 | 2014-03-25 | Microsoft Corporation | Providing execution context in continuation based runtimes |
US8307368B2 (en) * | 2009-05-26 | 2012-11-06 | Microsoft Corporation | Locality-based scheduling in continuation-based runtimes |
US8769496B2 (en) * | 2010-08-13 | 2014-07-01 | Accenture Global Services Limited | Systems and methods for handling database deadlocks induced by database-centric applications |
US9778915B2 (en) * | 2011-02-28 | 2017-10-03 | Microsoft Technology Licensing, Llc | Distributed application definition |
US9990184B2 (en) | 2011-03-25 | 2018-06-05 | Microsoft Technology Licensing, Llc | Distributed component model |
US9465589B2 (en) | 2011-04-05 | 2016-10-11 | Microsoft Technology Licensing, Llc | Stateful component authoring and execution |
US9536264B2 (en) | 2011-11-14 | 2017-01-03 | Microsoft Technology Licensing, Llc | Host agnostic messaging in a continuation based runtime |
US9396007B2 (en) | 2013-03-22 | 2016-07-19 | Facebook, Inc. | Cache management in a multi-threaded environment |
US10257316B2 (en) * | 2014-03-30 | 2019-04-09 | Cisco Technology, Inc. | Monitoring of node.js applications |
CN104123177B (zh) * | 2014-07-18 | 2019-01-08 | 无锡梵天信息技术股份有限公司 | 一种无锁的多线程数据同步方法 |
US9804883B2 (en) * | 2014-11-14 | 2017-10-31 | Advanced Micro Devices, Inc. | Remote scoped synchronization for work stealing and sharing |
US10083412B2 (en) * | 2015-05-14 | 2018-09-25 | Atlassian Pty Ltd | Systems and methods for scheduling work items |
US10853746B2 (en) | 2015-05-14 | 2020-12-01 | Atlassian Pty Ltd. | Systems and methods for scheduling work items |
US10642896B2 (en) * | 2016-02-05 | 2020-05-05 | Sas Institute Inc. | Handling of data sets during execution of task routines of multiple languages |
US11775341B2 (en) * | 2016-02-05 | 2023-10-03 | Sas Institute Inc. | Automated job flow generation to provide object views in container-supported many task computing |
US11455190B2 (en) | 2016-02-05 | 2022-09-27 | Sas Institute Inc. | Implicit status in many task computing |
US10795935B2 (en) | 2016-02-05 | 2020-10-06 | Sas Institute Inc. | Automated generation of job flow definitions |
US10650046B2 (en) | 2016-02-05 | 2020-05-12 | Sas Institute Inc. | Many task computing with distributed file system |
US11474863B2 (en) | 2018-06-22 | 2022-10-18 | Sas Institute Inc. | Federated area coherency across multiple devices in many-task computing |
USD898059S1 (en) | 2017-02-06 | 2020-10-06 | Sas Institute Inc. | Display screen or portion thereof with graphical user interface |
USD898060S1 (en) | 2017-06-05 | 2020-10-06 | Sas Institute Inc. | Display screen or portion thereof with graphical user interface |
JP2019053355A (ja) | 2017-09-12 | 2019-04-04 | セイコーエプソン株式会社 | 情報処理装置、情報処理方法、及び、プログラム |
CN109284193B (zh) * | 2018-09-06 | 2022-12-09 | 平安科技(深圳)有限公司 | 一种基于多线程的分布式数据处理方法及服务器 |
CN113420864B (zh) * | 2021-07-05 | 2022-06-14 | 广西师范大学 | 一种包含互斥资源的多智能体***的控制器生成方法 |
Family Cites Families (100)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5287537A (en) * | 1985-11-15 | 1994-02-15 | Data General Corporation | Distributed processing system having plural computers each using identical retaining information to identify another computer for executing a received command |
US5301320A (en) * | 1991-06-28 | 1994-04-05 | Digital Equipment Corporation | Workflow management and control system |
US5555388A (en) * | 1992-08-20 | 1996-09-10 | Borland International, Inc. | Multi-user system and methods providing improved file management by reading |
JPH09501517A (ja) * | 1993-02-08 | 1997-02-10 | アクション・テクノロジーズ・インコーポレーテッド | 業務処理を管理するための方法および装置 |
US5734837A (en) * | 1994-01-14 | 1998-03-31 | Action Technologies, Inc. | Method and apparatus for building business process applications in terms of its workflows |
US6148325A (en) * | 1994-06-30 | 2000-11-14 | Microsoft Corporation | Method and system for protecting shared code and data in a multitasking operating system |
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 |
US6182108B1 (en) * | 1995-01-31 | 2001-01-30 | Microsoft Corporation | Method and system for multi-threaded processing |
US5774661A (en) * | 1995-04-18 | 1998-06-30 | Network Imaging Corporation | Rule engine interface for a visual workflow builder |
DE19712946A1 (de) * | 1996-05-30 | 1997-12-04 | Ibm | Methode zum Generieren einer Implementierung wiederverwendbarer Teile von Containern eines Workflow-Prozessmodells |
US5930512A (en) * | 1996-10-18 | 1999-07-27 | International Business Machines Corporation | Method and apparatus for building and running workflow process models using a hypertext markup language |
US5790851A (en) * | 1997-04-15 | 1998-08-04 | Oracle Corporation | Method of sequencing lock call requests to an O/S to avoid spinlock contention within a multi-processor environment |
US6158044A (en) * | 1997-05-21 | 2000-12-05 | Epropose, Inc. | Proposal based architecture system |
US6240440B1 (en) * | 1997-06-30 | 2001-05-29 | Sun Microsystems Incorporated | Method and apparatus for implementing virtual threads |
US6016394A (en) * | 1997-09-17 | 2000-01-18 | Tenfold Corporation | Method and system for database application software creation requiring minimal programming |
US6807583B2 (en) * | 1997-09-24 | 2004-10-19 | Carleton University | Method of determining causal connections between events recorded during process execution |
US6225998B1 (en) * | 1997-12-02 | 2001-05-01 | Aspect Communications | Visual design of workflows for transaction processing |
US6115646A (en) * | 1997-12-18 | 2000-09-05 | Nortel Networks Limited | Dynamic and generic process automation system |
US6078982A (en) * | 1998-03-24 | 2000-06-20 | Hewlett-Packard Company | Pre-locking scheme for allowing consistent and concurrent workflow process execution in a workflow management system |
US6430538B1 (en) | 1998-04-30 | 2002-08-06 | Enterworks | Workflow management system, method and medium with personal subflows |
US6397192B1 (en) * | 1998-06-05 | 2002-05-28 | I2 Technologies Us, Inc. | Synchronizing one or more workflows using one or more synchronization-join activities that include synchronization logic |
US6567783B1 (en) * | 1998-06-05 | 2003-05-20 | I2 Technologies Us, Inc. | Communication across one or more enterprise boundaries regarding the occurrence of a workflow event |
JP2003528358A (ja) * | 1998-08-24 | 2003-09-24 | 富士通株式会社 | ワークフローシステムおよび方法 |
US6606740B1 (en) * | 1998-10-05 | 2003-08-12 | American Management Systems, Inc. | Development framework for case and workflow systems |
US7133833B1 (en) * | 1998-10-27 | 2006-11-07 | Netscape Communications Corporation | Lightweight directory access protocol workflow management system |
US6862635B1 (en) * | 1998-11-13 | 2005-03-01 | Cray Inc. | Synchronization techniques in a multithreaded environment |
US6622155B1 (en) * | 1998-11-24 | 2003-09-16 | Sun Microsystems, Inc. | Distributed monitor concurrency control |
AU3875900A (en) | 1999-03-11 | 2000-09-28 | Paysys International, Inc. | Methods and systems for developing applications and for interfacing with users |
US6678882B1 (en) * | 1999-06-30 | 2004-01-13 | Qwest Communications International Inc. | Collaborative model for software systems with synchronization submodel with merge feature, automatic conflict resolution and isolation of potential changes for reuse |
US6405364B1 (en) * | 1999-08-31 | 2002-06-11 | Accenture Llp | Building techniques in a development architecture framework |
US7020697B1 (en) * | 1999-10-01 | 2006-03-28 | Accenture Llp | Architectures for netcentric computing systems |
EP1277104A1 (en) * | 2000-03-30 | 2003-01-22 | Ideogramic APS | Method for gesture based modeling |
US6964034B1 (en) * | 2000-04-20 | 2005-11-08 | International Business Machines Corporation | Application development server and a mechanism for providing different views into the same constructs within a strongly encapsulated environment |
US6918053B1 (en) * | 2000-04-28 | 2005-07-12 | Microsoft Corporation | Compensation framework for long running transactions |
US6845507B2 (en) * | 2000-05-18 | 2005-01-18 | Ss & C Technologies, Inc. | Method and system for straight through processing |
US6971096B1 (en) * | 2000-05-19 | 2005-11-29 | Sun Microsystems, Inc. | Transaction data structure for process communications among network-distributed applications |
WO2002003225A2 (en) * | 2000-06-15 | 2002-01-10 | Xis Incorporated | Method and system for product lifecycle management |
US20020032692A1 (en) * | 2000-09-08 | 2002-03-14 | Atsuhito Suzuki | Workflow management method and workflow management system of controlling workflow process |
JP2002157386A (ja) * | 2000-09-08 | 2002-05-31 | Hitachi Ltd | ワークフロー管理方法および装置並びにその処理プログラム並びにその処理プログラムを格納した記録媒体 |
US6604104B1 (en) * | 2000-10-02 | 2003-08-05 | Sbi Scient Inc. | System and process for managing data within an operational data store |
WO2002029517A2 (en) * | 2000-10-02 | 2002-04-11 | International Projects Consultancy Services, Inc. | Automated loan processing system and method |
US7653566B2 (en) * | 2000-11-30 | 2010-01-26 | Handysoft Global Corporation | Systems and methods for automating a process of business decision making and workflow |
US7917888B2 (en) * | 2001-01-22 | 2011-03-29 | Symbol Technologies, Inc. | System and method for building multi-modal and multi-channel applications |
US7240324B2 (en) * | 2001-02-28 | 2007-07-03 | Hewlett-Packard Development Company, L.P. | Event-based scheduling method and system for workflow activities |
US6971084B2 (en) * | 2001-03-02 | 2005-11-29 | National Instruments Corporation | System and method for synchronizing execution of a batch of threads |
US20020128068A1 (en) | 2001-03-09 | 2002-09-12 | Randall Whitten Jon Marcus | Method and apparatus for managing data in a gaming system |
US20020147606A1 (en) * | 2001-03-14 | 2002-10-10 | Norbert Hoffmann | Application development method |
US7207069B2 (en) * | 2001-06-05 | 2007-04-17 | Hewlett-Packard Development Company, L.P. | Branch locking of job tickets to control concurrency |
US20020188644A1 (en) * | 2001-06-08 | 2002-12-12 | Verano | Workflow automated task component manager |
US7069536B2 (en) * | 2001-06-28 | 2006-06-27 | International Business Machines Corporation | Method, system, and program for executing a workflow |
US6898604B1 (en) * | 2001-06-29 | 2005-05-24 | Microsoft Corporation | XML serialization and deserialization |
US20030018508A1 (en) * | 2001-07-19 | 2003-01-23 | Schwanke Robert W. | Data-triggered workflow processes |
US7222334B2 (en) * | 2001-07-24 | 2007-05-22 | Hewlett-Packard Development Comapny, L.P. | Modeling tool for electronic services and associated methods and businesses |
US20030055668A1 (en) * | 2001-08-08 | 2003-03-20 | Amitabh Saran | Workflow engine for automating business processes in scalable multiprocessor computer platforms |
US6985939B2 (en) * | 2001-09-19 | 2006-01-10 | International Business Machines Corporation | Building distributed software services as aggregations of other services |
US6895573B2 (en) * | 2001-10-26 | 2005-05-17 | Resultmaker A/S | Method for generating a workflow on a computer, and a computer system adapted for performing the method |
US20030177046A1 (en) * | 2001-12-03 | 2003-09-18 | John Socha-Leialoha | Method and system for reusing components |
US20030145035A1 (en) * | 2002-01-15 | 2003-07-31 | De Bonet Jeremy S. | Method and system of protecting shared resources across multiple threads |
US7089287B2 (en) * | 2002-01-16 | 2006-08-08 | Xerox Corporation | Message-based system having embedded information management capabilities |
US20030144891A1 (en) * | 2002-01-26 | 2003-07-31 | International Business Machines Corporation | Supervising the processing status of activities within workflow management systems |
US7865867B2 (en) * | 2002-03-08 | 2011-01-04 | Agile Software Corporation | System and method for managing and monitoring multiple workflows |
US20030233374A1 (en) * | 2002-03-14 | 2003-12-18 | Ulrich Spinola | Dynamic workflow process |
US20030195762A1 (en) * | 2002-04-12 | 2003-10-16 | David Gleason | Automated workflow |
AU2003234106A1 (en) * | 2002-04-15 | 2003-11-03 | Invensys Systems, Inc. | Methods and apparatus for process, factory-floor, environmental, computer aided manufacturing-based or other control system with real-time data distribution |
US7519976B2 (en) * | 2002-05-01 | 2009-04-14 | Bea Systems, Inc. | Collaborative business plug-in framework |
US7272816B2 (en) * | 2002-07-31 | 2007-09-18 | Sap Aktiengesellschaft | Transformations between private and shared workflows |
US8374966B1 (en) * | 2002-08-01 | 2013-02-12 | Oracle International Corporation | In memory streaming with disk backup and recovery of messages captured from a database redo stream |
US20040078105A1 (en) * | 2002-09-03 | 2004-04-22 | Charles Moon | System and method for workflow process management |
US7398525B2 (en) * | 2002-10-21 | 2008-07-08 | International Business Machines Corporation | Resource scheduling in workflow management systems |
US8056046B2 (en) * | 2002-10-22 | 2011-11-08 | The Boeing Company | Integrated system-of-systems modeling environment and related methods |
US7062537B2 (en) * | 2002-11-25 | 2006-06-13 | Microsoft Corporation | Workflow services architecture |
US20040148213A1 (en) * | 2002-11-25 | 2004-07-29 | Microsoft Corporation | Automated workflow constraints |
US7272820B2 (en) * | 2002-12-12 | 2007-09-18 | Extrapoles Pty Limited | Graphical development of fully executable transactional workflow applications with adaptive high-performance capacity |
US7401334B2 (en) * | 2002-12-20 | 2008-07-15 | International Business Machines Corporation | Method, apparatus and computer program product for managing message flow in a multithreaded, message flow environment |
US7168077B2 (en) * | 2003-01-31 | 2007-01-23 | Handysoft Corporation | System and method of executing and controlling workflow processes |
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 |
CA2420479A1 (en) * | 2003-02-13 | 2004-08-13 | Ibm Canada Limited - Ibm Canada Limitee | Flow debugging software and method |
CN1826610A (zh) * | 2003-05-07 | 2006-08-30 | Sap股份有限公司 | 包括带协作过程引擎的特设型工作流结构化处理的面向终端用户的工作流方法 |
JP2007516510A (ja) * | 2003-06-12 | 2007-06-21 | ロイター アメリカ | ビジネスプロセスの自動化 |
US8645420B2 (en) * | 2003-08-05 | 2014-02-04 | Accenture Global Services Limited | Methodology framework and delivery vehicle |
WO2005033933A1 (en) | 2003-09-02 | 2005-04-14 | Infoglide Software Corporation | System and method for workflow process management |
CA2442796A1 (en) * | 2003-09-26 | 2005-03-26 | Ibm Canada Limited - Ibm Canada Limitee | Binding a workflow engine to a data model |
US7386848B2 (en) * | 2003-10-02 | 2008-06-10 | International Business Machines Corporation | Method and system to alleviate denial-of-service conditions on a server |
US7137033B2 (en) * | 2003-11-20 | 2006-11-14 | International Business Machines Corporation | Method, system, and program for synchronizing subtasks using sequence numbers |
US7519960B2 (en) * | 2003-12-19 | 2009-04-14 | International Business Machines Corporation | Method and system for debugging business process flow |
US7197502B2 (en) * | 2004-02-18 | 2007-03-27 | Friendly Polynomials, Inc. | Machine-implemented activity management system using asynchronously shared activity data objects and journal data items |
US8166554B2 (en) * | 2004-02-26 | 2012-04-24 | Vmware, Inc. | Secure enterprise network |
US7610585B2 (en) * | 2004-06-03 | 2009-10-27 | Intel Corporation | Thread synchronization methods and apparatus for managed run-time environments |
US7644409B2 (en) * | 2004-06-04 | 2010-01-05 | Sun Microsystems, Inc. | Techniques for accessing a shared resource using an improved synchronization mechanism |
US7676791B2 (en) * | 2004-07-09 | 2010-03-09 | Microsoft Corporation | Implementation of concurrent programs in object-oriented languages |
US20060064335A1 (en) * | 2004-08-17 | 2006-03-23 | International Business Machines Corporation | Method, system, and storage medium for performing business process modeling |
US7631291B2 (en) * | 2004-10-01 | 2009-12-08 | Microsoft Corporation | Declarative representation for an extensible workflow model |
US20060074735A1 (en) * | 2004-10-01 | 2006-04-06 | Microsoft Corporation | Ink-enabled workflow authoring |
US7464366B2 (en) * | 2004-10-01 | 2008-12-09 | Microsoft Corporation | Programming interface for a componentized and extensible workflow model |
US8478616B2 (en) * | 2004-10-29 | 2013-07-02 | FrontRange Solutions USA Inc. | Business application development and execution environment |
US20060112122A1 (en) * | 2004-11-23 | 2006-05-25 | International Business Machines Corporation | Method, system, and storage medium for implementing business process modules |
JP2006215713A (ja) | 2005-02-02 | 2006-08-17 | Canon Inc | ワークフローシステムの先行業務指示及び廃止方法 |
US7493594B2 (en) * | 2005-03-14 | 2009-02-17 | Research In Motion | System and method for designing component based applications |
CA2604490C (en) * | 2005-04-18 | 2012-04-24 | Research In Motion Limited | System and method for enabling assisted visual development of workflow for application tasks |
US7983943B2 (en) * | 2005-05-27 | 2011-07-19 | Xerox Corporation | Method and system for workflow process node synchronization |
-
2006
- 2006-03-30 US US11/393,966 patent/US8024405B2/en not_active Expired - Fee Related
-
2007
- 2007-02-21 EP EP07751399A patent/EP2013847A4/en not_active Withdrawn
- 2007-02-21 MX MX2008011915A patent/MX2008011915A/es not_active Application Discontinuation
- 2007-02-21 BR BRPI0710036-1A patent/BRPI0710036A2/pt not_active Application Discontinuation
- 2007-02-21 WO PCT/US2007/004633 patent/WO2007120390A1/en active Application Filing
- 2007-02-21 JP JP2009502787A patent/JP5006382B2/ja not_active Expired - Fee Related
- 2007-02-21 CA CA002644360A patent/CA2644360A1/en not_active Abandoned
- 2007-02-21 KR KR1020087023998A patent/KR20090008198A/ko not_active Application Discontinuation
- 2007-02-21 RU RU2008138707/09A patent/RU2008138707A/ru not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
WO2007120390A1 (en) | 2007-10-25 |
JP2009532756A (ja) | 2009-09-10 |
KR20090008198A (ko) | 2009-01-21 |
CA2644360A1 (en) | 2007-10-25 |
BRPI0710036A2 (pt) | 2011-08-02 |
RU2008138707A (ru) | 2010-04-10 |
US20070233969A1 (en) | 2007-10-04 |
EP2013847A1 (en) | 2009-01-14 |
US8024405B2 (en) | 2011-09-20 |
MX2008011915A (es) | 2008-09-29 |
EP2013847A4 (en) | 2010-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5006382B2 (ja) | 軽量スレッドの並行処理制御のための宣言型モデル | |
JP5140067B2 (ja) | ワークフローにおいて継続をモデル化するフレームワーク | |
JP4806240B2 (ja) | コンポーネント化された拡張可能なワークフローモデル | |
JP5297370B2 (ja) | プロセス中心型プログラムにおける非同期フォールト処理 | |
JP5173128B2 (ja) | フローベースおよび制約ベースのワークフローをオーサリングし、実行するための統一モデル | |
US20070239505A1 (en) | Abstract execution model for a continuation-based meta-runtime | |
AU2007235542A1 (en) | Framework for modeling cancellation for process-centric programs | |
US9513874B2 (en) | Enterprise computing platform with support for editing documents via logical views | |
KR20080080349A (ko) | 복수의 워크플로 동시 지속 기법 | |
KR20060087997A (ko) | 작업 흐름을 작성하고 편집하기 위한 컴퓨터 구현 방법 | |
Schmutz et al. | Service-oriented architecture: an integration blueprint: a real-world SOA strategy for the integration of heterogeneous enterprise systems: successfully implement your own enterprise integration architecture using the trivadis integration architecture blueprint | |
Bianchi et al. | An ASM-based model for grid job management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100112 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120113 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120117 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120417 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120518 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120524 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150601 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |