JP2021163475A - ログベースのマッシュアップのコード生成 - Google Patents
ログベースのマッシュアップのコード生成 Download PDFInfo
- Publication number
- JP2021163475A JP2021163475A JP2021029006A JP2021029006A JP2021163475A JP 2021163475 A JP2021163475 A JP 2021163475A JP 2021029006 A JP2021029006 A JP 2021029006A JP 2021029006 A JP2021029006 A JP 2021029006A JP 2021163475 A JP2021163475 A JP 2021163475A
- Authority
- JP
- Japan
- Prior art keywords
- trigger
- computer
- executable
- token
- data source
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
【課題】ログベースのマッシュアップのコード生成方法を提供する。
【解決手段】方法は、トリガデータソースから電子トリガイベントに関連づけられた第1の情報を含む第1のログデータの受信し、受信した第1のログデータの第1の文トークンからトリガ出力パラメータを抽出し、抽出したトリガ出力パラメータに基づいて、ユーザデバイスの電子ユーザインターフェース(UI)に第1のトリガルールセットを表示する。方法はさらに、表示された第1のトリガルールセットのうち1つ以上のトリガルールの選択を含む第1の入力を受信し、第1の情報が該1つ以上のトリガルールを満たすかどうかに基づいて実行されるべきコンピュータ実行可能アクションの選択を含む第2の入力を受信し、受信した第1の入力と受信した第2の入力に基づいて、ランタイムシステムにおける実行のためのコンピュータ実行可能マッシュアップコードを生成し、ランタイムシステム上で実行する。
【選択図】図1
【解決手段】方法は、トリガデータソースから電子トリガイベントに関連づけられた第1の情報を含む第1のログデータの受信し、受信した第1のログデータの第1の文トークンからトリガ出力パラメータを抽出し、抽出したトリガ出力パラメータに基づいて、ユーザデバイスの電子ユーザインターフェース(UI)に第1のトリガルールセットを表示する。方法はさらに、表示された第1のトリガルールセットのうち1つ以上のトリガルールの選択を含む第1の入力を受信し、第1の情報が該1つ以上のトリガルールを満たすかどうかに基づいて実行されるべきコンピュータ実行可能アクションの選択を含む第2の入力を受信し、受信した第1の入力と受信した第2の入力に基づいて、ランタイムシステムにおける実行のためのコンピュータ実行可能マッシュアップコードを生成し、ランタイムシステム上で実行する。
【選択図】図1
Description
本開示で論じられる実施形態は、ログベースのマッシュアップのコード生成に関する。
多くの企業や組織は、音声処理やソーシャルメディア分析などのいくつかのアプリケーションのために複数のウェブAPIからAPIマッシュアップを開発するためのマッシュアッププラットフォームを提供している。典型的には、APIマッシュアップは、いくつかのAPIの機能性を新しいサービスに結み合わせ、トリガと、ルールと、トリガがルールを満たす場合に実行されるアクションを含む。APIベースのマッシュアップは、あらゆる種類のビジネスで使用されており、企業によって様々なソフトウェアを自社製品に効率的かつ安価に統合するために一般に使用されている。市場における全てのAPIマッシュアップは、典型的には、トリガを生成するためにAPIエンドポイントへのコールを必要とし、これは、このようなAPIマッシュアップの適用可能性を、トリガを生成するために利用可能なAPIが存在するアプリケーションに制限する可能性がある。
本開示において請求される対象事項は、何らかの欠点を解決し又は上述されたような環境においてのみ動作する実施形態に限定されない。むしろ、この背景技術は、本明細書に記載されるいくつかの実施形態が実施され得る1つの例示的な技術分野を示すためにのみ提供される。
一実施形態の態様によれば、動作が、トリガデータソースから1つ以上の電子トリガイベントに関連づけられた第1の情報を含む第1のログデータを受信することを含み得る。動作は、受信した第1のログデータの第1の文トークンから1つ以上のトリガ出力パラメータを抽出することと、抽出された1つ以上のトリガ出力パラメータに基づいてユーザデバイスの電子ユーザインターフェース(UI)上に第1のユーザ選択可能な選択肢セットとして第1のトリガルールセットを表示することをさらに含んでもよい。動作は、表示された第1のトリガルールセットのうち1つ以上のトリガルールの選択を含み得る第1の入力を受信することをさらに含んでもよい。動作は、1つ以上の電子トリガイベントに関連づけられた第1の情報が1つ以上のトリガルールを満たすかどうかに基づいて実行されるべき1つ以上のコンピュータ実行可能アクションの選択を含み得る第2の入力を受信することをさらに含んでもよい。動作は、受信した第1の入力及び受信した第2の入力に基づいてランタイムシステムにおける実行のためのコンピュータ実行可能マッシュアップコードを生成することをさらに含んでもよい。
実施形態の目的及び利点は、少なくとも特許請求の範囲において特に指し示された要素、特徴、及び組み合わせにより実現され、達成される。
前述の一般的な説明及び以下の詳細な説明の双方が単に例であり、説明的であり、請求される発明の限定ではないことが理解されるべきである。
例示的な実施形態が、添付図面の使用を通してさらなる特定性及び詳細と共に記載され、説明される。
ログベースのマッシュアップのコード生成に関する一例示的な環境を表す図である。
ログベースのマッシュアップアプリケーションのコード生成のためのシステムのブロック図である。
ログベースのマッシュアップのコード生成のための入力を提供する一例示的な電子ユーザインターフェースを示す図である。
ログベースのマッシュアップのコード生成の一例示的な方法のフローチャートを示す。
一例示的なマッシュアップテンプレートを示す。
図6A及び図6Bは合わせて、ログデータからの1つ以上のトリガ出力パラメータの抽出の一例示的な方法のフローチャートを示す。
図6A及び図6Bは合わせて、ログデータからの1つ以上のトリガ出力パラメータの抽出の一例示的な方法のフローチャートを示す。
データパイプライン、ストリーミング、又はキューイングシステムからログデータを受信する一例示的なパイプラインを示す。
ログベースのマッシュアップのコード生成の一例示的な処理パイプラインを表す例示的な図である。
全て、本開示に記載される少なくとも1つの実施形態による。
本開示に記載されるいくつかの実施形態は、ログベースのマッシュアップの自動的なコード生成の方法及び非一時的コンピュータ読取可能媒体に関する。本開示は、ログベースのマッシュアップの様々なセクション(トリガ、ルール、アクション)を開発者が手動でコーディングする必要のない、ログベースのマッシュアップのワークフローコードの生成に関する。典型的には、従来の方法は開発者に依存してワークフローコードを生成し、これは、実行されたときにイベントトリガをリッスンし、トリガ出力データにトリガルールを適用し、トリガ出力データがトリガルールを満たすかどうかに基づいてアクションを実行することができる。開発者は、イベントトリガ、トリガルール、及びアクションを明示的にコーディングする必要があり得、エラーをデバッグするために生成されたワークフローコードの個々のセクションをテストする必要があり得る。このストラテジはしばしば、より長い開発ライフサイクルを要し、通常、リソースの観点でより高い開発コストを伴う。
マッシュアッププラットフォームを提供するいくつかの企業が存在するが、これらのプラットフォームに含まれるマッシュアップレシピは、典型的には、APIマッシュアップに関連づけられている。市場における全てのAPIマッシュアップは、典型的には、トリガを生成するためにAPIエンドポイントへのコールを必要とし、これは、このようなAPIマッシュアップの適用可能性を、トリガを生成するために利用可能なAPIが存在するアプリケーションに制限する可能性がある。APIエンドポイントを通じて公開されない可能性のあるデータログなどのデータソースがあり、したがって、このようなデータソースを使用して実行可能マッシュアップのトリガを生成することは不可能な場合がある。
本開示の1つ以上の実施形態によれば、ソフトウェア開発の技術分野は、ログベースのマッシュアップの個々のセクションを開発者が手動でコーディングする必要なく、ログベースのマッシュアップのワークフローコードを生成するようにシステムを構成することにより、改善することができる。トリガ、ルール、及びアクションを含む実行可能コードは、エンドツーエンドのログベースのマッシュアップを達成するように生成され得る。経験を積んだ人間の開発者に依存して各々の新しいAPIトリガ及びアクションのコードを設計する既存のAPIマッシュアッププラットフォームと比較して、本開示のマッシュアップレシピは、(限られたヒューマン・イン・ザ・ループで)マシンにより生成され、これは、より短い開発サイクル(開発者の時間は、大部分がテスト/検証中に消費され得る)と、より低い開発コストの達成を可能にする。これらのマッシュアップレシピは、トリガを生成するためにAPIエンドポイントを必要としないが、代わりに、定期的な間隔でログデータを発行するログファイルパス又はキューイングシステムを必要とする。本開示は、ログベースのマッシュアップのワークフローコードの生成中や、ログベースのマッシュアップにおけるアクションとしてのAPIの将来の統合に対して、低い開発コストをもたらす可能性もある。したがって、本開示は、以前にワークフローコードの生成で必要とされた開発者の努力と時間を節約し得る。
本開示の実施形態は、添付の図面を参照して説明される。
図1は、本開示に記載される少なくとも1つの実施形態に従って配置された、ログベースのマッシュアップのコード生成に関する一例示的な環境を表す図である。図1を参照し、一例示的な環境100が示される。例示的な環境100には、システム102とユーザデバイス104が示されている。さらに、ユーザデバイス104にレンダリングされた電子ユーザインターフェース(UI)106、ランタイムシステム(runtime system)108、及び通信ネットワーク110が示されている。いくつかの実施形態において、ランタイムシステム108は、システム102の一部でもよい。システム102とユーザデバイス104は、通信ネットワーク110を介して互いに通信上結合され得る。さらに、ユーザデバイス104に関連づけられ得るユーザ112が示されている。ユーザデバイス104の例は、これらに限られないが、モバイルデバイス、デスクトップコンピュータ、ラップトップ、コンピュータワークステーション、クラウドサーバなどのサーバ、及びサーバのグループを含んでもよい。1つ以上の実施形態において、ユーザデバイス104は、ユーザエンド端末デバイスと、ユーザエンド端末デバイスに通信上結合されたサーバを含んでもよい。ユーザエンド端末デバイスの例は、これらに限られないが、モバイルデバイス、デスクトップコンピュータ、ラップトップ、及びコンピュータワークステーションを含んでもよい。
システム102は、ユーザデバイス104に電子UI106を、及びユーザデバイス104の表示された電子UI106上にユーザ選択可能な選択肢のセットを表示するように構成され得る適切な論理、回路、及びインターフェースを含み得る。このような選択肢は、ログベースのマッシュアップの1つ以上のトリガ選択肢、トリガルール、及びコンピュータ実行可能アクションに対応してもよい。システム102は、トリガデータソース114から第1のログデータを受信することができる。トリガデータソース114は、ログベースのアプリケーションに関連づけられたログデータのセットを記憶し、かつ/あるいはキュレートする(curate)ことができる。一例として、トリガデータソース114は、電気通信設備のエッジノードでもよく、電気通信設備の動作に関連づけられたネットワークステータスログ又はネットワーク診断ログなどのログを記憶してもよい。別の例として、トリガデータソース114は、様々なセンサデバイスのホームネットワーク内のセンサデバイスでもよく、センサデータを収集し、ログに記憶してもよい。トリガデータソース114の他の例は、これらに限られないが、ワイヤレスセンサネットワーク(WSN)内の1つ以上のノードデバイス、データベースシステム、イベントストリーミングサーバ、複合イベント処理(CEP)サーバ、クラウドベースのログストア、ウェブサーバ、通信ネットワークのノードデバイス、エッジデバイス、コンシューマ電子デバイス(スマートフォン、タブレット、カメラ、又はウェアラブル電子装置など)、白物家電製品、ワークステーション、データセンタ内のサーバ/エッジデバイス、ネットワーキングデバイス(ルータ、スイッチ、ブリッジ、及びゲートウェイなど)、又は、データを収集し、収集されたデータのデータログを生成する能力を有する任意の電子デバイスを含んでもよい。
1つ以上の実施形態において、システム102は、表示された電子UI106を介して、トリガデータソース114に関連づけられたトリガデータソースパスを受信することができる。例えば、トリガデータソースパスは、スラッシュで区切られたディレクトリ名のリストの後にディレクトリ名又はファイル名のいずれかが続く絶対又は相対パス、トリガデータソース114のユニフォームリソースロケータ(uniform resource locator、URL)、又は統一命名規則(Unified Naming Convention、UNC)パスのうち1つでもよい。受信したトリガデータソースパスに基づいて、システム102は、トリガデータソース114を選択することができる。これら又は他の実施形態において、システム102は、トリガウォッチャ機能を実装してトリガデータソースパスを監視し、新しいレコードを有する第1のログデータがトリガデータソース114で利用可能かを判定してもよい。新しいレコードを有する第1のログデータを取得することができ、タイムスタンプを第1のログデータに付加することができる。
第1のログデータは、1つ以上の電子トリガイベントに関連づけられた第1の情報を含むことができる。例えば、第1のログが、ユーザデバイス104上のソフトウェアアプリケーションのネットワークログである場合、ネットワークログの第1の情報は、アプリケーションで発生したイベントのレコード、例えば、オブジェクトへのアクセスコール、認証の試行、及びアプリケーションに関連づけられた他のアクティビティのレコードなどを含み得る。この例において、電子トリガイベントは、ソフトウェアアプリケーションのアプリケーションインターフェースを通じたユーザ112の認証試行の検出として指定されてもよい。各電子トリガイベントは、電子トリガイベントを検出するために使用され得る(第1のログデータ内の第1の情報の一部としての)イベントデータに関連づけることができる。この例において、イベントデータは、タイムスタンプを有する認証試行とこのような試行の結果のレコードを含んでもよい。
システム102は、受信した第1のログデータの第1の文トークン(sentence token)から1つ以上のトリガ出力パラメータを抽出することができる。1つ以上のトリガ出力パラメータは、受信した第1のログデータに対する自然言語処理(natural language processing、NLP)演算の適用により抽出されてもよい。例えば、第1のログデータが、「13:46:00:[警告] スループットが30Mbps、90%のポリシー制限を使用(13:46:00: [WARNING] The throughput is 30 Mbps, using a policy limitation of 90%.)」として単語トークン(word tokens)と数値の双方を有する文を含むネットワーキングデバイスログファイルから取得される場合、トリガ出力パラメータは、「スループット」及び「ポリシー制限」として抽出されてもよい。トリガ出力パラメータの自動抽出により、トリガ出力パラメータのようなパラメータを識別するためにログファイルを手動で開いて読む必要なくコンピュータ実行可能なログベースのマッシュアップを設計することは、開発者に有用であり得る。
システム102はさらに、ユーザデバイス104の電子UI106に第1のユーザ選択可能な選択肢セットとして第1のトリガルールセットを表示することができる。第1のトリガルールセットは、抽出された1つ以上のトリガ出力パラメータに基づいて表示されてもよい。さらに又は代わりに、第1のトリガルールセットは、第1のログデータに関連づけられた1つ以上の一般的属性に基づいて表示されてもよい。例えば、このような属性は、トリガデータソースパス、第1のログデータを含むログファイルの名前、又は第1のログデータ内の新しい行を含んでもよい。各トリガルールは、トリガ出力パラメータと、トリガ基準と、トリガ出力パラメータの値として使用されるトリガ値との組み合わせに対応し得る。
システム102は、ユーザデバイス104を介してユーザ112から第1の入力を受け取ることができる。第1の入力は、表示された第1のトリガルールセットからの1つ以上のトリガルールの選択に対応し得る。これらのトリガルールは、第1のログデータ内のトリガ出力パラメータの新しい値がトリガ基準とトリガ出力パラメータのトリガ値を満たすかどうかを判定するために、受信した第1のログデータ内の第1の情報に適用される必要があり得る。具体的には、トリガ値は、トリガルール内のトリガ基準に基づいて第1のログデータの第1の情報内の新しい値と比較される必要があり得る。例えば、第1の入力は、トリガ出力パラメータを「スループット」として、トリガ基準を「より大きい」として、トリガ値を「20Mbps」として有するトリガルールの選択に対応してもよい。第1の入力は、単一のトリガルール又は複数のトリガルールに対応することができる。複数のトリガルールの場合、複数のトリガルールの結果は論理演算子(例えば、OR/ANDなど)に基づいて組み合わせられてもよく、これは第1の入力を介して指定されてもよい。
システム102は、ユーザデバイス104を介してユーザ112から第2の入力をさらに受け取ることができる。第2の入力は、1つ以上の電子トリガイベントに関連づけられた第1の情報が1つ以上のトリガルールを満たすかどうかに基づいて実行されるべき1つ以上のコンピュータ実行可能アクションの選択に対応し得る。コンピュータ実行可能アクションの例は、これらに限られないが、対応するAPIエンドポイントへのAPIコール、マイクロサービスコール、リモートプロシージャコール(Remote Procedural Call、RPC)、又は、シンプルオブジェクトアクセスプロトコル(Simple Object Access Protocol、SOAP)などのプロトコルを使用して異種のオペレーティングシステム上で動作しているプロセスを呼び出すコールを含んでもよい。限定でなく例として、第1のログデータ内の第1の情報は、「13:46:00:[警告] スループットが30Mbps、90%のポリシー制限を使用」として新しい行を含み得る。トリガルールが、トリガ出力パラメータを「スループット」として、トリガ基準を「より大きい」として、トリガ値を「20Mbps」として含む場合、30Mbpsのスループットの新しい値は、20Mbpsのトリガ値より大きいと判定され得る。その後、トリガルールが満たされていることを示すために、トリガ応答(例えば、1)を生成することができる。このようなトリガ応答に基づいて、APIコールを実行してslack(登録商標)にメッセージを送信し又はWhatsApp(登録商標)にメッセージを送信することにより、コンピュータ実行可能アクションを実行することができる。1つ以上のトリガルールが満たされない場合、1つ以上のコンピュータ実行可能アクションは実行されなくてもよい。例えば、スループットが(トリガルールで指定されたトリガ値である)20Mbps未満の場合、slack(登録商標)又はWhatsApp(登録商標)にメッセージが送信されなくてもよい。
システム102は、受信した第1の入力及び受信した第2の入力に基づくマッシュアップコードを生成することができる。マッシュアップコードは、ランタイムシステム108上でコンピュータ実行可能であるように構成され得、1つ以上のコンピュータ実行可能トリガコード、1つ以上のトリガルールに関連づけられた1つ以上のコンピュータ実行可能ルールコード、及び1つ以上のコンピュータ実行可能アクションに関連づけられた1つ以上のコンピュータ実行可能アクションコードを含み得る。ここで、ランタイムシステム108は、典型的にプログラム実行に必要とされる管理されたハードウェア及びソフトウェアリソースの集合として参照されてもよい。
ここで、システム102とユーザデバイス104との間の通信は、通信ネットワーク110を介して行われてもよいことに留意されたい。通信ネットワーク110は、システム102がユーザデバイス104及び/又は異なるデバイス(図示せず)と通信できるための通信媒体を含み得る。通信ネットワーク110の例は、これらに限られないが、インターネット、クラウドネットワーク、ワイヤレスフィデリティ(Wi−Fi)ネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、及び/又はメトロポリタンエリアネットワーク(MAN)を含んでもよい。例示的な環境100内の様々なデバイスは、様々な有線及び無線通信プロトコルに従って通信ネットワーク110に接続するように構成することができる。そのような有線及び無線通信プロトコルの例は、これらに限られないが、トランスミッションコントロールプロトコル及びインターネットプロトコル(TCP/IP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキストトランスファープロトコル(HTTP)、ファイルトランスファープロトコル(FTP)、ZigBee(登録商標)、EDGE、IEEE802.11、ライトフィデリティ(Li−Fi)、802.16、IEEE802.11s、IEEE802.11g、マルチホップ通信、無線アクセスポイント(AP)、デバイスツーデバイス通信、セルラー通信プロトコル、及び/又はBluetooth(登録商標)(BT)通信プロトコル、又はこれらの組み合わせのうち少なくとも1つを含んでもよい
本開示の範囲から逸脱することなく、システム102に対して修正、追加、又は省略がなされてもよい。例えば、システム102は、ログベースのマッシュアップのコードを集合的に自動的に生成し得るサーバの分散ネットワークでもよい。
図2は、本開示に記載される少なくとも1つの実施形態に従って配置された、ログベースのマッシュアップアプリケーションのコード生成のためのシステムのブロック図である。図2は、図1の要素と関連して説明される。図2を参照し、図1のシステム102のブロック図200が示される。システム102は、プロセッサ202、メモリ204、永続データ記憶装置206、入力/出力(I/O)デバイス208、ネットワークインターフェース210、及びランタイムシステム108を含み得る。さらに、通信ネットワーク110を介してシステム102に通信上結合されたユーザデバイス104が示されている。
プロセッサ202は、システム102により実行されるべき異なる動作に関連づけられたプログラム命令を実行するように構成され得る適切な論理、回路、及び/又はインターフェースを含んでもよい。プロセッサ202は、様々なコンピュータハードウェア又はソフトウェアモジュールを含む任意の適切な専用又は汎用コンピュータ、コンピューティングエンティティ、又は処理デバイスを含んでもよく、任意の適用可能なコンピュータ読取可能記憶媒体に記憶された命令を実行するように構成されてもよい。例えば、プロセッサ202は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又は、プログラム命令を解釈及び/又は実行するよう及び/又はデータを処理するように構成された任意の他のデジタル又はアナログ回路を含んでもよい。図2では単一のプロセッサとして示されているが、プロセッサ202は、本開示に記載されるシステム102の任意数の動作を個々に又は集合的に実行し又はその実行を指示するように構成された任意数のプロセッサを含んでもよい。さらに、プロセッサの1つ以上が、異なるサーバなどの1つ以上の異なる電子デバイスに存在してもよい。
いくつかの実施形態において、プロセッサ202は、メモリ204及び/又は永続データ記憶装置206に記憶されたプログラム命令を解釈及び/又は実行するよう及び/又はデータを処理するように構成されてもよい。いくつかの実施形態において、プロセッサ202は、永続データ記憶装置206からプログラム命令を取り出し、プログラム命令をメモリ204にロードし得る。プログラム命令がメモリ204にロードされた後、プロセッサ202は、プログラム命令を実行することができる。プロセッサ202の例のいくつかは、グラフィカル処理ユニット(GPU)、中央処理装置(CPU)、縮小命令セットコンピュータ(RISC)プロセッサ、特定用途向け集積回路(ASIC)プロセッサ、複合命令セットコンピュータ(CISC)プロセッサ、コプロセッサ、及び/又はこれらの組み合わせでもよい。
メモリ204は、プロセッサ202により実行可能なプログラム命令を記憶するように構成され得る適切な論理、回路、及び/又はインターフェースを含んでもよい。特定の実施形態において、メモリ204は、トリガソースパス、1つ以上のトリガルール、及び1つ以上のトリガルールに関連づけられた1つ以上のコンピュータ実行可能アクションを記憶するように構成されてもよい。メモリ204は、記憶されたコンピュータ実行可能命令又はデータ構造を搬送し又は有するコンピュータ読取可能記憶媒体を含んでもよい。そのようなコンピュータ読取可能記憶媒体は、プロセッサ202などの汎用又は専用コンピュータによりアクセスされ得る任意の利用可能な媒体を含んでもよい。
限定でなく例として、このようなコンピュータ読取可能記憶媒体には、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、電気的消去可能プログラマブル読取専用メモリ(EEPROM)、コンパクトディスク読取専用メモリ(CD−ROM)若しくは他の光ディスク記憶装置、磁気ディスク記憶装置若しくは他の磁気記憶デバイス、フラッシュメモリデバイス(例えば、ソリッドステートメモリデバイス)、又は、特定のプログラムコードをコンピュータ実行可能命令又はデータ構造の形式で搬送又は記憶するために使用でき、かつ汎用又は専用コンピュータによりアクセスできる任意の他の記憶媒体を含む、有形又は非一時的コンピュータ読取可能記憶媒体を含んでもよい。上記の組み合わせもまた、コンピュータ読取可能記憶媒体の範囲に含まれ得る。コンピュータ実行可能命令は、例えば、プロセッサ202にシステム102に関連づけられた特定の動作又は動作のグループを実行させるように構成された命令及びデータを含んでもよい。
永続データ記憶装置206は、プロセッサ202により実行可能なプログラム命令とマッシュアップテンプレートのフォーマットを記憶するように構成され得る適切な論理、回路、及び/又はインターフェースを含んでもよい。永続データ記憶装置206は、記憶されたコンピュータ実行可能命令又はデータ構造を搬送し又は有するコンピュータ読取可能記憶媒体を含んでもよい。そのようなコンピュータ読取可能記憶媒体は、プロセッサ202などの汎用又は専用コンピュータによりアクセスされ得る任意の利用可能な媒体を含んでもよい。
限定でなく例として、このようなコンピュータ読取可能記憶媒体には、コンパクトディスク読取専用メモリ(CD−ROM)若しくは他の光ディスク記憶装置、磁気ディスク記憶装置若しくは他の磁気記憶デバイス(例えば、ハードディスクドライブ(HDD))、フラッシュメモリデバイス(例えば、ソリッドステートドライブ(SSD)、セキュアデジタル(SD)カード、他のソリッドステートメモリデバイス)、又は、特定のプログラムコードをコンピュータ実行可能命令又はデータ構造の形式で搬送又は記憶するために使用でき、かつ汎用又は専用コンピュータによりアクセスできる任意の他の記憶媒体を含む、有形又は非一時的コンピュータ読取可能記憶媒体を含んでもよい。上記の組み合わせもまた、コンピュータ読取可能記憶媒体の範囲に含まれ得る。コンピュータ実行可能命令は、例えば、プロセッサ202にシステム102に関連づけられた特定の動作又は動作のグループを実行させるように構成された命令及びデータを含んでもよい。
I/Oデバイス208は、ユーザ入力を受け取るように構成され得る適切な論理、回路、インターフェース、及び/又はコードを含んでもよい。I/Oデバイス208はさらに、ユーザ入力に応答して出力を提供するように構成されてもよい。I/Oデバイス208は、プロセッサ202及び他のコンポーネント、例えばネットワークインターフェース210などと通信するように構成され得る様々な入力及び出力デバイスを含んでもよい。入力デバイスの例は、これらに限られないが、タッチスクリーン、キーボード、マウス、ジョイスティック、及び/又はマイクロホンを含んでもよい。出力デバイスの例は、これらに限られないが、ディスプレイデバイス及びスピーカを含んでもよい。
ネットワークインターフェース210は、通信ネットワーク110を介してシステム102及びユーザデバイス104の間の通信を確立するように構成され得る適切な論理、回路、インターフェース、及び/又はコードを含んでもよい。ネットワークインターフェース210は、通信ネットワーク110を介するシステム102の有線又は無線通信をサポートするために、様々な既知の技術の使用により実装されてもよい。ネットワークインターフェース210は、これらに限られないが、アンテナ、無線周波数(RF)トランシーバ、1つ以上の増幅器、チューナ、1つ以上の発振器、デジタル信号プロセッサ、コーダ・デコーダ(コーデック)チップセット、加入者識別モジュール(SIM)カード、及び/又はローカルバッファを含んでもよい。
ネットワークインターフェース210は、インターネット、イントラネット、及び/又は無線ネットワーク、例えばセルラー電話ネットワーク、無線ローカルエリアネットワーク(LAN)、及び/又はメトロポリタンエリアネットワーク(MAN)などのネットワークと無線通信を介して通信してもよい。無線通信は、グローバルシステムフォーモバイルコミュニケーションズ(Global System for Mobile Communications、GSM)、拡張データGSM環境(Enhanced Data GSM Environment、EDGE)、広帯域符号分割多元接続(wideband code division multiple access、W‐CDMA)、ロングタームエボリューション(Long Term Evolution、LTE(登録商標))、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、Bluetooth、ワイヤレスフィデリティ(Wi‐Fi)(IEEE802.11a、IEEEE802.11b、IEEEE802.11g、及び/又はIEEE802.11nなど)、ボイスオーバーインターネットプロトコル(VoIP)、ライトフィデリティ(Li‐Fi)、又はWi−MAXなどの複数の通信標準、プロトコル、及び技術のいずれかを使用してもよい。
特定の実施形態において、システム102は、フロントエンドサブシステムとバックエンドサブシステムに分割されてもよい。フロントエンドサブシステムは、単に、ユーザデバイス104、第三者サーバ、ウェブサーバ、クライアントマシン、及びバックエンドサブシステムのうち1つ以上から要求/命令を受信するように構成することができる。これらの要求は、背後でバックエンドサブシステムに通信することができ、バックエンドサブシステムは、これらの要求に対して動作するように構成することができる。例えば、システム102が複数のサーバを含む場合、サーバのいくつかが、バックエンドサブシステムに関連づけられた残りのサーバに要求/命令をリレーするように構成されたフロントエンドサーバでもよい。
本開示の範囲から逸脱することなく、システム102に修正、追加、又は省略を行ってもよい。例えば、いくつかの実施形態において、システム102は、明示的に例示又は説明されない可能性のある任意数の他のコンポーネントを含んでもよい。
図3は、本開示に記載される少なくとも1つの実施形態による、ログベースのマッシュアップのコード生成のための入力を提供するための一例示的な電子ユーザインターフェースを示す図である。図3は、図1及び図2の要素と関連して説明される。図3を参照し、図1の電子UI106の一例示的な実装である電子UI300が示される。電子UI300は、ユーザ要求に基づいてユーザデバイス104上に表示されてもよく、ユーザ要求は、ユーザデバイス104の表示画面上に表示されるアプリケーションインターフェースを介して受け取られてもよい。アプリケーションインターフェースは、アプリケーションソフトウェア、例えば、ソフトウェア開発キット(SDK)、クラウドサーバベースのアプリケーション、ウェブベースのアプリケーション、OSベースのアプリケーション/アプリケーションスイート、エンタープライズアプリケーション、又はAPIマッシュアップのコードの自動生成のためのモバイルアプリケーションの一部でもよい。
電子UI300上には、第1のUI要素302、第2のUI要素304、第3のUI要素306、及び第4のUI要素308などのUI要素のセットが示されている。第1のUI要素302、第2のUI要素304、第3のUI要素306、及び第4のUI要素308を通じて、ユーザ112は、トリガデータソースパス、1つ以上のトリガルール、及び1つ以上のコンピュータ実行可能アクションを選択することにより、ログベースのマッシュアップを構成することができ得る。ログベースのマッシュアップは、UI要素のセットを介して提供され得るユーザ入力に基づくコンピュータ実行可能マッシュアップコードを含むように構成され得る。
第1のUI要素302は、例えば「トリガを構成(Compose Triggers)」とラベル付けされてもよく、トリガソースパス選択肢302A及びサブミット(submit)ボタン302Bを含んでもよい。トリガソースパス選択肢302Aを通じて、ユーザ112は、トリガデータソース114のパス/ロケーションを指定するためのユーザ入力を提供することができ得る。いくつかの実施形態において、トリガソースパス選択肢302Aは、利用可能なトリガデータソースの対応するリストのためのパスのリストをブラウズする選択肢を提供することができる。パスのリストからパスを選択すると、選択されたパスが電子UI300に表示され得る。1つ以上の実施形態において、ユーザ112は、複数のトリガデータソースに関連づけられた複数のパスを提供することにより、複数のトリガデータソースを選択することができ得る。選択後、ユーザ112は、サブミットボタン302Bを介してトリガデータソースパスをサブミットすることができる。
サブミット後、システム102は、トリガウォッチャ機能を実装することができ、これは、トリガデータソースパスを監視し、トリガデータソースパスに関連づけられたトリガデータソース114から第1のログデータを受信することができる。第1のログデータは、1つ以上の電子トリガイベントに関連づけられた第1の情報を含んでもよい。システム102は、受信した第1のログデータの第1の文トークンから1つ以上のトリガ出力パラメータを抽出することができる。例えば、第1の文が「13:46:00:[警告] スループットが30Mbps、90%のポリシー制限を使用」である場合、トリガ出力パラメータは「スループット」及び「ポリシー制限」として抽出されてもよい。トリガ出力パラメータの抽出動作の詳細は、例えば図6A及び図6Bで提供される。
第2のUI要素304は、例えば「ルールを構成(Compose Rules)」とラベル付けされてもよい。第2のUI要素304は、トリガ出力パラメータメニュー304A、トリガ基準メニュー304B、トリガ値テキストボックス304C、論理演算子メニュー304D、及びルール追加ボタン304Eを含んでもよい。トリガ出力パラメータメニュー304A、トリガ基準メニュー304B、トリガ値テキストボックス304C、及び/又は論理演算子メニュー304D、及び/又はルール追加ボタン304Eを通じて、第1のトリガルールセットが、第1のユーザ選択可能な選択肢セットとしてユーザデバイス104の電子UI300に表示され得る。各トリガルールは、トリガ出力パラメータ、トリガ基準、トリガ出力パラメータのトリガ値から構成されてもよい。システム102は、表示された第1のトリガルールセットのうち1つ以上のトリガルールの選択を含み得る第1の入力を受信することができる。
トリガ出力パラメータメニュー304Aは、複数のトリガ出力パラメータを表示し得るドロップダウンメニューでもよい。これらのトリガ出力パラメータは、システム102がトリガデータソース114から第1のログデータを受信した後に投入され(populated)てもよい。1つ以上の実施形態において、これらのトリガ出力パラメータは、一般的なトリガ出力パラメータ(Trigger.file_path:第1のログデータへのトリガデータソースパス、Trigger.file_name:第1のログデータの名前、Trigger.line:第1のログデータに新しい行又はレコードが現れる)と、第1のログデータから抽出されたトリガ出力パラメータを含んでもよい。トリガ出力パラメータメニュー304Aを通じて、1つ以上のトリガ出力パラメータが選択され得る。
トリガ基準メニュー304Bは、選択された1つ以上のトリガ出力パラメータに適用可能な複数のトリガ基準(トリガルールパターンとも呼ばれる)を列挙するドロップダウンメニューでもよい。トリガ出力パラメータメニュー304Aを通じて、1つ以上のトリガ基準が選択され得る。表1に、複数のトリガ基準の例をその対応する説明と共に以下のとおり提示する。
トリガ値テキストボックス302Cは、トリガ値を追加するためにユーザ112により編集され得るテキストボックスでもよい。トリガ値は、トリガ基準メニュー304Bを介して選択され得るトリガ基準のオペランドとみなすことができる。トリガルールを満たすために、ログデータ内の選択されたトリガ出力パラメータの値が、選択された1つ以上のトリガ基準に基づくトリガ値と比較され得る。
いくつかの実施形態において、論理演算子メニュー304Dから論理演算子を選択するために、選択肢がユーザ112に提供されてもよい。図示のように、例えば、論理演算子は、論理演算子メニュー304Dの論理演算子の左側に表示されるラジオボタンを通じて選択されてもよい。論理演算子は、ユーザ112がログベースのマッシュアップを構成する間に複数のトリガルールを追加したい場合に、ユーザ112により選択されてもよい。ユーザ112は、ルール追加ボタン304Eをクリックすることにより、複数のトリガルールを追加するための別の選択肢を提供されてもよい。ルール追加ボタン304Eを選択すると、システム102は、第2のUI要素304と同様であり得る新しいUI要素を表示することができる。新しいUI要素において、ユーザ112は、新しいトリガ出力パラメータ、新しいトリガ基準、及び新しいトリガ値を選択することにより、別のトリガルールを構成するための選択肢を提供され得る。
限定でなく例として、トリガルールは、トリガ出力パラメータを「スループット」として、トリガ基準を「より大きい」として、及びトリガ値を「20Mbps」として有するように構成されてもよい。システム102は、ログデータ内のスループットの値が20Mbpsのトリガ値より大きいかどうかを判定することができる。ルールが偽であると評価した場合、システム102は、いずれのコンピュータ実行可能アクションも実行しなくてもよい。トリガルールが真であると評価した場合、システム102は、本明細書に記載されるように、第3のUI要素306を通じて指定され得る1つ以上のコンピュータ実行可能アクションを実行することができる。
第3のUI要素306は、例えば「アクションを構成(Compose Actions)」とラベル付けされてもよく、アクション宛先(action destination)メニュー306A、アクションメニュー306B、及びアクションパラメータメニュー306Cを含んでもよい。アクション宛先メニュー306A、アクションメニュー306B、アクションパラメータメニュー306Cを通じて、ログベースのマッシュアップのための複数のコンピュータ実行可能アクションをユーザ112に表示することができる。システム102は、1つ以上の電子トリガイベントに関連づけられた(例えば、第1のログデータ内の)第1の情報が(第2のUI要素304を介して選択された)1つ以上のトリガルールを満たすかどうかに基づいて実行されるべき1つ以上のコンピュータ実行可能アクションの選択を含み得る第2の入力を受信することができる。1つ以上のコンピュータ実行可能アクションは、第3のUI要素306に表示されるように、複数のコンピュータ実行可能アクションの中から選択されてもよい。いくつかの例示的な実施形態において、1つ以上のコンピュータ実行可能アクションは、APIプロバイダの対応する1つ以上のAPIエンドポイントへの1つ以上のAPIコールに対応し得る。
アクション宛先メニュー306Aは、ドロップダウンメニューでもよく、このドロップダウンメニューが、第1のログデータ内の(すなわち、電子トリガイベントに関連づけられた)第1の情報が1つ以上のトリガルールを満たす場合にコンピュータ実行可能アクションが実行され得るアクション宛先のセットを列挙してもよい。例えば、アクション宛先のセットは、APIプロバイダのリストを含んでもよく、該プロバイダの各々が、APIベースのアクションとして1つ以上のAPIエンドポイントを提供してもよい。ユーザ112は、アクション宛先のセットの中から1つ以上のアクション宛先を選択するための選択肢を提供され得る。
アクションメニュー306Bは、選択されたアクション宛先に関連づけられた複数のアクションをユーザ選択可能な選択肢として列挙し得るドロップダウンメニューでもよい。アクションメニュー306B内の各アクションは、(アクション宛先メニュー306Aを介してアクション宛先として選択された)APIプロバイダのAPIエンドポイントに対応し得る。1つ以上の実施形態において、アクション宛先メニュー306Aを提供する代わりに、アクション宛先メニュー306A内の全てのアクション宛先がアクションメニュー306B内のアクションと組み合わせられて、単一のアクションリストを提供してもよい。このような実装において、アクションメニュー306B内のアクションのテキスト記述は、アクション宛先(又は、APIプロバイダ名)と連結されてもよい。例えば、アクション宛先が「Slack(登録商標)」であり、アクションが「メッセージを送信(send a message)」である場合、テキスト記述は「Slackでメッセージを送信(Send a message on Slack)」として提供されてもよい。
アクションパラメータメニュー306Cは、アクションメニュー306Bを介して選択されたアクションに対するユーザ選択可能な入力として複数のアクションパラメータを表示し得るドロップダウンメニューでもよい。アクションパラメータメニュー306C内の各アクションパラメータは、APIエンドポイント(すなわち、アクションメニュー306Bを通じて選択されたアクション)のエンドポイントパラメータに対応してもよく、アクションを選択するとユーザ112に表示されてもよい。
限定でなく例として、アクション宛先がSlack(登録商標)として選択された場合、アクションメニュー306Bは、これらに限られないが、リマインダを追加(Add Reminder)、ダイレクトメッセージを送信(Send Direct Message)、チャネルを作成(Create Channel)、チャネルトピックを設定(Set Channel Topic)、ステータスを設定(Set Status)、チャネルメッセージを送信(Send Channel Message)、又はプライベートチャネルメッセージを送信(Send Private Channel Message)などのアクションを投入されてもよい。ユーザ112は、アクションを「ダイレクトメッセージを送信」として選択することができ、アクションパラメータを「ツイートテキスト」及び「ツイートタイムスタンプ」として選ぶことができる。コンピュータ実行可能アクションは、特定のユーザのツイート及びツイートのタイムスタンプを含むメッセージを用いてslack(登録商標)でメッセージを送信するアクションとして構成され得る。
第4のUI要素308は、例えば「Go」とラベル付けされてもよく、ボタンでもよい。ボタンを選択すると、システム102は、第1のUI要素302を介して提供されたトリガデータソースパス、第2のUI要素を介した第1の入力、及び第3のUI要素306を介した第2の入力に基づいてマッシュアップテンプレートを構築することができる。
電子UI300は、トリガデータソースパス、1つ以上のトリガルール、及びコンピュータ実行可能アクションの選択を示すための例示的な例として提供されているに過ぎず、本開示を制限するものと解釈されるべきでないことに留意されたい。いくつかの実施形態において、電子UI300は、ユーザ112が複数のトリガデータソースパス及び/又は複数のコンピュータ実行可能アクションを選択できるように、適切に修正されてもよい。例えば、電子UI300を通じて、単一のコンピュータ実行可能アクションをトリガするために複数のトリガデータソースが選択されてもよく、あるいは複数のコンピュータ実行可能アクションをトリガするために1つのトリガデータソースが選択されてもよい。
さらに、電子UI300内のトリガルールは例として提供されているに過ぎず、本開示を限定するものと解釈されるべきでないことに留意されたい。いくつかの実施形態において、電子UI300は、ユーザ112がより複雑なトリガルール、例えば、ネストされたルール(例えば、第1のルールが満たされている場合、第2のルールが満たされているかをチェックし、次いでアクションをトリガする)又は適切な論理演算子を通じた複数のトリガルールの組み合わせ(例えば、第1のルール「AND」第2のルールの双方が満たされている場合、アクションをトリガする)などを構成できるように、適切に修正されてもよい。
さらに、電子UI300は、ログベースのマッシュアップを構成するためのステップバイステップのアプローチを例示するための例として提供されているに過ぎないことに留意されたい。電子UI300は、ユーザ112がツールボックス(すなわち、UI)を使用して複数のブロックをドラッグアンドドロップすることができ得る場合のドラッグアンドドロップアプローチなど、任意の他のアプローチに従うように構成することもできる。ユーザ112は、本開示の範囲から逸脱することなく、これらの複数のブロックに関連づけられたパラメータを構成し、ブロック間で矢印を接続してブロック間の関係を確立するための選択肢を提供されてもよい。
図4は、本開示に記載される少なくとも1つの実施形態による、ログベースのマッシュアップのコード生成の一例示的な方法のフローチャートを示す。図4は、図1、図2及び図3の要素と関連して説明される。図4を参照し、フローチャート400が示される。フローチャート400に示される方法は402で開始でき、図1又は図2のシステム102などの任意の適切なシステム、装置、又はデバイスにより実行されてもよい。
402において、トリガデータソースパスが受信され得る。トリガデータソースパスは、トリガデータソース114に関連づけられ得、これは、ログデータ内の新しいレコードについて監視される必要があり得る。各々の新しいレコードは、電子トリガイベントに対応することができる。例えば、温度監視デバイスから温度ログデータを受信した場合、新しい温度値が電子トリガイベントに対応してもよい。1つ以上の実施形態において、プロセッサ202は、トリガデータソースパスを受信し、受信したトリガデータソースパスに基づいてトリガデータソース114を選択するように構成され得る。例えば、図3に示すように、トリガデータソースパスは、第1のUI要素302を介して受信することができる。
404において、第1のログデータがトリガデータソース114から受信され得、1つ以上の電子トリガイベントに関連づけられた第1の情報を含み得る。1つ以上の実施形態において、プロセッサ202は、トリガデータソース114からの1つ以上の電子トリガイベントに関連づけられた第1の情報を含む第1のログデータを受信するように構成され得る。第1のログデータ内の第1の情報は、1つ以上の電子トリガイベントに対応する1つ以上のレコードを(例えば、1つ以上の文の形式で)含んでもよい。第1のログデータ内の各レコードは、人間に読めるフォーマットで表現されてもよく、単語トークンと数値の双方を含んでもよい。
406において、受信した第1のログデータから1つ以上のトリガ出力パラメータが抽出され得る。1つ以上の実施形態において、プロセッサ202は、受信した第1のログデータの第1の文トークンから1つ以上のトリガ出力パラメータを抽出するように構成され得る。例えば、受信した第1のログデータは、複数の文トークンにトークン化され(tokenized)てもよい。複数の文トークンのうち第1の文トークンから、第1の単語トークンセットが抽出され得る。そのような単語トークンは、1つ以上のトリガ出力パラメータとして名詞、名詞句、又は固有表現(named entities)のうち1つ以上を含んでもよい。さらに又は代わりに、第1の文トークンにおいて、固有表現であり、かつ直接目的語又は前置詞の目的語の係り受け(dependency)を有する別の単語トークンが存在するという判定に基づいて、第1の文トークンにおいて、名詞句主語(nominal subject)又は前置詞修飾語句(prepositional modifier)の先頭の係り受けを有する単語トークンがトリガ出力パラメータとして抽出されてもよい。1つ以上のトリガ出力パラメータの抽出に関するさらなる詳細は、例えば、図6A及び図6Bで説明される。
1つ以上の実施形態において、1つ以上のトリガ出力パラメータは、第1のログデータに関連づけられた一般的パラメータでもよい。このような一般的パラメータの例は、これらに限られないが、第1のログデータのトリガデータソースパス、第1のログデータを含むログファイルの名前、第1のログデータ内の特定の行又はレコード番号、及び第1のログデータ内の新しい行又はレコード番号を含んでもよい。
408において、抽出された1つ以上のトリガ出力パラメータに基づいて第1のトリガルールセットが表示され得る。第1のトリガルールセットは、ユーザデバイス104の電子UI106に第1のユーザ選択可能な選択肢セットとして表示されてもよい。1つ以上の実施形態において、プロセッサ202は、抽出された1つ以上のトリガ出力パラメータに基づいて、ユーザデバイス104の電子UI106に第1のユーザ選択可能な選択肢セットとして第1のトリガルールセットを表示するように構成され得る。各トリガルールは、1つ以上のトリガ出力パラメータ、トリガ基準、及びトリガ値を含んでもよい。
410において、第1の入力が受信され得る。第1の入力は、表示された第1のトリガルールセットのうち1つ以上のトリガルールの選択に対応することができる。1つ以上の実施形態において、プロセッサ202は、表示された第1のトリガルールセットのうち1つ以上のトリガルールの選択を含む第1の入力を受信するように構成され得る。トリガルールの選択の詳細は、例えば図3で提供されている。
412において、第2の入力が受信され得る。第2の入力は、1つ以上のコンピュータ実行可能アクションの選択を含むことができる。1つ以上のコンピュータ実行可能アクションは、1つ以上の電子トリガイベントに関連づけられた第1の情報が(410で第1の入力として受信される)1つ以上のトリガルールを満たすかどうかに基づいて実行されてもよい。1つ以上の実施形態において、プロセッサ202は、1つ以上のコンピュータ実行可能アクションの選択を含む第2の入力を受信するように構成され得る。コンピュータ実行可能アクションの選択の詳細は、例えば図3で提供されている。
414において、トリガデータソース114に関連づけられた(402で提供される)トリガデータソースパス、(410で提供される)第1の入力、及び(412で提供される)第2の入力に基づいてマッシュアップテンプレートが生成され得る。1つ以上の実施形態において、プロセッサ202は、マッシュアップテンプレートを生成するように構成され得る。マッシュアップテンプレートは、トリガデータソースパス、第1のトリガルールセット、及び1つ以上のコンピュータ実行可能アクションのアクションパラメータを含むことができる。第1のトリガルールセット内の各トリガルールは、トリガ基準、トリガ値、及びトリガ出力パラメータを含むことができる。マッシュアップテンプレートの一例が図5で提供される。
1つ以上の実施形態において、生成されたマッシュアップテンプレートは、これである場合にあれをする(IF This Then That、IFTTT)のアプローチに基づく条件付きテンプレートでもよく、それにより、アクションはトリガがルールを満たすときトリガされる。生成されたマッシュアップテンプレート内のデータは、JavaScript(登録商標) Object Notation(JSON)又は拡張マークアップ言語(Extensible Markup Language、XML)などの適切なファイルフォーマットでキー値ペア(key-value pairs)として構造化されてもよい。データは、例えば、ログベースのマッシュアップの名前、ログベースのマッシュアップの説明、ログベースのマッシュアップ内のトリガルールの有効化状態(真又は偽のいずれかであり得る)、1つ以上のトリガルールのための実行可能コード、トリガルールに関連づけられた入力パラメータ(トリガ基準又はトリガ値など)、1つ以上のコンピュータ実行可能アクションのための実行可能コード、及び1つ以上のコンピュータ実行可能アクションのための実行可能コードに渡すべきパラメータのセットを含んでもよい。
1つ以上の実施形態において、マッシュアップテンプレートは、単一のコンピュータ実行可能アクションを引き起こす単一のトリガデータソース、複数のコンピュータ実行可能アクションを引き起こす単一のトリガデータソース、単一のコンピュータ実行可能アクションを引き起こす複数のトリガデータソース、又は複数のコンピュータ実行可能アクションを引き起こす複数のトリガデータソースなどの、様々なトリガアクションシナリオをサポートするように生成することができる。
416において、(414において生成される)マッシュアップテンプレートに基づいてコンピュータ実行可能マッシュアップコードが生成され得る。コンピュータ実行可能マッシュアップコードは、ランタイムシステム108上で実行可能であるように構成され得、ログデータの取り出し及び電子トリガイベントの検出に関連づけられた1つ以上のコンピュータ実行可能トリガコード、1つ以上のトリガルールに関連づけられた1つ以上のコンピュータ実行可能ルールコード、及び1つ以上のコンピュータ実行可能アクションに関連づけられた1つ以上のコンピュータ実行可能アクションコードを含むことができる。1つ以上の実施形態において、コンピュータ実行可能トリガコードは、トリガデータソースに関連づけられた受信した第1のデータソースパスにさらに基づいて生成されてもよい。コンピュータ実行可能マッシュアップコードは、これらに限られないがJava(登録商標)、Java 2ME、C/C++、Perl、Pythonを含む任意の適切なプログラミング言語又はプログラミング言語の組み合わせで書くことができる。
1つ以上の実施形態において、1つ以上のコンピュータ実行可能トリガコードは、(402で指定される)トリガデータソースパスを監視して電子トリガイベントとして新しいレコードを含むログデータファイルを調べるトリガウォッチャ機能を実装する1つ以上のプログラムに対応してもよい。
1つ以上の実施形態において、各々のコンピュータ実行可能ルールコードは、ログデータ内のトリガ出力パラメータの値とトリガ値が入力として提供され得る関数宣言、コーナーケースチェック、ログデータ内のトリガ出力パラメータの値とトリガ値がフォーマットされているかどうかを判定するチェック、及びトリガルールの結果を評価するための(ルール演算子/トリガ基準としての)ビルトイン演算子への呼び出しなどの一連のコードセクションを含んでもよい。典型的には、コーナーケースは、通常の動作パラメータの範囲外でのみ発生する問題又は状況、特に、複数の環境変数又は条件が同時に極端なレベルにあるとき、各パラメータがそのパラメータに対して指定された範囲内にあるとしてもそれ自体が現れるものを含む。
1つ以上の実施形態において、コンピュータ実行可能アクションコードは、オープンAPI仕様(Open API Specification、OAS)ファイルなどのAPI仕様ファイルに基づいて生成されてもよい。API仕様ファイルは、コンピュータ実行可能アクションを実行するためにAPIエンドポイントを呼び出すのに必要な情報を含んでもよい。例えば、API仕様ファイルは、APIホストアドレス、APIエンドポイント、及びAPIエンドポイントのエンドポイントパラメータなどの情報を含んでもよい。
一実施形態において、プロセッサ202は、コンピュータ実行可能アクションに関連づけられたAPIに関するAPI仕様ファイルから、これらに限られないがAPIホストアドレス、APIエンドポイント、及びエンドポイントパラメータを含む情報を取り出すことができる。プロセッサ202は、取り出された情報及びアクションコードテンプレートに基づいて、1つ以上のコンピュータ実行可能アクションコードのうちのコンピュータ実行可能アクションコードを生成してもよい。例えば、アクションコードテンプレートは、コンピュータ実行可能アクションコードを生成するために、取り出された情報を投入され得る。生成されたコンピュータ実行可能アクションコードは、ログベースのマッシュアップのコンピュータ実行可能マッシュアップコードに含まれてもよい。
418において、生成されたマッシュアップコードがランタイムシステム108上で実行され得る。ここで、ランタイムシステム108は、典型的にプログラム実行に必要とされる管理されたハードウェア及びソフトウェアリソースの集合を参照することができる。マッシュアップコードの実行は、1つ以上のコンピュータ実行可能トリガコード、1つ以上のトリガルールに関連づけられた1つ以上のコンピュータ実行可能ルールコード、及び1つ以上のコンピュータ実行可能アクションに関連づけられた1つ以上のコンピュータ実行可能アクションコードの実行を含んでもよい。1つ以上の実施形態において、ランタイムシステム108は、1つ以上のコンピュータ実行可能トリガコードを実行して、トリガデータソース114から第2のログデータを受信し、1つ以上の電子トリガイベントに関連づけられた第2の情報を抽出することができる。その後、ランタイムシステム108は、1つ以上のコンピュータ実行可能ルールコードを実行して、抽出された第2の情報が1つ以上のトリガルールを満たすという判定に基づいてトリガ応答を生成することができる。ランタイムシステム108はさらに、1つ以上のコンピュータ実行可能アクションコードを実行して、トリガ応答に基づいて1つ以上のコンピュータ実行可能アクションを実行することができる。
一実施形態において、コンピュータ実行可能アクションは、生成されたトリガ応答が真(1)である場合に実行され得るAPIベースのアクションでもよい。コンピュータ実行可能アクションコードの実行により、APIコールがAPIプロバイダのそれぞれのAPIエンドポイントに対して行われて、APIベースのアクションを実行することができる。例えば、ログデータが、華氏68度のトリガ値を有するトリガ出力パラメータ「室温」に対して華氏80度の値を含み得る。トリガ基準が「より大きい」である場合、トリガ応答は、華氏80度が華氏68度のトリガ値より大きいとき真(1)であり得る。トリガ応答が、トリガルールが満たされていることを示すとき、コンピュータ実行可能アクションが、Slack(登録商標)に通知を投稿することにより実行され得る。通知を投稿するために、コンピュータ実行可能アクションコードが実行されて、通知を投稿するためのAPIコールをSlack(登録商標)サーバに投稿してもよい。Slack(登録商標)に関連づけられたユーザIDが、APIコールでエンドポイントパラメータ(すなわち、アクションパラメータ)として提供されてもよい。
制御は終了に移行し得る。フローチャート400は、402、404、406、408、410、412、414、416、及び418などの別個の動作として示されているが、しかしながら、特定の実施形態において、このような別個の動作は、開示された実施形態の本質を損なうことなく特定の実装に依存してさらなる動作にさらに分割されてもよく、より少ない動作に組み合わせられてもよく、あるいは削除されてもよい。
図5は、本開示に記載される少なくとも1つの実施形態による、一例示的なマッシュアップテンプレートを示す。図5は、図1、図2、図3、及び図4の要素と関連して説明される。図5を参照し、マッシュアップテンプレート500が示され、これは、受信した第1の入力(410で受信)及び受信した第2の入力(412で受信)に基づいて構築され得る。
システム102は、IFTTT(If this then that)アプローチに基づいてマッシュアップテンプレート500を構築することができる。IFTTTアプローチでは、マッシュアップテンプレート500は、トリガセクション502、ルールセクション504、及びアクションセクション506を含んでもよい。マッシュアップテンプレート500は、データを構造化されたフォーマットで含んでもよい。一例として、マッシュアップテンプレート500は、キー値ペアを有するJSON(又は、YAML)フォーマットで示される。表2に、マッシュアップテンプレート500の共通キーの簡単な説明を以下のとおり示す。
マッシュアップテンプレート500内のデータは、マッシュアップテンプレート500の名前508及びマッシュアップテンプレート500の説明510を含むことができる。トリガセクション502は、トリガデータソース114のパス又はURLを列挙するトリガデータソースパス502Aを含むことができる。ルールセクション504は、トリガ出力パラメータ504A、トリガ基準504B、及びトリガ値504Cを含むことができる。同様に、アクションセクション506は、アクション506Aを「sql.insert」として、アクションパラメータ506Bを「connection: postgresql」、「table: “logfile”」、「Data: file_path: “{{trigger.file_path}}”, file_name: “{{trigger.file_name}}”, 及びlog_line:“{{trigger.line}}”」として含むことができる。ランタイムシステム108上で実行されたとき、マッシュアップテンプレート500に基づいて生成されたマッシュアップコードは、file_path、file_name、及びlog_lineの値をログファイルテーブルに挿入するように構成され得る。
図6A及び図6Bは合わせて、本開示に記載される少なくとも1つの実施形態による、ログデータからの1つ以上のトリガ出力パラメータの抽出の一例示的な方法のフローチャートを示す。図6A及び図6Bは、図1、図2、図3、図4、及び図5の要素と関連して説明される。図6A及び図6Bを参照し、フローチャート600が示される。フローチャート600に示される方法は602で開始でき、図1又は図2のシステム102などの任意の適切なシステム、装置、又はデバイスにより実行されてもよい。
602において、第1のログデータがトリガデータソース114から受信され得、1つ以上の電子トリガイベントに関連づけられた第1の情報を含み得る。1つ以上の実施形態において、プロセッサ202は、トリガデータソース114から1つ以上の電子トリガイベントに関連づけられた第1の情報を含む第1のログデータを受信するように構成され得る。第1のログデータ内の第1の情報は、1つ以上の電子トリガイベントを示す1つ以上のレコードとして1つ以上の文を含むことができる。
604において、受信した第1のログデータが文トークンのセットにトークン化され得る。1つ以上の実施形態において、プロセッサ202は、受信した第1のログデータを文トークンのセットにトークン化するように構成され得る。トークン化は、「終止符(full stop)」、カンマ、コロン、又はセミコロンなどの句読点に基づいて実行することができる。いくつかの実施形態において、トークン化は、これらに限られないが、自然言語ツールキット(Natural Language Toolkit、NTLK)及びSpacy(登録商標)などのNLP文トークン化ツールにより実行されてもよい。
606において、文トークンのセットから第1の文トークンが選択され得る。1つ以上の実施形態において、プロセッサ202は、文トークンのセットのうち第1の文トークンを選択するように構成され得る。例えば、第1の文トークンは、第1のログデータ内の最近更新された行番号又は最近更新されたレコードに対応してもよい。例えば、Juniper(登録商標)デバイスログファイルからの第1の文トークンは、「そのスループットが25Mbpsである(the throughput is 25 Mbps)」であり得る。
608において、選択された第1の文トークンが複数の単語トークンにトークン化され得る。1つ以上の実施形態において、プロセッサ202は、選択された第1の文トークンを複数の単語トークンにトークン化するように構成され得る。選択された第1の文トークンのトークン化は、句読点(カンマ、セミコロン、ハイフンなど)とスペースを使用して単語トークンを分離すること、又はNTLK及びSpacy(登録商標)などのNLP単語トークン化ツールを使用することにより動作してもよい。前の例を参照すると、第1の文トークン「そのスループットが25Mbpsである」は、5つの単語トークン、すなわち「その(the)」、「スループットが(throughput)」、「である(is)」、「25」、及び「Mbps」にトークン化され得る。
610において、複数の単語トークンのうち1つ以上の単語トークンに対して1つ以上の固有表現が決定され得る。1つ以上の実施形態において、プロセッサ202は、複数の単語トークンのうち1つ以上の単語トークンに対する1つ以上の固有表現を決定するように構成され得る。各固有表現は、それぞれの単語トークンが表す現実世界の概念を用いてそれぞれの単語トークンへのラベルを提供することができる。例えば、各固有表現は、それぞれの単語トークンが、人の名前、企業/事業の名前、地理的場所、製品の名前、タイムスタンプ、金額、イベントの名前、基本値(cardinal value)、又はパーセンテージ、又は他のユーザ定義の固有表現のうち1つであるかどうかを表してもよい。前の例を参照し、表3に、5つの単語トークンのうち1つの固有表現を以下のとおり提供することができる。
612において、選択された第1の文トークンの複数の単語トークンの品詞(part-of-speech、POS)タグ付けが実行され得る。POSタグ付けは、第1の文トークンの各単語トークンについてPOSタグを識別するために実行することができる。品詞タグは、例えば、基数(cardinal number)、動詞、名詞、代名詞、形容詞、限定詞、副詞、前置詞、接続詞、及び間投詞を含んでもよい。1つ以上の実施形態において、プロセッサ202は、選択された第1の文トークンの複数の単語トークンのPOSタグ付けを実行するように構成され得る。前の例を参照し、表4に、5つの単語トークンのPOSタグを以下に示すとおり提供する。さらに、POSに基づいて名詞句を抽出することもできる。名詞句は、名詞を含む品詞パターンである。これらは、他の品詞が文法的な意味をなすものであれば何でも含むこともでき、複数の名詞を含むことができる。例えば、表4に、名詞句を以下に示すとおり提供する。
614において、名詞、名詞句、又は固有表現のうち1つ以上を含む第1の単語トークンセットが選択され得る。第1のトークンセットは、(612における)POSタグ付けと(610において)決定された1つ以上の固有表現に基づいて、(608で取得された)複数の単語トークンから選択することができる。1つ以上の実施形態において、プロセッサ202は、POSタグ付け及び決定された1つ以上の固有表現に基づいて第1の単語トークンセットを選択することができる。前の例を参照すると、第1の単語トークンセットは「そのスループット(the throughput)」を含み得、なぜならば、それが名詞句を表すためである。
616において、複数のPOSタグを有する単語トークンの複数の再来(reoccurrences)を回避するために第1の単語トークンセットがフィルタリングされ得る。例えば、表4から、文トークンは、「スループット」を「NN」として、「そのスループット」を「名詞句」として含む。この場合、システム102は、第1の単語トークンセットを(名詞句としての)「そのスループット」のみ含むようにフィルタリングすることができ、なぜならば、それが用語「スループット」を含むためである。
618において、選択された第1の文トークンから第1の単語トークンが選択され得る。このような選択は、選択された第1の文トークンの単語トークンにわたる第1の反復(iteration)で実行することができる。
620において、選択された第1の単語トークンが固有表現に対応し、選択された第1の単語トークンセット(又は、616で取得される、フィルタリングされた第1の単語トークンセット)に含まれるかどうかが判定され得る。選択された第1の単語トークンが固有表現に対応し、選択された第1の単語トークンセット(又は、フィルタリングされた第1の単語トークンセット)に含まれる場合、制御は622に移行し得る。そうでない場合、制御は618に移行して、選択された第1の文トークンからの次の単語トークンの選択のために別の反復を実行することができ、次いで、制御は620に移行し得る。
622において、選択された第1の単語トークンが直接目的語(direct object、dobj)の係り受けを有するかどうかが判定され得る。直接目的語は、動詞のアクションを受け得る名詞又は名詞句であり得る。1つ以上の実施形態において、プロセッサ202は、選択された第1の単語トークンが直接目的語(dobj)の係り受けを有するかどうかを判定するように構成され得る。選択された第1の単語トークンが直接目的語(dobj)の係り受けを有する場合、制御は624に移行し得る。そうでない場合、制御は626に移行し得る。
624において、選択された第1の単語トークンの主語が選択される。そうするために、選択された第1の単語トークンが直接目的語(dobj)の係り受けを有しているという判定に基づいて、選択された第1の文トークンから第2の単語トークンが選択され得る。第2の単語トークンは、名詞句主語(nominal subject、nsubj)の係り受けを有する第1の文トークンの最も左側の単語でもよい。言い換えれば、第2の単語トークンは、選択された第1の単語トークンの前に生じる構文的な子(syntactic child)であり得る。制御は628に移行し得る。
626において、選択された第1の単語トークンが前置詞の目的語(object of preposition、pobj)の係り受けを有するかどうかが判定され得る。前置詞の目的語は、前置詞により支配され得る名詞又は名詞句であり得る。1つ以上の実施形態において、プロセッサ202は、選択された第1の単語トークンが前置詞の目的語(pobj)の係り受けを有するかどうかを判定するように構成され得る。選択された第1の単語トークンが前置詞の目的語(pobj)の係り受けを有する場合、制御は628に移行し得る。そうでない場合、制御は632に移行し得る。
628において、選択された第1の単語トークンの主語が選択される。そうするために、選択された第1の単語トークンが前置詞の目的語(pobj)の係り受けを有しているという判定に基づいて、選択された第1の文トークンから第2の単語トークンが選択され得る。第2の単語トークンは、前置詞修飾語句(prep)の係り受けを有する可能性があり、第2の単語トークンの先頭は、選択された第1の単語トークンの主語である可能性がある。1つ以上の実施形態において、プロセッサ202は、選択された第1の単語トークンが前置詞の目的語(pobj)の係り受けを有しているという判定に基づいて、選択された第1の文トークンから、前置詞修飾語句(prep)の係り受けを有する第2の単語トークンを選択するように構成され得る。
630において、第1の文トークンから(624又は628で)選択された第2の単語トークンを抽出することにより1つ以上のトリガ出力パラメータが抽出され得る。
632において、制御は618に移行して、選択された第1の文トークンからの次の単語トークンの選択のための別の反復を実行することができる。選択の後、選択された第1の文トークンの最後の単語トークンまで、620から632の動作を繰り返すことができる。これは、選択された第1の単語トークンが直接目的語(dobj)の係り受けも前置詞の目的語(pobj)の係り受けも有さない場合に実行され得る。
制御は終了に移行し得る。フローチャート600は、602、604、606、608、610、612、614、616、618、620、622、624、626、628、630、及び632などの別個の動作として示されているが、しかしながら、特定の実施形態において、このような別個の動作は、開示された実施形態の本質を損なうことなく特定の実装に依存してさらなる動作にさらに分割されてもよく、より少ない動作に組み合わせられてもよく、あるいは削除されてもよい。
図7は、本開示に記載される少なくとも1つの実施形態による、データパイプライン、ストリーミング、又はキューイングシステムからログデータを受信する一例示的なパイプラインを示す。図7は、図1、図2、図3、図4、図5、及び図6Aと図6Bからの要素と関連して説明される。図7を参照し、一例示的なパイプライン700のブロック図が示され、パイプライン700は、ログファイル702、データパイプライン、ストリーミング、又はキューイングシステム704、ウォッチャ706、トリガルールブロック708、及びアクションブロック710を含む。ウォッチャ706、トリガルールブロック708、及びアクションブロック710は、システム102のソフトウェア及び/又はハードウェアリソースを使用して実装され得る。
データパイプライン、ストリーミング、又はキューイングシステム704は、高可用性要件を有する高度分散システム(例えば、Kafka(登録商標))として実装されてもよい。このような一実装において、ウォッチャ706は、ログファイル702のためのトリガデータソースパスを直接監視しなくてもよい。代わりに、ウォッチャ706は、データパイプライン、ストリーミング、又はキューイングシステム704の出力を監視することができる。最初、データパイプライン、ストリーミング、又はキューイングシステム704は、様々な分散されたトリガデータソースから、ログファイル702(第1のログファイル702A、第2のログファイル702B、第3のログファイル702C、及び第nのログファイル702Nなど)を受信することができる。データパイプライン、ストリーミング、又はキューイングシステム704は、MQテレメトリトランスポート(MQ Telemetry Transport、MQTT)プロトコルなどのパブリッシュサブスクライブ(publish-subscribe)ネットワークプロトコルに従って複数のトピックを発行する(publish)ことができるメッセージブローカ704Aを含んでもよい。MQTTの場合、メッセージブローカ704Aは、MQTTブローカとも呼ばれることもある。各々の発行されたトピックは、ログデータのタイプ又はログファイルの特定のバージョンに対応することができる。例えば、第1のログファイル702Aが温度データを含み、第2のログファイル702Bが周囲圧力データを含む場合、メッセージブローカ704Aは、温度及び圧力などの2つのトピックを発行してもよい。ウォッチャ706は、サブスクライバ(例えば、MQTTクライアント)として実装されてもよく、メッセージブローカ704Aの1つ以上のトピックをサブスクライブすることができる。ここで、メッセージブローカ704Aは、システム102のためのトリガデータソースとして動作してもよい。
ウォッチャ706は、メッセージブローカ704Aから、サブスクリプションに基づいて第1のトピック(例えば、温度)に関連づけられた第1のメッセージペイロードを受信することができる。その後、ウォッチャ706は、第1のメッセージペイロードから第1のログファイル702Aの形式の第1のログデータを抽出することができる。第1のログデータは、(図4並びに図6A及び図6Bに記載されているように)トリガ出力パラメータを抽出するための参照として使用されてもよい。いつでも、ウォッチャ706は、第1のメッセージペイロードを受信した後、第1のトピックに関連づけられた第2のメッセージペイロードをメッセージブローカ704Aから受信することができる。ウォッチャ706は、第2のログデータが第1のログデータ内の第1の情報と異なる第2の情報を含むという判定に基づいて、第2のメッセージペイロードから第2のログデータを抽出することができる。言い換えれば、第2のログデータ内の第2の情報は、(例えば、新しい行番号又は値で表される)新しいデータ点又はレコードを含み得る。
トリガルールブロック708は、第2のログデータを分析して、(例えば、図4の406で選択されるような)1つ以上のトリガルールが満たされているかどうかを判定することができる。その後、トリガルールブロック708は、1つ以上のトリガルールが満たされているか否かを示すトリガ応答(例えば、満たされている場合は1、満たされていない場合は0)をアクションブロック710に提供することができる。アクションブロック710は、トリガ応答に基づいて1つ以上のコンピュータ実行可能アクションを実行することができる。
図8は、本開示に記載される少なくとも1つの実施形態による、ログベースのマッシュアップのコード生成のための一例示的な処理パイプラインを表す例示的な図である。図8は、図1、図2、図3、図4、図5、図6A、図6B、及び図7の要素と関連して説明される。図8を参照し、処理パイプライン800が示される。処理パイプライン800は、ウォッチャ機能802、NLPエンジン804、トリガブロック806、ルールブロック808、アクションブロック810、及び電子ユーザインターフェース(UI)812を含み得る。さらに、ユーザ814が示されており、ユーザ814は、電子UI812を介してトリガ(すなわち、トリガデータソースパスを入力する)、1つ以上のトリガルール、及び1つ以上のコンピュータ実行可能アクションを構成することができる。
ウォッチャ機能802、NLPエンジン804、トリガブロック806、ルールブロック808、及びアクションブロック810は、システム102上のプログラムコード、マイクロサービス、又はハードウェアベースのリソースのうち1つ以上を通じて実装することができる。このようなブロック及び機能に修正がなされてもよい。例えば、このようなブロック又は機能は、開示された実施形態の本質を損なうことなく特定の実装に依存してさらなる動作ブロックにさらに分割されてもよく、より少ない動作ブロックに組み合わせられてもよく、あるいは削除されてもよい。
ウォッチャ機能802は、トリガデータソースパスを監視してトリガデータソースからログファイル802A...802Nを受信するように構成され得る。ウォッチャ機能802は、ログファイル802A...802Nを監視して、ログファイル802A...802Nのいずれかにおける新しいログデータを検出することができる。新しいログデータは、入力としてNLPエンジン804に提供され得る。NLPエンジン804は、トリガ出力パラメータを抽出することができ、これは、トリガルールの構成のために入力としてトリガブロック806に提供され得る。これらのトリガ出力パラメータは、ユーザ814が1つ以上のトリガ出力パラメータを含み得る1つ以上のトリガルールを構成できるように、電子UI812上に表示されてもよい。
1つ以上のトリガルールを構成した後、ユーザ816は、電子UI812を介して1つ以上のコンピュータ実行可能アクションをさらに構成することができる。このようなアクションは、新しいログデータ内の1つ以上の電子トリガイベントに関連づけられた情報が1つ以上のトリガルールを満たすかどうかに基づいて実行され得る。次いで、ユーザ816は、ランタイムシステム108における実行のためのするためのコンピュータ実行可能マッシュアップコードを生成するための入力を提供することができる。
限定でなく例として、データベースシステムにおいて、新しい行がテーブルに挿入されるたびにSlack(登録商標)にメッセージを送信するために、コンピュータ実行可能マッシュアップコードが生成されてもよい。これらのデータベースシステムは、ログ先行書き込み(write-ahead logging、WAL)ログファイルを生成することができる。テーブルで実行される操作は、それらがテーブルで実行される前に、WALログファイルに最初記録され得る。したがって、WALログファイルは、テーブル上の全ての操作のログデータを記録することができる。これらのウォッチャ機能802は、WALログファイルを受信して新しい行がテーブルに挿入されているかどうかを検出し、次いで、Slack(登録商標)にメッセージを送信してユーザ814に通知することができる。WALログファイルへのアクセスは、これらのデータベースシステム上のデータベースに直接アクセスするより少ない計算及びメモリリソースを利用する可能性がある。このような検出のために、WALログ内の行番号に関連づけられたエントリなどのトリガ出力パラメータの値が、トリガ値「INSERT INTO」とマッチされてもよい。エントリがトリガ値を含む場合、Slack(登録商標)上でメッセージを送信するためにコンピュータ実行可能アクションが実行され得る。
限定でなく別の例として、Linux(登録商標)/Windows(登録商標)サーバで使用されるログファイルを使用して、IT専門家が異なる問題を検出及び診断するのに役立ててもよい。表5に、Linuxサーバのログファイルの一例示的なリストを簡単な説明と共に以下のとおり提供する。
表5を参照し、/var/log/auth.logファイルを監視することにより、ハッキングイベントを検出するためにマッシュアップコードが生成されてもよい。あるいは、/var/log/cron.logログファイルを分析することにより、スケジュールされたタスクの実行を監視するためにマッシュアップコードが生成されてもよい。あるいは、/var/log/kern.logログファイルを分析することにより、カーネルエラーを検出するためにマッシュアップコードが生成されてもよい。
本開示に記載される実施形態は、IoTアプリケーション、データベース管理システム、又はイベント処理アプリケーションなどの多くの適用分野で用いることができる。例えば、ヘルスモニタリングシステムでは、患者のウェアラブルIoTデバイスの新しい測定結果を1つ以上のログに保存することができ、該ログを使用して、ログベースのマッシュアップを生成してアクションをトリガする、例えば、患者又は関連する医師に患者の重要な健康状態についてリアルタイム又はほぼリアルタイムで知らせることができる。例えば、患者の心拍数及び血圧が心拍数及び血圧の設定閾値を超えている場合、医療提供者にメッセージが送られてもよい。
本開示の様々な実施形態は、実行されたことに応答してシステム(システム102など)に動作を実行させる命令を記憶するように構成された1つ以上の非一時的コンピュータ読取可能記憶媒体を提供することができる。動作は、トリガデータソースから1つ以上の電子トリガイベントに関連づけられた第1の情報を含む第1のログデータを受信することを含み得る。動作は、受信した第1のログデータの第1の文トークンから1つ以上のトリガ出力パラメータを抽出することと、抽出された1つ以上のトリガ出力パラメータに基づいてユーザデバイスの電子ユーザインターフェース(UI)上に第1のユーザ選択可能な選択肢セットとして第1のトリガルールセットを表示することをさらに含んでもよい。動作は、表示された第1のトリガルールセットのうち1つ以上のトリガルールの選択を含む第1の入力を受信することと、1つ以上の電子トリガイベントに関連づけられた第1の情報が1つ以上のトリガルールを満たすかどうかに基づいて実行されるべき1つ以上のコンピュータ実行可能アクションの選択を含む第2の入力を受信することとをさらに含んでもよい。動作は、受信した第1の入力及び受信した第2の入力に基づいてランタイムシステム(ランタイムシステム108など)における実行のためのコンピュータ実行可能マッシュアップコードを生成することをさらに含んでもよい。
上述のように、本開示に記載される実施形態は、以下でより詳細に論じられるように、様々なコンピュータハードウェア又はソフトウェアモジュールを含む専用又は汎用コンピュータ(例えば、図2のプロセッサ202)の使用を含んでもよい。さらに、上述のように、本開示に記載される実施形態は、記憶されたコンピュータ実行可能命令又はデータ構造を搬送し又は有するコンピュータ読取可能媒体(例えば、図2のメモリ204又は永続データ記憶装置206)を使用して実施されてもよい。
本開示で用いられるとき、用語「モジュール」又は「コンポーネント」は、モジュール又はコンポーネントのアクションを実行するように構成された特定のハードウェア実装、及び/又はコンピューティングシステムの汎用ハードウェア(例えば、コンピュータ読取可能媒体、処理デバイス、又は何らかの他のハードウェア)に記憶及び/又は実行され得るソフトウェアオブジェクト又はソフトウェアルーチンを参照し得る。いくつかの実施形態において、本開示に記載される異なるコンポーネント、モジュール、エンジン、及びサービスが、コンピューティングシステム上で実行するオブジェクト又はプロセスとして(例えば、別個のスレッドとして)実現されてもよい。本開示に記載されるシステム及び方法のいくつかは、(汎用ハードウェアに記憶及び/又は実行される)ソフトウェアで実現されるものとして一般に記載されるが、特定のハードウェア実装、又はソフトウェアと特定のハードウェア実装との組み合わせもまた可能であり、企図される。本説明において、「コンピューティングエンティティ」は、本開示において前に定義された任意のコンピューティングシステム、又はコンピューティングシステム上で動作する任意のモジュール又はモジュレートの組み合わせでもよい。
一般的な慣行により、図面に示された様々な特徴は縮尺どおりに描かれていない場合がある。本開示において提示される図示は、特定の装置(例えば、デバイス、システムなど)又は方法の実際のビューであることを意図するものではなく、単に、本開示の様々な実施形態を説明するために用いられる理想化された表現である。したがって、様々な特徴の寸法は、明確さのために任意に拡大又は縮小されている場合がある。さらに、図面のいくつかは、明確さのために簡素化されている場合がある。したがって、図面は、所与の装置(例えば、デバイス)のコンポーネントの全て、又は特定の方法の全ての動作を示していない場合がある。
本開示において、特に別記の特許請求の範囲(例えば、別記の特許請求の範囲の本文)において用いられる用語は、一般に「開放的」な用語として意図されている(例えば、中でも、用語「含んでいる」は、「含んでいるがこれに限定されない」と解釈されるべきであり、用語「有する」は、「少なくとも有する」と解釈されるべきであり、用語「含む」は、「含むがこれに限定されない」と解釈されるべきである)。
さらに、特定数の導入された請求項記載が意図されている場合、そのような意図は請求項に明示的に記載され、そのような記載がない場合、そのような意図は存在しない。例えば、理解の助けとして、以下の別記の特許請求の範囲は、請求項記載を導入するために、導入フレーズ「少なくとも1つの」及び「1つ以上の」の使用を含むことがある。
さらに、特定数の導入された請求項記載が明示的に記載されている場合であっても、当業者は、そのような記載は少なくとも記載された数を意味するよう解釈されるべきであることを認識するであろう(例えば、他の修飾語を伴わない「2つの記載」というただそれだけの記載は、少なくとも2つの記載、又は2つ以上の記載を意味する)。さらに、「A、B、及びC等のうち少なくとも1つ」又は「A、B、及びC等のうち1つ以上」と類似の規定が用いられている例において、一般に、そのような構造は、A単独、B単独、C単独、A及びB共に、A及びC共に、B及びC共に、又はA、B、及びC共に等を含むことが意図される。
さらに、明細書においてか、特許請求の範囲においてか、又は図面においてかにかかわらず、2つ以上の代替的な用語を提示するいかなる分離的なワード又はフレーズも、用語のうち1つ、用語のうちいずれか、又は双方の用語を含む可能性を考慮するよう理解されるべきである。例えば、フレーズ「A又はB」は、「A」又は「B」又は「A及びB」の可能性を含むよう理解されるべきである。
しかしながら、そのようなフレーズの使用は、不定冠詞「一の」(“a”又は“an”)による請求項記載の導入が、同じ請求項が導入フレーズ「1つ以上の」又は「少なくとも1つの」と「一の」などの不定冠詞とを含むときでも、そのような導入された請求項記載を含む任意の特定の請求項を1つのそのような記載のみ含む実施形態に限定することを暗に示すように見なされるべきではない(例えば、「一の」(“a”及び/又は“an”)は「少なくとも1つの」又は「1つ以上の」を意味するよう解釈されるべきである)。請求項記載を導入するために用いられる定冠詞の使用についても同様である。
さらに、用語「第1」、「第2」、「第3」等の使用は、本明細書において必ずしも要素の特定の順序又は数を意味するために用いられるものではない。一般に、用語「第1」、「第2」、「第3」等は、包括的識別子として異なる要素を区別するために使用される。用語「第1」、「第2」、「第3」等が特定の順序を意味することを示していない場合、これらの用語は、特定の順序を意味するように理解されるべきでない。さらに、用語「第1」、「第2」、「第3」等が要素の特定の数を意味することを示していない場合、これらの用語は、要素の特定の数を意味するように理解されるべきでない。例えば、第1のウィジェットが第1の側面を有するものとして記載される場合があり、第2のウィジェットが第2の側面を有するものとして記載される場合がある。第2のウィジェットに関する用語「第2の側面」の使用は、第2のウィジェットのそのような側面を第1のウィジェットの「第1の側面」と区別するものであり、第2のウィジェットが2つの側面を有することを意味しない場合がある。
本開示に記載される全ての例及び条件付き言語は、本発明及び発明者が当該技術分野を促進するために寄与した概念を理解する際に読者を助けるための教育的目的が意図され、このように具体的に記載された例及び条件に限定されないものとみなされるべきである。本開示の実施形態が詳細に説明されたが、本開示の主旨及び範囲から逸脱することなく様々な変更、置換、及び改変をこれに行えることを理解されたい。
上記の実施形態につき以下の付記を残しておく。
(付記1)
トリガデータソースから、1つ以上の電子トリガイベントに関連づけられた第1の情報を含む第1のログデータを受信するステップと、
前記受信した第1のログデータの第1の文トークンから1つ以上のトリガ出力パラメータを抽出するステップと、
前記抽出された1つ以上のトリガ出力パラメータに基づいてユーザデバイスの電子ユーザインターフェース(UI)に第1のユーザ選択可能な選択肢セットとして第1のトリガルールセットを表示するステップと、
前記表示された第1のトリガルールセットのうち1つ以上のトリガルールの選択を含む第1の入力を受信するステップと、
前記1つ以上の電子トリガイベントに関連づけられた前記第1の情報が前記1つ以上のトリガルールを満たすかどうかに基づいて実行されるべき1つ以上のコンピュータ実行可能アクションの選択を含む第2の入力を受信するステップと、
前記受信した第1の入力及び前記受信した第2の入力に基づいて、ランタイムシステムにおける実行のためのコンピュータ実行可能マッシュアップコードを生成するステップと、
を含む方法。
(付記2)
前記電子UIを前記ユーザデバイスに表示するステップと、
前記表示された電子UIを介して、ソースノードに関連づけられたトリガデータソースパスを受信するステップと、
前記受信したトリガデータソースパスに基づいて前記トリガデータソースを選択するステップと、
をさらに含む付記1に記載の方法。
(付記3)
前記受信した第1のログデータを文トークンのセットにトークン化するステップと、
前記文トークンのセットのうち前記第1の文トークンを選択するステップと、
前記選択された第1の文トークンを複数の単語トークンにトークン化するステップと、
前記複数の単語トークンのうち1つ以上の単語トークンに対する1つ以上の固有表現を決定するステップと、
前記選択された第1の文トークンの前記複数の単語トークンの品詞(POS)タグ付けを実行するステップと、
前記複数の単語トークンから、前記POSタグ付け及び決定された1つ以上の固有表現に基づいて名詞、名詞句、又は固有表現のうち1つ以上を含む第1の単語トークンセットを選択するステップと、
をさらに含む付記1に記載の方法。
(付記4)
前記1つ以上のトリガ出力パラメータは前記選択された第1の単語トークンセットを含む、付記3に記載の方法。
(付記5)
選択された第1の単語トークンが固有表現に対応し、かつ前記選択された第1の単語トークンセットに含まれるかどうかに基づいて、前記選択された第1の文トークンから前記第1の単語トークンを選択するステップ、をさらに含む付記3に記載の方法。
(付記6)
前記選択された第1の単語トークンが直接目的語(dobj)の係り受けを有しているという判定に基づいて、前記選択された第1の文トークンから、名詞句主語の係り受けを有する第2の単語トークンを選択するステップと、
前記第1の文トークンから前記選択された第2の単語トークンを抽出することにより、前記1つ以上のトリガ出力パラメータを抽出するステップと、
をさらに含む付記5に記載の方法。
(付記7)
前記選択された第1の単語トークンが前置詞の目的語(pobj)の係り受けを有しているという判定に基づいて、前記選択された第1の文トークンから、前置詞修飾語句(prep)の係り受けを有する第2の単語トークンを選択するステップと、
前記第1の文トークンから前記選択された第2の単語トークンを抽出することにより、前記1つ以上のトリガ出力パラメータを抽出するステップと、
をさらに含む付記5に記載の方法。
(付記8)
前記トリガデータソースに関連づけられたトリガデータソースパス、前記第1の入力、及び前記第2の入力に基づいて、マッシュアップテンプレートを生成するステップであり、
前記生成されたマッシュアップテンプレートは、トリガデータソースパスと、トリガ基準、トリガ値、又はトリガ出力パラメータを含む前記第1のトリガルールセットと、前記1つ以上のコンピュータ実行可能アクションのアクションパラメータを含む、ステップと、
前記生成されたマッシュアップテンプレートにさらに基づいて前記コンピュータ実行可能マッシュアップコードを生成するステップと、
をさらに含む付記1に記載の方法。
(付記9)
前記トリガデータソースとしてデータストリーミング及びキューイングシステムのメッセージブローカの1つ以上のトピックをサブスクライブするステップであり、
前記1つ以上のトピックの各トピックはログデータのタイプに対応する、ステップと、
前記メッセージブローカから、前記サブスクライブに基づいて第1のトピックに関連づけられた第1のメッセージペイロードを受信するステップと、
前記第1のメッセージペイロードから前記第1のログデータを抽出するステップと、
をさらに含む付記1に記載の方法。
(付記10)
前記メッセージブローカから、前記第1のメッセージペイロードを受信した後に前記第1のトピックに関連づけられた第2のメッセージペイロードを受信するステップと、
第2のログデータが、前記第1のログデータ内の前記第1の情報と異なる第2の情報を含むという判定に基づいて、前記第2のメッセージペイロードから前記第2のログデータを抽出するステップと、
をさらに含む付記9に記載の方法。
(付記11)
前記コンピュータ実行可能マッシュアップコードは、
1つ以上のコンピュータ実行可能トリガコードと、
前記1つ以上のトリガルールに関連づけられた1つ以上のコンピュータ実行可能ルールコードと、
前記1つ以上のコンピュータ実行可能アクションに関連づけられた1つ以上のコンピュータ実行可能アクションコードと、
を含む、付記1に記載の方法。
(付記12)
前記ランタイムシステムにおいて前記コンピュータ実行可能マッシュアップコードを実行するステップ、をさらに含み、前記実行は、
前記トリガデータソースから第2のログデータを受信すること、及び
前記1つ以上の電子トリガイベントに関連づけられた第2の情報を抽出すること、
のための前記1つ以上のコンピュータ実行可能トリガコードを実行することと、
前記抽出された第2の情報が前記1つ以上のトリガルールを満たすという判定に基づいて、前記1つ以上のコンピュータ実行可能ルールコードを実行してトリガ応答を生成することと、
前記1つ以上のコンピュータ実行可能アクションコードを実行して前記1つ以上のコンピュータ実行可能アクションを実行することと、
を含む、付記11に記載の方法。
(付記13)
実行されたことに応答してシステムに動作を実行させる命令を記憶するように構成された非一時的コンピュータ読取可能記憶媒体であって、前記動作は、
トリガデータソースから、1つ以上の電子トリガイベントに関連づけられた第1の情報を含む第1のログデータを受信することと、
前記受信した第1のログデータの第1の文トークンから1つ以上のトリガ出力パラメータを抽出することと、
前記抽出された1つ以上のトリガ出力パラメータに基づいてユーザデバイスの電子ユーザインターフェース(UI)に第1のユーザ選択可能な選択肢セットとして第1のトリガルールセットを表示することと、
前記表示された第1のトリガルールセットのうち1つ以上のトリガルールの選択を含む第1の入力を受信することと、
前記1つ以上の電子トリガイベントに関連づけられた前記第1の情報が前記1つ以上のトリガルールを満たすかどうかに基づいて実行されるべき1つ以上のコンピュータ実行可能アクションの選択を含む第2の入力を受信することと、
前記受信した第1の入力及び前記受信した第2の入力に基づいて、ランタイムシステムにおける実行のためのコンピュータ実行可能マッシュアップコードを生成することと、
を含む、非一時的コンピュータ読取可能記憶媒体。
(付記14)
前記動作は、
前記電子UIを前記ユーザデバイスに表示することと、
前記表示された電子UIを介して、ソースノードに関連づけられたトリガデータソースパスを受信することと、
前記受信したトリガデータソースパスに基づいて前記トリガデータソースを選択することと、
をさらに含む、付記13に記載の非一時的コンピュータ読取可能記憶媒体。
(付記15)
前記動作は、
前記トリガデータソースに関連づけられたトリガデータソースパス、前記第1の入力、及び前記第2の入力に基づいて、マッシュアップテンプレートを生成することであり、
前記生成されたマッシュアップテンプレートは、トリガデータソースパスと、トリガ基準、トリガ値、又はトリガ出力パラメータを含む前記第1のトリガルールセットと、前記1つ以上のコンピュータ実行可能アクションの1つ以上のアクションパラメータを含む、ことと、
前記生成されたマッシュアップテンプレートにさらに基づいて前記コンピュータ実行可能マッシュアップコードを生成することと、
をさらに含む、付記13に記載の非一時的コンピュータ読取可能記憶媒体。
(付記16)
前記動作は、
前記トリガデータソースとしてデータストリーミング及びキューイングシステムのメッセージブローカの1つ以上のトピックをサブスクライブすることであり、
前記1つ以上のトピックの各トピックはログデータのタイプに対応する、ことと、
前記メッセージブローカから、前記サブスクライブに基づいて第1のトピックに関連づけられた第1のメッセージペイロードを受信することと、
前記第1のメッセージペイロードから前記第1のログデータを抽出することと、
をさらに含む、付記13に記載の非一時的コンピュータ読取可能記憶媒体。
(付記17)
前記動作は、
前記メッセージブローカから、前記第1のメッセージペイロードを受信した後に前記第1のトピックに関連づけられた第2のメッセージペイロードを受信することと、
第2のログデータが、前記第1のログデータ内の前記第1の情報と異なる第2の情報を含むという判定に基づいて、前記第2のメッセージペイロードから前記第2のログデータを抽出することと、
をさらに含む、付記16に記載の非一時的コンピュータ読取可能記憶媒体。
(付記18)
前記コンピュータ実行可能マッシュアップコードは、
1つ以上のコンピュータ実行可能トリガコードと、
前記1つ以上のトリガルールに関連づけられた1つ以上のコンピュータ実行可能ルールコードと、
前記1つ以上のコンピュータ実行可能アクションに関連づけられた1つ以上のコンピュータ実行可能アクションコードと、
を含む、付記13に記載の非一時的コンピュータ読取可能記憶媒体。
(付記19)
前記動作は、
前記ランタイムシステムにおいて前記コンピュータ実行可能マッシュアップコードを実行すること、をさらに含み、前記実行は、
前記トリガデータソースから第2のログデータを受信すること、及び
前記1つ以上の電子トリガイベントに関連づけられた第2の情報を抽出すること、
のための前記1つ以上のコンピュータ実行可能トリガコードを実行することと、
前記抽出された第2の情報が前記1つ以上のトリガルールを満たすという判定に基づいて、前記1つ以上のコンピュータ実行可能ルールコードを実行してトリガ応答を生成することと、
前記1つ以上のコンピュータ実行可能アクションコードを実行して前記1つ以上のコンピュータ実行可能アクションを実行することと、
をさらに含む、付記18に記載の非一時的コンピュータ読取可能記憶媒体。
(付記20)
システムであって、
ランタイムシステムに通信上結合されたプロセッサ、を備え、
前記プロセッサは、
トリガデータソースから、1つ以上の電子トリガイベントに関連づけられた第1の情報を含む第1のログデータを受信し、
前記受信した第1のログデータの第1の文トークンから1つ以上のトリガ出力パラメータを抽出し、
前記抽出された1つ以上のトリガ出力パラメータに基づいてユーザデバイスの電子ユーザインターフェース(UI)に第1のユーザ選択可能な選択肢セットとして第1のトリガルールセットを表示し、
前記表示された第1のトリガルールセットのうち1つ以上のトリガルールの選択を含む第1の入力を受信し、
前記1つ以上の電子トリガイベントに関連づけられた前記第1の情報が前記1つ以上のトリガルールを満たすかどうかに基づいて実行されるべき1つ以上のコンピュータ実行可能アクションの選択を含む第2の入力を受信し、
前記受信した第1の入力及び前記受信した第2の入力に基づいて、前記ランタイムシステムにおける実行のためのコンピュータ実行可能マッシュアップコードを生成する
ように構成される、システム。
(付記1)
トリガデータソースから、1つ以上の電子トリガイベントに関連づけられた第1の情報を含む第1のログデータを受信するステップと、
前記受信した第1のログデータの第1の文トークンから1つ以上のトリガ出力パラメータを抽出するステップと、
前記抽出された1つ以上のトリガ出力パラメータに基づいてユーザデバイスの電子ユーザインターフェース(UI)に第1のユーザ選択可能な選択肢セットとして第1のトリガルールセットを表示するステップと、
前記表示された第1のトリガルールセットのうち1つ以上のトリガルールの選択を含む第1の入力を受信するステップと、
前記1つ以上の電子トリガイベントに関連づけられた前記第1の情報が前記1つ以上のトリガルールを満たすかどうかに基づいて実行されるべき1つ以上のコンピュータ実行可能アクションの選択を含む第2の入力を受信するステップと、
前記受信した第1の入力及び前記受信した第2の入力に基づいて、ランタイムシステムにおける実行のためのコンピュータ実行可能マッシュアップコードを生成するステップと、
を含む方法。
(付記2)
前記電子UIを前記ユーザデバイスに表示するステップと、
前記表示された電子UIを介して、ソースノードに関連づけられたトリガデータソースパスを受信するステップと、
前記受信したトリガデータソースパスに基づいて前記トリガデータソースを選択するステップと、
をさらに含む付記1に記載の方法。
(付記3)
前記受信した第1のログデータを文トークンのセットにトークン化するステップと、
前記文トークンのセットのうち前記第1の文トークンを選択するステップと、
前記選択された第1の文トークンを複数の単語トークンにトークン化するステップと、
前記複数の単語トークンのうち1つ以上の単語トークンに対する1つ以上の固有表現を決定するステップと、
前記選択された第1の文トークンの前記複数の単語トークンの品詞(POS)タグ付けを実行するステップと、
前記複数の単語トークンから、前記POSタグ付け及び決定された1つ以上の固有表現に基づいて名詞、名詞句、又は固有表現のうち1つ以上を含む第1の単語トークンセットを選択するステップと、
をさらに含む付記1に記載の方法。
(付記4)
前記1つ以上のトリガ出力パラメータは前記選択された第1の単語トークンセットを含む、付記3に記載の方法。
(付記5)
選択された第1の単語トークンが固有表現に対応し、かつ前記選択された第1の単語トークンセットに含まれるかどうかに基づいて、前記選択された第1の文トークンから前記第1の単語トークンを選択するステップ、をさらに含む付記3に記載の方法。
(付記6)
前記選択された第1の単語トークンが直接目的語(dobj)の係り受けを有しているという判定に基づいて、前記選択された第1の文トークンから、名詞句主語の係り受けを有する第2の単語トークンを選択するステップと、
前記第1の文トークンから前記選択された第2の単語トークンを抽出することにより、前記1つ以上のトリガ出力パラメータを抽出するステップと、
をさらに含む付記5に記載の方法。
(付記7)
前記選択された第1の単語トークンが前置詞の目的語(pobj)の係り受けを有しているという判定に基づいて、前記選択された第1の文トークンから、前置詞修飾語句(prep)の係り受けを有する第2の単語トークンを選択するステップと、
前記第1の文トークンから前記選択された第2の単語トークンを抽出することにより、前記1つ以上のトリガ出力パラメータを抽出するステップと、
をさらに含む付記5に記載の方法。
(付記8)
前記トリガデータソースに関連づけられたトリガデータソースパス、前記第1の入力、及び前記第2の入力に基づいて、マッシュアップテンプレートを生成するステップであり、
前記生成されたマッシュアップテンプレートは、トリガデータソースパスと、トリガ基準、トリガ値、又はトリガ出力パラメータを含む前記第1のトリガルールセットと、前記1つ以上のコンピュータ実行可能アクションのアクションパラメータを含む、ステップと、
前記生成されたマッシュアップテンプレートにさらに基づいて前記コンピュータ実行可能マッシュアップコードを生成するステップと、
をさらに含む付記1に記載の方法。
(付記9)
前記トリガデータソースとしてデータストリーミング及びキューイングシステムのメッセージブローカの1つ以上のトピックをサブスクライブするステップであり、
前記1つ以上のトピックの各トピックはログデータのタイプに対応する、ステップと、
前記メッセージブローカから、前記サブスクライブに基づいて第1のトピックに関連づけられた第1のメッセージペイロードを受信するステップと、
前記第1のメッセージペイロードから前記第1のログデータを抽出するステップと、
をさらに含む付記1に記載の方法。
(付記10)
前記メッセージブローカから、前記第1のメッセージペイロードを受信した後に前記第1のトピックに関連づけられた第2のメッセージペイロードを受信するステップと、
第2のログデータが、前記第1のログデータ内の前記第1の情報と異なる第2の情報を含むという判定に基づいて、前記第2のメッセージペイロードから前記第2のログデータを抽出するステップと、
をさらに含む付記9に記載の方法。
(付記11)
前記コンピュータ実行可能マッシュアップコードは、
1つ以上のコンピュータ実行可能トリガコードと、
前記1つ以上のトリガルールに関連づけられた1つ以上のコンピュータ実行可能ルールコードと、
前記1つ以上のコンピュータ実行可能アクションに関連づけられた1つ以上のコンピュータ実行可能アクションコードと、
を含む、付記1に記載の方法。
(付記12)
前記ランタイムシステムにおいて前記コンピュータ実行可能マッシュアップコードを実行するステップ、をさらに含み、前記実行は、
前記トリガデータソースから第2のログデータを受信すること、及び
前記1つ以上の電子トリガイベントに関連づけられた第2の情報を抽出すること、
のための前記1つ以上のコンピュータ実行可能トリガコードを実行することと、
前記抽出された第2の情報が前記1つ以上のトリガルールを満たすという判定に基づいて、前記1つ以上のコンピュータ実行可能ルールコードを実行してトリガ応答を生成することと、
前記1つ以上のコンピュータ実行可能アクションコードを実行して前記1つ以上のコンピュータ実行可能アクションを実行することと、
を含む、付記11に記載の方法。
(付記13)
実行されたことに応答してシステムに動作を実行させる命令を記憶するように構成された非一時的コンピュータ読取可能記憶媒体であって、前記動作は、
トリガデータソースから、1つ以上の電子トリガイベントに関連づけられた第1の情報を含む第1のログデータを受信することと、
前記受信した第1のログデータの第1の文トークンから1つ以上のトリガ出力パラメータを抽出することと、
前記抽出された1つ以上のトリガ出力パラメータに基づいてユーザデバイスの電子ユーザインターフェース(UI)に第1のユーザ選択可能な選択肢セットとして第1のトリガルールセットを表示することと、
前記表示された第1のトリガルールセットのうち1つ以上のトリガルールの選択を含む第1の入力を受信することと、
前記1つ以上の電子トリガイベントに関連づけられた前記第1の情報が前記1つ以上のトリガルールを満たすかどうかに基づいて実行されるべき1つ以上のコンピュータ実行可能アクションの選択を含む第2の入力を受信することと、
前記受信した第1の入力及び前記受信した第2の入力に基づいて、ランタイムシステムにおける実行のためのコンピュータ実行可能マッシュアップコードを生成することと、
を含む、非一時的コンピュータ読取可能記憶媒体。
(付記14)
前記動作は、
前記電子UIを前記ユーザデバイスに表示することと、
前記表示された電子UIを介して、ソースノードに関連づけられたトリガデータソースパスを受信することと、
前記受信したトリガデータソースパスに基づいて前記トリガデータソースを選択することと、
をさらに含む、付記13に記載の非一時的コンピュータ読取可能記憶媒体。
(付記15)
前記動作は、
前記トリガデータソースに関連づけられたトリガデータソースパス、前記第1の入力、及び前記第2の入力に基づいて、マッシュアップテンプレートを生成することであり、
前記生成されたマッシュアップテンプレートは、トリガデータソースパスと、トリガ基準、トリガ値、又はトリガ出力パラメータを含む前記第1のトリガルールセットと、前記1つ以上のコンピュータ実行可能アクションの1つ以上のアクションパラメータを含む、ことと、
前記生成されたマッシュアップテンプレートにさらに基づいて前記コンピュータ実行可能マッシュアップコードを生成することと、
をさらに含む、付記13に記載の非一時的コンピュータ読取可能記憶媒体。
(付記16)
前記動作は、
前記トリガデータソースとしてデータストリーミング及びキューイングシステムのメッセージブローカの1つ以上のトピックをサブスクライブすることであり、
前記1つ以上のトピックの各トピックはログデータのタイプに対応する、ことと、
前記メッセージブローカから、前記サブスクライブに基づいて第1のトピックに関連づけられた第1のメッセージペイロードを受信することと、
前記第1のメッセージペイロードから前記第1のログデータを抽出することと、
をさらに含む、付記13に記載の非一時的コンピュータ読取可能記憶媒体。
(付記17)
前記動作は、
前記メッセージブローカから、前記第1のメッセージペイロードを受信した後に前記第1のトピックに関連づけられた第2のメッセージペイロードを受信することと、
第2のログデータが、前記第1のログデータ内の前記第1の情報と異なる第2の情報を含むという判定に基づいて、前記第2のメッセージペイロードから前記第2のログデータを抽出することと、
をさらに含む、付記16に記載の非一時的コンピュータ読取可能記憶媒体。
(付記18)
前記コンピュータ実行可能マッシュアップコードは、
1つ以上のコンピュータ実行可能トリガコードと、
前記1つ以上のトリガルールに関連づけられた1つ以上のコンピュータ実行可能ルールコードと、
前記1つ以上のコンピュータ実行可能アクションに関連づけられた1つ以上のコンピュータ実行可能アクションコードと、
を含む、付記13に記載の非一時的コンピュータ読取可能記憶媒体。
(付記19)
前記動作は、
前記ランタイムシステムにおいて前記コンピュータ実行可能マッシュアップコードを実行すること、をさらに含み、前記実行は、
前記トリガデータソースから第2のログデータを受信すること、及び
前記1つ以上の電子トリガイベントに関連づけられた第2の情報を抽出すること、
のための前記1つ以上のコンピュータ実行可能トリガコードを実行することと、
前記抽出された第2の情報が前記1つ以上のトリガルールを満たすという判定に基づいて、前記1つ以上のコンピュータ実行可能ルールコードを実行してトリガ応答を生成することと、
前記1つ以上のコンピュータ実行可能アクションコードを実行して前記1つ以上のコンピュータ実行可能アクションを実行することと、
をさらに含む、付記18に記載の非一時的コンピュータ読取可能記憶媒体。
(付記20)
システムであって、
ランタイムシステムに通信上結合されたプロセッサ、を備え、
前記プロセッサは、
トリガデータソースから、1つ以上の電子トリガイベントに関連づけられた第1の情報を含む第1のログデータを受信し、
前記受信した第1のログデータの第1の文トークンから1つ以上のトリガ出力パラメータを抽出し、
前記抽出された1つ以上のトリガ出力パラメータに基づいてユーザデバイスの電子ユーザインターフェース(UI)に第1のユーザ選択可能な選択肢セットとして第1のトリガルールセットを表示し、
前記表示された第1のトリガルールセットのうち1つ以上のトリガルールの選択を含む第1の入力を受信し、
前記1つ以上の電子トリガイベントに関連づけられた前記第1の情報が前記1つ以上のトリガルールを満たすかどうかに基づいて実行されるべき1つ以上のコンピュータ実行可能アクションの選択を含む第2の入力を受信し、
前記受信した第1の入力及び前記受信した第2の入力に基づいて、前記ランタイムシステムにおける実行のためのコンピュータ実行可能マッシュアップコードを生成する
ように構成される、システム。
Claims (20)
- トリガデータソースから、1つ以上の電子トリガイベントに関連づけられた第1の情報を含む第1のログデータを受信するステップと、
前記受信した第1のログデータの第1の文トークンから1つ以上のトリガ出力パラメータを抽出するステップと、
前記抽出された1つ以上のトリガ出力パラメータに基づいてユーザデバイスの電子ユーザインターフェース(UI)に第1のユーザ選択可能な選択肢セットとして第1のトリガルールセットを表示するステップと、
前記表示された第1のトリガルールセットのうち1つ以上のトリガルールの選択を含む第1の入力を受信するステップと、
前記1つ以上の電子トリガイベントに関連づけられた前記第1の情報が前記1つ以上のトリガルールを満たすかどうかに基づいて実行されるべき1つ以上のコンピュータ実行可能アクションの選択を含む第2の入力を受信するステップと、
前記受信した第1の入力及び前記受信した第2の入力に基づいて、ランタイムシステムにおける実行のためのコンピュータ実行可能マッシュアップコードを生成するステップと、
を含む方法。 - 前記電子UIを前記ユーザデバイスに表示するステップと、
前記表示された電子UIを介して、ソースノードに関連づけられたトリガデータソースパスを受信するステップと、
前記受信したトリガデータソースパスに基づいて前記トリガデータソースを選択するステップと、
をさらに含む請求項1に記載の方法。 - 前記受信した第1のログデータを文トークンのセットにトークン化するステップと、
前記文トークンのセットのうち前記第1の文トークンを選択するステップと、
前記選択された第1の文トークンを複数の単語トークンにトークン化するステップと、
前記複数の単語トークンのうち1つ以上の単語トークンに対する1つ以上の固有表現を決定するステップと、
前記選択された第1の文トークンの前記複数の単語トークンの品詞(POS)タグ付けを実行するステップと、
前記複数の単語トークンから、前記POSタグ付け及び決定された1つ以上の固有表現に基づいて名詞、名詞句、又は固有表現のうち1つ以上を含む第1の単語トークンセットを選択するステップと、
をさらに含む請求項1に記載の方法。 - 前記1つ以上のトリガ出力パラメータは前記選択された第1の単語トークンセットを含む、請求項3に記載の方法。
- 選択された第1の単語トークンが固有表現に対応し、かつ前記選択された第1の単語トークンセットに含まれるかどうかに基づいて、前記選択された第1の文トークンから前記第1の単語トークンを選択するステップ、をさらに含む請求項3に記載の方法。
- 前記選択された第1の単語トークンが直接目的語(dobj)の係り受けを有しているという判定に基づいて、前記選択された第1の文トークンから、名詞句主語の係り受けを有する第2の単語トークンを選択するステップと、
前記第1の文トークンから前記選択された第2の単語トークンを抽出することにより、前記1つ以上のトリガ出力パラメータを抽出するステップと、
をさらに含む請求項5に記載の方法。 - 前記選択された第1の単語トークンが前置詞の目的語(pobj)の係り受けを有しているという判定に基づいて、前記選択された第1の文トークンから、前置詞修飾語句(prep)の係り受けを有する第2の単語トークンを選択するステップと、
前記第1の文トークンから前記選択された第2の単語トークンを抽出することにより、前記1つ以上のトリガ出力パラメータを抽出するステップと、
をさらに含む請求項5に記載の方法。 - 前記トリガデータソースに関連づけられたトリガデータソースパス、前記第1の入力、及び前記第2の入力に基づいて、マッシュアップテンプレートを生成するステップであり、
前記生成されたマッシュアップテンプレートは、トリガデータソースパスと、トリガ基準、トリガ値、又はトリガ出力パラメータを含む前記第1のトリガルールセットと、前記1つ以上のコンピュータ実行可能アクションのアクションパラメータを含む、ステップと、
前記生成されたマッシュアップテンプレートにさらに基づいて前記コンピュータ実行可能マッシュアップコードを生成するステップと、
をさらに含む請求項1に記載の方法。 - 前記トリガデータソースとしてデータストリーミング及びキューイングシステムのメッセージブローカの1つ以上のトピックをサブスクライブするステップであり、
前記1つ以上のトピックの各トピックはログデータのタイプに対応する、ステップと、
前記メッセージブローカから、前記サブスクライブに基づいて第1のトピックに関連づけられた第1のメッセージペイロードを受信するステップと、
前記第1のメッセージペイロードから前記第1のログデータを抽出するステップと、
をさらに含む請求項1に記載の方法。 - 前記メッセージブローカから、前記第1のメッセージペイロードを受信した後に前記第1のトピックに関連づけられた第2のメッセージペイロードを受信するステップと、
第2のログデータが、前記第1のログデータ内の前記第1の情報と異なる第2の情報を含むという判定に基づいて、前記第2のメッセージペイロードから前記第2のログデータを抽出するステップと、
をさらに含む請求項9に記載の方法。 - 前記コンピュータ実行可能マッシュアップコードは、
1つ以上のコンピュータ実行可能トリガコードと、
前記1つ以上のトリガルールに関連づけられた1つ以上のコンピュータ実行可能ルールコードと、
前記1つ以上のコンピュータ実行可能アクションに関連づけられた1つ以上のコンピュータ実行可能アクションコードと、
を含む、請求項1に記載の方法。 - 前記ランタイムシステムにおいて前記コンピュータ実行可能マッシュアップコードを実行するステップ、をさらに含み、前記実行は、
前記トリガデータソースから第2のログデータを受信すること、及び
前記1つ以上の電子トリガイベントに関連づけられた第2の情報を抽出すること、
のための前記1つ以上のコンピュータ実行可能トリガコードを実行することと、
前記抽出された第2の情報が前記1つ以上のトリガルールを満たすという判定に基づいて、前記1つ以上のコンピュータ実行可能ルールコードを実行してトリガ応答を生成することと、
前記1つ以上のコンピュータ実行可能アクションコードを実行して前記1つ以上のコンピュータ実行可能アクションを実行することと、
を含む、請求項11に記載の方法。 - システムに動作を実行させるコンピュータプログラムであって、前記動作は、
トリガデータソースから、1つ以上の電子トリガイベントに関連づけられた第1の情報を含む第1のログデータを受信することと、
前記受信した第1のログデータの第1の文トークンから1つ以上のトリガ出力パラメータを抽出することと、
前記抽出された1つ以上のトリガ出力パラメータに基づいてユーザデバイスの電子ユーザインターフェース(UI)に第1のユーザ選択可能な選択肢セットとして第1のトリガルールセットを表示することと、
前記表示された第1のトリガルールセットのうち1つ以上のトリガルールの選択を含む第1の入力を受信することと、
前記1つ以上の電子トリガイベントに関連づけられた前記第1の情報が前記1つ以上のトリガルールを満たすかどうかに基づいて実行されるべき1つ以上のコンピュータ実行可能アクションの選択を含む第2の入力を受信することと、
前記受信した第1の入力及び前記受信した第2の入力に基づいて、ランタイムシステムにおける実行のためのコンピュータ実行可能マッシュアップコードを生成することと、
を含む、コンピュータプログラム。 - 前記動作は、
前記電子UIを前記ユーザデバイスに表示することと、
前記表示された電子UIを介して、ソースノードに関連づけられたトリガデータソースパスを受信することと、
前記受信したトリガデータソースパスに基づいて前記トリガデータソースを選択することと、
をさらに含む、請求項13に記載のコンピュータプログラム。 - 前記動作は、
前記トリガデータソースに関連づけられたトリガデータソースパス、前記第1の入力、及び前記第2の入力に基づいて、マッシュアップテンプレートを生成することであり、
前記生成されたマッシュアップテンプレートは、トリガデータソースパスと、トリガ基準、トリガ値、又はトリガ出力パラメータを含む前記第1のトリガルールセットと、前記1つ以上のコンピュータ実行可能アクションの1つ以上のアクションパラメータを含む、ことと、
前記生成されたマッシュアップテンプレートにさらに基づいて前記コンピュータ実行可能マッシュアップコードを生成することと、
をさらに含む、請求項13に記載のコンピュータプログラム。 - 前記動作は、
前記トリガデータソースとしてデータストリーミング及びキューイングシステムのメッセージブローカの1つ以上のトピックをサブスクライブすることであり、
前記1つ以上のトピックの各トピックはログデータのタイプに対応する、ことと、
前記メッセージブローカから、前記サブスクライブに基づいて第1のトピックに関連づけられた第1のメッセージペイロードを受信することと、
前記第1のメッセージペイロードから前記第1のログデータを抽出することと、
をさらに含む、請求項13に記載のコンピュータプログラム。 - 前記動作は、
前記メッセージブローカから、前記第1のメッセージペイロードを受信した後に前記第1のトピックに関連づけられた第2のメッセージペイロードを受信することと、
第2のログデータが、前記第1のログデータ内の前記第1の情報と異なる第2の情報を含むという判定に基づいて、前記第2のメッセージペイロードから前記第2のログデータを抽出することと、
をさらに含む、請求項16に記載のコンピュータプログラム。 - 前記コンピュータ実行可能マッシュアップコードは、
1つ以上のコンピュータ実行可能トリガコードと、
前記1つ以上のトリガルールに関連づけられた1つ以上のコンピュータ実行可能ルールコードと、
前記1つ以上のコンピュータ実行可能アクションに関連づけられた1つ以上のコンピュータ実行可能アクションコードと、
を含む、請求項13に記載のコンピュータプログラム。 - 前記動作は、
前記ランタイムシステムにおいて前記コンピュータ実行可能マッシュアップコードを実行すること、をさらに含み、前記実行は、
前記トリガデータソースから第2のログデータを受信すること、及び
前記1つ以上の電子トリガイベントに関連づけられた第2の情報を抽出すること、
のための前記1つ以上のコンピュータ実行可能トリガコードを実行することと、
前記抽出された第2の情報が前記1つ以上のトリガルールを満たすという判定に基づいて、前記1つ以上のコンピュータ実行可能ルールコードを実行してトリガ応答を生成することと、
前記1つ以上のコンピュータ実行可能アクションコードを実行して前記1つ以上のコンピュータ実行可能アクションを実行することと、
をさらに含む、請求項18に記載のコンピュータプログラム。 - システムであって、
ランタイムシステムに通信上結合されたプロセッサ、を備え、
前記プロセッサは、
トリガデータソースから、1つ以上の電子トリガイベントに関連づけられた第1の情報を含む第1のログデータを受信し、
前記受信した第1のログデータの第1の文トークンから1つ以上のトリガ出力パラメータを抽出し、
前記抽出された1つ以上のトリガ出力パラメータに基づいてユーザデバイスの電子ユーザインターフェース(UI)に第1のユーザ選択可能な選択肢セットとして第1のトリガルールセットを表示し、
前記表示された第1のトリガルールセットのうち1つ以上のトリガルールの選択を含む第1の入力を受信し、
前記1つ以上の電子トリガイベントに関連づけられた前記第1の情報が前記1つ以上のトリガルールを満たすかどうかに基づいて実行されるべき1つ以上のコンピュータ実行可能アクションの選択を含む第2の入力を受信し、
前記受信した第1の入力及び前記受信した第2の入力に基づいて、前記ランタイムシステムにおける実行のためのコンピュータ実行可能マッシュアップコードを生成する
ように構成される、システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/836867 | 2020-03-31 | ||
US16/836,867 US11360745B2 (en) | 2020-03-31 | 2020-03-31 | Code generation for log-based mashups |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021163475A true JP2021163475A (ja) | 2021-10-11 |
Family
ID=77856168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021029006A Pending JP2021163475A (ja) | 2020-03-31 | 2021-02-25 | ログベースのマッシュアップのコード生成 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11360745B2 (ja) |
JP (1) | JP2021163475A (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11825299B2 (en) * | 2021-02-08 | 2023-11-21 | Hewlett Packard Enterprise Development Lp | Customized code bundle to enable secure communication from internet of things devices at wireless networks |
US11669263B1 (en) * | 2021-03-24 | 2023-06-06 | Meta Platforms, Inc. | Systems and methods for low-overhead and flexible trace capture triggered on-demand by hardware events under production load |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110153590A1 (en) * | 2009-12-18 | 2011-06-23 | Electronics And Telecommunications Research Institute | Apparatus and method for searching for open api and generating mashup block skeleton code |
KR101850974B1 (ko) | 2012-02-13 | 2018-04-20 | 한국전자통신연구원 | 매쉬업 웹 애플리케이션을 생성하는 장치 및 그 방법 |
US10606658B2 (en) * | 2016-03-22 | 2020-03-31 | International Business Machines Corporation | Approach to recommending mashups |
US10691507B2 (en) | 2016-12-09 | 2020-06-23 | Fujitsu Limited | API learning |
US20180232442A1 (en) | 2017-02-16 | 2018-08-16 | International Business Machines Corporation | Web api recommendations |
US10191786B2 (en) | 2017-07-03 | 2019-01-29 | Fujitsu Limited | Application program interface mashup generation |
US10430255B2 (en) | 2017-07-03 | 2019-10-01 | Fujitsu Limited | Application program interface mashup generation |
US11017002B2 (en) * | 2018-06-14 | 2021-05-25 | Fujitsu Limited | Description matching for application program interface mashup generation |
US11074065B2 (en) * | 2019-12-06 | 2021-07-27 | Salesforce.Com, Inc. | Rule-based dynamic command triggers in mobile applications |
-
2020
- 2020-03-31 US US16/836,867 patent/US11360745B2/en active Active
-
2021
- 2021-02-25 JP JP2021029006A patent/JP2021163475A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US20210303270A1 (en) | 2021-09-30 |
US11360745B2 (en) | 2022-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9396046B2 (en) | Graph based data model for API ecosystem insights | |
US9703675B2 (en) | Structured logging and instrumentation framework | |
US9372688B1 (en) | Automatic discovery of a JavaScript API | |
US9231819B2 (en) | Abstracting restful web service HTTP between a client and a server | |
US10992559B2 (en) | Diagnostic and recovery signals for disconnected applications in hosted service environment | |
US8549540B1 (en) | Message queue transaction tracking using application activity trace data | |
CN112162965B (zh) | 一种日志数据处理的方法、装置、计算机设备及存储介质 | |
CN111090423B (zh) | 一种webhook框架***和实现主动调用、实现事件触发的方法 | |
US20090292994A1 (en) | Automated content tracking and conversion | |
US10372583B2 (en) | Enhanced policy editor with completion support and on demand validation | |
US20140157228A1 (en) | Method and system for automatically generating a restful web service software development kit client | |
JP2021163475A (ja) | ログベースのマッシュアップのコード生成 | |
US10775751B2 (en) | Automatic generation of regular expression based on log line data | |
CN109992957B (zh) | 模板化计算的方法、装置和*** | |
CN114443905A (zh) | 接口文档更新方法、装置、电子设备及可读存储介质 | |
CN114153703A (zh) | 微服务的异常定位方法、装置、电子设备和程序产品 | |
US11409585B2 (en) | Automatic code generation for API mashups | |
CN112925522A (zh) | 依赖图生成方法、装置、设备、存储介质和程序产品 | |
CN110554892A (zh) | 信息获取方法和装置 | |
US7590634B2 (en) | Detection of inaccessible resources | |
CN112068814A (zh) | 可执行文件的生成方法、装置、***及介质 | |
US20190196945A1 (en) | Entity performance and usability analysis framework | |
CN112306324B (zh) | 信息处理方法、装置、设备和介质 | |
CN113900895B (zh) | 信息处理方法、信息处理装置、存储介质与电子设备 | |
CN117668904A (zh) | 数据脱敏方法和装置 |