[go: up one dir, main page]

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

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

Info

Publication number
JP2004361993A
JP2004361993A JP2003155927A JP2003155927A JP2004361993A JP 2004361993 A JP2004361993 A JP 2004361993A JP 2003155927 A JP2003155927 A JP 2003155927A JP 2003155927 A JP2003155927 A JP 2003155927A JP 2004361993 A JP2004361993 A JP 2004361993A
Authority
JP
Japan
Prior art keywords
flow
plan
execution
information
unit
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.)
Granted
Application number
JP2003155927A
Other languages
Japanese (ja)
Other versions
JP3947136B2 (en
Inventor
Shinichi Nagano
伸一 長野
Tetsuo Hasegawa
哲夫 長谷川
Akihiko Osuga
昭彦 大須賀
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)

Abstract

【課題】比較的小さな処理を行うための単位フローを柔軟に組合わせて、全体として論理的な1つのWebサービスフローを動的に組み立てて実行する。
【解決手段】フロー実行装置2から出力され、プラン名が示された要求情報を要求入力部13aにより入力する。この入力された要求情報に示されるプラン名を含むプラン情報を抽出部13bがプランリスト11から抽出する。抽出されたプラン情報のうちの1つを選択部13cが選択する。この選択されたプラン情報に示されるフロー名に対応する単位フローの実行をフロー実行装置2に対して依頼するための実行要求を出力部13dが出力する。そして、上記の実行要求に対する応答としてフロー実行装置2から出力される実行結果情報を応答入力部13eが入力する。この実行結果情報に応じた結果通知情報を、上記の要求情報に基づく単位フローの実行の結果として通知部13fがフロー実行装置2へ通知する。
【選択図】 図1
A method for dynamically assembling and executing one logical Web service flow as a whole by flexibly combining unit flows for performing relatively small processing.
A request input unit outputs request information output from a flow execution device and indicating a plan name. The extracting unit 13b extracts the plan information including the plan name indicated in the input request information from the plan list 11. The selection unit 13c selects one of the extracted plan information. The output unit 13d outputs an execution request for requesting the flow execution device 2 to execute the unit flow corresponding to the flow name indicated in the selected plan information. Then, the response input unit 13e inputs execution result information output from the flow execution device 2 as a response to the execution request. The notification unit 13f notifies the flow execution device 2 of the result notification information corresponding to the execution result information as a result of the execution of the unit flow based on the request information.
[Selection diagram] Fig. 1

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乃至非特許文献5を参照)。
【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】
【非特許文献1】
「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つ選択する手段と、前記フロー展開支援装置に設けられ、選択された前記プラン情報に示される前記フロー名を示した実行要求を出力する手段と、前記フロー実行装置に設けられ、前記実行要求に示される前記フロー名の前記単位フローに応じた処理を起動する第2の起動手段と、前記フロー実行装置に設けられ、前記第2の起動手段により起動された処理により得られる第1の実行結果情報を前記実行要求に対する回答として出力する手段と、前記フロー展開支援装置に設けられ、前記第1の実行結果情報を入力する手段と、前記フロー展開支援装置に設けられ、入力された前記第1の実行結果情報を前記呼出し要求に対する回答として出力する手段と、前記フロー実行装置に設けられ、前記呼出し要求に対する回答として出力された前記第1の実行結果情報を前記フロー呼出しが指定されていた前記単位フローに応じて実行されている処理で利用するために入力する手段と、前記フロー実行装置に設けられ、前記ユーザ端末からの要求に応じて起動した処理により得られる第2の実行結果情報を前記ユーザ端末からの要求に対する回答として出力する手段とを備えた。
【0013】
このような手段を講じたことにより、フロー実行装置では、ユーザ端末からの要求に応じて単位フローのうちの1つに応じた処理が起動され、この起動された処理にプラン名によるフロー呼出しが含まれている場合に当該プラン名を含む呼出し要求が出力される。フロー展開支援装置では、上記の呼出し要求が入力され、この入力された呼出し要求に示されるプラン名を含むプラン情報がプラン記憶装置から1つ選択される。さらにフロー展開支援装置では、選択されたプラン情報に示されるフロー名を示した実行要求が出力される。フロー実行装置では、上記の実行要求に示されるフロー名の単位フローに応じた処理が起動され、この処理により得られる第1の実行結果情報が上記の実行要求に対する回答として出力される。フロー展開支援装置では、上記の第1の実行結果情報が入力され、この入力された第1の実行結果情報が上記の呼出し要求に対する回答として出力される。フロー実行装置では、上記の呼出し要求に対する回答として出力された第1の実行結果情報をフロー呼出しが指定されていた単位フローに応じて実行されている処理で利用するために入力される。フロー実行装置では、ユーザ端末からの要求に応じて起動した処理により得られる第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]
TECHNICAL FIELD 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 a part of the processing of the web service flow, and a flow that individually executes the unit flow. The present invention relates to a flow development support device, a flow development support program, and a flow development support method 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, a new mechanism that can use an application program provided in an in-company information system or an inter-company business transaction system by calling it via a network and receiving a calculation result is spreading. Such a mechanism is called a web service (Web service), and is realized by using an open technology such as the Web or XML (extensible markup language). Currently, SOAP (simple object access protocol), WSDL (web services description language), UDDI (universal description service, the operation of the basic operation of the description and the operation of the description and operation, which is the basic operation of the description and operation) are described. It describes, discovers, and invokes services. By using these technologies, one-to-one cooperation between a Web service user and a Web service provider becomes possible.
[0003]
However, in-house information systems and inter-company commerce systems require more complex system cooperation. There is a strong need for research and development of new software technologies to achieve this. As one of them, there is a mechanism for collecting calls to a plurality of Web services as a business process or a workflow. Currently, as a standard language for describing a Web service flow that defines a calling procedure for a plurality of Web services, BPEL4WS (business process execution language for web services), WSFL (web services flow, LANG, XLANG, XLANG, XLAN, XA, LANX, LANX, LANX, LANX, LANX, LANX, LANX, LANX, LANX, LANX, LANX, LANX, LANX, LANX, LANX, LANX, LANX, LANX, LANXG, LANX, LANX, LANX, LANX, LANX, LANX, LANX, LANX, LANX, LANX, LANX, LANX, LANX, LANX, LANX, LANX, LANX, LANX, LANX, LANX, LANXG, LANX, LANX, LANX, LAN, X, X, and X) Numerous proposals have been made, such as process modeling language. In these Web service flow description languages, one logical Web service flow is defined as one Web service flow description (see Non-Patent Documents 1 to 5).
[0004]
[Non-patent document 1]
"A Mechanism of Behavior Description for Web Service Composition", Journal of the Japanese Society for Artificial Intelligence, vol. 17, no. 4, 2002.
[0005]
[Non-patent document 2]
"Overview of Web Services Architecture", 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 / jp / developerworks / webservices / 010608 / j_ws-arc1. html
[0007]
[Non-patent document 4]
"Business Process by BPEL4WS: 1st about BPEL4WS", http: // www-6. ibm. com / jp / 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 1]
"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 very strong demand to switch a Web service to be called according to the execution state of the process. In the case of the Web service flow description language, conditional statements must be frequently used in the Web service flow in order to describe Web service selection. As a result, the ratio of the definition of the control statement and the individual Web service call processing is relatively increased with respect to the semantic processing that is originally desired to be realized by the Web service flow, and the description is complicated and the Web service flow definition with poor visibility is difficult. It has become.
[0011]
The present invention has been made in view of such circumstances, and an object of the present invention is to flexibly combine unit flows for performing relatively small processing to form one logical Web as a whole. An object of the present invention is to provide a web service system capable of realizing a web service by dynamically assembling a service flow. For this purpose, it is necessary to separately provide a flow development support device, a flow development support program, and a flow development support method capable of efficiently supporting the development of a web service flow by a flow execution device that individually executes a unit flow. The purpose of.
[0012]
[Means for Solving the Problems]
In order to achieve the above object, the present invention provides a web service providing apparatus that individually provides a plurality of web services of the same type, and a plurality of procedures each showing a procedure of a plurality of processes including a process using the web service. A flow execution device that individually executes a process according to a unit flow, and a plan in which a plan name indicating the type of the web service is associated with a flow name of the unit flow indicating a procedure of a process using the web service A plan storage device for storing information; and a flow development support device, further provided in the flow execution device, for performing a process corresponding to one of the unit flows in response to a request from the user terminal. A first activating means for activating, and a flow call by the plan name provided to the process executed by the first activating means provided in the flow executing device. Is included, means for outputting a call request including the plan name, means provided in the flow expansion support device, means for inputting the call request, and means provided in the flow expansion support device for input. Means for selecting one of the plan information including the plan name indicated in the call request from the plan storage device, and indicating the flow name provided in the flow expansion support device and indicated in the selected plan information. Means for outputting the execution request, the second execution means provided in the flow execution device, for starting a process corresponding to the unit flow having the flow name indicated in the execution request, and the second execution means provided in the flow execution device. Means for outputting, as a response to the execution request, first execution result information obtained by the process started by the second starting means; Means for inputting the first execution result information provided in the expansion support device, and means for outputting the input first execution result information as a response to the call request, provided for the flow expansion support device To use the first execution result information provided in the flow execution device and output as a response to the call request in a process executed according to the unit flow for which the flow call is specified. And a means provided in the flow execution device and outputting second execution result information obtained by a process activated in response to a request from the user terminal as a response to the request from the user terminal. Equipped.
[0013]
By taking such means, in the flow execution device, a process corresponding to one of the unit flows is started in response to a request from the user terminal, and a flow call by a plan name is included in the started process. If it is included, a call request including the plan name is output. In the flow development support device, the above-described call request is input, and one piece of plan information including the plan name indicated in the input call request is selected from the plan storage device. Further, the flow deployment support device outputs an execution request indicating the flow name indicated in the selected plan information. In the flow execution device, a process corresponding to the unit flow of the flow name indicated in the above-mentioned execution request is started, and the first execution result information obtained by this process is output as a response to the above-mentioned execution request. In the flow development support device, the first execution result information is input, and the input first execution result information is output as a response to the call request. In the flow execution device, the first execution result information output as a response to the above-described call request is input for use in a process executed in accordance with the unit flow for which the flow call is specified. In the flow execution device, the second execution result information obtained by the process started in response to the request from the user terminal is output as a response to the request from the user terminal.
[0014]
BEST MODE FOR CARRYING OUT 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]
The Web service flow is a document that defines the calling order for the Web service. The simplest Web service flow is one that sequentially reads out a series of Web services. Further, in a more complicated Web service flow, it is possible to define a process for selecting a Web service or performing a call for a plurality of Web services in parallel.
[0016]
The Web service system according to the present embodiment is divided into a large-level flow in which a semantic processing flow is defined in advance and a small-level flow in which a method of realizing each processing is defined. The present invention provides a mechanism capable of dynamically assembling and executing one logical Web service flow as a whole by appropriately calling a lower-level flow required by an upper-level flow at the time of execution. Specifically, as a small-level flow, procedures for individually performing processes such as air flight vacancy search, air flight seat reservation, accommodation vacancy search, or accommodation accommodation reservation are performed. By defining a procedure for creating a travel plan as a level flow, a web service flow for creating a travel plan is assembled and executed by combining small-level flows according to a size-level flow. .
[0017]
This Web service system includes a flow deployment 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 via the Internet 5.
[0018]
The flow development support device 1 supports the flow execution device 2 to develop a Web service flow. The flow execution device 2 has a plurality of unit flows 21 corresponding to the large-level flows and the small-level flows, and executes the unit flows 21 individually. The unit flow 21 is a process of, for example, accessing a Web site provided by an airline via the Internet 5 and performing a vacancy search for the airline. When receiving the request including the Web service flow name via the Internet 5, the flow execution device 2 executes the specified unit flow 21, and returns the result to the request source. Examples of application programs for realizing such a flow execution device 2 include BPWS4J (business process execution language for web services Java (TM) run time) and WebSphere Application from IBM.
[0019]
The user terminal 3 is a computer terminal having a function of accessing the Internet 5. The user terminal 3 performs an interface process 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 in response 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,... Provide Web services such as the above-described vacancy search.
[0021]
FIG. 2 is a block diagram showing a configuration of the flow development support device 1.
As shown in FIG. 2, the flow development support device 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 a 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 the 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, recording the program 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 installed on a server device or a computer device as appropriate. The plan list 11 and the execution state database 12 include a storage device such as a memory and a hard disk device built in the server device and the computer device, and a storage device such as a memory and a hard disk device external to the server device and the computer device. Further, it can be realized by appropriately using a removable recording medium such as a floppy (R) disk or the like.
[0022]
The plan list 11 holds a plurality of plan information (hereinafter, referred to as a plan) that describes 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 13a inputs a flow development request output from the flow execution device 2 via the Internet 5. The flow development request includes a plan name, data, and the like. The request input unit 13a outputs the plan name included in the input flow development request to the extracting unit 13b, and outputs data to the updating unit 13g.
[0026]
The extraction unit 13b lists plans having the same plan name as the plan name output from the request input unit 13a and having 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. When the corresponding plan cannot be extracted, the extracting unit 13b notifies the notifying unit 13f of the fact.
[0027]
The selection unit 13c selects one of the plans output from the extraction unit 13b. The selection unit 13c outputs one selected plan to the output unit 13d and the update unit 13g.
[0028]
The output unit 13d sends a request to execute the unit flow indicated in the plan output from the selection unit 13c to the flow execution device 2 to the Internet 5.
[0029]
The response input unit 13e inputs, via the Internet 5, execution result information output by the flow execution device 2 as a result of executing the unit flow based on the execution request output by the output unit 13d. The response input unit 13e outputs the input execution result information to the notifying unit 13f and the updating unit 13g.
[0030]
The notification unit 13f creates result notification information including the execution result information output by the response input unit 13e, and sends the 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 data output from the request input unit 13a, post-conditions included in the plan output from the selection unit 13c, or execution result information output from the response input unit 13e. Update the information provided.
[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. Also, one of the unit flows 21 included in the flow execution device 2 describes a process of creating a travel plan in response to a request from a user. Hereinafter, this unit flow 21 is referred to as a travel plan creation flow. Three of the unit flows 21 describe a process of performing a vacancy search using a Web service provided by each of the service providing hosts 4-1, 4-2, and 4-3. 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 units 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 vacancy search flows 21-2, 21-3, and 21-4.
[0034]
Now, the execution state database 12 may be empty as an initial state, that is, there may be no execution state, or one or more 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]
Hereinafter, the predicate will be described. As an example, consider the sentence "Narita is the place of departure". This sentence indicates that the individual “Narita” has the property of “is a departure place”. Here, the symbol "NARITA" is given to the individual "Narita" as the subject, and the symbol "FROM" is given to "the departure place" which is a sentence predicate, and the sentence "Narita is the departure place" is given as "FROM ( Narita) ". The expression “FROM (NARITA)” is called a predicate, and “FROM” is called a predicate symbol. “FROM (NARITA)” indicates that the individual “Narita” is a departure place, but in order to express that an unspecified individual is a departure place, “FROM (from) is used by using a variable“ 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 mileage account of the airline “AIR1” is expressed as “ID (AIR1, 1234567)” using the predicate symbol “ID”.
[0036]
Here, the predicates used to describe a specific example in the present embodiment will be described below, and the meaning of each predicate will be briefly described.
[0037]
-FROM (from): From is the place of departure.
[0038]
TO (to): to is the destination.
[0039]
-DATE (date): date is boarding date and time.
[0040]
ID (airline, id): The character string id is a mile account ID of the airline airline.
[0041]
-AVAILABLE (flight): The 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))”, and “BEL (OHSUGA, ID (AIR2)). , 444555666)) ". For example, "BEL (NAGANO, ID (AIR1, 1234567))" states that "user" NAGANO "believes that character string" 1234567 "is the mileage account ID of airline" AIR1 ". ].
[0044]
The plan is registered in the plan list 11 in advance.
The plan is composed of five items: plan ID, plan name, precondition, flow call, and postcondition. 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 form. The flow call defines information for requesting the flow execution device 2 to execute a unit flow, and a flow name for specifying the unit flow held by the flow execution device 2 and its unit. Specify three types of argument data to be passed to the flow and variables to store the data received as the request result. The post condition is a condition as an effect of selecting a plan and calling a unit flow, and is described in a predicate form.
[0045]
FIG. 5 is a diagram illustrating an example of the plan list 11. The plan list 11 shown in FIG. 5 holds three plans, and the plan IDs of each plan are “plan1”, “plan2”, and “plan3” in order from the top. In addition, the same plan name “search” is defined in each case. These three plans correspond to the vacancy search flows 21-2, 21-3, and 21-4, respectively. “Search” is a plan name assigned to the vacant seat search.
[0046]
Hereinafter, the definition of the plan whose plan ID is “plan1” 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 that from is the place of departure, and
User u believes that to is the destination, and
User u believes that date is the boarding date and time, and
User u believes that the 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 having a flow name “AIR1 Search Service Flow” specifying a vacancy search service of the airline AIR1 is called, and four argument data, “from”, “to”, “date”, and “id” are passed and received as the call result. This indicates that data is stored 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 there is a vacant seat on flight flight].
[0052]
FIG. 6 is a sequence diagram for executing a Web service flow for creating a travel plan.
[0053]
Now, it is assumed that the user accesses the flow execution device 2 with the user terminal 3 and then performs an operation for requesting creation of a travel plan. At this time, as shown in FIG. 6, the execution request 61 of the 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, a procedure for creating a travel plan is defined, for example, "search for vacant seats on airmail → seat reservation for airmail → vacancy search for accommodation facilities ...". Is not defined. Therefore, the travel plan creation flow 21-1 sends the flow development request 62 indicating the plan name “search” corresponding to “search for vacant seats on airmail” to the flow development support device 1. The flow development request 62 includes a user ID, data to be delivered to another unit flow 21, and the like.
[0054]
When the flow development support device 1 receives the flow development request 62, the plan name, the user ID, and the data to be transferred 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 above various information, the support processing unit 13 starts an inference process as shown in FIG.
[0055]
The user ID is an identifier representing the user, and specifies, for example, a user name. Further, the data is represented by a set of a parameter name and a value, and one or a plurality of sets may be passed.
[0056]
FIG. 7 is a flowchart of the inference processing.
In step ST1, the request input unit 13a receives the plan name, the user ID, and the data to be transferred to another flow execution unit output from the flow execution unit 2a as described above.
[0057]
In step ST2, the updating unit 13g generates, for the data received by the request input unit 13a, predicate data in which a parameter name is used as a predicate symbol and a value is set to an argument of the predicate, and this predicate data is stored in the execution state database Register in 12. For example, when the request input unit 13a receives data including “NAGANO” as the user ID and the parameter name “FROM” and the value “NARITA” as the input related to the departure place, the update unit 13g transmits the predicate data “BEL”. (NAGANO, FROM (NARITA)) ", and registers this in the execution state database 12.
[0058]
In step ST3, the extraction unit 13b selects, from the plan list 11, a plan whose plan name is the same as the one input in the request input unit 13a and whose preconditions can be unified using a predicate in the execution state database 12. Look for p. Note that a plan that can be unified refers to a plan that can find a predicate having a value that can be assigned to all variables included in the predicate.
[0059]
In step ST4, the extraction unit 13b checks whether the plan p exists. If the plan p exists, the extraction unit 13b passes the extracted plan p to the selection unit 13c, and 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 have been extracted by the extraction unit 13b, they may be selected based on some appropriate criteria. For example, a method of first selecting the one found first by the extraction unit 13b, or selecting a precondition having a large number of predicates is used.
[0061]
In step ST6, the output unit 13d sets the unification obtained in step ST3 for the plan p selected by the selection unit 13c, that is, substitutes the variable into a variable between the flow call and the post-condition 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 transferred to the unit flow.
[0063]
For example, there are three unit flows 21 corresponding to the plan name "search", i.e., vacancy search flows 21-2, 21-3, and 21-4. Of these, the vacancy search flow 21-2 is selected. If so, the execution request 63 is sent from the output unit 13d to the vacancy search flow 21-2 as shown in FIGS.
[0064]
Upon receiving the execution request, the flow execution device 2 executes the unit flow having the flow name indicated in the execution request. As a result, in the above example, the vacancy search flow 21-2 is activated. The vacancy search flow 21-2 describes a procedure for performing a vacancy search using a Web service provided by the service providing host 4-1. Accordingly, the vacancy search flow 21-2 sends the vacancy search request 64 to the service providing host 4-1 as shown in FIG. 6, and receives the vacancy information 65 returned from the service providing host 4-1 in response to this request. Further, the vacant seat search flow 21-2 sends the execution result information 66 including the vacant seat information 65 to the flow deployment support device 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 device 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 checks whether the execution request has been normally completed. If the execution request has been completed normally, the process proceeds to step ST9.
[0066]
In step ST9, the updating unit 13g substitutes the execution result information 66 received by the response input unit 13e for a variable specified by the flow call of the plan p. When the same predicate exists in the unified post condition, the update unit 13g substitutes the execution result information 66 for the predicate.
[0067]
In step ST10, the updating unit 13g deletes each predicate included in the preconditions unified in step ST6 from the execution state database 12, and then deletes each predicate included in the postcondition unified in step ST9 in the execution state. Register in the database 12.
[0068]
Finally, in step ST11, the notifying unit 13f uses the result notification information 67 indicating the content 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 notifying unit 13f indicates that the result notification information 67 has failed to develop the flow.
[0070]
Thereafter, according to the same flow as described above, vacant seat reservation for airmail, vacancy search for accommodation facilities, and the like are sequentially performed. Then, a travel plan creation flow 21-1 creates a travel plan based on various information obtained by these processes. The execution result information 68 indicating the travel plan is sent from the travel plan creation flow 21-1 to the user terminal 3 as shown in FIG.
[0071]
Next, the operation of the flow development support device 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, 2004/04/0110: 00)” are shown. Suppose you have
[0072]
The updating unit 13g converts the predicate “BEL (NAGANO, FROM (NARITA))” from the data “(FROM, Narita)” and the predicate “BEL (NAGANO, TO (ITAMI))” from the data “(TO, ITAMI)”. And “BEL (NAGANO, DATE (2003/04/01 10:00))” are 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 adding 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 capable of unifying the precondition using the predicate in the execution state database 12.
Here, the three plans having the plan name “search” are “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 assignment to all the following five variables can be unified, that is, unified.
u = NAGANO
from = NARITA
to = ITAMI
date = 2003/04/01 10:00
number = 1234567
At this time, the unified preconditions are 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 match each predicate in the execution state database 12. Therefore, “plan1” is a candidate for the 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 light of the execution state database 12 shown in FIG. 8, substitution to the following four variables, that is, unification is possible.
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, the predicate corresponding to “BEL (u, ID (AIR3, number))” does not exist in the execution state database 12 for “plan3”, and therefore 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 selecting unit 13c directly selects the above-mentioned “plan1”.
[0077]
The output unit 13d applies the unification of the pre-condition of “plan1” to the flow call and the post-condition of “plan1”. The flow call of “plan1” is as follows.
flight = call ("AIR1 Search Service Flow", from, to, date, number)
When unification is applied to this flow call, it becomes 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)
Applying unification to this postcondition is 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 13d 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 unified flow call. , “1234567”. “AIR1 Search Service Flow” is a Web service flow name assigned to the vacancy search flow 21-2. Thus, the execution request 63 starts the vacancy search flow 21-2.
[0079]
It is assumed that the vacant flight “AIR1-079” is found by the vacant seat search flow 21-2. In this case, the execution result information 66 including “AIR1-079” is returned from the vacancy search flow 21-2. Then, the execution result information 66 is input by the response input unit 13e and passed to the update unit 13g. The updating unit 13g substitutes the above “AIR1-079” included in the execution result information 66 into the variable “flight” of the unified flow call. Therefore, the value of the variable “flight” is “AIR1-079”. At this time, the above-mentioned unified post-conditions are as follows.
BEL (NAGANO, AVAILABLE (AIR1-079)) ∧
BEL (NAGANO, ID (AIR1, 1234567)
Subsequently, the updating 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 update unit 13g adds the following two predicates included in the unified post condition 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 trip plan creation flow 21-1, which is the calling source.
[0080]
As described above, according to the present embodiment, each time the flow development support device 1 receives a flow development request, it selects one appropriate unit flow 21 according to the request and requests execution of the unit flow 21. . Further, the flow development support device 1 returns information obtained as a result of executing the requested unit flow 21 to the unit flow 21 that is the flow development request source. Therefore, in the flow execution device 2, one unit flow 21 can indirectly call another 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, by updating the plan list 11, the newly added unit flow can be used. Specifically, if a unit flow for calling the airline vacancy search Web service AIR4 is added, the plan name is “search” and the flow call is “flight = call (“ AIR4 Search Service Flow). By adding the plan “, from, to, date, id)” to the plan list 11, the unit flow for planning the above-mentioned trip can be modified from the old unit flow to the new unit flow without any modification. It is possible to call and use the added unit flow. That is, according to the present embodiment, the development of each unit flow can be performed without considering the details of other unit flows. Further, the expansion of the Web service flow can be easily performed by updating or adding a part of the unit flow.
[0082]
Further, according to the present embodiment, the precondition can be included in the plan, the execution state of the Web service flow can be 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 implemented in the following various modifications.
The plan list 11 and the execution state database 12 need not be included in the flow development support device 1. In this case, communication means for accessing the plan list 11 and the execution state database 12 from the flow development support device 1 is provided in the flow development support device 1.
[0084]
Extraction of a plan from the plan list 11 may be performed based on only the plan name. In this case, the plan need not include the pre-condition and the post-condition. Further, the execution state database 12 becomes unnecessary.
[0085]
When updating the execution state database 12, it is not necessary to consider the post condition.
[0086]
The number of the flow execution devices 2 does not need to be one, and the unit flows 21 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. The unit flow 21 in which the interface processing with the user terminal 3 is indicated 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 constituent elements in an implementation stage without departing from the scope of the invention. Various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the above embodiments. For example, some components may be deleted from all the components shown in the embodiment. Further, components of 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 a configuration of a flow development support device 1 in FIG.
FIG. 3 is a diagram showing a flow of information between each unit of the Web service system.
FIG. 4 is a diagram showing an example of an execution state database 12 in FIG. 2;
FIG. 5 is a view showing an example of a plan list 11 in FIG. 2;
FIG. 6 is a sequence diagram for executing a Web service flow for creating a travel plan.
FIG. 7 is a flowchart of an inference process.
FIG. 8 is a diagram showing an example of updating an execution state database 12 in FIG. 2;
9 is a diagram showing an example of updating the execution state database 12 in FIG.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ... Flow development support 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 (11)

