(57)【要約】【課題】不特定多数から提供されるコンポーネント群を適切に管理してその運用をサポートするコンポーネント管理装置、コンポーネント管理方法およびプログラムを提供する。【解決手段】実施形態のコンポーネント管理装置は、データベースと、コンポーネント検索部と、コンポーネント運用部と、を備える。データベースには、タイプごとに入出力が規定されたコンポーネントが登録される。コンポーネント検索部は、コンポーネントの名前もしくは入力例もしくは評価データの入力を受け付け、該入力に応じて前記データベースに登録されたコンポーネントの検索を行って、検索結果を提示する。コンポーネント運用部は、検索されたコンポーネントを利用するアプリケーションからの入力をコンポーネントへ送信し、該コンポーネントの出力を前記アプリケーションに送る。【選択図】図１
2019215621.tif 000002
【特許請求の範囲】
【請求項１】
タイプごとに入出力が規定されたコンポーネントが登録されるデータベースと、
コンポーネントの名前もしくは入力例もしくは評価データの入力を受け付け、該入力に応じて前記データベースに登録されたコンポーネントの検索を行って、検索結果を提示するコンポーネント検索部と、
検索されたコンポーネントを利用するアプリケーションからの入力をコンポーネントへ送信し、該コンポーネントの出力を前記アプリケーションに送るコンポーネント運用部と、
を備えるコンポーネント管理装置。
【請求項２】
前記コンポーネント検索部は、前記データベースに登録されたコンポーネントのうち、受け付けた入力例に対して応答を出力したコンポーネントの情報を前記検索結果として提示する
請求項１に記載のコンポーネント管理装置。
【請求項３】
前記コンポーネント検索部は、受け付けた評価データを用いて前記データベースに登録されたコンポーネントの精度を算出し、算出した精度が高い順にコンポーネントの情報を並べて前記検索結果として提示する
請求項１に記載のコンポーネント管理装置。
【請求項４】
前記コンポーネント検索部は、前記入力の受け付けとコンポーネントの検索を繰り返して、複数のコンポーネントを組み合わせたアプリケーションの動作フローを構築する
請求項１乃至３のいずれか一項に記載のコンポーネント管理装置。
【請求項５】
前記コンポーネント検索部は、検索されたコンポーネントを利用しているアプリケーションが、検索されたコンポーネントとともに利用している他のコンポーネントを特定する情報を提示する
請求項１乃至４のいずれか一項に記載のコンポーネント管理装置。
【請求項６】
前記コンポーネント検索部は、検索されたコンポーネントを特定環境で動作させるためのソフトウェア部品を取得する手段を提示する
請求項１乃至５のいずれか一項に記載のコンポーネント管理装置。
【請求項７】
前記コンポーネント運用部は、前記アプリケーションの入力とコンポーネントの出力の組を前記データベースに記録する
請求項１乃至６のいずれか一項に記載のコンポーネント管理装置。
【請求項８】
前記コンポーネント運用部は、前記アプリケーションからコンポーネントの出力に対する評価を受け取り、該評価が規定値以上の場合、前記アプリケーションの入力とコンポーネントの出力の組を評価データとして前記データベースに記録する
請求項１乃至７のいずれか一項に記載のコンポーネント管理装置。
【請求項９】
前記コンポーネント運用部は、前記評価データを用いて、アプリケーションが利用するコンポーネントおよび該コンポーネントと同タイプの他のコンポーネントの精度を算出し、アプリケーションが利用するコンポーネントよりも精度が高い他のコンポーネントの情報を提示する
請求項８に記載のコンポーネント管理装置。
【請求項１０】
前記コンポーネント運用部は、前記アプリケーションからコンポーネントの出力に対する評価を受け取り、該評価をもとにコンポーネントの評価情報を算出して前記データベースに記録し、
前記コンポーネント検索部は、検索されたコンポーネントの評価情報を提示する
請求項１乃至９のいずれか一項に記載のコンポーネント管理装置。
【請求項１１】
前記コンポーネント運用部は、前記アプリケーションからの入力をコンポーネントに送信してから該コンポーネントの出力を受信するまでの時間を計測し、計測した時間をもとにコンポーネントの応答性能を算出して前記データベースに記録し、
前記コンポーネント検索部は、検索されたコンポーネントの応答性能を提示する
請求項１乃至１０のいずれか一項に記載のコンポーネント管理装置。
【請求項１２】
前記コンポーネント運用部は、前記アプリケーションからの入力を送信したコンポーネントから出力が得られなかった場合、該コンポーネントと同タイプの他のコンポーネントへ前記アプリケーションからの入力を送信し、該他のコンポーネントからの出力を前記アプリケーションに送る
請求項１乃至１１のいずれか一項に記載のコンポーネント管理装置。
【請求項１３】
前記コンポーネント運用部は、前記アプリケーションからの入力を送信したコンポーネントから出力が得られなかった場合、前記アプリケーションに他の入力を要求する
請求項１乃至１２のいずれか一項に記載のコンポーネント管理装置。
【請求項１４】
前記コンポーネント運用部は、前記アプリケーションによるコンポーネントの利用回数を前記データベースに記録する
請求項１乃至１３のいずれか一項に記載のコンポーネント管理装置。
【請求項１５】
タイプごとに入出力が規定されたコンポーネントをデータベースに登録するステップと、
コンポーネントの名前もしくは入力例もしくは評価データの入力を受け付け、該入力に応じて前記データベースに登録されたコンポーネントの検索を行って、検索結果を提示するステップと、
検索されたコンポーネントを利用するアプリケーションからの入力をコンポーネントへ送信し、該コンポーネントの出力を前記アプリケーションに送るステップと、
を含むコンポーネント管理方法。
【請求項１６】
コンピュータに、
タイプごとに入出力が規定されたコンポーネントをデータベースに登録する機能と、
コンポーネントの名前もしくは入力例もしくは評価データの入力を受け付け、該入力に応じて前記データベースに登録されたコンポーネントの検索を行って、検索結果を提示する機能と、
検索されたコンポーネントを利用するアプリケーションからの入力をコンポーネントへ送信し、該コンポーネントの出力を前記アプリケーションに送る機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、コンポーネント管理装置、コンポーネント管理方法およびプログラムに関する。
【背景技術】
【０００２】
近年、コンピュータシステムが様々な分野で利用され、コンピュータシステム上で動作するアプリケーション（ソフトウェア）によって多くの機能が実現されている。こうしたアプリケーションの開発においては、既存のソフトウェア部品（コンポーネント）を利用することで、開発コストの大幅な削減が見込める。このため、不特定多数から提供されるコンポーネント群をアプリケーションが利用できるように適切に管理して、アプリケーションによるコンポーネントの利用（運用）をサポートする仕組みは、極めて有用性が高いものと考えられる。
【０００３】
従来、複数のコンポーネントをライブラリとして管理し、それらを組み合わせて新たなコンポーネントを生成しライブラリへ登録するシステムや、複数アイテムのライセンス料の合計からコストを計算するシステムが知られている。しかし、上述のように、不特定多数から提供されるコンポーネント群を適切に管理してその運用をサポートする仕組みは知られておらず、こうした仕組みの構築が望まれている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１２８５１７号公報
【特許文献２】特許第５２４７４５２号公報
【特許文献３】特許第４１５５８５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、不特定多数から提供されるコンポーネント群を適切に管理してその運用をサポートするコンポーネント管理装置、コンポーネント管理方法およびプログラムを提供することである。
【課題を解決するための手段】
【０００６】
実施形態のコンポーネント管理装置は、データベースと、コンポーネント検索部と、コンポーネント運用部と、を備える。データベースには、タイプごとに入出力が規定されたコンポーネントが登録される。コンポーネント検索部は、コンポーネントの名前もしくは入力例もしくは評価データの入力を受け付け、該入力に応じて前記データベースに登録されたコンポーネントの検索を行って、検索結果を提示する。コンポーネント運用部は、検索されたコンポーネントを利用するアプリケーションからの入力をコンポーネントへ送信し、該コンポーネントの出力を前記アプリケーションに送る。
【図面の簡単な説明】
【０００７】
【図１】図１は、コンポーネント管理装置の機能的な構成例を示すブロック図である。
【図２】図２は、コンポーネントタイプＤＢの一例を示す図である。
【図３】図３は、コンポーネントタイプＤＢでタイプごとに規定される入力および出力の一例を示す図である。
【図４】図４は、評価データＤＢの一例を示す図である。
【図５】図５は、コンポーネントカタログＤＢの一例を示す図である。
【図６】図６は、コンポーネント運用ＤＢの一例を示す図である。
【図７】図７は、クエリＤＢの一例を示す図である。
【図８】図８は、コンポーネント検索ＵＩの一例を示す図である。
【図９】図９は、コンポーネント詳細ＵＩの一例を示す図である。
【図１０】図１０は、コンポーネント検索ＵＩの他の例を示す図である。
【図１１】図１１は、フロー構築ＵＩの一例を示す図である。
【図１２】図１２は、フロー構築ＵＩの画面遷移例を示す図である。
【図１３】図１３は、フロー構築ＵＩの画面遷移例を示す図である。
【図１４】図１４は、コンポーネント登録時の処理手順の一例を示すフローチャートである。
【図１５】図１５は、コンポーネント検索時の処理手順の一例を示すフローチャートである。
【図１６】図１６は、検索処理の処理手順の一例を示すフローチャートである。
【図１７】図１７は、アプリケーションによるコンポーネント利用時の処理手順の一例を示すフローチャートである。
【図１８】図１８は、代替コンポーネント利用時の処理手順の一例を示すフローチャートである。
【図１９】図１９は、コンポーネント置き換えの処理手順の一例を示すフローチャートである。
【図２０】図２０は、コンポーネント管理装置のハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【０００８】
以下、実施形態のコンポーネント管理装置、コンポーネント管理方法およびプログラムについて、図面を参照して詳細に説明する。実施形態のコンポーネント管理装置は、具体的な入力（発話、画像、音声、センサデータなど）に対し応答（発話応答、画像認識、文字認識、音声認識、データ解析など）が可能なコンポーネントを検索可能なコンポーネントマーケットプレースを整備し、コンポーネントを利用したアプリケーションの開発を可能にする。また、そのようにして開発したアプリケーションによるコンポーネントの運用をサポートし、ユーザからの評価の反映や使用料のロギング、新規追加コンポーネントへの切り替え提案などを行う。
【０００９】
本実施形態において、「コンポーネント」とは、発話応答、画像認識、文字認識、音声認識、データ解析などの処理を行うソフトウェア部品を指す。このコンポーネントは、発話、画像、音声、センサデータなどを入力として受け取り、それに対応する応答、認識結果、解析結果などを出力として返す。本実施形態では、コンポーネントを用いてアプリケーションを開発する人を「開発者」と呼び、アプリケーションを利用する人を「ユーザ」と呼ぶ。また、コンポーネントを開発する人を「コンポーネント開発者」と呼ぶ。
【００１０】
実施形態のコンポーネント管理装置は、一例として、ネットワークを利用したサーバ・クライアントシステムのサーバとして実現することができる。この場合、コンポーネント管理装置は、開発者が利用するクライアント端末に搭載されたブラウザを介して、アプリケーションが利用するコンポーネントの検索などを行うためのＵＩ（ユーザインタフェース）を開発者に提供する。また、コンポーネント管理装置は、コンポーネントを利用して動作するアプリケーションのためのＡＰＩサーバとしても動作する。
【００１１】
図１は、本実施形態のコンポーネント管理装置の機能的な構成例を示すブロック図である。コンポーネント管理装置は、図１に示すように、コンポーネント検索サーバ１０と、コンポーネント運用サーバ２０と、ＤＢ（データベース）サーバ３０とを備える。このコンポーネント管理装置は、例えば、ネットワーク経由でサービスを提供するクラウドサーバ（クラウドコンピューティングシステム）として構築される。
【００１２】
コンポーネント検索サーバ１０は、ＤＢサーバ３０に登録されて管理されるコンポーネントの検索などを行うためのコンポーネント利用ＵＩ５０を開発者に提供し、このコンポーネント利用ＵＩ５０を通じて、アプリケーションが利用可能なコンポーネントの検索などを行う。
【００１３】
コンポーネント運用サーバ２０は、コンポーネントを利用して動作するアプリケーション７０がコンポーネントを利用するためのＡＰＩを提供し、アプリケーション７０によるコンポーネントの利用（運用）をサポートする。
【００１４】
ＤＢサーバ３０は、登録されたコンポーネントの情報を管理するためのデータベース群を含む。例えばＤＢサーバ３０は、図１に示すように、コンポーネントタイプＤＢ３１と、評価データＤＢ３２と、コンポーネントカタログＤＢ３３と、コンポーネント運用ＤＢ３４と、クエリＤＢ３５とを含む。
【００１５】
コンポーネントタイプＤＢ３１は、コンポーネントのタイプに関する情報を格納するデータベースである。図２は、コンポーネントタイプＤＢ３１の一例を示す図である。コンポーネントタイプＤＢ３１は、図２に示すように、コンポーネントのタイプごとに一意に割当てられたＩＤ（タイプＩＤ）に対応付けて、各コンポーネントタイプのタイプ名、および、そのタイプのコンポーネントが受け付ける入力と出力の情報を格納する。また、図２には示されていないが、後述するコンポーネント検索ＵＩを実現するために必要な、入力名の日本語表記や、各コンポーネントの出力結果を表示するためのプログラムなども、各コンポーネントタイプの情報としてコンポーネントタイプＤＢ３１に格納される。図２の例において、“dialogue_agent”タイプは、発話を入力として対話応答を行うコンポーネントを表し、“object_detection_from_image”タイプは、画像を入力としてオブジェクト認識を行うコンポーネントを表す。
【００１６】
図２に例示したコンポーネントタイプＤＢ３１に格納される入力および出力の情報の一例を図３に示す。入出力の“type”で記載される内容は、入出力されるデータの属性名とその種別を表している。“dialogue_agent”タイプの入力は、対話エージェントへのユーザからの発話を文字列（string）で示す“speech”属性、および、ユーザのコンテクストなど発話に付随する情報をオブジェクト型（Object）で示す“info”属性から構成される。“dialogue_agent”タイプの出力は、応答のテキストである“response”属性、発話からコンポーネントが抽出した情報である“extracted_info”属性、アプリケーションに外部ＤＢや業務システムなど別のシステムの操作を要求する“command”属性から構成される。
【００１７】
“object_detection_from_image”タイプの入力は、認識対象の画像を示す“image”属性から構成される。“object_detection_from_image”タイプの出力は、矩形（rect）で示される認識対象矩形位置である“rect”属性、および、任意のオブジェクト型（object）で示される認識対象タグ“tag”属性から構成される。入出力データについては、その付属情報を示す“options”を記載してもよい。図３に示す例では、“object_detection_from_image”タイプの出力の“options”として、その出力が複数個あってもよいことを示す“hasMultipleOutput”：trueが記載されている。
【００１８】
入出力については、いくつかの属性が必ずしも必須の入出力ではないという情報を記載してもよい。また、後述する出力データの精度評価のための精度評価ロジックを、コンポーネントタイプと対応付けて登録してもよい。これらコンポーネントタイプは、コンポーネント管理装置を運営する管理者が固定的に与えてもよいし、コンポーネント開発者が新たなタイプのコンポーネントを登録することに応じて、新たなコンポーネントタイプを追加できるようにしてもよい。
【００１９】
評価データＤＢ３２は、コンポーネントの精度評価を行うための評価データの情報を格納するデータベースである。評価データは、コンポーネントのタイプに応じた入力（入力データ）とコンポーネントがその入力を正しく処理した場合に得られる出力（出力データ）との組み合わせである。評価データに含まれる入力を精度評価の対象となるコンポーネントに与えたときの実際の出力と、評価データに含まれる出力とを比較することにより、そのコンポーネントの精度を評価することができる。本実施形態では、コンポーネント管理装置の管理者がコンポーネントのタイプごとに登録した評価データのほか、アプリケーション７０が実際にコンポーネントを利用したときの入出力の組み合わせのうち、出力に対する評価が高かったものも評価データとして用いることができる。
【００２０】
図４は、評価データＤＢ３２の一例を示す図である。評価データＤＢ３２は、図４に示すように、各評価データに対して一意に割当てられたＩＤ（評価データＩＤ）に対応付けて、その評価データの利用対象となるコンポーネントのタイプを特定するためのタイプＩＤを格納する。また、評価データが特定のコンポーネントの精度評価のみに用いられるものである場合は、そのコンポーネントを特定するためのＩＤ（コンポーネントＩＤ）をさらに格納する。また、評価データが管理者の登録したものであれば、その評価データの実体である入力および出力をさらに格納する。一方、評価データが、出力に対する評価が高かった入出力の組み合わせであれば、その評価データの実体である入力および出力は格納されず、アプリケーション７０を特定するためのＩＤ（アプリケーションＩＤ）、および、その入出力に対応するクエリを特定するためのＩＤ（クエリＩＤ）をさらに格納する。この場合、評価データの実体である入力および出力は、後述のクエリＤＢ３５から取得される。なお、本実施形態では、アプリケーション７０からコンポーネントへの問い合わせを「クエリ」とよぶ。
【００２１】
コンポーネントカタログＤＢ３３は、登録されたコンポーネントの情報を格納するデータベースである。図５は、コンポーネントカタログＤＢ３３の一例を示す図である。コンポーネントカタログＤＢ３３は、図５に示すように、登録された各コンポーネントに対して一意に割当てられたＩＤ（コンポーネントＩＤ）に対応付けて、そのコンポーネントのタイプを特定するためのタイプＩＤ、コンポーネントの名前、説明、平均評価、エンドポイント情報、料金、平均処理時間、更新日時、同時利用コンポーネント、および、置き換え先コンポーネントの情報を格納する。
【００２２】
コンポーネントの名前および説明は、例えば、コンポーネントの登録時にコンポーネント開発者により入力される。平均評価は、アプリケーション７０から取得されたコンポーネントに対する評価の平均値（評価情報の一例）である。エンドポイント情報は、コンポーネントの格納先を示す情報である。本実施形態では、コンポーネントが格納されたネットワーク上のサーバにＨＴＴＰ  ＲＥＳＴプロトコルで接続するためのＵＲＬを想定するが、他のプロトコルでも構わない。
【００２３】
料金は、１クエリあたりにかかるコンポーネントの利用料金（ドル）を示している。平均処理時間は、１クエリあたりにかかるコンポーネントの処理時間（ミリセカンド）の平均値であり、コンポーネントの応答性能を表す。コンポーネントの処理時間は、アプリケーション７０からの入力をコンポーネントに送ってから、そのコンポーネントの出力が返ってくるまでの時間である。同時利用コンポーネントは、アプリケーション７０がそのコンポーネントと同時に利用することが多い他のコンポーネントを、コンポーネントＩＤで示している。置き換え先コンポーネントは、後述のコンポーネント置き換えの機構を用いて置き換えられることの多い置き換え先のコンポーネントを、コンポーネントＩＤで示している。
【００２４】
コンポーネント運用ＤＢ３４は、アプリケーション７０によるコンポーネントの利用履歴を記録するためのデータベースである。図６は、コンポーネント運用ＤＢ３４の一例を示す図である。コンポーネント運用ＤＢ３４は、図６に示すように、利用履歴の集計単位（１つのアプリケーション７０と１つのコンポーネントの組み合わせ）ごとに一意に割当てられたＩＤ（コンポーネント運用ＩＤ）に対応付けて、コンポーネントを特定するためのコンポーネントＩＤ、アプリケーション７０を特定するためのアプリケーションＩＤ、および、クエリ数を格納する。アプリケーションＩＤは、例えば、アプリケーション７０が最初にコンポーネントを利用する前に、開発者からの要求に応じて発行される。クエリ数は、アプリケーション７０によるコンポーネントの利用回数を表し、アプリケーション７０がコンポーネントを利用するたびに更新される。
【００２５】
記録されたクエリ数は、その利用料金を開発者に請求し、請求した金額をコンポーネント開発者へ送金するために利用される。コンポーネント運用ＤＢ３４内の各コンポーネントについて、クエリ数を取得し、コンポーネントＩＤからコンポーネントカタログＤＢ３３内の料金を取得し、それらを積算することで、アプリケーション７０によるコンポーネントの利用料金を算出する。開発者への請求料金は、各アプリケーションＩＤの利用料金を加算することで算出され、開発者に提示される。コンポーネント開発者への支払い料金は、各コンポーネントＩＤの利用料金を加算することで算出され、コンポーネント開発者に提示される。開発者への支払い料金については、コンポーネント管理装置の利用料として規定の金額を差し引いた金額を提示してもよい。
【００２６】
クエリＤＢ３５は、アプリケーション７０とコンポーネント間でのデータのやり取りを記録するためのデータベースである。図７は、クエリＤＢ３５の一例を示す図である。クエリＤＢ３５は、図７に示すように、各クエリに対して一意に割当てられたＩＤ（クエリＩＤ）に対応付けて、そのクエリがどのアプリケーション７０とコンポーネントの間でやり取りされたものであるのかを特定するためのコンポーネント運用ＩＤと、そのクエリを構成する実際の入力および出力と、処理時間および評価を格納する。処理時間は、上述のように、アプリケーション７０からの入力をコンポーネントに送ってから、そのコンポーネントの出力が返ってくるまでの時間である。評価は、そのコンポーネントがどの程度うまく処理を行ったかを示し、例えば１から５の値（最良の結果が得られた場合を５、最悪の結果が得られた場合を１とする）で示される。この評価は、上述のように、コンポーネントの出力を受け取ったアプリケーション７０から渡される。同じコンポーネントに対してクエリＤＢ３５に記録された処理時間の平均値が、平均処理時間としてコンポーネントカタログＤＢ３３に格納され、評価の平均値が平均評価としてコンポーネントカタログＤＢ３３に格納される。
【００２７】
なお、以上説明したデータベース群の構成は一例であり、この例に限定されるものではない。例えば、上述のデータベースのいくつかを１つに統合したり、１つのデータベースを複数に分割したりといった変形を加えてもよい。また、上述のデータベース群が格納する情報も上述の例に限定されるものではなく、コンポーネントの検索や運用実績の記録などに有効な他の情報をさらに格納してもよい。
【００２８】
コンポーネント検索サーバ１０は、上述のコンポーネントタイプＤＢ３１およびコンポーネントカタログＤＢ３３を参照し、コンポーネント利用ＵＩ５０を用いた開発者の操作に応じて、アプリケーション７０が利用可能なコンポーネントの検索などを行う。コンポーネント利用ＵＩ５０は、アプリケーション７０が利用するコンポーネントのタイプや検索式を指定するためのＵＩ、指定したタイプおよび検索方式に応じてコンポーネントの検索を要求するためのＵＩ（コンポーネント検索ＵＩ）、検索されたコンポーネントの詳細を開発者に提示するためのＵＩ（コンポーネント詳細ＵＩ）、アプリケーション７０が複数のコンポーネントを組み合わせて動作する場合のコンポーネントの検索および一連のフローを構築するためのＵＩ（フロー構築ＵＩ）などを含む。
【００２９】
図８は、コンポーネント検索ＵＩ５０Ａの一例を示す図である。図８に例示するコンポーネント検索ＵＩ５０Ａが開発者に提供される前に、開発者により、検索の対象となるコンポーネントのタイプと検索方式が指定される。検索方式としては、コンポーネントの名前で検索、入力例で検索、評価データを与えて検索などがあるが、図８は入力例で検索する検索方式が指定された場合のコンポーネント検索ＵＩ５０Ａの一例を示している。また、図８に示すコンポーネント検索ＵＩ５０Ａは、検索対象のコンポーネントのタイプとして、dialogue_agent（対話エージェント）タイプが指定された場合の例である。
【００３０】
図８に例示するコンポーネント検索ＵＩ５０Ａは、上部に入力例を入力するための入力欄５１を備える。対話エージェントの場合は、入力例として発話が入力欄５１に入力されると、コンポーネント検索サーバ１０は、それをコンポーネントカタログＤＢ３３内の対応するタイプＩＤを持つすべてのコンポーネントに対して入力する。そして、入力例に対して応答（出力）があったコンポーネントの情報（コンポーネント情報５２）を、検索結果としてコンポーネント検索ＵＩ５０Ａにリスト形式で表示する。コンポーネント情報５２としては、例えば、コンポーネントの出力として得られた応答テキスト（response）および抽出情報（extracted_info）などが表示される。また、コンポーネントの名前、説明、平均評価（図中の星マーク）なども併せて表示される。これらの情報はコンポーネントカタログＤＢ３３から取得される。
【００３１】
図９は、コンポーネント検索ＵＩ５０Ａに表示されているコンポーネント情報５２の中で所望のコンポーネント情報５２の表示領域をクリックすることで開く、コンポーネント詳細ＵＩ５０Ｂの一例を示す図である。コンポーネント詳細ＵＩ５０Ｂは、検索されたコンポーネントの詳細を提示するＵＩである。このコンポーネント詳細ＵＩ５０Ｂは、コンポーネントカタログＤＢ３３を参照することで構築され、コンポーネント検索ＵＩ５０Ａでコンポーネント情報５２として表示される情報に加え、そのコンポーネントのコンポーネントＩＤ、利用にかかる料金、平均処理時間、最終更新日などの補足情報５３が表示される。また、そのコンポーネントを呼び出すアプリケーション７０（既に開発されている他のアプリケーション７０）が使っている他のコンポーネントである同時利用コンポーネントの情報５４や、後述するコンポーネント置き換えの仕組みでこのコンポーネントより精度が高いと評価された置き換え先コンポーネントの情報５５が表示される。これらの情報は、このコンポーネントを使っているアプリケーションはこのコンポーネントを使っている、このコンポーネントに置き換えている、という参考情報として提示される。なお、同時利用コンポーネントの情報５４の表示領域や、置き換え先コンポーネントの情報５５の表示領域をクリックすることで、これらのコンポーネントに対応するコンポーネント詳細ＵＩ５０Ｂが開く構成としてもよい。
【００３２】
開発者は、このようにして検索されたコンポーネントから、アプリケーション７０で利用するコンポーネントを選択し、例えばエディタ上で作成しているアプリケーション７０のソースコードに選択したコンポーネントの情報を組み込むことにより、アプリケーション７０の開発を容易に行うことができる。なお、検索されたコンポーネントが、後述するクライアント・エッジ端末上での動作を想定したものである場合は、図９に示すように、それら特定環境上で動作するライブラリのダウンロードボタン５６をコンポーネント詳細ＵＩ５０Ｂが備えてもよい。
【００３３】
なお、コンポーネント検索ＵＩ５０Ａの構成は、検索対象のコンポーネントのタイプにより異なる。図１０は、検索対象のコンポーネントのタイプとして、object_detection_from_image（画像物体検出）タイプが指定された場合のコンポーネント検索ＵＩ５０Ａの一例を示す図である。この例の場合、入力例は認識を行う画像のアップロードで行うため、入力欄５１の代わりにアップロードする画像ファイルを選択するボタン５７が設けられる。また、検索結果として表示されるコンポーネント情報５２には、応答テキスト（response）や抽出情報（extracted_info）の代わりに、入力した画像に対するコンポーネントの認識結果を示した画像が含まれる。
【００３４】
また、以上は検索方式として入力例で検索する方式が指定された場合の例であるが、コンポーネントの名前で検索する方式が指定された場合は、コンポーネントの名前をテキストで入力する手段がコンポーネント検索ＵＩ５０Ａに設けられる。この場合、コンポーネント検索サーバ１０は、コンポーネント検索ＵＩ５０Ａに入力されたテキストを検索条件としてコンポーネントカタログＤＢ３３を検索する。そして、コンポーネントカタログＤＢ３３内の対応するタイプＩＤを持つコンポーネントのうち、コンポーネント検索ＵＩ５０Ａに入力されたテキストが名前に含まれるコンポーネントのコンポーネント情報５２が、検索結果としてコンポーネント検索ＵＩ５０Ａに表示される。
【００３５】
また、検索方式として評価データを与えて検索する方式が指定された場合は、評価データをアップロードする手段がコンポーネント検索ＵＩ５０Ａに設けられる。この場合、コンポーネント検索サーバ１０は、コンポーネントカタログＤＢ３３内の対応するタイプＩＤを持つすべてのコンポーネントに対して、アップロードされた評価データに含まれる入力データを送信し、各コンポーネントからの応答（出力）を評価データに含まれる出力データと比較してコンポーネントの精度を算出する。そして、応答があったコンポーネントのコンポーネント情報５２を、算出した精度が高い順に、検索結果としてコンポーネント検索ＵＩ５０Ａにリスト形式で表示する。精度が基準値を満たさないコンポーネントについては、コンポーネント情報５２の表示を行わないようにしてもよい。
【００３６】
なお、コンポーネントの精度は、コンポーネントタイプＤＢ３１の出力定義内の情報を用いて算出される。例えば、出力が“string”のコンポーネントに対しては文字正解率、出力が“object”のコンポーネントに対しては一致したプロパティ数、出力が“rect”のコンポーネントに対しては矩形の重なり度合いなどが用いられる。また、コンポーネントタイプＤＢに精度評価ロジックが登録されている場合は、それが用いられる。
【００３７】
ところで、複数のコンポーネントを組み合わせて動作するアプリケーション７０を開発する場合は、これら複数のコンポーネントの検索および一連のフローの構築が必要となる。本実施形態では、コンポーネント利用ＵＩ５０の一つとしてフロー構築ＵＩを用意し、複数のコンポーネントを組み合わせて動作するアプリケーション７０の開発をサポートする。
【００３８】
図１１は、フロー構築ＵＩ５０Ｃの一例を示す図であり、図８の例と同様に、検索対象のコンポーネントのタイプとして、dialogue_agent（対話エージェント）タイプ、検索方式として入力例での検索が指定された場合のフロー構築ＵＩ５０Ｃの一例を示している。図１１に示すフロー構築ＵＩ５０Ｃでは、図８に示したコンポーネント検索ＵＩ５０Ａと同様に入力例での検索を行った後、その次にアプリケーション７０がコンポーネントに対して行う発話の入力例が入力される。その際、前のコンポーネントからの抽出済み情報５８も併せて入力される。コンポーネントから要求されたコマンドに対する応答によって次にどのような処理を行うかなどの簡易な条件分岐についても、入力欄５９を用いてフロー構築ＵＩ５０Ｃ上から編集することができる。このようにして構築されたフローはアプリケーション７０で利用可能なプログラムコードの形でダウンロードされる。
【００３９】
図１２および図１３は、図１１に例示する一連のフローを構築するためのフロー構築ＵＩ５０Ｃの画面遷移例を示している。最初のコンポーネントの検索時、フロー構築ＵＩ５０Ｃの画面は、図１２に示すように、図８に示したコンポーネント検索ＵＩ５０Ａと同様に、検索結果としてコンポーネント情報５２をリスト形式で表示したものとなっており、表示される各コンポーネント情報５２に対応して、コンポーネントを選択するためのチェックボックス６０が設けられている。開発者がいずれかのチェックボックス６０にチェックを入れ、いずれかのコンポーネントが選択されると、フロー構築ＵＩ５０Ｃは、図１３に示すように、次の処理を選択するための画面に遷移する。
【００４０】
図１３に示すフロー構築ＵＩ５０Ｃの画面には、選択されたコンポーネントのコンポーネント情報５２と併せて、選択されたコンポーネントの抽出情報が抽出済み情報５８として表示されるとともに、次の処理を選択するためのプルダウンリスト６１が表示される。開発者がこのプルダウンリスト６１を用いて次の処理を選択すると、選択された処理に応じて、次の処理に必要な操作を受け付けるための新たな手段が画面に追加されていく。例えば、選択された処理が「次の発話を入力」や「ユーザへ発話」の場合は、発話を入力する新たな入力欄５１が追加され、「ifステートメント」の場合は、条件を入力するための入力欄５９が追加される。これら処理を削除したり、別の処理に置き換えたりするための手段を備えていてもよい。
【００４１】
以上のようにして開発されたアプリケーション７０は、コンポーネント運用サーバ２０が提供するＡＰＩを通じて、コンポーネントカタログＤＢ３３に登録されたコンポーネントを利用することができる。
【００４２】
コンポーネント運用サーバ２０は、アプリケーション７０からの入力をコンポーネントＩＤで特定されるコンポーネントに送信し、そのコンポーネントの出力をアプリケーション７０に返す。このとき、コンポーネント運用サーバ２０は、上述の処理時間を算出するとともにアプリケーション７０からコンポーネントの評価を受け取ってクエリＤＢ３５に新規クエリを記録したり、コンポーネント運用ＤＢ３４のクエリ数を更新したりといった処理を併せて行う。また、コンポーネント運用サーバ２０は、所定のタイミングで、アプリケーション７０が利用しているコンポーネントを、新規に登録されたより性能の良い他のコンポーネントに置き換えることの提案などを行う。
【００４３】
本実施形態では、登録されたコンポーネントがネットワーク経由で利用するクラウド上のソフトウェアであることを想定するが、クライアント・エッジ端末上で動作するライブラリの形であってもよい。その場合、コンポーネントカタログＤＢ３３は、上述のエンドポイント情報に加え、ダウンロード可能な形のライブラリのバイナリを格納する。それらライブラリは、コンポーネントの利用時にコンポーネント運用ＤＢ３４などを更新するための情報をコンポーネント運用サーバ２０へ伝達する手段を備える。上述のコンポーネントの検索においてライブラリを備えたコンポーネントが検索された場合は、その動作可能環境などをコンポーネント情報５２に含めてコンポーネント検索ＵＩ５０Ａに表示してもよい。また、上述のように、検索されたコンポーネントを特定環境で動作させるためのライブラリ（ソフトウェア部品）のダウンロードボタン５６をコンポーネント詳細ＵＩ５０Ｂに設け、このダウンロードボタン５６が操作されると、コンポーネントカタログＤＢ３３からライブラリのバイナリがダウンロードされる構成としてもよい。
【００４４】
次に、本実施形態のコンポーネント管理装置の動作について、図１４乃至図１９のフローチャートを参照して説明する。
【００４５】
図１４は、コンポーネント登録時の処理手順の一例を示すフローチャートである。コンポーネント開発者は、自身のアカウント情報を用いてコンポーネント管理装置にログインし（ステップＳ１０１）、その後、コンポーネントの名前や説明、エンドポイント情報など、コンポーネントカタログＤＢ３３への登録に必要なコンポーネント情報を入力する（ステップＳ１０２）。
【００４６】
コンポーネント管理装置は、コンポーネント管理者から入力されたエンドポイント情報により特定されるコンポーネントの格納先に評価データを与え、適切な応答が返るかなどのバリデーションを行う（ステップＳ１０３）。そして、適切にバリデーションできた場合に、コンポーネントＩＤを付与してステップＳ１０２で入力されたコンポーネント情報をコンポーネントカタログＤＢ３３に格納し、コンポーネントカタログＤＢ３３を更新する（ステップＳ１０４）。
【００４７】
図１５は、コンポーネント検索時の処理手順の一例を示すフローチャートである。開発者は、自身のアカウント情報を用いてコンポーネント管理装置にログインし（ステップＳ２０１）、その後、コンポーネント利用ＵＩを用いて、どのタイプのコンポーネントを検索対象とするかを選択する（ステップＳ２０２）。コンポーネントタイプが選択されると、コンポーネント検索ＵＩ５０Ａを用いたコンポーネント検索サーバ１０によるコンポーネントの検索が実施される（ステップＳ２０３）。コンポーネント検索サーバ１０によるコンポーネントの検索は、ログアウトなどの開発者による明示的な検索終了の操作がなければ継続され（ステップＳ２０４：Ｎｏ）、明示的な検索終了の操作があると（ステップＳ２０４：Ｙｅｓ）、一連の処理が終了する。
【００４８】
図１６は、図１５のステップＳ２０３で実施される検索処理の処理手順の一例を示すフローチャートである。検索処理においては、まず、必要に応じて付加情報の設定が行われる（ステップＳ３０１）。付加条件とは、平均評価や平均処理時間、利用にかかる料金などに対するフィルタとなる条件であり、例えば、平均評価が３以上のコンポーネントを検索するなどの条件を表す。その後、コンポーネント検索サーバ１０は、コンポーネント利用ＵＩ５０を用いた開発者の操作に応じて、検索方式を決定する（ステップＳ３０２）。検索方式としては、上述したように、コンポーネントへの入力例で検索する入力例検索、コンポーネントの名前や説明で検索する名前検索、入力と出力の組からなる評価データをアップロードし、評価データを用いて算出した精度で検索する評価データ検索がある。
【００４９】
そして、コンポーネント検索サーバ１０は、コンポーネント検索ＵＩ５０Ａを開発者に提供し、ステップＳ３０２で決定した検索方式に対応する入力を受け付ける（ステップＳ３０３Ａ，Ｓ３０３Ｂ，Ｓ３０３Ｃ）。すなわち、入力例検索であればコンポーネントへの具体的な入力例の入力、名前入力であればコンポーネントの名前や説明の入力、評価データ入力であればコンポーネントの精度を評価するための入力と出力の組からならなる評価データの入力を受け付ける。そして、コンポーネント検索サーバ１０は、コンポーネントカタログＤＢ３３に登録されたコンポーネントの検索を実施して（ステップＳ３０４）、検索によって得られたコンポーネント情報５２を、検索結果としてコンポーネント検索ＵＩ５０Ａに表示する（ステップＳ３０５）。
【００５０】
図１７は、アプリケーション７０によるコンポーネント利用時の処理手順の一例を示すフローチャートである。なお、この手順を実行する前に、開発者は自身のアカウント情報を用いて、アプリケーション７０を識別するためのアプリケーションＩＤを取得する必要がある。コンポーネント管理装置によりアプリケーションＩＤが発行されると、以降、アプリケーション７０は、このアプリケーションＩＤにより識別される。
【００５１】
アプリケーション７０を利用するユーザは、まず、アプリケーション７０がコンポーネントを呼び出すために必要な認証トークンを取得する（ステップＳ４０１）。認証トークンは、ユーザのアカウント情報およびアプリケーションＩＤの組を送信することで取得できる。
【００５２】
その後、アプリケーション７０は、認証トークン、送り先のコンポーネントを指定するためのコンポーネントＩＤ、入力データの組を、コンポーネント運用サーバ２０が提供するＡＰＩを介してコンポーネント運用サーバ２０に送信する。コンポーネント運用サーバ２０は、受信したコンポーネントＩＤをもとに、コンポーネントカタログＤＢ３３から入力を送るべきコンポーネントのエンドポイント情報を取得し、コンポーネントに入力データを送信する（ステップＳ４０２）。そして、コンポーネント運用サーバ２０は、コンポーネントの出力を受信してアプリケーション７０に送る（ステップＳ４０３）。
【００５３】
アプリケーション７０は、コンポーネントの出力を用いた処理を行った後、その処理内容が適切であったかを示す評価、つまりコンポーネントの出力に対する評価をコンポーネント運用サーバ２０に送信する。コンポーネント運用サーバ２０は、アプリケーション７０から、コンポーネントの出力に対する評価を取得すると（ステップＳ４０４）、コンポーネントへの入力と出力と評価を組にして、クエリＤＢ３５へ記録する（ステップＳ４０５）。また、コンポーネント運用サーバ２０は、コンポーネント運用ＤＢ３４中の対応するクエリ数を増加し（ステップＳ４０６）、コンポーネントカタログＤＢ３３中の平均評価および平均処理時間を更新する（ステップＳ４０７）。
【００５４】
また、ステップＳ４０４でアプリケーション７０から取得した評価の値が規定値（例えば４）以上の場合は（ステップＳ４０８：Ｙｅｓ）、コンポーネント運用サーバ２０は、コンポーネントへの入力と出力の組を評価データとして評価データＤＢ３２へ記録する（ステップＳ４０９）。評価データＤＢ３２への記録を行う際は、そのアプリケーション７０からのクエリが十分な回数行われている、などの利用実績による制限を設定してもよい。また、アプリケーション７０から、明示的な評価データとして入出力のデータセットを、ＡＰＩを介してコンポーネント運用サーバ２０に入力してもよい。評価データＤＢ４２に記録された評価データは、後述するコンポーネント置き換えを実施する際の評価に用いられる。
【００５５】
なお、アプリケーション７０からの入力に対してコンポーネントが出力を行えない場合、コンポーネント運用サーバ２０が、そのコンポーネントの代わりに応答可能なコンポーネント（代替コンポーネント）にアプリケーション７０からの入力を送信してもよい。図１８は、代替コンポーネント利用時の処理手順の一例を示すフローチャートである。
【００５６】
コンポーネント運用サーバ２０は、図１７のステップＳ４０２においてアプリケーション７０からの入力をコンポーネントに送信した後、そのコンポーネントからの出力を受信できなかった場合、同一タイプの他のコンポーネントにアプリケーション７０からの入力データを送信する（ステップＳ５０１）。他のコンポーネントとしては、アプリケーション７０があらかじめ設定していた複数のコンポーネントに送信するパターンや、そのコンポーネントから置き換えられていることが多いコンポーネント（コンポーネントカタログＤＢ３３中の置き換え先コンポーネント）に送信するパターンなど、複数のパターンが考えられる。
【００５７】
そして、コンポーネント運用サーバ２０は、他のコンポーネントから出力を受信した場合（ステップＳ５０２：Ｙｅｓ）、他のコンポーネントの出力をアプリケーション７０に送って処理成功とする（ステップＳ５０３）。一方、他のコンポーネントからも出力が得られなかった場合は（ステップＳ５０２：Ｎｏ）、コンポーネント運用サーバ２０は、アプリケーション７０に対して、先の入力の代替となる他の入力を要求する（ステップＳ５０４）。ここで、先の入力の代替となる他の入力とは、対話処理であれば別の言い回しの発話の入力、画像認識であれば同一場面を別アングルで撮影したカメラからの画像入力などが想定される。
【００５８】
そして、コンポーネント運用サーバ２０は、アプリケーション７０から代替となる他の入力をコンポーネントに送信し、コンポーネントから出力が得られれば（ステップＳ５０５：Ｙｅｓ）、そのコンポーネントの出力をアプリケーション７０に送って処理成功とする（ステップＳ５０３）。一方、代替となる他の入力に対する出力もコンポーネントから得られなかった場合は（ステップＳ５０５：Ｎｏ）、処理失敗のステータス情報をアプリケーション７０に送信し、処理失敗とする（ステップＳ５０６）。なお、アプリケーション７０から受信した他の入力に対する応答が上述の他のコンポーネントからも得られない場合に、処理失敗としてもよい。
【００５９】
図１９は、コンポーネント置き換え時の処理手順の一例を示すフローチャートである。コンポーネント置き換えとは、アプリケーション７０が利用しているコンポーネントを、新規に登録されたより性能の良い他のコンポーネントに置き換える処理をいう。この処理は、例えば１週間に１回など、定期的なタイミングで行われる。
【００６０】
コンポーネント運用サーバ２０は、まず、アプリケーション７０が利用しているコンポーネントと同一タイプのコンポーネントを検索する（ステップＳ６０１）。この検索の際は、例えば、前回の置き換え処理の後に追加されたコンポーネントに限る、評価が４以上のコンポーネントに限る、などの制約を設けてもよい。
【００６１】
次に、コンポーネント運用サーバ２０は、評価データＤＢ３２に格納されている同一タイプの評価データを用いて、ステップＳ６０１で検索された各コンポーネントおよびアプリケーション７０が利用している既存コンポーネントの精度評価を行う（ステップＳ６０２）。この精度評価には、評価データＤＢ３２に格納されている同一タイプの全ての評価データを用いてもよいし、対象となるアプリケーション７０のみから収集された評価データ（つまり、対象となるアプリケーション７０の過去のクエリ）を用いてもよい。
【００６２】
次に、コンポーネント運用サーバ２０は、ステップＳ６０１で検索された各コンポーネントの精度を、アプリケーション７０が利用している既存コンポーネントの精度と比較する（ステップＳ６０３）。そして、既存コンポーネントよりも一定以上精度が高かったコンポーネントを、置き換え候補として開発者に提示する（ステップＳ６０４）。このとき、評価データに含まれる入力に対する置き換え候補のコンポーネントの出力を、既存コンポーネントの出力と比較して提示するようにしてもよい。また、置き換え候補となるコンポーネントは、評価データを用いた精度だけでなく、例えば既存コンポーネントよりも処理時間が短くなるものなど、別の観点を用いて選択してもよい。
【００６３】
コンポーネント運用サーバ２０によって置き換え候補のコンポーネントが提示されると、開発者は、必要に応じて、それら候補の中から既存コンポーネントに置き換えるコンポーネントを選択し（ステップＳ６０５）、アプリケーション７０内の既存コンポーネントを、選択したコンポーネントに置き換える（ステップＳ６０６）。なお、ステップＳ６０５で開発者によりコンポーネントが選択されると、その情報がコンポーネントカタログＤＢ３３に反映され、置き換えられたコンポーネントのコンポーネントＩＤが、既存コンポーネントの置き換え先コンポーネントとして格納される。
【００６４】
以上、具体的な例を挙げながら詳細に説明したように、本実施形態のコンポーネント管理装置によれば、コンポーネント検索サーバ１０が、ＤＢサーバ３０に登録されたコンポーネントの検索を行って検索結果を提示し、コンポーネント運用サーバ２０が、アプリケーション７０によるコンポーネントの利用（運用）をサポートするようにしている。したがって、不特定多数から提供されるコンポーネント群をアプリケーション７０が利用できるように適切に管理して、アプリケーション７０によるコンポーネントの利用（運用）をサポートすることができる。
【００６５】
すなわち、アプリケーション７０を開発する開発者は、本実施形態のコンポーネント管理装置を用いることで、必要となるコンポーネントを低コストに検索、利用することができ、また、より性能の高いコンポーネントへの置き換えなどを容易に行うことができる。また、コンポーネント開発者は、開発したコンポーネントを多くのアプリケーション７０に利用してもらい、その利用料金を得ることができる。また、より性能の良いコンポーネントを提供することで、多くのアプリケーション７０への展開が行える。
【００６６】
本実施形態のコンポーネント管理は、例えば、一般的なコンピュータを構成するハードウェアと、コンピュータで実行されるプログラム（ソフトウェア）との協働により実現することができる。例えば、コンピュータが所定のプログラムを実行することによって、上述したコンポーネント検索サーバ１０およびコンポーネント運用サーバ２０の機能を実現することができる。また、コンピュータが備えるストレージデバイスを用いて、上述したＤＢサーバ３０の機能を実現することができる。
【００６７】
図２０は、本実施形態のコンポーネント管理装置のハードウェア構成例を示すブロック図である。本実施形態のコンポーネント管理装置は、例えば図２０に示すように、ＣＰＵ（Central  Processing  Unit）やＧＰＵ（Graphics  Processing  Unit）などのプロセッサ回路１０１と、ＲＡＭ（Random  Access  Memory）やＲＯＭ（Read  Only  Memory）などの内部メモリ１０２と、ＨＤＤ（Hard  Disk  Drive）やＳＤＤ（Solid  State  Drive）などのストレージデバイス１０３と、入力デバイス１０６やディスプレイ１０７などの周辺機器を接続するための入出力Ｉ／Ｆ１０４と、開発者やユーザが利用するクライアント・エッジ端末などの外部機器と通信を行う通信Ｉ／Ｆ１０５と、を備えた一般的なコンピュータのハードウェア構成を有する。そして、例えば、プロセッサ回路１０１が内部メモリ１０２を利用しながら、ストレージデバイス１０３や内部メモリ１０２などに格納されたプログラムを実行することで、上述の機能的な構成要素を実現することができる。
【００６８】
すなわち、本実施形態のコンポーネント管理装置の機能的な構成要素として示した各部は、コンピュータにより実行されるプログラムに含まれ、コンピュータが備える１以上のプロセッサ（図２０のプロセッサ回路１０１）がこのプログラムを実行することにより、上述した各部がＲＡＭなどの主記憶（図２０の内部メモリ１０２）上に生成される。
【００６９】
コンピュータにより実行される上記プログラムは、例えば、磁気ディスク（フレキシブルディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ±Ｒ、ＤＶＤ±ＲＷ、Ｂｌｕ−ｒａｙ（登録商標）Ｄｉｓｃなど）、半導体メモリ、またはこれに類する記録媒体に記録されて提供される。なお、プログラムを記録する記録媒体は、コンピュータが読み取り可能な記録媒体であれば、その記憶形式は何れの形態であってもよい。また、上記プログラムを、コンピュータに予めインストールするように構成してもよいし、ネットワークを介して配布される上記のプログラムをコンピュータに適宜インストールするように構成してもよい。
【００７０】
なお、本実施形態のコンポーネント管理装置は、上述した機能的な構成要素の一部または全部を、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field-Programmable  Gate  Array）などの専用のハードウェアにより実現する構成であってもよい。また、本実施形態のコンポーネント管理装置は、複数台のコンピュータを通信可能に接続したネットワークシステムとして構成し、上述した機能的な構成要素を複数台のコンピュータに分散して実現する構成であってもよい。また、本実施形態のコンポーネント管理装置は、クラウド上で動作する仮想マシンであってもよい。
【００７１】
以上、本発明の実施形態を説明したが、この実施形態は例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７２】
１０  コンポーネント検索サーバ
２０  コンポーネント運用サーバ
３０  ＤＢサーバ
３１  コンポーネントタイプＤＢ
３２  評価データＤＢ
３３  コンポーネントカタログＤＢ
３４  コンポーネント運用ＤＢ
３５  クエリＤＢ
５０  コンポーネント利用ＵＩ
５０Ａ  コンポーネント検索ＵＩ
５０Ｂ  コンポーネント詳細ＵＩ
５０Ｃ  フロー構築ＵＩ
７０  アプリケーション
【図１】
2019215621.tif 000003
【図２】
2019215621.tif 000004
【図３】
2019215621.tif 000005
【図４】
2019215621.tif 000006
【図５】
2019215621.tif 000007
【図６】
2019215621.tif 000008
【図７】
2019215621.tif 000009
【図８】
2019215621.tif 000010
【図９】
2019215621.tif 000011
【図１０】
2019215621.tif 000012
【図１１】
2019215621.tif 000013
【図１２】
2019215621.tif 000014
【図１３】
2019215621.tif 000015
【図１４】
2019215621.tif 000016
【図１５】
2019215621.tif 000017
【図１６】
2019215621.tif 000018
【図１７】
2019215621.tif 000019
【図１８】
2019215621.tif 000020
【図１９】
2019215621.tif 000021
【図２０】
2019215621.tif 000022