特許第6386089号(P6386089)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特許6386089最適化されたブラウザレンダリングプロセス
<>
  • 特許6386089-最適化されたブラウザレンダリングプロセス 図000003
  • 特許6386089-最適化されたブラウザレンダリングプロセス 図000004
  • 特許6386089-最適化されたブラウザレンダリングプロセス 図000005
  • 特許6386089-最適化されたブラウザレンダリングプロセス 図000006
  • 特許6386089-最適化されたブラウザレンダリングプロセス 図000007
  • 特許6386089-最適化されたブラウザレンダリングプロセス 図000008
  • 特許6386089-最適化されたブラウザレンダリングプロセス 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6386089
(24)【登録日】2018年8月17日
(45)【発行日】2018年9月5日
(54)【発明の名称】最適化されたブラウザレンダリングプロセス
(51)【国際特許分類】
   G06F 13/00 20060101AFI20180827BHJP
【FI】
   G06F13/00 550A
【請求項の数】23
【全頁数】24
(21)【出願番号】特願2016-567202(P2016-567202)
(86)(22)【出願日】2014年6月26日
(65)【公表番号】特表2017-519280(P2017-519280A)
(43)【公表日】2017年7月13日
(86)【国際出願番号】CN2014080820
(87)【国際公開番号】WO2015196410
(87)【国際公開日】20151230
【審査請求日】2016年11月29日
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ビピン・メン
(72)【発明者】
【氏名】ハオ・ファン
(72)【発明者】
【氏名】フイ・シュ
【審査官】 小林 義晴
(56)【参考文献】
【文献】 国際公開第2006/043664(WO,A1)
【文献】 米国特許第08689117(US,B1)
【文献】 特開2011−065488(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/00
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサによって実行されたとき、システムに
ウェブページの第1のレンダリング結果生成することであって、前記第1のレンダリング結果はスクリプトオンでレンダリングされる、生成することと、
前記ウェブページの第2のレンダリング結果生成することであって、前記第2のレンダリング結果はスクリプトオフでレンダリングされる、生成することと、
前記第1のレンダリング結果の主要なコンポーネントのセットと前記第2のレンダリング結果の主要なコンポーネントのセットとの間の類似スコアを決定することと、
前記類似スコアが類似閾値を満たすと決定することに応答して、前記ウェブページのためのURLコンテンツニュートラルURLデータストアに保存すること
ブラウザから要求を受信することであって、前記要求はURLを提供する、受信することと、
前記提供されたURLを前記コンテンツニュートラルURLデータストア内のURLに一致させることに応答して、前記ブラウザが前記URLをスクリプトオフでレンダリングできるように、前記提供されたURLがコンテンツニュートラルなURLであることを示す応答を前記ブラウザへ提供することと
行わせる命令を保存するメモリと
ンピュータシステム。
【請求項2】
前記メモリは、前記少なくとも1つのプロセッサによって実行されたとき、前記システムに
前記第2のレンダリング結果から欠けている、前記第1のレンダリング結果におけるアウトリンクを識別することと、
前記アウトリンクを識別することに応答して、前記ウェブページのための前記URLをコンテンツニュートラルURLデータストアに保存することと
を行わせる命令をさらに保存する、請求項1に記載のコンピュータシステム。
【請求項3】
前記メモリは、前記少なくとも1つのプロセッサによって実行されたとき、前記システムに
前記第2のレンダリング結果から欠けている、前記第1のレンダリング結果におけるトークンを識別することと、
前記トークンを識別することに応答して、前記ウェブページのための前記URLをコンテンツニュートラルなURLとして識別することと
行わせる命令をさらに保存する、請求項1に記載のコンピュータシステム。
【請求項4】
ストップワード数字が、前記トークンを識別する前に前記第1のレンダリング結果および前記第2のレンダリング結果から削除される、請求項3に記載のコンピュータシステム。
【請求項5】
前記メモリは、前記少なくとも1つのプロセッサによって実行されたとき、前記システムに
前記第2のレンダリング結果から欠けている、前記第1のレンダリング結果におけるトークンの量を識別することと、
前記量が閾値を満たしていると決定することと、
前記量が前記閾値を満たしていると決定することに応答して、前記ウェブページのための前記URLをコンテンツニュートラルなURLとして決定することと
行わせる命令をさらに保存する、請求項1に記載のコンピュータシステム。
【請求項6】
前記主要なコンポーネントのセットは、スクリーンスペースのパーセンテージを構成する前記主要なコンポーネントを含む、請求項1に記載のコンピュータシステム。
【請求項7】
前記命令が、前記少なくとも1つのプロセッサによって実行されるとき、前記システムに、
ェッチレコード内の複数のウェブページそれぞれのために、
前記ウェブページの第1のレンダリング結果を生成することであって、前記第1のレンダリング結果がスクリプトオンでレンダリングされている生成することと、
前記ウェブページの第2のレンダリング結果を生成することであって、前記第2のレンダリング結果がスクリプトオフでレンダリングされている生成することと、
前記主要な部分の比較に基づいて、前記ウェブページがコンテンツニュートラルであるか否かを決定するために、前記第1のレンダリング結果を前記第2のレンダリング結果と比較することと
前記ウェブページがコンテンツニュートラルであるとき、コンテンツニュートラルURLのリストに前記ウェブページのためのURLを保存することと
前記ウェブページがコンテンツニュートラルでないとき、非コンテンツニュートラルURLのリストに前記ウェブページのためのURLを保存することと
を行わせ、かつ
コンテンツニュートラルURLの前記リストを使用して、少なくとも1つのパターンを決定することと
コンテンツニュートラルURLデータストアに前記パターンを保存することと
を行わせる命令をさらに含む、請求項1に記載のコンピュータシステム。
【請求項8】
前記命令が、前記少なくとも1つのプロセッサによって実行されるとき、前記コンテンツニュートラルURLデータストア内に前記パターンを記憶する前に、前記システムに、
非コンテンツニュートラルURLの前記リスト内のURLが前記パターンと一致するか否かを決定することと
非コンテンツニュートラルURLの前記リスト内のどのURLも前記パターンに一致しないと決定したことに応答して、前記コンテンツニュートラルURLデータストア内前記パターンを保存することと
を行わせる命令をさらに含む、請求項7に記載のコンピュータシステム。
【請求項9】
前記命令が、前記少なくとも1つのプロセッサによって実行されるとき、前記コンテンツニュートラルURLデータストア内に前記パターンを記憶する前に、前記システムに、
前記パターンに一致するURLの母集団から、非コンテンツニュートラルURLであるURLのパーセンテージを決定することと
前記パーセンテージが1パーセント未満のとき、前記コンテンツニュートラルURLデータストアに前記パターンを保存することと
を行わせる命令をさらに含む、請求項7に記載のコンピュータシステム。
【請求項10】
少なくとも1つのプロセッサを使用して、ウェブページの第1のレンダリング結果を生成するステップであって、前記第1のレンダリング結果がスクリプトオンでレンダリングされる、ステップと、
前記少なくとも1つのプロセッサを使用して、前記ウェブページの第2のレンダリング結果を生成するステップであって、前記第2のレンダリング結果がスクリプトオフでレンダリングされる、ステップと、
記第1のレンダリング結果の主要なコンポーネントのセットを前記第2のレンダリング結果の主要なコンポーネントのセットとの類似スコアを計算するステップと、
前記類似スコアが類似閾値を満たすとき、前記ウェブページがコンテンツニュートラルであると決定するステップと、
前記ウェブページがコンテンツニュートラルであるとき、コンテンツニュートラルURLのリストに前記ウェブページのためのユニフォームリソースロケータ(URL)を保存するステップと
ブラウザから要求を受信するステップであって、前記要求はURLを提供する、ステップと、
前記提供されたURLをコンテンツニュートラルなURLの前記リストに一致させることに応答して、前記ブラウザが前記提供されたURLをスクリプトオフでレンダリングできるように、前記提供されたURLがコンテンツニュートラルなURLであることを示す応答を前記ブラウザへ提供するステップと
を含む、方法。
【請求項11】
前記類似スコアは、前記主要なコンポーネントのセットのバウンディングボックスにおける重複の量を表す、請求項10に記載の方法。
【請求項12】
フェッチレコード内の複数のウェブページそれぞれのために、
前記ウェブページの第1のレンダリング結果を生成するステップであって、前記第1のレンダリング結果がスクリプトオンでレンダリングされる、ステップと、
前記ウェブページの第2のレンダリング結果を生成するステップであって、前記第2のレンダリング結果がスクリプトオフでレンダリングされる、ステップと、
前記主要な部分の比較に基づいて、前記ウェブページがコンテンツニュートラルであるか否かを決定するために、前記第1のレンダリング結果を前記第2のレンダリング結果と比較するステップと、
前記ウェブページがコンテンツニュートラルであるとき、コンテンツニュートラルURLのリストに前記ウェブページのためのURLを保存するステップと、
前記ウェブページがコンテンツニュートラルでないとき、非コンテンツニュートラルURLのリストに前記ウェブページのためのURLを保存するステップと
をさらに含み、
コンテンツニュートラルURLの前記リストから、少なくとも1つのパターンを決定するステップと、
コンテンツニュートラルURLデータストアに前記パターンを保存するステップと
をさらに含む、請求項10に記載の方法。
【請求項13】
前記コンテンツニュートラルURLデータストア内に前記パターンを記憶する前に、
非コンテンツニュートラルURLの前記リストからのURLが前記パターンに一致するか否かを決定するステップと、
非コンテンツニュートラルURLの前記リストからのどのURLも前記パターンに一致しないと決定したことに応答して、前記コンテンツニュートラルURLデータストア内に前記パターンを保存するステップと
をさらに含む、請求項12に記載の方法。
【請求項14】
前記コンテンツニュートラルURLデータストア内に前記パターンを記憶する前に、
前記パターンに一致するコンテンツニュートラルURLの前記リスト内のURLの第1の量を決定するステップと、
前記パターンに一致する非コンテンツニュートラルURLの前記リスト内のURLの第2の量を決定するステップと、
前記第2の量が前記第1の量と前記第2の量の合計の1パーセント未満であるとき、前記コンテンツニュートラルURLデータストアに前記パターンを保存するステップと
をさらに含む、請求項12に記載の方法。
【請求項15】
前記第2のレンダリング結果から欠けている、前記第1のレンダリング結果におけるアウトリンクを識別するステップと、
前記識別するステップに応答して、前記ウェブページがコンテンツニュートラルではないと決定するステップと
をさらに含む、請求項10に記載の方法。
【請求項16】
前記第2のレンダリング結果から欠けている、前記第1のレンダリング結果におけるトークンの量を識別するステップと、
前記量がトークン閾値を満たしていると決定するステップと、
前記量が前記トークン閾値を満たしていると決定することに応答して、前記ウェブページがコンテンツニュートラルではないと決定するステップと
をさらに含む、請求項10に記載の方法。
【請求項17】
前記トークンの量を識別するステップの前に、ストップワードを削除するステップをさらに含む、請求項16に記載の方法。
【請求項18】
前記トークン閾値は1つのトークンの量である、請求項16に記載の方法。
【請求項19】
前記主要なコンポーネントのセットは、閾値サイズを満たすボックスサイズを有するコンポーネントを含む、請求項10に記載の方法。
【請求項20】
URLによって識別されたウェブページをレンダリングする要求を受信するステップと、
レンダリングの前に、前記URLが、コンテンツニュートラルなURLを識別するデータストア内のコンテンツニュートラルURLであるとして識別されると決定するステップであって、URLは、スクリプトオフのページレイアウトの類似性とスクリプトオンのページレイアウトの類似性とに基づいてコンテンツニュートラルである、ステップと、
前記URLがコンテンツニュートラルURLであると決定するステップに応答して、スクリプトに関してのブラウザ設定に関わらず、スクリプトオフで前記ウェブページをレンダリングするステップと
を含む、方法。
【請求項21】
前記URLがコンテンツニュートラルなURLであるとして識別されると決定するステップが、前記URLがコンテンツニュートラルURLを識別する前記データストア内の所定のパターンと一致すると決定するステップを含む、請求項20に記載の方法。
【請求項22】
前記URLがコンテンツニュートラルURLであると決定するステップが、
前記データストア内に保存されたコンテンツニュートラルなURLのリストに含まれるブラウザのタイプの指示に基づいて、前記URLが前記ウェブページをレンダリングするための前記要求を処理するブラウザのタイプにとってコンテンツニュートラルであると決定するステップ
を含む、請求項20に記載の方法。
【請求項23】
前記URLがコンテンツニュートラルURLであると決定するステップが、
サービスに対して要求を送信するステップであって、前記サービスは前記URLがコンテンツニュートラルURLであるか否かを決定する、ステップと、
前記URLがコンテンツニュートラルURLであることを示す応答を前記サービスから受信するステップと
を含む、請求項20に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
多くのウェブページは、動的に作成され、ウェブブラウザのユーザによって見られる最後のページは、ブラウザレンダリングプロセスによって少なくとも部分的に生成されることを意味する。
【背景技術】
【0002】
スクリプト、イメージ、およびスタイルシートのような埋め込みオブジェクトは、しばしばウェブページに組み込まれ、コンテンツおよびレンダリングされたウェブページの外観に影響を与える。例えば、JavaScript(登録商標)コードのようなスクリプトオブジェクトを実行すると、ウェブページをユーザに表示し、ページのための表示されたコンテンツを変更する方法にしばしば影響する。しかし、スクリプトオブジェクトを実行することは集中的な処理であり、しばしば他の埋め込みオブジェクトのダウンロードをもたらし、ネットワーク帯域幅に対して負担となり、ウェブページのロードを遅くする可能性がある。スマートフォンやタブレットのようなモバイルコンピューティングデバイスにおいて、このような追加の活動は、電池残量の浪費の元になり得る。
【発明の概要】
【発明が解決しようとする課題】
【0003】
実施形態は、コンテンツニュートラルウェブページを識別する。言い換えると、スクリプトが作用しないウェブページは、任意の有効な方法においてレンダリングされたウェブページのコンテンツに影響を与えない。
【課題を解決するための手段】
【0004】
コンテンツニュートラルウェブページを識別するためのパターンが格納されてもよく、およびブラウザに提供されてもよい。ブラウザがウェブページをレンダリングする準備ができたとき、ウェブページがパターンの1つに適合するかどうかを確認してもよい。その場合、ブラウザはスクリプトをオフでウェブページをレンダリングしてもよい。これは、ユーザに表示されたコンテンツに影響を与えることなく、ブラウザがより効率的にウェブページをレンダリングすることを可能にする。いくつかの実施形態において、いくつかのウェブページが、別のブラウザの種類用ではないが、例えばスマートフォンでのモバイルブラウザのために、コンテンツニュートラルである可能性があるため、パターンはモバイル対フル(mobile vs. full)のようなブラウザの種類を含んでもよい。
【0005】
一態様において、システムは少なくとも1つのプロセッサと、少なくとも1つのプロセッサによって実行されたとき、システムに動作を実行させる命令を含むメモリと、を含む。動作は、ウェブページの第1のレンダリング結果を生成することと、ウェブページの第2のレンダリング結果を生成することと、を含み、第1のレンダリング結果はスクリプトがオンでレンダリングされ、第2のレンダリング結果はスクリプトがオフでレンダリングされる。動作は、第1のレンダリング結果と第2のレンダリング結果における差がコンテンツニュートラルであるか否かを決定すること、および差がコンテンツニュートラルであるとき、ウェブページのためのURLをコンテンツニュートラルURLとして識別することと、も含む。
【0006】
本明細書に記載される主題の1つまたは複数の実施形態は、1つまたは複数の以下の利点を実現するように実装されることができる。例えば、第1のレンダリング結果と第2のレンダリング結果における任意の差がコンテンツニュートラルであるか否かを決定することが、第2のレンダリング結果から欠けている、第1のレンダリング結果におけるアウトリンクを識別することと、アウトリンクを識別することに応答して、差がコンテンツニュートラルでないと決定することと、を含んでもよい。別の例として、第1のレンダリング結果と第2のレンダリング結果における任意の差がコンテンツニュートラルであるか否かを決定することが、第2のレンダリング結果から欠けている、第1のレンダリング結果におけるトークンを識別することと、トークンを識別することに応答して、差がコンテンツニュートラルでないと決定することと、を含むことができる。別の例として、第1のレンダリング結果と第2のレンダリング結果における任意の差がコンテンツニュートラルであるか否かを決定することが、第2のレンダリング結果から欠けている、第1のレンダリング結果におけるトークンの量を識別することと、量が閾値を満たしていると決定することと、量が閾値を満たしていると決定することに応答して、差がコンテンツニュートラルでないと決定することと、を含んでもよい。ストップワードは、トークンの差を決定する前に削除されてもよい。
【0007】
別の例として、第1のレンダリング結果と第2のレンダリング結果における任意の差がコンテンツニュートラルであるか否かを決定することが、第1のレンダリング結果の主要なコンポーネントと第2のレンダリング結果の主要なコンポーネントとの間の類似スコアを計算することと、類似スコアが類似閾値を満たすか否かを決定することと、類似スコアが類似閾値を満たすとき、差がコンテンツニュートラルであると決定することと、を含んでもよい。
【0008】
別の例として、動作は、フェッチレコード内の複数のウェブページそれぞれのために、ウェブページの第1のレンダリング結果を生成し、第1のレンダリング結果がスクリプトオンでレンダリングされており、ウェブページの第2のレンダリング結果を生成し、第2のレンダリング結果がスクリプトオフでレンダリングされており、およびウェブページがコンテンツニュートラルであるか否かを決定するために、第1のレンダリング結果を第2のレンダリング結果と比較することも、含んでもよい。ウェブページがコンテンツニュートラルであるとき、動作は、コンテンツニュートラルURLのリストにウェブページのためのURLを保存することと、ウェブページがコンテンツニュートラルでないとき、非コンテンツニュートラルURLのリストに前記ウェブページのためのURLを保存することと、を含んでもよい。動作は、コンテンツニュートラルURLのリストを使用して、少なくとも1つのパターンを決定すること、およびコンテンツニュートラルURLデータストアにパターンを保存することも含んでもよい。いくつかの実施形態において、動作は、パターンが非コンテンツニュートラルURLのリスト内のURLに適用するか否かを決定することと、パターンが非コンテンツニュートラルURLのリスト内のURLに適用できないとき、コンテンツニュートラルURLデータストア内のパターンを保存することと、を含んでもよい。いくつかの実施形態において、動作は、非コンテンツニュートラルURLであるパターンに一致するURLのパーセンテージを決定することと、パーセンテージが1パーセント未満のとき、コンテンツニュートラルURLデータストアにパターンを保存することと、を含んでもよい。
【0009】
別の態様において、コンピュータ実装方法は、少なくとも1つのプロセッサを使用して、ウェブページの第1のレンダリング結果を生成するステップであって、第1のレンダリング結果がスクリプトオンでレンダリングされている、生成するステップと、少なくとも1つのプロセッサを使用して、ウェブページの第2のレンダリング結果を生成するステップであって、第2のレンダリング結果がスクリプトオフでレンダリングされている、生成するステップと、を含む。方法は、ウェブページがコンテンツニュートラルであるか否かを決定するために、第1のレンダリング結果を第2のレンダリング結果と比較するステップと、ウェブページがコンテンツニュートラルであるとき、コンテンツニュートラルURLのリストにウェブページのためのユニフォームリソースロケータ(Uniform Resource Locator 、URL)を保存するステップと、を含んでもよい。
【0010】
本明細書に記載される主題の1つまたは複数の実施形態は、1つ又は複数の以下の利点を実現するように実装されることができる。例えば、方法は、フェッチレコード内の複数のウェブページそれぞれのために、ウェブページの第1のレンダリング結果をスクリプトオンで生成するステップと、ウェブページの第2のレンダリング結果をスクリプトオフで生成するステップと、およびウェブページがコンテンツニュートラルであるか否かを決定するために、第1のレンダリング結果を前記第2のレンダリング結果と比較するステップと、を含んでもよい。方法は、コンテンツニュートラルURLの前記リストから、少なくとも1つのパターンを決定するステップと、コンテンツニュートラルURLデータストアにパターンを保存するステップと、をさらに含んでもよい。いくつかの実施形態において、方法は、パターンに一致するコンテンツニュートラルURLのリスト内のURLの第1の量を決定するステップと、パターンに一致する非コンテンツニュートラルURLのリスト内のURLの第2の量を決定するステップと、第2の量が第1の量と第2の量の合計の1パーセント未満であるとき、コンテンツニュートラルURLデータストアにパターンを保存するステップと、をさらに含んでもよい。
【0011】
別の態様において、方法は、URLによって識別されたウェブページをレンダリングする要求を受信するステップと、レンダリングの前に、前記URLがコンテンツニュートラルURLであると決定するステップと、を含む。方法は、URLがコンテンツニュートラルURLであると決定するステップに応答して、スクリプトに関してのブラウザ設定に関わらず、スクリプトオフでウェブページをレンダリングするステップも含んでもよい。いくつかの実施形態において、URLがコンテンツニュートラルであると決定するステップが、URLがコンテンツニュートラルURLのデータストア内の所定のパターンと一致すると決定するステップを含む。いくつかの実施形態において、URLがコンテンツニュートラルURLであると決定するステップが、URLがウェブページをレンダリングするための要求を処理するブラウザのタイプにとってコンテンツニュートラルであると決定するステップを含む。いくつかの実施形態において、URLがコンテンツニュートラルURLであると決定するステップが、サービスに対して要求を送信するステップであって、サービスはURLがコンテンツニュートラルURLであるか否かを決定する、送信するステップと、URLがコンテンツニュートラルURLであると示す応答をサービスから受信するステップと、を含む。
【0012】
別の態様において、非一時的コンピュータ可読媒体は、コンピュータシステムに1つ又は複数の上述した方法を実行させる、回路基板に形成された少なくとも1つのプロセッサによって実行可能な命令を含んでもよい。
【0013】
本明細書に記載される主題の1つまたは複数の実施形態は、1つまたは複数の以下の利点を実現するように実装されることができる。一例として、スクリプトオフでウェブページをレンダリングすることは、CPUとネットワーク帯域幅とモバイルデバイスのバッテリー消費を節約する。しかし、多くのウェブページはウェブページのコンテンツをロードするためにスクリプトを使用するため、いつもスクリプトオフのブラウザ設定を使用することは、視聴者にコンテンツを失うことをもたらす。コンテンツニュートラルパターンのデータストアは、スクリプトがコンテンツに影響を与えないとき、ブラウザが選択的にスクリプトオフにすること可能にする。コンテンツニュートラルURLのためのスクリプトオフは、ロード時間をより速くし、CPU使用率を減少し、(システムはスクリプトエンジンを開始する必要がないため)RAM使用率を減少し、および消費電力を減少することをもたらす。
【図面の簡単な説明】
【0014】
図1】開示された主題に従ったシステム例を図示する。
図2】実施形態に従った、レンダリングされたウェブページのレンダリング結果のブロック図である。
図3】実施形態に従った、コンテンツニュートラルURLパターンを示すプロセス例を図示する流れ図である。
図4】実施形態に従った、2つのレンダリング結果がコンテンツニュートラルであるか否かを判断するプロセス例を図示する流れ図である。
図5】実施形態に従った、最適化されたレンダリングの情報を提供するプロセス例を図示する流れ図である。
図6】開示した技術を実装するために使用されることができるコンピュータデバイスの例を示す。
図7】開示した技術を実装するために使用されることができる分散型コンピュータデバイスの例を示す。
【発明を実施するための形態】
【0015】
開示された実施形態は、コンテンツニュートラルウェブページ、あるいはスクリプトオブジェクトがレンダリングされたページに対してコンテンツニュートラルであるページを識別し、およびブラウザが、ブラウザレンダリングエンジンがスクリプトを実行することなくそのようなウェブページをレンダリングすることを可能にする。これは、しばしば3つの要因によってレンダリング時間を増加し、スマートフォンやタブレットといった限定されたリソースを備えた演算デバイスにとって重要である。スクリプトオンでレンダリングされたウェブページのレンダリング結果がスクリプトオフでレンダリングされたウェブページのレンダリング結果と類似であるとき、ウェブページは、最適化されたレンダリングのための候補となってもよい。類似点は、ページのトークンの類似点、アウトリンクの類似点、ページレイアウトの類似点などによって決定されてもよい。いくつかの実施形態において、アウトリンクまたはトークンの任意の差は、重大な差であると見なされ得る。いくつかの実施形態において、レイアウトの主要なコンポーネントが閾値を満たす類似の測定基準を有する場合、レンダリング結果は、類似であると考えられてもよい。ページのスクリプトオブジェクトがコンテンツニュートラルである場合、システムはコンテンツニュートラルURLのリストにウェブページを格納してもよい。いくつかの実施形態において、システムは、別のコンテンツニュートラルURLを識別するために使用されることができるパターンを識別するために、コンテンツニュートラルURLを集めてもよい。
【0016】
ブラウザがウェブページのレンダリングを開始するとき、ウェブページにとってスクリプトオブジェクトがコンテンツニュートラルであるか、すなわちURLがコンテンツニュートラルであるかどうかをサービスに尋ねてもよい。サービスは、完全に一致するかまたはデータストアのパターンに一致するかのいずれかにより、要求されたウェブページのURLをコンテンツニュートラルURLのデータストアと一致させてもよい。サービスが一致を見つけた場合、サービスは、ブラウザにスクリプトオブジェクトがコンテンツニュートラルであることを伝えてもよく、およびブラウザはスクリプトオフでウェブページのレンダリングを進めてもよい。そうでなければ、(例えば、ウェブページのURLがデータストア内のパターンと一致しない場合)ブラウザはスクリプトオンでページをレンダリングし、あるいはウェブページをレンダリングするとき、スクリプトを実行するか否かを決定するためにブラウザ設定を使用することができる。このような最適化されたブラウザレンダリングは、よりリソースが効率的なブラウザレンダリングプロセスにする。いくつかの実施形態において、コンテンツニュートラルURLデータストアは、モバイルブラウザとデスクトップブラウザとの間で区別されてもよい。
【0017】
図1は、実施形態例に従ったシステムのブロック図である。システム100は、コンテンツニュートラルURLおよびコンテンツニュートラルURLパターンを識別するために使用されてもよく、並びにブラウザレンダリングプロセスを最適化するためにパターンを使用してもよい。システム100は、多数の異なるデバイスの形態を成すコンピューティングデバイスを含んでもよい。例えば、システム100は、図6に示すようなコンピュータデバイスの例600、および図7に示すようなコンピュータデバイスの例700であるコンピューティングデバイスを含んでもよい。
【0018】
システム100は、バッチレンダリングシステム110を含んでもよい。バッチレンダリングシステム110は、標準サーバ、そのようなサーバのグループ、クライアントサーバシステム、あるいはラックサーバシステムであってもよい。さらに、バッチレンダリングシステム110は、パーソナルコンピュータで実装されてもよい。バッチレンダリングシステム110は、メモリに保存された、1つ又は複数の機械実行可能命令またはソフトウェア、ファームウェア、あるいはそれらの組合せの一部を実行するように構成された1つ又は複数のプロセッサを含んでもよい。例えば、バッチレンダリングシステム110は、レンダリングエンジン120、フェッチサービス122、ウェブ巡回エンジン124、およびコンテンツニュートラルURL識別エンジン126を含んでもよい。バッチレンダリングシステム110は、バッチモードでレンダリングされたウェブページを、例えばインデックスプロセスの一部として生成してもよく、および処理生成フェッチレコード132において生成してもよく、これはバッチレンダリングシステム110がコンテンツニュートラルURLパターン130を生成するために使用されてもよい。
【0019】
ダウンストリームプロセスは、バッチレンダリングシステム110がバッチモードでウェブページをレンダリングすることを要求してもよい。いくつかの実施形態において、バッチレンダリングシステム110は、ダウンストリームプロセス(図示せず)を含んでもよい。例えば、ダウンストリームプロセスは、インデックスエンジンまたは広告プラットフォームであってもよい。ダウンストリームプロセスは、バッチレンダリングエンジン120の1つが特定のウェブページのためにレンダリング結果を生成することを要求してもよい。バッチレンダリングエンジン120のそれぞれは、個人のウェブブラウザに対してレンダリングをエミュレートするように構成されてもよいが、バッチレンダリングのための最適化を伴う。ウェブページは、スタイルシート、JavaScript(登録商標)、画像などのような埋め込みオブジェクトを含んでもよい。バッチレンダリングエンジン120は、フェッチサービス122を使用して、埋め込みオブジェクトのためのコンテンツを要求してもよい。
【0020】
フェッチサービス122は、埋め込みオブジェクトがホストサーバ190からフェッチされる必要があるかを決定してもよく、埋め込みオブジェクトはキャッシュから返されることができ、およびオブジェクトは返される必要がない。ホストサーバ190は、1つ又は複数のウェブページ又は1つ又は複数のウェブページに埋め込まれたリソースを提供するインターネットを介してアクセス可能なコンピューティングデバイスの任意の種類であってもよい。埋め込みオブジェクトがフェッチされる必要がある場合、フェッチサービス122は、従来の技術を使用してウェブ巡回エンジン124を介して埋め込みオブジェクトのためのコンテンツを要求してもよい。インデックスエンジンのようなダウンストリームプロセスは、ウェブ巡回エンジン124を介してサーバ190からコンテンツを要求してもよい。フェッチ要求の結果として、バッチレンダリングシステム110は、フェッチレコード132を生成してもよい。フェッチレコード132は、リクエストされ、かつホストサーバ190から読み出されたウェブページについての情報を含んでもよい。
【0021】
ウェブ巡回エンジン124、バッチレンダリングエンジン120、およびフェッチサービス122は、例えばワールドワイドウェブ上で発見されることができるウェブページのような、多数のウェブページを効率的にレンダリングするために一緒に動作する。ウェブページのレンダリングの結果は、レンダリング結果であり、ダウンストリーム要求プロセスのために利用可能な、あるいは利用不可能な、様々なデータ要素を含む。コンテンツニュートラルURL識別エンジン126は、コンテンツニュートラルURLパターン130を生成するためにバッチレンダリングエンジン120を使用してもよい。コンテンツニュートラルURL識別エンジン126は、入力としてフェッチレコード132を使用して、周期的に(例えば、毎日、週2、等)で動作してもよい。コンテンツニュートラルURL識別エンジン126は、バッチレンダリングエンジン120に、スクリプトオンでフェッチレコード132からURLの第1のレンダリング結果を生成する、およびスクリプトオフでURLの第2のレンダリング結果を生成するように依頼してもよい。JavaScript(登録商標)のようなスクリプトオブジェクトは、ウェブページがブラウザによってレンダリングされるときに実行される、ウェブページに含まれたコードである。スクリプトオブジェクトは、レンダリングされたウェブページの見た目とコンテンツを操作すること、別のスクリプトオブジェクトの実行を初期化すること、インターネット等から追加のコンテンツをダウンロードすることができる。従って、スクリプトオブジェクトは、ブラウザによって実行されることを目的とされている。しかし、スクリプトオブジェクトを実行することは、高レベルの処理リソースを消費し、およびしばしばコンテンツフェッチの追加をもたらし、これはレンダリングプロセスを遅延し、帯域幅を不通にし、およびバッテリー容量を消耗する。ブラウザは、通常レンダリングプロセスを高速化する、スクリプトオフにする設定を含むが、結果のコンテンツは影響を受ける可能性があり、ページが正確にレンダリングされない、あるいはコンテンツの欠如となる可能性がある。
【0022】
URLのレンダリングされたコンテンツが、スクリプトオブジェクトを実行することによって影響を受けるか否かを決定するために、コンテンツニュートラルURL識別エンジン126はスクリプトオンのURLの第1のレンダリング結果およびスクリプトオフのURLの第2のレンダリング結果を要求する。例えば、コンテンツニュートラルURL識別エンジン126は、バッチレンダリングエンジン120の1つがレンダリング結果を提供することを要求してもよい。コンテンツニュートラルURL識別エンジン126は、スクリプトオブジェクトを実行することが、レンダリングされたウェブページのコンテンツに影響を与えるか否かを決定するために、第1のレンダリング結果と第2のレンダリング結果を比較してもよい。いくつかの実施形態において、コンテンツが影響を受ける場合、URLは非コンテンツニュートラルURLのリストに追加されてもよい。コンテンツが重大な影響(例えば、類似である等)を受けない場合、コンテンツニュートラルURL識別エンジン126は、URLがコンテンツニュートラルであると識別してもよい。いくつかの実施形態において、URLは、コンテンツニュートラルURLパターン130のようなデータストアに保存されてもよい。いくつかの実施形態において、URLは、コンテンツニュートラルURLの一時リストに保存され、およびコンテンツニュートラルURLについてパターンを決定するために後で使用されてもよい。従って、いくつかの実施形態において、コンテンツニュートラルURL識別エンジン126は、多くのURLについてこのテストを実行し、およびコンテンツニュートラルであるURLのパターンを決定する。例えば、コンテンツニュートラルURL識別エンジン126は、同じホストに属する全てのURLについて、コンテンツニュートラル状態を集めてもよい。ホストに関しての全てのURLがコンテンツニュートラルである場合、ホストはコンテンツニュートラルURLパターン130のパターンとして含まれてもよい。いくつかの実施形態において、パターンに一致するURLの少ないパーセンテージ(例えば、1%未満)がコンテンツニュートラルである場合、コンテンツニュートラルURL識別エンジン126は、コンテンツニュートラルURLパターン130のパターンとして当該ホストを含んでもよい。いくつかの実施形態において、コンテンツニュートラルURLおよび非コンテンツニュートラルURLのリストの集約は、例えばホスト内の特定のパスのために使用されてもよい別のパターンを作ってもよい。
【0023】
いくつかの実施形態において、コンテンツニュートラルURL識別エンジン126はまた、コンテンツニュートラルURLパターン130内のパターンがさらにコンテンツニュートラルであることを検証してもよい。例えば、コンテンツニュートラルURL識別エンジン126は、パターンに一致するURLのサンプルを選択し、レンダリングエンジンにスクリプトオンおよびスクリプトオフでレンダリング結果を生成することを要求し、および二つのレンダリング結果を比較してもよい。コンテンツニュートラルURLパターン130のパターンに一致するURLが、もはやコンテンツニュートラルではない場合、パターンは削除されてもよい。
【0024】
いくつかの実施形態において、コンテンツニュートラルURL識別エンジン126は、URLまたはURLパターンが、従来のパーソナルブラウザから独立したモバイルブラウザにとってコンテンツニュートラルであるか否かを判定してもよい。例えば、いくつかのウェブサイトはウェブページのモバイル版とフル版を有し、およびフル版はコンテンツニュートラルではないが、モバイル版はコンテンツニュートラルであってもよい。従って、コンテンツニュートラルURL識別エンジン126は、1つのURLについて4つのレンダリング結果をレンダリングしてもよい。第1の二つのレンダリング結果は、従来のパーソナルブラウザをエミュレートするレンダリングエンジンによってレンダリングされてもよく、しかし一方、残りの二つのレンダリング結果は、スマートフォンまたはタブレット等のモバイルデバイス上のブラウザをエミュレートするレンダリングエンジンによってレンダリングされてもよい。コンテンツニュートラルURLパターン130は、このように、例えばモバイルブラウザ用または従来のブラウザ用といったブラウザの種類によってパターンがコンテンツニュートラルであるか否かを示すデータを含んでもよい。
【0025】
簡潔にするために図1には図示しないが、いくつかの実施形態において、バッチレンダリングシステム110は2つ以上の分離したコンピューティングデバイスにわたって分散されてもよい。さらに、1つまたは複数のバッチレンダリングエンジン120、フェッチサービス122、ウェブ巡回エンジン124、およびコンテンツニュートラルURL識別エンジン126は、1つまたは複数のコンピューティングデバイスの全体に分散されてもよい。いくつかの実施形態において、1つまたは複数のバッチレンダリングエンジン120、フェッチサービス122、ウェブ巡回エンジン124、およびコンテンツニュートラルURL識別エンジン126は、バッチレンダリングシステム110の別のコンポーネントを備えたメモリまたはハードウェアプロセッサのようなリソースを共有してもよい。同様に、フェッチレコード132およびコンテンツニュートラルURLパターン130も、複数のコンピューティングデバイスにわたって分散されたメモリに保存されてもよい。いくつかの実施形態において、バッチレンダリングシステム110の様々なコンポーネントは、コンピューティングデバイスのハードウェアコンポーネントを共有してもよく、あるいは、いくつかのコンピューティングデバイスの論理的パーティションであってもよい。
【0026】
バッチレンダリングシステム110は、ネットワーク160を介してクライアント180およびサーバ190と通信してもよい。ネットワーク160は、例えば、インターネットであってもよく、あるいはネットワーク160は、例えばゲートウェイデバイス、ブリッジ、スイッチ、及び/又はその他を使用して実装される、有線または無線ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、それらの組合せ等であることもできる。ネットワーク160を介して、バッチレンダリングシステム110は、クライアント180及び/又はホストサーバ190と通信し、並びにデータの送受信をしてもよい。例えば、バッチレンダリングシステム110は、クライアント180にコンテンツニュートラルURLパターン130を提供してもよく、あるいは特定のURLがコンテンツニュートラルであるか否かを確認する要求をクライアント180から受信してもよく、およびコンテンツニュートラルURLパターン130に基づいて応答を提供してもよい。
【0027】
クライアント180は、パーソナルウェブブラウザ140がインストールされた、図6で描かれたコンピューティングデバイス600のようなパーソナルコンピューティングデバイスであってもよい。パーソナルウェブブラウザの例は、スマートフォンあるいはタブレットのようなモバイルデバイス用、またはラップトップあるいはデスクトップのようなパーソナルコンピュータ用の、Chrome、Safari、Internet Explorer、Firefoxなどを含む。ブラウザ140は、特定のURLがスクリプトオフでレンダリングされることができるか否かを決定するために、サービスを使用するように構成されてもよい。いくつかの実施形態において、サービスは、コンテンツニュートラルURLパターン130のコピーを、ブラウザ140による使用のためにクライアント180に転送してもよい。いくつかの実施形態において、ブラウザ140は、特定のURLがコンテンツニュートラルURLパターン130のパターンのうちの1つに一致するかを確認するように、サービスに依頼するように構成されてもよい。特定のURLがコンテンツニュートラルであるとき、ブラウザ140は、特定のURLがスクリプトオフでレンダリングされることができるか否かを決定するためにサービスを使用し、スクリプトオフでレンダリングを実行することによって最適化されたレンダリングを実行する。従って、ブラウザ140は、スクリプトのブラウザ設定に関わらず、ユーザによる行動なしで選択的にスクリプトオンまたはオフするように構成されてもよく、およびコンテンツが影響を受けないリソースを節約するためにそうすることができる。
【0028】
図2は、実施形態に従った、バッチレンダリングエンジン120によってレンダリングされたレンダリング結果200のブロック図である。レンダリング結果200は、様々なコンポーネントを含んでもよく、すべてが図2に図示されているわけではない。例えば、レンダリング結果200は、レンダリングされたページの画像205を含むことができる。画像205は、ウェブブラウザによってディスプレイデバイスを介してユーザに表示される画像であってもよい。画像205は、例えば、レンダリングされたページのサムネイルをユーザに表示するために、およびウェブページの表示要素がどこに発生するかを(例えば、それらのXおよびY座標に基づいて)決定するために使用されることができる。レンダリング結果200は、ドキュメントオブジェクトモデル(DOM)ツリー210を含むこともできる。DOMツリー210は、ウェブページのHTML構造を表す。例えば、DOMツリー210は、ウェブページのためのトークンおよびアウトリンクを含む。レンダリング結果200は、レイアウト215も含んでもよい。レイアウト215は、ウェブページの各要素のためのボックスを含み、ボックスは、画像205の要素のXおよびY座標を指定する。従って、レイアウト215は、要素が発生するウェブページ上の場所、それがウェブページ上でどのくらいの領域をとるか、などの指示を提供する。従って、レイアウト215は、ウェブページのどれ位が広告であるのか、パラグラフ(paragraph)がどのくらい目立つか(例えば、マスメディア広告、あるいはマスメディア以外の手段による広告)、要素が可視であるか否か、等の情報を提供する。言い換えれば、レイアウト215は、レンダリングされたウェブページの要素についての幾何学的情報を提供する。レンダリング結果200は、エラー220も含んでもよい。エラー220は、例えばJavaScript(登録商標)といったスクリプトオブジェクトを動作した結果として遭遇したエラーを含む。レンダリング結果200は、レンダリング中にフェッチされた埋め込みリソース225のリストも含んでもよく、およびレンダリングプロセスの一部分として生成された別の要素(図示せず)を含むこともできる。従って、レンダリング結果200は、ホスティングサーバからのコンテンツのフェッチを介してのみ、利用不可能な情報を提供する。コンテンツニュートラルURL識別エンジンのような、ダウンストリーム要求プロセスは、スクリプトオブジェクトの動作がレンダリングされたウェブページのコンテンツを著しく変更するか否かを決定するため、等といった様々な目的のためにレンダリング結果情報を使用することができる。例えば、ウェブページの広告部分のコンテンツは、重要であると考えられる必要はなく、URLは、広告の位置の差があったとしても、依然としてコンテンツニュートラルであってもよい。いくつかの実施形態において、レイアウトの主要なコンポーネントの差だけが重要であると考えられてもよい。主要なコンポーネントは、レイアウト215の最も大きなボックス(例えば、高さと幅が最大であるボックス)であってもよい。
【0029】
図3は、実施形態に従った、コンテンツニュートラルURLパターンを識別するための処理例300を図示した流れ図である。プロセス300は、図1のシステム110などのようなシステムによって実行されてもよい。システムは、スクリプトオンでウェブページのレンダリング結果を生成するために、スクリプトオフでウェブページの第2のレンダリング結果をレンダリングするために、および、スクリプトが任意の顕著なあるいは重要な方法でコンテンツに影響を与えるかどうかを決定するか言い換えればスクリプトがコンテンツニュートラルであるかどうかを決定するのにレンダリング結果を比較するために、プロセス300を使用してもよい。いくつかの実施形態において、システムは、特定のURLのレンダリング結果に基づいて、コンテンツニュートラルURLのためのパターンを決定してもよい。パターンは、データストアに保存され、要求されたURLがコンテンツニュートラルであるとき、スクリプトオフすることによって(フルまたはモバイルにかかわらない)パーソナルブラウザにレンダリングを最適化させるサービスの一部分として、使用されてもよい。
【0030】
プロセス300は、フェッチレコードからウェブページを取得するシステムから開始してもよい(305)。フェッチレコードは、ウェブ巡回エンジンを介してウェブページあるいは埋め込みオブジェクトに対するフェッチ要求を記録するファイルからのものであってもよい。いくつかの実施形態において、フェッチレコードは、インデックスプロセスの一部分、例えば、インターネットを介して利用可能なドキュメントのためのインデックスプロセスとして、生成されてもよい。ウェブページは、URLのような識別子によってフェッチレコードに識別されてもよい。従って、ウェブページは、URLとして参照されてもよく、ウェブページやURLを参照することは、本明細書で使用されるように一般的に同義であることが理解されよう。システムは、スクリプトオンでウェブページの第1のレンダリング結果を生成してもよい(310)。言い換えると、システムは、第1のレンダリング結果を生成するとき、JavaScript(登録商標)(あるいは他のスクリプト言語)を動作してもよい。システムは、スクリプトオフでウェブページの第2のレンダリング結果を生成してもよい(315)。システムは、次いでレンダリング結果がコンテンツニュートラルであるかどうかを決定するために、第1のレンダリング結果と第2のレンダリング結果とを比較してもよい(320)。
【0031】
図4に関してより詳細に説明されるように、システムは、レンダリング結果がコンテンツニュートラルであるか否かを決定するために、様々なテストを使用してもよい。レンダリング結果がコンテンツニュートラルである場合(320、はい)、システムは、コンテンツニュートラルURLのリストにウェブページのURLを追加してもよい(330)。このリストは、コンテンツニュートラルURLのためのパターンを決定するために使用される一時的なリストであってもよい。レンダリング結果が類似でない場合(320、いいえ)、システムは、非コンテンツニュートラルURLのリストにウェブページのURLを追加してもよい(325)。このリストのウェブページは、コンテンツが欠落することなしにスクリプトオフでレンダリングされることができない。非コンテンツニュートラルURLのリストは、一時的なメモリに保存されたリストであってもよく、およびコンテンツニュートラルURLのためのパターンを決定するために使用されてもよい。フェッチレコードに調べるべき別のウェブページがある場合(335、いいえ)、システムは、フェッチレコードから次のURLを取得してもよく(340)、および次のウェブページを使用してステップ305から330を繰り返してもよい。いくつかの実施形態において、ステップ305から340によって表されるサイクルは、フェッチコードの全てのURLがコンテンツニュートラル性に関して調べられるまで、継続されてもよい。いくつかの実施形態において、特定の日付または時間の後のフェッチレコードだけが調べられてもよい。
【0032】
フェッチレコードの全てのウェブページがコンテンツニュートラル性に関して調べられる場合(335、はい)、システムは、コンテンツニュートラルURLのリストと非コンテンツニュートラルURLのリストとを使用して、コンテンツニュートラルURLのためのパターンを決定してもよい(345)。いくつかの実施形態において、システムはURLの残りである潜在的パターンを備えたURLの一部分である、任意のクエリ文字列を取り除いてもよい。URLは、クエリ文字列なしの残りの部分が一致する場合、潜在的パターンと一致する。いくつかの実施形態において、システムは、URLのホスト部分以外の全てを取り除いてもよい。後にくるものにかかわらず、ホスト部分が一致する場合、URLはパターンと一致する。いくつかの実施形態において、システムは、パターンを決定するために、クラスタリングのような集約の別の形態を使用してもよい。パターンは、ホスト(例えば、www.pattern.com)を示してもよく、またはホスト内の異なるディレクトリ(例えば、www.pattern.com/services)等を示してもよい。潜在的パターンがコンテンツニュートラルであるかを見るために、システムは、パターンに一致する非コンテンツニュートラルURLリストにおいてパターンに一致するURLの量、およびコンテンツニュートラルURLにおいてパターンに一致するURLの量を決定してもよい。いくつかの実施形態において、非コンテンツニュートラルURLリスト内のURLが、潜在的パターンと一致する場合、潜在的パターンは、非コンテンツニュートラルURLであると考えられる。いくつかの実施形態において、潜在的パターンに一致するURLの少ないパーセンテージ、例えば1%以下は、非コンテンツニュートラルであることができ、およびパターンは、まだコンテンツニュートラルであると考えられてもよい。潜在的パターンがコンテンツニュートラルである場合、システムは、パターンをデータストアに保存してもよい(350)。スクリプトがコンテンツに影響を及ぼさない(例えば、URLがコンテンツニュートラルである)場合、データストアは、スクリプトをオフすることによってブラウザにウェブページのレンダリングを最適化させるために、サービスによって使用されてもよい。
【0033】
いくつかの実施形態において、システムは、異なるブラウザのタイプによってレンダリングされたレンダリング結果とともに、プロセス300の一部または全てを繰り返してもよい。例えば、ブラウザタイプはフルブラウザあるいはモバイルブラウザであってもよい。第1および第2のレンダリング結果がフルブラウザによってレンダリングされた場合、システムは、モバイルブラウザを使用してステップ305から335を繰り返してもよい。従って、コンテンツニュートラルURLのリストは、ブラウザタイプの指示を含んでもよく、データストアのパターンもまた、ブラウザタイプの指示を含んでもよい。これは、システムに、URLが1つのブラウザタイプ(例えば、モバイルブラウザ)のために、かつ異なるブラウザタイプのためではなく(例えば、フルブラウザ)、コンテンツニュートラルであるか否かを示すことを許可する。
【0034】
図4は、実施形態に従った、2つのレンダリング結果がコンテンツニュートラルであるか否かを決定するためのプロセス例400を図示する流れ図である。プロセス400は、例えば、図3のステップ320の一部として実行されてもよい。プロセス400が、レンダリング結果類似点を決定するための3つのテストを図示するが、実施形態は、図示されたテストの内、1つ、2つ、あるいは全てを含むことができ、および図示されていない付加的な類似のテストを含んでもよいことを理解されたい。
【0035】
プロセス400は、2つのレンダリング結果のトークンを比較するステップを含んでもよい(405)。トークンは、例えばユーザ可視のワード等のドキュメントのテキストを含んでもよい。トークンは、図2のDOMツリー210のようなDOMツリーを処理することによって生成されてもよい。いくつかの実施形態において、ストップワード数字は、比較を実施する前に削除されてもよい。第1のレンダリング結果のためのトークンが第2のレンダリング結果のためのトークンと異なる場合(410、はい)、システムは、スクリプトオンでのレンダリングによって追加された固有のトークンの量が、トークン閾値未満であるか否かを任意で決定してもよい(415)。言い換えると、スクリプトオンでレンダリングすることが、少数の固有のトークンという結果にしかならない場合、システムは、差がささいなものであると見なしてもよい。いくつかの実施形態において、トークン閾値は5であってもよい。追加された固有のトークンの量がトークン閾値を満たす場合(415、いいえ)、システムは、レンダリング結果が類似ではないと見なしてもよい(430)。レンダリング結果が類似でないとき、レンダリング結果を生成するために使用されるURLは、コンテンツニュートラルでない。いくつかの実施形態において、システムは、テスト415をスキップしてもよく、トークンの任意の差は重要であると見なされてもよく、およびレンダリング結果は類似ではない。量がトークン閾値を満たさない場合(415、はい)、システムは、トークンの差がささいなものであると見なしてもよい。従って、第1のレンダリング結果のための固有のトークンは、第2のレンダリング結果のトークンと同じである場合(410、いいえ)、または固有のトークンの量がトークン閾値を満たさない場合(415、はい)、レンダリング結果は類似であると見なされてもよく、およびシステムは、別のテストを実行することを続けてもよい。トークンテストのみを含む実施形態において、システムは、レンダリング結果が類似であると決定するステップを備えたステップ445を直接開始してもよい。
【0036】
いくつかの実施形態において、トークンが同じ(410、いいえ)または(415、はい)である場合、システムは、アウトリンクを比較してもよい(420)。アウトリンクは、別のウェブページへのあるいはレンダリングされたページからの別のドキュメントへのリンクを表す。アウトリンクは、レンダリング結果のDOMツリーのアンカータグノード(<a> タグ)から抽出されてもよい。システムがアウトリンクに差を発見した場合(425、はい)、システムは、差が重要であり、かつレンダリング結果は類似でないと見なしてもよい(430)。従って、ウェブページはコンテンツニュートラルでないと見なされる。2つのレンダリング結果のアウトリンクが同じである場合(425、いいえ)、システムは、レンダリング結果が類似であると見なしてもよく(例えば、ステップ450に進むことによって)、あるいは別の類似のテストの実行に進んでもよい。いくつかの実施形態において、システムは、ステップ405と415の前に、かつ無関係に、ステップ420と425を実行してもよい。
【0037】
別の類似のテストにおいて、システムは、レイアウトの主要なコンポーネントを決定してもよい(435)。レンダリング結果のレイアウトは、ボックスで構成され、各ボックスはスクリーン座標によって定義されている。一般に、各ボックスは、ウェブページのそれぞれの要素に対応する。例えば、レイアウトは、DOMツリー(全てのDOM要素が対応するレンダリングボックスを有することができるわけではないが)のDOMノードのボックス表示を含むことができる。ボックスは、レンダリングツリーとしても知られる、ツリー構造に編成されることができる。従って、例えば、テーブルは、レイアウトのボックスによって表わされてもよく、およびパラグラフはレイアウトの別のボックスによって表わされてもよい。ウェブページの主要なコンポーネントは、スクリーン座標によって定義されるように、最も大きなボックスを備えたレイアウトのそれらの要素である。いくつかの実施形態において、システムは、セットの主要なコンポーネントの所定の数をいれてもよく、例えば、それによってセットは最も大きな主要なコンポーネントを含む。いくつかの実施形態において、システムは、スクリーンのパーセンテージを構成するセットの主要なコンポーネントを含んでもよい。そのような実施形態において、最大の主要なコンポーネントは、そのパーセンテージよりも多くを要する場合、最大の主要なコンポーネントは、セットの唯一のメンバーであってもよい。いくつかの実施形態において、閾値以上のボックスサイズを有する任意のコンポーネントは、主要なコンポーネントのセットに含まれてもよい。いくつかの実施形態において、システムは、主要なコンポーネントを発見するために、オニオンピーリング(onion peeling)技法を使用してもよい。例えば、レンダリングツリーのルートボックスで開始して、システムは、横型探索を実行してもよく、およびルートボックスの最大の子ボックスを識別してもよい。現在のボックスの最大の子ボックス(例えば、ルートボックスの最大の子ボックス)を発見し、システムは次いで最大の子を選択し、さらに深く進んでもよい。システムは、子ボックスがいずれも支配していないとき、例えば、親のボックス領域の半分にわたって占有しているとき、システムはさらに深く進むことを止めてもよい。システムがさらに深く進むことを止めたとき、主要なコンポーネントは支配する子を有することに失敗したボックスである。
【0038】
システムは、セットの主要なコンポーネント間の類似スコアを計算してもよい(440)。例えば、システムは、主要なコンポーネントボックスの重複スコアを使用してもよい。重複スコアにおいて、システムは、主要なコンポーネントに関して重複領域を計算してもよく、これは第2のレンダリング結果の対応する主要なコンポーネントの領域と重なる、第1のレンダリング結果の主要なコンポーネントの領域を表す。システムは、次いで各主要なコンポーネントの総領域に関する、重複領域の調和平均を表す類似スコアを計算する。例えば、システムは、式
【数1】
を使用してもよく、oaは二つのコンポーネント間の重複領域であり、a1は第1のレンダリング結果における主要なコンポーネントボックスの総領域であり、a2は第2のレンダリング結果における主要なコンポーネントボックスの総領域である。もちろん、システムは、スコアを計算するために他の類似のメトリクスを使用してもよい。そのような類似のメトリクスの例は、カッツシミラリティ(Katz similarity)を含むが、それに限定するものではない。類似スコアが、類似閾値を満たす場合(445、はい)、レンダリング結果は、類似であると見なされ、従ってウェブページはコンテンツニュートラルである(450)。いくつかの実施形態において、類似閾値は高くてもよい(例えば80%またはそれ以上)。類似スコアが閾値を満たさない場合(445、いいえ)、システムはレンダリング結果が類似していないと見なしてもよい(430)。いくつかの実施形態において、類似スコアが類似閾値(445、はい)を満たす場合、システムは、図4に図示していないレンダリング結果に基づいた追加の類似のテストを実行してもよい。例えば、システムは、DOMツリーまたはレイアウト、あるいはレンダリング結果の別のコンポーネントについて最長共通部分列(LCS)を計算してもよく、およびレンダリング結果が類似であるか否かを決定するためにLCS値を使用してもよい。例えば、LCSの類似が閾値を満たす場合、システムは、レンダリング結果が類似であると見なしてもよい。レンダリング結果が類似であろうと(450)または類似でなかろうと(430)、一旦システムが決定すると、プロセス400は終了する。
【0039】
図5は、実施形態に従った、最適化されたレンダリングのための情報を提供するプロセス例500の流れ図である。プロセス500は、ブラウザのためのサービスとして実行されてもよい。ブラウザは、図1のブラウザ140のような、モバイルかまたはフルのクライアントブラウザであることができ、あるいは図1のバッチレンダリングエンジン120のような、バッチレンダリングエンジンであることもできる。いくつかの実施形態において、サービスは、クラウドベースのサービスであってもよい。言い換えると、ブラウザは、クラウドベースのサービスにネットワークを介して要求を送信してもよく、これは、ブラウザに応答を提供してもよい。いくつかの実施形態において、サービスは図1のバッチレンダリングシステム110のような、サーバ上で実行されてもよい。別の実施形態において、サービスは、ブラウザが動作するコンピューティングデバイスに対してローカルであってもよい。例えば、コンテンツニュートラルURLパターンのデータストアは、ブラウザを動作するコンピューティングデバイスに転送されてもよく、およびサービスは、コンピューティングデバイスで実行されてもよい。いくつかの実施形態において、サービスは、図1のクライアント180のような、クライアント上で実行されてもよい。
【0040】
プロセス500は、ブラウザからURLを受信するサービスで開始する(505)。ブラウザは、モバイルブラウザ、フルブラウザであってもよく、およびクライアント上で動作する、あるいはバッチレンダリングエンジンとして動作してもよい。サービスは、リクエストからのURLがコンテンツニュートラルURLパターンと一致するか否かを決定してもよい(510)。いくつかの実施形態において、パターンは、フルURLを表してもよく、それによって、一致は完全な要求されたURLで作られる。いくつかの実施形態において、パターンは、例えば削除されたクエリ文字列を備えた、あるいはワイルドカードによって置き換えられた様々な部分を備えた、部分的なURLを表してもよい。要求されたURLが、コンテンツニュートラルデータストアの少なくとも1つに一致する場合(510、はい)、サービスは、URLがコンテンツニュートラルであり、かつスクリプトオフでレンダリングされることができることを示す応答を提供する(515)。この指示に応答して、ブラウザは、スクリプトオフでURLをレンダリングしてもよく、処理および帯域幅リソースを節約する。ブラウザは、スクリプトを実行するブラウザ設定がオンであるか否かに関わらず、これを実行してもよい。リクエストされたURLがコンテンツニュートラルデータストアのパターンに一致しない場合(510、いいえ)、サービスは、URLが非コンテンツニュートラルであり、およびスクリプトオフでレンダリングされる場合にコンテンツが失われることを示す応答を提供する。この指示に応答して、ブラウザは、スクリプトを実行するブラウザ設定に従ってURLをレンダリングしてもよく、これは、通常スクリプトオンでレンダリングするように設定される。ブラウザがレンダリングプロセスを最適化するために使用できる情報を提供して、次いでプロセス500は終了する。
【0041】
図6は、汎用コンピュータデバイス600の例を示しており、それは、図1のバッチレンダリングシステム110、及び/又はクライアント180として動作し得、また、本明細書に記載される技法を用いて使用され得る。コンピューティングデバイス600は、コンピューティングデバイスの種々の形態例、例えば、ラップトップ、デスクトップ、ワークステーション、パーソナルデジタルアシスタント、携帯電話、スマートフォン、タブレット、サーバ、ならびにウェアラブルデバイスを含む他のコンピューティングデバイスなどを表わすことが意図される。本明細書に示される構成要素、それらのつながりや関係、およびそれらの機能は、単なる例であることを意味するものであり、この文書において記載される及び/又は請求される発明の実施形態を限定することを意味するものではない。
【0042】
コンピューティングデバイス600は、インターフェース608経由で接続される、例えばシリコーンベースのハードウェアプロセッサ等のプロセッサ602、メモリ604、ストレージデバイス606、および拡張ポート610を含む。いくつかの実施形態において、コンピューティングデバイス600は、インターフェース608経由で接続される、いくつかある構成要素の中でも、送受信機646、通信インターフェース644、およびGPS(全地球測位システム)レシーバモジュール648を含み得る。デバイス600は、通信インターフェース644を通して無線で通信し得、それは、必要に応じて、デジタル信号処理回路を含み得る。構成要素602、604、606、608、610、640、644、646、および648のそれぞれは、必要に応じて、一般的なマザーボード上にまたは他の様式で搭載され得る。
【0043】
プロセッサ602は、メモリ604内またはストレージデバイス606上に記憶された命令を含む、コンピューティングデバイス600内の実行のための命令を処理することができ、外部入出力デバイス、例えばディスプレイ616などの上にGUIのためのグラフィカル情報を表示する。ディスプレイ616は、モニタまたはフラットタッチスクリーンディスプレイであり得る。いくつかの実施形態において、複数のプロセッサ及び/又は複数のバスが、必要に応じて、複数のメモリや複数の種類のメモリと共に、使用され得る。また、複数のコンピューティングデバイス600は、(例えば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)必要な動作の一部分を提供する各デバイスと、接続され得る。
【0044】
メモリ604は、コンピューティングデバイス600内に情報を記憶する。一実施形態において、メモリ604は、揮発性メモリのユニットまたは複数ユニットである。別の実施形態において、メモリ604は、不揮発性メモリのユニットまたは複数ユニットである。メモリ604はまた、コンピュータで読み取り可能な媒体の別の形態、例えば磁気もしくは光学ディスクなどであり得る。いくつかの実施形態において、メモリ604は、拡張インターフェースを通して提供される拡張メモリを含み得る。
【0045】
ストレージデバイス606は、コンピューティングデバイス600のためのマスストレージを提供することができる。一実施形態において、ストレージデバイス606は、コンピュータで読み取り可能な媒体、例えば、フロッピーディスクデバイス、ハードディスクデバイス、光学ディスクデバイス、またはテープデバイス、フラッシュメモリもしくは他の類似の固体メモリデバイス、あるいはストレージエリアネットワークもしくは他の構成におけるデバイスを含む、デバイスのアレイなどであり得るか、それらを含み得る。コンピュータプログラム製品は、そのようなコンピュータで読み取り可能な媒体に明白に具体化され得る。コンピュータプログラム製品はまた、実行されるときに、例えば上記したものなどの、1つ以上の方法を行う命令を含み得る。コンピュータまたはマシンで読み取り可能な媒体は、ストレージデバイス、例えばメモリ604、ストレージデバイス606、またはプロセッサ602上のメモリなどである。
【0046】
インターフェース608は、コンピューティングデバイス600のための帯域消費型の動作を扱う高速コントローラ、またはより低い帯域消費型の動作を扱う低速コントローラ、あるいはそのようなコントローラの組み合わせであり得る。外部インターフェース640は、他のデバイスとのデバイス600の近接領域通信を可能にするように、提供され得る。いくつかの実施形態において、コントローラ608は、ストレージデバイス606および拡張ポート614に結合され得る。種々の通信ポート(例えば、USB、ブルートゥース(登録商標)、イーサネット(登録商標)、無線イーサネット)を含み得る拡張ポートは、例えば、ネットワークアダプタを通して、1つ以上の入出力デバイス、例えば、キーボード、ポインティングデバイス、スキャナ、または例えばスイッチもしくはルータなどのネットワーキングデバイスに結合され得る。
【0047】
コンピューティングデバイス600は、図面に示されるように、多くの異なる形態で実装され得る。例えば、それは、標準サーバ630として、またはそのようなサーバのグループにおいて複数回、実装され得る。それはまた、ラックサーバシステムの一部として実装され得る。加えて、それは、パーソナルコンピュータ、例えばラップトップコンピュータ632、デスクトップコンピュータ634、またはタブレットあるいはスマートフォン636などで実装され得る。システム全体は、互いに通信する複数のコンピューティングデバイス600で構成され得る。他の構成が可能である。
【0048】
図7は、汎用コンピュータデバイス700の例を示しており、それは、図1のシステム110であり得るとともに本明細書に記載される技法を用いて使用され得る。コンピューティングデバイス700は、大規模データ処理デバイス、例えばサーバ、ブレードサーバ、データセンター、メインフレーム、および他の大規模コンピューティングデバイスなどの種々の形態例を表わすことが意図される。コンピューティングデバイス700は、場合によっては1つ以上の通信ネットワークによって相互接続されるネットワーク接続ストレージノードを含む、複数プロセッサを有する分散型システムであり得る。本明細書に示された構成要素、それらのつながりや関係、およびそれらの機能は、単なる例示であることを意味するものであり、この文書において記載されるか請求される発明の実施形態を限定することを意味するものではない。
【0049】
分散型コンピューティングシステム700は、任意の数のコンピューティングデバイス780を含み得る。コンピューティングデバイス780は、ローカルもしくはワイドエリアネットワーク、専用光学リンク、モデム、ブリッジ、ルータ、スイッチ、有線もしくは無線ネットワーク等の上で通信する、サーバまたはラックサーバ、メインフレーム等を含み得る。
【0050】
いくつかの実施形態において、各コンピューティングデバイスは、複数のラックを含み得る。例えば、コンピューティングデバイス780aは、複数のラック758a〜758nを含む。各ラックは、1以上のプロセッサ、例えばプロセッサ752a〜752nおよび762a〜762nなどを含み得る。プロセッサは、データプロセッサ、ネットワーク接続ストレージデバイス、および他のコンピュータ制御デバイスを含み得る。いくつかの実施形態において、1つのプロセッサは、マスタープロセッサとして動作し得、スケジューリングおよびデータ分散タスクを管理し得る。プロセッサは、1以上のラックスイッチ758を通して相互接続され得、1以上のラックが、スイッチ778を通して接続され得る。スイッチ778は、複数の接続されたコンピューティングデバイス700間の通信に対処し得る。
【0051】
各ラックは、メモリ、例えばメモリ754やメモリ764など、およびストレージ、例えば756および766などを含み得る。ストレージ756および766は、マスストレージを提供し得、揮発性もしくは不揮発性ストレージ、例えばネットワーク接続ディスク、フロッピーディスク、ハードディスク、光学ディスク、テープ、フラッシュメモリもしくは他の類似の固体メモリデバイス、あるいはストレージエリアネットワークまたは他の構成におけるデバイスを含む、デバイスのアレイなどを含み得る。ストレージ756または766は、複数のプロセッサ、複数のラック、または複数のコンピューティングデバイス間で共有され得、1つ以上のプロセッサによって実行可能な命令を記憶するコンピュータで読み取り可能な媒体を含み得る。メモリ754および764は、例えば、揮発性メモリのユニットまたは複数ユニット、不揮発性メモリのユニットもしくは複数ユニット、及び/又はコンピュータで読み取り可能な媒体の他の形態、例えば、磁気もしくは光学ディスク、フラッシュメモリ、キャッシュ、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、およびそれらの組み合わせなどを含み得る。メモリ、例えばメモリ754などはまた、プロセッサ752a〜752n間で共有され得る。索引などのデータ構造は、例えば、ストレージ756やメモリ754にわたって、記憶され得る。コンピューティングデバイス700は、図示されない他の構成要素、例えば、コントローラ、バス、入出力デバイス、通信モジュール等を含み得る。
【0052】
システム110などのシステム全体は、互いと通信する複数のコンピュータデバイス700で構成され得る。例えば、デバイス780aは、デバイス780b、780c、および780dと通信し得、これらは、集合的にシステム100として知られ得る。別の例として、図1のシステム100は、1以上のコンピュータデバイス700を含み得る。コンピュータデバイスのうちのいくつかは、互いに地理的に近く位置し得、その他は、地理的に離れて位置し得る。コンピュータデバイス700のレイアウトは、単なる例であり、システムは、他のレイアウトまたは構成を取り得る。
【0053】
さまざまな実施形態は、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータや命令を受信するように、並びにそれらにデータや命令を送信するように、結合される、特殊目的もしくは一般の目的であり得る、回路基板に形成された少なくとも1つのプログラム可能なプロセッサを含むプログラム可能なシステム上で実行可能または解釈可能である1つ以上のコンピュータプログラムにおける実施形態を含むことができる。
【0054】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる)は、プログラム可能なプロセッサに対する機械語命令を含み、高レベル手続言語及び/又はオブジェクト指向プログラミング言語で、ならびに/あるいはアセンブリ/機械言語で実装することができる。本明細書で使用される場合、「機械可読媒体」「コンピュータ可読媒体」という用語は、機械語命令及び/又はデータをプログラム可能なプロセッサに提供するために使用される任意の非一時的コンピュータプログラム製品、装置、及び/又はデバイス(例えば、磁気ディスク、光ディスク、メモリ(読み取り専用メモリを含む)、プログラマブル論理デバイス(PLD))を指す。
【0055】
本明細書で述べたシステムおよび技術は、バックエンドコンポーネント(例えば、データサーバとして)を含むコンピューティングシステム、またはミドルウェアコンポーネント(例えば、アプリケーションサーバ)を含むコンピューティングシステム、またはフロントエンドコンポーネント(例えば、ユーザが本明細書で述べたシステムおよび技術の実装と相互作用することができるグラフィカルユーザインタフェースまたはウェブブラウザを備えたクライアントコンピュータ)を含むコンピューティングシステム、またはこのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せで、実装されることができる。前記システムのコンポーネントは、デジタルデータ通信(例えば通信ネットワーク)の任意の形式または媒体で接続されることができる。通信ネットワークの例としては、ローカルエリアネットワーク(“LAN”)、ワイドエリアネットワーク(“WAN”)、およびインターネットを含む。
【0056】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、通常、相互に離れており、および通常は、通信ネットワークを通じて相互作用する。クライアントとサーバの関係は、それぞれのコンピュータ上で動作し、互いにクライアント−サーバ関係を有するコンピュータプログラムの効力によって生じる。
【0057】
多くの実施形態が説明されてきた。それにもかかわらず、本発明の精神および範囲から逸脱することなく、さまざまな変更がなされ得る。さらに、図に示された論理フローは、望ましい結果を達成するために、図示された特定の順序または連続する順序である必要はない。さらに、他のステップを設けても、または記載されたフローから複数のステップを除いてもよく、また、記載されたシステムに他の要素を追加してもよく、またはそこから除去してもよい。従って、他の実施形態は、添付の特許請求の範囲に含まれる。
【符号の説明】
【0058】
110 バッチレンダリングシステム
120 バッチレンダリングエンジン
122 フェッチサービス
124 ウェブ巡回エンジン
126 コンテンツニュートラルURL識別エンジン
130 コンテンツニュートラルURLパターン
132 フェッチレコード
140 ブラウザ
160 ネットワーク
180 クライアント
190 サーバ
200 レンダリング結果
205 イメージ
210 DOMツリー
215 レイアウト
220 エラー
225 埋め込みリソース
図1
図2
図3
図4
図5
図6
図7