(57)【要約】  類似サービス検索システムは、１以上のサービス部品から構成される複数のサービスを蓄積するサービス蓄積部を参照して、比較対象のサービスを構成するサービス部品と比較相手のサービスを構成するサービス部品との間のサービス部品類似度を計算するサービス部品類似度計算部と、前記計算されたサービス部品類似度に基づいて、前記比較対象のサービスと比較相手のサービスとの間のサービス類似度を計算するサービス類似度計算部とを備える。
2009069474.tif 000002
【特許請求の範囲】
【請求項１】
１以上のサービス部品から構成される複数のサービスを蓄積するサービス蓄積部を参照して、比較対象のサービスを構成するサービス部品と比較相手のサービスを構成するサービス部品との間のサービス部品類似度を計算するサービス部品類似度計算部と、
前記計算されたサービス部品類似度に基づいて、前記比較対象のサービスと比較相手のサービスとの間のサービス類似度を計算するサービス類似度計算部と、を備える類似サービス検索システム。
【請求項２】
前記サービス蓄積部は、前記サービスを構成する複数のサービス部品を蓄積しており、前記サービス部品類似度計算部は、前記サービス類似度計算部から、前記比較対象のサービスを構成するサービス部品の情報と、前記比較相手のサービスを構成するサービス部品の情報とを受け取り、前記サービス蓄積部を参照して、前記サービス部品間の類似度を計算する、請求項１に記載の類似サービス検索システム。
【請求項３】
前記サービス蓄積部が、前記サービス部品がどのサービス部品からの派生であるかを示す派生情報を管理するサービス部品派生情報管理部を有しており、前記サービス部品類似度計算部は、前記サービス部品派生情報管理部を参照して、前記比較対象のサービスを構成するサービス部品と、前記比較相手のサービスを構成するサービス部品との派生距離を求め、該派生距離に基づいて派生距離に基づくサービス部品の類似度を求め、該派生距離に基づくサービス部品の類似度と前記サービス部品間の類似度とを合算して、前記サービス部品類似度を計算する、請求項２に記載の類似サービス検索システム。
【請求項４】
前記サービス部品類似度計算部は、前記派生距離の計算では、派生元と派生先との関係を１ステップと数えて、前記比較対象のサービスを構成するサービス部品と比較相手のサービスを構成するサービス部品とが何ステップで接続されるかを計算し、派生距離が短いほど前記派生距離に基づくサービス部品の類似度の値を大きくする、請求項３に記載の類似サービス検索システム。
【請求項５】
前記サービス部品類似度計算部は、前記派生情報に基づくサービス部品の類似度と、前記サービス部品間の類似度とに重み付けを行った上で両者を合算する、請求項３又は４に記載の類似サービス検索システム。
【請求項６】
前記サービス部品類似度計算部は、サービス部品の種類に対応して類似度定義を記憶する類似度定義蓄積部を参照し、前記比較対象のサービスを構成するサービス部品の種類と、前記比較相手のサービスを構成するサービス部品の種類とに合致する類似度定義を用いて、前記サービス部品間の類似度を計算する、請求項２〜４の何れか一に記載の類似サービス検索システム。
【請求項７】
前記サービス類似度計算部は、前記比較対象のサービスを構成する各サービス部品について、前記比較相手のサービスを構成する各サービス部品とのサービス部品類似度を合算して、前記サービス類似度を計算する、請求項１〜６の何れか一に記載の類似サービス検索システム。
【請求項８】
前記サービス類似度計算部は、前記サービス部品類似度に重み付けを行った上で前記サービス部品類似度を合算する、請求項７に記載の類似サービス検索システム。
【請求項９】
前記サービス蓄積部は、前記サービスがどのサービスからの派生であるかを示す派生情報を管理するサービス派生情報管理部を有しており、前記サービス類似度計算部は、前記サービス派生情報管理部を参照して、前記比較対象のサービスと、前記比較相手のサービスとの派生距離を求め、該派生距離に基づいて派生距離に基づくサービスの類似度を求め、該派生距離に基づくサービスの類似度と前記サービス部品類似度とを合算して、前記サービス類似度を計算する、請求項１〜８の何れか一に記載の類似サービス検索システム。
【請求項１０】
前記サービス類似度計算部は、前記サービスの派生距離の計算では、派生元と派生先との関係を１ステップと数えて、前記比較対象のサービスと比較相手のサービスとが、何ステップで接続されるかを計算し、派生距離が短いほど前記派生距離に基づくサービスの類似度の値を大きくする、請求項９に記載の類似サービス検索システム。
【請求項１１】
前記サービス類似度計算部は、前記派生情報に基づくサービスの類似と、前記サービス部品類似度とに所定の重み付けを行った上で両者を合算する、請求項９又は１０に記載の類似サービス検索システム。
【請求項１２】
請求項１〜１１の何れか一に記載の類似サービス検索システムと、
開発者からの指示によりサービスを編集するサービス編集部と、
前記サービス編集部が行った編集内容をサービス部品ごとに機能拡張差分として切り出し、切り出した機能拡張差分を機能拡張差分蓄積部に登録する差分計算部と、
前記機能拡張差分を、前記編集されたサービスとは異なるサービスに適用する差分適用部と、
前記編集されたサービスと類似したサービスを前記類似サービス検索システムにより検索し、前記類似したサービスの開発者に前記機能拡張差分の適用を推薦する推薦部とを有するサービス共有開発システム。
【請求項１３】
１以上のサービス部品から構成される複数のサービスを蓄積するサービス蓄積部を参照して、比較対象のサービスを構成するサービス部品と比較相手のサービスを構成するサービス部品との間のサービス部品類似度を求め、
前記求められたサービス部品類似度に基づいて、前記比較対象のサービスと比較相手のサービスとの間のサービス類似度を計算し、
前記計算されたサービス類似度に基づいて前記比較対象のサービスに類似するサービスを検索する類似サービス検索方法。
【請求項１４】
前記サービス蓄積部は、前記サービスを構成する複数のサービス部品を蓄積しており、前記サービス部品類似度の計算は、前記比較対象のサービスを構成するサービス部品と、前記比較相手のサービスを構成するサービス部品とについて、前記サービス蓄積部を参照して、前記サービス部品間の類似度を計算する、請求項１３に記載の類似サービス検索方法。
【請求項１５】
サービスの編集があると、該編集内容を機能拡張差分として切り出し、
１以上のサービス部品から構成される複数のサービスを蓄積するサービス蓄積部を参照して、前記編集されたサービスを構成するサービス部品と比較相手のサービスを構成するサービス部品との間のサービス部品類似度を求め、
前記求められたサービス部品類似度に基づいて、前記編集されたサービスと比較相手のサービスとのサービス類似度を計算し、
前記計算されたサービス類似度に基づいて前記編集されたサービスに類似するサービスを検索し、
前記類似するサービスの開発者及び利用者の少なくとも一方に、前記機能拡張差分の適用を推薦するサービス共有開発方法。
【請求項１６】
１以上のサービス部品から構成される複数のサービスを蓄積するサービス蓄積部を参照して、比較対象のサービスを構成するサービス部品と比較相手のサービスを構成するサービス部品との間のサービス部品類似度を求める処理と、
前記求められたサービス部品類似度に基づいて、前記比較対象のサービスと比較相手のサービスとの間のサービス類似度を計算する処理と、
前記計算されたサービス類似度に基づいて前記比較対象のサービスに類似するサービスを検索する処理と、をコンピュータに実行させるプログラム。
【請求項１７】
サービスの編集があると、該編集内容を機能拡張差分として切り出す処理と、
１以上のサービス部品から構成される複数のサービスを蓄積するサービス蓄積部を参照して、前記編集されたサービスを構成するサービス部品と比較相手のサービスを構成するサービス部品との間のサービス部品類似度を求める処理と、
前記求められたサービス部品類似度に基づいて、前記編集されたサービスと比較相手のサービスとのサービス類似度を計算する処理と、
前記計算されたサービス類似度に基づいて前記編集されたサービスに類似するサービスを検索する処理と、
前記類似するサービスの開発者及び利用者の少なくとも一方に、前記機能拡張差分の適用を推薦する処理と、をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、類似サービス検索システム、方法、及び、プログラムに関し、更に詳しくは、比較対象のサービスに対して類似関係にある類似サービスを発見できる類似サービス検索システム、方法、及び、プログラムに関する。
【背景技術】
【０００２】
ソフトウェア開発にて、ソフトウェア部品を検索するシステムがある。ソフトウェア部品検索システムの一例が、特許文献１〜４に記載されている。これら関連技術のソフトウェア部品検索システムでは、部品の入出力定義（特許文献１）、キーワード（特許文献２）、プログラム名（特許文献３）、及び、あらかじめ登録した階層的機能種別（特許文献４）を利用して、ソフトウェア部品を検索する。
【特許文献１】特開２００７−１６４２４１号公報
【特許文献２】特開２００６−１７８７０８号公報
【特許文献３】特開２００４−２８７６５０号公報
【特許文献４】特開平０７−０３６６８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
特許文献１〜４のソフトウェア部品検索システムの問題点は、あるサービスへの機能拡張を他のサービスへも適用しようとする際に、効率よく適用先のサービスを発見できないということである。その理由は、特許文献１〜４のソフトウェア部品検索システムは、あるサービスへの機能拡張が検索結果のサービスに適用することが可能か、また有意義かを考慮せずに検索するため、機能拡張を適用する意味がない、或いは、簡単な修正により適用することが不可能な部品が検索されるためである。【０００４】
本発明は、あるサービスへ機能拡張・機能変更を行った際に、同じ機能拡張・機能変更の適用が簡単な修正により可能であり、かつ、適用することが有意義な他のサービス候補を効率よく検索できる類似サービス検索システム、サービス共有開発システム、方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、１以上のサービス部品から構成される複数のサービスを蓄積するサービス蓄積部を参照して、比較対象のサービス（比較対象サービス）を構成するサービス部品と比較相手のサービス（比較相手のサービス）を構成するサービス部品との間のサービス部品類似度を計算するサービス部品類似度計算部と、前記計算されたサービス部品類似度に基づいて、前記比較対象のサービスと比較相手のサービスとの間のサービス類似度を計算するサービス類似度計算部と、を備える類似サービス検索システムを提供する。【０００６】
本発明は、上記本発明の類似サービス検索システムと、開発者からの指示によりサービスを編集するサービス編集部と、前記サービス編集部が行った編集内容をサービス部品ごとに機能拡張差分として切り出し、切り出した機能拡張差分を機能拡張差分蓄積部に登録する差分計算部と、前記機能拡張差分を、前記編集されたサービスとは異なるサービスに適用する差分適用部と、前記編集されたサービスと類似したサービスを前記類似サービス検索システムにより検索し、前記類似したサービスの開発者に前記機能拡張差分の適用を推薦する推薦部とを有するサービス共有開発システムを提供する。【０００７】
本発明は、１以上のサービス部品から構成される複数のサービスを蓄積するサービス蓄積部を参照して、比較対象のサービスを構成するサービス部品と比較相手のサービスを構成するサービス部品との間のサービス部品類似度を求め、前記求められたサービス部品類似度に基づいて、前記比較対象のサービスと比較相手のサービスとの間のサービス類似度を計算し、前記計算されたサービス類似度に基づいて前記比較対象のサービスに類似するサービスを検索する類似サービス検索方法を提供する。【０００８】
本発明は、サービスの編集があると、該編集内容を機能拡張差分として切り出し、１以上のサービス部品から構成される複数のサービスを蓄積するサービス蓄積部を参照して、前記編集されたサービスを構成するサービス部品と比較相手のサービスを構成するサービス部品との間のサービス部品類似度を求め、前記求められたサービス部品類似度に基づいて、前記編集されたサービスと比較相手のサービスとのサービス類似度を計算し、前記計算されたサービス類似度に基づいて前記編集されたサービスに類似するサービスを検索し、前記類似するサービスの開発者及び利用者の少なくとも一方に、前記機能拡張差分の適用を推薦するサービス共有開発方法を提供する。【０００９】
本発明は、１以上のサービス部品から構成される複数のサービスを蓄積するサービス蓄積部を参照して、比較対象のサービスを構成するサービス部品と比較相手のサービスを構成するサービス部品との間のサービス部品類似度を求める処理と、前記求められたサービス部品類似度に基づいて、前記比較対象のサービスと比較相手のサービスとの間のサービス類似度を計算する処理と、前記計算されたサービス類似度に基づいて前記比較対象のサービスに類似するサービスを検索する処理と、をコンピュータに実行させるプログラムを提供する。【００１０】
本発明は、サービスの編集があると、該編集内容を機能拡張差分として切り出す処理と、
１以上のサービス部品から構成される複数のサービスを蓄積するサービス蓄積部を参照して、前記編集されたサービスを構成するサービス部品と比較相手のサービスを構成するサービス部品との間のサービス部品類似度を求める処理と、前記求められたサービス部品類似度に基づいて、前記編集されたサービスと比較相手のサービスとのサービス類似度を計算する処理と、前記計算されたサービス類似度に基づいて前記編集されたサービスに類似するサービスを検索する処理と、前記類似するサービスの開発者及び利用者の少なくとも一方に、前記機能拡張差分の適用を推薦する処理と、をコンピュータに実行させるプログラムを提供する。
【発明の効果】
【００１１】
本発明の類似サービス検索システム、サービス共有開発システム、方法、及び、プログラムは、あるサービスへ機能拡張・機能変更を行った際に、同じ機能拡張・機能変更の適用が簡単な修正により可能で、かつ、適用することが有意義な他のサービス候補を効率よく検索できる。【００１２】
本発明の上記及び他の目的、特徴及び利益は、図面を参照する以下の説明により明らかになる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１実施形態の類似サービス検索システムを示すブロック図。
【図２】サービスとサービス部品との関係を示すブロック図。
【図３】サービスの派生関係を示すブロック図。
【図４】類似サービス検索の手順を示すフローチャート。
【図５】サービス類似度計算の手順を示すフローチャート。
【図６】比較対象と比較相手のサービスを示すブロック図。
【図７】サービス部品の比較の組合せを示すブロック図。
【図８】サービス部品類似度計算の手順を示すフローチャート。
【図９】本発明の第２実施形態の類似サービス検索システムを示すブロック図。
【図１０】本発明の実施例のサービス共有開発システムを示すブロック図。
【図１１】サービス共有開発システムの動作手順を示すフローチャート。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照し、本発明の実施形態を詳細に説明する。図１は、本発明の第１実施形態の類似サービス検索システムの構成を示している。類似サービス検索システム１００は、サービス蓄積部１２０、サービス部品類似度定義蓄積部１３０、サービス類似度計算部１１１、サービス部品類似度計算部１１２、入力部１４０、及び、出力部１５０を有する。類似サービス検索システム１００は、所定のプログラムにより動作するコンピュータシステムで構成される。【００１５】
サービス蓄積部１２０は、サービス、及び、サービスの派生情報やサービス部品の派生情報を蓄積する。サービス部品類似度定義蓄積部１３０は、サービス部品種類ごとの類似度計算方法を蓄積する。サービス類似度計算部１１１は、サービスの類似度を計算する。サービス部品類似度計算部１１２は、サービスを構成する部品の類似度を計算する。入力部１４０は、比較対象となるサービスを入力する。出力部１５０は、検索結果を出力する。【００１６】
サービス蓄積部１２０は、複数のサービス１２１、サービスを構成するサービス部品１２２、サービス派生情報管理部１２３、及び、サービス部品派生情報管理部１２４を有する。各サービス１２１は、１以上のサービス部品から成る。サービス部品１２２は、提供する機能によって分類され、種類が定義される。サービス部品１２２には、複数の種類があり、各サービス部品には、その種類が記述されている。サービス部品の種類としては、入力用部品、出力用部品、データ編集用部品、ユーザインタフェース用部品、データベース登録部品などが考えられる。これら以外の種類を扱ってもよい。サービス部品１２２は、複数のサービスで共有されてもよい。【００１７】
図２に、サービスとサービス部品との関係を示す。この例では、サービス１２１は、４つのサービス部品で構成されている。このサービス１２１は、実行順序を制御するサービス部品１２２−１と、入力部を構成するサービス部品１２２−２と、変換部を構成するサービス部品１２２−３と、出力部を構成するサービス部品１２２−４とを含む。サービス１２１内でのサービス部品の並び順は、順序制御部を構成するサービス部品１２２−１、入力部を構成するサービス部品１２２−２、変換部を構成するサービス部品１２２−３、及び、出力部を構成するサービス部品１２２−４の順となっている。【００１８】
サービス派生情報管理部１２３は、サービスの派生元を蓄積し、派生先の情報を管理する。サービス部品派生情報管理部１２４は、サービス部品の派生情報を管理する。サービス派生情報管理部１２３及びサービス部品派生情報管理部１２４は、それぞれ、各サービス及びサービス部品がどのサービス、サービス部品を元に修正して作成されたものであるかを示す情報を蓄積する。サービス派生情報管理部１２３は、例えば、サービスＢについて、派生元のサービスがサービスＡであるという情報を蓄積する。これら派生情報は、サービス１２１、サービス部品１２２内に拡張情報として記録されていてもよい。【００１９】
図３に、サービスの派生関係を示す。この例では、サービス２及びサービス３は、それぞれサービス１の派生物である。ここでは、派生関係による結びつきを、リンクと呼ぶ。本実施形態では、リンクによって接続されたサービス間の関係を、派生関係にあると定義する。図３では、サービス２及びサービス３の派生元はサービス１であり、サービス４及びサービス５の派生元はそれぞれサービス２及びサービス３であるので、サービス１〜サービス５は、派生関係にある。一方、サービス６については、どのサービスの派生物でもないので、サービス６と派生関係にあるサービスはない。【００２０】
また、本実施形態では、派生関係にある２つのサービスについて、派生関係の近さを派生距離として定義する。派生距離は、派生元と派生先のリンクを１と数え、２つのサービス間が何ステップで接続されているかを数えることで計算する。例えば、サービス１とサービス４との間の派生距離は、サービス４からサービス１に辿りつくまでに、サービス４→サービス２→サービス１というリンクを辿ることになるので、“２”となる。また、サービス４とサービス５との間の派生距離は、サービス４からサービス５に辿りつくまでに、サービス４→サービス２→サービス１→サービス３→サービス５というリンクを辿ることになるので、“４”となる。【００２１】
図１に戻り、サービス部品類似度定義蓄積部１３０は、サービス部品種類ごとの類似度の定義を記録する類似度定義表１３１を蓄積する。類似度定義は、例えばコンピュータ処理可能なプログラムによって与えられる。或いは、外部の類似度計算サービスへのＵＲＬによって与えられていてもよい。入力用部品に用いる類似度定義としては、例えば、入力項目の名前、数、データ型の一致度を計測する関数が適している。また、データ編集用部品に用いる類似度定義としては、例えば、入力データ型の一致する項目の数、変換先データ型の一致する項目の数を計測する関数が適している。【００２２】
入力部１４０は、比較対象となるサービスの識別子を受け取り、サービス類似度計算部１１１に渡す。サービス類似度計算部１１１は、サービス派生情報管理部１２３に蓄積された派生情報を用いて、比較対象のサービスとサービス蓄積部１２０内の各サービスについて、サービス間の派生距離を計算する。また、比較対象のサービスを構成するサービス部品と、比較相手のサービスを構成するサービス部品との間のサービス類似度を求める。サービス部品類似度の計算は、サービス部品類似度計算部１１２を用いて行う。サービス部品類似度計算部１１２は、２つのサービス部品について、サービス部品派生情報管理部１２４に蓄積された派生情報と、類似度定義表１３１とから、サービス部品の類似度を計算する。サービス類似度計算部１１１は、サービス間の派生距離とサービス部品類似度とから、サービス類似度を求める。【００２３】
出力部１５０は、サービス類似度計算部１１１から、類似度の計算結果を受け取り、ユーザに類似サービスを提示する。類似サービスの提示では、例えば、比較対象のサービスとの類似度が高い順に、上位１０位までのサービスを提示する。或いは、所定のしきい値を設けておき、類似度がそのしきい値以上のサービスを提示してもよい。【００２４】
図４に、類似サービス検索システム１００の動作手順を示す。ユーザが、入力部１４０に比較対象のサービスを入力すると、サービス類似度計算部１１１は、入力された比較対象のサービスを、サービス蓄積部１２０から読み出す（ステップＡ１）。サービス類似度計算部１１１は、比較対象のサービスを読み出すと、サービス蓄積部１２０に蓄積された比較対象のサービス以外のサービスから１つを選択する（ステップＡ２）。次いで、選択したサービスと、比較対象のサービスとの間の類似度を計算する（ステップＡ３）。サービス蓄積部１２０に、比較対象のサービスとの間で類似度の計算が済んでいない残りのサービス（比較相手のサービス）があるか否かを判定する（ステップＡ４）。ステップＡ４で、残りのサービスがあると判定されるとステップＡ２に戻り、その残りのサービスから１つを選択し、ステップＡ３及びＡ４を繰り返す。サービス蓄積部１２０に残りのサービスがなくなると、ステップＡ５に進み、比較相手のサービスを、比較対象のサービスとの間でサービス類似度の高い順に並び替える（ステップＡ５）。次いで、その結果をユーザに提示する（ステップＡ６）。【００２５】
図５に、サービス類似度計算の動作手順を示す。サービス類似度計算部１１１は、比較対象のサービスと比較相手のサービスの双方の間で、サービス派生情報管理部１２３を参照して、派生関係があるか否かを確認する。派生関係にある場合には、派生距離を計算する（ステップＢ１）。次いで、双方のサービスを構成するサービス部品で対応関係にある部品を選択する（ステップＢ２）。選択した対応する部品について、サービス部品類似度計算部１１２により、サービス部品類似度を計算する（ステップＢ３）。双方のサービス内に対応する部品が残っているか否かを判定する（ステップＢ４）。ステップＢ４で残りの対応する部品が双方のサービス内にあると判定されると、ステップＢ２に戻り、対応する部品の組を選択する。その後、ステップＢ３及びＢ４を繰り返す。ステップＢ４で残りの対応する部品の組がないと判定されると、ステップＢ５に進み、派生距離とサービス部品類似度とから、各対応する部品のサービス部品類似度を合算して、サービス類似度を求める。【００２６】
サービス類似度の計算では、例えば、派生距離が短いほど類似度が高くなる関数を用いて、サービス間の派生距離に基づく類似度と求める。派生距離に基づく類似度の計算に用いる関数には、派生距離の逆数を類似度とする関数や、所定の定数から派生距離を引いた値を類似度とする関数を用いることができる。サービス間の派生距離に基づく類似度に、サービス部品類似度を加えた類似度を、サービス類似度とする。【００２７】
派生距離に基づく類似度とサービス部品類似度との合算では、派生距離やサービス部品種類に応じて重み付けを行い、傾斜平均を求めてもよい。また、サービス部品のサービス内での位置に応じて、例えば最終ステップのサービス部品の重みを大きくする等の重み付けを行ってもよい。両サービス内で類似度の高いサービス部品が連続している場合には、連続数に従ってサービス類似度が加算するように計算することもできる。サービス類似度を加算する方法の好適な例は、部品類似度が閾値以上のときに一定値を加算する方法である。【００２８】
類似度を計算するサービス部品の組合せの決定では、比較対象と比較相手とでサービス部品数が同じときは、サービス内でのサービス部品の実行順序に従って組合せを決定すればよい。比較対象のサービスと比較相手のサービスとでサービス部品数が異なる場合には、両サービスの実行ステップを一つずつずらし、各組合せについて、サービス類似度の計算を行った上で、最も類似度が高いものを採用すればよい。【００２９】
図６に、比較対象のサービスと比較相手のサービスとの一例を示す。この例では、サービス１は、順序制御部と入力部と出力部との３つのサービス部品で構成されており、サービス２は、順序制御部と入力部と変換部と出力部との４つのサービス部品で構成されている。図７に、サービス部品比較の組合せを示す。図６に示す２つのサービスのサービス類似度の計算では、サービス部品類似度の計算を、図７に示す４つの組合せパターンについて行い、４つのうちで最も高い類似度を、サービス部品類似度とする。【００３０】
サービス部品類似度を計算するサービス部品の組合せでは、「Myers, E. W. [1986]. “An O(ND) difference algorithm and its variations, ”Algorithmica 1, 251-266.」に記載された共通部分を求める手法を使用することができる。この手法を用いる場合は、この手法により一致する部品を求め、組合せを決定すればよい。この方法を用いる場合は全ての組合せの類似度を求める必要がないため、効率的に計算が可能である。【００３１】
図８に、サービス部品類似度計算の手順を示す。サービス部品類似度計算部１１２は、サービス類似度計算部１１１から、比較対象のサービス部品及び比較サービス部品を受け取ると、サービス部品派生情報管理部１２４を参照して、サービス部品間の派生距離を求める（ステップＣ１）。この派生距離は、サービス間の派生距離と同様の計算により求めることができる。次に、サービス部品の種類を判定し（ステップＣ２）、両サービス部品に共通して使用できる類似定義をサービス部品類似度定義蓄積部１３０から取得する（ステップＣ３）。【００３２】
サービス部品類似度計算部１１２は、取得した類似定義に従って、種類別類似度を求める（ステップＣ４）。その後、派生距離と種類別類似度とから、サービス部品類似度を求める（ステップＣ５）。ステップＣ５では、派生距離に基づく部品類似度を求め、その部品類似度に種類別類似度を合算することで、サービス部品類似度を求めることができる。その際、サービス部品種類ごとに、派生距離に基づく部品類似度と種類別類似度との間で重み付けを行い、傾斜平均を求めてもよい。【００３３】
本実施形態では、サービス部品類似度計算部１１２により、比較対象のサービスを構成するサービス部品と比較相手のサービスを構成するサービス部品とについてサービス部品類似度を計算し、サービス類似度計算部１１１は、サービス部品類似度に基づいて、サービス類似度を計算する。サービス部品類似度の計算では、部品種類ごとに定義した類似度定義を用いて、サービス部品間の類似度を計算する。類似度定義として、サービス部品の機能が類似するほど、計算される類似度定義を用意することで、機能が類似するサービス部品間の類似度を高くすることができる。また、サービスを構成するサービス類似度を合算することで、サービスが提供する機能が類似するサービス間のサービス類似度を高くすることができる。合算に際しては、比較対象と比較相手のサービスにおけるサービス部品の位置（実行手順）などに応じて、サービス部品類似度の重み付けを行うことで、サービス構造が類似するサービス間のサービス類似度を、より高くすることができる。【００３４】
また、本実施形態では、サービス及びサービス部品の派生情報を用い、派生距離が短いサービス又はサービス部品間の類似度を高く見積もる。このようにすることで、比較対象のサービスにサービス構造及び機能が類似するサービス部品の類似度を、より高くすることができる。以上のように計算されたサービス類似度が高いサービスを探すことで、比較対象のサービスに類似するサービスを探し出すことができる。サービス構造が類似し、かつ、サービス機能が類似したサービスは、機能拡張・機能変更を適用することが可能で、かつ、有意義である可能性が高い。従って、本実施形態では、あるサービスへ機能拡張・機能変更を行った際に、同じ機能拡張・機能変更を適用することが可能で、かつ、有意義な他のサービス候補を効率よく検索できる。【００３５】
続いて、本発明の第２実施形態について説明する。図９は、本発明の第２実施形態の類似サービス検索システムの構成を示している。第１実施形態と同一の要素については、同じ符号を付け詳細の説明は省略する。本実施形態の類似サービス検索システム２００は、第１実施形態の構成（図１）に加えて、プログラム制御により動作するデータ処理装置２１０と、データ処理装置２１０を制御するためのプログラムを蓄積するプログラム蓄積部２６０とを備える。【００３６】
プログラム蓄積部２６０は、データ処理装置２１０に、サービス類似度計算部１１１及びサービス部品類似度計算部１１２に相当する機能を行わせ、さらにサービス蓄積部１２０内にサービス派生情報管理部１２３及びサービス部品派生情報管理部１２４を作成させるプログラムを蓄積する。データ処理装置２１０は、プログラム蓄積部２６０に蓄積されたプログラムの指示に従い、類似サービス検索システム２００が、類似サービス検索システム１００と同等の機能を提供するように動作する。【００３７】
以下、実施例を用いて説明する。本実施例は、類似サービス検索システム１００（図１）を、サービス共有開発システムに用いた例である。図１０に、サービス共有開発システムの構成を示す。サービス共有開発システム４００は、類似サービス検索システム１００と、機能拡張差分蓄積部４１０と、差分適用部４２０と、サービス編集部４３０と、差分計算部４４０と、推薦部４５０とを備える。【００３８】
機能拡張差分蓄積部４１０は、サービスの機能拡張部品を蓄積する。差分適用部４２０は、機能拡張差分を別のサービスに適用し派生サービスを作成する。サービス編集部４３０は、開発者からの指示に従いサービスの編集を行う。差分計算部４４０は、サービスの機能拡張をサービス部品ごとに切り出す。推薦部４５０は、機能拡張されたサービスと類似したサービスに機能拡張差分を適用することを開発者に推薦する。【００３９】
図１１に、サービス共有開発システム４００の動作手順を示す。サービス編集部４３０は、開発者からの指示により、サービス蓄積部１２０に蓄積されたサービスを編集する（ステップＤ１）。差分計算部４４０は、編集内容を、サービス部品ごとにサービス拡張差分として切り出し、機能拡張差分蓄積部４１０に蓄積する（ステップＤ２）。推薦部４５０は、類似サービス検索システム１００により、編集されたサービスと類似するサービスを検索し（ステップＤ３）、類似サービスの開発者に差分の適用を推薦する（ステップＤ４）。【００４０】
類似サービスの開発者は、推薦内容を確認し、差分の適用推薦を受け入れるか否かを判断する。差分適用部４２０は、類似サービスの開発者が差分の適用推薦を受け入れると（ステップＤ５）、サービス蓄積部１２０内に機能拡張差分を適用した新たなサービスを構築する（ステップＤ６）。その後、差分適用部４２０は、適用前後のサービスの派生情報を、サービス蓄積部１２０内に登録する（ステップＤ７）。【００４１】
類似サービス検索システムを、サービス共有開発システムに適用することで、サービス部品が編集された際に、他の開発者は、自身が開発中のサービスに適用可能なサービス部品の存在を知ることができる。また、本実施例では、差分適用部４２０により自動的に派生情報が追加されるので、開発者は、自身で派生情報を管理する必要がない。【００４２】
本発明を特別に示し且つ例示的な実施形態を参照して説明したが、本発明は、その実施形態及びその変形に限定されるものではない。当業者に明らかなように、本発明は、添付のクレームに規定される本発明の精神及び範囲を逸脱することなく、種々の変更が可能である。例えば、サービス蓄積部やサービス部品類似度定義蓄積部は、類似サービス検索システムの内部にあっても、外部にあってもよい。【００４３】
本出願は、２００７年１１月２６日出願に係る日本特許出願２００７−３０４５５５号を基礎とし且つその優先権を主張するものであり、引用によってその開示の内容の全てを本出願の明細書中に加入する。
【産業上の利用可能性】
【００４４】
本発明は、サービス部品を共有し開発を行うサービス共有開発システムの用途に適用できる。また、ユーザが行った機能拡張を蓄積し、他サービスの拡張に利用するアプリケーションサービスプロバイダ基盤、ソフトウェアアズアサービス（ＳａａＳ）基盤といった用途にも適用可能である。
【図１】
2009069474.tif 000003
【図２】
2009069474.tif 000004
【図３】
2009069474.tif 000005
【図４】
2009069474.tif 000006
【図５】
2009069474.tif 000007
【図６】
2009069474.tif 000008
【図７】
2009069474.tif 000009
【図８】
2009069474.tif 000010
【図９】
2009069474.tif 000011
【図１０】
2009069474.tif 000012
【図１１】
2009069474.tif 000013
【手続補正書】
【提出日】平成21年4月2日(2009.4.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１以上のサービス部品から構成される複数のサービスを蓄積するサービス蓄積部を参照して、比較対象のサービスを構成するサービス部品と比較相手のサービスを構成するサービス部品との間のサービス部品類似度を計算するサービス部品類似度計算部と、
前記計算されたサービス部品類似度に基づいて、前記比較対象のサービスと比較相手のサービスとの間のサービス類似度を計算するサービス類似度計算部と、
前記サービス部品がどのサービス部品からの派生であるかを示す派生情報を管理するサービス部品派生情報管理部と、を備える類似サービス検索システム。
【請求項２】
前記サービス蓄積部は、前記サービスを構成する複数のサービス部品を蓄積しており、
前記サービス部品類似度計算部は、前記サービス類似度計算部から、前記比較対象のサービスを構成するサービス部品の情報と、前記比較相手のサービスを構成するサービス部品の情報とを受け取り、前記サービス蓄積部を参照して、前記サービス部品間の類似度を計算し、さらに前記サービス部品派生情報管理部を参照して、前記比較対象のサービスを構成するサービス部品と、前記比較相手のサービスを構成するサービス部品との派生距離を求め、該派生距離に基づいて派生距離に基づくサービス部品の類似度を求め、該派生距離に基づくサービス部品の類似度と前記サービス部品間の類似度とを合算して、前記サービス部品間の類似度を計算する、請求項１に記載の類似サービス検索システム。
【請求項３】
（削除）
【請求項４】
前記サービス部品類似度計算部は、前記派生距離の計算では、派生元と派生先との関係を１ステップと数えて、前記比較対象のサービスを構成するサービス部品と比較相手のサービスを構成するサービス部品とが何ステップで接続されるかを計算し、派生距離が短いほど前記派生距離に基づくサービス部品の類似度の値を大きくする、請求項２に記載の類似サービス検索システム。
【請求項５】
前記サービス部品類似度計算部は、前記派生情報に基づくサービス部品の類似度と、前記サービス部品間の類似度とに重み付けを行った上で両者を合算する、請求項４に記載の類似サービス検索システム。
【請求項６】
前記サービス部品類似度計算部は、サービス部品の種類に対応して類似度定義を記憶する類似度定義蓄積部を参照し、前記比較対象のサービスを構成するサービス部品の種類と、前記比較相手のサービスを構成するサービス部品の種類とに合致する類似度定義を用いて、前記サービス部品間の類似度を計算する、請求項２又は４に記載の類似サービス検索システム。
【請求項７】
前記サービス類似度計算部は、前記比較対象のサービスを構成する各サービス部品について、前記比較相手のサービスを構成する各サービス部品とのサービス部品類似度を合算して、前記サービス類似度を計算する、請求項１、２、４〜６の何れか一に記載の類似サービス検索システム。
【請求項８】
前記サービス類似度計算部は、前記サービス部品類似度に重み付けを行った上で前記サービス部品類似度を合算する、請求項７に記載の類似サービス検索システム。
【請求項９】
前記サービス類似度計算部は、前記サービス派生情報管理部を参照して、前記比較対象のサービスと、前記比較相手のサービスとの派生距離を求め、該派生距離に基づいて派生距離に基づくサービスの類似度を求め、該派生距離に基づくサービスの類似度と前記サービス部品類似度とを合算して、前記サービス類似度を計算する、請求項１、２、４〜８の何れか一に記載の類似サービス検索システム。
【請求項１０】
前記サービス類似度計算部は、前記サービスの派生距離の計算では、派生元と派生先との関係を１ステップと数えて、前記比較対象のサービスと比較相手のサービスとが、何ステップで接続されるかを計算し、派生距離が短いほど前記派生距離に基づくサービスの類似度の値を大きくする、請求項９に記載の類似サービス検索システム。
【請求項１１】
前記サービス類似度計算部は、前記派生情報に基づくサービスの類似と、前記サービス部品類似度とに所定の重み付けを行った上で両者を合算する、請求項９又は１０に記載の類似サービス検索システム。
【請求項１２】
請求項１〜１１の何れか一に記載の類似サービス検索システムと、
開発者からの指示によりサービスを編集するサービス編集部と、
前記サービス編集部が行った編集内容をサービス部品ごとに機能拡張差分として切り出し、切り出した機能拡張差分を機能拡張差分蓄積部に登録する差分計算部と、
前記機能拡張差分を、前記編集されたサービスとは異なるサービスに適用する差分適用部と、
前記編集されたサービスと類似したサービスを前記類似サービス検索システムにより検索し、前記類似したサービスの開発者に前記機能拡張差分の適用を推薦する推薦部とを有するサービス共有開発システム。
【請求項１３】
１以上のサービス部品から構成される複数のサービスを蓄積するサービス蓄積部を参照して、比較対象のサービスを構成するサービス部品と比較相手のサービスを構成するサービス部品との間のサービス部品類似度を求め、
前記求められたサービス部品類似度に基づいて、前記比較対象のサービスと比較相手のサービスとの間のサービス類似度を計算し、
前記計算されたサービス類似度に基づいて前記比較対象のサービスに類似するサービスを検索する類似サービス検索方法。
【請求項１４】
前記サービス蓄積部は、前記サービスを構成する複数のサービス部品を蓄積しており、前記サービス部品類似度の計算は、前記比較対象のサービスを構成するサービス部品と、前記比較相手のサービスを構成するサービス部品とについて、前記サービス蓄積部を参照して、前記サービス部品間の類似度を計算する、請求項１３に記載の類似サービス検索方法。
【請求項１５】
サービスの編集があると、該編集内容を機能拡張差分として切り出し、
１以上のサービス部品から構成される複数のサービスを蓄積するサービス蓄積部を参照して、前記編集されたサービスを構成するサービス部品と比較相手のサービスを構成するサービス部品との間のサービス部品類似度を求め、
前記求められたサービス部品類似度に基づいて、前記編集されたサービスと比較相手のサービスとのサービス類似度を計算し、
前記計算されたサービス類似度に基づいて前記編集されたサービスに類似するサービスを検索し、
前記類似するサービスの開発者及び利用者の少なくとも一方に、前記機能拡張差分の適用を推薦するサービス共有開発方法。
【請求項１６】
１以上のサービス部品から構成される複数のサービスを蓄積するサービス蓄積部を参照して、比較対象のサービスを構成するサービス部品と比較相手のサービスを構成するサービス部品との間のサービス部品類似度を求める処理と、
前記求められたサービス部品類似度に基づいて、前記比較対象のサービスと比較相手のサービスとの間のサービス類似度を計算する処理と、
前記計算されたサービス類似度に基づいて前記比較対象のサービスに類似するサービスを検索する処理と、をコンピュータに実行させるプログラム。
【請求項１７】
サービスの編集があると、該編集内容を機能拡張差分として切り出す処理と、
１以上のサービス部品から構成される複数のサービスを蓄積するサービス蓄積部を参照して、前記編集されたサービスを構成するサービス部品と比較相手のサービスを構成するサービス部品との間のサービス部品類似度を求める処理と、
前記求められたサービス部品類似度に基づいて、前記編集されたサービスと比較相手のサービスとのサービス類似度を計算する処理と、
前記計算されたサービス類似度に基づいて前記編集されたサービスに類似するサービスを検索する処理と、
前記類似するサービスの開発者及び利用者の少なくとも一方に、前記機能拡張差分の適用を推薦する処理と、をコンピュータに実行させるプログラム。
【国際調査報告】
2009069474.tif 000014
2009069474.tif 000015
2009069474.tif 000016
2009069474.tif 000017