JP5211901B2 - ワークフロー実行制御プログラム、ワークフロー実行制御装置、及びワークフロー実行制御方法 - Google Patents
ワークフロー実行制御プログラム、ワークフロー実行制御装置、及びワークフロー実行制御方法 Download PDFInfo
- Publication number
- JP5211901B2 JP5211901B2 JP2008180361A JP2008180361A JP5211901B2 JP 5211901 B2 JP5211901 B2 JP 5211901B2 JP 2008180361 A JP2008180361 A JP 2008180361A JP 2008180361 A JP2008180361 A JP 2008180361A JP 5211901 B2 JP5211901 B2 JP 5211901B2
- Authority
- JP
- Japan
- Prior art keywords
- service
- workflow
- cost
- processing
- 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
- 238000000034 method Methods 0.000 title claims description 66
- 238000012545 processing Methods 0.000 claims description 217
- 238000010606 normalization Methods 0.000 claims description 79
- 238000005259 measurement Methods 0.000 claims description 23
- 230000004044 response Effects 0.000 description 24
- 230000006870 function Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 8
- 230000015654 memory Effects 0.000 description 5
- 239000003795 chemical substances by application Substances 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- 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
- 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
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Game Theory and Decision Science (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Educational Administration (AREA)
- Development Economics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
従来、ワークフロー処理を行うために、BPEL(Business Process Execution Language)等に従って、ワークフローを規定し、且つそのワークフローに基づいてサービスリクエスタがサービスを呼び出す方式が用いられている。
上記ワークフロー実行制御プログラムは、上記1台以上のサービス提供サーバに接続されるコンピュータを、上記サービス毎の処理結果を用いて上記サービス毎の処理コスト及びエラーの発生確率を算出するサービス計測部と、1つの上記サービスのエラーにより生じる他のサービスの処理コストと、当該エラーの発生確率とを用いて正規化される正規化コストを、上記サービスの各々について算出する正規化コスト算出部と、上記算出された正規化コストに従って、上記サービスの実行順序を決定する実行フロー決定部と、上記サービス提供サーバに対して、上記実行順序に従って上記サービスを順次呼び出すサービス呼出部として機能させる。
図1を用いて、ワークフロー実行制御装置の接続構成の概要について説明する。インターネット、LAN等のネットワーク5を介して、ワークフロー実行制御装置10a、クライアントコンピュータ40(以下、「クライアント40」と称する)、サービス提供サーバ50a〜cが互いにアクセス可能に接続されている。
図2を用いて、第1の実施形態に係るワークフロー実行制御装置10aについて説明する。
ワークフロー実行制御装置10aは、クライアント40から受信したリクエストメッセージに従って、1台以上のサービス提供サーバにより提供される複数のサービスを、順次呼び出すワークフロー実行制御を実施する。
ワークフロー実行制御装置10aは、単一又は複数のCPU(Central Processing Unit)及びメモリ(SRAM、DRAMなど)を含む処理部20、不揮発性半導体メモリ、ハードディスク装置、光ディスク装置等の記憶部12、及びNIC(Network Interface Card)等の通信部38を有する。ワークフロー実行制御装置10aは、HTTP等の既知のプロトコルを用いて、ネットワーク5を介してクライアント40及び/又はサービス提供サーバ50a〜cへ各種データの送受信を行えるように構成される。
また、処理部20のメモリ又は記憶部12は、処理コスト保持部25として機能する。
メッセージ解析部22は、記憶部12から読出パラメータ定義情報15を読み出して、読出パラメータ定義情報15により指示されるリクエストメッセージ中の場所からパラメータ(例えば、予約先ホテル名)を読み出し、実行フロー決定部23に伝える。読出パラメータ定義情報15は、例えば、「XPath(XMLパス言語)」で規定し得る。
正規化コスト算出部24は、実行フロー決定部23から指定されたサービス群およびメッセージ解析部22が読み出したパラメータをもとに、処理コスト保持部25から各サービスの処理時間、キャンセル処理時間、及びエラー発生確率を読み出す。正規化コスト算出部24は、読み出したデータを用いて、各サービスの正規化コストを計算し、実行フロー決定部23に渡す。
サービス計測部26は、サービスごと及び/又はメッセージ解析部22の抽出したパラメータごとに、サービス呼出部28からリクエスト送信時刻及び応答受信制御部29から応答時刻を取得して、サービスの処理時間及びキャンセル処理時間である処理コストを算出する。そして、サービス計測部26は、処理コストを処理コスト保持部25に保存する。また、サービス計測部26は、応答受信制御部29からサービス提供サーバ50からサービスの処理結果を取得して、処理結果が「OK」か「エラー」かを識別する。サービス計測部26は、処理結果がエラーの場合はエラー発生確率を再計算して、上記処理コストと合わせて処理コスト保持部25にエラー発生確率を記録する。
宛先サービス選択部27は、実行フロー決定部23が決定したフロー実行順序に従って、呼び出すサービスを決定する。また、宛先サービス選択部27は、実行中の各ワークフローの状態管理、エラー発生時のキャンセル用の処理呼び出し判断を行う。
サービス呼出部28は、フロー実行順序に従って決定されたサービスの実行を要求するサービス実行リクエストを、通信部38を介して決定されたサービスを提供するサービス提供サーバ50に送信してサービス提供サーバ50のサービスを呼び出す。さらに、サービス呼出部28は、サービス実行リクエスト送信時の時刻であるリクエスト送信時刻をサービス計測部26に伝える。
応答受信制御部29は、通信部38を介して処理結果をサービス提供サーバ50から受信し、宛先サービス選択部27に渡す。応答受信制御部29は、処理結果を用いて、処理結果受信時の応答時刻をサービス計測部26に伝える。
クライアント40は、液晶ディスプレイ等の表示部、キーボード及びマウス等の操作部、CPU、メモリ等を含む処理部、ハードディスク等の記憶部、及びNIC等の通信部を有し、ネットワーク5を利用してワークフロー実行制御装置10a及び/又はクライアント40へ各種データの送受信を行えるように構成されている。
クライアント40には、WebサイトのWebページをアクセスするためのWebブラウザがインストールされている。また、クライアント40は、パーソナルコンピュータ、ブラウザフォン、又は、PDA(Personal Digital Assistance)であっても良い。なお、図1では、クライアント40は、1台で示されているが、この数に限定されるものでは無く、複数台あっても良い。
なお、図1では、サービス提供サーバは、3台で示されているが、その台数に制限されない。また、1台のサービス提供サーバが複数のサービスを提供することで、サービス提供サーバの台数を減少させても良い。
なお、図3及び図4では、クライアント40、ワークフロー実行制御装置10a、及びサービス提供サーバ50は、それぞれ、ASPサービスの要求処理、ワークフロー実行制御、及びサービス処理を開始する。図3及び図4では、各装置における処理のフローは、実線で示され、各装置間を跨るデータの送受信は点線で示される。
まず、クライアント40は、サービス提供サーバ50a〜cが提供し得るASPサービスを利用するために、ASPサービスの要求処理を開始して、ワークフロー実行制御装置10aにリクエストメッセージを送信する(ステップS101)。クライアント40は、ワークフロー実行制御装置10aから、リクエストメッセージに含まれたワークフローが適切に実行されたか、又は、どのサービスがエラーであったかを示すメッセージ応答を受信して(ステップS116)、ASPサービスの要求処理を終了する。
ワークフロー実行制御装置10aは、クライアント40から受信したリクエストメッセージに従ってワークフロー実行制御の処理を開始する。まず、ワークフロー実行制御装置10aの通信部38でクライアント40から送信されたリクエストメッセージを受信する(ステップS102)。なお、ステップS102では、ワークフロー実行制御装置10aの通信部38は、サービス提供サーバ50a〜cに送られたリクエスト送信に対する処理結果(OK結果又はエラー結果)も受信する(後述のステップS114)。
ステップS104では、フロー定義識別部21は、リクエストメッセージ901のワークフローの名称「wf1」を読み出して、このワークフロー名称と関係付けられるワークフロー定義を読み出して、実行フロー決定処理を実行する(ステップS151〜S155)。
ステップS152では、メッセージ解析部22は、予約リソース912、922、932を読み出す。なお、リクエストメッセージ901から予約リソース912、922、932を呼び出すためには、図8に示す読出パラメータ定義情報15のXPathを利用することができる。また、図8に示されるように、ワークフロー定義14に規定されたサービスS1、S2、S3は、読出パラメータ定義情報15内のXpathに含まれる「hotel」、「train」、「airplane」というサービスにそれぞれ関係付けられる。
(正規化コスト)=(既に実行された他のサービスのキャンセル処理時間+既に実行された他のサービスの処理時間)×(エラーの発生確率)・・・(式1)
S1(Hotel1)の正規化コスト=(S2(Train1)のキャンセル処理時間+S2(Train1)の処理時間+S3(Airplane1)のキャンセル処理時間+S3(Airplane1)の処理時間)×S2(Train1)のエラー発生確率=(50+100)×0.2=30
S2(Train1)の正規化コスト=(S1(Hotel1)のキャンセル処理時間+S1(Hotel1)の処理時間+S3(Airplane1)のキャンセル処理時間+S3(Airplane1)の処理時間)×S1(Hotel1)のエラー発生確率=(100+100)×0.1=20
S3(Airplane1)の正規化コスト=(S1(Hotel1)のキャンセル処理時間+S1(Hotel1)の処理時間+S2(Train1)のキャンセル処理時間+S2(Train1)の処理時間)×S3(Airplane1)のエラー発生確率=(100+50)×0.03=4.5
このように、本実施例では、正規化コストに従って、複数のサービスの実行順序を規定することにより、補償トランザクションを最適化したワークフロー処理を提供することができる。これにより、ワークフロー実行制御装置は、サービス提供サーバのエラー発生時の処理コストを軽減することができる。また、このような補償トランザクションの最適化並びに処理コストの軽減により、ワークフロー実行制御装置は、サービス提供サーバのCPUの処理負荷を低減することができる。
また、正規化コストのみならずワークフロー定義に規定される従属関係によってサービス間の処理実行順を反映することができるため、実質的なサービスの実行手順も柔軟に規定できる。
次に、ステップS151に戻り並列実行サービスがあれば、ステップS152〜S155を繰り返し、並列実行サービスが無ければ図4のステップS108に進む。
ステップS106では、サービス計測部26は、エラー応答によるエラー発生確率を更新し、また、キャンセル処理が実行された場合はキャンセル処理時間を更新する。具体例としては、応答受信制御部29は、サービス提供サーバから受け取った処理結果に含まれるサービスS1の「Hotel1」呼び出し結果を得た時刻(例:2008.5.24 10:00:00.30)、処理結果(エラー)をサービス計測部26に伝える。サービス計測部26は、処理コスト保持部25のサービスS1の当該エントリ「Hotel1」の平均処理時間と、エラー発生確率を更新する。例えば、過去10回の処理時間が50ms、今回が30msの場合、(50×10+30)/11=48msに更新される。またエラー発生確率は過去10回で0.2であったとすると、(10×0.2+1)/11=0.27に更新される。宛先サービス選択部27は、リクエスト処理がエラーであったため、ワークフローにしたがって処理を終了する。
ステップS107では、実行フロー決定部23が、後述されるステップS109で更新済みの最新の実行順序を読み出す。
実行フロー決定部23は、特定された宛先サービスによって、実行ワークフローの状態を遷移する(ステップS109)。
ステップS202に示すように、サービスS1リクエストに対する処理結果がOKであれば、ステップS202の処理結果の判定は「Yes」となり、サービスS2のリクエスト送信(ステップS203)に対する処理結果の判定処理(ステップS204)に進む。サービスS1リクエストに対する処理結果がエラーであれば、ステップS202の処理結果の判定は「No」となり、ステップS209に進む。ステップS209では、サービスS1リクエストの処理結果が「エラー結果」であることを含むメッセージ応答をクライアント40へ送信する。
ステップS204では、サービスS2リクエストに対する処理結果がOKであれば、ステップS204の処理結果の判定は「Yes」となり、サービスS3のリクエスト送信(ステップS205)に対する処理結果の判定処理(ステップS206)に進む。サービスS2リクエストに対する処理結果がエラーであれば、ステップS203の処理結果の判定は「No」となり、ステップS208に進んでサービスS1のリクエストのキャンセル処理を実行する。ステップS209では、サービスS2リクエストの処理結果が「エラー結果」であり、サービスS1リクエストに対してはキャンセル処理を実行されたことを示すメッセージ応答をクライアント40へ送信する。
ステップS206では、サービスS3リクエストに対する処理結果がOKであれば、ステップS206の処理結果の判定は「Yes」となり、ステップS209に進む。この場合、サービスS1、S2、S3リクエストの全ての処理結果がOKであることを示すメッセージ応答をクライアント40へ送信する。
ステップS206では、サービスS3リクエストに対する処理結果がエラーであれば、ステップS206の処理結果の判定は「No」となる。この場合、ステップS207に進んでサービスS2のリクエストのキャンセル処理を実行し、さらに、ステップS208に進んでサービスS1のリクエストのキャンセル処理を実行する。ステップS209では、サービスS3リクエストの処理結果が「エラー結果」であり、サービスS1、S2リクエストに対してはキャンセル処理を実行されたことを含むメッセージ応答を送信する。
上記ステップS202、S204、S206は、サービス提供サーバからの処理結果メッセージの受信(ステップS102)をイベントとして実行フロー決定部23により行われて、実行フロー状態として管理される。この実行フロー状態は、上述したようにステップS107で、読み込まれる。
ステップS111では、サービス呼出部28が、サービスS1、S2、S3のいずれかに対するサービス実行リクエストを送信する。なお、このサービス実行リクエストには、サービスS1、S2、S3のいずれかに対応するリクエスト仕様情報913、923、933が含まれる。
ステップS117では、サービス呼出部28は、リクエスト送信時刻(例えば、2008.5.24 10:00:00.00)をサービス計測部26に伝えて、ワークフロー実行制御装置10aによるワークフロー実行制御の処理フローを終了する。
サービス提供サーバ50a〜cは、ワークフロー実行制御装置10aから送信されるサービス実行リクエストに従って、サービス処理を開始する。
まず、サービス提供サーバ50a〜cは、ワークフロー実行制御装置10aからサービス実行リクエストを受信し(ステップS112)、サービス処理をサービス実行リクエストに従って実行する(ステップS113)。次に、サービス提供サーバ50a〜cは、サービス処理の処理結果(OK処理又はエラー処理)をワークフロー実行制御装置10aに送信して(ステップS114)、サービス処理を終了する。
図11を用いて、第2の実施形態に係るワークフロー実行制御装置10bについて説明する。
ワークフロー実行制御装置10bは、第1の実施形態に係るワークフロー実行制御装置10aと同じ構成を有するとともに、さらに、正規化するコスト定義を設定し且つ保持するために使用されるコスト定義を保持するためのコスト定義保持部30を有する。
処理部20内のメモリ又は記憶部12は、コスト定義保持部30として機能することで、ワークフロー実行制御装置10bはコスト定義を保持する。例えば、コスト定義には、リソース予約の場合、リソースのキャンセル発生期限(以下、「キャンセル期限」と称す)と、キャンセルコスト、リクエストメッセージ中の予約日を示す場所がXPathで定義される(後述)。なお、キャンセルコストは、サービス提供サーバ運営者とキャンセル時支払コストの取り決め等に従い、ワークフロー実行制御装置10bの管理者が図示しない入力部を介して手動で入力することができる。
また、メッセージ解析部22は、コスト定義保持部30に含まれる定義にしたがって、リクエストメッセージ中のコスト計算に必要なパラメータ(例:リソースの予約日)を読み出し、実行フロー決定部23に伝えることができる。さらに、正規化コスト算出部24は、コスト定義保持部30が保持するコスト定義に従って、エラー発生時の処理コストを算出する。なお、本実施形態における処理コストは、サービスの1つのエラーにより生じる他のサービスのキャンセルコストである。
また、正規化コスト算出部24は、処理コスト保持部25から各サービスのエラー発生確率を読み出し、各サービスの正規化コストを算出し、実行フロー決定部23に渡す。
図12に示すステップS101〜109は、図3に示すステップS101〜S109と同じであるため、説明を省略する。実行フロー決定処理(S151〜S164)が、第1の実施形態と異なる。
図13に示すステップS151及びS152は、図6に示すステップS151及びS152と同じであるため、説明を省略する。
ステップS161では、メッセージ解析部22は、コスト定義保持部30のコスト定義を読み出す。図14を用いて、キャンセル時に発生するコストの効果を評価するためのコスト定義の一例を説明する。図示されるように、「キャンセル期限」、「キャンセルコスト」、リクエストメッセージ中の予約日を示す場所がXPathで定義される。本実施例では、予約先リソースの時刻情報、現在時刻(例:2008-5-24 10:00:00)から、「キャンセル期限」が決められる。
メッセージ解析部22は、受信したリクエストメッセージ中の予約時刻情報を読み出す(ステップS162)。読み出し結果は、例えば、Hotel1=2008-5-29, Train1=2008-5-29 10:00:00, Airplane1=2008-5-29 14:00:00となる。
なお、上記のように、処理コストは、サービスの1つのエラーにより生じる他のサービスのキャンセルコストとして規定される。したがって、この正規化コストは、最後に実行されるサービスがエラーにより実行できなくなった場合に、当該エラーサービス以外の実行済みサービスのキャンセルコストと、エラー発生確率から計算する。この場合、正規化コストは、以下の式により規定する。
(正規化コスト)=(既に実行された他のサービスのキャンセルコスト)×(エラーの発生確率)・・・(式2)
次に、ステップS151に戻り並列実行サービスがあれば、ステップS162〜S156を繰り返し、並列実行サービスが無ければ図12のステップS108に進む。
このように、本実施例では、「キャンセル期限」、「キャンセルコスト」等のコスト定義を用いて算出した正規化コストに従って、複数のサービスの実行順序を規定することにより、補償トランザクションを最適化したワークフロー処理を提供することができる。これにより、ワークフロー実行制御装置は、サービス提供サーバのエラー発生時の処理コストを軽減する。
第3の実施形態に係るワークフロー実行制御装置10cは、第1の実施形態に係るワークフロー実行制御装置10aと同じ構成を有する。
本実施例では、サービスをグループ化したワークフロー定義により、サービス実行順を決定する。図15を用いて、ワークフロー定義14の一例を説明する。図示のように、ワークフロー定義14では、グループG1、G2、G3は互いに独立な関係を有するが、グループG1内のサービスS1及びS4が従属的な関係をもって定義される。また、実施例として、サービスS4は、サービスS1の処理結果をメール通知するサービスとし、サービスS4はサービスS1の直後に実行されるものとする。なお、図示されるワークフロー定義は、BPEL等で記述することができる。
正規化コスト算出部24は、複数サービスがグループ化されて定義されていた場合、グループ化されたサービス群を1つのサービスとして正規化コストを計算し、実行フロー決定部に渡す。
実行フロー決定部23は、正規化コスト算出部24のコスト計算結果を受け取り、グループ間の実行順を決定する。決定した最終的なサービスの実行順を、宛先サービス選択部27に通知する。
正規化コスト算出部24は、各グループG1、G2、G3に対する正規化コストの計算を行う(ステップS172)。本実施例では、各々の実行時間、キャンセル処理時間、NG確率がそれぞれ図9のような関係になっているものとする。例えばグループG2の正規化コストは、他のサービスS1,S3,S4の処理コストの和に、S2のエラー発生確率を掛けた値とする。この場合、各サービスの正規化コストは、G1=(50+100)×(0.2+0.1)=4.5,G2=(100+100+1.5)×0.1=21.5,G3=(100+50+15)=4.95となる。
実行フロー決定部23は、上記計算した正規化コストをもとに、コスト降順にフローを確定する。本実施例では、G1,G2,G3(S1,S4,S2,S3)の順に実行すると決定する(ステップS173)。
図17を用いて、第4の実施形態に係るワークフロー実行制御装置10dについて説明する。
ワークフロー実行制御装置10dは、第1の実施形態に係るワークフロー実行制御装置10aと同じ構成を有する。
また、サービス計測部26は、第1の実施形態と比して、各サービスの処理結果を受け取る際に、該メッセージ内に含まれる処理時間情報を処理コストとして処理コスト保持部に記録する機能をさらに有する。
また、サービス提供サーバ50a〜c処理部は、記憶部に格納されたプログラムを実行することで、計測エージェント部51として機能する。計測エージェント部51は、ワークフロー実行制御装置10dからリクエストメッセージを受信後、サービスの実行開始から実行完了までのサービス提供プログラム52を実行するCPU実行時間を計測する。サービス提供サーバ50a〜cは、処理結果に加えて上記CPU実行時間を、ワークフロー実行制御装置10dに送信する。
サービス呼出部28は、サービスS1の「Hotel1」予約の呼び出しを行う為に、リクエストをサービスS1のサービス提供サーバ50に送付する。また、予約先のリソース(Hotel1)、XPathの定義(/request/hotel/name/text())をサービス計測部26に伝える。サービス提供サーバ50は上記サービス実行リクエストを待つ(ステップS181)。サービス提供サーバ50は、サービス実行リクエストを受け取ると、サービスを実行し(ステップS182)、計測エージェント部61が、サービス提供プログラムの処理の実行開始から実行完了までのCPU実行時間を計測する(ステップS183)。本実施例では、30msの実行時間がかかったものとする。
ワークフロー実行制御装置10dの応答受信制御部29は、サービス提供サーバ50のCPU実行時間並びに処理結果を受け取り、例えば、サービスS1の処理に要するCPU実行時間(30ms)と、処理結果(エラー)をサービス計測部26に伝える。サービス計測部26は、上記実行時間(30ms)を用いて処理コストを算出し、処理コスト保持部25のサービスS1の該当エントリを更新する。
図19を用いて、第5の実施形態に係るワークフロー実行制御装置10eについて説明する。
ワークフロー実行制御装置10eは、第1の実施形態に係るワークフロー実行制御装置10aと同じ構成を有する。また、ワークフロー実行制御装置10eは、ネットワーク5を介してワークフロー管理サーバ60に接続される。
また、フロー定義識別部21は、第1の実施形態と比して、クライアント40から受信したリクエストメッセージの内容を解析して、実行するワークフローを識別する機能をさらに有する。さらに、フロー定義識別部21は、識別したワークフローをワークフロー管理サーバ60に対して通信部38を介して問い合わせるためのリクエストを送信する。
また、ワークフロー管理サーバ60は、ワークフロー定義を一元管理するためのサーバである。ワークフロー管理サーバ60は、フロー定義識別部21からのリクエストに対して、指定されたワークフロー定義の応答を行うことができる。
なお、ワークフロー実行制御装置10eは、上記ワークフロー管理サーバ60から取得したワークフロー定義は、一定期間キャッシュとして保持し、再利用しても良い。
図20を用いて、第6の実施形態に係るクライアント40aについて説明する。
クライアント40aは、プログラム配信サーバ70にネットワーク接続されている。第1〜5の実施形態で説明したワークフロー実行制御装置の機能は、ワークフロー制御プログラムとしてクライアント40a内に配置し、クライアント40a内ブラウザ上でワークフロー制御プログラムを実行する。
ワークフロー制御プログラムは、別途プログラム配信サーバ70上に設置されており、例えばクライアント上で動作するJava(登録商標)プログラムとして配信される。
リクエスト受信後の処理は、実施形態1と同様である為説明を省略する。
なお、ワークフロー制御プログラムは、リクエスト発行前に事前にプログラム配信サーバ70経由で取得しても良い。
第7の実施形態に係るワークフロー実行制御装置10fを説明する。クライアント40からのリクエストメッセージが、バイナリメッセージであった場合に対応する為に、メッセージ解析部22は、以下の機能を有しても良い。
メッセージ解析部22は、あらかじめ設定しておいた、メッセージの特定場所を読み込む定義(バイト位置とサイズ)に基づいて、メッセージ中の指定された場所からパラメータ(例:予約先ホテル名)を読み出し、実行フロー決定部23に伝える。
図22に、読出パラメータ定義情報の一例を示す。リクエストメッセージ中の予約リソース情報を読み出すとき、場所を指定する方法として、図22に示されるように、例えば、メッセージ先頭からのバイト位置、その場所からのバイト数(サイズ)による指定を行っても良い。このようにすることで、ワークフロー実行制御装置に届くメッセージがバイナリデータであった場合でも、ワークフローの順序制御は可能である。
第8の実施形態に係るワークフロー実行制御装置10gを説明する。クライアント40からのリクエストメッセージが、例えばCSV(Comma Separated Values)形式のような、表形式のメッセージであった場合に対応する必要がある。その場合、メッセージ解析部22は、あらかじめ設定しておいた、メッセージの特定場所を読み込む定義(行と列の位置)に基づいて、メッセージ中の指定された場所からパラメータ(例:予約先ホテル名)を読み出して、実行フロー決定部に伝える。
図23にリクエストメッセージの一例を示す。リクエストメッセージが、例えば、図23のような形態(伝えられる情報は実施形態1と同じ内容)であった場合について示す。
実施形態1のサービス実行順の決定処理(ステップS151〜S155)において、ステップS152において、メッセージ解析部22は、受信したリクエストメッセージ中の予約リソース「Hotel1」、「Train1」、「Airplane1」の情報を読み出す。
図24に、読出パラメータ定義情報の一例を示す。リクエストメッセージ中の予約リソース情報を読み出すとき、場所を指定する方法として、図24に示されるように、メッセージの行および列の位置による指定を行っても良い。このようにすることで、ワークフロー実行制御装置10に届くメッセージがCSV等の表形式のデータであった場合でも、ワークフローの順序制御が可能になる。
(付記1)
1台以上のサービス提供サーバにより提供される複数のサービスを、順次呼び出すワークフロー実行制御プログラムであって、前記1台以上のサービス提供サーバに接続されるコンピュータを、
前記サービス毎の処理結果を用いて、前記サービス毎の処理コスト及びエラーの発生確率を算出するサービス計測部と、
1つの前記サービスのエラーにより生じる他のサービスの処理コストと、当該エラーの発生確率とを用いて、正規化される正規化コストを、前記サービスの各々について算出する正規化コスト算出部と、
前記算出された正規化コストに従って、前記サービスの実行順序を決定する実行フロー決定部と、
前記サービス提供サーバに対して、前記実行順序に従って前記サービスを順次呼び出すサービス呼出部として機能させることを特徴とするワークフロー実行制御プログラム。
(付記2)
前記正規化コスト算出部は、前記複数のサービスの依存関係を定義するワークフロー定義を用いて、前記正規化コストを算出する付記1に記載のワークフロー実行制御プログラム。
(付記3)
前記正規化コスト算出部は、前記サービスの依存関係を定義するワークフロー定義を用いて、依存関係を有するサービスのグループ単位に前記正規化コストの計算を行い、
前記実行フロー決定部は、前記グループ単位の正規化コストに従って、グループ単位の実行順序を決定する付記1又は2に記載のワークフロー実行制御プログラム。
(付記4)
前記サービス計測部は、前記各サービスを実行するサービス提供サーバから前記各サービスを実行するために要した処理時間をさらに取得して、該処理時間に基づいて前記サービス毎の処理コストを算出する付記1〜3のいずれかに記載のワークフロー実行制御プログラム。
(付記5)
前記コンピュータを、リクエストメッセージ中の特定の場所から情報単位を抜き出すメッセージ解析部としてさらに機能させ、
前記正規化コスト算出部は、前記抜き出した情報単位毎に正規化コストを算出し、
前記サービス計測部は、前記情報単位毎に前記処理コストと前記エラー発生確率を算出する付記1〜4のいずれかに記載のワークフロー実行制御プログラム。
(付記6)
前記処理コストは、前記サービスの1つのエラーにより生じる他のサービスのキャンセル処理時間及び該他のサービスの実行に要した処理時間である付記1〜5のいずれかに記載のワークフロー実行制御プログラム。
(付記7)
前記処理コストは、前記サービスの1つのエラーにより生じる他のサービスのキャンセルコストである付記1〜6のいずれか1項に記載のワークフロー実行制御プログラム。
(付記8)
1台以上のサービス提供サーバにより提供される複数のサービスを、順次呼び出すワークフロー実行制御装置であって、
前記サービス毎にエラーの発生確率及び処理コストを蓄積する処理コスト保持部と、
前記サービス毎の処理結果を用いて、前記サービス毎の処理コスト及びエラーの発生確率を算出するサービス計測部と、
1つの前記サービスのエラーにより生じる他のサービスの処理コストと、当該エラーの発生確率とを用いて正規化される正規化コストを、前記サービスの各々について算出する正規化コスト算出部と、
前記算出された正規化コストに従って、前記サービスの実行順序を決定する実行フロー決定部と、
前記サービス提供サーバに対して、前記実行順序に従って前記サービスを順次呼び出すサービス呼出部と、
を有することを特徴とするワークフロー実行制御装置。
(付記9)
前記正規化コスト算出部は、前記複数のサービスの依存関係を定義するワークフロー定義を用いて、正規化コストを算出する付記8に記載のワークフロー実行制御装置。
(付記10)
前記正規化コスト算出部は、前記サービスの依存関係を定義するワークフロー定義を用いて、依存関係を有するサービスのグループ単位に正規化コストの計算を行い、
前記実行フロー決定部は、前記グループ単位の正規化コストに従って、グループ単位の実行順を決定する付記8又は9に記載のワークフロー実行制御装置。
(付記11)
前記サービス計測部は、前記各サービスを実行するサービス提供サーバから前記各サービスを実行するために要した処理時間をさらに取得して、該処理時間に基づいて前記サービス毎の処理コストを算出する付記8〜10のいずれかに記載のワークフロー実行制御装置。
(付記12)
リクエストメッセージ中の特定の場所から情報単位を抜き出すメッセージ解析部をさらに有し、
前記正規化コスト算出部は、前記抜き出した情報単位毎に正規化コストを算出し、
前記サービス計測部は、前記情報単位毎に前記処理コストと前記エラー発生確率を算出し、
前記処理コスト保持部は、前記情報単位毎に前記エラー発生確率と前記処理コストを保持する付記8〜11のいずれかに記載のワークフロー実行制御装置。
(付記13)
前記処理コストは、前記サービスの1つのエラーにより生じる他のサービスのキャンセル処理時間及び該他のサービスの実行に要した処理時間である付記8〜12のいずれかに記載のワークフロー実行制御装置。
(付記14)
前記処理コストは、前記サービスの1つのエラーにより生じる他のサービスのキャンセルコストである付記8〜13のいずれかに記載のワークフロー実行制御装置。
(付記15)
1台以上のサービス提供サーバにより提供される複数のサービスを、順次呼び出すワークフロー実行制御方法であって、
前記サービス提供サーバにおけるサービスの処理結果を取得して、前記サービス毎の処理コスト及びエラーの発生確率を算出するステップと、
1つの前記サービスのエラーにより生じる他のサービスの処理コストと、当該エラーの発生確率とを用いて正規化される正規化コストを、前記サービスの各々について算出するステップと、
前記算出された正規化コストに従って、前記サービスの実行順序を決定するステップと、
前記サービス提供サーバに対して、前記実行順序に従って前記サービスを順次呼び出すステップと、
を有することを特徴とするワークフロー実行制御方法。
21 フロー定義識別部
22 メッセージ解析部
23 実行フロー決定部
24 正規化コスト算出部
25 処理コスト保持部
26 サービス計測部
27 宛先サービス選択部
28 サービス呼出部
29 応答受信制御部
40 クライアント
50a〜c サービス提供サーバ
60 ワークフロー管理サーバ
70 プログラム配信サーバ
Claims (6)
- 1台以上のサービス提供サーバにより提供される複数のサービスを、順次呼び出すワークフロー実行制御プログラムであって、前記1台以上のサービス提供サーバに接続されるコンピュータを、
前記サービス毎の処理結果を用いて、前記サービス毎の処理コスト及びエラーの発生確率を算出するサービス計測部と、
1つの前記サービスのエラーにより生じる他のサービスの処理コストと、当該エラーの発生確率とを用いて正規化される正規化コストを、前記サービスの各々について算出する正規化コスト算出部と、
前記算出された正規化コストに従って、前記サービスの実行順序を決定する実行フロー決定部と、
前記サービス提供サーバに対して、前記実行順序に従って前記サービスを順次呼び出すサービス呼出部として機能させることを特徴とするワークフロー実行制御プログラム。 - 前記正規化コスト算出部は、前記複数のサービスの依存関係を定義するワークフロー定義を用いて、前記正規化コストを算出する請求項1に記載のワークフロー実行制御プログラム。
- 前記正規化コスト算出部は、前記サービスの依存関係を定義するワークフロー定義を用いて、依存関係を有するサービスのグループ単位に前記正規化コストの計算を行い、
前記実行フロー決定部は、前記グループ単位の正規化コストに従って、グループ単位の実行順序を決定する請求項1又は2に記載のワークフロー実行制御プログラム。 - 前記サービス計測部は、前記各サービスを実行するサービス提供サーバから前記各サービスを実行するために要した処理時間をさらに取得して、該処理時間に基づいて前記サービス毎の処理コストを算出する請求項1〜3のいずれか1項に記載のワークフロー実行制御プログラム。
- 1台以上のサービス提供サーバにより提供される複数のサービスを、順次呼び出すワークフロー実行制御装置であって、
前記サービス毎にエラーの発生確率及び処理コストを蓄積する処理コスト保持部と、
前記サービス毎の処理結果を用いて、前記サービス毎の処理コスト及びエラーの発生確率を算出するサービス計測部と、
1つの前記サービスのエラーにより生じる他のサービスの処理コストと、当該エラーの発生確率とを用いて正規化される正規化コストを、前記サービスの各々について算出する正規化コスト算出部と、
前記算出された正規化コストに従って、前記サービスの実行順序を決定する実行フロー決定部と、
前記サービス提供サーバに対して、前記実行順序に従って前記サービスを順次呼び出すサービス呼出部と、
を有することを特徴とするワークフロー実行制御装置。 - 1台以上のサービス提供サーバにより提供される複数のサービスを、順次呼び出すワークフロー実行制御方法であって、前記1台以上のサービス提供サーバに接続されるコンピュータが、
前記サービス毎の処理結果を用いて、前記サービス毎の処理コスト及びエラーの発生確率を算出するステップと、
1つの前記サービスのエラーにより生じる他のサービスの処理コストと、当該エラーの発生確率とを用いて正規化される正規化コストを、前記サービスの各々について算出するステップと、
前記算出された正規化コストに従って、前記サービスの実行順序を決定するステップと
前記サービス提供サーバに対して、前記実行順序に従って前記サービスを順次呼び出すステップと、
を実行することを特徴とするワークフロー実行制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008180361A JP5211901B2 (ja) | 2008-07-10 | 2008-07-10 | ワークフロー実行制御プログラム、ワークフロー実行制御装置、及びワークフロー実行制御方法 |
US12/467,207 US20100010858A1 (en) | 2008-07-10 | 2009-05-15 | Workflow execution control apparatus and workflow execution control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008180361A JP5211901B2 (ja) | 2008-07-10 | 2008-07-10 | ワークフロー実行制御プログラム、ワークフロー実行制御装置、及びワークフロー実行制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010020537A JP2010020537A (ja) | 2010-01-28 |
JP5211901B2 true JP5211901B2 (ja) | 2013-06-12 |
Family
ID=41505975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008180361A Expired - Fee Related JP5211901B2 (ja) | 2008-07-10 | 2008-07-10 | ワークフロー実行制御プログラム、ワークフロー実行制御装置、及びワークフロー実行制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20100010858A1 (ja) |
JP (1) | JP5211901B2 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6152675B2 (ja) * | 2013-03-27 | 2017-06-28 | 富士通株式会社 | ワークフロー制御プログラム、装置および方法 |
US10120722B2 (en) * | 2014-01-31 | 2018-11-06 | Telefonaktiebolaget Lm Ericsson (Publ) | Reordering workflows for network provisioning by using blocking penalty and compounded failure risk values for tasks |
JP6447054B2 (ja) * | 2014-11-27 | 2019-01-09 | 富士通株式会社 | 情報処理方法、及び情報処理プログラム |
US10349589B2 (en) | 2016-09-08 | 2019-07-16 | Hemex Health, Inc. | Diagnostics systems and methods |
WO2018048488A1 (en) | 2016-09-08 | 2018-03-15 | Hemex Health, Inc. | Diagnostics systems and methods |
US11467868B1 (en) * | 2017-05-03 | 2022-10-11 | Amazon Technologies, Inc. | Service relationship orchestration service |
US10437638B2 (en) * | 2017-06-19 | 2019-10-08 | Intel Corporation | Method and apparatus for dynamically balancing task processing while maintaining task order |
EP3750061A1 (en) * | 2018-03-01 | 2020-12-16 | Huawei Technologies Co., Ltd. | Event to serverless function workflow instance mapping mechanism |
US10997519B2 (en) * | 2018-11-29 | 2021-05-04 | International Business Machines Corporation | Co-scheduling quantum computing jobs |
WO2020264182A1 (en) | 2019-06-25 | 2020-12-30 | Hemex Health, Inc. | Diagnostics systems and methods |
JP7367783B2 (ja) * | 2020-01-30 | 2023-10-24 | 富士通株式会社 | サービス設計装置、サービス設計方法およびサービス設計プログラム |
WO2024004025A1 (ja) * | 2022-06-28 | 2024-01-04 | 株式会社日立製作所 | ワークフロー管理システム及びその方法並びにそのプログラム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10149306A (ja) * | 1996-11-18 | 1998-06-02 | Nippon Telegr & Teleph Corp <Ntt> | サービス連携装置およびその生成装置 |
US7680635B2 (en) * | 2003-09-19 | 2010-03-16 | Hewlett-Packard Development Company, L.P. | Configuration system and method |
US20050209841A1 (en) * | 2004-03-22 | 2005-09-22 | Andreas Arning | Optimization of process properties for workflows with failing activities |
JP2006195892A (ja) * | 2005-01-17 | 2006-07-27 | Fuji Xerox Co Ltd | フロー処理プログラム、装置およびフロー順序変更方法 |
US20070106667A1 (en) * | 2005-11-10 | 2007-05-10 | Microsoft Corporation | Generalized deadlock resolution in databases |
-
2008
- 2008-07-10 JP JP2008180361A patent/JP5211901B2/ja not_active Expired - Fee Related
-
2009
- 2009-05-15 US US12/467,207 patent/US20100010858A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20100010858A1 (en) | 2010-01-14 |
JP2010020537A (ja) | 2010-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5211901B2 (ja) | ワークフロー実行制御プログラム、ワークフロー実行制御装置、及びワークフロー実行制御方法 | |
US10348809B2 (en) | Naming of distributed business transactions | |
US8478810B2 (en) | Message hub apparatus, program product, and method | |
US8639792B2 (en) | Job processing system, method and program | |
US9300523B2 (en) | System and method for performance management in a multi-tier computing environment | |
JP4841982B2 (ja) | 性能情報収集方法、装置、及びプログラム | |
CN104426800B (zh) | 用于在对等通信网络中管理消息队列的系统和方法 | |
US8683587B2 (en) | Non-intrusive monitoring of services in a services-oriented architecture | |
US9104486B2 (en) | Apparatuses, systems, and methods for distributed workload serialization | |
US8305908B2 (en) | System analysis method, system analysis apparatus, and computer readable storage medium storing system analysis program | |
EP3901773A1 (en) | Dynamically allocated cloud worker management system and method therefor | |
US9038081B2 (en) | Computing job management based on priority and quota | |
US10789307B2 (en) | Cloud-based discovery and inventory | |
JP4834622B2 (ja) | ビジネスプロセス運用管理システム、方法、プロセス運用管理装置およびそのプログラム | |
US20030187908A1 (en) | Methods and systems for customer based resource priority control | |
CN111488373B (zh) | 用于处理请求的方法和系统 | |
US9407721B2 (en) | System and method for server selection using competitive evaluation | |
JP5884566B2 (ja) | バッチ処理システム、進捗状況確認装置、進捗状況確認方法、及びプログラム | |
JP2021174066A (ja) | テスト管理システム、テスト管理装置およびテスト管理方法 | |
US20230267474A1 (en) | Managing user consent for purpose document | |
US11962659B1 (en) | Adaptive discovery process scheduling | |
US20040267898A1 (en) | Status information for software used to perform a service | |
Totow Tom-Ata | Mechanisms for monitoring optimization in cloud computing environments | |
CN112148575A (zh) | 一种信息处理方法、装置、电子设备及存储介质 | |
US20170277563A1 (en) | Control method, non-transitory computer-readable storage medium, and control device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110418 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121105 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121113 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130104 |
|
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: 20130129 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130211 |
|
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: 20160308 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |