(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-06-30
(54)【発明の名称】コンポーネントベースのユーザインターフェースのための宣言型の反応的なデータ層
(51)【国際特許分類】
H04L 67/02 20220101AFI20220623BHJP
G06F 9/48 20060101ALI20220623BHJP
G06F 8/38 20180101ALI20220623BHJP
H04L 67/288 20220101ALI20220623BHJP
【FI】
H04L67/02
G06F9/48 370
G06F8/38
H04L67/288
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021564430
(86)(22)【出願日】2020-04-29
(85)【翻訳文提出日】2021-12-24
(86)【国際出願番号】 US2020030340
(87)【国際公開番号】W WO2020223268
(87)【国際公開日】2020-11-05
(32)【優先日】2019-04-30
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-06-24
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-06-24
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-06-24
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-06-24
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】506332063
【氏名又は名称】セールスフォース ドット コム インコーポレイティッド
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ヴェンカイトスワラン,ケヴィン
(72)【発明者】
【氏名】ヴァル,ディエゴ フェレイロ
(72)【発明者】
【氏名】パティノ,カリディ
(72)【発明者】
【氏名】ブリス,トレヴァー ジェイムス
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376BC06
5B376FA21
(57)【要約】
複数のノードを含むワイヤウェブコンポーネントグラフは、表示装置上に提示されているグラフィカルユーザインターフェース(GUI)内の指定されたワイヤウェブコンポーネントに含まれる1つ以上のデータ値を更新するための1つ以上のアプリケーションプロシージャインターフェース(API)を識別するためにアクセスすることができる。データ値の各々は、ワイヤウェブコンポーネントグラフに表されるそれぞれのデータフィールドに対応することができ、各データフィールドは、ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけることができる。グラフィカルユーザインターフェースは、ネットワークを通じて、及び通信インターフェースを介して識別されたAPIと通信することにより決定される、1つ以上の更新されたデータ値に基づいて更新することができる。
【特許請求の範囲】
【請求項1】
通信インターフェースにより、クライアントマシンにおける提示のためのグラフィカルユーザインターフェース(GUI)を提供する要求を受信するステップと、
プロセッサにより、前記GUIに含まれると予測される複数のワイヤウェブコンポーネントを識別するステップであり、各ワイヤウェブコンポーネントは、それぞれのデータオブジェクトインスタンスを参照し、各データオブジェクトインスタンスは、それぞれのデータオブジェクトインスタンス識別子及びそれぞれの1つ以上のデータオブジェクトフィールドに関連づけられる、ステップと、
前記プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフを構築するステップであり、前記ノードの第1のサブセットの各々は、前記複数のワイヤウェブコンポーネントのそれぞれ1つに対応し、前記ノードの第2のサブセットの各々は、前記データオブジェクトフィールドのそれぞれ1つに対応し、前記ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応し、各ワイヤウェブコンポーネントは、前記ワイヤウェブコンポーネントグラフ内で、前記ワイヤウェブコンポーネントに含まれる前記データオブジェクトフィールドのそれぞれ1つ以上にリンクされ、それぞれのデータフィールドに対応する各ノードは、前記ワイヤウェブコンポーネントグラフ内で、前記それぞれのデータフィールドに関連づけられたそれぞれのデータ値を取り出すことができるそれぞれのAPIに対応するそれぞれのノードにリンクされる、ステップと、
前記ワイヤウェブコンポーネントグラフに基づいて前記それぞれのAPIから前記データ値の1つ以上を取り出すステップと、
前記通信インターフェースを介してGUIメッセージを前記クライアントマシンに送信するステップであり、前記GUIメッセージは、前記取り出されたデータ値と前記ワイヤウェブコンポーネントグラフを含む、ステップと、
を含む方法。
【請求項2】
各ワイヤウェブコンポーネントは、前記クライアントマシンに、
前記GUIが表示装置に表示された後の前記GUIへの変更を検出し、前記変更は、前記取り出されたデータ値のうちの指定された1つに影響し、
前記APIの1つ以上と通信して前記指定されたデータ値を更新し、
前記更新されたデータ値に基づいて前記表示装置上の前記GUIを更新する
ことをさせるように構成されたそれぞれのコンピュータプログラミングコードに関連づけられる、請求項1に記載の方法。
【請求項3】
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記GUIが最初表示されるときアクティブである可能性が高い第1のGUI部分と、前記GUIが最初表示されるときアクティブである可能性が低い第2のGUI部分とを識別することを含む、請求項1又は2に記載の方法。
【請求項4】
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記GUIを提供する前記要求に予め訓練された機械学習予測モデルを適用することを含む、請求項1乃至3のうちいずれか1項に記載の方法。
【請求項5】
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記クライアントマシンから受信した1つ以上の前の要求を評価することを含む、請求項1乃至4のうちいずれか1項に記載の方法。
【請求項6】
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記APIのうちの指定された1つに対する入力パラメータを予測することを含む、請求項1乃至5のうちいずれか1項に記載の方法。
【請求項7】
前記要求は、インターネットを介してオンデマンドコンピューティングサービスを提供するように構成されたクラウドコンピューティング環境内のサーバで受信される、請求項1乃至6のうちいずれか1項に記載の方法。
【請求項8】
前記APIのうちの第1のAPIは、前記クラウドコンピューティング環境を介してアクセス可能である、請求項7に記載の方法。
【請求項9】
前記APIのうちの第2のAPIは、前記クラウドコンピューティング環境の外部である、請求項8に記載の方法。
【請求項10】
前記ワイヤウェブコンポーネントの各々は、計算プログラミング言語コードにより実施されるそれぞれのワイヤウェブコンポーネント定義に関連づけられ、前記ワイヤウェブコンポーネント定義の各々は、ハイパーテキストマークアップ言語(HTML)により実施されるそれぞれのテンプレートを含む、請求項1乃至9のうちいずれか1項に記載の方法。
【請求項11】
前記ワイヤウェブコンポーネントグラフを構築することは、前記複数のワイヤウェブコンポーネントの各々について前記それぞれのワイヤウェブコンポーネント定義をパースすることを含む、請求項10に記載の方法。
【請求項12】
データベースシステムを含むコンピューティングシステムであって、
通信インターフェースにより、クライアントマシンにおける提示のためのグラフィカルユーザインターフェース(GUI)を提供する要求を受信するステップと、
プロセッサにより、前記GUIに含まれると予測される複数のワイヤウェブコンポーネントを識別するステップであり、各ワイヤウェブコンポーネントは、それぞれのデータオブジェクトインスタンスを参照し、各データオブジェクトインスタンスは、それぞれのデータオブジェクトインスタンス識別子及びそれぞれの1つ以上のデータオブジェクトフィールドに関連づけられる、ステップと、
前記プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフを構築するステップであり、前記ノードの第1のサブセットの各々は、前記複数のワイヤウェブコンポーネントのそれぞれ1つに対応し、前記ノードの第2のサブセットの各々は、前記データオブジェクトフィールドのそれぞれ1つに対応し、前記ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応し、各ワイヤウェブコンポーネントは、前記ワイヤウェブコンポーネントグラフ内で、前記ワイヤウェブコンポーネントに含まれる前記データオブジェクトフィールドのそれぞれ1つ以上にリンクされ、それぞれのデータフィールドに対応する各ノードは、前記ワイヤウェブコンポーネントグラフ内で、前記それぞれのデータフィールドに関連づけられたそれぞれのデータ値を取り出すことができるそれぞれのAPIに対応するそれぞれのノードにリンクされる、ステップと、
前記ワイヤウェブコンポーネントグラフに基づいて前記それぞれのAPIから前記データ値の1つ以上を取り出すステップと、
前記通信インターフェースを介してGUIメッセージを前記クライアントマシンに送信するステップであり、前記GUIメッセージは、前記取り出されたデータ値と前記ワイヤウェブコンポーネントグラフを含む、ステップと、
を含む方法を実行するように動作可能である、コンピューティングシステム。
【請求項13】
各ワイヤウェブコンポーネントは、前記クライアントマシンに、
前記GUIが表示装置に表示された後の前記GUIへの変更を検出し、前記変更は、前記取り出されたデータ値のうちの指定された1つに影響し、
前記APIの1つ以上と通信して前記指定されたデータ値を更新し、
前記更新されたデータ値に基づいて前記表示装置上の前記GUIを更新する
ことをさせるように構成されたそれぞれのコンピュータプログラミングコードに関連づけられる、請求項12に記載のコンピューティングシステム。
【請求項14】
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記GUIが最初表示されるときアクティブである可能性が高い第1のGUI部分と、前記GUIが最初表示されるときアクティブである可能性が低い第2のGUI部分とを識別することを含む、請求項12又は13に記載のコンピューティングシステム。
【請求項15】
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記GUIを提供する前記要求に予め訓練された機械学習予測モデルを適用することを含む、請求項12乃至14のうちいずれか1項に記載のコンピューティングシステム。
【請求項16】
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記クライアントマシンから受信した1つ以上の前の要求を評価することを含む、請求項12乃至15のうちいずれか1項に記載のコンピューティングシステム。
【請求項17】
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記APIのうちの指定された1つに対する入力パラメータを予測することを含む、請求項12乃至16のうちいずれか1項に記載のコンピューティングシステム。
【請求項18】
前記ワイヤウェブコンポーネントの各々は、計算プログラミング言語コードにより実施されるそれぞれのワイヤウェブコンポーネント定義に関連づけられ、前記ワイヤウェブコンポーネント定義の各々は、ハイパーテキストマークアップ言語(HTML)により実施されるそれぞれのテンプレートを含み、前記ワイヤウェブコンポーネントグラフを構築することは、前記複数のワイヤウェブコンポーネントの各々について前記それぞれのワイヤウェブコンポーネント定義をパースすることを含む、請求項12乃至17のうちいずれか1項に記載のコンピューティングシステム。
【請求項19】
方法を実行する命令を記憶させた1つ以上の非一時的コンピュータ読取可能媒体であって、前記方法は、
通信インターフェースにより、クライアントマシンにおける提示のためのグラフィカルユーザインターフェース(GUI)を提供する要求を受信するステップと、
プロセッサにより、前記GUIに含まれると予測される複数のワイヤウェブコンポーネントを識別するステップであり、各ワイヤウェブコンポーネントは、それぞれのデータオブジェクトインスタンスを参照し、各データオブジェクトインスタンスは、それぞれのデータオブジェクトインスタンス識別子及びそれぞれの1つ以上のデータオブジェクトフィールドに関連づけられる、ステップと、
前記プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフを構築するステップであり、前記ノードの第1のサブセットの各々は、前記複数のワイヤウェブコンポーネントのそれぞれ1つに対応し、前記ノードの第2のサブセットの各々は、前記データオブジェクトフィールドのそれぞれ1つに対応し、前記ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応し、各ワイヤウェブコンポーネントは、前記ワイヤウェブコンポーネントグラフ内で、前記ワイヤウェブコンポーネントに含まれる前記データオブジェクトフィールドのそれぞれ1つ以上にリンクされ、それぞれのデータフィールドに対応する各ノードは、前記ワイヤウェブコンポーネントグラフ内で、前記それぞれのデータフィールドに関連づけられたそれぞれのデータ値を取り出すことができるそれぞれのAPIに対応するそれぞれのノードにリンクされる、ステップと、
前記ワイヤウェブコンポーネントグラフに基づいて前記それぞれのAPIから前記データ値の1つ以上を取り出すステップと、
前記通信インターフェースを介してGUIメッセージを前記クライアントマシンに送信するステップであり、前記GUIメッセージは、前記取り出されたデータ値と前記ワイヤウェブコンポーネントグラフを含む、ステップと、
を含む、1つ以上の非一時的コンピュータ読取可能媒体。
【請求項20】
各ワイヤウェブコンポーネントは、前記クライアントマシンに、
前記GUIが表示装置に表示された後の前記GUIへの変更を検出し、前記変更は、前記取り出されたデータ値のうちの指定された1つに影響し、
前記APIの1つ以上と通信して前記指定されたデータ値を更新し、
前記更新されたデータ値に基づいて前記表示装置上の前記GUIを更新する
ことをさせるように構成されたそれぞれのコンピュータプログラミングコードに関連づけられる、請求項19に記載の1つ以上の非一時的コンピュータ読取可能媒体。
【請求項21】
表示装置上に提示されているグラフィカルユーザインターフェース(GUI)内の指定されたワイヤウェブコンポーネントを更新する要求を受信するステップであり、前記指定されたワイヤウェブコンポーネントは1つ以上のデータ値を含む、ステップと、
プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフにアクセスすることにより前記1つ以上のデータ値を更新するための1つ以上のアプリケーションプロシージャインターフェース(API)を識別するステップであり、前記データ値の各々は、前記ワイヤウェブコンポーネントグラフ内に表されたそれぞれのデータフィールドに対応し、各データフィールドは、前記ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる、ステップと、
ネットワークを通じて、及び通信インターフェースを介して前記識別されたAPIと通信することにより、1つ以上の更新されたデータ値を決定するステップと、
前記更新された1つ以上のデータ値に基づいて前記表示装置上に提示される前記グラフィカルユーザインターフェースを更新するステップと、
を含む方法。
【請求項22】
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記通信インターフェースを介してリモートサーバから受信される、請求項21に記載の方法。
【請求項23】
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記GUIが前記表示装置上に最初提示された後に前記データ値の1つ以上が変化したことを示す、請求項22に記載の方法。
【請求項24】
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、トリガイベントに基づいて前記プロセッサにより生成される、請求項21乃至23のうちいずれか1項に記載の方法。
【請求項25】
前記トリガイベントは、指定された期間の経過を含む、請求項24に記載の方法。
【請求項26】
前記トリガイベントは、前記GUIを介して受け取ったユーザ入力に基づいて作成される指定されたユーザ入力イベントを検出することを含む、請求項24又は25に記載の方法。
【請求項27】
前記トリガイベントは、前記ワイヤウェブコンポーネントを含まない前記GUIの指定された部分における変更を検出することを含む、請求項24乃至26のうちいずれか1項に記載の方法。
【請求項28】
前記グラフィカルユーザインターフェースを更新することは、前記更新されたデータ値のうちの指定された1つにデータ変換プロシージャを適用して、前記指定されたデータ値の更新されたコンポーネントレベルのビューを生成することを含む、請求項24乃至27のうちいずれか1項に記載の方法。
【請求項29】
前記指定されたデータ値の前記更新されたコンポーネントレベルのビューが、前記指定されたデータ値の前のコンポーネントレベルのビューと異なると決定されたとき、前記グラフィカルユーザインターフェースに関連づけられたドキュメントオブジェクトモデル(DOM)ツリーが更新される、請求項28に記載の方法。
【請求項30】
前記ノードの第1のサブセットの各々は、複数のワイヤウェブコンポーネントのそれぞれ1つに対応し、前記ノードの第2のサブセットの各々は、前記データフィールドのそれぞれの1つに対応し、前記ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応する、請求項21乃至29のうちいずれか1項に記載の方法。
【請求項31】
前記指定されたワイヤウェブコンポーネントは、計算プログラミング言語コードにより実施されるワイヤウェブコンポーネント定義に関連づけられ、前記ワイヤウェブコンポーネント定義は、ハイパーテキストマークアップ言語(HTML)により実施されるテンプレートを含む、請求項21乃至30のうちいずれか1項に記載の方法。
【請求項32】
前記ワイヤウェブコンポーネントグラフは、複数のワイヤウェブコンポーネントの各々についてそれぞれのワイヤウェブコンポーネント定義をパースすることにより部分的に構築される、請求項31に記載の方法。
【請求項33】
表示装置上に提示されているグラフィカルユーザインターフェース(GUI)内の指定されたワイヤウェブコンポーネントを更新する要求を受信するステップであり、前記指定されたワイヤウェブコンポーネントは1つ以上のデータ値を含む、ステップと、
プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフにアクセスすることにより前記1つ以上のデータ値を更新するための1つ以上のアプリケーションプロシージャインターフェース(API)を識別するステップであり、前記データ値の各々は、前記ワイヤウェブコンポーネントグラフ内に表されたそれぞれのデータフィールドに対応し、各データフィールドは、前記ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる、ステップと、
ネットワークを通じて、及び通信インターフェースを介して前記識別されたAPIと通信することにより、1つ以上の更新されたデータ値を決定するステップと、
前記更新された1つ以上のデータ値に基づいて前記表示装置上に提示される前記グラフィカルユーザインターフェースを更新するステップと、
を含む方法を実行するように構成されたコンピューティングデバイス。
【請求項34】
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記通信インターフェースを介してリモートサーバから受信され、前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記GUIが前記表示装置上に最初提示された後に前記データ値の1つ以上が変化したことを示す、請求項33に記載のコンピューティングデバイス。
【請求項35】
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、トリガイベントに基づいて前記プロセッサにより生成される、請求項33又は34に記載のコンピューティングデバイス。
【請求項36】
前記トリガイベントは、指定された期間の経過を含む、請求項35に記載のコンピューティングデバイス。
【請求項37】
前記トリガイベントは、前記GUIを介して受け取ったユーザ入力に基づいて作成される指定されたユーザ入力イベントを検出することを含む、請求項35又は36に記載のコンピューティングデバイス。
【請求項38】
前記トリガイベントは、前記ワイヤウェブコンポーネントを含まない前記GUIの指定された部分における変更を検出することを含む、請求項35乃至37のうちいずれか1項に記載のコンピューティングデバイス。
【請求項39】
方法を実行する命令を記憶させた1つ以上の非一時的コンピュータ読取可能媒体であって、前記方法は、
表示装置上に提示されているグラフィカルユーザインターフェース(GUI)内の指定されたワイヤウェブコンポーネントを更新する要求を受信するステップであり、前記指定されたワイヤウェブコンポーネントは1つ以上のデータ値を含む、ステップと、
プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフにアクセスすることにより前記1つ以上のデータ値を更新するための1つ以上のアプリケーションプロシージャインターフェース(API)を識別するステップであり、前記データ値の各々は、前記ワイヤウェブコンポーネントグラフ内に表されたそれぞれのデータフィールドに対応し、各データフィールドは、前記ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる、ステップと、
ネットワークを通じて、及び通信インターフェースを介して前記識別されたAPIと通信することにより、1つ以上の更新されたデータ値を決定するステップと、
前記更新された1つ以上のデータ値に基づいて前記表示装置上に提示される前記グラフィカルユーザインターフェースを更新するステップと、
を含む、1つ以上の非一時的コンピュータ読取可能媒体。
【請求項40】
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記通信インターフェースを介してリモートサーバから受信され、前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記GUIが前記表示装置上に最初提示された後に前記データ値の1つ以上が変化したことを示す、請求項39に記載の1つ以上の非一時的コンピュータ読取可能媒体。
【請求項41】
表示装置上に提示されているグラフィカルユーザインターフェース(GUI)内の指定されたワイヤウェブコンポーネントを更新する要求を受信するステップであり、前記指定されたワイヤウェブコンポーネントは1つ以上のデータ値を含む、ステップと、
プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフにアクセスすることにより前記1つ以上のデータ値を更新するための1つ以上のアプリケーションプロシージャインターフェース(API)を識別するステップであり、前記データ値の各々は、前記ワイヤウェブコンポーネントグラフ内に表されたそれぞれのデータフィールドに対応し、各データフィールドは、前記ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる、ステップと、
ネットワークを通じて、及び通信インターフェースを介して前記識別されたAPIと通信することにより、1つ以上の更新されたデータ値を決定するステップと、
前記更新された1つ以上のデータ値に基づいて前記表示装置上に提示される前記グラフィカルユーザインターフェースを更新するステップと、
を含む方法。
【請求項42】
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記通信インターフェースを介してリモートサーバから受信される、請求項41に記載の方法。
【請求項43】
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記GUIが前記表示装置上に最初提示された後に前記データ値の1つ以上が変化したことを示す、請求項42に記載の方法。
【請求項44】
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、トリガイベントに基づいて前記プロセッサにより生成される、請求項41乃至43のうちいずれか1項に記載の方法。
【請求項45】
前記トリガイベントは、指定された期間の経過を含む、請求項44に記載の方法。
【請求項46】
前記トリガイベントは、前記GUIを介して受け取ったユーザ入力に基づいて作成される指定されたユーザ入力イベントを検出することを含む、請求項44又は45に記載の方法。
【請求項47】
前記トリガイベントは、前記ワイヤウェブコンポーネントを含まない前記GUIの指定された部分における変更を検出することを含む、請求項44乃至46のうちいずれか1項に記載の方法。
【請求項48】
前記グラフィカルユーザインターフェースを更新することは、前記更新されたデータ値のうちの指定された1つにデータ変換プロシージャを適用して、前記指定されたデータ値の更新されたコンポーネントレベルのビューを生成することを含む、請求項41乃至47のうちいずれか1項に記載の方法。
【請求項49】
前記指定されたデータ値の前記更新されたコンポーネントレベルのビューが、前記指定されたデータ値の前のコンポーネントレベルのビューと異なると決定されたとき、前記グラフィカルユーザインターフェースに関連づけられたドキュメントオブジェクトモデル(DOM)ツリーが更新される、請求項48に記載の方法。
【請求項50】
前記ノードの第1のサブセットの各々は、複数のワイヤウェブコンポーネントのそれぞれ1つに対応し、前記ノードの第2のサブセットの各々は、前記データフィールドのそれぞれの1つに対応し、前記ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応する、請求項41乃至49のうちいずれか1項に記載の方法。
【請求項51】
前記指定されたワイヤウェブコンポーネントは、計算プログラミング言語コードにより実施されるワイヤウェブコンポーネント定義に関連づけられ、前記ワイヤウェブコンポーネント定義は、ハイパーテキストマークアップ言語(HTML)により実施されるテンプレートを含む、請求項41乃至50のうちいずれか1項に記載の方法。
【請求項52】
前記ワイヤウェブコンポーネントグラフは、複数のワイヤウェブコンポーネントの各々についてそれぞれのワイヤウェブコンポーネント定義をパースすることにより部分的に構築される、請求項51に記載の方法。
【請求項53】
表示装置上に提示されているグラフィカルユーザインターフェース(GUI)内の指定されたワイヤウェブコンポーネントを更新する要求を受信するステップであり、前記指定されたワイヤウェブコンポーネントは1つ以上のデータ値を含む、ステップと、
プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフにアクセスすることにより前記1つ以上のデータ値を更新するための1つ以上のアプリケーションプロシージャインターフェース(API)を識別するステップであり、前記データ値の各々は、前記ワイヤウェブコンポーネントグラフ内に表されたそれぞれのデータフィールドに対応し、各データフィールドは、前記ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる、ステップと、
ネットワークを通じて、及び通信インターフェースを介して前記識別されたAPIと通信することにより、1つ以上の更新されたデータ値を決定するステップと、
前記更新された1つ以上のデータ値に基づいて前記表示装置上に提示される前記グラフィカルユーザインターフェースを更新するステップと、
を含む方法を実行するように構成されたコンピューティングデバイス。
【請求項54】
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記通信インターフェースを介してリモートサーバから受信され、前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記GUIが前記表示装置上に最初提示された後に前記データ値の1つ以上が変化したことを示す、請求項53に記載のコンピューティングデバイス。
【請求項55】
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、トリガイベントに基づいて前記プロセッサにより生成される、請求項53又は54に記載のコンピューティングデバイス。
【請求項56】
前記トリガイベントは、指定された期間の経過を含む、請求項55に記載のコンピューティングデバイス。
【請求項57】
前記トリガイベントは、前記GUIを介して受け取ったユーザ入力に基づいて作成される指定されたユーザ入力イベントを検出することを含む、請求項55又は56に記載のコンピューティングデバイス。
【請求項58】
前記トリガイベントは、前記ワイヤウェブコンポーネントを含まない前記GUIの指定された部分における変更を検出することを含む、請求項55乃至57のうちいずれか1項に記載のコンピューティングデバイス。
【請求項59】
方法を実行する命令を記憶させた1つ以上の非一時的コンピュータ読取可能媒体であって、前記方法は、
表示装置上に提示されているグラフィカルユーザインターフェース(GUI)内の指定されたワイヤウェブコンポーネントを更新する要求を受信するステップであり、前記指定されたワイヤウェブコンポーネントは1つ以上のデータ値を含む、ステップと、
プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフにアクセスすることにより前記1つ以上のデータ値を更新するための1つ以上のアプリケーションプロシージャインターフェース(API)を識別するステップであり、前記データ値の各々は、前記ワイヤウェブコンポーネントグラフ内に表されたそれぞれのデータフィールドに対応し、各データフィールドは、前記ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる、ステップと、
ネットワークを通じて、及び通信インターフェースを介して前記識別されたAPIと通信することにより、1つ以上の更新されたデータ値を決定するステップと、
前記更新された1つ以上のデータ値に基づいて前記表示装置上に提示される前記グラフィカルユーザインターフェースを更新するステップと、
を含む、1つ以上の非一時的コンピュータ読取可能媒体。
【請求項60】
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記通信インターフェースを介してリモートサーバから受信され、前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記GUIが前記表示装置上に最初提示された後に前記データ値の1つ以上が変化したことを示す、請求項59に記載の1つ以上の非一時的コンピュータ読取可能媒体。
【請求項61】
表示装置上に提示されているグラフィカルユーザインターフェース(GUI)から指定されたワイヤウェブコンポーネントを除去する要求を受信するステップであり、前記指定されたワイヤウェブコンポーネントは1つ以上のデータフィールドを含み、各データフィールドはそれぞれのデータ値に関連づけられる、ステップと、
プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフから前記指定されたワイヤウェブコンポーネントを表す指定されたノードを除去するステップであり、前記データフィールドの各々は、前記ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる、ステップと、
メモリに記憶されたドキュメントオブジェクトモデル(DOM)ツリーを更新して前記指定されたワイヤウェブコンポーネントを除去するステップと、
前記更新されたDOMツリーに基づいて前記表示装置に提示される前記GUIを更新するステップと、
を含む方法。
【請求項62】
前記指定されたノードを除去することは、トリガ条件が満たされると決定されたときの、前記ワイヤウェブコンポーネントグラフからの前記指定されたノードの除去のために、前記指定されたノードをキューイングすることを含む、請求項61に記載の方法。
【請求項63】
前記トリガ条件は、指定された期間の経過を含む、請求項62に記載の方法。
【請求項64】
前記トリガ条件は、計算リソースの閾値レベルを超えたという決定を含む、請求項62又は63に記載の方法。
【請求項65】
前記指定されたノードを除去することは、1つ以上の子ノードを除去することを含み、前記1つ以上の子ノードの各々は、前記DOMツリー内の前記指定されたワイヤウェブコンポーネント内に位置するそれぞれのDOMオブジェクトに関連づけられる、請求項61乃至64のうちいずれか1項に記載の方法。
【請求項66】
前記1つ以上の子ノードは複数の子ノードを含み、前記1つ以上の子ノードは再帰的に除去される、請求項65に記載の方法。
【請求項67】
前記指定されたワイヤウェブコンポーネントを除去する前記要求は、トリガイベントに基づいて前記プロセッサにより生成される、請求項61乃至66のうちいずれか1項に記載の方法。
【請求項68】
前記GUIは、前記表示装置上で見えるアクティブ部分と、前記表示装置上で見えない非アクティブ部分を含み、前記トリガイベントは、前記指定されたワイヤウェブコンポーネントが前記非アクティブ部分に位置するという決定を含む、請求項67に記載の方法。
【請求項69】
前記トリガイベントは、前記GUIを介して受け取ったユーザ入力に基づいて作成される指定されたユーザ入力イベントを検出することを含む、請求項67又は68に記載の方法。
【請求項70】
前記ノードの第1のサブセットの各々は、複数のワイヤウェブコンポーネントのそれぞれ1つに対応し、前記ノードの第2のサブセットの各々は、前記データフィールドのそれぞれの1つに対応し、前記ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応する、請求項61乃至69のうちいずれか1項に記載の方法。
【請求項71】
前記指定されたワイヤウェブコンポーネントは、計算プログラミング言語コードにより実施されるワイヤウェブコンポーネント定義に関連づけられ、前記ワイヤウェブコンポーネント定義は、ハイパーテキストマークアップ言語(HTML)により実施されるテンプレートを含む、請求項61乃至70のうちいずれか1項に記載の方法。
【請求項72】
前記ワイヤウェブコンポーネントグラフは、複数のワイヤウェブコンポーネントの各々についてそれぞれのワイヤウェブコンポーネント定義をパースすることにより部分的に構築される、請求項71に記載の方法。
【請求項73】
表示装置上に提示されているグラフィカルユーザインターフェース(GUI)から指定されたワイヤウェブコンポーネントを除去する要求を受信するステップであり、前記指定されたワイヤウェブコンポーネントは1つ以上のデータフィールドを含み、各データフィールドはそれぞれのデータ値に関連づけられる、ステップと、
プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフから前記指定されたワイヤウェブコンポーネントを表す指定されたノードを除去するステップであり、前記データフィールドの各々は、前記ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる、ステップと、
メモリに記憶されたドキュメントオブジェクトモデル(DOM)ツリーを更新して前記指定されたワイヤウェブコンポーネントを除去するステップと、
前記更新されたDOMツリーに基づいて前記表示装置に提示される前記GUIを更新するステップと、
を含む方法を実行するように構成されたコンピューティングデバイス。
【請求項74】
前記指定されたノードを除去することは、トリガ条件が満たされると決定されたときの、前記ワイヤウェブコンポーネントグラフからの前記指定されたノードの除去のために、前記指定されたノードをキューイングすることを含む、請求項73に記載のコンピューティングデバイス。
【請求項75】
前記トリガ条件は、指定された期間の経過を含む、請求項74に記載のコンピューティングデバイス。
【請求項76】
前記トリガ条件は、計算リソースの閾値レベルを超えたという決定を含む、請求項74又は75に記載のコンピューティングデバイス。
【請求項77】
前記指定されたノードを除去することは、1つ以上の子ノードを除去することを含み、前記1つ以上の子ノードの各々は、前記DOMツリー内の前記指定されたワイヤウェブコンポーネント内に位置するそれぞれのDOMオブジェクトに関連づけられ、前記1つ以上の子ノードは複数の子ノードを含み、前記1つ以上の子ノードは再帰的に除去される、請求項73乃至76のうちいずれか1項に記載のコンピューティングデバイス。
【請求項78】
前記指定されたワイヤウェブコンポーネントを除去する前記要求は、トリガイベントに基づいて前記プロセッサにより生成され、前記GUIは、前記表示装置上で見えるアクティブ部分と、前記表示装置上で見えない非アクティブ部分を含み、前記トリガイベントは、前記指定されたワイヤウェブコンポーネントが前記非アクティブ部分に位置するという決定を含む、請求項73乃至77のうちいずれか1項に記載のコンピューティングデバイス。
【請求項79】
方法を実行する命令を記憶させた1つ以上の非一時的コンピュータ読取可能媒体であって、前記方法は、
表示装置上に提示されているグラフィカルユーザインターフェース(GUI)から指定されたワイヤウェブコンポーネントを除去する要求を受信するステップであり、前記指定されたワイヤウェブコンポーネントは1つ以上のデータフィールドを含み、各データフィールドはそれぞれのデータ値に関連づけられる、ステップと、
プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフから前記指定されたワイヤウェブコンポーネントを表す指定されたノードを除去するステップであり、前記データフィールドの各々は、前記ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる、ステップと、
メモリに記憶されたドキュメントオブジェクトモデル(DOM)ツリーを更新して前記指定されたワイヤウェブコンポーネントを除去するステップと、
前記更新されたDOMツリーに基づいて前記表示装置に提示される前記GUIを更新するステップと、
を含む、1つ以上の非一時的コンピュータ読取可能媒体。
【請求項80】
前記指定されたノードを除去することは、トリガ条件が満たされると決定されたときの、前記ワイヤウェブコンポーネントグラフからの前記指定されたノードの除去のために、前記指定されたノードをキューイングすることを含み、前記トリガ条件は、計算リソースの閾値レベルを超えたという決定を含む、請求項79に記載の1つ以上の非一時的コンピュータ読取可能媒体。
【請求項81】
通信インターフェースにより、クライアントマシンにおける提示のためのグラフィカルユーザインターフェース(GUI)を提供する要求を受信する手段と、
プロセッサにより、前記GUIに含まれると予測される複数のワイヤウェブコンポーネントを識別する手段であり、各ワイヤウェブコンポーネントは、それぞれのデータオブジェクトインスタンスを参照し、各データオブジェクトインスタンスは、それぞれのデータオブジェクトインスタンス識別子及びそれぞれの1つ以上のデータオブジェクトフィールドに関連づけられる、手段と、
前記プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフを構築する手段であり、前記ノードの第1のサブセットの各々は、前記複数のワイヤウェブコンポーネントのそれぞれ1つに対応し、前記ノードの第2のサブセットの各々は、前記データオブジェクトフィールドのそれぞれ1つに対応し、前記ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応し、各ワイヤウェブコンポーネントは、前記ワイヤウェブコンポーネントグラフ内で、前記ワイヤウェブコンポーネントに含まれる前記データオブジェクトフィールドのそれぞれ1つ以上にリンクされ、それぞれのデータフィールドに対応する各ノードは、前記ワイヤウェブコンポーネントグラフ内で、前記それぞれのデータフィールドに関連づけられたそれぞれのデータ値を取り出すことができるそれぞれのAPIに対応するそれぞれのノードにリンクされる、手段と、
前記ワイヤウェブコンポーネントグラフに基づいて前記それぞれのAPIから前記データ値の1つ以上を取り出す手段と、
前記通信インターフェースを介してGUIメッセージを前記クライアントマシンに送信する手段であり、前記GUIメッセージは、前記取り出されたデータ値と前記ワイヤウェブコンポーネントグラフを含む、手段と、
を含むシステム。
【請求項82】
各ワイヤウェブコンポーネントは、前記クライアントマシンに、
前記GUIが表示装置に表示された後の前記GUIへの変更を検出し、前記変更は、前記取り出されたデータ値のうちの指定された1つに影響し、
前記APIの1つ以上と通信して前記指定されたデータ値を更新し、
前記更新されたデータ値に基づいて前記表示装置上の前記GUIを更新する
ことをさせるそれぞれの手段に関連づけられる、請求項81に記載のシステム。
【請求項83】
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記GUIが最初表示されるときアクティブである可能性が高い第1のGUI部分と、前記GUIが最初表示されるときアクティブである可能性が低い第2のGUI部分とを識別する手段を伴う、請求項81又は82に記載のシステム。
【請求項84】
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記GUIを提供する前記要求に予め訓練された機械学習予測モデルを適用することを含む、請求項81乃至83のうちいずれか1項に記載のシステム。
【請求項85】
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記クライアントマシンから受信した1つ以上の前の要求を評価することを含む、請求項81乃至84のうちいずれか1項に記載のシステム。
【請求項86】
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記APIのうちの指定された1つに対する入力パラメータを予測することを含む、請求項81乃至85のうちいずれか1項に記載のシステム。
【請求項87】
前記要求は、インターネットを介してオンデマンドコンピューティングサービスを提供するように構成されたクラウドコンピューティング環境内のサーバで受信される、請求項81乃至86のうちいずれか1項に記載のシステム。
【請求項88】
前記APIのうちの第1のAPIは、前記クラウドコンピューティング環境を介してアクセス可能である、請求項87に記載のシステム。
【請求項89】
前記APIのうちの第2のAPIは、前記クラウドコンピューティング環境の外部である、請求項88に記載のシステム。
【請求項90】
前記ワイヤウェブコンポーネントの各々は、計算プログラミング言語コードにより実施されるそれぞれのワイヤウェブコンポーネント定義に関連づけられ、前記ワイヤウェブコンポーネント定義の各々は、ハイパーテキストマークアップ言語(HTML)により実施されるそれぞれのテンプレートを含む、請求項81乃至89のうちいずれか1項に記載のシステム。
【請求項91】
前記ワイヤウェブコンポーネントグラフを構築することは、前記複数のワイヤウェブコンポーネントの各々について前記それぞれのワイヤウェブコンポーネント定義をパースすることを含む、請求項90に記載のシステム。
【請求項92】
表示装置上に提示されているグラフィカルユーザインターフェース(GUI)内の指定されたワイヤウェブコンポーネントを更新する要求を受信する手段であり、前記指定されたワイヤウェブコンポーネントは1つ以上のデータ値を含む、手段と、
プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフにアクセスすることにより前記1つ以上のデータ値を更新するための1つ以上のアプリケーションプロシージャインターフェース(API)を識別する手段であり、前記データ値の各々は、前記ワイヤウェブコンポーネントグラフ内に表されたそれぞれのデータフィールドに対応し、各データフィールドは、前記ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる、手段と、
ネットワークを通じて、及び通信インターフェースを介して前記識別されたAPIと通信することにより、1つ以上の更新されたデータ値を決定する手段と、
前記更新された1つ以上のデータ値に基づいて前記表示装置上に提示される前記グラフィカルユーザインターフェースを更新する手段と、
を含むシステム。
【請求項93】
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記通信インターフェースを介してリモートサーバから受信される、請求項92に記載のシステム。
【請求項94】
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記GUIが前記表示装置上に最初提示された後に前記データ値の1つ以上が変化したことを示す、請求項93に記載のシステム。
【請求項95】
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、トリガイベントに基づいて前記プロセッサにより生成される、請求項92乃至94のうちいずれか1項に記載のシステム。
【請求項96】
前記トリガイベントは、指定された期間の経過を含む、請求項95に記載のシステム。
【請求項97】
前記トリガイベントは、前記GUIを介して受け取ったユーザ入力に基づいて作成される指定されたユーザ入力イベントを検出することを含む、請求項95又は96に記載のシステム。
【請求項98】
前記トリガイベントは、前記ワイヤウェブコンポーネントを含まない前記GUIの指定された部分における変更を検出することを含む、請求項95乃至97のうちいずれか1項に記載のシステム。
【請求項99】
前記グラフィカルユーザインターフェースを更新することは、前記更新されたデータ値のうちの指定された1つにデータ変換プロシージャを適用して、前記指定されたデータ値の更新されたコンポーネントレベルのビューを生成することを含む、請求項95乃至98のうちいずれか1項に記載のシステム。
【請求項100】
前記指定されたデータ値の前記更新されたコンポーネントレベルのビューが、前記指定されたデータ値の前のコンポーネントレベルのビューと異なると決定されたとき、前記グラフィカルユーザインターフェースに関連づけられたドキュメントオブジェクトモデル(DOM)ツリーが更新される、請求項99に記載のシステム。
【請求項101】
前記ノードの第1のサブセットの各々は、複数のワイヤウェブコンポーネントのそれぞれ1つに対応し、前記ノードの第2のサブセットの各々は、前記データフィールドのそれぞれの1つに対応し、前記ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応する、請求項92乃至100のうちいずれか1項に記載のシステム。
【請求項102】
前記指定されたワイヤウェブコンポーネントは、計算プログラミング言語コードにより実施されるワイヤウェブコンポーネント定義に関連づけられ、前記ワイヤウェブコンポーネント定義は、ハイパーテキストマークアップ言語(HTML)により実施されるテンプレートを含む、請求項92乃至101のうちいずれか1項に記載のシステム。
【請求項103】
前記ワイヤウェブコンポーネントグラフは、複数のワイヤウェブコンポーネントの各々についてそれぞれのワイヤウェブコンポーネント定義をパースすることにより部分的に構築される、請求項102に記載のシステム。
【請求項104】
表示装置上に提示されているグラフィカルユーザインターフェース(GUI)内の指定されたワイヤウェブコンポーネントを更新する要求を受信する手段であり、前記指定されたワイヤウェブコンポーネントは1つ以上のデータ値を含む、手段と、
プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフにアクセスすることにより前記1つ以上のデータ値を更新するための1つ以上のアプリケーションプロシージャインターフェース(API)を識別する手段であり、前記データ値の各々は、前記ワイヤウェブコンポーネントグラフ内に表されたそれぞれのデータフィールドに対応し、各データフィールドは、前記ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる、手段と、
ネットワークを通じて、及び通信インターフェースを介して前記識別されたAPIと通信することにより、1つ以上の更新されたデータ値を決定する手段と、
前記更新された1つ以上のデータ値に基づいて前記表示装置上に提示される前記グラフィカルユーザインターフェースを更新する手段と、
を含むシステム。
【請求項105】
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記通信インターフェースを介してリモートサーバから受信される、請求項104に記載のシステム。
【請求項106】
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記GUIが前記表示装置上に最初提示された後に前記データ値の1つ以上が変化したことを示す、請求項105に記載のシステム。
【請求項107】
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、トリガイベントに基づいて前記プロセッサにより生成される、請求項104乃至106のうちいずれか1項に記載のシステム。
【請求項108】
前記トリガイベントは、指定された期間の経過を含む、請求項107に記載のシステム。
【請求項109】
前記トリガイベントは、前記GUIを介して受け取ったユーザ入力に基づいて作成される指定されたユーザ入力イベントを検出することを含む、請求項107又は108に記載のシステム。
【請求項110】
前記トリガイベントは、前記ワイヤウェブコンポーネントを含まない前記GUIの指定された部分における変更を検出することを含む、請求項107乃至109のうちいずれか1項に記載のシステム。
【請求項111】
前記グラフィカルユーザインターフェースを更新することは、前記更新されたデータ値のうちの指定された1つにデータ変換プロシージャを適用して、前記指定されたデータ値の更新されたコンポーネントレベルのビューを生成することを含む、請求項104乃至110のうちいずれか1項に記載のシステム。
【請求項112】
前記指定されたデータ値の前記更新されたコンポーネントレベルのビューが、前記指定されたデータ値の前のコンポーネントレベルのビューと異なると決定されたとき、前記グラフィカルユーザインターフェースに関連づけられたドキュメントオブジェクトモデル(DOM)ツリーが更新される、請求項111に記載のシステム。
【請求項113】
前記ノードの第1のサブセットの各々は、複数のワイヤウェブコンポーネントのそれぞれ1つに対応し、前記ノードの第2のサブセットの各々は、前記データフィールドのそれぞれの1つに対応し、前記ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応する、請求項104乃至112のうちいずれか1項に記載のシステム。
【請求項114】
前記指定されたワイヤウェブコンポーネントは、計算プログラミング言語コードにより実施されるワイヤウェブコンポーネント定義に関連づけられ、前記ワイヤウェブコンポーネント定義は、ハイパーテキストマークアップ言語(HTML)により実施されるテンプレートを含む、請求項104乃至113のうちいずれか1項に記載のシステム。
【請求項115】
前記ワイヤウェブコンポーネントグラフは、複数のワイヤウェブコンポーネントの各々についてそれぞれのワイヤウェブコンポーネント定義をパースすることにより部分的に構築される、請求項114に記載のシステム。
【請求項116】
表示装置上に提示されているグラフィカルユーザインターフェース(GUI)から指定されたワイヤウェブコンポーネントを除去する要求を受信する手段であり、前記指定されたワイヤウェブコンポーネントは1つ以上のデータフィールドを含み、各データフィールドはそれぞれのデータ値に関連づけられる、手段と、
プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフから前記指定されたワイヤウェブコンポーネントを表す指定されたノードを除去する手段であり、前記データフィールドの各々は、前記ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる、手段と、
メモリに記憶されたドキュメントオブジェクトモデル(DOM)ツリーを更新して前記指定されたワイヤウェブコンポーネントを除去する手段と、
前記更新されたDOMツリーに基づいて前記表示装置に提示される前記GUIを更新する手段と、
を含むシステム。
【請求項117】
前記指定されたノードを除去することは、トリガ条件が満たされると決定されたときの、前記ワイヤウェブコンポーネントグラフからの前記指定されたノードの除去のために、前記指定されたノードをキューイングすることを含む、請求項116に記載のシステム。
【請求項118】
前記トリガ条件は、指定された期間の経過を含む、請求項117に記載のシステム。
【請求項119】
前記トリガ条件は、計算リソースの閾値レベルを超えたという決定を含む、請求項117又は118に記載のシステム。
【請求項120】
前記指定されたノードを除去することは、1つ以上の子ノードを除去することを含み、前記1つ以上の子ノードの各々は、前記DOMツリー内の前記指定されたワイヤウェブコンポーネント内に位置するそれぞれのDOMオブジェクトに関連づけられる、請求項116乃至119のうちいずれか1項に記載のシステム。
【請求項121】
前記1つ以上の子ノードは複数の子ノードを含み、前記1つ以上の子ノードは再帰的に除去される、請求項120に記載のシステム。
【請求項122】
前記指定されたワイヤウェブコンポーネントを除去する前記要求は、トリガイベントに基づいて前記プロセッサにより生成される、請求項116乃至121のうちいずれか1項に記載のシステム。
【請求項123】
前記GUIは、前記表示装置上で見えるアクティブ部分と、前記表示装置上で見えない非アクティブ部分を含み、前記トリガイベントは、前記指定されたワイヤウェブコンポーネントが前記非アクティブ部分に位置するという決定を含む、請求項122に記載のシステム。
【請求項124】
前記トリガイベントは、前記GUIを介して受け取ったユーザ入力に基づいて作成される指定されたユーザ入力イベントを検出することを含む、請求項122又は123に記載のシステム。
【請求項125】
前記ノードの第1のサブセットの各々は、複数のワイヤウェブコンポーネントのそれぞれ1つに対応し、前記ノードの第2のサブセットの各々は、前記データフィールドのそれぞれの1つに対応し、前記ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応する、請求項116乃至124のうちいずれか1項に記載のシステム。
【請求項126】
前記指定されたワイヤウェブコンポーネントは、計算プログラミング言語コードにより実施されるワイヤウェブコンポーネント定義に関連づけられ、前記ワイヤウェブコンポーネント定義は、ハイパーテキストマークアップ言語(HTML)により実施されるテンプレートを含む、請求項116乃至125のうちいずれか1項に記載のシステム。
【請求項127】
前記ワイヤウェブコンポーネントグラフは、複数のワイヤウェブコンポーネントの各々についてそれぞれのワイヤウェブコンポーネント定義をパースすることにより部分的に構築される、請求項126に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本出願は、2019年6月24日に出願された「A Declarative and Reactive Data Layer for Component-based User Interfaces」と題されたVenkiteswaranらによる米国特許出願第16/450,544号(Atty Docket A4276US1_SFDCP016)、第16/450,582号(Atty Docket 4276US2_SFDCP016A)、第16/450,592号(Atty Docket A4276US3_SFDCP016B)、及び第16/450,598号(Atty Docket A4276US4_SFDCP016C)に対する優先権を主張し、これらの全てが2019年4月30日に出願された「A Declarative and Reactive Data Layer for Component-based User Interfaces」と題されたVenkiteswaranらによる仮米国特許出願第62/840,458号に対して35 U.S.C. 120に基づく優先権を主張し、これらの全てがその全体を全ての目的のため参照により本明細書に組み込まれる。
【0002】
[技術分野]
本特許文献は、概して、データベースシステムに記憶されたデータにアクセスするクライアント‐サーバ通信に関する。
【背景技術】
【0003】
「クラウドコンピューティング」サービスは、要求に基づいて、共有されるリソース、アプリケーション、及び情報をコンピュータ及び他のデバイスに提供する。クラウドコンピューティング環境では、サービスは、自社のコンピュータシステムにソフトウェアをローカルにインストールするのではなく、インターネットを通じてアクセス可能な1つ以上のサーバにより提供することができる。ユーザは、クラウドコンピューティングサービスと対話して幅広いタスクを引き受けることができる。
【0004】
ユーザは、しばしば、HTMLベースのユーザインターフェースを介してクラウドコンピューティングシステムと対話する。これらのユーザインターフェースにより、ユーザは、クラウドコンピューティングシステムを介してアクセス可能なデータベースシステムに記憶された情報を閲覧及び/又は更新することができる。例えば、ユーザインターフェースは、データベースシステムに記憶されたレコードに関する情報を提示することができる。そのようなユーザインターフェースの遍在性を考慮すると、HTMLベースのユーザインターフェースを介してデータベースシステム内のデータにアクセスするための改善された手法が望まれる。
【発明の概要】
【0005】
様々な実施形態によれば、本明細書に記載される手法及びメカニズムは、1つ以上のシステム、デバイス、方法、及びマシン読取可能媒体を含む。
【0006】
いくつかの実装において、クライアントマシンでの提示のためのグラフィカルユーザインターフェース(GUI)を提供するために、通信インターフェースにより要求が受信され得る。GUIに含まれると予測される複数のワイヤウェブコンポーネントが、プロセッサにより識別され得、各ワイヤウェブコンポーネントは、それぞれのデータオブジェクトインスタンスを参照し、各データオブジェクトインスタンスは、それぞれのデータオブジェクトインスタンス識別子及びそれぞれの1つ以上のデータオブジェクトフィールドに関連づけられる。複数のノードを含むワイヤウェブコンポーネントグラフが、プロセッサにより構築され得、ノードの第1のサブセットの各々は、複数のワイヤウェブコンポーネントのそれぞれ1つに対応し、ノードの第2のサブセットの各々は、データオブジェクトフィールドのそれぞれ1つに対応し、ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応し、各ワイヤウェブコンポーネントは、ワイヤウェブコンポーネントグラフ内で、ワイヤウェブコンポーネントに含まれるデータオブジェクトフィールドのそれぞれ1つ以上にリンクされ、それぞれのデータフィールドに対応する各ノードは、ワイヤウェブコンポーネントグラフ内で、それぞれのデータフィールドに関連づけられたそれぞれのデータ値を取り出すことができるそれぞれのAPIに対応するそれぞれのノードにリンクされる。データ値の1つ以上が、ワイヤウェブコンポーネントグラフに基づいてそれぞれAPIから取り出され得る。GUIメッセージが、通信インターフェースを介してクライアントマシンに送信され得、GUIメッセージは、取り出されたデータ値とワイヤウェブコンポーネントグラフを含む。
【0007】
いくつかの実施形態において、各ワイヤウェブコンポーネントは、クライアントマシンに、GUIが表示装置上に表示され得た後のGUIへの変更を検出し、変更は取り出されたデータ値のうちの指定された1つに影響し、APIの1つ以上と通信して指定されたデータ値を更新し、かつ/あるいは更新されたデータ値に基づいて表示装置上のGUIを更新することをさせるように構成されたそれぞれのコンピュータプログラミングコードに関連づけられてもよい。
【0008】
いくつかの実施形態において、GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、GUIが最初表示されるときアクティブである可能性が高い第1のGUI部分と、GUIが最初表示されるときアクティブである可能性が低い第2のGUI部分とを識別することを含んでもよい。
【0009】
いくつかの実施形態において、GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、GUIを提供する要求に予め訓練された機械学習予測モデルを適用することを含んでもよい。
【0010】
いくつかの実施形態において、GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、クライアントマシンから受信した1つ以上の前の要求を評価することを含んでもよい。
【0011】
いくつかの実施形態において、GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、APIのうちの指定された1つに対する入力パラメータを予測することを含んでもよい。
【0012】
いくつかの実施形態において、要求は、インターネットを介してオンデマンドコンピューティングサービスを提供するように構成されたクラウドコンピューティング環境内のサーバで受信されてもよい。
【0013】
いくつかの実施形態において、APIのうちの第1のAPIは、クラウドコンピューティング環境を介してアクセス可能でもよい。
【0014】
いくつかの実施形態において、APIのうちの第2のAPIは、クラウドコンピューティング環境の外部でもよい。
【0015】
いくつかの実施形態において、ワイヤウェブコンポーネントの各々は、計算プログラミング言語コードにより実施されるそれぞれのワイヤウェブコンポーネント定義に関連づけられてもよく、いくつかの実施形態において、ワイヤウェブコンポーネント定義の各々は、ハイパーテキストマークアップ言語(HTML)により実施されるそれぞれのテンプレートを含む。
【0016】
いくつかの実施形態において、ワイヤウェブコンポーネントグラフを構築することは、複数のワイヤウェブコンポーネントの各々についてそれぞれのワイヤウェブコンポーネント定義をパースする(parsing)ことを含んでもよい。
【0017】
いくつかの実装において、表示装置上に提示されているグラフィカルユーザインターフェース(GUI)内の指定されたワイヤウェブコンポーネントを更新する要求が受信され得、指定されたワイヤウェブコンポーネントは1つ以上のデータ値を含む。複数のノードを含むワイヤウェブコンポーネントグラフにアクセスすることにより1つ以上のデータ値を更新するための1つ以上のアプリケーションプロシージャインターフェース(API)が、プロセッサにより識別され得、データ値の各々は、ワイヤウェブコンポーネントグラフ内に表されたそれぞれデータフィールドに対応し、各データフィールドは、ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる。1つ以上の更新されたデータ値が、ネットワークを通じて、及び通信インターフェースを介して識別されたAPIと通信することにより決定され得る。表示装置上に提示されるグラフィカルユーザインターフェースは、更新された1つ以上のデータ値に基づいて更新され得る。
【0018】
いくつかの実施形態において、指定されたワイヤウェブコンポーネントを更新する要求は、通信インターフェースを介してリモートサーバから受信されてもよい。
【0019】
いくつかの実施形態において、指定されたワイヤウェブコンポーネントを更新する要求は、GUIが表示装置上に最初提示された後にデータ値の1つ以上が変化したことを示してもよい。
【0020】
いくつかの実施形態において、指定されたワイヤウェブコンポーネントを更新する要求は、トリガイベントに基づいてプロセッサにより生成されてもよい。
【0021】
いくつかの実施形態において、トリガイベントは、指定された期間の経過を含んでもよい。
【0022】
いくつかの実施形態において、トリガイベントは、GUIを介して受け取ったユーザ入力に基づいて作成される指定されたユーザ入力イベントを検出することを含んでもよい。
【0023】
いくつかの実施形態において、トリガイベントは、ワイヤウェブコンポーネントを含まないGUIの指定された部分における変更を検出することを含んでもよい。
【0024】
いくつかの実施形態において、グラフィカルユーザインターフェースを更新することは、更新されたデータ値のうちの指定された1つにデータ変換プロシージャを適用して、指定されたデータ値の更新されたコンポーネントレベルのビューを生成することを含んでもよい。
【0025】
いくつかの実施形態において、指定されたデータ値の更新されたコンポーネントレベルのビューが、指定されたデータ値の前のコンポーネントレベルのビューと異なると決定されたとき、グラフィカルユーザインターフェースに関連づけられたドキュメントオブジェクトモデル(DOM)ツリーが更新されてもよい。
【0026】
いくつかの実施形態において、ノードの第1のサブセットの各々は、複数のワイヤウェブコンポーネントのそれぞれ1つに対応してもよい。ノードの第2のサブセットの各々は、データフィールドのそれぞれ1つに対応してもよい。ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応する。
【0027】
いくつかの実施形態において、指定されたワイヤウェブコンポーネントは、計算プログラミング言語コードにより実施されるワイヤウェブコンポーネント定義に関連づけられてもよく、いくつかの実施形態において、ワイヤウェブコンポーネント定義は、ハイパーテキストマークアップ言語(HTML)により実施されるテンプレートを含む。
【0028】
いくつかの実施形態において、ワイヤウェブコンポーネントグラフは、複数のワイヤウェブコンポーネントの各々についてそれぞれのワイヤウェブコンポーネント定義をパースすることにより部分的に構築されてもよい。
【0029】
いくつかの実装において、表示装置上に提示されているグラフィカルユーザインターフェース(GUI)内の指定されたワイヤウェブコンポーネントを更新する要求が受信され得、指定されたワイヤウェブコンポーネントは1つ以上のデータ値を含む。複数のノードを含むワイヤウェブコンポーネントグラフにアクセスすることにより1つ以上のデータ値を更新するための1つ以上のアプリケーションプロシージャインターフェース(API)が、プロセッサにより識別され得、データ値の各々は、ワイヤウェブコンポーネントグラフ内に表されたそれぞれデータフィールドに対応し、各データフィールドは、ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる。1つ以上の更新されたデータ値が、ネットワークを通じて、及び通信インターフェースを介して識別されたAPIと通信することにより決定され得る。表示装置上に提示されるグラフィカルユーザインターフェースは、更新された1つ以上のデータ値に基づいて更新され得る。
【0030】
いくつかの実施形態において、指定されたワイヤウェブコンポーネントを更新する要求は、通信インターフェースを介してリモートサーバから受信されてもよい。
【0031】
いくつかの実施形態において、指定されたワイヤウェブコンポーネントを更新する要求は、GUIが表示装置上に最初提示された後にデータ値の1つ以上が変化したことを示してもよい。
【0032】
いくつかの実施形態において、指定されたワイヤウェブコンポーネントを更新する要求は、トリガイベントに基づいてプロセッサにより生成されてもよい。
【0033】
いくつかの実施形態において、トリガイベントは、指定された期間の経過を含んでもよい。
【0034】
いくつかの実施形態において、トリガイベントは、GUIを介して受け取ったユーザ入力に基づいて作成される指定されたユーザ入力イベントを検出することを含んでもよい。
【0035】
いくつかの実施形態において、トリガイベントは、ワイヤウェブコンポーネントを含まないGUIの指定された部分における変更を検出することを含んでもよい。
【0036】
いくつかの実施形態において、グラフィカルユーザインターフェースを更新することは、更新されたデータ値のうちの指定された1つにデータ変換プロシージャを適用して、指定されたデータ値の更新されたコンポーネントレベルのビューを生成することを含んでもよい。
【0037】
いくつかの実施形態において、指定されたデータ値の更新されたコンポーネントレベルのビューが、指定されたデータ値の前のコンポーネントレベルのビューと異なると決定されたとき、グラフィカルユーザインターフェースに関連づけられたドキュメントオブジェクトモデル(DOM)ツリーが更新されてもよい。
【0038】
いくつかの実施形態において、ノードの第1のサブセットの各々は、複数のワイヤウェブコンポーネントのそれぞれ1つに対応してもよく、ノードの第2のサブセットの各々は、データフィールドのそれぞれ1つに対応してもよく、ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応する。
【0039】
いくつかの実施形態において、指定されたワイヤウェブコンポーネントは、計算プログラミング言語コードにより実施されるワイヤウェブコンポーネント定義に関連づけられてもよく、ワイヤウェブコンポーネント定義は、ハイパーテキストマークアップ言語(HTML)により実施されるテンプレートを含む。
【0040】
いくつかの実施形態において、ワイヤウェブコンポーネントグラフは、複数のワイヤウェブコンポーネントの各々についてそれぞれのワイヤウェブコンポーネント定義をパースすることにより部分的に構築されてもよい。
【0041】
いくつかの実装において、表示装置上に提示されているグラフィカルユーザインターフェース(GUI)から指定されたワイヤウェブコンポーネントを除去する要求が受信され得、指定されたワイヤウェブコンポーネントは1つ以上のデータフィールドを含み、各データフィールドはそれぞれのデータ値に関連づけられる。指定されたワイヤウェブコンポーネントを表す指定されたノードが、複数のノードを含むワイヤウェブコンポーネントグラフから除去され得、データフィールドの各々は、ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる。メモリに記憶されたドキュメントオブジェクトモデル(DOM)ツリーが、指定されたワイヤウェブコンポーネントを除去するために更新され得る。表示装置上に提示されるGUIは、更新されたDOMツリーに基づいて更新され得る。
【0042】
いくつかの実施形態において、指定されたノードを除去することは、トリガ条件が満たされると決定されたときの、ワイヤウェブコンポーネントグラフからの指定されたノードの除去のために、指定されたノードをキューイングすることを含む。
【0043】
いくつかの実施形態において、トリガ条件は、指定された期間の経過を含んでもよい。
【0044】
いくつかの実施形態において、トリガ条件は、計算リソースの閾値レベルを超えたという決定を含んでもよい。
【0045】
いくつかの実施形態において、指定されたノードを除去することは、1つ以上の子ノードを除去することを含んでもよく、1つ以上の子ノードの各々は、DOMツリー内の指定されたワイヤウェブコンポーネント内に位置するそれぞれのDOMオブジェクトに関連づけられる。
【0046】
いくつかの実施形態において、1つ以上の子ノードは複数の子ノードを含み、1つ以上の子ノードは再帰的に除去されてもよい。
【0047】
いくつかの実施形態において、指定されたワイヤウェブコンポーネントを除去する要求は、トリガイベントに基づいてプロセッサにより生成されてもよい。
【0048】
いくつかの実施形態において、GUIは、表示装置上で見え得るアクティブ部分と、表示装置上で見え得ない非アクティブ部分を含んでもよく、いくつかの実施形態において、トリガイベントは、指定されたワイヤウェブコンポーネントが非アクティブ部分に位置し得るという決定を含んでもよい。
【0049】
いくつかの実施形態において、トリガイベントは、GUIを介して受け取ったユーザ入力に基づいて作成される指定されたユーザ入力イベントを検出することを含んでもよい。
【0050】
いくつかの実施形態において、ノードの第1のサブセットの各々は、複数のワイヤウェブコンポーネントのそれぞれ1つに対応してもよく、ノードの第2のサブセットの各々は、データフィールドのそれぞれ1つに対応してもよく、いくつかの実施形態において、かつ/あるいは、ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応してもよい。
【0051】
いくつかの実施形態において、指定されたワイヤウェブコンポーネントは、計算プログラミング言語コードにより実施されるワイヤウェブコンポーネント定義に関連づけられてもよく、かつ/あるいは、ワイヤウェブコンポーネント定義は、ハイパーテキストマークアップ言語(HTML)により実施されるテンプレートを含んでもよい。
【0052】
いくつかの実施形態において、ワイヤウェブコンポーネントグラフは、複数のワイヤウェブコンポーネントの各々についてそれぞれのワイヤウェブコンポーネント定義をパースすることにより部分的に構築されてもよい。
【図面の簡単な説明】
【0053】
含まれる図面は例示を目的とし、コンポーネントベースのユーザインターフェースを提供するための開示される本発明のシステム、装置、方法、及びコンピュータプログラム製品の可能な構造及び動作の例を単に提供することに役立つ。これらの図面は、開示される実装の主旨及び範囲から逸脱することなく当業者によりなされ得る形態及び詳細における変更を決して制限しない。
【
図1】1つ以上の実施形態に従って実行される、ワイヤウェブコンポーネントライフサイクルのための方法の一例を示す。
【
図2】1つ以上の実施形態に従って構成されたクライアント‐サーバ通信システムにおけるコンポーネントの配置の一例を示す。
【
図3】1つ以上の実施形態に従って実行される、ワイヤウェブコンポーネントを定義する方法の一例を示す。
【
図4】1つ以上の実施形態に従って実行される、ワイヤウェブコンポーネントを前処理する方法の一例を示す。
【
図5】1つ以上の実施形態に従って実行される、ワイヤウェブコンポーネントを作成する方法の一例を示す。
【
図6】1つ以上の実施形態に従って構成されたデータサービスの一例を示す。
【
図7】1つ以上の実施形態に従って実行される、ワイヤウェブコンポーネントデータを更新する方法の一例を示す。
【
図8】1つ以上の実施形態に従って実行される、ワイヤウェブコンポーネントを破棄する方法の一例を示す。
【
図9】いくつかの実装に従って構成されたオンデマンドデータベースサービスを含む環境の一例のブロック図を示す。
【
図10A】いくつかの実装に従って構成されたオンデマンドデータベースサービス環境のアーキテクチャコンポーネントの一例のシステム図を示す。
【
図10B】いくつかの実装によるオンデマンドデータベースサービス環境のアーキテクチャコンポーネントの一例をさらに示すシステム図を示す。
【
図11】コンピューティングデバイスの一例を示す。
【発明を実施するための形態】
【0054】
本明細書に記載される手法及びメカニズムは、ウェブベースのユーザインターフェースにおけるデータのアクセス及び更新を簡素化及び合理化するワイヤウェブコンポーネント(wire web components)を提供する。多くのユーザインターフェースは、ウェブコンポーネントメタ仕様に依存しており、これ自体は、カスタム要素(Custom Elements)仕様、シャドウドキュメントオブジェクトモデル(Document Object Model、DOM)仕様、ハイパーテキストマークアップ言語(Hypertext Markup Language、HTML)テンプレート仕様、及びECMAScript(ES)モジュール仕様の組み合わせである。組み合わせられたこれら4つの仕様により、開発者は、スタイルがカプセル化及び隔離された独自のHTMLタグ(すなわち、カスタム要素)を定義することができ(すなわち、シャドウDOM)、これは、何度も再型押しされ(re-stamped)(テンプレート)、アプリケーション(すなわち、ESモジュール)に統合される一貫した方法を有することができる。
【0055】
従来のシステムでは、ウェブコンポーネントは、静的情報を提示するために使用されている。すなわち、ウェブベースのユーザインターフェースは、開発者により定義されたカスタムウェブコンポーネントを含み、作成すると、そのウェブコンポーネントは、サーバから取り出された静的情報と共にクライアントマシンでブラウザに提示されるユーザインターフェースに投入される(populated)。DOMのほとんどの要素と同様に、ウェブコンポーネントは、異なる情報を含むように手動で編集することができる。しかしながら、従来のカスタムウェブコンポーネントは、ユーザインターフェース内の他の場所やサーバ上でデータに対して行われた変更に基づく自動更新をサポートしていない。
【0056】
本明細書に記載される手法及びメカニズムは、動的に更新可能なワイヤウェブコンポーネントを提供する。様々な実施形態によれば、ワイヤウェブコンポーネントは、拡張可能なフレームワークを提供することができる。例えば、レイアウトを提供するために、HTMLが書かれてもよい。このHTMLは、ワイヤウェブコンポーネントに含めることができ、ワイヤウェブコンポーネントはさらに、レンダリングされたHTMLに含むべきデータ値にアクセスして更新するプログラミングロジックを含むことができる。次いで、開発者は、フレームワークを拡張して、カスタムユーザインターフェース部分を生成するために使用されるカスタムワイヤウェブコンポーネントを提供することができる。次いで、レンダリングされたユーザインターフェース内のワイヤウェブコンポーネントは、動的に更新され得、開発者がそのような更新を実行するための手続き型命令を規定することを必要としない。
【0057】
様々な実施形態によれば、ワイヤウェブコンポーネントグラフは、ユーザインターフェース内のデータを動的に更新するために使用され得る。例えば、各ワイヤウェブコンポーネントは、1つ以上のデータフィールドを含むことができ、各データフィールドは、それぞれのAPIを介して取り出し可能なデータ値に関連づけることができる。各ワイヤウェブコンポーネント、データフィールド、及びAPIは、ワイヤウェブコンポーネントグラフ内のノードとして表すことができる。次いで、ワイヤウェブコンポーネントグラフを使用して、データアクセスをガイドすることができる。例えば、ワイヤウェブコンポーネントグラフを使用して、API要求の数を統合し、重複データの取り出しを回避してもよい。
【0058】
いくつかの実施形態において、ワイヤウェブコンポーネントグラフは、ユーザインターフェースがレンダリングされた後、データを動的に更新するために使用され得る。例えば、更新データ値は、値をAPIからクライアントマシンにプッシュすることにより生成されてもよい。別の例として、更新データ値は、値をAPIからクライアントマシンにプルすることにより生成されてもよい。さらに別の例として、更新データ値は、ユーザインターフェースの他の場所からの情報を受信することにより生成されてもよい。例えば、ユーザインターフェースは、デュアルの並べたワークプレイスを表示することができる。次いで、インターフェースの一方の側は、インターフェースのスクロール可能なセクションで現在提示されているページ番号などの情報を提供し得る。データ値が更新された後、データ値は、次いで、データ値が含まれる任意のウェブコンポーネントに提供され得る。
【0059】
特定の実施形態において、宣言型フレームワークが、静的分析を提供することができる。例えば、サーバが、ユーザインターフェースを分析して、クライアントマシンにより必要とされ得るデータ値を予測することができる。別の例として、サーバは、ユーザインターフェースを分析して、動的に生成されたユーザインターフェースに含めるべきコンポーネント定義を予測することができる。さらに別の例として、クライアントマシンが、ユーザインターフェースに含まれるコンポーネントのグラフを構築することができる。
【0060】
いくつかの実装において、コンポーネントレベルのロジックが、データフィールドのコンポーネントレベルのビューを提供することができる。例えば、日付値が、そのデータ値を含む全てのコンポーネントについて更新され得る。しかしながら、同じ日付値が、異なるウェブコンポーネントについて別様に提示されてもよい(例えば、「5月1日」、「2005年5月1日」、又は「2005年5月1日午後2時30分」)。
【0061】
特定の実施形態において、ワイヤウェブコンポーネントは、ユーザインターフェースがレンダリングされた後、追加され、かつ/あるいはユーザインターフェースから除去され得る。例えば、ワイヤウェブコンポーネントが、DOMツリーに追加され得る。次いで、対応するワイヤウェブコンポーネントグラフが、さらなるノードを含むように更新され得、それにより、ワイヤウェブコンポーネントに関連づけられたデータは、ユーザインターフェースにおける表示のためワイヤウェブコンポーネントに提供するためにアクセスされる。別の例として、ワイヤウェブコンポーネントは、DOMツリーから除去され得る。次いで、対応するワイヤウェブコンポーネントグラフは、不必要なデータのダウンロードを回避するために必要に応じてノードを除去するように更新され得る。
【0062】
様々な実施形態によれば、いくつかの手法及びメカニズムが、ウェブベースのユーザインターフェースを参照して本明細書で説明される。さらに、本明細書に記載されるいくつかの手法及びメカニズムは、ウェブベースのユーザインターフェースが採用される例を用いて示される。しかしながら、本明細書に記載される手法及びメカニズムは、ウェブベースのユーザインターフェース以外のコンテキストを含む、広範な多様な計算コンテキストに適用可能である。例えば、ユーザインターフェースコンポーネントはワイヤウェブコンポーネントと呼ばれ得るが、このようなコンポーネントはウェブベースの環境で実施される必要はない。実際、ワイヤウェブコンポーネントに関連する手法及びメカニズムは、ユーザインターフェースがユーザインターフェース内で提示されるデータの一部又は全てのソースからリモートに位置する任意のユーザインターフェースコンテキストにおいて適用可能であり得る。
【0063】
エンドユーザ「アレックス」の状況について考える。アレックスは、サーバ上に記憶されたデータベースレコードに関連づけられた顧客関係管理(customer relations management、CRM)情報を提示する従来のユーザインターフェースを採用している。アレックスが、ユーザインターフェースの一部分における顧客連絡先の名前などのデータを変更したとき、その変更は、ユーザインターフェースの別の部分に反映されない。さらに、同僚が、アレックスもレコードを閲覧している時間中にレコードを更新したとき、同僚の更新は、アレックスのユーザインターフェースに反映されない。この状況は、混乱、レース条件、及び不正確なデータを生じさせる可能性がある。
【0064】
次に、代替的に、アレックスが本明細書に記載される手法及びメカニズムの実施形態に従って構成されたユーザインターフェースを採用していると仮定する。アレックスが、ユーザインターフェースの一部分における顧客連絡先の名前などのデータを変更したとき、その変更は、ユーザインターフェース内の他の場所に反映される。例えば、詳細レコードウィンドウにおいて顧客連絡先名を更新することは、顧客の連絡先名が顧客連絡先のリストでも変更される結果をもたらす。同様に、同僚が、アレックスもレコードを閲覧している時間中にレコードを更新したとき、同僚の更新は、アレックスのユーザインターフェースにすばやく反映される。例えば、別のコンピュータ上の同僚が、新しいメーリングアドレスを含めるためにアレックスも作業している連絡先レコードを更新したとき、その変更は、ユーザインターフェースをリフレッシュする必要なくアレックスのユーザインターフェースに反映される。
【0065】
図1は、1つ以上の実施形態に従って実行される、ワイヤウェブコンポーネントライフサイクルのための方法100の一例を示す。様々な実施形態によれば、方法100は、
図2に示すシステム200などの、クライアントマシンと通信するサーバを含むシステムで実行され得る。
【0066】
102において、1つ以上のワイヤウェブコンポーネントが定義される。いくつかの実装において、ワイヤウェブコンポーネントは、HTMLにより実施されるグラフィカルユーザインターフェースにおける提示に対して構成されたカスタムHTML要素及び関連するコンピュータプログラミングコード(例えば、JavaScript(登録商標))を含むことができる。様々な実施形態によれば、ワイヤウェブコンポーネントは、クライアント及び/又はサーバ側でデータを自動的に更新することなどの動作を自動的に実行するさらなるロジックを含む特定のタイプのワイヤウェブコンポーネントである。
【0067】
いくつかの実装において、ワイヤウェブコンポーネントを定義することは、ワイヤウェブコンポーネントに関連づけられた1つ以上のプロパティを規定するコンピュータプログラミングコードを作成及び記憶することを含んでもよい。ワイヤウェブコンポーネントのための1つのそのようなプロパティは、情報を取り出す及び/又は記憶するアプリケーションプロシージャインターフェース(application procedure interface、API)に関連づけられた識別子及び/又はアドレスでもよい。別のこのようなプロパティは、APIを介してデータ値を取り出すための1つ以上のデータフィールドのアイデンティティ(identity)でもよい。アクセスされるべき情報に追加で、ワイヤウェブコンポーネント定義は、情報に関連づけられた1つ以上のフィルタリング、処理、及び/又は更新プロシージャなどの情報を規定してもよい。カスタムワイヤウェブコンポーネントを定義するプロセスに関するさらなる詳細は、
図3に示す方法300に関してなどで本出願を通して論じられる。
【0068】
104において、要求されたユーザインターフェースに含まれる1つ以上のワイヤウェブコンポーネントがサーバで前処理される。様々な実施形態によれば、クライアントマシンは、ユーザインターフェースの要求をサーバに送信することができる。次いで、サーバは、クライアントがユーザインターフェースを作成するために必要な計算プログラミング命令を提供することができる。さらに、サーバは、要求されたユーザインターフェースを評価して、ユーザインターフェースに含まれる任意のワイヤウェブコンポーネントを識別し、前処理することができる。この前処理には、ワイヤウェブコンポーネントのデータ依存性グラフ(data dependency graph)を構築すること、及び/又はワイヤウェブコンポーネントの分析に基づいてクライアントマシンが要求する可能性が高いデータをプリフェッチすることなどの動作を含んでもよい。1つ以上のワイヤウェブコンポーネントの前処理に関連するさらなる詳細は、
図4に示す方法400に関してなどで本出願を通して論じられる。
【0069】
特定の実施形態において、ユーザインターフェースに含まれるワイヤウェブコンポーネントの1つ以上は、前処理されなくてもよい。すなわち、前処理は、いくつかの場合に、クライアントマシンからサーバへの後続の要求のパフォーマンスを改善する可能性がある。しかしながら、本明細書に記載される手法及びメカニズムは、サーバ側の前処理がないとしても機能する。サーバ側の前処理は、不足した計算リソース、特に複雑な構成のワイヤウェブコンポーネントの存在、前処理が最小限の性能増大をもたらす可能性が高いという決定、及び/又はワイヤウェブコンポーネントがサーバに関連づけられたコンピューティングシステムを介してアクセスできない外部APIに関連づけられているという決定などの、様々な理由のいずれかで省略することができる。
【0070】
106において、要求されたユーザインターフェースがクライアントマシンで作成される。様々な実施形態によれば、要求されたユーザインターフェースを作成することは、複数のワイヤウェブコンポーネント間のデータ依存性グラフを構築すること、1つ以上のAPIからワイヤウェブコンポーネントの情報を取り出すこと、取り出された情報を処理すること、及び/又は取り出された情報を1つ以上のユーザインターフェースコンポーネントに投入するために提供することなどの動作を実行することを含んでもよい。要求されたユーザインターフェースの構築に関するさらなる詳細は、
図5に示す方法500に関してなどで本出願を通して論じられる。依存性グラフの構築に関するさらなる詳細は、
図6に示す依存性グラフの例600に関してなどで本出願を通して論じられる。
【0071】
108において、1つ以上のワイヤウェブコンポーネントが更新される。いくつかの実装において、ワイヤウェブコンポーネントは、それがクライアントマシンで提示されるユーザインターフェースにおいてアクティブな役割を果たす限り、更新され続ける可能性がある。ワイヤウェブコンポーネントを更新することは、サーバからプッシュされたデータを受信すること、サーバからデータをプルすること、サーバにデータをプッシュすること、サーバからのデータプル要求に応答すること、ユーザインターフェース内の他の場所で行われた変更に基づいてローカルデータを更新すること、及び/又は任意の他の適切な動作などの動作を含んでもよい。1つ以上のワイヤウェブコンポーネントの更新に関するさらなる詳細は、
図7に示す方法700に関してなどで本出願を通して論じられる。
【0072】
110において、クライアントマシンにおけるユーザインターフェースが破棄される(destroyed)。様々な実施形態によれば、ユーザインターフェース全体が一度に破棄され得る。代替的に、特定のワイヤウェブコンポーネントなどのユーザインターフェースのコンポーネントが、それがもはや必要とされないとき個々に破棄されてもよい。例えば、ワイヤウェブコンポーネントは、ユーザインターフェースがワイヤウェブコンポーネントをもはや含まないように更新されるとき破棄されてもよい。ワイヤウェブコンポーネントを破棄することは、ワイヤウェブコンポーネントを除去するように依存性グラフを更新すること、ワイヤウェブコンポーネントに関連づけられたデータにアクセスするAPIへの接続を切断すること、及び/又は任意の他の適切な動作などの動作を含んでもよい。1つ以上のワイヤウェブコンポーネントの更新に関するさらなる詳細は、
図8に示す方法800に関してなどで本出願を通して論じられる。
【0073】
図2は、1つ以上の実施形態に従って構成されたクライアント‐サーバ通信システム200におけるコンポーネントの配置の一例を示す。クライアント‐サーバ通信システム200は、少なくとも部分的に、
図9、
図10A、
図10B、及び
図11に示すシステムなどのクラウド内の1つ以上のコンポーネントにより実施することができる。クライアント‐サーバ通信システム200は、
図1、
図2、
図4、
図5、
図7、及び
図8に示す方法などの、本明細書に記載される方法のうち1つ以上の全て又は一部を実施するように構成され得る。
【0074】
クライアント‐サーバ通信システム200は、サーバ202を含む。サーバ202は、データベースシステム204、ワイヤウェブコンポーネント分析エンジン206、ユーザAPI A208、ユーザAPI B210、ユーザAPI C212、及び通信インターフェース214を含む。いくつかの実装において、データベースシステム204は、任意の適切な情報を記憶することができる。例えば、データベースシステム204は、顧客関係管理(CRM)情報、ソーシャルネットワーキング情報、又は他のこのようなデータを記憶することができる。データベースシステム204は、単一のデータベース又は潜在的に多くの異なるデータベースを含んでもよい。データベースシステム204は、集中構造で、又は分散構成で配置することができる。データベースシステムに関するさらなる詳細は、
図9、
図10A、及び
図10Bに関してなどで本出願を通して論じられる。
【0075】
いくつかの実施形態において、ワイヤウェブコンポーネント分析エンジン206は、ワイヤウェブコンポーネントに関連する様々な動作の1つ以上を実行することができる。例えば、ワイヤウェブコンポーネント分析エンジン206は、ワイヤウェブコンポーネントの作成及び/又は供給をサポートすることができる。このような動作には、
図3に関して論じられるようなワイヤウェブコンポーネントの定義、及び/又は
図4に関して論じられるようなワイヤウェブコンポーネントの前処理に関連づけられたものを含んでもよい。
【0076】
様々な実施形態によれば、ユーザAPI208~212は、サーバ202から情報を取り出すためにクライアントマシンにより使用され得る。例えば、ユーザAPIは、データベースシステム204から情報を取り出すために使用することができる。異なるタイプの情報を取り出すために、異なるAPIが使用されてもよい。例えば、あるAPIを使用してデータベースレコードにアクセスすることができ、一方、別のAPIを使用してソーシャルネットワーキング情報のストリームにアクセスすることができる。各APIは、情報にアクセスするためのプロトコルを定義してもよい。このようにして、情報アクセスの内部詳細は、クライアントマシンの動作から離れて抽象化され得る。
【0077】
いくつかの実装において、通信インターフェース214は、ネットワーク230などのネットワークを介して、サーバ202とクライアントマシンなどの1つ以上のリモートマシンとの間の通信をサポートすることができる。ネットワーク230は、任意の適切な通信ネットワークを含むことができる。例えば、ネットワーク230は、インターネット、及び/又はサーバ202と通信するために使用される1つ以上のプライベートネットワークを含んでもよい。
【0078】
様々な実施形態によれば、ユーザAPI D220及びE222は、サーバ202を介してアクセスされない外部APIである。いくつかの構成において、これらの外部APIの一方又は双方が、サーバに関連づけられたサービスプロバイダの制御下にあり得る。代替的に、外部APIは、全く異なるエンティティの管理下にある場合もある。例えば、クライアントマシンは、Twitter(登録商標)に関連づけられた1つの外部APIと通信してTwitterフィードにアクセスすることができ、別の外部APIと通信してFacebook(登録商標)フィードにアクセスすることができる。すなわち、本明細書に記載される手法及びメカニズムは、ワイヤウェブコンポーネントを提供することを担うサーバ202に対して内部又は外部のいずれかの様々なユーザAPIにアクセスするように構成されたワイヤウェブコンポーネントを提供するために使用され得る。
【0079】
クライアントマシン252は、通信インターフェース260、プロセッサ254、メモリモジュール256、表示装置258、及びウェブアプリケーションインスタンス272を含む。様々な実施形態によれば、クライアントマシン252は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯電話、又は任意の他の適切なコンピューティングデバイスでもよい。
【0080】
いくつかの実施形態において、ウェブアプリケーションインスタンス272は、ネットワークを介して情報にアクセスするためのグラフィカルユーザインターフェースを含むことができる。ウェブアプリケーションインスタンス272は、少なくとも部分的に、サーバ202により提供されるコンピュータプログラミング言語命令に基づいて生成され得る。ウェブアプリケーションインスタンス272を介してアクセスされる情報は、サーバ202により、1つ以上の外部情報ソースにより、又はこれらの何らかの組み合わせにより提供されてもよい。ウェブアプリケーションインスタンス272は、ウェブブラウザで、ネイティブアプリケーションで、又は任意の他の適切な方法で提示されてもよい。
【0081】
ウェブアプリケーションインスタンス272は、ワイヤウェブコンポーネント処理エンジン282を含む。様々な実施形態によれば、ワイヤウェブコンポーネント処理エンジン282は、本明細書に記載される手法及びメカニズムに従ってワイヤウェブコンポーネントを生成、更新、及び破棄するために使用され得る。ワイヤウェブコンポーネント処理エンジンは、コンポーネント構築モジュール274、イベント処理モジュール276、コンポーネント廃棄モジュール278、及びデータサービス280などのコンポーネントを含むことができる。
【0082】
いくつかの実装において、コンポーネント構築モジュール274は、
図3に示す方法300に関して論じられるように、ワイヤウェブコンポーネントを作成するように構成され得る。イベント処理モジュール276は、
図7に示す方法700に関して論じられるように、ワイヤウェブコンポーネントを更新するように構成され得る。コンポーネント廃棄モジュール278は、
図8に示す方法800に関して論じられるように、ワイヤウェブコンポーネントを破棄するように構成され得る。データサービス280は、ワイヤウェブコンポーネント処理エンジン282と、ユーザAPIなどの1つ以上の外部データソースとの間の通信を管理するように構成され得る。
【0083】
説明の目的で、クライアント‐サーバ通信システム202は、単一のクライアントマシン、単一のサーバ、及びユーザAPIなどの限られた数のコンポーネントのみを含む。しかしながら、実際には、システムは、事実上任意の数のクライアントマシン、API、又は他のそのようなコンポーネントを含んでもよい。さらに、サーバ202上に存在するものとして
図2に示されるコンポーネントは、実際には、異なる物理的マシン上に配置され、かつ/あるいは複数の物理的マシンに分散されてもよい。
【0084】
図3は、1つ以上の実施形態に従って実行される、ワイヤウェブコンポーネントを定義する方法300の一例を示す。方法300は、ユーザインターフェースを要求するクライアントデバイスに提供するための新しいワイヤウェブコンポーネントを定義するために使用され得る。
【0085】
302において、ワイヤウェブコンポーネントを定義する要求が受信される。様々な実施形態によれば、要求は、クライアントマシンと通信するサーバで受信され得る。例えば、要求は、クライアントマシン252と通信するワイヤウェブコンポーネント分析エンジン206で受信することができる。
【0086】
いくつかの実装において、要求は、サーバに関連づけられたオンデマンドコンピューティングサービスシステムを介してコンピューティングサービスにアクセスするコンピューティングサービスクライアントの開発者により生成され得る。代替的に、要求は、コンピューティングサービスシステム自体において開発者により生成されてもよい。
【0087】
304において、ワイヤウェブコンポーネントの識別子が決定される。様々な実施形態によれば、識別子はユーザの入力に基づいて決定され得る。代わりに又はさらに、システムが識別子の全て又は一部を自動的に決定してもよい。識別子は、ワイヤウェブコンポーネントに関連づけられた情報を記憶し、取り出すためのメカニズムを提供することができる。例えば、識別子は、グラフィカルユーザインターフェースのインスタンスが作成されるときワイヤウェブコンポーネントを呼び出すために計算プログラミングコード内で使用され得る。
【0088】
306において、ワイヤウェブコンポーネントに関連づけられたAPIが識別される。いくつかの実装において、APIはユーザの入力に基づいて決定され得る。代わりに又はさらに、システムがAPIを自動的に決定してもよい。APIは、ワイヤウェブコンポーネントに関連づけられた情報にアクセスするためのエンドポイントを識別することができる。例えば、APIは、URI、IPアドレス、又は他のこのような情報などのアドレスとして規定されてもよい。別の例として、APIは、情報にアクセスするためのアドレスに後にリンクされ得る識別子として規定されてもよい。例えば、APIは「Twitter」として規定され、サーバが、API指定子からAPIにアクセスするために使用される実際のアドレスへのマッピングを維持してもよい。
【0089】
308において、APIを介してアクセスする1つ以上のデータフィールドが識別される。いくつかの実装において、データフィールドは、APIと通信するときパラメータとして使用され得る。例えば、ワイヤウェブコンポーネントのインスタンスが作成されるとき、クライアントは、オブジェクト識別子に関連づけられたデータフィールド値を受信することを要求するために、オブジェクト識別子及びデータフィールド識別子などのAPI情報に送信することができる。
【0090】
特定の実施形態において、ワイヤウェブコンポーネントは、複数のAPI及び/又はデータフィールドのセットに関連づけることができる。例えば、ワイヤウェブコンポーネントは、外部ソーシャルネットワーキングフィードを介してアクセスされるいくつかのデータフィールドと、サーバに関連づけられたAPIを介してアクセスされる他のデータフィールドを含んでもよい。
【0091】
310において、ワイヤウェブコンポーネントに関連づけられた提示ロジックが決定される。様々な実施形態によれば、提示ロジックは、ユーザインターフェースにおける提示のためにAPIを介して受信した生データを組み合わせ、フィルタリングし、又はその他の方法で処理するためのコンピュータプログラミングコードを含むことができる。例えば、1つのデータフィールドは、ユーザアカウントに関連づけられた電話番号であり得る。提示ロジックは、電話番号をフォーマットしてこの電話番号を自動的にダイヤルするリンクを含めるために使用することができる。別の例として、別のデータフィールドは、日付及び時間情報を含むタイムスタンプであり得る。提示ロジックは、タイムスタンプの時間部分が必要とされないユーザインターフェースの部分における提示のために、日付情報を抽出及びフォーマットするために使用することができる。
【0092】
312において、要求に基づく取り出しのためにワイヤウェブコンポーネントが記憶される。様々な実施形態によれば、ワイヤウェブコンポーネントは、ワイヤウェブコンポーネント分析エンジン206を介してアクセス可能な記憶媒体上に記憶され得る。例えば、ワイヤウェブコンポーネントは、データベースシステム204に記憶されてもよい。記憶される情報は、方法300において識別される情報のいずれか又は全て、並びに任意の他の適切な情報を含んでもよい。
【0093】
図4は、1つ以上の実施形態に従って実行される、ワイヤウェブコンポーネントを前処理する方法400の一例を示す。様々な実施形態によれば、方法400は、クライアントマシンと通信するサーバで実行され得る。例えば、方法400は、クライアントマシンがユーザインターフェースにアクセスする要求をサーバに送信したときサーバで実行されてもよい。
【0094】
402において、クライアントマシンにユーザインターフェースを提供する要求が受信される。要求は、
図2に示すインスタンス272などのウェブアプリケーションインスタンス内のエンジン282などの処理エンジンから送信され得る。要求は、提示すべき特定のユーザインターフェースなどの情報を識別することができる。さらに、要求は、1つ以上のオブジェクト識別子、ユーザ識別子、又はユーザインターフェースに含まれるべき情報及び/又は他のコンテンツを識別するための他のこのような情報などのコンテキスト情報を提供してもよい。
【0095】
404において、ユーザインターフェース定義情報が識別される。様々な実施形態によれば、ユーザインターフェース定義情報は、1つ以上のマークアップ言語ファイル、ワイヤウェブコンポーネント定義、又は要求されたユーザインターフェースに含まれる他のこのようなコンピュータプログラミングコードを含むことができる。例えば、ユーザインターフェース要求は、URIなどの1つ以上の識別子を含んでもよい。サーバは、これらの識別子を分析して、ユーザインターフェース要求に応答すること及びユーザインターフェースを構築することに関与するコンピュータプログラミングコードを識別することができる。
【0096】
406において、ユーザインターフェースのためのワイヤウェブコンポーネントグラフを構築するかどうかについて決定が行われる。特定の実施形態において、ワイヤウェブコンポーネントグラフは、サーバで構築される必要はない。例えば、サーバは、ワイヤウェブコンポーネントグラフを構築することなくユーザインターフェース定義をクライアントマシンに提供することができる。次いで、クライアントマシンは、サーバからのさらなる入力なしにワイヤウェブコンポーネントグラフを構築することができる。
【0097】
いくつかの実装において、406で行われる決定は、少なくとも部分的に、サーバにおける計算リソースの可用性に基づいて行われてもよい。例えば、サーバが、利用可能な豊富なリソースを有する場合、ワイヤウェブコンポーネントグラフは、サーバで少なくとも部分的に構築されてもよい。代わりに、サーバが利用可能な限られた計算リソースを有する場合、ワイヤウェブコンポーネントグラフは、サーバで構築されなくてもよい。例えば、サーバが多数のユーザインターフェース要求を処理しているか又はその他の方法で占有されている場合、ワイヤウェブコンポーネントグラフを構築しないように判断がなされてもよい。
【0098】
いくつかの実装において、406で行われる決定は、少なくとも部分的に、ユーザインターフェースの複雑さに基づいて行われてもよい。例えば、ユーザインターフェースのためにワイヤウェブコンポーネントグラフを構築することが過剰な時間を伴うと推定される場合、サーバでグラフを構築しないように決定が行われてもよい。
【0099】
ユーザインターフェースのためのワイヤウェブコンポーネントグラフがサーバで構築されるべきであると決定されたとき、408において、ユーザインターフェースのためのワイヤウェブコンポーネントグラフが構築される。様々な実施形態によれば、ワイヤウェブコンポーネントグラフは、少なくとも部分的に、404で識別されたユーザインターフェース定義情報に基づいて構成される。ワイヤウェブコンポーネントグラフは、ユーザインターフェースに含まれる異なるワイヤウェブコンポーネント定義を分析し、次いでコンポーネント及びそれらのデータフィールドをグラフに追加することにより、構築することができる。
【0100】
いくつかの実施形態において、ワイヤウェブコンポーネントグラフを構築するためのサーバ側プロシージャは、クライアントマシン上で実行される動作と相当に重複する可能性がある。ワイヤウェブコンポーネントグラフの構成に関するさらなる詳細は、
図5に示す方法500に関して論じられる。
【0101】
いくつかの実装において、408で構成されたワイヤウェブコンポーネントグラフは、少なくとも部分的に、所定のワイヤウェブコンポーネントグラフ情報を取り出すことにより構築することができる。例えば、静的グラフ部分が動的ユーザインターフェースのために構築され、要求に基づく取り出しのために記憶されてもよい。次いで、動的ユーザインターフェースの特定の要求に対するワイヤウェブコンポーネントグラフは、取り出された静的部分を用いて開始することにより、より迅速に構築することができる。
【0102】
410において、1つ以上のAPIからデータ値を取り出すための1つ以上の入力パラメータが決定される。様々な実施形態によれば、1つ以上の入力パラメータは、402で受信した要求を分析することに基づいて決定されてもよい。例えば、要求は、ユーザインターフェースを構築するための1つ以上のオブジェクト識別子又は他のAPIパラメータを含んでもよい。
【0103】
いくつかの実装において、1つ以上の入力パラメータは、要求のソースに関連づけられた情報に基づいて識別されてもよい。例えば、ユーザインターフェースは、ユーザアカウントに関連づけられたクライアントマシンから要求されてもよく、次いで、そのユーザアカウントの識別子が、1つ以上のAPIへの入力パラメータとして選択されてもよい。
【0104】
いくつかの実施形態において、1つ以上の入力パラメータは、予測モデルを適用することにより決定されてもよい。予測モデルは、1つ以上の静的又は動的ルール、1つ以上の機械学習アルゴリズム、及び/又は任意の他の適切な予測プロシージャに基づいて実装されてもよい。例えば、ユーザインターフェースに対する連続した要求を使用して、各要求に関連して最終的にアクセスされたデータを結果として使用することにより、要求される可能性の高いデータを識別するためのディープラーニングプロシージャを訓練してもよい。
【0105】
いくつかの実施形態において、予測モデルは、ワイヤウェブコンポーネントグラフの1つ以上の部分を予測するために使用されてもよい。例えば、ユーザインターフェースに含めるべき特定のワイヤウェブコンポーネントは、動的に決定された値に依存することができる。このような値は、ワイヤウェブコンポーネントグラフの1つ以上のワイヤウェブコンポーネント、データ値、API、又は他のこのような部分を識別するために、予測され、入力として使用されてもよい。
【0106】
412において、1つ以上のデータ値が、データ依存性グラフに基づいて1つ以上のAPIから取り出される。様々な実施形態によれば、1つ以上のデータ値は、410で決定された入力パラメータの1つ以上をデータ依存性グラフに規定された適切なAPIに送信することにより取り出すことができる。いくつかの構成において、このように照会されるAPIは、API208、210、及び212などの、サーバが置かれているコンピューティング環境に関連づけられたものに制限されてもよい。代わりに又はさらに、
図2に示すAPI220及び222などの外部APIが照会されてもよい。
【0107】
414において、要求されたユーザインターフェースのユーザインターフェース情報がクライアントマシンに送信される。様々な実施形態によれば、送信される情報は、動作404で識別されたユーザインターフェース定義情報を含んでもよい。ワイヤウェブコンポーネントグラフがサーバで構築されるとき、ワイヤウェブコンポーネントグラフに関連づけられた情報が同様に送信されてもよい。このような情報には、動作408で構築されたワイヤウェブコンポーネントグラフの一部又は全部、及び/又は動作412で取り出されたデータ値の一部又は全部を含んでもよい。
【0108】
特定の実施形態において、ワイヤウェブコンポーネントグラフは、サーバで部分的にのみ構築されてもよい。例えば、サーバは、データフィールド及び/又はデータ値などの入力パラメータを予測することを試みるが、いくつかのそのような値を合理的な確実度で予測できない可能性がある。例えば、データ値が、クライアント側で動的に決定される場合がある。このような状況において、サーバは、ユーザインターフェースのためにいくつかのデータ値を取り出すことができるが他はできず、あるいは動作412を完全に省略してもよい。
【0109】
別の例として、サーバは、ワイヤウェブコンポーネントグラフ構築を静的部分に限定してもよい。例えば、サーバは、静的ワイヤウェブコンポーネント定義に基づいてワイヤウェブコンポーネントグラフを構築してもよいが、412でデータ値を取り出さなくてもよく、あるいはワイヤウェブコンポーネントグラフにワイヤウェブコンポーネントのインスタンスを含めてもよい。
【0110】
さらに別の例として、サーバは、例えば、グラフ内のカット点を識別し、カット点のいずれかの側のグラフ部分を除去することにより、ワイヤウェブコンポーネントグラフをトリムしてもよい。1つのこのようなアプローチでは、カット点は、ユーザに直ちに又はほぼ直ちに見えると予測されるユーザインターフェースの部分に基づいて決定されてもよい。次いで、すぐに閲覧される可能性の高い部分を取り出すことができ、一方、後に閲覧される可能性が高いか又は全く閲覧される可能性がないカット点の他方の側の部分は除去することができる。このようにして、サーバ側の処理時間とクライアントマシンに送信される情報量の双方が低減され、したがって、要求とユーザインターフェースの提示との間に経過する時間を減らすことができる。
【0111】
特定の実施形態において、部分的に構築されたグラフがクライアントマシンに送信され、クライアントマシンで完成されてもよい。例えば、サーバは、グラフの1つ以上の静的部分を構築することができ、クライアントは、グラフの1つ以上の動的部分を完成することができる。別の例として、サーバは、1つ以上のパラメータを予測し、それらの予測に基づいて1つ以上のデータ値を取り出すことができ、クライアントは、最終的にユーザインターフェースに提示する実際のデータ値を決定することができる。このような状況では、クライアントは、いくつかの場合、それが必要としないデータを受信する場合があり、これは放棄することができる。
【0112】
様々な実施形態によれば、
図4に示す動作の1つ以上は、図示のものと異なる順序で実行されてもよい。例えば、408でのワイヤウェブコンポーネントグラフの構築は、410での1つ以上の入力パラメータの予測の後に生じてもよい。代替的に、そのような動作は、インターリーブされ、かつ/あるいは並列に実行されてもよい。例えば、入力パラメータの予測は、ワイヤウェブコンポーネントグラフを構築するプロセスの一部として実行されてもよい。
【0113】
図5は、1つ以上の実施形態に従って実行される、ワイヤウェブコンポーネントを作成する方法500の一例を示す。様々な実施形態によれば、方法500は、クライアントマシンにおいて1つ以上のワイヤウェブコンポーネントを含むユーザインターフェースを生成するために実行され得る。
【0114】
502において、ユーザインターフェースを生成する要求が受信される。様々な実施形態によれば、要求は、ウェブアプリケーションのインスタンス化及び/又は動作の一部として受信することができる。例えば、サーバは、クライアントマシンと通信して、サーバを介して情報にアクセスするためのウェブアプリケーションを提供することができる。ウェブアプリケーションは、ネイティブアプリケーションとして、又はウェブブラウザを介して提供されてもよい。クライアント及びサーバは、通信セッションを確立すること、ユーザアカウントを認証すること、アカウントパーミッションを決定すること、及びクライアントマシンでユーザインターフェースを生成するための命令を提供することなどの動作を実行することができる。
【0115】
504において、ユーザインターフェースのためのワイヤウェブコンポーネントグラフがインスタンス化される。様々な実施形態によれば、ワイヤウェブコンポーネントグラフは、1つ以上のAPI、データ値、及び/又はワイヤウェブコンポーネント間の関係を表す。最初、ワイヤウェブコンポーネントグラフは空でもよい。次いで、ワイヤウェブコンポーネントが処理されたとき、グラフは、1つ以上の関係を含むように更新され得る。
【0116】
506において、ユーザインターフェースに含まれるワイヤウェブコンポーネントが選択される。様々な実施形態によれば、ワイヤウェブコンポーネントは、出現順で、又はランダムでなど、任意の適切な順序で選択することができる。特定の実施形態において、ワイヤウェブコンポーネントは、それが最初にユーザインターフェース内でインスタンス化されるとき、分析のために選択されてもよい。
【0117】
508において、ワイヤウェブコンポーネントの識別子が決定される。510において、ワイヤウェブコンポーネントに関連づけられたAPIが識別される。512において、APIを介して取り出す1つ以上のデータフィールドが識別される。様々な実施形態によれば、このような情報は、
図3に関して論じられたように構築されたワイヤウェブコンポーネント定義にアクセスすることにより識別又は決定することができる。ワイヤウェブコンポーネント定義は、例えば、502で受信したユーザインターフェースを生成する要求に応答して、サーバによりクライアントマシンに提供されてもよい。
【0118】
514において、ワイヤウェブコンポーネントグラフが、識別された情報に基づいて更新される。様々な実施形態によれば、ワイヤウェブコンポーネントグラフを更新することは、まだ存在しない任意のノードをグラフに追加することを含むことができる。例えば、508で決定されたワイヤウェブコンポーネント識別子、510で識別されたAPI、又は512で識別されたデータフィールドの1つ以上がワイヤウェブコンポーネントグラフ内にまだ存在しない場合、欠落した識別子は、グラフにノードとして追加されてもよい。
【0119】
いくつかの実装において、ワイヤウェブコンポーネントグラフを更新することは、コンポーネント間の関係を追加することを含んでもよい。例えば、それらがまだ存在しない場合、510で識別されたAPIを512で識別された1つ以上のデータフィールドの各々に接続するリンクを追加することができる。別の例として、それらがまだ存在しない場合、512で識別された1つ以上のデータフィールドを508で決定されたワイヤウェブコンポーネント識別子に接続するリンクを追加することができる。
【0120】
516において、分析のためにさらなるワイヤウェブコンポーネントを選択するかどうかについて決定が行われる。動作506に関して論じられたように、ワイヤウェブコンポーネントは、任意の適切な順序で選択されてよい。
【0121】
さらなるワイヤウェブコンポーネントがインスタンス化するのに利用可能でないとき、518において、データフィールドに関連づけられた1つ以上のデータ値が取り出される。いくつかの実装において、1つ以上のデータ値は、データ値を取り出すためにネットワークを介して適切なAPIにアクセスするデータサービス280により取り出すことができる。そのような通信には、データサービスがそれぞれのAPIに従って認証データ、オブジェクト識別情報、データフィールド識別情報、又は任意の他の適切なデータなどの情報を提供することを含んでもよい。
【0122】
特定の実施形態において、
図5に示す動作は、図示のものと異なる順序で実行されてもよい。例えば、データ値は、ワイヤウェブコンポーネントグラフが構築されるとき取り出されてもよい。例えば、動作518は、動作512の後に実行されてもよい。別の例として、例えば、構築されたユーザインターフェースに新しいワイヤウェブコンポーネントが追加される場合、ワイヤウェブコンポーネント作成方法の全部又は一部は、ユーザインターフェースが構築された後に実行されてもよい。
【0123】
図6は、1つ以上の実施形態に従って構成されたデータサービス280の一例を示す。データサービスは、方法400及び/又は500に関して論じられたように構築されたワイヤウェブコンポーネントグラフ604を含む。ワイヤウェブコンポーネントグラフ604は、ユーザAPI A606、B608、及びC610、データフィールド612、614、616、618、620、及び622、並びにワイヤウェブコンポーネント624、626、628、630、632、及び634を含む。ノード間の接続は依存関係を表す。
【0124】
いくつかの実施形態において、ワイヤウェブコンポーネントグラフ604は、データ値の更新に関連する動作を実行するために使用することができる。例えば、ワイヤウェブコンポーネントグラフ604は、それらのデータフィールドが異なるワイヤウェブコンポーネントにより使用されるとしても単一のユーザAPIから取り出されるデータフィールドのセットを識別するために使用されてもよい。例えば、データフィールド614は、ワイヤウェブコンポーネント624、626、及び628により使用され、一方、データフィールド612は、ワイヤウェブコンポーネント624によってのみ使用される。しかしながら、データフィールド614とデータフィールド612の双方が同じユーザAPIに関連づけられており、同じAPIコール内で双方を取り出すことは効率を改善し得る。
【0125】
別の例として、データフィールド612は、ワイヤウェブコンポーネント624によってのみ使用される。したがって、ワイヤウェブコンポーネント624が無効にされるべき場合、データフィールド612はもはや更新される必要がなくなり得る。
【0126】
いくつかの実装において、
図4で論じられたように、ワイヤウェブコンポーネントグラフの全部又は一部は、サーバで静的表現として構築することができる。次いで、静的表現は、ユーザインターフェースを構築するためにクライアントマシンに送信すべきデータをプリフェッチするために使用することができる。
【0127】
様々な実施形態によれば、
図5に関して論じられたように、ワイヤウェブコンポーネントグラフの全て又は一部は、クライアントマシンにおいて動的表現として構築することができる。クライアント側の動的構築は、入力としてサーバで構築された静的表現を使用してもよい。代替的に、クライアント側の動的構築は、サーバ側の静的ワイヤウェブコンポーネントグラフから独立して、又はその代わりに作成されてもよい。
【0128】
図6は、1つ以上の実施形態に従って構成されたデータサービス280の一例を示す。データサービス280は、ワイヤウェブコンポーネントグラフ604を含む。ワイヤウェブコンポーネントグラフ604は、ユーザAPI606、608、及び610、データフィールド612、614、616、618、620、及び622、ワイヤウェブコンポーネント624、626、628、630、632、634、636、638、並びにワイヤウェブコンポーネントインスタンス640、642、644を含む。様々な実施形態によれば、データサービス280は、ワイヤウェブコンポーネントグラフ604を作成又は編集するコンポーネントなど、
図6に示されていない1つ以上のコンポーネントを含んでもよい。
【0129】
いくつかの実装において、各ユーザAPIは、データにアクセスすることが可能なネットワークエンドポイントである。例えば、ユーザAPIは、データベースオブジェクト、静的又は動的ファイル、又は情報ストリームへのアクセスを可能にすることができる。一例において、ユーザAPIは、Twitterフィード、Salesforce(登録商標) Chatterフィード、Facebookフィードへのアクセスを容易にしてもよい。別の例において、ユーザAPIは、データベースにアクセスするためのクエリインターフェースを公開してもよい。さらに別の例において、ユーザAPIは、AWS S3又はGoogle(登録商標) Cloud Storageなどのクラウドストレージリポジトリへのアクセスを提供してもよい。
【0130】
いくつかの実施形態において、ユーザAPIは、ユーザインターフェースにアクセスするためのサーバと関連して提供されてもよい。例えば、ユーザインターフェースは、ウェブサーバを含むコンピューティングシステムへのHTML要求に基づいて提供されてもよく、その同じコンピューティングシステムが、情報にアクセスするための1つ以上のAPIを含んでもよい。
【0131】
いくつかの実施形態において、ユーザAPIは、異なるサーバと関連して提供されてもよい。例えば、ユーザインターフェースは、ウェブサーバを含むコンピューティングシステムへのHTML要求に基づいて提供され得る。しかしながら、ユーザインターフェースに含むべき情報にアクセスするために使用される1つ以上のAPIは、コンピュータシステムの外部に位置してもよい。例えば、ユーザインターフェースはSalesforce.comにより提供され得るが、APIはTwitterフィード又はFacebookフィードでもよい。
【0132】
いくつかの実施形態において、ユーザAPIはパブリックにアクセス可能であり得る。例えば、公開のソーシャルメディアフィードにアクセスするAPIは、認証を必要としないことがある。このようなAPIでは、要求は、取り出されるよう求められる情報などの情報のみを規定する必要があり得る。
【0133】
いくつかの実施形態において、ユーザAPIは、認証を必要としてもよい。例えば、データベースクエリインターフェースを公開するAPIは、要求しているアカウントが要求された情報にアクセスすることを認可されていることを保証するために、認証を必要とすることができる。そのような認証は、証明書により、ユーザ名とパスワードの組み合わせにより、予め確立された認証された通信セッションを介して、又は任意の他の適切なメカニズムを通じて提供されてよい。
【0134】
様々な実施形態によれば、データフィールドの各々は、APIを介して取り出し可能な情報を識別する。例えば、データフィールドは、データベースフィールド、データベース行、ファイル、ソーシャルネットワーキングフィードからのデータ項目、又は他のそのような情報を識別することができる。
【0135】
いくつかの実装において、データフィールドの取り出しは、さらなるコンテキスト情報を必要としてもよい。例えば、データフィールドは、データベース列を識別することができ、これは、オブジェクト(すなわち、行)識別子が同様に提供されるときのみ、定義値を参照することができる。別の例として、ソーシャルネットワーキングフィードのためのデータフィールドは、コメントテキストなどの情報を識別することができ、これは、テキストが取り出されるべき特定のコメントなどの他の情報と関連してのみ定義値を参照することができる。
【0136】
特定の実施形態において、1つ以上のワイヤウェブコンポーネントが異なるコンテキスト情報のために同じデータフィールドにアクセスする場合、1つのデータフィールドの複数のコピーが存在し得る。例えば、ワイヤウェブコンポーネントは、5つの異なる「連絡先」オブジェクトのために「名前」フィールドを取り出すことができる。この場合、「名前」フィールドの5つのコピーが、異なるコンテキスト情報に関連してグラフに含まれ得る。
【0137】
特定の実施形態において、単一のデータフィールドが、コンテキスト又はインスタンス情報の複数のコピーを含んでもよい。例えば、「連絡先」オブジェクトの「名前」フィールドが複数のオブジェクト識別子に関連づけられてもよく、それにより、名前フィールドはオブジェクト識別子の各々についてアクセスされる。
【0138】
様々な実施形態によれば、各ワイヤウェブコンポーネントは、本明細書に記載される手法及びメカニズムに従って構成されるユーザインターフェース部分の定義に対応することができる。各ワイヤウェブコンポーネントは、1つ以上のデータフィールドからの情報を含むことができ、これらは各々、それぞれのAPIから取り出し可能であり得る。例えば、ワイヤウェブコンポーネント632は、ユーザAPI C610から取り出し可能なデータフィールド620及び622と、ユーザAPI B608から取り出し可能なデータフィールド618を含む。
【0139】
いくつかの実装において、異なるワイヤウェブコンポーネントは、同じデータフィールドを含んでもよい。例えば、ワイヤウェブコンポーネント632、630、及び628は各々、ユーザAPI B608を介してアクセス可能なデータフィールド618を含む。ワイヤウェブコンポーネントグラフを構築することにより、このような重複したデータアクセスを明らかにし、クエリを統合するために使用して、効率を改善することができる。例えば、データフィールド618がワイヤウェブコンポーネント632、630、及び628の各々について別個に要求されるのではなく、単一の要求が実行され、その結果がワイヤウェブコンポーネント632、630、及び628の各々によりアクセス可能でもよい。このようにして、API要求の数及びネットワークトラフィックの量を、潜在的に大幅に低減することができる。
【0140】
いくつかの実装において、ワイヤウェブコンポーネントは、他のワイヤウェブコンポーネントを含んでもよい。例えば、親ワイヤウェブコンポーネント626は、子ワイヤウェブコンポーネント636及び638を含む。子ワイヤウェブコンポーネントは、次に、他の子ワイヤウェブコンポーネントを含んでもよい。
【0141】
様々な実施形態によれば、ワイヤウェブコンポーネントグラフは、ワイヤウェブコンポーネント定義の1つ以上のインスタンスを含んでもよい。例えば、ワイヤウェブコンポーネントインスタンス640、642及び644は、ワイヤウェブコンポーネント定義630のインスタンスである。そのようなインスタンスは、データフィールドを取り出すためのコンテキスト情報を識別することができる。例えば、ワイヤウェブコンポーネントインスタンス640、642、及び644の各々は、ユーザアカウントオブジェクトを表示するためのワイヤウェブコンポーネントの異なるインスタンスに対応してもよい。特定の実施形態において、静的ワイヤウェブコンポーネントは静的分析の間に生成され、静的ワイヤウェブコンポーネントの複数の動的インスタンスは実行時に生成されてもよい。
【0142】
いくつかの実施形態において、ワイヤウェブコンポーネントグラフは不完全でもよく、あるいは部分的にのみ構築されてもよい。例えば、サーバは、ユーザインターフェース要求に対してワイヤウェブコンポーネントグラフを部分的に構築し、部分的に構築されたグラフをクライアントマシンに送ることができる。次いで、クライアントマシンは、クライアントマシンにおけるさらなる情報に基づいてワイヤウェブコンポーネントグラフを継続して構築することができる。
【0143】
図6に示すワイヤウェブコンポーネントグラフ604は、単に例示の目的で提示されている。実際には、ワイヤウェブコンポーネントグラフに含まれるコンポーネント、フィールド、及びAPIは、構築される特定のユーザインターフェースに依存する。したがって、実際のユーザインターフェースのために構築されるワイヤウェブコンポーネントグラフは、
図6に示されるよりも潜在的に多くのさらなるAPI、データフィールド、ワイヤウェブコンポーネント、及び/又はワイヤウェブコンポーネントのインスタンスを含んでもよい。
【0144】
図7は、1つ以上の実施形態に従って実行される、ワイヤウェブコンポーネントデータを更新する方法700の一例を示す。方法700は、
図5に関して論じられたように、1つ以上のワイヤウェブコンポーネントを有するユーザインターフェースが作成された後に実行されてもよい。ユーザインターフェースがアクティブである間、ユーザインターフェース内に表されるデータは変化し得る。例えば、ユーザは、ユーザインターフェース内の1つ以上の位置でデータ値を変更するユーザインターフェースを介したユーザ入力を提供することができる。別の例として、データは、サーバ上で変化する場合がある。さらに別の例として、アクション又はイベントが、更新された情報が利用可能かを決定するために、サーバにクエリする要求をトリガし得る。
【0145】
702において、ユーザインターフェースのためのデータを取り出す要求が受信される。様々な実施形態によれば、要求は、ユーザインターフェースが開始されるとき、又は後の時点で受信することができる。例えば、要求は、イベント又はユーザアクションに基づいてトリガされてもよい。別の例として、方法700は、アクティブなユーザインターフェースのために連続的に動作してもよい。さらに別の例として、方法700は、ユーザインターフェースがアクティブにされるたびに動作してもよい。例えば、ユーザは、異なるブラウザタブを介して異なるユーザインターフェースにアクセスすることができる。次いで、方法700は、関連するユーザインターフェースが位置するブラウザタブをユーザが選択したときに開始されてもよい。
【0146】
704において、ユーザインターフェースに関連づけられたワイヤウェブコンポーネントグラフが識別される。様々な実施形態によれば、ワイヤウェブコンポーネントグラフは、
図5に示す方法500に関して論じられたように作成することができる。そのようなグラフは、API、データ値、及びワイヤウェブコンポーネント間の関係を規定することができる。このようなグラフの一例が
図6に示されている。クライアントマシンは、
図8に関して論じられるように、1つ以上のワイヤウェブコンポーネントが非アクティブ化されるときでもグラフを維持することができる。
【0147】
706において、ワイヤウェブコンポーネントグラフに含まれるデータフィールドのデータ値を更新する要求が受信される。様々な実施形態によれば、要求は、様々な方法のいずれかで生成することができる。例えば、データ値が提示されているユーザインターフェースの一部分が、例えばユーザ入力を介して、新しいデータ値を含むように更新され得る。別の例として、サーバが、データ値がサーバ上で更新されたことを示すメッセージを送信してもよい。さらに別の例として、ユーザが、データ値を更新する要求を示し又はトリガするユーザ入力を提供してもよい。さらに別の例として、実行時コンテキストが信号を提供してもよい。例えば、ウェブブラウザユーザインターフェースへの指定されたデータ値のロードが、異なるデータフィールドを更新する要求をトリガしてもよい。
【0148】
708において、データ値が更新される。様々な実施形態によれば、データ値を更新することは、適切なAPIにアクセスし、認証データ、オブジェクトインスタンス識別子、及びデータフィールド識別子などの情報を提供することを含むことができる。次いで、更新されたデータ値は、通信インターフェースを介してAPIから受信され得、ワイヤウェブコンポーネントは、更新されたデータ値を含むようにメモリ内で更新され得る。
【0149】
いくつかの実装において、データ値を更新することは、クライアントマシンにおける異なる位置からデータを取り出すことを含んでもよい。例えば、ユーザインターフェースが、2つの異なるビューを並べて提示することができる。この例において、あるデータ値は、他のビューに関連づけられたページ番号を示すことができる。別の例として、あるデータ値の異なるコンポーネントビューが、ユーザインターフェース内の異なる場所に表示されてもよい。これらのコンポーネントビューの1つが(例えば、ユーザ入力を介して)変更されたとき、コンポーネントビューに関連づけられたデータ値が更新され得る。
【0150】
712において、更新されたデータフィールドの更新されたコンポーネントビューが決定される。様々な実施形態によれば、コンポーネントビューは、基礎をなすデータ値のフィルタリングされた及び/又は修正されたビューを表示することができる。例えば、アドレスのコンポーネントビューは、地図作成アプリケーションにおいてアドレスへのリンクを追加してもよい。更新コンポーネントビューは、更新されたデータフィールドに依存するワイヤウェブコンポーネントに関連づけられたデータフィールドコンポーネントロジックを適用することにより決定することができる。
【0151】
714において、更新されたデータフィールドのコンポーネントビューが変化したかどうかについて決定が行われる。様々な実施形態によれば、決定は、コンポーネントビューに関連づけられたロジックを分析及び/又は実行することにより行うことができる。本明細書で論じられるように、コンポーネントビューは、基礎をなすデータ値のフィルタリングされた及び/又は修正されたビューを表示してもよい。例えば、名前のコンポーネントビューが、完全なファースト及びラストネームではなくイニシャルのみを表示することができる。この例では、名前はスペルミスを訂正するために更新されたがイニシャルは変えられなかった場合、コンポーネントビューは変化しないことになる。別の例として、タイムスタンプが、年、日、時、分、及び秒のコンポーネントではなく日及び時のコンポーネントのみを含むように修正され得る。この例では、タイムスタンプが異なる値に変わるとしても、タイムスタンプのコンポーネントビューは、新しいタイムスタンプの日及び時が前のタイムスタンプの日及び時と同じである限り、変化しないことになる。
【0152】
716において、更新されたコンポーネントビューがワイヤウェブコンポーネントに送信される。様々な実施形態によれば、更新されたコンポーネントビューをワイヤウェブコンポーネントに送信することは、ユーザインターフェースを更新するための任意の適切な動作を含むことができる。例えば、更新されたコンポーネントビューのデータ値は、ワイヤウェブコンポーネントがデータ値にアクセスできるようにメモリ内で更新されてもよい。別の例として、DOMツリーの1つ以上の要素が、更新されたコンポーネントビューを含むように修正されてもよい。
【0153】
様々な実施形態によれば、ドキュメントオブジェクトモデル(DOM)は、HTML、XHTML、又はXML文書をツリー構造として扱うクロスプラットフォーム及び言語非依存のアプリケーションプログラミングインターフェースであり、各ノードは、文書の一部を表すオブジェクトである。DOMは、論理ツリーを用いて文書を表す。ツリーの分岐はノードで終了し、ノードはオブジェクトを含むことができる。DOMメソッドは、ツリーへのプログラムアクセスを可能にする。例えば、DOMメソッドは、文書の構造、スタイル、及び/又は内容を変更することを可能にし得る。
【0154】
718において、分析のためにさらなるワイヤウェブコンポーネントを選択するかどうかについて決定が行われる。動作710に関して論じられたように、ワイヤウェブコンポーネントは、シーケンスで、ランダムで、又は並列になど、任意の適切な順序で選択することができる。
【0155】
720において、更新のためにさらなるデータフィールドを選択するかどうかについて決定が行われる。動作702及び706に関して論じられたように、方法700は、ユーザインターフェース内の1つ以上の有線ワイヤウェブコンポーネントに関連づけられたデータ値のうち任意のもののオンデマンド及び/又は周期的な更新をサポートするために連続的に実行することができる。
【0156】
様々な実施形態によれば、
図7に示す動作の1つ以上は、図示のものと異なる順序で実行されてもよい。例えば、単一のワイヤウェブコンポーネントに関連づけられた複数のデータ値が、同時に更新されてもよい。このような構成では、ワイヤウェブコンポーネントは、ワイヤウェブコンポーネントに関連づけられた個々のデータ値を別々に更新するのではなく、ユニットとして更新されてもよい。
【0157】
図8は、1つ以上の実施形態に従って実行される、ワイヤウェブコンポーネントを破棄する方法800の一例を示す。様々な実施形態によれば、方法800は、
図2に示されるワイヤウェブコンポーネント処理エンジン282などの、クライアントマシンにおけるワイヤウェブコンポーネント処理エンジンで実行されてもよい。
【0158】
802において、DOMツリーからワイヤウェブコンポーネントを除去する要求が受信される。このような要求は、ユーザインターフェースに関して実行されるアクションに基づいて生成されてもよい。例えば、ユーザは、ワイヤウェブコンポーネントを含むユーザインターフェース部分を閉じることができる。別の例として、ユーザは、ユーザインターフェース内の1つのタブからユーザインターフェース内の異なるタブに移動し、最初のタブを隠すことができる。さらに別の例として、ユーザインターフェースは、ワイヤウェブコンポーネントがもはや見えなくなるようにスクロールすることができる。
【0159】
804において、ワイヤウェブコンポーネントが子ノードを含むかどうかについて決定が行われる。様々な実施形態によれば、DOMツリーは、ユーザインターフェース部分を表すコードがそれ自体、他のユーザインターフェース部分を表す子ノードコードを含む子部分を含むことができる階層構造である。したがって、804での決定は、少なくとも部分的に、DOMツリーを分析して任意のそのような子ノードを識別することにより行われてもよい。
【0160】
ワイヤウェブコンポーネントが子ノードを含むと決定された場合、動作806において、子ノードの1つが除去のために選択され得る。様々な実施形態によれば、子ノードは、任意の適切な順序で選択されてよい。例えば、子ノードは、シーケンスで、並列に、又はランダムで除去のために選択されてもよい。いくつかの実装において、子ノードは、少なくとも部分的に再帰プロセスを介して選択することができる。例えば、ワイヤウェブコンポーネントの各子ノードは、何らかの順序で除去のために選択され、その子ノードの各子孫が、子ノードの除去の一部として再帰的に処理されてもよい。
【0161】
808において、子ノードがDOMツリーから除去される。様々な実施形態によれば、子ノードは、DOMツリーを編集するためのDOMツリー除去機能を呼び出すことにより除去することができる。
【0162】
810において、子ノードが、ワイヤウェブコンポーネント依存性グラフからの除去のためにキューイングされる。812において、任意の孤立したデータフィールドノードが、ワイヤウェブコンポーネント依存性グラフからの除去のためにキューイングされる。様々な実施形態によれば、孤立したデータフィールドノードは、それら自体は除去のためにキューイングされていないどのワイヤウェブコンポーネントにももはや接続されていない、ワイヤウェブコンポーネント依存性グラフ内のデータフィールドである。
【0163】
いくつかの実装において、ワイヤウェブコンポーネント処理エンジン282は、除去のためにフラグを立てられたノードのキューを維持することができる。代わりに又はさらに、ノードは、ワイヤウェブコンポーネントグラフ内で除去のためにフラグを立てられてもよい。ノードが除去のためにキューイングされたとき、ノードは、計算リソース可用性、帯域幅考慮事項、及び/又は1つ以上のデータアクセス閾値などの考慮事項に基づいて戦略的に決定された時間に除去することができる。
【0164】
いくつかの実施形態において、ワイヤウェブコンポーネント依存性グラフからの除去のためにキューイングされたノードは、直ちに除去されてもよい。例えば、ユーザインターフェースは、比較的限られた計算能力及び/又は帯域幅を有するモバイルコンピューティングデバイス又は他のデバイスにロードされる場合がある。別の例として、ユーザインターフェースは、インターフェースの複雑さ及び/又はアクセスされるデータのタイプ若しくは量に起因して比較的高い計算リソース及び/又は帯域幅要件を有する場合がある。このような状況では、ノードを直ちに除去することは、リソース及び/又は帯域幅の制約を緩和するのに役立つ可能性がある。
【0165】
いくつかの実施形態において、ワイヤウェブコンポーネント依存性グラフからの除去のためにキューイングされたノードは、最終的に除去されない場合がある。例えば、ユーザインターフェースが、除去が生じる前に破棄され得る。別の例として、ノードは、その後、DOMツリーに戻されてもよい。例えば、ユーザは、ワイヤウェブコンポーネントを再アクティブ化するユーザ入力を提供することができる。
【0166】
代替的に、除去のためにキューイングされたノードは、後の時点で除去されてもよい。例えば、ワイヤウェブコンポーネント処理エンジンは、計算リソース及び/又は帯域幅の使用及び/又は可用性などの考慮事項を周期的に評価することができる。帯域幅及び/又は計算リソースの使用率が指定された閾値を超えているとき、ワイヤウェブコンポーネント処理エンジンは、ワイヤウェブコンポーネント依存性グラフからノードを除去することができる。例えば、ノードは「先入れ、先出し」の順に除去されてもよい。
【0167】
別の例として、ワイヤウェブコンポーネント処理エンジンは、1分、5分、又は10分などの指定された時間の間、除去のためにキューイングされたノードを保持してもよい。ノードが指定された時間内に再追加されなかった場合、ノードはワイヤウェブコンポーネント依存性グラフから除去され得る。
【0168】
特定の実施形態において、810において除去のためのノードをキューイングすることは、ユーザインターフェース応答性とリソース使用率との間のバランスを提供することができる。一方で、ワイヤウェブコンポーネント依存性グラフからすぐに(又は、直ちに)ノードを除去することは、ノードに関連づけられたデータを更新するコストを回避することにより、帯域幅及び/又は計算リソース使用率を低減するのに役立つ可能性がある。他方で、ワイヤウェブコンポーネント依存性グラフからすぐに(又は、直ちに)ノードを除去することは、関連づけられたワイヤウェブコンポーネントが後にDOMツリーに再追加される場合、ノードに関連づけられたデータへのより速いアクセスを提供することにより、ユーザインターフェース応答性を改善するのに役立つ可能性がある。すなわち、ワイヤウェブコンポーネントが後にDOMツリーに再追加される場合、そのコンポーネントのデータは、ワイヤウェブコンポーネントに関連づけられたノードがまだワイヤウェブコンポーネント依存性グラフから除去されていない場合には既に利用可能であり、フェッチされる必要がない。コンポーネントがDOMツリーに追加される可能性が、最近除去されたワイヤウェブコンポーネントに対してより高くなることを考慮すると、このように除去のためのコンポーネントをキューイングすることは、平均的な場合にデータへのより速いアクセスを提供することができる。
【0169】
814において、除去のためのさらなる子ノードを選択するかどうかについて決定が行われる。動作806に関して論じられたように、ノードは、任意の適切な順序で除去のために選択されてよい。
【0170】
816において、ワイヤウェブコンポーネントが、依存性グラフのために除去のためにキューイングされる。818において、任意の孤立したデータフィールドが、依存性グラフからの除去のためにキューイングされる。820において、ワイヤウェブコンポーネントが、DOMツリーから除去される。様々な実施形態によれば、動作816~820は、動作808~812と実質的に同様の方法で実行されてもよい。
【0171】
特定の実施形態において、
図8に示す動作は、図示のものと異なる順序で実行されてもよい。例えば、再帰的プロシージャにおいて、ノードの各子孫は、ノード自体を処理する前に処理されてもよい。例えば、
図6において、ワイヤウェブコンポーネント630を除去することは、最初、ワイヤウェブコンポーネントインスタンス640、642、及び644、並びにこれらのノードの各々の任意の子を除去することを含んでもよい。
【0172】
図9は、いくつかの実装に従って構成されたオンデマンドデータベースサービスを含む環境910の一例のブロック図を示す。環境910は、ユーザシステム912、ネットワーク914、データベースシステム916、プロセッサシステム917、アプリケーションプラットフォーム918、ネットワークインターフェース920、テナントデータストレージ922、テナントデータ923、システムデータストレージ924、システムデータ925、プログラムコード926、プロセス空間928、ユーザインターフェース(UI)930、アプリケーションプログラムインターフェース(API)932、PL/SOQL934、保存ルーチン936、アプリケーションセットアップメカニズム938、アプリケーションサーバ950-1~950-N、システムプロセス空間952、テナントプロセス空間954、テナント管理プロセス空間960、テナントストレージ空間962、ユーザストレージ964、及びアプリケーションメタデータ966を含むことができる。このようなデバイスのいくつかは、ハードウェア又はハードウェアとソフトウェアとの組み合わせを使用して実施されてもよく、同じ物理デバイス上又は異なるデバイス上で実施されてもよい。したがって、本明細書で用いられる「データ処理装置」、「マシン」、「サーバ」、及び「デバイス」などの用語は、単一のハードウェアデバイスに限定されるものではなく、むしろ、記載された機能を提供するように構成された任意のハードウェア及びソフトウェアを含む。
【0173】
システム916を使用して実装されるオンデマンドデータベースサービスは、データベースサービスプロバイダにより管理され得る。一部のサービスは、1つ以上のテナントからの情報を共通データベースイメージのテーブルに記憶して、マルチテナントデータベースシステム(MTS)を形成することができる。本明細書で用いられるとき、各MTSは、ローカルに、又は1つ以上の地理的位置にわたり分散された、1つ以上の論理的及び/又は物理的に接続されたサーバを含むことができる。本明細書に記載のデータベースは、単一のデータベース、分散データベース、分散データベースのコレクション、又は任意の他の適切なデータベースシステムとして実装することができる。データベースイメージは、1つ以上のデータベースオブジェクトを含んでもよい。関係データベース管理システム(RDBMS)又は同様のシステムが、これらのオブジェクトに対する情報の記憶及び取り出しを実行することができる。
【0174】
いくつかの実装において、アプリケーションプラットフォーム18は、システム916におけるアプリケーションの作成、管理、及び実行を可能にするフレームワークでもよい。このようなアプリケーションは、データベースサービスプロバイダにより、又はサービスにアクセスするユーザ若しくはサードパーティアプリケーション開発者により開発されてもよい。アプリケーションプラットフォーム918は、アプリケーション開発者によるアプリケーションの作成及び管理をサポートするアプリケーションセットアップメカニズム938を含み、これは、例えば、テナント管理プロセス960により管理される1つ以上のテナントプロセス空間954としてのサブスクライバによる実行のために、保存ルーチン936によりテナントデータストレージ922にメタデータとして保存することができる。このようなアプリケーションへの呼び出しは、API932へのプログラミング言語スタイルインターフェース拡張を提供するPL/SOQL934を使用してコード化されてもよい。いくつかのPL/SOQL言語の実装の詳細な説明は、METHOD AND SYSTEM FOR ALLOWING ACCESS TO DEVELOPED APPLICATIONS VIA A MULTI-TENANT ON-DEMAND DATABASE SERVICEと題された、Craig Weissmanによる、2010年6月1日に発行された、その全体を全ての目的のために参照により本明細書に組み込まれている共通に譲渡された米国特許第7,730,478号で論じられている。アプリケーションへの呼び出しは、1つ以上のシステムプロセスにより検出することができる。このようなシステムプロセスは、そのような呼び出しを行うサブスクライバのために、アプリケーションメタデータ966の取り出しを管理することができる。このようなシステムプロセスは、仮想マシンにおけるアプリケーションとしてのアプリケーションメタデータ966の実行を管理することもできる。
【0175】
いくつかの実装において、各アプリケーションサーバ950は、任意の組織に関連づけられた任意のユーザに対する要求を処理することができる。負荷分散機能(例えば、F5 Big-IPロードバランサ)が、最小接続、ラウンドロビン、観察応答時間などのアルゴリズムに基づいてアプリケーションサーバ950への要求を分散させてもよい。各アプリケーションサーバ950は、テナントデータストレージ922及びその中のテナントデータ923並びにシステムデータストレージ924及びその中のシステムデータ925と通信してユーザシステム912の要求を扱うように構成され得る。テナントデータ923は、個々のテナントストレージ空間962に分割されてもよく、これは、データの物理的配置及び/又は論理的配置のいずれかとすることができる。各テナントストレージ空間962内で、ユーザストレージ964及びアプリケーションメタデータ966は、各ユーザに対して同様に割り振られてもよい。例えば、ユーザの最も最近使用した(MRU)項目のコピーが、ユーザストレージ964に記憶されてもよい。同様に、テナント組織全体のためのMRU項目のコピーは、テナントストレージ空間962に記憶されてもよい。UI930は、ユーザインターフェースを提供し、API932は、ユーザシステム912におけるユーザ及び/又は開発者にシステム916常駐プロセスへのアプリケーションプログラミングインターフェースを提供する。
【0176】
システム916は、ウェブベースのユーザインターフェースのクライアント‐サーバシステムを実施することができる。例えば、いくつかの実装において、システム916は、サービス側データベースアクセスユーザインターフェースソフトウェアアプリケーションを実施及び実行するように構成されたアプリケーションサーバを含んでもよい。アプリケーションサーバは、ユーザシステム912との間で、関連するデータ、コード、フォーム、ウェブページ、及び他の情報を提供するように構成され得る。さらに、アプリケーションサーバは、データベースシステムに情報を記憶し、データベースシステムから情報を取り出すように構成することができる。このような情報には、関連するデータ、オブジェクト、及び/又はウェブページコンテンツを含んでもよい。マルチテナントシステムでは、複数のテナントのためのデータがテナントデータストレージ922内の同じ物理データベースオブジェクト内に記憶され得、しかしながら、テナントデータは、1つのテナントのデータが他のテナントのデータから論理的に別個に保持されるように、テナントデータストレージ922の記憶媒体内に配置され得る。このようなスキームにおいて、1つのテナントは、別のテナントのデータが明示的に共有されない限り、そのようなデータにアクセスし得ない。
【0177】
図9に示すシステムのいくつかの要素は、ここでは簡単にのみ説明される従来の周知の要素を含む。例えば、ユーザシステム912は、プロセッサシステム912A、メモリシステム912B、入力システム912C、及び出力システム912Dを含むことができる。ユーザシステム912は、携帯電話、ラップトップコンピュータ、タブレット、デスクトップコンピュータ、又はコンピューティングデバイスのネットワークなどの、任意のコンピューティングデバイス又は他のデータ処理装置として実施することができる。ユーザシステム12は、ユーザシステム912のユーザ(例えば、MTSのサブスクライバ)がネットワーク914を通じてシステム916から利用可能な情報、ページ、及びアプリケーションにアクセスし、処理し、閲覧することを可能にするインターネットブラウザを実行することができる。ネットワーク914は、LAN(ローカルエリアネットワーク)、WAN(ワイドエリアネットワーク)、無線ネットワーク、又は他の適切な構成のうちの任意の1つ又は任意の組み合わせなどの、互いに通信するデバイスの任意のネットワーク又はネットワークの組み合わせでもよい。
【0178】
ユーザシステム912のユーザは、それぞれのキャパシティが異なっていてもよく、情報にアクセスするための特定のユーザシステム912のキャパシティは、少なくとも部分的に、特定のユーザシステム912の「パーミッション(permissions)」により決定されてもよい。本明細書で論じられるとき、パーミッションは、一般に、データオブジェクト、コンポーネントなどの計算リソース、並びにソーシャルネットワーキングシステム及び/又はCRMデータベースシステムなどのコンピューティングシステムの他のエンティティへのアクセスを支配する。「パーミッションセット」は、一般に、そのようなコンピューティング環境のユーザに割り当てられ得るパーミッションのグループを指す。例えば、ユーザ及びパーミッションセットの割り当ては、システム916の1つ以上のデータベースに記憶されてもよい。このように、ユーザは、特定のリソースにアクセスするためのパーミッションを受け取ることができる。オンデマンドデータベースサービス環境におけるパーミッションサーバは、互いに割り当てるべきユーザ及びパーミッションセットのタイプに関する基準データを記憶することができる。例えば、コンピューティングデバイスは、ユーザの属性(例えば、地理的位置、産業、役割、経験のレベルなど)とその属性に適合するユーザに割り当てられる特定のパーミッションを示すデータをサーバに提供することができる。基準を満たすパーミッションセットが選択され、ユーザに割り当てられ得る。さらに、パーミッションは複数のパーミッションセットに現れてもよい。このようにして、ユーザは、システムのコンポーネントへのアクセスを得ることができる。
【0179】
いくつかのオンデマンドデータベースサービス環境において、アプリケーションプログラミングインターフェース(API)は、適切なネットワークベースのサービス及びアーキテクチャを通じて、例えば、シンプルオブジェクトアクセスプロトコル(Simple Object Access Protocol、SOAP)ウェブサービス及び表現状態転送(Representational State Transfer、REST)APIを使用して、パーミッションのコレクションとそれらのユーザへの割り当てを公開するように構成され得る。
【0180】
いくつかの実装において、パーミッションセットは、パーミッションのコンテナとして管理者に提示されてもよい。しかしながら、このようなパーミッションセット内の各パーミッションは、同じパーミッションセットオブジェクトと子‐親の関係を有する共有APIに公開された別個のAPIオブジェクトに存在することができる。これにより、所与のパーミッションセットは、ユーザに対して数百万のパーミッションにスケーリングすることができ、一方、開発者は、APIオブジェクト間の結合を利用して数百万の可能な選択肢にわたり任意のパーミッションを照会、挿入、更新、及び削除することができる。これは、開発者が使用するAPIを大いにスケーラブルにし、信頼可能にし、効率的にする。
【0181】
いくつかの実装において、本明細書に開示される手法を用いて構築されるパーミッションセットAPIは、開発者がアクセス制御の様々なセットにわたり、及びユーザのタイプにわたりユーザのパーミッションを管理するツールを作成するための、スケーラブルな、信頼可能な、効率的なメカニズムを提供することができる。このツールを使用する管理者は、ユーザの権利を管理する時間を効果的に短縮し、外部システムと統合し、監査及びトラブルシューティングの目的で権利について報告することができる。例として、異なるユーザは、認可とも呼ばれるユーザのセキュリティ又はパーミッションレベルに依存して、アプリケーション及びデータベース情報へのアクセス及び変更に関して異なる能力を有し得る。階層ロールモデルを有するシステムでは、1つのパーミッションレベルのユーザは、下位のパーミッションレベルのユーザによりアクセス可能なアプリケーション、データ、及びデータベース情報へのアクセスを有し得るが、上位のパーミッションレベルのユーザによりアクセス可能な特定のアプリケーション、データベース情報、及びデータへのアクセスを有し得ない。
【0182】
上記で論じられたように、システム916は、MTS構成を使用してオンデマンドデータベースサービスをユーザシステム912に提供することができる。例として、1つのテナント組織が販売陣を採用する会社でもよく、各販売員はシステム916を使用して販売プロセスを管理する。したがって、このような組織のユーザは、連絡先データ、リードデータ、顧客フォローアップデータ、パフォーマンスデータ、目標及び進捗データ等、そのユーザの個人の販売プロセスに適用可能な全てを(例えば、テナントデータストレージ922に)維持することができる。この構成では、ユーザは、様々なデバイスから自身の販売努力及びサイクルを管理することができ、なぜならば、そのようなデータと対話する(例えば、アクセスする、閲覧する、修正する、報告する、送信する、計算する等)ための関連するデータ及びアプリケーションが、ネットワークアクセスを有する任意のユーザシステム912により維持され、アクセスされ得るためである。
【0183】
MTS構成で実装されるとき、システム916は、様々な方法で、ユーザ間及び組織レベルでデータを分離し、共有することができる。例えば、特定のタイプのデータについて、各ユーザのデータは、組織がそのようなユーザを採用していることにかかわらず他のユーザのデータとは別個であり得る。他のデータは組織全体のデータでもよく、これは、所与のテナント組織を形成する複数のユーザ又は潜在的には全てのユーザにより共有され、あるいはアクセス可能である。したがって、システム916により管理されるいくつかのデータ構造がテナントレベルで割り振られてもよく、他のデータ構造がユーザレベルで管理されてもよい。MTSは、あり得る競合他社を含む複数のテナントをサポートし得るため、MTSは、データ、アプリケーション、及びアプリケーション使用を別個に保つセキュリティプロトコルを有することができる。ユーザ固有のデータ及びテナント固有のデータに加えて、システム916は、複数のテナントにより使用可能なシステムレベルのデータ又は他のデータを維持することもできる。このようなシステムレベルのデータには、テナント組織間で共有可能な産業レポート、ニュース、投稿などを含んでもよい。
【0184】
いくつかの実装において、ユーザシステム912は、システム916からのシステムレベル及びテナントレベルのデータを要求及び更新するために、アプリケーションサーバ950と通信するクライアントシステムでもよい。例として、ユーザシステム912は、テナントデータストレージ922及び/又はシステムデータストレージ924内に維持されたデータベースのデータを要求する1つ以上のクエリを送信することができる。システム916のアプリケーションサーバ950は、要求されたデータにアクセスするように設計された1つ以上のSQL文(例えば、1つ以上のSQLクエリ)を自動的に生成することができる。システムデータストレージ924は、データベースからの要求されたデータにアクセスするためのクエリプランを生成することができる。
【0185】
本明細書に記載のデータベースシステムは、様々なデータベースアプリケーションに使用することができる。例として、各データベースは、一般に、予め定義されたカテゴリに適合されたデータを含む論理テーブルのセットなどのオブジェクトの集合として見ることができる。「テーブル」は、データオブジェクトの1つの表現であり、本明細書では、いくつかの実装に従ったオブジェクト及びカスタムオブジェクトの概念的な説明を簡素化するために使用され得る。「テーブル」と「オブジェクト」は本明細書において互換的に使用され得ることを理解されたい。各テーブルは、一般に、見えるスキーマ内の列又はフィールドとして論理的に配置された1つ以上のデータカテゴリを含む。テーブルの各行又はレコードは、フィールドにより定義された各カテゴリのデータのインスタンスを含む。例えば、CRMデータベースは、名前、住所、電話番号、ファックス番号などの基本的な連絡先情報のためのフィールドを用いて顧客を記述するテーブルを含むことができる。別のテーブルが、顧客、製品、販売価格、日付などの情報のためのフィールドを含む購入注文を記述することができる。いくつかのマルチテナントデータベースシステムでは、全てのテナントによる使用のために標準エンティティテーブルが提供される場合がある。CRMデータベースアプリケーションでは、このような標準エンティティは、予め定義されたフィールドを各々が含むケース、アカウント、連絡先、リード、及び機会データオブジェクトのためのテーブルを含んでもよい。語「エンティティ」も本明細書において「オブジェクト」及び「テーブル」と互換的に使用され得ることを理解されたい。
【0186】
いくつかの実装において、テナントは、カスタムオブジェクトを作成及び記憶することを可能にされてもよく、あるいは、例えば、カスタムインデックスフィールドを含む標準オブジェクトのカスタムフィールドを作成することにより、標準のエンティティ又はオブジェクトをカスタマイズすることを可能にされてもよい。CUSTOM ENTITIES AND FIELDS IN A MULTI-TENANT DATABASE SYSTEM と題された、Weissmanらによる、2010年8月17日に発行された、その全体を全ての目的のために参照により本明細書に組み込まれている共通に譲渡された米国特許第7,779,039号は、MTSにおいてカスタムオブジェクトを作成するとともに標準オブジェクトをカスタマイズするシステム及び方法を教示している。特定の実装では、例えば、全てのカスタムエンティティデータ行が単一のマルチテナント物理テーブルに記憶され得、これは組織ごとに複数の論理テーブルを含み得る。それらの複数の「テーブル」が実際には1つの大きいテーブルに記憶されていること、又はそれらのデータが他の顧客のデータと同じテーブルに記憶され得ることは、顧客には透過的であり得る。
【0187】
図10Aは、いくつかの実装に従って構成されたオンデマンドデータベースサービス環境1000のアーキテクチャコンポーネントの一例のシステム図を示す。クラウド1004に配置されたクライアントマシンは、1つ以上のエッジルータ1008及び1012を介してオンデマンドデータベースサービス環境と通信することができる。クライアントマシンは、上述のユーザシステム?12の例のいずれかを含むことができる。エッジルータ1008及び1012は、ファイアウォール1016を介して1つ以上のコアスイッチ1020及び1024と通信することができる。コアスイッチは、ロードバランサ1028と通信することができ、これは、ポッドスイッチ1032及び1036を介した通信により、ポッド1040及び1044などの異なるポッドにわたってサーバ負荷を分散させることができる。各々が1つ以上のサーバ及び/又は他の計算リソースを含み得るポッド1040及び1044は、オンデマンドサービスを提供するために使用されるデータ処理及び他の動作を実行することができる。環境のコンポーネントは、データベースファイアウォール1048及びデータベーススイッチ1052を介してデータベースストレージ1056と通信することができる。
【0188】
オンデマンドデータベースサービス環境にアクセスすることは、様々な異なるコンポーネント間で伝送される通信を含み得る。環境1000は、実際のオンデマンドデータベースサービス環境の簡素化された表現である。例えば、オンデマンドデータベースサービス環境のいくつかの実装は、各タイプの1つから多数のデバイスをどこにでも含むことができる。さらに、オンデマンドデータベースサービス環境は、
図10A及び
図10Bに図示される各デバイスを含む必要はなく、あるいは図示されていないさらなるデバイスを含んでもよい。
【0189】
クラウド1004は任意の適切なデータネットワーク又はデータネットワークの組み合わせを指し、これはインターネットを含んでもよい。クラウド1004に位置するクライアントマシンは、オンデマンドデータベースサービス環境1000と通信して、オンデマンドデータベースサービス環境1000により提供されるサービスにアクセスすることができる。例として、クライアントマシンは、オンデマンドデータベースサービス環境1000にアクセスして、ワイヤウェブコンポーネント情報を取り出し、記憶し、編集し、かつ/あるいは処理することができる。
【0190】
いくつかの実装において、エッジルータ1008及び1012は、クラウド1004とオンデマンドデータベースサービス環境1000の他のコンポーネントとの間でパケットをルーティングする。エッジルータ1008及び1012は、ボーダーゲートウェイプロトコル(Border Gateway Protocol、BGP)を採用してもよい。エッジルータ1008及び1012は、インターネット上の自律システム間のネットワーク到達可能性を指定するIPネットワーク又は「プレフィックス」のテーブルを維持することができる。
【0191】
1つ以上の実装において、ファイアウォール1016は、インターネットトラフィックから環境1000の内部コンポーネントを保護することができる。ファイアウォール1016は、ルール及び/又は他の基準のセットに基づいてオンデマンドデータベースサービス環境1000の内部コンポーネントへのアクセスをブロック、許可、又は拒否することができる。ファイアウォール1016は、パケットフィルタ、アプリケーションゲートウェイ、ステートフルフィルタ、プロキシサーバ、又は任意の他のタイプのファイアウォールのうちの1つ以上として機能することができる。
【0192】
いくつかの実装において、コアスイッチ1020及び1024は、環境1000内でパケットを転送する大容量スイッチでもよい。コアスイッチ1020及び1024は、オンデマンドデータベースサービス環境内の異なるコンポーネント間のデータを迅速にルーティングするネットワークブリッジとして構成され得る。2つ以上のコアスイッチ1020及び1024の使用は、冗長性及び/又は待ち時間の低減を提供し得る。
【0193】
いくつかの実装において、ポッド1040及び1044の間の通信は、ポッドスイッチ1032及び1036を介して行われてもよい。ポッドスイッチ1032及び1036は、例えばコアスイッチ1020及び1024を介して、ポッド1040及び1044とクライアントマシンとの間の通信を容易にすることができる。さらに又は代わりに、ポッドスイッチ1032及び1036は、ポッド1040及び1044とデータベースストレージ1056との間の通信を容易にすることができる。ロードバランサ1028は、ポッド間でワークロードを分散させることができ、これは、リソースの使用の改善、スループットの増加、応答時間の低減、及び/又はオーバーヘッドの低減を支援することができる。ロードバランサ1028は、マルチレイヤスイッチを含んでトラフィックを分析及び転送してもよい。
【0194】
いくつかの実装において、データベースストレージ1056へのアクセスは、データベースファイアウォール1048によりガードされてもよく、これは、プロトコルスタックのデータベースアプリケーション層で動作するコンピュータアプリケーションファイアウォールとして機能することができる。データベースファイアウォール1048は、構造照会言語(SQL)インジェクション、データベースルートキット、及び認可されていない情報開示などのアプリケーション攻撃からデータベースストレージ1056を保護することができる。データベースファイアウォール1048は、トラフィックをゲートウェイルータに渡す前にそれをプロキシする(proxy)ための1つ以上の形式のリバースプロキシサービスを使用するホストを含んでもよく、かつ/あるいは、データベーストラフィックの内容を検査し、特定の内容又はデータベース要求をブロックしてもよい。データベースファイアウォール1048は、TCP/IPスタック上のSQLアプリケーションレベルで動作し、データベース又はSQL管理インターフェースへのアプリケーションの接続を管理するとともにデータベースネットワーク又はアプリケーションインターフェースとの間を移動するパケットを傍受し、強制することができる。
【0195】
いくつかの実装において、データベースストレージ1056は、多くの異なる組織により共有されるオンデマンドデータベースシステムでもよい。オンデマンドデータベースサービスは、シングルテナントアプローチ、マルチテナントアプローチ、仮想化アプローチ、又は他のタイプのデータベースアプローチを採用することができる。データベースストレージ1056との通信は、データベーススイッチ1052を介して行われてもよい。データベースストレージ1056は、データベースクエリを処理するための様々なソフトウェアコンポーネントを含むことができる。したがって、データベーススイッチ1052は、環境の他のコンポーネント(例えば、ポッド1040及び1044)により送信されたデータベースクエリを、データベースストレージ1056内の正しいコンポーネントに向けることができる。
【0196】
図10Bは、いくつかの実装に従うオンデマンドデータベースサービス環境のアーキテクチャコンポーネントの一例をさらに示すシステム図を示す。ポッド1044は、オンデマンドデータベースサービス環境1000のユーザにサービスを行うために使用することができる。ポッド1044は、1つ以上のコンテンツバッチサーバ1064、コンテンツ検索サーバ1068、クエリサーバ1082、ファイルサーバ1086、アクセス制御システム(ACS)サーバ1080、バッチサーバ1084、及びアプリサーバ1088を含むことができる。また、ポッド1044は、データベースインスタンス1090、クイックファイルシステム(QFS)1092、及びインデクサ1094を含んでもよい。ポッド1044内のサーバ間の通信の一部又は全部が、スイッチ1036を介して伝送されてもよい。
【0197】
いくつかの実装において、アプリサーバ1088は、ポッド1044を介してオンデマンドデータベースサービス環境1000により提供されるアプリケーションの構築をサポートするためのプロシージャ(例えば、プログラム、ルーチン、スクリプト)の実行専用のフレームワークを含むことができる。アプリサーバ1088の1つ以上のインスタンスが、本明細書に記載されるサービスの動作の全て又は一部を実行するように構成され得る。
【0198】
いくつかの実装において、上記で論じられたように、ポッド1044は、1つ以上のデータベースインスタンス1090を含んでもよい。データベースインスタンス1090は、上述の手法を使用して、異なる組織が同じデータベースへのアクセスを共有するMTSとして構成されてもよい。データベース情報は、インデクサ1094に送信され得、これは、ファイルサーバ1086にデータベース1090内で利用可能な情報のインデックスを提供することができる。QFS1092又は他の適切なファイルシステムは、ポッド1044内で利用可能な情報を記憶し、アクセスするための高速アクセスファイルシステムとして機能することができる。QFS1092は、ボリューム管理機能をサポートすることができ、多くのディスクをファイルシステムに一緒にグループ化することができる。QFS1092は、データベースインスタンス1090、コンテンツ検索サーバ1068、及び/又はインデクサ1094と通信して、ネットワークファイルシステム(NFS)1096及び/又は他のストレージシステムに記憶されたデータを識別、取り出し、移動、及び/又は更新することができる。
【0199】
いくつかの実装において、1つ以上のクエリサーバ1082が、NFS1096と通信して、ポッド1044の外側に記憶された情報を取り出し及び/又は更新することができる。NFS1096は、ポッド1044内に位置するサーバが、ローカルストレージがアクセスされる方法と同様の方法でネットワークを通じて情報にアクセスすることを可能にし得る。クエリサーバ1022からのクエリは、ロードバランサ1028を介してNFS1096に送信され得、ロードバランサ1028は、オンデマンドデータベースサービス環境1000内で利用可能な様々なリソースにわたりリソース要求を分散させることができる。また、NFS1096は、QFS1092と通信して、NFS1096に記憶された情報を更新し、かつ/あるいはポッド1044内に位置するサーバによる使用のためにQFS1092に情報を提供することができる。
【0200】
いくつかの実装において、コンテンツバッチサーバ1064は、ポッド1044の内部の要求を処理することができる。これらの要求は、ログマイニング、クリーンアップワーク、及びメンテナンスタスクに関連した要求など、長期にわたって実行されてもよく、かつ/あるいは特定の顧客に結びつけられなくてもよい。コンテンツ検索サーバ1068は、ユーザがオンデマンドデータベースサービス環境1000に記憶されたコンテンツを検索できるようにする機能などの、クエリ及びインデクサ機能を提供することができる。ファイルサーバ1086は、ファイルストレージ1098に記憶された情報に対する要求を管理することができ、ファイルストレージ1098は、文書、画像、ベーシックラージオブジェクト(basic large objects、BLOB)などの情報を記憶することができる。クエリサーバ1082は、1つ以上のファイルシステムから情報を取り出すために使用することができる。例えば、クエリシステム1082は、アプリサーバ1088から情報の要求を受信し、次いで、情報クエリをポッド1044の外側に位置するNFS1096に送信することができる。ACSサーバ1080は、ポッド1044により提供されるサービスを行うために要求されたデータ、ハードウェアリソース、又はソフトウェアリソースへのアクセスを制御することができる。バッチサーバ1084は、指定された時間にタスクを実行するために使用されるバッチジョブを処理することができる。したがって、バッチサーバ1084は、バッチジョブをトリガするために、アプリサーバ1088などの他のサーバに命令を送信してもよい。
【0201】
開示された実装のいくつかは、複数のテナントをサポートすることができるオンデマンドデータベースサービスのフロントエンドを提供するアプリケーションサーバを有するシステムを参照して説明され得るが、開示された実装は、マルチテナントデータベース又はアプリケーションサーバ上のデプロイに限定されない。いくつかの実装は、本開示の範囲から逸脱することなくORACLE(登録商標)、IBMによるDB2などの様々なデータベースアーキテクチャを使用して実施することができる。
【0202】
図11は、コンピューティングデバイスの一例を示す。様々な実施形態によれば、本明細書に記載される実施形態を実施するのに適したシステム1100は、プロセッサ1101、メモリモジュール1103、ストレージデバイス1105、インターフェース1111、及びバス1115(例えば、PCIバス又は他の相互接続ファブリック)を含む。システム1100は、アプリケーションサーバ、データベースサーバ、又は本明細書に記載される任意の他のデバイス又はサービスなどの様々なデバイスとして動作することができる。特定の構成が記載されているが、様々な代替構成が可能である。プロセッサ1101は、本明細書に記載されるような動作を実行することができる。このような動作を実行するための命令は、メモリ1103に、1つ以上の非一時的コンピュータ読取可能媒体に、又は何らかの他の記憶装置に具現化することができる。また、プロセッサ1101の代わりに、又はプロセッサ1101に加えて、様々な特別に構成された装置を使用することもできる。インターフェース1111は、ネットワークを通じてデータパケットを送受信するように構成され得る。サポートされるインターフェースの例は、これらに限られないが、イーサネット、ファストイーサネット、ギガビットイーサネット、フレームリレー、ケーブル、デジタル加入者線(DSL)、トークンリング、非同期転送モード(ATM)、高速シリアルインターフェース(HSSI)、及びファイバ分散データインターフェース(FDDI)が含まれる。これらのインターフェースは、適切な媒体との通信に適したポートを含むことができる。それらはまた、独立したプロセッサ及び/又は揮発性RAMを含んでもよい。コンピュータシステム又はコンピューティングデバイスは、本明細書で言及された結果のいずれかをユーザに提供するために、モニタ、プリンタ、又は他の適切なディスプレイを含み、あるいはそれらと通信することができる。
【0203】
開示された実装のいずれも、様々なタイプのハードウェア、ソフトウェア、ファームウェア、コンピュータ読取可能媒体、及びこれらの組み合わせで具現化することができる。例えば、本明細書に開示されるいくつかの手法は、少なくとも部分的に、本明細書に記載される様々なサービス及び動作を実行するようにコンピューティングシステムを構成するためのプログラム命令、状態情報などを含むコンピュータ読取可能媒体により実装することができる。プログラム命令の例には、コンパイラにより生成されるようなマシンコードと、インタプリタを介して実行され得る高水準コードの双方が含まれる。命令は、例えば、Apex、Java(登録商標)、Python、C++、C、HTML、任意の他のマークアップ言語、JavaScript、ActiveX、VBScript、又はPerlなどの任意の適切な言語で具現化することができる。コンピュータ読取可能媒体の例は、これらに限られないが、ハードディスク及び磁気テープなどの磁気媒体;フラッシュメモリ、コンパクトディスク(CD)、又はデジタル多用途ディスク(DVD)などの光媒体;磁気光媒体;及び、読取専用メモリ(「ROM」)デバイス及びランダムアクセスメモリ(「RAM」)デバイスなどの他のハードウェアデバイスが含まれる。コンピュータ読取可能媒体は、このような記憶装置の任意の組み合わせでもよい。
【0204】
前述の明細書では、様々な手法及びメカニズムが、明確さのために単数形で記載されている場合がある。しかしながら、いくつかの実施形態は、別段注記されない限り、手法の複数の反復又はメカニズムの複数のインスタンス化を含むことに留意されたい。例えば、システムは、様々な文脈でプロセッサを使用するが、別段注記されない限り本開示の範囲内に留まりながら複数のプロセッサを使用することができる。同様に、様々な手法及びメカニズムは、2つのエンティティ間の接続を含むものとして記載されている場合がある。しかしながら、接続は、2つのエンティティ間に様々な他のエンティティ(例えば、ブリッジ、コントローラ、ゲートウェイなど)が存在し得るため、必ずしも直接的で妨げられない接続を意味するわけではない。
【0205】
前述の明細書では、発明者により企図された最良モードの1つ以上を含む特定の実施形態を詳細に参照した。様々な実装が本明細書に記載されているが、それらは限定でなく単に例として提示されていることを理解されたい。例えば、いくつかの手法及びメカニズムは、MTSを含むオンデマンドコンピューティング環境の文脈で本明細書に記載されている。しかしながら、本発明の手法は、広範なコンピューティング環境に適用される。特定の実施形態は、本明細書に記載される特定の詳細の一部又は全部を伴わずに実施され得る。他の例では、本発明を不必要に分かりにくくしないように、周知のプロセス動作は詳細に説明されていない。したがって、本出願の広さ及び範囲は、本明細書に記載の実装のいずれかにより限定されるべきではなく、特許請求の範囲及びそれらの同等物に従ってのみ定義されるべきである。
【手続補正書】
【提出日】2021-12-24
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
通信インターフェースにより、クライアントマシンにおける提示のためのグラフィカルユーザインターフェース(GUI)を提供する要求を受信するステップと、
プロセッサにより、前記GUIに含まれると予測される複数のワイヤウェブコンポーネントを識別するステップであり、各ワイヤウェブコンポーネントは、それぞれのデータオブジェクトインスタンスを参照し、各データオブジェクトインスタンスは、それぞれのデータオブジェクトインスタンス識別子及びそれぞれの1つ以上のデータオブジェクトフィールドに関連づけられる、ステップと、
前記プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフを構築するステップであり、前記ノードの第1のサブセットの各々は、前記複数のワイヤウェブコンポーネントのそれぞれ1つに対応し、前記ノードの第2のサブセットの各々は、前記データオブジェクトフィールドのそれぞれ1つに対応し、前記ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応し、各ワイヤウェブコンポーネントは、前記ワイヤウェブコンポーネントグラフ内で、前記ワイヤウェブコンポーネントに含まれる前記データオブジェクトフィールドのそれぞれ1つ以上にリンクされ、それぞれのデータフィールドに対応する各ノードは、前記ワイヤウェブコンポーネントグラフ内で、前記それぞれのデータフィールドに関連づけられたそれぞれのデータ値を取り出すことができるそれぞれのAPIに対応するそれぞれのノードにリンクされる、ステップと、
前記ワイヤウェブコンポーネントグラフに基づいて前記それぞれのAPIから前記データ値の1つ以上を取り出すステップと、
前記通信インターフェースを介してGUIメッセージを前記クライアントマシンに送信するステップであり、前記GUIメッセージは、前記取り出されたデータ値と前記ワイヤウェブコンポーネントグラフを含む、ステップと、
を含む方法。
【請求項2】
各ワイヤウェブコンポーネントは、前記クライアントマシンに、
前記GUIが表示装置に表示された後の前記GUIへの変更を検出し、前記変更は、前記取り出されたデータ値のうちの指定された1つに影響し、
前記APIの1つ以上と通信して前記指定されたデータ値を更新し、
前記更新されたデータ値に基づいて前記表示装置上の前記GUIを更新する
ことをさせるように構成されたそれぞれのコンピュータプログラミングコードに関連づけられる、請求項1に記載の方法。
【請求項3】
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記GUIが最初表示されるときアクティブである可能性が高い第1のGUI部分と、前記GUIが最初表示されるときアクティブである可能性が低い第2のGUI部分とを識別することを含む、請求項1又は2に記載の方法。
【請求項4】
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記GUIを提供する前記要求に予め訓練された機械学習予測モデルを適用することを含む、請求項1乃至3のうちいずれか1項に記載の方法。
【請求項5】
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記クライアントマシンから受信した1つ以上の前の要求を評価することを含む、請求項1乃至4のうちいずれか1項に記載の方法。
【請求項6】
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記APIのうちの指定された1つに対する入力パラメータを予測することを含む、請求項1乃至5のうちいずれか1項に記載の方法。
【請求項7】
前記ワイヤウェブコンポーネントの各々は、計算プログラミング言語コードにより実施されるそれぞれのワイヤウェブコンポーネント定義に関連づけられ、前記ワイヤウェブコンポーネント定義の各々は、ハイパーテキストマークアップ言語(HTML)により実施されるそれぞれのテンプレートを含む、請求項1乃至
6のうちいずれか1項に記載の方法。
【請求項8】
前記ワイヤウェブコンポーネントグラフを構築することは、前記複数のワイヤウェブコンポーネントの各々について前記それぞれのワイヤウェブコンポーネント定義をパースすることを含む、請求項
7に記載の方法。
【請求項9】
データベースシステムを含むコンピューティングシステムであって、
通信インターフェースにより、クライアントマシンにおける提示のためのグラフィカルユーザインターフェース(GUI)を提供する要求を受信するステップと、
プロセッサにより、前記GUIに含まれると予測される複数のワイヤウェブコンポーネントを識別するステップであり、各ワイヤウェブコンポーネントは、それぞれのデータオブジェクトインスタンスを参照し、各データオブジェクトインスタンスは、それぞれのデータオブジェクトインスタンス識別子及びそれぞれの1つ以上のデータオブジェクトフィールドに関連づけられる、ステップと、
前記プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフを構築するステップであり、前記ノードの第1のサブセットの各々は、前記複数のワイヤウェブコンポーネントのそれぞれ1つに対応し、前記ノードの第2のサブセットの各々は、前記データオブジェクトフィールドのそれぞれ1つに対応し、前記ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応し、各ワイヤウェブコンポーネントは、前記ワイヤウェブコンポーネントグラフ内で、前記ワイヤウェブコンポーネントに含まれる前記データオブジェクトフィールドのそれぞれ1つ以上にリンクされ、それぞれのデータフィールドに対応する各ノードは、前記ワイヤウェブコンポーネントグラフ内で、前記それぞれのデータフィールドに関連づけられたそれぞれのデータ値を取り出すことができるそれぞれのAPIに対応するそれぞれのノードにリンクされる、ステップと、
前記ワイヤウェブコンポーネントグラフに基づいて前記それぞれのAPIから前記データ値の1つ以上を取り出すステップと、
前記通信インターフェースを介してGUIメッセージを前記クライアントマシンに送信するステップであり、前記GUIメッセージは、前記取り出されたデータ値と前記ワイヤウェブコンポーネントグラフを含む、ステップと、
を含む方法を実行するように動作可能である、コンピューティングシステム。
【請求項10】
各ワイヤウェブコンポーネントは、前記クライアントマシンに、
前記GUIが表示装置に表示された後の前記GUIへの変更を検出し、前記変更は、前記取り出されたデータ値のうちの指定された1つに影響し、
前記APIの1つ以上と通信して前記指定されたデータ値を更新し、
前記更新されたデータ値に基づいて前記表示装置上の前記GUIを更新する
ことをさせるように構成されたそれぞれのコンピュータプログラミングコードに関連づけられる、請求項
9に記載のコンピューティングシステム。
【請求項11】
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記GUIが最初表示されるときアクティブである可能性が高い第1のGUI部分と、前記GUIが最初表示されるときアクティブである可能性が低い第2のGUI部分とを識別することを含む、請求項
9又は1
0に記載のコンピューティングシステム。
【請求項12】
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記GUIを提供する前記要求に予め訓練された機械学習予測モデルを適用することを含む、請求項
9乃至1
1のうちいずれか1項に記載のコンピューティングシステム。
【請求項13】
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記クライアントマシンから受信した1つ以上の前の要求を評価することを含む、請求項
9乃至1
2のうちいずれか1項に記載のコンピューティングシステム。
【請求項14】
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記APIのうちの指定された1つに対する入力パラメータを予測することを含む、請求項
9乃至1
3のうちいずれか1項に記載のコンピューティングシステム。
【請求項15】
前記ワイヤウェブコンポーネントの各々は、計算プログラミング言語コードにより実施されるそれぞれのワイヤウェブコンポーネント定義に関連づけられ、前記ワイヤウェブコンポーネント定義の各々は、ハイパーテキストマークアップ言語(HTML)により実施されるそれぞれのテンプレートを含み、前記ワイヤウェブコンポーネントグラフを構築することは、前記複数のワイヤウェブコンポーネントの各々について前記それぞれのワイヤウェブコンポーネント定義をパースすることを含む、請求項
9乃至1
4のうちいずれか1項に記載のコンピューティングシステム。
【請求項16】
通信インターフェースにより、クライアントマシンにおける提示のためのグラフィカルユーザインターフェース(GUI)を提供する要求を受信する手段と、
プロセッサにより、前記GUIに含まれると予測される複数のワイヤウェブコンポーネントを識別する手段であり、各ワイヤウェブコンポーネントは、それぞれのデータオブジェクトインスタンスを参照し、各データオブジェクトインスタンスは、それぞれのデータオブジェクトインスタンス識別子及びそれぞれの1つ以上のデータオブジェクトフィールドに関連づけられる、手段と、
前記プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフを構築する手段であり、前記ノードの第1のサブセットの各々は、前記複数のワイヤウェブコンポーネントのそれぞれ1つに対応し、前記ノードの第2のサブセットの各々は、前記データオブジェクトフィールドのそれぞれ1つに対応し、前記ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応し、各ワイヤウェブコンポーネントは、前記ワイヤウェブコンポーネントグラフ内で、前記ワイヤウェブコンポーネントに含まれる前記データオブジェクトフィールドのそれぞれ1つ以上にリンクされ、それぞれのデータフィールドに対応する各ノードは、前記ワイヤウェブコンポーネントグラフ内で、前記それぞれのデータフィールドに関連づけられたそれぞれのデータ値を取り出すことができるそれぞれのAPIに対応するそれぞれのノードにリンクされる、手段と、
前記ワイヤウェブコンポーネントグラフに基づいて前記それぞれのAPIから前記データ値の1つ以上を取り出す手段と、
前記通信インターフェースを介してGUIメッセージを前記クライアントマシンに送信する手段であり、前記GUIメッセージは、前記取り出されたデータ値と前記ワイヤウェブコンポーネントグラフを含む、手段と、
を含むシステム。
【請求項17】
各ワイヤウェブコンポーネントは、前記クライアントマシンに、
前記GUIが表示装置に表示された後の前記GUIへの変更を検出し、前記変更は、前記取り出されたデータ値のうちの指定された1つに影響し、
前記APIの1つ以上と通信して前記指定されたデータ値を更新し、
前記更新されたデータ値に基づいて前記表示装置上の前記GUIを更新する
ことをさせるそれぞれの手段に関連づけられる、請求項
16に記載のシステム。
【請求項18】
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記GUIが最初表示されるときアクティブである可能性が高い第1のGUI部分と、前記GUIが最初表示されるときアクティブである可能性が低い第2のGUI部分とを識別する手段を伴う、請求項
16又は
17に記載のシステム。
【請求項19】
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記GUIを提供する前記要求に予め訓練された機械学習予測モデルを適用することを含む、請求項
16乃至
18のうちいずれか1項に記載のシステム。
【請求項20】
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記クライアントマシンから受信した1つ以上の前の要求を評価することを含む、請求項
16乃至
19のうちいずれか1項に記載のシステム。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0205
【補正方法】変更
【補正の内容】
【0205】
前述の明細書では、発明者により企図された最良モードの1つ以上を含む特定の実施形態を詳細に参照した。様々な実装が本明細書に記載されているが、それらは限定でなく単に例として提示されていることを理解されたい。例えば、いくつかの手法及びメカニズムは、MTSを含むオンデマンドコンピューティング環境の文脈で本明細書に記載されている。しかしながら、本発明の手法は、広範なコンピューティング環境に適用される。特定の実施形態は、本明細書に記載される特定の詳細の一部又は全部を伴わずに実施され得る。他の例では、本発明を不必要に分かりにくくしないように、周知のプロセス動作は詳細に説明されていない。したがって、本出願の広さ及び範囲は、本明細書に記載の実装のいずれかにより限定されるべきではなく、特許請求の範囲及びそれらの同等物に従ってのみ定義されるべきである。
上記の実施形態につき以下の付記を残しておく。
[付記1]
通信インターフェースにより、クライアントマシンにおける提示のためのグラフィカルユーザインターフェース(GUI)を提供する要求を受信するステップと、
プロセッサにより、前記GUIに含まれると予測される複数のワイヤウェブコンポーネントを識別するステップであり、各ワイヤウェブコンポーネントは、それぞれのデータオブジェクトインスタンスを参照し、各データオブジェクトインスタンスは、それぞれのデータオブジェクトインスタンス識別子及びそれぞれの1つ以上のデータオブジェクトフィールドに関連づけられる、ステップと、
前記プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフを構築するステップであり、前記ノードの第1のサブセットの各々は、前記複数のワイヤウェブコンポーネントのそれぞれ1つに対応し、前記ノードの第2のサブセットの各々は、前記データオブジェクトフィールドのそれぞれ1つに対応し、前記ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応し、各ワイヤウェブコンポーネントは、前記ワイヤウェブコンポーネントグラフ内で、前記ワイヤウェブコンポーネントに含まれる前記データオブジェクトフィールドのそれぞれ1つ以上にリンクされ、それぞれのデータフィールドに対応する各ノードは、前記ワイヤウェブコンポーネントグラフ内で、前記それぞれのデータフィールドに関連づけられたそれぞれのデータ値を取り出すことができるそれぞれのAPIに対応するそれぞれのノードにリンクされる、ステップと、
前記ワイヤウェブコンポーネントグラフに基づいて前記それぞれのAPIから前記データ値の1つ以上を取り出すステップと、
前記通信インターフェースを介してGUIメッセージを前記クライアントマシンに送信するステップであり、前記GUIメッセージは、前記取り出されたデータ値と前記ワイヤウェブコンポーネントグラフを含む、ステップと、
を含む方法。
[付記2]
各ワイヤウェブコンポーネントは、前記クライアントマシンに、
前記GUIが表示装置に表示された後の前記GUIへの変更を検出し、前記変更は、前記取り出されたデータ値のうちの指定された1つに影響し、
前記APIの1つ以上と通信して前記指定されたデータ値を更新し、
前記更新されたデータ値に基づいて前記表示装置上の前記GUIを更新する
ことをさせるように構成されたそれぞれのコンピュータプログラミングコードに関連づけられる、付記1に記載の方法。
[付記3]
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記GUIが最初表示されるときアクティブである可能性が高い第1のGUI部分と、前記GUIが最初表示されるときアクティブである可能性が低い第2のGUI部分とを識別することを含む、付記1又は2に記載の方法。
[付記4]
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記GUIを提供する前記要求に予め訓練された機械学習予測モデルを適用することを含む、付記1乃至3のうちいずれか1項に記載の方法。
[付記5]
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記クライアントマシンから受信した1つ以上の前の要求を評価することを含む、付記1乃至4のうちいずれか1項に記載の方法。
[付記6]
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記APIのうちの指定された1つに対する入力パラメータを予測することを含む、付記1乃至5のうちいずれか1項に記載の方法。
[付記7]
前記要求は、インターネットを介してオンデマンドコンピューティングサービスを提供するように構成されたクラウドコンピューティング環境内のサーバで受信される、付記1乃至6のうちいずれか1項に記載の方法。
[付記8]
前記APIのうちの第1のAPIは、前記クラウドコンピューティング環境を介してアクセス可能である、付記7に記載の方法。
[付記9]
前記APIのうちの第2のAPIは、前記クラウドコンピューティング環境の外部である、付記8に記載の方法。
[付記10]
前記ワイヤウェブコンポーネントの各々は、計算プログラミング言語コードにより実施されるそれぞれのワイヤウェブコンポーネント定義に関連づけられ、前記ワイヤウェブコンポーネント定義の各々は、ハイパーテキストマークアップ言語(HTML)により実施されるそれぞれのテンプレートを含む、付記1乃至9のうちいずれか1項に記載の方法。
[付記11]
前記ワイヤウェブコンポーネントグラフを構築することは、前記複数のワイヤウェブコンポーネントの各々について前記それぞれのワイヤウェブコンポーネント定義をパースすることを含む、付記10に記載の方法。
[付記12]
データベースシステムを含むコンピューティングシステムであって、
通信インターフェースにより、クライアントマシンにおける提示のためのグラフィカルユーザインターフェース(GUI)を提供する要求を受信するステップと、
プロセッサにより、前記GUIに含まれると予測される複数のワイヤウェブコンポーネントを識別するステップであり、各ワイヤウェブコンポーネントは、それぞれのデータオブジェクトインスタンスを参照し、各データオブジェクトインスタンスは、それぞれのデータオブジェクトインスタンス識別子及びそれぞれの1つ以上のデータオブジェクトフィールドに関連づけられる、ステップと、
前記プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフを構築するステップであり、前記ノードの第1のサブセットの各々は、前記複数のワイヤウェブコンポーネントのそれぞれ1つに対応し、前記ノードの第2のサブセットの各々は、前記データオブジェクトフィールドのそれぞれ1つに対応し、前記ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応し、各ワイヤウェブコンポーネントは、前記ワイヤウェブコンポーネントグラフ内で、前記ワイヤウェブコンポーネントに含まれる前記データオブジェクトフィールドのそれぞれ1つ以上にリンクされ、それぞれのデータフィールドに対応する各ノードは、前記ワイヤウェブコンポーネントグラフ内で、前記それぞれのデータフィールドに関連づけられたそれぞれのデータ値を取り出すことができるそれぞれのAPIに対応するそれぞれのノードにリンクされる、ステップと、
前記ワイヤウェブコンポーネントグラフに基づいて前記それぞれのAPIから前記データ値の1つ以上を取り出すステップと、
前記通信インターフェースを介してGUIメッセージを前記クライアントマシンに送信するステップであり、前記GUIメッセージは、前記取り出されたデータ値と前記ワイヤウェブコンポーネントグラフを含む、ステップと、
を含む方法を実行するように動作可能である、コンピューティングシステム。
[付記13]
各ワイヤウェブコンポーネントは、前記クライアントマシンに、
前記GUIが表示装置に表示された後の前記GUIへの変更を検出し、前記変更は、前記取り出されたデータ値のうちの指定された1つに影響し、
前記APIの1つ以上と通信して前記指定されたデータ値を更新し、
前記更新されたデータ値に基づいて前記表示装置上の前記GUIを更新する
ことをさせるように構成されたそれぞれのコンピュータプログラミングコードに関連づけられる、付記12に記載のコンピューティングシステム。
[付記14]
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記GUIが最初表示されるときアクティブである可能性が高い第1のGUI部分と、前記GUIが最初表示されるときアクティブである可能性が低い第2のGUI部分とを識別することを含む、付記12又は13に記載のコンピューティングシステム。
[付記15]
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記GUIを提供する前記要求に予め訓練された機械学習予測モデルを適用することを含む、付記12乃至14のうちいずれか1項に記載のコンピューティングシステム。
[付記16]
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記クライアントマシンから受信した1つ以上の前の要求を評価することを含む、付記12乃至15のうちいずれか1項に記載のコンピューティングシステム。
[付記17]
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記APIのうちの指定された1つに対する入力パラメータを予測することを含む、付記12乃至16のうちいずれか1項に記載のコンピューティングシステム。
[付記18]
前記ワイヤウェブコンポーネントの各々は、計算プログラミング言語コードにより実施されるそれぞれのワイヤウェブコンポーネント定義に関連づけられ、前記ワイヤウェブコンポーネント定義の各々は、ハイパーテキストマークアップ言語(HTML)により実施されるそれぞれのテンプレートを含み、前記ワイヤウェブコンポーネントグラフを構築することは、前記複数のワイヤウェブコンポーネントの各々について前記それぞれのワイヤウェブコンポーネント定義をパースすることを含む、付記12乃至17のうちいずれか1項に記載のコンピューティングシステム。
[付記19]
方法を実行する命令を記憶させた1つ以上の非一時的コンピュータ読取可能媒体であって、前記方法は、
通信インターフェースにより、クライアントマシンにおける提示のためのグラフィカルユーザインターフェース(GUI)を提供する要求を受信するステップと、
プロセッサにより、前記GUIに含まれると予測される複数のワイヤウェブコンポーネントを識別するステップであり、各ワイヤウェブコンポーネントは、それぞれのデータオブジェクトインスタンスを参照し、各データオブジェクトインスタンスは、それぞれのデータオブジェクトインスタンス識別子及びそれぞれの1つ以上のデータオブジェクトフィールドに関連づけられる、ステップと、
前記プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフを構築するステップであり、前記ノードの第1のサブセットの各々は、前記複数のワイヤウェブコンポーネントのそれぞれ1つに対応し、前記ノードの第2のサブセットの各々は、前記データオブジェクトフィールドのそれぞれ1つに対応し、前記ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応し、各ワイヤウェブコンポーネントは、前記ワイヤウェブコンポーネントグラフ内で、前記ワイヤウェブコンポーネントに含まれる前記データオブジェクトフィールドのそれぞれ1つ以上にリンクされ、それぞれのデータフィールドに対応する各ノードは、前記ワイヤウェブコンポーネントグラフ内で、前記それぞれのデータフィールドに関連づけられたそれぞれのデータ値を取り出すことができるそれぞれのAPIに対応するそれぞれのノードにリンクされる、ステップと、
前記ワイヤウェブコンポーネントグラフに基づいて前記それぞれのAPIから前記データ値の1つ以上を取り出すステップと、
前記通信インターフェースを介してGUIメッセージを前記クライアントマシンに送信するステップであり、前記GUIメッセージは、前記取り出されたデータ値と前記ワイヤウェブコンポーネントグラフを含む、ステップと、
を含む、1つ以上の非一時的コンピュータ読取可能媒体。
[付記20]
各ワイヤウェブコンポーネントは、前記クライアントマシンに、
前記GUIが表示装置に表示された後の前記GUIへの変更を検出し、前記変更は、前記取り出されたデータ値のうちの指定された1つに影響し、
前記APIの1つ以上と通信して前記指定されたデータ値を更新し、
前記更新されたデータ値に基づいて前記表示装置上の前記GUIを更新する
ことをさせるように構成されたそれぞれのコンピュータプログラミングコードに関連づけられる、付記19に記載の1つ以上の非一時的コンピュータ読取可能媒体。
[付記21]
表示装置上に提示されているグラフィカルユーザインターフェース(GUI)内の指定されたワイヤウェブコンポーネントを更新する要求を受信するステップであり、前記指定されたワイヤウェブコンポーネントは1つ以上のデータ値を含む、ステップと、
プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフにアクセスすることにより前記1つ以上のデータ値を更新するための1つ以上のアプリケーションプロシージャインターフェース(API)を識別するステップであり、前記データ値の各々は、前記ワイヤウェブコンポーネントグラフ内に表されたそれぞれのデータフィールドに対応し、各データフィールドは、前記ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる、ステップと、
ネットワークを通じて、及び通信インターフェースを介して前記識別されたAPIと通信することにより、1つ以上の更新されたデータ値を決定するステップと、
前記更新された1つ以上のデータ値に基づいて前記表示装置上に提示される前記グラフィカルユーザインターフェースを更新するステップと、
を含む方法。
[付記22]
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記通信インターフェースを介してリモートサーバから受信される、付記21に記載の方法。
[付記23]
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記GUIが前記表示装置上に最初提示された後に前記データ値の1つ以上が変化したことを示す、付記22に記載の方法。
[付記24]
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、トリガイベントに基づいて前記プロセッサにより生成される、付記21乃至23のうちいずれか1項に記載の方法。
[付記25]
前記トリガイベントは、指定された期間の経過を含む、付記24に記載の方法。
[付記26]
前記トリガイベントは、前記GUIを介して受け取ったユーザ入力に基づいて作成される指定されたユーザ入力イベントを検出することを含む、付記24又は25に記載の方法。
[付記27]
前記トリガイベントは、前記ワイヤウェブコンポーネントを含まない前記GUIの指定された部分における変更を検出することを含む、付記24乃至26のうちいずれか1項に記載の方法。
[付記28]
前記グラフィカルユーザインターフェースを更新することは、前記更新されたデータ値のうちの指定された1つにデータ変換プロシージャを適用して、前記指定されたデータ値の更新されたコンポーネントレベルのビューを生成することを含む、付記24乃至27のうちいずれか1項に記載の方法。
[付記29]
前記指定されたデータ値の前記更新されたコンポーネントレベルのビューが、前記指定されたデータ値の前のコンポーネントレベルのビューと異なると決定されたとき、前記グラフィカルユーザインターフェースに関連づけられたドキュメントオブジェクトモデル(DOM)ツリーが更新される、付記28に記載の方法。
[付記30]
前記ノードの第1のサブセットの各々は、複数のワイヤウェブコンポーネントのそれぞれ1つに対応し、前記ノードの第2のサブセットの各々は、前記データフィールドのそれぞれの1つに対応し、前記ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応する、付記21乃至29のうちいずれか1項に記載の方法。
[付記31]
前記指定されたワイヤウェブコンポーネントは、計算プログラミング言語コードにより実施されるワイヤウェブコンポーネント定義に関連づけられ、前記ワイヤウェブコンポーネント定義は、ハイパーテキストマークアップ言語(HTML)により実施されるテンプレートを含む、付記21乃至30のうちいずれか1項に記載の方法。
[付記32]
前記ワイヤウェブコンポーネントグラフは、複数のワイヤウェブコンポーネントの各々についてそれぞれのワイヤウェブコンポーネント定義をパースすることにより部分的に構築される、付記31に記載の方法。
[付記33]
表示装置上に提示されているグラフィカルユーザインターフェース(GUI)内の指定されたワイヤウェブコンポーネントを更新する要求を受信するステップであり、前記指定されたワイヤウェブコンポーネントは1つ以上のデータ値を含む、ステップと、
プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフにアクセスすることにより前記1つ以上のデータ値を更新するための1つ以上のアプリケーションプロシージャインターフェース(API)を識別するステップであり、前記データ値の各々は、前記ワイヤウェブコンポーネントグラフ内に表されたそれぞれのデータフィールドに対応し、各データフィールドは、前記ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる、ステップと、
ネットワークを通じて、及び通信インターフェースを介して前記識別されたAPIと通信することにより、1つ以上の更新されたデータ値を決定するステップと、
前記更新された1つ以上のデータ値に基づいて前記表示装置上に提示される前記グラフィカルユーザインターフェースを更新するステップと、
を含む方法を実行するように構成されたコンピューティングデバイス。
[付記34]
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記通信インターフェースを介してリモートサーバから受信され、前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記GUIが前記表示装置上に最初提示された後に前記データ値の1つ以上が変化したことを示す、付記33に記載のコンピューティングデバイス。
[付記35]
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、トリガイベントに基づいて前記プロセッサにより生成される、付記33又は34に記載のコンピューティングデバイス。
[付記36]
前記トリガイベントは、指定された期間の経過を含む、付記35に記載のコンピューティングデバイス。
[付記37]
前記トリガイベントは、前記GUIを介して受け取ったユーザ入力に基づいて作成される指定されたユーザ入力イベントを検出することを含む、付記35又は36に記載のコンピューティングデバイス。
[付記38]
前記トリガイベントは、前記ワイヤウェブコンポーネントを含まない前記GUIの指定された部分における変更を検出することを含む、付記35乃至37のうちいずれか1項に記載のコンピューティングデバイス。
[付記39]
方法を実行する命令を記憶させた1つ以上の非一時的コンピュータ読取可能媒体であって、前記方法は、
表示装置上に提示されているグラフィカルユーザインターフェース(GUI)内の指定されたワイヤウェブコンポーネントを更新する要求を受信するステップであり、前記指定されたワイヤウェブコンポーネントは1つ以上のデータ値を含む、ステップと、
プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフにアクセスすることにより前記1つ以上のデータ値を更新するための1つ以上のアプリケーションプロシージャインターフェース(API)を識別するステップであり、前記データ値の各々は、前記ワイヤウェブコンポーネントグラフ内に表されたそれぞれのデータフィールドに対応し、各データフィールドは、前記ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる、ステップと、
ネットワークを通じて、及び通信インターフェースを介して前記識別されたAPIと通信することにより、1つ以上の更新されたデータ値を決定するステップと、
前記更新された1つ以上のデータ値に基づいて前記表示装置上に提示される前記グラフィカルユーザインターフェースを更新するステップと、
を含む、1つ以上の非一時的コンピュータ読取可能媒体。
[付記40]
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記通信インターフェースを介してリモートサーバから受信され、前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記GUIが前記表示装置上に最初提示された後に前記データ値の1つ以上が変化したことを示す、付記39に記載の1つ以上の非一時的コンピュータ読取可能媒体。
[付記41]
表示装置上に提示されているグラフィカルユーザインターフェース(GUI)内の指定されたワイヤウェブコンポーネントを更新する要求を受信するステップであり、前記指定されたワイヤウェブコンポーネントは1つ以上のデータ値を含む、ステップと、
プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフにアクセスすることにより前記1つ以上のデータ値を更新するための1つ以上のアプリケーションプロシージャインターフェース(API)を識別するステップであり、前記データ値の各々は、前記ワイヤウェブコンポーネントグラフ内に表されたそれぞれのデータフィールドに対応し、各データフィールドは、前記ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる、ステップと、
ネットワークを通じて、及び通信インターフェースを介して前記識別されたAPIと通信することにより、1つ以上の更新されたデータ値を決定するステップと、
前記更新された1つ以上のデータ値に基づいて前記表示装置上に提示される前記グラフィカルユーザインターフェースを更新するステップと、
を含む方法。
[付記42]
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記通信インターフェースを介してリモートサーバから受信される、付記41に記載の方法。
[付記43]
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記GUIが前記表示装置上に最初提示された後に前記データ値の1つ以上が変化したことを示す、付記42に記載の方法。
[付記44]
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、トリガイベントに基づいて前記プロセッサにより生成される、付記41乃至43のうちいずれか1項に記載の方法。
[付記45]
前記トリガイベントは、指定された期間の経過を含む、付記44に記載の方法。
[付記46]
前記トリガイベントは、前記GUIを介して受け取ったユーザ入力に基づいて作成される指定されたユーザ入力イベントを検出することを含む、付記44又は45に記載の方法。
[付記47]
前記トリガイベントは、前記ワイヤウェブコンポーネントを含まない前記GUIの指定された部分における変更を検出することを含む、付記44乃至46のうちいずれか1項に記載の方法。
[付記48]
前記グラフィカルユーザインターフェースを更新することは、前記更新されたデータ値のうちの指定された1つにデータ変換プロシージャを適用して、前記指定されたデータ値の更新されたコンポーネントレベルのビューを生成することを含む、付記41乃至47のうちいずれか1項に記載の方法。
[付記49]
前記指定されたデータ値の前記更新されたコンポーネントレベルのビューが、前記指定されたデータ値の前のコンポーネントレベルのビューと異なると決定されたとき、前記グラフィカルユーザインターフェースに関連づけられたドキュメントオブジェクトモデル(DOM)ツリーが更新される、付記48に記載の方法。
[付記50]
前記ノードの第1のサブセットの各々は、複数のワイヤウェブコンポーネントのそれぞれ1つに対応し、前記ノードの第2のサブセットの各々は、前記データフィールドのそれぞれの1つに対応し、前記ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応する、付記41乃至49のうちいずれか1項に記載の方法。
[付記51]
前記指定されたワイヤウェブコンポーネントは、計算プログラミング言語コードにより実施されるワイヤウェブコンポーネント定義に関連づけられ、前記ワイヤウェブコンポーネント定義は、ハイパーテキストマークアップ言語(HTML)により実施されるテンプレートを含む、付記41乃至50のうちいずれか1項に記載の方法。
[付記52]
前記ワイヤウェブコンポーネントグラフは、複数のワイヤウェブコンポーネントの各々についてそれぞれのワイヤウェブコンポーネント定義をパースすることにより部分的に構築される、付記51に記載の方法。
[付記53]
表示装置上に提示されているグラフィカルユーザインターフェース(GUI)内の指定されたワイヤウェブコンポーネントを更新する要求を受信するステップであり、前記指定されたワイヤウェブコンポーネントは1つ以上のデータ値を含む、ステップと、
プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフにアクセスすることにより前記1つ以上のデータ値を更新するための1つ以上のアプリケーションプロシージャインターフェース(API)を識別するステップであり、前記データ値の各々は、前記ワイヤウェブコンポーネントグラフ内に表されたそれぞれのデータフィールドに対応し、各データフィールドは、前記ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる、ステップと、
ネットワークを通じて、及び通信インターフェースを介して前記識別されたAPIと通信することにより、1つ以上の更新されたデータ値を決定するステップと、
前記更新された1つ以上のデータ値に基づいて前記表示装置上に提示される前記グラフィカルユーザインターフェースを更新するステップと、
を含む方法を実行するように構成されたコンピューティングデバイス。
[付記54]
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記通信インターフェースを介してリモートサーバから受信され、前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記GUIが前記表示装置上に最初提示された後に前記データ値の1つ以上が変化したことを示す、付記53に記載のコンピューティングデバイス。
[付記55]
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、トリガイベントに基づいて前記プロセッサにより生成される、付記53又は54に記載のコンピューティングデバイス。
[付記56]
前記トリガイベントは、指定された期間の経過を含む、付記55に記載のコンピューティングデバイス。
[付記57]
前記トリガイベントは、前記GUIを介して受け取ったユーザ入力に基づいて作成される指定されたユーザ入力イベントを検出することを含む、付記55又は56に記載のコンピューティングデバイス。
[付記58]
前記トリガイベントは、前記ワイヤウェブコンポーネントを含まない前記GUIの指定された部分における変更を検出することを含む、付記55乃至57のうちいずれか1項に記載のコンピューティングデバイス。
[付記59]
方法を実行する命令を記憶させた1つ以上の非一時的コンピュータ読取可能媒体であって、前記方法は、
表示装置上に提示されているグラフィカルユーザインターフェース(GUI)内の指定されたワイヤウェブコンポーネントを更新する要求を受信するステップであり、前記指定されたワイヤウェブコンポーネントは1つ以上のデータ値を含む、ステップと、
プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフにアクセスすることにより前記1つ以上のデータ値を更新するための1つ以上のアプリケーションプロシージャインターフェース(API)を識別するステップであり、前記データ値の各々は、前記ワイヤウェブコンポーネントグラフ内に表されたそれぞれのデータフィールドに対応し、各データフィールドは、前記ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる、ステップと、
ネットワークを通じて、及び通信インターフェースを介して前記識別されたAPIと通信することにより、1つ以上の更新されたデータ値を決定するステップと、
前記更新された1つ以上のデータ値に基づいて前記表示装置上に提示される前記グラフィカルユーザインターフェースを更新するステップと、
を含む、1つ以上の非一時的コンピュータ読取可能媒体。
[付記60]
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記通信インターフェースを介してリモートサーバから受信され、前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記GUIが前記表示装置上に最初提示された後に前記データ値の1つ以上が変化したことを示す、付記59に記載の1つ以上の非一時的コンピュータ読取可能媒体。
[付記61]
表示装置上に提示されているグラフィカルユーザインターフェース(GUI)から指定されたワイヤウェブコンポーネントを除去する要求を受信するステップであり、前記指定されたワイヤウェブコンポーネントは1つ以上のデータフィールドを含み、各データフィールドはそれぞれのデータ値に関連づけられる、ステップと、
プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフから前記指定されたワイヤウェブコンポーネントを表す指定されたノードを除去するステップであり、前記データフィールドの各々は、前記ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる、ステップと、
メモリに記憶されたドキュメントオブジェクトモデル(DOM)ツリーを更新して前記指定されたワイヤウェブコンポーネントを除去するステップと、
前記更新されたDOMツリーに基づいて前記表示装置に提示される前記GUIを更新するステップと、
を含む方法。
[付記62]
前記指定されたノードを除去することは、トリガ条件が満たされると決定されたときの、前記ワイヤウェブコンポーネントグラフからの前記指定されたノードの除去のために、前記指定されたノードをキューイングすることを含む、付記61に記載の方法。
[付記63]
前記トリガ条件は、指定された期間の経過を含む、付記62に記載の方法。
[付記64]
前記トリガ条件は、計算リソースの閾値レベルを超えたという決定を含む、付記62又は63に記載の方法。
[付記65]
前記指定されたノードを除去することは、1つ以上の子ノードを除去することを含み、前記1つ以上の子ノードの各々は、前記DOMツリー内の前記指定されたワイヤウェブコンポーネント内に位置するそれぞれのDOMオブジェクトに関連づけられる、付記61乃至64のうちいずれか1項に記載の方法。
[付記66]
前記1つ以上の子ノードは複数の子ノードを含み、前記1つ以上の子ノードは再帰的に除去される、付記65に記載の方法。
[付記67]
前記指定されたワイヤウェブコンポーネントを除去する前記要求は、トリガイベントに基づいて前記プロセッサにより生成される、付記61乃至66のうちいずれか1項に記載の方法。
[付記68]
前記GUIは、前記表示装置上で見えるアクティブ部分と、前記表示装置上で見えない非アクティブ部分を含み、前記トリガイベントは、前記指定されたワイヤウェブコンポーネントが前記非アクティブ部分に位置するという決定を含む、付記67に記載の方法。
[付記69]
前記トリガイベントは、前記GUIを介して受け取ったユーザ入力に基づいて作成される指定されたユーザ入力イベントを検出することを含む、付記67又は68に記載の方法。
[付記70]
前記ノードの第1のサブセットの各々は、複数のワイヤウェブコンポーネントのそれぞれ1つに対応し、前記ノードの第2のサブセットの各々は、前記データフィールドのそれぞれの1つに対応し、前記ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応する、付記61乃至69のうちいずれか1項に記載の方法。
[付記71]
前記指定されたワイヤウェブコンポーネントは、計算プログラミング言語コードにより実施されるワイヤウェブコンポーネント定義に関連づけられ、前記ワイヤウェブコンポーネント定義は、ハイパーテキストマークアップ言語(HTML)により実施されるテンプレートを含む、付記61乃至70のうちいずれか1項に記載の方法。
[付記72]
前記ワイヤウェブコンポーネントグラフは、複数のワイヤウェブコンポーネントの各々についてそれぞれのワイヤウェブコンポーネント定義をパースすることにより部分的に構築される、付記71に記載の方法。
[付記73]
表示装置上に提示されているグラフィカルユーザインターフェース(GUI)から指定されたワイヤウェブコンポーネントを除去する要求を受信するステップであり、前記指定されたワイヤウェブコンポーネントは1つ以上のデータフィールドを含み、各データフィールドはそれぞれのデータ値に関連づけられる、ステップと、
プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフから前記指定されたワイヤウェブコンポーネントを表す指定されたノードを除去するステップであり、前記データフィールドの各々は、前記ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる、ステップと、
メモリに記憶されたドキュメントオブジェクトモデル(DOM)ツリーを更新して前記指定されたワイヤウェブコンポーネントを除去するステップと、
前記更新されたDOMツリーに基づいて前記表示装置に提示される前記GUIを更新するステップと、
を含む方法を実行するように構成されたコンピューティングデバイス。
[付記74]
前記指定されたノードを除去することは、トリガ条件が満たされると決定されたときの、前記ワイヤウェブコンポーネントグラフからの前記指定されたノードの除去のために、前記指定されたノードをキューイングすることを含む、付記73に記載のコンピューティングデバイス。
[付記75]
前記トリガ条件は、指定された期間の経過を含む、付記74に記載のコンピューティングデバイス。
[付記76]
前記トリガ条件は、計算リソースの閾値レベルを超えたという決定を含む、付記74又は75に記載のコンピューティングデバイス。
[付記77]
前記指定されたノードを除去することは、1つ以上の子ノードを除去することを含み、前記1つ以上の子ノードの各々は、前記DOMツリー内の前記指定されたワイヤウェブコンポーネント内に位置するそれぞれのDOMオブジェクトに関連づけられ、前記1つ以上の子ノードは複数の子ノードを含み、前記1つ以上の子ノードは再帰的に除去される、付記73乃至76のうちいずれか1項に記載のコンピューティングデバイス。
[付記78]
前記指定されたワイヤウェブコンポーネントを除去する前記要求は、トリガイベントに基づいて前記プロセッサにより生成され、前記GUIは、前記表示装置上で見えるアクティブ部分と、前記表示装置上で見えない非アクティブ部分を含み、前記トリガイベントは、前記指定されたワイヤウェブコンポーネントが前記非アクティブ部分に位置するという決定を含む、付記73乃至77のうちいずれか1項に記載のコンピューティングデバイス。
[付記79]
方法を実行する命令を記憶させた1つ以上の非一時的コンピュータ読取可能媒体であって、前記方法は、
表示装置上に提示されているグラフィカルユーザインターフェース(GUI)から指定されたワイヤウェブコンポーネントを除去する要求を受信するステップであり、前記指定されたワイヤウェブコンポーネントは1つ以上のデータフィールドを含み、各データフィールドはそれぞれのデータ値に関連づけられる、ステップと、
プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフから前記指定されたワイヤウェブコンポーネントを表す指定されたノードを除去するステップであり、前記データフィールドの各々は、前記ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる、ステップと、
メモリに記憶されたドキュメントオブジェクトモデル(DOM)ツリーを更新して前記指定されたワイヤウェブコンポーネントを除去するステップと、
前記更新されたDOMツリーに基づいて前記表示装置に提示される前記GUIを更新するステップと、
を含む、1つ以上の非一時的コンピュータ読取可能媒体。
[付記80]
前記指定されたノードを除去することは、トリガ条件が満たされると決定されたときの、前記ワイヤウェブコンポーネントグラフからの前記指定されたノードの除去のために、前記指定されたノードをキューイングすることを含み、前記トリガ条件は、計算リソースの閾値レベルを超えたという決定を含む、付記79に記載の1つ以上の非一時的コンピュータ読取可能媒体。
[付記81]
通信インターフェースにより、クライアントマシンにおける提示のためのグラフィカルユーザインターフェース(GUI)を提供する要求を受信する手段と、
プロセッサにより、前記GUIに含まれると予測される複数のワイヤウェブコンポーネントを識別する手段であり、各ワイヤウェブコンポーネントは、それぞれのデータオブジェクトインスタンスを参照し、各データオブジェクトインスタンスは、それぞれのデータオブジェクトインスタンス識別子及びそれぞれの1つ以上のデータオブジェクトフィールドに関連づけられる、手段と、
前記プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフを構築する手段であり、前記ノードの第1のサブセットの各々は、前記複数のワイヤウェブコンポーネントのそれぞれ1つに対応し、前記ノードの第2のサブセットの各々は、前記データオブジェクトフィールドのそれぞれ1つに対応し、前記ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応し、各ワイヤウェブコンポーネントは、前記ワイヤウェブコンポーネントグラフ内で、前記ワイヤウェブコンポーネントに含まれる前記データオブジェクトフィールドのそれぞれ1つ以上にリンクされ、それぞれのデータフィールドに対応する各ノードは、前記ワイヤウェブコンポーネントグラフ内で、前記それぞれのデータフィールドに関連づけられたそれぞれのデータ値を取り出すことができるそれぞれのAPIに対応するそれぞれのノードにリンクされる、手段と、
前記ワイヤウェブコンポーネントグラフに基づいて前記それぞれのAPIから前記データ値の1つ以上を取り出す手段と、
前記通信インターフェースを介してGUIメッセージを前記クライアントマシンに送信する手段であり、前記GUIメッセージは、前記取り出されたデータ値と前記ワイヤウェブコンポーネントグラフを含む、手段と、
を含むシステム。
[付記82]
各ワイヤウェブコンポーネントは、前記クライアントマシンに、
前記GUIが表示装置に表示された後の前記GUIへの変更を検出し、前記変更は、前記取り出されたデータ値のうちの指定された1つに影響し、
前記APIの1つ以上と通信して前記指定されたデータ値を更新し、
前記更新されたデータ値に基づいて前記表示装置上の前記GUIを更新する
ことをさせるそれぞれの手段に関連づけられる、付記81に記載のシステム。
[付記83]
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記GUIが最初表示されるときアクティブである可能性が高い第1のGUI部分と、前記GUIが最初表示されるときアクティブである可能性が低い第2のGUI部分とを識別する手段を伴う、付記81又は82に記載のシステム。
[付記84]
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記GUIを提供する前記要求に予め訓練された機械学習予測モデルを適用することを含む、付記81乃至83のうちいずれか1項に記載のシステム。
[付記85]
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記クライアントマシンから受信した1つ以上の前の要求を評価することを含む、付記81乃至84のうちいずれか1項に記載のシステム。
[付記86]
前記GUIに含まれると予測されるワイヤウェブコンポーネントを識別することは、前記APIのうちの指定された1つに対する入力パラメータを予測することを含む、付記81乃至85のうちいずれか1項に記載のシステム。
[付記87]
前記要求は、インターネットを介してオンデマンドコンピューティングサービスを提供するように構成されたクラウドコンピューティング環境内のサーバで受信される、付記81乃至86のうちいずれか1項に記載のシステム。
[付記88]
前記APIのうちの第1のAPIは、前記クラウドコンピューティング環境を介してアクセス可能である、付記87に記載のシステム。
[付記89]
前記APIのうちの第2のAPIは、前記クラウドコンピューティング環境の外部である、付記88に記載のシステム。
[付記90]
前記ワイヤウェブコンポーネントの各々は、計算プログラミング言語コードにより実施されるそれぞれのワイヤウェブコンポーネント定義に関連づけられ、前記ワイヤウェブコンポーネント定義の各々は、ハイパーテキストマークアップ言語(HTML)により実施されるそれぞれのテンプレートを含む、付記81乃至89のうちいずれか1項に記載のシステム。
[付記91]
前記ワイヤウェブコンポーネントグラフを構築することは、前記複数のワイヤウェブコンポーネントの各々について前記それぞれのワイヤウェブコンポーネント定義をパースすることを含む、付記90に記載のシステム。
[付記92]
表示装置上に提示されているグラフィカルユーザインターフェース(GUI)内の指定されたワイヤウェブコンポーネントを更新する要求を受信する手段であり、前記指定されたワイヤウェブコンポーネントは1つ以上のデータ値を含む、手段と、
プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフにアクセスすることにより前記1つ以上のデータ値を更新するための1つ以上のアプリケーションプロシージャインターフェース(API)を識別する手段であり、前記データ値の各々は、前記ワイヤウェブコンポーネントグラフ内に表されたそれぞれのデータフィールドに対応し、各データフィールドは、前記ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる、手段と、
ネットワークを通じて、及び通信インターフェースを介して前記識別されたAPIと通信することにより、1つ以上の更新されたデータ値を決定する手段と、
前記更新された1つ以上のデータ値に基づいて前記表示装置上に提示される前記グラフィカルユーザインターフェースを更新する手段と、
を含むシステム。
[付記93]
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記通信インターフェースを介してリモートサーバから受信される、付記92に記載のシステム。
[付記94]
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記GUIが前記表示装置上に最初提示された後に前記データ値の1つ以上が変化したことを示す、付記93に記載のシステム。
[付記95]
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、トリガイベントに基づいて前記プロセッサにより生成される、付記92乃至94のうちいずれか1項に記載のシステム。
[付記96]
前記トリガイベントは、指定された期間の経過を含む、付記95に記載のシステム。
[付記97]
前記トリガイベントは、前記GUIを介して受け取ったユーザ入力に基づいて作成される指定されたユーザ入力イベントを検出することを含む、付記95又は96に記載のシステム。
[付記98]
前記トリガイベントは、前記ワイヤウェブコンポーネントを含まない前記GUIの指定された部分における変更を検出することを含む、付記95乃至97のうちいずれか1項に記載のシステム。
[付記99]
前記グラフィカルユーザインターフェースを更新することは、前記更新されたデータ値のうちの指定された1つにデータ変換プロシージャを適用して、前記指定されたデータ値の更新されたコンポーネントレベルのビューを生成することを含む、付記95乃至98のうちいずれか1項に記載のシステム。
[付記100]
前記指定されたデータ値の前記更新されたコンポーネントレベルのビューが、前記指定されたデータ値の前のコンポーネントレベルのビューと異なると決定されたとき、前記グラフィカルユーザインターフェースに関連づけられたドキュメントオブジェクトモデル(DOM)ツリーが更新される、付記99に記載のシステム。
[付記101]
前記ノードの第1のサブセットの各々は、複数のワイヤウェブコンポーネントのそれぞれ1つに対応し、前記ノードの第2のサブセットの各々は、前記データフィールドのそれぞれの1つに対応し、前記ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応する、付記92乃至100のうちいずれか1項に記載のシステム。
[付記102]
前記指定されたワイヤウェブコンポーネントは、計算プログラミング言語コードにより実施されるワイヤウェブコンポーネント定義に関連づけられ、前記ワイヤウェブコンポーネント定義は、ハイパーテキストマークアップ言語(HTML)により実施されるテンプレートを含む、付記92乃至101のうちいずれか1項に記載のシステム。
[付記103]
前記ワイヤウェブコンポーネントグラフは、複数のワイヤウェブコンポーネントの各々についてそれぞれのワイヤウェブコンポーネント定義をパースすることにより部分的に構築される、付記102に記載のシステム。
[付記104]
表示装置上に提示されているグラフィカルユーザインターフェース(GUI)内の指定されたワイヤウェブコンポーネントを更新する要求を受信する手段であり、前記指定されたワイヤウェブコンポーネントは1つ以上のデータ値を含む、手段と、
プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフにアクセスすることにより前記1つ以上のデータ値を更新するための1つ以上のアプリケーションプロシージャインターフェース(API)を識別する手段であり、前記データ値の各々は、前記ワイヤウェブコンポーネントグラフ内に表されたそれぞれのデータフィールドに対応し、各データフィールドは、前記ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる、手段と、
ネットワークを通じて、及び通信インターフェースを介して前記識別されたAPIと通信することにより、1つ以上の更新されたデータ値を決定する手段と、
前記更新された1つ以上のデータ値に基づいて前記表示装置上に提示される前記グラフィカルユーザインターフェースを更新する手段と、
を含むシステム。
[付記105]
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記通信インターフェースを介してリモートサーバから受信される、付記104に記載のシステム。
[付記106]
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、前記GUIが前記表示装置上に最初提示された後に前記データ値の1つ以上が変化したことを示す、付記105に記載のシステム。
[付記107]
前記指定されたワイヤウェブコンポーネントを更新する前記要求は、トリガイベントに基づいて前記プロセッサにより生成される、付記104乃至106のうちいずれか1項に記載のシステム。
[付記108]
前記トリガイベントは、指定された期間の経過を含む、付記107に記載のシステム。
[付記109]
前記トリガイベントは、前記GUIを介して受け取ったユーザ入力に基づいて作成される指定されたユーザ入力イベントを検出することを含む、付記107又は108に記載のシステム。
[付記110]
前記トリガイベントは、前記ワイヤウェブコンポーネントを含まない前記GUIの指定された部分における変更を検出することを含む、付記107乃至109のうちいずれか1項に記載のシステム。
[付記111]
前記グラフィカルユーザインターフェースを更新することは、前記更新されたデータ値のうちの指定された1つにデータ変換プロシージャを適用して、前記指定されたデータ値の更新されたコンポーネントレベルのビューを生成することを含む、付記104乃至110のうちいずれか1項に記載のシステム。
[付記112]
前記指定されたデータ値の前記更新されたコンポーネントレベルのビューが、前記指定されたデータ値の前のコンポーネントレベルのビューと異なると決定されたとき、前記グラフィカルユーザインターフェースに関連づけられたドキュメントオブジェクトモデル(DOM)ツリーが更新される、付記111に記載のシステム。
[付記113]
前記ノードの第1のサブセットの各々は、複数のワイヤウェブコンポーネントのそれぞれ1つに対応し、前記ノードの第2のサブセットの各々は、前記データフィールドのそれぞれの1つに対応し、前記ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応する、付記104乃至112のうちいずれか1項に記載のシステム。
[付記114]
前記指定されたワイヤウェブコンポーネントは、計算プログラミング言語コードにより実施されるワイヤウェブコンポーネント定義に関連づけられ、前記ワイヤウェブコンポーネント定義は、ハイパーテキストマークアップ言語(HTML)により実施されるテンプレートを含む、付記104乃至113のうちいずれか1項に記載のシステム。
[付記115]
前記ワイヤウェブコンポーネントグラフは、複数のワイヤウェブコンポーネントの各々についてそれぞれのワイヤウェブコンポーネント定義をパースすることにより部分的に構築される、付記114に記載のシステム。
[付記116]
表示装置上に提示されているグラフィカルユーザインターフェース(GUI)から指定されたワイヤウェブコンポーネントを除去する要求を受信する手段であり、前記指定されたワイヤウェブコンポーネントは1つ以上のデータフィールドを含み、各データフィールドはそれぞれのデータ値に関連づけられる、手段と、
プロセッサにより、複数のノードを含むワイヤウェブコンポーネントグラフから前記指定されたワイヤウェブコンポーネントを表す指定されたノードを除去する手段であり、前記データフィールドの各々は、前記ワイヤウェブコンポーネントグラフ内のそれぞれのAPIに関連づけられる、手段と、
メモリに記憶されたドキュメントオブジェクトモデル(DOM)ツリーを更新して前記指定されたワイヤウェブコンポーネントを除去する手段と、
前記更新されたDOMツリーに基づいて前記表示装置に提示される前記GUIを更新する手段と、
を含むシステム。
[付記117]
前記指定されたノードを除去することは、トリガ条件が満たされると決定されたときの、前記ワイヤウェブコンポーネントグラフからの前記指定されたノードの除去のために、前記指定されたノードをキューイングすることを含む、付記116に記載のシステム。
[付記118]
前記トリガ条件は、指定された期間の経過を含む、付記117に記載のシステム。
[付記119]
前記トリガ条件は、計算リソースの閾値レベルを超えたという決定を含む、付記117又は118に記載のシステム。
[付記120]
前記指定されたノードを除去することは、1つ以上の子ノードを除去することを含み、前記1つ以上の子ノードの各々は、前記DOMツリー内の前記指定されたワイヤウェブコンポーネント内に位置するそれぞれのDOMオブジェクトに関連づけられる、付記116乃至119のうちいずれか1項に記載のシステム。
[付記121]
前記1つ以上の子ノードは複数の子ノードを含み、前記1つ以上の子ノードは再帰的に除去される、付記120に記載のシステム。
[付記122]
前記指定されたワイヤウェブコンポーネントを除去する前記要求は、トリガイベントに基づいて前記プロセッサにより生成される、付記116乃至121のうちいずれか1項に記載のシステム。
[付記123]
前記GUIは、前記表示装置上で見えるアクティブ部分と、前記表示装置上で見えない非アクティブ部分を含み、前記トリガイベントは、前記指定されたワイヤウェブコンポーネントが前記非アクティブ部分に位置するという決定を含む、付記122に記載のシステム。
[付記124]
前記トリガイベントは、前記GUIを介して受け取ったユーザ入力に基づいて作成される指定されたユーザ入力イベントを検出することを含む、付記122又は123に記載のシステム。
[付記125]
前記ノードの第1のサブセットの各々は、複数のワイヤウェブコンポーネントのそれぞれ1つに対応し、前記ノードの第2のサブセットの各々は、前記データフィールドのそれぞれの1つに対応し、前記ノードの第3のサブセットの各々は、それぞれのアプリケーションプロシージャインターフェース(API)に対応する、付記116乃至124のうちいずれか1項に記載のシステム。
[付記126]
前記指定されたワイヤウェブコンポーネントは、計算プログラミング言語コードにより実施されるワイヤウェブコンポーネント定義に関連づけられ、前記ワイヤウェブコンポーネント定義は、ハイパーテキストマークアップ言語(HTML)により実施されるテンプレートを含む、付記116乃至125のうちいずれか1項に記載のシステム。
[付記127]
前記ワイヤウェブコンポーネントグラフは、複数のワイヤウェブコンポーネントの各々についてそれぞれのワイヤウェブコンポーネント定義をパースすることにより部分的に構築される、付記126に記載のシステム。
【国際調査報告】