(57)【特許請求の範囲】
【請求項１】
関数の検索を支援するシステムであって、
複数の関数のそれぞれに対応付けて、当該関数から出力された少なくとも１つの出力パラメータの履歴を記憶している第１記憶装置と、
検索するべき関数から出力されることが期待される出力パラメータの入力を受け付けるパラメータ入力部と、
入力した前記出力パラメータと前記第１記憶装置に記憶されているそれぞれの前記出力パラメータとの間の値の近さを示す第１指標値を、前記第１記憶装置に記憶されているそれぞれの前記出力パラメータについて算出すると共に、算出した前記第１指標値を関数ごとに合計する算出部と、
合計した前記第１指標値が予め定められた基準値よりも大きい関数を前記複数の関数の中から選択して出力する出力部と
を備えるシステム。
【請求項２】
前記第１記憶装置は、前記複数の関数のそれぞれに対応付けて、当該関数に入力した入力パラメータ、および、当該入力パラメータに対し当該関数から出力された出力パラメータの組を少なくとも１つ記憶しており、
前記パラメータ入力部は、検索するべき関数に入力するべき入力パラメータ、および、当該入力パラメータに応じて当該関数から出力されることが期待される出力パラメータの組の入力を受け付け、
前記算出部は、入力した前記入力パラメータおよび前記出力パラメータの組と前記第１記憶装置に記憶されているそれぞれの入力パラメータおよび出力パラメータの組との間の近さを示す第１指標値を、前記第１記憶装置に記憶されているそれぞれの入力パラメータおよび出力パラメータの組について算出する、
請求項１に記載のシステム。
【請求項３】
前記第１記憶装置は、通信ネットワーク上で利用可能なそれぞれのウェブサービスに対応付けて、当該ウェブサービスに入力した入力パラメータ、および、当該入力パラメータに対し当該ウェブサービスから出力された出力パラメータの組を少なくとも１つ記憶しており、
前記パラメータ入力部は、検索するべきウェブサービスに入力するべき入力パラメータ、および、当該入力パラメータに応じて当該ウェブサービスから出力されることが期待される出力パラメータの組の入力を受け付け、
前記出力部は、合計した前記第１指標値が予め定められた基準値よりも大きいウェブサービスを複数の前記ウェブサービスの中から選択して出力する、
請求項２に記載のシステム。
【請求項４】
前記複数の関数のそれぞれに対応付けて、当該関数の検索のために入力された、当該関数から出力されることが期待される出力パラメータの履歴を記憶している第２記憶装置を更に備え、
前記算出部は、さらに、入力した前記出力パラメータとの間の値の近さを示す第２指標値を、前記第２記憶装置に記憶されているそれぞれの前記出力パラメータについて算出すると共に、算出した前記第２指標値を関数ごとに合計し、
前記出力部は、前記第１指標値および前記第２指標値の合計が予め定められた基準値よりも大きい関数を前記複数の関数の中から選択して出力する、
請求項１に記載のシステム。
【請求項５】
前記第２記憶装置は、検索のために入力された出力パラメータのそれぞれに、さらに、当該出力パラメータに対応する関数が検索するべき関数であったか否かを示す評価結果を対応付けて記憶しており、
前記算出部は、前記第２記憶装置に記憶されているそれぞれの前記出力パラメータについて、当該出力パラメータが、当該出力パラメータに対応する関数が検索するべき関数であったことを示す評価結果に対応付けられている場合には、入力したパラメータと当該出力パラメータとの近さを示す指標値を前記第２指標値の合計に加え、当該出力パラメータが、当該出力パラメータに対応する関数が検索するべき関数でなかったことを示す評価結果に対応付けられている場合には、入力したパラメータと当該出力パラメータとの近さを示す指標値を前記第２指標値の合計から減じる、請求項４に記載のシステム。
【請求項６】
前記算出部は、前記第１記憶装置に記憶された履歴に基づく前記第１指標値に、前記第２記憶装置に記憶された履歴に基づく前記第２指標値よりも高い重みを付して加算し、当該加算した指標値が予め定められた基準値よりも大きい関数を選択して出力する、請求項５に記載のシステム。
【請求項７】
前記出力部が出力したそれぞれの関数について、当該関数が検索するべき関数であったかどうかを示すユーザの評価結果の入力を受け付けると共に、受け付けた評価結果を前記第２記憶装置に格納する評価入力部、を更に備える請求項５に記載のシステム。
【請求項８】
前記パラメータ入力部は、検索するべきウェブサービスの入力パラメータおよび出力パラメータのデータ型の入力を更に受け付け、
前記算出部は、入力されたデータ型と一致するデータ型のウェブサービスの中からウェブサービスを選択して出力する、
請求項３に記載のシステム。
【請求項９】
前記算出部は、入力パラメータおよび出力パラメータの少なくとも一方が数値で無いデータの場合には、当該数値でないデータを数値に変換してから前記第１指標値を算出する、請求項３に記載のシステム。
【請求項１０】
前記第１記憶装置は、それぞれの出力パラメータを、更に、当該出力パラメータが出力された時間に対応付けて記憶しており、
前記算出部は、より後の時間に対応付けられた出力パラメータに基づく指標値に、より先の時間に対応付けられた出力パラメータに基づく指標値よりも重い重みを付して、ウェブサービスごとに合計する、
請求項３に記載のシステム。
【請求項１１】
当該システムは、プログラムの実行中に必要なウェブサービスを検索して実行させるシステムであり、
前記パラメータ入力部は、実行中の当該プログラムから、入力パラメータおよび出力パラメータの入力を受け付け、
前記出力部は、前記第１指標値の最も大きいウェブサービスを選択し、
選択された当該ウェブサービスを実行して、実行結果を、実行中の当該プログラムにリターンする、プログラム実行部を更に備える、
請求項３に記載のシステム。
【請求項１２】
関数の検索を支援するシステムであって、
複数の関数のそれぞれに対応付けて、当該関数の検索のために入力された、当該関数から出力されることが期待される出力パラメータの履歴を記憶している第２記憶装置と、
検索するべき関数から出力されることが期待される出力パラメータの入力を受け付けるパラメータ入力部と、
入力した前記出力パラメータとの間の値の近さを示す第２指標値を、前記第２記憶装置に記憶されているそれぞれの前記出力パラメータについて算出すると共に、算出した前記第２指標値を関数ごとに合計する算出部と、
合計した前記第２指標値が予め定められた基準値よりも大きい関数を前記複数の関数の中から選択して出力する出力部と
を備えるシステム。
【請求項１３】
関数の検索をコンピュータにより支援する方法であって、
コンピュータの制御により、複数の関数のそれぞれに対応付けて、当該関数から出力された少なくとも１つの出力パラメータの履歴を第１記憶装置に記憶するステップと、
検索するべき関数から出力されることが期待される出力パラメータの入力を受け付けるステップと、
コンピュータの制御により、入力した前記出力パラメータと前記第１記憶装置に記憶されているそれぞれの前記出力パラメータとの間の値の近さを示す第１指標値を、前記第１記憶装置に記憶されているそれぞれの前記出力パラメータについて算出すると共に、算出した前記第１指標値を関数ごとに合計するステップと、
合計した前記第１指標値が予め定められた基準値よりも大きい関数を前記複数の関数の中から選択して出力するステップと
を備える方法。
【請求項１４】
関数の検索を支援するシステムとして、コンピュータを機能させるプログラムであって、
前記コンピュータは、複数の関数のそれぞれに対応付けて、当該関数から出力された少なくとも１つの出力パラメータの履歴を記憶している第１記憶装置を有し、
前記コンピュータを、
検索するべき関数から出力されることが期待される出力パラメータの入力を受け付けるパラメータ入力部と、
入力した前記出力パラメータと前記第１記憶装置に記憶されているそれぞれの前記出力パラメータとの間の値の近さを示す第１指標値を、前記第１記憶装置に記憶されているそれぞれの前記出力パラメータについて算出すると共に、算出した前記第１指標値を関数ごとに合計する算出部と、
合計した前記第１指標値が予め定められた基準値よりも大きい関数を前記複数の関数の中から選択して出力する出力部
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サービスを検索するサービス検索システム、方法及びプログラムに関する。特に、本発明は、処理の履歴に基づいてサービスを検索するサービス検索システム、方法及びプログラムに関する。
【背景技術】
【０００２】
ソフトウェアの一部分として利用可能なコンポーネントを、インターネットなどの通信ネットワーク上で広く一般に開放して、他のソフトウェアから呼び出して実行することができるようにすることが行われている。そのような個々のコンポーネントの例として、例えばウェブサービスが挙げられる。ウェブサービスを組み合わせてソフトウェアを開発することができれば、ソフトウェアの開発・保守の手間や費用を低減することができる。
【０００３】
ウェブサービスの仕様を記述するために、ＷＳＤＬ（Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）、ＵＤＤＩ（Ｕｎｉｖｅｒｓａｌ  Ｄｅｓｃｒｉｐｔｉｏｎ，  Ｄｉｓｃｏｖｅｒｙ  ａｎｄ  Ｉｎｔｅｇｒａｔｉｏｎ）またはセマンティックウェブなどの技術が用いられている。これらの技術を用いると、ウェブサービスの作成者または管理者は、ウェブサービスの入出力インターフェイスなどを正確に定義して、他のユーザに伝達できる。当該他のユーザは、これらの仕様を利用すれば、スタブやスケルトンといった、パラメータのフォーマットを整形するためのサブ・プログラムを自動的に生成することができる。
【０００４】
参考技術として、テキストコンテンツの検索技術については下記の特許文献１−２を参照されたい。
【特許文献１】特開２００２−２５９６０７号公報
【特許文献２】特開２００３−３６２７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記のＷＳＤＬなどの技術によって仕様として記述することができるのは、入出力パラメータのデータ型、トランスポートまたはアドレスなどのインターフェイス部分が代表的である。また、ウェブサービスの作成者または管理者が、コメント部分または記述部分として、そのウェブサービスの概要を自然言語によって記述することもできる。
【０００６】
しかしながら、あるウェブサービスがどのような機能を提供するものであるかは、たとえインターフェイス部分の仕様が予め分かっていたとしても、そのウェブサービスを実際に実行するまでは不明であることが多い。例えば、入出力共に倍精度の浮動小数点の数値であることが予め分かっても、入力から出力への変換がどのような関数であるかは実行して見なければ分からない。さらに、コメント部分の記述は自然言語であり、また、正しく記述されているとは限らないので、その記述によってウェブサービスの動作を正確に理解するのは容易でない。
【０００７】
したがって、ウェブサービスを利用するためには、数多くのウェブサービスを実際に実行してみて、その結果に基づいて適切なウェブサービスを見つけ出すという、人手による手間のかかる作業が必要となってしまう場合が多かった。
そこで本発明は、上記の課題を解決することのできるシステム、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の第１の形態においては、関数の検索を支援するシステムであって、複数の関数のそれぞれに対応付けて、当該関数から出力された少なくとも１つの出力パラメータの履歴を記憶している第１記憶装置と、検索するべき関数から出力されることが期待される出力パラメータの入力を受け付けるパラメータ入力部と、入力した前記出力パラメータと前記第１記憶装置に記憶されているそれぞれの前記出力パラメータとの間の値の近さを示す第１指標値を、前記第１記憶装置に記憶されているそれぞれの前記出力パラメータについて算出すると共に、算出した前記第１指標値を関数ごとに合計する算出部と、合計した前記第１指標値が予め定められた基準値よりも大きい関数を前記複数の関数の中から選択して出力する出力部とを備えるシステムを提供する。また、当該システムとしてコンピュータを機能させる方法およびプログラムを提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明を実施するための最良の形態】
【０００９】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１０】
図１は、本実施形態に係る情報システム１０の全体構成を示す。情報システム１０は、情報処理装置１００と、記憶装置２０とを備える。情報処理装置１００は、基本的なハードウェアとして、例えばキーボード・ポインティングデバイス・表示装置などであるユーザインターフェイス１０２と、例えばメモリ・チップなどである記憶部１０４とを有する。また、情報処理装置１００は、記憶部１０４に記憶されたプログラムをＣＰＵにより実行することで、検索システム１０６として機能する。
【００１１】
検索システム１０６は、ユーザの入力に基づいて所望の機能を有するウェブサービスを通信ネットワーク１５中から検索する。通信ネットワーク１５は、例えば、不特定の者が利用可能なインターネットなどであってよい。検索の処理には、記憶装置２０に記憶されたサービスＤＢ２２、実行履歴ＤＢ２４および評価履歴ＤＢ２６が用いられる。図２ａ−ｃにそれらの具体例を示す。
図２ａは、本実施形態に係るサービスＤＢ２２のデータ構造の一例を示す。サービスＤＢ２２は、検索対象となり得る全てのウェブサービスのそれぞれについて、当該サービスの識別情報（ＩＤ）と、当該ウェブサービスのロケーションとを対応付けて記憶している。
【００１２】
サービスのロケーションとは、例えば、当該サービスを呼び出すためにアクセスするべきＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）である。一例として、
あるウェブサービスのＩＤであるｓｅｒｖｉｃｅ１は、「http://△△/service1」というＵＲＬに対応付けて記憶されている。一方、他のウェブサービスのＩＤであるｓｅｒｖｉｃｅ２は、「http://△△/service2」というＵＲＬに対応付けて管理されている。
【００１３】
ウェブサービスのＵＲＬが分かれば、当該ウェブサービスに関する各種の情報を取得することができる。例えば、検索システム１０６は、そのウェブサービスのインターフェイス定義を取得するべく、そのウェブサービスに対応するＵＲＬにアクセスして、対応するＷＳＤＬファイルやＵＤＤＩレポジトリを取得してよい。また、検索システム１０６は、そのウェブサービスを実際に実行するべく、そのウェブサービスに対応するＵＲＬに対し入力パラメータを送信してよい。
【００１４】
なお、本実施形態において検索対象は、ＷＳＤＬのような入出力データの型が厳密に定まっているウェブサービスであるが、これに代えて、検索対象が、例えばＲＥＳＴ（Representational State Transfer）と呼ばれる、ＨＴＴＰ  ＧＥＴリクエストによりアクセスする入力データの型が厳密でないウェブアプリケーションであってもよい。本実施形態に係る検索システム１０６は、例えば、既存手法により型の推定を行うことで、このような入力の型が厳密でないウェブアプリケーションを検索対象とすることができる。
【００１５】
なお、検索対象はウェブサービスに限定されるものではなく、何らかの入力パラメータに対し何らかの出力パラメータを出力する関数であれば構わない。例えば、検索システム１０６は、プログラムのオブジェクト・ファイルをアーカイブしたライブラリプログラムの中から、所定の機能を有するサブ・ルーチンを検索してもよい。但し、不特定多数の者が通信ネットワーク１５上で自由に利用できるウェブサービスは、その実行履歴などを収集し易いという観点において本実施形態に好適である。
【００１６】
図２ｂは、本実施形態に係る実行履歴ＤＢ２４のデータ構造の一例を示す。実行履歴ＤＢ２４は、本発明に係る第１の記憶装置の一例であり、複数のウェブサービスのそれぞれに対応付けて、当該ウェブサービスに入力した入力パラメータ、および、当該関数から出力された出力パラメータの組を少なくとも１つ含んでいる。例えば、図２ｂに示す例は、あるサービス「service1」に、入力パラメータ１００を入力すると、出力パラメータとして「１０４８３．６９３２」が出力されたという履歴を示す。
【００１７】
また、図２ｂに示す例は、あるウェブサービスsevice0101に「23,36,15」という３つの入力パラメータを入力すると、「23, 22」という２つの出力パラメータが出力され多という履歴を示す。このように、ウェブサービスによっては、入力パラメータが２以上であってよいし、出力パラメータが２以上であってよい。その場合、実行履歴ＤＢ２４は、この図２ｂのように、パラメータの数に応じた次元数のベクトルを、入力パラメータ、および、出力パラメータとしてそれぞれ記憶する。
【００１８】
また、実行履歴ＤＢ２４は、出力パラメータおよび入力パラメータの組のそれぞれに対応付けて、当該入力パラメータに応じて当該出力パラメータが出力された時間を記憶してよい。例えば、上記ウェブサービスservice1が実行された時間は、２００７年１２月１日である。なお、時間は日付のみならず時刻まで詳細に含んでもよい。同様に、上記service0101が実行された時間は、２００７年１２月１日である。このように時間を記録することで、時系列に応じて出力の変化するウェブサービスについても精度良く検索できる。詳細については後に述べる。
【００１９】
図２ｃは、本実施形態に係る評価履歴ＤＢ２６のデータ構造の一例を示す。評価履歴ＤＢ２６は、本発明に係る第２の記憶装置の一例であり、複数のウェブサービスのそれぞれに対応付けて、当該ウェブサービスに入力することが想定される入力パラメータ、および、当該入力パラメータに応じて当該ウェブサービスから出力されることが期待される出力パラメータの履歴、を記憶している。
【００２０】
これらの入力パラメータおよび出力パラメータは、当該ウェブサービスを検索するために過去に入力された入力パラメータおよび出力パラメータであってよい。この場合、評価履歴ＤＢ２６は、更に、評価履歴に、その評価の日時などを対応付けて記憶してもよい。
【００２１】
例えば、図２ｃの第１レコードは、ユーザから過去に入力パラメータ１２０および出力パラメータ１０５００が入力された結果、あるサービスservice1が検索されたことを示す。そして、これらのパラメータに対応する評価結果「正」は、この結果検索されたservice1が、検索するべきウェブサービスとして正しかったことを示す。
【００２２】
一方、図２ｃの第２レコードは、ユーザから過去に入力パラメータ１１０および出力パラメータ０．９が入力された結果、あるサービスservice1が検索されたことを示す。そして、これらのパラメータに対応する評価結果「誤」は、この結果検索されたservice1が、検索するべきウェブサービスとしては間違っていたことを示す。
【００２３】
このように、評価履歴ＤＢ２６は、過去にパラメータを用いてウェブサービスを検索した履歴を、その検索の結果が正しいか否かを示す評価履歴に対応付けて記憶している。これらの評価履歴としては、例えば後述する評価入力部２４０の機能によって、検索システム１０６自体が受け付けたパラメータの履歴が保存されてもよい。これに代えて、他の多様なシステムが受け付けた評価の履歴が評価履歴ＤＢ２６に保存されてもよい。
【００２４】
なお、図２ａ−ｃには、説明の簡略化のため各種データを表形式で示したが、データを保存する形式はこれに限定されない。例えば、これらのデータは、ＸＭＬなどで記述されてもよい。例えば、ＸＭＬのデータにおいて、サービスＩＤには、それがサービスＩＤであること示すタグが付して記録され、入力パラメータには、それが入力パラメータであることを示すタグが付して記録され、出力パラメータには、それが出力パラメータであることを示すタグが付して記録される。
【００２５】
図３は、本実施形態に係る検索システム１０６の機能構成を示す。検索システム１０６は、データ型入力部２００と、パラメータ入力部２１０と、算出部２２０と、出力部２３０と、評価入力部２４０とを有する。データ型入力部２００は、検索するべきウェブサービスの入力パラメータのデータ型、および、当該ウェブサービスの出力パラメータのデータ型の入力を受け付ける。入力パラメータが複数の場合には、データ型入力部２００は、それら複数の入力パラメータのそれぞれに対応付けて当該入力パラメータのデータ型の入力を受け付ける。また、出力パラメータが複数の場合には、データ型入力部２００は、それら複数の出力パラメータのそれぞれに対応付けて当該出力パラメータのデータ型の入力を受け付ける。
【００２６】
また、パラメータ入力部２１０は、検索するべきウェブサービスに入力するべき入力パラメータ、および、当該入力パラメータに対し当該ウェブサービスから出力されることが期待される出力パラメータの組の入力を受け付ける。検索するべきウェブサービスによっては、入力パラメータおよび出力パラメータの少なくとも一方が複数であってよい。
【００２７】
これらの入力に応じ、まず、算出部２２０は、入力されたデータ型と一致するデータ型のウェブサービスを検索する。例えば、算出部２２０は、サービスＤＢ２２に記憶されたそれぞれのウェブサービスのＵＲＬにアクセスして、当該ウェブサービスに対応するＷＳＤＬファイルを取得する。そして、算出部２２０は、取得したそれぞれのＷＳＤＬファイルについて、当該ファイル内で定義される入力パラメータのデータ型、および、出力パラメータのデータ型が、入力されたデータ型と一致するかどうかを判断する。
【００２８】
データ型は、例えば倍精度浮動小数点（double型）などの、数値の精度や種類を示す。これに代えて、データ型は、整数（integer型）、小数（float型）、文字列（String型）などのように、データの種類を示してもよい。また、データ型は、整数型の数値を２つ、などのように、入力するべき、または、出力するべき数値の個数を示してもよい。さらに、同じ文字列型のなかでも、住所を示すデータフォーマットであるか、名前を示すデータフォーマットであるか、などのように、エンコード形式の区別をデータ型として取り扱ってもよい。
【００２９】
データ型が一致するウェブサービスが、以降の指標値算出の処理の対象となる。具体的には、まず、算出部２２０は、データ型が一致するそれぞれのウェブサービスについて、当該ウェブサービスに対応付けられた実行履歴を実行履歴ＤＢ２４から選択する。そして、算出部２２０は、入力した上記入力パラメータおよび出力パラメータの組と実行履歴ＤＢ２４に記憶されている入力パラメータおよび出力パラメータのそれぞれの組との間の値の近さを示す第１指標値を、実行履歴ＤＢ２４に記憶されている入力パラメータおよび出力パラメータのそれぞれの組について算出する。これに代えて、算出部２２０は、入力した上記出力パラメータと実行履歴ＤＢ２４に記憶されている出力パラメータのそれぞれとの間の値の近さを示す第１指標値を、実行履歴ＤＢ２４に記憶されている出力パラメータのそれぞれについて算出してもよい。そして、算出部２２０は、算出した当該第１指標値を関数ごとに合計する。
【００３０】
この「値の近さ」とは、例えば、入力パラメータおよび出力パラメータの組をベクトルとして表した場合における、ベクトルの長さの差の小ささ、および／または、ベクトルの角度の差の小ささであってよい。一例として、実行履歴ＤＢ２４に記憶されている入力パラメータＰおよび出力パラメータＱの組を、ベクトルＲ＝（Ｐ，Ｑ）と表し、入力された入力パラメータＸおよび出力パラメータＹの組を、ベクトルＡ＝（Ｘ，Ｙ）と表した場合において、第１指標値は、１／｜Ｒ−Ａ｜である。但し｜Ｗ｜はベクトルＷの距離を表す。従って、｜Ｒ−Ａ｜は、（Ｐ−Ｘ）２＋（Ｑ−Ｙ）２の平方根である。
【００３１】
また、算出部２２０は、データ型が一致するそれぞれのウェブサービスについて、当該ウェブサービスに対応付けられた評価履歴を評価履歴ＤＢ２６から選択する。そして、算出部２２０は、入力した上記入力パラメータおよび出力パラメータの組との間の近さを示す第２指標値を、評価履歴ＤＢ２６に記憶されている入力パラメータおよび出力パラメータのそれぞれの組について算出する。そして、算出部２２０は、算出した当該第２指標値を関数ごとに合計する。
【００３２】
但し、算出部２２０は、評価履歴ＤＢ２６に記憶されている入力パラメータおよび出力パラメータのそれぞれの組について、当該パラメータの組が評価結果「正」に対応付けられている場合には、値の近さを示す指標値を上記第２指標値の合計に加える。一方、算出部２２０は、評価履歴ＤＢ２６に記憶されている入力パラメータおよび出力パラメータのそれぞれの組について、当該パラメータの組が評価結果「誤」に対応付けられている場合には、値の近さを示す指標値を上記第２指標値から減じる。
【００３３】
このようにして算出した第１指標値および第２指標値を、算出部２２０は、関数ごとに合計する。好ましくは、算出部２２０は、第１指標値に第２指標値よりも高い重みを付して加算することが望ましい。これについては後に詳しく説明するが、第１指標値には重み１を付して、かつ、第２指標値には、評価結果に応じた確信度（０以上１以下の値）を付して合計することが望ましい。
【００３４】
そして、出力部２３０は、このようにして算出した第１指標値および第２指標値の合計が予め定められた基準値よりも大きいウェブサービスを選択して、検索結果として出力する。例えば、出力部２３０は、第１指標値および第２指標値の合計が予め定められた基準値よりも大きいウェブサービスを、当該合計の大きい順に優先して表示してもよい。優先した表示とは、例えば、合計の大きいウェブサービスを画面のより上側に、かつ、合計のより小さいウェブサービスを画面のより下側に表示することであってよい。これに代えて、出力部２３０は、上記合計の大きい方から予め定められた数のウェブサービスを選択して表示し、その他のウェブサービスを表示しなくてもよい。
【００３５】
また、ウェブサービスの表示とは、例えば、ウェブサービスの名称、および、ウェブサービスの所在を示すＵＲＬを表示することであってよい。これに加えて、ウェブサービスの表示とは、当該ウェブサービスに対応するＷＳＤＬに内容、および、ＵＤＤＩの内容を表示することであってよい。
【００３６】
そして、評価入力部２４０は、出力部２３０が出力したそれぞれの関数について、当該関数が検索するべき関数であったかどうかを示すユーザの評価結果の入力を受け付ける。評価入力部２４０は、受け付けた評価結果を、データ型入力部２００が入力した入力パラメータおよび出力パラメータに対応付けて、評価履歴ＤＢ２６に格納する。これにより、次回以降の検索においてはこの評価結果を反映できるので、検索の精度を向上させることが期待される。
【００３７】
図４は、本実施形態に係る検索システム１０６がユーザの入力に基づいてサービスを検索する処理の流れを示す。データ型入力部２００は、検索するべきウェブサービスの入力パラメータのデータ型、および、当該ウェブサービスの出力パラメータのデータ型の入力を受け付ける（Ｓ３００）。パラメータ入力部２１０は、検索するべきウェブサービスに入力するべき入力パラメータ、および、当該入力パラメータに対し当該ウェブサービスから出力されることが期待される出力パラメータの組の入力を受け付ける。
【００３８】
これらの入力に応じ、まず、算出部２２０は、入力されたデータ型と一致するデータ型のウェブサービスを検索する（Ｓ３１０）。例えば、算出部２２０は、サービスＤＢ２２に記憶されたそれぞれのウェブサービスのＵＲＬにアクセスして、当該ウェブサービスに対応するＷＳＤＬファイルを取得する。そして、算出部２２０は、取得したそれぞれのＷＳＤＬファイルについて、当該ファイル内で定義される入力パラメータのデータ型、および、出力パラメータのデータ型が、入力されたデータ型と一致するかどうかを判断する。データ型が一致するウェブサービスが、以降の指標値算出の処理の対象となる。
【００３９】
なお、データ型が一致するウェブサービスが検索されなければ（Ｓ３２０：ＮＯ）、検索システム１０６は、ウェブサービスの検索が困難であるとして処理を終了する。一方、算出部２２０は、データ型が一致するそれぞれのウェブサービスについて、当該ウェブサービスに対応付けられた実行履歴を実行履歴ＤＢ２４から検索し、評価履歴を評価履歴ＤＢ２６から検索する（Ｓ３３０）。
【００４０】
何れの履歴も検索されなければ（Ｓ３３０：ＮＯ）、算出部２２０は、入力された入力パラメータを、データ型が一致するそれぞれのウェブサービスに実際に入力して実行することで、出力パラメータを出力させる（Ｓ３３５）。この結果得られた入力パラメータおよび出力パラメータの組は実行履歴ＤＢ２４に格納される。
【００４１】
そして、算出部２２０は、入力した上記入力パラメータおよび出力パラメータの組との間の値の近さを示す第１指標値を、実行履歴ＤＢ２４に記憶されている入力パラメータおよび出力パラメータのそれぞれの組について算出する（Ｓ３４０）。そして、算出部２２０は、算出した当該第１指標値を関数ごとに合計する。また、算出部２２０は、データ型が一致するそれぞれのウェブサービスについて、当該ウェブサービスに対応付けられた評価履歴を評価履歴ＤＢ２６から選択する。
【００４２】
そして、算出部２２０は、入力した上記入力パラメータおよび出力パラメータの組との間の近さを示す第２指標値を、評価履歴ＤＢ２６に記憶されている入力パラメータおよび出力パラメータのそれぞれの組について算出する。そして、算出部２２０は、算出した当該第２指標値を関数ごとに合計する。合計の計算のためには、上記のように、指標値には各種重みが付されてもよい。また、計算の効率化のため、指標値の合計にあまり寄与しない部分については合計の算出から除外してもよい。
【００４３】
このような計算の一例を、図５を参照して説明する。
図５は、本実施形態に係る検索システム１０６によるパラメータ検索の処理を示す概念図である。まず、入力された入力パラメータおよび出力パラメータの組をベクトルｘとして表す。このベクトルｘは、図５における想定パラメータ４０に対応する。
【００４４】
そして、算出部２２０は、当該ベクトルｘとの間の距離がｄ以下の実行履歴および評価履歴を実行履歴ＤＢ２４および評価履歴ＤＢ２６から検索する。検索されるそれぞれの履歴はベクトルｃとして表される。たとえば、図５の例では、実行履歴として実行履歴４００、実行履歴４１０および実行履歴４２０が検索される一方で、実行履歴４３０は除外される。また、評価履歴として評価履歴４４０および評価履歴４６０が検索される一方で、評価履歴４５０、評価履歴４７０および評価履歴４８０は除外される。
【００４５】
このようにして検索されたベクトルｃの集合をＣとおくと、集合Ｃは下記のように表される。
Ｃ＝｛ｃ；｜｜ｃ−ｘ｜≦ｄ｝
【００４６】
そして、ベクトルｃとベクトルｘの間の距離に応じて単調減少する関数、たとえば、１／｜ｃ−ｘ｜をｇ（ｃ｜ｘ）とおく。また、算出部２２０は、それぞれのサービスについて、当該サービスをサービスｊとおき、実行履歴ＤＢ２４および評価履歴ＤＢ２６に記憶された当該サービスｊに対応する履歴の総数を算出する。この総数をｃｏｕｎｔ（ｊ｜Ｃ）とおく。また、サービスｊに対応する履歴ｃに付すべき重みをｆ（ｃ，ｊ）とおく。
【００４７】
ｆ（ｃ，ｊ）は、例えば以下のように定義される。
０：サービスｊに対応付けられた履歴ｃが実行履歴ＤＢ２４および評価履歴ＤＢ２６の何れにも含まれない場合
１：サービスｊに対応付けられた履歴ｃが実行履歴ＤＢ２４に含まれる場合
ａ：サービスｊに対応付けられた履歴ｃが評価履歴ＤＢ２６に含まれ、対応する評価履歴が「正」の場合
−ｂ：サービスｊに対応付けられた履歴ｃが評価履歴ＤＢ２６に含まれ、対応する評価履歴が「誤」の場合
【００４８】
但し、ａ，ｂは、０以上１以下の定数である。なお、定数ａ，ｂは、評価結果の信頼度、即ちユーザの評価がどの程度正しいのかを示す。例えば、予めサンプルのデータについてテストをした結果に基づいて、以下の式により求められてもよい。
ａ＝（正しい検索結果をユーザが正しいと評価した回数）／（正しい検索結果をユーザが正しいと評価した回数＋正しい検索結果をユーザが誤りと評価した回数）
ｂ＝（誤った検索結果をユーザが誤っていると評価した回数）／（誤った検索結果をユーザが誤っていると評価した回数＋誤った検索結果をユーザが正しいと評価した回数）
【００４９】
そして、算出部２２０は、入力されたパラメータの組を示すベクトルｘに対し、サービスｊについての第１指標値および第２指標値の合計ｈ（ｊ｜ｘ）を、以下の式により算出する。
【００５０】
【数１】
0004963110.tif 000002
【００５１】
この結果、例えば図５の例では、実行履歴４００、実行履歴４１０および実行履歴４２０のそれぞれと想定パラメータ４０との間の近さを示す指標値は、例えば他より高い重みを付して合計値に加えられる。また、評価履歴４４０と想定パラメータ４０との間の近さを示す指標値は、例えば他より低い重みを付して合計値に加えられる。一方で、評価履歴４６０と想定パラメータ４０との間の近さを示す指標値は、合計値から減算される。
【００５２】
なお、図５には入力パラメータおよび出力パラメータが１つずつである場合を例示した。入力パラメータがｍ個および出力パラメータがｎ個の場合には、図５に代えて、ｍ＋ｎ次元の空間におけるベクトル間の距離に基づき評価値が算出される。但し、１次元のある入力パラメータが二次元に変換されてから評価値を算出する場合などにおいては、入力パラメータがｍ個および出力パラメータがｎ個に対し、ｍ＋ｎ次元以上の次元の空間において指標値が算出される場合がある。例えば、住所を示す入力パラメータが、その緯度および経度を示す入力パラメータに変換されてから、指標値の算出に用いられる場合などである。
【００５３】
また、図２ｂおよび図２ｃの例では、たとえば以下のような計算が行われる。今、入力された入力パラメータを１００（Double型）、出力パラメータを１１０００（Double型）とおく。これは、１００米ドルを、円貨に換算して、１１０００円として出力するサービスを検索するために入力される。
【００５４】
この入力に対し、算出部２２０は、実行履歴ＤＢ２４に記憶された、データ型の一致するサービスservice1に対応付けて、第１指標値として、１／（（１００−１００）２＋（１１０００−１０４８３．６９３２）２）の平方根を算出する。算出結果は、０．００２である。
【００５５】
同じように、算出部２２０は、実行履歴ＤＢ２４に記憶された、データ型の一致するサービスservice2に対応付けて、１／（（１００−１００）２＋（１１０００−０．８７０８）２）の平方根を算出する。算出結果は、０．００００９である。
【００５６】
また、sarvice1については、評価履歴ＤＢ２６に評価履歴が記憶されている。これについては、算出部２２０は、まず、第２指標値として、１／（（１２０−１００）２＋（１１０００−１０５００）２）の平方根を算出する。算出結果は、０．００２である。これは、評価結果「正」に対応しているので、指標値の合計値に加算される。
【００５７】
また、算出部２２０は、第２指標値として、１／（（１１０−１００）２＋（１１０００−０．９）２）の平方根を算出する。算出結果は、０．００００９である。これは、評価結果「誤」に対応しているので、指標値の合計値から減算される。例えば、この評価結果は、米ドルを円貨に換算するのではなく、円貨を米ドルに換算するサービスを検索しようとして入力されたものの、検索結果が誤っていたことを示している。
【００５８】
以上の結果、service1について、指標値の合計は、０．００２＋０．００２−０．００００９により、約０．００３９９となる。このように、評価結果の「誤」に対応する履歴であっても、入力されたパラメータとは遠いパラメータに対応付けられていれば、指標値の合計から減算される数値は小さい。また、service2について、指標値の合計は０．００００９となる。この結果、指標値の合計がより高いservice1が優先して選択される。
【００５９】
なお、算出部２２０は、入力パラメータおよび出力パラメータのうちの少なくとも１つが、数値で無いデータ、例えば文字列型のデータである場合には、当該数値でないデータを数値に変換してから指標値を算出することが望ましい。例えば、算出部２２０は、住所を示す文字列を、その住所の緯度および経度を示す２次元の数値データに変換してもよい。これを実現するためには、住所を示す文字列をその緯度および経度に対応付けたデータベースをもちいればよい。また、算出部２２０は、ＤＮＡの塩基配列を示すデータを、Edit distance （編集距離）を示すデータに変換してもよい。これに加えて、算出部２２０は、各パラメータを示す数値を、例えば正規分布を仮定して平均・偏差を用いるなどして正規化してもよい。
【００６０】
更に他の例として、ウェブサービスの振る舞いが時系列に変化する場合において、例えば、米ドルを円貨に換算するサービスにおいてドル円相場が変化する場合においては、実行履歴または評価履歴として記録された時間が考慮されることが望ましい。例えば、算出部２２０は、より後の時間に対応付けられた出力パラメータに基づく指標値に、より先の時間に対応付けられた出力パラメータに基づく指標値よりも重い重みを付して、ウェブサービスごとに合計してよい。これにより、そのようなウェブサービスであっても、精度良く検索することができる。
【００６１】
図４の説明に戻る。
出力部２３０は、このようにして算出した第１指標値および第２指標値の合計が予め定められた基準値よりも大きいウェブサービスを選択して、検索結果として出力する（Ｓ８８０）。例えば、出力部２３０は、第１指標値および第２指標値の合計が予め定められた基準値よりも大きいウェブサービスを、当該合計の大きい順に優先して表示してもよい。優先した表示とは、例えば、合計の大きいウェブサービスを画面のより上側に、かつ、合計のより小さいウェブサービスを画面のより下側に表示することであってよい。
【００６２】
このような表示の例を図６に示す。
図６は、本実施形態に係る出力部２３０に表示される画面の一例を示す。出力部２３０は、データ型入力部２００およびパラメータ入力部２１０が入力を受け付けるための入力欄を表示する。図６の例では、検索条件として、入力パラメータ１のデータ型、入力パラメータ１の値、出力パラメータ１のデータ型、および、出力パラメータ１の値の入力を受け付けるための入力欄が表示されている。これらの入力欄内のデータは、データ型入力部２００およびパラメータ入力部２１０に入力される。
【００６３】
これらの入力欄は、「入力条件を増やす」または「出力条件を増やす」のボタンが押された場合には、増加して表示されてよい。さらに、出力部２３０は、ウェブサービス検索のためのフリーワードの入力欄を表示してもよい。フリーワードの入力欄に入力されたテキストは、ウェブサービスのＷＳＤＬファイルなどに記録されたコメント欄または記述欄などを対象とした検索に用いられる。算出部２２０は、そのようなテキストが検索されたウェブサービスについてのみ、指標値を算出する対象としてよい。このように、使用者は様々な観点の条件を組み合わせることで、所望の機能を有するウェブサービスを精度良く検索できる。
【００６４】
そして、検索のボタンが押下されると、上記データ型入力部２００、パラメータ入力部２１０、算出部２２０および出力部２３０として説明した各種処理が開始される。その結果、出力部２３０は、これらの入力欄の下側に検索結果を表示する。検索結果には、第１指標値および第２指標値の合計が基準値よりも大きいウェブサービスが複数表示されている。但し、米ドルを日本円に換算するservice1のほうが、日本円を米ドルに換算するservice2よりも優先して、例えば上側に表示されている。
【００６５】
具体例として、出力部２３０は、あるウェブサービスについて、まず、そのウェブサービスのＵＲＬおよび名前を表示する。また、出力部２３０は、そのウェブサービスに対応付けられた実行履歴のうち、パラメータ入力部２１０が入力したパラメータの組に最も近いパラメータの組を選択して表示する。また、出力部２３０は、この検索されたサービスが、使用者の所望のサービスであったかどうかの評価結果の入力欄を表示する。この入力欄に入力された評価結果は、評価入力部２４０に入力される。
【００６６】
以上、図１から図６を参照して説明した実施形態によれば、数多くの機能が不明なウェブサービスの中から、使用者の欲するウェブサービスを検索できる。ウェブサービスの検索は、データ型、フリーワード、実行履歴および評価履歴などの様々な観点を組み合わせて実現することで、検索の精度を高めることができる。また、検索の結果は評価履歴として蓄えることで、次の検索の精度向上に役立てることができる。これらの特徴によれば、インターネット上などに広く公開されている様々なウェブサービスの中から所定の機能を有するサービスを適切に検索して有効に活用することができる。
【００６７】
なお、ウェブサービスは、そのウェブサービスを呼び出すプログラムの実行中に、いわゆるオン・ザ・フライで必要に応じて検索され、検索後直ちに実行されてもよい。そのような処理を実現する検索システム１０６の形態を変形例として図７および図８に例示する。
図７は、本実施形態の変形例に係る検索システム１０６の機能構成を示す。本変形例に係る検索システム１０６は、図３に示す検索システム１０６に加えて、さらに、プログラム実行部２５０を備える。また、本変形例に係る検索システム１０６は、評価入力部２４０を備えなくてもよい。
【００６８】
プログラム実行部２５０は、使用者により入力された初期プログラムを実行している。このプログラムの実行中に、ウェブサービスの実行が必要になる場合がある。具体的には、このプログラムには、ウェブサービスの実行が必要になった場合にそのウェブサービスを検索するために入力する入力パラメータおよび出力パラメータの組、および、それらのデータ型の組が記述されている。
【００６９】
そして、プログラム実行部２５０は、ウェブサービスの実行が必要になると、検索のための入力パラメータおよび出力パラメータ、並びにそれらのデータ型をデータ型入力部２００およびパラメータ入力部２１０に入力する。即ち、データ型入力部２００は、実行中の当該プログラムから、入力パラメータおよび出力パラメータのデータ型の入力を受け付ける。また、パラメータ入力部２１０は、実行中の当該プログラムから、入力パラメータおよび出力パラメータの入力を受け付ける。
【００７０】
算出部２２０による処理は、上記図１から図６を参照して説明したとおりである。但し、出力部２３０は、算出された指標値の最も大きいウェブサービスを１つ選択する。そして、プログラム実行部２５０は、選択されたウェブサービスを実行して、実行結果を、実行中の当該初期プログラムにリターンする。
【００７１】
図８は、本実施形態の変形例に係る検索システム１０６がユーザの入力に基づいてサービスを検索する処理の流れを示す。プログラム実行部２５０は、使用者により入力された初期プログラムを実行している（Ｓ８００）。データ型入力部２００は、実行中の当該プログラムから、入力パラメータおよび出力パラメータのデータ型の入力を受け付ける（Ｓ８１０）。また、パラメータ入力部２１０は、実行中の当該プログラムから、入力パラメータおよび出力パラメータの入力を受け付ける。
【００７２】
これらの入力に応じ、まず、算出部２２０は、入力されたデータ型と一致するデータ型のウェブサービスを検索する（Ｓ８２０）。例えば、算出部２２０は、サービスＤＢ２２に記憶されたそれぞれのウェブサービスのＵＲＬにアクセスして、当該ウェブサービスに対応するＷＳＤＬファイルを取得する。そして、算出部２２０は、取得したそれぞれのＷＳＤＬファイルについて、当該ファイル内で定義される入力パラメータのデータ型、および、出力パラメータのデータ型が、入力されたデータ型と一致するかどうかを判断する。データ型が一致するウェブサービスが、以降の指標値算出の処理の対象となる。
【００７３】
なお、データ型が一致するウェブサービスが検索されなければ（Ｓ８３０：ＮＯ）、プログラム実行部２５０は、プログラムの実行継続が困難であるとしてプログラムを異常終了させる（Ｓ８４０）。一方、算出部２２０は、データ型が一致するそれぞれのウェブサービスについて、当該ウェブサービスに対応付けられた実行履歴を実行履歴ＤＢ２４から検索し、評価履歴を評価履歴ＤＢ２６から検索する（Ｓ８５０）。
【００７４】
検索されなければ（Ｓ８５０：ＮＯ）、算出部２２０は、入力された入力パラメータを、データ型が一致するそれぞれのウェブサービスに実際に入力して実行することで、出力パラメータを出力させる（Ｓ８６０）。この結果得られた入力パラメータおよび出力パラメータの組は実行履歴ＤＢ２４に格納される。
【００７５】
そして、算出部２２０は、入力した上記入力パラメータおよび出力パラメータの組との間の値の近さを示す第１指標値を、実行履歴ＤＢ２４に記憶されている入力パラメータおよび出力パラメータのそれぞれの組について算出する（Ｓ８７０）。そして、算出部２２０は、算出した当該第１指標値を関数ごとに合計する。また、算出部２２０は、データ型が一致するそれぞれのウェブサービスについて、当該ウェブサービスに対応付けられた評価履歴を評価履歴ＤＢ２６から選択する。
【００７６】
そして、算出部２２０は、入力した上記入力パラメータおよび出力パラメータの組との間の近さを示す第２指標値を、評価履歴ＤＢ２６に記憶されている入力パラメータおよび出力パラメータのそれぞれの組について算出する。そして、算出部２２０は、算出した当該第２指標値を関数ごとに合計する。合計の計算のためには、上記のように、指標値には各種重みが付されてもよい。また、計算の効率化のため、指標値の合計にあまり寄与しない部分については合計の算出から除外してもよい。
【００７７】
出力部２３０は、算出された指標値の最も大きいウェブサービスを１つ選択する（Ｓ８８０）。そして、プログラム実行部２５０は、Ｓ８００に処理を戻し、選択されたウェブサービスを実行する。以上、この変形例によれば、予めサブ・ルーチンを指定しなくても、初期プログラムは自動的に多数のウェブサービスを次々に検索して実行することができる。
【００７８】
次に、参考として、図９および図１０にＷＳＤＬデータ９０、ＵＤＤＩのｔＭｏｄｅｌデータ１２Ａおよび検索クエリ１２Ｂの例を示す。
図９は、本実施形態において検索するべきサービスに対応する、ＷＳＤＬ（getcurrency.wsdl）により記述したＷＳＤＬデータ９０の一例を示す。ＷＳＤＬデータ９０は、例えばウェブサービスを提供するサーバ装置において、当該ウェブサービスに対応付けて記憶されている。このサーバ装置は、例えば、本実施形態に係る通信ネットワーク１５に接続されていてよい。
【００７９】
ＷＳＤＬデータ９０には、図示のように、ＸＭＬに基づく記法により、各種の情報がタグ付きで記述されている。例えば、データ型記述９００Ａとして示すように、ＷＳＤＬデータ９０は、入力パラメータのデータ型を定義している。また、データ型記述９００Ｂとして示すように、ＷＳＤＬデータ９０は、出力パラメータのデータ型を定義している。このような定義に基づいて、本実施形態に係る算出部２２０は、入力されたデータ型と一致するデータ型のウェブサービスを適切に検索して、指標値算出の対象として選択することができる。
【００８０】
図１０は、本実施形態において検索するべきサービスに対応するｔＭｏｄｅｌデータ１２Ａおよび検索クエリ１２Ｂの一例を示す。ｔＭｏｄｅｌデータ１２Ａについてもまた、例えばウェブサービスを提供するサーバ装置において、当該ウェブサービスに対応付けて記憶されている。
【００８１】
ｔＭｏｄｅｌデータ１２Ａは、例えばコメント記述１２００として示すように、サービスの内容や種類を示す記述部分を含む。この記述部分は、上記図６を参照して説明したキーワード検索の対象となる。また、ｔＭｏｄｅｌデータ１２Ａは、例えばキー名１２１０として示すように、サービスの内容や種類を示すテキストデータを、キー名に含んでいる。このテキストデータについても、キーワード検索の対象となってよい。
【００８２】
また、ｔＭｏｄｅｌデータ１２Ａは、例えばデータ型記述１２２０として示すように、入力パラメータのデータ型を定義している。また、検索クエリ１２Ｂは、例えばキー名１２３０として示すように、検索対象の入力パラメータのデータ型を定義している。このような定義に基づいて、本実施形態に係る算出部２２０は、入力されたデータ型と一致するデータ型のウェブサービスを適切に検索して、指標値算出の対象として選択することができる。
【００８３】
図１１は、本実施形態に係る情報処理装置１００およびその周辺のハードウェア構成の一例を示す。情報処理装置１００は、ホストコントローラ１０８２により相互に接続されるＣＰＵ１０００、ＲＡＭ１０２０、及びグラフィックコントローラ１０７５を有するＣＰＵ周辺部と、入出力コントローラ１０８４によりホストコントローラ１０８２に接続される通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を有する入出力部と、入出力コントローラ１０８４に接続されるＲＯＭ１０１０、フレキシブルディスクドライブ１０５０、及び入出力チップ１０７０を有するレガシー入出力部とを備える。
【００８４】
ホストコントローラ１０８２は、ＲＡＭ１０２０と、高い転送レートでＲＡＭ１０２０をアクセスするＣＰＵ１０００及びグラフィックコントローラ１０７５とを接続する。ＣＰＵ１０００は、ＲＯＭ１０１０及びＲＡＭ１０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ１０７５は、ＣＰＵ１０００等がＲＡＭ１０２０内に設けたフレームバッファ上に生成する画像データを取得し、表示装置１０８０上に表示させる。これに代えて、グラフィックコントローラ１０７５は、ＣＰＵ１０００等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
【００８５】
入出力コントローラ１０８４は、ホストコントローラ１０８２と、比較的高速な入出力装置である通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を接続する。通信インターフェイス１０３０は、ネットワークを介して外部の装置と通信する。ハードディスクドライブ１０４０は、例えば上記記憶装置２０を実現するものであり、情報処理装置１００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭ１０９５からプログラム又はデータを読み取り、ＲＡＭ１０２０又はハードディスクドライブ１０４０に提供する。
【００８６】
また、入出力コントローラ１０８４には、ＲＯＭ１０１０と、フレキシブルディスクドライブ１０５０や入出力チップ１０７０等の比較的低速な入出力装置とが接続される。ＲＯＭ１０１０は、情報処理装置１００の起動時にＣＰＵ１０００が実行するブートプログラムや、情報処理装置１００のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ１０５０は、フレキシブルディスク１０９０からプログラム又はデータを読み取り、入出力チップ１０７０を介してＲＡＭ１０２０またはハードディスクドライブ１０４０に提供する。入出力チップ１０７０は、フレキシブルディスク１０９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
【００８７】
情報処理装置１００に提供されるプログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ１０７０及び/又は入出力コントローラ１０８４を介して、記録媒体から読み出され情報処理装置１００にインストールされて実行される。プログラムが情報処理装置１００等に働きかけて行わせる動作は、図１から図１０において説明した情報処理装置１００における動作と同一であるから、説明を省略する。
【００８８】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムを情報処理装置１００に提供してもよい。
【００８９】
以上、本実施形態によれば、使用者が希望する機能を有するウェブサービスを、これまでより効率的に検索して出力することができる。検索には、データ型やキーワードの他に、サービスを実行した履歴、および、サービスを検索するために入力されたパラメータの履歴が用いられる。これらの組合せにより、本実施形態に係る情報処理装置１００は、使用者の希望する機能を有するウェブサービスを精度良く検索できる。
【００９０】
また、出力された検索結果に対し、情報処理装置１００は、その検索されたサービスが、使用者の希望するサービスであるか否かの評価の結果の入力を受け付ける。その評価の結果は、サービスの検索結果としてデータベースに反映される。これにより、次回以降の検索においてはその評価結果を更に利用して、検索の精度を一層高めることができる。
【００９１】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。例えば、ウェブサービスの検索には実行履歴のみを使用して評価履歴を使用しなくてもよい。その反対に、ウェブサービスの検索には評価履歴を使用して実行履歴を使用しなくてもよい。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００９２】
【図１】図１は、本実施形態に係る情報システム１０の全体構成を示す。
【図２ａ】図２ａは、本実施形態に係るサービスＤＢ２２のデータ構造の一例を示す。
【図２ｂ】図２ｂは、本実施形態に係る実行履歴ＤＢ２４のデータ構造の一例を示す。
【図２ｃ】図２ｃは、本実施形態に係る評価履歴ＤＢ２６のデータ構造の一例を示す。
【図３】図３は、本実施形態に係る検索システム１０６の機能構成を示す。
【図４】図４は、本実施形態に係る検索システム１０６がユーザの入力に基づいてサービスを検索する処理の流れを示す。
【図５】図５は、本実施形態に係る検索システム１０６によるパラメータ検索の処理を示す概念図である。
【図６】図６は、本実施形態に係る出力部２３０に表示される画面の一例を示す。
【図７】図７は、本実施形態の変形例に係る検索システム１０６の機能構成を示す。
【図８】図８は、本実施形態の変形例に係る検索システム１０６がユーザの入力に基づいてサービスを検索する処理の流れを示す。
【図９】図９は、本実施形態において検索するべきサービスに対応するＷＳＤＬデータ９０の一例を示す。
【図１０】図１０は、本実施形態において検索するべきサービスに対応するＵＤＤＩのｔＭｏｄｅｌデータ１２Ａおよび検索クエリ１２Ｂの一例を示す。
【図１１】図１１は、本実施形態に係る情報処理装置１００のハードウェア構成の一例を示す。
【符号の説明】
【００９３】
１０  情報システム
１２Ａ  ｔＭｏｄｅｌデータ
１２Ｂ  検索クエリ
１５  通信ネットワーク
２０  記憶装置
２２  サービスＤＢ
２４  実行履歴ＤＢ
２６  評価履歴ＤＢ
４０  想定パラメータ
９０  ＷＳＤＬデータ
１００  情報処理装置
１０２  ユーザインターフェイス
１０４  記憶部
１０６  検索システム
２００  データ型入力部
２１０  パラメータ入力部
２２０  算出部
２３０  出力部
２４０  評価入力部
２５０  プログラム実行部
４００  実行履歴
４１０  実行履歴
４２０  実行履歴
４３０  実行履歴
４４０  評価履歴
４５０  評価履歴
４６０  評価履歴
４７０  評価履歴
４８０  評価履歴
９００  データ型記述
１２００  コメント記述
１２１０  キー名
１２２０  データ型記述
１２３０  キー名
【図１】
0004963110.tif 000003
【図２ａ】
0004963110.tif 000004
【図２ｂ】
0004963110.tif 000005
【図２ｃ】
0004963110.tif 000006
【図３】
0004963110.tif 000007
【図４】
0004963110.tif 000008
【図５】
0004963110.tif 000009
【図６】
0004963110.tif 000010
【図７】
0004963110.tif 000011
【図８】
0004963110.tif 000012
【図９】
0004963110.tif 000013
【図１０】
0004963110.tif 000014
【図１１】
0004963110.tif 000015