JP6064734B2 - ワークフロー制御プログラム、装置および方法 - Google Patents
ワークフロー制御プログラム、装置および方法 Download PDFInfo
- Publication number
- JP6064734B2 JP6064734B2 JP2013066847A JP2013066847A JP6064734B2 JP 6064734 B2 JP6064734 B2 JP 6064734B2 JP 2013066847 A JP2013066847 A JP 2013066847A JP 2013066847 A JP2013066847 A JP 2013066847A JP 6064734 B2 JP6064734 B2 JP 6064734B2
- Authority
- JP
- Japan
- Prior art keywords
- workflow
- execution
- exclusive
- resource
- state
- 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
- 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/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
-
- 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)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Operations Research (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Educational Administration (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
〔第1の実施の形態〕
図1は、第1の実施の形態に係る運用システムの構成例および動作例を示す図である。図1に示す運用システムは、ワークフロー制御装置1と、1つ以上のリソース(資源)とを有する。図1では例として、1つのリソース5を示す。
図2は、第2の実施の形態に係る運用システムの構成例を示す図である。図2に示す運用システムは、運用自動化サーバ100と、1つ以上の業務サーバ210とを含む。運用自動化サーバ100と業務サーバ210とは、ネットワーク200を介して接続されている。業務サーバ210は、各種の業務処理を実行する。運用自動化サーバ100は、業務サーバ210の監視や保守作業などの運用作業を自動化して管理する。運用自動化サーバ100は、RBA技術を用いて、業務サーバ210の運用作業手順が記述されたワークフローに従って業務サーバ210の運用を管理する。
運用自動化サーバ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス108を介して、RAM(Random Access Memory)102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
以上のようなハードウェア構成によって、運用自動化サーバ100の処理機能を実現することができる。なお、図2に示した業務サーバ210、および図1に示したワークフロー制御装置1も、図3に示したハードウェアを有するコンピュータとして実現することができる。
ユーザ係数テーブル137には、ユーザごとのユーザ係数が格納される。起動方式係数テーブル138には、ワークフローの起動方法ごとの起動方式係数が格納される。時間係数テーブル139には、処理が完了するまでの残り時間ごとの時間係数が格納される。
運用自動化サーバ100は、複数のワークフローの実行時において、各ワークフローの進捗状況に応じて適切な排他区間を動的に決定する。
排他制御部110は、登録されたワークフローの運用操作部品の内容に基づいて、運用操作部品をグループ分けし、操作重要度を定義する。例えば、排他制御部110は、業務サーバ210への情報の登録、ネットワークの設定などの設定系の運用操作部品の操作重要度を、「高(または「3」)」に設定する。また、排他制御部110は、OSの再起動、サービスの起動などの操作系の運用操作部品の操作重要度を、例えば、「中(または「2」)」に設定する。また、排他制御部110は、サーバ/サービスの状態確認などの参照・確認・通知系の運用操作部品の操作重要度を、例えば、「低(または「1」)」に設定する。これにより、次の図6で説明するように、ワークフローに定義されている運用操作部品をモデル化することができる。モデル化したワークフローによって、各運用操作部品の操作重要度が決定される。
排他制御部110は、次の図7および図8で説明するように、(i)同一の操作対象/同一の変数利用、および(ii)各運用操作部品で利用する資源の流れ(変数の受け渡し)に基づいて、排他区間を自動的に決定する。具体的には、排他制御部110は、連続する運用操作部品について、操作対象サーバが同じか否か、または操作対象サーバと操作内容(サービス、インストールするソフトウェア)が同じか否かに基づいて、排他区間を決定する。なお、[排他区間:A]の“A”を「排他区間名」と定義する。
図7(A)において、運用操作部品22−1,23−1について、操作対象サーバは「サーバA」で同じであり、サービスも「サービスX」で同じである。この場合、排他制御部110は、運用操作部品22−1,23−1について[排他区間:A+X]と決定する。運用操作部品24−1について、操作対象サーバはサーバAである。この場合、排他制御部110は、運用操作部品24−1について[排他区間:A]と決定する。運用操作部品25−1,26−1について、操作対象サーバはサーバBである。この場合、排他制御部110は、運用操作部品25−1,26−1について[排他区間:B]と決定する。
・排他を獲得する排他区間名が、排他獲得済みの排他区間名と少なくとも部分一致する。
・排他獲得済みの排他区間名が、排他を獲得する排他区間名と少なくとも部分一致する。
ワークフローが起動すると、排他制御部110は、ワークフローの内容を取得して分析する。そして、ワークフローに含まれるすべての運用操作部品について次の処理が実行される。排他制御部110は、起動したワークフローにおいて、排他区間の調整および決定を行い、また、動作中のワークフローにおいて、排他区間の調整および決定を行う。ワークフロー実行部120は、その調整および決定結果に基づいて、運用操作部品を実行するように、業務サーバ210に命令する。
(1−1)ワークフローの内容を取得・分析の詳細
ワークフロー起動時に、排他制御部110は、実行優先度を以下の処理により決定する。まず、排他制御部110は、あらかじめ運用自動化サーバ100の記憶装置に登録された、ワークフローに定義されている運用操作部品および利用する資源の情報を取得する。次に、排他制御部110は、各運用操作部品で利用する資源の情報(操作対象の情報/変数の内容)に基づいて、図5のステップS12と同様の処理を再度実行し、次の場合に排他区間を再設定する。すなわち、排他制御部110は、異なる変数が入力される排他区間において、その変数が同じ値に変更された場合にはその排他区間を結合する。また、排他制御部110は、同じ変数で設定した排他区間において、その変数の内容が変更された場合にその排他区間を分割する。
ユーザ係数は、ワークフローを起動したユーザのユーザ係数である。ユーザ係数としては、例えば、管理者ユーザの場合にはユーザ係数=3.0が設定され、一般ユーザの場合にはユーザ係数=2.0が設定される。
実行優先度=(Σ操作重要度)×操作緊急度 ・・・(2)
ここで、例として、操作系の運用操作部品[1]および参照系の運用操作部品[2]に排他区間が設定されたワークフローAについて、仮決定される実行優先度の計算例を示す。ワークフローAについては、ユーザ係数=2.0、起動方式係数=1.0、時間係数=1.5が設定されているものとする。
次に、排他制御部110は、ワークフローの動作中に仮決定されたワークフローの排他区間の調整・決定を行う。ワークフローが動作した場合、排他制御部110は、ワークフローの分岐や運用操作部品の処理結果によって、実行優先度を変更する。また、排他制御部110は、実行優先度に応じて、実行している運用操作部品の次の運用操作部品を、即時実行させるか待たせるかを決定する。これらの処理は、以下の手順(I)〜(V)により実行される。
(II)排他制御部110は、前述した「(1―1)ワークフローの内容を取得・分析の詳細」の処理を実行し、排他区間と実行優先度を決定し直す。
(IV)排他制御部110は、実行中のワークフローから、最も大きい実行優先度を持つ排他区間を抽出する。
図11,図12は、最も大きい実行優先度を持つ排他区間の抽出処理、および次に実行させる排他区間の判断処理の例を示す図である。図11,図12では、ワークフローA,B,Cを並列に実行させる場合について説明する。図11,図12の各ワークフローにおいて、下向きの三角マークは、現在の処理位置を示す。また、後述する排他権(実行権)を獲得している間、そのワークフローは、処理を実行することができる。
ワークフローCの[排他区間:A+X]については、現時点でのワークフローA,B,Cの排他区間で最も実行優先度が高いため、ワークフローCは、排他権(実行権)を獲得する(ステップS23)。
この後、図示しないが、ワークフローAの[排他区間:A+X]の処理が完了した場合、[排他区間:A+X]の排他状態が解放される。ここで、ワークフローB,Cの[排他区間:A]において実行優先度が同じである場合、管理者権限のため(すなわち、ユーザ係数が最も大きいため)、ワークフローCが優先して排他権(実行権)を獲得する。
図13に示すように、ワークフローAの[排他区間:A]について、ワークフローAが排他権(実行権)を獲得した場合、ワークフローBは[排他区間:A]の排他権(実行権)の獲得前であるが、ワークフローBの実行優先度が最も高い。このため、ワークフローAの[排他区間:A]については、ワークフローBが[排他区間:A]の排他権(実行権)を獲得して実行し、その排他状態が解放されるまで、ワークフローAは待ち状態となる(ステップS31)。
上記処理により、同一資源を操作する排他区間を含むワークフローが複数存在する場合には、実行優先度の高い排他区間が排他権を獲得して、この排他区間の処理が優先的に実行される。そして、実行された排他区間の処理が完了するまで、他のワークフローの排他区間の処理は待ち状態となる。
図15において、ワークフローAの[排他区間:A]に含まれる運用操作部品41と、ワークフローBの[排他区間:A]に含まれる運用操作部品44は、ともに同じ操作を行うものである。また、ワークフローAの[排他区間:A]に含まれる運用操作部品のうち、末尾に位置する運用操作部品43の処理内容は、それより前(この例では先頭)に位置する運用操作部品41に対応する後処理であるものとする。
ロールバック処理とは、実行済みの処理を逆順に辿っていって、操作対象資源の状態を処理の実行前の状態に戻すための処理を行うことである。このようなロールバック処理を実現するためには、各処理の実行前における操作対象資源の状態を示す情報を保存しておく仕組みが必要となる。
図17は、ロールバック処理により他のワークフローの実行が再開される例を示す図である。この図17では、図15に示したワークフローA,Bを例示する。
図18において、ワークフローAの[排他区間:A]が、ワークフローBの[排他区間:A]より先に排他権を獲得したものとする。また、ワークフローAの[排他区間:A]には、人の入力操作に応じた処理(例えば承認処理)を伴うアクティビティ45が含まれる。すなわち、アクティビティ45には、承認などを行うための入力操作を受け付けないと次の処理に進めない処理が含まれている。なお、このようなアクティビティ45の処理は「フォーム」とも呼ばれる。
図21は、ワークフロー管理テーブルの例を示す図である。ワークフロー管理テーブル131は、各ワークフローに含まれる運用操作部品を管理するためのテーブルであり、ワークフローの登録時に生成される。
以上のワークフロー管理テーブル131においては、人の入力操作に応じた処理を伴うアクティビティや、並列分岐の開始および終了についても、1つのレコードが設定される。そして、設定されたレコードの「運用操作部品名」の項目には、アクティビティの名称(処理内容)や、並列分岐の開始または終了を示すことが登録される。これにより、排他制御部110は、ワークフローに含まれる処理が実行される際に、その処理が人の入力操作に応じた処理を伴うアクティビティであることを判別できる。また、排他制御部110は、ロールバック処理の際に、並列分岐の開始位置を判別することが可能となる。
図31は、ワークフロー実行部の処理例を示すフローチャートである。図31の処理は、ワークフローごとに、そのワークフローに対応するワークフロー実行部120によって行われる。
[ステップS56]ワークフロー実行部120は、処理が正常に完了したか否かを示す応答情報を排他制御部110に通知する。
また、ワークフロー実行部120は、定義された処理を業務サーバ210に実行させる際、その実行前における操作対象資源の状態に基づいて、定義された処理の実行を省略可能かを判定する。そして、省略可能である場合、ワークフロー実行部120は、ステップS54での「バックアップ資源」への情報登録をスキップし、ステップS55でも特に何の処理も行わずに、ステップS56で処理の完了を通知する。
[ステップS71]排他制御部110は、ワークフロー実行部120からの通知を待つ。排他制御部110がワークフロー実行部120からの通知を受信すると、次のステップS72の処理が実行される。
[ステップS74]排他制御部110が、図31のステップS52で出力される、ワークフローに含まれる処理の開始通知を受けた場合、ステップS75の処理が実行される。一方、排他制御部110が、図31のステップS56で出力される、ワークフローに含まれる処理についての応答情報を受けた場合、ステップS78の処理が実行される。
[ステップS76]排他制御部110は、ステップS74で開始が通知された処理が、入力操作に応じた処理を伴うアクティビティかを判定する。通知された処理がこのようなアクティビティである場合、ステップS77の処理が実行され、このようなアクティビティでない場合、ステップS79の処理が実行される。
[ステップS79]ワークフローが終了していない場合、ステップS71に戻る。一方、ワークフローが終了した場合、排他制御部110は、該当ワークフローについての処理を終了する。ワークフローの終了は、図31のステップS57で出力されるワークフローの終了通知を受けたことによって判定される。
[ステップS91]排他制御部110は、ワークフロー管理テーブル131から、実行対象のワークフロー(図32のステップS71で実行開始が通知されたワークフロー)の情報を取得する。
[ステップS95]排他制御部110は、仮決定した排他情報の実行優先度を計算する。処理の詳細については図35において説明する。
[ステップS102]排他制御部110は、運用操作部品定義テーブル132に基づいて、実行対象のワークフローに含まれる運用操作部品をモデル化する。すなわち、排他制御部110は、運用操作部品定義テーブル132に基づいて、実行対象のワークフローに含まれる運用操作部品を、対応する部品種別に変換する。
[ステップS106]排他制御部110は、運用操作部品定義テーブル132、ユーザ係数テーブル137、起動方式係数テーブル138および時間係数テーブル139に基づいて、仮決定した排他区間の実行優先度を仮決定する。
[ステップS113]排他制御部110は、運用操作部品定義テーブル132から、その排他No.に対応する排他区間に含まれる操作重要度情報を取得する。
[ステップS114]排他制御部110は、ステップS111で取得した完了予定時刻から現在の時刻を差し引いて、完了予定時刻までの残り時間を算出し、時間係数テーブル139から、その算出した残り時間に対応する時間係数を取得する。排他制御部110は、上述した式(1)を用いて操作緊急度を算出し、上述した式(2)を用いて、その排他区間の実行優先度を算出する。
図36は、ワークフロー動作中の排他制御処理の例を示すフローチャートである。この図36の処理は、図32のステップS75の処理に対応する。
[ステップS133]排他制御部110は、仮決定した排他区間に関する情報を更新する。このステップS133の処理の詳細は、図34と同様である。
[ステップS135]排他制御部110は、排他アクション動作を決定する。処理の詳細については図37において説明する。
[ステップS141]排他制御部110は、実行対象のワークフローについて仮決定した排他区間に関する情報と実行優先度情報を取得する。ここでは、排他制御部110は、インスタンス管理テーブル134から、実行対象のワークフローについて仮決定した排他区間に関する情報(排他区間No.など)を取得する。排他制御部110は、その排他区間No.をキーとして、排他情報管理テーブル135から実行優先度を取得する。
[ステップS161]排他制御部110は、時刻のカウント値を「0」にリセットして計時を開始する。それ以後、排他制御部110は、対応するワークフロー実行部120からの、処理対象のアクティビティが正常に完了したことを示す完了通知を監視する。
[ステップS166]排他制御部110は、対応するワークフロー実行部120に、アクティビティの実行中止を要求する。これにより、アクティビティの処理が強制的に終了される。
以上の図38の処理によれば、排他制御部110は、人の入力操作に応じた処理を伴うアクティビティの実行指示をワークフロー実行部120に与えたとき、計時を開始して、アクティビティが一定時間以内に正常に完了するかを監視する。アクティビティが一定時間以内に完了しない場合、長時間、人の入力操作待ちの状態になっていると推定される。この場合、排他制御部110は、アクティビティの実行を強制的に終了させることで、アクティビティの実行遅延が他のワークフローの実行スケジュールに影響を与えることを回避する。
[ステップS181]排他制御部110は、ワークフロー実行部120からの応答情報が、正常に処理が完了したことを通知するものか、あるいは異常が発生したことを通知するものかを判定する。正常に処理が完了したことが通知された場合、図39の処理は終了されて、図32のステップS79の処理が実行される。一方、異常が発生したことが通知された場合、ステップS182の処理が実行される。
[ステップS184]ステップS182で確認された排他区間の先頭位置より前に、並列分岐の開始位置がある場合には、ステップS186の処理が実行される。一方、ステップS182で確認された排他区間の先頭位置より前に、並列分岐の開始位置がない場合には、ステップS185の処理が実行される。
[ステップS203]排他制御部110は、選択された処理が参照系の運用操作部品の処理かを判定する。対象処理が参照系の運用操作部品の処理である場合、ステップS205の処理が実行され、対象処理がそれ以外の処理である場合、ステップS204の処理が実行される。
(付記1) 同一のリソースを用いた処理をそれぞれ含む第1のワークフローおよび第2のワークフローの実行を制御するためのワークフロー制御プログラムにおいて、
コンピュータに、
前記第1のワークフローに含まれる処理のうち、前記リソースを用いた1つ以上の処理を含む第1の処理群を実行し、
前記第1の処理群に含まれるいずれかの処理が中断したとき、前記リソースの状態を前記第1の処理群の実行開始前の状態に戻し、
前記リソースの状態が前記第1の処理群の実行開始前の状態に戻ると、前記第2のワークフローに含まれる処理のうち、前記リソースを用いた1つ以上の処理を含む第2の処理群の実行を開始する、
処理を実行させることを特徴とするワークフロー制御プログラム。
前記第1の処理群に含まれる処理のうち、入力操作の受け付け処理を含む処理の実行が、所定時間以内に完了しない場合に、当該処理の実行を中断する、
処理をさらに実行させることを特徴とする付記1記載のワークフロー制御プログラム。
前記第1のワークフローに含まれる処理それぞれについて、それぞれの処理の実行前における前記リソースの状態を示す情報を記憶部に記憶する、
処理をさらに実行させ、
前記リソースの状態を戻す処理では、前記第1の処理群に含まれる実行された処理それぞれの内容と、前記記憶部に記憶された、当該実行された処理それぞれの実行前における前記リソースの状態を示す情報とに基づいて、前記リソースの状態を前記第1の処理群の実行開始前の状態に戻す、
ことを特徴とする付記1または2記載のワークフロー制御プログラム。
(付記6) 前記記憶部への記憶では、前記第1のワークフローに含まれる処理のうち、前記リソースに格納されたデータを更新する更新処理については、当該処理の実行前における前記リソースの状態を示す情報として、更新前のデータを前記記憶部に記憶し、
前記リソースの状態を戻す処理では、実行が中断した位置から前記第1の処理群の先頭位置までに前記更新処理が含まれる場合、前記記憶部から当該更新処理に対応する前記更新前のデータを読み出し、読み出した前記更新前のデータによって前記リソースに格納された更新後のデータを更新する処理を、当該更新処理に対応する前記状態復元処理として実行する、
ことを特徴とする付記4記載のワークフロー制御プログラム。
前記リソースの状態を戻す処理では、前記記憶部に記憶された情報に基づき、実行が中断した位置から前記第1の処理群の先頭位置までに実行が省略された処理がある場合には、当該処理に対応する前記状態復元処理をスキップする、
ことを特徴とする付記4記載のワークフロー制御プログラム。
前記リソースの状態を戻す処理では、前記第1のワークフローが並列分岐を含み、前記並列分岐による第1の分岐先に、前記第1のリソースを用いた1つ以上の処理を含む前記第1の処理群が含まれ、前記並列分岐による第2の分岐先に、前記第2のリソースを用いた1つ以上の処理を含む第3の処理群が含まれる場合に、前記第3の処理群に含まれるいずれかの処理が中断したとき、前記記憶部に記憶された情報に基づいて、前記第1のリソースの状態と前記第2のリソースの状態とを前記並列分岐の実行開始前の状態に戻す、
ことを特徴とする付記3記載のワークフロー制御プログラム。
前記第1のワークフローに含まれる処理のうち、前記リソースを用いた1つ以上の処理を含む第1の処理群を実行する第1の実行部と、
前記第1の処理群に含まれるいずれかの処理が中断したとき、前記リソースの状態を前記第1の処理群の実行開始前の状態に戻すロールバック処理部と、
前記リソースの状態が前記第1の処理群の実行開始前の状態に戻ると、前記第2のワークフローに含まれる処理のうち、前記リソースを用いた1つ以上の処理を含む第2の処理群の実行を開始する第2の実行部と、
を有することを特徴とするワークフロー制御装置。
前記ロールバック処理部は、前記第1の処理群に含まれる実行された処理それぞれの内容と、前記記憶部に記憶された、当該実行された処理それぞれの実行前における前記リソースの状態を示す情報とに基づいて、前記リソースの状態を前記第1の処理群の実行開始前の状態に戻す、
ことを特徴とする付記9または10記載のワークフロー制御装置。
(付記14) 前記第1の実行部は、前記第1のワークフローに含まれる処理のうち、前記リソースに格納されたデータを更新する更新処理については、当該処理の実行前における前記リソースの状態を示す情報として、更新前のデータを前記記憶部に記憶し、
前記ロールバック処理部は、実行が中断した位置から前記第1の処理群の先頭位置までに前記更新処理が含まれる場合、前記記憶部から当該更新処理に対応する前記更新前のデータを読み出し、読み出した前記更新前のデータによって前記リソースに格納された更新後のデータを更新する処理を、当該更新処理に対応する前記状態復元処理として実行する、
ことを特徴とする付記12記載のワークフロー制御装置。
前記ロールバック処理部は、前記記憶部に記憶された情報に基づき、実行が中断した位置から前記第1の処理群の先頭位置までに実行が省略された処理がある場合には、当該処理に対応する前記状態復元処理をスキップする、
ことを特徴とする付記12記載のワークフロー制御装置。
前記ロールバック処理部は、前記第1のワークフローが並列分岐を含み、前記並列分岐による第1の分岐先に、前記第1のリソースを用いた1つ以上の処理を含む前記第1の処理群が含まれ、前記並列分岐による第2の分岐先に、前記第2のリソースを用いた1つ以上の処理を含む第3の処理群が含まれる場合に、前記第3の処理群に含まれるいずれかの処理が中断したとき、前記記憶部に記憶された情報に基づいて、前記第1のリソースの状態と前記第2のリソースの状態とを前記並列分岐の実行開始前の状態に戻す、
ことを特徴とする付記11記載のワークフロー制御装置。
コンピュータが、
前記第1のワークフローに含まれる処理のうち、前記リソースを用いた1つ以上の処理を含む第1の処理群を実行し、
前記第1の処理群に含まれるいずれかの処理が中断したとき、前記リソースの状態を前記第1の処理群の実行開始前の状態に戻し、
前記リソースの状態が前記第1の処理群の実行開始前の状態に戻ると、前記第2のワークフローに含まれる処理のうち、前記リソースを用いた1つ以上の処理を含む第2の処理群の実行を開始する、
ことを特徴とするワークフロー制御方法。
2 第1の実行部
3 第2の実行部
4 ロールバック処理部
5 リソース
11,12 ワークフロー
11a〜11c,12a〜12c 処理
11−1,12−1 処理群
Claims (11)
- 第1のワークフローおよび第2のワークフローの実行を制御するためのワークフロー制御プログラムにおいて、
コンピュータに、
前記第1のワークフローの実行をモニタし、
前記第1のワークフローに含まれる処理のうち第1の処理が中断したとき、前記第1のワークフローに含まれる処理のうち、それぞれ同一のリソースを用いた2以上の処理を含み、かつ、前記第1の処理を含む、連続する複数の処理の中から、先頭の処理を特定し、
前記リソースの状態を前記先頭の処理の実行開始前の状態に戻し、
前記第2のワークフローに含まれる処理のうち、前記複数の処理と排他的に実行される、前記リソースを用いた第2の処理の実行を開始する、
処理を実行させることを特徴とするワークフロー制御プログラム。 - 前記コンピュータに、
前記第1のワークフローに含まれる処理のうち、入力操作の受け付け処理を含む前記第1の処理の実行が、所定時間以内に完了しない場合に、前記第1の処理の実行を中断する、
処理をさらに実行させることを特徴とする請求項1記載のワークフロー制御プログラム。 - 前記コンピュータに、
前記第1のワークフローに含まれる処理それぞれについて、それぞれの処理の実行前における前記リソースの状態を示す情報を記憶部に記憶する、
処理をさらに実行させ、
前記リソースの状態を戻す処理では、前記複数の処理に含まれる実行された処理それぞれの内容と、前記記憶部に記憶された、当該実行された処理それぞれの実行前における前記リソースの状態を示す情報とに基づいて、前記リソースの状態を前記先頭の処理の実行開始前の状態に戻す、
ことを特徴とする請求項1または2記載のワークフロー制御プログラム。 - 前記リソースの状態を戻す処理では、前記複数の処理に含まれる処理のうち、実行が中断した位置から前記先頭の処理までの処理それぞれについて、前記リソースの状態をそれぞれの処理の実行前の状態に戻すための状態復元処理を実行することを特徴とする請求項3記載のワークフロー制御プログラム。
- 前記状態復元処理は、対応する処理に対して相反する処理であることを特徴とする請求項4記載のワークフロー制御プログラム。
- 前記記憶部への記憶では、前記第1のワークフローに含まれる処理のうち、前記リソースに格納されたデータを更新する更新処理については、当該処理の実行前における前記リソースの状態を示す情報として、更新前のデータを前記記憶部に記憶し、
前記リソースの状態を戻す処理では、実行が中断した位置から前記先頭の処理までに前記更新処理が含まれる場合、前記記憶部から当該更新処理に対応する前記更新前のデータを読み出し、読み出した前記更新前のデータによって前記リソースに格納された更新後のデータを更新する処理を、当該更新処理に対応する前記状態復元処理として実行する、
ことを特徴とする請求項4記載のワークフロー制御プログラム。 - 前記記憶部への記憶では、前記第1のワークフローに含まれる処理の中に、実行が省略された処理がある場合、当該処理について実行が省略されたことを前記記憶部に記憶し、
前記リソースの状態を戻す処理では、前記記憶部に記憶された情報に基づき、実行が中断した位置から前記先頭の処理までに実行が省略された処理がある場合には、当該処理に対応する前記状態復元処理をスキップする、
ことを特徴とする請求項4記載のワークフロー制御プログラム。 - 前記記憶部への記憶では、前記第1のワークフローが第1のリソースを用いた処理と第2のリソースを用いた処理とを含む場合、前記第1のワークフローに含まれる前記第1のリソースを用いた処理それぞれについて、それぞれの処理の実行前における前記第1のリソースの状態を示す情報を前記記憶部に記憶するとともに、前記第1のワークフローに含まれる前記第2のリソースを用いた処理それぞれについて、それぞれの処理の実行前における前記第2のリソースの状態を示す情報を前記記憶部に記憶し、
前記リソースの状態を戻す処理では、前記第1のワークフローが並列分岐を含み、前記並列分岐による第1の分岐先に、前記第1のリソースを用いた第1の連続する処理列が含まれ、前記並列分岐による第2の分岐先に、前記第2のリソースを用いた第2の連続する処理列が含まれる場合に、前記第2の連続する処理列に含まれるいずれかの処理が中断したとき、前記記憶部に記憶された情報に基づいて、前記第1のリソースの状態と前記第2のリソースの状態とを前記並列分岐の実行開始前の状態に戻す、
ことを特徴とする請求項3記載のワークフロー制御プログラム。 - 前記2以上の処理は、前記リソースでの処理のうち少なくとも一部の処理の状態を変更する処理と、前記状態を元に戻す処理とを含むことを特徴とする請求項1乃至8のいずれか1項に記載のワークフロー制御プログラム。
- 第1のワークフローおよび第2のワークフローの実行を制御するワークフロー制御装置において、
前記第1のワークフローを実行する第1の実行部と、
前記第1のワークフローの実行をモニタし、前記第1のワークフローに含まれる処理のうち第1の処理が中断したとき、前記第1のワークフローに含まれる処理のうち、それぞれ同一のリソースを用いた2以上の処理を含み、かつ、前記第1の処理を含む、連続する複数の処理の中から、先頭の処理を特定し、前記リソースの状態を前記先頭の処理の実行開始前の状態に戻すロールバック処理部と、
前記リソースの状態が前記先頭の処理の実行開始前の状態に戻ると、前記第2のワークフローに含まれる処理のうち、前記複数の処理と排他的に実行される、前記リソースを用いた第2の処理の実行を開始する第2の実行部と、
を有することを特徴とするワークフロー制御装置。 - 第1のワークフローおよび第2のワークフローの実行を制御するワークフロー制御方法において、
コンピュータが、
前記第1のワークフローの実行をモニタし、
前記第1のワークフローに含まれる処理のうち第1の処理が中断したとき、前記第1のワークフローに含まれる処理のうち、それぞれ同一のリソースを用いた2以上の処理を含み、かつ、前記第1の処理を含む、連続する複数の処理の中から、先頭の処理を特定し、
前記リソースの状態を前記先頭の処理の実行開始前の状態に戻し、
前記第2のワークフローに含まれる処理のうち、前記複数の処理と排他的に実行される、前記リソースを用いた第2の処理の実行を開始する、
ことを特徴とするワークフロー制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013066847A JP6064734B2 (ja) | 2013-03-27 | 2013-03-27 | ワークフロー制御プログラム、装置および方法 |
US14/222,740 US9940598B2 (en) | 2013-03-27 | 2014-03-24 | Apparatus and method for controlling execution workflows |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013066847A JP6064734B2 (ja) | 2013-03-27 | 2013-03-27 | ワークフロー制御プログラム、装置および方法 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2014191604A JP2014191604A (ja) | 2014-10-06 |
JP2014191604A5 JP2014191604A5 (ja) | 2014-11-27 |
JP6064734B2 true JP6064734B2 (ja) | 2017-01-25 |
Family
ID=51621738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013066847A Expired - Fee Related JP6064734B2 (ja) | 2013-03-27 | 2013-03-27 | ワークフロー制御プログラム、装置および方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9940598B2 (ja) |
JP (1) | JP6064734B2 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10698767B1 (en) * | 2014-12-22 | 2020-06-30 | Amazon Technologies, Inc. | Decentralized management of multi-service workflows |
JP6481463B2 (ja) * | 2015-03-30 | 2019-03-13 | 富士通株式会社 | 管理支援プログラム、方法及び装置 |
WO2017046939A1 (ja) * | 2015-09-18 | 2017-03-23 | 三菱電機株式会社 | ジョブ管理装置及びジョブ管理方法及びジョブ管理プログラム |
CN106611297A (zh) * | 2015-10-21 | 2017-05-03 | 中兴通讯股份有限公司 | 工作流异常处理方法及系统 |
JP2017097796A (ja) * | 2015-11-27 | 2017-06-01 | 富士通株式会社 | ワークフローの切替プログラム、切替方法及び切替装置 |
US10768975B2 (en) * | 2016-03-04 | 2020-09-08 | Ricoh Company, Ltd. | Information processing system, information processing apparatus, and information processing method |
US10725816B2 (en) | 2017-01-13 | 2020-07-28 | International Business Machines Corporation | Optimizing pipeline execution scheduling based on commit activity trends, priority information, and attributes |
CN109978290A (zh) * | 2017-12-27 | 2019-07-05 | 中国移动通信集团广东有限公司 | 一种业务流程回退处理方法、流程引擎和业务系统 |
US10365826B1 (en) | 2018-01-24 | 2019-07-30 | Micron Technology, Inc. | Command processing for a storage system |
JP6897866B2 (ja) * | 2018-03-29 | 2021-07-07 | 日本電気株式会社 | システム更新装置およびシステム更新方法 |
WO2019187975A1 (ja) * | 2018-03-29 | 2019-10-03 | 日本電気株式会社 | システム更新装置およびシステム更新方法 |
JP7421267B2 (ja) * | 2019-02-21 | 2024-01-24 | 日本電信電話株式会社 | サービス提供用アプリケーションの保守管理システム、保守管理装置、保守管理方法、および、保守管理用プログラム |
CN111080250B (zh) * | 2019-12-10 | 2023-04-18 | 东软集团股份有限公司 | 流程回退补偿方法、装置、存储介质及电子设备 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06309213A (ja) * | 1993-04-26 | 1994-11-04 | Nec Corp | ロールバック制御方式 |
JP3052908B2 (ja) * | 1997-09-04 | 2000-06-19 | 日本電気株式会社 | トランザクションプログラム並列実行方法およびトランザクションプログラム並列実行方式 |
JP2001257699A (ja) | 2000-03-13 | 2001-09-21 | Toshiba Corp | 伝送装置およびこの伝送装置のリブート方式 |
US7296056B2 (en) * | 2001-07-30 | 2007-11-13 | International Business Machines Corporation | Method, system, and program for selecting one user to assign a work item in a workflow |
JP2003256630A (ja) | 2002-02-28 | 2003-09-12 | Fuji Xerox Information Systems Co Ltd | データフロー管理システム |
US7107293B2 (en) * | 2003-04-30 | 2006-09-12 | International Business Machines Corporation | Nested recovery scope management for stateless recovery agents |
JP4291060B2 (ja) * | 2003-07-01 | 2009-07-08 | 富士通株式会社 | トランザクション処理方法,トランザクション制御装置およびトランザクション制御プログラム |
US20060069605A1 (en) * | 2004-09-29 | 2006-03-30 | Microsoft Corporation | Workflow association in a collaborative application |
US7634687B2 (en) * | 2005-01-13 | 2009-12-15 | Microsoft Corporation | Checkpoint restart system and method |
US7680683B2 (en) * | 2005-12-29 | 2010-03-16 | Microsoft Corporation | Dynamically repositioning workflow by end users |
US8284423B2 (en) * | 2006-04-07 | 2012-10-09 | Ricoh Production Print Solutions LLC | Customer-configurable print workflow system |
US8181150B2 (en) * | 2006-05-12 | 2012-05-15 | The Mathworks, Inc. | System and method for synchronized workflow management |
US20080172669A1 (en) * | 2007-01-12 | 2008-07-17 | Carefx Corporation | System capable of executing workflows on target applications and method thereof |
JP4807382B2 (ja) | 2008-06-25 | 2011-11-02 | 富士ゼロックス株式会社 | 処理フロー制御プログラム、処理フロー制御装置及びデータ処理システム |
US9244730B2 (en) * | 2009-02-11 | 2016-01-26 | International Business Machines Corporation | Application workflow integration subsystem |
US8812403B2 (en) * | 2010-11-08 | 2014-08-19 | Microsoft Corporation | Long term workflow management |
-
2013
- 2013-03-27 JP JP2013066847A patent/JP6064734B2/ja not_active Expired - Fee Related
-
2014
- 2014-03-24 US US14/222,740 patent/US9940598B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20140297355A1 (en) | 2014-10-02 |
US9940598B2 (en) | 2018-04-10 |
JP2014191604A (ja) | 2014-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6064734B2 (ja) | ワークフロー制御プログラム、装置および方法 | |
JP6152675B2 (ja) | ワークフロー制御プログラム、装置および方法 | |
JP5334226B2 (ja) | スケジュール管理方法及びスケジュール管理サーバ | |
JP6241144B2 (ja) | 制御プログラム、制御方法および制御装置 | |
US8516499B2 (en) | Assistance in performing action responsive to detected event | |
JP6260130B2 (ja) | ジョブ遅延検知方法、情報処理装置、およびプログラム | |
JP2014191604A5 (ja) | ||
JP6597360B2 (ja) | コネクション管理プログラム、コネクション管理方法、および情報処理装置 | |
US9244718B2 (en) | Virtual machine resource allocation based on connection time coverage exceeding a minimum threshold | |
US20150370593A1 (en) | System construction device and system construction method | |
JP2013045313A (ja) | ログ収集管理装置、システム、および方法 | |
JP2010176303A (ja) | バッチ処理システムおよびこれに用いる情報端末装置、バッチ処理のリカバリ方法 | |
JP2016200981A (ja) | 運用管理プログラム、運用管理方法、および運用管理装置 | |
US20130347001A1 (en) | Computer-readable recording medium, exclusion control apparatus, and exclusion control method | |
CN107450793A (zh) | 数据处理设备和数据处理方法 | |
US10904324B2 (en) | Computer system and method of controlling data processing | |
JP2010237901A (ja) | 監視制御システム、監視制御方法、監視制御サーバ及び監視制御プログラム | |
US20150242786A1 (en) | Integrating process context from heterogeneous workflow containers to optimize workflow performance | |
JP2010211574A (ja) | 情報処理システム、監視方法及び監視プログラム | |
JP2008135054A (ja) | ワークフロー管理方法及びその実施システム | |
CN106959888B (zh) | 云存储系统中的任务处理方法及装置 | |
JP6497278B2 (ja) | ログ管理プログラム、ログ管理方法およびログ管理装置 | |
Werfs et al. | Towards resilient adaptive socio-technical systems | |
JP7116318B2 (ja) | 処理システム、処理方法、上位システム、下位システム、上位プログラムおよび下位プログラム | |
JP7196262B1 (ja) | サービス提供システムおよびサービス提供方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141010 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20151106 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160711 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160830 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161031 |
|
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: 20161122 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161205 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6064734 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |