JP5211901B2 - ワークフロー実行制御プログラム、ワークフロー実行制御装置、及びワークフロー実行制御方法 - Google Patents

ワークフロー実行制御プログラム、ワークフロー実行制御装置、及びワークフロー実行制御方法 Download PDF

Info

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
Application number
JP2008180361A
Other languages
English (en)
Other versions
JP2010020537A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008180361A priority Critical patent/JP5211901B2/ja
Priority to US12/467,207 priority patent/US20100010858A1/en
Publication of JP2010020537A publication Critical patent/JP2010020537A/ja
Application granted granted Critical
Publication of JP5211901B2 publication Critical patent/JP5211901B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5038Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis

Landscapes

  • 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)等に従って、ワークフローを規定し、且つそのワークフローに基づいてサービスリクエスタがサービスを呼び出す方式が用いられている。
また、ワークフローを実行して、ワークフローに含まれる複数のアプリケーションサービス(以下、「サービス」と称す)を実行するために、複数サービスに対してアクセスをロックするようなトランザクションを行うと、各サービスが管理するリソースのロック期間が長くなる場合がある。そのため、各サービスを独立に実行し、あるサービスの処理ができなかった場合(以下「エラー」と称す)、他サービスに補償トランザクション(キャンセル処理/ロールバック処理等)を実行させるようなトランザクション(「ロング・ラニング・トランザクション」と称される)がある。この補償トランザクションは、例えば、あるサービスの応答結果が特定の条件に合致した時に、他の実行済みサービスに対してキャンセル処理の依頼を行うようにして実行される。
なお、ワークフロー処理において、補償トランザクションを行うためのフロー制御プログラムが提案されている。このプログラムは、各処理の処理時間が長い処理、又は、エラー発生確率が低い処理の実行順序を最後に配置するようにワークフローを定義する。しかし、個々の処理に対して実行順序を決めるが、補償トランザクションを最適化するように個々の処理の実行順序は決定されていない。
特開2006−195892号広報
本出願は、1つのサービスのエラーにより生じる他のサービスの処理コストと、当該エラーの発生確率とを用いて正規化される正規化コストに従って、複数のサービスの実行順序を規定することにより、補償トランザクションを最適化したワークフロー処理を提供することを目的とする。
上記課題を解決するために、1台以上のサービス提供サーバにより提供される複数のサービスを、順次呼び出すワークフロー実行制御プログラムが提供される。
上記ワークフロー実行制御プログラムは、上記1台以上のサービス提供サーバに接続されるコンピュータを、上記サービス毎の処理結果を用いて上記サービス毎の処理コスト及びエラーの発生確率を算出するサービス計測部と、1つの上記サービスのエラーにより生じる他のサービスの処理コストと、当該エラーの発生確率とを用いて正規化される正規化コストを、上記サービスの各々について算出する正規化コスト算出部と、上記算出された正規化コストに従って、上記サービスの実行順序を決定する実行フロー決定部と、上記サービス提供サーバに対して、上記実行順序に従って上記サービスを順次呼び出すサービス呼出部として機能させる。
開示するワークフロー実行制御プログラムは、エラー発生時のサービス実行及び補償トランザクションの実行コストを削減したワークフロー処理を提供することができる。
以下、図面を参照して、実施形態を説明する。
図1を用いて、ワークフロー実行制御装置の接続構成の概要について説明する。インターネット、LAN等のネットワーク5を介して、ワークフロー実行制御装置10a、クライアントコンピュータ40(以下、「クライアント40」と称する)、サービス提供サーバ50a〜cが互いにアクセス可能に接続されている。
[第1の実施形態]
図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へ各種データの送受信を行えるように構成される。
また、記憶部12には、少なくともワークフロー実行制御装置10aにおける動作を制御するためのプログラム13、処理対象となる複数のサービスの実行順序及び/又は依存関係を規定した情報であるワークフロー定義14、読出パラメータ定義情報15、制御部20で実行される処理に利用される各種データ16が格納される。プログラム13には、オペレーティングシステム、及び、アプリケーション等が含まれる。
処理部20は、記憶部12に格納されたプログラム13を実行することにより、フロー定義識別部21、メッセージ解析部22、実行フロー決定部23、正規化コスト算出部24、サービス計測部26、宛先サービス選択部27、サービス呼出部28、及び応答受信制御部29として機能する。
また、処理部20のメモリ又は記憶部12は、処理コスト保持部25として機能する。
フロー定義識別部21は、クライアント40から通信部38を介して受信したリクエストメッセージの内容を解析して、リクエストメッセージに対応するワークフロー定義14を記憶部12から読み出す。ここで、リクエストメッセージとは、サービスに対する処理の要求仕様を規定したメッセージのことを言う。
メッセージ解析部22は、記憶部12から読出パラメータ定義情報15を読み出して、読出パラメータ定義情報15により指示されるリクエストメッセージ中の場所からパラメータ(例えば、予約先ホテル名)を読み出し、実行フロー決定部23に伝える。読出パラメータ定義情報15は、例えば、「XPath(XMLパス言語)」で規定し得る。
実行フロー決定部23は、フロー実行順を決める対象のサービス群を、ワークフロー定義14から識別し、正規化コスト算出部24にそのサービス群に対するコスト計算を依頼する。また、実行フロー決定部23は、正規化コスト算出部24のコスト計算結果を受け取り、コスト降順にサービスの実行順序を決定する。実行フロー決定部23は、決定したフロー実行順序を宛先サービス選択部27に通知する。
正規化コスト算出部24は、実行フロー決定部23から指定されたサービス群およびメッセージ解析部22が読み出したパラメータをもとに、処理コスト保持部25から各サービスの処理時間、キャンセル処理時間、及びエラー発生確率を読み出す。正規化コスト算出部24は、読み出したデータを用いて、各サービスの正規化コストを計算し、実行フロー決定部23に渡す。
処理コスト保持部25は、サービスごと及び/又はメッセージ解析部22の抽出したパラメータ(情報単位)ごとに、サービスの処理時間及びキャンセル処理時間である処理コスト、及びエラー発生確率を保持する。
サービス計測部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は、ワークフロー実行制御装置10aにリクエストメッセージを送信することにより、サービス提供サーバ50a〜cが提供し得るASPサービスの利用を要求する。
クライアント40は、液晶ディスプレイ等の表示部、キーボード及びマウス等の操作部、CPU、メモリ等を含む処理部、ハードディスク等の記憶部、及びNIC等の通信部を有し、ネットワーク5を利用してワークフロー実行制御装置10a及び/又はクライアント40へ各種データの送受信を行えるように構成されている。
クライアント40には、WebサイトのWebページをアクセスするためのWebブラウザがインストールされている。また、クライアント40は、パーソナルコンピュータ、ブラウザフォン、又は、PDA(Personal Digital Assistance)であっても良い。なお、図1では、クライアント40は、1台で示されているが、この数に限定されるものでは無く、複数台あっても良い。
サービス提供サーバ50a〜cは、ASPサービスを提供するサーバであっても良い。サービス提供サーバ50a〜cの各々は、CPU、メモリ等を含む処理部、ハードディスク等の記憶部、及びNIC等の通信部を有する。サービス提供サーバ50a〜cは、記憶部に格納されたプログラムを処理部で実行することで、任意のASPサービスであるサービスS1〜S3をそれぞれクライアント40に提供する。また、サービス提供サーバ50a〜cは、ネットワーク1を利用してワークフロー実行制御装置10a及びクライアント40へ各種データの送受信を行えるように構成されている。
なお、図1では、サービス提供サーバは、3台で示されているが、その台数に制限されない。また、1台のサービス提供サーバが複数のサービスを提供することで、サービス提供サーバの台数を減少させても良い。
図3及び図4を用いて、ワークフロー実行制御の処理フローの一例について説明する。
なお、図3及び図4では、クライアント40、ワークフロー実行制御装置10a、及びサービス提供サーバ50は、それぞれ、ASPサービスの要求処理、ワークフロー実行制御、及びサービス処理を開始する。図3及び図4では、各装置における処理のフローは、実線で示され、各装置間を跨るデータの送受信は点線で示される。
図3及び図4を用いて、クライアント40によるASPサービスの要求処理フローの一例について説明する。
まず、クライアント40は、サービス提供サーバ50a〜cが提供し得るASPサービスを利用するために、ASPサービスの要求処理を開始して、ワークフロー実行制御装置10aにリクエストメッセージを送信する(ステップS101)。クライアント40は、ワークフロー実行制御装置10aから、リクエストメッセージに含まれたワークフローが適切に実行されたか、又は、どのサービスがエラーであったかを示すメッセージ応答を受信して(ステップS116)、ASPサービスの要求処理を終了する。
図3及び図4を用いて、ワークフロー実行制御装置10aによるワークフロー実行制御の処理フローの一例について説明する。
ワークフロー実行制御装置10aは、クライアント40から受信したリクエストメッセージに従ってワークフロー実行制御の処理を開始する。まず、ワークフロー実行制御装置10aの通信部38でクライアント40から送信されたリクエストメッセージを受信する(ステップS102)。なお、ステップS102では、ワークフロー実行制御装置10aの通信部38は、サービス提供サーバ50a〜cに送られたリクエスト送信に対する処理結果(OK結果又はエラー結果)も受信する(後述のステップS114)。
図5に、ステップS101で送信されるリクエストメッセージの内容の一例を示す。リクエストメッセージは、サービスに対する処理の要求を規定したメッセージである。図示されるように、リクエストメッセージ901は、XMLフォーマットで定義され得る。リクエストメッセージ901は、902に示す<name>タグ内に、リクエストメッセージに含まれるワークフローの名称である「wf1」が示される。リクエストメッセージ901は、サービス提供サーバ50で実行されるサービスS1、S2、S3に対するリクエスト内容911、921、931を有する。また、リクエスト内容911、921、931は、912、922、932に示す<name>タグ内のパラメータとして、リクエスト単位又はサービス単位となる予約リソースをそれぞれ含み、さらに、913、923、933で示す部分にリクエスト仕様情報をそれぞれ含む。
例えば、リクエスト内容911では、予約リソース(「リクエスト情報単位」とも称する)912は「Hotel 1」であり、リクエスト仕様情報913はサービスに対する予約リソースを示す仕様(日付、部屋の種類、人数)である。リクエスト内容921では、予約リソース922は「Train 1」であり、リクエスト仕様情報923はサービスに対する予約リソースを示す仕様(日付、出発駅、到着駅)である。リクエスト内容931は、予約リソース932は「Airplane 1」であり、リクエスト仕様情報933はサービスに対する予約リソースを示す仕様(日付、出発空港、到着空港)である。
ステップS103では、ワークフロー実行制御装置10aは、ステップS102でクライアント40又はサービス提供サーバ50a〜cから受信したメッセージか、クライアント40からのリクエストメッセージか、サービス提供サーバ50からの処理結果かを判断する(ステップS103)。受信したメッセージがリクエストメッセージの場合は、ステップS104に進む。受信したメッセージがサービス提供サーバ50a〜cからの処理結果の場合は、ステップS105に進む。
ステップS104では、フロー定義識別部21は、リクエストメッセージ901のワークフローの名称「wf1」を読み出して、このワークフロー名称と関係付けられるワークフロー定義を読み出して、実行フロー決定処理を実行する(ステップS151〜S155)。
図6を用いて、実行フロー決定処理のフローの一例を説明する。まず、メッセージ解析部22は、ステップS104で読み出したワークフロー定義14を参照して、ワークフロー定義14の中にサービスの並列実行サービスの有無を判断する。ここで「並列実行サービス」とは、実行順を制約するサービス間の依存関係が何も無いサービスを言う。
図7は、ワークフロー定義14により規定された複数のサービスの実行順序及び依存関係の一例を示す図である。図示されるように、ワークフロー定義14には、サービスS1、S2、S3がそれぞれ並列に配置され、サービス間において実行処理の前処理や後処理等を規定する依存関係を有しないように規定される。つまり、ワークフロー定義14には、サービスS1、S2、S3が並列実行サービスであるとして規定される。ワークフローの処理が開始され、各サービスにリクエストを送信すると、各サービスは結果(OK又はエラー)を受領し、エラーの場合は終了し、OKの場合はキャンセル要求を待つ。各サービスは、キャンセル要求を受信しなければサービスリクエスト処理を終了してワークフロー処理を終了する。各サービスは、キャンセル要求を受信すれば、キャンセル処理を実行し、さらにサービスリクエスト処理を終了してワークフロー処理を終了する。なお、図示されるワークフロー定義は、BPEL等で記述することができる。
並列実行サービスがあればステップS152に進み、並列実行サービスがなければ実行フロー決定処理を終了して、ステップS108に進む。
ステップS152では、メッセージ解析部22は、予約リソース912、922、932を読み出す。なお、リクエストメッセージ901から予約リソース912、922、932を呼び出すためには、図8に示す読出パラメータ定義情報15のXPathを利用することができる。また、図8に示されるように、ワークフロー定義14に規定されたサービスS1、S2、S3は、読出パラメータ定義情報15内のXpathに含まれる「hotel」、「train」、「airplane」というサービスにそれぞれ関係付けられる。
実行フロー決定部23は、正規化コスト算出部24に対してサービスS1、S2、S3に対する正規化コストの計算を依頼する。正規化コスト算出部24は、処理コスト保持部25から、正規化コスト算出に必要なサービスS1、S2、S3の計測データ(サービス毎の処理時間、キャンセル処理時間、エラー発生確率)を呼び出す(ステップS153)。図9に、計測データの一例を示す。処理コスト保持部25は、図示されるように予約リソース毎に計測データ(サービス毎の処理時間、キャンセル処理時間、エラー発生確率)を保持する。また、これらの計測データはサービス計測部26によって適宜修正が加えられる(後述)。
正規化コスト算出部24は、正規化コストの計算を行う(ステップS154)。正規化コストとは、1つの前記サービスのエラーにより生じる他のサービスの処理コストと、当該エラーの発生確率とを用いて正規化されるデータであって、サービスにエラーが発生した場合の障害の大きさを定量的に評価するための指標である。さらに、処理コストは、本実施例では、サービスの1つのエラーにより生じる他のサービスのキャンセル処理時間及び他のサービスの実行に要した処理時間として規定される。したがって、この正規化コストは、最後に実行されるサービスがエラーにより実行できなくなった場合に、当該エラーサービス以外の実行済みサービスのキャンセル処理時間と、実行済みサービスの処理時間と、エラー発生確率から計算することができる。この場合、正規化コストは、以下の式により規定することができる。
(正規化コスト)=(既に実行された他のサービスのキャンセル処理時間+既に実行された他のサービスの処理時間)×(エラーの発生確率)・・・(式1)
図9は、サービス計測部26が管理する計測データの一例を示す。図9に示される計測データを用いて、正規化コスト算出部24により式1を用いて計算されるサービスS1(Hotel1)、S2(Train1)、S3(Airplane1)のそれぞれの正規化コストは、以下のように計算される。
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
実行フロー決定部23は、計算した正規化コストをもとに、コスト降順に実行フローを確定する(ステップS155)。上記した例においては、実行フロー順は、S1、S2、S3の順になる。
このように、本実施例では、正規化コストに従って、複数のサービスの実行順序を規定することにより、補償トランザクションを最適化したワークフロー処理を提供することができる。これにより、ワークフロー実行制御装置は、サービス提供サーバのエラー発生時の処理コストを軽減することができる。また、このような補償トランザクションの最適化並びに処理コストの軽減により、ワークフロー実行制御装置は、サービス提供サーバのCPUの処理負荷を低減することができる。
また、正規化コストのみならずワークフロー定義に規定される従属関係によってサービス間の処理実行順を反映することができるため、実質的なサービスの実行手順も柔軟に規定できる。
次に、ステップS151に戻り並列実行サービスがあれば、ステップS152〜S155を繰り返し、並列実行サービスが無ければ図4のステップS108に進む。
ステップS105では、サービス提供サーバ50a〜cから提供された処理結果に対して、その処理結果がエラー応答(キャンセル処理の処理結果を含む)か、OK応答か否かを判断する。エラー応答の場合は、ステップS106に進み、OK応答の場合はステップS107に進む。
ステップ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で更新済みの最新の実行順序を読み出す。
ステップS108では、宛先サービス選択部27は、実行フロー決定部23から受領したサービスの実行順に従ってリクエスト対象となる宛先サービスを特定する。
実行フロー決定部23は、特定された宛先サービスによって、実行ワークフローの状態を遷移する(ステップS109)。
図10を用いて、実行ワークフローの状態遷移図の一例を説明する。正規化コスト算出部24により、サービス実行順はS1、S2、S3となったため、ステップS201、S203、S205に示すように、サービスS1、S2、S3に対するサービス実行リクエスト送信が行われる。
ステップ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で、読み込まれる。
実行フロー決定部23は、実行フロー状態を監視して、全サービスについて呼び出し処理(リクエスト送信処理)が行われたか否かを判断する(ステップS110)。全サービスについて呼び出し処理が行われた場合は、ステップS115に進み、全サービスについて呼び出し処理が行われなかった場合は、ステップS111に進む。
ステップS111では、サービス呼出部28が、サービスS1、S2、S3のいずれかに対するサービス実行リクエストを送信する。なお、このサービス実行リクエストには、サービスS1、S2、S3のいずれかに対応するリクエスト仕様情報913、923、933が含まれる。
ステップS115では、ステップS209の処理と同様に、ワークフロー実行制御装置10aからクライアント40に対して、リクエストメッセージに含まれたワークフローが適切に実行されたか、又は、どのサービスがエラーであったかを示すメッセージ応答を送信する。クライアント40は、ワークフロー実行制御装置10aからのメッセージ応答を受信する(ステップS116)。
ステップS117では、サービス呼出部28は、リクエスト送信時刻(例えば、2008.5.24 10:00:00.00)をサービス計測部26に伝えて、ワークフロー実行制御装置10aによるワークフロー実行制御の処理フローを終了する。
図3及び図4を用いて、サービス提供サーバ50によるサービス処理の処理フローの一例について説明する。
サービス提供サーバ50a〜cは、ワークフロー実行制御装置10aから送信されるサービス実行リクエストに従って、サービス処理を開始する。
まず、サービス提供サーバ50a〜cは、ワークフロー実行制御装置10aからサービス実行リクエストを受信し(ステップS112)、サービス処理をサービス実行リクエストに従って実行する(ステップS113)。次に、サービス提供サーバ50a〜cは、サービス処理の処理結果(OK処理又はエラー処理)をワークフロー実行制御装置10aに送信して(ステップS114)、サービス処理を終了する。
[第2の実施形態]
図11を用いて、第2の実施形態に係るワークフロー実行制御装置10bについて説明する。
ワークフロー実行制御装置10bは、第1の実施形態に係るワークフロー実行制御装置10aと同じ構成を有するとともに、さらに、正規化するコスト定義を設定し且つ保持するために使用されるコスト定義を保持するためのコスト定義保持部30を有する。
処理部20内のメモリ又は記憶部12は、コスト定義保持部30として機能することで、ワークフロー実行制御装置10bはコスト定義を保持する。例えば、コスト定義には、リソース予約の場合、リソースのキャンセル発生期限(以下、「キャンセル期限」と称す)と、キャンセルコスト、リクエストメッセージ中の予約日を示す場所がXPathで定義される(後述)。なお、キャンセルコストは、サービス提供サーバ運営者とキャンセル時支払コストの取り決め等に従い、ワークフロー実行制御装置10bの管理者が図示しない入力部を介して手動で入力することができる。
また、メッセージ解析部22は、コスト定義保持部30に含まれる定義にしたがって、リクエストメッセージ中のコスト計算に必要なパラメータ(例:リソースの予約日)を読み出し、実行フロー決定部23に伝えることができる。さらに、正規化コスト算出部24は、コスト定義保持部30が保持するコスト定義に従って、エラー発生時の処理コストを算出する。なお、本実施形態における処理コストは、サービスの1つのエラーにより生じる他のサービスのキャンセルコストである。
また、正規化コスト算出部24は、処理コスト保持部25から各サービスのエラー発生確率を読み出し、各サービスの正規化コストを算出し、実行フロー決定部23に渡す。
図12を用いて、ワークフロー実行制御の処理フローの一例について説明する。
図12に示すステップS101〜109は、図3に示すステップS101〜S109と同じであるため、説明を省略する。実行フロー決定処理(S151〜S164)が、第1の実施形態と異なる。
図13を用いて、実行フロー決定処理のフローの一例を説明する。
図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となる。
正規化コスト算出部24は、各サービスS1(Hotel1)、S2(Train1)、S3(Airplane1)に対する正規化コストの計算を行う。
なお、上記のように、処理コストは、サービスの1つのエラーにより生じる他のサービスのキャンセルコストとして規定される。したがって、この正規化コストは、最後に実行されるサービスがエラーにより実行できなくなった場合に、当該エラーサービス以外の実行済みサービスのキャンセルコストと、エラー発生確率から計算する。この場合、正規化コストは、以下の式により規定する。
(正規化コスト)=(既に実行された他のサービスのキャンセルコスト)×(エラーの発生確率)・・・(式2)
各サービスS1の正規化コストは、他のサービスS2、S3の処理コストの和に、S1のエラー発生確率を掛けた値とする。本実施例では、S2およびS3のみキャンセルコストが発生する為、各サービスの正規化コストは、S1=(20000+5000)×0.2=5000、S2=(0+20000)×0.1=2000、S3=(0+5000)×0.03=150、となる。
実行フロー決定部23は、上記計算した正規化コストをもとに、コスト降順にフローを確定する。本実施例では、S1、S2、S3の順に実行すると決定する(ステップS164)。
次に、ステップS151に戻り並列実行サービスがあれば、ステップS162〜S156を繰り返し、並列実行サービスが無ければ図12のステップS108に進む。
このように、本実施例では、「キャンセル期限」、「キャンセルコスト」等のコスト定義を用いて算出した正規化コストに従って、複数のサービスの実行順序を規定することにより、補償トランザクションを最適化したワークフロー処理を提供することができる。これにより、ワークフロー実行制御装置は、サービス提供サーバのエラー発生時の処理コストを軽減する。
[第3の実施形態]
第3の実施形態に係るワークフロー実行制御装置10cは、第1の実施形態に係るワークフロー実行制御装置10aと同じ構成を有する。
本実施例では、サービスをグループ化したワークフロー定義により、サービス実行順を決定する。図15を用いて、ワークフロー定義14の一例を説明する。図示のように、ワークフロー定義14では、グループG1、G2、G3は互いに独立な関係を有するが、グループG1内のサービスS1及びS4が従属的な関係をもって定義される。また、実施例として、サービスS4は、サービスS1の処理結果をメール通知するサービスとし、サービスS4はサービスS1の直後に実行されるものとする。なお、図示されるワークフロー定義は、BPEL等で記述することができる。
また、正規化コスト算出部24及び実行フロー決定部23は、第1の実施形態と比して下記に示す機能をさらに有する。
正規化コスト算出部24は、複数サービスがグループ化されて定義されていた場合、グループ化されたサービス群を1つのサービスとして正規化コストを計算し、実行フロー決定部に渡す。
実行フロー決定部23は、正規化コスト算出部24のコスト計算結果を受け取り、グループ間の実行順を決定する。決定した最終的なサービスの実行順を、宛先サービス選択部27に通知する。
なお、本処理は、第1の実施形態と比して実行フロー決定処理が異なるので、実行フロー決定処理を、図16を用いて説明する。また、図15に示すステップS151及びS152は、図6に示すステップS151及びS152と同じであるため、説明を省略する。
ステップS171では、メッセージ解析部22は、受信したリクエストメッセージ中の予約リソースHotel1, Train1, Airplane1の情報を読み出す。なお、サービスS4については読み出す場所の定義がないため実行されない。
実行フロー決定部23は、wf1で入れかえ可能な処理として定義されている、グループG1(サービスS1,S4)、グループG2(サービスS2)、グループG3(サービスS3)に対して正規化コスト算出部24に正規化コストを計算する為の依頼をする。
正規化コスト算出部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)。
このように、本実施例では、正規化コストに従って、グループ化によりサービスの依存関係を考慮してサービスの実行順序を規定することもできる。これにより、複数サービス間の呼び出し順に制約がある状況下でも、ワークフロー実行制御装置は、補償トランザクションを最適化したワークフロー処理の提供、サービス提供サーバのエラー発生時の処理コストを軽減することができる。また、このような補償トランザクションの最適化並びに処理コストの軽減により、ワークフロー実行制御装置は、サービス提供サーバのCPUの処理負荷を低減することができる。
[第4の実施形態]
図17を用いて、第4の実施形態に係るワークフロー実行制御装置10dについて説明する。
ワークフロー実行制御装置10dは、第1の実施形態に係るワークフロー実行制御装置10aと同じ構成を有する。
また、サービス計測部26は、第1の実施形態と比して、各サービスの処理結果を受け取る際に、該メッセージ内に含まれる処理時間情報を処理コストとして処理コスト保持部に記録する機能をさらに有する。
また、サービス提供サーバ50a〜c処理部は、記憶部に格納されたプログラムを実行することで、計測エージェント部51として機能する。計測エージェント部51は、ワークフロー実行制御装置10dからリクエストメッセージを受信後、サービスの実行開始から実行完了までのサービス提供プログラム52を実行するCPU実行時間を計測する。サービス提供サーバ50a〜cは、処理結果に加えて上記CPU実行時間を、ワークフロー実行制御装置10dに送信する。
図18を用いて、サービス提供サーバの処理の一例を説明する。
サービス呼出部28は、サービスS1の「Hotel1」予約の呼び出しを行う為に、リクエストをサービスS1のサービス提供サーバ50に送付する。また、予約先のリソース(Hotel1)、XPathの定義(/request/hotel/name/text())をサービス計測部26に伝える。サービス提供サーバ50は上記サービス実行リクエストを待つ(ステップS181)。サービス提供サーバ50は、サービス実行リクエストを受け取ると、サービスを実行し(ステップS182)、計測エージェント部61が、サービス提供プログラムの処理の実行開始から実行完了までのCPU実行時間を計測する(ステップS183)。本実施例では、30msの実行時間がかかったものとする。
サービス提供サーバ50は処理結果に加えて上記CPU実行時間を、ワークフロー実行制御装置10dに対して応答する(ステップS184)。
ワークフロー実行制御装置10dの応答受信制御部29は、サービス提供サーバ50のCPU実行時間並びに処理結果を受け取り、例えば、サービスS1の処理に要するCPU実行時間(30ms)と、処理結果(エラー)をサービス計測部26に伝える。サービス計測部26は、上記実行時間(30ms)を用いて処理コストを算出し、処理コスト保持部25のサービスS1の該当エントリを更新する。
以上より、サービス提供サーバ50側のプログラムの実行時間を計ることができるため、例えばサービス実行前、実行後にサービス提供サーバ内で一時的に処理待ちキュー等の待ち時間が入った場合でも正確にコスト計測ができるようになる。
[第5の実施形態]
図19を用いて、第5の実施形態に係るワークフロー実行制御装置10eについて説明する。
ワークフロー実行制御装置10eは、第1の実施形態に係るワークフロー実行制御装置10aと同じ構成を有する。また、ワークフロー実行制御装置10eは、ネットワーク5を介してワークフロー管理サーバ60に接続される。
また、フロー定義識別部21は、第1の実施形態と比して、クライアント40から受信したリクエストメッセージの内容を解析して、実行するワークフローを識別する機能をさらに有する。さらに、フロー定義識別部21は、識別したワークフローをワークフロー管理サーバ60に対して通信部38を介して問い合わせるためのリクエストを送信する。
また、ワークフロー管理サーバ60は、ワークフロー定義を一元管理するためのサーバである。ワークフロー管理サーバ60は、フロー定義識別部21からのリクエストに対して、指定されたワークフロー定義の応答を行うことができる。
以下、クライアントからのリクエストメッセージ受信時の動作説明を行う。クライアント40が、ワークフロー実行制御装置10e宛にリクエストメッセージを送信する。リクエストの内容は、図3のステップS101で送信されるメッセージと同様の内容とする。ワークフロー実行制御装置10eがリクエストを受信すると、フロー定義識別部21がワークフローの識別を行い、リクエストメッセージに指定された「wf1」のワークフローを実行すると判断する。フロー定義識別部21は、ワークフロー管理サーバ60宛に「wf1」のワークフローを取得するためのリクエストを送信し、ワークフロー管理サーバ60は、「wf1」のワークフロー定義をワークフロー実行制御装置10eに対して応答する。フロー定義識別部21は、受信したワークフロー定義をリクエストメッセージに対するワークフロー定義として適用する。以下、図3のステップS103と同様の処理を実行するため、説明を省略する。
なお、ワークフロー実行制御装置10eは、上記ワークフロー管理サーバ60から取得したワークフロー定義は、一定期間キャッシュとして保持し、再利用しても良い。
このように、複数のワークフロー実行制御装置10を並列に配置した場合に、各サーバに対してワークフローの定義を配信することなく、ワークフロー管理サーバ60で一元管理が可能となり、ワークフロー定義変更時のメンテナンスコストを削減できる。
[第6の実施形態]
図20を用いて、第6の実施形態に係るクライアント40aについて説明する。
クライアント40aは、プログラム配信サーバ70にネットワーク接続されている。第1〜5の実施形態で説明したワークフロー実行制御装置の機能は、ワークフロー制御プログラムとしてクライアント40a内に配置し、クライアント40a内ブラウザ上でワークフロー制御プログラムを実行する。
ワークフロー制御プログラムは、別途プログラム配信サーバ70上に設置されており、例えばクライアント上で動作するJava(登録商標)プログラムとして配信される。
以下、クライアントにおけるワークフロー制御プログラムの取得方法について説明する。クライアント40a上のブラウザからプログラム配信サーバ70上にリクエストを送信し、プログラム配信サーバ70上のワークフロー制御プログラムを取得する。ワークフロー制御プログラムに対して、ブラウザからサービス実行リクエストを受信する。この場合、同一マシン内のデータ渡しであるため、XMLのメッセージ形式ではなく、プログラム呼び出しの引数等でワークフロー名や予約リソース名を指定しても良い。
リクエスト受信後の処理は、実施形態1と同様である為説明を省略する。
なお、ワークフロー制御プログラムは、リクエスト発行前に事前にプログラム配信サーバ70経由で取得しても良い。
このように、ワークフロー実行制御装置を設置することなく、各クライアント側で複数サービスの呼び出しを行い、かつそのサービスのエラー発生時の処理コストを削減することが可能となる。また、このような補償トランザクションの最適化並びに処理コストの軽減により、クライアントは、サービス提供サーバのCPUの処理負荷を低減することができる。
[第7の実施形態]
第7の実施形態に係るワークフロー実行制御装置10fを説明する。クライアント40からのリクエストメッセージが、バイナリメッセージであった場合に対応する為に、メッセージ解析部22は、以下の機能を有しても良い。
メッセージ解析部22は、あらかじめ設定しておいた、メッセージの特定場所を読み込む定義(バイト位置とサイズ)に基づいて、メッセージ中の指定された場所からパラメータ(例:予約先ホテル名)を読み出し、実行フロー決定部23に伝える。
図21に、リクエストメッセージの電文フォーマットの一例を示す。実施形態1のサービス実行順の決定処理(ステップS151〜S155)において、リクエストメッセージが例えば図17のような形態(伝えられる情報は実施形態1と同じ内容)であるとする。そうすると、ステップS152のサービス呼出において、メッセージ解析部22は、受信したリクエストメッセージ中の予約リソースHotel1, Train1, Airplane1の情報を読み出す。
図22に、読出パラメータ定義情報の一例を示す。リクエストメッセージ中の予約リソース情報を読み出すとき、場所を指定する方法として、図22に示されるように、例えば、メッセージ先頭からのバイト位置、その場所からのバイト数(サイズ)による指定を行っても良い。このようにすることで、ワークフロー実行制御装置に届くメッセージがバイナリデータであった場合でも、ワークフローの順序制御は可能である。
[第8の実施形態]
第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つの前記サービスのエラーにより生じる他のサービスの処理コストと、当該エラーの発生確率とを用いて正規化される正規化コストを、前記サービスの各々について算出するステップと、
前記算出された正規化コストに従って、前記サービスの実行順序を決定するステップと、
前記サービス提供サーバに対して、前記実行順序に従って前記サービスを順次呼び出すステップと、
を有することを特徴とするワークフロー実行制御方法。
ワークフロー実行制御装置の接続構成の概要を示す図である。 ワークフロー実行制御装置の一例を示す図である。 ワークフロー実行制御の処理フローの一例を示す図である。 ワークフロー実行制御の処理フローの一例を示す図である。 リクエストメッセージの内容の一例を示す図である。 実行フロー決定処理のフローの一例を示す図である。 実行ワークフロー定義の一例を示す図である。 読出パラメータ定義情報の一例を示す図である。 計測データの一例を示す図である。 実行ワークフローの状態遷移の一例を示す図である。 ワークフロー実行制御装置の一例を示す図である。 ワークフロー実行制御の処理フローの一例を示す図である。 実行フロー決定処理のフローの一例を示す図である。 読出パラメータ定義情報の一例を示す図である。 実行ワークフロー定義の一例を示す図である。 実行フロー決定処理のフローの一例を示す図である。 ワークフロー実行制御装置の一例を示す図である。 サービス提供サーバの処理の一例を示す図である。 ワークフロー実行制御装置の一例を示す図である。 クライアントの一例を示す図である。 リクエストメッセージの電文フォーマットの一例を示す図である。 読出パラメータ定義情報の一例を示す図である。 リクエストメッセージの内容の一例を示す図である。 読出パラメータ定義情報の一例を示す図である。
符号の説明
10、10a〜g ワークフロー実行制御装置
21 フロー定義識別部
22 メッセージ解析部
23 実行フロー決定部
24 正規化コスト算出部
25 処理コスト保持部
26 サービス計測部
27 宛先サービス選択部
28 サービス呼出部
29 応答受信制御部
40 クライアント
50a〜c サービス提供サーバ
60 ワークフロー管理サーバ
70 プログラム配信サーバ

