(57)【要約】【課題】  クライアントに提供するサービスの追加や変更に応じて、クライアントがサービスを利用する時の動作を容易且つ適切に定義可能なサーバ、サービス提供プログラム及び記録媒体を提供することを目的とする。【解決手段】  所定のサービスを利用するクライアント１００にネットワークを介して接続され、クライアント１００にサービスを提供するサーバ２００であって、サービス利用時のクライアント１００の動作を定義したシナリオをシナリオ取得要求に応じてクライアント１００に提供するシナリオ管理機能を備えたことにより上記課題を解決する。【選択図】  図３
2006072911.tif 000002
【特許請求の範囲】
【請求項１】
所定のサービスを利用するクライアントにネットワークを介して接続され、前記クライアントにサービスを提供するサーバであって、
前記サービス利用時のクライアントの動作を定義したシナリオをシナリオ取得要求に応じて前記クライアントに提供するシナリオ管理機能を備えたサーバ。
【請求項２】
前記クライアントからのサービス利用要求に応じて前記サービスをクライアントに提供するサービス実行機能を更に備えた請求項１記載のサーバ。
【請求項３】
前記シナリオ管理機能は、前記シナリオが変更されたとき、前記サービス実行機能にシナリオの変更を通知しておき、
前記サービス実行機能は、前記シナリオの変更を通知されたあとで前記クライアントからのサービス利用要求を受けると、前記変更されたシナリオを前記シナリオ管理機能から取得して前記サービス利用要求に応じたサービスと共に前記クライアントに提供することを特徴とする請求項２記載のサーバ。
【請求項４】
前記シナリオ管理機能は、前記サービス利用時のクライアントの動作を、状態，利用するメソッド及び状態遷移条件で表したシナリオを前記クライアントに提供することを特徴とする請求項１記載のサーバ。
【請求項５】
前記シナリオ管理機能は、状態定義部分，メソッド定義部分及び状態遷移条件定義部分から成るシナリオを、前記クライアントに提供することを特徴とする請求項１記載のサーバ。
【請求項６】
前記シナリオ管理機能は、前記サービス利用時のクライアントの動作を基本系列，代替系列及び例外系列で定義したシナリオを前記クライアントに提供することを特徴とする請求項１記載のサーバ。
【請求項７】
前記シナリオ管理機能は、前記クライアントに前記シナリオを提供する他のサーバに予め前記シナリオを登録しておくことを特徴とする請求項１記載のサーバ。
【請求項８】
前記シナリオ管理機能は、前記シナリオが変更されたとき、前記サービス実行機能にシナリオの変更を通知しておき、
前記サービス実行機能は、前記シナリオの変更を通知されたあとで前記クライアントからのサービス利用要求を受けると、前記シナリオが変更された旨および前記サービス利用要求に応じたサービスを前記クライアントに提供し、
前記シナリオ管理機能は、前記変更されたシナリオを前記クライアントに提供することを特徴とする請求項２記載のサーバ。
【請求項９】
前記シナリオ管理機能は、ＸＭＬで記述されているシナリオを前記クライアントに提供することを特徴とする請求項１乃至８何れか一項記載のサーバ。
【請求項１０】
前記シナリオ管理機能は、Ｗｅｂサービス利用時のクライアントの動作を定義したシナリオをシナリオ取得要求に応じて前記クライアントに提供することを特徴とする請求項１乃至９何れか一項記載のサーバ。
【請求項１１】
所定のサービスを利用するクライアントにネットワークを介して接続され、前記クライアントにサービスを提供するサーバに、
前記サービス利用時のクライアントの動作を定義したシナリオをシナリオ取得要求に応じて前記クライアントに提供するシナリオ管理機能
を実行させるためのサービス提供プログラム。
【請求項１２】
前記クライアントからのサービス利用要求に応じて前記サービスをクライアントに提供するサービス実行機能を更に備えた請求項１１記載のサービス提供プログラム。
【請求項１３】
前記シナリオ管理機能は、前記シナリオが変更されたとき、前記サービス実行機能にシナリオの変更を通知しておき、
前記サービス実行機能は、前記シナリオの変更を通知されたあとで前記クライアントからのサービス利用要求を受けると、前記変更されたシナリオを前記シナリオ管理機能から取得して前記サービス利用要求に応じたサービスと共に前記クライアントに提供することを特徴とする請求項１２記載のサービス提供プログラム。
【請求項１４】
前記シナリオ管理機能は、前記サービス利用時のクライアントの動作を、状態，利用するメソッド及び状態遷移条件で表したシナリオを前記クライアントに提供することを特徴とする請求項１１記載のサービス提供プログラム。
【請求項１５】
前記シナリオ管理機能は、状態定義部分，メソッド定義部分及び状態遷移条件定義部分から成るシナリオを前記クライアントに提供することを特徴とする請求項１１記載のサービス提供プログラム。
【請求項１６】
前記シナリオ管理機能は、前記サービス利用時のクライアントの動作を基本系列，代替系列及び例外系列で定義したシナリオを前記クライアントに提供することを特徴とする請求項１１記載のサービス提供プログラム。
【請求項１７】
前記シナリオ管理機能は、前記クライアントに前記シナリオを提供する他のサーバに予め前記シナリオを登録しておくことを特徴とする請求項１１記載のサービス提供プログラム。
【請求項１８】
前記シナリオ管理機能は、前記シナリオが変更されたとき、前記サービス実行機能にシナリオの変更を通知しておき、
前記サービス実行機能は、前記シナリオの変更を通知されたあとで前記クライアントからのサービス利用要求を受けると、前記シナリオが変更された旨および前記サービス利用要求に応じたサービスを前記クライアントに提供し、
前記シナリオ管理機能は、前記変更されたシナリオを前記クライアントに提供することを特徴とする請求項１２記載のサービス提供プログラム。
【請求項１９】
前記シナリオ管理機能は、ＸＭＬで記述されているシナリオを前記クライアントに提供することを特徴とする請求項１１乃至１８何れか一項記載のサービス提供プログラム。
【請求項２０】
前記シナリオ管理機能は、Ｗｅｂサービス利用時のクライアントの動作を定義したシナリオをシナリオ取得要求に応じて前記クライアントに提供することを特徴とする請求項１１乃至１９何れか一項記載のサービス提供プログラム。
【請求項２１】
請求項１１乃至２０何れか一項記載のサービス提供プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ、サービス提供プログラム及び記録媒体に係り、特にクライアントが利用するサービスを提供するサーバ、サービス提供プログラム、サービス提供プログラムを記録した記録媒体に関する。
【背景技術】
【０００２】
近年、認証サービスや機器管理サービスといった各種サービスをＷｅｂサービスとしてクライアントに提供するサーバ（以下、Ｗｅｂサービスサーバという）が注目されるようになった。Ｗｅｂサービスサーバは、例えばＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）に代表されるＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）ベースのプロトコルでＷｅｂサービスの呼び出しやデータの送受信などを行う。
【０００３】
また、Ｗｅｂサービスを利用するクライアント（以下、Ｗｅｂサービスクライアントという）は、Ｗｅｂサービスが持つメソッドやパラメータの情報をＷＳＤＬ（Ｗｅｂ  Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）によって取得してから、ＳＯＡＰを利用してＷｅｂサービスの呼び出しを行っていた。
【０００４】
ＷＳＤＬとは、Ｗｅｂサービスを利用する際に必要となる情報であって、Ｗｅｂサービスが持つメソッドやパラメータの情報を取得する為のデータ記述方式を定めている。すなわち、Ｗｅｂサービスクライアントは、ＷｅｂサービスのＩ／Ｆ仕様をＷＳＤＬによって取得していた（例えば、特許文献１参照）。
【０００５】
図１は、Ｗｅｂサービスシステムの一例の構成図である。図１のＷｅｂサービスシステムは、Ｗｅｂサービスクライアント１００，１つ以上のＷｅｂサービスサーバ２００及びサービスディスカバリ３００が、ネットワークを介して接続された構成である。なお、Ｗｅｂサービスシステムはサービスディスカバリ３００の無い構成も可能である。
【０００６】
Ｗｅｂサービスを利用するＷｅｂサービスクライアント１００は、アプリケーション１１０，ネットワークＩ／Ｆ１２０を含む。アプリケーション１１０は、Ｕ／Ｉ（ユーザインターフェース）１１１，動作定義部１１２，ＷＳＤＬ処理部１１３を含む。
【０００７】
また、Ｗｅｂサービスを提供するＷｅｂサービスサーバ２００は、ネットワークＩ／Ｆ２１０，Ｗｅｂサービス実行部２２０を含む。また、Ｗｅｂサービスを管理するサービスディスカバリ３００はサービス管理部３１０，ＷＳＤＬが格納されている格納部３２０を含む。
【０００８】
図２は、Ｗｅｂサービスシステムの処理を表したシーケンス図である。Ｗｅｂサービスを提供するＷｅｂサービスサーバ２００は、ステップＳ１〜Ｓ２において、ＷｅｂサービスのＩ／Ｆ仕様を記述したＷＳＤＬをサービスディスカバリ３００に登録する。また、Ｗｅｂサービスを利用するＷｅｂサービスクライアント１００は、ステップＳ３〜Ｓ４において、Ｗｅｂサービスサーバ２００が提供するＷｅｂサービスをサービスディスカバリ３００から検索する。
【０００９】
Ｗｅｂサービスクライアント１００を操作するユーザは、検索したＷｅｂサービスの中から利用したいＷｅｂサービスを決定する。Ｗｅｂサービスクライアント１００は、ステップＳ５〜Ｓ６において、ユーザにより選択されたＷｅｂサービスに関する情報（例えばＷｅｂサービス名，Ｗｅｂサービスサーバ２００のＩＰアドレス，ＷＳＤＬ等）をサービスディスカバリ３００から取得する。
【００１０】
以上、Ｗｅｂサービスクライアント１００は、ユーザにより選択されたＷｅｂサービスのＷＳＤＬを、図２に表したシーケンス図のように取得する。したがって、Ｗｅｂサービスクライアント１００は、Ｗｅｂサービスがどのようなコマンドを持っており、そのコマンドを実行する為にどのようなパラメータをどのような形式で与えればよいかを知ることができた。
【特許文献１】特開２００４−３０３６０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、ＷＳＤＬはＷｅｂサービスのＩ／Ｆ仕様を定義しているが、そのＷｅｂサービス利用時のＷｅｂサービスクライアント１００の動作を定義するものではない。したがってＷｅｂサービスクライアント１００は、ＷＳＤＬを取得しても、Ｗｅｂサービスの提供方法が変わったとき、新しい機能が追加されたとき、新しいＷｅｂサービスが追加となったときに対応できないという問題があった。
【００１２】
例えばＷｅｂサービス利用時のＷｅｂサービスクライアント１００の動作は、動作定義部１１２に予めコーディングされている。したがって、Ｗｅｂサービスクライアント１００は、Ｗｅｂサービスの提供方法が変わったとき、新しい機能が追加されたとき、新しいＷｅｂサービスが追加となったときは、動作定義部１１２を修正しなければならないという問題があった。
【００１３】
なお、特許文献１は、取得したＷＳＤＬに基づいて代理サーバ上に専用ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を作成し、その専用ＡＰＩ経由でＷｅｂサービスクライアントがＷｅｂサービスを利用するものであって、そのＷｅｂサービス利用時のＷｅｂサービスクライアントの動作を定義するものではない。
【００１４】
本発明は、上記の点に鑑みなされたもので、クライアントに提供するサービスの追加や変更に応じて、クライアントがサービスを利用する時の動作を容易且つ適切に定義可能なサーバ、サービス提供プログラム及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記課題を解決するため、本発明は、所定のサービスを利用するクライアントにネットワークを介して接続され、前記クライアントにサービスを提供するサーバであって、前記サービス利用時のクライアントの動作を定義したシナリオをシナリオ取得要求に応じて前記クライアントに提供するシナリオ管理機能を備えたことを特徴とする。なお、本発明は上記の各機能をサーバに実行させるためのサービス提供プログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体としてもよい。
【００１６】
本発明では、サービス利用時のクライアントの動作を定義したシナリオをクライアントに提供し、そのシナリオに応じて、クライアントがサービスを利用するときの処理手順を決定できる。この結果、サーバはシナリオをクライアントに提供することで、サービスの追加や変更に、クライアントのサービス利用時の動作を対応させることができる。
【発明の効果】
【００１７】
本発明によれば、クライアントに提供するサービスの追加や変更に応じて、クライアントがサービスを利用する時の動作を容易且つ適切に定義可能なサーバ、サービス提供プログラム及び記録媒体を提供可能である。
【発明を実施するための最良の形態】
【００１８】
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。なお、以下の実施例ではサーバからクライアントに提供されるサービスの一例としてＷｅｂサービスを説明するが、他のサービスであってもよい。図３は、本発明によるＷｅｂサービスシステムの一例の構成図である。
【００１９】
図３のＷｅｂサービスシステムは、Ｗｅｂサービスクライアント１００，１つ以上のＷｅｂサービスサーバ２００，サービスディスカバリ３００およびシナリオ作成装置４００が、インターネットやＬＡＮ（ローカルエリアネットワーク）等のネットワークを介して接続された構成である。なお、Ｗｅｂサービスシステムはサービスディスカバリ３００の無い構成も可能である。
【００２０】
Ｗｅｂサービスを利用するＷｅｂサービスクライアント１００は、アプリケーション１１０，ネットワークＩ／Ｆ１２０を含む。アプリケーション１１０は、Ｕ／Ｉ１１１，ＷＳＤＬ処理部１１３，シナリオ処理部１１４を含む。アプリケーション１１０は、ネットワークＩ／Ｆ１２０を介してネットワークに接続する。
【００２１】
また、Ｗｅｂサービスを提供するＷｅｂサービスサーバ２００は、ネットワークＩ／Ｆ２１０，Ｗｅｂサービス実行部２２０，シナリオ管理部２３０を含む。Ｗｅｂサービス実行部２２０及びシナリオ管理部２３０はネットワークＩ／Ｆ２１０を介してネットワークに接続する。Ｗｅｂサービスを管理するサービスディスカバリ３００は、サービス管理部３１０，ＷＳＤＬが格納されている格納部３２０を含む。
【００２２】
また、シナリオを作成するシナリオ作成装置４００はアプリケーション４１０，ネットワークＩ／Ｆ４２０を含む。アプリケーション４１０は、Ｕ／Ｉ４１１，エディタ制御部４１２，データ解析部４１３，ＸＭＬ生成部４１４，シナリオが格納されている格納部４１５を含む。アプリケーション４１０はネットワークＩ／Ｆ４２０を介してネットワークに接続する。なお、シナリオ作成装置４００の作成するシナリオは、Ｗｅｂサービス利用時のＷｅｂサービスクライアント１００の動作を定義するものである。
【００２３】
図４は、Ｗｅｂサービスサーバを実現するコンピュータの一実施例のハードウェア構成図である。図４のコンピュータは、それぞれバスＢで相互に接続されている入力装置１００１と，表示装置１００２と，ドライブ装置１００３と，補助記憶装置１００５と，メモリ装置１００６と，演算処理装置１００７と，インターフェース装置１００８とを有するように構成される。なお、図４のコンピュータを構成する各種デバイスは、１つの筐体に収容してもよいし、複数の筐体に分散して収容してもよい。
【００２４】
入力装置１００１はキーボード，マウスなどで構成され、様々な操作指示を入力するために用いられる。表示装置１００２はディスプレイなどで構成され、操作に必要な各種ウインドウやデータ等を表示する。インターフェース装置１００８は、ネットワークに接続する為のインターフェースであり、モデム，ルータ等で構成される。
【００２５】
Ｗｅｂサービスサーバを制御するサービス提供プログラムは、ＣＤ−ＲＯＭ等の記録媒体１００４によって提供される。サービス提供プログラムを記録した記録媒体１００４はドライブ装置１００３にセットされ、サービス提供プログラムがドライブ装置１００３を介して補助記憶装置１００５にインストールされる。
【００２６】
サービス提供プログラムを記録した記録媒体１００４は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク（ＭＯ）等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、又はＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることが可能である。
【００２７】
また、サービス提供プログラムはインターフェース装置１００８を介して接続される他のコンピュータの記録媒体等に記録されているものも含まれる。他のコンピュータの記録媒体等に記録されているサービス提供プログラムは、インターフェース装置１００８を介してダウンロードされて補助記憶装置１００５にインストールされる。補助記憶装置１００５は、インストールされたサービス提供プログラムと、そのサービス提供プログラムの処理に必要な各種ファイル等を格納する。メモリ装置１００６は、起動時に補助記憶装置１００５からサービス提供プログラムを読み出して格納する。
【００２８】
演算処理装置１００７は、メモリ装置１００６に格納されたサービス提供プログラムに従って、Ｗｅｂサービスサーバ２００のＷｅｂサービス実行部２２０及びシナリオ管理部２３０を各種プロセスで実現する。
【実施例１】
【００２９】
以下、本発明のＷｅｂサービスサーバの処理を中心に、Ｗｅｂサービスシステムについて詳細に説明していく。まず、Ｗｅｂサービス利用時のＷｅｂサービスクライアント１００の動作が定義されたシナリオについて説明する。
（シナリオ作成）
Ｗｅｂサービス利用時のＷｅｂサービスクライアント１００の動作が定義されたシナリオは、シナリオ作成装置４００により作成される。例えばシナリオ作成装置４００のアプリケーション４１０は、状態遷移図を作成するためのエディタ機能を有している。ユーザは、アプリケーション４１０のエディタ機能を利用して状態遷移図を作成する。
【００３０】
ユーザにより作成された状態遷移図は、Ｗｅｂサービス利用時のＷｅｂサービスクライアント１００の動作を、状態、利用するメソッド及び状態遷移条件で表している。データ解析部４１３はユーザにより作成された状態遷移図を、状態、利用するメソッド及び状態遷移条件の観点で解析する。そして、ＸＭＬ生成部４１４はデータ解析部４１３の解析結果に基づき、シナリオを作成する。
【００３１】
図５は、作成されたシナリオを自然言語で表した一例のイメージ図である。なお、図５のシナリオは理解の容易の為に自然言語で記述しているが、本来、ＸＭＬで記述されている。図５のシナリオは、Ｗｅｂサービス利用時のＷｅｂサービスクライアント１００の動作を、基本系列，代替系列および例外系列で定義している。なお、図５は図６の状態遷移図から作成されたシナリオの一例である。
【００３２】
また、図７〜図１１はＸＭＬで記述されたシナリオの一例の構成図である。図７〜図１１のシナリオは、図６の状態遷移図から作成されたシナリオの一例である。図７〜図１１のシナリオは、状態定義部分，メソッド定義部分及び状態遷移条件定義部分から構成されている。
【００３３】
図７及び図８は、シナリオの状態定義部分を表している。図９及び図１０は、シナリオのメソッド定義部分を表している。図１１は、シナリオの状態遷移条件定義部分を表している。
【００３４】
なお、図７〜図１１のシナリオに含まれるタグ＜ｓｔａｔｅ＞，＜ｍｅｔｈｏｄ＞および＜ａｒｃ＞は状態，メソッド，状態遷移条件を表している。したがって、シナリオ作成装置４００はユーザの作成した状態遷移図から図７〜図１１のようなＸＭＬで記述されたシナリオを作成可能である。
【００３５】
シナリオ作成装置４００により作成されたシナリオは、ＸＭＬ生成部４１４から格納部４１５に格納される。そして、格納部４１５に格納されたシナリオはネットワークＩ／Ｆ４２０，ネットワーク，ネットワークＩ／Ｆ２１０を介して、Ｗｅｂサービスサーバ２００のシナリオ管理部２３０に登録される。なお、格納部４１５に格納されたシナリオはネットワークＩ／Ｆ４２０，ネットワーク，サービス管理部３１０を介して、サービスディスカバリ３００の格納部３２０に登録されるようにしてもよい。
（シナリオ提供）
図１２は、本発明によるＷｅｂサービスシステムが行うシナリオ提供処理の一実施例のシーケンス図である。ステップＳ１１では、Ｗｅｂサービスサーバ２００のシナリオ管理部２３０が、Ｗｅｂサービスクライアント１００のアプリケーション１１０からシナリオ取得要求を受信する。
【００３６】
Ｗｅｂサービスサーバ２００のシナリオ管理部２３０は、Ｗｅｂサービス利用時のＷｅｂサービスクライアント１００の動作が定義されたシナリオをステップＳ１１のシナリオ取得要求に対する応答として、Ｗｅｂサービスクライアント１００のアプリケーション１１０に送信する。
【００３７】
すると、Ｗｅｂサービスクライアント１００のアプリケーション１１０に含まれるシナリオ処理部１１４は、受信したシナリオを用いてＷｅｂサービスクライアント１００の状態遷移を作成する。
【００３８】
図１３は、本発明によるＷｅｂサービスシステムが行うシナリオ提供処理の他の実施例のシーケンス図である。ステップＳ２１では、Ｗｅｂサービスサーバ２００のシナリオ管理部２３０が、サービスディスカバリ３００のサービス管理部３１０に対してシナリオ登録要求を行う。なお、ステップＳ２１のシナリオ登録要求には、シナリオおよびＷｅｂサービス名が含まれる。
【００３９】
サービスディスカバリ３００のサービス管理部３１０は、シナリオ登録要求に応じてシナリオを登録する。ステップＳ２２に進み、サービス管理部３１０はステップＳ２１のシナリオ登録要求に対する応答を行う。
【００４０】
ステップＳ２３に進み、Ｗｅｂサービスクライアント１００のアプリケーション１１０はサービスディスカバリ３００のサービス管理部３１０にシナリオ取得要求を行う。ステップＳ２４に進み、サービス管理部３１０はＷｅｂサービス利用時のＷｅｂサービスクライアント１００の動作が定義されたシナリオを検索し、そのシナリオをステップＳ２３のシナリオ取得要求に対する応答としてＷｅｂサービスクライアント１００のアプリケーション１１０に送信する。
【００４１】
すると、Ｗｅｂサービスクライアント１００のアプリケーション１１０に含まれるシナリオ処理部１１４は、受信したシナリオを用いてＷｅｂサービスクライアント１００の状態遷移を作成する。
（シナリオ同期）
Ｗｅｂサービスサーバ２００又はサービスディスカバリ３００に登録されているシナリオが変更された場合、Ｗｅｂサービスクライアント１００に送信したシナリオも同様に変更してシナリオを同期させる必要がある。
【００４２】
図１４は、本発明によるＷｅｂサービスシステムが行うシナリオ同期処理の一実施例のシーケンス図である。シナリオが変更されると、Ｗｅｂサービスサーバ２００のシナリオ管理部２３０はステップＳ３１に進み、Ｗｅｂサービス実行部２２０にシナリオ変更通知を行う。Ｗｅｂサービス実行部２２０はシナリオ変更通知を受信すると、Ｗｅｂサービスクライアント１００からの操作要求を受信するまで待機する。
【００４３】
ステップＳ３２に進み、Ｗｅｂサービスクライアント１００からＷｅｂサービスを利用する為の操作要求を受信すると、Ｗｅｂサービスサーバ２００のＷｅｂサービス実行部２２０はステップＳ３１でシナリオ変更通知を受信している為、ステップＳ３３に進み、シナリオ管理部２３０にシナリオ取得要求を送信する。
【００４４】
ステップＳ３４に進み、Ｗｅｂサービス実行部２２０はシナリオ管理部２３０から変更されたシナリオを取得する。ステップＳ３５に進み、Ｗｅｂサービス実行部２２０はステップＳ３２の操作要求に応じた操作結果および変更されたシナリオを表す追加シナリオをステップＳ３２の操作要求に対する応答としてＷｅｂサービスクライアント１００のアプリケーション１１０に送信する。
【００４５】
なお、Ｗｅｂサービス実行部２２０はステップＳ３１でシナリオ変更通知を受信していなければ、ステップＳ３３，Ｓ３４を実行せず、ステップＳ３５に進む。また、ステップＳ３５では、ステップＳ３２の操作要求に応じた操作結果およびシナリオが変更された旨をステップＳ３２の操作要求に対する応答としてＷｅｂサービスクライアント１００のアプリケーション１１０に送信し、アプリケーション１１０から明示的にシナリオ取得処理を行うようにしてもよい。
【００４６】
すると、Ｗｅｂサービスクライアント１００のアプリケーション１１０に含まれるシナリオ処理部１１４は、受信した追加シナリオを用いてＷｅｂサービスクライアント１００のシナリオを変更して、Ｗｅｂサービスサーバ２００又はサービスディスカバリ３００に登録されているシナリオと同期させる。
（状態遷移作成）
図１５は、本発明によるＷｅｂサービスクライアントが行う状態遷移作成処理の一実施例のフローチャートである。図１５のフローチャートは、Ｗｅｂサービスの利用を開始する前に全ての状態遷移を構築する例である。
【００４７】
ステップＳ４１では、Ｗｅｂサービスクライアント１００のアプリケーション１１０に含まれるシナリオ処理部１１４が、前述したようなシナリオ提供処理により、所望のＷｅｂサービス利用時のＷｅｂサービスクライアント１００の動作が定義されたシナリオを取得する。
【００４８】
ステップＳ４２に進み、シナリオ処理部１１４はステップＳ４１で取得したシナリオのＸＭＬを解析する。ステップＳ４３に進み、シナリオ処理部１１４はシナリオに含まれる状態の有無を判定する。例えば図７〜図１１のシナリオの場合、シナリオ処理部１１４はタグ＜ｓｔａｔｅ＞を利用して状態の有無を判定する。
【００４９】
状態が有ると判定すると（Ｓ４３においてＹＥＳ）、シナリオ処理部１１４はステップＳ４４に進み、状態の登録を行う。例えば図７〜図１１のシナリオの場合、１番目にある状態「管理者認証」が登録される。状態が無いと判定すると（Ｓ４３においてＮＯ）、シナリオ処理部１１４は処理を終了する。
【００５０】
ステップＳ４４に続いてステップＳ４５に進み、シナリオ処理部１１４は直前のステップＳ４４で登録した状態のメソッドの有無を判定する。例えば図７〜図１１のシナリオの状態「管理者認証」は、メソッドｍ１「パスワード利用セッション開始メソッド」を有している。シナリオ処理部１１４は、登録した状態のメソッドの有無を、タグ＜ｍｅｔｈｏｄ＞を利用して判定する。
【００５１】
メソッドが有ると判定すると（Ｓ４５においてＹＥＳ）、シナリオ処理部１１４はステップＳ４６に進み、メソッドが他のＷｅｂサービスのメソッドであるか否かを判定する。例えば図７〜図１１のシナリオの場合、シナリオ処理部１１４はメソッド定義部分を利用して他のＷｅｂサービスのメソッドであるか否かを判定する。他のＷｅｂサービスのメソッドであることの判定は、タグ＜ｓｅｒｖｉｃｅ＞があり、且つ＜ｓｅｒｖｉｃｅ＞の属性に書かれている名前空間やＷＳＤＬが現在解析中のＷｅｂサービスと異なるか否かで行っている。
【００５２】
他のＷｅｂサービスのメソッドでないと判定すると（Ｓ４６においてＮＯ）、シナリオ処理部１１４はステップＳ４７に進み、例えばサービスディスカバリ３００から取得したＷＳＤＬからメソッドの仕様をＷＳＤＬ処理部１１３に取得させる。
【００５３】
ステップＳ４８に進み、シナリオ処理部１１４は直前のステップＳ４４で登録した現在の状態のメソッドリストにメソッドを追加する。図７〜図１１のシナリオの場合、シナリオ処理部１１４は状態「管理者認証」にメソッドｍ１「パスワード利用セッション開始メソッド」を追加する。
【００５４】
一方、他のＷｅｂサービスのメソッドであると判定すると（Ｓ４６においてＹＥＳ）、シナリオ処理部１１４はステップＳ４９に進み、他のＷｅｂサービスのシナリオ及びＷＳＤＬを取得し、他のＷｅｂサービスの状態遷移作成処理を再帰的な処理により実施する。
【００５５】
ステップＳ４８又やＳ４９に続いてステップＳ４５に進み、シナリオ処理部１１４は直前のステップＳ４４で登録した状態の残りのメソッドの有無を判定する。即ち、シナリオ処理部１１４は直前のステップＳ４４で登録した状態の全てのメソッドについてステップＳ４５〜Ｓ４９の処理を繰り返し行う。
【００５６】
メソッドが無いと判定すると（Ｓ４５においてＮＯ）、シナリオ処理部１１４はステップＳ５０に進む。例えば図７〜図１１のシナリオの場合、シナリオ処理部１１４は状態「管理者認証」にメソッドｍ１「パスワード利用セッション開始メソッド」以外のメソッドが無いため、メソッドｍ１「パスワード利用セッション開始メソッド」についてステップＳ４５〜Ｓ４８の処理を行ったあと、ステップＳ５０に進む。
【００５７】
ステップＳ５０では、シナリオ処理部１１４が、ステップＳ４４で登録した状態の遷移条件をシナリオの状態遷移条件定義部分に基づき設定する。例えば図７〜図１１のシナリオの場合、シナリオ処理部１１４はメソッドｍ１「パスワード利用セッション開始メソッド」が「ＯＫ」のときに状態「管理対象決定」に遷移するように設定し、「ＮＧ」のときに処理を終了するように設定する。
【００５８】
ステップＳ５０に続いてステップＳ４３に進み、シナリオ処理部１１４はシナリオに含まれる残りの状態の有無を判定する。即ち、シナリオ処理部１１４はシナリオに含まれる全ての状態についてステップＳ４３〜Ｓ５０の処理を行う。
【００５９】
以上、図１５の状態遷移作成処理により、シナリオ処理部１１４は取得したシナリオに基づき、Ｗｅｂサービス利用時のＷｅｂサービスクライアント１００の処理手順として図６のような状態遷移を作成できる。
【００６０】
図１６は、本発明によるＷｅｂサービスクライアントが行う状態遷移作成処理の他の実施例のフローチャートである。図１６のフローチャートは、Ｗｅｂサービスの利用を開始した後で、状態遷移を動的に構築する例である。
【００６１】
ステップＳ５１では、Ｗｅｂサービスクライアント１００のアプリケーション１１０に含まれるシナリオ処理部１１４が、前述したようなシナリオ提供処理により、所望のＷｅｂサービス利用時のＷｅｂサービスクライアント１００の動作が定義されたシナリオを取得する。
【００６２】
ステップＳ５２に進み、シナリオ処理部１１４はステップＳ５１で取得したシナリオのＸＭＬを解析する。ステップＳ５３に進み、シナリオ処理部１１４はシナリオに含まれる先頭の状態を取得する。例えば図７〜図１１のシナリオの場合、シナリオ処理部１１４は状態「管理者認証」を取得する。
【００６３】
ステップＳ５４に進み、シナリオ処理部１１４は取得した状態が終端であるか否かを判定する。取得した状態が終端であると判定すると（Ｓ５４においてＹＥＳ）、シナリオ処理部１１４は処理を終了する。一方、取得した状態が終端でないと判定すると（Ｓ５４においてＮＯ）、シナリオ処理部１１４はステップＳ５５に進み、取得した状態のメソッドの有無を判定する。
【００６４】
メソッドが有ると判定すると（Ｓ５５においてＹＥＳ）、シナリオ処理部１１４はステップＳ５６に進み、メソッドが他のＷｅｂサービスのメソッドであるか否かを判定する。他のＷｅｂサービスのメソッドでないと判定すると（Ｓ５６においてＮＯ）、シナリオ処理部１１４はステップＳ５７に進み、ＷＳＤＬからメソッドの仕様をＷＳＤＬ処理部１１３に取得させる。
【００６５】
ステップＳ５８に進み、シナリオ処理部１１４は直前のステップＳ５７で取得したメソッドの仕様を利用してＷｅｂサービスサーバ２００にメソッド実行のリクエストを送信する。ステップＳ５９に進み、シナリオ処理部１１４はステップＳ５８のリクエストに対するメソッド実行のレスポンスをＷｅｂサービスサーバ２００から取得する。
【００６６】
一方、他のＷｅｂサービスのメソッドであると判定すると（Ｓ５６においてＹＥＳ）、シナリオ処理部１１４はステップＳ６０に進み、他のＷｅｂサービスのシナリオ及びＷＳＤＬを取得し、他のＷｅｂサービスの状態遷移作成処理を再帰的な処理により実施する。
【００６７】
ステップＳ５９又やＳ６０に続いてステップＳ５５に進み、シナリオ処理部１１４は取得した状態の残りのメソッドの有無を判定する。即ち、シナリオ処理部１１４は取得した状態の全てのメソッドについてステップＳ５５〜Ｓ６０の処理を繰り返し行う。
【００６８】
メソッドが無いと判定すると（Ｓ５５においてＮＯ）、シナリオ処理部１１４はステップＳ６１に進む。例えば図７〜図１１のシナリオの場合、シナリオ処理部１１４は状態「管理者認証」にメソッドｍ１「パスワード利用セッション開始メソッド」以外のメソッドが無いため、メソッドｍ１「パスワード利用セッション開始メソッド」についてステップＳ５５〜Ｓ６０の処理を行ったあと、ステップＳ６１に進む。
【００６９】
ステップＳ６１では、シナリオ処理部１１４が、メソッド実行のレスポンスおよびシナリオの状態遷移条件定義部分に基づき、次の状態をシナリオから取得する。図７〜図１１のシナリオの場合、シナリオ処理部１１４はメソッドｍ１「パスワード利用セッション開始メソッド」を実行したときのレスポンスが「ＯＫ」のときに、状態「管理対象決定」をシナリオから取得する。
【００７０】
ステップＳ６１に続いてステップＳ５４に進み、シナリオ処理部１１４は取得した状態が終端であるか否かを判定する。即ち、シナリオ処理部１１４はシナリオに含まれる全ての状態についてステップＳ５４〜Ｓ６１の処理を行う。
【００７１】
以上、図１６の状態遷移作成処理により、シナリオ処理部１１４は取得したシナリオに基づき、Ｗｅｂサービス利用時のＷｅｂサービスクライアント１００の処理手順として図６のような状態遷移を動的に作成しながら、Ｗｅｂサービスを利用できる。
（状態遷移変更）
例えばＷｅｂサービスクライアント１００のアプリケーション１１０に含まれるシナリオ処理部１１４が、図１４のシナリオ同期処理により、追加シナリオを取得する。シナリオ処理部１１４は、図１５又は図１６の状態遷移作成処理を行い、変更のあったシナリオに基づき、状態遷移を作成できる。
【００７２】
シナリオ処理部１１４は、変更前のシナリオから作成した状態遷移と、変更後のシナリオ又は追加シナリオから作成した状態遷移とに基づき、変更の必要な状態、利用するメソッド及び状態遷移条件を検索する。シナリオ処理部１１４は、変更の必要な状態、利用するメソッド及び状態遷移条件の検索結果に基づき、状態、利用するメソッド及び状態遷移条件の追加又は削除などのシナリオ変更処理を行う。
【００７３】
図１７は、シナリオ変更処理の一例のイメージ図である。なお、図１７のシナリオ変更処理はシナリオを追加する例である。図１７（ａ）は、追加前のシナリオの状態遷移図である。図１７（ｂ）は、追加するシナリオの状態遷移図である。図１７（ｃ）は、追加後のシナリオの状態遷移図である。
【００７４】
図１８は、シナリオ変更処理の他の一例のイメージ図である。なお、図１８のシナリオ変更処理はシナリオを削除する例である。図１８（ａ）は、削除前のシナリオの状態遷移図である。図１８（ｂ）は、削除するシナリオの状態遷移図である。図１８（ｃ）は、削除後のシナリオの状態遷移図である。
（アプリケーション利用）
ここでは、図１９のような状態遷移で表されるシナリオに、新たなシナリオを追加したときの画面遷移の変更について説明する。図１９は、シナリオより作成された一例の状態遷移図である。
【００７５】
ユーザが起動を指示すると、アプリケーション１１０はＵ／Ｉ１１１を利用して図２０のような初期画面２０００をユーザに呈示する。図２０は、アプリケーションによる一例の画面遷移図である。
【００７６】
ユーザが初期画面２０００上のボタン「スタート」を押下すると、アプリケーション１１０はセッション開始メソッドｍ１及び管理対象検索メソッドｍ２を実行し、成功を表す応答を受信すると図２０のような管理対象決定画面２１００をユーザに呈示する。ユーザが管理対象決定画面２１００上から設定の種別としての管理対象名を選択すると、アプリケーション１１０は管理対象決定メソッドｍ３及び管理対象設定項目参照メソッドｍ４を実行し、成功を表す応答を受信すると図２１のような管理対象設定項目設定画面２２００をユーザに呈示する。
【００７７】
ここでは、ユーザが管理対象決定画面２１００上から管理対象名「システム設定」を選択したものとする。ユーザが管理対象設定項目設定画面２２００上に時刻およびセキュリティ設定を入力すると、アプリケーション１１０は管理対象設定項目設定メソッドｍ５及びセッション終了メソッドｍ６を実行したあと、処理を終了する。
【００７８】
前述したシナリオ変更処理を利用して、図１９のような状態遷移で表されるシナリオに認証サービスを追加すると、図２２の状態遷移で表されるシナリオに変更される。図２２の状態遷移で表されるシナリオの場合、初期画面２０００と管理対象決定画面２１００との画面遷移の間に図２３のようなユーザ認証画面２３００が追加される。
【００７９】
例えばユーザが初期画面２０００上のボタン「スタート」を押下すると、アプリケーション１１０は図２３のようなユーザ認証画面２３００をユーザに呈示する。ユーザ認証画面２３００にユーザ名，パスワードが入力された後、ボタン「ＯＫ」が押下されると、アプリケーション１１０はユーザ認証サービスａ１を実行する。
【００８０】
このように、Ｗｅｂサービスサーバ２００はＷｅｂサービス利用時のＷｅｂサービスクライアント１００の動作が定義されたシナリオをＷｅｂサービスクライアント１００に提供し、シナリオに応じてＷｅｂサービスクライアント１００がサービスを利用するときの処理手順を決定できるので、サービスの追加や変更に、Ｗｅｂサービスクライアント１００のサービス利用時の動作を対応させることができる。
【００８１】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【図面の簡単な説明】
【００８２】
【図１】Ｗｅｂサービスシステムの一例の構成図である。
【図２】Ｗｅｂサービスシステムの処理を表したシーケンス図である。
【図３】本発明によるＷｅｂサービスシステムの一例の構成図である。
【図４】Ｗｅｂサービスサーバを実現するコンピュータの一実施例のハードウェア構成図である。
【図５】作成されたシナリオを自然言語で表した一例のイメージ図である。
【図６】シナリオを表す一例の状態遷移図である。
【図７】ＸＭＬで記述されたシナリオの一例の構成図（１／５）である。
【図８】ＸＭＬで記述されたシナリオの一例の構成図（２／５）である。
【図９】ＸＭＬで記述されたシナリオの一例の構成図（３／５）である。
【図１０】ＸＭＬで記述されたシナリオの一例の構成図（４／５）である。
【図１１】ＸＭＬで記述されたシナリオの一例の構成図（５／５）である。
【図１２】本発明によるＷｅｂサービスシステムが行うシナリオ提供処理の一実施例のシーケンス図である。
【図１３】本発明によるＷｅｂサービスシステムが行うシナリオ提供処理の他の実施例のシーケンス図である。
【図１４】本発明によるＷｅｂサービスシステムが行うシナリオ同期処理の一実施例のシーケンス図である。
【図１５】本発明によるＷｅｂサービスクライアントが行う状態遷移作成処理の一実施例のフローチャートである。
【図１６】本発明によるＷｅｂサービスクライアントが行う状態遷移作成処理の他の実施例のフローチャートである。
【図１７】シナリオ変更処理の一例のイメージ図である。
【図１８】シナリオ変更処理の他の一例のイメージ図である。
【図１９】シナリオより作成された一例の状態遷移図である。
【図２０】アプリケーションによる一例の画面遷移図（１／２）である。
【図２１】アプリケーションによる一例の画面遷移図（２／２）である。
【図２２】シナリオ変更処理により変更された一例の状態遷移図である。
【図２３】初期画面の一例のイメージ図である。
【符号の説明】
【００８３】
１００    Ｗｅｂサービスクライアント
１１０，４１０    アプリケーション
１１１，４１１    Ｕ／Ｉ
１１３    ＷＳＤＬ処理部
１１４    シナリオ処理部
１２０，２１０，４２０    ネットワークＩ／Ｆ
２００    Ｗｅｂサービスサーバ
２２０    Ｗｅｂサービス実行部
２３０    シナリオ管理部
３００    サービスディスカバリ
３１０    サービス管理部
３２０，４１５    格納部
４００    シナリオ作成装置
４１２    エディタ制御部
４１３    データ解析部
４１４    ＸＭＬ生成部
１００１    入力装置
１００２    表示装置
１００３    ドライブ装置
１００４    記録媒体
１００５    補助記憶装置
１００６    メモリ装置
１００７    演算処理装置
１００８    インターフェース装置
Ｂ    バス
【図１】
2006072911.tif 000003
【図２】
2006072911.tif 000004
【図３】
2006072911.tif 000005
【図４】
2006072911.tif 000006
【図５】
2006072911.tif 000007
【図６】
2006072911.tif 000008
【図７】
2006072911.tif 000009
【図８】
2006072911.tif 000010
【図９】
2006072911.tif 000011
【図１０】
2006072911.tif 000012
【図１１】
2006072911.tif 000013
【図１２】
2006072911.tif 000014
【図１３】
2006072911.tif 000015
【図１４】
2006072911.tif 000016
【図１５】
2006072911.tif 000017
【図１６】
2006072911.tif 000018
【図１７】
2006072911.tif 000019
【図１８】
2006072911.tif 000020
【図１９】
2006072911.tif 000021
【図２０】
2006072911.tif 000022
【図２１】
2006072911.tif 000023
【図２２】
2006072911.tif 000024
【図２３】
2006072911.tif 000025