(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-19
(45)【発行日】2022-10-27
(54)【発明の名称】システムにわたる制御及び探索を自動化するためのテンプレートの対話式及び非対話式実行及びレンダリング
(51)【国際特許分類】
G06F 16/25 20190101AFI20221020BHJP
G06N 5/02 20060101ALI20221020BHJP
【FI】
G06F16/25
G06N5/02 120
(21)【出願番号】P 2020538801
(86)(22)【出願日】2019-01-09
(86)【国際出願番号】 IB2019050159
(87)【国際公開番号】W WO2019138337
(87)【国際公開日】2019-07-18
【審査請求日】2020-09-08
(31)【優先権主張番号】201711031962
(32)【優先日】2018-01-09
(33)【優先権主張国・地域又は機関】IN
(73)【特許権者】
【識別番号】520251519
【氏名又は名称】クリアトレイル テクノロジーズ プライベート リミテッド
(74)【代理人】
【識別番号】110000855
【氏名又は名称】弁理士法人浅村特許事務所
(72)【発明者】
【氏名】バールガバ、アナンド
(72)【発明者】
【氏名】アグラワル、サプネシュ
(72)【発明者】
【氏名】グプタ、アビーシェク
(72)【発明者】
【氏名】バーンダリ、ビシャル
(72)【発明者】
【氏名】ジャジュ、プランジャル
【審査官】鹿野 博嗣
(56)【参考文献】
【文献】特表2008-533630(JP,A)
【文献】米国特許出願公開第2014/0195514(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/25
G06N 5/02
(57)【特許請求の範囲】
【請求項1】
テンプレートの対話式及び非対話式実行及びレンダリングのためのプラットフォーム(102)であって、前記プラットフォーム(102)が、
メモリ(206)と、
前記メモリ(206)に結合されたプロセッサ(202)とを備え、前記プロセッサ(202)は、
外部システム及びデータベースのセット(110)との接続を確立することと、
グラフィカル・ユーザ・インターフェースを介して新しい探索をレンダリングするか又は既存の探索をレンダリングすることと、
コンテキスト情報に基づいて外部システム及びデータベースの前記セット(110)からシステムのサブセットを識別することであって、前記コンテキスト情報はユーザーによって選択された視覚要素に基づいて決定され、前記視覚要素は、既存の探索または保存された探索に存在する要素を示す、識別することと、
前記コンテキスト情報に基づいてシステムの前記サブセットに関連付けられた動作/動作グループのセットを表示することと、
ユーザによって選択されたターゲット動作/動作グループに関連付けられたターゲット・システムを識別することと、
前記ターゲット・システムにターゲット動作/動作グループ実行要求を送信することであって、前記ターゲット動作/動作グループが、前記ターゲット・システムを制御するか、又は、ユーザ入力をキャプチャし、前記ユーザ入力に基づいて前記ターゲット・システムを制御するために読取り動作及び書込み動作のうちの1つを実施するために、読取り動作、書込み動作のうちの1つに関連付けられた、送信することと、
前記ターゲット・システムからデータを受信することであって、前記データが、前記ターゲット・システムを介した前記動作又は動作グループの実行に応答して受信される、受信することと、
前記ターゲット・システムから受信されたデータのタイプとあらかじめ定義されたルールのセットとに基づいて、保存されたテンプレートのセット又はリアルタイムで生成されたテンプレートから、最良適合テンプレートのサブセットを発見することであって、最良適合テンプレートの前記サブセットが、前記ターゲット・システムを制御するために前記ターゲット・システムに書き戻すために前記ターゲット・システムにデータを送信すること、及びデータ可視化のためにターゲット・システムからデータを受信することを可能にする、発見することと、
最良適合テンプレートの前記サブセットに関連付けられた属性のセットを表示することと、
ユーザ入力に基づいて又はあらかじめ定義されたルールの前記セットからの1つ又は複数のあらかじめ定義されたルールに基づいて、前記新しい探索又は前記既存の探索上に最良適合テンプレートの前記サブセットからのターゲット・テンプレートをレンダリングすることであって、前記テンプレートが対話式又は非対話式モードでレンダリングされる、レンダリングすることと、
通知イベントを生成することであって、前記通知イベントが前記探索の変更を示す、生成することと、
前記ターゲット・テンプレートに関心があるリスナーの1つ又は複数の他のユーザ・デバイス(104-1...104-N)に前記通知イベントを送信することと、
前記新しい探索又は前記既存の探索上に前記ターゲット・テンプレートをレンダリングすることと、
前記ターゲット・テンプレートから実行モデルを抽出することによって前記ターゲット・テンプレートを実行することであって、前記実行モデルが、前記ターゲット・テンプレートの定義に記憶された動作の前記セットを表すグラフである、実行することと、
実行プランを稼働するようにとの命令を生成することであって、前記実行プランが、記憶された動作の前記セットに基づいて生成される、生成することと、
対話式又は非対話式モードで前記実行プランからの各動作を実行することと、
現在の動作の実行のためにユーザ入力が必要とされるとき、前記ユーザに、実行されるべき前記動作のための入力を提供するようにプロンプトすることであって、前記ユーザ入力をキャプチャするために対話式UI要素がレンダリングされ、前記実行プランからの各動作が、前記ユーザ入力に基づいて実行される、プロンプトすることと、
実行された前記動作に応答して前記ターゲット・システムによって生成されたデータを受信することと、
データ・ストア中でターゲット・システムから受信された前記データに基づいて、前記グラフィカル・ユーザ・インターフェース上にレンダリングされた前記テンプレート上で前記データを可視化することと
を行うための、1つ又は複数のモジュール(208)に関連付けられ、前記メモリ(206)に記憶された、プログラム命令を実行するように構成された、プラットフォーム(102)。
【請求項2】
システムの前記セットがサービス・レジストリを介して登録される、請求項1に記載のプラットフォーム(102)。
【請求項3】
前記グラフィカル・ユーザ・インターフェースが、前記ユーザ・デバイス上にメニューをレンダリングするように構成され、前記メニューが動作のサブセットを備える、請求項1に記載のプラットフォーム(102)。
【請求項4】
前記ターゲット動作のための実行プランを生成するようにさらに構成され、前記実行プランが動作のグラフであり、前記グラフの各ノードが前記ターゲット・システム上で実行されるべき動作を表す、請求項1に記載のプラットフォーム(102)。
【請求項5】
前記ターゲットシステムは、実行エンジン(218)から受信された動作パラメータが前記ターゲット動作を実行するのに十分であるかどうかを決定し、前記実行エンジンから受信された情報が、前記ターゲット動作の実行のために十分でないとき、前記ターゲット動作または前記ターゲット動作に関係する情報の欠落したパラメータのためのユーザ入力を受け付けるためのフォームの生成を可能にするために、フォームのメタ情報を生成するように構成された、請求項4に記載のプラットフォーム(102)。
【請求項6】
前記フォームのメタ情報が、フォーム・ノードを作成するために使用され、前記フォーム・ノードが探索適合であり、前記フォーム・ノードに対応する探索ノードが、新しい探索又は前記既存の/保存された探索に関連付けられた現在の探索に追加される、請求項5に記載のプラットフォーム(102)。
【請求項7】
前記ターゲット・システムが、前記グラフィカル・ユーザ・インターフェースを介してユーザ入力フォームをレンダリングするようにとの命令を前記ユーザ・デバイスに送るように構成され、前記ユーザ入力フォームが、前記フォームのメタ情報に基づいて生成され、前記ユーザ入力フォームが、変更イベントを受信すると生成される、請求項6に記載のプラットフォーム(102)。
【請求項8】
前記ユーザ入力フォームから受信されたユーザ入力が分析され、前記ユーザ入力フォーム上の前記ユーザ入力が前記ターゲット・システムに関連付けられた動作に対応するとき、実行要求が前記ターゲット・システムに転送され、前記ユーザ入力フォーム上の前記ユーザ入力が他のシステムに関連付けられた動作に対応するとき、前記実行要求が前記他のシステムに転送される、請求項7に記載のプラットフォーム(102)。
【請求項9】
前記ターゲット・システムは、前記情報/前記ユーザから受信された前記ユーザ入力が十分であるとき、前記ターゲット動作を実行するように構成された、請求項8に記載のプラットフォーム(102)。
【請求項10】
前記ターゲット・システムによって生成された前記新しいデータの前記タイプを受信し、新しいデータが前記ターゲット動作の実行時に生成されるとき、宛先データ・コンテナを決定するようにさらに構成された、請求項9に記載のプラットフォーム(102)。
【請求項11】
前記新しいデータのための前記宛先データ・コンテナを定義すること、或いは
既存のデータ・コンテナが再使用されると識別され、次いで、前記既存のデータ・コンテナが前記宛先データ・コンテナとして割り当てられたとき、探索チェーン又はユーザ構成に基づいて、前記データが追加されるか又は交換され得るデータ・ストアのデータ・コンテナを識別することを行うようにさらに構成された、請求項10に記載のプラットフォーム(102)。
【請求項12】
データ・ストア(222)の前記宛先データ・コンテナの識別情報とともに、要求を前記ターゲット・システムに送るようにさらに構成され、前記ターゲット・システムが、前記新しいデータを前記データ・ストア(222)の前記宛先データ・コンテナにルーティングするように構成され、前記データ・ストア(222)が、前記ターゲット・システムによって提供された前記新しいデータを記憶し、宛先コンテナの変更に対応する変更イベントを発行するように構成された、請求項11に記載のプラットフォーム(102)。
【請求項13】
前記ターゲット動作の実行に基づいて前記ターゲット・システム上で動作のチェーンを実行するようにさらに構成され、動作の前記チェーンが前記ターゲット動作の実行中又はその後に実行される、請求項9に記載のプラットフォーム(102)。
【請求項14】
あらかじめ定義された基準に基づいて、保存されたテンプレートの前記セット又はリアルタイムで生成された前記テンプレートから最良適合テンプレートの前記サブセットをランク付けするためのステップをさらに含み、前記あらかじめ定義された基準が、最良の成果、ポピュラリティ、関係性、クリエータ、探索のタイプ、又は予想される実行時間を備え、前記リアルタイムで生成されたテンプレートが、AI及び機械学習を使用して生成される、請求項1に記載のプラットフォーム(102)。
【請求項15】
テンプレート・リポジトリが、保存されたテンプレートの前記セットを維持するように構成され、保存されたテンプレートの前記セットが、前記ユーザによって作成された1つ又は複数のテンプレートと、前記プラットフォームの他のユーザによって発行された1つ又は複数のテンプレートと、1つ又は複数のシステム生成テンプレートとを備える、請求項1に記載のプラットフォーム(102)。
【請求項16】
前記1つ又は複数のシステム生成テンプレートが、ユーザによって提供された明示的フィードバックの分析に基づいて生成され、システム生成テンプレートが、あらかじめ定義されたルールの前記セットに基づいて生成されたテンプレートであり、あらかじめ定義されたルールの前記セットが、ユーザの挙動からキャプチャされた暗黙的フィードバックを備え、前記ユーザの挙動が、ユーザの使用パターンと、いくつかの可視化又はデータによりユーザによって費やされた時間と、前記データに対してユーザによって実施された算出とから導出される、請求項15に記載のプラットフォーム(102)。
【請求項17】
あらかじめ定義されたルールの前記セットが、ユーザのデフォルト・テンプレートと、ユーザ/チーム/団体によって最も頻繁に使用されるものと、使用の寿命と、前記ユーザによって最も最近使用されたものと、ユーザの使用履歴、ロケーション、役割に基づく最も関連するものと、ターゲット・システムから受信された前記データのタイプ及び構造とを備える、請求項1に記載のプラットフォーム(102)。
【請求項18】
テンプレートの対話式及び非対話式実行及びレンダリングのための方法であって、前記方法は、
プロセッサ(202)によって、外部システム及びデータベースのセット(110)との接続を確立するためのステップと、
前記プロセッサ(202)によって、グラフィカル・ユーザ・インターフェースを介して新しい探索をレンダリングするか又は既存の探索をレンダリングするためのステップと、
前記プロセッサ(202)によって、コンテキスト情報に基づいて外部システム及びデータベースの前記セット(110)からシステムのサブセットを識別するためのステップであって、前記コンテキスト情報はユーザーによって選択された視覚要素に基づいて決定され、前記視覚要素は、既存の探索または保存された探索に存在する要素を示す、識別するためのステップと、
前記プロセッサ(202)によって、前記コンテキスト情報に基づいてシステムの前記サブセットに関連付けられた動作/動作グループのセットを表示するためのステップと、
前記プロセッサ(202)によって、ユーザによって選択されたターゲット動作/動作グループに関連付けられたターゲット・システムを識別するためのステップと、
前記プロセッサ(202)によって、前記ターゲット・システムにターゲット動作/動作グループ実行要求を送信するためのステップであって、前記ターゲット動作/動作グループが、前記ターゲット・システムを制御するか、又は、ユーザ入力をキャプチャし、前記ユーザ入力に基づいて前記ターゲット・システムを制御するために読取り動作及び書込み動作のうちの1つを実施するために、読取り動作、書込み動作のうちの1つに関連付けられた、送信するためのステップと、
前記プロセッサ(202)によって、前記ターゲット・システムからデータを受信するためのステップであって、前記データが、前記ターゲット・システムを介した前記動作又は動作グループの実行に応答して受信される、受信するためのステップと、
前記プロセッサ(202)によって、前記ターゲット・システムから受信されたデータのタイプとあらかじめ定義されたルールのセットとに基づいて、保存されたテンプレートのセット又はリアルタイムで生成されたテンプレートから、最良適合テンプレートのサブセットを発見するためのステップであって、最良適合テンプレートの前記サブセットが、前記ターゲット・システムを制御するために前記ターゲット・システムに書き戻すために前記ターゲット・システムにデータを送信すること、及びデータ可視化のために前記ターゲット・システムからデータを受信することを可能にする、発見するためのステップと、
前記プロセッサ(202)によって、最良適合テンプレートの前記サブセットに関連付けられた属性のセットを表示するためのステップと、
前記プロセッサ(202)によって、ユーザ入力に基づいて又はあらかじめ定義されたルールの前記セットからの1つ又は複数のあらかじめ定義されたルールに基づいて、前記新しい探索又は前記既存の探索上に最良適合テンプレートの前記サブセットからのターゲット・テンプレートをレンダリングするためのステップであって、前記テンプレートが対話式又は非対話式モードでレンダリングされる、レンダリングするためのステップと、
前記プロセッサ(202)によって、通知イベントを生成するためのステップであって、前記通知イベントが前記探索の変更を示す、生成するためのステップと、
前記プロセッサ(202)によって、前記ターゲット・テンプレートに関心があるリスナーの1つ又は複数の他のユーザ・デバイス(104-1...104-N)に前記通知イベントを送信するためのステップと、
前記プロセッサ(202)によって、前記新しい探索又は前記既存の探索上に前記ターゲット・テンプレートをレンダリングするためのステップと、
前記プロセッサ(202)によって、前記ターゲット・テンプレートから実行モデルを抽出することによって前記ターゲット・テンプレートを実行するためのステップであって、前記実行モデルが、前記ターゲット・テンプレートの定義に記憶された動作の前記セットを表すグラフである、実行するためのステップと、
前記プロセッサ(202)によって、実行プランを稼働するようにとの命令を生成するためのステップであって、前記実行プランが、記憶された動作の前記セットに基づいて生成される、生成するためのステップと、
前記プロセッサ(202)によって、対話式又は非対話式モードで前記実行プランからの各動作を実行するためのステップと、
前記プロセッサ(202)によって、現在の動作の実行のためにユーザ入力が必要とされるとき、前記ユーザに、実行されるべき前記動作のための入力を提供するようにプロンプトするためのステップであって、前記ユーザ入力をキャプチャするために対話式UI要素がレンダリングされ、前記実行プランからの各動作が、前記ユーザ入力に基づいて実行される、プロンプトするためのステップと、
前記プロセッサ(202)によって、実行された前記動作に応答して前記ターゲット・システムによって生成されたデータを受信するためのステップと、
前記プロセッサ(202)によって、データ・ストア中でターゲット・システムから受信された前記データに基づいて、前記グラフィカル・ユーザ・インターフェース上にレンダリングされた前記テンプレート上で前記データを可視化するためのステップと
を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、その開示の全体が参照により本明細書に組み込まれる、2018年1月9日に出願されたインド仮出願第201711031962号の優先権を主張する。
【0002】
本開示は、一般に、複数のシステムにわたる制御及びデータ探索の自動化を可能にするためのテンプレートの対話式(interactive)及び非対話式(non-interactive)実行及びレンダリングの分野に関する。
【背景技術】
【0003】
現今では、情報技術(IT:Information Technology)の分野における発展とともに、たいていの団体は、重要な情報を含んでいる複数の異種システムを有する。これらのシステムは、大部分はサイロにおいて動作し、機械によって又は人間によって生成される情報を有し得る。その結果、これらのシステムのユーザは、これらのシステムにわたって情報を閲覧するためにアプリケーションを切り替えなければならず、これは、非効率性及びより低い生産性を生じる。
【0004】
たとえば、大きい団体では、データ分析及び探索能力を有しない、使用中のいくつかのレガシー・システムがある。これにより、そのようなレガシー・システムにおいてデータを可視化し、そのデータに対して分析を実施することが困難になる。さらに、これらのレガシー・システムに関連付けられたデータベースからデータを抽出することは、冗長で時間がかかる作業である。
【0005】
いくつかのシナリオでは、あるシステムによってキャプチャされたデータは、団体における別のシステムによってキャプチャされたデータと相関され得ない。その結果、大きい団体に関連付けられた分離されたシステムのセットからキャプチャされたデータに関して見識を得て、分析を実施することが、極めて困難になる。
【発明の概要】
【0006】
本発明の概要は、対話式及び非対話式モードでの複数のシステムにわたる制御及びデータ探索の自動化を可能にするために、テンプレートを実行及びレンダリングするためのプラットフォーム及び方法に関係する態様を導入するために提供され、それらの態様は、発明を実施するための形態において以下でさらに説明される。本発明の概要は、請求される開示の本質的な特徴を識別するものではなく、請求される開示の範囲を決定又は限定することにおいて使用されるものでもない。
【0007】
一実施例では、テンプレートの対話式及び非対話式実行及びレンダリングのためのプラットフォームが開示される。本プラットフォームは、メモリと、メモリに結合されたプロセッサとを備える。プロセッサは、1つ又は複数のモジュールに関連付けられ、メモリに記憶された、プログラム命令を実行するように構成される。一実施例では、プロセッサは、システムのセットとの接続を確立するための、メモリに記憶されたプログラム命令を実行し得る。さらに、プロセッサは、ユーザ入力に基づいてグラフィカル・ユーザ・インターフェースを介して新しい探索をレンダリングするか又は既存の探索をレンダリングするための、メモリに記憶されたプログラム命令を実行し得る。さらに、プロセッサは、コンテキスト情報に基づいてシステムのセットからのシステムのサブセットを識別するための、メモリに記憶されたプログラム命令を実行し得る。さらに、プロセッサは、コンテキスト情報に基づいてシステムのサブセットに関連付けられた動作/動作グループのセットを表示するための、メモリに記憶されたプログラム命令を実行し得る。さらに、プロセッサは、ユーザによって選択されたターゲット動作/動作グループに関連付けられたターゲット・システムを識別するための、メモリに記憶されたプログラム命令を実行し得る。さらに、プロセッサは、ターゲット・システムにターゲット動作/動作グループ実行要求を送信するための、メモリに記憶されたプログラム命令を実行し得、ターゲット動作/動作グループは、ターゲット・システムを制御するか、又は、ユーザ入力をキャプチャし、ユーザ入力に基づいてターゲット・システムを制御するために読取り動作及び書込み動作のうちの1つを実施するために、読取り動作、書込み動作のうちの1つに関連付けられる。さらに、プロセッサは、ターゲット・システムからデータを受信するための、メモリに記憶されたプログラム命令を実行し得、データは、ターゲット・システムを介した動作又は動作グループの実行に応答して受信される。さらに、プロセッサは、ターゲット・システムから受信されたデータのタイプとあらかじめ定義されたルールのセットとに基づいて、保存されたテンプレートのセット又はリアルタイムで生成されたテンプレートから、最良適合テンプレート(best fit template)のサブセットを発見するための、メモリに記憶されたプログラム命令を実行し得、最良適合テンプレートのサブセットは、ターゲット・システムを制御するためにターゲット・システムに書き戻すためにターゲット・システムにデータを送信すること、及びデータ可視化のためにターゲット・システムからデータを受信することを可能にする。さらに、プロセッサは、通知イベントを生成するための、メモリに記憶されたプログラム命令を実行し得、通知イベントは探索の変更を示す。さらに、プロセッサは、ターゲット・テンプレートに関心がある1つ又は複数のリスナーに通知イベントを送信するための、メモリに記憶されたプログラム命令を実行し得る。さらに、プロセッサは、新しい探索又は既存の探索上にターゲット・テンプレートをレンダリングするための、メモリに記憶されたプログラム命令を実行し得る。さらに、プロセッサは、ターゲット・テンプレートから実行モデルを抽出することによってターゲット・テンプレートを実行するための、メモリに記憶されたプログラム命令を実行し得、実行モデルは、ターゲット・テンプレートの定義に記憶された動作のセットを表すグラフである。さらに、プロセッサは、実行プランを稼働するようにとの命令を生成するための、メモリに記憶されたプログラム命令を実行し得、実行プランは、記憶された動作のセットに基づいて生成される。さらに、プロセッサは、対話式又は非対話式モードで実行プランからの各動作を実行するための、メモリに記憶されたプログラム命令を実行し得る。さらに、プロセッサは、現在の動作の実行のためにユーザ入力が必要とされるとき、ユーザに、実行されるべき上記動作のための入力を提供するようにプロンプトするための、メモリに記憶されたプログラム命令を実行し得、ユーザ入力をキャプチャするために対話式UI要素がレンダリングされ、実行プランからの各動作は、ユーザ提供入力に基づいて実行される。さらに、プロセッサは、実行された動作に応答してターゲット・システムによって生成されたデータを受信するための、メモリに記憶されたプログラム命令を実行し得る。さらに、プロセッサは、データ・ストア中でターゲット・システムから受信されたデータに基づいて、GUI上にレンダリングされたテンプレート上でデータを可視化するための、メモリに記憶されたプログラム命令を実行し得る。
【0008】
一実施例では、テンプレートの対話式及び非対話式実行及びレンダリングのための方法が開示される。本方法は、システムのセットとの接続を確立するためのステップを含む。本方法は、ユーザ入力に基づいてグラフィカル・ユーザ・インターフェースを介して新しい探索をレンダリングするか又は既存の探索をレンダリングするためのステップをさらに含む。本方法は、コンテキスト情報に基づいてシステムのセットからシステムのサブセットを識別するためのステップをさらに含む。本方法は、コンテキスト情報に基づいてシステムのサブセットに関連付けられた動作/動作グループのセットを表示するためのステップをさらに含む。本方法は、ユーザによって選択されたターゲット動作/動作グループに関連付けられたターゲット・システムを識別するためのステップをさらに含む。本方法は、ターゲット・システムにターゲット動作/動作グループ実行要求を送信するためのステップをさらに含み、ターゲット動作/動作グループは、ターゲット・システムを制御するか、又は、ユーザ入力をキャプチャし、キャプチャされたユーザ入力に基づいてターゲット・システムを制御するために読取り動作及び書込み動作のうちの1つを実施するために、読取り動作、書込み動作のうちの1つに関連付けられる。本方法は、ターゲット・システムからデータを受信するためのステップをさらに含み、データは、ターゲット・システムを介した動作又は動作グループの実行に応答して受信される。本方法は、ターゲット・システムから受信されたデータのタイプとあらかじめ定義されたルールのセットとに基づいて、保存されたテンプレートのセット又はリアルタイムで生成されたテンプレートから、最良適合テンプレートのサブセットを発見するためのステップをさらに含み、最良適合テンプレートのサブセットは、ターゲット・システムを制御するためにターゲット・システムに書き戻すためにターゲット・システムにデータを送信すること、及びデータ可視化のためにターゲット・システムからデータを受信することを可能にする。本方法は、通知イベントを生成するためのステップをさらに含み、通知イベントは探索の変更を示す。本方法は、ターゲット・テンプレートに関心がある1つ又は複数のリスナーに通知イベントを送信するためのステップをさらに含む。本方法は、新しい探索又は既存の探索上にターゲット・テンプレートをレンダリングするためのステップをさらに含む。本方法は、ターゲット・テンプレートから実行モデルを抽出することによってターゲット・テンプレートを実行するためのステップをさらに含み、実行モデルは、ターゲット・テンプレートの定義に記憶された動作のセットを表すグラフである。本方法は、実行プランを稼働するようにとの命令を生成するためのステップをさらに含み、実行プランは、記憶された動作のセットに基づいて生成される。本方法は、対話式又は非対話式モードで実行プランからの各動作を実行するためのステップをさらに含む。本方法は、現在の動作の実行のためにユーザ入力が必要とされるとき、ユーザに、実行されるべき上記動作のための入力を提供するようにプロンプトするためのステップをさらに含み、ユーザ入力をキャプチャするために対話式UI要素がレンダリングされ、実行プランからの各動作は、ユーザ提供入力に基づいて実行される。本方法は、実行された動作に応答してターゲット・システムによって生成されたデータを受信するためのステップをさらに含む。本方法は、データ・ストア中でターゲット・システムから受信されたデータに基づいて、GUI上にレンダリングされたテンプレート上でデータを可視化するためのステップをさらに含む。
【0009】
一実施例では、テンプレートの対話式及び非対話式実行及びレンダリングのためのコンピュータ・プログラムをその上に具備したコンピュータ・プログラム製品が開示される。本コンピュータ・プログラム製品は、システムのセットとの接続を確立するためのプログラム・コードを備える。本コンピュータ・プログラム製品は、ユーザ入力に基づいてグラフィカル・ユーザ・インターフェースを介して新しい探索をレンダリングするか又は既存の探索をレンダリングするためのプログラム・コードを備える。本コンピュータ・プログラム製品は、コンテキスト情報に基づいてシステムのセットからシステムのサブセットを識別するためのプログラム・コードを備える。本コンピュータ・プログラム製品は、コンテキスト情報に基づいてシステムのサブセットに関連付けられた動作/動作グループのセットを表示するためのプログラム・コードを備える。本コンピュータ・プログラム製品は、ユーザによって選択されたターゲット動作/動作グループに関連付けられたターゲット・システムを識別するためのプログラム・コードを備える。本コンピュータ・プログラム製品は、ターゲット・システムにターゲット動作/動作グループ実行要求を送信するためのプログラム・コードを備え、ターゲット動作/動作グループは、ターゲット・システムを制御するか、又は、ユーザ入力をキャプチャし、キャプチャされたユーザ入力に基づいてターゲット・システムを制御するために読取り動作及び書込み動作のうちの1つを実施するために、読取り動作、書込み動作のうちの1つに関連付けられる。本コンピュータ・プログラム製品は、ターゲット・システムからデータを受信するためのプログラム・コードを備え、データは、ターゲット・システムを介した動作又は動作グループの実行に応答して受信される。本コンピュータ・プログラム製品は、ターゲット・システムから受信されたデータのタイプとあらかじめ定義されたルールのセットとに基づいて、保存されたテンプレートのセット又はリアルタイムで生成されたテンプレートから、最良適合テンプレートのサブセットを発見するためのプログラム・コードを備え、最良適合テンプレートのサブセットは、ターゲット・システムを制御するためにターゲット・システムに書き戻すためにターゲット・システムにデータを送信すること、及びデータ可視化のためにターゲット・システムからデータを受信することを可能にする。本コンピュータ・プログラム製品は、通知イベントを生成するためのプログラム・コードを備え、通知イベントは探索の変更を示す。本コンピュータ・プログラム製品は、ターゲット・テンプレートに関心がある1つ又は複数のリスナーに通知イベントを送信するためのプログラム・コードを備える。本コンピュータ・プログラム製品は、新しい探索又は既存の探索上にターゲット・テンプレートをレンダリングするためのプログラム・コードを備える。本コンピュータ・プログラム製品は、ターゲット・テンプレートから実行モデルを抽出することによってターゲット・テンプレートを実行するためのプログラム・コードを備え、実行モデルは、ターゲット・テンプレートの定義に記憶された動作のセットを表すグラフである。本コンピュータ・プログラム製品は、実行プランを稼働するようにとの命令を生成するためのプログラム・コードを備え、実行プランは、記憶された動作のセットに基づいて生成される。本コンピュータ・プログラム製品は、対話式又は非対話式モードで実行プランからの各動作を実行するためのプログラム・コードを備える。本コンピュータ・プログラム製品は、現在の動作の実行のためにユーザ入力が必要とされるとき、ユーザに、実行されるべき上記動作のための入力を提供するようにプロンプトするためのプログラム・コードを備え、ユーザ入力をキャプチャするために対話式UI要素がレンダリングされ、実行プランからの各動作は、ユーザ提供入力に基づいて実行される。本コンピュータ・プログラム製品は、実行された動作に応答してターゲット・システムによって生成されたデータを受信するためのプログラム・コードを備える。本コンピュータ・プログラム製品は、データ・ストア中でターゲット・システムから受信されたデータに基づいて、GUI上にレンダリングされたテンプレート上でデータを可視化するためのプログラム・コードを備える。
【0010】
発明を実施するための形態は、添付図を参照しながら説明される。図では、参照番号の(1つ又は複数の)最左桁は、参照番号が最初に現れる図を識別する。同様の特徴及び構成要素を指すために図面全体にわたって同じ番号が使用される。
【図面の簡単な説明】
【0011】
【
図1】本開示の一実施例による、テンプレートの対話式及び非対話式実行及びレンダリングのためのプラットフォームのネットワーク実装形態を示す図である。
【
図2】本開示の一実施例による、プラットフォームを示す図である。
【
図3】
図3(1)~(2)は、本開示の一実施例による、1つ又は複数のシステムを制御し、プラットフォームに接続された1つ又は複数のシステムにわたってデータを探索するためのブロック図である。
【
図4】本開示の一実施例による、複数のシステムにわたる制御及びデータ探索の自動化を可能にするための視覚及び実行テンプレートを推奨するためのブロック図である。
【
図5】
図5(1)~(3)は、本開示の一実施例による、テンプレートの対話式及び非対話式実行及びレンダリングのためのブロック図である。
【発明を実施するための形態】
【0012】
一実施例では、テンプレートの対話式及び非対話式実行及びレンダリングのために構成されたプラットフォームが示される。最初に、プラットフォームは、ユーザ・デバイスからアクセスされ得る。一実施例では、プラットフォームは、システムのセットとの接続を確立するように構成され得る。システムのセットは、プラットフォームに関連付けられたサービス・レジストリを介して登録され得る。さらに、プラットフォームは、ユーザから受信された命令に基づいてユーザ・デバイスのグラフィカル・ユーザ・インターフェースを介して新しい探索を開始するか又は既存の/保存された探索をレンダリングするように構成され得る。さらに、プラットフォームは、探索においてユーザによって選択された視覚要素、又はユーザによって提供された入力に基づいて、ターゲット・システムのセットからターゲット・システムのサブセットを識別するように構成され得る。さらに、プラットフォームは、ユーザによって選択された視覚要素又はユーザによって提供された入力に基づいて、グラフィカル・ユーザ・インターフェースを介してメニューを表示するように構成され得る。メニューは、システムのサブセットに関連付けられた動作/動作グループのセットを表示するように構成され得る。さらに、プラットフォームは、メニューからユーザによって選択された動作/動作グループに関連付けられたターゲット・システムを識別するように構成され得る。さらに、プラットフォームは、ターゲット・システムに動作/動作グループ実行要求を送信するように構成され得、動作/動作グループは、ターゲット・システムを制御するか、又は、ユーザ入力をキャプチャし、キャプチャされたユーザ入力に基づいてターゲット・システムを制御するために読取り又は書込み動作を実施するために、読取り動作、書込み動作のうちの1つに関連付けられる。さらに、プラットフォームは、ターゲット・システムからデータを受信するように構成され得、データは、ターゲット・システムを介した動作又は動作グループの実行に応答して受信される。さらに、プラットフォームは、ターゲット・システムから受信されたデータのタイプとあらかじめ定義されたルールのセットとに基づいて、保存されたテンプレートのセット又はリアルタイムで生成されたテンプレートから、最良適合テンプレートのサブセットを発見するように構成され得、最良適合テンプレートのサブセットは、ターゲット・システムを制御するためにターゲット・システムに書き戻すためにターゲット・システムにデータを送信すること、並びにデータ可視化及び分析のためにターゲット・システムからデータを受信することを可能にする。
【0013】
一実施例では、プラットフォームは、対話式及び非対話式モードでの複数のシステムにわたる制御及びデータ探索の自動化を可能にするために、テンプレートを実行及びレンダリングするためにさらに構成される。最初に、プラットフォームは、マッチするテンプレートのセットがヌル・セットであるかどうかを決定するように構成される。マッチするテンプレートのセットがヌル・セットでない場合、プラットフォームは、いくつかのテンプレートをビュー・パネルに追加し、いくつかを探索に直接追加するように構成される。一実施例では、テンプレートを、ビュー・パネルに追加するか又は探索において直接追加するという決定は、様々な属性、たとえば、発見されたテンプレートに関するデータのタイプ、ポピュラリティ、関係性(relevance)、環境変数、ユーザ構成、又はユーザ選定に基づいて行われ得る。一実施例では、ビュー・パネルに追加されたテンプレートは、GUI上にレンダリングされ得る。さらに、プラットフォームは、テンプレートの1つ又は複数のメタ特性、たとえば、クリエータ、パブリッシャー、含まれているデータのタイプ、可視化のタイプ、ポピュラリティ、関係性、予想される実行/完了時間、動作、動作入力パラメータなどに基づいて、ビュー・パネル中のテンプレートのリストをランク付けするように構成される。たとえば、ユーザの選定、ユーザ構成、環境変数など、追加の特性が、ランク付けするために使用され得る。一実施例では、ビュー・パネルは、ビュー・パネル中のテンプレートのいくつかの属性を表示して、それらの概要をユーザに提供し得る。一実施例では、ユーザは、GUIを通して、テンプレートを探索に追加し、そのテンプレートを実行し、レンダリングすることを選定し得る。一実施例では、テンプレートは、システムによって自動的に追加され、実行され、レンダリングされ得る。一実施例では、テンプレートは、対話式又は非対話式実行のために探索において追加され得る。プラットフォームは、ユーザ要求又はシステム主導要求のいずれかに基づいてテンプレートを探索に追加するように構成される。さらに、プラットフォームは、テンプレートから実行モデルを抽出することによってそのテンプレートを実行するように構成される。実行モデルは、テンプレートの定義に記憶された動作探索のグラフ表現である。実行モデルから実行プランが生成される。プラットフォームは、実行プランを稼働するようにとの命令を生成するようにさらに構成される。システムは、命令に基づいて対話式又は非対話式モードで実行プランを稼働するように構成される。実行プランを実行しながら、実行プラン中の各動作について、実行エンジンは、ユーザ入力が必要とされるか否かを決定するように構成される。ユーザ入力が必要とされ、プランが対話式モードで稼働している場合、コマンドがGUIに送られる。GUIは、ユーザに、実行されるべき動作のための入力を提供するようにプロンプトする。システムは、ユーザ入力をキャプチャするために、ウィザードをレンダリングするか又は対話式UI要素を使用するようにさらに構成される。さらに、ユーザ提供入力を用いて現在の動作を実行するために、ユーザ提供入力が実行エンジンに送られる。システムは、実行エンジンによって実行された動作に応答してターゲット・システムによって生成されたデータを受信するようにさらに構成される。データ・ストア中でターゲット・システムからデータを受信すると、システムは、GUI上にレンダリングされたテンプレート上でデータを可視化するように構成される。
【0014】
対話式及び非対話式モードでの複数のシステムにわたる制御及びデータ探索の自動化を可能にするために、テンプレートを実行及びレンダリングするための説明されたプラットフォームの態様は、任意の数の異なるコンピューティング・システム、環境、及び/又は構成において実装され得るが、実施例は、以下の例示的なプラットフォームのコンテキストで説明される。
【0015】
次に
図1を参照すると、テンプレートの対話式及び非対話式実行及びレンダリングのためのプラットフォーム102のネットワーク実装形態100が開示される。本開示は、プラットフォーム102がサーバ上で実装されることを考慮して説明されるが、プラットフォーム102が、ラップトップ・コンピュータ、デスクトップ・コンピュータ、ノートブック、ワークステーション、メインフレーム・コンピュータ、サーバ、サーバ・クラスタ、分散型サーバ、ネットワーク・サーバなど、様々なコンピューティング・システムにおいても実装され得ることを理解されたい。一実装形態では、プラットフォーム102は、クラウドベース環境において実装され得る。プラットフォーム102が、以下でユーザ・デバイス104と総称される1つ又は複数のユーザ・デバイス104-1、104-2...104-N、又はユーザ・デバイス104上に常駐するアプリケーションを通して複数のユーザによってアクセスされ得ることを理解されよう。ユーザ・デバイス104の実例は、限定はしないが、ポータブル・コンピュータ、携帯情報端末、ハンドヘルド・デバイス、及びワークステーションを含み得る。ユーザ・デバイス104は、第1のネットワーク106を通してプラットフォーム102に通信可能に結合される。さらに、プラットフォーム102は、第2のネットワーク112を通して外部システム及びデータベースのセット110に接続される。一実施例では、外部システム及びデータベースのセット110からの各システムは、データを収集し、処理し、維持するように構成され得る。一実施例では、外部システム及びデータベースのセット110からの各システムは、コネクタ108を通してプラットフォームに接続され得る。各コネクタは、1つ又は複数のシステムをプラットフォーム102に接続するように構成される。システム110がプラットフォーム102に接続されると、ユーザは、これらの外部システム及びデータベース110を制御するか、又はこれらのシステムにわたってデータを探索し得る。一実施例では、コネクタ108は、コネクタ108の構成に基づいて複数のシステムに接続するように構成されたコネクタ108であり得る。
【0016】
一実装形態では、第1のネットワーク106及び第2のネットワーク112は、ワイヤレス・ネットワーク、ワイヤード・ネットワーク又はそれらの組合せであり得る。第1のネットワーク106及び第2のネットワーク112は、イントラネット、ローカル・エリア・ネットワーク(LAN:local area network)、ワイド・エリア・ネットワーク(WAN:wide area network)、インターネットなど、異なるタイプのネットワークのうちの1つとして実装され得る。第1のネットワーク106及び第2のネットワーク112は、専用ネットワーク又は共有ネットワークのいずれかであり得る。共有ネットワークは、互いに通信するために、様々なプロトコル、たとえば、ハイパーテキスト転送プロトコル(HTTP:Hypertext Transfer Protocol)、伝送制御プロトコル/インターネット・プロトコル(TCP/IP:Transmission Control Protocol/Internet Protocol)、ワイヤレス・アプリケーション・プロトコル(WAP:Wireless Application Protocol)などを使用する異なるタイプのネットワークの関連付けを表す。さらに、第1のネットワーク106及び第2のネットワーク112は、ルータ、ブリッジ、サーバ、コンピューティング・デバイス、記憶デバイスなどを含む、様々なネットワーク・デバイスを含み得る。プラットフォーム102は、外部システム及びデータベースのセット110からの1つ又は複数のシステムから受信されたデータを使用してデータ分析及び可視化を実施するようにさらに構成され得る。テンプレートの対話式及び非対話式実行及びレンダリングのためのプラットフォーム102の働きは、
図2を参照しながらさらに説明される。
【0017】
次に
図2を参照すると、本開示の一実施例によるプラットフォーム102が示されている。一実施例では、プラットフォーム102は、少なくとも1つのプロセッサ202と、入出力(I/O:input/output)インターフェース204と、メモリ206とを使用して実装され得る。少なくとも1つのプロセッサ202は、1つ又は複数のマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号プロセッサ、中央処理ユニット、状態機械、論理回路、及び/又は動作命令に基づいて信号を操作する任意のデバイスとして実装され得る。能力の中でも、少なくとも1つのプロセッサ202は、メモリ206に記憶されたコンピュータ可読命令をフェッチ及び実行するように構成される。
【0018】
I/Oインターフェース204は、様々なソフトウェア及びハードウェア・インターフェース、たとえば、ウェブ・インターフェース、グラフィカル・ユーザ・インターフェースなどを含み得る。I/Oインターフェース204は、プラットフォーム102が、直接、又はクライアント・デバイス104を通してユーザと対話することを可能にし得る。さらに、I/Oインターフェース204は、プラットフォーム102が、ウェブ・サーバ及び外部データ・サーバ並びに外部システム及びデータベースのセット110など、他のコンピューティング・デバイスと通信することを可能にし得る。I/Oインターフェース204は、ワイヤード・ネットワーク、たとえば、LAN、ケーブルなどと、WLAN、セルラー、又は衛星などのワイヤレス・ネットワークとを含む、多種多様なネットワーク及びプロトコル・タイプ内の複数の通信を可能にすることができる。I/Oインターフェース204は、いくつかのデバイスを、互いに又は別のサーバに接続するための1つ又は複数のポートを含み得る。
【0019】
メモリ206は、たとえば、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)及びダイナミック・ランダム・アクセス・メモリ(DRAM:dynamic random access memory)など、揮発性メモリ、並びに/又は、読取り専用メモリ(ROM:read only memory)、消去可能プログラマブルROM、フラッシュ・メモリ、ハード・ディスク、光ディスク、及び磁気テープなど、不揮発性メモリを含む、当技術分野において知られている任意のコンピュータ可読媒体を含み得る。メモリ206は、モジュール208とデータ210とを含み得る。
【0020】
モジュール208は、特定のタスク、機能を実施するか、又は特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。一実装形態では、モジュール208は、動作クライアント212と、レンダリング・エンジン214と、実行マネージャ216と、実行エンジン218と、サービス・リポジトリ220と、データ・ストア222と、探索クライアント224と、探索モジュール226と、変換サービス・モジュール228と、結果セット・ストア230と、テンプレート発見エンジン232と、テンプレート・リポジトリ234と、他のモジュール236とを含み得る。他のモジュール236は、プラットフォーム102のアプリケーション及び機能を補足するプログラム又はコード化命令を含み得る。
【0021】
データ210は、特に、モジュール208のうちの1つ又は複数によって処理され、受信され、生成されたデータを記憶するためのリポジトリの働きをする。データ210はまた、データ・ストア222と他のデータ240とを含み得る。
一実施例では、データ・ストア222は、外部システム及びデータベースのセット110によって生成されたデータを記憶するように構成され得る。
一実施例では、データ・ストア222は、1つ又は複数のモジュール208によって生成されたデータを記憶するように構成され得る。一実施例では、他のデータ240は、モジュール208中の1つ又は複数のモジュールの実行の結果として生成されたデータを含み得る。一実施例では、他のデータ240は、他のモジュール236中の1つ又は複数のモジュールの実行の結果として生成されたデータを含み得る。
【0022】
一実装形態では、プラットフォーム102は、第2のネットワーク112を通して(システム110と呼ばれることもある)外部システム及びデータベースのセット110と接続するように構成され得る。ユーザは、プラットフォーム102を使用するためにI/Oインターフェース204を使用して登録し得る。ユーザが登録されると、ユーザは、I/Oインターフェース204を介してプラットフォーム102にアクセスするためにクライアント・デバイス104を使用し得る。ユーザが登録し、プラットフォームに接続されると、ユーザは、プラットフォーム上で実装された異なるモジュールにアクセスし、1つ又は複数の動作及び式を実施し得る。
【0023】
最初に、ユーザ・デバイス104上のグラフィカル・ユーザ・インターフェース(GUI:Graphical User Interface)は、ユーザがI/Oインターフェース204を使用してプラットフォーム102と通信することを可能にし得る。I/Oインターフェース204は、ユーザが新しい探索を作成するか又は既存の/保存された探索を開くことを可能にし得る。新しい探索は、新しいフォルダ、古いフォルダ、既存のファイル、又は新しいファイル、ウェブ・ブラウザ、分析報告などに対応し得る。一実施例では、既存の/保存された探索も、ウェブ・ブラウザ又はオフライン・ツールを介してユーザによって始動される分析動作/新しい分析動作に対応し得る。
【0024】
ユーザは、GUIを通してプラットフォーム102と対話し、新しい探索又は既存の/保存された探索における要素を選択し得る。要素は、グラフ、テキスト、テキスト・ボックス、コマンド・ボタン、バックグラウンド、又は既存の/保存された探索上に存在する任意の他の視覚要素に対応し得る。一実施例では、ユーザに関連付けられたコンテキスト情報は、ユーザによって選択された要素又はユーザによって提供された入力に基づいて決定される。
【0025】
動作クライアント214は、コンテキスト情報を受信するように構成される。コンテキスト情報は、探索においてユーザによって選択された視覚要素、又はユーザによって提供された入力に基づいて決定される。ユーザは、探索においてキーワードを入力することによって入力を提供し得る。
【0026】
サービス・レジストリ220は、コンテキスト情報に基づいてシステムのサブセット及び動作のサブセットを識別するために、コンテキスト情報に基づいて外部システム及びデータベースのセット110からの各システムに関連付けられた動作のセットを発見するように構成され得る。動作のサブセットは、個別動作及び/又は複合動作を備え得る。一実施例では、複合動作は、ターゲット・システムによって提供される1つ又は複数の動作を含んでいることがある動作のグループであり得る。
【0027】
GUIは、ユーザ・デバイス204上にメニューをレンダリングし得る。メニューは、動作のサブセットを備え得る。一実施例では、メニューは、ユーザの選択のための動作のサブセットを伴うドロップダウンの形式で表示され得る。
【0028】
ユーザは、メニューにおいて表示された動作のサブセットからターゲット動作を選定し得る。一実施例では、ユーザは、ターゲット動作としてメニューにおいて表示された動作のサブセットから2つ以上の動作/複合動作を選定し得る。
【0029】
ターゲット動作が選択されると、動作クライアント212は、ユーザによって選択されたターゲット動作をハンドリングし、ターゲット動作を実行するようにとの要求を実行マネージャ216に送信するように構成される。
【0030】
実行マネージャ216は、ターゲット動作のための実行プランを生成するように構成される。実行プランは、ターゲット動作が実行されるべきであるシーケンスと、ターゲット動作の実行のために必要とされる情報とを表し得る。実行プランは、動作及び式のグラフであり、グラフの各ノードが、ターゲット・システム上で実行されるべき動作を表す。
【0031】
実行プランは、動作及びそのコンテキスト・ベース・パラメータをターゲット・システムのコネクタ108に送ることによって、実行エンジン218によって実行され得る。実行プランを実行しながら、実行エンジン218は、並行して(すなわち同時に)又は連続的に(すなわち交互に)ターゲット動作をターゲット・システムに送り得る。
【0032】
ターゲット・システムは、実行エンジン218から受信された動作パラメータが、ターゲット動作を実行するのに十分であるかどうかを決定するように構成され得る。
【0033】
実行エンジン218から受信された動作パラメータが、ターゲット動作の実行のために十分でない場合、ターゲット・システムは、フォームのメタ情報を生成するように構成され得る。フォームのメタ情報は、実行エンジン218に送られる。
フォームのメタ情報は、ターゲット動作又はターゲット動作に関係する情報の消失したパラメータのためのユーザ入力を受け付けるためのフォームの生成を可能にし得る。
【0034】
実行エンジン218は、フォーム・ノードを作成するためにフォームのメタ情報を使用し得る。フォーム・ノードは探索適合(exploration compatible)である(すなわち、フォーム・ノードは、探索において配置され、レンダリングされ得る)。フォーム・ノードが生成されると、フォーム・ノードは探索モジュール226に送られる。探索モジュール226は、探索ノードを、新しい探索又は既存の/保存された探索に関連付けられた現在の探索に追加するように構成される。
【0035】
レンダリング・エンジン214は、探索モジュール226から変更イベントを受信するように構成される。さらに、レンダリング・エンジン214は、GUIを介してユーザ入力フォームをレンダリングするようにとの命令をユーザ・デバイス104に送るように構成され得る。ユーザ入力フォームはメタ情報に基づいて生成される。
【0036】
GUI204は、ユーザ入力フォームをレンダリングするように構成される。さらに、ユーザは、ユーザ入力フォーム中のすべての必要なフィールドを埋め得、コマンド・ボタンのセットからのコマンド・ボタンをクリックする。各コマンド・ボタンは、システムのセットからの異なるシステム又はターゲット・システムに関連付けられた異なる動作に関連付けられ得る。
【0037】
クリックされたコマンド・ボタンが任意のターゲット・システムの別の動作に関連付けられる場合、実行は、ターゲット動作と同じやり方で別の動作をハンドリングするために、動作クライアント212にもう一度転送される。
【0038】
クリックされたコマンド・ボタンが異なるシステムの別の動作に関連付けられない場合、動作クライアント212は、ユーザ入力フォームから受信されたユーザ入力を収集し、これらのユーザ入力を実行エンジン218に転送するように構成される。ユーザ入力は、しきい値パラメータ、あらかじめ定義された基準、又は概して分析目的で使用される任意の他の情報の形態のものであり得る。
【0039】
実行エンジン218は、ユーザから受信されたユーザ入力を、コネクタ108を通してターゲット・システムに送信するように構成される。
【0040】
実行エンジン218から受信された情報/ユーザ入力が十分である場合、ターゲット・システムは、ターゲット動作を実行するように構成され得る。ターゲット動作の実行に基づいて、ターゲット・システムは、新しいデータを生成することも生成しないこともある。
【0041】
新しいデータが生成された場合、実行エンジン218は、ターゲット・システムによって生成された新しいデータのタイプを受信するように構成される。実行エンジン218は、実行ハンドラ238に、宛先データ・コンテナを決定することを要求するように構成される。たとえば、新しいデータのタイプは、構造データ、非構造化データ、分析データ、視覚データなどであり得る。
【0042】
実行ハンドラ238は、新しいデータのための宛先データ・コンテナを定義するように構成される。実行ハンドラ238は、探索チェーン又はユーザ構成に基づいて、このデータが追加/交換され得るデータ・ストア222のデータ・コンテナを見つけるように構成され得る。既存のデータ・コンテナが再使用されると識別された場合、既存のデータ・コンテナは宛先データ・コンテナとして割り当てられる。別の実施例では、実行ハンドラ238は、このタイプのデータのための新しい空のデータ・コンテナを作成するようにとの要求をデータ・ストア222に送るように構成される。新たに作成されたデータ・コンテナは、宛先データ・コンテナになる。
【0043】
実行ハンドラ238は、データ・ストア222の宛先データ・コンテナの識別情報とともに、要求をターゲット・システム110に送るように構成される。ターゲット・システムは、新しいデータをデータ・ストア222の宛先コンテナにルーティングするように構成される。データ・ストア222は、ターゲット・システムによって提供されたデータを記憶するように構成される。コネクタ108は、データが宛先コンテナ中で変更されたというイベントを発行し、その結果、このデータ変更イベントのすべてのサブスクライバ/リスナーがそれに応じて行動することができるように構成される。一実施例では、モジュールは、これらのイベントを識別し、それに応じて、新たに生成されたデータを使用してGUI上で様々な可視化を作成するように構成され得る。別の実施例では、イベントは、宛先コンテナ中の変更の大きさをデータ・ストア222に記憶されたあらかじめ定義された変更しきい値と比較することによって識別され得る。コネクタ108が、イベントに関連付けられた1つ又は複数の外部システム及びデータベース110に通知するように構成され得ることに留意されたい。さらに、モジュールは、現在生成されたデータ又は前に生成されたデータに基づいて式を計算することによって新しいデータを生成するように構成され得る。さらに、モジュールは、この変更イベントに基づいて動作の依存チェーン(dependent chain)を更新するために動作のチェーンを実行するように構成され得る。動作及び式のチェーンは、ターゲット動作の実行中又はその後に実行される。
【0044】
一実施例では、新しいデータが、ユーザ選択動作/動作グループに応答して生成された場合、実行エンジン218は、ターゲット・システムによって生成された新しいデータのタイプを受信するように構成される。実行エンジン218は、実行ハンドラ238に、宛先データ・コンテナを決定することを要求するように構成される。
【0045】
さらに、実行ハンドラ238は、任意の既存のデータ・コンテナが、新たに生成されたデータを付加するか又は交換するために再使用され得るかどうかを決定するように構成される。実行ハンドラ238は、探索チェーン、ユーザの選定、又は構成などに基づいてこれを決定するように構成され得る。既存のデータ・コンテナが再使用され得ない場合、実行ハンドラ238は、テンプレート発見エンジン232に、受信されたデータ・セット・タイプのための最良適合テンプレートをサーチすることを要求する。
【0046】
さらに、テンプレート発見エンジン232は、新しいデータに関連付けられた「データのタイプ」を表すのに好適なすべての最良適合テンプレートを識別するためにテンプレート・リポジトリ234を照会するように構成される。一実施例では、最良適合テンプレートのサブセットは、ターゲット・システムから受信されたデータのタイプとあらかじめ定義されたルールのセットとに基づいて、保存されたテンプレートのセット又はリアルタイムで生成されたテンプレートから、実行ハンドラによって発見される。最良適合テンプレートのサブセットは、ターゲット・システムを制御するためにターゲット・システムに書き戻すためにターゲット・システムにデータを送信すること、並びにデータ可視化及び分析のためにターゲット・システムからデータを受信することを可能にする。
【0047】
一実施例では、テンプレート・リポジトリ234は、現在のユーザのために適用可能なマッチするテンプレート/最良適合テンプレートのサブセットを発見するために、単独で又は組み合わせて、「データのタイプ」、「ユーザ入力」、「環境変数」のいずれかに基づいて、テンプレート・リポジトリ234に保存されたテンプレートのセットを分析するように構成される。一実施例では、テンプレートのセットは、以下を備え得る。
- ユーザによって作成されたテンプレート
- 他のユーザによってユーザに発行されたテンプレート
- (ユーザの過去の挙動又は他のシステムパラメータに基づいて)ユーザのためにシステムによって推奨されたテンプレート。言い換えれば、テンプレート・リポジトリは、保存されたテンプレートのセットを維持するように構成される。保存されたテンプレートのセットは、ユーザによって作成された1つ又は複数のテンプレートと、プラットフォームの他のユーザによって発行された1つ又は複数のテンプレートと、1つ又は複数のシステム生成テンプレートとを備える。システム生成テンプレートは、ユーザによって提供された明示的フィードバックの分析に基づいて生成されるか、又は、あらかじめ定義されたルールのセットに基づいて生成されたテンプレートである。あらかじめ定義されたルールのセットは、ユーザの挙動からキャプチャされた暗黙的フィードバックを備え、ユーザの挙動は、ユーザの使用パターンと、いくつかの可視化又はデータによりユーザによって費やされた時間と、データに対してユーザによって実施された算出とから導出される。
あらかじめ定義されたルールのセットは、限定はしないが、ユーザのデフォルト・テンプレートと、ユーザ/チーム/団体によって最も頻繁に使用されるものと、使用の寿命と、ユーザによって最も最近使用されたものと、ユーザの使用履歴、ロケーション、役割に基づく最も関連するものと、ターゲット・システムから受信されたデータのタイプ及び構造とを含む、パラメータのセットをも備え得る。一実装形態では、あらかじめ定義されたルールのセットは、ユーザの挙動からキャプチャされた暗黙的フィードバックとパラメータのセットとに対して機械学習技法を使用することによって生成され得る。
【0048】
さらに、実行ハンドラ238は、マッチするテンプレート/最良適合テンプレートのセットと、データのタイプ、ユーザ入力、環境変数又はそれらの組合せに対応するデフォルト可視化とを受信するように構成される。さらに、実行ハンドラは、現在の探索においてこれらのテンプレートを追加するようにとの要求を探索モジュール226に送るように構成される。さらに、実行ハンドラ238は、あらかじめ定義された基準に基づいて、保存されたテンプレートのセット又はリアルタイムで生成されたテンプレートから最良適合テンプレートのサブセットをランク付けするように構成され、あらかじめ定義された基準は、最良の成果、ポピュラリティ、関係性、クリエータ、探索のタイプ、又は予想される実行時間を備え、リアルタイム・テンプレートは、AI及び機械学習を使用して生成される。
【0049】
探索モジュール226は、GUI上でのテンプレートの実行の目的で、受信されたテンプレート及びデフォルト可視化をビュー・パネル又は探索ページに追加するように構成される。一実施例では、テンプレートは、信頼性スコア、ポピュラリティ、関係性、予想される実行時間などのような、テンプレートのメタ属性に基づいて、探索ページに追加され得る。ユーザは、ビュー・パネル上でマッチするテンプレートのセットと様々な可視化とを閲覧し得る。
【0050】
さらに、探索モジュール226は、すべての発見されたテンプレート及びデフォルト可視化をグラフィカル・ユーザ・インターフェース(GUI)(すなわち、ユーザ・スクリーン/ビュー・パネル及び/又は探索ページ)に追加するように構成される。テンプレートをビュー・パネル及び/又は探索ページに追加することに加えて、探索モジュール226は、探索変更イベントを引き起こすように構成される。
【0051】
さらに、探索変更イベントをトリガすると、レンダリング・エンジン214は、探索変更イベント通知を受信するように構成される。さらに、レンダリング・エンジン214は、ビュー・パネルをリフレッシュするようにとのコマンドをGUIに送る。さらに、GUIは、新たに追加されたテンプレート及びデフォルト可視化がビュー・パネル中で可視になるようにリフレッシュされる。
さらに、得られたテンプレート・リストは、テンプレートの1つ又は複数のメタ特性、たとえば、所有者、パブリッシャー、含まれているデータのタイプ、可視化のタイプ、ポピュラリティ、関係性、予想される実行/完了時間、動作、動作入力パラメータなどに基づいて、レンダリング・エンジン214によってランク付けされ得る。ビュー・パネルはまた、ランク付けする間に、追加の特性、たとえばユーザの選定、ユーザ構成、環境変数、機械学習アルゴリズムなどを使用し得る。
【0052】
GUIは、ユーザが、ビュー・パネル中にリストされているすべてのテンプレートの概要を得るのを助けるために、ビュー・パネル中のテンプレートのいくつかの属性を表示するように構成され得る。さらに、これらの属性は、ユーザが、後の段階における探索においてどのテンプレートを追加し、実行し、レンダリングすべきかを選定するのを助け得る。
【0053】
さらに、ユーザは、探索上でテンプレートを追加し、実行し、レンダリングするために、GUIと対話し得る。一実施例では、ユーザは、対話式又は非対話式モードでテンプレートを実行することを選定し得る。一実施例では、発見されたテンプレートのセットからのテンプレートのサブセットは、同様に、ユーザ介入なしに追加され、実行され、レンダリングされ得る。さらに、テンプレートを探索に直接追加するという決定は、データのタイプ、ポピュラリティ、関係性、環境変数、ユーザ構成、ユーザ選定又はそれらの組合せに基づき得る。
【0054】
さらに、探索クライアント224は、テンプレートを探索に追加するようにとのコマンドをGUIから受信し得る。さらに、GUIは、テンプレートの実行のモード、対話式又は非対話式を、探索クライアントに送る。
【0055】
さらに、探索クライアント224は、テンプレートをビュー・パネルから探索ページに移動するようにとのコマンドを探索モジュール226にフォワーディングし得る。
【0056】
一実施例では、探索モジュール226は、ビュー・パネルからテンプレートを除去し、そのテンプレートを1つ又は複数の要求された探索ページに追加するように構成される。
【0057】
さらに、探索モジュール226は、通知イベントに関心があるすべてのリスナーがそのイベントを受信することができるように探索の変更を告知するために、通知イベントを引き起こすように構成され得る。一実施例では、リスナーは、リアルタイム・リフレッシュ及び探索の実行のために他のユーザと共有される、この探索の他のインスタンスであり得る。
【0058】
さらに、レンダリング・エンジン214は、探索変更イベントを検出し、GUIに探索ページ上にテンプレートをレンダリングすることを要求するように構成される。さらに、GUIは、最初にテンプレートのレイアウトをレンダリングすることによって、テンプレートをレンダリングし得る。さらに、テンプレート内に含まれているすべての可視化もレンダリングされ得る。
【0059】
さらに、探索モジュール226は、テンプレートから実行モデルを抽出するように構成される。実行モデルは、テンプレート作成時にテンプレートに記憶された動作のグラフである。一実施例では、実行モデルは、テンプレート作成時にテンプレートに記憶された式のグラフであり得る。
【0060】
さらに、探索モジュール226は、抽出された実行モデルを実行するようにとの要求を実行ハンドラ238に送るように構成される。
【0061】
実行ハンドラ238は、この実行モデルを使用して実行プランを構築し得る。実行プランは動作のグラフである。グラフの各ノードは、ターゲット・システム110上で実行されるべき動作を表す。さらに、実行ハンドラ238は、プラン実行を開始するために、構築された実行プランを実行エンジン218にサブミットする。
【0062】
実行エンジン218は、実行プランを実行し得る。さらに、実行のために実行プランの各動作をターゲット・システムに送る前に、実行エンジン218は、現在の動作を実行するためにユーザ入力が必要とされるかどうかを決定し得る。
【0063】
ユーザ入力が必要とされる場合、実行エンジン218は、ユーザに入力について要求するようにとのコマンドをレンダリング・エンジン214に送り得る。さらに、要求は、GUIによって受信される。
【0064】
さらに、レンダリング・エンジン214は、入力を受信するためにGUIを介してユーザにプロンプトし得る。レンダリング・エンジン214は、ユーザ入力を対話式に求めるためにGUIを介してウィザードをレンダリングし得る。
【0065】
さらに、ユーザ提供入力は、GUIによってキャプチャされ、動作クライアント212を介して実行エンジン218に送られ得る。
【0066】
さらに、実行エンジン218は、受信された動作パラメータを使用して、実行プランの現在の動作を実行するようにとのコマンドをターゲット・システムに送り得る。
【0067】
一実施例では、ターゲット・システムは、実行された動作の結果としていくらかのデータが利用可能であるとき、動作実行要求に対する応答を提供し得る。
【0068】
実行ハンドラ238は、利用可能なデータをデータ・ストア222の指定されたデータ・コンテナにルーティングするようにとの要求をターゲット・システムに送り得る。さらに、ターゲット・システム110は、動作によって生成されたデータを、実行ハンドラ238を介してデータ・ストア222中の指定された宛先データ・コンテナにルーティングし得る。実行ハンドラ238は、データ・ストア222上の負荷を低減するために一時的キャッシュとして働き得る。
【0069】
さらに、データが、実行ハンドラ238を介して、データ・ストア222にターゲット・システムによってルーティングされるとき、実行ハンドラ238又はデータ・ストア222によってデータ変更イベントが引き起こされ得る。
【0070】
データ変更イベントが生成されると、レンダリング・エンジン214は、生成されたデータに関連付けられた、レンダリングされたテンプレートの可視化をリフレッシュするようにとのコマンドをGUIに送り得る。
【0071】
さらに、GUIは、可視化に関連付けられたデータ変換定義をレンダリング・エンジン214に送り得る。さらに、レンダリング・クライアントは、そのコマンドを変換サービス・モジュール228に送る。
【0072】
さらに、変換サービス・モジュール214は、データ変換定義からデータ変換クエリを作成し得る。さらに、データ変換クエリは、データ・ストア222に送られる。
【0073】
さらに、データ・ストア222は、提供されたデータ変換クエリにマッチする、データ・ストア222に記憶されたデータを、変換サービス・モジュール214に返し得る。
さらに、変換サービス・モジュール214は、受信されたデータを結果セット・ストア230に記憶する。
【0074】
一実施例では、結果セット・ストア230は、データ変更通知を引き起こし得る。さらに、データ変更通知は、レンダリング・エンジン214によって受信される。
【0075】
さらに、レンダリング・エンジン214は、結果セット・ストア230に関連付けられた可視化をリフレッシュするようにとのコマンドをGUIに送り得る。1つ又は複数のシステムを制御し、プラットフォーム102に接続された1つ又は複数のシステムにわたってデータを探索するプロセスは、
図3のブロック図に関してさらに詳述される。
【0076】
次に
図3を参照すると、本開示の一実施例による、1つ又は複数のシステムを制御し、プラットフォーム102に接続された1つ又は複数の外部システム及びデータベース110にわたってデータを探索するための方法300が示されている。方法300は、コンピュータ実行可能命令の一般的なコンテキストで説明され得る。概して、コンピュータ実行可能命令は、特定の機能を実施するか、又は特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造、プロシージャ、モジュール、機能などを含むことができる。方法300はまた、通信ネットワークを通してリンクされるリモート処理デバイスによって機能が実施される分散コンピューティング環境において実践され得る。分散コンピューティング環境では、コンピュータ実行可能命令は、メモリ記憶デバイスを含む、ローカル・コンピュータ記憶媒体とリモート・コンピュータ記憶媒体の両方中にあり得る。
【0077】
方法300が説明される順序は、限定として解釈されるものではなく、任意の数の説明される方法ブロックは、方法300又は代替方法を実装するために任意の順序で組み合わせられ得る。さらに、個別ブロックは、本明細書で説明される本開示の趣旨及び範囲から逸脱することなく、方法300から削除され得る。さらに、方法は、任意の好適なハードウェア、ソフトウェア、ファームウェア、又はそれらの組合せで実装され得る。しかしながら、説明を簡単にするために、以下で説明される実施例では、方法300は、上記で説明されたプラットフォーム102において実装されると見なされ得る。
【0078】
一実施例では、ステップ302において、ユーザ・デバイス104上のグラフィカル・ユーザ・インターフェース(GUI)は、ユーザがI/Oインターフェース204を使用してプラットフォーム102と通信することを可能にし得る。I/Oインターフェース204は、ユーザが新しい探索を作成するか又は既存の/保存された探索を開くことを可能にし得る。新しい探索は、新しいフォルダ、古いフォルダ、既存のファイル、又は新しいファイル、ウェブ・ブラウザ、分析報告などに対応し得る。一実施例では、既存の/保存された探索も、ウェブ・ブラウザ又はオフライン・ツールを介してユーザによって始動される分析動作/新しい分析動作に対応し得る。
【0079】
ステップ304において、ユーザは、GUIを通してプラットフォーム102と対話し、新しい探索又は既存の/保存された探索における要素を選択し得る。要素は、グラフ、テキスト、テキスト・ボックス、コマンド・ボタン、バックグラウンド、又は既存の/保存された探索上に存在する任意の他の視覚要素に対応し得る。一実施例では、ユーザに関連付けられたコンテキスト情報は、ユーザによって選択された要素又はユーザによって提供された入力に基づいて決定される。
【0080】
ステップ306において、動作クライアント214は、コンテキスト情報を受信するように構成される。コンテキスト情報は、探索においてユーザによって選択された視覚要素、又はユーザによって提供された入力に基づいて決定される。ユーザは、探索においてキーワードを入力することによって入力を提供し得る。
【0081】
ステップ308において、サービス・レジストリ220は、コンテキスト情報に基づいてシステムのサブセット及び動作のサブセットを識別するために、コンテキスト情報に基づいて外部システム及びデータベースのセット110からの各システムに関連付けられた動作のセットを発見するように構成され得る。
動作のサブセットは、個別動作及び/又は複合動作を備え得る。一実施例では、複合動作は、ターゲット・システムによって提供される1つ又は複数の動作を含んでいることがある動作のグループであり得る。
【0082】
ステップ310において、GUIは、ユーザ・デバイス204上にメニューをレンダリングし得る。メニューは、動作のサブセットを備え得る。一実施例では、メニューは、ユーザの選択のための動作のサブセットを伴うドロップダウンの形式で表示され得る。
【0083】
ステップ312において、ユーザは、メニューにおいて表示された動作のサブセットからターゲット動作を選定し得る。一実施例では、ユーザは、ターゲット動作としてメニューにおいて表示された動作のサブセットから2つ以上の動作/複合動作を選定し得る。
【0084】
ステップ314において、ターゲット動作が選択されると、動作クライアント212は、ユーザによって選択されたターゲット動作をハンドリングし、ターゲット動作を実行するようにとの要求を実行マネージャ216に送信するように構成される。
【0085】
ステップ316において、実行マネージャ216は、ターゲット動作のための実行プランを生成するように構成される。実行プランは、ターゲット動作が実行されるべきであるシーケンスと、ターゲット動作の実行のために必要とされる情報とを表し得る。実行プランは、動作のグラフであり、グラフの各ノードが、ターゲット・システム110上で実行されるべき動作を表す。
【0086】
ステップ318において、実行プランは、動作及びそのコンテキスト・ベース・パラメータをターゲット・システムのコネクタに送ることによって、実行エンジン218によって実行され得る。実行プランを実行しながら、実行エンジン218は、並行して(すなわち同時に)又は連続的に(すなわち交互に)ターゲット動作をターゲット・システムに送り得る。
【0087】
ステップ320において、ターゲット・システムは、実行エンジン218から受信された動作パラメータが、ターゲット動作を実行するのに十分であるかどうかを決定するように構成され得る。
【0088】
ステップ322において、実行エンジン218から受信された動作パラメータが、ターゲット動作の実行のために十分でない場合、ターゲット・システムは、フォームのメタ情報を生成するように構成され得る。フォームのメタ情報は、実行エンジン218に送られる。
フォームのメタ情報は、ターゲット動作又はターゲット動作に関係する情報の消失したパラメータのためのユーザ入力を受け付けるためのフォームの生成を可能にし得る。
【0089】
ステップ324において、実行エンジン218は、フォーム・ノードを作成するためにフォームのメタ情報を使用し得る。フォーム・ノードは探索適合である(すなわち、フォーム・ノードは、探索において配置され、レンダリングされ得る)。フォーム・ノードが生成されると、フォーム・ノードは探索モジュール226に送られる。探索モジュール226は、探索ノードを、新しい探索又は既存の/保存された探索に関連付けられた現在の探索に追加するように構成される。
【0090】
ステップ326において、レンダリング・エンジン214は、探索モジュール226から変更イベントを受信するように構成される。さらに、レンダリング・エンジン214は、GUIを介してユーザ入力フォームをレンダリングするようにとの命令をユーザ・デバイス104に送るように構成され得る。ユーザ入力フォームはメタ情報に基づいて生成される。
【0091】
ステップ328において、GUI204は、ユーザ入力フォームをレンダリングするように構成される。さらに、ユーザは、ユーザ入力フォーム中のすべての必要なフィールドを埋め得、コマンド・ボタンのセットからのコマンド・ボタンをクリックする。各コマンド・ボタンは、システムのセットからの異なるシステム又はターゲット・システムに関連付けられた異なる動作に関連付けられ得る。
【0092】
ステップ330において、クリックされたコマンド・ボタンが任意のターゲット・システムの別の動作に関連付けられる場合、実行は、ステップ314にもう一度転送される。
【0093】
ステップ332において、クリックされたコマンド・ボタンが異なるシステムの別の動作に関連付けられない場合、動作クライアント212は、ユーザ入力フォームから受信されたユーザ入力を収集し、これらのユーザ入力を実行エンジン218に転送するように構成される。
ユーザ入力は、しきい値パラメータ、あらかじめ定義された基準、又は概して分析目的で使用される任意の他の情報の形態のものであり得る。
【0094】
ステップ334において、実行エンジン218は、ユーザから受信されたユーザ入力を、コネクタ108を通してターゲット・システムに送信するように構成される。
【0095】
ステップ336において、実行エンジン218から受信された情報/ユーザ入力が十分である場合、ターゲット・システムは、ターゲット動作を実行するように構成され得る。
ターゲット動作の実行に基づいて、ターゲット・システムは、新しいデータを生成することも生成しないこともある。
【0096】
ステップ338において、新しいデータが生成された場合、実行エンジン218は、ターゲット・システムによって生成された新しいデータのタイプを受信するように構成される。実行エンジン218は、実行ハンドラ238に、宛先データ・コンテナを決定することを要求するように構成される。たとえば、新しいデータのタイプは、構造データ、非構造化データ、分析データ、視覚データなどであり得る。
【0097】
ステップ340において、実行ハンドラ238は、新しいデータのための宛先データ・コンテナを定義するように構成される。実行ハンドラ238は、探索チェーン又はユーザ構成に基づいて、このデータが追加/交換され得るデータ・ストア222のデータ・コンテナを見つけるように構成され得る。既存のデータ・コンテナが再使用されると識別された場合、既存のデータ・コンテナは宛先データ・コンテナとして割り当てられる。別の実施例では、実行ハンドラ238は、このタイプのデータのための新しい空のデータ・コンテナを作成するようにとの要求をデータ・ストア222に送るように構成される。新たに作成されたデータ・コンテナは、宛先データ・コンテナになる。
【0098】
ステップ342において、実行ハンドラ238は、データ・ストア222の宛先データ・コンテナの識別情報とともに、要求をターゲット・システムに送るように構成される。ターゲット・システムは、新しいデータをデータ・ストア222の宛先コンテナにルーティングするように構成される。
データ・ストア222は、ターゲット・システムによって提供されたデータを記憶するように構成される。データ・ストア222は、データが宛先コンテナ中で変更されたというイベントを発行し、その結果、このデータ変更イベントのすべてのサブスクライバ/リスナーがそれに応じて行動することができるように構成される。一実施例では、モジュールは、これらのイベントを識別し、それに応じて、新たに生成されたデータを使用してGUI上で様々な可視化を作成するように構成され得る。別の実施例では、イベントは、宛先コンテナ中の変更の大きさをデータ・ストア222に記憶されたあらかじめ定義された変更しきい値と比較することによって識別され得る。コネクタ108が、イベントに関連付けられた1つ又は複数の外部システム及びデータベース110に通知するように構成され得ることに留意されたい。さらに、モジュールは、現在生成されたデータ又は前に生成されたデータに基づいて式を計算することによって、さらに新しいデータを生成するように構成され得る。さらに、モジュールは、この変更イベントに基づいて動作の依存チェーンを更新するために動作のチェーンを実行するように構成され得る。複数のシステムにわたる制御及びデータ探索の自動化を可能にするための視覚及び実行テンプレートを推奨するプロセスは、
図4のブロック図を参照しながらさらに詳述される。
【0099】
次に
図4を参照すると、本開示の一実施例による、複数のシステムにわたる制御及びデータ探索の自動化を可能にするための視覚及び実行テンプレートを推奨するための方法400が示されている。方法400は、コンピュータ実行可能命令の一般的なコンテキストで説明され得る。概して、コンピュータ実行可能命令は、特定の機能を実施するか、又は特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造、プロシージャ、モジュール、機能などを含むことができる。方法400はまた、通信ネットワークを通してリンクされるリモート処理デバイスによって機能が実施される分散コンピューティング環境において実践され得る。分散コンピューティング環境では、コンピュータ実行可能命令は、メモリ記憶デバイスを含む、ローカル・コンピュータ記憶媒体とリモート・コンピュータ記憶媒体の両方中にあり得る。
【0100】
方法400が説明される順序は、限定として解釈されるものではなく、任意の数の説明される方法ブロックは、方法400又は代替方法を実装するために任意の順序で組み合わせられ得る。さらに、個別ブロックは、本明細書で説明される本開示の趣旨及び範囲から逸脱することなく、方法400から削除され得る。さらに、方法は、任意の好適なハードウェア、ソフトウェア、ファームウェア、又はそれらの組合せで実装され得る。しかしながら、説明を簡単にするために、以下で説明される実施例では、方法400は、上記で説明されたプラットフォーム102において実装されると見なされ得る。
【0101】
ステップ402において、新しいデータが、ユーザ選択動作/動作グループに応答して生成された場合、実行エンジン218は、ターゲット・システム110によって生成された新しいデータのタイプを受信するように構成される。実行エンジン218は、実行ハンドラ238に、宛先データ・コンテナを決定することを要求するように構成される。
【0102】
ステップ404において、実行ハンドラ238は、任意の既存のデータ・コンテナが、新たに生成されたデータを付加するか又は交換するために再使用され得るかどうかを決定するように構成される。実行ハンドラ238は、探索チェーン、ユーザの選定、又は構成などに基づいてこれを決定するように構成され得る。既存のデータ・コンテナが再使用され得ない場合、実行ハンドラ238は、テンプレート発見エンジン232に、受信されたデータ・セット・タイプのための最良適合テンプレートをサーチすることを要求する。
【0103】
ステップ406において、テンプレート発見エンジン232は、新しいデータに関連付けられた「データのタイプ」を表すのに好適なすべての最良適合テンプレートを識別するためにテンプレート・リポジトリ234を照会するように構成される。一実施例では、最良適合テンプレートのサブセットは、ターゲット・システムから受信されたデータのタイプとあらかじめ定義されたルールのセットとに基づいて、保存されたテンプレートのセット又はリアルタイムで生成されたテンプレートから、実行ハンドラによって発見される。最良適合テンプレートのサブセットは、ターゲット・システムを制御するためにターゲット・システムに書き戻すためにターゲット・システムにデータを送信すること、並びにデータ可視化及び分析のためにターゲット・システムからデータを受信することを可能にする。
【0104】
ステップ408において、テンプレート・リポジトリ234は、現在のユーザのために適用可能なマッチするテンプレート/最良適合テンプレートのサブセットを発見するために、単独で又は組み合わせて、「データのタイプ」、「ユーザ入力」、「環境変数」のいずれかに基づいて、テンプレート・リポジトリ234に保存されたテンプレートのセットを分析するように構成される。一実施例では、テンプレートのセットは、以下を備え得る。
- ユーザによって作成されたテンプレート
- 他のユーザによってユーザに発行されたテンプレート
- (ユーザの過去の挙動又は他のシステムパラメータに基づいて)ユーザのためにシステムによって推奨されたテンプレート。言い換えれば、テンプレート・リポジトリは、保存されたテンプレートのセットを維持するように構成される。保存されたテンプレートのセットは、ユーザによって作成された1つ又は複数のテンプレートと、プラットフォームの他のユーザによって発行された1つ又は複数のテンプレートと、1つ又は複数のシステム生成テンプレートとを備える。システム生成テンプレートは、ユーザによって提供された明示的フィードバックの分析に基づいて生成されるか、又は、あらかじめ定義されたルールのセットに基づいて生成されたテンプレートである。あらかじめ定義されたルールのセットは、ユーザの挙動からキャプチャされた暗黙的フィードバックを備え、ユーザの挙動は、ユーザの使用パターンと、いくつかの可視化又はデータによりユーザによって費やされた時間と、データに対してユーザによって実施された算出とから導出される。あらかじめ定義されたルールのセットは、限定はしないが、ユーザのデフォルト・テンプレートと、ユーザ/チーム/団体によって最も頻繁に使用されるものと、使用の寿命と、ユーザによって最も最近使用されたものと、ユーザの使用履歴、ロケーション、役割に基づく最も関連するものと、ターゲット・システムから受信されたデータのタイプ及び構造とを含む、パラメータのセットをも備え得る。一実装形態では、あらかじめ定義されたルールのセットは、ユーザの挙動からキャプチャされた暗黙的フィードバックとパラメータのセットとに対して機械学習技法を使用することによって生成され得る。
【0105】
ステップ410において、実行ハンドラ238は、マッチするテンプレート/最良適合テンプレートのセットと、データのタイプ、ユーザ入力、環境変数又はそれらの組合せに対応するデフォルト可視化とを受信するように構成される。
さらに、実行ハンドラ238は、現在の探索においてこれらのテンプレートを追加するようにとの要求を探索モジュール226に送るように構成される。さらに、実行ハンドラ238は、あらかじめ定義された基準に基づいて、保存されたテンプレートのセット又はリアルタイムで生成されたテンプレートから最良適合テンプレートのサブセットをランク付けするように構成され、あらかじめ定義された基準は、最良の成果、ポピュラリティ、関係性、クリエータ、探索のタイプ、又は予想される実行時間を備え、リアルタイム・テンプレートは、AI及び機械学習を使用して生成される。
【0106】
ステップ412において、探索モジュール226は、GUI上でのテンプレートの実行の目的で、受信されたテンプレート及びデフォルト可視化をビュー・パネル又は探索ページに追加するように構成される。一実施例では、テンプレートは、信頼性スコア、ポピュラリティ、関係性、予想される実行時間などのような、テンプレートのメタ属性に基づいて、探索ページに追加され得る。ユーザは、ビュー・パネル上でマッチするテンプレートのセットと様々な可視化とを閲覧し得る。対話式及び非対話式モードでの複数のシステムにわたる制御及びデータ探索の自動化を可能にするためにテンプレートを実行及びレンダリングするプロセスは、
図5のブロック図を参照しながらさらに詳述される。
【0107】
次に
図5を参照すると、本開示の一実施例による、対話式及び非対話式モードでの複数のシステムにわたる制御及びデータ探索の自動化を可能にするためにテンプレートを実行及びレンダリングするための方法500が示されている。方法500は、コンピュータ実行可能命令の一般的なコンテキストで説明され得る。概して、コンピュータ実行可能命令は、特定の機能を実施するか、又は特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造、プロシージャ、モジュール、機能などを含むことができる。方法500はまた、通信ネットワークを通してリンクされるリモート処理デバイスによって機能が実施される分散コンピューティング環境において実践され得る。分散コンピューティング環境では、コンピュータ実行可能命令は、メモリ記憶デバイスを含む、ローカル・コンピュータ記憶媒体とリモート・コンピュータ記憶媒体の両方中にあり得る。
【0108】
方法500が説明される順序は、限定として解釈されるものではなく、任意の数の説明される方法ブロックは、方法500又は代替方法を実装するために任意の順序で組み合わせられ得る。さらに、個別ブロックは、本明細書で説明される本開示の趣旨及び範囲から逸脱することなく、方法500から削除され得る。
さらに、方法は、任意の好適なハードウェア、ソフトウェア、ファームウェア、又はそれらの組合せで実装され得る。しかしながら、説明を簡単にするために、以下で説明される実施例では、方法500は、上記で説明されたプラットフォーム102において実装されると見なされ得る。
【0109】
ステップ502において、探索モジュール226は、すべての発見されたテンプレート及びデフォルト可視化をグラフィカル・ユーザ・インターフェース(GUI)(すなわち、ユーザ・スクリーン/ビュー・パネル及び/又は探索ページ)に追加するように構成される。テンプレートをビュー・パネル及び/又は探索ページに追加することに加えて、探索モジュール226は、探索変更イベントを引き起こすように構成される。
【0110】
ステップ504において、探索変更イベントをトリガすると、レンダリング・エンジン214は、探索変更イベント通知を受信するように構成される。さらに、レンダリング・エンジン214は、ビュー・パネルをリフレッシュするようにとのコマンドをGUIに送る。さらに、GUIは、新たに追加されたテンプレート及びデフォルト可視化がビュー・パネル中で可視になるようにリフレッシュされる。さらに、得られたテンプレート・リストは、テンプレートの1つ又は複数のメタ特性、たとえば、所有者、パブリッシャー、含まれているデータのタイプ、可視化のタイプ、ポピュラリティ、関係性、予想される実行/完了時間、動作、動作入力パラメータなどに基づいて、レンダリング・エンジン214によってランク付けされ得る。ビュー・パネルはまた、ランク付けする間に、追加の特性、たとえばユーザの選定、ユーザ構成、環境変数を使用するか、又は機械学習アルゴリズムなどを使用し得る。
【0111】
ステップ506において、GUIは、ユーザが、ビュー・パネル中にリストされているすべての発見されたテンプレートの概要を得るのを助けるために、ビュー・パネル中のテンプレートのいくつかの属性を表示するように構成され得る。さらに、これらの属性は、ユーザが、後の段階における探索においてどのテンプレートを追加し、実行し、レンダリングすべきかを選定するのを助け得る。
【0112】
ステップ508において、ユーザは、探索上でテンプレートを追加し、実行し、レンダリングするために、GUIと対話し得る。一実施例では、ユーザは、対話式又は非対話式モードでテンプレートを実行することを選定し得る。一実施例では、発見されたテンプレートのセットからのテンプレートのサブセットは、同様に、ユーザ介入なしに追加され、実行され、レンダリングされ得る。さらに、テンプレートを探索に直接追加するという決定は、データのタイプ、ポピュラリティ、関係性、環境変数、ユーザ構成、ユーザ選定又はそれらの組合せに基づき得る。
【0113】
ステップ510において、探索クライアント224は、テンプレートを探索に追加するようにとのコマンドをGUIから受信し得る。さらに、GUIは、テンプレートの実行のモード、対話式又は非対話式を、探索クライアントに送る。
【0114】
ステップ512において、探索クライアント224は、テンプレートをビュー・パネルから探索ページに移動するようにとのコマンドを探索モジュール226にフォワーディングし得る。
【0115】
ステップ514において、探索モジュール226は、ビュー・パネルからテンプレートを除去し、そのテンプレートを1つ又は複数の要求された探索ページに追加するように構成される。
【0116】
ステップ516において、探索モジュール226は、通知イベントに関心があるすべてのリスナーがそのイベントを受信することができるように探索の変更を告知するために、通知イベントを引き起こすように構成され得る。一実施例では、リスナーは、他の共有ユーザ・セッションのための探索のリアルタイム・リフレッシュのために他のユーザと共有される、この探索の他のインスタンスであり得る。
【0117】
ステップ518において、レンダリング・エンジン214は、探索変更イベントを検出し、GUIに探索ページ上にテンプレートをレンダリングすることを要求するように構成される。さらに、GUIは、最初にテンプレートのレイアウトをレンダリングすることによって、テンプレートをレンダリングし得る。さらに、テンプレート内に含まれているすべての可視化もレンダリングされ得る。
【0118】
ステップ520において、探索モジュール226は、テンプレートから実行モデルを抽出するように構成される。実行モデルは、テンプレート作成時にテンプレートに記憶された動作のグラフである。一実施例では、実行モデルは、テンプレート作成時にテンプレートに記憶された式のグラフであり得る。
【0119】
ステップ522において、探索モジュール226は、抽出された実行モデルを実行するようにとの要求を実行ハンドラ238に送るように構成される。
【0120】
ステップ524において、実行ハンドラ238は、この実行モデルを使用して実行プランを構築し得る。実行プランは動作及び式のグラフである。グラフの各ノードは、ターゲット・システム110上で実行されるべき動作を表す。さらに、実行ハンドラ238は、プラン実行を開始するために、構築された実行プランを実行エンジン218にサブミットする。
【0121】
ステップ526において、実行エンジン218は、実行プランを実行し得る。さらに、実行のために実行プランの各動作をターゲット・システム110に送る前に、実行エンジン218は、現在の動作を実行するためにユーザ入力が必要とされるかどうかを決定し得る。
【0122】
ステップ528において、ユーザ入力が必要とされる場合、実行エンジン218は、ユーザに入力について要求するようにとのコマンドをレンダリング・エンジン214に送り得る。さらに、要求は、GUIによって受信される。
【0123】
ステップ530において、レンダリング・エンジン214は、入力を受信するためにGUIを介してユーザにプロンプトし得る。レンダリング・エンジン214は、ユーザ入力を求めるためにGUIを介してウィザードをレンダリングするか、又は、ユーザ入力を対話式に求めるために任意のUI要素をナビゲートすること、ハイライトすること、マークすること、点滅させること(flashing)を使用し得る。
【0124】
ステップ532において、ユーザは、いくつかの可視化の様々な視覚要素とともに、GUI上の段階的なウィザード又は対話のいずれかを通して、動作パラメータのための入力を提供し得る。
【0125】
ステップ534において、ユーザ提供入力は、GUIによってキャプチャされ、動作クライアント212を介して実行エンジン218に送られ得る。
【0126】
ステップ536において、実行エンジン218は、受信された動作パラメータを使用して、実行プランの現在の動作を実行するようにとのコマンドをターゲット・システムに送り得る。
【0127】
ステップ538において、ターゲット・システム110は、実行された動作の結果としていくらかのデータが利用可能であるとき、動作実行要求に対する応答を提供し得る。
【0128】
ステップ540において、実行ハンドラ238は、利用可能なデータをデータ・ストア222の指定されたデータ・コンテナにルーティングするようにとの要求をターゲット・システム110に送り得る。さらに、ターゲット・システムは、動作によって生成されたデータを、実行ハンドラ238を介してデータ・ストア222中の指定された宛先データ・コンテナにルーティングし得る。実行ハンドラ238は、データ・ストア222上の負荷を低減するために一時的キャッシュとして働き得る。
【0129】
ステップ542において、データが、実行ハンドラ238を介して、データ・ストア222にターゲット・システムによってルーティングされるとき、実行ハンドラ238又はデータ・ストア222によってデータ変更イベントが引き起こされ得る。
【0130】
ステップ544において、データ変更イベントが生成されると、レンダリング・エンジン214は、生成されたデータに関連付けられた、レンダリングされたテンプレートの可視化をリフレッシュするようにとのコマンドをGUIに送り得る。
【0131】
ステップ546において、GUIは、可視化に関連付けられたデータ変換定義をレンダリング・エンジン214に送り得る。さらに、レンダリング・クライアントは、そのコマンドを変換サービス・モジュール228に送る。
【0132】
ステップ548において、変換サービス・モジュール214は、データ変換定義からデータ変換クエリを作成し得る。さらに、データ変換クエリは、データ・ストア222に送られる。
【0133】
ステップ550において、データ・ストア222は、提供されたデータ変換クエリにマッチする、データ・ストア222に記憶されたデータを、変換サービス・モジュール214に返し得る。さらに、変換サービス・モジュール214は、受信されたデータを結果セット・ストア230に記憶する。
【0134】
ステップ552において、結果セット・ストア230は、データ変更通知を引き起こし得る。さらに、データ変更通知は、レンダリング・エンジン214によって受信される。
【0135】
ステップ554において、レンダリング・エンジンは、結果セット・ストア230に関連付けられた可視化をリフレッシュするようにとのコマンドをGUIに送り得る。
【0136】
対話式及び非対話式モードでの複数のシステムにわたる制御及びデータ探索の自動化を可能にするためにテンプレートを実行及びレンダリングする方法及びシステムのための実装形態が説明されたが、添付の特許請求の範囲は、必ずしも説明された特定の特徴又は方法に限定されるとは限らないことを理解されたい。むしろ、特定の特徴及び方法は、対話式及び非対話式モードでの複数のシステムにわたる制御及びデータ探索の自動化を可能にするためにテンプレートを実行及びレンダリングするための実装形態の実例として開示される。