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 PDFInfo
- 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
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へ通知する。
【選択図】 図1A 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
[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
[0018]
The flow
[0019]
The
[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
As shown in FIG. 2, the flow
The flow
[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
[0024]
The support processing unit 13 further includes a
[0025]
The
[0026]
The extraction unit 13b lists plans having the same plan name as the plan name output from the
[0027]
The
[0028]
The
[0029]
The
[0030]
The notification unit 13f creates result notification information including the execution result information output by the
[0031]
The update unit 13g stores in the
[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
[0033]
FIG. 3 is a diagram showing the flow of information between the units of the Web service system, omitting the
As described above, the
[0034]
Now, the
[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 (
[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
[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
[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
[0054]
When the flow
[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
[0057]
In step ST2, the updating unit 13g generates, for the data received by the
[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
[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
[0060]
In step ST5, the
[0061]
In step ST6, the
[0062]
In step ST7, the
[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
[0064]
Upon receiving the execution request, the
[0065]
In the support processing unit 13, after the
[0066]
In step ST9, the updating unit 13g substitutes the execution result
[0067]
In step ST10, the updating unit 13g deletes each predicate included in the preconditions unified in step ST6 from the
[0068]
Finally, in step ST11, the notifying unit 13f uses the
[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
[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
[0071]
Next, the operation of the flow
First, in the
[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
[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
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
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
[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
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
[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
[0077]
The
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
[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
BEL (NAGANO, AVAILABLE (AIR1-079)) ∧
BEL (NAGANO, ID (AIR1, 1234567)
Subsequently, the updating unit 13g deletes the next data from the
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
BEL (NAGANO, AVAILABLE (AIR1-079))
BEL (NAGANO, ID (AIR1, 1234567)
Therefore, the
Finally, the notification unit 13f sends the
[0080]
As described above, according to the present embodiment, each time the flow
[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
[0083]
This embodiment can be implemented in the following various modifications.
The plan list 11 and the
[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
[0085]
When updating the
[0086]
The number of the
[0087]
The processing content indicated by each
[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
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
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
9 is a diagram showing an example of updating the
[Explanation of symbols]
DESCRIPTION OF
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.
前記プラン名が示された呼出し要求をフロー実行装置から入力する手段と、
前記呼出し要求に示される前記プラン名を含む前記プラン情報を前記プラン記憶装置から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.
前記プラン名が示された呼出し要求を前記フロー実行装置から入力し、
前記呼出し要求に示される前記プラン名を含む前記プラン情報を前記プラン記憶装置から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.
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)
| 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 |
-
2003
- 2003-05-30 JP JP2003155927A patent/JP3947136B2/en not_active Expired - Fee Related
Cited By (10)
| 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 |