JP4575088B2 - 情報処理システム及び情報処理方法及び情報処理プログラム - Google Patents

情報処理システム及び情報処理方法及び情報処理プログラム Download PDF

Info

Publication number
JP4575088B2
JP4575088B2 JP2004251855A JP2004251855A JP4575088B2 JP 4575088 B2 JP4575088 B2 JP 4575088B2 JP 2004251855 A JP2004251855 A JP 2004251855A JP 2004251855 A JP2004251855 A JP 2004251855A JP 4575088 B2 JP4575088 B2 JP 4575088B2
Authority
JP
Japan
Prior art keywords
transaction
execution
processing
compensation
definition
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
Application number
JP2004251855A
Other languages
English (en)
Other versions
JP2006072450A (ja
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2004251855A priority Critical patent/JP4575088B2/ja
Publication of JP2006072450A publication Critical patent/JP2006072450A/ja
Application granted granted Critical
Publication of JP4575088B2 publication Critical patent/JP4575088B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、情報処理システム及び情報処理方法及び情報処理プログラムに関するものである。
非特許文献1で示される従来のアトミックトランザクションシステムでは、アトミックトランザクションの実行中、即ちそのトランザクションがコミットされる前に、エラー又は障害が発生した場合、自動的に例外処理を行い、そのトランザクションが実行されなかった場合と同じ状態を保持することができる。
ジム・グレイ、アンドレアス・ロイター著、「トランザクション処理〈上〉〈下〉―概念と技法」、日経BP社、2001年10月
業務の状態と流れを管理する業務プロセス管理システムにおいて、業務的なエラーが発生した場合、エラーに対処するための例外処理を実行し、業務プロセス上の以前に実行された業務状態から再開する、あるいは、業務プロセスを取り消す必要がある。
業務プロセスは、データベース処理、人間とのインタラクション、通信など、複数の一連のアトミックな処理で構成され、アトミックな各処理においてデータがコミットされる。業務プロセスにおける例外処理では、このような、すでにコミットされた処置結果を業務的に取り消したとみなせる状態にする必要があり、データベース(DB)の状態を回復後に望ましい状態に更新する(例えば、取り消すフラグをつけてDBを更新する。あるいは、支払った金額の払い戻し処理を行うなど)、外部通信先に業務例外を知らせる、人間に対して業務例外が発生したことを知らせるなどといった処理を行う必要がある。
業務プロセス処理における業務エラー処理では、このようにすでにコミットされた処理を戻す必要があるため、従来のアトミックトランザクションシステムと同じ方式で自動的に処理することはできない。業務的に発生しうる各業務エラーに対処するための例外処理を、業務アプリケーション開発者が開発する必要がある。
業務アプリケーション開発者がエラー処理を記述する際、エラーが発生した直接の原因だけでなく、エラーが発生するまでにどのような処理が実行されたか考慮する必要がある。エラーが発生した業務と、処理を戻す業務の間には、複数のパスが存在する可能性があり、これらを考慮して、エラー処理を記述しなければならず、例外処理の記述量が大きく、また、難しくなる可能性がある。
例えば、図1は状態遷移図により業務プロセスを示した例で、“SA1”〜“SA6”が業務状態、“TA12”〜“TA56”が遷移(トランジッション)である。業務状態“SA5”の時に業務エラーが発生して、業務状態“SA2”に戻すには、補償処理“error1”において、“SA2”から“SA5”にいたるまでに実行される可能性のある処理(“TA24”、“SA4”、“TA44”、“TA45”、“TA23”、“SA3”、“TA35”、“TA53”)を全て考慮して開発する必要がある。
また、業務プロセス管理システムでは、業務改善に伴って業務プロセスを変更する。例えば、業務の順番変更や追加・削除などが行われる。この時、各業務の正常処理は変更の必要はない。しかし、例外処理は、変更された業務プロセスに合わせて修正する必要がある。このため、業務プロセスの変更に対する柔軟性が損なわれる。
例えば、図1において、“SA2”と“SA3”の間に新しい業務状態“SB23”が追加されると、補償処理“error1”の内容も追加された内容に応じて変更する必要がある。このように、業務プロセスが変更されるたびに“error1”の処理を変更しなければいけない。
本発明は、業務(又はその他の情報処理。以下同様)の状態と流れを管理する業務プロセス管理システムにおいて、業務的なエラーが発生した場合、エラーに対処するための例外処理を実行し、自動的に業務プロセス上の以前に実行された業務状態から再開する、あるいは、業務プロセスを取り消すことを可能とすることを目的とする。また、その例外処理を記述する粒度を調整し、例外処理に関する記述量を減らし、業務プロセス変更に対する例外処理の柔軟性を向上させることを目的とする。
本発明の情報処理システムは、
一連の処理(以下、トランザクションという)を実行する情報処理システムにおいて、
トランザクションを実行するトランザクション実行部と、
前記トランザクション実行部のトランザクションの実行を履歴情報として記録する実行ログ管理部と、
前記実行ログ管理部が記録した履歴情報を記憶する実行ログ記憶部と、
トランザクションを取り消す補償処理の定義情報をトランザクションごとに記憶する補償処理記憶部と、
前記実行ログ記憶部が記憶した履歴情報と前記補償処理記憶部が記憶した定義情報とを基に、前記トランザクション実行部が実行したトランザクションを取り消す補償処理を実行する補償処理実行部とを備えることを特徴とする。
本発明により、業務の状態と流れを管理する業務プロセス管理システムにおいて、業務的なエラーが発生した場合、自動的に業務プロセス上の以前に実行された業務状態から再開する、あるいは、業務プロセスを取り消すことが可能となる。
以下、本発明の実施の形態について図面を参照して説明する。下記実施の形態では、本発明に係る情報処理システムの例として、業務プロセス管理システムを用いる。
実施の形態1.
図2は本実施の形態に係る業務プロセス管理システムの一例である。
本実施の形態の業務プロセス管理システム100は、図2に示すように、BPM(Business Process Management)実行部10と、アダプタ30と、その他の各記憶部から構成される。BPM実行部10は業務プロセス管理システムの本体であり、アダプタ30は、業務アプリケーション実行部40とBPM実行部10を接続するインタフェースである。業務アプリケーション実行部40は、業務プロセス管理システム100と同じ装置又は他の装置に実装され、業務記憶部41に記憶された業務アプリケーションを実行する。
アダプタ30は、各業務アプリケーションに合わせてカスタマイズされる。アダプタ30には、入力アダプタ(入力部の一例)と出力アダプタ(出力部の一例)の2種類ある。入力アダプタは業務アプリケーションからのデータ(業務データ)を受信してイベントに変換しBPM実行部10に入力する。出力アダプタはBPM実行部10の実行結果を、業務アプリケーションで受信できる形式に変換して、業務アプリケーションに渡す。また、アダプタの入出力に関する履歴はアダプタログとしてアダプタログ記憶部31に記録される。
BPM実行部10には、イベント受信部11、状態遷移制御部12、BPO(Business Process Object)管理部13(状態管理部の一例)、業務実行部14(トランザクション実行部の一例)、実行ログ管理部15、補償処理実行部16、補償処理スケジュール管理部17(エラー検知部を含む)、補償処理内容格納部18が含まれる。補償処理内容格納部18は揮発性メモリ又は不揮発性メモリに実装される。その他の各部はプログラムであり、CPU(Central Processing Unit)、メモリなどに実装される。BPO管理部13はBPO(Business Process Object)記憶部20に業務プロセスオブジェクト(BPO)のインスタンスを書き込む。実行ログ管理部15は実行ログを実行ログ記憶部22のDBに記録する。その他の各部の機能については後述する。
プロセス定義記憶部19(補償処理記憶部と定義記憶部との組み合わせの一例)、BPO記憶部20、業務アクション記憶部21、実行ログ記憶部22、補償処理アクション記憶部23は、不揮発性メモリに実装される。プロセス定義記憶部19は状態遷移制御部12、BPO記憶部20はBPO管理部13、業務アクション記憶部21は業務実行部14、実行ログ記憶部22は実行ログ管理部15、補償処理アクション記憶部23は補償処理実行部16と接続する。
業務記憶部41に記憶される業務アプリケーション、プロセス定義記憶部19に記憶されるプロセス定義ファイル、業務アクション記憶部21に記憶される業務アクション、補償処理アクション記憶部23に記憶される補償処理アクションは、業務開発担当者が、各業務に合わせて開発する業務ロジックを実装する。プロセス定義ファイルは、例えばUML(Unified Modeling Language)状態遷移モデルにより表現した業務プロセスの定義である。
業務アクション記憶部21に記憶される業務アクションは、業務的に正常な場合に、業務実行部14において実行される業務ロジックである。業務アクションには、イベントを送信したり、業務DBを更新したり、他の業務プロセスを起動したり、他システムと通信したり、BPOにデータを格納するロジックなどを記述する。補償処理アクション記憶部23に記憶される補償処理アクションには、業務エラーが発生した場合の例外処理を記述する。
プロセス定義の例を図3に示す。BPM実行部10は複数のプロセス定義を持つことができる。プロセス定義は、状態遷移モデルにより定義する。“SA1”〜“SA6”は状態、“TA12”〜“TA56”は遷移(トランジッション)を示す。図4(a)のように、各状態には、状態アクション及び状態の補償処理などを定義することができる。また図4(b)のように、各トランジッションには、前状態、後状態、イベント名、ガード条件、遷移アクション、遷移の補償処理などが定義される。状態とは、業務プロセスが、業務アプリケーションや業務プロセスからイベントが入力されるのを待っている状態である。各トランジッションは入力されたイベントとガード条件により選択され、トランジッションにリンクしている業務アクションが実行された後で、遷移先の状態に遷移する。また、業務エラーに対処するための補償処理には、“SA1”〜“SA6”のそれぞれに対応する“CSA1”〜“CSA6”の状態の補償処理と、“TA12”〜“TA56”のそれぞれに対応する“CTA12”〜“CTA56”のトランジッションの補償処理とがある。図3の例では状態“SA5”で業務エラー“ERR5”が発生して、状態“SA2”に戻る。
次に、このように構成された業務プロセス管理システム100の動作について説明する。
まず、図5を用いて、正常時の実行ログ記録の動作について説明する。図5は、本実施の形態における業務プロセスの正常処理を示すフローチャートである。
初めに、図3の例において、業務プロセス開始時(状態“SA1”から状態“SA2”に至るまで)に、図2の各部がどのように動作するか示す。
まず、業務アプリケーション実行部40が、入力アダプタに業務データ(例えば、見積もりプロセスの見積もり依頼データ)を渡す(ST101)。入力アダプタは、アダプタログに業務データを書き込み(ST102)、業務データを図6に示す構造のイベントデータに変換する(ST103)。図6のイベントデータにおいて、イベント名は図4(b)のイベント名、プロセスグループID、プロセスIDは対応するBPOを識別するためのID、プロセス定義名は業務プロセスに対応する業務プロセス定義の名前(プロセス定義ファイルの名前としてもよい)、イベントデータは業務データからイベントとして扱いたいデータを切り出したデータ、BPO保存データは業務データからBPOに保存したいデータを切り出したデータである。イベントデータは、1回のイベント処理が終わると捨てられるが、BPO保存データはイベント処理後にBPOに保存されるため、同じBPOに対する別のイベント処理から参照することができる。入力アダプタでは、2回目以降のイベント入力の際に、同じBPOのインスタンスを参照できるように、業務データにおけるキーとなるデータ(例えば、見積もり依頼データを識別する見積もりID)と、プロセスID、プロセスグループIDをリンクさせる。
そして、入力アダプタは、イベント受信部11にイベント(例では“eTA12”)を渡す(ST104)。
イベント受信部11はBPO管理部13に、イベントデータのプロセスID、プロセスグループIDに対応するBPOのインスタンス生成を依頼する(ST105)。
BPO管理部13は指定されたプロセスID、プロセスグループIDに対応するBPOのインスタンスをBPO記憶部20のDB上に生成する(ST106)。この時、BPOの状態は、イベントデータに含まれるプロセス定義の情報を見て、対応するプロセス定義の開始状態、即ち、例においては“SA1”に初期化される。次に、BPO管理部13は、実行ログ管理部15に実行ログの記録を依頼する。実行ログ管理部15は、実行ログ記憶部22に図7のようにタイムスタンプ“t1”の情報を記録する(ST107)。
次に、イベント受信部11は、状態遷移制御部12に、イベントデータを渡す(ST108)。状態遷移制御部12は、プロセス定義記憶部19を参照してイベントデータのイベント名“eTA12”が一致し、ガード条件が真となるトランジッションを選択する(ST109)。この例の場合、“TA12”が選択され、遷移先は“SA2”となる。
状態が遷移する場合、業務実行部14はトランザクションを実行する。トランザクションは、EntryとExitの状態アクションと、遷移アクションとの3種類の業務アクションから成る。Entryアクションは状態遷移において遷移先の状態に入る時に実行されるアクション、Exitアクションは状態遷移において遷移前の状態から抜けるときに実行されるアクション、遷移アクションは状態遷移自体に対応付けされたアクションである。遷移アクションは、その遷移に対応するイベントが入力されて、ガード条件(遷移に対応付けられた条件)が満たされている場合に実行される。これらの3種類のアクションは、遷移前の状態のExitアクション、遷移アクション、遷移先の状態のEntryアクションという順で実行される。
この例では、状態遷移制御部12は、業務実行部14に、“SA1”のExitアクション“sa1xact”、“TA12”の遷移アクション“act12”、“SA2”のEntryアクション“sa2act”を実行させる(ST110)。そして、状態遷移制御部12は、実行ログ管理部15に実行ログの記録を依頼する。実行ログ管理部15は、実行ログ記憶部22に図7のようにタイムスタンプ“t2”の情報を記録する(ST111)。そして、状態遷移制御部12は、BPOの状態を“SA2”となるように、BPO管理部13に依頼する。BPO管理部13は、BPOの状態を“SA2”にした後で(ST112)、実行ログ管理部15に実行ログの記録を依頼する。実行ログ管理部15は、実行ログ記憶部22に、図7のようにタイムスタンプ“t3”の情報を記録する(ST113)。
このように、業務プロセス開始時には、3つの実行ログが記録される。
次に、図3の例において、すでに開始されている業務プロセスの実行時(状態“SA2”から状態“SA4”に至るまで)に、図2の各部がどのように動作するか示す。
まず、業務アプリケーション実行部40が、入力アダプタに業務データを渡す(ST101)。入力アダプタは、アダプタログに業務データを書き込み(ST102)、業務データを図6に示す構造のイベントデータに変換する(ST103)。この際、入力アダプタは、業務データに含まれるキーとなるデータを元に、業務プロセス開始時のイベントデータと同じプロセスIDとプロセスグループIDとを設定したイベントデータを作成する。
そして、入力アダプタは、イベント受信部11にイベント(例では“eTA24”)を渡す(ST104)。
イベント受信部11はBPO管理部13に、イベントデータのプロセスID、プロセスグループIDを渡し、現在のBPOの状態(例の場合“SA2”)を得る(ST105)。
次に、イベント受信部11は、状態遷移制御部12に、イベントデータを渡す(ST108)。状態遷移制御部12は、プロセス定義記憶部19を参照してイベントデータのイベント名“eTA24”が一致し、ガード条件が真となるトランジッションを選択する(ST109)。この例の場合、“TA24”が選択され、遷移先は“SA4”となる。
状態遷移制御部12は、業務実行部14に、“SA2”のExitアクション“sa2xact”、“TA24”の遷移アクション“act24”、“SA4”のEntryアクション“sa4act”を実行させる(ST110)。そして、状態遷移制御部12は、実行ログ管理部15に実行ログの記録を依頼する。実行ログ管理部15は、実行ログ記憶部22に図7のようにタイムスタンプ“t4”の情報を記録する(ST111)。そして、状態遷移制御部12は、BPOの状態を“SA4”となるように、BPO管理部13に依頼する。BPO管理部13は、BPOの状態を“SA4”にした後で(ST112)、実行ログ管理部15に実行ログの記録を依頼する。実行ログ管理部15は、実行ログ記憶部22に、図7のようにタイムスタンプ“t5”の情報を記録する(ST113)。
このように、業務アプリケーションから図3の業務プロセスに、イベント“eTA12”、“eTA24”が入力されると、業務プロセスが状態“SA4”まで進み、図7のように実行ログにタイムスタンプ“t1”〜“t5”の情報が記録される。同様に、続けてイベント“eTA44”、“eTA44”、“eTA45”が入力されると、業務プロセスが状態“SA5”まで進み、図7のように実行ログにタイムスタンプ“t6”〜“t11”の情報が記録される。
次に、図8を用いて、補償処理スケジューリングの動作について説明する。図8は、本実施の形態における業務プロセスの補償処理を示すフローチャートである。
ここでは、図3の例において、業務エラー発生時(状態“SA5”から状態“SA2”に戻るまで)に、図2の補償処理スケジュール管理部17がどのように動作するか示す。補償処理スケジュール管理部17は、業務アプリケーション実行部40からアダプタ30を介して送られるイベントとして、あるいは、業務実行部14が業務アクションを実行した際の例外として、業務障害(エラー)を検知すると、補償処理スケジューリングを開始する。
補償処理スケジュール管理部17は、まず、BPO管理部13を介して、BPO記憶部20に記憶されたBPOから現在の状態を得る(ST201)。そして、状態遷移制御部12を介して、プロセス定義記憶部19に記憶されたプロセス定義の中から、現在の状態に対応する業務エラーを得る(ST202)。また同様に、現在の状態に対応する業務エラー対処方法を得る(ST203)。
この業務エラー対処方法が、「終了」の場合、補償処理をスケジュールせず、処理を終了する。「固定状態に戻る」の場合、戻り先の状態を指定された固定の状態として処理する(ST205)。「業務エラーアクションの結果が示す状態に戻る」の場合、業務実行部14にて業務エラーアクションを実行させ(ST204)、戻る状態を業務エラーアクションの結果にする(ST205)。
次に、実行ログ管理部15を介して、実行ログにプロセスID、プロセスグループIDを指定し、実行ログ記憶部22を検索して一覧を得る(ST206)。さらにその結果をタイムスタンプでソートして、現在の状態と戻り先の状態との間の実行ログに絞り込む(ST207)。絞り込んだ実行ログの各行に対して、以下のようにタイムスタンプが新しい方から古い方に向かって順番にループ処理する(ST208)。
実行ログの行のログ種別が「状態」の場合、実行ログの行の示す状態に対応する補償処理を図4(a)のプロセス定義から得て、これを補償処理内容として補償処理内容格納部18に書き込む(ST209)。また、実行ログの行の示す状態、状態種別、Entryアクション、BPOのデータを入力パラメータとして指定して、補償処理内容格納部18の補償処理内容に書き込む(ST211)。
実行ログの行のログ種別が「遷移」の場合、実行ログの行の示すトランジッションに対応する補償処理を図4(b)のプロセス定義から得て、これを補償処理内容として補償処理内容格納部18に書き込む(ST210)。また、実行ログの行の示す遷移前の状態、Exitアクション、遷移、遷移後の状態、イベント名、イベントデータ、アクション、及びアダプタログのイベントに対応する業務データを入力パラメータとして指定して、補償処理内容格納部18の補償処理内容に書き込む(ST211)。ここで、アダプタログのデータは、例えば、アダプタ30を介して取得するか、又はアダプタログ記憶部31と補償処理スケジュール管理部17を接続して直接アダプタログ記憶部31から取得する。
絞り込んだ実行ログの全行を補償処理内容に反映させると、処理を終了する。この例では、図3の“SA5”で障害が発生して、その時図7の実行ログが記録されているため、以下の補償処理が補償処理内容に書き込まれる。
“CSA5”、“CTA45”、“CSA4”、“CTA44”、“CSA4”、“CTA44”、“CSA4”、“CTA44”、“CSA4”、“CTA24”、“CSA2”。
このように補償処理スケジューリングが行われると、補償処理内容格納部18に書き込まれた補償処理内容に基づき、補償処理実行部16が補償処理を実行する。
以上のように、本実施の形態では、業務の状態と流れを管理する業務プロセス管理システムにおいて、業務的なエラーが発生した場合、自動的に業務プロセス上の以前に実行された業務状態から再開する、あるいは、業務プロセスを取り消すことが可能となる。これにより、すでにアトミックトランザクションがコミットしてデータが確定したトランザクションで行われた処理を、業務的に処理が行われていなかったのと同じ状態にすることができる。さらに、本実施の形態では、複数のトランザクションがコミットされて、途中で人間が行う業務が入るような長いスパンのトランザクション(ロングタイムトランザクション)を扱うことができる。
前述した実施の形態で、業務プロセス管理システム100は、コンピュータで実現できるものである。
図示していないが、業務プロセス管理システム100は、プログラムを実行するCPU(Central Processing Unit)を備えている。
例えば、CPUは、バスを介して、ROM(Read Only Memory)、RAM(Random Access Memory)、通信ボード、表示装置、K/B(キーボード)、マウス、FDD(Flexible Disk Drive)、CDD(コンパクトディスクドライブ)、磁気ディスク装置、光ディスク装置、プリンタ装置、スキャナ装置等と接続されている。
RAMは、揮発性メモリの一例である。ROM、FDD、CDD、磁気ディスク装置、光ディスク装置は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
前述した各実施の形態の業務プロセス管理システム100が扱うデータや情報は、記憶装置あるいは記憶部に保存され、業務プロセス管理システム100の各部により、記録され読み出されるものである。
また、通信ボードは、例えば、LAN、インターネット、或いはISDN等のWAN(ワイドエリアネットワーク)に接続されている。
磁気ディスク装置には、オペレーティングシステム(OS)、ウィンドウシステム、プログラム群、ファイル群(データベース)が記憶されている。
プログラム群は、CPU、OS、ウィンドウシステムにより実行される。
上記業務プロセス管理システム100の各部は、一部或いはすべてコンピュータで動作可能なプログラムにより構成しても構わない。或いは、ROMに記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェア或いは、ハードウェア或いは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実施されても構わない。
上記プログラム群には、実施の形態の説明において「〜部」として説明した処理をCPUに実行させるプログラムが記憶される。これらのプログラムは、例えば、C言語やHTMLやSGMLやXMLなどのコンピュータ言語により作成される。
また、上記プログラムは、磁気ディスク装置、FD(Flexible Disk)、光ディスク、CD(コンパクトディスク)、MD(ミニディスク)、DVD(Digital Versatile Disk)等のその他の記録媒体に記憶され、CPUにより読み出され実行される。
以上のように、上記実施の形態で説明した業務プロセス管理システムは、ロングタイムトランザクション(業務プロセスのように、複数のアトミックトランザクションを組み合わせたもの)の補償処理を自動的に構成する機能を持つ。
また、上記業務プロセス管理システムは、
状態遷移モデルで記述された業務プロセスの実行過程のログ、すなわち、状態、トランジッション、イベント、イベントデータ、アクション、各業務状態における業務プロセスオブジェクト、アクション実行の情報をDB上に記録する実行ログ記録部、及び、記録された実行ログの情報を元に、各トランジッションごとに記述された補償処理アクションの実行順序をスケジューリングすることにより全体の補償処理を構成し、ログに記録されたデータから各補償処理アクションに適切なデータを渡しながら実行することにより、適切なエラー処理を行い、すでに実行された処理を取り消すことができることを特徴とする補償処理実行部を持つ。
また、上記業務プロセス管理システムは、
状態遷移モデルを拡張して分岐・結合により並列に動作する業務プロセスに対応できることを特徴とする。
また、上記業務プロセス管理システムは、
複数の業務プロセスが連鎖する業務に対応できることを特徴とする。
業務プロセス管理システムの課題を示す状態遷移図。 実施の形態1に係る業務プロセス管理システムの構成を示すブロック図。 実施の形態1における業務プロセスの一例を示す状態遷移図。 実施の形態1における業務プロセスの一例を表すプロセス定義。 実施の形態1における業務プロセスの正常処理を示すフローチャート。 実施の形態1におけるイベントの構造を示す概念図。 実施の形態1における実行ログの形式と例。 実施の形態1における業務プロセスの補償処理を示すフローチャート。
符号の説明
10 BPM実行部、11 イベント受信部、12 状態遷移制御部、13 BPO管理部、14 業務実行部、15 実行ログ管理部、16 補償処理実行部、17 補償処理スケジュール管理部、18 補償処理内容格納部、19 プロセス定義記憶部、20 BPO記憶部、21 業務アクション記憶部、22 実行ログ記憶部、23 補償処理アクション記憶部、30 アダプタ、31 アダプタログ記憶部、40 業務アプリケーション実行部、41 業務記憶部、100 業務プロセス管理システム。

Claims (11)

  1. 複数の状態と状態間の遷移とが定義された定義情報であって、遷移ごとに、実行される一連の処理であるトランザクションと、遷移の前後の状態とが定義され、特定の状態に対応付けて、エラーが発生した場合の戻り先の状態が定義された定義情報を記憶する定義記憶部と、
    トランザクションごとに、トランザクションを取り消す補償処理が定義された定義情報を記憶する補償処理記憶部と、
    トランザクションを実行するトランザクション実行部と、
    前記トランザクション実行部が実行したトランザクションと、前記定義記憶部が記憶した定義情報で定義された当該トランザクションに対応する遷移の前後の状態と、当該トランザクションの実行順序と実行ログとして記録する実行ログ管理部と、
    前記トランザクション実行部が実行したトランザクションにおけるエラーを検知するエラー検知部と、
    前記エラー検知部がエラーを検知した場合、前記実行ログ管理部が記録した実行ログを検索して、前記定義記憶部が記憶した定義情報で定義された現在の状態に対応する戻り先の状態と現在の状態との間で前記トランザクション実行部が実行したトランザクションと、当該トランザクションの実行順序とを特定し、当該トランザクションの実行順序に基づき、前記補償処理記憶部が記憶した定義情報で定義された当該トランザクションに対応する補償処理の実行順序を決定し、当該補償処理と、当該補償処理の実行順序とを補償処理内容として記録する補償処理スケジュール管理部と、
    前記補償処理スケジュール管理部が記録した補償処理内容に従って補償処理を実行する補償処理実行部とを備えることを特徴とする情報処理システム。
  2. 前記定義記憶部は、
    特定の状態に対応付けて、エラーが発生した場合の戻り先の状態として固定の状態が定義された定義情報を記憶することを特徴とする請求項1に記載の情報処理システム。
  3. 前記定義記憶部は、
    特定の状態に対応付けて、エラーが発生した場合の戻り先の状態を所定の処理の結果が示す状態にすることが定義された定義情報を記憶し、
    前記トランザクション実行部は、
    前記エラー検知部がエラーを検知した場合、前記定義記憶部が記憶した定義情報で定義された現在の状態に対応する所定の処理を実行し、
    前記補償処理スケジュール管理部は、
    前記エラー検知部がエラーを検知した場合、前記実行ログ管理部が記録した実行ログを検索して、前記トランザクション実行部が実行した所定の処理の結果が示す状態と現在の状態との間で前記トランザクション実行部が実行したトランザクションと、当該トランザクションの実行順序とを特定することを特徴とする請求項1又は2に記載の情報処理システム。
  4. 前記定義記憶部は、
    遷移ごとに、さらに、入力情報が定義された定義情報を記憶し、
    前記情報処理システムは、さらに、
    入力情報を入力する入力部を備え、
    前記トランザクション実行部は、
    前記定義記憶部が記憶した定義情報で定義された、前記入力部が入力した入力情報に対応するトランザクションを実行することを特徴とする請求項1から3いずれかに記載の情報処理システム。
  5. 前記情報処理システムは
    トランザクションを1つ以上組み合わせた業務を処理することを特徴とする請求項1から4いずれかに記載の情報処理システム。
  6. 複数の状態と状態間の遷移とが定義された定義情報であって、遷移ごとに、実行される一連の処理であるトランザクションと、遷移の前後の状態とが定義され、特定の状態に対し、エラーが発生した場合の戻り先の状態が定義された定義情報を記憶する定義記憶部と、トランザクションごとに、トランザクションを取り消す補償処理が定義された定義情報を記憶する補償処理記憶部とを備える情報処理装置を用いた情報処理方法において、
    トランザクションを実行するトランザクション実行工程と、
    前記トランザクション実行工程で実行したトランザクションと、前記定義記憶部が記憶した定義情報で定義された当該トランザクションに対応する遷移の前後の状態と、当該トランザクションの実行順序と実行ログとして記録する実行ログ管理工程と、
    前記トランザクション実行工程で実行したトランザクションにおけるエラーを検知するエラー検知工程と、
    前記エラー検知工程でエラーを検知した場合、前記実行ログ管理工程で記録した実行ログを検索して、前記定義記憶部が記憶した定義情報で定義された現在の状態に対応する戻り先の状態と現在の状態との間で前記トランザクション実行工程で実行したトランザクションと、当該トランザクションの実行順序とを特定し、当該トランザクションの実行順序に基づき、前記補償処理記憶部が記憶した定義情報で定義された当該トランザクションに対応する補償処理の実行順序を決定し、当該補償処理と、当該補償処理の実行順序とを補償処理内容として記録する補償処理スケジュール管理工程と、
    前記補償処理スケジュール管理工程で記録した補償処理内容に従って補償処理を実行する補償処理実行工程とを備えることを特徴とする情報処理方法。
  7. 前記定義記憶部は、
    遷移ごとに、さらに、入力情報が定義された定義情報を記憶し、
    前記情報処理方法は、さらに、
    入力情報を入力する入力工程を備え、
    前記トランザクション実行工程は、
    前記定義記憶部が記憶した定義情報で定義された、前記入力工程で入力した入力情報に
    対応するトランザクションを実行することを特徴とする請求項6に記載の情報処理方法。
  8. 前記情報処理方法は
    トランザクションを1つ以上組み合わせた業務を処理することを特徴とする請求項6又は7に記載の情報処理方法。
  9. 複数の状態と状態間の遷移とが定義された定義情報であって、遷移ごとに、実行される一連の処理であるトランザクションと、遷移の前後の状態とが定義され、特定の状態に対し、エラーが発生した場合の戻り先の状態が定義された定義情報を記憶する定義記憶部と、トランザクションごとに、トランザクションを取り消す補償処理が定義された定義情報を記憶する補償処理記憶部とを備えるコンピュータにより実行される情報処理プログラムにおいて、
    トランザクションを実行するトランザクション実行処理と、
    前記トランザクション実行処理が実行したトランザクションと、前記定義記憶部が記憶した定義情報で定義された当該トランザクションに対応する遷移の前後の状態と、当該トランザクションの実行順序と実行ログとして記録する実行ログ管理処理と、
    前記トランザクション実行処理が実行したトランザクションにおけるエラーを検知するエラー検知処理と、
    前記エラー検知処理がエラーを検知した場合、前記実行ログ管理処理が記録した実行ログを検索して、前記定義記憶部が記憶した定義情報で定義された現在の状態に対応する戻り先の状態と現在の状態との間で前記トランザクション実行処理が実行したトランザクションと、当該トランザクションの実行順序とを特定し、当該トランザクションの実行順序に基づき、前記補償処理記憶が記憶した定義情報で定義された当該トランザクションに対応する補償処理の実行順序を決定し、当該補償処理と、当該補償処理の実行順序とを補償処理内容として記録する補償処理スケジュール管理処理と、
    前記補償処理スケジュール管理処理が記録した補償処理内容に従って補償処理を実行する補償処理実行処理とをコンピュータに実行させることを特徴とする情報処理プログラム。
  10. 前記定義記憶部は、
    遷移ごとに、さらに、入力情報が定義された定義情報を記憶し、
    前記情報処理プログラムは、さらに、
    入力情報を入力する入力処理をコンピュータに実行させ、
    前記トランザクション実行処理は、
    前記定義記憶部が記憶した定義情報で定義された、前記入力処理が入力した入力情報に対応するトランザクションを実行することを特徴とする請求項に記載の情報処理プログラム。
  11. 前記情報処理プログラムは
    トランザクションを1つ以上組み合わせた業務を処理することを特徴とする請求項9又は10に記載の情報処理プログラム。
JP2004251855A 2004-08-31 2004-08-31 情報処理システム及び情報処理方法及び情報処理プログラム Expired - Fee Related JP4575088B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004251855A JP4575088B2 (ja) 2004-08-31 2004-08-31 情報処理システム及び情報処理方法及び情報処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004251855A JP4575088B2 (ja) 2004-08-31 2004-08-31 情報処理システム及び情報処理方法及び情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2006072450A JP2006072450A (ja) 2006-03-16
JP4575088B2 true JP4575088B2 (ja) 2010-11-04

Family

ID=36153053

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004251855A Expired - Fee Related JP4575088B2 (ja) 2004-08-31 2004-08-31 情報処理システム及び情報処理方法及び情報処理プログラム

Country Status (1)

Country Link
JP (1) JP4575088B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8600944B2 (en) * 2010-09-24 2013-12-03 Hitachi Data Systems Corporation System and method for managing integrity in a distributed database
JP5738133B2 (ja) * 2011-09-09 2015-06-17 三菱電機株式会社 縮退処理装置、縮退処理システム、縮退処理装置の縮退処理方法および縮退処理プログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000163372A (ja) * 1998-11-27 2000-06-16 Hitachi Ltd トランザクション処理方法及びその実施装置並びにその処理プログラムを記録した媒体
JP2001034595A (ja) * 1999-07-21 2001-02-09 Hitachi Ltd 複数システム間業務統合方法および装置
JP2001350660A (ja) * 2000-06-06 2001-12-21 Toshiba Corp プログラム実行管理装置及びプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2003242313A (ja) * 2002-02-18 2003-08-29 Nippon Telegr & Teleph Corp <Ntt> 業務進捗制御装置及びその方法と、業務進捗制御プログラム及びそのプログラムを記録した記録媒体
JP2003345610A (ja) * 2002-05-27 2003-12-05 Nippon Telegr & Teleph Corp <Ntt> トランザクション処理装置、同装置のトランザクション処理方法、トランザクション処理プログラムおよび同プログラムを記録したコンピュータ読み取り可能な記録媒体

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000163372A (ja) * 1998-11-27 2000-06-16 Hitachi Ltd トランザクション処理方法及びその実施装置並びにその処理プログラムを記録した媒体
JP2001034595A (ja) * 1999-07-21 2001-02-09 Hitachi Ltd 複数システム間業務統合方法および装置
JP2001350660A (ja) * 2000-06-06 2001-12-21 Toshiba Corp プログラム実行管理装置及びプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2003242313A (ja) * 2002-02-18 2003-08-29 Nippon Telegr & Teleph Corp <Ntt> 業務進捗制御装置及びその方法と、業務進捗制御プログラム及びそのプログラムを記録した記録媒体
JP2003345610A (ja) * 2002-05-27 2003-12-05 Nippon Telegr & Teleph Corp <Ntt> トランザクション処理装置、同装置のトランザクション処理方法、トランザクション処理プログラムおよび同プログラムを記録したコンピュータ読み取り可能な記録媒体

Also Published As

Publication number Publication date
JP2006072450A (ja) 2006-03-16

Similar Documents

Publication Publication Date Title
JP3267066B2 (ja) ワークフロー支援システム
US7669074B2 (en) Method for fault handling in a co-operative workflow environment
US8340999B2 (en) Automatic generation of executable components from business process models
CN100470492C (zh) 生成最优恢复计划的系统和方法
JPH08287162A (ja) ワークフローシステム
US20080115128A1 (en) Method, system and computer program product for implementing shadow queues for recovery of messages
JP4102354B2 (ja) アプリケーションフロー制御装置
US9160867B2 (en) Information processing system for preventing job process from being redundantly performed, information processing apparatus, and program
JP4575088B2 (ja) 情報処理システム及び情報処理方法及び情報処理プログラム
JP2008090798A (ja) データ処理システムのバックアップ制御装置及びシステム
JP4722864B2 (ja) データ処理システム、形式変換装置、受信データ処理装置、データ処理方法、及び、コンピュータプログラム
JP5086820B2 (ja) サービス管理方法とシステムおよびプログラム
JP7055703B2 (ja) サプライヤ評価システムおよびサプライヤ評価方法
JP2007279861A (ja) ビジネスプロセス管理装置及びビジネスプロセス管理方法及びビジネスプロセス管理プログラム
JP4493692B2 (ja) 複合ウェブ・サービス・プロセスを処理するための自己修復装置
JP2012128581A (ja) 通信コード生成装置および関数利用コンピュータおよび関数公開コンピュータおよびコンピュータシステムおよび通信コード生成方法およびプログラム
US11544175B2 (en) Systems and methods for continuity of dataflow operations
KR20090068938A (ko) 분산된 엔지니어링 자원의 통합 및 실행을 위한 엔지니어링프레임워크 및 그를 이용한 방법
JP2007529067A6 (ja) 自己修復複合ウェブ・サービスのための方法及び装置
JP5155747B2 (ja) システム障害発生時のビジネスインパクト分析モニタシステム
JP6905111B2 (ja) 管理装置と情報処理装置とを含むシステム、情報処理装置、それらの制御方法、及びプログラム
JP5379910B2 (ja) 動作検証装置、動作検証方法および動作検証プログラム
JP2010072685A (ja) 作業実行システム、作業実行装置、制御装置、作業実行プログラム、および制御プログラム
JP4158649B2 (ja) 連携処理装置及びプログラム
JP2005266976A (ja) プログラム保存装置、プログラム保存方法、プログラムおよび記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100511

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100708

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: 20100817

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: 20100819

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130827

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees