(57)【要約】【課題】  複数XML Webサービスの運用に必要なトランザクションの完全性を保証できる手段を提供する。【解決手段】  インターネット上で利用可能なXML Webサービスに関する情報を有する複数のエージェントサーバ４ａ，４ｂ，４ｃから情報の提供を受けるコーディネートサーバ３は、複数のサービス情報提供部４ａ，４ｂ，４ｃに対して各々のXML Webサービスを呼び出すとき、一連の処理をキャンセルするための戻しSQL又はパラメータを生成する手段と、いずれかのXML Webサービスが実行不可の場合に戻しSQL又はパラメータにより一連の処理をキャンセルする手段とを備えたことを特徴とする。【選択図】  図１
2006185125.tif 000002
【特許請求の範囲】
【請求項１】
インターネット上で利用可能な複数のXML Webサービスを利用者に提供するための情報処理方法において、
前記XML Webサービスを実行するとき、キャンセル時に発行する「戻し」のSQL又はパラメータを生成し保存するステップ、及び
「戻し」が発生した場合、記録された戻しのSQLやパラメータを用いて、トランザクション自体を取り消すステップ
を含むことを特徴とする情報処理方法。
【請求項２】
インターネット上で利用可能なXML Webサービスに関する情報を有する複数のサービス情報提供部から情報の提供を受ける情報処理装置であって、
前記複数のサービス情報提供部に対して各々のXML Webサービスを呼び出すとき、一連の処理をキャンセルするための戻しSQL又はパラメータを生成する手段と、
いずれかのXML Webサービスが実行不可の場合に前記戻しSQL又はパラメータにより前記一連の処理をキャンセルする手段と
を備えたことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数XML Webサービスの処理全体に対して、１トランザクションとして管理し、完全性を保証するXML Webサービスを実現するための情報処理方法及び装置に関する。
【背景技術】
【０００２】
企業等での業務用コンピュータシステムを構築するための手段として、嘗ては大型汎用機で全処理を行うホスト集中型システムが主流であったが、近年のパーソナルコンピュータ（ＰＣ）及びワークステーションの高性能・低価格化により、機能の一部をクライアントＰＣに持たせ、サーバと協調して稼働するクライアント・サーバ型システム（以下「C/Sシステム」という）が主流となってきた。
【０００３】
C/Sシステムは開放系技術を用いているため、各メーカ独自の仕様であったホスト集中型システムと比較して非常に少ない初期投資で構築できるという大きな利点を有し、ホスト集中型システムにとって代わると思われたが、クライアント側にもソフトウェアを導入しなければならない等の理由により、メンテナンス費用も含めた総費用（TCO）の点で、ホスト集中型とあまり変わらないことが判明してきた。
【０００４】
このC/SシステムのTCO増大という問題を解決するため、最近では、オペレーションシステム（ＯＳ）に標準で搭載されているインターネットブラウザを使用した３層モデルというものが提案された。これは、「ブラウザ」と称されるとおり閲覧する（ブラウズ）には適しているが、業務処理システムのように入力が主となるものには適しておらず、帳票印刷のような定型フォーマットに印刷する用途にも適していない。また、ネットワーク接続を前提としているため、インターネットに接続できない環境では使用できない等の理由により、企業情報システムとして、ホスト集中型システムやC/Sシステムを完全に置き換えるまでには至っていない。
【０００５】
今後は分散環境の発展に伴って、複数のサーバにまたがる分散処理に対し完全性を保証することが要求される。そのためには、通信エラーやサーバのダウン等により、いずれかの処理が実行できなかった場合に、代替処理ができるサーバを探して実行するか、或いは実行済みの処理（例えば、後述のXML Webサービス）に対してキャンセル処理を行うことで処理自体なかったことにするかという複雑な処理を行わなければならない。
【０００６】
ここで、XML Webサービスとは、例えば、下記特許文献１に示されるように、コンピュータシステムで提供されるサービスであって、インターネット上で扱うデータを記述するための新しいデータフォーマット言語であるXML（eXtensible Markup Language）を用いて記述されるものである。XMLによれば、記述された情報に対して「タグ」という独自の意味づけを定義することができるため、プログラムからの操作が容易であり、XML WebサービスのLOGや動的画面を描画するための記述言語としてXMLが使用される。
【０００７】
近年のインターネットの普及により24時間365日、場所を問わずに商品を購入できるようになったが、現状のWebサイトは、既存の商売の仕組みをそのままインターネット上に展開したものに過ぎない。すなわち、現在殆どのWebサイトは人間に向かって配信するように設計されている。このため、例えば、旅行や出張に必要な手配をインターネットを用いて行う際には、航空会社や鉄道などの交通機関のWebサイトにアクセスして航空券や乗車券を予約すること、及びホテルのサイトにアクセスして宿泊予約をするというのが通常である。ここで、ホテルが満室なら別ホテルを検索しているなど、顧客自身が旅行代理店の役割を果たしており、顧客の利便性の追及には至っていない。
【０００８】
上記のように、現在Webサイトの対象は基本的に人間であるが、今後、XML Webサービスを用いた「次世代Webサイト」を構築すると、Webサイト同士すなわちコンピュータ同士が自立的に結合して連係処理を行うことで、顧客に対するワンストップサービスの提供が可能になり、顧客の利便性がより良くなることが期待される。
【０００９】
一方、関連する複数の処理を一つの処理単位としてまとめる「トランザクション」という手法が知られている。これは、例えば金融機関のコンピュータシステムにおける入出金処理のように、一連の作業を全体として一つの処理として管理するために用いる。このトランザクションとして管理された処理は、「すべて成功」か「すべて失敗」のいずれかであることが保証されなければならない。例えば、資金移動システムをコンピュータで処理する場合、出金処理と入金処理は「どちらも成功」か「どちらも失敗」のどちらかであることが要求される。「出金に成功して入金に失敗」すると、出金された資金が宙に浮いてしまうからである。このような場合に、出金と入金をまとめて1つのトランザクションとして管理し、どちらか一方が失敗したら他方も失敗させ、どちらも成功したときに初めて全体を成功と評価するのが「トランザクション処理」である。
【００１０】
この考え方を応用し、関連する複数のXML Webサービスを一連の作業として全体として一つの処理としたものを、「複数XML Webサービストランザクション」と称する。
【００１１】
【特許文献１】特開２００４−２９５８９８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
従来の技術では、複数のXML Webサービスに跨って完全性を保証するトランザクションを実現する技術は確立されていない。このため、複数XML Webサービスを１トランザクションとして保証し得る手段は提供されていない。
【００１３】
本発明の目的は、従来技術の問題点を解決するシステムの構築において基礎となる、複数XML Webサービスの運用に必要なトランザクションの完全性を保証できる手段を提供することである。
【課題を解決するための手段】
【００１４】
本発明は、複数XML Webサービスの呼出し及び実行処理を一つのトランザクションとして捉え、そのトランザクションに対して完全性を保証する情報処理方法及び装置を提供する。
【００１５】
本発明の方法は、インターネット上で利用可能な複数XML Webサービスを利用者に提供するための情報処理方法であって、前記XML Webサービスを実行したとき、キャンセル時に発行する「戻し」のSQL又はパラメータを生成し保存するステップ、及び「戻し」が発生した場合、記録された戻しのSQLやパラメータを用いて、トランザクション自体を取り消すステップを含むことを特徴とする。
【００１６】
本発明の装置は、インターネット上で利用可能なXML Webサービスに関する情報を有する複数のサービス情報提供部から情報の提供を受ける情報処理装置であって、前記複数のサービス情報提供部に対して各々のXML Webサービスを呼び出すとき、一連の処理をキャンセルするための戻しSQL又はパラメータを生成する手段と、いずれかのXML Webサービスが実行付加の場合に前記戻しSQL又はパラメータにより前記一連の処理をキャンセルする手段とを備えたことを特徴とする。
【００１７】
上記のように、本発明では、いずれかのXML Webサービスをキャンセルすることが必要になった場合に備えて、XML Webサービスを実行したときに、キャンセル時に発行する「戻し」のSQL (Structured Query Language) やパラメータを自動生成して保存しておく。そして、「戻し」が発生した場合、記録された戻しのSQLやパラメータを使用することにより、トランザクション自体を取り消すことが可能となり、処理全体に対して完全性が保証される。
【００１８】
ここで、SQLは多くの場合、ＲＤＢ（リレーショナルデータベース）に格納されている予約情報や顧客情報などのデータを作成・変更・削除するための標準言語として用いられるものであり、上記のXML Webサービス提供側にSQLで記述された命令を受け付ける口を設けることにより、データベースに格納されたデータの自由な操作が可能になる。
【００１９】
また、SQLを使用すれば、自由にデータの操作が可能になる反面、悪意のあるユーザがSQL命令を発行すると、データの改ざんや消去などが行われてしまうので、SQLでの呼び出しを許さない場合も想定される。そこで、XML Webサービスを呼び出す際にSQLでなく、予約なら1、取消しなら0というようにパラメータで呼び出すことも可能とする。
【発明の効果】
【００２０】
本発明によれば、複数のXML Webサービスにおいて、全てのXML Webサービスの実行がＯＫとなった時点で呼び出し元に成功として返す一方、XML Webサービスがどれか一つでもエラーになった場合は、成功したXML Webサービスに対してキャンセル処理を行い、トランザクション自体をなかったことにする。このようなトランザクション環境を構築することにより、インターネットにおいて通信エラーのためXML Webサービスの実行が失敗するといった状況にも対処することができる。
【００２１】
上記のように複数のXML Webサービスを１トランザクションとして実現することで、顧客に対するワンストップサービスの実現が可能となり、顧客は様々な利益を享受できる。また、複数のXML Webサービスが仲介する新しいビジネス形態等、様々な利用が期待される。また、通信回線としての専用線やIP−VPN、広域LAN等と比較して安全性や品質が劣るインターネットを用いるコンピュータシステムにおいて、本発明により処理全体の完全性が保証される。
【００２２】
本発明によれば、各Webサイト同士が自立的に連係処理する仕組みを付与することで、顧客に対するワンストップサービスの実現が可能になる。その仕組みによれば、例えば、顧客が旅行代理店のWebサイトにアクセスして、いつ、どういう目的で、どこへ行きたい、というような漠然とした情報を与えると、顧客の趣味趣向に応じ、必要なWebサイトにアクセスし予約処理を行えるようになる。もし満席や満室の際でも別のWebサイトを検索し、代替案を出してくれるということが可能になり、ユーザにとって利便性は飛躍的に向上する。
【発明を実施するための最良の形態】
【００２３】
図１は、本発明の技術を適用した複数XML Webサービスを提供するシステムの構成例を示す図である。
【００２４】
このシステムは、本サービスを利用するユーザ側のクライアント端末（ＰＣ）１からネットワーク（例えばインターネット）２を介して接続され、複数XML Webサービスを仲介するサーバ（以下「コーディネートサーバ」という）３と、サービス提供者側の複数のサーバ（以下「エージェントサーバ」という）４ａ，４ｂ，４ｃ・・・とで構成されている。
【００２５】
クライアント端末１はクライアントエンジン、各サーバはサーバエンジンをそれぞれ備える。この２種のエンジンは、コンピュータプログラムから成り、クライアント端末又は各サーバを構成するコンピュータに格納される。
【００２６】
プログラムは、種々の要素の組み合わせにより、ユーザに対してサービスを提供するものである。そこで、このような要素を用意して、各要素の基本的な機能を予め規定しておき、それらの要素を機能させる仕組み（エンジン）を配置することで、現状のプログラムと同等の動作を実現することが考えられる。
【００２７】
上記エンジン自体を製作するためのプログラミング言語は何でもよく、設定を定義するXMLデータをエンジンの言語に対応させるためにXSL (eXtensible Stylesheet Language) を使用し、プログラミング言語の使用の違いを吸収する。これにより、プログラミング言語ごとにエンジンとXSLのみを作成すれば、あらゆる環境でこの仕組みが実現できる。
【００２８】
サーバエンジンは、図２に示すように、クライアント端末１からの処理要求に応じて、サーバ上のWebサービス処理を実行し、結果を回答する。これにより、クライアント端末以外で行う処理をコンピュータ同士が自立的にやり取りして分散処理を実現するXML Webサービスを動的に生成し、複数のXML Webサービスに対して整合性を保った処理環境（トランザクション環境）を提供できる。
【００２９】
クライアントエンジンは、従来のWebアプリケーションでは不得意な、表現力に乏しいGUI環境を大きく改善するものである。詳細には、次のような機能を有する。
【００３０】
通常のクライアント画面はコンパイルしたもの、つまり静的な画面というのが一般的であるが、上記クライアントエンジンでは、画面構成情報からイベント処理等の全てをXMLと呼ばれるタグ言語にて記述し、サーバ側で実行されるXML WebサービスによりXMLで記述された画面構成情報をXML Webサービスから受け取り、その内容を解釈して画面上に動的に描画する。このため、非常に柔軟で表現力に富んだ画面になる一方で、そのやり取りされるXMLの情報量は相当のものになる。
【００３１】
また、クライアントエンジンでは、画面構成情報からイベント処理など全てをXMLと呼ばれるタグ言語にて記述し、その定義情報から、画面表示の各要素（部品）の表示位置（X,Y座標）や基礎的な表示状態などを動的に再現する。更に、その動作方法及び手順についても、XMLを用いた定義情報から取得して動作させる。これにより、プログラミング作業そのものが変革される。すなわち、プログラマは、プログラムコードを記述するのではなく、プログラムの見栄えや振る舞いに思考の中心を移すことができ、新しいプログラム制作が実現することとなる。
【００３２】
クライアントエンジンは、図３に示すように、コーディネートサーバ３から複数のクライアント端末１ａ，１ｂ，１ｃ・・・にそれぞれダウンロードされる。
【００３３】
従って、図４に示すように、コーディネートサーバ３と各種クライアント端末１ａ，１ｂ，１ｃ・・・との間では次の動作が行われる。
（１）コーディネートサーバ３からクライアントエンジン送信（配布）
（２）クライアント端末１でクライアントアプリケーションの生成
（３）クライアント端末１からＷｅｂサービス（予約など）要求
（４）コーディネートサーバ３からエージェントサーバ４へＷｅｂサービス呼出し及び実行
（５）エージェントサーバ４からのＷｅｂサービス実行処理結果をクライアント側へ送信。
【００３４】
図１のシステムは、サーバエンジンにより、複数XML Webサービスに対して完全性を保証する仕組みを構築している。すなわち、複数Webサービストランザクションにより、顧客に対するワンストップサービスを実現させるため各WebサイトにXML Webサービスという自立的に動くエージェントサーバを配置し、そのエージェントにて空席状況の確認や予約処理などを行うこと、及び各エージェントを統括する仕組みが提供される。
【００３５】
例えば、１泊２日で地方から東京への出張の手配をする状況を考えてみると、交通手段の確保と宿泊先の確保が最低限必要であり、そのいずれか一つでも確保できなかった場合は、出張手配としては成立しない。これを人間の手を介さずにコンピュータで処理を完結させるためには、次のような仕組みが必要である。
(1) Webサイト（航空会社、ホテル等）で提供するXML Webサービスをコーディネートする機能。
(2) 顧客に対して完全な状態で予約を提供することは勿論、各Webサイトにて存在しない予約が入ることを避けるために、いずれかの予約が成立しなかった場合は予約処理自体をなかったことにすることで、取引全体に対して完全性を提供するための仕組み。
【００３６】
図１のシステムは、例えば、一般ユーザが旅行や出張に必要な手配をする場合、図５に示すように、ユーザ自身が携帯電話やパソコンなどの端末１１からインターネット１２を介して、航空会社や鉄道などの交通機関、宿泊したいホテルや旅館及び観光地の施設などのWebサイト１３ａ，１３ｂ，１３ｃにアクセスして各々予約をするといった手間を解消するため、図６に示すように、上記サーバエンジンを備えたコーディネートサーバ３が旅行代理店の役割を果たすシステムとして利用できる。図６のシステム構成では、各Webサイト１３ａ，１３ｂ，１３ｃを運営する事業者に、図１の各エージェントサーバ４ａ，４ｂ，４ｃが設置される。
【００３７】
旅行代理店としてのXML Webサービスは、複数の異なるXML Webサービスを仲介するものと考えられる。この場合、システムは、図７に示すように、ユーザ端末１１からの予約リクエストに応じて予約サービスを仲介するコーディネートサーバ３と、ホテル予約、レンタカー予約、航空券予約、その他の予約サービスを提供するエージェントサーバ４ａ，４ｂ，４ｃ，４ｄと、ユーザ端末１１とコーディネートサーバ３の間及びコーディネートサーバ３と各エージェントサーバ４ａ，４ｂ，４ｃ，４ｄの間をそれぞれ接続するインターネット（図示省略）とで構成される。コーディネートサーバ３は、変更内容をXMLで書き込むためのメモリ３１を備えている。
【００３８】
このシステムでは、コーディネートサーバ３は、ユーザ端末１１から予約リクエストを受けると、それに応じた予約サービスを実行するエージェントサーバ４ａ，４ｂ，４ｃ又は４ｄへ予約リクエストを送り、そのエージェントサーバから予約ＯＫの返答を受けると、返答をユーザ端末１１へ送る。ユーザ端末１１からの予約リクエストに対し、その要求に係る全ての予約処理が完了するまで予約リクエストを受けないようにサーバをロックすることとなる。しかしながら、旅行代理店としてのXML Webサービスでは、従来のトランザクション（コンピュータでの処理）のように全ての処理が完了するまでサーバのコンピュータ資源をロックすることは困難である。
【００３９】
そこで、いずれかの予約処理の結果が“NG”の場合（例えば、ユーザの希望する交通機関が満席である場合）は、代替策を検索するとしても、以下のキャンセル処理を行うことで処理自体をなかったことにすれば、トランザクションの完全性を保証できる。すなわち、図８に示すように、コーディネートサーバ３は、ユーザ端末１１からの予約リクエストにより旅行代理店XML Webサービスを起動し、予約リクエストをエージェントサーバ４ａ，４ｂ，４ｃ，４ｄに送ることで、予約に必要なXML Webサービスを呼び出す。その際、キャンセル処理のための戻しロジック（「戻し」のSQL）を自動生成し、LOGとしてメモリ３１に保管しておく。そして、各エージェントサーバでの実行結果を集計、判定し、全ての予約処理がＯＫ（成功）ならば、トランザクションは終了し、ＯＫの返答をユーザ端末１１へ送る。他方、いずれかの処理がＮＧ（不成功）ならば、XML Webサービス・キャンセル処理を行い、成功したXML Webサービスに対して実行しなかったことにする。そして、予約不成功の返答をユーザ端末１１に送る。
【００４０】
図９は、コーディネートサーバとエージェントサーバによる複数XML Webサービスの処理手順を示すフローチャートである。
【００４１】
初めにコーディネートサーバは、予約リクエストの有無をチェックし（ＳＴ１）、予約リクエストがあるとき、XML Webサービスを呼び出し、その予約リクエストに応じたサービスの種類（範囲）を確定する（ＳＴ２）。同時に、「戻し」のSQLメッセージ又はパラメータを自動生成して、メモリ３１に保存する（ＳＴ３）。
【００４２】
例えば、SQLメッセージの場合は、insert文ならdelete文を、update文なら元のデータを戻すため、現在のデータをselectで取得し、「戻し」のためのupdate文を自動生成してLOGとして格納する。「戻し」のSQLについては、後で具体例を説明する。
【００４３】
他方、パラメータ受け渡しの場合は、実行したXML Webサービスからキャンセル処理のための「戻し」パラメータを取得してLOGとして格納する。
【００４４】
次に、上記で確定した範囲のXML Webサービスを呼び出す（ＳＴ４）。すなわち、当該XML Webサービスを実行するエージェントサーバに予約リクエストを送信する。
【００４５】
各エージェントサーバでは、受信した予約リクエストに応じて、所定のXML Webサービス（予約）処理を実行し（ＳＴ１１）、その処理結果をコーディネートサーバに送信する（ＳＴ１２）。
【００４６】
コーディネートサーバでは、受信したサービス処理結果をメモリに格納し（ＳＴ５）、処理結果が全てＯＫか否かを判定する（ＳＴ６）。その結果“Ｙｅｓ”であれば、予約リクエストを送ったユーザ端末に「予約成功」の結果通知を送信して（ＳＴ７）、サービス終了となる。
【００４７】
一方、ＳＴ６の判定結果が“Ｎｏ”、すなわち複数XML WebサービスのどれかがＮＧの場合は、代替案の有無すなわち他のサービスの予約が可能かどうかをチェックし（ＳＴ８）、“Ｙｅｓ”であれば、代替案のXML Webサービスを呼び出す（ＳＴ９）。すなわち、そのXML Webサービスを実行するエージェントサーバに予約リクエストを送信する。
【００４８】
当該エージェントサーバでは、受信した予約リクエストに応じて、その代替案サービス（予約）処理を実行し（ＳＴ１３）、その処理結果をコーディネートサーバに送信する（ＳＴ１４）。
【００４９】
コーディネートサーバでは、受信した代替案サービス処理結果をメモリに格納し（ＳＴ５）、以下の手順を繰り返す。上記ＳＴ８の判定で“Ｎｏ”、すなわち代替案がない場合は、メモリ３１に格納した「戻し」のSQLメッセージ又はパラメータを使用して、成功したXML Webサービスに対して実行しなかったことにするキャンセル呼出し指令を各エージェントサーバに送る（ＳＴ１０）。
【００５０】
各エージェントサーバでは、キャンセル呼出し指令に応じて、XML Webサービス（キャンセル）処理を実行し（ＳＴ１５）、その処理結果をコーディネートサーバに送信する（ＳＴ１６）。
【００５１】
コーディネートサーバでは、予約リクエストを送ったユーザ端末に「予約不成功」の結果通知を送信して（ＳＴ７）、サービス終了となる。
【００５２】
ここで、上記のようにサーバで自動生成されるSQLについて説明する。
【００５３】
(1) レコードを追加するSQL（INSERT）：
例えば、“INSERT 項目名Ａ（ユニークキー），項目名Ｂ，項目名Ｃ， 項目名Ｄ FROM TABLE名”ならば、戻しのSQLとして、
DELETE FROM TABLE名WHERE 項目名A ＝ '削除キー '
というSQLを自動生成する。キャンセル処理の際には、このSQLを実行する。
【００５４】
(2) レコードを変更するSQL（UPDATE）：
例えば、“UPDATE TABLE名 SET 項目名B=変更値 , 項目名C=変更値 , 項目名D=変更値 WHERE 項目名A=変更キー”のように、Ｂ，Ｃ，Ｄを変更するSQLを発行しようとする際には、
SELECT * FROM TABLE名WHERE 項目名 =変更キー
というSQLを発行して、事前に変更前の項目情報を取得する。そして、
“UPDATE TABLE名 SET 項目名B=変更値 , 項目名C=変更値 , 項目名D=変更値 WHERE 項目名A=変更キー”
というSQLを自動生成する。「戻し」が発生した場合は、このSQLを実行する。
【００５５】
一例として、新規にホテルを予約したい場合を考える。その場合のSQLは、
“INSERT 予約番号，名前，宿泊日，泊数，部屋タイプ， FROM 予約テーブル”となる。
【００５６】
この予約SQLの発行と同時に、予約自体を取り消す戻しSQLとして、
“DELETE FROM予約テーブルWHERE予約番号＝予約番号”
を自動生成してLOGに格納する。
【００５７】
その後、ホテルでの予約内容の変更が発生した場合は、
“SELECT * FROM予約テーブルWHERE予約番号＝予約番号”
というSQLを発行して、事前に変更前の項目情報を取得しておく。そして、
“UPDATE 予約テーブル SET 名前=名前(変更前) , 宿泊日=宿泊日(変更前) , 泊数=泊数(変更前) , 部屋タイプ=部屋タイプ(変更前) WHERE 予約番号=予約番号（ユニークキー）” 
というSQLを発行して、LOGに格納する。
【００５８】
「戻し」が発生した場合は、上記SQLを実行することで、更新前のデータに戻すことが可能になる。
【００５９】
図１０は、WebサービストランザクションLOGの例を示す。LOG自体はXMLで記述し、プログラムにて扱いやすい形態とする。勿論、XMLでないデータフォーマットでも記述可能である。
【００６０】
図のように、取引単位をトランザクションとし、「トランザクション名」として唯一固有の数字を割り振る（２行目）。そのトランザクションにて呼び出したXML Webサービス名を記述し（３行目）、自動生成したSQLもしくはパラメータと実行結果を記述する（４〜５行目）。他にも呼び出したXML Webサービスがあれば、同様に記述する（６行目以降）。
【００６１】
サーバエンジンは、複数のXML Webサービスの実行状況をLOGに随時記録しながら、キャンセル時にはLOGを参照しながらキャンセル処理を発行する。これにより、複数XML Webサービスの実行に関して完全性を保障するトランザクション処理を実現している。
【００６２】
上記のシステムによれば、図１１に示すように、旅行代理店２１にコーディネートサーバを設置し、予約を受け付けるホテル２２、鉄道会社２３、航空会社２４に各エージェントサーバをそれぞれ設置することにより、旅行代理店からホテルや各交通機関の予約をとるサービスが提供される。それは、図９の処理手順に従って、例えば次のように行われる。
(1)旅行代理店２１のサーバからホテル２２のサーバに予約リクエストを送る。
(2)予約が成功すると、ホテル２２から旅行代理店２１にＯＫの返答を送る。
(3)旅行代理店２１のサーバから鉄道会社２３のサーバに指定券の予約リクエストを送る。
(4)予約が成功すると、鉄道会社２３から旅行代理店２１にＯＫの返答を送る。
(5)旅行代理店２１のサーバから航空会社２４のサーバに座席の予約リクエストを送る。
(6)座席が取れない場合、航空会社２４から旅行代理店２１にＮＧの返答を送る。
(7)この場合、補償トランザクションとして、旅行代理店２１のサーバからホテル２２のサーバにキャンセルのリクエストを送る。
(8)同時に、旅行代理店２１のサーバから鉄道会社２３のサーバにキャンセルのリクエストを送る。
【００６３】
上記のようにユーザからの予約リクエストに応じて、予約サービスを実行し、希望に適った予約がなかった場合は代替案を提示する処理によれば、ユーザ端末の表示画面には、予約リクエスト送信時及び処理結果回答時に、次のような表示がなされる。
【００６４】
例えば、ユーザが金沢から東京・赤坂に出張し１泊したい場合は、図１２に示すように、ユーザ端末から出発日、到着時間、帰着日、出発時間、出発地、目的地、交通手段、宿泊希望地、費用の各希望条件を入力すると、予約リクエストの内容が、図１２の左側の画面に示すように表示される。この内容で、予約リクエストがコーディネートサーバに送信され、希望の予約サービスを提供するエージェントサーバでの処理により、条件符合（予約ＯＫ）の場合は、予約処理の結果が、図１２の右上の画面に示すように表示され、条件不符合（例えば、帰りの航空便予約がＮＧ）の場合は、ＯＫとなった予約と共にＮＧとなった予約の代替案が、図１２の右下の画面に示すように表示される。これにより、ユーザは代替案を直ちに選択できる。
【００６５】
最後に、図１のシステムでは、ネットワークを介して通信するクライアント端末やXML Webサービスを提供するサーバの間の通信を高速化するための手段（「高速通信コンポーネント」と称する）を、クライアント端末及び各サーバに設けている。高速通信コンポーネントは、XML Webサービス実行のために必要なファイルやデータを圧縮、分割して送信する機能と、他から受信した分割ファイル等を結合、解凍してXML Webサービス処理を実行する機能とを備えたソフトウェアから成る。
【００６６】
各サーバ又はクライアント端末は、この高速通信コンポーネントにより、図１３に示すように、(1) XML Webサービス呼出し手順を圧縮し、(2) 分割し、(3) 分割した個々の情報を同時にネットワークを介して送信する。また、他のサーバからネットワークを介して、(4) 分割された情報を受信すると、(5) それらを結合し、(6) 解凍して、XML Webサービス処理を実行する。
【００６７】
上記高速通信コンポーネントによれば、多数のリスエストを効率よく処理することができ、XML Webサービスのレベル向上に大きく寄与する。
【００６８】
以上、本発明の実施の形態として、旅行代理店としてのサービスを行うシステムについて説明したが、本発明はこれに限らず、複数XML Webサービスを提供するシステムに適用できる。
【図面の簡単な説明】
【００６９】
【図１】本発明の技術を適用した複数XML Webサービス提供システムの構成図。
【図２】コーディネートサーバから各クライアント端末にクライアントエンジンがダウンロードされることを示す図。
【図３】クライアント端末からの処理要求に応じてWebサービス処理を実行し、結果を回答するサーバエンジンを示す図。
【図４】ネットワークを介して通信する各クライアント端末とコーディネートサーバとを示す図。
【図５】ユーザ端末からインターネットを介して各Webサイトにアクセスし各々予約をする場合の説明図。
【図６】サーバエンジンを備えたコーディネートサーバが旅行代理店の役割を果たすシステムの構成図。
【図７】旅行代理店として複数の異なるXML Webサービスを仲介するシステムの構成図。
【図８】予約処理の結果によりキャンセル処理を行うシステムの構成図。
【図９】コーディネートサーバとエージェントサーバによる複数XML Webサービスの処理手順を示すフローチャート。
【図１０】WebサービストランザクションLOGの例を示す図。
【図１１】旅行代理店からホテルや各交通機関への予約サービスを行うシステムの構成図。
【図１２】予約サービス処理によりユーザ端末の画面に表示される内容の例を示す図。
【図１３】高速通信コンポーネントによる信号処理手順を示す図。
【符号の説明】
【００７０】
１…クライアント端末、２…ネットワーク、３…コーディネートサーバ、４ａ，４ｂ，４ｃ…エージェントサーバ、１１…ユーザ端末、１２…インターネット、１３ａ，１３ｂ，１３ｃ…Webサイト、２１…旅行代理店、２２…ホテル、２３…鉄道会社、２４…航空会社。
【図１】
2006185125.tif 000003
【図２】
2006185125.tif 000004
【図３】
2006185125.tif 000005
【図４】
2006185125.tif 000006
【図５】
2006185125.tif 000007
【図６】
2006185125.tif 000008
【図７】
2006185125.tif 000009
【図８】
2006185125.tif 000010
【図９】
2006185125.tif 000011
【図１０】
2006185125.tif 000012
【図１１】
2006185125.tif 000013
【図１２】
2006185125.tif 000014
【図１３】
2006185125.tif 000015