以下、図面を参照して本発明の最良の実施形態について詳細に説明する。なお、以下に説明する実施の形態は、情報提供システムに対して本発明を適用した場合の実施形態である。
[1.情報提供システムの構成及び機能概要]
先ず、本実施形態に係る情報提供システムSの構成及び概要機能について、図1乃至図3を用いて説明する。
図1は、本実施形態に係る情報提供システムSの概要構成の一例を示す図である。
図1に示すように、情報提供システムSは、情報提供サーバ1と、複数のユーザ端末2と、を含んで構成されている。そして、情報提供サーバ1と各ユーザ端末2とは、ネットワークNWを介して、例えば、通信プロトコルにTCP/IP等を用いて相互にデータの送受信が可能になっている。なお、ネットワークNWは、例えば、インターネット、専用通信回線(例えば、CATV(Community Antenna Television)回線)、移動体通信網(基地局等を含む)、及びゲートウェイ等により構築されている。
情報提供サーバ1(サーバ装置の一例)は、例えば、各種の情報やサービス等を提供する情報提供サイトを運営するために設置されたWebサーバである。この情報提供サーバ1は、ユーザ端末2からのHTTP(Hyper Text Transfer Protocol)リクエストに応じてWebページ等のコンテンツをユーザ端末2に送信するようになっている。
ユーザ端末2(コンテンツ表示装置の一例)には、ウインドウシステムが組み込まれている。ユーザ端末2は、画面に配置されたウインドウ毎に画面表示を行うようになっている。また、ユーザ端末2は、Webブラウザを起動することにより、情報提供サーバ1から受信したWebページ等のコンテンツを、Webブラウザのウインドウに表示するようになっている。なお、Webブラウザのウインドウを、「ブラウザウインドウ」と称する。
ウインドウシステムにおいては、画面に配置された複数のウインドウ同士が重なると、何れかのウインドウが他のウインドウによって部分的に隠れる場合がある。つまり、ウインドウ同士が重なった範囲についてはウインドウの内容が不可視となる。そして、ユーザ端末2は、複数のウインドウが他のウインドウによって部分的に隠れた場合に、そのウインドウの可視領域に、コンテンツを表示する。ここで、可視領域に表示されるコンテンツを、「可視領域用コンテンツ」と称する。可視領域用コンテンツは、例えば、画像データである。ただし、可視領域用コンテンツは、例えば、動画データ、テキストデータ、Webページ、電子文書等であっても良いし、複数種類のデータが混在したものであっても良い。また、コンテンツの表示イメージが示す内容(表示内容)は、例えば、商品やサービスの広告、商品やサービスの購入を推奨するレコメンド情報、その他の通知等である。また、可視領域用コンテンツの形状(可視領域用コンテンツを表示させたときに可視領域用コンテンツの表示イメージが画面を占める範囲の形状)は、矩形である。
図2(a)は、ウインドウW1〜W4の表示例を示す図である。また、図2(b)は、ウインドウ可視領域WV2〜WV4の一例を示す図である。また、図2(c)は、クライアント可視領域CV2〜CV4の一例を示す図である。
例えば、図2(a)に示すように、ユーザ端末2の画面には、ウインドウW1〜W4が互いに重なり合いながら表示されている。ここで、ウインドウW1は、クライアント領域C1を有している。また、ウインドウW2は、クライアント領域C2を有している。また、ウインドウW3は、クライアント領域C3を有している。また、ウインドウW4は、クライアント領域C4を有している。ウインドウの領域のうち、クライアント領域を除く領域は、非クライアント領域である。なお、ウインドウ及びクライアント領域は、本発明における表示領域の一例である。
ウインドウW2〜W4は、それぞれブラウザウインドウである。ブラウザウインドウW2〜W4のクライアント領域には、それぞれWebページが表示されている。一方、ウインドウW1は、ブラウザウインドウであっても良いし、Webブラウザ以外のアプリケーションプログラムのウインドウであっても良い。
ウインドウW1は、アクティブウインドウである。従って、ウインドウW1は、その全体が可視状態に置かれている。ウインドウW2は、ウインドウW1及びW4によって部分的に隠れている。また、ウインドウW3は、ウインドウW1、W2及びW4によって部分的に隠れている。また、ウインドウW4は、ウインドウW1によって部分的に隠れている。
ウインドウW2〜W4のように、部分的に隠れているウインドウを、「部分可視ウインドウ」という。部分可視ウインドウの領域のうち、隠れていない領域を、「ウインドウ可視領域」という。図2(b)において、符号WV2がウインドウW2のウインドウ可視領域を示し、符号WV3がウインドウW3のウインドウ可視領域を示し、符号WV4がウインドウW4のウインドウ可視領域を示す。部分可視ウインドウのクライアント領域のうち、ウインドウ可視領域に含まれるクライアント領域を、「クライアント可視領域」という。図2(c)において、符号CV2がウインドウW2のクライアント可視領域を示し、符号CV3がウインドウW3のクライアント可視領域を示し、符号CV4がウインドウW4のクライアント可視領域を示す。なお、ウインドウ可視領域及びクライアント可視領域は、本発明における可視領域の一例である。
図2(b)に示すように、ウインドウ可視領域WV2〜WV4は、互いに接している。このように、ウインドウ可視領域同士が接していることにより複数のウインドウ可視領域が一体化していると、一体化している範囲内の複数のクライアント可視領域に、同一の可視領域用コンテンツがそれぞれ部分的に表示される。そして、一体化している範囲内に1つのコンテンツがはめ込まれているとユーザによって認識されるように、各クライアント可視領域に可視領域用コンテンツが表示される。なお、例えば、ウインドウ可視領域WV2はウインドウ可視領域WV3のみと接し、ウインドウ可視領域WV4はウインドウ可視領域WV3のみと接し、ウインドウ可視領域WV2とウインドウ可視領域WV4とは接していない場合であっても、ウインドウ可視領域WV2〜WV4は、一体化しているといえる。
図3(a)は、コンテンツ100のオリジナルの表示イメージの例を示す図である。また、図3(b)は、コンテンツ100の表示例を示す図である。
具体的に、例えば図3(a)に示すような表示イメージのコンテンツ100において、その一部分100aが、クライアント可視領域CV2に表示され、別の一部分100bが、クライアント可視領域CV3に表示され、更に別の一部分100cが、クライアント可視領域CV4に表示される。クライアント可視領域同士を隔てている非クライアント領域によって、コンテンツ100は部分的に隠れているように見えているものの、コンテンツ100が全体的に表示されている。これにより、コンテンツ100の内容(図3(b)では、海に浮かぶヨットの画像)を、ユーザが容易に理解することができる。また、複数の可視領域を利用することで、コンテンツを大きく表示することができる。ここで、可視領域用コンテンツが表示されているウインドウを、「表示対象ウインドウ」と称する。
なお、図3(b)の例では、一体化しているウインドウ可視領域に含まれる全てのクライアント可視領域に、可視領域用コンテンツが部分的に表示されるようになっているが、2つ以上のクライアント可視領域に可視領域用コンテンツが表示されれば良い。
可視領域用コンテンツの表示のため、可視領域用コンテンツを表示させる領域として、コンテンツ表示領域が画面上に設定される。このコンテンツ表示領域の形状は、矩形である。そして、可視領域用コンテンツの表示位置及び表示サイズが、画面上に設定されたコンテンツ表示領域の位置及びサイズと一致するように、各部分可視ウインドウのクライアント領域に可視領域用コンテンツが表示される。
画面上の位置を示す座標は、スクリーン座標系における座標(以下、「スクリーン座標」と称する)で示される。スクリーン座標系は、画面の左上端を原点とする座標系である。一方、ウインドウのクライアント領域内の位置を示す座標は、クライアント座標系における座標(以下、「クライアント座標」と称する)で示される。クライアント座標系は、クライアント領域の左上端を原点とする座標系である。そこで、各部分可視ウインドウにおける可視領域用コンテンツの表示位置を、コンテンツ表示領域に一致させるため、コンテンツ表示領域の位置を示すスクリーン座標が、各部分可視ウインドウのクライアント領域の座標系に対応するクライアント座標に変換される。
可視領域用コンテンツが表示された後、ユーザによるウインドウ操作によって、例えば、ウインドウが移動したり、アクティブウインドウが変更されたりすることがある。これにより、例えば、表示対象ウインドウのクライアント可視領域の位置、形状等が変化したり、表示対象ウインドウがアクティブになったりすると、表示対象ウインドウのクライアント領域には、可視領域用コンテンツの表示前の表示内容が再表示される。
[2.情報提供サーバの構成及び機能]
次に、情報提供サーバ1の構成及び機能について、図4及び図5を用いて説明する。
図4は、本実施形態に係る情報提供サーバ1の概要構成の一例を示すブロック図である。また、図5(a)は、コンテンツDB121に登録される情報の内容の一例を示す図である。また、図5(b)は、Webページ情報DB122に登録される情報の内容の一例を示す図である。
図4に示すように、情報提供サーバ1は、通信部11と、記憶部12と、入出力インターフェース部13と、システム制御部17と、を備えている。そして、システム制御部17と入出力インターフェース部13とは、システムバス18を介して接続されている。
通信部11は、ネットワークNWに接続して、ユーザ端末2等との通信状態を制御するようになっている。記憶部12は、例えば、ハードディスクドライブ等により構成されており、各種プログラム及びデータ等を記憶するようになっている。入出力インターフェース部13は、通信部11及び記憶部12とシステム制御部17との間のインターフェース処理を行うようになっている。
記憶部12には、コンテンツDB121及びWebページ情報DB122が構築されている。
コンテンツDB121には、可視領域用コンテンツの候補となるコンテンツが、コンテンツに関する情報とともに複数登録されている。図5(a)に示すように、コンテンツDB121には、コンテンツID、コンテンツ、原表示サイズ、リサイズ許容範囲情報、及びキーワードが、コンテンツ毎に登録されている。コンテンツIDは、コンテンツを識別するための識別情報である。原表示サイズは、リサイズする前のコンテンツのオリジナルの表示サイズである。原表示サイズは、コンテンツの縦横のピクセル数を示す。なお、実際にはコンテンツ自体のヘッダ領域に原表示サイズが設定されている。リサイズ許容範囲情報は、可視領域用コンテンツをコンテンツ表示領域に合わせてリサイズして表示する際におけるリサイズの許容範囲を示す。このリサイズ許容範囲情報には、縦のピクセル数の下限値及び上限値、並びに、横のピクセル数の下限値及び上限値が含まれている。この下限値は、例えば、コンテンツの縮小表示によりコンテンツの表示内容が見難くならない程度に設定される。また、上限値は、例えば、コンテンツの拡大表示によりコンテンツの画質が粗くならない程度に設定される。なお、リサイズ許容範囲情報には、下限値または上限値の何れか一方のみが含まれていても良い。キーワードは、コンテンツの表示内容を示す語句、または、コンテンツの表示内容に関連する語句である。キーワードは、コンテンツ1つにつき、1つ以上登録されている。
Webページ情報DB122には、アクティブウインドウに表示されているWebページの内容と関連する可視領域用コンテンツを表示させるための情報が登録されている。図5(b)に示すように、Webページ情報DB122には、WebページのURL及びキーワードが、Webページ毎に登録されている。キーワードは、Webページの表示内容を示す語句、または、Webページの表示内容に関連する語句である。キーワードは、Webページ1つにつき、1つ以上登録されている。キーワードは、例えば、Webページを構成するHTML文書やXML文書に対して形態素解析等を行うことにより抽出することができる。また例えば、Webページが商品の情報を掲載するページである場合には、商品の名称、商品が属するカテゴリの名称等をキーワードとしても良い。なお、Webページ情報DB122には、例えば、情報提供サイトのWebページに関する情報のみが登録されていても良いし、情報提供サイト以外のサイトのWebページに関する情報も登録されていても良い。
更に、記憶部12には、情報提供サイトのWebページを構成するHTML文書、XML文書、画像データ、テキストデータ、電子文書等の各種データが記憶されている。
また更に、記憶部12には、オペレーティングシステム、WWW(World Wide Web)サーバプログラム、ユーザ端末2からのコンテンツリクエストに応じて可視領域用コンテンツを送信するためのサーバ用プログラム等が記憶されている。なお、上記サーバ用プログラムは、例えば、他のサーバ装置等からネットワークNWを介して取得されるようにしても良いし、DVD(Digital Versatile Disc)等の記録媒体に記録されてドライブ装置を介して読み込まれるようにしても良い。
システム制御部17は、CPU(Central Processing Unit)14、ROM(Read Only Memory)15、RAM(Random Access Memory)16等により構成されている。そして、システム制御部17は、CPU14が、ROM15や記憶部12に記憶された各種プログラムを読み出し実行することにより、情報提供サーバ1の各部を制御するようになっている。
[3.ユーザ端末の構成及び機能等]
次に、ユーザ端末2の構成及び機能等について、図6を用いて説明する。
図6は、本実施形態に係るユーザ端末2の概要構成の一例を示すブロック図である。
図6に示すように、ユーザ端末2は、操作部21と、表示部22と、通信部23と、ドライブ部24と、記憶部25と、入出力インターフェース部26と、システム制御部30と、を備えている。そして、システム制御部30と入出力インターフェース部26とは、システムバス31を介して接続されている。
操作部21は、例えば、キーボード、マウス等により構成されており、ユーザからの操作指示を受け付け、その指示内容を指示信号としてシステム制御部30に出力するようになっている。表示部22は、例えば、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ等により構成されており、文字や画像等の情報を表示するようになっている。通信部23は、ネットワークNW等に接続して、情報提供サーバ1等との通信状態を制御するようになっている。ドライブ部24は、例えば、DVD等のディスクDKからデータ等を読み出す一方、当該ディスクDKに対してデータ等を記録するようになっている。記憶部25は、例えば、ハードディスクドライブ等により構成されている。入出力インターフェース部26は、操作部21〜記憶部25とシステム制御部30との間のインターフェース処理を行うようになっている。
記憶部25には、オペレーティングシステム(ウインドウシステムを含む)、Webブラウザを初めとする各種アプリケーションプログラムが記憶されている。ウインドウシステムには、ウインドウを管理するシステムソフトウェアであるウインドウマネージャが含まれている。Webブラウザには、可視領域用コンテンツを表示するためのプログラムが含まれている。このWebブラウザは、例えば、情報提供サーバ1等のサーバ装置からネットワークNWを介して取得されるようにしても良いし、ディスクDKに記録されてドライブ部24を介して読み込まれるようにしても良い。
システム制御部30は、CPU27、ROM28、RAM29等により構成されている。そして、システム制御部30は、CPU27が、Webブラウザ等の各種プログラムを読み出し実行することにより、第1判定手段、第2判定手段、設定手段、特定手段、位置情報取得手段、表示手段及びコンテンツ取得手段として機能するようになっている。
Webブラウザを起動した制御部30は、ウインドウ同士の重なりを判定するため、画面に表示されている各ウインドウの情報を取得する。各ウインドウの状態は、ウインドウに関して発生するイベントによって変化し得る。このようなイベントの種類としては、例えば、ウインドウのオープン(新規ウインドウの表示)、ウインドウのクローズ(ウインドウの消去)、アクティブウインドウの変更、ウインドウの移動、リサイズ等がある。システム制御部30は、このような特定のイベントが発生する度に、ウインドウの情報を取得する。なお、ウインドウに関する特定のイベントを、「特定イベント」と称する。特定イベントは、例えば、ウインドウマネージャからWebブラウザに通知する形態で、Webブラウザを起動中のシステム制御部30が認識することができる。特定イベントの通知の際にウインドウマネージャから渡される情報としては、例えば、特定イベントの種類、特定イベントが発生したウインドウのウインドウ識別子等がある。ウインドウ識別子は、ウインドウが新しくオープンされる度にウインドウマネージャによって付与される固有の情報である。
取得対象となるウインドウの情報としては、例えば、ウインドウ識別子、ウインドウが割り当てられたアプリケーションプログラムの識別情報、ウインドウの位置情報、クライアント領域の位置情報、表示優先順位等がある。これらの情報は、例えば、ウインドウシステムにより提供されるAPI(Application Program Interface)を通じて取得することができる。
アプリケーションプログラムの識別情報は、例えば、アプリケーションプログラムのファイル名であったり、アプリケーションプログラムの名称であったりする。ウインドウの位置情報は、例えば、ウインドウの左上端のスクリーン座標及びウインドウサイズ(ウインドウの縦横のピクセル数)である。クライアント領域の位置情報は、例えば、クライアント領域の左上端のスクリーン座標及びクライアント領域のサイズ(クライアント領域の縦横のピクセル数)である。
表示優先順位は、複数のウインドウの表示位置が重なった場合に、重なった範囲についてどのウインドウを表示するかを決定するために用いられる優先順位である。表示位置が重なっている複数のウインドウのうち最も表示優先順位が高いウインドウが、重なった範囲において優先的に表示される。表示優先順位が第1位であるウインドウが、アクティブウインドウである。アクティブウインドウは、ユーザによる文字等の入力や操作の対象となる。一方、アクティブウインドウ以外のウインドウが、非アクティブウインドウとなる。各ウインドウの表示優先順位は、ユーザの操作によって随時変化する。
各ウインドウの表示優先順位を取得するためのAPIが提供されていない場合、システム制御部30は、通知された特定イベントの種類に応じて、各ウインドウの表示優先順位を判断する。具体的に、ウインドウがオープンした場合、オープンしたウインドウがアクティブとなる。そのため、システム制御部30は、オープンしたウインドウの表示優先順位を第1位とし、画面に表示されていた他のウインドウの表示優先順位をそれぞれ1ずつ繰り下げる。Webブラウザの起動時には、ブラウザウインドウが1つオープンされる。従って、システム制御部30は、オープンしたブラウザウインドウの表示優先順位を第1位とする。このとき、ブラウザウインドウ以外のウインドウが複数オープンしている場合、これらのウインドウの正確な表示優先順位をWebブラウザ側で知ることができない。その場合、システム制御部30は、これらのウインドウに対して、第2位以下の優先順位を適当に割り当てる。ウインドウがクローズした場合、システム制御部30は、クローズしたウインドウよりも表示優先順位が低かったウインドウについて、表示優先順位をそれぞれ1ずつ繰り上げる。アクティブウインドウが変更された場合、システム制御部30は、アクティブになったウインドウの表示優先順位を第1位とし、このウインドウがアクティブになる前の表示優先順位よりも表示優先順位が高かったウインドウについて、表示優先順位をそれぞれ1ずつ繰り下げる。ウインドウが移動またはリサイズされた場合、移動またはリサイズされたウインドウがアクティブになるため、アクティブウインドウが変更された場合と同様となる。なお、ウインドウシステムの仕様や、個々のアプリケーションプログラムの仕様によっては、特定イベントが発生したときの表示優先順位の変化の態様が異なる場合がある。その場合には、それぞれの仕様に合わせて、表示優先順位が判断されるようにWebブラウザを構成すれば良い。
システム制御部30は、ウインドウの情報を管理するためのウインドウ管理テーブルをRAM29に生成する。ウインドウ管理テーブルには、ウインドウ識別子、アプリケーションプログラムの識別情報、ウインドウの位置情報、クライアント領域の位置情報及び表示優先順位が、ウインドウ管理情報としてウインドウ毎に設定される。Webブラウザに対して割り当てられたウインドウのウインドウ管理情報には、上述した情報の他、ウインドウ可視領域の位置情報及びクライアント可視領域の位置情報が設定される。これらの可視領域の位置情報は、可視領域として特定される多角形の領域の各頂点のスクリーン座標を示す。
[4.情報提供システムの動作]
次に、情報提供システムSの動作について、図7乃至図13を用いて説明する。
[4−1.ユーザ端末の動作]
ユーザ操作によってWebブラウザが起動されると、ユーザ端末2のシステム制御部30は、ブラウザウインドウを1つオープンする。そして、システム制御部30は、各ウインドウの情報を取得して、ウインドウ管理テーブルを生成する。このとき、システム制御部30は、ブラウザウインドウの表示優先順位を第1位に設定する。
その後、ユーザ操作に基づいて、システム制御部30は、新しいウインドウをオープンしたり、既存のウインドウをクローズしたり、移動やリサイズを行ったりする。また、ユーザがWebページのURLを指定すると、システム制御部30は、Webページのリクエストを、情報提供サーバ1等のWebサーバに送信し、Webサーバから受信したWebページを、Webブラウザの対象となるウインドウに表示させる。
図7及び図8は、本実施形態に係るユーザ端末2のシステム制御部30における処理例を示すフローチャートである。図7及び図8に示す処理は、Webブラウザが起動されている状態で、特定イベントがWebブラウザに通知される度に実行される。
先ず、特定イベントが通知されると、システム制御部30は、特定イベントの種類及び特定イベントが発生したウインドウのウインドウ識別子を取得する(ステップS11)。次いで、システム制御部30は、新たなウインドウ管理テーブルを生成する(ステップS12)。この新たなウインドウ管理テーブルを、「新ウインドウ管理テーブル」と称し、前回の特定イベント通知時に生成されたウインドウ管理テーブルを、「旧ウインドウ管理テーブル」と称する。なお、今回の特定イベントの通知が、Webブラウザが起動されてから最初の通知である場合には、Webブラウザの起動時に生成されたウインドウ管理テーブルを、旧ウインドウ管理テーブルとする。
次いで、システム制御部30は、各ウインドウのウインドウ識別子、アプリケーションプログラムの識別情報、ウインドウの位置情報及びクライアント領域の位置情報を取得し、これらの情報を新ウインドウ管理テーブルに設定する(ステップS13)。
次いで、システム制御部30は、各ウインドウの表示優先順位を取得する(ステップS14)。具体的に、システム制御部30は、ステップS11において取得した特定イベントの種類及びウインドウ識別子、新ウインドウ管理テーブルに設定されている各ウインドウのウインドウ識別子、旧ウインドウ管理テーブルに設定されている各ウインドウのウインドウ識別子及び表示優先順位に基づいて、現時点での各ウインドウの表示優先順位を判断する。次いで、システム制御部30は、新ウインドウ管理テーブルに各ウインドウの表示優先順位を設定する。
次いで、システム制御部30は、新ウインドウ管理テーブルに設定されているアプリケーションプログラムの識別情報に基づいて、ブラウザウインドウを1つ特定する(ステップS15)。
次いで、システム制御部30は、特定したブラウザウインドウのクライアント領域が他のウインドウによって一部隠れているか否かを判定する(ステップS16)。つまり、システム制御部30は、特定したブラウザウインドウが、部分可視ウインドウであるか否かを判定する。具体的に、システム制御部30は、新ウインドウ管理テーブルから、特定したブラウザウインドウの表示優先順位を取得する。次いで、システム制御部30は、新ウインドウ管理テーブルに設定されている各ウインドウの表示優先順位に基づいて、特定したブラウザウインドウの表示優先順位よりも表示優先順位が高いウインドウを抽出する。次いで、システム制御部30は、抽出したウインドウの位置情報と、特定したブラウザウインドウのクライアント領域の位置情報とに基づいて、特定したブラウザウインドウのクライアント領域と他のウインドウとの重なり具合を判断する。このとき、システム制御部30は、特定したブラウザウインドウのクライアント領域が他のウインドウの領域に完全に含まれている場合、または、特定したブラウザウインドウのクライアント領域が、他のウインドウの領域と全く重なっていない場合には、特定したブラウザウインドウのクライアント領域は一部隠れていないと判定する(ステップS16:NO)。この場合、システム制御部30は、ステップS18に移行する。
一方、システム制御部30は、特定したブラウザウインドウのクライアント領域の一部のみが他のウインドウの領域と重なる場合には、特定したブラウザウインドウのクライアント領域は一部隠れていると判定する(ステップS16:YES)。この場合、システム制御部30は、特定したブラウザウインドウのうち隠れていない範囲の位置情報を取得することにより、ウインドウ可視領域を特定する。また、システム制御部30は、特定したブラウザウインドウのクライアント領域のうち、ウインドウ可視領域に含まれる範囲の位置情報を取得することにより、クライアント可視領域を特定する(ステップS17)。そして、システム制御部30は、取得した位置情報を、新ウインドウ管理テーブルに設定する。システム制御部30は、ステップS17の処理を終えると、ステップS18に移行する。
ステップS18において、システム制御部30は、全てのブラウザウインドウを特定したか否かを判定する。このとき、システム制御部30は、特定していないブラウザウインドウが存在する場合には(ステップS18:NO)、次のブラウザウインドウを特定して(ステップS19)、ステップS16に移行する。
一方、システム制御部30は、Webブラウザの全てのウインドウを特定した場合には(ステップS18:YES)、可視領域用コンテンツが現在表示されているか否かを判定する(ステップS20)。このとき、システム制御部30は、可視領域用コンテンツが現在表示されていない場合には(ステップS20:NO)、ステップS23に移行する。
一方、システム制御部30は、可視領域用コンテンツが現在表示されている場合には(ステップS20:YES)、可視領域用コンテンツが現在表示されているブラウザウインドウ、すなわち、現在の表示対象ウインドウのうち少なくとも1つのウインドウのクライアント可視領域の位置情報が変化したか否かを判定する(ステップS21)。具体的に、システム制御部30は、旧ウインドウ管理テーブルに設定されているウインドウ識別子及びクライアント可視領域の位置情報と、新ウインドウ管理テーブルに設定されているウインドウ識別子及びクライアント可視領域の位置情報と、に基づいて判定を行う。このとき、現在の表示対象ウインドウのクライアント可視領域の位置情報が変化していない場合には(ステップS21:NO)、現在表示されている可視領域用コンテンツをこのまま表示させておいて良い。この場合、システム制御部30は、ステップS42に移行する。
一方、システム制御部30は、現在の表示対象ウインドウのうち少なくとも1つのウインドウのクライアント可視領域の位置情報が変化した場合には(ステップS21:YES)、各表示対象ウインドウのクライアント領域の表示内容を、可視領域用コンテンツの表示前の表示内容に復帰させる(ステップS22)。表示内容の復帰する方法としては、例えば、Webブラウザの閲覧履歴機能を用いても良い。システム制御部30は、ステップS22の処理を終えると、ステップS23に移行する。
ステップS23において、システム制御部30は、第1判定手段として、部分可視ウインドウが複数存在するか否かを判定する。このとき、システム制御部30は、部分可視ウインドウが複数存在しない場合には(ステップS23:NO)、ステップS42に移行する。
一方、システム制御部30は、部分可視ウインドウが複数存在する場合には(ステップS23:YES)、第2判定手段として、一体化している複数のウインドウ可視領域が存在するか否かを判定する(ステップS24)。具体的に、システム制御部30は、新ウインドウ管理テーブルに設定されている部分可視ウインドウのウインドウ可視領域の位置情報に基づいて、特定されている複数のウインドウ可視領域の中に、他のウインドウ可視領域と1つ以上接しているウインドウ可視領域が複数存在するか否かを判定する。そして、システム制御部30は、他のウインドウ可視領域と接しているウインドウ可視領域が存在しない場合には、一体化している複数のウインドウ可視領域が存在しないと判定する(ステップS24:NO)。この場合、システム制御部30は、ステップS42に移行する。
一方、システム制御部30は、それぞれ他のウインドウ可視領域と1つ以上接しているウインドウ可視領域が複数存在する場合には、一体化している複数のウインドウ可視領域が存在すると判定する(ステップS24:YES)。この場合、システム制御部30は、一体化しているウインドウ可視領域を特定する(ステップS25)。具体的に、システム制御部30は、各ウインドウ可視領域がそれ自身以外のウインドウ可視領域のうち、どのウインドウ可視領域を接しているかを、それぞれ判断する。そして、ウインドウ可視領域同士が接していることにより、領域として一続きとなっている複数のウインドウ可視領域を、一体化しているウインドウ可視領域として特定する。
例えば、ウインドウ可視領域WV5〜WV10が存在するとする。ウインドウ可視領域WV5〜WV7は、それぞれウインドウ可視領域WV8と接している。また、ウインドウ可視領域WV7は、ウインドウ可視領域WV9にも接している。なお、ウインドウ可視領域WV10は、何れのウインドウ可視領域とも接していない。この場合、ウインドウ可視領域WV5〜WV9が一続きとなっているので、ウインドウ可視領域WV5〜WV9は、一体化したウインドウ可視領域として特定される。
次いで、システム制御部30は、設定手段として、コンテンツ表示領域を設定する。
先ず、システム制御部30は、画面上においてコンテンツ表示領域を設定可能な範囲を、設定可能領域として特定する(ステップS26)。具体的に、システム制御部30は、一体化している複数のウインドウ可視領域が画面に占める範囲を、一体化領域として特定する。
図9(a)は、一体化領域200の一例を示す図である。また、図9(b)は、設定可能領域300の一例を示す図である。
例えば、図2(a)に示すウインドウ可視領域WV2〜WV4を合わせた範囲が、図9(a)に示す一体化領域200に相当する。次いで、システム制御部30は、特定した一体化領域から、この一体化領域の縁(ふち)の部分に相当する非クライアント領域を除いて、設定可能領域とする。そして、システム制御部30は、特定した設定可能領域の位置情報を取得する。この位置情報は、設定可能領域として特定される多角形の領域の各頂点のスクリーン座標を示す。
例えば、一体化領域200から縁の部分に相当する非クライアント領域を除くと、図9(b)に示す設定可能領域300が特定される。設定可能領域300は、クライアント可視領域CV2〜CV4と、ウインドウ可視領域WV2〜WV4に含まれる非クライアント領域のうちクライアント可視領域同士を隔てている非クライアント領域と、で構成されている。
次いで、システム制御部30は、コンテンツ表示領域の候補となる領域(以下、「候補領域」と称する)を、設定可能領域内で抽出する(ステップS27)。具体的に、システム制御部30は、矩形の領域を候補領域として設定する。このとき、矩形の領域の4辺全てについて、その辺の少なくとも一部分が設定可能領域の境界線(設定可能領域を形成する辺)と接する領域を、候補領域として設定する。このように候補領域を設定する理由は、可能な限り面積が大きい領域を抽出するためである。このとき、システム制御部30は、抽出された候補領域の中から、1つのクライアント可視領域のみと重なっている候補領域を、コンテンツ表示領域の候補から除外する。
図10(a)乃至(c)、図11(a)及び(b)は、それぞれ候補領域の一例を示す図である。
例えば、図9(b)に示す設定可能領域300から、図10(a)乃至(c)、図11(a)及び(b)に示される領域301〜305が、仮の候補領域として抽出される。そして、領域301〜305のうち、図11(a)に示す領域304は、クライアント可視領域CV4としか重なっていない。そこで、領域304は、コンテンツ表示領域の候補から除外され、最終的な候補領域は、領域301、302、303及び305となる。
システム制御部30は、候補領域を抽出すると、それぞれの左上端のスクリーン座標及びサイズ(縦横のピクセル数)を取得する。
次いで、システム制御部30は、複数のクライアント可視領域と重なっている候補領域の中から、面積が最大となる候補領域を、コンテンツ表示領域として選択する(ステップS28)。例えば、領域301、302、303及び305のうち、図11(b)に示す領域305の面積が最も大きい場合、領域305がコンテンツ表示領域として選択される。
次いで、システム制御部30は、選択した候補領域のスクリーン座標及びサイズを、コンテンツ表示領域のスクリーン座標及びサイズとして取得する(ステップS29)。例えば、図11(b)に示すように、領域305のスクリーン座標、縦のピクセル数及び横のピクセル数は、座標(x1,y1)、hcピクセル及びwcピクセルである。
次いで、システム制御部30は、現在のアクティブウインドウにWebページが表示されているか否かを判定する(ステップS30)。このとき、システム制御部30は、現在のアクティブウインドウにWebページが表示されていない場合には(ステップS30:NO)、情報提供サーバ1にコンテンツリクエストを送信する(ステップS33)。このとき、システム制御部30は、設定したコンテンツ表示領域のサイズをコンテンツリクエストに設定する。
一方、システム制御部30は、現在のアクティブウインドウにWebページが表示されている場合には(ステップS30:YES)、アクティブウインドウに表示されているWebページのURLを取得して(ステップS31)、情報提供サーバ1にコンテンツリクエストを送信する(ステップS32)。このとき、システム制御部30は、設定したコンテンツ表示領域のサイズ及び取得したURLを、コンテンツリクエストに設定する。
システム制御部30は、ステップS32またはS33においてコンテンツリクエストを送信した後、コンテンツ取得手段として、情報提供サーバ1からレスポンスを受信する(ステップS34)。すると、システム制御部30は、受信したレスポンスに可視領域用コンテンツが設定されているか否かを判定する(ステップS35)。このとき、システム制御部30は、受信したレスポンスに可視領域用コンテンツが設定されていない場合には(ステップS35:NO)、ステップS42に移行する。
一方、システム制御部30は、受信したレスポンスに可視領域用コンテンツが設定されている場合には(ステップS35:YES)、特定手段として、コンテンツ表示領域との重なりがあるクライアント可視領域を含む部分可視ウインドウを、今回の表示対象ウインドウとして抽出する(ステップS36)。例えば、図11に示す領域305は、クライアント可視領域CV2〜CV4と重なっているので、ウインドウW2〜W4が、表示対象ウインドウとして抽出される。
次いで、システム制御部30は、抽出した表示対象ウインドウのうち1つの表示対象ウインドウを特定する(ステップS37)。
次いで、システム制御部30は、位置情報取得手段として、コンテンツ表示領域の左上端のスクリーン座標を、特定した表示対象ウインドウのクライアント領域の座標系に対応する座標、すなわちクライアント座標(本発明における位置情報の一例)に変換する。具体的に、コンテンツ表示領域のスクリーン座標を座標(sx,sy)、特定した表示対象ウインドウのクライアント領域の左上端のスクリーン座標を座標(x,y)、変換後の座標を座標(cx,cy)とする。この場合、システム制御部30は、cx=sx−x、及び、cy=sy−y、を計算する。
図12(a)乃至(c)は、コンテンツ表示領域の左上端の座標の変換例を示す図である。
例えば、図11(b)に示すコンテンツ表領域としての領域305のスクリーン座標(x1,y1)は、クライアント領域C2に対しては、図12(a)に示すように、座標(x2,y2)に変換される。また、座標(x1,y1)は、クライアント領域C3に対しては、図12(b)に示すように、座標(x3,y3)に変換される。また、座標(x1,y1)は、クライアント領域C4に対しては、図12(c)に示すように、座標(x4,y4)に変換される。
次いで、システム制御部30は、表示手段として、特定した表示対象ウインドウのクライアント領域に、レスポンスに設定されている可視領域用コンテンツを表示する(ステップS39)。このとき、システム制御部30は、可視領域用コンテンツの左上端の表示位置を、変換されたコンテンツ表示領域の左上端のクライアント座標が示す位置に合わせる。また、システム制御部30は、可視領域用コンテンツの表示サイズを、コンテンツ表示領域のサイズに合わせてリサイズする。
次いで、システム制御部30は、全ての表示対象ウインドウを特定したか否かを判定する(ステップS40)。このとき、システム制御部30は、特定していない表示対象ウインドウが存在する場合には(ステップS40:NO)、次の表示対象ウインドウを特定して(ステップS41)、ステップS38に移行する。
一方、システム制御部30は、全ての表示対象ウインドウを特定した場合には(ステップS40:YES)、ステップS42に移行する。システム制御部30は、ステップS38及びS39の処理を繰り返すことにより、各表示対象ウインドウに対して、可視領域用コンテンツを表示する。これにより、例えば、図3(b)に示すように、可視領域用コンテンツが、1つのコンテンツとして認識されるように画面に表示される。
ステップS42において、システム制御部30は、旧ウインドウ管理テーブルをRAM29から削除して、図7及び図8に示す処理を終了させる。
なお、複数のウインドウ可視領域同士が接することによる一体化が、複数箇所で発生する場合がある。つまり、設定可能領域を複数特定することができる場合がある。この場合、システム制御部30は、例えば、何れかの設定可能領域にのみコンテンツ表示領域を設定し、このコンテンツ表示領域についてコンテンツを表示しても良いし、各設定可能領域にそれぞれコンテンツ表示領域を設定し、それぞれコンテンツを表示しても良い。
[4−2.情報提供サーバ1の動作]
図13は、本実施形態に係る情報提供サーバ1のシステム制御部17における処理の処理例を示すフローチャートである。図13に示す処理は、情報提供サーバ1が、ユーザ端末2からコンテンツリクエストを受信したときに実行される。
先ず、システム制御部17は、コンテンツDB121に登録されているコンテンツのうち、コンテンツ表示領域のサイズがリサイズ許容範囲内にあるコンテンツを、可視領域用コンテンツの一次候補群として抽出する(ステップS51)。受信されたコンテンツリクエストに設定されているコンテンツ表示領域のサイズが示す縦のピクセル数及び横のピクセル数を、hc及びwcとする。また、コンテンツDB121に登録されているリサイズ許容範囲情報が示す縦のピクセル数の下限値及び上限値、並びに、横のピクセル数の下限値及び上限値を、h1及びh2、並びに、w1及びw2とする。このとき、h1≦hc≦h2、且つ、w1≦wc≦w2、が満たされる場合、システム制御部17は、コンテンツ表示領域のサイズが、コンテンツのリサイズの許容範囲内であると判定する。
次いで、システム制御部17は、一次候補群としてコンテンツが1つ以上抽出されたか否かを判定する(ステップS52)。このとき、システム制御部17は、コンテンツが1つも抽出されなかった場合には(ステップS52:NO)、コンテンツリクエストを送信してきたユーザ端末2に対して、コンテンツを含まないレスポンスを送信する(ステップS53)。そして、システム制御部17は、図13に示す処理を終了させる。
一方、システム制御部17は、一次候補群としてコンテンツが1つ以上抽出された場合には(ステップS52:YES)、コンテンツリクエストにWebページのURLが設定されているか否かを判定する(ステップS54)。このとき、システム制御部17は、コンテンツリクエストにWebページのURLが設定されていない場合には(ステップS54:NO)、一次候補群を、可視領域用コンテンツの最終候補群とする(ステップS55)。
一方、システム制御部17は、コンテンツリクエストにWebページのURLが設定されている場合には(ステップS54:YES)、WebページのURLに対応するキーワードがWebページ情報DB122に登録されているか否かを判定する(ステップS56)。このとき、システム制御部17は、WebページのURLに対応するキーワードが登録されていない場合には(ステップS56:NO)、一次候補群を、可視領域用コンテンツの最終候補群とする(ステップS55)。
一方、システム制御部17は、WebページのURLに対応するキーワードが登録されている場合には(ステップS56:YES)、一次候補群のコンテンツの中から、コンテンツDB121に登録されているキーワードが、WebページのURLに対応するキーワードと一致するコンテンツを、最終候補群として抽出する(ステップS57)。次いで、システム制御部17は、最終候補群としてコンテンツが1つ以上抽出されたか否かを判定する(ステップS58)。このとき、システム制御部17は、コンテンツが1つも抽出されなかった場合には(ステップS58:NO)、一次候補群を、可視領域用コンテンツの最終候補群とする(ステップS55)。
システム制御部17は、最終候補群としてコンテンツが1つ以上抽出された場合(ステップS58:YES)、または、一次候補群を最終候補群とした場合には(ステップS55)、最終候補群のコンテンツのうち、アスペクト比がコンテンツ表示領域のアスペクト比と最も近いコンテンツを、可視領域用コンテンツとして選択する(ステップS59)。なお、コンテンツのアスペクト比は、コンテンツDB121に登録されている原表示サイズが示す縦横のピクセル数から算出され、コンテンツ表示領域のアスペクト比は、コンテンツ表示領域のサイズが示す縦横のピクセル数から算出される。
次いで、システム制御部17は、コンテンツリクエストを送信してきたユーザ端末2に対して、選択した可視領域用コンテンツを設定したレスポンスを送信して(ステップS60)、図13に示す処理を終了させる。
以上説明したように、本実施形態によれば、ユーザ端末2のシステム制御部30が、画面に配置されたウインドウ同士が重なることにより複数のウインドウが部分的に隠れたか否かを判定し、複数のウインドウが部分的に隠れたと判定された場合には、他の前記可視領域と接していることにより一体化している複数の可視領域が存在するか否かを判定し、存在すると判定された場合には、一体化している複数の可視領域が画面に対して占める範囲内にコンテンツ表示領域を設定し、コンテンツ表示領域との重なりがある可視領域を含むウインドウを表示対象ウインドウとして特定し、特定された各表示対象ウインドウの座標系に対応するコンテンツ表示領域の位置を示す座標を取得し、特定された各表示対象ウインドウに、取得された座標が示す位置でコンテンツを表示する。従って、コンテンツ表示領域が設定された場所に、コンテンツが全体的に表示されるので、複数の可視領域を利用してコンテンツを大きく表示することができる。
また、システム制御部30が、複数の可視領域と重なるようにコンテンツ表示領域を設定するので、可視領域をより有効利用することができる。
また、システム制御部30が、コンテンツ表示領域の面積が最大となるようにコンテンツ表示領域を設定するので、コンテンツを可能な限り大きく表示することができる。
また、システム制御部30は、コンテンツ表示領域の形状に合うコンテンツを取得し、取得されたコンテンツを、特定された各表示対象ウインドウに表示する。具体的に、システム制御部30が、コンテンツ表示領域のアスペクト比と最も近いアスペクト比を有するコンテンツを取得するので、コンテンツの元のアスペクト比に近いアスペクト比で、コンテンツを表示することができる。
また、システム制御部30が、アクティブなウインドウの表示内容に関連するコンテンツを取得し、取得されたコンテンツを、特定された各表示対象ウインドウに表示するので、ユーザの関心を引くコンテンツを表示することができる。
なお、上記実施形態においては、リサイズ許容範囲情報として、コンテンツの縦横のピクセル数が設定されていた。しかしながら、リサイズ許容範囲情報として、拡大率の下限値及び上限値の少なくとも何れか一方が設定されていても良い。この場合、情報提供サーバ1は、クライアント領域のサイズに合わせてコンテンツをリサイズした場合の拡大率が、リサイズ許容範囲情報に示す範囲内にあるコンテンツを選択する。また、この場合、コンテンツ毎にリサイズ許容範囲情報がデータベースに登録されていなくても良く、全コンテンツで共通したリサイズ許容範囲情報が、情報提供サーバ1の記憶部12に記憶されていても良い。
また、上記実施形態においては、設定可能領域内において、面積が最大となる領域をコンテンツ表示領域としていたが、面積が最大とならなくても良い。また、コンテンツ表示領域の各辺が設定可能領域の境界線に接していなくても良い。
また、上記実施形態においては、可視領域用コンテンツの候補として、コンテンツDB121には、矩形のコンテンツが登録されていたが、矩形以外のコンテンツが登録されていても良い。また、ユーザ端末2は、コンテンツ表示領域として、矩形以外の形状の領域を設定しても良い。例えば、図10(a)〜(c)、図11(a)及び(b)に示す領域301〜305の中から複数の領域を組み合わせて、コンテンツ表示領域としても良い。この場合、情報提供サーバ1は、コンテンツDB121に登録されているコンテンツの中から、設定されたコンテンツ表示領域の形状と最も形状が合うコンテンツを、可視領域用コンテンツとして選択しても良い。
また、上記実施形態においては、コンテンツ表示領域のサイズがリサイズの許容範囲内であるコンテンツが、可視領域用コンテンツとして選択されるようにしていたが、リサイズの許容範囲に係わらず可視領域用コンテンツを選択するように構成しても良い。また、上記実施形態においては、コンテンツ表示領域のアスペクト比と最も近いアスペクト比を有するコンテンツが可視領域用コンテンツとして選択されるようにしていたが、アスペクト比に係わらず可視領域用コンテンツを選択するように構成しても良い。また、コンテンツDB121に登録されているコンテンツの中から、ランダムに可視領域用コンテンツが選択されるようにしても良い。
また、上記実施形態において、アクティブウインドウの表示内容を特定する特定情報を、WebページのURLに適用していたが、他の情報に適用しても良い。例えば、アクティブウインドウに表示されているWebページが、例えば、商品、サービス、Webページ等の検索結果一覧を示すWebページである場合には、検索に用いられたキーワードや検索条件を特定情報とし、この情報をユーザ端末2が情報提供サーバに送信しても良い。
また、情報提供サーバ1において、可視領域用コンテンツを選択する場合、ユーザの個人情報に基づいて可視領域用コンテンツを選択しても良い。例えば、ユーザの年齢、性別、居住地域等のユーザの属性情報を情報提供サーバ1の記憶部12に記憶させておき、この属性情報に基づいて、可視領域用コンテンツが選択されるようにしても良い。また、例えば、情報提供サイトまたは所定のWebサイトにおけるユーザによる商品やサービスの購入履歴を情報提供サーバ1の記憶部12に記憶させておき、この購入履歴に基づいてコンテンツが選択されるようにしても良い。この場合において、例えば、ユーザが購入した商品のジャンルと同じジャンルまたは関連するジャンルの商品の広告等のコンテンツが選択されるようにする。また、ユーザによるWebページの閲覧履歴やサービスの利用履歴等を情報提供サーバ1の記憶部12に記憶させておき、この閲覧履歴や利用履歴等に基づいてコンテンツが選択されるようにしても良い。何れの場合も、ユーザ端末2に表示させる可視領域用コンテンツをパーソナライズすることができる。なお、このようなユーザの個人情報と、コンテンツリクエストを送信してきたユーザ端末2を利用しているユーザとの対応付けは、例えば、公知のログイン認証により可能である。
また、上記実施形態においては、ウインドウが部分的に隠れたときに、可視領域用コンテンツが情報提供サーバ1からユーザ端末2に送信されるようになっていた。しかしながら、予め情報提供サーバ1が複数のコンテンツをユーザ端末2に送信して、ユーザ端末2が予め記憶部25にコンテンツを記憶しておいても良い。そして、ウインドウが部分的に隠れたときに、ユーザ端末2が、記憶部25に記憶されたコンテンツの中から可視領域用コンテンツとなるコンテンツを取得して表示しても良い。
また、上記実施形態においては、Webページの送信とコンテンツの送信とを1台のサーバ装置が行っていたが、夫々の処理を別々のサーバ装置に行わせても良い。
また、上記実施形態においては、可視領域用コンテンツの表示を、Webブラウザにより実現していたが、例えば、ウインドウマネージャにより実現しても良い。また、上記実施形態においては、可視領域用コンテンツの表示対象とするウインドウを、ブラウザウインドウのみとしていたが、あらゆるアプリケーションプログラムのウインドウを対象としても良い。
また、上記実施形態においては、アクティブウインドウがブラウザウインドウである場合にのみ、アクティブウインドウの表示内容に関連する可視領域用コンテンツが表示されるようにしていた。しかしながら、アクティブウインドウがWebブラウザ以外のアプリケーションプログラムのウインドウである場合にも、アクティブウインドウの表示内容に関連する関連する可視領域用コンテンツが表示されるようにしても良い。