(57)【要約】【課題】外部のサーバ装置上のＷｅｂサービスを利用するためのインターフェイスを提供する。【解決手段】Ｗｅｂサービスを利用するために用いる第１ツリー構造を記憶する第１記憶部と、第１ツリー構造内の、Ｗｅｂサービスを呼び出すために用いられるリクエストノードへのアクセスを受けたことに応じて、当該リクエストノードに応じたＷｅｂサービスを呼び出すリクエストメッセージを生成するリクエスト生成部と、Ｗｅｂサービスを提供するサーバ装置に対してリクエストメッセージを送信するリクエスト送信部と、サーバ装置から、Ｗｅｂサービスを実行した結果を含むレスポンスメッセージを受信するレスポンス受信部と、Ｗｅｂサービスを実行した結果を、第１ツリー構造内の、Ｗｅｂサービスの結果を記憶するためのレスポンスノードに反映するレスポンス反映部とを備える。【選択図】図１
2007279838.tif 000002
【特許請求の範囲】
【請求項１】
外部のサーバ装置上のＷｅｂサービスを利用するためのインターフェイスを提供する情報処理装置であって、
Ｗｅｂサービスを利用するために用いる第１ツリー構造を記憶する第１記憶部と、
前記第１ツリー構造内の、Ｗｅｂサービスを呼び出すために用いられるリクエストノードへのアクセスを受けたことに応じて、当該リクエストノードに応じたＷｅｂサービスを呼び出すリクエストメッセージを生成するリクエスト生成部と、
前記Ｗｅｂサービスを提供するサーバ装置に対して前記リクエストメッセージを送信するリクエスト送信部と、
前記サーバ装置から、前記Ｗｅｂサービスを実行した結果を含むレスポンスメッセージを受信するレスポンス受信部と、
前記Ｗｅｂサービスを実行した前記結果を、前記第１ツリー構造内の、前記Ｗｅｂサービスの前記結果を記憶するためのレスポンスノードに反映するレスポンス反映部と
を備える情報処理装置。
【請求項２】
Ｗｅｂサービスを利用するアプリケーションを実行するアプリケーション実行部と、
前記アプリケーションにより使用されるドキュメントを第２ツリー構造により記憶する第２記憶部と
を更に備え、
前記アプリケーション実行部は、一のＷｅｂサービスの結果が反映された少なくとも１つの前記レスポンスノードを含む前記第１ツリー構造内の部分木を、前記第２ツリー構造内の部分木として複製する
請求項１に記載の情報処理装置。
【請求項３】
Ｗｅｂサービスを利用するアプリケーションを実行するアプリケーション実行部を更に備え、
前記記憶部は、アプリケーションにより使用されるドキュメントを前記第１ツリー構造により記憶し、
前記ドキュメントの一部にＷｅｂサービスを利用した結果を反映させる場合において、前記アプリケーション実行部は、前記第１ツリー構造内の、前記ドキュメントの一部に対応して定められた前記リクエストノードをアクセスし、
前記レスポンス反映部は、Ｗｅｂサービスを実行した結果を、前記ドキュメントの一部に対して反映する
請求項１に記載の情報処理装置。
【請求項４】
前記第１記憶部は、Ｗｅｂサービスに対するリクエストを行うためにアクセスされるリクエスト用部分木と、Ｗｅｂサービスの結果を反映するレスポンス用部分木とを有する前記第１ツリー構造を記憶し、
前記リクエスト生成部は、前記リクエスト用部分木内の前記リクエストノードへのアクセスを受けたことに応じて前記リクエストメッセージを生成し、
前記レスポンス反映部は、Ｗｅｂサービスを実行した結果を、前記レスポンス用部分木内の前記レスポンスノードに反映する
請求項１に記載の情報処理装置。
【請求項５】
Ｗｅｂサービスを利用するアプリケーションを実行するアプリケーション実行部を更に備え、
前記アプリケーション実行部は、Ｗｅｂサービスに対して提供する各パラメータを、前記第１ツリー構造内の各パラメータに応じたパラメータノードに対して設定し、
前記リクエスト生成部は、前記アプリケーション実行部によりパラメータが設定されたそれぞれの前記パラメータノードから当該パラメータを取得して、当該パラメータを含む前記リクエストメッセージを生成する
請求項１に記載の情報処理装置。
【請求項６】
前記レスポンス反映部は、前記第１ツリー構造内における位置を示すパスにより前記リクエストノードへのアクセスを受けたことに応じて前記リクエストメッセージを生成する
請求項４に記載の情報処理装置。
【請求項７】
前記アプリケーション実行部は、Ｗｅｂサービスに対して提供する各パラメータを、当該Ｗｅｂサービスに対応して定められた前記リクエストノードの子孫となるそれぞれの前記パラメータノードに対して設定し、
前記リクエスト生成部は、
前記リクエストノードから前記Ｗｅｂサービスの名称を取得するサービス名取得部と、
前記Ｗｅｂサービスの名称を用いて当該Ｗｅｂサービスの仕様を定めたＷＳＤＬ（Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）記述を取得するＷＳＤＬ取得部と、
前記ＷＳＤＬ記述から、前記Ｗｅｂサービスを提供する前記サーバ装置のアドレスを取得するアドレス取得部と
を有し、
前記リクエスト送信部は、前記アドレス取得部が取得したアドレス宛に前記リクエストメッセージを送信する
請求項５に記載の情報処理装置。
【請求項８】
前記第１記憶部は、Ｗｅｂサービスの結果が反映された前記レスポンスノードをキャッシングし、
前記リクエストノードが前記第１ツリー構造内に既に登録されていることを条件として前記第１記憶部にキャッシュされた当該Ｗｅｂサービスの結果を返すキャッシュヒット処理部と、
前記リクエストノードが前記第１ツリー構造内に登録されていないことを条件として、前記リクエスト送信部により前記リクエストメッセージを送信させ、Ｗｅｂサービスの結果を前記第１記憶部にキャッシュさせると共に、前記リクエストノードを前記第１ツリー構造内のノードとして新たに登録させるキャッシュミス処理部と
を更に備える請求項１に記載の情報処理装置。
【請求項９】
前記リクエスト生成部は、前記リクエストノードがアクセスされた後に前記レスポンスノードがアクセスされたことに応じて、前記リクエストメッセージを生成する請求項１に記載の情報処理装置。
【請求項１０】
それぞれの前記リクエストノードに対応して、当該リクエストノードをアクセスしたことに応じて受信される前記レスポンスメッセージを変換する変換ルールを記憶する変換ルール記憶部と、
前記レスポンスメッセージに含まれるＷｅｂサービスの結果を反映した前記第１ツリー構造を、当該レスポンスメッセージに対応する前記変換ルールに基づいて変換する変換部と
を更に備える請求項１に記載の情報処理装置。
【請求項１１】
外部のサーバ装置上のＷｅｂサービスを利用するためのインターフェイスを情報処理装置により提供する方法であって、
Ｗｅｂサービスを利用するために用いる第１ツリー構造を第１記憶部に記憶する記憶段階と、
前記第１ツリー構造内の、Ｗｅｂサービスを呼び出すために用いられるリクエストノードへのアクセスを受けたことに応じて、当該リクエストノードに応じたＷｅｂサービスを呼び出すリクエストメッセージを生成するリクエスト生成段階と、
前記Ｗｅｂサービスを提供するサーバ装置に対して前記リクエストメッセージを送信するリクエスト送信段階と、
前記サーバ装置から、前記Ｗｅｂサービスを実行した結果を含むレスポンスメッセージを受信するレスポンス受信段階と、
前記Ｗｅｂサービスを実行した前記結果を、前記第１ツリー構造内の、前記Ｗｅｂサービスの前記結果を記憶するためのレスポンスノードに反映するレスポンス反映段階と
を備える方法。
【請求項１２】
外部のサーバ装置上のＷｅｂサービスを利用するためのインターフェイスをコンピュータにより提供するプログラムであって、
当該プログラムは、前記コンピュータを、
Ｗｅｂサービスを利用するために用いる第１ツリー構造を記憶する第１記憶部と、
前記第１ツリー構造内の、Ｗｅｂサービスを呼び出すために用いられるリクエストノードへのアクセスを受けたことに応じて、当該リクエストノードに応じたＷｅｂサービスを呼び出すリクエストメッセージを生成するリクエスト生成部と、
前記Ｗｅｂサービスを提供するサーバ装置に対して前記リクエストメッセージを送信するリクエスト送信部と、
前記サーバ装置から、前記Ｗｅｂサービスを実行した結果を含むレスポンスメッセージを受信するレスポンス受信部と、
前記Ｗｅｂサービスを実行した前記結果を、前記第１ツリー構造内の、前記Ｗｅｂサービスの前記結果を記憶するためのレスポンスノードに反映するレスポンス反映部と
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、方法およびプログラムに関する。特に本発明は、外部のサーバ装置上のＷｅｂサービスを利用するためのインターフェイスを提供する情報処理装置、方法およびプログラムに関する。
【背景技術】
【０００２】
従来より、インターネットを介してアクセスされるアプリケーションコンポーネントであるＷｅｂサービスが知られている。情報処理装置は、外部のサーバ装置上のＷｅｂサービスを利用することにより、ネットワークを介した分散コンポーネント環境を実現できる。Ｗｅｂサービスを利用する情報処理装置は、当該Ｗｅｂサービスに応じた形式のＳＯＡＰメッセージを送出し、Ｗｅｂサービスからの応答を受信する。従来、Ｗｅｂサービスを利用する情報処理装置により実行されるプログラムは、ＯＯＰ（Ｏｂｊｅｃｔ−Ｏｒｉｅｎｔｅｄ  Ｐｒｏｇｒａｍｍｉｎｇ）モデルを用いて、Ｗｅｂサービスにおけるリクエストメッセージの生成、レスポンスメッセージの受信およびレスポンスメッセージの解釈を行っていた。
【０００３】
一方、Ｗｅｂブラウザアプリケーション（以下、単にブラウザと呼ぶ。）により利用される例えばＨＴＭＬ（Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｅ）やＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）ドキュメントは、ＤＯＭ（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）等のツリー構造モデルに基づき作成されていた。
【０００４】
なお、非特許文献１、２には、ＯＯＰモデルに基づくＷｅｂサービスのプログラミングモデルが記載されている。非特許文献３、４には、ＤＯＭ（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）の操作をＷｅｂサービスとして提供することが記載されている。
【０００５】
【非特許文献１】H. Kreger,"Web services conceptual architecture (wsca 1.0). Technical report",[online]，２００１年５月，IBM Software Group，[２００６年３月３０日検索]，インターネット＜URL  :http://www-306.ibm.com/software/solutions/webservices/pdf/WSCA.pdf＞
【非特許文献２】S. Loughran and E. Smith. , Rethinking the Java SOAP stack.", 米国,  2005, In ICWS, P.845-852
【非特許文献３】G. Fox, H. Bulut, K. Kim, S.-H. Ko, S. Lee, S. Oh, S. Pallickara, X. Qiu, A. Uyar, M. Wang, and W. Wu. , "Collaborative web services and peer-to-peer girds.", 米国, 2003,In Collaborative Technologies Symposium
【非特許文献４】X. Qiu, B. Carpenter, and G. Fox. , " Internet collaboration using the w3c document object model.", 米国, 2003,In International Conference on Internet Computing, pages 643-647
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、ブラウザは、広く普及しており、ＨＴＭＬドキュメントの作成ツールも広く利用されている。従って、ユーザは、Ｗｅｂサービスのクライアントアプリケーションとして、ブラウザを利用することが望ましい。しかしながら、Ｗｅｂサービスのクライアントアプリケーションとしてブラウザを利用する場合、ユーザは、ツリー構造モデルに基づいたドキュメントの作成とともに、ＯＯＰモデルに基づいたＷｅｂサービスへのアクセスプログラムの作成をしなければならず、異なるプログラミングモデルの取り扱いによる負担が大きかった。
【０００７】
そこで本発明は、上記の課題を解決することのできる情報処理装置、方法およびプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【０００８】
本発明の第１の形態によると、外部のサーバ装置上のＷｅｂサービスを利用するためのインターフェイスを提供する情報処理装置であって、Ｗｅｂサービスを利用するために用いる第１ツリー構造を記憶する第１記憶部と、第１ツリー構造内の、Ｗｅｂサービスを呼び出すために用いられるリクエストノードへのアクセスを受けたことに応じて、当該リクエストノードに応じたＷｅｂサービスを呼び出すリクエストメッセージを生成するリクエスト生成部と、Ｗｅｂサービスを提供するサーバ装置に対してリクエストメッセージを送信するリクエスト送信部と、サーバ装置から、Ｗｅｂサービスを実行した結果を含むレスポンスメッセージを受信するレスポンス受信部と、Ｗｅｂサービスを実行した結果を、第１ツリー構造内の、Ｗｅｂサービスの結果を記憶するためのレスポンスノードに反映するレスポンス反映部とを備える情報処理装置、当該情報処理装置に関する情報処理方法およびプログラムを提供する。
【０００９】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明の効果】
【００１０】
本発明によれば、ツリー構造内のノードへのアクセスを通じてＷｅｂサービスを利用できるので、サーバ装置上のＷｅｂサービスを容易に利用可能とする。
【発明を実施するための最良の形態】
【００１１】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１２】
図１は、本実施形態に係る情報処理装置１０の構成を１００とともに示す。サーバ装置１００は、外部装置からインターネットを利用してアクセスされるアプリケーションコンポーネントであるＷｅｂサービスを記憶する。サーバ装置１００は、情報処理装置１０からＳＯＡＰに従ったリクエストメッセージを受けると、Ｗｅｂサービスを実行する。そして、サーバ装置１００は、Ｗｅｂサービスの実行を完了すると、Ｗｅｂサービスを実行した結果を含むレスポンスメッセージをＳＯＡＰに従って情報処理装置１０に返信する。なお、Ｗｅｂサービスは、ＸＭＬをインターフェイスとして採用することから、ＸＭＬ Ｗｅｂサービスとも呼ばれる。
【００１３】
情報処理装置１０は、アプリケーションを実行するとともに、外部のサーバ装置上のＷｅｂサービスを利用するためのインターフェイスを提供する。情報処理装置１０は、Ｗｅｂサービスを利用するためのインターフェイスをＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ Ｐｒｏｇｒａｍ Ｉｎｔｅｒｆａｃｅ）として提供してもよいし、Ｗｅｂブラウザ等のアプリケーションの一部として提供してもよい。
【００１４】
情報処理装置１０は、アプリケーション実行部１２と、ドキュメント記憶部１４と、Ｗｅｂサービスインターフェイス２０とを備える。アプリケーション実行部１２は、Ｗｅｂサービスを利用するアプリケーションを実行し、当該アプリケーションを実行することにより得られる機能を提供する。アプリケーション実行部１２は、サーバ装置１００上のＷｅｂサービスを利用することを目的として、Ｗｅｂサービスインターフェイス２０に対してアクセスをする。ドキュメント記憶部１４は、アプリケーション実行部１２により利用されるドキュメントを記憶してよい。ドキュメント記憶部１４は、一例として、ＸＨＴＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｅ）等のツリー構造化されたドキュメントを記憶する。
【００１５】
Ｗｅｂサービスインターフェイス２０は、本発明に係るインターフェイスの一例であり、外部のサーバ装置１００上のＷｅｂサービスを利用することを目的としてアプリケーション実行部１２からアクセスを受けると、インターネット等のネットワークを介して、サーバ装置１００に対してリクエストメッセージを送信し、サーバ装置１００からＷｅｂサービスの実行結果を含むレスポンスメッセージを受信する。
【００１６】
Ｗｅｂサービスインターフェイス２０は、ツリー構造記憶部２２と、リクエスト生成部２４と、リクエスト送信部２６と、レスポンス受信部２８と、レスポンス反映部３０と、キャッシュ処理部３２と、変換ルール記憶部３４と、変換部３６とを有する。ツリー構造記憶部２２は、Ｗｅｂサービスを利用するために用いるツリー構造を記憶する。ツリー構造記憶部２２は、一例として、ツリー構造をＸＭＬドキュメントにより記憶してよい。ツリー構造記憶部２２により記憶されているツリー構造は、Ｗｅｂサービスに対するリクエストを行うためにアクセスされるリクエスト用部分木４０と、Ｗｅｂサービスの結果を反映するレスポンス用部分木５０とを含む。リクエスト用部分木４０は、Ｗｅｂサービスを呼び出すために用いられるリクエストノード４２を含む。レスポンス用部分木５０は、Ｗｅｂサービスの結果を記憶するためのレスポンスノード５２を含む。ここで、リクエスト用部分木４０およびレスポンス用部分木５０は、異なるノードを親としてもよいし、同一のノードを親としてもよい。また、リクエストノード４２およびレスポンスノード５２は、同一のノードであってもよい。さらに、ツリー構造記憶部２２は、Ｗｅｂサービスの結果が反映されたレスポンスノード５２をキャッシングしてよい。また、ツリー構造記憶部２２は、リクエスト生成部２４がリクエストメッセージを生成すれば、リクエストノード４２を記憶しなくてもよい。
【００１７】
リクエスト生成部２４は、ツリー構造内のリクエストノード４２へのアクセスを受けたことに応じて、当該リクエストノード４２に応じたＷｅｂサービスを呼び出すリクエストメッセージを生成する。本実施形態においては、リクエスト生成部２４は、アプリケーション実行部１２からアクセスを受けたことに応じて、リクエストメッセージを生成する。リクエスト送信部２６は、リクエストメッセージの対象となるＷｅｂサービスを提供するサーバ装置１００に対して、リクエスト生成部２４により生成されたリクエストメッセージを送信する。レスポンス受信部２８は、サーバ装置１００から、Ｗｅｂサービスを実行した結果を含むレスポンスメッセージを受信する。レスポンス反映部３０は、レスポンス受信部２８により受信されたレスポンスメッセージに含まれるＷｅｂサービスを実行した結果を、ツリー構造内のレスポンスノード５２に反映する。
【００１８】
キャッシュ処理部３２は、ツリー構造記憶部２２によるレスポンスノード５２のキャッシングを制御する。キャッシュ処理部３２は、キャッシュヒット処理部６２と、キャッシュミス処理部６４とを含んでよい。キャッシュヒット処理部６２は、Ｗｅｂサービスに対するリクエストを行うためにアクセスされた場合、リクエストノード４２がツリー構造内に既に登録されていることを条件として、ツリー構造記憶部２２にキャッシュされた当該Ｗｅｂサービスの結果をアクセス元に返す。キャッシュミス処理部６４は、Ｗｅｂサービスに対するリクエストを行うためにアクセスされた場合、リクエストノード４２がツリー構造内に登録されていないことを条件として、リクエスト送信部２６によりリクエストメッセージを送信させ、Ｗｅｂサービスの結果をツリー構造記憶部２２にキャッシュさせると共に、リクエストノード４２をツリー構造内のノードとして新たに登録させる。
【００１９】
変換ルール記憶部３４は、それぞれのリクエストノード４２に対応して、当該リクエストノード４２をアクセスしたことに応じて受信されるレスポンスメッセージを変換する変換ルールを記憶する。変換部３６は、レスポンスメッセージに含まれるＷｅｂサービスの結果を反映したツリー構造を、変換ルール記憶部３４に記憶されたレスポンスメッセージに対応する変換ルールに基づいて変換する。
【００２０】
図２は、リクエスト用部分木４０およびレスポンス用部分木５０の構成の一例を示す。リクエスト用部分木４０は、リクエストノード４２を例えばルートノードとして含む。これに加えて、リクエスト用部分木４０は、当該リクエストノード４２の子孫となる１又は複数のパラメータノード４４を含んでよい。各パラメータノード４４は、Ｗｅｂサービスに対して提供するパラメータを格納する。各パラメータノード４４は、一例として、Ｗｅｂサービスに対して渡す引数を格納する。アプリケーション実行部１２は、Ｗｅｂサービスに対して提供する各パラメータを、当該Ｗｅｂサービスに対応して定められたリクエストノード４２の子孫となるそれぞれのパラメータノード４４に対して設定してよい。この場合において、リクエスト生成部２４は、一例として、アプリケーション実行部１２によりパラメータが設定されたそれぞれのパラメータノード４４から当該パラメータを取得して、当該パラメータを含むリクエストメッセージを生成してよい。なお、ＳＯＡＰにおいてはリクエストメッセージに含める引数をＸＭＬ形式で記述することができるので、リクエスト生成部２４は、ツリー構造で表されたパラメータノード４４をそのまま引数としてリクエストメッセージに含めてよい。
【００２１】
レスポンス用部分木５０は、レスポンスノード５２を例えばルートノードとして含む。これに加えて、レスポンス用部分木５０は、当該レスポンスノード５２の子孫となる１又は複数のリターンノード５４を含んでよい。リターンノード５４は、レスポンスメッセージに含まれるＷｅｂサービスを実行した結果を格納する。リターンノード５４は、一例として、レスポンスメッセージに含まれる戻り値を格納する。レスポンス反映部３０は、レスポンスメッセージに含まれるＷｅｂサービスの実行結果を、当該Ｗｅｂサービスに対応して定められたレスポンスノード５２の子孫となるそれぞれのリターンノード５４に対して反映してよい。なお、ＳＯＡＰにおいてはレスポンスメッセージに含める戻り値をＸＭＬ形式で記述することができるので、レスポンス反映部３０は、レスポンスメッセージに含められた戻り値をそのままリターンノード５４に置き換えてよい。
【００２２】
さらに、リクエストメッセージに対応するＷｅｂサービスの実行結果は一意に定まるので、ツリー構造記憶部２２は、Ｗｅｂサービスの実行結果をキャッシングすることを目的として、例えばＷｅｂサービス毎またはＷｅｂサービスに対して送信するパラメータ毎に、リクエスト用部分木４０およびレスポンス用部分木５０を記憶してよい。この場合において、ツリー構造記憶部２２は、アプリケーション実行部１２によりアクセスされた場合、対応するリクエスト用部分木４０がツリー構造内に登録されていないこと条件として、リクエスト用部分木４０およびレスポンス用部分木５０を新たに記憶する。また、ツリー構造記憶部２２は、アプリケーション実行部１２によりアクセスされた場合、対応するリクエスト用部分木４０がツリー構造内に登録されていることを条件として、キャッシュされているリクエスト用部分木４０およびレスポンス用部分木５０を返信する。これにより、ツリー構造記憶部２２によれば、アプリケーション実行部１２によるアクセスに対して高速に返信することができる。
【００２３】
図３は、リクエスト生成部２４の構成の一例を示す。リクエスト生成部２４は、サービス名取得部７２と、ＷＳＤＬ取得部７４と、アドレス取得部７６とを含んでよい。サービス名取得部７２は、リクエストノード４２からＷｅｂサービスの名称を取得する。ＷＳＤＬ取得部７４は、サービス名取得部７２により取得されたＷｅｂサービスの名称を用いて当該Ｗｅｂサービスの仕様を定めたＷＳＤＬ（Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）記述を取得する。ＷＳＤＬ取得部７４は、一例として、ＵＤＤＩ（Ｕｎｉｖｅｒｓａｌ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｄｉｓｃｏｖｅｒｙ，  ａｎｄ  Ｉｎｔｅｇｒａｔｉｏｎ）を用いてレジストリを検索することにより、ＷＳＤＬ記述を取得してよい。
【００２４】
アドレス取得部７６は、ＷＳＤＬ取得部７４により取得されたＷＳＤＬ記述から、Ｗｅｂサービスを提供するサーバ装置１００のアドレスを取得する。そして、リクエスト送信部２６は、アドレス取得部７６が取得したアドレス宛にリクエストメッセージを送信する。これにより、Ｗｅｂサービスインターフェイス２０によれば、リクエストメッセージの宛先、すなわち、対応するＷｅｂサービスの所在を取得し、対応するＷｅｂサービスを提供するサーバ装置１００に対して、リクエストメッセージを送信することができる。
【００２５】
図４は、本実施形態に係る情報処理装置１０の処理の流れを示す。Ｗｅｂサービスを利用する場合、まず、アプリケーション実行部１２は、ツリー構造記憶部２２に記憶されたツリー構造内におけるリクエスト用部分木４０のリクエストノード４２にアクセスする（Ｓ１１）。この場合において、アプリケーション実行部１２は、ツリー構造内におけるリクエストノード４２の位置を示すパスを指定することにより、利用するＷｅｂサービスに応じて定められたリクエストノード４２にアクセスしてよい。ツリー構造記憶部２２は、アクセスされたリクエストノード４２がツリー構造内に登録されていない場合、当該ツリー構造内の指定されたパスに新たにリクエスト用部分木４０およびレスポンス用部分木５０を登録する。
【００２６】
次に、アプリケーション実行部１２は、ツリー構造記憶部２２に記憶されたツリー構造内におけるレスポンス用部分木５０のレスポンスノード５２に対してアクセスをする（Ｓ１２）。この場合において、アプリケーション実行部１２は、ツリー構造をたどるためのパスを指定することにより、利用するＷｅｂサービスに応じて決定されるレスポンスノード５２にアクセスしてよい。ツリー構造記憶部２２は、アクセスされたレスポンスノード５２がツリー構造内に既に登録されている場合、当該レスポンスノード５２またはレスポンスノード５２の子孫のノードに格納されるＷｅｂサービスの実行結果をアプリケーション実行部１２に対して返信して、処理を終了してよい。
【００２７】
次に、アクセスされたリクエストノード４２がツリー構造内に登録されていないことを条件に、リクエスト生成部２４は、当該リクエストノード４２に応じたＷｅｂサービスを呼び出すリクエストメッセージを生成する（Ｓ１３）。次に、リクエスト送信部２６は、Ｗｅｂサービスを提供するサーバ装置１００に対してリクエストメッセージを送信する（Ｓ１４）。送信されたリクエストメッセージは、サーバ装置１００に提供される。リクエストメセージを受けたサーバ装置１００は、Ｗｅｂサービスを実行する。そして、サーバ装置１００は、Ｗｅｂサービスの実行結果を含むレスポンスメッセージを返信する。
【００２８】
次に、レスポンス受信部２８は、サーバ装置１００からレスポンスメッセージを受信する（Ｓ１５）。次に、レスポンス反映部３０は、レスポンスメッセージに含まれるＷｅｂサービスの実行結果を、ツリー構造内のレスポンスノード５２に反映する（Ｓ１６）。そして、ツリー構造記憶部２２は、当該レスポンスノード５２またはレスポンスノード５２の子孫のノードに格納されるＷｅｂサービスの実行結果をアプリケーション実行部１２に対して返信して、処理を終了する。
【００２９】
以上のようなＷｅｂサービスインターフェイス２０によれば、アプリケーション実行部１２からツリー構造内のノードに対してアクセスを受けることにより、Ｗｅｂサービスを実行した結果を返答する。すなわち、Ｗｅｂサービスインターフェイス２０によれば、アプリケーション実行部１２に対して、ツリー構造によって階層化されたドキュメントへのアクセスする場合における処理と同様の処理により、外部のサーバ装置上のＷｅｂサービスを利用させることができる。従って、Ｗｅｂサービスインターフェイス２０によれば、ツリー構造によって階層化されたドキュメントおよびＷｅｂサービスの両者を利用する場合であっても、当該アプリケーション実行部１２により実行されるプログラムを、ツリー構造によって階層化されたデータに対してアクセスするプログラムモデルを用いるものに統一させることができる。これにより、Ｗｅｂサービスインターフェイス２０によれば、ユーザによるプログラミングの負担を軽減することができる。
【００３０】
また、ドキュメント記憶部１４がアプリケーションにより使用されるドキュメントを、ツリー構造記憶部２２に記憶されたツリー構造とは異なる第２ツリー構造により記憶する場合、アプリケーション実行部１２は、一のＷｅｂサービスの結果が反映された少なくとも１つのレスポンスノード５２を含むツリー構造内のレスポンス用部分木５０を、ドキュメント記憶部１４に記憶された第２ツリー構造内の部分木として複製してよい。これにより、アプリケーション実行部１２によれば、Ｗｅｂサービスインターフェイス２０により取得されたＷｅｂサービスの実行結果を、当該アプリケーション実行部１２により作成されたドキュメントの一部として取り扱うことができる。
【００３１】
また、ツリー構造記憶部２２は、アプリケーションにより使用されるドキュメントを、Ｗｅｂサービスを利用するために用いるツリー構造により記憶してよい。この場合において、アプリケーション実行部１２は、ツリー構造記憶部２２に記憶されたツリー構造にアクセスしてドキュメントを使用する。さらに、アプリケーション実行部１２は、ドキュメントの一部にＷｅｂサービスを利用した結果を反映させる場合、ツリー構造記憶部２２に記憶されたツリー構造内の、ドキュメントの一部に対応して定められたリクエストノード４２をアクセスする。そして、レスポンス反映部３０は、Ｗｅｂサービスを実行した結果を、ドキュメントの一部に対して反映する。これにより、アプリケーション実行部１２によれば、Ｗｅｂサービスインターフェイス２０により取得されたＷｅｂサービスの実行結果を、当該アプリケーション実行部１２により作成されたドキュメントの一部として取り扱うことができる。
【００３２】
また、Ｗｅｂサービスインターフェイス２０は、リクエストメッセージの送信及びレスポンスノード５２の登録を、シンクロナスモード、アシンクロナスモードまたはレイジーモードのいずれかにより行ってよい。
【００３３】
シンクロナスモードの場合、ツリー構造記憶部２２は、リクエストノード４２に対してアクセスされたことに応じてリクエストノード４２を登録する。Ｗｅｂサービスインターフェイス２０は、リクエストノード４２を登録すると、レスポンスノード５２にＷｅｂサービスの実行結果が反映されるまで、リクエストノード４２に対してアクセスしたアプリケーションをブロックする。リクエスト生成部２４は、リクエストノード４２に対してアクセスされたことに応じて、リクエストメッセージを生成する。リクエスト送信部２６は、当該リクエストメッセージをサーバ装置１００に送信する。レスポンス反映部３０は、レスポンス受信部２８によりレスポンスメッセージが受信されたことに応じてレスポンスノード５２を登録して、登録したレスポンスノード５２に対してＷｅｂサービスの実行結果を反映する。そして、ツリー構造記憶部２２は、レスポンスノード５２に対してアクセスされたことに応じてＷｅｂサービスの実行結果をアクセス元のアプリケーションに返信して、ブロックしていたアプリケーションを開放する。Ｗｅｂサービスインターフェイス２０がこのようなシンクロナスモードで動作することにより、アプリケーション実行部１２は、Ｗｅｂサービスにおける処理時間を意識せずに作成されたプログラムを、実行することができる。
【００３４】
アシンクロナスモードの場合、ツリー構造記憶部２２は、リクエストノード４２に対してアクセスされたことに応じてリクエストノード４２を登録する。リクエストノード４２を登録すると、Ｗｅｂサービスインターフェイス２０は、リクエストノード４２に対してアクセスしたアプリケーションを開放する。これにより、アプリケーションは、他の処理を実行することができる。リクエスト生成部２４は、リクエストノード４２に対してアクセスされたことに応じて、リクエストメッセージを生成する。リクエスト送信部２６は、当該リクエストメッセージをサーバ装置１００に送信する。レスポンス反映部３０は、レスポンス受信部２８によりレスポンスメッセージが受信されたことに応じてレスポンスノード５２に対してＷｅｂサービスの実行結果を反映する。そして、ツリー構造記憶部２２は、アプリケーションによるレスポンスノード５２に対するアクセスを待機し、レスポンスノード５２に対してアクセスされたことに応じてＷｅｂサービスの実行結果をアクセス元に返信する。Ｗｅｂサービスインターフェイス２０がこのようなアシンクロナスモードで動作することにより、アプリケーション実行部１２は、リクエストノード４２へのアクセスからレスポンスノード５２へのアクセスまでの間、他の処理を並行して実行することができる。
【００３５】
レイジーモードの場合、ツリー構造記憶部２２は、リクエストノード４２に対してアクセスされたことに応じてリクエストノード４２およびレスポンスノード５２を登録する。リクエスト生成部２４は、リクエストノード４２がアクセスされた時点ではリクエストメッセージを生成せず、その後、リクエストノード４２がアクセスされた後にレスポンスノード５２がアクセスされたことに応じて、リクエストメッセージを生成する。リクエスト送信部２６は、当該リクエストメッセージをサーバ装置１００に送信する。レスポンス反映部３０は、レスポンス受信部２８によりレスポンスメッセージが受信されたことに応じてレスポンスノード５２に対してＷｅｂサービスの実行結果を反映する。そして、ツリー構造記憶部２２は、Ｗｅｂサービスの実行結果をアクセス元に返信する。Ｗｅｂサービスインターフェイス２０がこのようなレイジーモードで動作することにより、アプリケーション実行部１２は、Ｗｅｂサービスの実行結果が準備されたことを検知してから、アクセスをしなくてよい。Ｗｅｂサービスインターフェイス２０によれば、レイジーモードで動作することにより、結果を使用することが明らかなＷｅｂサービスを呼び出すことができる。よってＷｅｂサービスインターフェイス２０は、無駄なＷｅｂサービスの呼び出しを防ぐことができる。
【００３６】
図５の（Ａ）は、サーバ装置１００が内部にキャッシュしているＷｅｂページを提供するＷｅｂサービスを利用する場合におけるＳＯＡＰのリクエストメッセージのボディー部分の一例を示し、図５の（Ｂ）は、（Ａ）の基となるリクエスト用部分木４０を指定することによりリクエストを送信するためのＸＰａｔｈの式を示す。本例におけるＷｅｂサービスは、検索キーおよび検索対象となるＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）がＸＭＬ形式で記述されたリクエストメッセージを受信すると、キャッシュしている該当ＵＲＬのＷｅｂページを検索キーにより検索して、ヒットしたＷｅｂページを返信する。
【００３７】
図５の（Ａ）のリクエストメッセージは、本例のＷｅｂサービスを特定するための要素（例えばｄｏｇｅｔＣａｃｈｅｄＰａｇｅ）内に、ｋｅｙ要素およびｕｒｌ要素を含む。ｋｅｙ要素は、検索キー（例えば００００）を指定する。ｕｒｌ要素は、検索対象となるＵＲＬ（例えばｈｔｔｐ：／／ｗｗｗ．ａａａａａａ．ｃｏｍ）を指定する。リクエスト生成部２４にこのようなリクエストメッセージを作成させるためには、ツリー構造記憶部２２は、本例のＷｅｂサービスを示したｄｏｇｅｔＣａｃｈｅｄＰａｇｅノードをリクエスト用部分木４０のルートノードとし、検索キーおよび検索対象となるＵＲＬを子ノードとして含んだサブツリーを記憶すればよい。なお、リクエスト生成部２４は、ＷＳＤＬ記載から"ｘｓｉ：ｔｙｐｅ＝"を抽出することができる。
【００３８】
ここで、ツリー構造記憶部２２は、ＸＰａｔｈを用いてアプリケーション実行部１２によりツリー構造にアクセスされることに応じて、記憶しているツリー構造に対して新たなサブツリーを追加してよい。これにより、アプリケーション実行部１２は、図５の（Ｂ）に示すＸＰａｔｈ式を用いてツリー構造にアクセスすることにより、図５の（Ａ）に示されたＳＯＡＰリクエストメッセージを作成させることを目的としたサブツリーを作成することができる。
【００３９】
ツリー構造記憶部２２は、一例として、次のような処理を行い、ＸＰａｔｈを用いてアクセスされることに応じてツリー構造に対して新たなサブツリーを追加してよい。すなわち、ツリー構造記憶部２２は、ＸＰａｔｈによりツリー構造にアクセスされた場合、まず、当該ＸＰａｔｈによって選択されるノードを登録しているか否かを判断する。登録している場合、ツリー構造記憶部２２は、当該ノードを返信して処理を終了する。登録していない場合、ツリー構造記憶部２２は、当該ＸＰａｔｈ式をロケーションステップに分解して、ロケーションステップ毎にノードが存在するか否かを判断する。ノードが存在しないロケーションステップを検出した場合、ツリー構造記憶部２２は、対応するノードをツリー構造に追加する。これにより、ツリー構造記憶部２２は、ＸＰａｔｈによるアクセスに応じて、ツリー構造に対してサブツリーを追加することができる。
【００４０】
なお、ＸＭＬドキュメントのツリー構造にサブツリーを作成する場合、アプリケーション実行部１２は、次の第１および第２の条件に従って表現されたＸＰａｔｈ式を作成することが望ましい。すなわち、アプリケーション実行部１２は、第１の条件として、全てのテストノードが具体的な要素名により特定されているＸＰａｔｈ式を作成する。例えば、アプリケーション実行部１２は、アスタリスクおよび「／／」等の具体的な要素が特定されない表現を用いていないＸＰａｔｈ式を作成する。さらに、アプリケーション実行部１２は、第２の条件として、述語が下記の形式に従ったＸＰａｔｈ式を作成する。
［ＰａｔｈＥｘｐｒ＝Ｌｉｔｅｒａｌ  …ａｎｄ  ＰａｔｈＥｘｐｒ＝Ｌｉｔｅｒａｌ］
ここで、ＰａｔｈＥｘｐｒおよびＬｉｔｅｒａｌは、ＸＰａｔｈ仕様書（J. Clark and S. DeRose. XML Path Language (XPath) Version 1.0. W3C Recommendation 16 November 1999, http://www.w3.org/TR/1999/REC-xpath-19991116.）により定義されている。このような第１および第２の条件に従って表現されたＸＰａｔｈ式によりアクセスされることにより、ツリー構造記憶部２２は、一義的にツリー構造内のノードを特定することができる。
【００４１】
また、ツリー構造記憶部２２は、サブツリーを追加した後のツリー構造の妥当性を、ＷＳＤＬファイルを用いて予め検証してよい。サブツリーを追加した後のツリー構造が妥当でない場合には、ツリー構造記憶部２２は、当該サブツリーを追加しなくてよい。
【００４２】
以上のようにアプリケーション実行部１２によれば、ツリー構造記憶部２２により記憶されているツリー構造に対して、ＸＰａｔｈによりアクセスすることができるので、ＸＭＬドキュメントと同様の処理により、外部のサーバ装置１００上のＷｅｂサービスを利用することができる。
【００４３】
図６は、変換部３６による変換条件の記述例を示す。変換部３６は、変換ルール記憶部３４に記憶された変換ルールに基づいて、ツリー構造記憶部２２に記憶されたＷｅｂサービスの結果を反映したレスポンス用部分木５０のツリー構造を変換する。変換部３６は、一例として、図６に示すような、ＸＭＬ変換用言語により記述された変換ルールに応じてツリー構造を変換してよい。
【００４４】
図６において、ｒｅｑｕｅｓｔ要素は、いずれのリクエストメッセージに対応するレスポンス用部分木５０を変換するかを示す。ｐｒｅｄｉｃａｔｅ要素は、リクエストメッセージに含まれるパラメータを示す。Ｔｒａｎｓｆｏｒｍａｔｉｏｎ要素は、変換方法を示す。Ｔｒａｎｓｆｏｒｍａｔｉｏｎ要素内のｔａｒｇｅｔ属性は、例えば、ツリー構造における変換対象となるノードの位置を特定する。より具体的には、ｔａｒｇｅｔ属性は、ｔａｒｇｅｔ＝"．"と記述された場合には、レスポンス用部分木５０を変換対象として特定し、ｔａｒｇｅｔ＝"／"と記述された場合には、ツリー構造全体を変換対象として特定する。ｓｔｙｌｅｓｈｅｅｔ要素は、変換の具体的な内容を示す。
【００４５】
以上のような変換部３６を備えることにより、Ｗｅｂサービスインターフェイス２０によれば、Ｗｅｂサービスの実行結果を、Ｗｅｂサービスを利用するアプリケーションに適した構造に変換することができる。また、変換部３６を備えることにより、Ｗｅｂサービスインターフェイス２０によれば、Ｗｅｂサービスの実行結果の仕様が変更された場合であっても、各アプリケーションのプログラムの記述を変更しなくて済むので、ユーザの負担を減らすことができる。
【００４６】
図７は、本実施形態の他の一例に係る情報処理装置１０の構成をサーバ装置１００およびＨＴＭＬサーバ装置２００とともに示す。図７に示す各部材は、図１に示した同一の符号の部材と略同一の構成及び機能を採るので、以下、相違点を除き説明を省略する。ＨＴＭＬサーバ装置２００は、ＨＴＭＬ（Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｅ）ドキュメントを情報処理装置１０に対して提供する。
【００４７】
本例に係る情報処理装置１０は、ブラウザ実行部８０を備える。ブラウザ実行部８０は、ＨＴＭＬドキュメントのブラウジングの機能に加えてＷｅｂサービスを利用する機能も提供するブラウザを実行する。ブラウザ実行部８０は、ＨＴＭＬ処理部８２と、スクリプト処理部８４と、レンダリング処理部８６と、Ｗｅｂサービスインターフェイス２０とを有する。ＨＴＭＬ処理部８２は、ＨＴＭＬドキュメントの取得および解析をする。スクリプト処理部８４は、ＨＴＭＬドキュメントに含まれているスクリプトを実行する。レンダリング処理部８６は、ＨＴＭＬ処理部８２により解析されたＨＴＭＬドキュメントをレンダリングする。ＨＴＭＬ処理部８２、スクリプト処理部８４およびレンダリング処理部８６を合わせた機能ブロックは、図１に示すアプリケーション実行部１２の一例である。
【００４８】
図８は、図７に示す情報処理装置１０によるＷｅｂサービスの利用処理の流れの一例を示す。まず、ＨＴＭＬ処理部８２は、ＨＴＭＬサーバ装置２００に対してＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）を送信する（Ｓ２１）。次に、ＨＴＭＬ処理部８２は、対応するＨＴＭＬドキュメントを取得して、解析する（Ｓ２２）。次に、レンダリング処理部８６は、ＨＴＭＬ処理部８２により取得されたＨＴＭＬドキュメントをレンダリングする。これとともに、スクリプト処理部８４は、ＨＴＭＬドキュメントに含まれているスクリプトをロードする（Ｓ２３）。次に、ＨＴＭＬ処理部８２は、ロードされたスクリプトの実行を伴うイベントが発生されたことを検出する（Ｓ２４）。ＨＴＭＬ処理部８２は、一例として、ＨＴＭＬドキュメント中の検索キーワードボックスにキーワードが入力されたことに応じて、イベントが発生されたことを検出してよい。
【００４９】
次に、ＨＴＭＬ処理部８２は、スクリプト処理部８４によりロードされている対応するスクリプトを呼び出す（Ｓ２５）。次に、スクリプト処理部８４は、Ｗｅｂサービスを利用するスクリプトの実行中において、Ｗｅｂサービスインターフェイス２０を呼び出して例えばＸＰａｔｈを指定することにより、リクエストノード４２およびレスポンスノード５２に対してアクセスする（Ｓ２６）。
【００５０】
次に、Ｗｅｂサービスインターフェイス２０は、リクエストノード４２へのアクセスを受けたことに応じて、当該リクエストノード４２に応じたＷｅｂサービスを呼び出すリクエストメッセージを生成して、サーバ装置１００へ送信する（Ｓ２７）。次に、Ｗｅｂサービスインターフェイス２０は、サーバ装置１００からレスポンスメッセージを受信する（Ｓ２８）。次に、Ｗｅｂサービスインターフェイス２０は、レスポンスメッセージに含まれるＷｅｂサービスの実行結果を、レスポンスノード５２に反映する（Ｓ２９）。
【００５１】
次に、スクリプト処理部８４は、Ｗｅｂサービスの実行結果が反映されたレスポンスノード５２に基づき、ＨＴＭＬ処理部８２により保持されているＨＴＭＬドキュメントの対応する部分を変更する（Ｓ３０）。ツリー構造記憶部２２は、一例として、Ｗｅｂサービスの実行結果が反映されたレスポンスノード５２を含むレスポンス用部分木５０を、ＨＴＭＬ処理部８２により保持されているＨＴＭＬドキュメントに対して複写してよい。次に、レンダリング処理部８６は、変更されたＨＴＭＬドキュメントをレンダリングする（Ｓ３１）。
【００５２】
このようなブラウザ実行部８０によれば、スクリプト内でＷｅｂサービスインターフェイス２０を利用することができるので、スクリプトからＷｅｂサービスへのアクセスを容易とすることができる。例えば、ブラウザ実行部８０は、スクリプトを実行することにより、Ｗｅｂサービスの実行結果をＨＴＭＬドキュメントに取り込むことができる。より具体的には、例えば、ブラウザ実行部８０は、ＨＴＭＬドキュメントに含まれたあるオブジェクトに対する操作を検出した場合、Ｗｅｂサービスインターフェイス２０内のツリー構造のレスポンスノード５２に反映されているＷｅｂサービスの実行結果を表示し、当該オブジェクトに対する操作を検出しない場合、元のＨＴＭＬドキュメント内のオブジェクトを表示してよい。
【００５３】
図９の（Ａ）は、キャッシュしているＷｅｂページを提供するＷｅｂサービスを取得するために"ｗｓ：Ｒｅｑｕｅｓｔ"にアクセスするスクリプトの一例を示し、図９の（Ｂ）は、 "ｗｓ：Ｒｅｓｐｏｎｓｅ"にアクセスするスクリプトのコードの一例を示す。また、図１０は、図９に示したＸＰａｔｈ式により生成されるツリー構造の一例を示す。
【００５４】
キャッシュしているＷｅｂページを提供するＷｅｂサービスを利用する場合、スクリプト処理部８４は、図９（Ａ）に示すＸＰａｔｈの式によりＷｅｂサービスインターフェイス２０に対してアクセスしてよい。これにより、スクリプト処理部８４は、図１０に示すように、"ｗｓ：Ｑｕｅｒｙ"の下に新たにリクエスト用部分木４０およびレスポンス用部分木５０を作成することができる。スクリプト処理部８４は、ＸＰａｔｈを用いることにより、比較的に短いコードにより、リクエストノード４２にアクセスすることができる。
【００５５】
図１０に示すツリー構造は、"ｗｓ：ＷｅｂＳｅｒｖｉｃｅ"、"ｗｓ：Ｑｕｅｒｙ"、"ｗｓ：Ｒｅｑｕｅｓｔ"、"ｗｓ：Ｒｅｓｐｏｎｃｅ"という４つのノードを有する。"ｗｓ：ＷｅｂＳｅｒｖｉｃｅ"は、当該ツリー構造のルートノードであり、サブツリー追加後のツリー構造が妥当であるかどうかを判断するために用いるＷＳＤＬファイルのＵＲＬを有してよい。"ｗｓ：Ｑｕｅｒｙ"は、"ｗｓ：ＷｅｂＳｅｒｖｉｃｅ"の子であり、Ｗｅｂサービスのそれぞれに対応するクエリーを表す。"ｗｓ：Ｑｕｅｒｙ"は、子として、"ｗｓ：Ｒｅｑｕｅｓｔ"を含むリクエスト用部分木４０および"ｗｓ：Ｒｅｓｐｏｎｓｅ"を含むレスポンス用部分木５０を有する。
【００５６】
"ｗｓ：Ｒｅｑｕｅｓｔ"は、リクエストノード４２の一例である。"ｗｓ：Ｒｅｑｕｅｓｔ"は、ＳＯＡＰによるリクエストメッセージのボディー部分と同じ構成のパラメータノード４４を有する。本例の場合においては、"ｗｓ：Ｒｅｑｕｅｓｔ"は、子としての"ｇｗｓ：ｄｏＧｅｔＣａｓｈｅＰａｇｅ"、および、孫としての"ｇｗｓ：ｋｅｙ"およびサーバ装置１００のＵＲＬを示す"ｇｗｓ：ｕｒｌ"とを有する。"ｇｗｓ：ｄｏＧｅｔＣａｓｈｅＰａｇｅ"は、Ｗｅｂサービスの内容を示す。ｇｗｓ：ｋｅｙ"は、検索キーワードを示し、サーバ装置１００のＵＲＬを示す。
【００５７】
"ｗｓ：Ｒｅｓｐｏｎｓｅ"は、レスポンスノード５２の一例である。"ｗｓ：Ｒｅｓｐｏｎｓｅ"は、ＳＯＡＰによるレスポンスメッセージのボディー部分と同じ構成のリターンノード５４を有する。本例の場合においては、"ｗｓ：Ｒｅｓｐｏｎｓｅ"は、子のリターンノード５４として、"ｇｗｓ：ｄｏＧｅｔＣａｓｈｅＰａｇｅＲｅｓｐｏｎｓｅ"、孫のリターンノード５４として、検索結果を示す"ｇｗｓ：ｒｅｔｕｒｎ"を有する。
【００５８】
また、スクリプト処理部８４は、図１０（Ｂ）に示すＸＰａｔｈの式によりＷｅｂサービスインターフェイス２０に対してアクセスしてよい。これにより、スクリプト処理部８４は、図１０に示すような"ｗｓ：Ｒｅｓｐｏｎｓｅ"の下のレスポンス用部分木５０から、キャッシュしているＷｅｂページを提供するＷｅｂサービスの実行結果を取得することができる。スクリプト処理部８４は、ＸＰａｔｈを用いることにより、比較的に短いコードにより、レスポンスノード５２からＷｅｂサービスの実行結果を取得することができる。
【００５９】
図１１は、本実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、及び表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、ハードディスクドライブ２０４０、及びＣＤ−ＲＯＭドライブ２０６０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０を有するレガシー入出力部とを備える。
【００６０】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００及びグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０及びＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【００６１】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０を接続する。通信インターフェイス２０３０は、ネットワークを介して他の装置と通信する。ハードディスクドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ２０６０は、ＣＤ−ＲＯＭ２０９５からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。
【００６２】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラムや、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ２０５０は、フレキシブルディスク２０９０からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。入出力チップ２０７０は、フレキシブルディスク・ドライブ２０５０や、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を接続する。
【００６３】
ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供されるプログラムは、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスクドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。
【００６４】
コンピュータ１９００にインストールされ、コンピュータ１９００をＷｅｂサービスインターフェイス２０として機能させるプログラムは、ツリー構造記憶部モジュールと、リクエスト生成部モジュールと、リクエスト送信部モジュールと、レスポンス受信部モジュールと、レスポンス反映部モジュールと、キャッシュ処理部モジュールと、変換ルール記憶部モジュールと、変換部モジュールとを備える。これらのプログラム又はモジュールは、ＣＰＵ２０００等に働きかけて、コンピュータ１９００を、ツリー構造記憶部２２、リクエスト生成部２４、リクエスト送信部２６、レスポンス受信部２８、レスポンス反映部３０、キャッシュ処理部３２、変換ルール記憶部３４としてそれぞれ機能させる。
【００６５】
以上に示したプログラム又はモジュールは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５の他に、ＤＶＤやＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。
【００６６】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００６７】
【図１】本発明の実施形態に係る情報処理装置１０の構成を、サーバ装置１００とともに示す。
【図２】リクエスト用部分木４０およびレスポンス用部分木５０の構成の一例を示す。
【図３】リクエスト生成部２４の構成の一例を示す。
【図４】本発明の実施形態に係る情報処理装置１０の処理の流れを示す。
【図５】（Ａ）は、サーバ装置１００が内部にキャッシュしているＷｅｂページを提供するＷｅｂサービスを利用する場合におけるＳＯＡＰのリクエストメッセージのボディー部分の一例を示し、（Ｂ）は、（Ａ）の基となるリクエスト用部分木４０を指定することによりリクエストを送信するためのＸＰａｔｈの式を示す。
【図６】変換部３６による変換条件の記述例を示す。
【図７】本実施形態の他の一例に係る情報処理装置１０の構成をサーバ装置１００およびＨＴＭＬサーバ装置２００とともに示す。
【図８】図７に示す情報処理装置１０によるＷｅｂサービスの利用処理の流れの一例を示す。
【図９】（Ａ）は、キャッシュしているＷｅｂページを提供するＷｅｂサービスを利用するためのツリー構造における"ｗｓ：Ｒｅｑｕｅｓｔ"にアクセスするためのＸＰａｔｈの式を示し、（Ｂ）は、前記ツリー構造における"ｗｓ：Ｒｅｓｐｏｎｓｅ"にアクセスするためのＸＰａｔｈの式を示す。
【図１０】図９に示したＸＰａｔｈ式により生成されるツリー構造の一例を示す。
【図１１】本発明の実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。
【符号の説明】
【００６８】
１０  情報処理装置
１２  アプリケーション実行部
１４  ドキュメント記憶部
２０  Ｗｅｂサービスインターフェイス
２２  ツリー構造記憶部
２４  リクエスト生成部
２６  リクエスト送信部
２８  レスポンス受信部
３０  レスポンス反映部
３２  キャッシュ処理部
３４  変換ルール記憶部
３６  変換部
４０  リクエスト用部分木
４２  リクエストノード
４４  パラメータノード
５０  レスポンス用部分木
５２  レスポンスノード
５４  リターンノード
６２  キャッシュヒット処理部
６４  キャッシュミス処理部
７２  サービス名取得部
７４  ＷＳＤＬ取得部
７６  アドレス取得部
８０  ブラウザ実行部
８２  ＨＴＭＬ処理部
８４  スクリプト処理部
８６  レンダリング処理部
１００  サーバ装置
２００  ＨＴＭＬサーバ装置
１９００  コンピュータ
２０００  ＣＰＵ
２０１０  ＲＯＭ
２０２０  ＲＡＭ
２０３０  通信インターフェイス
２０４０  ハードディスクドライブ
２０５０  フレキシブルディスク・ドライブ
２０６０  ＣＤ−ＲＯＭドライブ
２０７０  入出力チップ
２０７５  グラフィック・コントローラ
２０８０  表示装置
２０８２  ホスト・コントローラ
２０８４  入出力コントローラ
２０９０  フレキシブルディスク
２０９５  ＣＤ−ＲＯＭ
【図１】
2007279838.tif 000003
【図２】
2007279838.tif 000004
【図３】
2007279838.tif 000005
【図４】
2007279838.tif 000006
【図５】
2007279838.tif 000007
【図６】
2007279838.tif 000008
【図７】
2007279838.tif 000009
【図８】
2007279838.tif 000010
【図９】
2007279838.tif 000011
【図１０】
2007279838.tif 000012
【図１１】
2007279838.tif 000013