説明

情報処理装置、方法およびプログラム

【課題】外部のサーバ装置上のWebサービスを利用するためのインターフェイスを提供する。
【解決手段】Webサービスを利用するために用いる第1ツリー構造を記憶する第1記憶部と、第1ツリー構造内の、Webサービスを呼び出すために用いられるリクエストノードへのアクセスを受けたことに応じて、当該リクエストノードに応じたWebサービスを呼び出すリクエストメッセージを生成するリクエスト生成部と、Webサービスを提供するサーバ装置に対してリクエストメッセージを送信するリクエスト送信部と、サーバ装置から、Webサービスを実行した結果を含むレスポンスメッセージを受信するレスポンス受信部と、Webサービスを実行した結果を、第1ツリー構造内の、Webサービスの結果を記憶するためのレスポンスノードに反映するレスポンス反映部とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、方法およびプログラムに関する。特に本発明は、外部のサーバ装置上のWebサービスを利用するためのインターフェイスを提供する情報処理装置、方法およびプログラムに関する。
【背景技術】
【0002】
従来より、インターネットを介してアクセスされるアプリケーションコンポーネントであるWebサービスが知られている。情報処理装置は、外部のサーバ装置上のWebサービスを利用することにより、ネットワークを介した分散コンポーネント環境を実現できる。Webサービスを利用する情報処理装置は、当該Webサービスに応じた形式のSOAPメッセージを送出し、Webサービスからの応答を受信する。従来、Webサービスを利用する情報処理装置により実行されるプログラムは、OOP(Object−Oriented Programming)モデルを用いて、Webサービスにおけるリクエストメッセージの生成、レスポンスメッセージの受信およびレスポンスメッセージの解釈を行っていた。
【0003】
一方、Webブラウザアプリケーション(以下、単にブラウザと呼ぶ。)により利用される例えばHTML(Hypertext Markup Languae)やXML(eXtensible Markup Language)ドキュメントは、DOM(Document Object Model)等のツリー構造モデルに基づき作成されていた。
【0004】
なお、非特許文献1、2には、OOPモデルに基づくWebサービスのプログラミングモデルが記載されている。非特許文献3、4には、DOM(Document Object Model)の操作をWebサービスとして提供することが記載されている。
【0005】
【非特許文献1】H. Kreger,"Web services conceptual architecture (wsca 1.0). Technical report",[online],2001年5月,IBM Software Group,[2006年3月30日検索],インターネット<URL :http://www-306.ibm.com/software/solutions/webservices/pdf/WSCA.pdf>
【非特許文献2】S. Loughran and E. Smith. , Rethinking the Java SOAP stack.", 米国, 2005, In ICWS, P.845-852
【非特許文献3】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
【非特許文献4】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
【発明の開示】
【発明が解決しようとする課題】
【0006】
ところで、ブラウザは、広く普及しており、HTMLドキュメントの作成ツールも広く利用されている。従って、ユーザは、Webサービスのクライアントアプリケーションとして、ブラウザを利用することが望ましい。しかしながら、Webサービスのクライアントアプリケーションとしてブラウザを利用する場合、ユーザは、ツリー構造モデルに基づいたドキュメントの作成とともに、OOPモデルに基づいたWebサービスへのアクセスプログラムの作成をしなければならず、異なるプログラミングモデルの取り扱いによる負担が大きかった。
【0007】
そこで本発明は、上記の課題を解決することのできる情報処理装置、方法およびプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【0008】
本発明の第1の形態によると、外部のサーバ装置上のWebサービスを利用するためのインターフェイスを提供する情報処理装置であって、Webサービスを利用するために用いる第1ツリー構造を記憶する第1記憶部と、第1ツリー構造内の、Webサービスを呼び出すために用いられるリクエストノードへのアクセスを受けたことに応じて、当該リクエストノードに応じたWebサービスを呼び出すリクエストメッセージを生成するリクエスト生成部と、Webサービスを提供するサーバ装置に対してリクエストメッセージを送信するリクエスト送信部と、サーバ装置から、Webサービスを実行した結果を含むレスポンスメッセージを受信するレスポンス受信部と、Webサービスを実行した結果を、第1ツリー構造内の、Webサービスの結果を記憶するためのレスポンスノードに反映するレスポンス反映部とを備える情報処理装置、当該情報処理装置に関する情報処理方法およびプログラムを提供する。
【0009】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明の効果】
【0010】
本発明によれば、ツリー構造内のノードへのアクセスを通じてWebサービスを利用できるので、サーバ装置上のWebサービスを容易に利用可能とする。
【発明を実施するための最良の形態】
【0011】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0012】
図1は、本実施形態に係る情報処理装置10の構成を100とともに示す。サーバ装置100は、外部装置からインターネットを利用してアクセスされるアプリケーションコンポーネントであるWebサービスを記憶する。サーバ装置100は、情報処理装置10からSOAPに従ったリクエストメッセージを受けると、Webサービスを実行する。そして、サーバ装置100は、Webサービスの実行を完了すると、Webサービスを実行した結果を含むレスポンスメッセージをSOAPに従って情報処理装置10に返信する。なお、Webサービスは、XMLをインターフェイスとして採用することから、XML Webサービスとも呼ばれる。
【0013】
情報処理装置10は、アプリケーションを実行するとともに、外部のサーバ装置上のWebサービスを利用するためのインターフェイスを提供する。情報処理装置10は、Webサービスを利用するためのインターフェイスをAPI(Application Program Interface)として提供してもよいし、Webブラウザ等のアプリケーションの一部として提供してもよい。
【0014】
情報処理装置10は、アプリケーション実行部12と、ドキュメント記憶部14と、Webサービスインターフェイス20とを備える。アプリケーション実行部12は、Webサービスを利用するアプリケーションを実行し、当該アプリケーションを実行することにより得られる機能を提供する。アプリケーション実行部12は、サーバ装置100上のWebサービスを利用することを目的として、Webサービスインターフェイス20に対してアクセスをする。ドキュメント記憶部14は、アプリケーション実行部12により利用されるドキュメントを記憶してよい。ドキュメント記憶部14は、一例として、XHTML(eXtensible Hypertext Markup Languae)等のツリー構造化されたドキュメントを記憶する。
【0015】
Webサービスインターフェイス20は、本発明に係るインターフェイスの一例であり、外部のサーバ装置100上のWebサービスを利用することを目的としてアプリケーション実行部12からアクセスを受けると、インターネット等のネットワークを介して、サーバ装置100に対してリクエストメッセージを送信し、サーバ装置100からWebサービスの実行結果を含むレスポンスメッセージを受信する。
【0016】
Webサービスインターフェイス20は、ツリー構造記憶部22と、リクエスト生成部24と、リクエスト送信部26と、レスポンス受信部28と、レスポンス反映部30と、キャッシュ処理部32と、変換ルール記憶部34と、変換部36とを有する。ツリー構造記憶部22は、Webサービスを利用するために用いるツリー構造を記憶する。ツリー構造記憶部22は、一例として、ツリー構造をXMLドキュメントにより記憶してよい。ツリー構造記憶部22により記憶されているツリー構造は、Webサービスに対するリクエストを行うためにアクセスされるリクエスト用部分木40と、Webサービスの結果を反映するレスポンス用部分木50とを含む。リクエスト用部分木40は、Webサービスを呼び出すために用いられるリクエストノード42を含む。レスポンス用部分木50は、Webサービスの結果を記憶するためのレスポンスノード52を含む。ここで、リクエスト用部分木40およびレスポンス用部分木50は、異なるノードを親としてもよいし、同一のノードを親としてもよい。また、リクエストノード42およびレスポンスノード52は、同一のノードであってもよい。さらに、ツリー構造記憶部22は、Webサービスの結果が反映されたレスポンスノード52をキャッシングしてよい。また、ツリー構造記憶部22は、リクエスト生成部24がリクエストメッセージを生成すれば、リクエストノード42を記憶しなくてもよい。
【0017】
リクエスト生成部24は、ツリー構造内のリクエストノード42へのアクセスを受けたことに応じて、当該リクエストノード42に応じたWebサービスを呼び出すリクエストメッセージを生成する。本実施形態においては、リクエスト生成部24は、アプリケーション実行部12からアクセスを受けたことに応じて、リクエストメッセージを生成する。リクエスト送信部26は、リクエストメッセージの対象となるWebサービスを提供するサーバ装置100に対して、リクエスト生成部24により生成されたリクエストメッセージを送信する。レスポンス受信部28は、サーバ装置100から、Webサービスを実行した結果を含むレスポンスメッセージを受信する。レスポンス反映部30は、レスポンス受信部28により受信されたレスポンスメッセージに含まれるWebサービスを実行した結果を、ツリー構造内のレスポンスノード52に反映する。
【0018】
キャッシュ処理部32は、ツリー構造記憶部22によるレスポンスノード52のキャッシングを制御する。キャッシュ処理部32は、キャッシュヒット処理部62と、キャッシュミス処理部64とを含んでよい。キャッシュヒット処理部62は、Webサービスに対するリクエストを行うためにアクセスされた場合、リクエストノード42がツリー構造内に既に登録されていることを条件として、ツリー構造記憶部22にキャッシュされた当該Webサービスの結果をアクセス元に返す。キャッシュミス処理部64は、Webサービスに対するリクエストを行うためにアクセスされた場合、リクエストノード42がツリー構造内に登録されていないことを条件として、リクエスト送信部26によりリクエストメッセージを送信させ、Webサービスの結果をツリー構造記憶部22にキャッシュさせると共に、リクエストノード42をツリー構造内のノードとして新たに登録させる。
【0019】
変換ルール記憶部34は、それぞれのリクエストノード42に対応して、当該リクエストノード42をアクセスしたことに応じて受信されるレスポンスメッセージを変換する変換ルールを記憶する。変換部36は、レスポンスメッセージに含まれるWebサービスの結果を反映したツリー構造を、変換ルール記憶部34に記憶されたレスポンスメッセージに対応する変換ルールに基づいて変換する。
【0020】
図2は、リクエスト用部分木40およびレスポンス用部分木50の構成の一例を示す。リクエスト用部分木40は、リクエストノード42を例えばルートノードとして含む。これに加えて、リクエスト用部分木40は、当該リクエストノード42の子孫となる1又は複数のパラメータノード44を含んでよい。各パラメータノード44は、Webサービスに対して提供するパラメータを格納する。各パラメータノード44は、一例として、Webサービスに対して渡す引数を格納する。アプリケーション実行部12は、Webサービスに対して提供する各パラメータを、当該Webサービスに対応して定められたリクエストノード42の子孫となるそれぞれのパラメータノード44に対して設定してよい。この場合において、リクエスト生成部24は、一例として、アプリケーション実行部12によりパラメータが設定されたそれぞれのパラメータノード44から当該パラメータを取得して、当該パラメータを含むリクエストメッセージを生成してよい。なお、SOAPにおいてはリクエストメッセージに含める引数をXML形式で記述することができるので、リクエスト生成部24は、ツリー構造で表されたパラメータノード44をそのまま引数としてリクエストメッセージに含めてよい。
【0021】
レスポンス用部分木50は、レスポンスノード52を例えばルートノードとして含む。これに加えて、レスポンス用部分木50は、当該レスポンスノード52の子孫となる1又は複数のリターンノード54を含んでよい。リターンノード54は、レスポンスメッセージに含まれるWebサービスを実行した結果を格納する。リターンノード54は、一例として、レスポンスメッセージに含まれる戻り値を格納する。レスポンス反映部30は、レスポンスメッセージに含まれるWebサービスの実行結果を、当該Webサービスに対応して定められたレスポンスノード52の子孫となるそれぞれのリターンノード54に対して反映してよい。なお、SOAPにおいてはレスポンスメッセージに含める戻り値をXML形式で記述することができるので、レスポンス反映部30は、レスポンスメッセージに含められた戻り値をそのままリターンノード54に置き換えてよい。
【0022】
さらに、リクエストメッセージに対応するWebサービスの実行結果は一意に定まるので、ツリー構造記憶部22は、Webサービスの実行結果をキャッシングすることを目的として、例えばWebサービス毎またはWebサービスに対して送信するパラメータ毎に、リクエスト用部分木40およびレスポンス用部分木50を記憶してよい。この場合において、ツリー構造記憶部22は、アプリケーション実行部12によりアクセスされた場合、対応するリクエスト用部分木40がツリー構造内に登録されていないこと条件として、リクエスト用部分木40およびレスポンス用部分木50を新たに記憶する。また、ツリー構造記憶部22は、アプリケーション実行部12によりアクセスされた場合、対応するリクエスト用部分木40がツリー構造内に登録されていることを条件として、キャッシュされているリクエスト用部分木40およびレスポンス用部分木50を返信する。これにより、ツリー構造記憶部22によれば、アプリケーション実行部12によるアクセスに対して高速に返信することができる。
【0023】
図3は、リクエスト生成部24の構成の一例を示す。リクエスト生成部24は、サービス名取得部72と、WSDL取得部74と、アドレス取得部76とを含んでよい。サービス名取得部72は、リクエストノード42からWebサービスの名称を取得する。WSDL取得部74は、サービス名取得部72により取得されたWebサービスの名称を用いて当該Webサービスの仕様を定めたWSDL(Web Services Description Language)記述を取得する。WSDL取得部74は、一例として、UDDI(Universal Description Discovery, and Integration)を用いてレジストリを検索することにより、WSDL記述を取得してよい。
【0024】
アドレス取得部76は、WSDL取得部74により取得されたWSDL記述から、Webサービスを提供するサーバ装置100のアドレスを取得する。そして、リクエスト送信部26は、アドレス取得部76が取得したアドレス宛にリクエストメッセージを送信する。これにより、Webサービスインターフェイス20によれば、リクエストメッセージの宛先、すなわち、対応するWebサービスの所在を取得し、対応するWebサービスを提供するサーバ装置100に対して、リクエストメッセージを送信することができる。
【0025】
図4は、本実施形態に係る情報処理装置10の処理の流れを示す。Webサービスを利用する場合、まず、アプリケーション実行部12は、ツリー構造記憶部22に記憶されたツリー構造内におけるリクエスト用部分木40のリクエストノード42にアクセスする(S11)。この場合において、アプリケーション実行部12は、ツリー構造内におけるリクエストノード42の位置を示すパスを指定することにより、利用するWebサービスに応じて定められたリクエストノード42にアクセスしてよい。ツリー構造記憶部22は、アクセスされたリクエストノード42がツリー構造内に登録されていない場合、当該ツリー構造内の指定されたパスに新たにリクエスト用部分木40およびレスポンス用部分木50を登録する。
【0026】
次に、アプリケーション実行部12は、ツリー構造記憶部22に記憶されたツリー構造内におけるレスポンス用部分木50のレスポンスノード52に対してアクセスをする(S12)。この場合において、アプリケーション実行部12は、ツリー構造をたどるためのパスを指定することにより、利用するWebサービスに応じて決定されるレスポンスノード52にアクセスしてよい。ツリー構造記憶部22は、アクセスされたレスポンスノード52がツリー構造内に既に登録されている場合、当該レスポンスノード52またはレスポンスノード52の子孫のノードに格納されるWebサービスの実行結果をアプリケーション実行部12に対して返信して、処理を終了してよい。
【0027】
次に、アクセスされたリクエストノード42がツリー構造内に登録されていないことを条件に、リクエスト生成部24は、当該リクエストノード42に応じたWebサービスを呼び出すリクエストメッセージを生成する(S13)。次に、リクエスト送信部26は、Webサービスを提供するサーバ装置100に対してリクエストメッセージを送信する(S14)。送信されたリクエストメッセージは、サーバ装置100に提供される。リクエストメセージを受けたサーバ装置100は、Webサービスを実行する。そして、サーバ装置100は、Webサービスの実行結果を含むレスポンスメッセージを返信する。
【0028】
次に、レスポンス受信部28は、サーバ装置100からレスポンスメッセージを受信する(S15)。次に、レスポンス反映部30は、レスポンスメッセージに含まれるWebサービスの実行結果を、ツリー構造内のレスポンスノード52に反映する(S16)。そして、ツリー構造記憶部22は、当該レスポンスノード52またはレスポンスノード52の子孫のノードに格納されるWebサービスの実行結果をアプリケーション実行部12に対して返信して、処理を終了する。
【0029】
以上のようなWebサービスインターフェイス20によれば、アプリケーション実行部12からツリー構造内のノードに対してアクセスを受けることにより、Webサービスを実行した結果を返答する。すなわち、Webサービスインターフェイス20によれば、アプリケーション実行部12に対して、ツリー構造によって階層化されたドキュメントへのアクセスする場合における処理と同様の処理により、外部のサーバ装置上のWebサービスを利用させることができる。従って、Webサービスインターフェイス20によれば、ツリー構造によって階層化されたドキュメントおよびWebサービスの両者を利用する場合であっても、当該アプリケーション実行部12により実行されるプログラムを、ツリー構造によって階層化されたデータに対してアクセスするプログラムモデルを用いるものに統一させることができる。これにより、Webサービスインターフェイス20によれば、ユーザによるプログラミングの負担を軽減することができる。
【0030】
また、ドキュメント記憶部14がアプリケーションにより使用されるドキュメントを、ツリー構造記憶部22に記憶されたツリー構造とは異なる第2ツリー構造により記憶する場合、アプリケーション実行部12は、一のWebサービスの結果が反映された少なくとも1つのレスポンスノード52を含むツリー構造内のレスポンス用部分木50を、ドキュメント記憶部14に記憶された第2ツリー構造内の部分木として複製してよい。これにより、アプリケーション実行部12によれば、Webサービスインターフェイス20により取得されたWebサービスの実行結果を、当該アプリケーション実行部12により作成されたドキュメントの一部として取り扱うことができる。
【0031】
また、ツリー構造記憶部22は、アプリケーションにより使用されるドキュメントを、Webサービスを利用するために用いるツリー構造により記憶してよい。この場合において、アプリケーション実行部12は、ツリー構造記憶部22に記憶されたツリー構造にアクセスしてドキュメントを使用する。さらに、アプリケーション実行部12は、ドキュメントの一部にWebサービスを利用した結果を反映させる場合、ツリー構造記憶部22に記憶されたツリー構造内の、ドキュメントの一部に対応して定められたリクエストノード42をアクセスする。そして、レスポンス反映部30は、Webサービスを実行した結果を、ドキュメントの一部に対して反映する。これにより、アプリケーション実行部12によれば、Webサービスインターフェイス20により取得されたWebサービスの実行結果を、当該アプリケーション実行部12により作成されたドキュメントの一部として取り扱うことができる。
【0032】
また、Webサービスインターフェイス20は、リクエストメッセージの送信及びレスポンスノード52の登録を、シンクロナスモード、アシンクロナスモードまたはレイジーモードのいずれかにより行ってよい。
【0033】
シンクロナスモードの場合、ツリー構造記憶部22は、リクエストノード42に対してアクセスされたことに応じてリクエストノード42を登録する。Webサービスインターフェイス20は、リクエストノード42を登録すると、レスポンスノード52にWebサービスの実行結果が反映されるまで、リクエストノード42に対してアクセスしたアプリケーションをブロックする。リクエスト生成部24は、リクエストノード42に対してアクセスされたことに応じて、リクエストメッセージを生成する。リクエスト送信部26は、当該リクエストメッセージをサーバ装置100に送信する。レスポンス反映部30は、レスポンス受信部28によりレスポンスメッセージが受信されたことに応じてレスポンスノード52を登録して、登録したレスポンスノード52に対してWebサービスの実行結果を反映する。そして、ツリー構造記憶部22は、レスポンスノード52に対してアクセスされたことに応じてWebサービスの実行結果をアクセス元のアプリケーションに返信して、ブロックしていたアプリケーションを開放する。Webサービスインターフェイス20がこのようなシンクロナスモードで動作することにより、アプリケーション実行部12は、Webサービスにおける処理時間を意識せずに作成されたプログラムを、実行することができる。
【0034】
アシンクロナスモードの場合、ツリー構造記憶部22は、リクエストノード42に対してアクセスされたことに応じてリクエストノード42を登録する。リクエストノード42を登録すると、Webサービスインターフェイス20は、リクエストノード42に対してアクセスしたアプリケーションを開放する。これにより、アプリケーションは、他の処理を実行することができる。リクエスト生成部24は、リクエストノード42に対してアクセスされたことに応じて、リクエストメッセージを生成する。リクエスト送信部26は、当該リクエストメッセージをサーバ装置100に送信する。レスポンス反映部30は、レスポンス受信部28によりレスポンスメッセージが受信されたことに応じてレスポンスノード52に対してWebサービスの実行結果を反映する。そして、ツリー構造記憶部22は、アプリケーションによるレスポンスノード52に対するアクセスを待機し、レスポンスノード52に対してアクセスされたことに応じてWebサービスの実行結果をアクセス元に返信する。Webサービスインターフェイス20がこのようなアシンクロナスモードで動作することにより、アプリケーション実行部12は、リクエストノード42へのアクセスからレスポンスノード52へのアクセスまでの間、他の処理を並行して実行することができる。
【0035】
レイジーモードの場合、ツリー構造記憶部22は、リクエストノード42に対してアクセスされたことに応じてリクエストノード42およびレスポンスノード52を登録する。リクエスト生成部24は、リクエストノード42がアクセスされた時点ではリクエストメッセージを生成せず、その後、リクエストノード42がアクセスされた後にレスポンスノード52がアクセスされたことに応じて、リクエストメッセージを生成する。リクエスト送信部26は、当該リクエストメッセージをサーバ装置100に送信する。レスポンス反映部30は、レスポンス受信部28によりレスポンスメッセージが受信されたことに応じてレスポンスノード52に対してWebサービスの実行結果を反映する。そして、ツリー構造記憶部22は、Webサービスの実行結果をアクセス元に返信する。Webサービスインターフェイス20がこのようなレイジーモードで動作することにより、アプリケーション実行部12は、Webサービスの実行結果が準備されたことを検知してから、アクセスをしなくてよい。Webサービスインターフェイス20によれば、レイジーモードで動作することにより、結果を使用することが明らかなWebサービスを呼び出すことができる。よってWebサービスインターフェイス20は、無駄なWebサービスの呼び出しを防ぐことができる。
【0036】
図5の(A)は、サーバ装置100が内部にキャッシュしているWebページを提供するWebサービスを利用する場合におけるSOAPのリクエストメッセージのボディー部分の一例を示し、図5の(B)は、(A)の基となるリクエスト用部分木40を指定することによりリクエストを送信するためのXPathの式を示す。本例におけるWebサービスは、検索キーおよび検索対象となるURL(Uniform Resource Locator)がXML形式で記述されたリクエストメッセージを受信すると、キャッシュしている該当URLのWebページを検索キーにより検索して、ヒットしたWebページを返信する。
【0037】
図5の(A)のリクエストメッセージは、本例のWebサービスを特定するための要素(例えばdogetCachedPage)内に、key要素およびurl要素を含む。key要素は、検索キー(例えば0000)を指定する。url要素は、検索対象となるURL(例えばhttp://www.aaaaaa.com)を指定する。リクエスト生成部24にこのようなリクエストメッセージを作成させるためには、ツリー構造記憶部22は、本例のWebサービスを示したdogetCachedPageノードをリクエスト用部分木40のルートノードとし、検索キーおよび検索対象となるURLを子ノードとして含んだサブツリーを記憶すればよい。なお、リクエスト生成部24は、WSDL記載から"xsi:type="を抽出することができる。
【0038】
ここで、ツリー構造記憶部22は、XPathを用いてアプリケーション実行部12によりツリー構造にアクセスされることに応じて、記憶しているツリー構造に対して新たなサブツリーを追加してよい。これにより、アプリケーション実行部12は、図5の(B)に示すXPath式を用いてツリー構造にアクセスすることにより、図5の(A)に示されたSOAPリクエストメッセージを作成させることを目的としたサブツリーを作成することができる。
【0039】
ツリー構造記憶部22は、一例として、次のような処理を行い、XPathを用いてアクセスされることに応じてツリー構造に対して新たなサブツリーを追加してよい。すなわち、ツリー構造記憶部22は、XPathによりツリー構造にアクセスされた場合、まず、当該XPathによって選択されるノードを登録しているか否かを判断する。登録している場合、ツリー構造記憶部22は、当該ノードを返信して処理を終了する。登録していない場合、ツリー構造記憶部22は、当該XPath式をロケーションステップに分解して、ロケーションステップ毎にノードが存在するか否かを判断する。ノードが存在しないロケーションステップを検出した場合、ツリー構造記憶部22は、対応するノードをツリー構造に追加する。これにより、ツリー構造記憶部22は、XPathによるアクセスに応じて、ツリー構造に対してサブツリーを追加することができる。
【0040】
なお、XMLドキュメントのツリー構造にサブツリーを作成する場合、アプリケーション実行部12は、次の第1および第2の条件に従って表現されたXPath式を作成することが望ましい。すなわち、アプリケーション実行部12は、第1の条件として、全てのテストノードが具体的な要素名により特定されているXPath式を作成する。例えば、アプリケーション実行部12は、アスタリスクおよび「//」等の具体的な要素が特定されない表現を用いていないXPath式を作成する。さらに、アプリケーション実行部12は、第2の条件として、述語が下記の形式に従ったXPath式を作成する。
[PathExpr=Literal …and PathExpr=Literal]
ここで、PathExprおよびLiteralは、XPath仕様書(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.)により定義されている。このような第1および第2の条件に従って表現されたXPath式によりアクセスされることにより、ツリー構造記憶部22は、一義的にツリー構造内のノードを特定することができる。
【0041】
また、ツリー構造記憶部22は、サブツリーを追加した後のツリー構造の妥当性を、WSDLファイルを用いて予め検証してよい。サブツリーを追加した後のツリー構造が妥当でない場合には、ツリー構造記憶部22は、当該サブツリーを追加しなくてよい。
【0042】
以上のようにアプリケーション実行部12によれば、ツリー構造記憶部22により記憶されているツリー構造に対して、XPathによりアクセスすることができるので、XMLドキュメントと同様の処理により、外部のサーバ装置100上のWebサービスを利用することができる。
【0043】
図6は、変換部36による変換条件の記述例を示す。変換部36は、変換ルール記憶部34に記憶された変換ルールに基づいて、ツリー構造記憶部22に記憶されたWebサービスの結果を反映したレスポンス用部分木50のツリー構造を変換する。変換部36は、一例として、図6に示すような、XML変換用言語により記述された変換ルールに応じてツリー構造を変換してよい。
【0044】
図6において、request要素は、いずれのリクエストメッセージに対応するレスポンス用部分木50を変換するかを示す。predicate要素は、リクエストメッセージに含まれるパラメータを示す。Transformation要素は、変換方法を示す。Transformation要素内のtarget属性は、例えば、ツリー構造における変換対象となるノードの位置を特定する。より具体的には、target属性は、target="."と記述された場合には、レスポンス用部分木50を変換対象として特定し、target="/"と記述された場合には、ツリー構造全体を変換対象として特定する。stylesheet要素は、変換の具体的な内容を示す。
【0045】
以上のような変換部36を備えることにより、Webサービスインターフェイス20によれば、Webサービスの実行結果を、Webサービスを利用するアプリケーションに適した構造に変換することができる。また、変換部36を備えることにより、Webサービスインターフェイス20によれば、Webサービスの実行結果の仕様が変更された場合であっても、各アプリケーションのプログラムの記述を変更しなくて済むので、ユーザの負担を減らすことができる。
【0046】
図7は、本実施形態の他の一例に係る情報処理装置10の構成をサーバ装置100およびHTMLサーバ装置200とともに示す。図7に示す各部材は、図1に示した同一の符号の部材と略同一の構成及び機能を採るので、以下、相違点を除き説明を省略する。HTMLサーバ装置200は、HTML(Hypertext Markup Languae)ドキュメントを情報処理装置10に対して提供する。
【0047】
本例に係る情報処理装置10は、ブラウザ実行部80を備える。ブラウザ実行部80は、HTMLドキュメントのブラウジングの機能に加えてWebサービスを利用する機能も提供するブラウザを実行する。ブラウザ実行部80は、HTML処理部82と、スクリプト処理部84と、レンダリング処理部86と、Webサービスインターフェイス20とを有する。HTML処理部82は、HTMLドキュメントの取得および解析をする。スクリプト処理部84は、HTMLドキュメントに含まれているスクリプトを実行する。レンダリング処理部86は、HTML処理部82により解析されたHTMLドキュメントをレンダリングする。HTML処理部82、スクリプト処理部84およびレンダリング処理部86を合わせた機能ブロックは、図1に示すアプリケーション実行部12の一例である。
【0048】
図8は、図7に示す情報処理装置10によるWebサービスの利用処理の流れの一例を示す。まず、HTML処理部82は、HTMLサーバ装置200に対してURI(Uniform Resource Identifier)を送信する(S21)。次に、HTML処理部82は、対応するHTMLドキュメントを取得して、解析する(S22)。次に、レンダリング処理部86は、HTML処理部82により取得されたHTMLドキュメントをレンダリングする。これとともに、スクリプト処理部84は、HTMLドキュメントに含まれているスクリプトをロードする(S23)。次に、HTML処理部82は、ロードされたスクリプトの実行を伴うイベントが発生されたことを検出する(S24)。HTML処理部82は、一例として、HTMLドキュメント中の検索キーワードボックスにキーワードが入力されたことに応じて、イベントが発生されたことを検出してよい。
【0049】
次に、HTML処理部82は、スクリプト処理部84によりロードされている対応するスクリプトを呼び出す(S25)。次に、スクリプト処理部84は、Webサービスを利用するスクリプトの実行中において、Webサービスインターフェイス20を呼び出して例えばXPathを指定することにより、リクエストノード42およびレスポンスノード52に対してアクセスする(S26)。
【0050】
次に、Webサービスインターフェイス20は、リクエストノード42へのアクセスを受けたことに応じて、当該リクエストノード42に応じたWebサービスを呼び出すリクエストメッセージを生成して、サーバ装置100へ送信する(S27)。次に、Webサービスインターフェイス20は、サーバ装置100からレスポンスメッセージを受信する(S28)。次に、Webサービスインターフェイス20は、レスポンスメッセージに含まれるWebサービスの実行結果を、レスポンスノード52に反映する(S29)。
【0051】
次に、スクリプト処理部84は、Webサービスの実行結果が反映されたレスポンスノード52に基づき、HTML処理部82により保持されているHTMLドキュメントの対応する部分を変更する(S30)。ツリー構造記憶部22は、一例として、Webサービスの実行結果が反映されたレスポンスノード52を含むレスポンス用部分木50を、HTML処理部82により保持されているHTMLドキュメントに対して複写してよい。次に、レンダリング処理部86は、変更されたHTMLドキュメントをレンダリングする(S31)。
【0052】
このようなブラウザ実行部80によれば、スクリプト内でWebサービスインターフェイス20を利用することができるので、スクリプトからWebサービスへのアクセスを容易とすることができる。例えば、ブラウザ実行部80は、スクリプトを実行することにより、Webサービスの実行結果をHTMLドキュメントに取り込むことができる。より具体的には、例えば、ブラウザ実行部80は、HTMLドキュメントに含まれたあるオブジェクトに対する操作を検出した場合、Webサービスインターフェイス20内のツリー構造のレスポンスノード52に反映されているWebサービスの実行結果を表示し、当該オブジェクトに対する操作を検出しない場合、元のHTMLドキュメント内のオブジェクトを表示してよい。
【0053】
図9の(A)は、キャッシュしているWebページを提供するWebサービスを取得するために"ws:Request"にアクセスするスクリプトの一例を示し、図9の(B)は、 "ws:Response"にアクセスするスクリプトのコードの一例を示す。また、図10は、図9に示したXPath式により生成されるツリー構造の一例を示す。
【0054】
キャッシュしているWebページを提供するWebサービスを利用する場合、スクリプト処理部84は、図9(A)に示すXPathの式によりWebサービスインターフェイス20に対してアクセスしてよい。これにより、スクリプト処理部84は、図10に示すように、"ws:Query"の下に新たにリクエスト用部分木40およびレスポンス用部分木50を作成することができる。スクリプト処理部84は、XPathを用いることにより、比較的に短いコードにより、リクエストノード42にアクセスすることができる。
【0055】
図10に示すツリー構造は、"ws:WebService"、"ws:Query"、"ws:Request"、"ws:Responce"という4つのノードを有する。"ws:WebService"は、当該ツリー構造のルートノードであり、サブツリー追加後のツリー構造が妥当であるかどうかを判断するために用いるWSDLファイルのURLを有してよい。"ws:Query"は、"ws:WebService"の子であり、Webサービスのそれぞれに対応するクエリーを表す。"ws:Query"は、子として、"ws:Request"を含むリクエスト用部分木40および"ws:Response"を含むレスポンス用部分木50を有する。
【0056】
"ws:Request"は、リクエストノード42の一例である。"ws:Request"は、SOAPによるリクエストメッセージのボディー部分と同じ構成のパラメータノード44を有する。本例の場合においては、"ws:Request"は、子としての"gws:doGetCashePage"、および、孫としての"gws:key"およびサーバ装置100のURLを示す"gws:url"とを有する。"gws:doGetCashePage"は、Webサービスの内容を示す。gws:key"は、検索キーワードを示し、サーバ装置100のURLを示す。
【0057】
"ws:Response"は、レスポンスノード52の一例である。"ws:Response"は、SOAPによるレスポンスメッセージのボディー部分と同じ構成のリターンノード54を有する。本例の場合においては、"ws:Response"は、子のリターンノード54として、"gws:doGetCashePageResponse"、孫のリターンノード54として、検索結果を示す"gws:return"を有する。
【0058】
また、スクリプト処理部84は、図10(B)に示すXPathの式によりWebサービスインターフェイス20に対してアクセスしてよい。これにより、スクリプト処理部84は、図10に示すような"ws:Response"の下のレスポンス用部分木50から、キャッシュしているWebページを提供するWebサービスの実行結果を取得することができる。スクリプト処理部84は、XPathを用いることにより、比較的に短いコードにより、レスポンスノード52からWebサービスの実行結果を取得することができる。
【0059】
図11は、本実施形態に係るコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、及び表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、及びCD−ROMドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、及び入出力チップ2070を有するレガシー入出力部とを備える。
【0060】
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【0061】
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、CD−ROMドライブ2060を接続する。通信インターフェイス2030は、ネットワークを介して他の装置と通信する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラム及びデータを格納する。CD−ROMドライブ2060は、CD−ROM2095からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
【0062】
また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラムや、コンピュータ1900のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050や、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を接続する。
【0063】
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、CD−ROM2095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
【0064】
コンピュータ1900にインストールされ、コンピュータ1900をWebサービスインターフェイス20として機能させるプログラムは、ツリー構造記憶部モジュールと、リクエスト生成部モジュールと、リクエスト送信部モジュールと、レスポンス受信部モジュールと、レスポンス反映部モジュールと、キャッシュ処理部モジュールと、変換ルール記憶部モジュールと、変換部モジュールとを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、ツリー構造記憶部22、リクエスト生成部24、リクエスト送信部26、レスポンス受信部28、レスポンス反映部30、キャッシュ処理部32、変換ルール記憶部34としてそれぞれ機能させる。
【0065】
以上に示したプログラム又はモジュールは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク2090、CD−ROM2095の他に、DVDやCD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。
【0066】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【0067】
【図1】本発明の実施形態に係る情報処理装置10の構成を、サーバ装置100とともに示す。
【図2】リクエスト用部分木40およびレスポンス用部分木50の構成の一例を示す。
【図3】リクエスト生成部24の構成の一例を示す。
【図4】本発明の実施形態に係る情報処理装置10の処理の流れを示す。
【図5】(A)は、サーバ装置100が内部にキャッシュしているWebページを提供するWebサービスを利用する場合におけるSOAPのリクエストメッセージのボディー部分の一例を示し、(B)は、(A)の基となるリクエスト用部分木40を指定することによりリクエストを送信するためのXPathの式を示す。
【図6】変換部36による変換条件の記述例を示す。
【図7】本実施形態の他の一例に係る情報処理装置10の構成をサーバ装置100およびHTMLサーバ装置200とともに示す。
【図8】図7に示す情報処理装置10によるWebサービスの利用処理の流れの一例を示す。
【図9】(A)は、キャッシュしているWebページを提供するWebサービスを利用するためのツリー構造における"ws:Request"にアクセスするためのXPathの式を示し、(B)は、前記ツリー構造における"ws:Response"にアクセスするためのXPathの式を示す。
【図10】図9に示したXPath式により生成されるツリー構造の一例を示す。
【図11】本発明の実施形態に係るコンピュータ1900のハードウェア構成の一例を示す。
【符号の説明】
【0068】
10 情報処理装置
12 アプリケーション実行部
14 ドキュメント記憶部
20 Webサービスインターフェイス
22 ツリー構造記憶部
24 リクエスト生成部
26 リクエスト送信部
28 レスポンス受信部
30 レスポンス反映部
32 キャッシュ処理部
34 変換ルール記憶部
36 変換部
40 リクエスト用部分木
42 リクエストノード
44 パラメータノード
50 レスポンス用部分木
52 レスポンスノード
54 リターンノード
62 キャッシュヒット処理部
64 キャッシュミス処理部
72 サービス名取得部
74 WSDL取得部
76 アドレス取得部
80 ブラウザ実行部
82 HTML処理部
84 スクリプト処理部
86 レンダリング処理部
100 サーバ装置
200 HTMLサーバ装置
1900 コンピュータ
2000 CPU
2010 ROM
2020 RAM
2030 通信インターフェイス
2040 ハードディスクドライブ
2050 フレキシブルディスク・ドライブ
2060 CD−ROMドライブ
2070 入出力チップ
2075 グラフィック・コントローラ
2080 表示装置
2082 ホスト・コントローラ
2084 入出力コントローラ
2090 フレキシブルディスク
2095 CD−ROM

【特許請求の範囲】
【請求項1】
外部のサーバ装置上のWebサービスを利用するためのインターフェイスを提供する情報処理装置であって、
Webサービスを利用するために用いる第1ツリー構造を記憶する第1記憶部と、
前記第1ツリー構造内の、Webサービスを呼び出すために用いられるリクエストノードへのアクセスを受けたことに応じて、当該リクエストノードに応じたWebサービスを呼び出すリクエストメッセージを生成するリクエスト生成部と、
前記Webサービスを提供するサーバ装置に対して前記リクエストメッセージを送信するリクエスト送信部と、
前記サーバ装置から、前記Webサービスを実行した結果を含むレスポンスメッセージを受信するレスポンス受信部と、
前記Webサービスを実行した前記結果を、前記第1ツリー構造内の、前記Webサービスの前記結果を記憶するためのレスポンスノードに反映するレスポンス反映部と
を備える情報処理装置。
【請求項2】
Webサービスを利用するアプリケーションを実行するアプリケーション実行部と、
前記アプリケーションにより使用されるドキュメントを第2ツリー構造により記憶する第2記憶部と
を更に備え、
前記アプリケーション実行部は、一のWebサービスの結果が反映された少なくとも1つの前記レスポンスノードを含む前記第1ツリー構造内の部分木を、前記第2ツリー構造内の部分木として複製する
請求項1に記載の情報処理装置。
【請求項3】
Webサービスを利用するアプリケーションを実行するアプリケーション実行部を更に備え、
前記記憶部は、アプリケーションにより使用されるドキュメントを前記第1ツリー構造により記憶し、
前記ドキュメントの一部にWebサービスを利用した結果を反映させる場合において、前記アプリケーション実行部は、前記第1ツリー構造内の、前記ドキュメントの一部に対応して定められた前記リクエストノードをアクセスし、
前記レスポンス反映部は、Webサービスを実行した結果を、前記ドキュメントの一部に対して反映する
請求項1に記載の情報処理装置。
【請求項4】
前記第1記憶部は、Webサービスに対するリクエストを行うためにアクセスされるリクエスト用部分木と、Webサービスの結果を反映するレスポンス用部分木とを有する前記第1ツリー構造を記憶し、
前記リクエスト生成部は、前記リクエスト用部分木内の前記リクエストノードへのアクセスを受けたことに応じて前記リクエストメッセージを生成し、
前記レスポンス反映部は、Webサービスを実行した結果を、前記レスポンス用部分木内の前記レスポンスノードに反映する
請求項1に記載の情報処理装置。
【請求項5】
Webサービスを利用するアプリケーションを実行するアプリケーション実行部を更に備え、
前記アプリケーション実行部は、Webサービスに対して提供する各パラメータを、前記第1ツリー構造内の各パラメータに応じたパラメータノードに対して設定し、
前記リクエスト生成部は、前記アプリケーション実行部によりパラメータが設定されたそれぞれの前記パラメータノードから当該パラメータを取得して、当該パラメータを含む前記リクエストメッセージを生成する
請求項1に記載の情報処理装置。
【請求項6】
前記レスポンス反映部は、前記第1ツリー構造内における位置を示すパスにより前記リクエストノードへのアクセスを受けたことに応じて前記リクエストメッセージを生成する
請求項4に記載の情報処理装置。
【請求項7】
前記アプリケーション実行部は、Webサービスに対して提供する各パラメータを、当該Webサービスに対応して定められた前記リクエストノードの子孫となるそれぞれの前記パラメータノードに対して設定し、
前記リクエスト生成部は、
前記リクエストノードから前記Webサービスの名称を取得するサービス名取得部と、
前記Webサービスの名称を用いて当該Webサービスの仕様を定めたWSDL(Web Services Description Language)記述を取得するWSDL取得部と、
前記WSDL記述から、前記Webサービスを提供する前記サーバ装置のアドレスを取得するアドレス取得部と
を有し、
前記リクエスト送信部は、前記アドレス取得部が取得したアドレス宛に前記リクエストメッセージを送信する
請求項5に記載の情報処理装置。
【請求項8】
前記第1記憶部は、Webサービスの結果が反映された前記レスポンスノードをキャッシングし、
前記リクエストノードが前記第1ツリー構造内に既に登録されていることを条件として前記第1記憶部にキャッシュされた当該Webサービスの結果を返すキャッシュヒット処理部と、
前記リクエストノードが前記第1ツリー構造内に登録されていないことを条件として、前記リクエスト送信部により前記リクエストメッセージを送信させ、Webサービスの結果を前記第1記憶部にキャッシュさせると共に、前記リクエストノードを前記第1ツリー構造内のノードとして新たに登録させるキャッシュミス処理部と
を更に備える請求項1に記載の情報処理装置。
【請求項9】
前記リクエスト生成部は、前記リクエストノードがアクセスされた後に前記レスポンスノードがアクセスされたことに応じて、前記リクエストメッセージを生成する請求項1に記載の情報処理装置。
【請求項10】
それぞれの前記リクエストノードに対応して、当該リクエストノードをアクセスしたことに応じて受信される前記レスポンスメッセージを変換する変換ルールを記憶する変換ルール記憶部と、
前記レスポンスメッセージに含まれるWebサービスの結果を反映した前記第1ツリー構造を、当該レスポンスメッセージに対応する前記変換ルールに基づいて変換する変換部と
を更に備える請求項1に記載の情報処理装置。
【請求項11】
外部のサーバ装置上のWebサービスを利用するためのインターフェイスを情報処理装置により提供する方法であって、
Webサービスを利用するために用いる第1ツリー構造を第1記憶部に記憶する記憶段階と、
前記第1ツリー構造内の、Webサービスを呼び出すために用いられるリクエストノードへのアクセスを受けたことに応じて、当該リクエストノードに応じたWebサービスを呼び出すリクエストメッセージを生成するリクエスト生成段階と、
前記Webサービスを提供するサーバ装置に対して前記リクエストメッセージを送信するリクエスト送信段階と、
前記サーバ装置から、前記Webサービスを実行した結果を含むレスポンスメッセージを受信するレスポンス受信段階と、
前記Webサービスを実行した前記結果を、前記第1ツリー構造内の、前記Webサービスの前記結果を記憶するためのレスポンスノードに反映するレスポンス反映段階と
を備える方法。
【請求項12】
外部のサーバ装置上のWebサービスを利用するためのインターフェイスをコンピュータにより提供するプログラムであって、
当該プログラムは、前記コンピュータを、
Webサービスを利用するために用いる第1ツリー構造を記憶する第1記憶部と、
前記第1ツリー構造内の、Webサービスを呼び出すために用いられるリクエストノードへのアクセスを受けたことに応じて、当該リクエストノードに応じたWebサービスを呼び出すリクエストメッセージを生成するリクエスト生成部と、
前記Webサービスを提供するサーバ装置に対して前記リクエストメッセージを送信するリクエスト送信部と、
前記サーバ装置から、前記Webサービスを実行した結果を含むレスポンスメッセージを受信するレスポンス受信部と、
前記Webサービスを実行した前記結果を、前記第1ツリー構造内の、前記Webサービスの前記結果を記憶するためのレスポンスノードに反映するレスポンス反映部と
して機能させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2007−279838(P2007−279838A)
【公開日】平成19年10月25日(2007.10.25)
【国際特許分類】
【出願番号】特願2006−102227(P2006−102227)
【出願日】平成18年4月3日(2006.4.3)
【出願人】(592073101)日本アイ・ビー・エム株式会社 (42)
【復代理人】
【識別番号】100104156
【弁理士】
【氏名又は名称】龍華 明裕