Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3947136B2 - Web service system, flow development support device, and flow development support program - Google Patents
[go: Go Back, main page]

JP3947136B2 - Web service system, flow development support device, and flow development support program - Google Patents

Web service system, flow development support device, and flow development support program Download PDF

Info

Publication number
JP3947136B2
JP3947136B2 JP2003155927A JP2003155927A JP3947136B2 JP 3947136 B2 JP3947136 B2 JP 3947136B2 JP 2003155927 A JP2003155927 A JP 2003155927A JP 2003155927 A JP2003155927 A JP 2003155927A JP 3947136 B2 JP3947136 B2 JP 3947136B2
Authority
JP
Japan
Prior art keywords
flow
execution
plan
unit
information
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
JP2003155927A
Other languages
Japanese (ja)
Other versions
JP2004361993A (en
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2003155927A priority Critical patent/JP3947136B2/en
Publication of JP2004361993A publication Critical patent/JP2004361993A/en
Application granted granted Critical
Publication of JP3947136B2 publication Critical patent/JP3947136B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ウェブサービスフローの一部の処理を定義した複数の単位フローを組合わせてウェブサービスフローを展開することでウェブサービスを提供するウェブサービスシステムと、上記単位フローを個別に実行するフロー実行装置によるウェブサービスフローの展開を支援するためのフロー展開支援装置およびフロー展開支援プログラムに関する。
【0002】
【従来の技術】
近年、情報処理技術の進展に伴い、企業内情報システムや企業間商取引システムが備え持つアプリケーションプログラムを、ネットワークを介して呼び出して利用し、計算結果を受け取ることができる新しい仕組みが広まりつつある。このような仕組みはウェブサービス(Webサービス)と呼ばれ、WebやXML(extensible markup language)といったオープンな技術を使って実現されている。現在標準化が進められているSOAP(simple object access protocol)、WSDL(web services description language)、UDDI(universal description, discovery and integration)の3つの仕様は、Webサービスの最も基本的な操作である、Webサービスの記述、発見、呼び出しを実現するものである。これらの技術を使うことによって、Webサービス利用者とWebサービス提供者との間の1対1の連携が可能となる。
【0003】
しかし、企業内情報システムや企業間商取引システムでは、より複雑なシステム連携が求められている。その実現に向けた新しいソフトウェア技術の研究開発が強く求められている。その1つとして複数のWebサービスに対する呼び出しをビジネスプロセスやワークフローとして取りまとめる仕組みが挙げられる。現在、複数のWebサービスに対する呼び出し手順を定義したWebサービスフローを記述するための標準言語として、BPEL4WS(business process execution language for web services)、WSFL(web services flow language)、XLANG、WSCI、BPML(business process modeling language)などの数多くの提案がなされている。これらのWebサービスフロー記述言語では、1つの論理的なWebサービスフローを1つのWebサービスフロー記述として定義する(非特許文献1乃至非特許文献6を参照)。
【0004】
【非特許文献1】
「Webサービス合成のための振舞い記述のしくみ」、人工知能学会誌、vol.17, no.4, 2002年。
【0005】
【非特許文献2】
「Web Servicesアーキテクチャーの概要」、http://www-6.ibm.com/jp/developerworks/webservices/001201/j_w-ovr.html
【0006】
【非特許文献3】
「Web Servicesアーキテクト: 第1回: ダイナミックe-businessの紹介」、http://www-6.ibm.com/jp/developerworks/webservices/010608/j_ws-arc1.html
【0007】
【非特許文献4】
「BPEL4WSによるビジネス・プロセス: BPEL4WSについて 第1回」、http://www-6.ibm.com/jp/developerworks/webservices/021025/j_ws-bpelcol1.html
【0008】
【非特許文献5】
「Business Process Execution Language for Web Services,Version 1.0」、http://www-106.ibm.com/developerworks/webservices/library/ws-bpel/,2002
【0009】
【非特許文献6】
「Web Services Description Language (WSDL) Version 1.2」、http://www.w3.org/TR/2003/WD-wsdl12-20030124/,2003
【0010】
【発明が解決しようとする課題】
ところが、大規模なビジネスプロセスでは、プロセスの実行状況に応じて呼び出すWebサービスを切り替えたいという要求が非常に強い。上記Webサービスフロー記述言語の場合、Webサービス選択の記述をするために、Webサービスフロー内で条件文を多用しなければならない。その結果として、本来Webサービスフローで実現したい意味的な処理に対して、制御文や個々のWebサービス呼び出し処理の定義の割合が相対的に多くなり、記述が複雑で見通しの悪いWebサービスフロー定義となってしまっている。
【0011】
本発明は、このような事情を考慮してなされたものであり、その目的とするところは、比較的小さな処理を行うための単位フローを柔軟に組合わせて、全体として論理的な1つのWebサービスフローを動的に組み立ててWebサービスを実現することが可能なウェブサービスシステムを提供することにある。そしてそのために、単位フローを個別に実行するフロー実行装置によるウェブサービスフローの展開を効率的に支援することが可能なフロー展開支援装置およびフロー展開支援プログラムを提供することを別の目的とする。
【0012】
【課題を解決するための手段】
以上の目的を達成するために本発明のウェブサービスシステムは、同一のプラン名を持つ複数のウェブサービスを個別に提供する複数のウェブサービス提供装置と、前記ウェブサービスを利用する処理を含む複数の処理の手順をそれぞれ示した複数の単位フローに応じた処理を個別に実行するフロー実行装置と、前記ウェブサービスが持つ前記プラン名とそのウェブサービスを利用する処理の手順を示した前記単位フローのフロー名と複数の変数を含んだ事前条件とを対応付けたプラン情報を記憶するプラン記憶装置と、前記フロー実行装置での前記処理の実行状態を示す状態情報を記憶する状態記憶装置と、フロー展開支援装置とを具備し、さらに、前記フロー実行装置に設けられ、ユーザ端末からの要求に応じて選択された一つの単位フローに前記プラン名によるフロー呼出しが含まれている場合に当該プラン名を含む呼出し要求を前記フロー展開支援装置へ出力する手段と、前記フロー展開支援装置に設けられ、前記呼出し要求を受けると、この呼出し要求に示された前記フロー実行装置へ引き渡すためのデータを前記状態情報として前記状態記憶装置に記憶させる手段と、前記フロー展開支援装置に設けられ、前記呼出し要求に示される前記プラン名を含みかつ、前記状態記憶装置に記憶された前記データを全ての変数に代入可能な前記事前条件を含む前記プラン情報を前記プラン記憶装置から1つ選択し、この選択した前記プラン情報に示される前記フロー名を示した実行要求を前記フロー実行装置へ出力する手段と、前記フロー実行装置に設けられ、前記複数の単位フローのうちで前記実行要求に示される前記フロー名を持った単位フローの実行により得られる第1の実行結果情報を前記実行要求に対する回答として前記フロー展開支援装置へ出力する手段と、前記フロー展開支援装置に設けられ、前記第1の実行結果情報を入力し、この入力した前記第1の実行結果情報を前記呼出し要求に対する回答として前記フロー実行装置へ出力する手段と、前記フロー実行装置に設けられ、前記フロー呼出しが含まれていた前記単位フローに示された処理を前記フロー展開支援装置から出力された前記第1の実行結果情報を利用して実行して第2の実行結果情報を作成し、この第2の実行結果情報を前記ユーザ端末からの要求に対する回答として前記ユーザ端末へ出力する手段とを備える。
【0014】
【発明の実施の形態】
以下、図面を参照して本発明の一実施形態につき説明する。
図1は本実施形態に係るWebサービスシステムのブロック図である。
【0015】
Webサービスフローは、Webサービスに対する呼び出し順序を定義した文書である。最も単純なWebサービスフローには、一連のWebサービスを逐次的に読み出すものが挙げられる。また、より複雑なWebサービスフローでは、Webサービスを選択したり、複数のWebサービスに対する呼び出しを並列に行う処理を定義できる。
【0016】
本実施形態のWebサービスシステムは、あらかじめ意味的な処理の流れを定義した大きなレベルでのフローと、個々の処理の実現方法を定義した小さなレベルでのフローとに分割して定義しておき、上位レベルのフローが必要とする下位レベルのフローを実行時に適宜に呼び出すことによって、全体として論理的な1つのWebサービスフローを動的に組み立てて実行することができる仕組みを提供するものである。具体的には、小さなレベルのフローとして、航空便の空席検索、航空便の座席予約、宿泊施設の空室検索、あるいは宿泊施設の宿泊予約などといった処理を個々に行うための手順を、また大きなレベルのフローとして、旅行プランを作成する手順をそれぞれ定義しておくことにより、大きさレベルのフローに従って小さなレベルのフローを組合わせることで、旅行プランの作成をするWebサービスフローを組み立てて実行する。
【0017】
このWebサービスシステムは、フロー展開支援装置1、フロー実行装置2、ユーザ端末3およびサービス提供ホスト4-1,4-2,4-3…を含む。そして、これらのフロー展開支援装置1、フロー実行装置2、ユーザ端末3およびサービス提供ホスト4-1,4-2,4-3…は、インターネット5を介して通信可能とされる。
【0018】
フロー展開支援装置1は、フロー実行装置2がWebサービスフローを展開するのを支援する。フロー実行装置2は、上記の大きなレベルのフローや小さなレベルのフローに相当する単位フロー21を複数有しており、この単位フロー21を個別に実行する。単位フロー21は、例えば航空会社が提供するWebサイトへインターネット5を介してアクセスして、当該航空会社に関する空席検索を行うなどの処理である。そしてフロー実行装置2は、インターネット5を介してWebサービスフロー名を含む要求を受け取ると、指定の単位フロー21を実行し、その結果を要求元へ返す。このようなフロー実行装置2を実現するアプリケーションプログラムの例として、米IBM製のBPWS4J(business process execution language for web services Java(TM) run time)やWebSphere Application Serverなどが知られている。
【0019】
ユーザ端末3は、インターネット5へのアクセス機能を有したコンピュータ端末である。ユーザ端末3は、Webサービスを受けようとするユーザに対するインタフェース処理を行う。すなわちユーザ端末3は例えば、ユーザ操作に応じてフロー実行装置2に宛てて実行要求を送出したり、フロー実行装置2から返される結果をユーザに提示したりする。
【0020】
サービス提供ホスト4-1,4-2,4-3…は、上記の空席検索のようなWebサービスを提供する。
【0021】
図2はフロー展開支援装置1の構成を示すブロック図である。
図2に示すようにフロー展開支援装置1は、プランリスト11、実行状態データベース12および支援処理部13を含む。
このフロー展開支援装置1は、例えば汎用のサーバ装置やコンピュータ装置を基本ハードウェアとして用いることができる。そして支援処理部13は、上記のサーバ装置やコンピュータ装置に搭載されたプロセッサにフロー展開支援プログラムを実行させることにより実現することができる。このときに支援処理部13は、上記のフロー展開支援プログラムがサーバ装置やコンピュータ装置に予めインストールされて実現されても良いし、CD-ROMなどのようなリムーバブルな記録媒体に記録して、あるいはネットワークを介して上記のフロー展開支援プログラムを配布し、このフロー展開支援プログラムをサーバ装置やコンピュータ装置に適宜インストールして実現されても良い。プランリスト11および実行状態データベース12は、上記のサーバ装置やコンピュータ装置に内蔵されたメモリやハードディスク装置などの記憶デバイス、上記のサーバ装置やコンピュータ装置に外付けされたメモリやハードディスク装置などの記憶デバイス、さらにはフロッピー(R)ディスクなどのようなリムーバブルな記録媒体などを適宜利用して実現することができる。
【0022】
プランリスト11は、Webサービスフローを展開するためのルール情報(メタ情報)を記述したプラン情報(以下では、プランと称する)を複数保持する。
【0023】
実行状態データベース12は、Webサービスフローの実行状態を保持する。
【0024】
支援処理部13はさらに、要求入力部13a、抽出部13b、選択部13c、出力部13d、応答入力部13e、通知部13fおよび更新部13gを含む。
【0025】
要求入力部13aは、フロー実行装置2から出力されるフロー展開要求をインターネット5を介して入力する。フロー展開要求には、プラン名およびデータなどが含まれる。要求入力部13aは、入力したフロー展開要求に含まれるプラン名を抽出部13bへ出力し、データを更新部13gへ出力する。
【0026】
抽出部13bは、要求入力部13aから出力されるプラン名と同一のプラン名を含み、かつ実行状態データベース12に記憶された実行状態と所定の関係を持った事前条件を持ったプランをプランリスト11から全て抽出する。抽出部13bは、抽出したプランを選択部13cへ出力する。抽出部13bは、該当するプランを抽出することができなかった場合には、その旨を通知部13fへ通知する。
【0027】
選択部13cは、抽出部13bから出力されたプランのうちの1つを選択する。選択部13cは、選択した1つのプランを出力部13dおよび更新部13gへ出力する。
【0028】
出力部13dは、選択部13cから出力されたプランに示される単位フローの実行要求をフロー実行装置2に宛ててインターネット5へ送出する。
【0029】
応答入力部13eは、出力部13dが出力した実行要求に基づいて単位フローを実行した結果としてフロー実行装置2が出力する実行結果情報をインターネット5を介して入力する。応答入力部13eは、入力した実行結果情報を通知部13fおよび更新部13gに出力する。
【0030】
通知部13fは、応答入力部13eが出力した実行結果情報を含んだ結果通知情報を作成し、この結果通知情報をフロー実行装置2に宛ててインターネット5へ送出する。
【0031】
更新部13gは、要求入力部13aから出力されたデータ、選択部13cから出力されたプランに含まれる事後条件、あるいは応答入力部13eから出力された実行結果情報に基づいて実行状態データベース12に記憶された情報を更新する。
【0032】
次に以上のように構成されたWebサービスシステムの動作につき説明する。
ここでは、サービス提供ホスト4-1,4-2,4-3が、AIR1,AIR2,AIR3なる航空会社に関して空席検索や座席予約のWebサービスを提供することとする。またフロー実行装置2が有する単位フロー21のうちの1つは、ユーザからの要求に応じて旅行プランを作成する処理を記述したものとする。以降においてこの単位フロー21は、旅行プラン作成フローと称する。単位フロー21のうちの3つは、サービス提供ホスト4-1,4-2,4-3がそれぞれ提供するWebサービスを利用して空席検索を行う処理を記述したものとする。以降においてこれらの単位フロー21は、空席検索フローと称する。
【0033】
図3はWebサービスシステムの各部の間での情報の流れをインターネット5を省略して示した図である。
上記のようにフロー実行装置2は、旅行プラン作成フロー21-1および空席検索フロー21-2,21-3,21-4を有している。
【0034】
さて、実行状態データベース12は、初期状態として空、すなわち実行状態なしとしておいても良いし、事前に1つあるいは複数個の状態を登録しておいても良い。実行状態データベース12内の状態は、支援処理部13の実行が進むに連れて、更新部13gからの操作によって削除されたり、新規に追加されたりする。各状態は次に述べる述語と呼ばれるデータ形式で保持される。
【0035】
以下、述語について述べる。例として、「成田は出発地である」という文を考える。この文は、「成田」という個体が「出発地である」という性質を持っていることを表している。ここで、主語の「成田」という個体に記号「NARITA」を、文の述語である「出発地である」に記号「FROM」を与え、「成田は出発地である」という文を「FROM(NARITA)」と表現する。この「FROM(NARITA)」という表現を述語と呼び、「FROM」を述語記号と呼ぶ。「FROM(NARITA)」は個体「成田」が出発地であることを示すが、不特定の個体が出発地であることを表現するためには、変数「from」を用いて「FROM(from)」と表す。また、複数個の引数を持つ述語は、「述語記号(引数1,引数2,…)」と表現する。従って例えば、文字列「1234567」は航空会社「AIR1」のマイルアカウントの「ID」であるという関係は、述語記号「ID」を用いて「ID(AIR1,1234567)」と表現する。
【0036】
ここで、本実施形態にて具体例を説明するために用いる述語を以下に挙げ、それぞれの述語が表す意味を簡単に説明する。
【0037】
- FROM(from):fromは出発地である。
【0038】
- TO(to):toは目的地である。
【0039】
- DATE(date):dateは搭乗日時である。
【0040】
- ID(airline,id):文字列idは航空会社airlineのマイルアカウントIDである。
【0041】
- AVAILABLE(flight):フライトflightは空席がある。
【0042】
- BEL(u,P):ユーザuは述語Pについて信じている。
【0043】
図4は実行状態データベース12の一例を示す図である。図4に示す実行状態データベース12は、3つの状態、「BEL(NAGANO,ID(AIR1,1234567))」、「BEL(HASEGAWA,ID(AIR2、111222333))」、「BEL(OHSUGA,ID(AIR2,444555666))」を保持している。例えば、「BEL(NAGANO,ID(AIR1,1234567))」は、[ユーザ「NAGANO」は、文字列「1234567」は航空会社「AIR1」のマイルアカウントIDであると信じている。]という情報を表す。
【0044】
プランリスト11には、プランを予め登録しておく。
上記プランは、プランID、プラン名、事前条件、フロー呼び出し、ならびに事後条件の5つの項目から構成される。プランIDは、プランリスト11内でユニークな識別子である。プラン名はプランの名前を表す文字列であり、複数の異なるプランに対して同一のプラン名を定義しても良い。事前条件は、プランを選択するための必要条件であり、述語形式で記述する。フロー呼び出しは、フロー実行装置2に対して単位フローの実行を依頼するための情報を定義したものであり、フロー実行装置2が保持している単位フローを特定するためのフロー名と、その単位フローへ渡す引数データと、依頼した結果として受け取ったデータを格納する変数の3種類を指定する。事後条件は、プランを選択し単位フローを呼び出した効果としての条件であり、述語形式で記述する。
【0045】
図5はプランリスト11の一例を示す図である。図5に示すプランリスト11は、3つのプランを保持しており、それぞれのプランIDは上から順に「plan1」、「plan2」、「plan3」である。また、いずれも同じプラン名「search」が定義されている。これらの3つのプランは、空席検索フロー21-2,21-3,21-4にそれぞれ対応している。そして「search」は、空席検索に対して割り当てられたプラン名である。
【0046】
以下、プランIDが「plan1」であるプランを例に取り、その定義について詳細に述べる。
【0047】
プラン名は「search」である。
【0048】
事前条件は、以下の通りである。
BEL(u,FROM(from)) ∧
BEL(u,TO(to)) ∧
BEL(u,DATE(date)) ∧
BEL(u,ID(AIR1,number)
この事前条件は、次の4つの述語の論理積(AND演算)として表されている。
BEL(u,FROM(from))
BEL(u,TO(to))
BEL(u,DATE(date))
BEL(u,ID(AIR1,number))
すなわち、以下のような条件が表現されている。
ユーザuは、fromが出発地であると信じている、かつ
ユーザuは、toが目的地であると信じている、かつ
ユーザuは、dateが搭乗日時であると信じている、かつ
ユーザuは、文字列numberが航空会社AIR1のマイルアカウントIDであると信じている。
【0049】
フロー呼び出しは、次の通りである。
flight=call("AIR1 Search Service Flow",from,to,date,id)
すなわち、航空会社AIR1の空席検索サービスを特定するフロー名が「AIR1 Search Service Flow」である単位フローを呼び出し、4つの引数データ、from、to、date、id、を渡して、その呼び出し結果として受け取るデータを変数flightに格納することを表している。
【0050】
事後条件は、以下の通りである。
【0051】
BEL(u,AVAILABLE(flight)) ∧
BEL(u,ID(AIR1,number))
この条件は、[ユーザuは、フライトflightに空席があると信じている]ということを表現している。
【0052】
図6は旅行プランを作成するWebサービスフローの実行に関するシーケンス図である。
【0053】
さて、ユーザがユーザ端末3によりフロー実行装置2にアクセスした上で、旅行プランの作成を要求する操作を行ったとする。このときに図6に示すように、ユーザ端末3からフロー実行装置2へ、旅行プラン作成フロー21-1の実行要求61が送られる。旅行プラン作成フロー21-1には、「航空便の空席検索→航空便の座席予約→宿泊施設の空室検索…」といった具合に、旅行プラン作成の手順が定義されるが、各処理の詳細については定義されていない。そこで旅行プラン作成フロー21-1は、「航空便の空席検索」に対応したプラン名「search」を示したフロー展開要求62をフロー展開支援装置1へ送る。フロー展開要求62には、ユーザID、ならびに他の単位フロー21へ引き渡すためのデータ等が含まれる。
【0054】
フロー展開支援装置1ではフロー展開要求62を受けると、このフロー展開要求に示されるプラン名、ユーザID、ならびに他のフロー実行部へ引き渡すデータが要求入力部13aにより入力される。そしてこのように要求入力部13aが上記の各種情報を入力したことに応じて、支援処理部13では図7に示すような推論処理が開始される。
【0055】
なお、ユーザIDは、上記ユーザを表す識別子であり、例えば、ユーザ名を指定する。また、上記データは、パラメータ名と値との組で表わされ、1組または複数組のいずれが受け渡されても良い。
【0056】
図7は推論処理のフローチャートである。
ステップST1では要求入力部13aが、上述のようにフロー実行部2aから出力されたプラン名、ユーザID、ならびに他のフロー実行部へ引き渡すためのデータを受け取る。
【0057】
ステップST2では更新部13gが、要求入力部13aにより受け取られたデータに対して、パラメータ名を述語記号とし、値を述語の引数にセットした述語データを生成して、この述語データを実行状態データベース12に登録する。例えば、ユーザIDとして「NAGANO」、出発地に関する入力として、パラメータ名が「FROM」、値が「NARITA」から成るデータが要求入力部13aにより受け取られた場合は、更新部13gは述語データ「BEL(NAGANO,FROM(NARITA))」を生成し、これを実行状態データベース12へ登録する。
【0058】
ステップST3では抽出部13bが、プランリスト11の中から、プラン名が要求入力部13aで入力されたものと同じで、かつ実行状態データベース12内の述語を使って事前条件を単一化できるプランpを探す。なお単一化できるプランとは、述語に含まれる全ての変数に代入可能な値を持つ述語を見つけることができるプランを指す。
【0059】
ステップST4では抽出部13bが、プランpが存在するか否かを確認する。
そして、プランpが存在したならば、抽出部13bが抽出したプランpを選択部13cに渡し、ステップST5に進む。
【0060】
ステップST5では選択部13cが、1つのプランpを選択する。抽出部13bによりプランpが1つしか抽出されていないのであれば、選択部13cはこの1つのプランpを選択すればよい。抽出部13bによりプランpが複数抽出されたのであれば、ある適当な基準のもとで選択すればよい。例えば、最初に抽出部13bにより最初に発見されたものを選択したり、事前条件の述語数の多いものを選択するなどの手法が挙げられる。
【0061】
ステップST6では出力部13dが、選択部13cにて選択されたプランpに関してステップST3で求めた単一化、すなわち変数への代入を、プランpで定義しているフロー呼び出しと事後条件との変数に対して適用する。
【0062】
ステップST7では出力部13dが、フロー実行装置2を呼び出し、ステップST6にて求めたフロー呼び出しに含まれる単位フローのフロー名と、その単位フローに引き渡すデータとを含んだ実行要求を送る。
【0063】
例えば、プラン名「search」に対応する単位フロー21としては、空席検索フロー21-2,21-3,21-4の3つがあるが、このうちの空席検索フロー21-2が選択されたのだとするならば、図3および図6に示すように出力部13dから空席検索フロー21-2へと実行要求63が送られる。
【0064】
この実行要求を受けたならばフロー実行装置2は、実行要求に示されたフロー名を持つ単位フローを実行する。この結果、上記の例では、空席検索フロー21-2が起動されることになる。空席検索フロー21-2は、サービス提供ホスト4-1が提供するWebサービスを利用して空席検索を行う手順が記述されたものである。従って空席検索フロー21-2は、図6に示すようにサービス提供ホスト4-1へ空席検索要求64を送り、この要求の応答としてサービス提供ホスト4-1から返される空席情報65を受け取る。さらに空席検索フロー21-2は、空席情報65を含んだ実行結果情報66を、実行要求63に対する応答として図6に示すようにフロー展開支援装置1へ送る。この実行結果情報66は、フロー展開支援装置1では応答入力部13eに入力される。
【0065】
支援処理部13では、図7におけるステップST7にて出力部13dが実行要求を出力した後には、ステップST8に進む。ステップST8では応答入力部13eが、実行依頼が正常終了したか否かを確認する。そして、実行依頼が正常終了したのであれば、ステップST9へ進む。
【0066】
ステップST9では更新部13gが、応答入力部13eが受け取った実行結果情報66を、プランpのフロー呼び出しで指定した変数に代入する。また、単一化した事後条件にも同じ述語が存在する場合には、更新部13gがその述語にも実行結果情報66を代入する。
【0067】
ステップST10では更新部13gが、ステップST6で単一化した事前条件に含まれる各述語を実行状態データベース12から削除し、次にステップST9で単一化した事後条件に含まれる各述語を実行状態データベース12へ登録する。
【0068】
最後にステップST11では通知部13fが、応答入力部13eにより受けられた実行結果情報66の内容を示した結果通知情報67を、フロー展開要求62に対する応答として図6に示すように旅行プラン作成フロー21-1へ送る。
【0069】
さて、図7におけるステップST3においてプランpを見つけることができなかったならば、ステップST4からステップST11へ進む。また、実行依頼が異常終了した場合は、ステップST8からステップST11へ進む。これらの場合にステップST11において通知部13fは、結果通知情報67をフロー展開に失敗したことを示すものとする。
【0070】
以降、上記と同様な流れにより、航空便の空席予約や宿泊施設の空室検索などが順次行われて行く。そして、これらの処理により得られた各種の情報に基づいて旅行プラン作成フロー21-1が旅行プランを作成する。この旅行プランを示す実行結果情報68が、実行要求61に対する応答として旅行プラン作成フロー21-1からユーザ端末3へ図6に示すように送られる。
【0071】
続いて、フロー展開支援装置1の動作についてさらに詳細に説明する。
まずフロー展開要求62に、プラン名「search」、ユーザID「NAGANO」、ならびにデータ「(FROM,NARITA),(TO,ITAMI),(DATE,2003/04/0110:00)」が示されているとする。
【0072】
更新部13gが、データ「(FROM、NARITA)」から述語「BEL(NAGANO,FROM(NARITA))」を、データ「(TO,ITAMI)」から述語「BEL(NAGANO,TO(ITAMI))」を、データ「(DATE,2003/04/01 10:00)」から「BEL(NAGANO,DATE(2003/04/01 10:00))」をそれぞれ生成し、実行状態データベース12へ登録する。このとき、実行状態データベース12は、図4に示す状態から3つの述語が増えて図8に示す状態へと更新される。
【0073】
一方、抽出部13bが、プラン名「search」を持ち、かつ実行状態データベース12内の述語を使って事前条件を単一化できるプランpを探す。
ここでは、プラン名「search」を持つプランは、「plan1」、「plan2」、「plan3」の3つである。
【0074】
「plan1」の事前条件は、次の通りである。
BEL(u,FROM(from)) ∧
BEL(u,TO(to)) ∧
BEL(u,DATE(date)) ∧
BEL(u,ID(AIR1,number))
図8に示される実行状態データベース12と照らし合わせると、次の5つの全ての変数への代入が、すわなち単一化が可能であることが分かる。
u = NAGANO
from = NARITA
to = ITAMI
date = 2003/04/01 10:00
number = 1234567
この時、単一化した事前条件は、次の通りとなる。
BEL(NAGANO,FROM(NARITA)) ∧
BEL(NAGANO,TO(ITAMI)) ∧
BEL(NAGANO,DATE(2003/04/01 10:00)) ∧
BEL(NAGANO,ID(AIR1,1234567))
これらの単一化した事前条件は、実行状態データベース12の各述語と一致する。従って、「plan1」はプランpの候補となる。
【0075】
「plan2」の事前条件は、次の通りである。
BEL(u,FROM(from)) ∧
BEL(u,TO(to)) ∧
BEL(u,DATE(date)) ∧
BEL(u,ID(AIR2,number))
図8に示される実行状態データベース12と照らし合わせると、次の4つの変数への代入が、すなわち単一化が可能である。
u = NAGANO
from = NARITA
to = ITAMI
date = 2003/04/01 10:00
しかし、「BEL(u,ID(AIR2、number))」に対応する述語が実行状態データベース12に存在しないため、変数「number」への代入はできない。従って、「plan2」はプランpの候補ではない。「plan3」についても同様に、「BEL(u,ID(AIR3,number))」に対応する述語が実行状態データベース12に存在しないため、変数「number」への代入はできない。従って、「plan3」もプランpの候補ではない。
【0076】
以上のようにして、抽出部13bではプランpとして「plan1」が抽出される。
このとき、1つのプランのみが抽出されたのであるから、選択部13cは上記の「plan1」をそのまま選択する。
【0077】
出力部13dが、「plan1」の事前条件に対する単一化を、「plan1」のフロー呼び出しおよび事後条件に適用する。「plan1」のフロー呼び出しは、次の通りである。
flight=call("AIR1 Search Service Flow",from,to,date,number)
このフロー呼び出しに対して単一化を適用すると、次の通りとなる。
flight=call("AIR1 Search Service Flow",NARITA,ITAMI,2003/04/01 10:00,1234567)
また、事後条件は、次の通りである。
BEL(u,AVAILABLE(flight)) ∧
BEL(u,ID(AIR1,number)
この事後条件に対して単一化を適用すると、次の通りとなる。
BEL(NAGANO,AVAILABLE(flight)) ∧
BEL(NAGANO,ID(AIR1,1234567)
変数「flight」に関しては、この段階では変数のままとする。
【0078】
次に出力部13dは、フロー実行装置2に対して実行要求63を送る。この実行要求63には、上記の単一化したフロー呼び出しから、Webサービスフロー名「AIR1 Search Service Flow」と、4つのデータ「NARITA」、「ITAMI」、「2003/04/01 10:00」、「1234567」とを含める。「AIR1 Search Service Flow」は、
空席検索フロー21-2に付与されたWebサービスフロー名である。このため、実行要求63により空席検索フロー21-2が起動される。
【0079】
空席検索フロー21-2により空席便「AIR1-079」が見つかったものとする。この場合、この「AIR1-079」を含んだ実行結果情報66が空席検索フロー21-2から返されることになる。そしてこの実行結果情報66は応答入力部13eで入力され、更新部13gに渡される。更新部13gでは、実行結果情報66に含まれた上記の「AIR1-079」を、単一化したフロー呼び出しの変数「flight」へ代入する。
従って、変数「flight」の値は「AIR1-079」となる。このとき、前述の単一化した事後条件は、次の通りとなる。
BEL(NAGANO,AVAILABLE(AIR1-079)) ∧
BEL(NAGANO,ID(AIR1,1234567)
続いて更新部13gは、次のデータを実行状態データベース12から削除する。
BEL(NAGANO,FROM(NARITA))
BEL(NAGANO,TO(ITAMI))
BEL(NAGANO,DATE(2003/04/01 10:00))
BEL(NAGANO,ID(AIR1,1234567))
これとともに更新部13gは、前述の単一化した事後条件に含まれる次の2つの述語を実行状態データベース12に追加する。
BEL(NAGANO,AVAILABLE(AIR1-079))
BEL(NAGANO,ID(AIR1,1234567)
従って、実行状態データベース12は図8の状態から図9の状態へと更新される。
最後に通知部13fが、「AIR1-079」を示した結果通知情報67を、呼び出し元である旅行プラン作成フロー21-1へ送る。
【0080】
以上のように本実施形態によれば、フロー展開支援装置1はフロー展開要求を受け取るたびに、その要求に応じて適切な単位フロー21を1つ選択し、この単位フロー21の実行を要求する。またフロー展開支援装置1は、要求した単位フロー21を実行した結果得られる情報を、フロー展開要求元の単位フロー21へと返す。従って、フロー実行装置2においては、1つの単位フロー21から間接的に他の単位フロー21を呼び出すことができる。そしてこの結果として、複数の単位フロー21を柔軟に組合わせて1つの論理的なWebサービスフローを構築して実行することが可能となる。
【0081】
また本実施形態によれば、例えば単位フローが新たに追加されたような場合には、プランリスト11を更新することにより、上記の新たに追加された単位フローを利用可能とすることができる。具体的には、AIR4なる航空会社の空席検索Webサービスに対する呼び出しを行う単位フローが追加されたとするならば、プラン名が「search」であり、フロー呼び出しを「flight=call("AIR4 Search Service Flow",from,to,date,id)」としたプランをプランリスト11に追加することにより、前述の旅行の計画を立てる単位フローは何ら修正しなくとも、この旧来からある単位フローから上記の新しく追加された単位フローを呼び出して使用することが可能である。すなわち本実施形態によれば、個々の単位フローの開発は、他の単位フローの詳細を考慮することなく行うことができる。また、Webサービスフローの拡張も、一部の単位フローの更新や追加などにより容易に行うことが可能となる。
【0082】
また本実施形態によれば、プランに事前条件を含めるとともに、Webサービスフローの実行状態を実行状態データベース12に記憶しておき、実行状態データベース12内の情報を使って事前条件を単一化できるプランを抽出することとしているので、Webサービスフローの実行状態に応じて適切な単位フローを実行させることができる。
【0083】
この実施形態は、次のような種々の変形実施が可能である。
プランリスト11および実行状態データベース12はフロー展開支援装置1に含まれていなくても良い。その場合、フロー展開支援装置1からプランリスト11および実行状態データベース12へアクセスするための通信手段をフロー展開支援装置1に設ける。
【0084】
プランリスト11からのプランの抽出は、プラン名のみに基づいて行うようにしても良い。この場合、プランには事前条件および事後条件を含まなくて良い。
また実行状態データベース12は不要となる。
【0085】
実行状態データベース12の更新には、事後条件を考慮しなくても良い。
【0086】
フロー実行装置2は1つである必要はなく、複数のフロー実行装置2がそれぞれ持つ単位フロー21を適宜に展開するようにしても良い。
【0087】
各単位フロー21が示す処理内容は任意であって良い。そして、ユーザ端末3とのインタフェース処理が示された単位フロー21は、他の単位フロー21を1度のみ利用するものであっても良い。
【0088】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【0089】
【発明の効果】
本発明によれば、比較的小さな処理を行うための単位フローを柔軟に組合わせて、全体として論理的な1つのWebサービスフローを動的に組み立てて実行することが可能となる。
【図面の簡単な説明】
【図1】 本発明の一実施形態に係るWebサービスシステムのブロック図。
【図2】 図1中のフロー展開支援装置1の構成を示すブロック図。
【図3】 Webサービスシステムの各部の間での情報の流れを示した図。
【図4】 図2中の実行状態データベース12の一例を示す図。
【図5】 図2中のプランリスト11の一例を示す図。
【図6】 旅行プランを作成するWebサービスフローを実行に関するシーケンス図。
【図7】 推論処理のフローチャート。
【図8】 図2中の実行状態データベース12の更新例を示す図。
【図9】 図2中の実行状態データベース12の更新例を示す図。
【符号の説明】
1…フロー展開支援装置、2…フロー実行装置、2a,2b…フロー実行部、11…プランリスト、12…実行状態データベース、13…支援処理部、13a…要求入力部、13b…抽出部、13c…選択部、13d…出力部、13e…応答入力部、13f…通知部、13g…更新部。
[0001]
BACKGROUND OF THE INVENTION
The present invention provides a web service system that provides a web service by developing a web service flow by combining a plurality of unit flows that define some processes of the web service flow, and a flow that individually executes the unit flow. The present invention relates to a flow development support device and a flow development support program for supporting development of a web service flow by an execution device.
[0002]
[Prior art]
In recent years, with the progress of information processing technology, new mechanisms that can call and use application programs provided in an in-company information system and an inter-company commerce system via a network and receive calculation results are spreading. Such a mechanism is called a web service (Web service), and is realized by using open technologies such as the Web and XML (extensible markup language). The three specifications, SOAP (simple object access protocol), WSDL (web services description language), and UDDI (universal description, discovery and integration), which are currently standardized, are the most basic operations of Web services. Service description, discovery, and invocation are realized. By using these technologies, one-to-one cooperation between a Web service user and a Web service provider becomes possible.
[0003]
However, in-company information systems and inter-company commerce systems require more complex system linkages. There is a strong demand for research and development of new software technologies to achieve this. One of them is a mechanism that organizes calls to multiple Web services as business processes and workflows. Currently, BPEL4WS (business process execution language for web services), WSFL (web services flow language), XLANG, WSCI, BPML (business) are standard languages for describing web service flows that define calling procedures for multiple web services. Many proposals such as process modeling language have been made. In these Web service flow description languages, one logical Web service flow is defined as one Web service flow description (see Non-Patent Document 1 to Non-Patent Document 6).
[0004]
[Non-Patent Document 1]
"Behavior description mechanism for Web service composition", Journal of Artificial Intelligence, vol.17, no.4, 2002.
[0005]
[Non-Patent Document 2]
`` Web Services Architecture Overview '', http://www-6.ibm.com/jp/developerworks/webservices/001201/j_w-ovr.html
[0006]
[Non-Patent Document 3]
"Web Services Architect: Part 1: Introduction to Dynamic e-business", http://www-6.ibm.com/developerworks/webservices/010608/j_ws-arc1.html
[0007]
[Non-Patent Document 4]
"Business Processes with BPEL4WS: About BPEL4WS, Part 1", http://www-6.ibm.com/developerworks/webservices/021025/j_ws-bpelcol1.html
[0008]
[Non-Patent Document 5]
"Business Process Execution Language for Web Services, Version 1.0", http://www-106.ibm.com/developerworks/webservices/library/ws-bpel/,2002
[0009]
[Non-Patent Document 6]
Web Services Description Language (WSDL) Version 1.2, http://www.w3.org/TR/2003/WD-wsdl12-20030124/,2003
[0010]
[Problems to be solved by the invention]
However, in a large-scale business process, there is a strong demand for switching the Web service to be called according to the execution status of the process. In the case of the above Web service flow description language, conditional statements must be frequently used in the Web service flow to describe Web service selection. As a result, the definition of control statements and individual Web service call processing definitions is relatively higher than the semantic processing originally intended to be realized in the Web service flow, and the description is complicated and the Web service flow definition is unpredictable. It has become.
[0011]
The present invention has been made in consideration of such circumstances, and the object of the present invention is to flexibly combine unit flows for performing relatively small processing, and to create a logical web as a whole. The object is to provide a web service system capable of dynamically assembling service flows to realize a web service. Therefore, another object is to provide a flow development support apparatus and a flow development support program that can efficiently support the development of a web service flow by a flow execution apparatus that individually executes a unit flow.
[0012]
[Means for Solving the Problems]
In order to achieve the above object, a web service system of the present invention includes a plurality of web service providing apparatuses that individually provide a plurality of web services having the same plan name, and a plurality of processes that use the web service. A flow execution device that individually executes processing corresponding to a plurality of unit flows each indicating a processing procedure; and the unit flow that indicates the plan name of the web service and the processing procedure that uses the web service. A plan storage device that stores plan information in which a flow name and a precondition including a plurality of variables are associated, a state storage device that stores state information indicating an execution state of the process in the flow execution device, and a flow A unit support unit that is provided in the flow execution device and selected in response to a request from the user terminal. Means for outputting a call request including the plan name to the flow development support device when the flow call by the plan name is included in the flow development support device, and receiving the call request, Means for storing in the state storage device as the state information data for handing over to the flow execution device indicated in the call request; and the plan name provided in the flow development support device and indicated in the call request. The plan information including the preconditions that can be substituted for all variables including the data stored in the state storage device is selected from the plan storage device and indicated in the selected plan information Means for outputting an execution request indicating the flow name to the flow execution device; and provided in the flow execution device; Means for outputting first execution result information obtained by execution of a unit flow having the flow name indicated in the execution request to the flow development support apparatus as a reply to the execution request; Provided in the support apparatus, provided with the means for inputting the first execution result information and outputting the input first execution result information to the flow execution apparatus as an answer to the call request; The second execution result information is generated by executing the process indicated in the unit flow including the flow call using the first execution result information output from the flow development support apparatus. And means for outputting the second execution result information to the user terminal as an answer to the request from the user terminal.
[0014]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, an embodiment of the present invention will be described with reference to the drawings.
FIG. 1 is a block diagram of a Web service system according to the present embodiment.
[0015]
A Web service flow is a document that defines the calling order for Web services. The simplest web service flow is one that reads a series of web services sequentially. In a more complex Web service flow, it is possible to select a Web service or define a process for calling multiple Web services in parallel.
[0016]
The Web service system of this embodiment is divided into a large-level flow that defines a semantic processing flow in advance and a small-level flow that defines an individual processing implementation method, The present invention provides a mechanism capable of dynamically assembling and executing a logical web service flow as a whole by appropriately calling a lower-level flow required by a higher-level flow at the time of execution. Specifically, as a low-level flow, procedures for performing individual processes such as airline seat search, airline seat reservation, accommodation facility vacancy search, or accommodation facility reservation, etc. By assembling and executing a Web service flow that creates a travel plan by combining a small level flow according to a flow of a size level by defining a procedure for creating a travel plan as a level flow. .
[0017]
This Web service system includes a flow development support device 1, a flow execution device 2, a user terminal 3, and service providing hosts 4-1, 4-2, 4-3,. The flow development support device 1, the flow execution device 2, the user terminal 3, and the service providing hosts 4-1, 4-2, 4-3... Can communicate with each other via the Internet 5.
[0018]
The flow development support apparatus 1 supports the flow execution apparatus 2 to develop a Web service flow. The flow execution device 2 has a plurality of unit flows 21 corresponding to the above-described large level flow and small level flow, and executes the unit flows 21 individually. The unit flow 21 is, for example, a process of accessing a website provided by an airline company via the Internet 5 and performing a seat search for the airline company. When the flow execution apparatus 2 receives the request including the Web service flow name via the Internet 5, the flow execution apparatus 2 executes the designated unit flow 21 and returns the result to the request source. As an example of an application program that realizes such a flow execution apparatus 2, BPWS4J (business process execution language for web services Java (TM) run time) manufactured by IBM, WebSphere Application Server, and the like are known.
[0019]
The user terminal 3 is a computer terminal having a function of accessing the Internet 5. The user terminal 3 performs interface processing for a user who wants to receive a Web service. That is, for example, the user terminal 3 sends an execution request to the flow execution device 2 according to a user operation, or presents a result returned from the flow execution device 2 to the user.
[0020]
The service providing hosts 4-1, 4-2, 4-3.
[0021]
FIG. 2 is a block diagram showing the configuration of the flow development support apparatus 1.
As shown in FIG. 2, the flow development support apparatus 1 includes a plan list 11, an execution state database 12, and a support processing unit 13.
The flow development support device 1 can use, for example, a general-purpose server device or computer device as basic hardware. The support processing unit 13 can be realized by causing a processor mounted on the server device or the computer device to execute a flow development support program. At this time, the support processing unit 13 may be realized by installing the above-described flow development support program in a server device or a computer device in advance, or may be recorded on a removable recording medium such as a CD-ROM, or The flow development support program may be distributed via a network, and the flow development support program may be appropriately installed in a server device or a computer device. The plan list 11 and the execution state database 12 include a storage device such as a memory or a hard disk device built in the server device or computer device, or a storage device such as a memory or a hard disk device externally attached to the server device or computer device. Further, it can be realized by appropriately using a removable recording medium such as a floppy (R) disk.
[0022]
The plan list 11 holds a plurality of pieces of plan information (hereinafter referred to as plans) describing rule information (meta information) for developing a Web service flow.
[0023]
The execution state database 12 holds the execution state of the Web service flow.
[0024]
The support processing unit 13 further includes a request input unit 13a, an extraction unit 13b, a selection unit 13c, an output unit 13d, a response input unit 13e, a notification unit 13f, and an update unit 13g.
[0025]
The request input unit 13 a inputs a flow development request output from the flow execution device 2 via the Internet 5. The flow development request includes a plan name and data. The request input unit 13a outputs the plan name included in the input flow development request to the extraction unit 13b, and outputs the data to the update unit 13g.
[0026]
The extraction unit 13b includes a plan list including a plan name that includes the same plan name as the plan name output from the request input unit 13a and has a precondition having a predetermined relationship with the execution state stored in the execution state database 12. Extract all from 11. The extraction unit 13b outputs the extracted plan to the selection unit 13c. If the extraction unit 13b cannot extract the corresponding plan, the extraction unit 13b notifies the notification unit 13f to that effect.
[0027]
The selection unit 13c selects one of the plans output from the extraction unit 13b. The selection unit 13c outputs the selected one plan to the output unit 13d and the update unit 13g.
[0028]
The output unit 13d sends the execution request for the unit flow indicated in the plan output from the selection unit 13c to the flow execution apparatus 2 and sends it to the Internet 5.
[0029]
The response input unit 13 e inputs execution result information output from the flow execution device 2 as a result of executing the unit flow based on the execution request output from the output unit 13 d via the Internet 5. The response input unit 13e outputs the input execution result information to the notification unit 13f and the update unit 13g.
[0030]
The notification unit 13f creates result notification information including the execution result information output from the response input unit 13e, and sends this result notification information to the flow execution device 2 to the Internet 5.
[0031]
The update unit 13g stores in the execution state database 12 based on the data output from the request input unit 13a, the post-conditions included in the plan output from the selection unit 13c, or the execution result information output from the response input unit 13e. Updated information.
[0032]
Next, the operation of the Web service system configured as described above will be described.
Here, it is assumed that the service providing hosts 4-1, 4-2, and 4-3 provide a web service for vacant seat search and seat reservation for the airlines AIR1, AIR2, and AIR3. One of the unit flows 21 included in the flow execution device 2 is assumed to describe processing for creating a travel plan in response to a request from the user. Hereinafter, this unit flow 21 is referred to as a travel plan creation flow. Assume that three of the unit flows 21 describe a process of searching for vacant seats using Web services provided by the service providing hosts 4-1, 4-2, and 4-3, respectively. Hereinafter, these unit flows 21 are referred to as vacant seat search flows.
[0033]
FIG. 3 is a diagram showing the flow of information between the components of the Web service system, omitting the Internet 5.
As described above, the flow execution device 2 has the travel plan creation flow 21-1 and the vacant seat search flows 21-2, 21-3, and 21-4.
[0034]
The execution state database 12 may be empty as an initial state, that is, may have no execution state, or one or a plurality of states may be registered in advance. The state in the execution state database 12 is deleted or newly added by an operation from the update unit 13g as the execution of the support processing unit 13 proceeds. Each state is held in a data format called a predicate described below.
[0035]
The predicate is described below. As an example, consider the sentence “Narita is the departure place”. This sentence indicates that the individual “Narita” has the property of “being a departure place”. Here, the symbol `` NARITA '' is given to the subject `` Narita '', the symbol `` FROM '' is given to the sentence predicate `` is the departure place '', and the sentence `` Narita is the departure place '' is given as `` FROM ( NARITA) ”. This expression “FROM (NARITA)” is called a predicate, and “FROM” is called a predicate symbol. “FROM (NARITA)” indicates that the individual “Narita” is the starting point, but to express that the unspecified individual is the starting point, the variable “from” is used to indicate “FROM (from) ". A predicate having a plurality of arguments is expressed as “predicate symbol (argument 1, argument 2,...)”. Therefore, for example, the relationship that the character string “1234567” is the “ID” of the mile account of the airline “AIR1” is expressed as “ID (AIR1, 1234567)” using the predicate symbol “ID”.
[0036]
Here, predicates used to describe specific examples in the present embodiment are listed below, and the meanings represented by the respective predicates are briefly described.
[0037]
-FROM (from): from is the departure place.
[0038]
-TO (to): to is the destination.
[0039]
-DATE (date): date is the boarding date.
[0040]
-ID (airline, id): The character string id is the mileage account ID of the airline airline.
[0041]
-AVAILABLE (flight): Flight flight has vacant seats.
[0042]
-BEL (u, P): User u believes in predicate P.
[0043]
FIG. 4 is a diagram illustrating an example of the execution state database 12. The execution state database 12 shown in FIG. 4 has three states, “BEL (NAGANO, ID (AIR1, 1234567))”, “BEL (HASEGAWA, ID (AIR2, 111222333))”, “BEL (OHSUGA, ID (AIR2 , 444555666)) ”. For example, “BEL (NAGANO, ID (AIR1, 1234567))” [the user “NAGANO” believes that the character string “1234567” is the mile account ID of the airline “AIR1”. ] Information.
[0044]
A plan is registered in advance in the plan list 11.
The above plan is composed of five items: a plan ID, a plan name, a precondition, a flow call, and a post condition. The plan ID is a unique identifier in the plan list 11. The plan name is a character string representing the name of the plan, and the same plan name may be defined for a plurality of different plans. The precondition is a necessary condition for selecting a plan, and is described in a predicate format. The flow call defines information for requesting the flow execution device 2 to execute the unit flow, and the flow name for identifying the unit flow held by the flow execution device 2 and its unit Specify the three types of argument data to be passed to the flow and the variable that stores the data received as a result of the request. The post-condition is a condition as an effect of selecting a plan and calling a unit flow, and is described in a predicate format.
[0045]
FIG. 5 is a diagram showing an example of the plan list 11. The plan list 11 shown in FIG. 5 holds three plans, and the plan IDs are “plan1”, “plan2”, and “plan3” in order from the top. In both cases, the same plan name “search” is defined. These three plans correspond to vacant seat search flows 21-2, 21-3, and 21-4, respectively. “Search” is a plan name assigned to the vacant seat search.
[0046]
Hereinafter, taking the plan with the plan ID “plan1” as an example, its definition will be described in detail.
[0047]
The plan name is “search”.
[0048]
The preconditions are as follows.
BEL (u, FROM (from)) ∧
BEL (u, TO (to)) ∧
BEL (u, DATE (date)) ∧
BEL (u, ID (AIR1, number)
This precondition is expressed as a logical product (AND operation) of the following four predicates.
BEL (u, FROM (from))
BEL (u, TO (to))
BEL (u, DATE (date))
BEL (u, ID (AIR1, number))
That is, the following conditions are expressed.
User u believes from is the departure place, and
User u believes to is the destination, and
User u believes that date is the boarding date and time, and
User u believes that string number is the mile account ID of airline AIR1.
[0049]
The flow call is as follows.
flight = call ("AIR1 Search Service Flow", from, to, date, id)
That is, a unit flow whose flow name for identifying the vacant seat search service of the airline AIR1 is “AIR1 Search Service Flow” is called, and four argument data, from, to, date, id are passed and received as a result of the call. It represents storing data in the variable flight.
[0050]
The post-conditions are as follows.
[0051]
BEL (u, AVAILABLE (flight)) ∧
BEL (u, ID (AIR1, number))
This condition expresses that [user u believes that flight flight has vacant seats].
[0052]
FIG. 6 is a sequence diagram regarding execution of a Web service flow for creating a travel plan.
[0053]
Now, it is assumed that the user performs an operation for requesting the creation of a travel plan after accessing the flow execution device 2 by the user terminal 3. At this time, as shown in FIG. 6, an execution request 61 of a travel plan creation flow 21-1 is sent from the user terminal 3 to the flow execution device 2. In the travel plan creation flow 21-1, the procedure for creating a travel plan is defined, such as “Flight seat search → Air seat reservation → Accommodation vacancy search…”. Is not defined. Therefore, the travel plan creation flow 21-1 sends a flow development request 62 indicating a plan name “search” corresponding to “vacant flight seat search” to the flow development support apparatus 1. The flow development request 62 includes a user ID, data for delivery to another unit flow 21, and the like.
[0054]
When the flow development support apparatus 1 receives the flow development request 62, the plan name, user ID, and data to be delivered to another flow execution unit indicated in the flow development request are input by the request input unit 13a. Then, in response to the request input unit 13a inputting the various information as described above, the support processing unit 13 starts an inference process as shown in FIG.
[0055]
The user ID is an identifier representing the user, and for example, a user name is designated. The data is represented by a set of parameter name and value, and either one set or a plurality of sets may be transferred.
[0056]
FIG. 7 is a flowchart of the inference process.
In step ST1, the request input unit 13a receives the plan name and user ID output from the flow execution unit 2a as described above, and data for delivery to another flow execution unit.
[0057]
In step ST2, the update unit 13g generates predicate data in which the parameter name is a predicate symbol and the value is set as an argument of the predicate for the data received by the request input unit 13a, and the predicate data is executed in the execution state database. 12 is registered. For example, when the request input unit 13a receives data including “NAGANO” as the user ID, the parameter name “FROM”, and the value “NARITA” as the input regarding the departure place, the update unit 13g receives the predicate data “BEL”. (NAGANO, FROM (NARITA)) "is generated and registered in the execution state database 12.
[0058]
In step ST3, the extraction unit 13b has the same plan name as that entered in the request input unit 13a from the plan list 11 and can use a predicate in the execution state database 12 to unify preconditions. Search for p. Note that a plan that can be unified refers to a plan that can find a predicate having values that can be assigned to all variables included in the predicate.
[0059]
In step ST4, the extraction unit 13b confirms whether the plan p exists.
If the plan p exists, the plan p extracted by the extraction unit 13b is passed to the selection unit 13c, and the process proceeds to step ST5.
[0060]
In step ST5, the selection unit 13c selects one plan p. If only one plan p has been extracted by the extraction unit 13b, the selection unit 13c may select this one plan p. If a plurality of plans p are extracted by the extraction unit 13b, they may be selected based on some appropriate criterion. For example, there is a technique such as selecting the first discovered by the extraction unit 13b first, or selecting one having a large number of preconditions.
[0061]
In step ST6, the output unit 13d performs the unification obtained in step ST3 with respect to the plan p selected by the selection unit 13c, that is, the variable between the flow call and the postcondition defined in the plan p. Apply to
[0062]
In step ST7, the output unit 13d calls the flow execution device 2, and sends an execution request including the flow name of the unit flow included in the flow call obtained in step ST6 and data to be delivered to the unit flow.
[0063]
For example, as the unit flow 21 corresponding to the plan name “search”, there are three vacant seat search flows 21-2, 21-3, and 21-4. Of these, the vacant seat search flow 21-2 is selected. If so, an execution request 63 is sent from the output unit 13d to the vacant seat search flow 21-2 as shown in FIGS.
[0064]
If this execution request is received, the flow execution apparatus 2 executes the unit flow having the flow name indicated in the execution request. As a result, in the above example, the vacant seat search flow 21-2 is started. The vacancy search flow 21-2 describes a procedure for searching for a vacancy by using a Web service provided by the service providing host 4-1. Accordingly, the vacant seat search flow 21-2 sends a vacant seat search request 64 to the service providing host 4-1, as shown in FIG. 6, and receives vacant seat information 65 returned from the service providing host 4-1 as a response to this request. Furthermore, the vacant seat search flow 21-2 sends the execution result information 66 including the vacant seat information 65 to the flow development support apparatus 1 as a response to the execution request 63 as shown in FIG. The execution result information 66 is input to the response input unit 13e in the flow development support apparatus 1.
[0065]
In the support processing unit 13, after the output unit 13d outputs the execution request in step ST7 in FIG. 7, the process proceeds to step ST8. In step ST8, the response input unit 13e confirms whether or not the execution request has been normally completed. If the execution request ends normally, the process proceeds to step ST9.
[0066]
In step ST9, the update unit 13g substitutes the execution result information 66 received by the response input unit 13e into a variable designated by the flow call of the plan p. If the same predicate exists in the unified postcondition, the update unit 13g also substitutes the execution result information 66 for the predicate.
[0067]
In step ST10, the update unit 13g deletes each predicate included in the precondition unified in step ST6 from the execution state database 12, and then executes each predicate included in the postcondition unified in step ST9. Register in the database 12.
[0068]
Finally, in step ST11, the notification unit 13f receives the result notification information 67 indicating the contents of the execution result information 66 received by the response input unit 13e as a response to the flow development request 62 as shown in FIG. Send to 21-1.
[0069]
If the plan p cannot be found in step ST3 in FIG. 7, the process proceeds from step ST4 to step ST11. If the execution request ends abnormally, the process proceeds from step ST8 to step ST11. In these cases, in step ST11, the notification unit 13f indicates that the result notification information 67 has failed in the flow development.
[0070]
Thereafter, air ticket reservations, accommodation vacancy searches, and the like are sequentially performed in the same manner as described above. Then, a travel plan creation flow 21-1 creates a travel plan based on various information obtained by these processes. Execution result information 68 indicating this travel plan is sent from the travel plan creation flow 21-1 to the user terminal 3 as a response to the execution request 61 as shown in FIG.
[0071]
Next, the operation of the flow development support apparatus 1 will be described in more detail.
First, in the flow development request 62, the plan name “search”, the user ID “NAGANO”, and the data “(FROM, NARITA), (TO, ITAMI), (DATE, 2003/04/0110: 00)” are shown. Suppose that
[0072]
The updating unit 13g receives the predicate “BEL (NAGANO, FROM (NARITA))” from the data “(FROM, NARITA)” and the predicate “BEL (NAGANO, TO (ITAMI))” from the data “(TO, ITAMI)”. , “BEL (NAGANO, DATE (2003/04/01 10:00))” is generated from the data “(DATE, 2003/04/01 10:00)” and registered in the execution state database 12. At this time, the execution state database 12 is updated to the state shown in FIG. 8 by increasing three predicates from the state shown in FIG.
[0073]
On the other hand, the extraction unit 13b searches for a plan p having the plan name “search” and using a predicate in the execution state database 12 to unify preconditions.
Here, there are three plans having the plan name “search”: “plan1”, “plan2”, and “plan3”.
[0074]
The pre-conditions for “plan1” are as follows.
BEL (u, FROM (from)) ∧
BEL (u, TO (to)) ∧
BEL (u, DATE (date)) ∧
BEL (u, ID (AIR1, number))
In comparison with the execution state database 12 shown in FIG. 8, it can be seen that the assignment to all the following five variables can be unified.
u = NAGANO
from = NARITA
to = ITAMI
date = 2003/04/01 10:00
number = 1234567
At this time, the unified precondition is as follows.
BEL (NAGANO, FROM (NARITA)) ∧
BEL (NAGANO, TO (ITAMI)) ∧
BEL (NAGANO, DATE (2003/04/01 10:00)) ∧
BEL (NAGANO, ID (AIR1, 1234567))
These unified preconditions coincide with each predicate in the execution state database 12. Therefore, “plan1” is a candidate for plan p.
[0075]
The pre-conditions for “plan2” are as follows.
BEL (u, FROM (from)) ∧
BEL (u, TO (to)) ∧
BEL (u, DATE (date)) ∧
BEL (u, ID (AIR2, number))
In comparison with the execution state database 12 shown in FIG. 8, the following four variables can be substituted, that is, unified.
u = NAGANO
from = NARITA
to = ITAMI
date = 2003/04/01 10:00
However, since the predicate corresponding to “BEL (u, ID (AIR2, number))” does not exist in the execution state database 12, it cannot be assigned to the variable “number”. Therefore, “plan2” is not a candidate for plan p. Similarly, for “plan3”, since the predicate corresponding to “BEL (u, ID (AIR3, number))” does not exist in the execution state database 12, it cannot be assigned to the variable “number”. Therefore, “plan3” is not a candidate for plan p.
[0076]
As described above, the extraction unit 13b extracts “plan1” as the plan p.
At this time, since only one plan has been extracted, the selection unit 13c selects the above “plan1” as it is.
[0077]
The output unit 13d applies the unification with respect to the precondition of “plan1” to the flow call and postcondition of “plan1”. The flow call for “plan1” is as follows.
flight = call ("AIR1 Search Service Flow", from, to, date, number)
When unification is applied to this flow call, the result is as follows.
flight = call ("AIR1 Search Service Flow", NARITA, ITAMI, 2003/04/01 10:00, 1234567)
The post-conditions are as follows.
BEL (u, AVAILABLE (flight)) ∧
BEL (u, ID (AIR1, number)
When unification is applied to this post-condition, it becomes as follows.
BEL (NAGANO, AVAILABLE (flight)) ∧
BEL (NAGANO, ID (AIR1, 1234567)
The variable “flight” is left as a variable at this stage.
[0078]
Next, the output unit 13 d sends an execution request 63 to the flow execution device 2. The execution request 63 includes the web service flow name “AIR1 Search Service Flow” and the four data “NARITA”, “ITAMI”, “2003/04/01 10:00” from the above unified flow call. , “1234567”. "AIR1 Search Service Flow"
Web service flow name assigned to vacancy search flow 21-2. For this reason, the vacancy search flow 21-2 is activated by the execution request 63.
[0079]
Assume that vacant seat flight "AIR1-079" is found by vacancy search flow 21-2. In this case, the execution result information 66 including this “AIR1-079” is returned from the vacant seat search flow 21-2. The execution result information 66 is input by the response input unit 13e and transferred to the update unit 13g. In the update unit 13g, the above-mentioned “AIR1-079” included in the execution result information 66 is substituted into the unified variable “flight” of the flow call.
Therefore, the value of the variable “flight” is “AIR1-079”. At this time, the above-described unified post-conditions are as follows.
BEL (NAGANO, AVAILABLE (AIR1-079)) ∧
BEL (NAGANO, ID (AIR1, 1234567)
Subsequently, the update unit 13g deletes the next data from the execution state database 12.
BEL (NAGANO, FROM (NARITA))
BEL (NAGANO, TO (ITAMI))
BEL (NAGANO, DATE (2003/04/01 10:00))
BEL (NAGANO, ID (AIR1, 1234567))
At the same time, the updating unit 13g adds the following two predicates included in the unified post-condition described above to the execution state database 12.
BEL (NAGANO, AVAILABLE (AIR1-079))
BEL (NAGANO, ID (AIR1, 1234567)
Therefore, the execution state database 12 is updated from the state of FIG. 8 to the state of FIG.
Finally, the notification unit 13f sends the result notification information 67 indicating “AIR1-079” to the travel plan creation flow 21-1, which is the caller.
[0080]
As described above, according to the present embodiment, each time the flow development support apparatus 1 receives a flow development request, the flow development support apparatus 1 selects one appropriate unit flow 21 according to the request and requests execution of the unit flow 21. . Further, the flow development support apparatus 1 returns information obtained as a result of executing the requested unit flow 21 to the unit flow 21 of the flow development request source. Therefore, in the flow execution device 2, another unit flow 21 can be called indirectly from one unit flow 21. As a result, it is possible to construct and execute one logical Web service flow by flexibly combining a plurality of unit flows 21.
[0081]
Further, according to the present embodiment, for example, when a unit flow is newly added, the newly added unit flow can be used by updating the plan list 11. More specifically, if a unit flow that makes a call to the vacancy search web service of an airline called AIR4 is added, the plan name is “search” and the flow call is “flight = call (” AIR4 Search Service Flow By adding a plan “11”, “from”, “to”, “date”, “id”) to the plan list 11, the above-mentioned unit flow for planning a trip is modified from the old unit flow without any modification. It is possible to call and use the added unit flow. That is, according to the present embodiment, development of individual unit flows can be performed without considering details of other unit flows. Further, it is possible to easily extend the Web service flow by updating or adding some unit flows.
[0082]
Further, according to the present embodiment, the precondition is included in the plan, the execution state of the Web service flow is stored in the execution state database 12, and the precondition can be unified using the information in the execution state database 12. Since the plan is extracted, an appropriate unit flow can be executed according to the execution state of the Web service flow.
[0083]
This embodiment can be variously modified as follows.
The plan list 11 and the execution state database 12 may not be included in the flow development support apparatus 1. In that case, a communication means for accessing the plan list 11 and the execution state database 12 from the flow development support apparatus 1 is provided in the flow development support apparatus 1.
[0084]
The extraction of the plan from the plan list 11 may be performed based only on the plan name. In this case, the plan need not include preconditions and postconditions.
Further, the execution state database 12 becomes unnecessary.
[0085]
The update of the execution state database 12 does not have to consider the postcondition.
[0086]
The number of flow execution devices 2 is not necessarily one, and the unit flows 21 possessed by each of the plurality of flow execution devices 2 may be appropriately developed.
[0087]
The processing content indicated by each unit flow 21 may be arbitrary. And the unit flow 21 in which the interface process with the user terminal 3 is shown may use another unit flow 21 only once.
[0088]
Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage. In addition, various inventions can be formed by appropriately combining a plurality of components disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, constituent elements over different embodiments may be appropriately combined.
[0089]
【The invention's effect】
According to the present invention, it is possible to flexibly combine unit flows for performing relatively small processes and dynamically assemble and execute one logical web service flow as a whole.
[Brief description of the drawings]
FIG. 1 is a block diagram of a Web service system according to an embodiment of the present invention.
FIG. 2 is a block diagram showing the configuration of the flow development support apparatus 1 in FIG.
FIG. 3 is a diagram showing a flow of information between each unit of the Web service system.
4 is a diagram showing an example of an execution state database 12 in FIG. 2. FIG.
5 is a diagram showing an example of the plan list 11 in FIG.
FIG. 6 is a sequence diagram regarding execution of a Web service flow for creating a travel plan.
FIG. 7 is a flowchart of inference processing.
FIG. 8 is a diagram showing an example of updating the execution state database 12 in FIG. 2;
FIG. 9 is a view showing an example of updating the execution state database 12 in FIG. 2;
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ... Flow deployment assistance apparatus, 2 ... Flow execution apparatus, 2a, 2b ... Flow execution part, 11 ... Plan list, 12 ... Execution state database, 13 ... Support processing part, 13a ... Request input part, 13b ... Extraction part, 13c ... selection unit, 13d ... output unit, 13e ... response input unit, 13f ... notification unit, 13g ... update unit.

Claims (5)

同一のプラン名を持つ複数のウェブサービスを個別に提供する複数のウェブサービス提供装置と、
前記ウェブサービスを利用する処理を含む複数の処理の手順をそれぞれ示した複数の単位フローに応じた処理を個別に実行するフロー実行装置と、
前記ウェブサービスが持つ前記プラン名とそのウェブサービスを利用する処理の手順を示した前記単位フローのフロー名と複数の変数を含んだ事前条件とを対応付けたプラン情報を記憶するプラン記憶装置と、
前記フロー実行装置での前記処理の実行状態を示す状態情報を記憶する状態記憶装置と、
フロー展開支援装置とを具備し、
さらに、
前記フロー実行装置に設けられ、ユーザ端末からの要求に応じて選択された一つの単位フローに前記プラン名によるフロー呼出しが含まれている場合に当該プラン名を含む呼出し要求を前記フロー展開支援装置へ出力する手段と、
前記フロー展開支援装置に設けられ、前記呼出し要求を受けると、この呼出し要求に示された前記フロー実行装置へ引き渡すためのデータを前記状態情報として前記状態記憶装置に記憶させる手段と、
前記フロー展開支援装置に設けられ、前記呼出し要求に示される前記プラン名を含みかつ、前記状態記憶装置に記憶された前記データを全ての変数に代入可能な前記事前条件を含む前記プラン情報を前記プラン記憶装置から1つ選択し、この選択した前記プラン情報に示される前記フロー名を示した実行要求を前記フロー実行装置へ出力する手段と、
前記フロー実行装置に設けられ、前記複数の単位フローのうちで前記実行要求に示される前記フロー名を持った単位フローの実行により得られる第1の実行結果情報を前記実行要求に対する回答として前記フロー展開支援装置へ出力する手段と、
前記フロー展開支援装置に設けられ、前記第1の実行結果情報を入力し、この入力した前記第1の実行結果情報を前記呼出し要求に対する回答として前記フロー実行装置へ出力する手段と、
前記フロー実行装置に設けられ、前記フロー呼出しが含まれていた前記単位フローに示された処理を前記フロー展開支援装置から出力された前記第1の実行結果情報を利用して実行して第2の実行結果情報を作成し、この第2の実行結果情報を前記ユーザ端末からの要求に対する回答として前記ユーザ端末へ出力する手段とを有することを特徴とするウェブサービスシステム。
A plurality of web service providing devices that individually provide a plurality of web services having the same plan name ;
A flow execution device that individually executes processes according to a plurality of unit flows each showing a procedure of a plurality of processes including a process of using the web service;
And plan storage device for storing the plan name and plan information associating the pre-conditions including a flow name and a plurality of variables of the unit flow showing a procedure of a process to utilize the web service in which the web service has ,
A state storage device for storing state information indicating an execution state of the process in the flow execution device;
A flow development support device,
further,
Wherein provided in the flow execution unit, the flow of the call request including the plan name if it contains flows call by the plan name into unit flow one selected in response to a request from the User chromatography The terminal expansion Means for outputting to the support device ;
Means provided in the flow development support device, and upon receipt of the call request, means for storing in the state storage device data for passing to the flow execution device indicated in the call request as the state information;
Provided in the flow expand support device, the plan name-containing Mikatsu shown before Kiko out request, the containing substitutable the preconditions the data stored in the state storage device for all variables Means for selecting one plan information from the plan storage device and outputting an execution request indicating the flow name indicated in the selected plan information to the flow execution device ;
The flow is provided in the flow execution device, a first execution result information obtained by the execution of the unit flow having the flow name indicated in the execution request among the plurality of unit flows as a reply to the execution request Means for outputting to the deployment support device ;
Means provided in the flow development support apparatus, for inputting the first execution result information, and outputting the input first execution result information to the flow execution apparatus as an answer to the call request;
Provided in the flow execution device, the previously executing SL by using the first execution result information output processing flow call is indicated in the unit flow that was included from the flow development support device And a means for outputting the second execution result information to the user terminal as a response to the request from the user terminal .
ウェブサービスを利用する処理を含む複数の処理の手順をそれぞれ示した複数の単位フローを個別に実行するフロー実行装置を支援するもので、複数の前記ウェブサービスがそれぞれ持つ同一のプラン名とそのウェブサービスを利用する処理の手順を示した前記単位フローのフロー名と複数の変数を含んだ事前条件とを対応付けたプラン情報を記憶するプラン記憶装置と、前記フロー実行装置での前記処理の実行状態を示す状態情報を記憶する状態記憶装置とにアクセス可能なフロー展開支援装置であり、
前記プラン名が示された呼出し要求を前記フロー実行装置から入力する手段と、
前記呼出し要求に示された前記フロー実行装置へ引き渡すためのデータを前記状態情報として前記状態記憶装置に記憶させる手段と、
前記呼出し要求に示される前記プラン名を含み、かつ前記状態記憶手段に記憶された前記データを全ての変数に代入可能な前記事前条件を含む前記プラン情報を前記プラン記憶装置から1つを選択し、この選択された前記プラン情報に示される前記フロー名を示した実行要求を前記フロー実行装置出力する手段と、
前記実行要求に対する回答としての実行結果情報を前記フロー実行装置から入力する手段と、
前記実行結果情報を前記呼出し要求に対する回答として前記フロー実行装置へ出力する手段とを具備したことを特徴とするフロー展開支援装置。
It intended to assist the flow execution unit for individually executing the plurality of unit flow shown a plurality of processing procedures including processing using the Web service, the same plan name with the plurality of web services, each with its web A plan storage device that stores plan information in which a flow name of the unit flow indicating a processing procedure using a service and a precondition including a plurality of variables are associated with each other, and execution of the processing in the flow execution device A flow development support device accessible to a state storage device that stores state information indicating a state;
Means for inputting a call request indicating the plan name from the flow execution device;
Means for causing the state storage device to store data for delivery to the flow execution device indicated in the call request as the state information;
Select one of the plan information including the pre-condition that includes the plan name indicated in the call request and includes the preconditions that can substitute the data stored in the state storage means for all variables. And means for outputting an execution request indicating the flow name indicated in the selected plan information to the flow execution device;
Means for inputting execution result information as an answer to the execution request from the flow execution device;
And a means for outputting the execution result information as an answer to the call request to the flow execution apparatus.
選択された前記プラン情報に変数を含む事後条件が含まれている場合に、前記状態情報を前記事後条件の変数に前記実行結果情報に含まれる値と前記変数に代入可能な前記データを代入して定まる内容に更新する手段をさらに備えたことを特徴とする請求項2に記載のフロー展開支援装置。If the selected the plan information includes the post-conditions, including variables and the values and substitutable the data to the variable included in the execution result information the status information in a variable the posterior conditions The flow development support apparatus according to claim 2, further comprising means for updating to contents determined by substitution . 複数のウェブサービスがそれぞれ持つ同一のプラン名とそのウェブサービスを利用する処理の手順を示した前記単位フローのフロー名と複数の変数を含んだ事前条件とを対応付けたプラン情報を記憶するプラン記憶装置と、フロー実行装置での前記処理の実行状態を示す状態情報を記憶する状態記憶装置とにアクセス可能なコンピュータを、
前記プラン名が示された呼出し要求を前記フロー実行装置から入力する手段と、
前記呼出し要求に示された前記フロー実行装置へ引き渡すためのデータを前記状態情報として前記状態記憶装置に記憶させる手段と、
前記呼出し要求に示される前記プラン名を含み、かつ前記状態記憶手段に記憶された前記データを全ての変数に代入可能な前記事前条件を含む前記プラン情報を前記プラン記憶装置から1つを選択し、この選択された前記プラン情報に示される前記フロー名を示した実行要求を前記フロー実行装置出力する手段と、
前記実行要求に対する回答としての実行結果情報を前記フロー実行装置から入力する手段と、
前記実行結果情報を前記呼出し要求に対する回答として前記フロー実行装置へ出力する手段として機能させることを特徴とするフロー展開支援プログラム。
A plan that stores plan information in which the same plan name that each of a plurality of web services has, the flow name of the unit flow that indicates the processing procedure for using the web service, and the preconditions that include a plurality of variables are associated with each other A computer capable of accessing a storage device and a state storage device that stores state information indicating an execution state of the process in the flow execution device;
Means for inputting a call request indicating the plan name from the flow execution device;
Means for causing the state storage device to store data for delivery to the flow execution device indicated in the call request as the state information;
Select one of the plan information including the pre-condition that includes the plan name indicated in the call request and includes the preconditions that can substitute the data stored in the state storage means for all variables. And means for outputting an execution request indicating the flow name indicated in the selected plan information to the flow execution device;
Means for inputting execution result information as an answer to the execution request from the flow execution device;
A flow development support program that functions as means for outputting the execution result information to the flow execution apparatus as an answer to the call request.
選択された前記プラン情報に変数を含む事後条件が含まれている場合に、前記状態情報を前記事後条件の変数に前記実行結果情報に含まれる値と前記変数に代入可能な前記データとを代入して定まる内容に更新する手段として前記コンピュータをさらに機能させることを特徴とする請求項に記載のフロー展開支援プログラム。When the selected post-plan information includes a post-condition including a variable , the state information includes a value included in the execution result information as the post-condition variable and the data that can be substituted into the variable. The flow development support program according to claim 4 , further causing the computer to function as means for updating to contents determined by substitution .
JP2003155927A 2003-05-30 2003-05-30 Web service system, flow development support device, and flow development support program Expired - Fee Related JP3947136B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003155927A JP3947136B2 (en) 2003-05-30 2003-05-30 Web service system, flow development support device, and flow development support program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003155927A JP3947136B2 (en) 2003-05-30 2003-05-30 Web service system, flow development support device, and flow development support program

Publications (2)

Publication Number Publication Date
JP2004361993A JP2004361993A (en) 2004-12-24
JP3947136B2 true JP3947136B2 (en) 2007-07-18

Family

ID=34050191

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003155927A Expired - Fee Related JP3947136B2 (en) 2003-05-30 2003-05-30 Web service system, flow development support device, and flow development support program

Country Status (1)

Country Link
JP (1) JP3947136B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7404189B2 (en) 2003-12-30 2008-07-22 International Business Machines Corporation Scheduler supporting web service invocation
GB0503141D0 (en) * 2005-02-15 2005-03-23 British Telecomm Process configuration in a network
JP4958481B2 (en) 2006-06-01 2012-06-20 キヤノン株式会社 WEB service execution method and information processing apparatus
JP5084355B2 (en) 2007-06-07 2012-11-28 キヤノン株式会社 Flow processing execution device, flow processing execution method, and program
JP4729005B2 (en) * 2007-06-19 2011-07-20 日本電信電話株式会社 Service scenario creation device, service scenario creation method, and service scenario creation program
US20110022405A1 (en) * 2009-07-24 2011-01-27 Heinz Theresa A System and method of managing customer information

Also Published As

Publication number Publication date
JP2004361993A (en) 2004-12-24

Similar Documents

Publication Publication Date Title
US8370802B2 (en) Specifying an order for changing an operational state of software application components
CN108229686B (en) Model training and predicting method and device, electronic equipment and machine learning platform
RU2429529C2 (en) Dynamic configuration, allocation and deployment of computer systems
US9513881B2 (en) System for the discovery and provisioning of artifacts and composites
US8307054B2 (en) Systems and/or methods for location transparent routing and execution of processes
US20120330940A1 (en) Method and system for ranking affinity degree among functional blocks
US20030144860A1 (en) Dynamic conversation logic selection method and system
CA2824393A1 (en) Method and system for providing a session involving a plurality of software applications
US8234660B2 (en) Method and apparatus for a support platform
JP3947136B2 (en) Web service system, flow development support device, and flow development support program
Chandramohan et al. FEWSS—framework to evaluate the service suitability and privacy in a distributed web service environment
Ejarque et al. Exploiting semantics and virtualization for SLA‐driven resource allocation in service providers
Saboohi et al. Failure recovery of composite semantic web services using subgraph replacement
US20250245054A1 (en) End-to-End Orchestration of a Datacenter on a Cloud Platform
US20250245055A1 (en) Automated Retries for Orchestration of a Datacenter on a Cloud Platform
JP2013020494A (en) Software execution system, and software execution method, and program
US11868791B2 (en) Method and system for determining the next state of application upgrades using a device emulation system of a customer environment
US11782785B2 (en) Method and system for proactively resolving application upgrade issues using a device emulation system of a customer environment
Lahouij et al. Dynamic reconfiguration of cloud composite services using event-b
Sun et al. Toward supporting unplanned dynamic changes of service-based business processes
Tsai et al. Semantic interoperability and its verification & validation in c2 systems
US20060031498A1 (en) Service-process providing system and service-process providing method
Ettazi et al. Micats: Middleware for context-aware transactional services
JP4554581B2 (en) Job management apparatus, system and program
D’mello et al. Dynamic web service composition based on operation flow semantics

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070309

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070412

LAPS Cancellation because of no payment of annual fees