(58)【調査した分野】(Int.Cl.,DB名)
前記ウェブページ要求は、要求されたウェブページのアドレスを識別し、前記レンダリングされたウェブページを、ウェブページ要求を生成しているユーザーデバイスへ伝えるステップは、レンダリングされたウェブページを要求されたウェブページのアドレスで伝えるステップをさらに含む、請求項1に記載の方法。
前記ユーザーエージェント文字列の少なくとも1つの構成要素が、前記ウェブページ要求を生成するために使用される前記ユーザーデバイスを識別する、請求項1に記載の方法。
前記ユーザーエージェント文字列の少なくとも1つの構成要素は、ウェブページ要求を生成するために使用される前記ユーザーデバイスにより使用されるブラウザを識別する、請求項1に記載の方法。
前記ページレイアウトにより提供されるパネルは、携帯電話から生成される要求に関連付けられた複数のチャネルのうち1つに前記ウェブページコンテンツの少なくとも1つの部分を関連付ける、請求項1に記載の方法。
前記1または複数のテンプレート要素を定義するステップは、1または複数のマスターページを定義するステップと、1または複数のページレイアウトを定義するステップをさらに含む、請求項8に記載の方法。
前記ユーザーエージェント文字列の少なくとも1つの構成要素が、ウェブページ要求を生成するために使用されるデバイス、ウェブページ要求を生成するために使用されるデバイスの地球物理学的な位置、およびウェブページ要求を生成するために使用されるブラウザのうち少なくとも1つを識別する、請求項6に記載の方法。
複数のパネルでページレイアウトを定義するステップをさらに含み、複数のパネルのそれぞれが、複数のレンダリングチャネルの1つと関連付けられている、請求項6に記載の方法。
前記ウェブページ要求のユーザーエージェント文字列の1つの構成要素に基づく識別されたレンダリングチャネルを、クッキーで指定されるユーザ指定ルールに基づく別のレンダリングチャネルに置き換えるステップをさらに含む、請求項6に記載の方法。
前記命令は、また、1または複数のプロセッサにより実行されると、1または複数のプロセッサに、レンダリングされたウェブページを、前記ウェブページ要求しているユーザーデバイスへ伝えさせる、請求項17に記載のコンピュータシステム。
【発明を実施するための形態】
【0010】
[0013]本明細書において開示するウェブページ最適化システムは、多様なデバイスおよびブラウザに表示されるウェブページのカスタム最適化を提供する。具体的には、ウェブページ最適化システムは、ウェブページ要求を生成するためにユーザーによって使用されるデバイスを識別し、デバイスの識別に基づいて、システムは、要求中のデバイスに対してウェブページをレンダリングするために使用されるカスタムマスターページおよびカスタムページレイアウトを選択する。例えば、要求中のデバイスがモバイルデバイスとして識別される場合、より小さく、データ量の少ないヘッダ、フッタなどを用いたマスターページが、要求中のモバイルデバイスに送信されるウェブページを生成するために選択される。同様に、モバイルデバイスで表示するために最適化されたデータを用いたページレイアウトが、このようなウェブページを生成するために使用される。1つの実施形態では、いくつかのチャネルも画定され、各チャネルがマスターページおよびページレイアウトと関連付けられる。
【0011】
[0014]ウェブページ最適化システムにより、ユーザーは、携帯電話器、スマートフォン、ラップトップなどいくつかのデバイスに最適化されたウェブページを生成するために同じコンテンツを使用することができる。その結果、異なるデバイスを持つユーザーが、同じウェブユニフォームリソースロケータ(URL)からのコンテンツにアクセスすることができる。このような手法は、ウェブサイトに対するいかなる検索エンジンランキング、マーケティングキャンペーンなども、そのウェブサイトへのアクセスにユーザーが使用するデバイスにかかわらず、すべてのユーザーからそのウェブサイトへの組み合わされたウェブトラフィックを使用することを保証する。さらに、ウェブページ最適化システムはまた、モバイルデバイスを定義する際に異なるレベルの特異性(specificity)を提供する。例えば、あらゆるスマートフォン用のウェブページを生成するために、汎用スマートフォンチャネルを設けることができるが、一方、Windows(登録商標) Phone 7オペレーティングシステムを使用するモバイルデバイス用のウェブページを生成するために、個別のチャネルを定義することもできる。
【0012】
[0015]
図1は、ウェブページ最適化システム100の例示的データソースおよびフローを示す。具体的には、ウェブページ最適化システム100を使用して、www.newgeographic.comというURLを有するニュージオグラフィックマガジン(New Geographic magazine)のウェブページをレンダリングし、伝える。ウェブページ最適化システム100は、ニュージオグラフィックマガジンのウェブサイトを訪れるユーザーにとって最適化されたウェブページを生成するために使用される様々なテンプレート要素を格納するために使用されるデータベース102を含む。1つの実施形態では、このようなテンプレート要素は、様々なマスターページ、様々なページレイアウトなどを含む。例えば、データベース102は、ヘッダのような、ニュージオグラフィックのウェブサイトのすべてのページによって共有される汎用領域を提供するマスターページI 108を含む。具体的には、マスターページI 108は、携帯電話器を使用してニュージオグラフィックマガジンのウェブサイトを訪問する訪問者に提供されることになるウェブページのレンダリングに使用される。同様に、マスターページII 110は、ニュージオグラフィックマガジンのウェブサイトのすべてのウェブページが、コンピューターを使用してニュージオグラフィックマガジンのウェブサイトを訪問する訪問者に提供されるとき、このようなページによって共有される、ヘッダ、サイドバー、フッタなど汎用領域を提供する。携帯電話器は一般的に、ウェブページを表示するための表示空間の容量が限られているので、マスターページI 108は、ウェブページを生成するための小さいヘッダのみを含み、サイドバナーは使用されない。一方、ユーザーがコンピューターを使用してニュージオグラフィックのウェブサイトを訪問しているとき、マスターページII 110が使用されて、より完全で豊富な内容をユーザーに提供するウェブページを生成する。
【0013】
[0016]データベース102はまた、携帯電話器にコンテンツを表示するために構成されたページレイアウトI 112と、コンピューター画面にコンテンツを表示するために構成されたページレイアウトII 114とを含む。
図1に示すように、ページレイアウトII 114に提供されるコンテンツ空間の量に比べて、少ない量のコンテンツ空間がページレイアウトI 112に提供される。1つの実施形態では、ページレイアウト112および114は、いくつかのパネルを提供され、パネル内のコンテンツは、ある一定のタイプのデバイスにのみ表示される。したがって、大量の数値データを含んだパネルが、ウェブページ開発者によって、コンピューターで表示されるウェブページに含まれることになるパネルとして、識別可能となる。しかしながら、このような数値データは、モバイルデバイス(携帯電話器)に表示されるウェブページに含まれることはない。データベースはまた、様々なチャネル104、106を含む。様々なチャネル104、106それぞれは、様々なテンプレート要素と関連付けられる。例えば、モバイルチャネル104はマスターページI 108およびレイアウトI 112と関連付けられ、コンピューターチャネル106はマスターページII 110およびレイアウトII 114と関連付けられる。
【0014】
[0017]1つの実施形態では、データベース102は、ユーザーがニュージオグラフィックマガジンのウェブサイトを訪問するとき、ユーザーにウェブページを提供するウェブサーバでホストされる。ユーザーがウェブページを要求するとき、ユーザーは、該ユーザーがウェブページを訪問するために使用するデバイス等のユーザーに関する様々な情報、ユーザーを識別する他の情報なども送信する。このような情報の一例は、ユーザーデバイスのブラウザから、ウェブページを提供しているウェブサーバまで送信されるハイパーテキスト転送プロトコル(http)のユーザーエージェント文字列である。例えば、ユーザーがブラウザを使用してニュージオグラフィックマガジンのウェブサイトにアクセスするとき、www.newgeographic.com 130というURLと共にユーザー文字列を含むhttp要求が、ウェブサイトをホストしているウェブサーバに送信される。http要求に含まれるユーザーエージェント文字列は、ユーザーが使用するブラウザ、ユーザーが使用するデバイス、ユーザーの地理的位置など、ユーザーを識別する様々な情報を含む。したがって、例えば、携帯電話器ユーザー122がニュージオグラフィックマガジンのウェブサイトにアクセスしたいという要求を送信するとき、このような要求にユーザーエージェント文字列が添付され、該文字列は、携帯電話器ユーザー122が使用するデバイス、携帯電話器ユーザー122が使用するブラウザなどを識別する情報を含む。このようなユーザーエージェント文字列の一例は、以下の通りである。
ユーザーエージェント文字列I:
Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; Nexus One Build/FRG83)
AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
[0018]上記のユーザーエージェント文字列Iは、携帯電話器ユーザー122から送信される要求がデバイスをブラウザとして「Mobile Safari」を使用していると識別することを識別する。一方、コンピューターユーザー124がニュージオグラフィックマガジンのウェブサイトにアクセスしたいと要求を送信するとき、このような要求に添付されるユーザーエージェント文字列は、異なる構成要素または構成要素値を含むことになる。このようなユーザーエージェント文字列の一例として、以下の文字列をあげることができる。
ユーザーエージェント文字列II:
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)
[0019]ウェブサイトにアクセスしたいという要求が受信されると、デバイス識別エンジン132がこのような要求を解析し、ユーザーエージェント文字列の様々な構成要素を解析する。したがって、ユーザーエージェント文字列Iを受け取ると、デバイス識別エンジン132はユーザーデバイスを、Safari(商標)ウェブブラウザを使用しているAndroid(商標)モバイルデバイスとして識別する。一方、ユーザーエージェント文字列IIが受信されると、デバイス識別エンジン132はユーザーデバイスを、ウェブブラウザとしてInternet Explorer(商標)8を使用しているコンピューターとして識別する。続いて、チャネル選択エンジン134が、ユーザーデバイスの識別に基づいてチャネルを選択する。例えば、ユーザーデバイスがモバイルデバイスとして識別される場合、チャネル選択エンジン134は、モバイルチャネル104を選択する。一方、ユーザーデバイスがコンピューターとして識別される場合、チャネル選択エンジン134は、コンピューターチャネル106を選択する。
【0015】
[0020]チャネル選択エンジン134がチャネルを選択すると、選択されたチャネルと関連付けられたマスターページおよびページレイアウトが使用されてウェブページをレンダリングし、これがユーザーに提供されることになる。例えば、モバイルチャネル104が選択される場合、マスターページI 108およびレイアウトI 112が使用されて、モバイルウェブページ140をレンダリングする。一方、コンピューターチャネル106が選択される場合、マスターページII 110およびレイアウトII 114が使用されて、コンピューターウェブページ142をレンダリングする。1つの実施では、レンダリングされたウェブページ140および142は、将来の使用に備えてキャッシュに格納され、任意の他のユーザーがニュージオグラフィックマガジンのウェブサイトからのウェブページを要求するとき、マスターページ、レイアウト、およびコンテンツをアセンブルする必要がなく、このようなウェブページを配信することができる。さらには、ウェブページのコンテンツに何らかの変更があるときはいつでも、ウェブページ140および142のすべてを自動的に生成し、将来の使用に備えてキャッシュに格納することができる。このようにウェブページのキャッシュおよび更新を同時に行うことにより、ウェブページ最適化システム100の性能が強化される。ウェブページがキャッシュされると、ウェブサイトおよびデータベース102をホストしているサーバは、別のユーザーからの特定の要求にキャッシュから応えることができるかどうかを判断する。1つの実施形態において、特定の要求にキャッシュから応えることができると判断される場合、システムはウェブページ140、142のすべてを再びレンダリングする。
【0016】
[0021]ウェブページ最適化システム100の例示の実施形態は、単に2つのチャネルを開示しているが、iPad(商標)などタブレットデバイスに対応するタブレットチャネルのようなさらに別のチャネルを提供することもできる。さらに、ウェブページ最適化システム100の例示の実施形態は、単にすべてのモバイルデバイスに選択される1つのモバイルチャネル104を開示しているが、代替的実施形態においては、異なるタイプのモバイルデバイスに、異なるチャネルが提供される。したがって、このような実施においては、Apple(商標)スマートフォンに、Windows(登録商標)スマートフォンに、Android(商標)スマートフォンに、その他に、別個のチャネルが提供される。さらに代替的には、ウェブページ最適化システム100の実施形態は、ウェブページにアクセスするために使用されるブラウザに基づいて識別されるチャネルを含む。したがって、例えば、Firefox(商標)ブラウザ、Internet Explorer(商標)ブラウザ、Safari(商標)ブラウザなどに、別個のチャネルが対応する。
【0017】
[0022]いくつかの状況において、デバイス識別エンジン132がユーザーエージェント文字列を解析するとき、デバイス識別エンジン132は、指定されたチャネルがないユーザーデバイスまたはユーザーブラウザを識別することもまた可能である。このような状況に対処するために、データベース102の実行が、チャネル104、106の1つをデフォルトチャネルとして指定する。デフォルトチャネルは、ユーザーエージェント文字列から入手できる情報に基づいて他のチャネルを選択できない場合に選択される。さらに代替的には、ウェブ最適化システム100は、デフォルトマスターページ、デフォルトレイアウトなども指定する。
【0018】
[0023]ウェブ最適化システム100は、デバイスタイプ、ブラウザタイプなどに基づいて選択される異なるチャネルを有するように示されているが、代替的実施においては、ユーザー要求から受け取られる他の情報に基づいて、異なるチャネルが選択される。例えば、ユーザー要求が、ユーザーの地理的位置などユーザーを識別する他の情報と共にクッキーも含む場合、およびウェブ最適化システム100がこのようなユーザー識別情報を使用する許可を有する場合、このような識別情報を使用して特定のチャネルが選択される。
【0019】
[0024]さらに、図示のウェブページ最適化システム100は、チャネル104、106のそれぞれを、そのようなチャネルに関連する1つのマスターページおよび1つのレイアウトを有するように示しているが、代替的実施形態では、1つのマスターページが2つ以上のチャネルによって使用される。さらに代替的には、複数のチャネルを同じマスターページであるが異なるレイアウトを有するマスターページに関連付けることができる。これは、データベース102の設計者が多数のチャネルのそれぞれのテンプレートを開発していないときでも、設計者にこのようなチャネルを指定する柔軟性を与える。ユーザーが作成することができるチャネルの数は、様々な最適化および効率の基準に基づいて決定することができる。
【0020】
[0025]ウェブ最適化システム100により、いくつかのオーバーライド(override)ルールが提供される。例えば、オーバーライドルールによれば、チャネル選択エンジン134が、ウェブ要求に応えるためにモバイルチャネル104を選択していても、ウェブ要求またはクッキーが、ユーザーはコンピューターのウェブページ142に興味があることを示唆する場合、ウェブ要求はコンピューターチャネル106と関連付けられることになる。さらに代替的には、このようなオーバーライドルールは、マスターページおよびレイアウトの異なる組合せを要求することもできる。したがって、例示的ユーザーオーバーライドが、マスターページI 108およびレイアウトII 114を使用して生成されるウェブページを要求する。このような場合、ウェブ最適化システム100は、このようなウェブページを生成し、将来の使用に備えてこれをキャッシュに格納することになる。さらに、オーバーライドルールの階層構造も提供され、2つ以上のオーバーライド要求が受け取られる場合、ウェブページ最適化システム100は、このような要求間で優先順位を決めるように構成される。
【0021】
[0026]ウェブ最適化システム100のオーバーライド機能を使用すると、ユーザーエージェント文字列からのデータに基づいて生成されたウェブページとは異なるウェブページのバージョンを、ユーザーが要求することができる。例えば、iPad(商標)を使用するユーザーが、ウェブページを要求するとき、ユーザーエージェント文字列に基づいて、チャネル選択エンジン134は、タブレットチャネルを選択する。しかしながら、ユーザーは、クッキーを使用して、ウェブ最適化システム100に、ユーザーがコンピューターのウェブページ142を受信することに興味を持っていることを知らせることができ、この場合、コンピューターチャネル106が選択される。さらに、クッキーは永続的であるので、ウェブ最適化システム100は、クッキーによって識別される選択を記憶する。
【0022】
[0027]ウェブ最適化システム100の代替的実施形態では、ウェブサイトの開発者がカスタム論理をプラグインできるようにするプログラミング可能フック(programmability hook)を提供する。例えば、開発者が、いくつかのカスタム論理を使用して、チャネルに開発者のカスタムニーズに適合する機能を行わせることができる。このようなプログラミング可能フックはまた、ウェブページ最適化システム100の趣旨(argument)または挙動(behavior)を変更するために使用することもできる。1つの実施形態では、このようなプログラミング可能フックにより、開発者は、ユーザーがiPhone(商標)のApp等の特定のアプリケーションを使用してウェブサイトにアクセスしていることを検出することに応答して、ウェブページを生成するためにマスターページおよびレイアウトの組合せを選択することができる。代替的には、開発者は、ウェブページ要求のユーザーエージェント文字列によって暗示されるデバイス画面のサイズを検出することに基づいて、チャネルの選択をオーバーライドすることができる。
【0023】
[0028]開発者がマスターページおよびレイアウトの開発段階の間に様々なウェブページ140、142を閲覧できるようにするために、ウェブ最適化システム100はまた、ユーザーに様々なウェブページのレンダリングをシミュレートする機能を提供する。例えば、開発モードの間に、たとえ開発者がコンピューターを使用してウェブ最適化システム100に要求を送信しても、開発者はモバイルウェブページ140がレンダリングされることを指定することができる。またある実施形態では、コンピューター上のシミュレートされたモバイルデバイス画面にモバイルウェブページ140を表示するシミュレーションアプリケーションを提供する。
【0024】
[0029]
図2は、ニュージオグラフィックマガジンのウェブサーバによって使用されるウェブページ最適化システムで使用される例示的な要素データベース200を示す。要素データベース200は、いくつかのチャネル202をマスターページ204に、およびレイアウト206に関連付ける。図示のように、モバイルチャネル210は、モバイルマスターページ220およびモバイルレイアウト230と関連付けられている。したがって、ウェブページ要求のユーザーエージェント文字列の構成要素に基づいてモバイルチャネル210が選択されるとき、ウェブページを生成するためにモバイルマスターページ220およびモバイルレイアウト230が使用される。図示のように、モバイルマスターページ220は、携帯電話器に容易に表示することができるより狭いバナーを用いて設計される。同様に、モバイルレイアウト230はまた、コンパクトであって、画像、グラフなどがないように設計される。
【0025】
[0030]一方、ウェブページ要求のユーザーエージェント文字列の構成要素に基づいてコンピューターチャネル212が選択されるとき、ウェブページを生成するためにコンピューターマスターページ222およびコンピューターレイアウト232が使用される。コンピューターマスターページ222は、より広い見出し、ロゴ、および広告を含む。同様に、コンピューターレイアウト232は、コンテンツの拡張的な見出し、ならびにある記事のコンテンツと共に表示されるグラフを含む。コンピューターレイアウト232は、パネル240中にラップされたグラフ構成要素を含む。データベース200の1つの実施形態では、コンピューターレイアウト232の開発者は、パネルに収められたコンテンツを表示するデバイスのタイプを識別するルールを提供する。例えば、1つの特定の実施形態では、開発者は、コンピューターレイアウト232のパネルに収められたコンテンツをコンピューターだけに表示するように定義する。代替的には、このようなルールは、ユーザーエージェント文字列によって識別されるユーザーのブラウザに基づいたルールとすることが可能である。このように、例えば、コンピューターレイアウト232のグラフは、Adobe(商標)Flash playerをサポートするブラウザにのみ表示される。
【0026】
[0031]タブレットチャネル214は、コンピューターマスターページ222およびコンピューターレイアウト232と関連付けられている。データベース200には、タブレットチャネル214用の単独のマスターページおよび単独のレイアウトがないが、後の段階で、タブレットマスターページおよびタブレットレイアウトを追加し、タブレットチャネル214と関連付けることができる。データベース200はまた、デフォルトチャネル218を含む。ユーザーエージェント文字列が、ウェブページ要求を生成するデバイス、ブラウザなどを識別することができないとき、デフォルトチャネル218が使用されて、ウェブページのレンダリングにデフォルトマスターページ224およびデフォルトレイアウト234を選択する。コンピューターレイアウト232のように、デフォルトレイアウト234によって表示されることになるコンテンツの一部は、パネル242中にラップされている。このような場合、デフォルトレイアウトの開発者は、パネルに収められた画像の表示に関するルールを指定することができる。
【0027】
[0032]要素データベース200を、チャネル202を様々なウェブページ要素204、206に関連付けるように図示しているが、代替的実施形態においては、他のフィールドも提供される。例えば、1つの代替的実施形態においては、チャネル202のそれぞれがデバイスと関連している。iPad(商標)がタブレットチャネル214に関連する、Blackberry(商標)フォーンがモバイルチャネル210に関連するなどである。データベース200の要素がグラフとして示されていても、実際には、データベースは単に、データベース200の要素を表すオブジェクトへのポインタを含むように構成することができる。
【0028】
[0033]
図3は、ウェブページ最適化システムにおけるコンピューターマスターページ300の一例およびコンピューターレイアウト302の一例を示す。具体的には、コンピューターマスターページ300は、ヘッダ304、広告付きのサイドバー306、ロゴ308等のウェブサイトのすべてのページによって共有される汎用領域を提供する。一方、レイアウト302は、個々のウェブページのコンテンツに対する構造を提供する第2の視覚的テンプレートである。例えば、ニュース記事を表示するウェブページには、レイアウト302は、ニュース記事の見出し312、ニュース記事に関するグラフ314、およびニュース記事の内容316など、記事の様々な構成要素に対して、表示位置、スタイルなどを提供する。コンピューターレイアウト302のグラフ構成要素314は、パネル318中にラップされ、ウェブ開発者は、このようなパネルに収められた構成要素がウェブページでいつ表示されるべきであるかに関するルールを定義することができるようにする。
【0029】
[0034]コンピューターマスターページ300およびコンピューターレイアウト202は組み合わされて、レンダリングされるコンピューターウェブページ320を生成する。この特定の例では、グラフ314は、レンダリングされたコンピューターウェブページ320上で表示される。これは、パネル318中にラップされたコンテンツがコンピューターウェブページ上で表示されるべきであることを規定する、パネル318に添付されたルールによるものである。しかしながらルールにより、パネル318中にラップされたコンテンツがモバイルウェブページ上に表示されるべきではないことが規定される場合、コンピューターレイアウト302を用いて生成されるモバイルウェブページは、グラフ314を含まないことになる。
【0030】
[0035]
図4は、ウェブページを要求するクライアント402と、ウェブサイトのウェブページを提供するサーバ404との間の通信400の一例を示す。クライアント402は、ステップ410において、ウェブページ要求をサーバ404に送信する。ウェブページ要求は、例えばユーザーがブラウザでウェブサイトのURLをタイプすること、ユーザーがウェブサイトのリンクをクリックすること、ユーザーがスマートフォン上でアプリケーションを起動することなどに応答して生成される。ウェブページ要求は、ユーザーデバイス、ユーザーブラウザなどを識別する情報を含んだユーザーエージェント文字列を含む。一実施形態において、ユーザーエージェント文字列は、クッキーまたはクッキーを識別する情報も含む。ステップ412において、サーバ404は、クライアントのウェブページ要求と関連付けられるべきチャネルを判断する。例えば、サーバ404が、要求中のデバイスはモバイルデバイスであると判断する場合、モバイルチャネルがウェブページ要求と関連付けられる。
【0031】
[0036]続いて、サーバ404は、ステップ414において、ウェブページ要求に応えるために利用することができるキャッシュにウェブページがあるかどうかを判断する。サーバ404が最近、同様のデバイスを使用するクライアントに対応していた場合、サーバのキャッシュが要求されたウェブページを有することになり、サーバ404は、ステップ426において、キャッシュからこのようなウェブページを使用して、ウェブページ要求に応答する。キャッシュにウェブページが見つからない場合、ステップ416において、サーバは、ウェブページ要求に応えるために必要な情報を収集する。このような情報は、識別されたチャネルと関連付けられたマスターページ、識別されたチャネルと関連付けられたレイアウト、識別されたマスターページおよび識別されたレイアウトと関連付けられたコンテンツなどを含む。収集された情報を使用して、ステップ418において、サーバは、ウェブページをレンダリングする。レンダリングされたページは、ステップ420において、クライアント402に通信され、クライアント402は、ステップ422において、ウェブページを表示する。続いて、ステップ424において、別のクライアントがウェブページ要求をサーバ404に送信すると、サーバ404は、ステップ426において、キャッシュからクライアント402にレンダリングされたウェブページを通信し、クライアントはステップ428において、ウェブページを表示する。
【0032】
[0037]
図5は、ウェブページ最適化システムの動作500の一例を示す。ステップ502において、クライアントのウェブページ要求に応えるために使用されることになる様々なチャネルが定義される。例えば、モバイルチャネル、ラップトップチャネル、デスクトップチャネルなどが定義される。代替的には、クライアントデバイスの画面サイズ、クライアントデバイスによって使用されるブラウザなど、他のパラメータに基づいてチャネルを定義することもできる。ステップ504において、ウェブページをレンダリングするために使用されるマスターページおよびレイアウトが設計される。代替的実施形態では、ページレイアウトは、繰り返しのコンテンツを表示するいくつかのレイアウト領域によって使用され、様々なデバイスで表示するために最適化された表示テンプレートを含む。例えば、このような繰り返しのコンテンツを様々なデバイスに様々な方法でレンダリングするために、様々な表示テンプレートを使用することができる。さらに、ウェブページレイアウトにデバイス固有のコンテンツを追加することによって、ページコンテンツを最適化することもできる。例えば、ページレイアウトが、コンテンツを仮想コンテナに収めること、パネル中にこのようなコンテンツをラップすること、およびパネルまたは仮想コンテナからコンテンツを表示するためのルールを定義することによって、いくつかのデバイスでは表示されないコンテンツを含むことができる。
【0033】
[0038]続いて、ステップ506において、マスターページおよびレイアウトをチャネルに関連付ける。例えば、タブレットチャネルをコンピューターマスターページおよびモバイルページレイアウトと関連付けることができる。ステップ508では、ウェブページを要求するクライアントからのウェブページ要求を受け取る。例えば、このような要求は、ウェブサイトまたは特定のウェブページのURLを識別するhttp要求である。ウェブページ要求は、多くの場合、要求中のデバイス、要求中のブラウザなどを識別する情報を含んだユーザーエージェント文字列を含む。ステップ510において、ウェブページ要求に添付されたユーザーエージェント文字列を解析して、このようなユーザー識別情報を決定する。
【0034】
[0039]ユーザーエージェント文字列から得られた情報に基づいて、ステップ512において、要求されたウェブページを生成するために使用されることになるチャネルを判断する。例えば、ユーザーエージェント文字列が要求中のデバイスをiPad(商標)として識別する場合、ステップ512において、要求中のデバイスはタブレットチャネルを使用して、要求中のデバイスに送信されることになるウェブページの構成要素およびコンテンツを集めることができると決定する。ステップ514において、マスターページ、レイアウト、およびコンテンツなどの構成要素を、ウェブサーバのデータベースから取り出す。
【0035】
[0040]続いて、ステップ516において、様々な構成要素およびコンテンツを組み立てることによってウェブページをレンダリングする。ステップ518において、レンダリングされたウェブページをキャッシュに保存する。このように保存されたウェブページを使用して、他のユーザーからの将来の要求に応えることができる。レンダリングされたウェブページは、ステップ520によって要求中のデバイスに伝えられる。要求中のデバイスは、要求中のデバイスがウェブページ要求を生成するために最初に使用したものと同じウェブアドレスから、レンダリングされたウェブページを受け取る。したがって、動作500は、ユーザーの要求を他のURLアドレスへリダイレクトすることを含まない。
【0036】
[0041]
図6は、本発明の技術を実施する際に有効なシステムの一例を示す。本発明の技術を実施するための
図6の例示のハードウェアおよび動作環境は、ゲーム機の形態の汎用コンピューティングデバイスすなわちコンピューター20、携帯電話器、携帯情報端末(PDA)、セットトップボックス、または他のタイプのコンピューティングデバイスなどの、コンピューティングデバイスを含む。
図6の実施形態では、例えば、コンピューター20は、処理ユニット21と、システムメモリ22と、処理ユニット21にシステムメモリなどの様々なシステム構成要素を動作可能に結合するシステムバス23とを含む。コンピューター20のプロセッサが、単一の中央処理装置(CPU)を含むように、ただ1つの処理ユニット21が存在する場合、または一般的に並列処理環境と呼ばれる複数の処理装置を含むように、2つ以上の処理ユニット21が存在する場合がある。コンピューター20は、既存のコンピューター、分散コンピューター、または任意の他のタイプのコンピューターとすることができるが、本発明はこれらに限定されるものではない。
【0037】
[0042]システムバス23は、メモリバスもしくはメモリコントローラ、周辺機器用バス、交換ファブリック、ポイントツーポイント接続、および様々なバス構造のいずれかを使用するローカルバスを含む、いくつかのタイプのバス構造の任意のものである。システムメモリは、単にメモリと呼ばれることもあり、リードオンリメモリ(ROM)24、およびランダムアクセスメモリ(RAM)25を含む。スタートアップ中などに、コンピューター20内の要素間で情報を伝達するために役立つ基本的なルーチンを含む基本入出力システム(BIOS)26は、ROM24に格納されている。コンピューター20は、ハードディスクからの読み取りおよびハードディスクへの書き込みを行うためのハードディスクドライブ27と、リムーバブル磁気ディスク29からの読み取りおよびリムーバブル磁気ディスク29への書き込みを行うための磁気ディスクドライブ28と、CD ROM、DVD、または他の光媒体のようなリムーバブル光ディスク31からの読み取りまたはこれらへの書き込みを行うための光ディスクドライブ30とを備えている。
【0038】
[0043]ハードディスクドライブ27、磁気ディスクドライブ28、および光ディスクドライブ30は、それぞれハードディスクドライブのインタフェース32、磁気ディスクドライブのインタフェース33、および光ディスクドライブのインタフェース34によってシステムバス23に接続される。ドライブおよびそれに関連するコンピューター可読媒体は、コンピューター可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性記憶装置をコンピューター20に提供する。磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)など、コンピューターによってアクセス可能であるデータを格納することができるいずれのタイプのコンピューター可読媒体も、例示のオペレーティング環境において使用できることは、当業者には理解されるであろう。
【0039】
[0044]オペレーティングシステム35、1または複数のアプリケーションプログラム36、その他のプログラムモジュール37、およびプログラムデータ38を含む、いくつかのプログラムモジュールを、ハードディスク、磁気ディスク29、光ディスク31、ROM24、またはRAM25に格納することができる。ユーザーが、キーボード40およびポインティングデバイス42のような入力デバイスを介して、コマンドおよび情報をパーソナルコンピューター20に入力することができる。他の入力デバイス(図示せず)には、マイク、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどが含まれる。これらのおよび他の入力デバイスは、システムバスに結合されたシリアルポートインタフェース46を介して処理ユニット21に接続されることが多いが、パラレルポート、ゲームポート、またユニバーサルシリアルバス(USB)など、他のインタフェースによって接続されることも可能である。モニタ47または他のタイプのディスプレイ装置もまた、ビデオアダプタ48などのインタフェースを介してシステムバス23に接続される。コンピューターは、モニタに加えて、スピーカー、およびプリンタなどの他の周辺出力装置(図示せず)を通常備えている。
【0040】
[0045]コンピューター20は、リモートコンピューター49のような1または複数のリモートコンピューターへの論理接続を使用してネットワーク化された環境で動作することができる。これらの論理接続は、結合される通信デバイス、またはコンピューター20の一部によって実現され、本発明は、特定のタイプの通信デバイスに限定されるものではない。
図6では、メモリ記憶デバイス50のみを示しているが、リモートコンピューター49は、別のコンピューター、サーバ、ルータ、ネットワークPC、クライアント、ピアデバイス、または他の一般的なネットワークノードとすることができ、通常、コンピューター20に関連して上述した要素の多くまたは全部を含む。
図6に示す論理接続は、ローカルエリアネットワーク(LAN)51と、ワイドエリアネットワーク(WAN)52とを含む。このようなネットワーク環境は、あらゆるタイプのネットワークである、オフィス環境、企業規模のコンピューターネットワーク、イントラネット、およびインターネットにおいて一般的である。
【0041】
[0046]LANのネットワーク環境で使用されるとき、コンピューター20は、通信デバイスであるネットワークインタフェースまたはアダプタ53を介してローカルネットワーク51に接続される。WANのネットワーク環境で使用されるとき、コンピューター20は一般的に、モデム54、ネットワークアダプタ、あるタイプの通信デバイス、またはワイドエリアネットワーク52を通じて通信を確立するための他のタイプの通信デバイスを含む。モデム54は、内蔵または外付けとすることができ、シリアルポートインタフェース46によってシステムバス23と接続される。ネットワーク化された環境では、パーソナルコンピューター20またはその一部と関連して図示したプログラムエンジンを、リモートのメモリ記憶デバイスに格納することができる。図示したネットワーク接続は例であり、コンピューター間の通信リンクを確立する他の手段および通信デバイスを使用できる。
【0042】
[0047]例示の実施形態では、ウェブページ最適化システムの様々な構成要素を、メモリ22および/または記憶装置29もしくは31に格納され、処理ユニット21によって処理される命令により具体化することができる。ウェブページ要素データベース、マスターページ、ページレイアウト、および他のデータを、永続的なデータストアとしてメモリ22、および/または記憶デバイス29もしくは31に格納することができる。さらに、ウェブページ最適化システムは、ネットワーク接続されたシステムにサービス機能を提供するように構成されたハードウェアおよび/またはソフトウェアを表す。このようなサービスは、汎用コンピューターおよび専用ソフトウェア(サーバ実行サービスソフトウェアなど)、特殊用途コンピューティングシステムおよび専用ソフトウェア(モバイルデバイスまたはネットワークアプライアンスが実行するサービスソフトウェアなど)、または他のコンピューティング構成を使用して実行することができる。
【0043】
[0048]
図7は、本発明の技術を実施する際に有用な別の例示的システム(モバイルデバイス700と表示される)を示す。モバイルデバイス700は、プロセッサ702と、メモリ704と、ディスプレイ706(例えば、タッチスクリーンディスプレイ)と、他のインタフェース708(例えば、キーボード)とを含む。メモリ704は、一般的には揮発性メモリ(例えば、RAM)と、不揮発性メモリ(例えば、フラッシュメモリ)とを含む。Microsoft Windows(登録商標)Phone 7オペレーティングシステムのようなオペレーティングシステム710が、メモリ704に存在し、プロセッサ702によって実行されるが、他のオペレーティングシステムを使用する場合があることを理解すべきである。
【0044】
[0049]1または複数のアプリケーションプログラム712がメモリ704にロードされ、プロセッサ702によってオペレーティングシステム710で実行される。アプリケーション712の例には、電子メールプログラム、スケジューリングプログラム、個人情報マネージャー、インターネット閲覧プログラム、マルチメディアプレーヤーアプリケーションなどが含まれるが、これらに限定しない。通知マネージャー714もまた、メモリ704にロードされ、プロセッサ702によって実行されて、ユーザーに通知を提示する。例えば、販売促進商品がトリガされ、買い物客に提示されるとき、通知マネージャー714によってモバイルデバイス700は発信音を鳴らし、または振動し(バイブレーションデバイス718による)、ディスプレイ706に販売促進商品を表示することができる。
【0045】
[0050]モバイルデバイス700は、電力供給装置716を含み、電力供給装置716は、1または複数の電池または他の電源によって電力を供給され、モバイルデバイス700の他の構成要素に電力を供給する。電力供給装置716は、内蔵電池または他の電源をオーバーライドする、または再充電する外部電源に接続することもできる。
【0046】
[0051]モバイルデバイス700は、ネットワーク接続性(例えば、携帯電話器ネットワーク、Wi-Fi(登録商標)、BlueTooth(登録商標)など)を提供するための1または複数の通信トランシーバー730を含む。モバイルデバイス700はまた、測位システム720(例えば、全地球測位衛星トランシーバー)、1または複数の加速度計722、1または複数のカメラ724、音声インタフェース726(例えば、マイク、音声増幅器、ならびにスピーカーおよび/または音声ジャック)、ならびに追加記憶装置728のような、様々な他の構成要素を含む。他の構成を使用することもできる。
【0047】
[0052]例示的な実施形態では、メモリ704および/または記憶装置728に格納され、処理ユニット702によって処理される命令によって、ウェブページ最適化システム、ならびに他のモジュールおよびサービスを具現化することができる。マスターページ、レイアウトおよび他のデータを、永続的なデータストアとして、メモリ704および/または記憶装置728に格納することができる。
【0048】
[0053]一部の実施形態は、製造品を含むことができる。製造品が、論理を格納するための記憶媒体を含むことができる。記憶媒体の例には、揮発性メモリまたは不揮発性メモリ、取り外し可能なまたは取り外し可能でないメモリ、消去可能なまたは消去不可能なメモリ、書き込み可能なまたは書き換え可能なメモリなどを含む、電子データを格納することができる1または複数のタイプのコンピューター可読記憶媒体が含まれる。論理の例には、ソフトウェア構成要素、プログラム、アプリケーション、コンピュータープログラム、アプリケーションプログラム、システムプログラム、機械プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、メソッド、プロシージャ、ソフトウェアインタフェース、アプリケーションプログラムインタフェース(API)、命令セット、コンピューティングコード、コンピューターコード、コードセグメント、コンピューターコードセグメント、文字、値、記号、またはそのいずれかの組合せのような、様々なソフトウェア要素が含まれる。例えば1つの実施形態では、製造品が、コンピューターによって実行されるとき、記載する実施形態に従った方法および/または動作をコンピューターに行わせる実行可能コンピュータープログラム命令を含むことができる。実行可能コンピュータープログラム命令は、ソースコード、コンパイル済みコード、解釈済みコード、実行可能コード、静的コード、動的コードなど、いかなる好適なタイプのコードも含むことができる。実行可能コンピュータープログラム命令は、コンピューターにある機能を行うように命令するための、あらかじめ定義されたコンピューター言語、方法、または構文により実施することができる。命令は、任意の好適な高水準、低水準、オブジェクト指向、ビジュアル、コンパイル済みおよび/または解釈済みプログラミング言語を使用して、実施することができる。
【0049】
[0054]本明細書に記載する本発明の実施形態は、1または複数のコンピューターシステムにおいて論理ステップとして実施される。本発明の論理演算は、(1)1または複数のコンピューターシステムにおいて実行される一連のプロセッサ実行ステップとして、(2)1または複数のコンピューターシステム内の相互接続された機械または回路モジュールとして、実施される。実施は、本発明を実行するコンピューターシステムの性能要件に応じた選択の問題である。したがって、本明細書に記載された本発明の実施形態を構成する論理演算は、演算、ステップ、オブジェクト、またはモジュールと、様々に呼ばれる。さらに、明示的に別段の請求がない限り、論理演算をいかなる順序でも行うこともできる、または特定の順序は、本質的に請求文言によって必要とされることを理解すべきである。
【0050】
[0055]上記の記載、例、およびデータは、本発明の例示的実施形態の構成および使用についての完全な説明を提供する。本発明の趣旨および範囲から逸脱することなく、本発明の多くの実施形態が作成可能であるため、本発明は以下に添付する特許請求の範囲に属する。さらに、様々な実施形態の構造上の特徴を、別の実施形態において記載する特許請求の範囲から逸脱することなく、さらに別の実施形態に結合することができる。