本発明の実施形態として、利用者Aが利用する一のクライアント端末と利用者Bが利用する他のクライアント端末とで同一のコンテンツを表示させ、利用者Aがクライアント端末を用いて行ったスクロール操作に連動して、利用者Bのクライアント端末の表示を自動スクロールさせる表示システムについて説明する。
以下、利用者Aがスクロール操作を行うクライアント端末を「操作クライアント端末」と称し、利用者Bが閲覧する端末であり、スクロール制御先のクライアント端末を、「制御先クライアント端末」と称する。
また下記実施形態において、ある時刻の「スクロール量」とは、表示画面の所定位置に関し、スクロール操作開始直前に表示していたコンテンツ内の位置から、スクロール操作中の当該時刻に表示しているコンテンツ内の位置までの移動量を示す。
《第1実施形態》
〈第1実施形態によるコンテンツ表示制御装置を利用した表示システムの構成〉
本発明の第1実施形態によるコンテンツ表示制御装置を利用した表示システムの構成について、図1を参照して説明する。
本実施形態による表示システム1Aは、利用者A(例えば、講義を行う講師)により操作される操作クライアント端末10と、利用者B(例えば、講義を受講する受講者)により操作される制御先クライアント端末20と、操作クライアント端末10および制御先クライアント端末20に接続されたコンテンツ表示制御装置30Aとを有する。
操作クライアント端末10は、コンテンツを表示するモニタ11と、モニタ11へのコンテンツの表示制御を行うブラウザ12(システム内におけるブラウザIDが「A」であり、以下「ブラウザA」と称する)と、利用者Aによりモニタ11内の表示ウィンドウに表示されたコンテンツをスクロールさせるための操作が行われるとこれを検知し、当該スクロール操作のスクロール量を算出するために要するスクロール情報を所定時間間隔で取得するスクロール情報取得部13と、スクロール情報取得部13で取得したスクロール情報をコンテンツ表示制御装置30Aに送信するスクロール情報送信部14とを有する。
スクロール情報取得部13で取得されるスクロール情報は、当該スクロール操作開始からt秒経過した時刻tにおける操作情報I(t)を含む。操作情報I(t)はスクロール操作中に時間経過とともに変化する情報であり、例えば、画面に表示されたスクロールバーを移動させるスクロール操作の場合は、画面上の操作位置を示す座標情報、マウスのホイールボタンを回転させるスクロール操作の場合は、ホイールボタンの目盛り位置情報である。また、スクロール情報は、操作対象の表示ウィンドウの所定位置にコンテンツのどの部分が表示されているかを算出するための情報や、スクロール操作が終了したことを検知したときのスクロール終了通知を含む。
制御先クライアント端末20は、コンテンツを表示するモニタ21と、モニタ21へのコンテンツの表示制御を行うブラウザ22(システム内におけるブラウザIDが「B」であり、以下「ブラウザB」と称する)と、コンテンツ表示制御装置30Aから操作クライアント端末10に関するスクロール速度情報を受信するスクロール速度情報受信部23と、受信したスクロール速度情報に基づいた速度でモニタ21に表示されているコンテンツをスクロールさせる表示制御部24とを有する。
コンテンツ表示制御装置30Aは、スクロール情報取得部301と、操作情報記憶部302と、ブラウザ情報記憶部303と、開始スクロール速度算出部304と、スクロール速度更新部305と、スクロール終了処理部306とを有する。
スクロール情報取得部301は、操作クライアント端末10から送信されたスクロール情報を取得する。
操作情報記憶部302は、スクロール情報取得部301で取得された操作クライアント端末10に関するスクロール情報に含まれる、操作情報I(t)を格納した操作情報DBを記憶する。
ブラウザ情報記憶部303は、操作クライアント端末10、および制御先クライアント端末20それぞれのブラウザ情報を格納したブラウザ情報DBを記憶する。ブラウザ情報には、各ブラウザによりコンテンツXを表示している表示ウィンドウのサイズ情報が含まれる。
開始スクロール速度算出部304は、操作クライアント端末10でスクロール操作が開始された直後の操作情報Iに基づいて、操作クライアント端末10で開始されたスクロール操作のスクロール速度を算出し、算出したスクロール速度から、制御先クライアント端末20で実行させる自動スクロールの開始時のスクロール速度の情報を算出する。算出したスクロール速度の情報は、制御先クライアント端末20に送信する。
スクロール速度更新部305は、操作クライアント端末10で実行中のスクロール操作において、単位時間あたりのスクロール変化量(スクロール速度変化量)が、予め設定された閾値を超えたときに、操作情報記憶部302に記憶された操作情報DBの情報に基づいて、制御先クライアント端末20で実行させる自動スクロールのスクロール速度を新たに算出し、新たなスクロール速度の情報を制御先クライアント端末20に送信して更新させる。
スクロール終了処理部306は、スクロール情報取得部301で取得されたスクロール情報に基づいて、スクロール操作が終了したと判断すると、スクロール終了処理を行う。
〈第1実施形態によるコンテンツ表示制御装置を利用した表示システムの動作〉
次に、本実施形態による表示システム1Aにおいて、操作クライアント端末10のモニタ11に表示されているコンテンツに対して実行されたスクロール操作に連動させて、制御先クライアント端末20のモニタ21に表示されているコンテンツをスクロールさせる動作について説明する。
まず図2に示すように、表示システム1Aの操作クライアント端末10においてブラウザAが起動されてモニタ11内の表示ウィンドウに所定のコンテンツが表示され、制御先クライアント端末20においてブラウザBが起動されてモニタ21内の表示ウィンドウに所定のコンテンツが表示される。本実施形態において、操作クライアント端末10のモニタ11と制御先クライアント端末20のモニタ21とには、同一のコンテンツXが表示されている。
操作クライアント端末10のモニタ11内の表示ウィンドウにコンテンツXが表示された状態で、利用者Aにより、マウス等のユーザインタフェース装置を用いて当該表示ウィンドウ内でコンテンツXの表示に対しスクロール操作が行われると、スクロール情報取得部13においてこの操作が検知される。
スクロール情報取得部13においてスクロール操作が検知されると、スクロール情報取得部13においてスクロール情報が所定時間間隔(例えば、0.01秒間隔)で取得される。
スクロール情報取得部13で取得されたスクロール情報は、スクロール情報送信部14によりコンテンツ表示制御装置30Aに送信される。
操作クライアント端末10から送信されたスクロール情報は、コンテンツ表示制御装置30Aのスクロール情報取得部301で取得される。
スクロール情報が取得されたときにスクロール情報取得部301で実行される処理について、図3のフローチャートを参照して説明する。
まず、スクロール情報取得部301において、操作クライアント端末10からスクロール操作開始直後の時刻t(0.01)に送信されたスクロール情報が取得される(S1)。
取得された時刻t(0.01)のスクロール情報には、時刻t(0.01)のスクロール量を算出するための操作情報I(0.01)と、操作対象のブラウザID「ブラウザA」の情報とが含まれ、図4に示すように操作情報記憶部302の操作情報DBに格納される(S2)。
スクロール操作開始直後はスクロール情報にスクロール終了通知が含まれていないため(S3の「NO」)ステップS4に進み、スクロール情報取得部301により、ブラウザ情報記憶部303内のブラウザ情報DBのレコード数が「0」であるか否かが判定される(S4)。
ここではスクロール操作開始直後であるためにレコード数が「0」であり(S4の「YES」)、スクロール情報取得部301により、接続されている全てのクライアント端末(操作クライアント端末10および制御先クライアント端末20)からそれぞれのブラウザ情報が取得され、ブラウザ情報DBに格納される(S5)。
ブラウザ情報DBに格納されたブラウザ情報の例を、図5に示す。図5では、操作クライアント端末10のブラウザ情報として、ブラウザAでコンテンツXを表示している表示ウィンドウのウィンドウサイズwa(wax,way)が格納され、制御先クライアント端末20のブラウザ情報として、ブラウザBでコンテンツXを表示している表示ウィンドウのウィンドウサイズwb(wbx,wby)が格納されている。ここで、wax、wbxはそれぞれ、表示ウィンドウの横方向のウィンドウサイズを示し、way、wbyはそれぞれ、表示ウィンドウの縦方向のウィンドウサイズを示す。
ブラウザ情報DBに、操作クライアント端末10から取得されたブラウザAのブラウザ情報、および、制御先クライアント端末20から取得されたブラウザBのブラウザ情報が格納されると、スクロール情報取得部301から開始スクロール速度算出部304に、ブラウザAの操作情報I(0.01)が通知される(S6)。
以上でスクロール操作開始直後のスクロール情報が取得されたときにスクロール情報取得部301において実行される処理が終了し、ステップS1に戻って処理が継続される。
上述したステップS6の処理によりブラウザAの操作情報I(0.01)が通知されたときに、開始スクロール速度算出部304で実行される開始スクロール量算出処理について、図6のフローチャートを参照して説明する。
スクロール情報取得部301から操作情報I(0.01)が取得されると(S11)、開始スクロール量算出処理が開始され、ブラウザAのブラウザ情報と、ブラウザA以外の未処理のブラウザBのブラウザ情報がブラウザ情報DBから取得される(S12)。
次に、取得したブラウザAの操作情報I(0.01)と、ブラウザAおよびBのブラウザ情報とを用いて、ブラウザAの当該時刻t(0.01)における操作スクロール量sAおよびこの操作スクロール量sAに対応する、ブラウザB内での単位時間「0.01」あたりの制御スクロール量sBが算出される(S13)。つまり、「ブラウザAの当該時刻t(0.01)における操作スクロール量sA」は、ブラウザAにおけるスクロール操作のスクロール速度を示し、ブラウザB内での単位時間「0.01」あたりの制御スクロール量sBは、ブラウザBにおいて制御されるスクロールのスクロール速度である。
この制御スクロール量s
Bは既知の方法を用いて容易に算出可能であり、例えば、図5に示したように、ブラウザAで表示されている表示ウィンドウのウィンドウサイズがwa(wa
x、wa
y)であり、時刻t(0.01)における操作スクロール量s
Aのうちのx軸方向のスクロール量がX
Aであり、y軸方向のスクロール量がY
Aであり、ブラウザBで表示されているウィドウのウィンドウサイズがwb(wb
x、wb
y)である場合、ブラウザBにおける制御スクロール量s
Bのうちのx軸方向の制御スクロール量X
B、およびy軸方向の制御スクロール量Y
Bは、下記式(1)および(2)により算出される。
ここで、ブラウザ情報DBに、他の制御先クライアント端末のブラウザに関する未処理のレコードがあれば、同様にステップS12、S13の処理が実行される(S14)。
すべての制御先クライアント端末のブラウザごと(ここではブラウザB)の、時刻t(0.01)におけるx軸方向の制御スクロール量XB、およびy軸方向の制御スクロール量YBから、任意の時間(t’)が経過したときの制御スクロール量sBの近似値を求める関数が算出される(S15)。この関数はN次関数、例えば一次関数により表現される。
算出された関数は、スクロール速度情報として、該当する制御先クライアント端末20に送信される(S16)。
制御先クライアント端末20では、コンテンツ表示制御装置30Aから送信された関数がスクロール速度情報受信部23で受信され、この関数に基づいて表示制御部24で以降の制御スクロール量sBが所定時間間隔で算出される。そして、算出された制御スクロール量sBに基づくスクロール速度で、ウィンドウに表示されたコンテンツXの自動スクロールが開始される。開始後は、新たな関数に更新されるまでは、開始時のスクロール速度で自動スクロールが継続される。
以降、操作クライアント端末10でのスクロール操作継続中にスクロール情報取得部301で実行される処理について、図3に戻って説明する。
スクロール情報取得部301では、操作クライアント端末10から順次送信されるスクロール情報が継続して取得されており(S1)、取得されたスクロール情報に含まれる操作情報I(0.02、0.03・・・t1)が、ブラウザID「ブラウザA」とともに操作情報記憶部302の操作情報DBに格納される(S2、図4参照)。
スクロール操作中はスクロール情報にスクロール終了通知が含まれず(S3の「NO」)、ブラウザ情報DBにはすべてのブラウザのブラウザ情報が既に格納されておりレコードが「0」ではないため(S4の「NO」)、ステップS7に進み、操作情報DBに格納された情報を用いて、前回格納した操作情報I(0.01)から今回取得した操作情報I(0.02)までのスクロール変化量Δm(単位時間「0.01」あたりの操作情報Iの変化量)が算出される(S7)。
例えば、今回取得された操作情報I(0.02)が、操作情報DBのn行目のレコードとして格納されており、操作情報DBのn行目のレコードの操作情報がI(n)であり、(n-1)行目のレコードの操作情報がI(n-1)である場合、操作情報I(n)と操作情報I(n-1)とからスクロール変化量Δmが算出される。
つまり、表示ウィンドウのx軸方向へのスクロールであれば、操作情報I(n)に含まれるx軸方向のスクロール量と、操作情報I(n-1)に含まれるx軸方向のスクロール量との差の絶対値から、スクロール変化量Δmが算出される。
同様に、表示ウィンドウのy軸方向へのスクロールであれば、操作情報I(n)に含まれるy軸方向のスクロール量と、操作情報I(n-1)に含まれるy軸方向のスクロール量との差の絶対値から、スクロール変化量Δmが算出される。
次に、算出されたスクロール変化量Δmが、予め設定された閾値M以上であるか否かが判定される(S8)。閾値Mは、「スクロール速度が速くなった」か否かを判定するための基準値である。
判定の結果、スクロール変化量Δmが閾値未満でありスクロール速度が早くなっていないと判定されたとき(S8の「NO」)には、スクロール速度更新部305への通知は行われず、そのままステップS1に戻って処理が継続される。つまり制御先クライアント端末20では、ステップS16で送信された関数に基づいた制御スクロール量で、自動スクロールが継続される。
また判定の結果、スクロール変化量Δmが閾値M以上でありスクロール速度が速くなったと判定されたとき(S8の「YES」)は、該当する時刻tと、ステップS7で算出されたスクロール変化量Δmとが、スクロール速度更新部305に通知される(S9)。
以上でスクロール情報取得部301においてスクロール操作中のスクロール情報が取得されたときに実行される処理が終了し、ステップS1に戻って処理が継続される。
上述したステップS9の処理により、時刻tとスクロール変化量Δmとが通知されたときに、スクロール速度更新部305で実行されるスクロール量更新処理について、図7のフローチャートを参照して説明する。
スクロール情報取得部301から時刻tとスクロール変化量Δmが取得されると(S21の「YES」)、これらに基づいてスクロール量更新処理が開始され、該当するブラウザAに関し、スクロール開始直前のt(0)から任意の時間(t’)が経過したときの操作スクロール量sAの近似値を求める関数が算出される(S22)。この関数はN次関数、例えばsA(t’)=a×t’+b(a,bは実数)の一次関数により表現される。
次に、ブラウザAのブラウザ情報と、ブラウザA以外の未処理のブラウザBのブラウザ情報がブラウザ情報DBから取得される(S23)。
次に、ステップS22で算出されたブラウザAの操作スクロール量sAと、ステップS23で取得されたブラウザAおよびBのブラウザ情報とを用いて、ステップS13と同様の処理により、ブラウザBの当該時刻tにおける制御スクロール量sBが算出される(S24)。
ここで、ブラウザ情報DBに、他の制御先クライアント端末のブラウザに関する未処理のレコードがあれば、同様にステップS23、S24の処理が実行される(S25)。
すべての制御先クライアント端末のブラウザごと(ここではブラウザB)の、時刻tにおけるx軸方向の制御スクロール量XB、およびy軸方向の制御スクロール量YBから、スクロール開始直前から任意の時間(t’)が経過したときの制御スクロール量sBの近似値を求める新たな関数が算出される(S26)。この関数はN次関数、例えば一次関数により表現される。
算出された新たな関数は、スクロール速度情報として、該当する制御先クライアント端末20に送信される(S27)。
制御先クライアント端末20では、コンテンツ表示制御装置30Aから送信された関数がスクロール速度情報受信部23で受信され、この関数に基づいて表示制御部24で以降の制御スクロール量sBが所定時間間隔で算出される。そして、制御中の自動スクロールのスクロール速度が、ステップS27の処理により送信された関数で算出される制御スクロール量sBに基づくスクロール速度に更新(変更)されて、自動スクロールが継続される。
また、ステップS21において時刻tとスクロール変化量Δmが取得されていないときであっても(S21の「NO」)、ステップS16またはS27の処理により制御先クライアント端末20に関数を送信してから、予め設定された所定期間が経過した場合(S28の「YES」)には、ステップS22〜S27の処理が実行される。
制御先クライアント端末20での自動スクロールが開始された後、操作クライアント端末10でのスクロール操作が終了されたときにスクロール情報取得部301で実行される処理について、図3に戻って説明する。
スクロール情報取得部301では、スクロール操作終了時(t2)のスクロール情報が取得されると(S1)、取得されたスクロール情報に含まれる操作情報I(t2)が、ブラウザIDとともに操作情報記憶部302の操作情報DBに格納される(S2、図4参照)。
このスクロール情報にはスクロール終了通知が含まれているため(S3の「YES」)、スクロール終了処理部306に操作情報I(t2)が通知される(S10)。
ブラウザAの操作情報I(t2)が通知されたときに、スクロール終了処理部306で実行されるスクロール終了処理について、図8のフローチャートを参照して説明する。
スクロール情報取得部301から操作情報I(t2)が取得されると(S31)、スクロール終了処理が開始され、ブラウザAのブラウザ情報と、ブラウザA以外の未処理のブラウザBのブラウザ情報がブラウザ情報DBから取得される(S32)。
次に、取得したブラウザAの操作情報I(t2)と、ブラウザAおよびBのブラウザ情報とを用いて、ステップS13と同様の処理により、ブラウザBにおける時刻t(0)から当該時刻t2までの制御スクロール量sBが算出される(S33)。
ここで、ブラウザ情報DBに、他の制御先クライアント端末のブラウザに関する未処理のレコードがあれば、同様にステップS32、S33の処理が実行される(S34)。
算出された制御スクロール量sBは、該当する制御先クライアント端末20に送信される(S35)。
制御先クライアント端末20では、ステップS35の処理により送信された制御スクロール量sBにより、ブラウザAにおけるスクロール操作終了時点の表示位置と同位置でコンテンツXが表示されるように、ブラウザBにおける表示が制御され、自動スクロールが停止される。
またスクロール終了処理部306により、ブラウザ情報DBおよび操作情報DBのレコードが削除され空状態にされる(S36)。
以上の第1実施形態によるコンテンツ表示制御装置では、操作クライアント端末でのスクロール操作に連動して制御先クライアント端末での表示を自動スクロールさせるときに、操作クライアント端末における操作開始初期のスクロール操作に対応した速度で、制御先クライアント端末における自動スクロールを開始させ、その後、操作クライアント端末でのスクロール速度が所定値よりも速くなったとき、または、予め設定された期間が経過したときにのみ、制御先クライアント端末でのスクロール速度を更新するようにしたため、コンテンツ表示制御装置から制御先クライアント端末への通信量を低減させることができる。
またスクロール終了処理において、スクロール操作終了時のブラウザAによる表示位置に、ブラウザBの表示が合わせられてスクロール制御が停止するため、スクロール操作が行われている間のスクロール量の近似処理により表示位置に多少のずれが生じていても、スクロール終了時にはすべてのクライアント端末で同じ表示位置で停止させることができる。
《第2実施形態》
〈第2実施形態によるコンテンツ表示制御装置を利用した表示システムの構成〉
本発明の第2実施形態によるコンテンツ表示制御装置を利用した表示システムの構成について、図9を参照して説明する。
本実施形態による表示システム1Bは、コンテンツ表示制御装置30Aに換えてコンテンツ表示制御装置30Bを有する他は、第1実施形態による表示システム1Aの構成と同様であるため、操作クライアント端末10および制御先クライアント端末20の構成の説明は省略する。
コンテンツ表示制御装置30Bは、スクロール情報分類部307と、操作情報記憶部302と、ブラウザ情報記憶部303と、初期スクロール量算出部308と、スクロール速度推定部309と、スクロール速度更新部310と、スクロール終了処理部311とを有する。
スクロール情報分類部307は、操作クライアント端末10から送信されたスクロール情報を取得し、スクロール操作が開始されてから経過した時間の情報や、スクロール速度の変化、またはスクロール操作終了通知の有無に応じて、処理対象の機能部に必要な情報を通知する。
操作情報記憶部302は、スクロール情報取得部301で取得された操作クライアント端末10に関するスクロール情報に含まれる、操作情報I(t)を格納した操作情報DBを記憶する。
ブラウザ情報記憶部303は、操作クライアント端末10、および制御先クライアント端末20それぞれのブラウザ情報を格納したブラウザ情報DBを記憶する。ブラウザ情報には、各ブラウザによりコンテンツXを表示している表示ウィンドウのサイズ情報が含まれる。
初期スクロール量算出部308は、操作クライアント端末10でスクロール操作が開始されてから、所定期間Tが経過するまでの間、スクロール情報分類部307で取得された操作情報Iに基づいて、制御先クライアント端末20における制御スクロール量を所定時間間隔で算出する。算出した制御スクロール量の情報は、制御先クライアント端末20に送信する。
スクロール速度推定部309は、スクロール操作の開始から所定期間Tが到来した時点で、操作情報DBに格納されているすべての操作情報Iに基づいて、所定期間T以降の任意の時刻における、ブラウザAでの推定スクロール速度を算出する。また、スクロール情報分類部307において、操作クライアント端末10でのスクロール操作の速度が速くなったと判定されたときに、任意の時刻におけるブラウザAでの推定スクロール速度を算出し直す。
スクロール速度更新部310は、スクロール速度推定部309で算出された操作クライアント端末10での推定スクロール量に基づいて、制御先クライアント端末における制御スクロール量を算出する。算出した制御スクロール量の情報は、制御先クライアント端末20に送信する。
スクロール終了処理部311は、スクロール情報分類部307で取得されたスクロール情報に基づいて、スクロール操作が終了したと判断すると、スクロール終了処理を行う。
〈第2実施形態によるコンテンツ表示制御装置を利用した表示システムの動作〉
次に、本実施形態による表示システム1Bにおいて、操作クライアント端末10のモニタ11に表示されているコンテンツXに対して実行されたスクロール操作に連動させて、制御先クライアント端末20のモニタ21に表示されているコンテンツXをスクロールさせる動作について説明する。
第1実施形態と同様に、操作クライアント端末10でスクロール操作が検知されると、当該スクロール操作についてスクロール情報が所定時間間隔で取得され、コンテンツ表示制御装置30Bに送信される。
スクロール情報が取得されたときにスクロール情報分類部307で実行される処理について、図10のフローチャートを参照して説明する。
まず、スクロール情報分類部307において、操作クライアント端末10からスクロール操作開始直後の時刻t(0.01)に送信されたスクロール情報が取得される(S41)。
取得された時刻t(0.01)のスクロール情報には、スクロール操作開始直前である時刻t(0)から時刻t(0.01)までのスクロール量を算出するための操作情報I(0.01)と、ブラウザID「ブラウザA」の情報とが含まれ、操作情報記憶部302の操作情報DBに格納される(S42)。
次に、ブラウザ情報記憶部303内のブラウザ情報DBのレコード数が「0」であるか否かが判定される(S43)。
ここではスクロール操作開始直後であるためにレコード数が「0」であり(S43の「YES」)、全てのクライアント端末(操作クライアント端末10および制御先クライアント端末20)からそれぞれのブラウザ情報が取得され、ブラウザ情報DBに格納される(S44)。ブラウザ情報には、各ブラウザによりコンテンツXを表示している表示ウィンドウのサイズ情報が含まれる。
ブラウザ情報DBに、操作クライアント端末10および制御先クライアント端末20のブラウザ情報(ブラウザAおよびBのブラウザ情報)が格納されると、スクロール情報分類部307から初期スクロール量算出部308に、ブラウザAの操作情報I(0.01)と時刻t(0.01)とが通知される(S45)。
以上でスクロール操作開始直後のスクロール情報が取得されたときにスクロール情報分類部307において実行される処理が終了し、ステップS41に戻って処理が継続される。
スクロール操作継続中に操作クライアント端末10から順次スクロール情報が送信されると、スクロール情報分類部307で取得される(S41)。取得されたスクロール情報に含まれる操作情報I(0.02、0.03・・・t1)は、ブラウザID「ブラウザA」とともに操作情報記憶部302の操作情報DBに格納される(S42)。
このときはブラウザ情報DBにはすべてのブラウザのブラウザ情報が既に格納されておりレコードは「0」ではないため(S43の「NO」)、ステップS46に進み、時刻tが、予め設定された閾値Tを超えたか否かが判定される(S46)。閾値Tは、時刻tが初期スクロール量の算出処理対象期間内であるか否かを判定するために、予め設定された期間を示す値である。
取得された時刻tが閾値Tを超えていないとき(S46の「NO」;スクロール操作開始初期の期間)には、スクロール情報分類部307から初期スクロール量算出部308に、ブラウザAの操作情報I(t)と時刻tとが通知される(S45)。
上述したステップS45の処理によりブラウザAの操作情報I(t)と時刻tとが通知されたときに、初期スクロール量算出部308で実行される初期スクロール量算出処理について、図11のフローチャートを参照して説明する。
スクロール情報分類部307から操作情報I(t)と時刻tとが取得されると(S61)、初期スクロール量算出処理が開始され、当該時刻tが閾値Tに達したか否かが判定される(S62)。
時刻tが閾値Tに達してなく、初期スクロール量の算出処理対象期間内であるとき(S62の「NO」)は、ブラウザAのブラウザ情報と、ブラウザA以外の未処理のブラウザBのブラウザ情報がブラウザ情報DBから取得される(S63)。
次に、取得したブラウザAの操作情報I(t)と、ブラウザAおよびBのブラウザ情報とを用いて、ブラウザAの当該時刻tにおける操作スクロール量sAが算出され、さらにこの操作スクロール量sAに対応する、ブラウザB内での制御スクロール量sBが算出される(S64)。
この制御スクロール量sBは、第1実施形態で説明した場合と同様に、式(1)および(2)により算出される。
ここで、ブラウザ情報DBに、他の制御先クライアント端末のブラウザに関する未処理のレコードがあれば、同様にステップS63、S64の処理が実行される(S65)。
算出された制御スクロール量sBは該当する制御先クライアント端末20に送信される(S66)。
制御先クライアント端末20では、コンテンツ表示制御装置30Bから送信された制御スクロール量sBに基づいて、ウィンドウに表示されたコンテンツXが自動スクロールされる。
またステップS62において、時刻tが閾値Tに到達したと判定されたとき(S62の「YES」)には、時刻t(=T)がスクロール速度推定部309に通知される(S67)。
以上で、初期スクロール量算出処理対象期間にスクロール情報が取得されたときに、初期スクロール量算出部308において実行される処理が終了する。
上述したステップS67の処理により、時刻tが通知されたときに、スクロール速度推定部309で実行されるスクロール量推定処理について、図12のフローチャートを参照して説明する。
初期スクロール量算出部308から時刻tが取得されると(S71)、ブラウザAのブラウザ情報と、ブラウザA以外の未処理のブラウザBのブラウザ情報がブラウザ情報DBから取得される(S72)。
次に、通知された時刻tまでの、ブラウザAの操作情報Iが操作情報DBからすべて取得され、これらのブラウザAの操作情報Iと、ブラウザAのブラウザ情報とを用いて、ブラウザAでの期間T以降の任意の時刻t3(T≦t3)における推定スクロール量cA(スクロール速度)が算出される(S73)。
ここで、経過時間と操作スクロール量とが比例の関係にあるとすると、操作情報DBに格納されているスクロール操作の開始から期間Tの操作情報Iに基づいて、時刻t3における推定スクロール量cA(スクロール速度)が次のように求められる。例えば、推定スクロール量cAのうち、x軸方向の推定スクロール量がCAxであり、y軸方向の推定スクロール量がCAyであるとすると、時刻t3における推定スクロール量CAx、CAyが、回帰直線CAx(t3)=ax×t3+bx、CAy(t3)=ay×t3+byから求められる。
回帰直線の算出には、既知の手法を適用することができ、経過時間と操作スクロール量との間に比例関係がない場合でも、既知のロジスティック回帰などの非線形回帰手法を用いることで、時刻t=T以降の任意の時刻の、ブラウザAにおける推定スクロール量(スクロール速度)を容易に求めることができる。
推定スクロール速度が算出されると、スクロール操作が行われている間は、予め設定された期間(例えば、操作クライアント端末10のスクロール情報取得部13におけるスクロール情報を取得する時間間隔よりも長いd秒)ごとにスクロール情報がコンテンツ表示制御装置30Bに送信されるように、ブラウザAに通知される(S74)。この通知により、以降に操作クライアント端末10から送信されるスクロール情報に基づいて、後述するスクロール変化量が算出される。このとき、スクロール情報取得部13におけるスクロール情報を取得する時間間隔よりも長い間隔でスクロール情報がコンテンツ表示制御装置30Bに送信されるように設定することで、操作クライアント端末10とコンテンツ表示制御装置30Bとの間の通信量を減らすことができる。
以上で、時刻tが閾値Tであると判定されたときに、スクロール速度推定部309において実行される処理が終了する。
次に、ステップS46において取得された時刻tが閾値Tを超えてスクロール操作開始初期の期間を過ぎ(S46の「YES」)、スクロール終了通知が含まれていない場合(S47の「NO」)には、操作情報DBに格納された情報を用いて、第1実施形態におけるステップS7と同様の処理により、スクロール変化量Δmが算出される(S48)。
次に、算出されたスクロール変化量Δmが、予め設定された閾値M以上であるか否かが判定される(S49)。閾値Mは、「スクロール速度が速くなった」か否かを判定するための基準値である。
判定の結果、スクロール変化量Δmが閾値M以上でありスクロール速度が速くなったと判定されたとき(S49の「YES」)は、当該時刻tがスクロール速度推定部309に通知される(S50)。スクロール速度推定部309では、通知された時刻tまでの、ブラウザAの操作情報Iに基づいて、上述したステップS71〜S73と同様の処理が実行され、推定スクロール速度が再計算される。
ステップS49における判定の結果、スクロール変化量Δmが閾値M未満でありスクロール速度が早くなっていないと判定されたとき(S49の「NO」)、またはスクロール速度が早くなっていると判定され当該時刻tがスクロール速度推定部309に通知された後(S50)には、当該時刻tがスクロール速度更新部310に通知される(S51)。
ステップS51の処理により、時刻tが通知されたときに、スクロール速度更新部310で実行されるスクロール量更新処理について、図13のフローチャートを参照して説明する。
スクロール情報分類部307から時刻tが取得されると、ブラウザAのブラウザ情報と、ブラウザA以外の未処理のブラウザBのブラウザ情報がブラウザ情報DBから取得される(S81)。
次に、スクロール速度推定部309で推定された時刻tにおけるブラウザAの推定スクロール速度と、ブラウザAおよびBのブラウザ情報とを用いて、当該時刻tにおけるブラウザBの制御スクロール量sB(スクロール速度)が算出される(S82)。
この制御スクロール量sBは、第1実施形態で説明した場合と同様に、式(1)および(2)により算出される。
ここで、ブラウザ情報DBに、他の制御先クライアント端末のブラウザに関する未処理のレコードがあれば、同様にステップS81、S82の処理が実行される(S83)。
算出された制御スクロール量sBは該当する制御先クライアント端末20に送信される(S84)。
制御先クライアント端末20では、コンテンツ表示制御装置30Bから送信された制御スクロール量sBに基づくスクロール速度で、ウィンドウに表示されたコンテンツXが自動スクロールされる。
制御先クライアント端末20での自動スクロールが開始された後、操作クライアント端末10でのスクロール操作が終了されたとき(S47の「YES」)には、スクロール終了処理部311において、第1実施形態において説明したステップS31〜S36と同様のスクロール終了処理が実行される。
ステップS50の処理により、時刻tがスクロール速度推定部309に通知されたときには、上述したステップS71〜S73と同様の処理が実行され、任意の時刻t3におけるブラウザAの推定スクロール量cA(スクロール速度)が算出される。
以上の第2実施形態によるコンテンツ表示制御装置では、操作クライアント端末でのスクロール操作に連動して制御先クライアント端末での表示を自動スクロールさせるときに、操作クライアント端末における操作開始初期の所定期間のスクロール速度から、当該期間以降の操作クライアント端末におけるスクロール速度を推定し、推定結果に基づいて制御先クライアント端末での自動スクロールを行うようにしたため、操作クライアント端末からコンテンツ表示制御装置への通信量を低減させることができる。
またスクロール終了処理において、スクロール操作終了時のブラウザAによる表示位置に、ブラウザBの表示が合わせられてスクロール制御が停止するため、スクロール操作が行われている間の近似処理により表示位置に多少のずれが生じていても、スクロール終了時にはすべてのクライアント端末で同じ表示位置で停止させることができる。
また、上記の各実施形態におけるコンテンツ表示制御装置の機能構成をプログラム化してコンピュータに組み込むことにより、当該コンピュータをコンテンツ表示制御装置として機能させるコンテンツ表示制御用プログラムを構築することも可能である。