ユーザ端末に対してウェブサービスを提供するウェブサービスシステムにおいて、
同一種類の複数のウェブサービスを個別に提供する複数のウェブサービス提供装置と、
前記ウェブサービスを利用する処理を含む複数の処理の手順をそれぞれ示した複数の単位フローに応じた処理を個別に実行するフロー実行装置と、
前記ウェブサービスの種類を示すプラン名とそのウェブサービスを利用する処理の手順を示した前記単位フローのフロー名とを対応付けたプラン情報を記憶するプラン記憶装置と、
フロー展開支援装置とを具備し、
さらに、
前記フロー実行装置に設けられ、前記ユーザ端末からの要求に応じて選択された一つの単位フローに前記プラン名によるフロー呼出しが含まれている場合に当該プラン名を含む呼出し要求を出力する手段と、
前記フロー展開支援装置に設けられ、前記呼出し要求を受けると、この呼出し要求に示される前記プラン名を含む前記プラン情報を前記プラン記憶装置から1つ選択し、この選択した前記プラン情報に示される前記フロー名を示した実行要求を出力する手段と、
前記フロー実行装置に設けられ、前記実行要求に示される前記フロー名の単位フローを取り出して、この取り出した単位フローの実行により得られる第1の実行結果情報を前記実行要求に対する回答として出力する手段と、
前記フロー展開支援装置に設けられ、前記第1の実行結果情報を入力し、この入力した前記第1の実行結果情報を前記呼出し要求に対する回答として出力する手段と、
前記フロー実行装置に設けられ、前記第1の実行結果情報を前記フロー呼出しが指定されていた前記単位フローに応じて実行されている処理で利用するために入力するとともに、当該処理で得られる第2の実行結果情報を前記ユーザ端末からの要求に対する回答として出力する手段とを有することを特徴とするウェブサービスシステム。
In a web service system for providing a web service to a user terminal,
A plurality of web service providing apparatuses for individually providing a plurality of web services of the same type;
A flow execution device that individually executes processes corresponding to a plurality of unit flows each showing a procedure of a plurality of processes including a process using the web service,
A plan storage device that stores plan information that associates a plan name indicating the type of the web service with a flow name of the unit flow indicating a procedure of a process using the web service;
A flow development support device,
further,
Means for providing a call request including the plan name when one of the unit flows selected in response to a request from the user terminal includes a flow call by the plan name, provided in the flow execution device; ,
When provided in the flow development support device and receives the call request, the plan information including the plan name indicated in the call request is selected from the plan storage device, and the selected plan information is indicated in the selected plan information. Means for outputting an execution request indicating the flow name;
Means provided in the flow execution device for extracting a unit flow having the flow name indicated in the execution request and outputting first execution result information obtained by executing the extracted unit flow as a response to the execution request When,
Means provided in the flow development support device, for inputting the first execution result information, and outputting the input first execution result information as a response to the call request;
The first execution result information is provided in the flow execution device, and the first execution result information is input for use in a process executed in accordance with the unit flow for which the flow call is specified, and the first execution result information obtained in the process is input. Means for outputting the execution result information of step 2 as a response to a request from the user terminal.
ウェブサービスを利用する処理を含む複数の処理の手順をそれぞれ示した複数の単位フローを個別に実行するフロー実行装置を支援するもので、前記ウェブサービスの種類を示すプラン名とそのウェブサービスを利用する処理の手順を示した前記単位フローのフロー名とを対応付けたプラン情報を記憶するプラン記憶装置にアクセス可能なフロー展開支援装置において、
前記プラン名が示された呼出し要求を前記フロー実行装置から入力する手段と、
前記呼出し要求に示される前記プラン名を含む前記プラン情報を前記プラン記憶装置から1つを選択する手段と、
選択された前記プラン情報に示される前記フロー名を示した実行要求を前記フロー実行装置に対して出力する手段と、
前記実行要求に対する回答としての実行結果情報を前記フロー実行装置から入力する手段と、
前記実行結果情報を前記呼出し要求に対する回答として前記フロー実行装置へ出力する手段とを具備したことを特徴とするフロー展開支援装置。
Supports a flow execution device that individually executes a plurality of unit flows each showing a procedure of a plurality of processes including a process using a web service, and uses a plan name indicating a type of the web service and the web service. A flow development support device that can access a plan storage device that stores plan information that associates the flow name of the unit flow with the flow of the unit flow indicating the procedure of the process.
Means for inputting the call request indicating the plan name from the flow execution device;
Means for selecting one of the plan information from the plan storage device, the plan information including the plan name indicated in the call request;
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 a response to the execution request from the flow execution device,
Means for outputting the execution result information to the flow execution device as a response to the call request.
ウェブサービスを利用する処理を含む複数の処理の手順をそれぞれ示した複数の単位フローを個別に実行するフロー実行装置を支援するもので、前記ウェブサービスの種類を示すプラン名とそのウェブサービスを利用する処理の手順を示した前記単位フローのフロー名と事前条件とを対応付けたプラン情報を記憶するプラン記憶装置と、前記フロー実行装置での前記処理の実行状態を示す状態情報を記憶する状態記憶装置とにアクセス可能なフロー展開支援装置であり、
前記プラン名が示された呼出し要求を前記フロー実行装置から入力する手段と、
前記呼出し要求に示される前記プラン名を含み、かつ前記状態記憶手段に記憶された前記状態情報と所定の関係を持った前記事前条件を含む前記プラン情報を前記プラン記憶装置から1つを選択する手段と、
選択された前記プラン情報に示される前記フロー名を示した実行要求を前記フロー実行装置に対して出力する手段と、
前記実行要求に対する回答としての実行結果情報を前記フロー実行装置から入力する手段と、
前記実行結果情報を前記呼出し要求に対する回答として前記フロー実行装置へ出力する手段とを具備したことを特徴とするフロー展開支援装置。
Supports a flow execution device that individually executes a plurality of unit flows each showing a procedure of a plurality of processes including a process using a web service, and uses a plan name indicating a type of the web service and the web service. A plan storage device that stores plan information in which a flow name of the unit flow indicating a procedure of the process to be performed is associated with a precondition, and a status that stores status information indicating an execution status of the process in the flow execution device. A flow development support device that can access a storage device,
Means for inputting the call request indicating the plan name from the flow execution device;
Select one of the plan information from the plan storage device, the plan information including the plan name indicated in the call request and including the precondition having a predetermined relationship with the state information stored in the state storage means. Means to
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 a response to the execution request from the flow execution device,
Means for outputting the execution result information to the flow execution device as a response to the call request.
前記単位フローに応じた処理で用いるデータが前記呼出し要求情報に含まれている場合に、前記状態情報を前記データに基づいて更新する手段をさらに備えたことを特徴とする請求項3に記載のフロー展開支援装置。4. The apparatus according to claim 3, further comprising: a unit configured to update the state information based on the data when the call request information includes data used in a process corresponding to the unit flow. Flow development support device. 選択された前記プラン情報に事後条件が含まれている場合に、前記状態情報を前記事後条件と前記実行結果情報とに基づいて更新する手段をさらに備えたことを特徴とする請求項2に記載のフロー展開支援装置。3. The apparatus according to claim 2, further comprising: means for updating the state information based on the post condition and the execution result information when the selected plan information includes a post condition. A flow development support device as described in the above. 前記ウェブサービスの種類を示すプラン名とそのウェブサービスを利用する処理の手順を示した前記単位フローのフロー名とを対応付けたプラン情報を記憶するプラン記憶装置にアクセス可能なコンピュータを、
前記プラン名が示された呼出し要求をフロー実行装置から入力する手段と、
前記呼出し要求に示される前記プラン名を含む前記プラン情報を前記プラン記憶装置から1つを選択する選択手段と、
選択された前記プラン情報に示される前記フロー名を示した実行要求を前記フロー実行装置に対して出力する手段と、
前記実行要求に対する回答としての実行結果情報を前記フロー実行装置から入力する手段と、
前記実行結果情報を前記呼出し要求に対する回答として前記フロー実行装置へ出力する手段として機能させることを特徴とするフロー展開支援プログラム。
A computer that can access a plan storage device that stores plan information that associates a plan name indicating the type of the web service with a flow name of the unit flow indicating a procedure of a process using the web service,
Means for inputting a call request indicating the plan name from a flow execution device;
Selecting means for selecting one of the plan information including the plan name indicated in the call request from the plan storage device;
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 a response to the execution request from the flow execution device,
A flow development support program functioning as means for outputting the execution result information to the flow execution device as a response to the call request.
ウェブサービスの種類を示すプラン名とそのウェブサービスを利用する処理の手順を示した前記単位フローのフロー名と事前条件とを対応付けたプラン情報を記憶するプラン記憶装置と、フロー実行装置での前記処理の実行状態を示す状態情報を記憶する状態記憶装置とにアクセス可能なコンピュータを、
前記プラン名が示された呼出し要求を前記フロー実行装置から入力する手段と、
前記呼出し要求に示される前記プラン名を含み、かつ前記状態記憶手段に記憶された前記状態情報と所定の関係を持った前記事前条件を含む前記プラン情報を前記プラン記憶装置から1つを選択する手段と、
選択された前記プラン情報に示される前記フロー名を示した実行要求を前記フロー実行装置に対して出力する手段と、
前記実行要求に対する回答としての実行結果情報を前記フロー実行装置から入力する手段と、
前記実行結果情報を前記呼出し要求に対する回答として前記フロー実行装置へ出力する手段として機能させることを特徴とするフロー展開支援プログラム。
A plan storage device for storing plan information in which a plan name indicating a type of a web service and a flow name of the unit flow indicating a procedure of a process using the web service are associated with a precondition, and a flow execution device. A computer that can access a state storage device that stores state information indicating an execution state of the processing,
Means for inputting the call request indicating the plan name from the flow execution device;
Select one of the plan information from the plan storage device, the plan information including the plan name indicated in the call request and including the precondition having a predetermined relationship with the state information stored in the state storage means. Means to
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 a response to the execution request from the flow execution device,
A flow development support program functioning as means for outputting the execution result information to the flow execution device as a response to the call request.
前記単位フローに応じた処理で用いるデータが前記呼出し要求情報に含まれている場合に、前記状態情報を前記データに基づいて更新する手段として前記コンピュータをさらに機能させることを特徴とする請求項7に記載のフロー展開支援プログラム。8. The computer according to claim 7, further comprising, when data used in the processing corresponding to the unit flow is included in the call request information, updating the state information based on the data. Flow development support program described in 1. 選択された前記プラン情報に事後条件が含まれている場合に、前記状態情報を前記事後条件と前記実行結果情報とに基づいて更新する手段として前記コンピュータをさらに機能させることを特徴とする請求項7に記載のフロー展開支援プログラム。When the post-condition is included in the selected plan information, the computer is further made to function as means for updating the state information based on the post-condition and the execution result information. Item 8. A flow development support program according to Item 7. プラン記憶装置に記憶され、前記ウェブサービスの種類を示すプラン名とそのウェブサービスを利用する処理の手順を示した前記単位フローのフロー名とを対応付けたプラン情報を参照しつつ、ウェブサービスを利用する処理を含む複数の処理の手順をそれぞれ示した複数の単位フローを個別に実行するフロー実行装置を支援するフロー展開支援方法において、
前記プラン名が示された呼出し要求を前記フロー実行装置から入力し、
前記呼出し要求に示される前記プラン名を含む前記プラン情報を前記プラン記憶装置から1つを選択し、
選択された前記プラン情報に示される前記フロー名を示した実行要求を前記フロー実行装置に対して出力し、
前記実行要求に対する回答としての実行結果情報を前記フロー実行装置から入力し、
前記実行結果情報を前記呼出し要求に対する回答として前記フロー実行装置へ出力することを特徴とするフロー展開支援方法。
While referring to the plan information stored in the plan storage device and associating the plan name indicating the type of the web service with the flow name of the unit flow indicating the procedure of the process using the web service, the web service In a flow development support method for supporting a flow execution device that individually executes a plurality of unit flows each showing a procedure of a plurality of processes including a process to be used,
A call request indicating the plan name is input from the flow execution device,
Selecting one of the plan information including the plan name indicated in the call request from the plan storage device;
An execution request indicating the flow name indicated in the selected plan information is output to the flow execution device,
Entering execution result information as a response to the execution request from the flow execution device,
Outputting the execution result information as a response to the call request to the flow execution device.
プラン記憶装置に記憶され、ウェブサービスの種類を示すプラン名とそのウェブサービスを利用する処理の手順を示した前記単位フローのフロー名と事前条件とを対応付けたプラン情報と、状態記憶装置に記憶され、フロー実行装置での処理の実行状態を示す状態情報とを参照しつつ、前記ウェブサービスを利用する処理を含む複数の処理の手順をそれぞれ示した複数の単位フローを個別に実行するフロー実行装置を支援するフロー展開支援方法において、
前記プラン名が示された呼出し要求を前記フロー実行装置から入力し、
前記呼出し要求に示される前記プラン名を含み、かつ前記状態記憶手段に記憶された前記状態情報と所定の関係を持った前記事前条件を含む前記プラン情報を前記プラン記憶装置から1つを選択し、
選択された前記プラン情報に示される前記フロー名を示した実行要求を前記フロー実行装置に対して出力し、
前記実行要求に対する回答としての実行結果情報を前記フロー実行装置から入力し、
前記実行結果情報を前記呼出し要求に対する回答として前記フロー実行装置へ出力することを特徴とするフロー展開支援方法。
The plan information stored in the plan storage device and associated with the plan name indicating the type of the web service, the flow name of the unit flow indicating the procedure of the process using the web service, and the precondition, and the state storage device A flow for individually executing a plurality of unit flows each showing a procedure of a plurality of processes including a process of using the web service, with reference to state information indicating the execution state of the process in the flow execution device, which is stored. In a flow development support method for supporting an execution device,
A call request indicating the plan name is input from the flow execution device,
Select one of the plan information from the plan storage device, the plan information including the plan name indicated in the call request and including the precondition having a predetermined relationship with the state information stored in the state storage means. And
An execution request indicating the flow name indicated in the selected plan information is output to the flow execution device,
Entering execution result information as a response to the execution request from the flow execution device,
Outputting the execution result information as a response to the call request to the flow execution device.
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 true JP2004361993A (en) 2004-12-24
JP3947136B2 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)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007323443A (en) * 2006-06-01 2007-12-13 Canon Inc WEB service execution method and information processing apparatus
US7404189B2 (en) 2003-12-30 2008-07-22 International Business Machines Corporation Scheduler supporting web service invocation
JP2008530674A (en) * 2005-02-15 2008-08-07 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー Process configuration in the network
EP2000965A2 (en) 2007-06-07 2008-12-10 Canon Kabushiki Kaisha Flow process execution method, apparatus and program
JP2009003519A (en) * 2007-06-19 2009-01-08 Nippon Telegr & Teleph Corp <Ntt> Service scenario creation device, service scenario creation method, and service scenario creation program
JP2011028745A (en) * 2009-07-24 2011-02-10 Ncr Corp System and method of managing customer information

