JP6779943B2 - コンポーネント管理装置、コンポーネント管理方法およびプログラム - Google Patents

コンポーネント管理装置、コンポーネント管理方法およびプログラム Download PDF

Info

Publication number
JP6779943B2
JP6779943B2 JP2018111156A JP2018111156A JP6779943B2 JP 6779943 B2 JP6779943 B2 JP 6779943B2 JP 2018111156 A JP2018111156 A JP 2018111156A JP 2018111156 A JP2018111156 A JP 2018111156A JP 6779943 B2 JP6779943 B2 JP 6779943B2
Authority
JP
Japan
Prior art keywords
component
input
application
output
management device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018111156A
Other languages
English (en)
Other versions
JP2019215621A (ja
Inventor
長 健太
健太 長
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Digital Solutions Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp, Toshiba Digital Solutions Corp filed Critical Toshiba Corp
Priority to JP2018111156A priority Critical patent/JP6779943B2/ja
Priority to CN201910491050.7A priority patent/CN110580160B/zh
Priority to US16/436,145 priority patent/US11423088B2/en
Publication of JP2019215621A publication Critical patent/JP2019215621A/ja
Application granted granted Critical
Publication of JP6779943B2 publication Critical patent/JP6779943B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90324Query formulation using system suggestions
    • G06F16/90328Query formulation using system suggestions using search space presentation or visualization, e.g. category or range presentation and selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9038Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/908Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Library & Information Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明の実施形態は、コンポーネント管理装置、コンポーネント管理方法およびプログラムに関する。
近年、コンピュータシステムが様々な分野で利用され、コンピュータシステム上で動作するアプリケーション(ソフトウェア)によって多くの機能が実現されている。こうしたアプリケーションの開発においては、既存のソフトウェア部品(コンポーネント)を利用することで、開発コストの大幅な削減が見込める。このため、不特定多数から提供されるコンポーネント群をアプリケーションが利用できるように適切に管理して、アプリケーションによるコンポーネントの利用(運用)をサポートする仕組みは、極めて有用性が高いものと考えられる。
従来、複数のコンポーネントをライブラリとして管理し、それらを組み合わせて新たなコンポーネントを生成しライブラリへ登録するシステムや、複数アイテムのライセンス料の合計からコストを計算するシステムが知られている。しかし、上述のように、不特定多数から提供されるコンポーネント群を適切に管理してその運用をサポートする仕組みは知られておらず、こうした仕組みの構築が望まれている。
特開2007−128517号公報 特許第5247452号公報 特許第4155854号公報
本発明が解決しようとする課題は、不特定多数から提供されるコンポーネント群を適切に管理してその運用をサポートするコンポーネント管理装置、コンポーネント管理方法およびプログラムを提供することである。
実施形態のコンポーネント管理装置は、データベースと、コンポーネント検索部と、コンポーネント運用部と、を備える。データベースには、タイプごとに入出力が規定されたコンポーネントが登録される。コンポーネント検索部は、コンポーネントの名前もしくは入力例もしくは評価データの入力を受け付け、該入力に応じて前記データベースに登録されたコンポーネントの検索を行って、検索結果を提示する。コンポーネント運用部は、検索されたコンポーネントを利用するアプリケーションからの入力をコンポーネントへ送信し、該コンポーネントの出力を前記アプリケーションに送る。
図1は、コンポーネント管理装置の機能的な構成例を示すブロック図である。 図2は、コンポーネントタイプDBの一例を示す図である。 図3は、コンポーネントタイプDBでタイプごとに規定される入力および出力の一例を示す図である。 図4は、評価データDBの一例を示す図である。 図5は、コンポーネントカタログDBの一例を示す図である。 図6は、コンポーネント運用DBの一例を示す図である。 図7は、クエリDBの一例を示す図である。 図8は、コンポーネント検索UIの一例を示す図である。 図9は、コンポーネント詳細UIの一例を示す図である。 図10は、コンポーネント検索UIの他の例を示す図である。 図11は、フロー構築UIの一例を示す図である。 図12は、フロー構築UIの画面遷移例を示す図である。 図13は、フロー構築UIの画面遷移例を示す図である。 図14は、コンポーネント登録時の処理手順の一例を示すフローチャートである。 図15は、コンポーネント検索時の処理手順の一例を示すフローチャートである。 図16は、検索処理の処理手順の一例を示すフローチャートである。 図17は、アプリケーションによるコンポーネント利用時の処理手順の一例を示すフローチャートである。 図18は、代替コンポーネント利用時の処理手順の一例を示すフローチャートである。 図19は、コンポーネント置き換えの処理手順の一例を示すフローチャートである。 図20は、コンポーネント管理装置のハードウェア構成例を示すブロック図である。
以下、実施形態のコンポーネント管理装置、コンポーネント管理方法およびプログラムについて、図面を参照して詳細に説明する。実施形態のコンポーネント管理装置は、具体的な入力(発話、画像、音声、センサデータなど)に対し応答(発話応答、画像認識、文字認識、音声認識、データ解析など)が可能なコンポーネントを検索可能なコンポーネントマーケットプレースを整備し、コンポーネントを利用したアプリケーションの開発を可能にする。また、そのようにして開発したアプリケーションによるコンポーネントの運用をサポートし、ユーザからの評価の反映や使用料のロギング、新規追加コンポーネントへの切り替え提案などを行う。
本実施形態において、「コンポーネント」とは、発話応答、画像認識、文字認識、音声認識、データ解析などの処理を行うソフトウェア部品を指す。このコンポーネントは、発話、画像、音声、センサデータなどを入力として受け取り、それに対応する応答、認識結果、解析結果などを出力として返す。本実施形態では、コンポーネントを用いてアプリケーションを開発する人を「開発者」と呼び、アプリケーションを利用する人を「ユーザ」と呼ぶ。また、コンポーネントを開発する人を「コンポーネント開発者」と呼ぶ。
実施形態のコンポーネント管理装置は、一例として、ネットワークを利用したサーバ・クライアントシステムのサーバとして実現することができる。この場合、コンポーネント管理装置は、開発者が利用するクライアント端末に搭載されたブラウザを介して、アプリケーションが利用するコンポーネントの検索などを行うためのUI(ユーザインタフェース)を開発者に提供する。また、コンポーネント管理装置は、コンポーネントを利用して動作するアプリケーションのためのAPIサーバとしても動作する。
図1は、本実施形態のコンポーネント管理装置の機能的な構成例を示すブロック図である。コンポーネント管理装置は、図1に示すように、コンポーネント検索サーバ10と、コンポーネント運用サーバ20と、DB(データベース)サーバ30とを備える。このコンポーネント管理装置は、例えば、ネットワーク経由でサービスを提供するクラウドサーバ(クラウドコンピューティングシステム)として構築される。
コンポーネント検索サーバ10は、DBサーバ30に登録されて管理されるコンポーネントの検索などを行うためのコンポーネント利用UI50を開発者に提供し、このコンポーネント利用UI50を通じて、アプリケーションが利用可能なコンポーネントの検索などを行う。
コンポーネント運用サーバ20は、コンポーネントを利用して動作するアプリケーション70がコンポーネントを利用するためのAPIを提供し、アプリケーション70によるコンポーネントの利用(運用)をサポートする。
DBサーバ30は、登録されたコンポーネントの情報を管理するためのデータベース群を含む。例えばDBサーバ30は、図1に示すように、コンポーネントタイプDB31と、評価データDB32と、コンポーネントカタログDB33と、コンポーネント運用DB34と、クエリDB35とを含む。
コンポーネントタイプDB31は、コンポーネントのタイプに関する情報を格納するデータベースである。図2は、コンポーネントタイプDB31の一例を示す図である。コンポーネントタイプDB31は、図2に示すように、コンポーネントのタイプごとに一意に割当てられたID(タイプID)に対応付けて、各コンポーネントタイプのタイプ名、および、そのタイプのコンポーネントが受け付ける入力と出力の情報を格納する。また、図2には示されていないが、後述するコンポーネント検索UIを実現するために必要な、入力名の日本語表記や、各コンポーネントの出力結果を表示するためのプログラムなども、各コンポーネントタイプの情報としてコンポーネントタイプDB31に格納される。図2の例において、“dialogue_agent”タイプは、発話を入力として対話応答を行うコンポーネントを表し、“object_detection_from_image”タイプは、画像を入力としてオブジェクト認識を行うコンポーネントを表す。
図2に例示したコンポーネントタイプDB31に格納される入力および出力の情報の一例を図3に示す。入出力の“type”で記載される内容は、入出力されるデータの属性名とその種別を表している。“dialogue_agent”タイプの入力は、対話エージェントへのユーザからの発話を文字列(string)で示す“speech”属性、および、ユーザのコンテクストなど発話に付随する情報をオブジェクト型(Object)で示す“info”属性から構成される。“dialogue_agent”タイプの出力は、応答のテキストである“response”属性、発話からコンポーネントが抽出した情報である“extracted_info”属性、アプリケーションに外部DBや業務システムなど別のシステムの操作を要求する“command”属性から構成される。
“object_detection_from_image”タイプの入力は、認識対象の画像を示す“image”属性から構成される。“object_detection_from_image”タイプの出力は、矩形(rect)で示される認識対象矩形位置である“rect”属性、および、任意のオブジェクト型(object)で示される認識対象タグ“tag”属性から構成される。入出力データについては、その付属情報を示す“options”を記載してもよい。図3に示す例では、“object_detection_from_image”タイプの出力の“options”として、その出力が複数個あってもよいことを示す“hasMultipleOutput”:trueが記載されている。
入出力については、いくつかの属性が必ずしも必須の入出力ではないという情報を記載してもよい。また、後述する出力データの精度評価のための精度評価ロジックを、コンポーネントタイプと対応付けて登録してもよい。これらコンポーネントタイプは、コンポーネント管理装置を運営する管理者が固定的に与えてもよいし、コンポーネント開発者が新たなタイプのコンポーネントを登録することに応じて、新たなコンポーネントタイプを追加できるようにしてもよい。
評価データDB32は、コンポーネントの精度評価を行うための評価データの情報を格納するデータベースである。評価データは、コンポーネントのタイプに応じた入力(入力データ)とコンポーネントがその入力を正しく処理した場合に得られる出力(出力データ)との組み合わせである。評価データに含まれる入力を精度評価の対象となるコンポーネントに与えたときの実際の出力と、評価データに含まれる出力とを比較することにより、そのコンポーネントの精度を評価することができる。本実施形態では、コンポーネント管理装置の管理者がコンポーネントのタイプごとに登録した評価データのほか、アプリケーション70が実際にコンポーネントを利用したときの入出力の組み合わせのうち、出力に対する評価が高かったものも評価データとして用いることができる。
図4は、評価データDB32の一例を示す図である。評価データDB32は、図4に示すように、各評価データに対して一意に割当てられたID(評価データID)に対応付けて、その評価データの利用対象となるコンポーネントのタイプを特定するためのタイプIDを格納する。また、評価データが特定のコンポーネントの精度評価のみに用いられるものである場合は、そのコンポーネントを特定するためのID(コンポーネントID)をさらに格納する。また、評価データが管理者の登録したものであれば、その評価データの実体である入力および出力をさらに格納する。一方、評価データが、出力に対する評価が高かった入出力の組み合わせであれば、その評価データの実体である入力および出力は格納されず、アプリケーション70を特定するためのID(アプリケーションID)、および、その入出力に対応するクエリを特定するためのID(クエリID)をさらに格納する。この場合、評価データの実体である入力および出力は、後述のクエリDB35から取得される。なお、本実施形態では、アプリケーション70からコンポーネントへの問い合わせを「クエリ」とよぶ。
コンポーネントカタログDB33は、登録されたコンポーネントの情報を格納するデータベースである。図5は、コンポーネントカタログDB33の一例を示す図である。コンポーネントカタログDB33は、図5に示すように、登録された各コンポーネントに対して一意に割当てられたID(コンポーネントID)に対応付けて、そのコンポーネントのタイプを特定するためのタイプID、コンポーネントの名前、説明、平均評価、エンドポイント情報、料金、平均処理時間、更新日時、同時利用コンポーネント、および、置き換え先コンポーネントの情報を格納する。
コンポーネントの名前および説明は、例えば、コンポーネントの登録時にコンポーネント開発者により入力される。平均評価は、アプリケーション70から取得されたコンポーネントに対する評価の平均値(評価情報の一例)である。エンドポイント情報は、コンポーネントの格納先を示す情報である。本実施形態では、コンポーネントが格納されたネットワーク上のサーバにHTTP RESTプロトコルで接続するためのURLを想定するが、他のプロトコルでも構わない。
料金は、1クエリあたりにかかるコンポーネントの利用料金(ドル)を示している。平均処理時間は、1クエリあたりにかかるコンポーネントの処理時間(ミリセカンド)の平均値であり、コンポーネントの応答性能を表す。コンポーネントの処理時間は、アプリケーション70からの入力をコンポーネントに送ってから、そのコンポーネントの出力が返ってくるまでの時間である。同時利用コンポーネントは、アプリケーション70がそのコンポーネントと同時に利用することが多い他のコンポーネントを、コンポーネントIDで示している。置き換え先コンポーネントは、後述のコンポーネント置き換えの機構を用いて置き換えられることの多い置き換え先のコンポーネントを、コンポーネントIDで示している。
コンポーネント運用DB34は、アプリケーション70によるコンポーネントの利用履歴を記録するためのデータベースである。図6は、コンポーネント運用DB34の一例を示す図である。コンポーネント運用DB34は、図6に示すように、利用履歴の集計単位(1つのアプリケーション70と1つのコンポーネントの組み合わせ)ごとに一意に割当てられたID(コンポーネント運用ID)に対応付けて、コンポーネントを特定するためのコンポーネントID、アプリケーション70を特定するためのアプリケーションID、および、クエリ数を格納する。アプリケーションIDは、例えば、アプリケーション70が最初にコンポーネントを利用する前に、開発者からの要求に応じて発行される。クエリ数は、アプリケーション70によるコンポーネントの利用回数を表し、アプリケーション70がコンポーネントを利用するたびに更新される。
記録されたクエリ数は、その利用料金を開発者に請求し、請求した金額をコンポーネント開発者へ送金するために利用される。コンポーネント運用DB34内の各コンポーネントについて、クエリ数を取得し、コンポーネントIDからコンポーネントカタログDB33内の料金を取得し、それらを積算することで、アプリケーション70によるコンポーネントの利用料金を算出する。開発者への請求料金は、各アプリケーションIDの利用料金を加算することで算出され、開発者に提示される。コンポーネント開発者への支払い料金は、各コンポーネントIDの利用料金を加算することで算出され、コンポーネント開発者に提示される。開発者への支払い料金については、コンポーネント管理装置の利用料として規定の金額を差し引いた金額を提示してもよい。
クエリDB35は、アプリケーション70とコンポーネント間でのデータのやり取りを記録するためのデータベースである。図7は、クエリDB35の一例を示す図である。クエリDB35は、図7に示すように、各クエリに対して一意に割当てられたID(クエリID)に対応付けて、そのクエリがどのアプリケーション70とコンポーネントの間でやり取りされたものであるのかを特定するためのコンポーネント運用IDと、そのクエリを構成する実際の入力および出力と、処理時間および評価を格納する。処理時間は、上述のように、アプリケーション70からの入力をコンポーネントに送ってから、そのコンポーネントの出力が返ってくるまでの時間である。評価は、そのコンポーネントがどの程度うまく処理を行ったかを示し、例えば1から5の値(最良の結果が得られた場合を5、最悪の結果が得られた場合を1とする)で示される。この評価は、上述のように、コンポーネントの出力を受け取ったアプリケーション70から渡される。同じコンポーネントに対してクエリDB35に記録された処理時間の平均値が、平均処理時間としてコンポーネントカタログDB33に格納され、評価の平均値が平均評価としてコンポーネントカタログDB33に格納される。
なお、以上説明したデータベース群の構成は一例であり、この例に限定されるものではない。例えば、上述のデータベースのいくつかを1つに統合したり、1つのデータベースを複数に分割したりといった変形を加えてもよい。また、上述のデータベース群が格納する情報も上述の例に限定されるものではなく、コンポーネントの検索や運用実績の記録などに有効な他の情報をさらに格納してもよい。
コンポーネント検索サーバ10は、上述のコンポーネントタイプDB31およびコンポーネントカタログDB33を参照し、コンポーネント利用UI50を用いた開発者の操作に応じて、アプリケーション70が利用可能なコンポーネントの検索などを行う。コンポーネント利用UI50は、アプリケーション70が利用するコンポーネントのタイプや検索式を指定するためのUI、指定したタイプおよび検索方式に応じてコンポーネントの検索を要求するためのUI(コンポーネント検索UI)、検索されたコンポーネントの詳細を開発者に提示するためのUI(コンポーネント詳細UI)、アプリケーション70が複数のコンポーネントを組み合わせて動作する場合のコンポーネントの検索および一連のフローを構築するためのUI(フロー構築UI)などを含む。
図8は、コンポーネント検索UI50Aの一例を示す図である。図8に例示するコンポーネント検索UI50Aが開発者に提供される前に、開発者により、検索の対象となるコンポーネントのタイプと検索方式が指定される。検索方式としては、コンポーネントの名前で検索、入力例で検索、評価データを与えて検索などがあるが、図8は入力例で検索する検索方式が指定された場合のコンポーネント検索UI50Aの一例を示している。また、図8に示すコンポーネント検索UI50Aは、検索対象のコンポーネントのタイプとして、dialogue_agent(対話エージェント)タイプが指定された場合の例である。
図8に例示するコンポーネント検索UI50Aは、上部に入力例を入力するための入力欄51を備える。対話エージェントの場合は、入力例として発話が入力欄51に入力されると、コンポーネント検索サーバ10は、それをコンポーネントカタログDB33内の対応するタイプIDを持つすべてのコンポーネントに対して入力する。そして、入力例に対して応答(出力)があったコンポーネントの情報(コンポーネント情報52)を、検索結果としてコンポーネント検索UI50Aにリスト形式で表示する。コンポーネント情報52としては、例えば、コンポーネントの出力として得られた応答テキスト(response)および抽出情報(extracted_info)などが表示される。また、コンポーネントの名前、説明、平均評価(図中の星マーク)なども併せて表示される。これらの情報はコンポーネントカタログDB33から取得される。
図9は、コンポーネント検索UI50Aに表示されているコンポーネント情報52の中で所望のコンポーネント情報52の表示領域をクリックすることで開く、コンポーネント詳細UI50Bの一例を示す図である。コンポーネント詳細UI50Bは、検索されたコンポーネントの詳細を提示するUIである。このコンポーネント詳細UI50Bは、コンポーネントカタログDB33を参照することで構築され、コンポーネント検索UI50Aでコンポーネント情報52として表示される情報に加え、そのコンポーネントのコンポーネントID、利用にかかる料金、平均処理時間、最終更新日などの補足情報53が表示される。また、そのコンポーネントを呼び出すアプリケーション70(既に開発されている他のアプリケーション70)が使っている他のコンポーネントである同時利用コンポーネントの情報54や、後述するコンポーネント置き換えの仕組みでこのコンポーネントより精度が高いと評価された置き換え先コンポーネントの情報55が表示される。これらの情報は、このコンポーネントを使っているアプリケーションはこのコンポーネントを使っている、このコンポーネントに置き換えている、という参考情報として提示される。なお、同時利用コンポーネントの情報54の表示領域や、置き換え先コンポーネントの情報55の表示領域をクリックすることで、これらのコンポーネントに対応するコンポーネント詳細UI50Bが開く構成としてもよい。
開発者は、このようにして検索されたコンポーネントから、アプリケーション70で利用するコンポーネントを選択し、例えばエディタ上で作成しているアプリケーション70のソースコードに選択したコンポーネントの情報を組み込むことにより、アプリケーション70の開発を容易に行うことができる。なお、検索されたコンポーネントが、後述するクライアント・エッジ端末上での動作を想定したものである場合は、図9に示すように、それら特定環境上で動作するライブラリのダウンロードボタン56をコンポーネント詳細UI50Bが備えてもよい。
なお、コンポーネント検索UI50Aの構成は、検索対象のコンポーネントのタイプにより異なる。図10は、検索対象のコンポーネントのタイプとして、object_detection_from_image(画像物体検出)タイプが指定された場合のコンポーネント検索UI50Aの一例を示す図である。この例の場合、入力例は認識を行う画像のアップロードで行うため、入力欄51の代わりにアップロードする画像ファイルを選択するボタン57が設けられる。また、検索結果として表示されるコンポーネント情報52には、応答テキスト(response)や抽出情報(extracted_info)の代わりに、入力した画像に対するコンポーネントの認識結果を示した画像が含まれる。
また、以上は検索方式として入力例で検索する方式が指定された場合の例であるが、コンポーネントの名前で検索する方式が指定された場合は、コンポーネントの名前をテキストで入力する手段がコンポーネント検索UI50Aに設けられる。この場合、コンポーネント検索サーバ10は、コンポーネント検索UI50Aに入力されたテキストを検索条件としてコンポーネントカタログDB33を検索する。そして、コンポーネントカタログDB33内の対応するタイプIDを持つコンポーネントのうち、コンポーネント検索UI50Aに入力されたテキストが名前に含まれるコンポーネントのコンポーネント情報52が、検索結果としてコンポーネント検索UI50Aに表示される。
また、検索方式として評価データを与えて検索する方式が指定された場合は、評価データをアップロードする手段がコンポーネント検索UI50Aに設けられる。この場合、コンポーネント検索サーバ10は、コンポーネントカタログDB33内の対応するタイプIDを持つすべてのコンポーネントに対して、アップロードされた評価データに含まれる入力データを送信し、各コンポーネントからの応答(出力)を評価データに含まれる出力データと比較してコンポーネントの精度を算出する。そして、応答があったコンポーネントのコンポーネント情報52を、算出した精度が高い順に、検索結果としてコンポーネント検索UI50Aにリスト形式で表示する。精度が基準値を満たさないコンポーネントについては、コンポーネント情報52の表示を行わないようにしてもよい。
なお、コンポーネントの精度は、コンポーネントタイプDB31の出力定義内の情報を用いて算出される。例えば、出力が“string”のコンポーネントに対しては文字正解率、出力が“object”のコンポーネントに対しては一致したプロパティ数、出力が“rect”のコンポーネントに対しては矩形の重なり度合いなどが用いられる。また、コンポーネントタイプDBに精度評価ロジックが登録されている場合は、それが用いられる。
ところで、複数のコンポーネントを組み合わせて動作するアプリケーション70を開発する場合は、これら複数のコンポーネントの検索および一連のフローの構築が必要となる。本実施形態では、コンポーネント利用UI50の一つとしてフロー構築UIを用意し、複数のコンポーネントを組み合わせて動作するアプリケーション70の開発をサポートする。
図11は、フロー構築UI50Cの一例を示す図であり、図8の例と同様に、検索対象のコンポーネントのタイプとして、dialogue_agent(対話エージェント)タイプ、検索方式として入力例での検索が指定された場合のフロー構築UI50Cの一例を示している。図11に示すフロー構築UI50Cでは、図8に示したコンポーネント検索UI50Aと同様に入力例での検索を行った後、その次にアプリケーション70がコンポーネントに対して行う発話の入力例が入力される。その際、前のコンポーネントからの抽出済み情報58も併せて入力される。コンポーネントから要求されたコマンドに対する応答によって次にどのような処理を行うかなどの簡易な条件分岐についても、入力欄59を用いてフロー構築UI50C上から編集することができる。このようにして構築されたフローはアプリケーション70で利用可能なプログラムコードの形でダウンロードされる。
図12および図13は、図11に例示する一連のフローを構築するためのフロー構築UI50Cの画面遷移例を示している。最初のコンポーネントの検索時、フロー構築UI50Cの画面は、図12に示すように、図8に示したコンポーネント検索UI50Aと同様に、検索結果としてコンポーネント情報52をリスト形式で表示したものとなっており、表示される各コンポーネント情報52に対応して、コンポーネントを選択するためのチェックボックス60が設けられている。開発者がいずれかのチェックボックス60にチェックを入れ、いずれかのコンポーネントが選択されると、フロー構築UI50Cは、図13に示すように、次の処理を選択するための画面に遷移する。
図13に示すフロー構築UI50Cの画面には、選択されたコンポーネントのコンポーネント情報52と併せて、選択されたコンポーネントの抽出情報が抽出済み情報58として表示されるとともに、次の処理を選択するためのプルダウンリスト61が表示される。開発者がこのプルダウンリスト61を用いて次の処理を選択すると、選択された処理に応じて、次の処理に必要な操作を受け付けるための新たな手段が画面に追加されていく。例えば、選択された処理が「次の発話を入力」や「ユーザへ発話」の場合は、発話を入力する新たな入力欄51が追加され、「ifステートメント」の場合は、条件を入力するための入力欄59が追加される。これら処理を削除したり、別の処理に置き換えたりするための手段を備えていてもよい。
以上のようにして開発されたアプリケーション70は、コンポーネント運用サーバ20が提供するAPIを通じて、コンポーネントカタログDB33に登録されたコンポーネントを利用することができる。
コンポーネント運用サーバ20は、アプリケーション70からの入力をコンポーネントIDで特定されるコンポーネントに送信し、そのコンポーネントの出力をアプリケーション70に返す。このとき、コンポーネント運用サーバ20は、上述の処理時間を算出するとともにアプリケーション70からコンポーネントの評価を受け取ってクエリDB35に新規クエリを記録したり、コンポーネント運用DB34のクエリ数を更新したりといった処理を併せて行う。また、コンポーネント運用サーバ20は、所定のタイミングで、アプリケーション70が利用しているコンポーネントを、新規に登録されたより性能の良い他のコンポーネントに置き換えることの提案などを行う。
本実施形態では、登録されたコンポーネントがネットワーク経由で利用するクラウド上のソフトウェアであることを想定するが、クライアント・エッジ端末上で動作するライブラリの形であってもよい。その場合、コンポーネントカタログDB33は、上述のエンドポイント情報に加え、ダウンロード可能な形のライブラリのバイナリを格納する。それらライブラリは、コンポーネントの利用時にコンポーネント運用DB34などを更新するための情報をコンポーネント運用サーバ20へ伝達する手段を備える。上述のコンポーネントの検索においてライブラリを備えたコンポーネントが検索された場合は、その動作可能環境などをコンポーネント情報52に含めてコンポーネント検索UI50Aに表示してもよい。また、上述のように、検索されたコンポーネントを特定環境で動作させるためのライブラリ(ソフトウェア部品)のダウンロードボタン56をコンポーネント詳細UI50Bに設け、このダウンロードボタン56が操作されると、コンポーネントカタログDB33からライブラリのバイナリがダウンロードされる構成としてもよい。
次に、本実施形態のコンポーネント管理装置の動作について、図14乃至図19のフローチャートを参照して説明する。
図14は、コンポーネント登録時の処理手順の一例を示すフローチャートである。コンポーネント開発者は、自身のアカウント情報を用いてコンポーネント管理装置にログインし(ステップS101)、その後、コンポーネントの名前や説明、エンドポイント情報など、コンポーネントカタログDB33への登録に必要なコンポーネント情報を入力する(ステップS102)。
コンポーネント管理装置は、コンポーネント管理者から入力されたエンドポイント情報により特定されるコンポーネントの格納先に評価データを与え、適切な応答が返るかなどのバリデーションを行う(ステップS103)。そして、適切にバリデーションできた場合に、コンポーネントIDを付与してステップS102で入力されたコンポーネント情報をコンポーネントカタログDB33に格納し、コンポーネントカタログDB33を更新する(ステップS104)。
図15は、コンポーネント検索時の処理手順の一例を示すフローチャートである。開発者は、自身のアカウント情報を用いてコンポーネント管理装置にログインし(ステップS201)、その後、コンポーネント利用UIを用いて、どのタイプのコンポーネントを検索対象とするかを選択する(ステップS202)。コンポーネントタイプが選択されると、コンポーネント検索UI50Aを用いたコンポーネント検索サーバ10によるコンポーネントの検索が実施される(ステップS203)。コンポーネント検索サーバ10によるコンポーネントの検索は、ログアウトなどの開発者による明示的な検索終了の操作がなければ継続され(ステップS204:No)、明示的な検索終了の操作があると(ステップS204:Yes)、一連の処理が終了する。
図16は、図15のステップS203で実施される検索処理の処理手順の一例を示すフローチャートである。検索処理においては、まず、必要に応じて付加情報の設定が行われる(ステップS301)。付加条件とは、平均評価や平均処理時間、利用にかかる料金などに対するフィルタとなる条件であり、例えば、平均評価が3以上のコンポーネントを検索するなどの条件を表す。その後、コンポーネント検索サーバ10は、コンポーネント利用UI50を用いた開発者の操作に応じて、検索方式を決定する(ステップS302)。検索方式としては、上述したように、コンポーネントへの入力例で検索する入力例検索、コンポーネントの名前や説明で検索する名前検索、入力と出力の組からなる評価データをアップロードし、評価データを用いて算出した精度で検索する評価データ検索がある。
そして、コンポーネント検索サーバ10は、コンポーネント検索UI50Aを開発者に提供し、ステップS302で決定した検索方式に対応する入力を受け付ける(ステップS303A,S303B,S303C)。すなわち、入力例検索であればコンポーネントへの具体的な入力例の入力、名前入力であればコンポーネントの名前や説明の入力、評価データ入力であればコンポーネントの精度を評価するための入力と出力の組からならなる評価データの入力を受け付ける。そして、コンポーネント検索サーバ10は、コンポーネントカタログDB33に登録されたコンポーネントの検索を実施して(ステップS304)、検索によって得られたコンポーネント情報52を、検索結果としてコンポーネント検索UI50Aに表示する(ステップS305)。
図17は、アプリケーション70によるコンポーネント利用時の処理手順の一例を示すフローチャートである。なお、この手順を実行する前に、開発者は自身のアカウント情報を用いて、アプリケーション70を識別するためのアプリケーションIDを取得する必要がある。コンポーネント管理装置によりアプリケーションIDが発行されると、以降、アプリケーション70は、このアプリケーションIDにより識別される。
アプリケーション70を利用するユーザは、まず、アプリケーション70がコンポーネントを呼び出すために必要な認証トークンを取得する(ステップS401)。認証トークンは、ユーザのアカウント情報およびアプリケーションIDの組を送信することで取得できる。
その後、アプリケーション70は、認証トークン、送り先のコンポーネントを指定するためのコンポーネントID、入力データの組を、コンポーネント運用サーバ20が提供するAPIを介してコンポーネント運用サーバ20に送信する。コンポーネント運用サーバ20は、受信したコンポーネントIDをもとに、コンポーネントカタログDB33から入力を送るべきコンポーネントのエンドポイント情報を取得し、コンポーネントに入力データを送信する(ステップS402)。そして、コンポーネント運用サーバ20は、コンポーネントの出力を受信してアプリケーション70に送る(ステップS403)。
アプリケーション70は、コンポーネントの出力を用いた処理を行った後、その処理内容が適切であったかを示す評価、つまりコンポーネントの出力に対する評価をコンポーネント運用サーバ20に送信する。コンポーネント運用サーバ20は、アプリケーション70から、コンポーネントの出力に対する評価を取得すると(ステップS404)、コンポーネントへの入力と出力と評価を組にして、クエリDB35へ記録する(ステップS405)。また、コンポーネント運用サーバ20は、コンポーネント運用DB34中の対応するクエリ数を増加し(ステップS406)、コンポーネントカタログDB33中の平均評価および平均処理時間を更新する(ステップS407)。
また、ステップS404でアプリケーション70から取得した評価の値が規定値(例えば4)以上の場合は(ステップS408:Yes)、コンポーネント運用サーバ20は、コンポーネントへの入力と出力の組を評価データとして評価データDB32へ記録する(ステップS409)。評価データDB32への記録を行う際は、そのアプリケーション70からのクエリが十分な回数行われている、などの利用実績による制限を設定してもよい。また、アプリケーション70から、明示的な評価データとして入出力のデータセットを、APIを介してコンポーネント運用サーバ20に入力してもよい。評価データDB42に記録された評価データは、後述するコンポーネント置き換えを実施する際の評価に用いられる。
なお、アプリケーション70からの入力に対してコンポーネントが出力を行えない場合、コンポーネント運用サーバ20が、そのコンポーネントの代わりに応答可能なコンポーネント(代替コンポーネント)にアプリケーション70からの入力を送信してもよい。図18は、代替コンポーネント利用時の処理手順の一例を示すフローチャートである。
コンポーネント運用サーバ20は、図17のステップS402においてアプリケーション70からの入力をコンポーネントに送信した後、そのコンポーネントからの出力を受信できなかった場合、同一タイプの他のコンポーネントにアプリケーション70からの入力データを送信する(ステップS501)。他のコンポーネントとしては、アプリケーション70があらかじめ設定していた複数のコンポーネントに送信するパターンや、そのコンポーネントから置き換えられていることが多いコンポーネント(コンポーネントカタログDB33中の置き換え先コンポーネント)に送信するパターンなど、複数のパターンが考えられる。
そして、コンポーネント運用サーバ20は、他のコンポーネントから出力を受信した場合(ステップS502:Yes)、他のコンポーネントの出力をアプリケーション70に送って処理成功とする(ステップS503)。一方、他のコンポーネントからも出力が得られなかった場合は(ステップS502:No)、コンポーネント運用サーバ20は、アプリケーション70に対して、先の入力の代替となる他の入力を要求する(ステップS504)。ここで、先の入力の代替となる他の入力とは、対話処理であれば別の言い回しの発話の入力、画像認識であれば同一場面を別アングルで撮影したカメラからの画像入力などが想定される。
そして、コンポーネント運用サーバ20は、アプリケーション70から代替となる他の入力をコンポーネントに送信し、コンポーネントから出力が得られれば(ステップS505:Yes)、そのコンポーネントの出力をアプリケーション70に送って処理成功とする(ステップS503)。一方、代替となる他の入力に対する出力もコンポーネントから得られなかった場合は(ステップS505:No)、処理失敗のステータス情報をアプリケーション70に送信し、処理失敗とする(ステップS506)。なお、アプリケーション70から受信した他の入力に対する応答が上述の他のコンポーネントからも得られない場合に、処理失敗としてもよい。
図19は、コンポーネント置き換え時の処理手順の一例を示すフローチャートである。コンポーネント置き換えとは、アプリケーション70が利用しているコンポーネントを、新規に登録されたより性能の良い他のコンポーネントに置き換える処理をいう。この処理は、例えば1週間に1回など、定期的なタイミングで行われる。
コンポーネント運用サーバ20は、まず、アプリケーション70が利用しているコンポーネントと同一タイプのコンポーネントを検索する(ステップS601)。この検索の際は、例えば、前回の置き換え処理の後に追加されたコンポーネントに限る、評価が4以上のコンポーネントに限る、などの制約を設けてもよい。
次に、コンポーネント運用サーバ20は、評価データDB32に格納されている同一タイプの評価データを用いて、ステップS601で検索された各コンポーネントおよびアプリケーション70が利用している既存コンポーネントの精度評価を行う(ステップS602)。この精度評価には、評価データDB32に格納されている同一タイプの全ての評価データを用いてもよいし、対象となるアプリケーション70のみから収集された評価データ(つまり、対象となるアプリケーション70の過去のクエリ)を用いてもよい。
次に、コンポーネント運用サーバ20は、ステップS601で検索された各コンポーネントの精度を、アプリケーション70が利用している既存コンポーネントの精度と比較する(ステップS603)。そして、既存コンポーネントよりも一定以上精度が高かったコンポーネントを、置き換え候補として開発者に提示する(ステップS604)。このとき、評価データに含まれる入力に対する置き換え候補のコンポーネントの出力を、既存コンポーネントの出力と比較して提示するようにしてもよい。また、置き換え候補となるコンポーネントは、評価データを用いた精度だけでなく、例えば既存コンポーネントよりも処理時間が短くなるものなど、別の観点を用いて選択してもよい。
コンポーネント運用サーバ20によって置き換え候補のコンポーネントが提示されると、開発者は、必要に応じて、それら候補の中から既存コンポーネントに置き換えるコンポーネントを選択し(ステップS605)、アプリケーション70内の既存コンポーネントを、選択したコンポーネントに置き換える(ステップS606)。なお、ステップS605で開発者によりコンポーネントが選択されると、その情報がコンポーネントカタログDB33に反映され、置き換えられたコンポーネントのコンポーネントIDが、既存コンポーネントの置き換え先コンポーネントとして格納される。
以上、具体的な例を挙げながら詳細に説明したように、本実施形態のコンポーネント管理装置によれば、コンポーネント検索サーバ10が、DBサーバ30に登録されたコンポーネントの検索を行って検索結果を提示し、コンポーネント運用サーバ20が、アプリケーション70によるコンポーネントの利用(運用)をサポートするようにしている。したがって、不特定多数から提供されるコンポーネント群をアプリケーション70が利用できるように適切に管理して、アプリケーション70によるコンポーネントの利用(運用)をサポートすることができる。
すなわち、アプリケーション70を開発する開発者は、本実施形態のコンポーネント管理装置を用いることで、必要となるコンポーネントを低コストに検索、利用することができ、また、より性能の高いコンポーネントへの置き換えなどを容易に行うことができる。また、コンポーネント開発者は、開発したコンポーネントを多くのアプリケーション70に利用してもらい、その利用料金を得ることができる。また、より性能の良いコンポーネントを提供することで、多くのアプリケーション70への展開が行える。
本実施形態のコンポーネント管理は、例えば、一般的なコンピュータを構成するハードウェアと、コンピュータで実行されるプログラム(ソフトウェア)との協働により実現することができる。例えば、コンピュータが所定のプログラムを実行することによって、上述したコンポーネント検索サーバ10およびコンポーネント運用サーバ20の機能を実現することができる。また、コンピュータが備えるストレージデバイスを用いて、上述したDBサーバ30の機能を実現することができる。
図20は、本実施形態のコンポーネント管理装置のハードウェア構成例を示すブロック図である。本実施形態のコンポーネント管理装置は、例えば図20に示すように、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などのプロセッサ回路101と、RAM(Random Access Memory)やROM(Read Only Memory)などの内部メモリ102と、HDD(Hard Disk Drive)やSDD(Solid State Drive)などのストレージデバイス103と、入力デバイス106やディスプレイ107などの周辺機器を接続するための入出力I/F104と、開発者やユーザが利用するクライアント・エッジ端末などの外部機器と通信を行う通信I/F105と、を備えた一般的なコンピュータのハードウェア構成を有する。そして、例えば、プロセッサ回路101が内部メモリ102を利用しながら、ストレージデバイス103や内部メモリ102などに格納されたプログラムを実行することで、上述の機能的な構成要素を実現することができる。
すなわち、本実施形態のコンポーネント管理装置の機能的な構成要素として示した各部は、コンピュータにより実行されるプログラムに含まれ、コンピュータが備える1以上のプロセッサ(図20のプロセッサ回路101)がこのプログラムを実行することにより、上述した各部がRAMなどの主記憶(図20の内部メモリ102)上に生成される。
コンピュータにより実行される上記プログラムは、例えば、磁気ディスク(フレキシブルディスク、ハードディスクなど)、光ディスク(CD−ROM、CD−R、CD−RW、DVD−ROM、DVD±R、DVD±RW、Blu−ray(登録商標)Discなど)、半導体メモリ、またはこれに類する記録媒体に記録されて提供される。なお、プログラムを記録する記録媒体は、コンピュータが読み取り可能な記録媒体であれば、その記憶形式は何れの形態であってもよい。また、上記プログラムを、コンピュータに予めインストールするように構成してもよいし、ネットワークを介して配布される上記のプログラムをコンピュータに適宜インストールするように構成してもよい。
なお、本実施形態のコンポーネント管理装置は、上述した機能的な構成要素の一部または全部を、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)などの専用のハードウェアにより実現する構成であってもよい。また、本実施形態のコンポーネント管理装置は、複数台のコンピュータを通信可能に接続したネットワークシステムとして構成し、上述した機能的な構成要素を複数台のコンピュータに分散して実現する構成であってもよい。また、本実施形態のコンポーネント管理装置は、クラウド上で動作する仮想マシンであってもよい。
以上、本発明の実施形態を説明したが、この実施形態は例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10 コンポーネント検索サーバ
20 コンポーネント運用サーバ
30 DBサーバ
31 コンポーネントタイプDB
32 評価データDB
33 コンポーネントカタログDB
34 コンポーネント運用DB
35 クエリDB
50 コンポーネント利用UI
50A コンポーネント検索UI
50B コンポーネント詳細UI
50C フロー構築UI
70 アプリケーション

