(57)【特許請求の範囲】
【請求項１】
１つ以上のウィンドウを表示するブラウザを実装した第１の端末及び第２の端末と、ページコンテンツを配信するＷｅｂサーバと、前記端末と前記Ｗｅｂサーバとの間でプロキシとして機能する同期サーバとを有するシステムについて、第１の端末と第２の端末との間でブラウザに表示されるページコンテンツを同期させるページコンテンツ同期方法であって、
第１の端末及び第２の端末は、同一のグループ識別子に属しており、
前記同期サーバは、グループ識別子毎に、ユーザ識別子と、ウィンドウ識別子と、宛先ＵＲＬとを対応付けた同期制御テーブルを記憶しており、
第１の端末が、宛先ＵＲＬを含むページ取得要求を、前記同期サーバへ送信する第１のステップと、
前記同期サーバが、前記ページ取得要求を、前記宛先ＵＲＬに基づく前記Ｗｅｂサーバへ転送する第２のステップと、
前記Ｗｅｂサーバが、ページコンテンツを含むページ取得応答を、前記同期サーバへ返信する第３のステップと、
前記同期サーバが、同期制御スクリプトを前記ページ取得応答に埋め込み、当該ページ取得応答を第１の端末へ転送し、前記同期制御スクリプトは、前記端末が、前記グループ識別子及びユーザ識別子とウィンドウ識別子とを含む同期イベント通知を、前記同期サーバへ送信するように記述されている第４のステップと、
第１の端末が、ウィンドウ上で前記同期制御スクリプトを実行することによって、前記宛先ＵＲＬを含む同期イベント通知を、前記同期サーバへ送信する第５のステップと、
前記同期サーバが、前記ＵＲＬを含む同期イベント要求を、第２の端末へ送信する第６のステップと、
第２の端末が、前記宛先ＵＲＬを含むページ取得要求を、前記同期サーバへ送信する第７のステップと
を有することを特徴とするページコンテンツ同期方法。
【請求項２】
第５のステップについて、前記同期サーバは、前記同期イベント通知に前記ウィンドウ識別子が含まれていない場合には新たにウィンドウ識別子を生成し、ウィンドウ識別子を含む同期イベント確認を、第１の端末へ返信する
ことを特徴とする請求項１に記載のページコンテンツ同期方法。
【請求項３】
前記同期サーバは、既に生成されたグループに新たに第３の端末が参加した際に、当該グループ識別子に属する全ての宛先ＵＲＬを含む同期イベント要求を、第３の端末へプッシュ的に送信し、
第３の端末が、前記宛先ＵＲＬ毎に新たにウィンドウをオープンし、各宛先ＵＲＬを含むページ取得要求を、前記同期サーバへ送信する
ことを特徴とする請求項２に記載のページコンテンツ同期方法。
【請求項４】
前記同期サーバは、
グループに属する一方の端末から、宛先ＵＲＬを含むページ取得要求を受信した際に、当該ページ取得要求を前記Ｗｅｂサーバへ転送し、該Ｗｅｂサーバから受信したページ取得応答を一方の端末へ転送し、
前記同期制御テーブルにおける宛先ＵＲＬを更新し、
当該グループに属する１つ以上の他方の端末へ、更新された宛先ＵＲＬを含む同期イベント要求をプッシュ的に送信し、
前記他方の端末が、更新されたＵＲＬを含むページ取得要求を、前記同期サーバへ送信する
ことを特徴とする請求項１から３のいずれか１項に記載のページコンテンツ同期方法。
【請求項５】
１つ以上のウィンドウを表示するブラウザを実装した第１の端末及び第２の端末と、ページコンテンツを配信するＷｅｂサーバと通信し、前記端末と前記Ｗｅｂサーバとの間でプロキシとして機能すると共に、第１の端末と第２の端末との間でブラウザに表示されるページコンテンツを同期させる同期サーバであって、
第１の端末及び第２の端末は、同一のグループ識別子に属しており、
グループ識別子毎に、ユーザ識別子と、ウィンドウ識別子と、宛先ＵＲＬとを対応付けて記憶する同期テーブル記憶手段と、
第１の端末から、宛先ＵＲＬを含むページ取得要求を受信し、当該ページ取得要求を前記Ｗｅｂサーバへ転送するページ取得要求転送手段と、
前記Ｗｅｂサーバから、ページ取得応答を受信し、該ページ取得応答を第１の端末へ転送するページ取得応答転送手段と、
前記ページ取得応答転送手段によって受信されたページ取得応答に、同期制御スクリプトを埋め込み、該ページ取得応答を前記ページ取得応答転送手段へ出力するものであって、前記同期制御スクリプトは、前記端末が、前記グループ識別子及びユーザ識別子とウィンドウ識別子とを含む同期イベント通知を、前記同期サーバへ送信するように記述されているスクリプト埋込手段と、
第１の端末の第１のウィンドウにおける前記同期制御スクリプトの実行によって、第１の端末から、前記宛先ＵＲＬを含む同期イベント通知を受信し、前記宛先ＵＲＬを含む同期イベント要求を、第２の端末へ送信する同期制御手段と
を有するように動作させることを特徴とする同期サーバ。
【請求項６】
前記同期イベント通知に前記ウィンドウ識別子が含まれていない場合には新たにウィンドウ識別子を生成するウィンドウ識別子生成手段を更に有し、
前記同期制御手段は、前記同期イベント通知に対して、前記ウィンドウ識別子を含む同期イベント確認を、第１の端末へ返信する
ことを特徴とする請求項５に記載の同期サーバ。
【請求項７】
前記同期制御手段は、既に生成されたグループに新たに第３の端末が参加した際に、当該グループ識別子に属する全ての宛先ＵＲＬを含む同期イベント要求を、第３の端末へプッシュ的に送信することを特徴とする請求項６に記載の同期サーバ。
【請求項８】
前記ページ取得要求転送手段は、グループに属する一方の端末から、宛先ＵＲＬを含むページ取得要求を受信した際に、当該ページ取得要求を前記Ｗｅｂサーバへ転送し、
前記ページ取得応答転送手段は、前記Ｗｅｂサーバから受信したページ取得応答を一方の端末へ転送し、
前記同期制御手段は、
前記同期テーブル記憶手段における宛先ＵＲＬを更新し、
当該グループに属する１つ以上の他方の端末へ、更新された宛先ＵＲＬを含む同期イベント要求をプッシュ的に送信することを特徴とする請求項５から７のいずれか１項に記載の同期サーバ。
【請求項９】
１つ以上のウィンドウを表示するブラウザを実装した第１の端末及び第２の端末と、ページコンテンツを配信するＷｅｂサーバと通信し、前記端末と前記Ｗｅｂサーバとの間でプロキシとして機能するサーバに搭載されたコンピュータを、第１の端末と第２の端末との間でブラウザに表示されるページコンテンツを同期させるように機能させる同期プログラムであって、
第１の端末及び第２の端末は、同一のグループ識別子に属しており、
グループ識別子毎に、ユーザ識別子と、ウィンドウ識別子と、宛先ＵＲＬとを対応付けて記憶する同期テーブル記憶手段と、
第１の端末から、宛先ＵＲＬを含むページ取得要求を受信し、当該ページ取得要求を前記Ｗｅｂサーバへ転送するページ取得要求転送手段と、
前記Ｗｅｂサーバから、ページ取得応答を受信し、該ページ取得応答を第１の端末へ転送するページ取得応答転送手段と、
前記ページ取得応答転送手段によって受信されたページ取得応答に、同期制御スクリプトを埋め込み、該ページ取得応答を前記ページ取得応答転送手段へ出力するものであって、前記同期制御スクリプトは、前記端末が、前記グループ識別子及びユーザ識別子とウィンドウ識別子とを含む同期イベント通知を、当該同期プログラム自身へ送信するように記述されているスクリプト埋込手段と、
第１の端末の第１のウィンドウにおける前記同期制御スクリプトの実行によって、第１の端末から、前記宛先ＵＲＬを含む同期イベント通知を受信し、前記宛先ＵＲＬを含む同期イベント要求を、第２の端末へ送信する同期制御手段と
してコンピュータを機能させることを特徴とする同期サーバ用のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末に実装されたブラウザを用いて、複数の端末間でページコンテンツを共有する技術に関する。
【背景技術】
【０００２】
ユーザ操作に基づく端末には、インターネットに接続し、様々メディアを再生及び操作するためのインタフェースとしての「ブラウザ」が一般的に実装されている。ブラウザは、特に、ＡＪＡＸ(Asynchronous JavaScript＋XML)の普及によって、非同期でのコンテンツの取得や、動的なコンテンツの描画を可能とする。
【０００３】
ユーザ端末に実装されたブラウザを用いて、１つのコンテンツを複数のユーザ端末によって共有するコンテンツ共有サービスが提供されている。例えばYouTube(http://www.youtube.com)のようなＷｅｂコンテンツ配信サイトがある。このようなコンテンツ共有サービスによれば、端末−サーバ間は、ＨＴＴＰ(Hyper Text Transfer Protocol)で接続される。また、コンテンツには、メディアプレーヤが埋め込まれている。メディアプレーヤは、ブラウザ上で、例えばJavaScript（登録商標）のような関数（JavaScript API(Application Interface)）を読み出すことによって、操作を制御する（例えば非特許文献１参照）。その操作は、例えば、「再生」「一時停止」「指定した動画位置への移動」「ボリューム調整」「ミュート」のようなものである。尚、Ｗｅｂサーバで動作可能なJavaScriptを用いた処理系の実装については、例えば非特許文献２に記載されている。
【０００４】
また、近年、ユーザが、１つの端末を用いて複数のネットワークサービスを同時に利用する形態が多くなってきている。例えば、以下のような「ながら」動作に基づく利用形態がある。
（１）テレビ放送を見ながら、掲示板サービスに感想を次々に書き込む。
（２）動画共有サービス（例えばUstream（登録商標））の動画を見ながら、ミニブログ（例えばtwitter（登録商標））に「つぶやき」を書き込む。
（３）動画共有サイトの動画を見ながら、その動画にコメントを書き込む（例えばニコニコ動画（登録商標））
これらの利用形態は全て、１つの共有コンテンツに対して、多数のユーザが同一の場でリアルタイムにコメントを述べようとすることに基づく。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】「YouTube JavaScript Player API リファレンス」、[online]、［平成２２年７月１日検索］、インターネット＜URL:http://code.google.com/intl/ja/apis/youtube/js_api_reference.html＞
【非特許文献２】Apache Tomcat、[online]、［平成２２年６月３０日検索］、インターネット＜URL:http://tomcat.apache.org/>
【発明の概要】
【発明が解決しようとする課題】
【０００６】
前述したような利用形態によれば、ブラウザ自体には、何らの共有機能も含まれていない。即ち、ＨＴＴＰを用いた場合、端末−サーバ間で１つのセッションが確立されており、一方の端末のブラウザの操作を、他方の端末のブラウザに反映させることはできない。１つのＷｅｂサーバに複数の端末からのセッションを集中させることによって、共有機能を提供することもできるが、この場合、各ブラウザのページコンテンツの同期を取らなければならない。特に、複数のユーザ端末によるブラウザに対する多数の操作の競合に対応することは難しい。
【０００７】
また、ユーザ操作によってブラウザのリンクを辿っていく場合、Ｗｅｂサイトによっては複数のウィンドウが起動する場合もある。この場合、ウィンドウ毎に区別して、他の端末との間でページコンテンツを同期させる必要もある。
【０００８】
尚、ページコンテンツを同期させるサービスとして、会議システムにおけるボードの共有がある。しかしながら、このようなサービスでは、専用のアプリケーションやプラグインを全ての端末にインストールする必要がある。また、共有するサイトも、特定のサイトに限られ、一般のサイトの閲覧に対して共有することもできない。
【０００９】
そこで、本発明は、既存のＷｅｂサーバに更なる機能を追加することなく、ブラウザにおけるウィンドウ毎のページコンテンツを、複数の端末間で同期させることができるページコンテンツ同期方法、同期サーバ及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明によれば、１つ以上のウィンドウを表示するブラウザを実装した第１の端末及び第２の端末と、ページコンテンツを配信するＷｅｂサーバと、端末とＷｅｂサーバとの間でプロキシとして機能する同期サーバとを有するシステムについて、第１の端末と第２の端末との間でブラウザに表示されるページコンテンツを同期させるページコンテンツ同期方法であって、
第１の端末及び第２の端末は、同一のグループ識別子に属しており、
同期サーバは、グループ識別子毎に、ユーザ識別子と、ウィンドウ識別子と、宛先ＵＲＬとを対応付けた同期制御テーブルを記憶しており、
第１の端末が、宛先ＵＲＬを含むページ取得要求を、同期サーバへ送信する第１のステップと、
同期サーバが、ページ取得要求を、宛先ＵＲＬに基づくＷｅｂサーバへ転送する第２のステップと、
Ｗｅｂサーバが、ページコンテンツを含むページ取得応答を、同期サーバへ返信する第３のステップと、
同期サーバが、同期制御スクリプトをページ取得応答に埋め込み、当該ページ取得応答を第１の端末へ転送し、同期制御スクリプトは、端末が、グループ識別子及びユーザ識別子とウィンドウ識別子とを含む同期イベント通知を、同期サーバへ送信するように記述されている第４のステップと、
第１の端末が、ウィンドウ上で同期制御スクリプトを実行することによって、宛先ＵＲＬを含む同期イベント通知を、同期サーバへ送信する第５のステップと、
同期サーバが、ＵＲＬを含む同期イベント要求を、第２の端末へ送信する第６のステップと、
第２の端末が、宛先ＵＲＬを含むページ取得要求を、同期サーバへ送信する第７のステップと
を有することを特徴とする。
【００１１】
本発明のページコンテンツ同期方法における他の実施形態によれば、
第５のステップについて、同期サーバは、同期イベント通知にウィンドウ識別子が含まれていない場合には新たにウィンドウ識別子を生成し、ウィンドウ識別子を含む同期イベント確認を、第１の端末へ返信することも好ましい。
【００１２】
本発明のページコンテンツ同期方法における他の実施形態によれば、
同期サーバは、既に生成されたグループに新たに第３の端末が参加した際に、当該グループ識別子に属する全ての宛先ＵＲＬを含む同期イベント要求を、第３の端末へプッシュ的に送信し、
第３の端末が、宛先ＵＲＬ毎に新たにウィンドウをオープンし、各宛先ＵＲＬを含むページ取得要求を、同期サーバへ送信することも好ましい。
【００１３】
本発明のページコンテンツ同期方法における他の実施形態によれば、
同期サーバは、
グループに属する一方の端末から、宛先ＵＲＬを含むページ取得要求を受信した際に、当該ページ取得要求をＷｅｂサーバへ転送し、該Ｗｅｂサーバから受信したページ取得応答を一方の端末へ転送し、
同期制御テーブルにおける宛先ＵＲＬを更新し、
当該グループに属する１つ以上の他方の端末へ、更新された宛先ＵＲＬを含む同期イベント要求をプッシュ的に送信し、
他方の端末が、更新されたＵＲＬを含むページ取得要求を、同期サーバへ送信することも好ましい。
【００１４】
本発明によれば、１つ以上のウィンドウを表示するブラウザを実装した第１の端末及び第２の端末と、ページコンテンツを配信するＷｅｂサーバと通信し、端末とＷｅｂサーバとの間でプロキシとして機能すると共に、第１の端末と第２の端末との間でブラウザに表示されるページコンテンツを同期させる同期サーバであって、
第１の端末及び第２の端末は、同一のグループ識別子に属しており、
グループ識別子毎に、ユーザ識別子と、ウィンドウ識別子と、宛先ＵＲＬとを対応付けて記憶する同期テーブル記憶手段と、
第１の端末から、宛先ＵＲＬを含むページ取得要求を受信し、当該ページ取得要求をＷｅｂサーバへ転送するページ取得要求転送手段と、
Ｗｅｂサーバから、ページ取得応答を受信し、該ページ取得応答を第１の端末へ転送するページ取得応答転送手段と、
ページ取得応答転送手段によって受信されたページ取得応答に、同期制御スクリプトを埋め込み、該ページ取得応答をページ取得応答転送手段へ出力するものであって、同期制御スクリプトは、端末が、グループ識別子及びユーザ識別子とウィンドウ識別子とを含む同期イベント通知を、同期サーバへ送信するように記述されているスクリプト埋込手段と、
第１の端末の第１のウィンドウにおける同期制御スクリプトの実行によって、第１の端末から、宛先ＵＲＬを含む同期イベント通知を受信し、宛先ＵＲＬを含む同期イベント要求を、第２の端末へ送信する同期制御手段と
を有するように動作させることを特徴とする同期サーバ。
【００１５】
本発明の同期サーバにおける他の実施形態によれば、
同期イベント通知にウィンドウ識別子が含まれていない場合には新たにウィンドウ識別子を生成するウィンドウ識別子生成手段を更に有し、
同期制御手段は、同期イベント通知に対して、ウィンドウ識別子を含む同期イベント確認を、第１の端末へ返信することも好ましい。
【００１６】
本発明の同期サーバにおける他の実施形態によれば、
同期制御手段は、既に生成されたグループに新たに第３の端末が参加した際に、当該グループ識別子に属する全ての宛先ＵＲＬを含む同期イベント要求を、第３の端末へプッシュ的に送信することも好ましい。
【００１７】
本発明の同期サーバにおける他の実施形態によれば、
ページ取得要求転送手段は、グループに属する一方の端末から、宛先ＵＲＬを含むページ取得要求を受信した際に、当該ページ取得要求をＷｅｂサーバへ転送し、
ページ取得応答転送手段は、Ｗｅｂサーバから受信したページ取得応答を一方の端末へ転送し、
同期制御手段は、
同期テーブル記憶手段における宛先ＵＲＬを更新し、
当該グループに属する１つ以上の他方の端末へ、更新された宛先ＵＲＬを含む同期イベント要求をプッシュ的に送信することも好ましい。
【００１８】
本発明によれば、１つ以上のウィンドウを表示するブラウザを実装した第１の端末及び第２の端末と、ページコンテンツを配信するＷｅｂサーバと通信し、端末とＷｅｂサーバとの間でプロキシとして機能するサーバに搭載されたコンピュータを、第１の端末と第２の端末との間でブラウザに表示されるページコンテンツを同期させるように機能させる同期プログラムであって、
第１の端末及び第２の端末は、同一のグループ識別子に属しており、
グループ識別子毎に、ユーザ識別子と、ウィンドウ識別子と、宛先ＵＲＬとを対応付けて記憶する同期テーブル記憶手段と、
第１の端末から、宛先ＵＲＬを含むページ取得要求を受信し、当該ページ取得要求をＷｅｂサーバへ転送するページ取得要求転送手段と、
Ｗｅｂサーバから、ページ取得応答を受信し、該ページ取得応答を第１の端末へ転送するページ取得応答転送手段と、
ページ取得応答転送手段によって受信されたページ取得応答に、同期制御スクリプトを埋め込み、該ページ取得応答をページ取得応答転送手段へ出力するものであって、同期制御スクリプトは、端末が、グループ識別子及びユーザ識別子とウィンドウ識別子とを含む同期イベント通知を、当該同期プログラム自身へ送信するように記述されているスクリプト埋込手段と、
第１の端末の第１のウィンドウにおける同期制御スクリプトの実行によって、第１の端末から、宛先ＵＲＬを含む同期イベント通知を受信し、宛先ＵＲＬを含む同期イベント要求を、第２の端末へ送信する同期制御手段と
してコンピュータを機能させることを特徴とする同期サーバ用のプログラム。
【発明の効果】
【００１９】
本発明のページコンテンツ同期方法、同期サーバ及びプログラムによれば、既存のＷｅｂサーバに更なる機能（アプリケーションやプラグイン）を追加することなく、ブラウザにおけるウィンドウ毎のページコンテンツを、複数の端末間で同期させることができる。
【図面の簡単な説明】
【００２０】
【図１】本発明におけるシステム構成図である。
【図２】端末のグループ参加を表すシーケンス図である。
【図３】図２における端末のブラウザに表示された画面である。
【図４】本発明における端末間のページコンテンツを同期させる第１のシーケンス図である。
【図５】端末のブラウザに表示された画面である。
【図６】本発明における端末間のページコンテンツを同期させる第２のシーケンス図である。
【図７】本発明における端末間のページコンテンツを同期させる第３のシーケンス図である。
【図８】本発明における端末間のページコンテンツを同期させる第４のシーケンス図である。
【図９】図８に基づいて端末のブラウザに表示された画面である。
【図１０】本発明における同期サーバの機能構成図である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
【００２２】
図１は、本発明におけるシステム構成図である。
【００２３】
図１によれば、同期サーバ１、端末２及びＷｅｂサーバ３が、インターネットに接続されている。端末２は、プロキシサーバとして機能する同期サーバ１を介して、Ｗｅｂサーバ３へページ取得要求を送信し、ページコンテンツを取得することができる。即ち、同期サーバ１は、端末２に対してはＷｅｂサーバとして機能し、Ｗｅｂサーバ３に対してはＷｅｂクライアントとして機能する。端末２は、ブラウザを実装しており、受信したページコンテンツを再生及び操作する。ブラウザは、１つ以上のウィンドウを表示し、ウィンドウ毎にページコンテンツを表示する。
【００２４】
本発明によれば、同期サーバ１は、端末２のブラウザにおけるウィンドウＩＤ（識別子）の単位で、グループを構成する。そして、同一のグループＩＤに属する複数の端末２の間で、ブラウザにおけるウィンドウに表示されるページコンテンツが同期される。具体的には、図１によれば、端末２Ａ、２Ｂ及び２Ｃによって、グループが構成されている。そして、ユーザＡの操作に応じて、端末２Ａのブラウザにおけるウィンドウに表示されたページコンテンツが、端末２Ｂ及び２Ｃにも表示される。
【００２５】
図２は、端末のグループ参加を表すシーケンス図である。
図３は、図２における端末のブラウザに表示された画面である。
【００２６】
（Ｓ２０１）端末２Ａのブラウザは、ユーザ操作に応じて１つのウィンドウを開き、同期サーバ１へアクセスする。具体的には、端末２Ａは、同期サーバ１のログインページのＵＲＬ(Uniform Resource Locator)を宛先として、ＨＴＴＰのＧＥＴメソッドのリクエスト（ページ取得要求）を送信する。
（Ｓ２０２）これに対して、同期サーバ１は、ログインページを含むページ取得応答を、端末２Ａへ返信する。端末２Ａのブラウザは、そのログインページを、そのウィンドウに表示する。
（Ｓ２０３）端末２Ａのブラウザにおけるウィンドウに表示されたログインページには、ユーザ操作に応じて、ユーザＩＤ及びパスワードが入力される（図３のＳ２０３参照）。これら認証情報は、同期サーバ１へ送信される。
（Ｓ２０４）同期サーバ１は、ユーザＩＤ及びパスワードに基づいて、サービスを提供すべきユーザか否かを認証する。例えば、予め記憶されたユーザＩＤ及びパスワードと照合することによって認証する。正当なユーザと判定された際に、グループ一覧ページを含むページ取得応答を、端末２Ａへ返信する。端末２Ａのブラウザは、そのグループ一覧ページをウィンドウに表示する。
（Ｓ２０５）尚、端末２Ａを操作するユーザにとって、所望のグループが生成されていない場合もある。この場合、端末２Ａは、ユーザ操作に応じて、所望のグループの作成を要求するべく、グループ作成要求を同期サーバ１へ送信することもできる。
（Ｓ２０６）これに対し、同期サーバ１は、新たに１つのグループＩＤを生成する。そして、そのグループＩＤを含むグループ作成応答が、端末２Ａへ返信される。
（Ｓ２０７）端末２Ａは、ユーザ操作に応じて、所望のグループＩＤが選択される（図３のＳ２０７参照）。例えば、ユーザ操作に応じて、所望のグループＩＤのボタンがクリックされる。そして、端末２Ａは、所望のグループへの参加要求を、同期サーバ１へ送信する。
（Ｓ２０８）これに対して、同期サーバ１は、グループ参加要求に基づくグループ管理ページを、端末２Ａへ返信する。端末２Ａのブラウザは、そのグループ管理ページをウィンドウに表示する（図３のＳ２０８参照）。グループ管理ページには、現在の参加ユーザと、現在表示されているサイトのＵＲＬとが表示されている。図３のＳ２０８によれば、新たに生成されたグループＩＤ１における参加ユーザは、ユーザＡのみとなっている。
【００２７】
（Ｓ２０９）最後に、端末２Ａは、グループＩＤ及びユーザＩＤを含む同期イベント通知を、同期サーバ１へ送信する。これによって、同期サーバ１は、グループＩＤ毎に、ユーザＩＤを対応付けた同期制御テーブルを生成する。
（Ｓ２１０）そして、同期制御サーバ１は、同期イベント確認を、端末２Ａへ返信する。これによって、端末２ＡにおけるグループＩＤ１への参加が完了する。
【００２８】
（Ｓ２２０）端末２Ｂも、端末２Ａにおける前述したＳ２０１〜Ｓ２１０のシーケンスを実行する（図３のＳ２２０参照）。これによって、同期制御サーバ１は、グループＩＤ１に、ユーザＡ及びユーザＢが属するように、同期制御テーブルを更新する。
【００２９】
図４は、本発明における端末間のページコンテンツを同期させる第１のシーケンス図である。
図５は、端末のブラウザに表示された画面である。
【００３０】
（Ｓ４０１）ユーザＡが、Ｗｅｂサーバ３のページコンテンツ(www.kddi-jp.com)をウィンドウに表示することを所望したとする。端末２Ａのブラウザは、ユーザ操作に応じて、新たなウィンドウをオープンする。このとき、新たなウィンドウに表示すべきページコンテンツのＵＲＬ(www.kddi-jp.com)が指定される。そして、端末２Ａは、宛先ＵＲＬを含むページ取得要求を、同期サーバ１へ送信する。ここで、ページ取得要求は、ＨＴＴＰにおけるＧＥＴメソッドのリクエストである。
【００３１】
（Ｓ４０２）同期サーバ１は、そのページ取得要求を、宛先ＵＲＬに基づくＷｅｂサーバ３(www.kddi-jp.com)へ転送する。
【００３２】
（Ｓ４０３）これに対し、Ｗｅｂサーバ３は、ページコンテンツを含むページ取得応答(200OK)を、同期サーバ１へ返信する。ページ取得応答は、
【００３３】
（Ｓ４０４）同期サーバ１は、ページ取得応答を受信した際に、そのページ取得応答(200OK)に「同期制御スクリプト」を埋め込む。そして、同期サーバ１は、そのページ取得応答を、端末２Ａへ送信する。
【００３４】
「スクリプト」とは、機械語へのコンパイル（変換）を実行する必要がない簡易プログラムをいう。一般に、実行形式のプログラムは、ソースコードを機械語にコンパイルする必要があるのに対して、スクリプトはコンパイルを必要としない。スクリプトは、一般に、ページコンテンツのＨＴＭＬ(Hyper Text Markup Language)に埋め込まれる。これによって、特別な開発環境は要さず、ＨＴＭＬだけでは提供できない様々な機能を、スクリプトを実行することによって提供する。スクリプト記述言語としては、例えばJavaScript、VBScript、Perl等がある。
【００３５】
ここで、JavaScriptとは、Ｗｅｂ上で、インタラクティブに表現可能とするべきオブジェクト指向のスクリプト言語である。JavaScriptは、端末に実装された既存のブラウザによって実行できる。
例えば、ＨＴＭＬファイルに、以下のようなダグを組み込むことができる。
<script type="text/javascript" src="sample.js">
・・・・・・・・・・・・
</script>
このタグは、「JavaScriptを使用しており、そのスクリプトファイルはsample.jsである」ことを意味する。本発明によれば、jsファイル（同期制御スクリプト）には、例えばウィンドウについて「表示完了」となった場合に、同期イベント通知をその同期サーバへ送信するべき機能が記述される。即ち、端末が同期イベント要求／通知を受信した場合の動作内容が、そのjsファイルに記述されている。
【００３６】
端末２Ａは、同期サーバ１からページ取得応答を受信し、そのページコンテンツ(www.kddi-jp.com)を、ブラウザのウィンドウ上に表示する。このとき、端末２Ａは、そのウィンドウ上で同期制御スクリプトも同時に実行する。
【００３７】
（Ｓ４０５）同期制御スクリプトの実行に基づいて、端末２Ａは、ブラウザのウィンドウ上におけるページコンテンツの表示が完了した際に、以下の情報を含む同期イベント通知を、同期サーバ１へ送信する。
・グループＩＤ
・ユーザＩＤ
・宛先ＵＲＬ
・（既存のウィンドウに基づく場合には、ウィンドウＩＤ）
このような同期イベント通知の送信については、同期制御スクリプトに記述されている。
【００３８】
（Ｓ４０６）同期サーバ１は、同期イベント通知にウィンドウＩＤが含まれていない場合には、新たにウィンドウＩＤ(100)を生成する。同期サーバ１は、端末２Ａから受信した同期イベント通知に基づいて、同期制御テーブルにおけるウィンドウＩＤ及びＵＲＬを更新する。図４によれば、ユーザＩＤ＝Ａ及びユーザＩＤ＝Ｂとが同一グループに属し、ウィンドウＩＤ＝100についてＵＲＬ(www.kddi-jp.com)で同期する。
【００３９】
（Ｓ４０７）同期サーバ１は、ウィンドウＩＤ(100)を含む同期イベント確認を、端末２Ａへ返信する。
【００４０】
（Ｓ４０８）ここで、同期サーバ１が、ＵＲＬを含む同期イベント要求を、同期イベント確認を受信した端末（ユーザＡ）と同一グループに属する１つ以上の端末へ送信する。図４によれば、ユーザＩＤ＝Ａ及びウィンドウＩＤ＝１００に対応するＵＲＬを含む同期イベント要求を、ユーザＩＤ＝Ｂの端末２Ｂへ、プッシュ的に送信する。
【００４１】
（Ｓ４１１）端末２Ｂは、宛先ＵＲＬを含む同期イベント要求を受信した際に、ブラウザによって新たにウィンドウをオープンする。そして、端末２Ｂは、その宛先ＵＲＬ(www.kddi-jp.com)を含むページ取得要求を、同期サーバ１へ送信する。
（Ｓ４１２）同期サーバ１は、そのページ取得要求を、Ｗｅｂサーバ３(www.kddi-jp.com)へ転送する。尚、同期サーバ１が、Ｓ４０３で受信したページコンテンツをキャッシュしている場合、ここで、ページ取得要求を、Ｗｅｂサーバ３へ転送する必要はない。この場合、Ｓ４１４へ移行する。
（Ｓ４１３）Ｗｅｂサーバ３(www.kddi-jp.com)は、ページコンテンツを含むページ取得応答を、同期サーバ１へ返信する。
（Ｓ４１４）同期サーバ１は、受信したページ取得応答に、同期制御スクリプトを埋め込む（Ｓ４０４と同様）。そして、同期サーバ１は、そのページ取得応答を、端末２Ｂへ転送する。
【００４２】
（Ｓ４１５）これに対し、端末２Ｂは、ブラウザのウィンドウ上におけるページコンテンツ(www.kddi-jp.com)の表示が完了した際に、同期イベント通知を、同期サーバ１へ送信する。同期サーバ１は、同期イベント通知に基づいて同期制御テーブルを更新する。
（Ｓ４１６）同期サーバ１は、ウィンドウＩＤ(100)を含む同期イベント確認を、端末２Ｂへ返信する。
【００４３】
これによって、端末２Ａ及び端末２Ｂのブラウザには、ページコンテンツ(www.kddi-jp.com)が同期して表示される。
【００４４】
図６は、本発明における端末間のページコンテンツを同期させる第２のシーケンス図である。図６によれば、新たなウィンドウがオープンされることなく、ページコンテンツが遷移した場合を表す。
【００４５】
（Ｓ６０１）端末２Ａのウィンドウ(ID=100)には、www.kddi-jp.comのページコンテンツが表示されているとする。このとき、ユーザＡが、他のページコンテンツ(www.kddi.com)をウィンドウに表示することを所望したとする。端末２Ａのブラウザについて既にオープンされたウィンドウに、新たなページコンテンツのＵＲＬ(www.kddi.com)が指定される。そして、端末２Ａは、宛先ＵＲＬを含むページ取得要求を、同期サーバ１へ送信する。
（Ｓ６０２）同期サーバ１は、そのページ取得要求を、Ｗｅｂサーバ３(www.kddi.com)へ転送する。
（Ｓ６０３）Ｗｅｂサーバ３(www.kddi.com)は、ページコンテンツを含むページ取得応答を、同期サーバ１へ返信する。
（Ｓ６０４）同期サーバ１は、受信したページ取得応答に、同期制御スクリプトを埋め込む。そして、同期サーバ１は、そのページ取得応答(200OK)を、端末２Ａへ転送する。
【００４６】
（Ｓ６０５）これに対し、端末２Ａは、同期制御スクリプトの実行によって、ブラウザのウィンドウ上におけるページコンテンツ(www.kddi.com)の表示が完了した際に、同期イベント通知を、同期サーバ１へ送信する。
【００４７】
（Ｓ６０６）同期サーバ１は、同期イベント通知に基づいて同期制御テーブルのＵＲＬを更新する。
（Ｓ６０７）ここで、同期サーバ１が、ＵＲＬ(www.kddi.com)を含む同期イベント要求を、同一グループに属する他の端末（端末２Ｂ）へプッシュ的に送信する。図６によれば、同期イベント要求は、グループＩＤ及びユーザＩＤと、ＵＲＬ(www.kddi.com)と、ウィンドウＩＤ(100)とを含む。
【００４８】
（Ｓ６１１）端末２Ｂは、宛先ＵＲＬを含む同期イベント要求を受信した際に、同一のウィンドウ(100)について、その宛先ＵＲＬ(www.kddi.com)を含むページ取得要求を、同期サーバ１へ送信する。
（Ｓ６１２）同期サーバ１は、そのページ取得要求を、Ｗｅｂサーバ３(www.kddi.com)へ転送する。尚、同期サーバ１が、Ｓ６０３で受信したページコンテンツをキャッシュしている場合、ここで、ページ取得要求を、Ｗｅｂサーバ３へ転送する必要はない。この場合、Ｓ６１４へ移行する。
（Ｓ６１３）Ｗｅｂサーバ３(www.kddi.com)は、ページコンテンツを含むページ取得応答を、同期サーバ１へ返信する。
（Ｓ６１４）同期サーバ１は、受信したページ取得応答に、同期制御スクリプトを埋め込む。そして、同期サーバ１は、そのページ取得応答を、端末２Ｂへ転送する。
【００４９】
（Ｓ６１５）これに対し、端末２Ｂは、同期制御スクリプトの実行によって、ブラウザのウィンドウ(100)上におけるページコンテンツ(www.kddi.com)の表示が完了した際に、同期イベント通知を、同期サーバ１へ送信する。
【００５０】
図７は、本発明における端末間のページコンテンツを同期させる第３のシーケンス図である。図７によれば、端末２Ｃが、端末２Ａ及び２Ｂが属するグループに新たに参加した場合を表す。
【００５１】
（Ｓ７０１）端末２Ｃも、端末２Ａにおける前述したＳ２０１〜Ｓ２１０のシーケンスを実行する。これによって、同期制御サーバ１は、グループＩＤ１に、ユーザＡ、Ｂ及びＣが属するように、同期制御テーブルを更新する。
【００５２】
（Ｓ７０２）ここで、同期サーバ１が、ＵＲＬを含む同期イベント要求を、同一グループに属する他の１つ以上の端末へ送信する。図７によれば、グループＩＤ１に対応するＵＲＬ(www.kddi.com)を含む同期イベント要求を、ユーザＩＤ＝Ｃの端末２Ｃへ、プッシュ的に送信する。
【００５３】
（Ｓ７１１）端末２Ｃは、宛先ＵＲＬを含む同期イベント要求を受信した際に、ブラウザによって新たにウィンドウをオープンする。そして、端末２Ｃは、その宛先ＵＲＬ(www.kddi.com)を含むページ取得要求を、同期サーバ１へ送信する。
（Ｓ７１２）同期サーバ１は、そのページ取得要求を、Ｗｅｂサーバ３(www.kddi.com)へ転送する。尚、同期サーバ１が、既に受信したページコンテンツをキャッシュしている場合、ここで、ページ取得要求を、Ｗｅｂサーバ３へ転送する必要はない。この場合、Ｓ７１４へ移行する。
（Ｓ７１３）Ｗｅｂサーバ３は、ページコンテンツを含むページ取得応答を、同期サーバ１へ返信する。
（Ｓ７１４）同期サーバ１は、受信したページ取得応答に、同期制御スクリプトを埋め込む。そして、同期サーバ１は、そのページ取得応答を、端末２Ｃへ転送する。
【００５４】
（Ｓ７１５）これに対し、端末２Ｃは、ブラウザのウィンドウ上におけるページコンテンツの表示が完了した際に、同期イベント通知を、同期サーバ１へ送信する。
（Ｓ７１６）同期サーバ１は、ウィンドウＩＤを含む同期イベント確認を、端末２Ｃへ返信する。
【００５５】
これによって、端末２Ａ、２Ｂ及び２Ｃのブラウザには、ページコンテンツ(www.kddi.com)が同期して表示される。
【００５６】
図８は、本発明における端末間のページコンテンツを同期させる第４のシーケンス図である。
図９は、図８に基づいて端末のブラウザに表示された画面である。
【００５７】
（Ｓ８０１）端末２Ａのウィンドウ(ID=100)には、www.kddi.comのページコンテンツが表示されているとする。このとき、ユーザＡが、他のページコンテンツ(www.kddilabs.jp)を新たなウィンドウに表示することを所望したとする。このとき、端末２Ａのブラウザは、新たなウィンドウをオープンする。このとき、新たなウィンドウに表示すべきページコンテンツのＵＲＬ(www.kddilabs.jp)が指定される（図９のＳ８０１参照）。そして、端末２Ａは、宛先ＵＲＬを含むページ取得要求を、同期サーバ１へ送信する。
（Ｓ８０２）同期サーバ１は、そのページ取得要求を、Ｗｅｂサーバ３(www.kddilabs.jp)へ転送する。
（Ｓ８０３）Ｗｅｂサーバ３(www.kddilabs.jp)は、ページコンテンツを含むページ取得応答を、同期サーバ１へ返信する。
（Ｓ８０４）同期サーバ１は、受信したページ取得応答に、同期制御スクリプトを埋め込む。そして、同期サーバ１は、そのページ取得応答(200OK)を、端末２Ａへ転送する。
【００５８】
（Ｓ８０５）これに対し、端末２Ａは、同期制御スクリプトの実行によって、ブラウザのウィンドウ上におけるページコンテンツ(www.kddilabs.jp)の表示が完了した際に（図９のＳ８０５参照）、同期イベント通知を、同期サーバ１へ送信する。
【００５９】
（Ｓ８０６）同期サーバ１は、新たにウィンドウＩＤを生成する。そして、同期イベント通知に基づいて同期制御テーブルのＵＲＬを更新する。
（Ｓ８０７）そして、同期サーバ１は、ウィンドウＩＤを含む同期イベント確認を、端末２Ａへ返信する。
（Ｓ８０８）ここで、同期サーバ１が、ＵＲＬ(www.kddilabs.jp)及びを含む同期イベント要求を、同一グループに属する端末２Ｂ及び２Ｃへプッシュ的に送信する。図８によれば、同期イベント要求は、グループＩＤ及びユーザＩＤと、ＵＲＬ(www.kddilabs.jp)と、ウィンドウＩＤ(200)とを含む。
【００６０】
（Ｓ８１１）端末２Ｂは、宛先ＵＲＬを含む同期イベント要求を受信した際に、ウィンドウＩＤ(200)について新たにウィンドウを生成し、宛先ＵＲＬ(www.kddilabs.jp)を含むページ取得要求を、同期サーバ１へ送信する（図９のＳ８１１参照）。
（Ｓ８１２）同期サーバ１は、そのページ取得要求を、Ｗｅｂサーバ３(www.kddilabs.jp)へ転送する。
（Ｓ８１３）Ｗｅｂサーバ３(www.kddilabs.jp)は、ページコンテンツを含むページ取得応答を、同期サーバ１へ返信する。
（Ｓ８１４）同期サーバ１は、受信したページ取得応答に、同期制御スクリプトを埋め込む。そして、同期サーバ１は、そのページ取得応答を、端末２Ｂへ転送する。
【００６１】
（Ｓ８１５）これに対し、端末２Ｂは、同期制御スクリプトの実行によって、ブラウザのウィンドウ(200)上におけるページコンテンツ(www.kddilabs.com)の表示が完了した際に（図９のＳ８１５参照）、同期イベント通知を、同期サーバ１へ送信する。
（Ｓ８１６）同期サーバ１は、ウィンドウＩＤを含む同期イベント確認を、端末２Ｂへ送信する。
【００６２】
（Ｓ８２１〜Ｓ８２６）端末２Ｃについても、端末２ＢのＳ８１１〜Ｓ８１６と同様のシーケンスが実行される（図９のＳ８２１及びＳ８２５参照）。
【００６３】
これによって、端末２Ａ、２Ｂ及び２Ｃのブラウザには、ページコンテンツ(www.kddi.com)とページコンテンツ(www.kddilabs.jp)が同期して表示される。
【００６４】
尚、本発明によれば、ウィンドウ毎に、制御側端末と被制御側端末とを予め特定する必要はない。勿論、一方の端末を制御側として特定するものであってもよい。
【００６５】
また、一方の端末がページ取得要求を同期サーバ１へ送信し、その同期シーケンスが実行されている途中で、他方の端末がページ取得要求を送信することによって、競合が発生する。従って、本発明によれば、例えば１つのページ取得要求の処理が完了するまで（例えば図４におけるＳ４０１〜Ｓ４１８）、同期サーバ１は、他の端末から、同期のためのページ取得要求を拒否することも好ましい。
【００６６】
更に、ページ取得要求に、コンテンツの「再生」「停止」等の操作情報を含むものであってもよい。ページコンテンツにメディアプレーヤが含まれることによって、ＨＴＴＰに基づく再生操作を実行することができる。このような操作情報であっても、本発明によれば、同期イベント要求に含めることによって、同一グループに属する他の端末の動作も制御することができる。JavaScriptによる動画コンテンツへの操作は、例えば、YouTube JavaScript Playerを利用することができる(http://code.google.com/intl/ja/apis/youtube/js_api_reference.html参照)。
【００６７】
図１０は、本発明における同期サーバの機能構成図である。
【００６８】
図１０によれば、同期サーバ１は、インターネットに接続する通信インタフェース１０と、ＨＴＴＰ処理部１１と、プロキシ機能部１２と、ページ取得要求転送部１３と、ページ取得応答転送部１４と、スクリプト埋込部１５と、同期制御部１６と、ウィンドウＩＤ生成部１７と、同期テーブル記憶部１８とを有する。通信インタフェースを除くこれら機能構成部は、サーバに搭載されたコンピュータを機能させるプログラムを実行することによって実現される。
【００６９】
ＨＴＴＰ処理部１１は、ＨＴＴＰに基づくメッセージを、端末２及びＷｅｂサーバ３との間で交換する。
【００７０】
プロキシ機能部１２は、端末２に対してはＷｅｂサーバとして機能し、Ｗｅｂサーバ３に対してはＷｅｂクライアントとして機能する。
【００７１】
ページ取得要求転送部１３は、端末２から、宛先ＵＲＬを含むページ取得要求を受信し、そのページ取得要求をＷｅｂサーバ３へ転送する（図４のＳ４０１及びＳ４０２参照）。
【００７２】
ページ取得応答転送部１４は、Ｗｅｂサーバ３から、ページ取得応答を受信し、そのページ取得応答を端末２へ転送する（図４のＳ４０３及びＳ４０４参照）。
【００７３】
スクリプト埋込部１５は、ページ取得応答転送部１４によって受信されたページ取得応答に、同期制御スクリプトを埋め込む（図４のＳ４０４参照）。同期制御スクリプトは、端末が、グループ識別子、ユーザ識別子及びウィンドウ識別子を含む同期イベント通知を、同期サーバへ送信すべく機能するように記述されている。
【００７４】
同期制御部１６は、端末２から、端末から宛先ＵＲＬを含む同期イベント通知を受信し、端末へウィンドウ識別子を含む同期イベント確認を返信する（図４のＳ４０５〜Ｓ４０７、Ｓ４１５〜Ｓ４１７、Ｓ５１５〜Ｓ５１７参照）。また、同期制御部１６は、既に生成されたグループに新たに端末が参加した際に、当該グループ識別子に属する全ての宛先ＵＲＬを含む同期イベント要求を、その端末へプッシュ的に送信する（図４のＳ４０８及び図５のＳ５０２参照）。これによって、他方の端末が、宛先ＵＲＬ毎に新たにウィンドウをオープンし、各宛先ＵＲＬを含むページ取得要求を、同期サーバへ送信するように動作させる。
【００７５】
ウィンドウＩＤ生成部１７は、同期イベント通知にウィンドウ識別子が含まれていない場合には新たにウィンドウ識別子を生成する。
【００７６】
同期テーブル記憶部１８は、グループ識別子毎に、ユーザ識別子と、ウィンドウ識別子と、宛先ＵＲＬとを対応付けて記憶する。
【００７７】
以上、詳細に説明したように、本発明のページコンテンツ同期方法、同期サーバ及びプログラムによれば、既存のＷｅｂサーバに更なる機能（新規アプリやプラグイン）を追加することなく、ブラウザにおけるウィンドウ毎のページコンテンツを、複数の端末間で同期させることができる。
【００７８】
本発明によれば、同期サーバが、スクリプト（例えばJavaScript）をページコンテンツに埋め込むことによって、そのスクリプトをブラウザで実行させ、端末が、同一グループに属する他の端末との間で、同一のページコンテンツを取得するように制御できる。
【００７９】
前述した本発明の種々の実施形態について、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
【符号の説明】
【００８０】
１  同期サーバ
１０  通信インタフェース
１１  ＨＴＴＰ処理部
１２  プロキシ機能部
１３  ページ取得要求転送部
１４  ページ取得応答転送部
１５  スクリプト埋込部
１６  同期制御部
１７  ウィンドウＩＤ生成部
１８  同期テーブル記憶部
２  端末
３  Ｗｅｂサーバ
【図１】
0005602542.tif 000002
【図２】
0005602542.tif 000003
【図３】
0005602542.tif 000004
【図４】
0005602542.tif 000005
【図５】
0005602542.tif 000006
【図６】
0005602542.tif 000007
【図７】
0005602542.tif 000008
【図８】
0005602542.tif 000009
【図９】
0005602542.tif 000010
【図１０】
0005602542.tif 000011