Cited By (10)

* 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
US7707587B2 (en) 2003-12-30 2010-04-27 International Business Machines Corporation Scheduler supporting web service invocation
JP2008530674A (en) * 2005-02-15 2008-08-07 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー Process configuration in the network
US8150905B2 (en) 2005-02-15 2012-04-03 British Telecommunications Plc Process configuration in a network
JP2007323443A (en) * 2006-06-01 2007-12-13 Canon Inc WEB service execution method and information processing apparatus
US8069234B2 (en) 2006-06-01 2011-11-29 Canon Kabushiki Kaisha Web service execution method, processing method and apparatus
EP2000965A2 (en) 2007-06-07 2008-12-10 Canon Kabushiki Kaisha Flow process execution method, apparatus and program
EP2000965A3 (en) * 2007-06-07 2012-04-25 Canon Kabushiki Kaisha Flow process execution method, apparatus and program
JP2009003519A (en) * 2007-06-19 2009-01-08 Nippon Telegr & Teleph Corp <Ntt> Service scenario creation device, service scenario creation method, and service scenario creation program
JP2011028745A (en) * 2009-07-24 2011-02-10 Ncr Corp System and method of managing customer information

Also Published As

Publication number Publication date
JP3947136B2 (en) 2007-07-18

Similar Documents