Claims (15)

  1. タイプごとに入出力が規定されたコンポーネントが登録されるデータベースと、
    入力例または評価データの入力を受け付け、該入力に応じて前記データベースに登録されたコンポーネントの検索を行って、検索結果を提示するコンポーネント検索部と、
    検索されたコンポーネントを利用するアプリケーションからの入力をコンポーネントへ送信し、該コンポーネントの出力を前記アプリケーションに送るコンポーネント運用部と、
    を備え、
    前記検索結果は、前記データベースに登録されたコンポーネントのうち、受け付けた入力に対して応答を出力したコンポーネントの情報を含み、
    前記コンポーネントの情報は、前記応答を示す情報を含む、
    ンポーネント管理装置。
  2. 前記コンポーネント検索部は、受け付けた評価データを用いて前記データベースに登録されたコンポーネントの精度を算出し、算出した精度が高い順にコンポーネントの情報を並べて前記検索結果として提示する
    請求項1に記載のコンポーネント管理装置。
  3. 前記コンポーネント検索部は、前記入力の受け付けとコンポーネントの検索を繰り返して、複数のコンポーネントを組み合わせたアプリケーションの動作フローを構築する
    請求項1または2に記載のコンポーネント管理装置。
  4. 前記コンポーネント検索部は、検索されたコンポーネントを利用しているアプリケーションが、検索されたコンポーネントとともに利用している他のコンポーネントを特定する情報を提示する
    請求項1乃至3のいずれか一項に記載のコンポーネント管理装置。
  5. 前記コンポーネント検索部は、検索されたコンポーネントを特定環境で動作させるためのソフトウェア部品を取得する手段を提示する
    請求項1乃至4のいずれか一項に記載のコンポーネント管理装置。
  6. 前記コンポーネント運用部は、前記アプリケーションの入力とコンポーネントの出力の組を前記データベースに記録する
    請求項1乃至5のいずれか一項に記載のコンポーネント管理装置。
  7. 前記コンポーネント運用部は、前記アプリケーションからコンポーネントの出力に対する評価を受け取り、該評価が規定値以上の場合、前記アプリケーションの入力とコンポーネントの出力の組を評価データとして前記データベースに記録する
    請求項1乃至6のいずれか一項に記載のコンポーネント管理装置。
  8. 前記コンポーネント運用部は、前記評価データを用いて、アプリケーションが利用するコンポーネントおよび該コンポーネントと同タイプの他のコンポーネントの精度を算出し、アプリケーションが利用するコンポーネントよりも精度が高い他のコンポーネントの情報を提示する
    請求項7に記載のコンポーネント管理装置。
  9. 前記コンポーネント運用部は、前記アプリケーションからコンポーネントの出力に対する評価を受け取り、該評価をもとにコンポーネントの評価情報を算出して前記データベースに記録し、
    前記コンポーネント検索部は、検索されたコンポーネントの評価情報を提示する
    請求項1乃至8のいずれか一項に記載のコンポーネント管理装置。
  10. 前記コンポーネント運用部は、前記アプリケーションからの入力をコンポーネントに送信してから該コンポーネントの出力を受信するまでの時間を計測し、計測した時間をもとにコンポーネントの応答性能を算出して前記データベースに記録し、
    前記コンポーネント検索部は、検索されたコンポーネントの応答性能を提示する
    請求項1乃至9のいずれか一項に記載のコンポーネント管理装置。
  11. 前記コンポーネント運用部は、前記アプリケーションからの入力を送信したコンポーネントから出力が得られなかった場合、該コンポーネントと同タイプの他のコンポーネントへ前記アプリケーションからの入力を送信し、該他のコンポーネントからの出力を前記アプリケーションに送る
    請求項1乃至10のいずれか一項に記載のコンポーネント管理装置。
  12. 前記コンポーネント運用部は、前記アプリケーションからの入力を送信したコンポーネントから出力が得られなかった場合、前記アプリケーションに他の入力を要求する
    請求項1乃至11のいずれか一項に記載のコンポーネント管理装置。
  13. 前記コンポーネント運用部は、前記アプリケーションによるコンポーネントの利用回数を前記データベースに記録する
    請求項1乃至12のいずれか一項に記載のコンポーネント管理装置。
  14. コンポーネント管理装置が、タイプごとに入出力が規定されたコンポーネントをデータベースに登録するステップと、
    前記コンポーネント管理装置が、入力例または評価データの入力を受け付け、該入力に応じて前記データベースに登録されたコンポーネントの検索を行って、検索結果を提示するステップと、
    前記コンポーネント管理装置が、検索されたコンポーネントを利用するアプリケーションからの入力をコンポーネントへ送信し、該コンポーネントの出力を前記アプリケーションに送るステップと、
    を含
    前記検索結果は、前記データベースに登録されたコンポーネントのうち、受け付けた入力に対して応答を出力したコンポーネントの情報を含み、
    前記コンポーネントの情報は、前記応答を示す情報を含む、
    ンポーネント管理方法。
  15. コンピュータに、
    タイプごとに入出力が規定されたコンポーネントをデータベースに登録する機能と、
    入力例または評価データの入力を受け付け、該入力に応じて前記データベースに登録されたコンポーネントの検索を行って、検索結果を提示する機能と、
    検索されたコンポーネントを利用するアプリケーションからの入力をコンポーネントへ送信し、該コンポーネントの出力を前記アプリケーションに送る機能と、
    を実現させ、
    前記検索結果は、前記データベースに登録されたコンポーネントのうち、受け付けた入力に対して応答を出力したコンポーネントの情報を含み、
    前記コンポーネントの情報は、前記応答を示す情報を含む、
    ログラム。
