(57)【特許請求の範囲】
【請求項１】
ネットワークを介してウェブサーバに接続する情報処理支援サーバと、
前記情報処理支援サーバを介して前記ウェブサーバにより提供されるウェブコンテンツを取得すると共に当該ウェブコンテンツを用いた協調作業を行う複数の端末装置とを備え、
前記端末装置は、
前記情報処理支援サーバを介して取得した前記ウェブコンテンツを表示する表示手段と、
前記表示手段により表示された前記ウェブコンテンツ上に位置を特定して設置されたオブジェクトであって、かつ当該表示手段による表示位置が所定の条件を満たすオブジェクトを同期の基準となるマーカーオブジェクトとして選択し、当該マーカーオブジェクトの識別情報を取得して、協調作業の相手である他の端末装置に送信する情報提供手段と、
他の端末装置から送られた前記マーカーオブジェクトの識別情報に基づいて、前記表示手段により表示された前記ウェブコンテンツ上のオブジェクトのうち、当該マーカーオブジェクトに対応するオブジェクトの当該ウェブコンテンツに対する位置を計算し、当該オブジェクトの位置に基づいて当該ウェブコンテンツの表示画面を変化させる同期手段と
を備えることを特徴とする情報処理システム。
【請求項２】
前記情報提供手段は、前記ウェブコンテンツを表示するウェブブラウザのウインドウの中心の最も近くに位置するオブジェクトを前記マーカーオブジェクトとして選択し、
前記同期手段は、他の端末装置から送られた前記マーカーオブジェクトの識別情報に対応するオブジェクトが前記ウェブブラウザのウインドウの中心に最も近づくように、当該ウインドウの表示を制御することを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記情報提供手段は、使用者が特定のオブジェクトに注目することを示すものとして予め定義された所定のイベントに基づいて前記マーカーオブジェクトを選択し、
前記同期手段は、他の端末装置から送られた前記マーカーオブジェクトの識別情報に対応するオブジェクトが前記ウェブブラウザのウインドウの中心に最も近づくように、当該ウインドウの表示を制御することを特徴とする請求項１に記載の情報処理システム。
【請求項４】
前記情報提供手段は、入力手段であるポインティングデバイスにより操作されるマウスカーソルの最も近くに位置するオブジェクトを前記マーカーオブジェクトとして選択し、
前記同期手段は、他の端末装置から送られた前記マーカーオブジェクトの識別情報に対応するオブジェクトの位置に協調作業用のポインタイメージを表示することを特徴とする請求項１に記載の情報処理システム。
【請求項５】
ネットワークを介してウェブサーバに接続する情報処理支援サーバと、
前記情報処理支援サーバを介して前記ウェブサーバにより提供されるウェブコンテンツを取得すると共に当該ウェブコンテンツを用いた協調作業を行う複数の端末装置とを備え、
前記情報処理支援サーバは、
協調作業を行うために端末装置の動作を制御するコンピュータプログラムを格納した格納手段を備え、
前記端末装置は、
協調作業の対象であるウェブコンテンツを前記情報処理支援サーバを介して取得するウェブコンテンツ取得手段と、
前記ウェブコンテンツ取得手段により取得した前記ウェブコンテンツを表示する表示手段と、
協調作業を行う場合に前記コンピュータプログラムを前記情報処理支援サーバから取得する受信手段と、
取得した前記コンピュータプログラムの制御により協調作業に必要な処理を実行する協調作業実行手段とを備え、
前記協調作業実行手段は、前記表示手段に表示されたウェブコンテンツ上に位置を特定して設置されたオブジェクトであって、かつ当該表示手段による表示位置が所定の条件を満たすオブジェクトを同期の基準となるマーカーオブジェクトとして選択し、当該マーカーオブジェクトの当該ウェブコンテンツに対する位置情報に基づいて、他の端末装置における前記協調作業実行手段との間における表示画面の同期を取ることを特徴とする情報処理システム。
【請求項６】
前記協調作業実行手段は、前記表示手段による表示画面のスクロールを制御して、協調作業を行う他の端末装置における前記表示手段の表示画面と同期させることを特徴とする請求項５に記載の情報処理システム。
【請求項７】
前記協調作業実行手段は、前記表示手段に表示されたウェブコンテンツ上に協調作業用のポインタイメージを表示し、当該ポインタイメージの表示位置を、協調作業を行う他の端末装置における前記表示手段の表示画面と同期させることを特徴とする請求項５に記載の情報処理システム。
【請求項８】
前記情報処理支援サーバは、
前記ウェブサーバから取得した協調作業の対象である前記ウェブコンテンツを保持する保持手段と、
前記保持手段に保持されたウェブコンテンツに対して前記マーカーオブジェクトとして用いられるオブジェクトを追加する加工手段とをさらに備え、
前記端末装置の前記ウェブコンテンツ取得手段は、
前記情報処理支援サーバの前記加工手段によりオブジェクトを追加されたウェブコンテンツを、協調作業の対象として取得することを特徴とする請求項５に記載の情報処理システム。
【請求項９】
ネットワークで接続された複数の端末装置を備え、当該複数の端末装置に設けられた表示装置の表示画面を同期させる情報処理システムにおいて、
前記表示装置の表示画面における操作に応じて、当該表示画面に表示されたコンテンツ上に位置を特定して設置されたオブジェクトであって、かつ当該表示装置による表示位置が所定の条件を満たすオブジェクトを同期の基準となるマーカーオブジェクトとして選択し、選択された当該マーカーオブジェクトの識別情報を他の端末装置に送信する送信側端末装置と、
他の端末装置から受信した前記マーカーオブジェクトの識別情報に対応するオブジェクトの前記コンテンツに対する位置に基づいて、前記表示装置の表示を制御する受信側端末装置と
を備えることを特徴とする情報処理システム。
【請求項１０】
前記送信側端末装置は、前記表示装置における前記コンテンツの表示領域の中心の最も近くに位置する前記オブジェクトを前記マーカーオブジェクトとして選択し、
前記受信側端末装置は、前記送信側端末装置から送られた前記マーカーオブジェクトの識別情報に対応するオブジェクトが前記表示装置における表示領域の中心に最も近づくように、当該表示装置の表示を制御することを特徴とする請求項９に記載の情報処理システム。
【請求項１１】
前記送信側端末装置は、使用者が特定のオブジェクトに注目することを示すものとして予め定義された所定のイベントに基づいて前記マーカーオブジェクトを選択し、
前記受信側端末装置は、前記送信側端末装置から送られた前記マーカーオブジェクトの識別情報に対応するオブジェクトが前記表示装置における表示領域の中心に最も近づくように、当該表示装置の表示を制御することを特徴とする請求項９に記載の情報処理システム。
【請求項１２】
前記送信側端末装置は、入力手段であるポインティングデバイスにより操作されるマウスカーソルの最も近くに位置する前記オブジェクトを前記マーカーオブジェクトとして選択し、
前記受信側端末装置は、前記送信側端末装置から送られた前記マーカーオブジェクトの識別情報に対応するオブジェクトの位置に協調作業用のポインタイメージを表示することを特徴とする請求項９に記載の情報処理システム。
【請求項１３】
ネットワークを介して他の端末装置と接続され、当該他の端末装置と同期させて動作する端末装置であって、
所定のコンテンツを表示する表示部と、
前記表示部の表示画面に表示されたコンテンツ上に位置を特定して設置されたオブジェクトであって、かつ当該表示部による表示位置が所定の条件を満たすオブジェクトを同期の基準となるマーカーオブジェクトとして選択し、当該マーカーオブジェクトの識別情報を取得するマーカー選択部と、
前記マーカー選択部により取得された前記マーカーオブジェクトの識別情報を、前記他の端末装置における前記コンテンツの当該マーカーオブジェクトに対応するオブジェクトの表示位置が前記条件を満足するように制御させるために当該他の端末装置に送信するデータ送信部と
を備えることを特徴とする端末装置。
【請求項１４】
前記マーカー選択部は、前記表示部におけるコンテンツの表示領域の中心の最も近くに位置する前記オブジェクトを前記マーカーオブジェクトとして選択することを特徴とする請求項１３に記載の端末装置。
【請求項１５】
前記マーカー選択部は、入力手段であるポインティングデバイスにより操作されるマウスカーソルの最も近くに位置する前記オブジェクトを前記マーカーオブジェクトとして選択することを特徴とする請求項１３に記載の端末装置。
【請求項１６】
ネットワークを介して他の端末装置と接続され、当該他の端末装置と同期させて動作する端末装置であって、
所定のコンテンツを表示する表示部と、
前記他の端末装置において前記コンテンツのオブジェクトの中から同期の基準として選択された、当該コンテンツ上に位置を特定して設置されたオブジェクトであって、かつ当該表示部による表示位置が所定の条件を満たすオブジェクトであるマーカーオブジェクトの識別情報を当該他の端末装置から受信するデータ受信部と、
前記データ受信部により受信した前記マーカーオブジェクトの識別情報に対応するオブジェクトの前記コンテンツに対する位置を計算するマーカー位置計算部と、
前記マーカー位置計算部にて算出されたオブジェクトの位置に基づいて、前記表示部における当該オブジェクトの表示位置が前記条件を満たすように、当該表示部の表示画面を制御する同期制御部と
を備えることを特徴とする端末装置。
【請求項１７】
前記同期制御部は、前記マーカー位置計算部により算出された前記オブジェクトの位置に基づいて、当該オブジェクトが前記表示部の表示画面の中心に最も近づくようにくるように、当該表示画面を制御することを特徴とする請求項１６に記載の端末装置。
【請求項１８】
前記同期制御部は、前記マーカー位置計算部により算出された前記オブジェクトの位置に協調作業用のポインタイメージを表示することを特徴とする請求項１６に記載の端末装置。
【請求項１９】
複数の端末装置における表示装置に共通のウェブページを表示し、当該端末装置間で当該表示装置の表示画面を同期させる情報処理方法において、
所定の端末装置が、前記ウェブページ上に位置を特定して設置されたオブジェクトであって、かつ前記表示装置による表示位置が所定の条件を満たすオブジェクトを同期の基準となるマーカーオブジェクトとして選択するステップと、
前記所定の端末装置が、前記マーカーオブジェクトの識別情報を他の端末装置に送信するステップと、
前記他の端末装置が、前記所定の端末装置から受信した前記マーカーオブジェクトの識別情報に対応するオブジェクトの位置に基づいて、前記表示装置の表示画面を制御し、当該所定の端末装置の表示装置における表示画面に同期させるステップと
を含むことを特徴とする情報処理方法。
【請求項２０】
同期の基準となるオブジェクトを選択する前記ステップは、
ウェブページを表示するウェブブラウザのウインドウにおける中心点の位置を求めるステップと、
求められた前記中心点の最も近くに位置する前記オブジェクトを前記同期の基準として選択するステップを含み、
表示画面を制御して同期させる前記ステップは、
前記識別情報に対応するオブジェクトの位置を計算するステップと、
算出された前記オブジェクトの位置に基づいて、当該オブジェクトが前記表示装置の表示画面の中心に最も近づくように、当該表示画面を制御するステップを含むこと
を特徴とする請求項１９に記載の情報処理方法。
【請求項２１】
同期の基準となるオブジェクトを選択する前記ステップは、
入力手段であるポインティングデバイスにより操作されるマウスカーソルの位置情報を取得するステップと、
取得された前記マウスカーソルの位置情報に基づき、当該マウスカーソルの最も近くに位置する前記オブジェクトを同期の基準として選択するステップとを含み、
表示画面を制御して同期させる前記ステップは、
前記識別情報に対応するオブジェクトの位置を計算するステップと、
算出された前記オブジェクトの位置に協調作業用のポインタイメージを表示するステップと
を含むことを特徴とする請求項１９に記載の情報処理方法。
【請求項２２】
コンピュータに実行させるプログラムを当該コンピュータの入力手段が読取可能に記憶した記憶媒体において、
前記プログラムは、
所定の端末装置においてウェブページ上のオブジェクトの中から同期の基準として選択された、当該ウェブページ上に位置を特定して設置されたオブジェクトであって、かつ表示装置による表示位置が所定の条件を満たすオブジェクトであるマーカーオブジェクトの識別情報を当該所定の端末装置から受信する処理と、
受信した前記マーカーオブジェクトの識別情報に対応する前記オブジェクトの前記ウェブページ上の位置を計算する処理と、
算出された前記オブジェクトの位置に基づいて、前記表示装置における当該オブジェクトの表示位置が前記条件を満たすように、当該表示装置の表示画面を制御し、前記マーカーオブジェクトの識別情報を送信した前記端末装置の表示装置における表示画面に同期させる処理と
を前記コンピュータに実行させることを特徴とする記憶媒体。
【請求項２３】
コンピュータに実行させるプログラムを当該コンピュータの入力手段が読取可能に記憶した記憶媒体において、
前記プログラムは、
前記コンピュータの表示装置に表示されたウェブコンテンツの表示画面における目標の位置情報を取得する処理と、
前記目標の位置情報に基づき、当該目標の最も近くに位置する前記ウェブコンテンツのオブジェクトであって、当該ウェブコンテンツ上に位置を特定して設置されたオブジェクトであって、かつ前記表示装置による表示位置が所定の条件を満たすオブジェクトを、同期の基準となるマーカーオブジェクトとして選択する処理と、
同期の基準として選択された前記マーカーオブジェクトの識別情報を、他のコンピュータにおける前記コンテンツの当該マーカーオブジェクトに対応するオブジェクトの表示位置が前記条件を満足するように制御させるために当該他のコンピュータに送信する処理と
を前記コンピュータに実行させることを特徴とする記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ウェブベースのネットワークで接続された複数の端末装置においてウェブブラウザを同期させて協調作業を行うウェブコラボレーションに関する。
【０００２】
【従来の技術】
今日、インターネットなどのウェブベースのネットワークにおいて、複数の端末装置使用者がウェブページ上で協調作業（閲覧、移動、変更など）を行うコラボレーション技術が普及してきている。
図１７は、コラボレーションにより２台の端末装置に表示されたウェブページ上で協調作業を行っている様子を説明する図である。図１７を参照すると、端末装置Ａ、Ｂにおいて、ディスプレイ装置に表示されたウェブブラウザのウインドウ１７１０は、ウインドウサイズ及び表示されているウェブページ（そのＵＲＬ）が一致している。また、表示のスクロールバー１７２０及びリモートポインタ１７３０の表示位置が一致している。ここで、リモートポインタ１７３０とは、協調作業用に表示されるポインタであり、一方の端末装置（例えば端末装置Ａ）においてリモートポインタ１７３０を移動させたならば、他方の端末装置（例えば端末装置Ｂ）に表示されたリモートポインタ１７３０も同様に移動する。さらに、図１７において、アノテーションとして書き込まれた記述の表示１７４０、入力フォーム１７５０への入力内容が一致している。これらは、端末装置Ａ、Ｂにおけるウェブブラウザを同期させることにより、一方で行った操作が他方の表示に反映していることを示す。
このコラボレーション技術を用いて、例えば、お客様の端末装置とエージェントの端末装置とを同期させ、お客様とエージェントとが同一のウェブページに互いに書き込みなどの操作を行うことにより、お客様の相談にエージェントが対応するといったサービスを提供することが可能となる。
【０００３】
従来のコラボレーションでは、図１７に示したような、スクロールバー１７２０やリモートポインタ１７３０の同期における位置の特定は、ウェブブラウザのウインドウ１７１０を基準とした絶対座標を用いて行っていた。すなわち、予めウェブブラウザのウインドウ１７１０の表示サイズを設定しておき、このウインドウ１７１０に対する位置を一致させることにより、スクロールバー１７２０やリモートポインタ１７３０の位置の同期を取っていた。
【０００４】
コラボレーションは、協調作業を行う複数の端末装置において、コラボレーションを提供するソフトウェア（以下、コラボレーション・ソフトウェアと称す）にて同期を取ることにより実現される。このコラボレーション・ソフトウェアは、協調作業を行う端末装置に予めインストールしておく方式のものと、実行時に各端末装置においてダウンロードする方式のものとがある。
【０００５】
端末装置に予めインストールしておく方式のコラボレーション・ソフトウェアは、当該コラボレーション・ソフトウェアがインストールされた各端末装置において、各種の設定を共通にしておくことができる。したがって、ウェブブラウザのウインドウ１７１０における表示を一致させやすい。
しかし、この方式は、協調作業を行う端末装置の全てに予めコラボレーション・ソフトウェアをインストールしておかなければならないため、企業内や企業間での業務における協調作業のように使用者が相当数おり、かつ使用される端末装置が決まっている場合には導入しやすいが、不特定な個人の使用者に対して導入することは困難であった。なぜなら、技術や知識のレベルが様々である個人の使用者に対して、コラボレーション・ソフトウェアのインストール及び設定作業を要求することは困難だからである。
【０００６】
これに対し、実行時に各端末装置にてダウンロードする方式のコラボレーション・ソフトウェアは、ＪａｖａアプレットやJavaScriptなどによって作成されており、協調作業を行う際にサーバマシンから端末装置にダウンロードされる。したがって、端末装置に予めコラボレーション・ソフトウェアをインストールしておく必要がないため、個人の使用者に対しても導入しやすいという利点がある。また、ＪａｖａアプレットやJavaScriptのように、プラットフォーム（オペレーティングシステム）やウェブブラウザの種類に依存しない方式でコラボレーション・ソフトウェアを作成しておけば、より一層導入が容易になる。
しかし、この方式は、予めソフトウェアや端末装置の詳細な設定を行うことができないため、同期させられる内容が制限されてしまう。従来のこの種のコラボレーション・ソフトウェアにおいては、ウェブブラウザに表示されるウェブページのＵＲＬを同期させる機能しか持たないものが一般的である。
【０００７】
【発明が解決しようとする課題】
上述したように、従来のコラボレーション技術は、ウェブブラウザのウインドウにおける表示のスクロール及びリモートポインタの位置を同期させるために、当該ウインドウを基準とした絶対座標を用いていた。そのため、協調作業を行う端末装置において使用するウェブブラウザが異なると、レンダリング方法の違いによって、ウェブページの表示位置やリモートポインタの位置が一致しない場合があった。また、同一のウェブブラウザを用いる場合であっても、フォントサイズやウインドウサイズが異なる場合は、端末装置間においてウェブブラウザのウインドウに表示されたオブジェクトの大きさや位置が異なるため、スクロール及びリモートポインタの同期が取れなかった。
図１８は、共通のウェブブラウザを用い、ウインドウサイズを同一としながら、フォントサイズが異なるために、リモートポインタ１７３０がウェブページの異なる場所を指している様子を示す図である。
【０００８】
従来のコラボレーション技術のうち、端末装置に予めコラボレーション・ソフトウェアをインストールしておく方式では、ソフトウェアのインストールの際に、ウェブブラウザの設定を共通にしておくことができるため、スクロール及びリモートポインタを同期させ、常にウェブページの同じ位置を指し示すようにすることは可能である。
しかし、この場合、使用者がウェブブラウザの設定を変更してしまうと、図１８に示したようにスクロールやリモートポインタの同期が取れなくなる。そのためため、使用者によっては使い易いとは言えない環境となってしまう恐れがあった。
【０００９】
また、協調作業の実行時に端末装置においてコラボレーション・ソフトウェアをダウンロードする方式では、端末装置の使用者がウェブブラウザの設定を任意に行うことができるが、上述したように、スクロールやリモートポインタの同期を取ることができないため、極めて制限された内容でしか協調作業を行うことができなかった。
【００１０】
そこで本発明は、コラボレーション技術において、ウェブブラウザの種類や設定に依存せずに、ウェブブラウザのウインドウにおける表示のスクロール及びリモートポインタの位置を同期させることを目的とする。
【００１１】
また、本発明は、実行時に端末装置においてコラボレーション・ソフトウェアをダウンロードする方式のコラボレーション技術においても、ウェブブラウザのウインドウにおける表示のスクロール及びリモートポインタの位置の同期を実現することを目的とする。
【００１２】
【課題を解決するための手段】
上記の目的を達成するため、本発明は、ネットワークを介してウェブサーバに接続する情報処理支援サーバ（コラボレーションサーバ）と、この情報処理支援サーバを介してウェブサーバにより提供されるウェブコンテンツを取得すると共にこのウェブコンテンツを用いたコラボレーションによる協調作業を行う複数の端末装置とを備える情報処理システム（コラボレーション・システム）を提供する。
ここで、この端末装置は、情報処理支援サーバを介して取得したウェブコンテンツを表示する表示手段と、表示されたこのウェブコンテンツ上のオブジェクトのうち、同期の基準として選択されたオブジェクトの識別情報を取得して、協調作業の相手である他の端末装置に送信する情報提供手段と、他の端末装置から送られた同期の基準となる所定のオブジェクトの識別情報に基づいて、該当するオブジェクトの前記ウェブコンテンツに対する位置を計算し、このオブジェクトの位置に基づいて当該ウェブコンテンツの表示画面を制御し変化させる同期手段とを備えることを特徴とする。
ウェブコンテンツ上のオブジェクトの位置に基づいて表示内容の同期を取るため、表示部（ウェブブラウザ）の種類や表示画面（ウェブブラウザのウインドウ）の設定に関わらず、所望の場所を同期の基準とすることができる。
【００１３】
ここで、同期の基準となるオブジェクトとしては、ウェブブラウザのウインドウの中心の近傍に位置するオブジェクトや、マウスクリックなどの使用者が特定のオブジェクトに注目することを示すものとして定義された所定のイベントに対応付けられたオブジェクトや、入力手段であるポインティングデバイスにより操作されるマウスカーソルの近くに位置するオブジェクトを選択することができる。
また、同期手段は、他の端末装置から送られた識別情報に対応するオブジェクトがウェブブラウザのウインドウの中心付近にくるようにウインドウの表示を制御したり、このオブジェクトの位置に協調作業用のポインタイメージを表示したりすることにより、識別情報を送信した端末装置との同期を取ることができる。
【００１４】
さらにまた、上記の情報処理システムにおいて、この情報処理支援サーバは、協調作業を行うために端末装置の動作を制御するコンピュータプログラムを格納した格納手段を備えることとし、この端末装置は、協調作業の対象であるウェブコンテンツをこの情報処理支援サーバを介して取得するウェブコンテンツ取得手段と、このウェブコンテンツ取得手段により取得したウェブコンテンツを表示する表示手段と、協調作業を行う場合にこのコンピュータプログラムをこの情報処理支援サーバから取得する受信手段と、取得したこのコンピュータプログラムの制御により協調作業に必要な処理を実行する協調作業実行手段とを備える構成とすることができる。
ここで、この協調作業実行手段は、表示手段に表示されたウェブコンテンツ上のオブジェクトのうち、同期の基準として選択されたオブジェクトの、ウェブコンテンツに対する位置情報に基づいて、他の端末装置における協調作業実行手段との間における表示画面の同期を取る。
【００１５】
さらに、この情報処理支援サーバは、端末装置からの要求に応じてウェブサーバから協調作業の対象であるウェブコンテンツを取得するウェブコンテンツ取得手段と、取得したウェブコンテンツを保持する保持手段と、この保持手段に保持されたウェブコンテンツに対して同期の基準として用いるオブジェクトを追加する加工手段と、端末装置に対してオブジェクトが追加されたウェブコンテンツを返送する通信手段とをさらに備える構成とすることができる。
この場合、端末装置のウェブコンテンツ取得手段は、この情報処理支援サーバの加工手段によりオブジェクトを追加されたウェブコンテンツを、協調作業の対象として取得する。
ここで、この加工手段がコンテンツに追加するオブジェクトは、ウェブコンテンツにおける座標を取得可能なＨＴＭＬオブジェクトとすることができる。そのようなＨＴＭＬオブジェクトとして、特に、アンカーオブジェクトを用いることができる。アンカーオブジェクトは、識別情報として用いるＮＡＭＥ属性のみを指定することにより、要素内容を持たないサイズ０のオブジェクトをコンテンツ上におくことができ、これにより、コンテンツ上の所定の場所を特定することができる。
【００１６】
また、本発明における端末装置は、上述したように各端末装置において同期の基準となるオブジェクトを選択する機能とかかるオブジェクトの位置に基づく同期制御を行う機能とを備えるようにしても良いが、所定の操作に基づいて同期の基準となるマーカーオブジェクトを選択し識別情報を他の端末装置へ送信する送信側端末装置であり、他の端末装置から受信した識別情報に基づいてマーカーオブジェクトを特定しこのオブジェクトの位置に基づいて同期制御を行う受信側端末装置とに分けて構成しても良い。
【００１７】
すなわち、送信側端末装置は、所定のコンテンツを表示する表示部と、この表示部の表示画面に表示されたコンテンツ上のオブジェクトのうち、同期の基準とするマーカーオブジェクトを選択し、このマーカーオブジェクトの識別情報を取得するマーカー選択部と、このマーカー選択部により取得されたマーカーオブジェクトの識別情報を他の端末装置に送信するデータ送信部とを備える。
【００１８】
また、受信側端末装置は、所定のコンテンツを表示する表示部と、他の端末装置から送られたこのコンテンツ中の所定のオブジェクトの識別情報を受信するデータ受信部と、このデータ受信部により受信した識別情報に対応するオブジェクトの、コンテンツに対する位置を計算するマーカー位置計算部と、このマーカー位置計算部にて算出されたオブジェクトの位置に基づいて、表示部の表示画面を制御する同期制御部とを備える。
【００１９】
また、本発明は、複数の端末装置における表示装置に共通のウェブページを表示し、この端末装置間でこの表示装置の表示画面を同期させる情報処理方法において、所定の端末装置が同期の基準となるオブジェクトを選択するステップと、選択されたオブジェクトの識別情報を他の端末装置に送信するステップと、当該他の端末装置が受信した識別情報に対応するオブジェクトの位置に基づいて、表示装置の表示画面を制御するステップとを含むことを特徴とする。
【００２０】
また、本発明は、コンピュータに実行させるプログラムをこのコンピュータの入力手段が読取可能に記憶した記憶媒体において、このプログラムは、このコンピュータの表示装置に表示されたウェブページ上のオブジェクトを特定する識別情報を所定の端末装置から受信する処理と、受信した識別情報に対応するオブジェクトの、ウェブページ上の位置を計算する処理と、算出されたオブジェクトの位置に基づいて、表示装置の表示画面を制御し、識別情報を送信した端末装置の表示装置における表示画面に同期させる処理とをこのコンピュータに実行させることを特徴とする。
【００２１】
さらに、本発明は、コンピュータに実行させるプログラムをこのコンピュータの入力手段が読取可能に記憶した記憶媒体において、このプログラムは、このコンピュータの表示装置の表示画面における予め定められた目標の位置情報を取得する処理と、この目標の位置情報に基づき、この目標の近くに位置するオブジェクトを同期の基準として選択する処理と、同期の基準として選択されたオブジェクトの識別情報を他のコンピュータ装置に送信する処理とをコンピュータに実行させることを特徴とする。
この目標としては、表示画面（ウェブブラウザのウインドウ）の中心点や、マウスカーソルなど、同期の基準とすることができる種々の対象を任意に設定することができる。
【００２２】
さらにまた、本発明は、上述したプログラムを上述した情報処理支援サーバの格納手段に格納し、端末装置からのダウンロード要求に応じて提供することができる。
【００２３】
【発明の実施の形態】
以下、添付図面に示す実施の形態に基づいて、この発明を詳細に説明する。
まず、本発明の概要について説明する。本発明は、ウェブページ上のオブジェクトの相対的な位置に基づいて、ウェブブラウザのウインドウにおける表示のスクロール及びリモートポインタの位置の同期制御を行う。
この同期制御を実現するために、ウェブページ内に、オブジェクトの位置を特定するためのマーカーを設定する。そして、このマーカーを用いて、ウェブブラウザによって表示されたウェブページにおけるオブジェクトの相対的な位置を特定することにより、ウェブブラウザの種類や設定に依存せずに同期を行うことが可能となる。
このマーカーは、異なるウェブブラウザによって表示された場合であっても共通の座標を取得できるものであり、コンテンツのレイアウトをできるだけ崩さないものであることが好ましい。
【００２４】
図１は、本発明の実施の形態におけるコラボレーションを実現するためのシステム構成を示す図である。本実施の形態では、協調作業の実行時に端末装置においてコラボレーション・ソフトウェアをダウンロードする方式を採るものとする。ただし、予め端末装置にコラボレーション・ソフトウェアをインストールしておく方式にも適用することができる。
【００２５】
図１を参照すると、本実施の形態のコラボレーション・システムは、協調作業を行う端末装置１１、１２と、端末装置１１、１２による協調作業を支援するコラボレーションサーバ２０と、協調作業が行われるウェブページを提供するウェブサーバ３０とを備える。端末装置１１、１２、コラボレーションサーバ２０及びウェブサーバ３０は、インターネットなどのウェブベースのネットワークにて接続されている。
【００２６】
図１のコラボレーション・システムにおいて、端末装置１１、１２が協調作業を行うためにコラボレーションサーバ２０にアクセスすると、コラボレーションサーバ２０から端末装置１１、１２にコラボレーション・ソフトウェアがダウンロードされ、ウェブサーバ３０から取得したウェブページ上において協調作業を行うことが可能となる。また、端末装置１１、１２は、初期的にはウェブサーバ３０に直接アクセスしてウェブページを取得できるが、協調作業を行う場合には、コラボレーションサーバ２０がウェブサーバ３０から取得し、このコラボレーションサーバ２０により取得されたウェブページ上で作業を行う。コラボレーションサーバ２０は、保持しているウェブページに対して、協調作業を支援するための加工を施すことができる。
【００２７】
図２は、本実施の形態におけるコラボレーションサーバ２０のシステム構成を示す図である。
図２に示すように、コラボレーションサーバ２０は、ＨＴＴＰブリッジ２１と、セッションマネージャ２２と、キャッシュマネージャ２３とを備える。
ＨＴＴＰブリッジ２１は、セッションマネージャ２２とソケット接続し、端末装置１１、１２のウェブブラウザ間の通信をサポートする。
セッションマネージャ２２は、協調作業を行う端末装置１１、１２の組を認識し、この組による協調作業（セッション）を管理する。
キャッシュマネージャ２３は、端末装置１１、１２からの要求によりウェブサーバ３０からウェブページを取得し保持する。そして、当該ウェブページに対して、協調作業を行うために必要なアプレットやスクリプトの埋め込みを行う。
端末装置１１、１２は、コラボレーションサーバ２０のキャッシュマネージャ２３に保持されているウェブページをそれぞれ取得し、このウェブページに対して協調作業を行うこととなる。
【００２８】
図３は、本実施の形態における端末装置１１、１２のシステム構成を説明する図である。
図３に示すように、端末装置１１、１２は、ウェブページを取得して表示するウェブブラウザ３１０と、ウェブブラウザ３１０を制御すると共にコラボレーションサーバ２０に接続して協調作業を実行可能とするコラボレーション用アプレット３２０とを備える。コラボレーション用アプレット３２０は、協調作業を実現するための種々の処理を実行する。例えば、協調作業の対象であるウェブページのＨＴＭＬ文書における構造を管理したり、協調作業を行う他の端末装置との通信制御を行ったりする。また、コラボレーション用アプレット３２０は、Ｊａｖａアプレットとして作成されているため、予め端末装置１１、１２にインストールしておく必要はない。コラボレーションサーバ２０に格納しておき、協調作業の実行時に、端末装置１１、１２のウェブブラウザ３１０がコラボレーションサーバ２０からダウンロードする。
【００２９】
端末装置１１、１２は、ウェブブラウザ３１０によりウェブページを表示する表示装置と、当該表示装置に表示されたウェブページ上で行われる協調作業を処理（入力の受け付け、演算処理、表示制御、通信制御など）するＣＰＵと、を備えるデータ処理装置である。具体的には、例えば、パーソナルコンピュータやワークステーションなどのコンピュータ装置、コンピュータを内蔵したテレビ受像器などの家電製品、ＰＤＡなどにより実現することができる。
【００３０】
図１に示すコラボレーション・システムは、例えば、お客様相談センターにおいてお客様と企業側エージェントとが同一のウェブページを参照して協調作業を行うといった態様で使用することができる。この場合、お客様の端末装置を端末装置１１とし、エージェントの端末装置を端末装置１２とすれば、企業側に端末装置１２とウェブサーバ３０とが設置される。
ここで、コラボレーションサーバ２０は、当該企業側に設置しても良いし、独立のサービス提供者により設置されても良い。後者の場合、コラボレーションサーバ２０と複数のウェブサーバ３０とを接続し、コラボレーションサーバ２０を介して任意のウェブサーバ３０にアクセスすることにより、所望のウェブサーバ３０のウェブページにおける協調作業を実現することが可能である。
また、図１に示すコラボレーション・システムは、複数の端末装置１１、１２による協調作業を行うことを前提としている所定のグループにおいて、端末装置１１、１２と外部のウェブサーバ３０との間に、プロキシサーバとしても機能するコラボレーションサーバ２０を介在させるといった態様で使用することもできる。
【００３１】
本実施の形態では、ウェブページにおけるオブジェクトの位置を特定するためにウェブページ内に設定するマーカーとして、ＨＴＭＬのタグを用いる。特に、上述した、異なるウェブブラウザによって表示された場合であっても共通の座標を取得でき、コンテンツのレイアウトをできるだけ崩さないという条件に鑑み、本実施の形態ではアンカーオブジェクトを用いる。
【００３２】
アンカータグ（<A>、</A>）は、ＮＡＭＥ属性のみを指定することにより、所定の場所にサイズ０のオブジェクト（以下、このオブジェクトをマーカーオブジェクトと称す）を設置することができる。そして、このマーカーオブジェクトの座標は、JavaScriptによって取得することができる。
したがって、アンカータグにより設置されたマーカーオブジェクトの位置をJavaScriptを用いて取得し、後述するスクロール及びリモートポインタの同期に用いることができる。
また、このＮＡＭＥ属性は、マーカーとして用いられるアンカーオブジェクトの識別子（アンカーＩＤ）となる。
【００３３】
マーカーオブジェクトを設置する位置は、Ｆｏｒｍオブジェクトの前後、パラグラフの前後、センテンスの前後など、任意に決めることができる。マーカーオブジェクトを密に設置すれば、それだけ細かくウェブページ上の位置情報を取得できることとなるため、スクロール及びリモートポインタの同期における位置決めを細かく行うことができる。
【００３４】
図４は、マーカーとしてのアンカーオブジェクトを挿入したＨＴＭＬ文書の例を示す図であり、図５は、図４のＨＴＭＬ文書をウェブブラウザにて表示した様子を示す図である。
図４において、ＮＡＭＥ属性のみを指定した６個のアンカーオブジェクト
<A NAME="*"></A>    （ただし図４において、*=0,1,2,3,4,5）
がマーカーである。図４のＨＴＭＬ文書に挿入された各マーカーは、このＨＴＭＬ文書をウェブブラウザにて表示した場合、図５において丸印で指示した６カ所にサイズ０のマーカーオブジェクトを設置する。すなわち、三つの「Test.」のテキストと、「TEXT FIELD」のテキストと、入力フォームと、ボタンの６個のオブジェクトそれぞれの左上隅がマーカーオブジェクトの位置である。マーカーオブジェクトは、上述したようにアンカータグにて作成されるので、JavaScriptによって各位置の座標を取得することができる。したがって、図４、５に示すように、所望のオブジェクト付近に設置されたマーカーオブジェクトの座標を取得することにより、各オブジェクトの位置を知ることが可能となる。
また、マーカーオブジェクトはサイズが０なので、ウェブブラウザにて表示された場合のレイアウトはマーカーがない場合と全く同じである。
【００３５】
マーカーは、ウェブサーバ３０に格納するウェブページを作成した段階でＨＴＭＬ文書に付加しておくこともできるが、コラボレーションサーバ２０のキャッシュマネージャ２３において付加することもできる。すなわち、協調作業のためにウェブページをキャッシュマネージャ２３にて保持した際に、当該ウェブページのＨＴＭＬ文書を解析し、必要なマーカー（アンカータグ）を挿入する。図１を参照すると、コラボレーションサーバ２０によって、ウェブサーバ３０から取得されたＨＴＭＬ文書の入力フォーム（<IMPUT type="text"name="NAME...>）の前後にマーカーが付加されていることがわかる。
【００３６】
図６、７は、コラボレーションサーバ２０のキャッシュマネージャ２３がＨＴＭＬ文書にマーカーとしてのアンカーオブジェクトを挿入する処理の流れを説明するフローチャートである。
図６、７を参照すると、まず、ＮＡＭＥ属性の識別用の定数ｉの値を０とする（図６、ステップ６０１）。そして、処理対象であるＨＴＭＬ文書の最初のＨＴＭＬオブジェクトを読み込む（ステップ６０２）。当該ＨＴＭＬ文書の終わりに到達していなければ、当該読み込んだＨＴＭＬオブジェクトがタグオブジェクトかどうかを判断する（ステップ６０３、６０４）。
【００３７】
読み込んだＨＴＭＬオブジェクトがタグオブジェクトでないならば、当該ＨＴＭＬオブジェクトの後の最初の文を読み込む（ステップ６０５）。なお、読み込む対象としての文は、例えば、所定のピリオド（．）の次の文字から次に出現するピリオド（．）までを１文と考えることにより、ＨＴＭＬ文書中から抽出することができる。
【００３８】
次に、読み込んだ文が当該ＨＴＭＬオブジェクトにより制御される最後の文かどうかを判断する（ステップ６０６）。最後の文でなければ、ここにアンカータグを追加する（ステップ６０７）。そして、このアンカータグにＮＡＭＥ属性を追加し（ステップ６０８）、ＮＡＭＥ属性の定数ｉの値を１増加して（ステップ６０９）、次の文を読み込む（ステップ６１０）。以上のステップ６０７からステップ６１０までの処理を、当該ＨＴＭＬオブジェクトにより制御される最後の文に到達するまで繰り返す（ステップ６０６）。
ステップ６０２で読み込んだＨＴＭＬオブジェクトにより制御される最後の文に到達したならば、次のＨＴＭＬオブジェクトを読み込んで（図７、ステップ６１９）、ステップ６０３に戻る。
【００３９】
ステップ６０４の判断において、ステップ６０２で読み込んだＨＴＭＬオブジェクトがタグオブジェクトであったならば、次に、当該タグオブジェクトがアンカーオブジェクトかどうかを判断する（図７、ステップ６１１）。アンカーオブジェクトであれば、さらに、当該アンカーオブジェクトにＮＡＭＥ属性が有るかどうかを判断する（ステップ６１２）。ＮＡＭＥ属性が無ければ、当該アンカーオブジェクトにＮＡＭＥ属性を追加し（ステップ６１３）、ＮＡＭＥ属性の定数ｉの値を１増加する（ステップ６１４）。
ステップ６１２でアンカーオブジェクトにＮＡＭＥ属性が有った場合、またはステップ６１３、６１４を経た後、次のＨＴＭＬオブジェクトを読み込んで（ステップ６１９）、ステップ６０３に戻る。
【００４０】
ステップ６１１の判断において、タグオブジェクトがアンカーオブジェクトでないならば、次に、当該タグオブジェクトが表示オブジェクトかどうかを判断する（ステップ６１５）。表示オブジェクトであれば、ここにアンカータグを追加する（ステップ６１６）。そして、このアンカータグにＮＡＭＥ属性を追加し（ステップ６１７）、ＮＡＭＥ属性の定数ｉの値を１増加する（ステップ６１８）。
ステップ６１５の判断において、タグオブジェクトが表示オブジェクトでもない場合、またはステップ６１６〜６１８を経た後、次のＨＴＭＬオブジェクトを読み込んで（ステップ６１９）、ステップ６０３に戻る。
【００４１】
以上の処理を、ＨＴＭＬオブジェクトを読み込む度に繰り返し、ＨＴＭＬ文書の終わりの位置に到達したならば、処理を終了する（ステップ６０３）。
以上のようにして、処理対象であるＨＴＭＬ文書（コラボレーションサーバ２０に保持されているＨＴＭＬ文書）において、文及び表示オブジェクトのそれぞれにマーカーとしてのアンカーオブジェクトが追加される。また、ＨＴＭＬ文書に元々記述されていたアンカーオブジェクトについても、マーカーとして使用できるように書き換えが行われる。
【００４２】
次に、本実施の形態により実現されるスクロール同期及びリモートポインタ同期について説明する。
図８は、本実施の形態によるスクロール同期及びリモートポインタ同期を実現するコラボレーション用アプレット３２０の構成を示す図である。
図８を参照すると、コラボレーション用アプレット３２０は、ブラウザ制御部８０１と、中心点計算部８０２と、カーソル位置計算部８０３と、タイマー処理部８０４と、マーカー選択部８０５と、メッセージ作成部８０６と、データ通信部８０７と、メッセージ解析部８０８と、マーカー位置計算部８０９と、同期制御手段としてのスクロール制御部８１０及びリモートポインタ描画部８１１とを備える。
【００４３】
なお、上記の構成は、コラボレーション用アプレット３２０における構成要素のうち、本実施の形態によるスクロール同期及びリモートポインタ同期を実現するための構成例に過ぎない。実際には、協調作業の対象であるウェブページの構成（ＨＴＭＬ文書のツリー構造）を解析し管理するツリーマネージャや、協調作業におけるログオンを制御する制御部などをさらに備える。
図８に示す構成において、ブラウザ制御部８０１、中心点計算部８０２、カーソル位置計算部８０３、タイマー処理部８０４、マーカー選択部８０５、メッセージ作成部８０６、及びデータ通信部８０７の送信機能は、自端末装置におけるウェブブラウザ３１０の表示状態に他の端末装置におけるウェブブラウザ３１０を同期させるために、当該他の端末装置に同期の基準となる情報（マーカーの識別情報）を提供するための情報提供手段である。
また、データ通信部８０７の受信機能、メッセージ解析部８０８と、マーカー位置計算部８０９と、スクロール制御部８１０、リモートポインタ描画部８１１、及びブラウザ制御部８０１は、他の端末装置から送られた同期の基準となる情報に基づいてウェブブラウザ３１０の表示を同期させる同期手段である。
【００４４】
これらの構成要素は、コンピュータプログラムであるＪａｖａアプレット（コラボレーション用アプレット３２０）により制御されたＣＰＵにて実現される仮想的なソフトウェアブロックである。ＣＰＵを制御するＪａｖａアプレットは、上述したように、ネットワークを介してコラボレーションサーバ２０から伝送されることにより提供される。
なお、コラボレーション・ソフトウェアを予め端末装置にインストールしておく方式を取る場合、上記の構成を実現するコンピュータプログラムをＣＤ−ＲＯＭやフロッピーディスクなどの記憶媒体に格納して提供することもできる。
【００４５】
上記構成において、ブラウザ制御部８０１は、端末装置１１、１２に実装されているウェブブラウザ３１０を制御して、表示制御を行ったり、イベントを抽出したりする。
中心点計算部８０２は、スクロール同期に用いられる、ウェブブラウザ３１０により表示されたウインドウの中心点の位置を計算する。中心点の位置は、その座標値を（ｃｅｎｔｅｒＸ，ｃｅｎｔｅｒＹ）とすると、例えば、図１４に示すJavaScriptを実行することにより算出できる。
カーソル位置計算部８０３は、ｏｎＭｏｕｓｅＭｏｖｅイベントハンドラによって、リモートポインタ同期に用いられるマウスカーソルの位置を取得する。
タイマー処理部８０４は、中心点計算部８０２及びカーソル位置計算部８０３による動作を定期的に実行させるために計時する。
マーカー選択部８０５は、中心点計算部８０２により算出された中心点位置、またはカーソル位置計算部８０３により取得されたマウスカーソルの位置を用いて、スクロール同期またはリモートポインタ同期の基準とするマーカーを選択する。選択されたマーカーには、選択されたマーカーがスクロール同期のための基準かリモートポインタ同期のための基準かを特定する情報を付加することができる。マーカー選択部８０５は、マーカーを選択する際の手法及び選択に用いる情報に基づいて、選択されたマーカーがどちらの同期に用いる基準かを特定することができる。
【００４６】
メッセージ作成部８０６は、マーカー選択部８０５により選択されたマーカーの識別情報を、協調作業を行う相手の端末装置１１、１２に通知するためのメッセージを作成する。当該メッセージには、スクロール同期またはリモートポインタ同期のどちらに用いるマーカーかを示す識別情報も付加される。
データ通信部８０７は、メッセージ作成部８０６により作成されたメッセージを、協調作業を行う相手の端末装置１１、１２に送信すると共に、当該端末装置１１、１２から送られたメッセージを受信してメッセージ解析部８０８に渡す。メッセージ解析部８０８は、データ通信部８０７から受け取ったメッセージを解析して、スクロール同期またはリモートポインタ同期の基準となるマーカーの識別情報を抽出する。
【００４７】
マーカー位置計算部８０９は、メッセージ解析部８０８により抽出された識別情報に示されるマーカーの位置を計算する。そして、当該マーカーがスクロール同期またはリモートポインタ同期のどちらに用いるマーカーかを示す識別情報を参照して、スクロール同期に用いるマーカーであればスクロール制御部８１０に当該マーカーの位置情報を送り、リモートポインタ同期に用いるマーカーで有ればリモートポインタ描画部８１１に当該マーカーの位置情報を送る。
スクロール制御部８１０は、マーカー位置計算部８０９により算出されたマーカーの位置情報に応じて、ウェブブラウザ３１０のウインドウの表示をスクロール制御し、同期処理を行う。
リモートポインタ描画部８１１は、マーカー位置計算部８０９により算出されたマーカーの位置情報に応じて、ウェブブラウザ３１０のウインドウに表示されるリモートポインタの表示位置を制御し、同期処理を行う。
【００４８】
次に、上述したコラボレーション用アプレット３２０により実現されるスクロール同期及びリモートポインタ同期について、具体的な動作例を参照しながら説明する。なお、以下の説明では、端末装置１１を端末装置１２の操作に同期させる場合を例として説明する。すなわち、端末装置１２は、所定の操作に基づいて同期の基準となるマーカーオブジェクトを選択し識別情報を端末装置１１へ送信する送信側端末装置であり、端末装置１１は、端末装置１２から受信した識別情報に基づいてマーカーオブジェクトを特定しこのマーカーオブジェクトの位置に基づいて同期制御を行う受信側端末装置である。
【００４９】
図９は、入力フォームである「ＰＡＳＳＷＯＲＤ」に関して、スクロール同期とリモートポインタ同期とを行った例を示す図である。なお、図示の例では、入力フォーム（表示オブジェクト）の左上隅にマーカーがあるものとする。
【００５０】
図９を参照すると、二つのウェブブラウザ９１０、９２０は、種類が異なり（一方は米国マイクロソフト社のInternet Explorer、他方は米国ネットスケープ・コミュニケーションズ社のNetscape Navigator）、さらにフォントの表示サイズが異なっている。しかし、入力フォーム９１１、９２１付近のマーカーオブジェクトの位置を基準に、すなわちウェブブラウザ９１０、９２０のウインドウに対しては相対的な位置によって同期されているため、いずれのウェブブラウザ９１０、９２０においても、ウインドウ内にこの入力フォーム９１１、９２１が表示されている。さらに各ウェブブラウザ９１０、９２０のウインドウにおけるスクロールバーのスクロールボックス９１２、９２２の位置がほぼ同じ位置となっている。
【００５１】
また、各ウェブブラウザ９１０、９２０に表示されているリモートポインタ９１３、９２３は、ウインドウ上の位置は異なるものの、いずれも入力フォーム９１１、９２１の左上隅を指している。これにより、ウェブページのレイアウトに基づいて、すなわちウェブブラウザ９１０、９２０のウインドウに対しては相対的な位置によって、リモートポインタ９１３、９２３が同期していることがわかる（フォントサイズが異なるため、ウェブページのページサイズに対するウインドウの表示サイズが異なることから、スクロールボックス９１２、９２２のサイズは異なっている）。
【００５２】
以下、スクロール同期とリモートポインタ同期とに分けて、その動作を詳細に説明する。
なお、前提として、各端末装置１１、１２は、コラボレーションサーバ２０からのウェブページのロード完了時に、JavaScriptによって、当該ウェブページに含まれている全てのアンカーオブジェクトを検索し、その識別子（ＮＡＭＥ属性値）とコンテンツ内での座標値を保存しているものとする。
【００５３】
まず、スクロール同期について説明する。スクロール同期においては、マーカーオブジェクトの位置を基準としてウェブブラウザのウインドウにおける表示のスクロールを相対的に制御する。
具体的には、定期的な検査によってウェブブラウザのウインドウにおける中心位置に近いマーカーの位置を同期させる方法と、端末装置１２の使用者が所定のオブジェクトに注目した場合に、当該イベントに応じて端末装置１１におけるウェブブラウザのウインドウ表示を制御する方法とを併用する。
同期に必要なJavaScriptコード及びイベントハンドラは、コラボレーションサーバ２０においてウェブページに埋め込むことが可能である。
【００５４】
ここで、ウェブページの全領域とウェブブラウザによる表示領域との関係について説明する。図１０は、この二つの領域の関係を説明する図である。通常、ウェブページのサイズ（以下、ページサイズと略す）とウェブブラウザのウインドウのサイズ（以下、ウインドウサイズと略す）とは必ずしも一致しない。したがって、ページサイズの方がウインドウサイズよりも大きい場合、ウインドウにはウェブページ１０１０の一部が表示されることとなる。このウインドウに表示される部分を表示領域１０２０と呼ぶことにする。したがって、この表示領域１０２０とウインドウ（ただし、タイトルバーやメニューバーなどを除いた部分）は、サイズ、形状共に一致する。
【００５５】
ウェブページ１０１０におけるオブジェクトの位置は、ウェブページ１０１０の左上隅を基準点（座標値（０，０））とする座標で示される。また、以下の説明において、表示領域は、左上隅を基準点（表示領域基準点）とし、そのウェブページ１０１０上の座標値を（ｐａｇｅＸ，ｐａｇｅＹ）とし、高さを「ｈｅｉｇｈｔ」、幅を「ｗｉｄｔｈ」とする。
【００５６】
定期的な検査により同期させる方法では、端末装置１２において、コラボレーション用アプレット３２０の中心点計算部８０２、タイマー処理部８０４及びマーカー選択部８０５により、定期的に、表示領域１０２０中に存在するマーカーの中で、表示領域１０２０の中心点１０２１の最も近くに位置するマーカーを検出する。ここで、中心点１０２１の座標は、上述した図１４のJavaScriptを実行することにより算出できる。また、中心点１０２１に最も近いマーカー（アンカーオブジェクト）の検出は、例えば、図１５に示すJavaScriptを実行することにより算出できる。
【００５７】
この定期的なマーカーの検出において、前回の検出時と異なるマーカーが中心点１０２１に最も近いマーカーとして検出されたならば、ウェブブラウザのウインドウの表示がスクロールされてウェブページ１０１０に対する表示領域１０２０の位置が移動したことがわかる。そこで、メッセージ作成部８０６が、検出された新たなマーカーの識別子（アンカータグのＮＡＭＥ属性）を取得して通知メッセージを作成し、データ通信部８０７を通して端末装置１１に送る。
【００５８】
端末装置１２からのメッセージを受信した端末装置１１において、メッセージ解析部８０８が、データ通信部８０７から受け取ったメッセージを解析して同期の基準となるマーカーの識別子を抽出し、マーカー位置計算部８０９に渡す。マーカー位置計算部８０９は、当該識別子により特定されるマーカーの位置情報を算出してスクロール制御部８１０に渡す。スクロール制御部８１０は、マーカー位置計算部８０９から受け取ったマーカーの位置情報と中心点計算部８０２にて算出された中心点１０２１の位置情報とに基づいて、当該マーカーを、端末装置１１におけるウェブブラウザのウインドウ（表示領域１０２０）の中心へできるだけ近づけるように、ウインドウにおける表示のスクロールを行う。ウインドウにおける表示のスクロールは、例えば、図１６に示すJavaScriptを実行することにより制御できる。
【００５９】
以上の操作により、端末装置１１、１２におけるウェブブラウザのウインドウの表示において、ウェブブラウザの種類やウインドウサイズ、フォントサイズなどの設定に関わらず、ウインドウの中心付近に位置するマーカーが一致する。したがって、各ウインドウの表示内容がほぼ一致することとなる。
【００６０】
図１１は、ウェブブラウザのウインドウの中心点に最も近い位置のマーカーによりスクロール同期を行った例を示す図である。図１１において、（Ａ）がスクロール操作を行ったウェブブラウザであり、（Ｂ）が（Ａ）のウェブブラウザの操作に同期して動作したウェブブラウザである。
図１１を参照すると、（Ａ）のウェブブラウザにおいてウインドウの中心点１０２１に最も近い位置にあるマーカーは、テキスト「ＰＡＳＳＷＯＲＤ」の左上隅に存在するマーカーオブジェクト１１１０である。そこで、このマーカーであるアンカータグに記述されたＮＡＭＥ属性（識別子）が（Ｂ）のウェブブラウザに送られる。（Ｂ）のウェブブラウザでは、（Ａ）のウェブブラウザから送られたＮＡＭＥ属性に基づいてテキスト「ＰＡＳＳＷＯＲＤ」の左上隅に存在するマーカーオブジェクト１１２０を特定し、（Ｂ）のウェブブラウザにおけるウインドウの中心点１０２１に最も近い位置（中心点１０２１の真横にあたる位置）に移動する。
この結果、スクロールバー１１１１、１１２１のスクロールボックス１１１２、１１２２の位置もほぼ同じとなっている。なお、図１１において、マーカーオブジェクト１１１０、１１２０を示すために丸印（●）を記入してあるが、上述したようにアンカーオブジェクトを用いることにより、マーカーオブジェクトのサイズは０にできるため、実際のウインドウには、この丸印は表示されない。以下、図１２、図１３に示すマーカーオブジェクトに関しても同様である。また、中心点１０２１についても、説明の便宜上、丸印（●）で示しているが、実際のウインドウに表示されないことは言うまでもない。
【００６１】
次に、イベントに応じて同期させる方法では、端末装置１２において、使用者が所定のオブジェクトに注目する行為を実行した場合（例えば、ボタンやチェックボックスをクリックする操作や、所定のテキストにフォーカスを移す操作を行った場合）、コラボレーション用アプレット３２０のマーカー選択部８０５が、当該オブジェクトの最も近くに位置するマーカーを検出する。そして、メッセージ作成部８０６が、検出されたマーカーの識別子を取得して通知メッセージを作成し、データ通信部８０７を通して端末装置１１に送る。
【００６２】
端末装置１２からのメッセージを受信した端末装置１１において、メッセージ解析部８０８が、データ通信部８０７から受け取ったメッセージを解析して同期の基準となるマーカーの識別子を抽出し、マーカー位置計算部８０９に渡す。マーカー位置計算部８０９は、当該識別子により特定されるマーカーの位置情報を算出してスクロール制御部８１０に渡す。スクロール制御部８１０は、マーカー位置計算部８０９から受け取ったマーカーの位置情報と中心点計算部８０２にて算出された中心点１０２１の位置情報とに基づいて、当該マーカーを、端末装置１１におけるウェブブラウザのウインドウ（表示領域１０２０）の中心へできるだけ近づけるように、ウインドウにおける表示のスクロールを行う（図１６のJavaScript参照）。
以上の操作により、端末装置１２において注目されたオブジェクトが端末装置１１におけるウェブブラウザのウインドウの中心付近に表示されることとなる。
【００６３】
協調作業を行う端末装置１１、１２において、ウェブブラウザにおけるウインドウの表示サイズやフォントサイズが非常に異なっている場合、一方のウェブブラウザには表示されているオブジェクトが他方のウェブブラウザには表示されていない場合がある。この場合、上述した定期的な同期のみでは、一方のウェブブラウザにおいて当該オブジェクトに注目しても、当該オブジェクトをウインドウの中心付近に移動させない限り、他方のウインドウにおいて当該オブジェクトを表示できる状態とはならない。そこで、一方のウェブブラウザにおいて所定のオブジェクトに注目する操作が行われた場合に、このオブジェクトを他方のウェブブラウザにおいても表示するように、上述した同期処理を行う。
【００６４】
図１２は、イベントの発生に応じてスクロール同期を行った例を示す図である。図１２において、（Ａ）がイベントを発生させたウェブブラウザであり、（Ｂ）が（Ａ）のウェブブラウザの操作に同期して動作したウェブブラウザである。図１２を参照すると、（Ａ）のウェブブラウザにおいて入力フォーム１２１１がクリックされたとすると、イベントが発生したオブジェクトである入力フォーム１２１１に最も近い位置にあるマーカーは、当該入力フォーム１２１１の左上隅に存在するマーカーオブジェクト１２１２である。そこで、このマーカーであるアンカータグに記述されたＮＡＭＥ属性（識別子）が（Ｂ）のウェブブラウザに送られる。（Ｂ）のウェブブラウザでは、（Ａ）のウェブブラウザから送られたＮＡＭＥ属性に基づいて入力フォーム１２２１の左上隅に存在するマーカーオブジェクト１２２２を特定し、（Ｂ）のウェブブラウザにおけるウインドウの中心点１０２１に最も近い位置（中心点１０２１の真横にあたる位置）に移動する。
【００６５】
ここで、図１２（Ａ）に示すように、端末装置１２において、当該オブジェクトはウェブブラウザのウインドウの中心付近に表示されているとは限らない。しかしながら、端末装置１２におけるウェブブラウザのウインドウにおいても表示されていることは明らかであり、かつ端末装置１２の使用者が当該ウインドウに注目していることから、当該オブジェクトを端末装置１１におけるウェブブラウザのウインドウの中心付近に表示させることにより、協調作業を支援する上で有効である。
【００６６】
次に、リモートポインタ同期について説明する。リモートポインタ同期においては、マーカーオブジェクトの位置を基準としてウェブブラウザのウインドウに表示されたリモートポインタの位置を相対的に制御する。
ウェブページ上で協調作業において注目すべき点を指し示すリモートポインタは、ＤＩＶタグを使用してＧＩＦファイルを設置することによってウェブブラウザのウインドウに表示される。リモートポインタ（ＤＩＶオブジェクト）の表示／非表示は、JavaScriptでＶＩＳＩＢＩＬＩＴＹ属性値を変えることによって切り替えることができる。また、リモートポインタ（ＤＩＶオブジェクト）の位置は、JavaScriptでＬＥＦＴ，ＴＯＰ属性値を変えることによって移動することができる。
同期に必要なJavaScriptコード及びイベントハンドラは、コラボレーションサーバ２０においてウェブページに埋め込むことが可能である。
【００６７】
リモートポインタの同期では、初期的に、端末装置１１、１２におけるリモートポインタ用ＤＩＶオブジェクトをそれぞれ非表示で作成しておく。リモートポインタの作成は、例えば、ウェブページをコラボレーションサーバ２０からロードした際に、コラボレーション用アプレット３２０の機能により行う。
端末装置１２においてリモートポインタの表示が要求されると、端末装置１２におけるウェブブラウザのウインドウに、リモートポインタ用のＤＩＶオブジェクトを表示する。そして、表示開始要求を、コラボレーション用アプレット３２０のデータ通信部８０７により端末装置１１へ送る。
リモートポインタの表示開始要求を受け取った端末装置１１のコラボレーション用アプレット３２０は、ウェブブラウザのウインドウに、端末装置１２にて操作されるリモートポインタ用のＤＩＶオブジェクトを表示する。
【００６８】
この後、端末装置１２において、コラボレーション用アプレット３２０のカーソル位置計算部８０３及びタイマー処理部８０４により、定期的にマウスカーソルの位置を取得する。マウスカーソルの位置はｏｎＭｏｕｓｅＭｏｖｅイベントハンドラを用いて取得することができる。そして、マーカー選択部８０５により、得られたマウスカーソルの位置に最も近いマーカーを検索する。前回の検出時と異なるマーカーがマウスの位置に最も近いマーカーとして検出されたならば、コラボレーション用アプレット３２０は、端末装置１２におけるウェブブラウザのウインドウに表示されたリモートポインタ用のＤＩＶオブジェクトを、当該マーカーの座標に移動する。そして、メッセージ作成部８０６が、検出された新たなマーカーの識別子（アンカータグのＮＡＭＥ属性）を取得して通知メッセージを作成し、データ通信部８０７を通して端末装置１１に送る。
【００６９】
端末装置１２からのメッセージを受信した端末装置１１において、メッセージ解析部８０８が、データ通信部８０７から受け取ったメッセージを解析して同期の基準となるマーカーの識別子を抽出し、マーカー位置計算部８０９に渡す。マーカー位置計算部８０９は、当該識別子により特定されるマーカーの位置情報を算出してスクロール制御部８１０に渡す。スクロール制御部８１０は、マーカー位置計算部８０９から受け取ったマーカーの位置情報に基づいて、当該マーカーの座標に、端末装置１２にて操作されるリモートポインタ用のＤＩＶオブジェクトを移動させる。
【００７０】
端末装置１２においてリモートポインタの非表示が要求されると、端末装置１２におけるリモートポインタ用のＤＩＶオブジェクトを非表示にする。そして、表示終了要求を、コラボレーション用アプレット３２０のデータ通信部８０７により端末装置１１へ送る。
リモートポインタの表示終了要求を受け取った端末装置１１のコラボレーション用アプレット３２０は、ウェブブラウザのウインドウに表示されている、端末装置１２にて操作されるリモートポインタ用のＤＩＶオブジェクトを非表示にする。
【００７１】
図１３は、リモートポインタ同期の例を示す図である。図１３において、（Ａ）がリモートポインタを操作したウェブブラウザであり、（Ｂ）が（Ａ）のウェブブラウザの操作に同期して動作したウェブブラウザである。
図１３を参照すると、（Ａ）のウェブブラウザにおいてリモートポインタのＤＩＶオブジェクト１３１１は、所定の文（If they cannot .....）の先頭位置に設けられたマーカーオブジェクト１３１２の座標に表示されている。そこで、このマーカーであるアンカータグに記述されたＮＡＭＥ属性（識別子）が（Ｂ）のウェブブラウザに送られる。（Ｂ）のウェブブラウザでは、（Ａ）のウェブブラウザから送られたＮＡＭＥ属性に基づいて対応するマーカーオブジェクト１３２２を特定し、その座標にリモートポインタのＤＩＶオブジェクト１３２１を移動させる。
【００７２】
ウェブブラウザのウインドウに表示されるフォントの種類やサイズが異なると、これに伴ってマーカーオブジェクトの位置も移動している。このため、図１３に示すように、ウインドウにおけるリモートポインタのＤＩＶオブジェクトの表示位置は異なっているが、どちらもコンテンツの同じ位置を指し示している。
【００７３】
以上説明した本実施の形態では、同期のための位置の基準は、異なるウェブブラウザによって表示された場合であっても共通の座標を取得できるものであり、コンテンツのレイアウトをできるだけ崩さないものであることが好ましいという要請から、マーカーとしてアンカーオブジェクトを用いた。しかし、同期のために異なるウェブブラウザによって表示された場合であっても共通の座標を取得するという目的を重視すれば、アンカーオブジェクトの他に、リンクオブジェクトやイメージオブジェクトをマーカーとして用いることも可能である。
このうち、イメージオブジェクトは、オブジェクトのサイズが最低でも１ドットを要するため、コンテンツのレイアウトを全く変えないという訳ではない。また、リンクオブジェクトはリンクが張られていることを示すために、オブジェクトの設置された個所の表示が変わってしまう（テキストの場合、デフォルトでは青色で表示され、アンダーラインが付加される）。しかし、コンテンツのレイアウトが大きく崩れることのない、十分に小さいサイズのオブジェクトを設置したり、表示が大きく変わらないように設定したりすれば、マーカーとして用いることは可能である。
【００７４】
【発明の効果】
以上説明したように、本発明によれば、コラボレーション技術において、ウェブブラウザの種類や設定に依存せずに、ウェブブラウザのウインドウにおける表示のスクロール及びリモートポインタの位置を同期させることが可能となる。
【００７５】
また、本発明によれば、実行時に端末装置においてコラボレーション・ソフトウェアをダウンロードする方式のコラボレーション技術においても、ウェブブラウザのウインドウにおける表示のスクロール及びリモートポインタの位置の同期を実現することができる。
【図面の簡単な説明】
【図１】  本発明の実施の形態におけるコラボレーションを実現するためのシステム構成を示す図である。
【図２】  本実施の形態におけるコラボレーションサーバのシステム構成を示す図である。
【図３】  本実施の形態における端末装置のシステム構成を説明する図である。
【図４】  マーカーとしてのアンカーオブジェクトを挿入したＨＴＭＬ文書の例を示す図である。
【図５】  図４のＨＴＭＬ文書をウェブブラウザにて表示した様子を示す図である。
【図６】  コラボレーションサーバのキャッシュマネージャがＨＴＭＬ文書にマーカーとしてのアンカーオブジェクトを挿入する処理の流れを説明するフローチャートである。
【図７】  コラボレーションサーバのキャッシュマネージャがＨＴＭＬ文書にマーカーとしてのアンカーオブジェクトを挿入する処理の流れを説明するフローチャートである。
【図８】  スクロール同期及びリモートポインタ同期を実現するコラボレーション用アプレットの構成を示す図である。
【図９】  入力フォームである「ＰＡＳＳＷＯＲＤ」に関して、スクロール同期とリモートポインタ同期とを行った例を示す図である。
【図１０】  ウェブページの全領域とウェブブラウザによる表示領域との関係を説明する図である。
【図１１】  ウェブブラウザのウインドウの中心点に最も近い位置のマーカーによりスクロール同期を行った例を示す図である。
【図１２】  イベントの発生に応じてスクロール同期を行った例を示す図である。
【図１３】  リモートポインタ同期の例を示す図である。
【図１４】  ウインドウ（表示領域）の中心点の位置（座標）を求めるJavaScriptの例を示す図である。
【図１５】  ウインドウ（表示領域）の中心点に最も近いマーカーを検出するJavaScriptの例を示す図である。
【図１６】  マーカーに基づくスクロール制御を行うJavaScriptの例を示す図である。
【図１７】  コラボレーションにより２台の端末装置に表示されたウェブページ上で協調作業を行っている様子を説明する図である。
【図１８】  従来のコラボレーション技術において、スクロール同期及びリモートポインタ同期が外れている様子を説明する図である。
【符号の説明】
１１、１２…端末装置、２０…コラボレーションサーバ、２１…ＨＴＴＰブリッジ、２２…セッションマネージャ、２３…キャッシュマネージャ、３０…ウェブサーバ、３１０…ウェブブラウザ、３２０…コラボレーション用アプレット、８０１…ブラウザ制御部、８０２…中心点計算部、８０３…カーソル位置計算部、８０４…タイマー処理部、８０５…マーカー選択部、８０６…メッセージ作成部、８０７…データ通信部、８０８…メッセージ解析部、８０９…マーカー位置計算部、８１０…スクロール制御部、８１１…リモートポインタ描画部
【図１】
0003852742.tif 000002
【図２】
0003852742.tif 000003
【図３】
0003852742.tif 000004
【図４】
0003852742.tif 000005
【図５】
0003852742.tif 000006
【図６】
0003852742.tif 000007
【図７】
0003852742.tif 000008
【図８】
0003852742.tif 000009
【図９】
0003852742.tif 000010
【図１０】
0003852742.tif 000011
【図１１】
0003852742.tif 000012
【図１２】
0003852742.tif 000013
【図１３】
0003852742.tif 000014
【図１４】
0003852742.tif 000015
【図１５】
0003852742.tif 000016
【図１６】
0003852742.tif 000017
【図１７】
0003852742.tif 000018
【図１８】
0003852742.tif 000019