Publication Publication Date Title
US8370802B2 (en) Specifying an order for changing an operational state of software application components
US9020907B2 (en) Method and system for ranking affinity degree among functional blocks
US20150178052A1 (en) Automated experimentation platform
US10114861B2 (en) Expandable ad hoc domain specific query for system management
US12056537B2 (en) Managing execution of continuous delivery pipelines for a cloud platform based data center
US20090007088A1 (en) System for the discovery and provisioning of artifacts and composites
Liu et al. A declarative approach to enhancing the reliability of bpel processes
US11922137B1 (en) Architecture discovery
US20030144860A1 (en) Dynamic conversation logic selection method and system
US20070027881A1 (en) Finding similarity among sets of coordinated tasks
US8234660B2 (en) Method and apparatus for a support platform
US20070061277A1 (en) Method, system, and storage medium for providing dynamic deployment of grid services over a computer network
US11068468B2 (en) Extensible validation framework
CN101483666B (en) Method and system for managing J2EE and .NET interoperating applications
WO2007068175A1 (en) A system and method for triggering the rule system
JP3947136B2 (en) Web service system, flow development support device, and flow development support program
US20080082982A1 (en) Method, system and computer program for translating resource relationship requirements for jobs into queries on a relational database
Li et al. Flows and views for scalable scientific process integration
Tsai et al. Semantic interoperability and its verification & validation in c2 systems
JP2004110620A (en) Dynamic integration method and system for web service
Chaves et al. Service lifecycle management infrastructure for smart items
KR102003941B1 (en) System for integrated management of service
Alhaj Automatic Derivation of Performance Models in the Context of Model-Driven SOA
US20060031498A1 (en) Service-process providing system and service-process providing method
Bushehrian et al. Cost‐aware execution of transactional web services using labelled transition systems

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