Claims (6)

  1. 1台以上のサービス提供サーバにより提供される複数のサービスを、順次呼び出すワークフロー実行制御プログラムであって、前記1台以上のサービス提供サーバに接続されるコンピュータを、
    前記サービス毎の処理結果を用いて、前記サービス毎の処理コスト及びエラーの発生確率を算出するサービス計測部と、
    1つの前記サービスのエラーにより生じる他のサービスの処理コストと、当該エラーの発生確率とを用いて正規化される正規化コストを、前記サービスの各々について算出する正規化コスト算出部と、
    前記算出された正規化コストに従って、前記サービスの実行順序を決定する実行フロー決定部と、
    前記サービス提供サーバに対して、前記実行順序に従って前記サービスを順次呼び出すサービス呼出部として機能させることを特徴とするワークフロー実行制御プログラム。
  2. 前記正規化コスト算出部は、前記複数のサービスの依存関係を定義するワークフロー定義を用いて、前記正規化コストを算出する請求項1に記載のワークフロー実行制御プログラム。
  3. 前記正規化コスト算出部は、前記サービスの依存関係を定義するワークフロー定義を用いて、依存関係を有するサービスのグループ単位に前記正規化コストの計算を行い、
    前記実行フロー決定部は、前記グループ単位の正規化コストに従って、グループ単位の実行順序を決定する請求項1又は2に記載のワークフロー実行制御プログラム。
  4. 前記サービス計測部は、前記各サービスを実行するサービス提供サーバから前記各サービスを実行するために要した処理時間をさらに取得して、該処理時間に基づいて前記サービス毎の処理コストを算出する請求項1〜3のいずれか1項に記載のワークフロー実行制御プログラム。
  5. 1台以上のサービス提供サーバにより提供される複数のサービスを、順次呼び出すワークフロー実行制御装置であって、
    前記サービス毎にエラーの発生確率及び処理コストを蓄積する処理コスト保持部と、
    前記サービス毎の処理結果を用いて、前記サービス毎の処理コスト及びエラーの発生確率を算出するサービス計測部と、
    1つの前記サービスのエラーにより生じる他のサービスの処理コストと、当該エラーの発生確率とを用いて正規化される正規化コストを、前記サービスの各々について算出する正規化コスト算出部と、
    前記算出された正規化コストに従って、前記サービスの実行順序を決定する実行フロー決定部と、
    前記サービス提供サーバに対して、前記実行順序に従って前記サービスを順次呼び出すサービス呼出部と、
    を有することを特徴とするワークフロー実行制御装置。
  6. 1台以上のサービス提供サーバにより提供される複数のサービスを、順次呼び出すワークフロー実行制御方法であって、前記1台以上のサービス提供サーバに接続されるコンピュータが、
    前記サービス毎の処理結果を用いて、前記サービス毎の処理コスト及びエラーの発生確率を算出するステップと、
    1つの前記サービスのエラーにより生じる他のサービスの処理コストと、当該エラーの発生確率とを用いて正規化される正規化コストを、前記サービスの各々について算出するステップと、
    前記算出された正規化コストに従って、前記サービスの実行順序を決定するステップと
    前記サービス提供サーバに対して、前記実行順序に従って前記サービスを順次呼び出すステップと、
    実行することを特徴とするワークフロー実行制御方法。
JP2008180361A 2008-07-10 2008-07-10 ワークフロー実行制御プログラム、ワークフロー実行制御装置、及びワークフロー実行制御方法 Expired - Fee Related JP5211901B2 (ja)

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)

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

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

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