JP2018111156A 2018-06-11 2018-06-11 コンポーネント管理装置、コンポーネント管理方法およびプログラム Active JP6779943B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018111156A JP6779943B2 (ja) 2018-06-11 2018-06-11 コンポーネント管理装置、コンポーネント管理方法およびプログラム
CN201910491050.7A CN110580160B (zh) 2018-06-11 2019-06-06 组件管理装置、组件管理方法及记录介质
US16/436,145 US11423088B2 (en) 2018-06-11 2019-06-10 Component management device, component management method, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018111156A JP6779943B2 (ja) 2018-06-11 2018-06-11 コンポーネント管理装置、コンポーネント管理方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2019215621A JP2019215621A (ja) 2019-12-19
JP6779943B2 true JP6779943B2 (ja) 2020-11-04

Family

ID=68763719

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018111156A Active JP6779943B2 (ja) 2018-06-11 2018-06-11 コンポーネント管理装置、コンポーネント管理方法およびプログラム

Country Status (3)

Country Link
US (1) US11423088B2 (ja)
JP (1) JP6779943B2 (ja)
CN (1) CN110580160B (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11397519B2 (en) * 2019-11-27 2022-07-26 Sap Se Interface controller and overlay
CN111399812B (zh) * 2020-04-07 2022-04-19 杭州指令集智能科技有限公司 组件构建方法、装置、开发框架及设备

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7609402B2 (en) * 2001-01-19 2009-10-27 Flexiworld, Inc. Methods for universal data output
JP4155854B2 (ja) 2003-03-24 2008-09-24 富士通株式会社 対話制御システム及び方法
US20050160104A1 (en) * 2004-01-20 2005-07-21 Datasource, Inc. System and method for generating and deploying a software application
US7877387B2 (en) 2005-09-30 2011-01-25 Strands, Inc. Systems and methods for promotional media item selection and promotional program unit generation
US7711674B2 (en) 2005-11-01 2010-05-04 Fuji Xerox Co., Ltd. System and method for automatic design of components in libraries
US7636779B2 (en) * 2006-04-28 2009-12-22 Yahoo! Inc. Contextual mobile local search based on social network vitality information
JP2008242811A (ja) * 2007-03-27 2008-10-09 Hitachi Software Eng Co Ltd ソフトウェア部品ソースコード生成システム
JP5084665B2 (ja) * 2008-08-20 2012-11-28 日本電信電話株式会社 コンポーネント連携シナリオ統合開発環境提供システム、シナリオ作成支援方法、及び、プログラム
JP4851556B2 (ja) * 2009-04-10 2012-01-11 株式会社エヌ・ティ・ティ・ドコモ 連携サーバ装置、アプリケーション連携判断システム、及び、アプリケーション連携判断方法
CN101923551B (zh) * 2009-06-12 2015-06-03 Sap欧洲公司 信息值驱动的接近实时的决策支持
US20130080584A1 (en) * 2011-09-23 2013-03-28 SnapLogic, Inc Predictive field linking for data integration pipelines
JP6310689B2 (ja) * 2013-12-16 2018-04-11 株式会社日立製作所 管理サーバおよび管理サーバの制御方法
US10741182B2 (en) * 2014-02-18 2020-08-11 Lenovo (Singapore) Pte. Ltd. Voice input correction using non-audio based input
CN105095469A (zh) * 2015-08-07 2015-11-25 薛德军 一种基于反馈的文献检索方法
JP6927552B2 (ja) * 2016-02-19 2021-09-01 日本電気株式会社 情報処理装置、リソース管理方法及びリソース管理プログラム
CN106547886B (zh) * 2016-11-03 2020-01-10 Oppo广东移动通信有限公司 应用程序推荐方法、装置、终端和服务器
US9983855B1 (en) * 2016-12-29 2018-05-29 Walmart Apollo, Llc Systems, method, and non-transitory computer-readable storage media for displaying software components
US10911596B1 (en) * 2017-08-31 2021-02-02 Amazon Technologies, Inc. Voice user interface for wired communications system

Also Published As

Publication number Publication date
US20190377760A1 (en) 2019-12-12
JP2019215621A (ja) 2019-12-19
CN110580160A (zh) 2019-12-17
US11423088B2 (en) 2022-08-23
CN110580160B (zh) 2023-10-27

Similar Documents

Publication Publication Date Title
US10083020B2 (en) Computing device facilitating end user access to functionality of applications not yet installed
CN106233252B (zh) 用于定制软件的动态更新安装器
JP5161267B2 (ja) 画面カスタマイズ支援システム、画面カスタマイズ支援方法、および画面カスタマイズ支援プログラム
CN111860753A (zh) 用于训练模型的基于有向无环图的框架
US11055090B2 (en) Component management platform
CN108139948A (zh) 保证分布式系统中多阶段处理的事件次序
US20170302540A1 (en) Predictive service request system and methods
RU2653246C1 (ru) Усовершенствование запроса для поиска базы данных
CN108701121A (zh) 将用户输入分派到用户界面中的多个输入域
CN103246690A (zh) 标签继承
US20200125948A1 (en) Machine learning from the integration flow metadata
US20170032136A1 (en) Autocomplete of searches for data stored in multi-tenant architecture
JP6779943B2 (ja) コンポーネント管理装置、コンポーネント管理方法およびプログラム
US20170124181A1 (en) Automatic fuzzy matching of entities in context
KR102197392B1 (ko) 관심지점 리스트에 대한 구독과 리뷰 정보에 기초하여 보상을 제공하는 방법 및 시스템
KR102235740B1 (ko) 관심지점 리스트에 대한 구독과 리뷰 정보에 기초하여 보상을 제공하는 방법 및 시스템
US11863635B2 (en) Enhanced processing of user profiles using data structures specialized for graphical processing units (GPUs)
US10019295B2 (en) Method and system for managing and linking software applications
KR20200076273A (ko) 얼굴 이미지와 메신저 계정의 연동에 기반한 이미지 관리 방법 및 시스템
WO2024030113A1 (en) System and method for bulk update of resource data for view parameters
US20110145300A1 (en) Database system, server apparatus, terminal apparatus, and database updating method
KR20200086574A (ko) 키워드 관계 구조를 이용한 신규 키워드 추출 방법 및 시스템
JP2020017050A (ja) 情報処理装置、情報処理方法、およびプログラム
JP7488051B2 (ja) 情報処理装置、端末装置、情報処理方法及びプログラム
US8380746B2 (en) Database system, terminal apparatus, and method of generating display image

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190327

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200225

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200417

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200619

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200915

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201014

R150 Certificate of patent or registration of utility model

Ref document number: 6779943

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150