(57)【要約】【課題】実用的かつ多様で複雑なサービスコンポーネント連携シナリオを容易に作成することができ、アプリケーション作成のための作業時間を短縮することができる、シナリオ開発支援装置を提供する。【解決手段】本発明のシナリオ開発支援装置においては、サービスコンポーネント連携シナリオの開発者等が、シナリオ作成端末装置１０に、サービスコンポーネント（または、コンポーネントを含むシナリオ）を入力すると、シナリオ推薦処理部１１０では、入力されたコンポーネントを基に、予めコンポーネントのグループが登録されたコンポーネント関係情報記憶部（例えば、コンポーネントデータベース等）１２０から、入力されたコンポーネントを含む最適なコンポーネントのグループを抽出し推薦する。【選択図】図１
2010191865.tif 000002
【特許請求の範囲】
【請求項１】
予め指定されるサービスコンポーネントの情報、または、サービスコンポーネント連携シナリオにより示されるサービスコンポーネントの情報を入力とし、前記入力されるサービスコンポーネントの情報を基に、推薦するサービスコンポーネントのグループを含むサービスコンポーネント連携シナリオを生成して出力するシナリオ開発支援装置であって、
予め利用されている既存のサービスコンポーネント連携シナリオに含まれるサービスコンポーネントの組み合わせを、サービスコンポーネント間の参照関係の態様に応じてグループ分けして記憶するコンポーネント関係情報記憶部と、
前記入力されるサービスコンポーネント連携シナリオに含まれるサービスコンポーネントを抽出するシナリオ抽出処理部と、
前記予め指定されるサービスコンポーネントの情報、または前記シナリオ抽出処理部により抽出されたサービスコンポーネントの情報を基に、前記コンポーネント関係情報記憶部を検索し、所定の基準により推薦するサービスコンポーネントのグループを抽出するグループ推薦処理部と、
前記グループ推薦処理部により抽出されたサービスコンポーネントのグループを含む新たなサービスコンポーネント連携シナリオを生成して出力するシナリオ推薦処理部と、
を備えることを特徴とするシナリオ開発支援装置。
【請求項２】
前記シナリオ抽出処理部は、
前記入力されるサービスコンポーネント連携シナリオに含まれるサービスコンポーネントのグループを抽出すると共に、該抽出したサービスコンポーネントのグループの情報を、前記コンポーネント関係情報記憶部に記憶させること
を特徴とする請求項１に記載のシナリオ開発支援装置。
【請求項３】
前記コンポーネント関係情報記憶部に記憶されるサービスコンポーネントのグループは、サービスコンポーネント間の参照関係の態様に応じて、
１つのサービスコンポーネントから１つのサービスコンポーネントを呼び出す組からなる直鎖状グループと、
１つのサービスコンポーネントから複数のサービスコンポーネントを呼び出す組からなる複数呼出グループと、
複数のサービスコンポーネントから１つのサービスコンポーネントを呼び出す組からなる複数被参照グループと、
にグループ分けされる、
ことを特徴とする請求項１または請求項２に記載のシナリオ開発支援装置。
【請求項４】
前記シナリオ抽出処理部において、サービスコンポーネント連携シナリオから直鎖状グループを抽出する際に、サービスコンポーネント間での値の受け渡しがある場合のみ直鎖状グループとしてのグループ化を行うこと
を特徴とする請求項３に記載のシナリオ開発支援装置。
【請求項５】
前記シナリオ抽出処理部において、サービスコンポーネント連携シナリオから複数呼出グループを抽出する際に、呼び出し順序が異なる場合、および値の引き渡しによる参照関係が異なる場合は、それぞれ別の複数呼出グループとして扱うと共に、
前記シナリオ抽出処理部において、サービスコンポーネント連携シナリオから複数被参照グループを抽出する際に、参照の順序が異なる場合、および値の引き渡しによる参照関係が異なる場合は、それぞれ別の複数被参照グループとして扱うこと
を特徴とする請求項３または請求項４に記載のシナリオ開発支援装置。
【請求項６】
前記グループ推薦処理部において、前記コンポーネント関係情報記憶部から推薦するコンポーネントのグループを選択する際の所定の基準として、
前記コンポーネント関係情報記憶部にコンポーネントのグループが登録された登録回数および利用回数を基に算出された推薦指数の大きなグループのものから選定することすること
を特徴とする請求項１から請求項６のいずれか１項に記載のシナリオ開発支援装置。
【請求項７】
サービスコンポーネント連携シナリオおよびサービスコンポーネントを利用者に提供する外部装置から、前記利用者により利用されたサービスコンポーネント連携シナリオおよびサービスコンポーネントの利用情報を取得する推薦前処理部を更に備え、
前記コンポーネント関係情報記憶部は、前記各サービスコンポーネントのグループの登録回数に加えて、さらに各サービスコンポーネントのグループが利用された利用回数の情報を記憶するように構成され、
前記推薦前処理部は、前記外部装置から取得した情報を基に、前記利用者により利用されたサービスコンポーネントのグループを抽出し、前記コンポーネント関係情報記憶部内の当該利用されたコンポーネントのグループの利用回数を示す情報を更新すると共に、
前記グループ推薦処理部において、前記コンポーネント関係情報記憶部から推薦するコンポーネントのグループを選択する際の所定の基準として、前記登録回数と前記利用回数とを基に算出された推薦指数の大きなグループのものから選定する、
ことを特徴とする請求項６に記載のシナリオ開発支援装置。
【請求項８】
予め指定されるサービスコンポーネントの情報、または、サービスコンポーネント連携シナリオにより示されるサービスコンポーネントの情報を入力とし、前記入力されるサービスコンポーネントの情報を基に、推薦するサービスコンポーネントのグループを含むサービスコンポーネント連携シナリオを生成して出力するシナリオ開発支援装置におけるシナリオ開発支援方法であって、
予め利用されている既存のサービスコンポーネント連携シナリオに含まれるサービスコンポーネントの組み合わせを、サービスコンポーネント間の参照関係の態様に応じてグループ分けして記憶するコンポーネント関係情報記憶手順と、
前記入力されるサービスコンポーネント連携シナリオに含まれるサービスコンポーネントを抽出するシナリオ抽出処理手順と、
前記予め指定されるサービスコンポーネントの情報、または前記シナリオ抽出処理手順により抽出されたサービスコンポーネントの情報を基に、前記コンポーネント関係情報記憶手順により記憶されたサービスコンポーネントのグループを検索し、所定の基準により推薦するサービスコンポーネントのグループを抽出するグループ推薦処理手順と、
前記グループ推薦処理手順により抽出されたサービスコンポーネントのグループを含む新たなサービスコンポーネント連携シナリオを生成して出力するシナリオ推薦処理手順と、
を含むことを特徴とするシナリオ開発支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザが要求するサービスに応じたサービスコンポーネントを含むサービスコンポーネント連携シナリオを推薦する、シナリオ開発支援装置、およびシナリオ開発支援方法に関する。
【背景技術】
【０００２】
近年、既存の電話網を次世代ネットワークであるＮＧＮ（next generation network）へ置き換えるプロジェクトが進行中である。ＮＧＮでは電話網はＩＰ化され、Ｗｅｂサービス（ウェブサービス）とテレコムネットワークの連携が容易になり、新規サービスの創出が期待されている。Ｗｅｂサービスとは、Ｗｅｂ上のサービスを行うための部品として扱われるサービスコンポーネントのことである。
【０００３】
サービス連携アプリケーション推薦ツールとして、本願の発明者が提案する、サービス連携アプリケーション開発実行基盤（非特許文献1を参照）がある。この非特許文献1で開示する連携アプリケーション開発実行基盤では、サービスシナリオ開発ユーザの開発するサービスイメージと、開発するサービスがターゲットとする利用ユーザ情報とを基に、開発者のニーズに合致する最適なサービスコンポーネント（以下、単に「コンポーネント」とも呼ぶことがある）を推薦することによって、サービスコンポーネント連携シナリオ（以下、単に「シナリオ」とも呼ぶことがある）を推薦してくれるシステムを実現するものである。
【０００４】
上記サービス連携アプリケーション開発実行基盤において、最終的に開発者に推薦されるシナリオは、入力されたサービスコンポーネントの前後に推薦サービスコンポーネントが接続されたシナリオである。しかし、一般的なＷｅｂサービスを連携したマッシュアップと呼ばれるサービスでは、一つのサービスコンポーネントから複数のサービスコンポーネントを呼び出すなど、より多くのサービスコンポーネントが複雑に接続されたサービスがほとんどであり、より現実に利用される可能性のあるサービスを推薦するためには、上記のように複雑なサービスコンポーネント連携シナリオの作成を支援できるようにする必要がある。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】宮城安敏他、“「コンポーネント接続頻度を用いたサービス連携シナリオ開発支援システムの評価」”，電子情報通信学会,ソサイエティ大会，Sep.2008
【発明の概要】
【発明が解決しようとする課題】
【０００６】
前述のように、上記サービス連携アプリケーション開発実行基盤を用いて一般的なサービスコンポーネント連携シナリオの推薦を実現するためには、複雑なシナリオの作成を支援する仕組みが必要である。このため、サービス連携アプリケーション開発実行基盤においてサービスコンポーネント連携シナリオを推薦する際に、過去に登録されたシナリオにおいて、まとまりとして頻繁に利用されているグループから最適なグループを選択することで、複雑なシナリオの作成を支援することが望まれていた。また、過去に登録されたシナリオを用いて、将来的に作成される可能性のある複雑なサービスコンポーネントのグループを推薦することができ、開発者がサービスコンポーネント連携シナリオの作成に要する時間の短縮と、開発者への負担を軽減することが望まれていた。
【０００７】
本発明は上記課題に鑑みなされたものであり、本発明の目的は、シナリオ開発ユーザ等に対して、実用的かつ多様で複雑なサービスコンポーネントのグループを推薦できるようにし、シナリオ開発ユーザ等がサービスコンポーネント連携シナリオを容易に作成することができ、アプリケーション作成のための作業時間を短縮することができる、シナリオ開発支援装置、およびシナリオ開発支援方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、上記課題を解決するためになされたものであり、本発明のシナリオ開発支援装置は、予め指定されるサービスコンポーネントの情報、または、サービスコンポーネント連携シナリオにより示されるサービスコンポーネントの情報を入力とし、前記入力されるサービスコンポーネントの情報を基に、推薦するサービスコンポーネントのグループを含むサービスコンポーネント連携シナリオを生成して出力するシナリオ開発支援装置であって、予め利用されている既存のサービスコンポーネント連携シナリオに含まれるサービスコンポーネントの組み合わせを、サービスコンポーネント間の参照関係の態様に応じてグループ分けして記憶するコンポーネント関係情報記憶部と、前記入力されるサービスコンポーネント連携シナリオに含まれるサービスコンポーネントを抽出するシナリオ抽出処理部と、前記予め指定されるサービスコンポーネントの情報、または前記シナリオ抽出処理部により抽出されたサービスコンポーネントの情報を基に、前記コンポーネント関係情報記憶部を検索し、所定の基準により推薦するサービスコンポーネントのグループを抽出するグループ推薦処理部と、前記グループ推薦処理部により抽出されたサービスコンポーネントのグループを含む新たなサービスコンポーネント連携シナリオを生成して出力するシナリオ推薦処理部と、を備えることを特徴とする。
【０００９】
また、本発明のシナリオ開発支援装置は、前記シナリオ抽出処理部は、前記入力されるサービスコンポーネント連携シナリオに含まれるサービスコンポーネントのグループを抽出すると共に、該抽出したサービスコンポーネントのグループの情報を、前記コンポーネント関係情報記憶部に記憶させることを特徴とする。
【００１０】
また、本発明のシナリオ開発支援装置は、前記コンポーネント関係情報記憶部に記憶されるサービスコンポーネントのグループは、サービスコンポーネント間の参照関係の態様に応じて、１つのサービスコンポーネントから１つのサービスコンポーネントを呼び出す組からなる直鎖状グループと、１つのサービスコンポーネントから複数のサービスコンポーネントを呼び出す組からなる複数呼出グループと、複数のサービスコンポーネントから１つのサービスコンポーネントを呼び出す組からなる複数被参照グループと、にグループ分けされる、ことを特徴とする。
【００１１】
また、本発明のシナリオ開発支援装置は、前記シナリオ抽出処理部において、サービスコンポーネント連携シナリオから直鎖状グループを抽出する際に、サービスコンポーネント間での値の受け渡しがある場合のみ直鎖状グループとしてのグループ化を行うことを特徴とする。
【００１２】
また、本発明のシナリオ開発支援装置は、前記シナリオ抽出処理部において、サービスコンポーネント連携シナリオから複数呼出グループを抽出する際に、呼び出し順序が異なる場合、および値の引き渡しによる参照関係が異なる場合は、それぞれ別の複数呼出グループとして扱うと共に、前記シナリオ抽出処理部において、サービスコンポーネント連携シナリオから複数被参照グループを抽出する際に、参照の順序が異なる場合、および値の引き渡しによる参照関係が異なる場合は、それぞれ別の複数被参照グループとして扱うことを特徴とする。
【００１３】
また、本発明のシナリオ開発支援装置は、前記グループ推薦処理部において、前記コンポーネント関係情報記憶部から推薦するコンポーネントのグループを選択する際の所定の基準として、前記コンポーネント関係情報記憶部にコンポーネントのグループが登録された登録回数および利用回数を基に算出された推薦指数の大きなグループのものから選定することすることを特徴とする。
【００１４】
また、本発明のシナリオ開発支援装置は、サービスコンポーネント連携シナリオおよびサービスコンポーネントを利用者に提供する外部装置から、前記利用者により利用されたサービスコンポーネント連携シナリオおよびサービスコンポーネントの利用情報を取得する推薦前処理部を更に備え、前記コンポーネント関係情報記憶部は、前記各サービスコンポーネントのグループの登録回数に加えて、さらに各サービスコンポーネントのグループが利用された利用回数の情報を記憶するように構成され、前記推薦前処理部は、前記外部装置から取得した情報を基に、前記利用者により利用されたサービスコンポーネントのグループを抽出し、前記コンポーネント関係情報記憶部内の当該利用されたコンポーネントのグループの利用回数を示す情報を更新すると共に、前記グループ推薦処理部において、前記コンポーネント関係情報記憶部から推薦するコンポーネントのグループを選択する際の所定の基準として、前記登録回数と前記利用回数とを基に算出された推薦指数の大きなグループのものから選定する、ことを特徴とする。
【００１５】
また、本発明のシナリオ開発支援方法は、予め指定されるサービスコンポーネントの情報、または、サービスコンポーネント連携シナリオにより示されるサービスコンポーネントの情報を入力とし、前記入力されるサービスコンポーネントの情報を基に、推薦するサービスコンポーネントのグループを含むサービスコンポーネント連携シナリオを生成して出力するシナリオ開発支援装置におけるシナリオ開発支援方法であって、予め利用されている既存のサービスコンポーネント連携シナリオに含まれるサービスコンポーネントの組み合わせを、サービスコンポーネント間の参照関係の態様に応じてグループ分けして記憶するコンポーネント関係情報記憶手順と、前記入力されるサービスコンポーネント連携シナリオに含まれるサービスコンポーネントを抽出するシナリオ抽出処理手順と、前記予め指定されるサービスコンポーネントの情報、または前記シナリオ抽出処理手順により抽出されたサービスコンポーネントの情報を基に、前記コンポーネント関係情報記憶手順により記憶されたサービスコンポーネントのグループを検索し、所定の基準により推薦するサービスコンポーネントのグループを抽出するグループ推薦処理手順と、前記グループ推薦処理手順により抽出されたサービスコンポーネントのグループを含む新たなサービスコンポーネント連携シナリオを生成して出力するシナリオ推薦処理手順と、を含むことを特徴とする。
【発明の効果】
【００１６】
本発明のシナリオ開発支援装置においては、サービスコンポーネント連携シナリオの開発者等がサービスコンポーネント（または、サービスコンポーネントを含むシナリオ）を入力すると、入力されたサービスコンポーネントを基に、予めサービスコンポーネントのグループを登録したコンポーネント関係情報記憶部（例えば、コンポーネントデータベース等）から、入力されたサービスコンポーネントを含む最適なコンポーネントのグループを抽出して推薦する。
これにより、シナリオ開発ユーザ等に対して、実用的かつ多様で複雑なサービスコンポーネントのグループを推薦できる。これにより、シナリオ開発ユーザ等が推薦されたサービスコンポーネントのグループを組み合わせることにより、実用的かつ多様なサービスコンポーネント連携シナリオを容易に作成することができ、アプリケーション作成のための作業時間を短縮することができる。
【００１７】
また、本発明のシナリオ開発支援装置においては、シナリオ抽出処理部は、入力されるサービスコンポーネント連携シナリオに含まれるサービスコンポーネントのグループを抽出すると共に、該抽出したサービスコンポーネントのグループの情報を、前記コンポーネント関係情報記憶部に記憶させる。
これにより、所望のサービスコンポーネント連携シナリオを入力して、コンポーネント関係情報記憶部にサービスコンポーネントのグループの情報を記憶させることができる。
【００１８】
また、本発明のシナリオ開発支援装置においては、コンポーネント関係情報記憶部には、１つのサービスコンポーネントから１つのサービスコンポーネントを呼び出す組からなる直鎖状グループと、１つのサービスコンポーネントから複数のサービスコンポーネントを呼び出す組からなる複数呼出グループと、複数のサービスコンポーネントから１つのサービスコンポーネントを呼び出す組からなる複数被参照グループとが、グループ分けして記憶される。
これにより、多様で複雑な参照関係（接続構成）を有するコンポーネントのグループを推薦することができる。
【００１９】
また、本発明のシナリオ開発支援装置においては、シナリオ抽出処理部において、サービスコンポーネント連携シナリオから直鎖状グループのコンポーネントグループを抽出する際に、値の受け渡しがある場合のみグループ化を行う。
このようすることで、値の受け渡しがない参照関係は、一般的に弱い参照関係であるので、弱い参照関係を直鎖状グループと登録しないことにより、値の受け渡しがない参照関係に比べ、値の受け渡しがある強い参照関係を積極的に推薦することができる。
【００２０】
また、本発明のシナリオ開発支援装置においては、シナリオ抽出処理部において、サービスコンポーネント連携シナリオから複数呼出グループを抽出する際に、呼び出しの順序が異なる場合や、値の引き渡しによる参照関係が異なる場合は、それぞれ別の複数呼出グループとして扱う。また、複数被参照グループを抽出する際に、呼び出しの順序が異なる場合や、値の引き渡しによる参照関係が異なる場合は、それぞれ別の複数被参照グループとして扱う。
これにより、多様な参照関係を有するコンポーネントのグループを登録でき、推薦するサービスコンポーネントのグループに多様性を持たせることができる。
【００２１】
また、本発明のシナリオ開発支援装置においては、コンポーネント関係情報記憶部から推薦するコンポーネントのグループを選択する際には、コンポーネント関係情報記憶部に登録された回数およびコンポーネントのグループが利用された回数を基に算出された推薦指数の大きなグループのものから選定する。
これにより、使用頻度の高いサービスコンポーネントのグループを推薦することができる。
【００２２】
また、本発明のシナリオ開発支援装置においては、サービスコンポーネント連携シナリオおよびサービスコンポーネントに対する利用者の利用情報を外部装置から収集し、この利用情報を基に、サービスコンポーネントの利用回数をグループごとにコンポーネント関係情報記憶部に記憶させておき、コンポーネント関係情報記憶部から推薦するコンポーネントのグループを選択する際には、コンポーネント関係情報記憶部に登録された回数と利用回数とを基に算出された推薦指数の大きなグループのものから選定する。
これにより、サービスコンポーネントの利用情報を考慮した、より実用的なサービスコンポーネントのグループを推薦することができる。
【００２３】
また、本発明のシナリオ開発支援方法においては、サービスコンポーネント連携シナリオの開発者等がサービスコンポーネント（または、サービスコンポーネントを含むシナリオ）を入力すると、入力されたサービスコンポーネントを基に、予めサービスコンポーネントのグループを登録したコンポーネント関係情報記憶部（例えば、コンポーネントデータベース等）から、入力されたサービスコンポーネントを含む最適なコンポーネントのグループを抽出して推薦する。
これにより、シナリオ開発ユーザ等に対して、実用的かつ多様で複雑なサービスコンポーネントのグループを推薦できる。これにより、シナリオ開発ユーザ等が推薦されたサービスコンポーネントのグループを組み合わせることにより、実用的かつ多様なサービスコンポーネント連携シナリオを容易に作成することができ、アプリケーション作成のための作業時間を短縮することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明のシナリオ開発支援装置の構成を示す概略ブロック図である。
【図２】シナリオ推薦処理部について説明するための図である。
【図３】シナリオ抽出処理部について説明するための図である。
【図４】シナリオ推薦処理部とシナリオ抽出処理部における処理動作について説明するための図である。
【図５】サービスコンポーネントのグループ推薦方法を説明するための図である
【図６】複数呼び出しを行うグループの抽出方法を示す図である。
【図７】サービスコンポーネント連携シナリオからグループテーブルへ登録するグループを抽出する方法の一例を示す概略図である。
【図８】複数サービスコンポーネント呼び出しグループにおける実行順序の表記例について説明するための概略図である。
【図９】シナリオ抽出処理部におけるグループ抽出処理とグループテーブルへのグループ登録処理の流れを示す図である。
【図１０】入力シナリオから前段と後段のグループを推薦する処理について説明するための図である。
【図１１】入力コンポーネントに対して前段を推薦する場合のグループ展開図である。
【図１２】入力コンポーネントに対して後段を推薦する場合のグループ展開図である。
【図１３】開発ユーザがサービスコンポーネント連携シナリオを開発するまでの処理の流れを示したシーケンス図である。
【図１４】推薦前処理部の処理とシナリオ推薦処理部とにおけるシナリオ推薦フローについて説明するための概略図である。
【図１５】グループテーブルの例を示す図である。
【発明を実施するための形態】
【００２５】
最初に、本明細書で使用される用語について説明しておく。「Ｗｅｂサービス」とは、前述のように、インターネットのＷｅｂ上のサービスを行うための部品として扱われるサービスコンポーネントのことである。例えば、サービスコンポーネントとして、地図を表示するサービスや、飲食店を紹介するサービスなどである。
また、「サービスコンポーネント連携シナリオ」は、具体的なサービスコンポーネントの指定や実行順序、サービスコンポーネント間の値やデータの引き渡しなどを記載したスクリプトを意味している。そして、サービスコンポーネント連携シナリオにより、例えば、地図上に飲食店を表示して紹介するサービスを提供する。
【００２６】
また、本明細書中において使用される「直鎖状グループ」とは、１つのサービスコンポーネントから１つのサービスコンポーネントを呼び出す組からなるグループであり、「複数呼出グループ」とは、１つのサービスコンポーネントから複数のサービスコンポーネントを呼び出す組からなるグループである。また、「複数被参照グループ」とは、複数のサービスコンポーネントから１つのサービスコンポーネントを呼び出す組からなるグループである（詳細については後述する）。
【００２７】
また、本明細書の説明の中では、前述したように、「サービスコンポーネント」を単に「コンポーネント」と呼ぶことがあり、また、「サービスコンポーネント連携シナリオ」を単に「シナリオ」と呼ぶことがある。
【００２８】
［発明の概要］
本発明のシナリオ開発支援装置は、サービスコンポーネント連携シナリオの開発者等がコンポーネント（または、コンポーネントを含むシナリオ）を入力すると、入力されたコンポーネントを基に、予め形態が異なる（参照関係が異なる）コンポーネントのグループ（コンポーネントグループ）を登録したコンポーネント関係情報記憶部、例えば、コンポーネントデータベースから、入力されたコンポーネントを含むグループを検索し、既存の開発・利用履歴を基に、最適なコンポーネントのグループを含むサービスコンポーネント連携シナリオを生成して推薦するシナリオ開発支援装置である。
【００２９】
［シナリオ開発支援装置の構成］
図１は、本発明の実施の形態に係るシナリオ開発支援装置１００の構成を示す概略ブロック図である。
図１に示す本発明のシナリオ開発支援装置１００においては、シナリオ開発ユーザ等に推薦するサービスコンポーネント連携シナリオに多様性を持たせるため、予め利用されているサービスコンポーネント連携シナリオに含まれる既存のサービスコンポーネントの組み合わせをグループとして記憶するためのコンポーネント関係情報記憶部１２０を備える。
【００３０】
このコンポーネント関係情報記憶部１２０は、グループデータベース１２１を有し、このグループデータベース１２１には、直鎖状グループのデータを記憶する直鎖状グループ記憶部１２２と、複数呼出グループのデータを記憶する複数呼出グループ記憶部１２３と、複数被参照グループのデータを記憶する複数被参照グループ記憶部１２４とを備える。
【００３１】
また、直鎖状グループ記憶部１２２は、直鎖状グループがテーブルデータとして記憶される直鎖状グループテーブル１２２Ａを有し、複数呼出グループ記憶部１２３は、複数呼出グループがテーブルデータとして記憶される複数呼出グループテーブル１２３Ａを有している。また、複数被参照グループ記憶部１２４は、複数被参照グループがテーブルデータとして記憶される複数被参照グループテーブル１２４Ａを有している。
【００３２】
そして、シナリオ開発ユーザ等がシナリオ作成端末装置１０を介して、シナリオ開発支援装置１００にサービスコンポーネント（または、サービスコンポーネントを含むシナリオ）を入力すると、シナリオ開発支援装置１００では、シナリオ推薦処理部１１０が入力されたコンポーネントを含むグループを、グループデータベース１２１内のデータベースから検索し、開発・利用履歴を基に最適なコンポーネントのグループを抽出し、この抽出したグループを推薦する。
【００３３】
また、図１に示す本発明のシナリオ開発支援装置１００は、二つの処理系を有している。すなわち、シナリオ開発ユーザ等が入力したサービスコンポーネント連携シナリオからコンポーネントのグループを抽出するシナリオ抽出処理部１０１と、入力されたコンポーネントに対して、最適なコンポーネントのグループを抽出し、この抽出したグループを含むサービスコンポーネント連携シナリオを生成して推薦するシナリオ推薦処理部１１０を有している。
【００３４】
以下、図１に示すシナリオ開発支援装置１００を構成する各部の構成について説明する。
シナリオ作成端末装置１０は、シナリオ開発支援装置１００内のシナリオ抽出処理部１０１と接続され、シナリオ作成ユーザ（シナリオ開発ユーザ等）の操作により、コンポーネントのグループを、グループデータベース１２１の各記憶部１２２，１２３，１２４に登録するためにシナリオを入力する。入力されたシナリオは、シナリオ抽出処理部１０１に出力される。
【００３５】
また、シナリオ作成端末装置１０には、ユーザの操作により、シナリオの推薦を受けるために、コンポーネントを示す情報、又は、シナリオ及びシナリオ中のいずれかのコンポーネントを示す情報が入力される。そして、シナリオ作成端末装置１０においてシナリオの推薦を受けるために入力されたシナリオ及びコンポーネントを示す情報は、シナリオ推薦処理部１１０のグループ推薦処理部１１１に出力される。
【００３６】
シナリオ抽出処理部１０１は、シナリオ作成端末装置１０から入力されたシナリオから次の３つのグループ、直鎖状グループ、複数呼出グループ、および複数被参照グループを抽出する処理を行い、抽出したグループをグループデータベース１２１が有する直鎖状グループ記憶部１２２、複数呼出グループ記憶部１２３、及び、複数被参照グループ記憶部１２４）に書き込み記憶させる。
【００３７】
グループデータベース１２１は、前述のように、直鎖状グループ記憶部１２２、複数呼出グループ記憶部１２３、及び、複数被参照グループ記憶部１２４の３つの記憶部から構成される。そして、直鎖状グループ記憶部１２２は、直鎖状グループを登録するための直鎖状グループテーブル１２２Ａを有している。複数呼出グループ記憶部１２３は、複数呼出グループを登録するための複数呼出グループテーブル１２３Ａを有している。また、複数被参照グループ記憶部１２４は、複数被参照グループテーブル１２４Ａを有している。
【００３８】
図１５に、各グループテーブルのデータ構成例を示す。図１５（Ａ）は、直鎖状グループテーブル１２２Ａのデータ構成例を示しており、図１５（Ｂ）は、複数呼出グループテーブル１２３Ａのデータ構成例を示しており、図１５（Ｃ）は、複数被参照グループテーブル１２４Ａのデータ構成例を示している。各グループテーブルには、サービスコンポーネントの組み合わせ（参照元と参照先）と、開発回数と、利用回数と、推薦指数との項目を備える。
【００３９】
図１５に示すように、参照元及び参照先の情報には、「値の受け渡し」があるか否か、及び、呼出順序を示す情報が付加される。例えば、図１５（Ｂ）の複数呼出グループテーブル１２３Ａに示すように、値の引き渡しのある場合は、（Ｅ）などと、括弧（  ）を用いてコンポーネント名を括ることにより示される。また、開発回数については、シナリオ抽出処理部１０１がグループを登録すると、登録されたグループの開発回数は1回になる。以後、シナリオ抽出処理部１０１が同じグループを登録すると、開発回数を1づつ増加させる。すなわち、開発回数は、登録回数である。
【００４０】
また、利用回数は、サービス利用者が利用者端末装置２０を用いてシナリオ管理サーバ２００からシナリオを読み出して利用すると、利用されたシナリオに含まれるコンポーネントグループの利用回数に「１」が加算される。また、推薦指数の算出方法としては、図１５に示すに示す例では、開発回数と利用回数との和を算出する方法を用いているが（例えば、開発回数１２回、利用回数２０回の場合、和（加算）を算出して３２回にする）、これに限定されない。例えば、予め定めた算出方法を用いるなど、さらに、グループの複雑さを示す度合いとして、グループに含まれるコンポーネントの数を用いて算出するなどしても良い。
【００４１】
また、シナリオ推薦処理部１１０は、グループ推薦処理部１１１と、推薦前処理部１１２とで構成される。
グループ推薦処理部１１１は、シナリオ作成端末装置１０から入力されたコンポーネントを示す情報（または、入力されたシナリオにより示されるコンポーネントの情報）が入力され、当該コンポーネントが、参照元又は参照先に含まれるグループを、直鎖状グループテーブル１２２Ａと、複数呼出グループテーブル１２３Ａと、複数被参照グループテーブル１２４Ａのそれぞれテーブルから選択する。このとき、推薦指数が最も高いグループを選択する。なお、別の条件として、推薦指数が高い上位の複数のグループを選択することもできる。
【００４２】
推薦前処理部１１２は、サービス利用者管理情報記憶部１３０に記憶されているグループそれぞれの利用履歴（利用者識別子、日時時間）を読み出して、コンポーネント関係情報記憶部１２０中のグループデータベース１２１内の３つの記憶部１２２，１２３，１２４のそれぞれに記憶されているグループテーブル１２２Ａ，１２３Ａ，１２４Ａのそれぞれの利用回数を更新する。このサービス利用者管理情報記憶部１３０には、シナリオ管理サーバ２００において利用者端末装置２０から利用されたサービスコンポーネント３０の利用履歴の情報、および利用者端末装置２０から利用されたシナリオに含まれるサービスコンポーネントの利用履歴の情報が記憶されている。
【００４３】
利用履歴更新部１４０は、シナリオ管理サーバ２００にネットワークを介してアクセスして、シナリオ管理サーバ２００のシナリオ記憶部２１０に記憶されているシナリオの利用履歴を受信して、受信した履歴からそれぞれのサービスコンポーネント連携シナリオに含まれるコンポーネントのグループの利用履歴を抽出して、サービス利用者管理情報記憶部１３０内に記憶されているコンポーネントグループの利用履歴を更新する。
【００４４】
シナリオ管理サーバ２００は、シナリオ入出力部２０１と、シナリオ記憶部２１０とを備える。シナリオ入出力部２０１は、シナリオ作成端末装置１０からネットワークを介して入力されたサービスコンポーネント連携シナリオを受信して、シナリオ記憶部２１０に記憶させる。シナリオ記憶部２１０には、サービスコンポーネント連携シナリオと、利用履歴の情報とが記憶される。
【００４５】
利用者端末装置２０からシナリオ管理サーバ２００に対して、ネットワークを介してサービスコンポーネント連携シナリオの利用が要求されると、シナリオ記憶部２１０から当該サービスコンポーネント連携シナリオを読み出して、当該利用者端末装置２０に送信する。このとき、シナリオ記憶部２１０のサービスコンポーネント連携シナリオの利用履歴を更新する。
【００４６】
そして、シナリオ開発支援装置１００の利用履歴更新部１４０からシナリオ管理サーバ２００に対して、サービスコンポーネント連携シナリオの利用履歴の情報の送信が要求されると、シナリオ入出力部２０１は、シナリオ記憶部２１０からシナリオと、シナリオの利用履歴を読み出して利用履歴更新部１４０に送信する。
【００４７】
利用者端末装置２０は、サービスコンポーネント連携シナリオを利用する端末であり、シナリオ管理サーバ２００に対してシナリオの要求を送信し、要求したシナリオを受信して利用する。また、利用者端末装置２０は、利用者の操作によりシナリオ管理サーバ２００から読み出したシナリオに含まれるサービスコンポーネント３０に対して利用要求を送信する。なお、サービスコンポーネント３０は、利用者端末装置２０から受信した利用要求に応じて、ネットワークを介して該利用者端末装置２０にサービスの提供を行う。
【００４８】
図２は、本発明のシナリオ開発支援装置１００におけるシナリオ推薦処理部１１０の動作について説明するための図である。シナリオ推薦処理部１１０は、開発ユーザやサービスコンポーネント連携シナリオ開発環境等１１などによるサービスコンポーネントを入力として、グループデータベース１２１を検索し、サービスコンポーネントを含むシナリオを推薦する機能を備えている。ここで、推薦されるシナリオの表記方法としては、ＢＰＥＬ（Business Process Execution Language for WebServices）などのビジネスプロセス記述の形式としてもよい。
【００４９】
このシナリオ推薦処理部１１０では、複数のグループテーブル（直鎖状グループテーブル１２２Ａ、複数呼出グループテーブル１２３Ａ、複数被参照グループテーブル１２４Ａ）に振り分けられたサービスコンポーネントのグループから、開発者のニーズに合致するサービスコンポーネントのグループを、他の開発者が既に作成した実績のあるサービスコンポーネントのグループの推薦指数を用いて、最も利用頻度が高いサービスコンポーネントのグループを、開発者に推薦する。
【００５０】
図３は、本発明のシナリオ開発支援装置１００におけるシナリオ抽出処理部１０１について説明するための図である。シナリオ抽出処理部１０１では、登録するサービスコンポーネント連携シナリオから複数のコンポーネントのグループを抽出する。
【００５１】
すなわち、このシナリオ抽出処理部１０１では、一つのサービスコンポーネントから一つのサービスコンポーネントを呼び出す組み合わせにおいて、当該サービスコンポーネントの間で値の受け渡しがある組み合わせを直鎖状グループとして抽出する。また、一つのサービスコンポーネントから複数のサービスコンポーネントを呼び出している構造を複数呼出グループとして抽出する。また、複数のサービスコンポーネントから一つのサービスコンポーネントを呼び出している構造を複数被参照グループとして抽出する。このように、シナリオ抽出処理部１０１では、任意のサービスコンポーネント連携シナリオを入力とした際に、サービスコンポーネント連携シナリオに含まれるサービスコンポーネントの参照関係から、コンポーネントのグループを抽出するものである。
【００５２】
そして、抽出したコンポーネントのグループを、グループデータベース１２１の各記憶部１２２、１２３、１２３内のそれぞれに対応した直鎖状グループテーブル１２２Ａ、複数呼出グループテーブル１２３Ａ、複数被参照グループテーブル１２４Ａへ登録する。
【００５３】
図４は、シナリオ推薦処理部１１０とシナリオ抽出処理部１０１について説明するための図である。シナリオ抽出処理部１０１は、サービスコンポーネント連携シナリオからサービスコンポーネントのグループを抽出しグループデータベース１２１に登録する処理部である。シナリオ推薦処理部１１０は、サービスコンポーネントを入力として、当該サービスコンポーネントを含むグループデータベース１２１を検索し、検出したコンポーネントのグループを推薦する処理部である。
【００５４】
すなわち、シナリオ抽出処理部１０１では、サービスコンポーネント連携シナリオに含まれるサービスコンポーネントの参照関係から、サービスコンポーネントのグループを抽出する。そして、シナリオ抽出処理部１０１は、抽出したコンポーネントのグループをグループデータベース１２１に記憶させ、複数のグループテーブルへ振り分ける。また、シナリオ推薦処理部１１０では、入力されたサービスコンポーネントを基に、グループデータベース１２１から入力されたコンポーネントを含むグループを検索し、最適なグループを推薦する。
【００５５】
次に、本発明のシナリオ開発支援装置１００において、入力されたサービスコンポーネントを基にして、サービスコンポーネント連携シナリオを推薦する詳細な手順について、図５以降において説明する。
【００５６】
図５は、本発明のシナリオ開発支援装置１００におけるサービスコンポーネントのグループ推薦方法を説明するための図である。図５に示す例では、入力されるサービスコンポーネント連携シナリオ３０１と、グループデータベース１２１（直鎖状グループテーブル１２２Ａ、複数呼出グループテーブル１２３Ａ、複数被参照グループテーブル１２４Ａ）と、シナリオ推薦処理部１１０が検出した推薦する直鎖状グループ３０２、複数呼出グループ３０３を示している。
【００５７】
図５に示す例は、開発ユーザがサービス統合開発環境（例えば、図１に示すシナリオ作成端末装置１０）などで作成したシナリオ３０１を基に、直鎖状グループ３０２、複数呼出グループ３０３を推薦する。
【００５８】
例えば、図４に示す例では、開発ユーザがサービスコンポーネント連携シナリオ３０１を作成し、本発明のシナリオ開発支援装置１００に入力する（ステップＳ１１）。このサービスコンポーネント連携シナリオ３０１は、サービス統合開発環境（例えば、図１に示すシナリオ作成端末装置１０）において開発ユーザによって作成される任意のシナリオである。このシナリオ３０１には、コンポーネントＢが含まれることが、シナリオ抽出処理部１０１により検出される。
【００５９】
シナリオ推薦処理部１１０では、入力されたシナリオ３０１内のコンポーネントＢを含むグループをグループデータベース１２１内の直鎖状グループテーブル１２２Ａ，複数呼出グループテーブル１２３Ａ，複数被参照グループテーブル１２４Ａから検索し（ステップＳ１２）、推薦指数が最大のコンポーネント組み合わせを選択する（ステップＳ１３）。
【００６０】
この際、構成するコンポーネントのグループの形状によって、複数のグループテーブル、すなわち、直鎖状グループテーブル１２２Ａ，複数呼出グループテーブル１２３Ａ，複数被参照グループテーブル１２４Ａから、それぞれの最も推薦指数が多いものを選択し、ユーザに推薦する（ステップＳ１４）。図５に示す例では「コンポーネントＢ→コンポーネントＣ」の直鎖状グループと、「コンポーネントＢ→コンポーネントＣ，コンポーネントＤ，コンポーネントＥ」の複数呼出グループを入力シナリオ３０１のコンポーネントＢに対して、直鎖状グループ３０２、複数呼出グループ３０３を推薦する。
【００６１】
図６は、複数呼び出しを行う複数呼出グループの抽出方法を示す図である。図６において、コンポーネント間の値の受け渡しがあるコンポーネントはコンポーネントＢ（参照元はコンポーネントＡ）、コンポーネントＥ（参照元はコンポーネントＢ）、コンポーネントＦ（参照元はコンポーネントＢ）、コンポーネントＨ（参照元はコンポーネントＣ）であり、網掛して表している。なお、サービスコンポーネント連携シナリオを記述するスクリプトにおいて引数の受け渡しが記述されている場合に、コンポーネント間で値の受け渡しがあると判断する。
【００６２】
コンポーネント間で値の受け渡しがなく、単に呼び出されているだけの部品であるコンポーネントＣ、およびコンポーネントＤは白色で表している。コンポーネントＣ、コンポーネントＤのようなコンポーネントは、直鎖状グループテーブル１２２Ａに登録されないので、推薦することができない。そこで、１つのコンポーネントから複数のコンポーネントを呼び出している場合を別グループとして抽出し、複数呼出グループテーブル１２３Ａに登録する。このような方法により、単に呼び出されているだけの参照がない部品も推薦することができるため、グループ化の複雑性を高め、実サービスに近いコンポーネントのグループ化ができる。なお、図１５（Ｂ）に複数呼出グループテーブル１２３Ａが記憶する情報の例を示している。
【００６３】
また、対象コンポーネント（この場合コンポーネントＢ）から直接呼び出されているコンポーネントまでをグループとする（実線枠ａ）。ただし、「コンポーネントＣ→コンポーネントＨ」は参照関係があるため直鎖状コンポーネントのグループとして登録される（破線枠ｂ）。また、対象コンポーネントから複数のコンポーネントを参照している（値の引き継ぎがある）場合は、最後に参照されたコンポーネントまでをグループ化する。
【００６４】
また、コンポーネントのグループの推薦時にその先に参照されているグループを推薦する場合は、直鎖状グループの推薦を行うことによって、その先の参照グループを接続することができる。また、図６には記載していないが、複数のコンポーネントから１つのコンポーネントを参照しているような場合も存在し、その場合の複数被参照グループテーブル１２４Ａも用意する。図１５（Ｃ）には、複数被参照グループテーブル１２４Ａが記憶する情報の一例を示している。
【００６５】
図７は、シナリオ抽出処理部１０１において、サービスコンポーネント連携シナリオからグループテーブルへ登録するグループを抽出するための方法の一例を示す概略図である。
まず、直鎖状グループテーブル１２２Ａへ登録するグループは、図７に示す「コンポーネントＡ→コンポーネントＢ」のように、直鎖状に２つのサービスコンポーネントが接続されたものとする。シナリオ抽出処理部１０１では、開発ユーザに入力された図７に示すような「コンポーネントＡ〜コンポーネントＩ」が含まれたシナリオから、直鎖状にコンポーネントが接続された有向グラフを持ったグループを検出し、図右の直鎖状グループテーブル１２２Ａに示すように、直鎖状にサービスコンポーネントが接続された有向グラフで示されるサービスコンポーネントの組み合わせと推薦指数をテーブルに入力する。
【００６６】
なお、有向グラフとは、コンポーネントＡからコンポーネントＢへ値を受け渡しているような、参照関係の向きが存在するサービスコンポーネント間の接続状態のことであり、読み込むサービスコンポーネント連携シナリオの記述（スクリプト）を基に判断することができる（例えば、シナリオがＢＰＥＬで記述されている場合、ｃｏｐｙタグ内に含まれるｆｒｏｍが参照元であり、ｔｏが参照先である）。なお、コンポーネントＩのように、値の受け渡しがない等、参照関係がない呼び出しの場合はグループ化を行わない（例えばＢＰＥＬでシナリオが記述されている場合、ＢＰＥＬで記述されているシナリオを参照することで参照関係のない、単純に呼び出しているだけのサービスコンポーネントがわかる）。
【００６７】
このように、直鎖状グループについては、値の受け渡しがないなど参照関係が呼び出しの場合はグループ化を行わない。これは、値の受け渡しがない参照関係は、一般的に弱い参照関係であり、弱い参照関係をグループと登録しないことにより、値の受け渡しがない参照関係に比べ、値の受け渡しがある強い参照関係を積極的に推薦することができる。
【００６８】
また、コンポーネントの推薦時に図６に示す複数呼出を行うグループが推薦されるようにするため、複数呼出グループに登録したサービスコンポーネントについては直鎖状グループとして重複する登録はしない。図７に示すシナリオの場合、コンポーネントＢからコンポーネントＣ，Ｅ，Ｈを参照する複数呼出グループが登録されるため、「コンポーネントＢ→コンポーネントＣ」、「コンポーネントＢ→コンポーネントＥ」、「コンポーネントＢ→コンポーネントＨ」のグループは複数呼出グループと重複部分が存在するため、直鎖状グループとしては登録しない。この処理を登録する全てのシナリオに対して行う。図７に示すように抽出されたグループ、「コンポーネントＡ→コンポーネントＢ」、「コンポーネントＣ→コンポーネントＤ」、「コンポーネントE→コンポーネントF」、「コンポーネントＦ→コンポーネントＧ」、を直鎖状グループとする。
【００６９】
図８は、複数呼出グループにおける、実行順序の表記例について説明するための概略図である。複数サービスコンポーネントを呼び出すグループが同じ組み合わせであったとしても、実行順序や参照の有無が異なる場合も考えられる。例えば、図８（Ａ）に示す「コンポーネントＢ→コンポーネントＣ，コンポーネントＤ，コンポーネントＥ」と、図８（Ｂ）に示す「コンポーネントＢ→コンポーネントＤ，コンポーネントＣ，コンポーネントＥ」とは、実行順序が異なり別のグループである。そこで、複数呼出グループのコンポーネントのグループ化を行う際は、コンポーネント呼び出し順序に依存性があることが考えられるので、サービスコンポーネントの呼び出し順を含めてグループ化を行う。
【００７０】
まず、基準となる複数サービスコンポーネント呼び出しグループを、図８（Ａ）に示す複数呼出グループとすると、図８（Ｂ）に示す複数呼出グループは、コンポーネントの組み合わせは同じだが、コンポーネント呼び出し順序（実行順序）のみが異なる。この際、呼び出し順番に依存がある場合と、ない場合との両方が考えられ、どちらかを判断することはできないので、呼び出し順番に依存性がある場合は一律別グループ扱いとする。
【００７１】
表記としては、図８（Ｂ）下側の表に示すように実行順序にサービスコンポーネントを記載し、値の参照があるコンポーネントを括弧で記述することで区別する。また、図８（Ｃ）に示すようなコンポーネントの参照関係が異なる場合は、呼び出している関数自体が異なる場合などが考えられるため、別グループ扱いとする。結局、図８（Ａ）、図８（Ｂ）、図８（Ｃ）に示す複数呼出グループを全て別グループとして管理する。
【００７２】
また、サービスコンポーネントの複数呼出グループ、複数被参照グループは、基準コンポーネントと複数のコンポーネントとの組み合わせから成るため、同一グループの内包が起こる。例えば、グループ「コンポーネントＸ→コンポーネントＡ，コンポーネントＢ，コンポーネントＣ」は、「コンポーネントＸ→コンポーネントＡ，コンポーネントＢ」などのグループを内包していると考えられる。このときのグループのカウント方法として、大きく分けて次の２通りが考えられる。（ａ）内包する組み合わせもカウントする、（ｂ）内包する組み合わせにはカウントしない、上記どちらを選択してもよいが、（ａ）の場合、グループを途中で切ることとなるため、頻繁に利用されているまとまりをグループに分けて扱うことになるので行わない。
【００７３】
図９は、シナリオ抽出処理部１０１において、入力されたサービスコンポーネント連携シナリオからグループ抽出処理を行い、グループテーブルへグループを登録する際の処理の流れを示す概略図である。
【００７４】
抽出方法は、まず、入力されたサービスコンポーネント連携シナリオに対して、シナリオ内のサービスコンポーネントがどのコンポーネントを参照しているのかというコンポーネント間の参照関係をシナリオ（スクリプト）のコードから把握する。
【００７５】
次に、複数呼出グループを抽出するために、１つのコンポーネントから複数のコンポーネントを呼び出している場合（複数呼出グループ）、または、複数のコンポーネントから１つのコンポーネントを呼び出している場合（複数被参照グループ）を見つける。
【００７６】
その後、図６で説明したように、複数のコンポーネントを呼び出しているコンポーネントから、直接呼び出し関係のある一つ隣のコンポーネントまでを含めてグループ化を行う。すなわち、参照先コンポーネントが複数の場合は、参照先コンポーネントまでを含めてグループ化を行い、複数呼出グループとして抽出し、複数呼出グループテーブル１２３Ａに開発履歴として反映させる（ステップＳ２１）。
【００７７】
また、参照元コンポーネントが複数の場合は、参照元コンポーネントを含めてグループ化を行う。すなわち、参照元コンポーネントが複数の場合は、参照元コンポーネントを含めてグループ化を行い、複数被参照グループとして抽出し、複数被参照グループテーブル１２４Ａに開発履歴として反映させる（ステップＳ２２）。
【００７８】
次に、直鎖状グループを抽出するために、１つのコンポーネントから１つのコンポーネントを呼び出している場合を見つけ、図６で説明したように、一つ先（参照先）のコンポーネントまでを含めてグループ化を行い、グループデータベース１２１内の直鎖状グループテーブル１２２Ａ内に開発履歴として反映させる（ステップＳ２３）。
【００７９】
図１０は、シナリオ推薦処理部１１０が入力シナリオから前段と後段のそれぞれのグループを推薦する際の処理の流れを示した図である。すなわち、入力コンポーネントＡ，Ｄ，Ｃに対して、最初にコンポーネントＡに対する前段のグループ展開を行い、その後、コンポーネントＤに対する後段のグループ展開を行い、サービスコンポーネント連携シナリオを生成する。なお、グループは直鎖状グループ、複数呼び出しグループ、複数被参照グループの３種類があるが、それぞれの全グループ中で最も推薦指数の多いものを推薦する。この場合、複数のコンポーネントグループを推薦してもよい。
【００８０】
図１１は、入力コンポーネントに対して前段を推薦する場合のグループ展開図である。この場合、入力シナリオに含む前段のグループを展開する場合を例としており、基準サービスコンポーネントをＡとする。前段として推薦するサービスコンポーネントのグループを、３つのテーブルから選択するなどして、推薦する。
【００８１】
図１１に示す例の場合、それぞれの最も利用されたグループとして、（a）直鎖状グループから「コンポーネントＧ→コンポーネントＡ」、（ｂ）呼び出し先が複数個の複数呼出グループから「コンポーネントＡ→コンポーネントＤ，コンポーネントＥ」、（ｃ）参照元が複数個の複数被参照グループから「コンポーネントＨ，コンポーネントＢ→コンポーネントＡ」の３種類を推薦することが可能である。なお、これ以降のグループ展開も同様の操作を繰り返し、複数の推薦されたグループを組み合わせることにより、複雑なシナリオの作成が可能となる。
【００８２】
図１２は、図１１と同様に、入力コンポーネントに対して後段を推薦する場合のグループ展開図である。この場合、入力シナリオに含む後段のグループを展開する場合を例としており、基準サービスコンポーネントをコンポーネントＡとする。後段として推薦するサービスコンポーネントのグループを、３つのテーブルから選択するなどして、推薦する。
【００８３】
図１２に示す例の場合、それぞれの最も利用されたグループとして、（ａ）直鎖状グループから「コンポーネントＡ→コンポーネントＦ」、（ｂ）呼び出し先が複数個の複数呼出グループから「コンポーネントＡ→コンポーネントＤ，コンポーネントＥ」、（ｃ）参照元が複数個の複数被参照グループから「コンポーネントＨ，コンポーネントＢ→コンポーネントＡ」の３種類を推薦することが可能である。なお、これ以降のグループ展開も同様の操作を繰り返し、複数の推薦されたグループを組み合わせることにより、複雑なシナリオの作成が可能となる。
【００８４】
図１３は、開発ユーザや開発環境などが本システムを用いてサービスコンポーネント連携シナリオを開発するまでの流れを示したシーケンス図である。以下、図１３を参照して、その処理の流れについて説明する。
【００８５】
まず、グループデータベース１２１に予めコンポーネントのグループが登録されている必要があるため、シナリオ開発ユーザや開発環境等１１においてシナリオ作成端末装置１０を用いて、シナリオ抽出処理部１０１に予めシナリオを登録する（ステップＳ１０１）。シナリオ抽出処理部１０１では、図６、図７で説明したように、登録されたシナリオから複数のグループを抽出する処理を行い（ステップＳ１０２）、グループデータベース１２１に抽出したグループの登録を行う（ステップＳ１０３）。登録するグループが既に登録されているグループの場合、開発回数を更新し推薦指数を増加させるなどの処理を行う（ステップＳ１０４）。
【００８６】
次に、シナリオ開発ユーザが、開発ユーザや開発環境等１１においてシナリオ作成端末装置１０を介して、本シナリオ開発支援装置１００を用いてサービスコンポーネント連携シナリオの推薦要求をシナリオ推薦処理部１１０に行った場合の処理について述べる。開発ユーザや開発環境等１１からシナリオ推薦処理部１１０に対し、コンポーネント推奨要求として、サービスコンポーネントが入力され（ステップＳ１０５）、それを基に、シナリオ推薦処理部１１０では、コンポーネントのグループを推薦するためグループデータベース１２１にグループ情報を要求する（ステップＳ１０６）。
【００８７】
グループデータベース１２１は、要求されたコンポーネントを含むグループから上位のグループを選択するなどの設定されたポリシに従い、推薦するコンポーネントを含むグループ情報をシナリオ推薦処理部１１０に提供する。この際、シナリオ推薦処理部１１０は、再度グループデータベース１２１に別のグループの要求を行ってもよい。その場合、グループデータベース１２１にアクセスするステップＳ１０６，ステップＳ１０７の処理を再度行うことになる。
シナリオ推薦処理部１１０では、提供されたコンポーネントのグループを基に推薦するサービスコンポーネント連携シナリオを作成し（ステップＳ１０８）、開発ユーザや開発環境等１１に対して提供する（ステップＳ１０９）。
【００８８】
図１４は、推薦前処理部１１２とシナリオ推薦処理部１１０とにおけるシナリオ推薦フローについて説明するための図である。シナリオ推薦処理部１１０は、前述のように、推薦前処理部１１２と、グループ推薦処理部１１１の２つに分かれている。
【００８９】
推薦前処理部１１２では、予め一定時間ごとに、サービス利用者管理情報記憶部１３０に記録されたサービスコンポーネント連携シナリオおよびサービスコンポーネントの利用履歴の情報を取得する。このサービス利用者管理情報記憶部１３０には、シナリオ管理サーバ２００におけるサービスコンポーネント連携シナリオおよびサービスコンポーネントの利用履歴の情報が記憶されている。このシナリオ管理サーバ２００における利用履歴の情報は、図１において説明したように、ネットワークを介してサービス利用者管理情報記憶部１３０に記憶される。すなわち、このサービス利用者管理情報記憶部１３０には、シナリオ抽出処理部１０１において誰がいつどのシナリオおよびコンポーネントを利用したかの情報が記憶されている。
【００９０】
そして、推薦前処理部１１２では、サービス利用者管理情報記憶部１３０から取得したシナリオおよびコンポーネントの利用履歴の情報を基に、コンポーネントのグループを抽出し、グループデータベース１２１内に含まれる各グループの利用回数を更新する。これによって、グループデータベース１２１内の各グループテーブル（直鎖状グループテーブル１２２Ａ、複数呼出グループテーブル１２３Ａ、および複数被参照グループテーブル１２４Ａ）における推薦指数が一定時間ごとに更新され最新の値が反映される。
【００９１】
そして、グループ推薦処理部１１１では、開発ユーザや開発環境等（例えば、図１に示すシナリオ作成端末装置１０）などによって入力されたシナリオに含まれるサービスコンポーネントを基に、前述の推薦前処理部１１２により更新されたグループデータベース１２１内のグループテーブルを検索する。そして、グループ推薦処理部１１１では、グループデータベース１２１から抽出（検出）したサービスコンポーネントのグループを開発ユーザに対して推薦する。開発ユーザは、推薦されたグループを組み合わせることにより、新たなサービスコンポーネント連携シナリオを作成する。
【００９２】
以上説明したように、本発明のシナリオ開発支援装置１００においては、過去の利用履歴から開発者のニーズに合致するコンポーネントのグループを推薦できるため、サービスコンポーネント連携シナリオを作成する際のサービスコンポーネントの入出力変数を変換する記述などが必要ないため、開発者はコーディングをすることなくサービスコンポーネント連携シナリオを作成することができ、アプリケーション作成時間を短縮することができる。このため、中示企業の経営者やサービス企画者など、特別な技術がない開発者でもサービスコンポーネント連携シナリオを簡単に作ることができる。
【００９３】
また、開発者に推薦するためのアルゴリズムとして、他の開発者が既に作成した実績のあるサービスコンポーネント間の接続の度合いを示す推薦指数を用いて、最も利用頻度が高いサービスコンポーネントのグループを開発ユーザに提供できる。このため、提供されたサービスコンポーネントグループは頻繁に利用されるサービスコンポーネントの組み合わせであったり、相性の良い組み合わせであったり、有益なグループである可能性が高い。
【００９４】
なお、上述のシナリオ開発支援装置１００は内部にコンピュータシステムを有している。そして、上述した処理に関する一連の処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。
【００９５】
すなわち、シナリオ開発支援装置１００における、各処理は、ＣＰＵ等の中央演算処理装置がＲＯＭやＲＡＭ等の主記憶装置に上記プログラムを読み出して、情報の加工、演算処理を実行することにより、実現されるものである。
【００９６】
ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【００９７】
また、シナリオ開発支援装置１００には、周辺機器として入力装置、表示装置等（いずれも表示せず）が接続されているものとする。ここで、入力装置としては、キーボード、マウス等の入力デバイスのことをいう。表示装置とは、ＣＲＴ（Cathode Ray Tube）や液晶表示装置等のことをいう。
【００９８】
以上、本発明の実施の形態について説明したが、本発明のシナリオ開発支援装置１００は、予め指定されるサービスコンポーネントの情報、または、サービスコンポーネント連携シナリオにより示されるサービスコンポーネントの情報を入力するシナリオ作成端末装置１０と、予め利用されている既存のサービスコンポーネント連携シナリオに含まれるサービスコンポーネントの組み合わせを、サービスコンポーネント間の参照関係の態様に応じてグループ分けして記憶するコンポーネント関係情報記憶部１２０と、入力されるサービスコンポーネント連携シナリオに含まれるサービスコンポーネントを抽出するシナリオ抽出処理部１０１と、予め指定されるサービスコンポーネントの情報、またはシナリオ抽出処理部１０１により抽出されたサービスコンポーネントの情報を基に、コンポーネント関係情報記憶部１２０を検索し、所定の基準により推薦するサービスコンポーネントのグループを抽出するグループ推薦処理部１１１と、グループ推薦処理部１１１により抽出されたサービスコンポーネントのグループを推薦するグループとしてシナリオ作成端末装置１０に出力する。
これにより、シナリオ開発ユーザ等に対して、実用的かつ多様で複雑なサービスコンポーネントのグループを推薦でき、シナリオ開発ユーザが推薦されたサービスコンポーネントのグループを組み合わせることにより、サービスコンポーネント連携シナリオを容易に作成することができ、アプリケーション作成のための作業時間を短縮することができる。
【００９９】
以上、本発明の実施の形態について説明したが、本発明のシナリオ開発支援装置は、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【符号の説明】
【０１００】
１０…シナリオ作成端末装置
２０…利用者端末装置
１００…シナリオ開発支援装置、１０１…シナリオ抽出処理部
１１０…シナリオ推薦処理部、１１１…グループ推薦処理部、１１２…推薦前処理部
１２０…コンポーネント関係情報記憶部、１２１…グループデータベース
１２２…直鎖状グループ記憶部、１２２Ａ…直鎖状グループテーブル
１２３…複数呼出グループ記憶部、１２３Ａ…複数呼出グループテーブル
１２４…複数被参照グループ記憶部、１２４Ａ…複数被参照グループテーブル
１３０…サービス利用者管理情報記憶部、１４０…利用履歴更新部
２００…シナリオ管理サーバ、２０１…シナリオ入出力部、２１０…シナリオ記憶部
【図１】
2010191865.tif 000003
【図２】
2010191865.tif 000004
【図３】
2010191865.tif 000005
【図４】
2010191865.tif 000006
【図５】
2010191865.tif 000007
【図６】
2010191865.tif 000008
【図７】
2010191865.tif 000009
【図８】
2010191865.tif 000010
【図９】
2010191865.tif 000011
【図１０】
2010191865.tif 000012
【図１１】
2010191865.tif 000013
【図１２】
2010191865.tif 000014
【図１３】
2010191865.tif 000015
【図１４】
2010191865.tif 000016
【図１５】
2010191865.tif 000017