(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-19
(45)【発行日】2022-07-27
(54)【発明の名称】1つまたは複数のシステム間で1つまたは複数のシステムを制御しデータを探索するためのプラットフォーム
(51)【国際特許分類】
G06F 11/30 20060101AFI20220720BHJP
G06F 16/903 20190101ALI20220720BHJP
G06F 16/907 20190101ALI20220720BHJP
【FI】
G06F11/30 140A
G06F11/30 151
G06F16/903
G06F16/907
(21)【出願番号】P 2020538789
(86)(22)【出願日】2019-01-09
(86)【国際出願番号】 IB2019050156
(87)【国際公開番号】W WO2019138335
(87)【国際公開日】2019-07-18
【審査請求日】2020-07-30
(31)【優先権主張番号】201711031961
(32)【優先日】2018-01-09
(33)【優先権主張国・地域又は機関】IN
(73)【特許権者】
【識別番号】520251519
【氏名又は名称】クリアトレイル テクノロジーズ プライベート リミテッド
(74)【代理人】
【識別番号】100120891
【氏名又は名称】林 一好
(74)【代理人】
【識別番号】100165157
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100205659
【氏名又は名称】齋藤 拓也
(74)【代理人】
【識別番号】100126000
【氏名又は名称】岩池 満
(74)【代理人】
【識別番号】100185269
【氏名又は名称】小菅 一弘
(72)【発明者】
【氏名】バルガヴァ アナンド
(72)【発明者】
【氏名】アグラワル サプネシュ
(72)【発明者】
【氏名】グプタ アビシェク
(72)【発明者】
【氏名】バンダリ ヴィシャル
【審査官】久保 光宏
(56)【参考文献】
【文献】特開2015-170283(JP,A)
【文献】米国特許出願公開第2011/0173680(US,A1)
【文献】米国特許出願公開第2014/0282910(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F9/46-9/54
G06F15/00
G05B15/02
G06F11/30-11/34
G06F15/16-15/177
G06F16/00-16/958
H04L41/00-69/40
CSDB(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
1つまたは複数のシステムを制御し、1つまたは複数のシステム間の
1つ以上のオペレーションを実行するためのプラットフォームにおいて、
メモリ(206)と、
前記メモリ(206)に結合され、
外部システムとデータベースのセット(110)との接続を確立し、
ユーザによって受信された命令に基づいて、グラフィカルユーザインタフェース上で、新しい探索をレンダリングするか、または既存の探索をレンダリングし、
ここで、探索モジュールは、前記新しい探索または前記既存の探索またはセーブされた探索に探索ノードを追加するように構成され、前記新しい探索または前記既存の探索には、解析オペレーションまたは前記ユーザによって開始された新しい解析オペレーションが含まれ、
コンテキスト情報に基づいて、外部システムおよびデータベースのセット(110)からシステムのサブセットを識別し、
前記コンテキスト情報に基づいて、前記システムのサブセットに関連づけられたオペレーション
またはオペレーショングループのセットを表示し、
ユーザにより選択された、ターゲットオペレーション
またはオペレーショングループに関連づけられた、ターゲットシステムを識別し、
ターゲットオペレーションまたはオペレーショングループ実行要求を、前記ターゲットシステムに送信することであって、前記ターゲットオペレーション
またはオペレーショングループは、リードオペレーション、ターゲットシステムを制御するためのライトオペレーション、あるいはキャプチャユーザ入力の1つに関連づけられ、前記
キャプチャユーザ入力に基づいて、リードオペレーションおよびライトオペレーションの1つを実行して、前記ターゲットシステムを制御する、前記メモリ(206)に記憶された、1つまたは複数のモジュール(208)に関連づけられた、プログラム命令を実行するように構成されたプロセッサ(202)と、
を備えたプラットフォーム(102)。
【請求項2】
システムのセットは、サービスレジストリ上に登録される、請求項1に記載のプラットフォーム(102)。
【請求項3】
前記コンテキスト情報は、前記探索において前記ユーザにより選択されたビジュアルエレメントに基づいて、あるいは前記ユーザにより提供された入力に基づいて決定される、請求項1に記載のプラットフォーム(102)。
【請求項4】
前記グラフィカルユーザインタフェース(GUI)は、ユーザデバイス上にメニューをレンダリングするように構成され、前記メニューは、操作のサブセットを備える、請求項1に記載のプラットフォーム(102)。
【請求項5】
前記ターゲットオペレーションの実行プランを生成するようにさらに構成され、前記実行プランは、グラフの集合であり、前記グラフの各ノードは、前記ターゲットシステム上で実行される操作を表す、請求項1に記載のプラットフォーム(102)。
【請求項6】
前記ターゲットシステムは、
実行エンジンから受信した前記情報が、前記ターゲットオペレーションを実行するのに十分でないとき、フォームのメタ情報を生成し、紛失した情報に関するユーザ入力を受け付けるためのフォームの生成を可能にするように構成される、請求項5に記載のプラットフォーム(102)。
【請求項7】
前記フォームのメタ情報は、フォームノードを作成するために使用され、前記フォームノードは、探索互換性があり、前記フォームノードに対応する探索ノードが、新しい探索または既存の
探索またはセーブされた探索に関連付けられた、現在の探索に追加される、請求項6に記載のプラットフォーム(102)。
【請求項8】
前記ターゲットシステムは、前記GUI上でユーザ入力フォームをレンダリングするための命令を、
ユーザデバイスに送信するように構成され、前記ユーザ入力フォームは、前記フォームのメタ情報に基づいて生成され、前記ユーザ入力フォームは、変更イベントを受信すると生成される、請求項7に記載のプラットフォーム(102)。
【請求項9】
前記ユーザ入力フォーム上の前記ユーザ入力が前記ターゲットシステムに関連づけられたオペレーションに対応するとき、前記ユーザ入力フォームから受信したユーザ入力は、解析され、実行
要求が前記ターゲットシステムに転送され、前記ユーザ入力フォーム上の前記ユーザ入力が、
他のシステムに関連づけられたオペレーションに対応するとき、前記実行
要求は、
前記他のシステムに転送される、請求項8に記載のプラットフォーム(102)。
【請求項10】
前記ユーザから受信した
情報またはユーザ入力が十分であるとき、前記ターゲットシステムは、前記ターゲットオペレーションを実行するように構成される、請求項9に記載のプラットフォーム(102)。
【請求項11】
前記ターゲットオペレーションを実行して新しいデータが生成されると、前記ターゲットシステムにより生成された前記新しいデータのタイプを受信し、実行ハンドラ(238)に、
宛先データコンテナを決定することを要求するように、さらに構成される、請求項10に記載のプラットフォーム(102)。
【請求項12】
データストア(222)の、前記宛先データコンテナの、アイデンティティを有する要求を、前記ターゲットシステムに送信するようにさらに構成され、前記ターゲットシステムは、
新しいデータを、前記データストア(222)の前記宛先コンテナにルーティングするように構成され、前記データストア(222)は、前記ターゲットシステムにより提供された前記データを記憶し、前記宛先データコンテナの変更に対応する変更イベントを発行するようにさらに構成される、請求項
11に記載のプラットフォーム(102)。
【請求項13】
前記ターゲットオペレーションの実行に基づいて、前記ターゲットシステム上でオペレーションの
グループを実行するようにさらに構成され、前記オペレーションの前記
グループは、前記ターゲットオペレーションの実行中に、または実行後に実行され
、オペレーションの前記グループは、リードオペレーション、
前記ターゲットシステムを制御するためのライトオペレーション、またはキャプチャユーザ入力を含む、請求項
11に記載のプラットフォーム(102)。
【請求項14】
1つまたは複数のシステムを制御し、前記1つまたは複数のシステム
間の1つ以上のオペレーションを実行するための方法において、
プロセッサ(202)により、外部システムおよびデータベース(110)のセットとの接続を確立するステップと、
前記プロセッサ(202)により、
ユーザによって受信された命令に基づいてグラフィカルユーザインタフェース上に、新しい探索をレンダリングするか、または既存の探索をレンダリングする
ステップであって、ここで、探索モジュールは、前記新しい探索または前記既存の探索またはセーブされた探索に探索ノードを追加するように構成され、前記新しい探索または前記既存の探索には、解析オペレーションまたは前記ユーザによって開始された新しい解析オペレーションが含まれる、ステップと、
前記プロセッサ(202)により、コンテキスト情報に基づいて、前記外部システムおよびデータベースのセット(110)からシステムのサブセットを識別するステップと、
前記プロセッサ(202)により、前記コンテキスト情報に基づいて前記システムのサブセットに関連づけられた、オペレーション
またはオペレーショングループのセットを表示するステップと、
前記プロセッサ(202)により、
ユーザにより選択されたターゲットオペレーション
またはオペレーショングループに関連づけられた、ターゲットシステムを識別するステップと、
前記プロセッサにより、
ターゲットオペレーションまたはオペレーショングループ実行要求を、前記ターゲットシステムに送信するステップであって、前記ターゲットオペレーション
またはオペレーショングループは、リードオペレーション、前記ターゲットシステムを制御するためのライトオペレーション、キャプチャユーザ入力の1つに関連づけられ、前記
キャプチャユーザ入力に基づいて前記ターゲットシステムを制御するためにリードオペレーションおよびライトオペレーションの1つを実行する、ステップと、
を備えた、方法。
【請求項15】
1つまたは複数のシステムを制御し、1つまたは複数のシステム間の
1つ以上のオペレーションを実行するためのコンピュータプログラムを具現化したコンピュータプログラムプロダクトにおいて、前記コンピュータプログラムプロダクトは、
外部システムおよびデータベースのセットとの接続を確立するためのプログラムコードと、
ユーザによって受信された命令に基づいてグラフィカルユーザインタフェース上に新しい探索をレンダリングするか、または既存の探索をレンダリングするための
プログラムコードであって、ここで、探索モジュールは、前記新しい探索または前記既存の探索またはセーブされた探索に探索ノードを追加するように構成され、前記新しい探索または前記既存の探索には、解析オペレーションまたは前記ユーザによって開始された新しい解析オペレーションが含まれる、プログラムコードと、
コンテキスト情報に基づいて外部システムおよびデータベースのセット(110)から、システムのサブセットを識別するためのプログラムコードと、
前記コンテキスト情報に基づいて前記システムのサブセットに関連づけられたオペレーション
またはオペレーショングループのセットを表示するためのプログラムコードと、
ユーザにより選択されたターゲットオペレーション
またはオペレーショングループに関連づけられたターゲットシステムを識別するためのプログラムコードと、
ターゲットオペレーションまたはオペレーショングループ実行要求を、前記ターゲットシステムに送信するためのプログラムコードであって、前記ターゲットオペレーション
またはオペレーショングループは、リードオペレーション、前記ターゲットシステムを制御するためのライトオペレーション、キャプチャユーザ入力の1つに関連づけられ、前記
キャプチャユーザ入力に基づいて、前記ターゲットシステムを制御するために、リードオペレーションおよびライトオペレーションの1つを実行する、プログラムコードと、を備えた、コンピュータプログラムプロダクト。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
この出願は、2018年1月9日に出願したインド仮出願第201711031961号の優先権を主張し、参照することによりその全体がここに組み込まれる。この出願は、一般にプラットフォームに接続された1つまたは複数のシステムを制御するとともに1つのまたは複数のシステム間のデータを探索することに関する。
【背景技術】
【0002】
今日、情報技術(IT)の分野における発展とともに、ほとんどの組織は、重要な情報を含む複数の異種のシステムを有する。これらのシステムは、大部分、サイロ(silos)で動作し、機械または人間により生成された情報を有する場合がある。この結果、これらのシステムのユーザは、アプリケーションを切り替えて、これらのシステムの情報を見る必要があり、非効率で生産性が悪いという結果を生ずる。
【0003】
例えば、大きな組織では、多数のレガシーシステムを使用しており、これらのシステムは、データ解析および探索能力を持たない。このため、そのようなレガシーシステムにおいて、データを視覚化し、解析することが困難になっている。さらに、これらのレガシーシステムに関連づけられたデータベースから、データを抽出することは、退屈で時間のかかる仕事である。
【0004】
いくつかのシナリオにおいて、1つのシステムによりキャプチャされた(captured)データは、組織内の他のシステムによりキャプチャされたデータと、相関関係を持つことはできない。この結果、大きな組織に関連づけられた、非接続のシステムのセットから、キャプチャされたデータについて、洞察を引出し(draw insights)、解析を行うことは非常に困難になっている。
【発明の概要】
【0005】
この発明の概要は、プラットフォームに接続された、1つまたは複数のシステム間で1つまたは複数のシステムを制御し、データを探索する方法、およびプラットフォームに関連した態様を導入するために提供される。この発明の概要は、特許請求の範囲の開示の必須の特徴を識別することを意図していないし、特許請求の範囲を決定または限定するために使用することは、意図していない。
【0006】
一実施形態において、プラットフォームに接続された、1つまたは複数のシステム間のデータ探索、および1つまたは複数のシステムを制御するプラットフォームが開示される。プラットフォームは、メモリと、メモリに結合されたプロセッサを備える。プロセッサは、メモリに記憶された、1つまたは複数のモジュールに関連付けられた、プログラム命令を実行するように構成される。一実施形態において、プロセッサは、メモリに記憶されたプログラム命令を実行して、システムのセットとの接続を確立することができる。さらに、プロセッサは、メモリに記憶されたプログラム命令を実行して、ユーザ入力に基づいて、グラフィカルユーザインタフェース上に、新しい探索または既存の探索をレンダリングすることができる。さらに、プロセッサは、メモリに記憶されたプログラム命令を実行して、コンテキスト情報に基づいてシステムのセットから、システムのサブセットを識別することができる。さらに、プロセッサは、メモリに記憶されたプログラム命令を実行して、コンテキスト情報に基づいてシステムのサブセットに関連づけられた動作のセット/動作グループを表示することができる。さらに、プロセッサは、メモリに記憶されたプログラム命令を実行して、ユーザにより選択されたターゲットオペレーション/オペレーショングループを識別することができる。さらに、プロセッサは、メモリに記憶されたプログラム命令を実行して、ターゲットオペレーション/オペレーショングループ実行要求をターゲットシステムに送信することができ、ターゲットオペレーション/オペレーショングループは、リードオペレーション、ターゲットシステムを制御するためのライトオペレーション、またはキャプチャユーザ入力の1つと関連づけられ、ユーザ入力に基づいて、リードオペレーションおよびライトオペレーションの1つを実行して、ターゲットシステムを実行することができる。
【0007】
一実施形態において、1つまたは複数のシステムを制御し、プラットフォームに接続された、1つまたは複数のシステム間のデータを探索する方法が開示される。この方法は、システムのセットとの接続を確立するステップを備える。この方法はさらに、ユーザ入力に基づいて、グラフィカルユーザインタフェース上で、新しい探索または既存の探索をレンダリングするステップをさらに備える。この方法はさらに、コンテキスト情報に基づいて、システムのセットからシステムのサブセットを識別するステップをさらに備える。この方法はさらに、コンテキスト情報に基づいて、システムにサブセットに関連づけられた、オペレーションのセット/オペレーショングループを表示するステップをさらに備える。この方法はさらに、ユーザにより選択されたターゲットオペレーション/オペレーショングループに関連づけられた、ターゲットシステムを識別するステップをさらに備える。この方法はさらに、ターゲットオペレーション/オペレーショングループ実行要求をターゲットシステムに送信するステップをさらに備え、ターゲットオペレーション/オペレーショングループは、リードオペレーション、ターゲットシステムを制御するためのライトオペレーション、あるいはキャプチャユーザ入力の1つと関連づけられ、キャプチャユーザ入力に基づいてターゲットシステムを制御するためにリードおよびライトオペレーションの1つを実行する。
【0008】
一実施形態において、1つまたは複数のシステムを制御し、1つまたは複数のシステム間のデータを探索するためのコンピュータプログラムが具現化されたコンピュータプログラムプロダクトが開示される。コンピュータプログラムプロダクトは、システムのセットとの接続を確立するためのプログラムコードを備える。コンピュータプログラムプロダクトは、ユーザ入力に基づいてグラフィカルユーザインタフェース上で、新しい探索をレンダリングする、または既存の探索をレンダリングするためのプログラムコードを備える。コンピュータプログラムプロダクトは、コンテキスト情報に基づいて、システムのセットから、システムのサブセットを識別するためのプログラムコードを備える。コンピュータプログラムプロダクトは、コンテキスト情報に基づいて、サブセットシステムに関連づけられた、オペレーションのセット/オペレーショングループを表示するためのプログラムコードを備える。コンピュータプログラムプロダクトは、ユーザにより選択されたターゲットオペレーション/オペレーショングループに関連づけられた、ターゲットシステムを識別するためのプログラムコードを備える。コンピュータプログラムプロダクトは、ターゲットオペレーション/オペレーショングループ実行要求を、ターゲットシステムに送信するためのプログラムコードを備え、ターゲットオペレーション/オペレーショングループは、リードオペレーション、ターゲットシステムを制御するためのライトオペレーション、あるいはキャプチャユーザ入力の1つと関連づけられ、キャプチャされたユーザ入力に基づいてターゲットシステムを制御するためにリードおよびライトオペレーションの1つを実行する。詳細な記述は、添付図面を参照して記載する。図において、参照符号の左端の桁は、参照番号が最初に現れる図を識別する。図面を通して、同一符号は、同様の特徴およびコンポーネントに言及する。
【図面の簡単な説明】
【0009】
【
図1】1つまたは複数のシステムを制御し、プラットフォームに接続された1つまたは複数のシステム間のデータを探索するためのプラットフォームのネットワークインプリメンテーションを示す。
【
図2】この開示の一実施形態に従う、プラットフォームを示す。
【
図3A】この発明の一実施形態に従う、1つまたは複数のシステムを制御し、プラットフォームの一実施形態に従う、プラットフォームに接続された1つまたは複数のシステム間でデータを探索するブロック図を示す。
【
図3B】この発明の一実施形態に従う、1つまたは複数のシステムを制御し、プラットフォームの一実施形態に従う、プラットフォームに接続された1つまたは複数のシステム間でデータを探索するブロック図を示す。
【発明を実施するための形態】
【0010】
一実施形態において、1つまたは複数のシステム間でデータを探索し、1つまたは複数のシステム/データソースから受信したデータに基づいて、1つまたは複数のオペレーションを実行するように構成されたプラットフォームが図示される。最初に、プラットフォームは、ユーザデバイスからアクセス可能である。一実施形態において、プラットフォームは、システムのセットとの接続を確立するように構成することができる。システムのセットは、プラットフォームに関連づけられたサービスレジストリに登録することができる。さらに、プラットフォームは、新しい探索を開始するか、または、ユーザから受信した命令に基づいて、ユーザデバイスのグラフィカルユーザインタフェース上で新しい探索を開始するか、または既存の/セーブされた探索をレンダリングするように構成することができる。さらに、プラットフォームは、探索において、ユーザにより選択された視覚エレメントに基づいてターゲットシステムのセットから、ターゲットシステムのサブセットを識別するように構成することができる。さらに、プラットフォームは、ユーザにより選択されたビジュアルエレメント、またはユーザにより提供された入力に基づいてグラフィカルユーザインタフェース上で、メニューを表示するように構成することができる。メニューは、システムのサブセットに関連づけられたオペレーションのセット/オペレーショングループを表示するように構成することができる。さらに、プラットフォームは、メニューからユーザにより選択された、オペレーション/オペレーショングループに関連づけられたターゲットシステムを識別するように構成することができる。さらに、プラットフォームは、オペレーション/オペレーショングループ実行要求をターゲットシステムに送信するように構成することができ、オペレーション/オペレーショングループは、リードオペレーション、ターゲットシステムを制御するためライトオペレーション、あるいはキャプチャユーザ入力の1つと関連づけられ、キャプチャされたユーザ入力に基づいてターゲットシステムを制御するために、リードまたはライトオペレーションを実行する。
【0011】
1つまたは複数のシステムを制御し、1つまたは複数のシステム間でデータを探索するするための記載されたプラットフォームの態様は、任意の数の異なるコンピューティングシステム、環境および/または、構成でインプリメントすることができるけれども、この実施形態は、以下の例示プラットフォームのコンテキストにおいて記載される。
【0012】
図1を参照すると、1つまたは複数のシステムを制御し、1つまたは複数のシステム間でデータを探索するプラットフォーム102のネットワークインプリメンテーション100が開示される。この開示は、プラットフォーム102がサーバ上でインプリメントされることを考慮して説明されるが、プラットフォーム102は、例えば、ラップトップコンピュータ、デスクトップコンピュータ、ノートブック、ワークステーション、メインフレームコンピュータ、サーバ、サーバクラスタ、分散サーバ、ネットワークサーバ等のような種々のコンピューティングシステにインプリメントすることができる。1インプリメントステーションにおいて、プラットフォームは、クラウドベース環境においてインプリメントすることができる。プラットフォーム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の構成に基づいて複数のシステムに接続するように構成されたコネクタであり得る。
【0013】
1つのインプリメンテーションにおいて、第1のネットワーク106と第2のネットワーク112は、ワイヤレスネットワーク、有線ネットワーク、またはそれらの組合せであり得る。第1のネットワーク106と第2のネットワーク112は、例えば、イントラネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット等のような異なる種類のネットワークの1つとしてインプリメントすることができる。第1のネットワーク106と第2のネットワーク112は、専用ネットワークまたは共有ネットワークであり得る。共有ネットワークは、互いに通信するために、例えば、ハイパーテキストトランスファープロトコル(HTTP)、トランスミッションコントロールプロトコル/インターネットプロトコル(TCP/IP)、ワイヤレスアプリケーションプロトコル(WAP)等、の種々のプロトコルを使用する、異なる種類のネットワークの関連付けを表す。さらに、第1のネットワーク106と第2のネットワーク112は、ルータ、ブリッジ、サーバ、コンピューティングデバイス、ストレージデバイス等を含む種々のネットワークデバイスを含むことができる。プラットフォーム102は、さらに、外部システムとデータベースのセット110からの、1つまたは複数のシステムから受信したデータを用いて、データ解析及び視覚化を実行するようにさらに構成することができる。1つまたは複数のデータソースから受信されたデータを処理するためのプラットフォーム102の動作は、さらに、
図2を参照して説明される。
【0014】
図2を参照すると、この開示の一実施形態に従う、プラットフォーム102が図示される。一実施形態において、プラットフォーム102は、少なくとも1つのプロセッサ202、入出力(I/O)インタフェース204およびメモリ206を用いてインプリメントすることができる。少なくとも1つのプロセッサ202は、1つまたは複数のマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタルシグナルプロセッサ、中央処理装置、ステートマシン、ロジック回路、および/または動作命令に基づいて信号を操作する任意のデバイスとしてインプリメントすることができる。他の能力において、少なくとも1つのプロセッサ202は、メモリ206に記憶されたコンピュータ可読命令をフェッチするように構成される。
【0015】
I/Oインタフェース204は、例えば、ウェブインタフェース、グラフィカルユーザインタフェース等の種々のソフトウェアおよびハードウェアインタフェースを含むことができる。I/Oインタフェース204は、プラットフォーム102が、ユーザと直接に、またはクライアントデバイス104を介して相互作用することを可能にすることができる。さらに、I/Oインタフェース204は、プラットフォーム102が、ウェブサーバのような他のコンピューティングデバイス、および外部システムとデータベース110(システム110とも呼ぶ)と通信することを可能にすることができる。I/Oインタフェース204は、例えば、LAN、ケーブル等の有線ネットワーク、およびWLAN、セルラ、または衛星のような無線ネットワークを含む種々のネットワークおよびプロトコルタイプ内の複数の通信を容易にすることができる。I/Oインタフェース204は、多数のデバイスを互いに、または他のサーバに接続するための1つまたは複数のポートを接続することができる。
【0016】
メモリ206は、例えば、スタティックランダムアクセスメモリ(SRAM)およびダイナミックランダムアクセスメモリ(DRAM)のような揮発性メモリ、および/またはリードオンリメモリ(ROM)、イレーザブルプログラマブルROM,フラッシュメモリ、ハードディスク、光ディスク、および磁気テープのような不揮発性メモリを含む、従来技術において知られる任意のコンピュータ可読媒体を含むことができる。メモリ206は、モジュール208およびデータ210を含むことができる。
【0017】
モジュール208は、特定のタスク、機能を実行する、または特定のアブストラクトデータタイプをインプリメントする、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。1つのインプリメンテーションにおいて、モジュール208は、オペレーションクライアント212、レンダリングエンジン214、実行マネージャ216、実行エンジン218、サービスレポジトリ220、データストア222、探索クライアント224、探索モジュール226、変換サービスモジュール228、結果セットストア230、テンプレートディスカバリエンジン232、テンプレートリポジトリ234、および他のモジュール236を含むことができる。他のモジュール236は、プラットフォーム102のアプリケーションと機能を補足するプログラムまたはコード化命令を含むことができる。
【0018】
とりわけ、データ210は、1つまたは複数のモジュール208により、処理され、受信され、生成されたデータを記憶するリポジトリとして機能する。データ210は、またデータストア222および他のデータ240も含むことができる。一実施形態において、データストア222は、外部システムおよびデータベースのセット110により生成されたデータを記憶するように構成することができる。一実施形態において、データストア222は、1つまたは複数のモジュール208により生成されたデータを記憶するように構成することができる。一実施形態において、他のデータ240は、モジュール群208の、1つまたは複数のモジュールの実行の結果として生成されたデータを含むことができる。一実施形態において、他のデータ240は、他のモジュール群236の、1つまたは複数のモジュールの実行の結果として生成されたデータを含むことができる。
【0019】
一つのインプリメンテーションにおいて、プラットフォームは、第2のネットワーク112を介して外部システムとデータベースのセット110と接続するように構成することができる。ユーザは、プラットフォーム102を使用するために、I/Oインタフェース204を用いて登録することができる。ユーザが登録されると、ユーザは、クライアントデバイス104を使用して、I/Oインタフェース204を介して、プラットフォーム102をアクセスすることができる。ユーザが登録され、プラットフォームに接続されると、ユーザは、プラットフォーム上にインプリメントされた異なるモジュールをアクセスして、1つまたは複数のオペレーションおよび式を実行することができる。
【0020】
初めに、ユーザデバイス104上のグラフィカルユーザインタフェース(GUI)は、ユーザがI/Oインタフェース204を用いてプラットフォーム102と通信することを可能にすることができる。I/Oインタフェース204は、ユーザが、新しい探索を作るか、または、既存の/セーブされた探索を作ることを可能にすることができる。新しい探索は、新しいフォルダ、古いフォルダ、既存のファイル、または新しいファイル、ウェブブラウザ、解析リポート等に対応させることができる。一実施形態において、既存の/セーブされた探索は、ウェブブラウザまたはオフラインツールを介して、ユーザにより指導された解析オペレーション/新しい解析オペレーションにも対応させることができる。
【0021】
ユーザは、GUIを介してプラットフォーム102と相互作用することができ、新しい探索または、既存の/セーブされた探索内のエレメントを選択することができる。エレメントは、既存の/セーブされた探索上に存在する、グラフ、テキスト、テキストボックス、コマンドボタン、バックグラウンド、または任意の他のビジュアルエレメントに対応させることができる。一実施形態において、ユーザに関連づけられたコンテキスト情報は、ユーザにより選択されたエレメント、またはユーザにより提供された入力に基づいて決定される。
【0022】
オペレーションクライアント214は、コンテキスト情報を受信するように構成される。コンテキスト情報は、探索においてユーザにより選択されたビジュアルエレメント、またはユーザにより提供された入力に基づいて決定される。ユーザは、探索においてキーワードを入力することにより入力を提供することができる。
【0023】
サービスレジストリ220は、コンテキスト情報に基づいて、外部システムおよびデータベースのセット110からの各システムに関連づけられたオペレーションのセットを発見するように構成することができる。オペレーションのサブセットは、個々のオペレーションおよび/または複合オペレーションを備えることができる。一実施形態において、複合オペレーションは、ターゲットシステムにより提供された1つまたは複数のオペレーションを含むことができる、オペレーションのグループであり得る。
【0024】
GUIは、ユーザデバイス204上にメニューをレンダリングすることができる。メニューは、オペレーションのサブセットを備えることができる。一実施形態において、メニューは、ユーザの選択に関してオペレーションのサブセットを有するドロップダウン形式で表示することができる。
【0025】
ユーザは、メニューに表示されたオペレーションのサブセットからターゲットオペレーションを選択することができる。一実施形態において、ユーザは、ターゲットオペレーションとしてメニューに表示されたオペレーションのサブセットから、2以上のオペレーション/複合オペレーションを選択することができる。
【0026】
ターゲットオペレーションが選択されると、オペレーションクライアント212は、ユーザにより選択されたターゲットオペレーションを処理し、要求を実行マネージャ216に送信して、ターゲットオペレーションを実行するように構成される。
【0027】
実行マネージャ216は、ターゲットオペレーションの実行プランを生成するように構成される。実行プランは、ターゲットオペレーションが実行されるべきシーケンス、およびターゲットオペレーションの実行に必要な情報を表すことができる。実行プランは、オペレーションおよび式のグラフであり、グラフの各ノードは、ターゲットシステム上で実行されるオペレーションを表す。
【0028】
実行プランは、オペレーションとそのコンテキストベースのパラメータを、ターゲットシステムのコネクタ108に送信することにより実行することができる。実行プランを実行しながら、実行エンジン218は、ターゲットオペレーションをターゲットシステムに、並列に(すなわち、同時に)、またはシーケンシャルに(すなわち、順次に)送信することができる。
【0029】
ターゲットシステムは、実行エンジン218から受信したオペレーションパラメータが、ターゲットオペレーションを実行するのに十分であるかどうかを判断するように構成することができる。実行エンジン218から受信したオペレーションパラメータが、ターゲットオペレーションを実行するのに十分でない場合、ターゲットシステムは、フォームのメタ情報を生成するように構成することができる。フォームのメタ情報は、実行エンジン218に送信される。フォームのメタ情報は、ターゲットオペレーションの紛失したパラメータのユーザ入力、またはターゲットオペレーションに関連した情報を受け入れるためのフォームの生成を可能する。
【0030】
実行エンジン218は、フォームのメタ情報を用いてフォームノードを作成することができる。フォームノードは、互換性のある探索である(すなわち、フォームノードは、探索において配置し、レンダリングすることができる)。フォームノードが生成されると、フォームノードは、探索モジュール226に送信される。探索モジュール226は、新しい探索または既存の/セーブされた探索に関連づけられた、現在の探索に探索ノードを追加するように構成される。
【0031】
レンダリングエンジン214は、探索モジュール226から変更イベントを受信するように構成される。さらに、レンダリングエンジン214は、GUI上でユーザ入力フォームをレンダリングするための命令をユーザデバイス104に送信するように構成することができる。ユーザ入力フォームは、メタ情報に基づいて生成される。
【0032】
GUI204は、ユーザ入力フォームをレンダリングするように構成される。さらに、ユーザは、ユーザ入力フォームのすべての必要なフィールドを入力することができ、コマンドボタンのセットからコマンドボタンをクリックすることができる。各コマンドボタンは、システムのセットから異なるシステムに関連づけることができるか、またはターゲットシステムに関連づけられた異なるオペレーションに関連づけることができる。
【0033】
クリックしたコマンドボタンが、任意のターゲットシステムの他のオペレーションに関連づけられる場合、実行は、もう一度オペレーションクライアントに転送され、ターゲットオペレーションと同様の方法で他のオペレーションを処理する。クリックしたコマンドボタンが、異なるシステムの他のオペレーションに関連づけられていない場合、オペレーションクライアント212は、ユーザ入力フォームから受信したユーザ入力を収集し、これらのユーザ入力を実行エンジン218に転送する。ユーザ入力は、しきい値パラメータ、事前定義された基準、または一般的に解析目的に使用される、任意の他の情報の形態であり得る。
【0034】
実行エンジン218は、ユーザから受信したユーザ入力を、コネクタ108を介してターゲットシステムに送信するように構成される。実行エンジン218から受信した情報/ユーザ入力が十分な場合、ターゲットシステムは、ターゲットオペレーションを実行するように構成することができる。ターゲットオペレーションの実行に基づいて、ターゲットシステムは、新しいデータを生成してもよいし、生成しなくてもよい。
【0035】
新しいデータが生成された場合、実行エンジン218は、ターゲットシステムにより生成された、新しいデータのタイプを受信するように構成される。実行エンジン218は、実行ハンドラ238に、宛先データコンテナを決定することを要求するように構成される。例えば、新しいデータのタイプは、構造データ、非構造データ、解析データ、視覚データ等であり得る。実行ハンドラ238は、新しいデータのための宛先データコンテナを定義するように構成される。
【0036】
実行ハンドラ238は、データストア222のデータコンテナを発見するように構成することができ、このデータは、探索チェーンまたはユーザ構成に基づいて追加/交換することができる。既存のデータコンテナが再使用されるように識別された場合、既存のデータコンテナは、宛先データコンテナとして割り当てられる。他の実施形態において、実行ハンドラ238は、このタイプのデータのために、新しい空のデータコンテナを作るための要求を、データストア222に送信するように構成される。新しく作られたデータコンテナが宛先データコンテナになる。
【0037】
実行ハンドラ238は、データストア222の宛先データコンテナのアイデンティティを有する要求を、ターゲットシステムに送信するように構成される。ターゲットシステムは、新しいデータをデータストア222の宛先コンテナにルーティングするように構成される。データストア222は、ターゲットシステムにより提供されたデータを、記憶するように構成される。コネクタ108は、データが宛先コンテナにおいて変更されたイベントを、発行するように構成されるので、このデータ変更イベントのすべての加入者/視聴者は、それに従って行動することができる。一実施形態において、モジュールは、このイベントを識別し、それに従って、新しく生成されたデータを用いてGUI上に種々の視覚化を作成することができる。他の実施形態において、イベントは、宛先コンテナの変更の大きさを、データストア222に記憶された、事前定義されたしきい値変更と、比較することにより識別することができる。コネクタ108は、イベントに関連づけられた1つまたは複数の外部システムおよびデータベース110に通知するように構成することができる。さらに、モジュールは、現在生成されたデータ、または早期に生成されたデータに基づいて式を計算することにより新しいデータを生成するように構成することができる。さらに、モジュールは、オペレーションのチェーンを実行して、この変更イベントのオペレーションの従属チェーンを更新するように構成することができる。オペレーションと式のチェーンは、ターゲットオペレーションの実行中に、またはその後で実行される。プラットフォームに接続された1つまたは複数のシステムを制御し、1つまたは複数のシステム間でデータを探索するプロセスは、さらに、
図3Aおよび3Bのブロック図に関してさらに、詳しく述べる。
【0038】
図3Aおよび3Bを参照すると、この開示の一実施形態に従う、プラットフォーム102に接続された、1つまたは複数のシステム、および1つまたは複数の外部システム、およびデータベース間のデータを探索するための方法が図示される。方法300は、コンピュータ実行可能命令の、一般的なコンテキストにおいて記載することができる。一般的に、コンピュータ実行可能な命令は、特定の機能を実行する、または特定のアブストラクトデータタイプをインプリメントする、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、手続、モジュール、機能等を含むことができる。方法300は、又、機能が、通信ネットワークを介してリンクされたリモートプロセッシングデバイスにより実行される、分散コンピューティング環境で実施することもできる。分散コンピューティング環境において、コンピュータ実行可能命令は、メモリストレージデバイスを含む、ローカルおよびリモートの、両方のコンピュータストレージ媒体に配置することができる。
【0039】
方法300が記載される順番は、限定するものとして理解することを意図したものではなく、記載された方法ブロックの任意の数を任意の順番で結合して、方法300をインプリメントするか、あるいは方法を代替させることができる。さらに、個々のブロックは、ここに記載された開示の精神と範囲をから逸脱することなく、方法300から削除することができる。さらに、方法は、任意の適切なハードウェア、ソフトウェア、ファームウェアまたはそれらの組合せでインプリメントすることができる。しかしながら、説明を容易にするために、下記実施形態では、方法300は、上述したプラットフォーム102に、インプリメントされると考えることができる。
【0040】
一実施形態において、ステップ302において、ユーザデバイス104上のグラフィカルユーザインタフェース(GUI)は、ユーザが、I/Oインタフェース204を用いてプラットフォーム102と通信することを可能にする。I/Oインタフェース204は、ユーザが新しい探索を作るか、または既存の/セーブされた探索を開くことを可能にする。新しい探索は、新しいフォルダ、古いフォルダ、既存のファイル、新しいファイル、ウェブブラウザ、解析リポート等に対応させることができる。一実施形態において、既存の/セーブされた探索は、また、ウェブブラウザまたはオフラインツールを介してユーザにより開始された解析オペレーション/新しい解析オペレーションに対応させることもできる。
【0041】
ステップ304において、ユーザは、GUIを介してプラットフォーム102と相互作用し、新しい探索、または既存の/セーブされた探索において、エレメントを選択することができる。エレメントは、グラフ、テキスト、テキストボックス、コマンドボタン、バックグラウンド、または既存の/セーブされた探索上に存在する、任意の他のビジュアルエレメントに対応させることができる。一実施形態において、ユーザに関連づけられたコンテキスト情報は、ユーザにより選択されたエレメント、またはユーザにより提供された入力に基づいて決定される。
【0042】
ステップ306において、オペレーションクライアント214は、コンテキスト情報を受信するように構成される。コンテキスト情報は、探索においてユーザにより選択されたビジュアルエレメント、またはユーザにより提供された入力に基づいて、決定される。ユーザは、探索のキーワードを入力することにより入力を提供することができる。
【0043】
ステップ308において、サービスレジストリ220は、特定コンテキスト情報に基づいて、外部システムおよびデータベースのセット110から、各システムに関連付けられたオペレーションのセットを発見し、コンテキスト情報に基づいて、システムのサブセットおよびオペレーションのサブセットを識別することができる。オペレーションのサブセットは、個々のオペレーションおよび/または複合オペレーションを備えることができる。一実施形態において、複合オペレーションは、ターゲットシステムにより提供された1つまたは複数のオペレーションを含むことができるオペレーションのグループであり得る。
【0044】
ステップ310において、GUIは、ユーザデバイス204上にメニューをレンダリングすることができる。メニューは、オペレーションのサブセットを含むことができる。一実施形態において、メニューは、ユーザの選択のためにオペレーションのサブセットを有するドロップダウン形式で表示することができる。
【0045】
ステップ312において、ユーザは、メニューに表示されたオペレーションのサブセットから、ターゲットオペレーションを選択することができる。一実施形態において、ユーザは、ターゲットオペレーションとして、メニューに表示されたオペレーションのサブセットから、2以上のオペレーション/複合オペレーションを選択することができる。
【0046】
ステップ314において、ターゲットオペレーションが選択されると、オペレーションクライアント212は、ユーザにより選択されたターゲットオペレーションを処理し、ターゲットオペレーションを実行するための要求を、実行マネージャ216に送信するように構成される。
【0047】
ステップ316において、実行マネージャ216は、ターゲットオペレーションのための実行プランを生成するように構成される。実行プランは、ターゲットオペレーションが実行されるべきシーケンスと、ターゲットオペレーションの実行に必要な情報を表すことができる。実行プランは、オペレーションのグラフであり、グラフの各ノードは、ターゲットシステム上で実行されるオペレーションを表す。
【0048】
ステップ318において、実行プランは、オペレーションとそのコンテキストベースパラメータを、ターゲットシステムのコネクタに送信することにより、実行エンジン216により実行することができる。実行プランを実行している間、実行エンジン218は、ターゲットオペレーションを、並列に(すなわち、同時に)、またはシーケンシャルに(すなわち、順次に)ターゲットシステムに送信することができる。
【0049】
ステップ320において、ターゲットシステムは、実行エンジン218から受信したオペレーションパラメータが、ターゲットオペレーションを実行するのに十分であるかどうかを判断するように構成することができる。ステップ322において、実行エンジン218から受信したオペレーションパラメータが、ターゲットオペレーションを実行するのに十分でない場合、ターゲットシステムは、フォームのメタ情報を生成するように構成することができる。フォームのメタ情報は、実行エンジン218に送信される。フォームのメタ情報は、ターゲットオペレーションの紛失パラメータに関するユーザ入力、あるいは、ターゲットオペレーションに関する情報を受信するための、フォームの生成を可能にすることができる。
【0050】
ステップ324において、実行エンジン218は、フォームのメタ情報を用いて、フォームノードを作成することができる。フォームノードは、探索互換性があるいは、(すなわち、フォームノードは、探索において配置し、レンダリングすることができる)。フォームノードが生成されると、フォームノードは、探索モジュール226に送信される。探索モジュール226は、新しい探索、または既存の/セーブされた探索に関連づけられた探索ノードを、現在の探索に追加するように構成される。
【0051】
ステップ326において、レンダリングエンジン214は、探索モジュール226から変更イベントを受信するように構成される。さらに、レンダリングエンジン214は、GUI上でユーザ入力をレンダリングするための命令を、ユーザデバイス104に送信するように構成することができる。ユーザ入力フォームは、メタ情報に基づいて生成される。
【0052】
ステップ328において、GUI204は、ユーザ入力フォームをレンダリングするように構成される。さらに、ユーザは、ユーザ入力フォーム内の全ての必要なフィールドを入するすることができ、コマンドボタンのセットからコマンドボタンをクリックすることができる。各コマンドボタンは、システムのセットから異なるシステムに、またはターゲットシステムに関連付けられた異なるオペレーションに関連付けることができる。
【0053】
ステップ330において、クリックされたコマンドボタンが任意のターゲットシステムの他のオペレーションと関連づけられる場合、実行は、ステップ314に再度転送される。ステップ332において、クリックされたコマンドボタンが、異なるシステムの他のオペレーションに関連づけられない場合、オペレーションクライアント212は、ユーザ入力フォームから受信したユーザ入力を収集し、これらのユーザ入力を実行エンジン218に転送するように構成される。ユーザ入力は、しきい値パラメータ、事前定義された基準、または一般的に解析目的で使用される、任意の他の情報のフォームであり得る。
【0054】
ステップ334において、実行エンジン218は、ユーザから受信したユーザ入力を、コネクタ108を介してターゲットシステムに送信するように構成される。ステップ336において、実行エンジン218から受信した情報/ユーザ入力が、十分である場合、ターゲットシステムは、ターゲットオペレーションを実行するように構成することができる。ターゲットオペレーションの実行に基づいて、ターゲットシステムは、新しいデータを生成してもよいし、生成しなくともよい。
【0055】
ステップ338において、新しいデータが生成された場合、実行エンジン218は、ターゲットシステムにより生成された新しいデータのタイプを受信するように構成される。実行エンジン218は、宛先データコンテナを決定するように実行ハンドラ238に要求するように構成される。例えば、新しいデータのタイプは、構造データ、非構造データ、解析データ、視覚データ等であり得る。
【0056】
ステップ340において、実行ハンドラ238は、新しいデータのための宛先データコンテナを定義するように構成される。実行ハンドラ238は、このデータが、探索チェーンまたはユーザ構成に基づいて、追加/交換することができ、データストア222のデータコンテナを発見するように構成することができる。既存のデータコンテナが再使用するように識別される場合、既存のデータコンテナは、探索チェーンまたはユーザ構成に基づいて、追加/交換することができる。他の実施形態において、実行ハンドラ238は、データストア222に要求を送信して、このタイプのデータのための新しい空のデータコンテナを作るように構成される。新しく作成されたコンテナは宛先データコンテナになる。
【0057】
ステップ342において、実行ハンドラ238は、データストア222の宛先データコンテナのアイデンティティを有する要求を、ターゲットシステムに送信するように構成される。ターゲットシステムは、新しいデータをデータストア222の宛先コンテナにルーティングするように構成される。データストア222は、ターゲットシステムにより提供されるデータを、記憶するように構成される。データストア222は、データが宛先コンテナで変更されたイベントを発行するように構成されるので、このデータ変更イベントのすべての加入者/視聴者は、それに従って動作することができる。一実施形態において、モジュールは、これらのイベントを識別し、それに従って、新しく生成されたデータを用いて、GUI上に種々の視覚化を作成することができる。他の実施形態において、宛先コンテナ内の変更の大きさを、データストア222に記憶された、事前定義されたしきい値変更と比較することにより、識別することができる。コネクタ108は、イベントに関連づけられた、1つまたは複数の外部システムおよびデータベースを通知するように構成することができることに留意する必要がある。さらに、モジュールは、現在生成されたデータ、または以前に生成されたデータに基づいて式を計算することにより、さらに新しいデータを生成するように構成することができる。さらに、モジュールは、操作のチェーンを実行して、この変更イベントに依存する操作のチェーンを、更新するように構成することができる。
【0058】
1つまたは複数のシステムを制御し、プラットフォームに接続された1つまたは複数のシステム全体で、データを探索するための方法およびシステムのインプリメンテーションについて説明したが、添付の特許請求の範囲は、必ずしも説明した特定の機能または方法に限定されないことを理解されたい。むしろ、特定の機能および方法は、1つ以上のシステムを制御し、プラットフォームに接続された1つ以上のシステム全体で、データを探索するためのインプリメンテーションの例として開示される。