(57)【要約】      （修正有）【課題】第１のコンピュータシステムで表示されるウェブページを第２のコンピュータシステムと共有するための方法を提供する。【解決手段】第１のコンピュータシステムのユーザインターフェース中のウェブブラウザのウィンドウに表示されるウェブページの表示を生成し、ウェブページのドキュメントオブジェクトモデルを用いてウェブページの表示を複数のタイルに分割し、複数のタイルの各タイルの現在の表示が該各タイルの時間的に前の表示と異なっているかどうかを判断し、現在の各タイルの表示が前の表示と異なる場合に、現在の表示の前記各タイルをサーバに送信する。第２のコンピュータシステムは、第１のコンピュータシステムのウェブページの表示を行うために、サーバからウェブページを表す初期の複数のタイルを受信し、タイルに変化があったときには新しいタイルをサーバから取得しタイルの表示を更新する。【選択図】図７
2011018314.tif 000002
【特許請求の範囲】
【請求項１】
第１のコンピュータシステムで表示されるウェブページを第２のコンピュータシステムと共有するための方法であって、
表示生成手段により、第１のコンピュータシステムのユーザインターフェース中のウェブブラウザのウィンドウに表示されるウェブページの表示を生成し、
分割手段により、前記ウェブページのドキュメントオブジェクトモデルを用いて前記ウェブページの表示を複数のタイルに分割し、
判断手段により、前記複数のタイルの各タイルの現在の表示が該各タイルの時間的に前の表示と異なっているかどうかを判断し、
前記各タイルの現在の表示が前記前の表示と異なる場合に、送信手段により、前記現在の表示の前記各タイルをサーバに送信することを特徴とするウェブページの共有方法。
【請求項２】
前記分割手段による前記ウェブページの表示の複数の分割のあとで、さらに生成手段が、前記複数のタイルの各タイルを圧縮して圧縮タイルを生成することを特徴とする請求項１記載のウェブページの共有方法。
【請求項３】
前記判断手段は、前記圧縮タイルのシグネチャを計算し、前記現在の表示の圧縮タイルのシグネチャが、前記前の表示の圧縮タイルのシグネチャから変化しているかどうかを判断し、前記現在の表示の圧縮タイルのシグネチャが前記前の表示の圧縮タイルのシグネチャと異なる場合には、前記現在の表示の圧縮タイルが前記前の表示の圧縮タイルから変化したと判断することを特徴とする請求項２記載のウェブページの共有方法。
【請求項４】
前記圧縮タイルのシグネチャは、ハッシュ関数を用いて計算された前記圧縮タイルのハッシュ値を含むことを特徴とする請求項３記載のウェブページの共有方法。
【請求項５】
前記送信手段は、さらに、前記サーバに前記圧縮タイルの前記ハッシュ値を送信することを特徴とする請求項４記載のウェブページの共有方法。
【請求項６】
前記送信手段により送信される前記現在の表示の前記各タイルは前記圧縮タイルであることを特徴とする請求項２記載のウェブページの共有方法。
【請求項７】
前記判断手段は、前記タイルのシグネチャを計算し、前記現在の前記各タイルのシグネチャが前記前の表示の前記各タイルのシグネチャと異なっているかどうかを判断し、前記タイルのシグネチャが異なっている場合に、前記各タイルが変化したと判断することを特徴とする請求項１記載のウェブページの共有方法。
【請求項８】
前記タイルのシグネチャの計算には、ハッシュ関数を用いて計算された前記圧縮タイルのハッシュ値を含むことを特徴とする請求項７記載のウェブページの共有方法。
【請求項９】
前記送信手段は、さらに、前記サーバに前記タイルの前記ハッシュ値を送信することを特徴とする請求項８記載のウェブページの共有方法。
【請求項１０】
解析手段が、前記ドキュメントオブジェクトモデルを用いて前記ウェブページの視認可能領域を決定し、
前記分割手段が、前記ウェブページの前記視認可能領域を前記複数のタイルに分割することを特徴とする請求項１記載のウェブページの共有方法。
【請求項１１】
解析手段が、前記ドキュメントオブジェクトモデルを用いて前記ウェブページの視認可能領域とスクロール可能領域とを決定し、
前記分割手段が、前記ウェブページの前記視認可能領域と前記スクロール可能領域とを前記複数のタイルに分割することを特徴とする請求項１記載のウェブページの共有方法。
【請求項１２】
解析手段が、前記ドキュメントオブジェクトモデルを用いて前記ウェブページの視認可能領域とスクロール可能領域とを決定し、
前記分割手段は、前記ウェブページの前記視認可能領域と前記スクロール可能領域の一部を前記複数のタイルに分割することを特徴とする請求項１記載のウェブページの共有方法。
【請求項１３】
さらに、検索手段が、前記各タイル内にある前記ウェブページに含まれるノードを決定するために、前記ウェブページの前記ドキュメントオブジェクトモデルを検索し、
解析手段が、前記ドキュメントオブジェクトモデルに基づいて、前記ノード中の単語または文字を決定し、
前記送信手段が、前記単語または文字を前記サーバに送信することを特徴とする請求項１記載のウェブページの共有方法。
【請求項１４】
前記解析手段が、前記ドキュメントオブジェクトモデルに基づいて前記ノード中の前記単語または文字の境界ボックスを決定し、
前記送信手段が前記境界ボックスを前記サーバに送信することを特徴とする請求項１３記載のウェブページの共有方法。
【請求項１５】
前記各タイルの現在の表示が前記前の表示と異なる場合に、更に生成手段が、前記タイルが生成された時間に対応するタイムスタンプを生成し、
前記送信手段が、前記タイムスタンプを前記サーバに送信することを特徴とする請求項１記載のウェブページの共有方法。
【請求項１６】
検索手段が、前記複数のタイルの各タイル内の、前記ウェブブラウザのプラグインモジュールを用いて表示されるコンテントの境界ボックスを決定するために、前記ウェブページの前記ドキュメントオブジェクトモデルを検索し、
マスク生成手段が、前記境界ボックスに対応する前記各タイル外の領域をマスクし、
前記表示生成手段が、前記コンテントの表示を生成し、
前記送信手段が、前記コンテントの前記表示および前記境界ボックスを前記サーバに送信することを特徴とする請求項１記載のウェブページの共有方法。
【請求項１７】
分析手段により、前記ウェブページ上のカーソル位置を決定し、
前記送信手段が前記カーソル位置を前記サーバに送信することを特徴とする請求項１記載のウェブページの共有方法。
【請求項１８】
ユーザインターフェース内のウェブブラウザのウィンドウ内にウェブページの表示を生成する表示生成手段と、
前記ウェブページのドキュメントオブジェクトモデルを用いて前記ウェブページの表示を複数のタイルに分割する分割手段と、
前記複数のタイルの各タイルの現在の表示が該各タイルの時間的に前の表示と異なっているかどうかを判断する判断手段と、
前記各タイルの現在の表示が前記前の表示と異なる場合に、前記現在の表示の前記各タイルをサーバに送信する送信手段と、
を備えるウェブページ共有のためのコンピュータシステム。
【請求項１９】
ウェブページの共有のために、コンピュータを、
ユーザインターフェース内のウェブブラウザのウィンドウ内にウェブページの表示を生成する表示生成手段と、
前記ウェブページのドキュメントオブジェクトモデルを用いて前記ウェブページの表示を複数のタイルに分割する分割手段と、
前記複数のタイルの各タイルの現在の表示が該各タイルの時間的に前の表示と異なっているかどうかを判断する判断手段と、
前記各タイルの現在の表示が前記前の表示と異なる場合に、前記現在の表示の前記各タイルをサーバに送信する送信手段と、
として動作させるためのコンピュータプログラム。
【請求項２０】
第１のコンピュータシステムに第２のコンピュータシステムのウェブページを共有するためのコンピュータシステムであって、
前記第２のコンピュータシステムの第２のユーザインターフェース内の第２のウェブブラウザの第２のウィンドウ内に表示されるウェブページを表す複数のタイルの少なくとも一つのタイルを受信する受信手段と、
前記ウェブページ内での前記タイルの位置を決定する位置決定手段と、
前記第１のコンピュータシステムの第１のユーザインターフェース内の第１のウェブブラウザの第１のウィンドウ内の前記タイルの位置に前記タイルを表示する表示手段と、
を備えることを特徴とするコンピュータシステム。
【請求項２１】
前記受信手段は、前記第２のウェブページ内でのカーソルの位置を受信し、
前記ウェブページ上の現在の前記カーソルの位置が時間的に前の位置と異なるかを分析する分析手段を備え、
現在の前記カーソルの位置が時間的に前の位置と異なる場合には、前記表示手段は、前記前の位置から前記現在の位置へ移動を表す前記カーソルのアニメーションを前記第１のウェブブラウザの前記第１のウィンドウ内に表示することを特徴とする請求項２０記載のコンピュータシステム。
【請求項２２】
前記受信手段はセッション情報を受信し、
前記セッション情報に基づいて前記第１のウェブブラウザの前記第１のウィンドウ内に関するデータを収容するコンテナを生成し、
前記受信手段が前記複数のタイルの初期のセットを前記サーバから受信し、
前記表示手段により前記コンテナ中の前記複数のタイルの前記初期のセットの少なくとも一部を表示し、
前記セッションデータに基づいて、前記第１のウェブブラウザの前記第１のウィンドウ内にカーソルを表示することを特徴とする請求項２０記載のコンピュータシステム。
【請求項２３】
前記タイル内の各単語あるいは文字と、前記タイル内の各単語あるいは文字の位置に応じて定まる境界ボックスに関する情報を受信し、前記第１のコンピュータシステムのユーザから要求された検索条件を含む検索要求を受信し、前記検索条件を含む少なくとも一つの境界ボックスを決定する検索手段と、
前記表示手段は、前記少なくとも一つの境界ボックスに応じた少なくとも一つの視覚的インジケータを表示することを特徴とする請求項２０記載のコンピュータシステム。
【請求項２４】
前記受信手段は、前記第２のウェブブラウザのプラグインモジュールを用いて表示されたコンテントに対応する境界ボックスおよび表示データを受信し、
前記第１のウェブブラウザの前記第１のウィンドウ中で前記コンテントの前記境界ボックスおよび前記コンテントの前記表示データに基づく表示を行うことを特徴とする請求項２０記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１のコンピュータシステムと第２のコンピュータシステムとの間でウェブアプリケーションを共有するための方法、システムおよびコンピュータプログラムに関する。
【背景技術】
【０００２】
ブロードバンドを用いるインターネット利用が増加したため、より多くのビジネスがインターネット上で行われるようになっている。例えば、ウェブ会議、ソフトウェアトレーニング、ウェブアプリケーションのデモといったプレゼンテーションが定期的にオンラインで開催されている。スクリーンキャスティング（あるいはスクリーンシェアリング）用のアプリケーションはこういったプレゼンテーションを容易にするために利用される。発信者が自分のコンピュータシステム上で表示されているコンテントをスクリーンキャスティングアプリケーションを用いて、他のクライアントコンピュータシステムを利用する一人以上のユーザ（例えば受信者）と共有する。スクリーンキャスティングアプリケーションは、発信者のコンピュータシステムのデスクトップ全体あるいは一つのウィンドウを共有することができる。しかし、既存のスクリーンキャスティングアプリケーションはウェブブラウザ上に表示されるウェブアプリケーションを共有するのにはあまり適化されていない。
【０００３】
既存のスクリーンキャスティングアプリケーションは共有するデスクトップあるいは共有されるウィンドウの描画のビデオ（例えば、H264等のビデオコーデックを用いて）を記録しエンコードする。既存のスクリーンキャスティングアプリケーションで用いられるビデオコーデックは通常、前のビデオフレームと現在のフレームとの差分を送信する。したがって、現在のフレームが前のフレームと変化していない場合、現在のフレームとしてエンコードされるデータ量は最小となる。もし、現在のフレームと前のフレームとに差があれば、現在のフレームとしてエンコードされるデータ量は実質的に増加する。ウェブアプリケーションではウェブブラウザのウィンドウで視認できる領域の境界よりも大きいコンテントを含む場合が多い。例えば、ウェブブラウザのウィンドウは、ウェブアプリケーションとして、ウェブページ全体の一部だけを表示している場合が多い。残りのウェブアプリケーションを閲覧するためには、ユーザはスクロールバーを使ってコンテント（例えばウェブページ）を垂直および／あるいは水平方向にスクロールしなければならない。このため発信者はウェブアプリケーションを共有しようとする場合、コンテントをスクロールする必要がある。そうすると、発信者のコンピュータシステムで表示されている新たなコンテントがスクリーンキャスティングアプリケーションによってエンコードされる。いくら小さいスクロール（数画素）であっても、スクリーンキャスティングアプリケーションにより現時点のフレームをエンコードすることになる。
【０００４】
さらに、既存のスクリーンキャスティングアプリケーションは、通常、発信者と受信者との双方がスクリーンキャスティングアプリケーションをダウンロードしてインストールすることを必要とする。しかし、既存のスクリーンキャスティングアプリケーションは通常プラットフォーム（例えば、マイクロソフトウィンドウズ（登録商標）、Mac  OSX（登録商標）等）に依存性があり、すべてのプラットフォームで動作するとは限らない。例えば、携帯電話はスクリーンキャスティングアプリケーションでサポートされていないかもしれない。
【０００５】
既存のスクリーンキャスティングアプリケーションはかなりの帯域量を必要としてもいる。このため、必要な帯域を取り扱うために、既存のスクリーンキャスティングアプリケーションは通常、サーバや発信者のコンピュータシステムと通信を行うためにネイティブなソケットコネクションを用いる。しかし、ネイティブソケットを用いるにはファイアウォールにポートを開かなければならず、セキュリティリスクが増加する。さらに、ビデオを伝送するのに必要なバンド幅と、ビデオをエンコードする処理能力を減らすために、既存のスクリーンキャスティングアプリケーションは通常エンコードされるフレームの解像度を低下させている。しかし、解像度を下げた結果受信者がビデオに含まれるテキストを読むことができない場合がある。
【０００６】
既存のスクリーンキャスティングアプリケーションでは、さらに、ユーザが製作されたビデオを簡単に検索し再生することが難しい。例えば、スクリーンキャスティングアプリケーションは通常、例えばタイトル、特定のタグといった、メタデータを通じてしか検索できない。現在のところユーザが講演ビデオ中に表示されたコンテント（例えば、プレゼンターが発信しているウェブブラウザのウィンドウ中のテキストなど。）を検索する方法がない。従って、キーワード検索を用いてビデオの一部を受信者が見つけ出すことは難しい。
【０００７】
既存のスクリーンキャスティングアプリケーションは、ウェブブラウザのウィンドウの一つのタブを共有することができない。せいぜい既存のスクリーンキャスティングアプリケーションでは、発信者に四角で囲むなどして注目領域を特定させるだけである。しかし、発信者は続いてウィンドウを移動させることはできない。また、もし発信者がタブを切り替えあるいはもしもう一つのウィンドウが共有領域上に重なってしまう（例えばインスタントメッセンジャーのウィンドウ）と、他のウィドウが共有されてしまう。
【０００８】
既存のスクリーンキャスティングアプリケーションは発信者のシステム上で表示されたコンテントの共有のためにデスクトップ共有プロトコルを用いる場合がある。例えば、こうしたデスクトップ共有プロトコルとしては、マイクロソフト社リモートデスクトッププロトコル（RDP)とリモートフレームバッファ（RFB：例えば仮想ネットワークコンピューティング（VNC）で利用されている）がある。しかし、これらのプロトコルは、上述したのと同様の問題を有する。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】"スクリーントースター(ScreenToaster)、「フリーオンラインスクリーンレコーダ(Free Online Screen Recorder)」"、[online]、ScreenToaster.com、インターネット<URL:http://faq.screentoaster.com /faq>
【非特許文献２】"スクリーントースター(ScreenToaster)、「ストリームビデオ(Stream Videos)」"、[online]、ScreenToaster.com、インターネット<URL:http://faq.screentoaster.com /stream-videos>
【非特許文献３】"スクリーントースター(ScreenToaster)、「パブリッシュコメント(Publish Comments)」"、[online]、ScreenToaster.com、インターネット<URL:http://faq.screentoaster.com /publish-comments>
【発明の概要】
【発明が解決しようとする課題】
【００１０】
このため、ウェブアプリケーションを共有するときの欠点が解決されるシステムおよび方法が必要とされている。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明の第1の態様である方法は、第１のコンピュータシステムで表示されるウェブページを第２のコンピュータシステムと共有するための方法であって、表示生成手段により、第１のコンピュータシステムのユーザインターフェース中のウェブブラウザのウィンドウに表示されるウェブページの表示を生成し、分割手段により、前記ウェブページのドキュメントオブジェクトモデルを用いて前記ウェブページの表示を複数のタイルに分割し、判断手段により、前記複数のタイルの各タイルの現在の表示が該各タイルの時間的に前の表示と異なっているかどうかを判断し、前記現在の各タイルの表示が前記前の表示と異なる場合に、送信手段により、前記現在の表示の前記各タイルをサーバに送信することを特徴とする。
【００１２】
さらに、第２の態様として、前記分割手段による前記ウェブページの表示の複数の分割のあとで、さらに生成手段が、前記複数のタイルの各タイルを圧縮して圧縮タイルを生成することを特徴とする。
【００１３】
さらに、第3の態様として、前記判断手段は、前記圧縮タイルのシグネチャを計算し、前記現在の表示の圧縮タイルのシグネチャが、前記前の表示の圧縮タイルのシグネチャから変化しているかどうかを判断し、前記現在の表示の圧縮タイルのシグネチャが前記前の表示の圧縮タイルのシグネチャと異なる場合には、前記現在の表示の圧縮タイルが前記前の表示の圧縮タイルから変化したと判断する。
【００１４】
さらに、第4の態様として、前記圧縮タイルのシグネチャは、ハッシュ関数を用いて計算された前記圧縮タイルのハッシュ値を含むことを特徴とする。
【００１５】
さらに、第5の態様として、前記送信手段は、さらに、前記サーバに前記圧縮タイルの前記ハッシュ値を送信することを特徴とする。
【００１６】
さらに、第6の態様として、前記送信手段により送信される前記現在のタイルは前記圧縮タイルであることを特徴とする。
【００１７】
さらに、第7の態様として、前記判断手段は、前記タイルのシグネチャを計算し、前記現在の前記各タイルのシグネチャが前記前の表示の前記各タイルのシグネチャと異なっているかどうかを判断し、前記タイルのシグネチャが異なっている場合に、前記各タイルが変化したと判断することを特徴とする。
【００１８】
さらに、第8の態様として、前記タイルのシグネチャの計算には、ハッシュ関数を用いて計算された前記圧縮タイルのハッシュ値を含むことを特徴とする。
【００１９】
さらに、第9の態様として、前記送信手段は、さらに、前記サーバに前記タイルの前記ハッシュ値を送信することを特徴とする。
【００２０】
さらに、第10の態様として、解析手段は、前記ドキュメントオブジェクトモデルを用いて前記ウェブページの視認可能領域を決定し、前記分割手段は、前記ウェブページの前記視認可能領域を前記複数のタイルに分割することを特徴とする。
【００２１】
さらに、第11の態様として、解析手段は、前記ドキュメントオブジェクトモデルを用いて前記ウェブページの視認可能領域とスクロール可能領域を決定し、前記分割手段は、前記ウェブページの前記視認可能領域と前記スクロール可能領域とを前記複数のタイルに分割することを特徴とする。
【００２２】
さらに、第12の態様として、前記解析手段は、前記ドキュメントオブジェクトモデルを用いて前記ウェブページの視認可能領域とスクロール可能領域を決定し、前記分割手段は、前記ウェブページの前記視認可能領域と前記スクロール可能領域の一部を前記複数のタイルに分割することを特徴とする。
【００２３】
さらに、第13の態様として、検索手段が、前記各タイル内にある前記ウェブページに含まれるノードを決定するために、前記ウェブページの前記ドキュメントオブジェクトモデルを検索し、前記解析手段が、前記ドキュメントオブジェクトモデルに基づいて、前記ノード中の単語または文字を決定し、前記送信手段が、前記単語または文字を前記サーバに送信することを特徴とする。
【００２４】
さらに、第14の態様として、前記解析手段が、前記ドキュメントオブジェクトモデルに基づいて前記ノード中の前記単語または文字の境界ボックスを決定し、前記送信手段が前記境界ボックスを前記サーバに送信することを特徴とする。
【００２５】
さらに、第15の態様として、前記現在の各タイルの表示が前記前の表示と異なる場合に、更に生成手段が、前記タイルが生成された時間に対応するタイムスタンプを生成し、前記送信手段が、前記タイムスタンプを前記サーバに送信することを特徴とする。
【００２６】
さらに、第16の態様として、検索手段が、前記複数のタイルの各タイル内の、前記ウェブブラウザのプラグインモジュールを用いて表示されるコンテントの境界ボックスを決定するために、前記ウェブページの前記ドキュメントオブジェクトモデルを検索し、マスク生成手段が、前記境界ボックスに対応する前記各タイル外の領域をマスクし、前記表示生成手段が、前記コンテントの表示を生成し、前記送信手段が、前記コンテントの前記表示および前記境界ボックスを前記サーバに送信することを特徴とする。
【００２７】
さらに、第17の態様として、分析手段により、前記ウェブページ上のカーソル位置を決定し、前記送信手段が前記カーソル位置を前記サーバに送信することを特徴とする。
【００２８】
また、本発明の第18の態様であるウェブページ共有のためのコンピュータシステムは、ユーザインターフェース内のウェブブラウザのウィンドウ内にウェブページの表示を生成する表示生成手段と、  前記ウェブページのドキュメントオブジェクトモデルを用いて前記ウェブページの表示を複数のタイルに分割する分割手段と、  前記複数のタイルの各タイルの現在の表示が該各タイルの時間的に前の表示と異なっているかどうかを判断する判断手段と、前記現在の各タイルの表示が前記前の表示と異なる場合に、前記現在の表示の前記各タイルをサーバに送信する送信手段と、を備える。
【００２９】
また、本発明の第19の態様であるコンピュータプログラムは、ウェブページの共有のために、コンピュータを、ユーザインターフェース内のウェブブラウザのウィンドウ内にウェブページの表示を生成する表示生成手段と、前記ウェブページのドキュメントオブジェクトモデルを用いて前記ウェブページの表示を複数のタイルに分割する分割手段と、前記複数のタイルの各タイルの現在の表示が該各タイルの時間的に前の表示と異なっているかどうかを判断する判断手段と、前記現在の各タイルの表示が前記前の表示と異なる場合に、前記現在の表示の前記各タイルをサーバに送信する送信手段と、として動作させるためのものである。
【００３０】
また、本発明の第20の態様であるコンピュータシステムは、第１のコンピュータシステムに第２のコンピュータシステムのウェブページを共有するためのコンピュータシステムであって、前記第２のコンピュータシステムの第２のユーザインターフェース内の第２のウェブブラウザの第２のウィンドウ内に表示されるウェブページを表す複数のタイルの少なくとも一つのタイルを受信する受信手段と、  前記ウェブページ内での前記タイルの位置を決定する位置決定手段と、前記第１のコンピュータシステムの第１のユーザインターフェース内の第１のウェブブラウザの第１のウィンドウ内の前記タイルの位置に前記タイルを表示する表示手段を備えることを特徴とする。
【００３１】
さらに、本発明の第21の態様は、前記受信手段は、前記第２のウェブページ内でのカーソルの位置を受信し、前記ウェブページ上の現在の前記カーソルの位置が時間的に前の位置と異なるかを分析する分析手段を備え、現在の前記カーソルの位置が時間的に前の位置と異なる場合には、前記表示手段は、前記前の位置から前記現在の位置へ移動を表す前記カーソルのアニメーションを前記第１のウェブブラウザの前記第１のウィンドウ内に表示することを特徴とする。
【００３２】
さらに、本発明の第22の態様は、前記受信手段はセッション情報を受信し、  前記セッション情報に基づいて前記第１のウェブブラウザの前記第１のウィンドウ内に関するデータを収容するコンテナを生成し、前記受信手段が前記複数のタイルの初期のセットを前記サーバから受信し、表示手段により前記コンテナ中の前記複数のタイルの前記初期のセットの少なくとも一部を表示し、前記セッションデータに基づいて、前記第１のウェブブラウザの前記第１のウィンドウ内にカーソルを表示することを特徴とする。
【００３３】
さらに、第23の態様は、前記タイル内の各単語あるいは文字と、前記タイル内の各単語あるいは文字の位置に応じて定まる境界ボックスに関する情報を受信し、前記第１のコンピュータシステムのユーザから要求された検索条件を含む検索要求を受信し、前記検索条件を含む少なくとも一つの境界ボックスを決定する検索手段と、前記表示手段は、前記少なくとも一つの境界ボックスに応じた少なくとも一つの視覚的インジケータを表示することを特徴とする。
【００３４】
さらに、第24の態様は、前記受信手段は、前記第２のウェブブラウザのプラグインモジュールを用いて表示されたコンテントに対応する境界ボックスおよび表示データを受信し、前記第１のウェブブラウザの前記第１のウィンドウ中で前記コンテントの前記境界ボックスおよび前記コンテントの前記表示データに基づく表示を行うことを特徴とする。
【発明の効果】
【００３５】
コンピュータシステム間でのウェブページの共有が可能となる。
【図面の簡単な説明】
【００３６】
【図１】本発明の実施形態に関わるウェブページを共有し、共有されたウェブページを表示するシステムのブロック図である。
【図２】本発明の実施形態に関わる発信者のコンピュータシステムの機能ブロック図である。
【図３】本発明の実施形態に関わるサーバの機能ブロック図である。
【図４】本発明の実施形態に関わるクライアントコンピュータシステムの機能ブロック図である。
【図５】本発明の実施形態に関わる、ウェブページを共有するセッションを開始する方法のフローチャートである。
【図６】本発明の実施形態に関わる、ウェブページの共有方法のフローチャートである。
【図７】本発明の実施形態に関わる、複数のタイルに分割されたウェブページを表す模式図である。
【図８】本発明の実施形態に関わる、タイル中の単語および／または文字を決定する方法のフローチャートである。
【図９】本発明の実施形態に関わる、ウェブブラウザのプラグインモジュールを用いて表示されたコンテントを取り扱う方法のフローチャートである。
【図１０】本発明の実施形態に関わる、共有されたウェブページ中のカーソルの位置を共有するための方法に関するフローチャートである。
【図１１】本発明の実施形態に関わる、共有されたウェブページを表示する方法のフローチャートである。
【図１２】本発明の実施形態に関わる、共有されたウェブページ中のカーソル位置を表示する方法のフローチャートである。
【図１３】本発明の実施形態に関わる、共有されたウェブページ上で検索を行う方法のフローチャートである。
【図１４】本発明の実施形態に関わる、ウェブブラウザのプラグインモジュールを用いて表示されたコンテントを表示する方法のフローチャートである。
【発明を実施するための形態】
【００３７】
（発明の概要）
前述のように、ウェブページを異なるコンピュータ上のユーザ間で共有することが望まれている。例えば、発信者はウェブページやウェブアプリケーションのデモを他の受信者と共有したいと望む場合がある。このため、以下に示すいくつかの実施形態ではウェブページを共有する方法およびシステムと、共有されたウェブページを検索して表示する方法およびシステムが示されている。これらの実施形態ではウェブページを取得し伝送するためにタイルベースのエンコード技術を用いている。またいくつかの実施形態では、タイルベースのエンコード技術はウェブ標準技術（例えば、Dynamic  HTML, Java（登録商標）Script等）を用いている。
【００３８】
本明細書において、ウェブページとは静的（Static)なウェブページと動的（Dynamic)なウェブページとのいずれを指す場合でも用いられる。静的なウェブページは本質的なコンテントの変更がないウェブページである。静的なウェブページはコンテキストに応じて変化せず（例えば、すべてのユーザで同じ内容のコンテント）、ウェブサーバが提供するファイル中に含まれる静的なコンテントを含んでいる。動的なウェブページは、コンテキストに応じて変化し（例えばユーザの入力に応じて変化）し、データベースからコンテントを取得するときに、サーバ側スクリプトを実行するウェブサーバにより構築されたコンテントを含むウェブページである。例えば、動的ウェブページはウェブアプリケーション（例えば、ウェブ電子メールアプリケーション、顧客関係管理ウェブアプリケーション等）であってもよい。
【００３９】
いくつかの実施形態では、発信者が使用しているコンピュータは共有するウェブページをサーバに公開あるいは発信する。クライアントコンピュータシステムを利用する受信者は、共有されたウェブページを閲覧するために発行されたウェブページを選択する。
【００４０】
いくつかの実施形態では、ウェブページはウェブページのコンテントを表す時系列の複数の画像として共有される。共有されたウェブページのエンコードされたビデオを生成する既存のスクリーンキャスティングアプリケーションと異なり、ウェブページの時系列の複数の画像中の各画像（あるいはウェブページの表示の各タイル）はタイムスタンプに関連付けられている。タイムスタンプはウェブページ（あるいはウェブページの表示のそれぞれのタイル）のそれぞれの画像を時間順に表示するのに用いられる。本実施形態の利点は、共有するウェブページのコンテントに変化がない長い期間がある場合、ウェブページの新たな画像（あるいはそれぞれの変化したタイルの新画像）は生成されず、使用する帯域と記憶容量を減らすことができる点である。新しい画像が生成されるとき、新しい画像はタイムスタンプと関連付けられ、新しい画像は時間順に表示することができる。なお、画像の時系列の表示を本明細書中では、スクリーンキャストと呼ぶことがある。
【００４１】
いくつかの実施形態では、共有されたウェブページの表示は、解像度の劣化なしの完全解像度で送られる。またある実施形態では、共有されるウェブページの表示は送信に先立って倍率変換される。
【００４２】
いくつかの実施形態では、発信用のHTTP８０接続が用いられる。そして、ファイアウォール中に新しいポートを開ける必要がないようにする。
【００４３】
いくつかの実施形態では、サーバは、発信者のコンピュータで実行され、共有するウェブページを取得するJava（登録商標）Scriptのようなプログラムからデータを受信する。いくつかの実施形態では、受信者はスクリーンキャストを取得し、閲覧するためにサーバに接続する。いくつかの実施形態では、スクリーンキャストは標準HTML要素とJava（登録商標）Scriptプログラムだけを含んでいる。こうすることで、スクリーンキャストは標準HTML要素とJava（登録商標）Scriptをサポートするどんなウェブブラウザでも閲覧することができる。（例えば、マイクロソフト社製インターネットエクスプローラ、Mozilla  Firefox（登録商標）、アップル社製Safari、ｉPhone上のSafari等。）いくつかの実施形態では、スクリーンキャストは同様に各種プラットフォームに提供されて、標準的に利用されているアドビ社製Adobe Flashを用いて再生される。
【００４４】
既存のスクリーンキャスティングアプリケーションと異なり、ここで説明する実施形態により生成されるスクリーンキャストにはいくつかの利点がある。ここで説明する実施形態により生成されるスクリーンキャストは、ウェブページのドキュメントオブジェクトモデル（DOM)中に含まれる情報を用いて、閲覧者にウェブページを共有する。ここで説明する実施形態により生成されるスクリーンキャストは、ビデオコーデックを使用していない。このため、ここで記述される実施形態により生成されるスクリーンキャストはより小さい帯域と記憶領域としか必要にならない。ここで説明する実施形態は、一以上のブラウザのウィンドウおよび/またはその中の一以上のタブを共有することができる。ここで説明する実施形態は専用クライアント（例えばVNCクライアントのような）を、発信者と受信者とのコンピュータシステムにインストールすることを必要としない。このため、ここで説明する実施形態は標準HTMLとJava（登録商標）Scriptをサポートしたいかなるブラウザを使っても見ることができる。ここで説明される実施形態により生成されたスクリーンキャストは、例えば、ウェブページ中に表れるキーワードを取得し共有することで、検索することも可能である。
【００４５】
ここで説明される実施形態はいくつかの例示的なシナリオ下で使用することができる。第１の例としては、ウェブベースの顧客関係管理（CRM：customer relationship management)アプリケーションに関する発信者が、ウェブベースCRMの新機能をデモするためにここで説明される実施形態を用いる。発信者はウェブベースのCRMが動作しているウェブブラウザのウィンドウを共有する。発信者はこのプレゼンテーションを後で再生するかあるいは受信者にライブストリーミング放送するために記録してもよい。
【００４６】
第２の例としては、夫が車の予約ウェブサイトに接続する。夫は必要な情報を入力する。しかし、車の予約サイトが夫に対して予約する車の選択を求めたとき、夫は妻との調整が必要になる。夫は車の予約ウェブサイトを表示している、ウェブブラウザのタブを彼の妻と共有するため、ここに記載された実施形態を用いる。
【００４７】
第３の例としては、ウェブアプリケーションのユーザは認証エラーのメッセージを受ける。ユーザは、エラーメッセージの表示されるウェブブラウザのウィンドウを、ここに記載される実施形態を用いて、このウェブアプリケーションの技術サポート代表者と共有する。技術サポート代表者はユーザがこのエラーを解決するガイドを行う。
（システム）
図１は、本発明の一実施形態に関わる、ウェブページを共有して、共有されたウェブページを表示するためのシステムのブロック図１００である。図１は、発信者側コンピュータシステム１０２、サーバ１０４、そしてクライアントコンピュータシステム１０６を含む。発信者側コンピュータシステム１０２、サーバ１０４、そしてクライアントコンピュータシステム１０６はネットワーク１２０を介して互いに接続される。ネットワーク１２０はコンピュータノード間を互いに接続する能力のあるいかなるタイプの有線あるいは無線通信チャネルであってもよい。これには、ローカルエリアネットワーク、広域ネットワークあるいはこれらのコンビネーションを含むが、これに限定されるものでもない。いくつかの実施形態においては、ネットワーク１２０はインターネットを含む。
【００４８】
いくつかの実施形態では、発信者側コンピュータシステム１０２は、発信者１０１がクライアントコンピュータシステム１０６とネットワーク１２０を介してウェブページを共有している、コンピュータシステムである。いくつかの実施形態では、発信者側コンピュータシステム１０２としては、例えば、デスクトップコンピュータ、ラップトップ、PDA、スマートフォン、携帯電話、セットトップボックスといったものが含まれる。
【００４９】
いくつかの実施形態では、クライアントコンピュータシステム１０６は受信者１０７が共有されるウェブページをネットワーク１２０を介して受信するコンピュータシステムである。いくつかの実施形態では、クライアントコンピュータシステム１０６としては、例えば、デスクトップコンピュータ、ラップトップ、PDA、スマートフォン、携帯電話、セットトップボックスといったものが含まれる。
【００５０】
なお、発信者側のコンピュータシステム１０２とクライアントコンピュータシステム１０６とは明確さのために区別されている点に留意されたい。通常、クライアントコンピュータシステム１０６もまたウェブページを共有するかもしれず、発信者側コンピュータシステム１０２が共有されたウェブページを表示する場合があってもよい。
【００５１】
いくつかの実施形態では、発信者側コンピュータシステム１０２は、共有されたウェブページをクライアントコンピュータシステム１０６にサーバ１０４を介して発信する。これらの実施形態では、発信者側コンピュータシステム１０２はウェブページの一連の表示をネットワーク１２０を介して伝送する。クライアントコンピュータシステム１０６はサーバ１０４からこの一連の表示を受信して受信者１０７に表示する。これらの実施形態については後で図５〜１４を用いてより詳しく説明する。
【００５２】
いくつかの実施形態では、サーバ１０４はウェブページの共有、共有されたウェブページの閲覧あるいはその組み合わせのための指示を含んだプレゼンテーション用プログラムをホストする。いくつかの実施形態では、発信者側コンピュータシステム１０２はウェブページを共有するためのプレゼンテーションプログラムを実行する。いくつかの実施形態では、クライアントコンピュータシステム１０６は、共有されたウェブページを受信し表示するためのプレゼンテーションプログラムを実行する。いくつかの実施形態では、プレゼンテーションプログラムは発信者側コンピュータシステム１０２あるいはクライアントコンピュータシステム１０６のウェブブラウザ中で動作するJava（登録商標）Scriptプログラムである。Java（登録商標）Scriptをプログラムに用いる利点は、Java（登録商標）Scriptがほとんどのウェブブラウザに採用されているからである。このため、そのプラットフォームとデバイスがJava（登録商標）Scriptエンジンを有するウェブブラウザをサポートする限り、このプログラムは複数のプラットフォームとデバイスにわたって使用することができる。いくつかの実施形態では、プレゼンテーションプログラムはウェブブラウザにインストールされたブラウザエクステンションである。
【００５３】
図２は、本発明のいくつかの実施形態に関わる発信者側コンピュータシステム２００のブロック構成図を示すものである。発信者側コンピュータシステム２００は、図１の発信者側コンピュータシステム１０２であってもよい。発信者側コンピュータシステム２００は通常、一以上の処理ユニット（CPU)２０２、一以上のネットワークあるいは通信のインターフェース２０４、メモリ２１０、そしてこれらのコンポーネント間を接続する一以上の通信バス２０９を備える。通信バス２０９は、システムコンポーネント間の相互接続と通信制御を行う回路（チップセット）を含んでも良い。発信者側コンピュータシステム２００は、ディスプレイ装置２０６と入力装置２０８（例えばキーボード、マウス、タッチスクリーン、キーパッドなど）を含むユーザインターフェース２０５も含む。メモリ２１０にはDRAM, SRAM, DDR RAMや他のランダムアクセス固体記憶装置といった高速ランダムアクセスメモリと、一以上の磁気ディスク記憶装置、光学ディスク記憶装置、フラッシュメモリ装置、あるいは他の不揮発性固体記憶装置が含まれる。メモリ２１０はCPU２０２と離間して配置された一以上の記憶装置であってもよい。メモリ２１０は、あるいはメモリ２１０内の不揮発性メモリ装置は、コンピュータ可読記憶媒体を構成する。いくつかの実施形態では、メモリ２１０は以下に示す、プログラム、モジュールおよびデータ構造、あるいはそれらのサブセットを含む。
・      オペレーティングシステム２１２（様々な基本的なシステムサービスの制御およびハードウェア依存タスク処理を含む）
・      通信モジュール２１４（発信者側コンピュータシステム２００と他のコンピュータとを一以上の通信インターフェース２０４（有線あるいは無線）とインターネットやそれ以外の広域ネットワーク、ローカルエリアネットワーク、都市間ネットワークといった一以上の通信ネットワークを介して接続するために用いられる。）
・      ユーザインターフェースモジュール２１６（入力装置２０８を通じてユーザからの指令を受信し、ディスプレイ装置２０６上にユーザインターフェースオブジェクトを生成する。）
・      ブラウザモジュール２１８（Ｊａｖａ（登録商標）仮想マシン、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔエンジン、ＡｃｔｉｖｅＸエンジン等のスクリプトおよび／あるいはプログラム（Ｊａｖａ（登録商標）Ｓｃｒｉｐｔプログラム等）を実行するためのスクリプトエンジン２２０、プレゼンテーションモジュール２２２（例えば、クライアントコンピュータシステムとウェブページを共有する指令を含む、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔプログラムやウェブブラウザエクステンション）、ドキュメントオブジェクトモデル（ＤＯＭ）２２４（ディスプレイ装置２０６上のブラウザモジュール２１８により表示されるウェブページを表現するオブジェクトモデルを含む）、タイル２２６、タイルシグネチャ（Ｓｉｇｎａｔｕｒｅ）２２８、タイルデータ２３０（例えば、タイルメタデータ、タイルに関連付けられた単語および／または文字、タイルに関連付けられたマルチメディアコンテント、タイルに関連付けられたタイムスタンプ、タイル中のオブジェクトに関連付けられたリンク等）、セッションＩＤ２３２、一以上のカーソル位置２３４、一以上のスクロールバーの位置２３６等が含まれる。）
なお、ＤＯＭとは、スクリプトなどのプログラムが、ドキュメントのコンテント、スタイル、構造に動的にアクセスし、更新することを可能とするインターフェースである。通常ＤＯＭは、エレメント、属性、そして値の階層構造を含む木構造である。ＤＯＭはテキスト、画像、ビデオといったオブジェクトのウェブページ中での位置を含んでもよい。
【００５４】
なお、図２では発信者側コンピュータシステムを示しているが、図２は本明細書で記述する実施形態の構造的な概要を示すというよりは、発信者側コンピュータシステム中に存在する多様な機能を説明するものである。実用上あるいは当業者には明らかなように、分離して表現されたアイテムを結合させたり、いくつかのアイテムを分離してもよい。
【００５５】
図３は、本発明の一実施形態に関する、サーバ３００を説明するブロック図である。サーバ３００は図１中のサーバ１０４であってもよい。サーバ３００は、通常一以上の処理ユニット（CPU)３０２、一以上のネットワークあるいは通信のインターフェース３０４、メモリ３１０、そしてこれらのコンポーネント間を接続する一以上の通信バス３０９を備える。通信バス３０９は、システムコンポーネント間の相互接続と通信制御を行う回路（チップセット）を含んでも良い。サーバ３００は、ディスプレイ装置３０６と入力装置３０８（例えばキーボード、マウス、タッチスクリーン、キーパッドなど）を含むユーザインターフェース３０５を含んでもよい。メモリ３１０にはDRAM, SRAM, DDR RAMや他のランダムアクセス固体記憶装置といった高速ランダムアクセスメモリと、一以上の磁気ディスク記憶装置、光学ディスク記憶装置、フラッシュメモリ装置、あるいは他の不揮発性固体記憶装置が含まれる。メモリ３１０はCPU３０２と離間して配置された一以上の記憶装置であってもよい。メモリ３１０は、あるいはメモリ３１０内の不揮発性メモリ装置は、コンピュータ可読記憶媒体を構成する。いくつかの実施形態では、メモリ３１０は以下に示す、プログラム、モジュールおよびデータ構造、あるいはそれらのサブセットを含む。
・      オペレーティングシステム３１２（様々な基本的なシステムサービスの制御およびハードウェア依存タスク処理を含む）
・      通信モジュール３１４（サーバ３００と他のコンピュータとを一以上の通信インターフェース３０４（有線あるいは無線）とインターネットやそれ以外の広域ネットワーク、ローカルエリアネットワーク、都市間ネットワークといった一以上の通信ネットワークを介して接続するために用いられる。）
・      ユーザインターフェースモジュール３１６（入力装置３０８を通じてユーザからの指令を受信し、ディスプレイ装置３０６上にユーザインターフェースオブジェクトを生成する。）
・      データベースアクセスモジュール３１８（例えばローカルあるいはリモートで通信インターフェース３０４を介して接続される、データベースとのインターフェース）
・      タイルモジュール３２０（タイル、タイルシグネチャ、タイルデータを発信者側コンピュータシステム（例えば図１の発信者側コンピュータシステム１０２）から受信し、タイル画像、タイルシグネチャ、タイルデータをタイルデータベース３２２に保存し、タイル、タイルシグネチャ、タイルデータを一以上のクライアントコンピュータシステム（例えば図１のクライアントコンピュータシステム１０６）へ発信する）
・      タイルデータベース３２２（タイル３２４、タイルシグネチャ３２６、タイルデータ３２８（例えばタイルメタデータ、タイルに関連付けられた単語および／または文字、タイルに関連付けられた単語および／または文字の境界ボックス、タイルに関連付けられたマルチメディアコンテント、タイルに関連付けられたタイムスタンプ、タイル中のオブジェクトに関連付けられたリンクなど）を含む）
・  セッションデータベース３３０（セッションＩＤ３３２、カーソル位置３３４、スクロールバー位置３３６等を含む）
・  プレゼンテーションモジュール３３８（例えば、クライアントコンピュータシステムとウェブページを共有する、および／または発信者側コンピュータシステムにより共有されたウェブページを閲覧するための指令を含む、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔプログラムやウェブブラウザエクステンション等）
なお、図３はサーバを示しているが、図３は本発明の実施形態における構造というより、サーバ３００の構成中に存在する多様な機能を説明するものである。実用上あるいは当業者なら自明なように、別々に記載されたアイテムを合体させたり、いくつかのアイテムを分離させても構わない。例えば、図３中で別々に示されているいくつかのアイテムは一つのサーバ上で実現してもよいし、一つのアイテムを一以上のサーバで実現することもできる。実際に何台のサーバを用いてどのようにそれらに機能を配置するかは実施態様により異なり、システムの最大利用時に処理すべきデータトラフィック量や平均のデータトラフィック量に依存する。
【００５６】
いくつかの実施形態においては、タイルデータベース３２２はサーバ３００から分離し配置されたコンピュータシステム上に配置する。この場合、サーバ３００は、ネットワーク（図１のネットワーク１２０など）を介してタイルデータベース３２２にアクセスするデータベースアクセスモジュール３１８を使用する。いくつかの実施形態では、セッションデータベース３３０は、サーバ３００から分離して配置されたコンピュータシステム上に配置する。この場合、サーバ３００は、やはりネットワーク（図１のネットワーク１２０など）を介してセッションデータベース３３０にアクセスするデータベースアクセスモジュール３１８を使用する。いくつかの実施形態では、タイルデータベース３２２とセッションデータベース３３０はコンピュータシステムと離れた場所に設置される。
【００５７】
図４は、本発明のいくつかの実施形態に関わるクライアントコンピュータシステム４００のブロック構成図を示すものである。クライアントコンピュータシステム４００は、図１のどのクライアントコンピュータシステム１０６であってもよい。クライアントコンピュータシステム４００は通常、一以上の処理ユニット（CPU)４０２、一以上のネットワークあるいは通信のインターフェース４０４、メモリ４１０、そしてこれらのコンポーネント間を接続する一以上の通信バス４０９を備える。通信バス４０９は、システムコンポーネント間の相互接続と通信制御を行う回路（チップセット）を含んでも良い。クライアントコンピュータシステム４００は、ディスプレイ装置４０６と入力装置４０８（例えばキーボード、マウス、タッチスクリーン、キーパッドなど）を含むユーザインターフェース４０５も含む。メモリ４１０にはDRAM, SRAM, DDR RAMや他のランダムアクセス固体記憶装置といった高速ランダムアクセスメモリと、一以上の磁気ディスク記憶装置、光学ディスク記憶装置、フラッシュメモリ装置、あるいは他の不揮発性固体記憶装置が含まれる。メモリ４１０はCPU４０２と離間して配置された一以上の記憶装置であってもよい。メモリ４１０は、あるいはメモリ４１０内の不揮発性メモリ装置は、コンピュータ可読記憶媒体を構成する。いくつかの実施形態では、メモリ４１０は以下に示す、プログラム、モジュールおよびデータ構造、あるいはそれらのサブセットを含む。
・      オペレーティングシステム４１２（様々な基本的なシステムサービスの制御およびハードウェア依存タスク処理を含む）
・      通信モジュール４１４（クライアントコンピュータシステム４００と他のコンピュータとを一以上の通信インターフェース４０４（有線あるいは無線）とインターネットやそれ以外の広域ネットワーク、ローカルエリアネットワーク、都市間ネットワークといった一以上の通信ネットワークを介して接続するために用いられる。）
・      ユーザインターフェースモジュール４１６（入力装置４０８を通じてユーザからの指令を受信し、ディスプレイ装置４０６上にユーザインターフェースオブジェクトを生成する。）
・      ブラウザモジュール４１８（Ｊａｖａ（登録商標）仮想マシン、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔエンジン、ＡｃｔｉｖｅＸエンジン等のスクリプトおよび／あるいはプログラム（Ｊａｖａ（登録商標）Ｓｃｒｉｐｔプログラム等）を実行するためのスクリプトエンジン４２０、プレゼンテーションモジュール４２２（例えば、発信者側コンピュータシステムとウェブページを共有する指令を含む、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔプログラムやウェブブラウザエクステンション）、ドキュメントオブジェクトモデル（ＤＯＭ）４２４（ディスプレイ装置４０６上のブラウザモジュール４１８により表示されるウェブページを表現するオブジェクトモデルを含む）、タイル４２６、タイルシグネチャ（Ｓｉｇｎａｔｕｒｅ）４２８、タイルデータ４３０（例えば、タイルメタデータ、タイルに関連付けられた単語および／または文字、タイルに関連付けられたマルチメディアコンテント、タイルに関連付けられたタイムスタンプ、タイル中のオブジェクトに関連付けられたリンク等）、セッションＩＤ４３２、一以上のカーソル位置４３４、一以上のスクロールバーの位置４３６等が含まれる。）
なお、図４ではクライアントコンピュータシステムを示しているが、図４は本明細書で記述する実施形態の構造的な概要を示すというよりは、クライアントコンピュータシステム中に存在する多様な機能を説明するものである。実用上あるいは当業者には明らかなように、分離して表現されたアイテムを結合させたり、いくつかのアイテムを分離してもよい。
【００５８】
上述の図２から図４に記載された各要素は、前述の一以上の記憶装置に記憶され、前述の機能を実行する命令セット（プログラム）として保存されていてもよい。この命令セットは一以上のプロセッサ（例えば、ＣＰＵ２０２，３０２，４０２）で実行される。上述のモジュールやプログラムは別個のプログラム、手順、あるいはモジュールとして組み込まれている必要は無く、これらのモジュールの様々なサブセットは様々な形態で組み合わされたり、再配置することができる。いくつかの実施形態では、メモリ２１０、３１０、４１０はそれぞれ上述のモジュールのサブセットとデータ構造とを保持してよい。さらに、メモリ２１０、３１０、４１０はそれぞれ記載されていない他のモジュールやデータ構造を保持しても構わない。
（ウェブページのキャプチャーおよび共有）
いくつかの実施形態では、一以上の受信者に対しウェブページを共有する前に、発信者は発信者側コンピュータシステムを使って、サーバ上のセッションを開始させる。図５は、本発明の一実施形態である、ウェブページの共有のセッションを開始する方法５００のフローチャートである。発信者側コンピュータシステム５０２（例えば、図１の発信者側コンピュータシステム１０２）とサーバ５０４（例えば、図１のサーバ１０４）が図５に示す処理を実行する。いくつかの実施形態では、発信者側コンピュータシステム５０２とサーバ５０４とを同じシステム内に設けても良い。いくつかの実施形態では、発信者側コンピュータシステム５０２で実行される処理は、発信者側コンピュータシステム５０２のブラウザモジュール（例えば図２のブラウザモジュール２１８）により実行される。いくつかの実施形態では、サーバ５０４により実行される処理はサーバ５０４のタイルモジュール（例えば図３のタイルモジュール３２０）により実行される。
【００５９】
発信者側コンピュータシステム５０２は新たなセッションをサーバ５０４にリクエスト（要求）する（５０６）。サーバ５０４はリクエストを受信し（５０８）、新たなセッションを生成する（５１０）。いくつかの実施形態では、サーバ５０４はセッションIDを生成しセッションデータベース（例えば図３のセッションデータベース３３０）中にセッションIDを保存することで新たなセッションを生成する。サーバ５０４は、クライアントコンピュータシステムが共有されるウェブページを受信するためにアクセスする、セッションIDとセッションURLを送信する。いくつかの実施形態では、サーバ５０４は条件付きでプレゼンテーションプログラムを発信者側コンピュータシステム５０２に送信する。例えば、サーバ５０４はプレゼンテーションプログラムを、発信者側コンピュータシステム５０２がプレゼンテーションプログラムを保持していない場合のみ、発信者側コンピュータシステム５０２に送信する。
【００６０】
発信者側コンピュータシステム５０２は、クライアントコンピュータシステムが共有されたウェブページを受信するためにアクセスする、セッションIDとセッションURLを受信し（５１４）、セッションURLを受信者（例えば図１の受信者１０７）に発行する。例えば、発信者側コンピュータシステム５０２は、電子メールを送信するか、セッションURLを含むインスタントメッセージを受信者に送る。あるいは、またはさらに、発信者側コンピュータシステム５０２および／またはサーバ５０４はウェブサイト上でURLを発行してもよい。いくつかの実施形態では、発信者側コンピュータシステム５０２はプレゼンテーションプログラムをまた受信し、インストールおよび／またはプレゼンテーションプログラムを実行する。
【００６１】
図６は、本発明のいくつかの実施形態に関わるウェブページを共有するための方法のフローチャートである。発信者側コンピュータシステム６０２（例えば図１の発信者側コンピュータシステム１０２）およびサーバ６０４（例えば図１のサーバ１０４）において、図６に示す処理が行われる。いくつかの実施形態では、発信者側コンピュータシステム６０２とサーバ６０４は互いに分離されて別体とされる。いくかの実施形態では発信者側コンピュータシステム６０２とサーバ６０４とは同じシステム中に存在する。いくつかの実施形態では、発信者側コンピュータシステム６０２で実行される処理は、発信者側コンピュータシステム６０２のブラウザモジュールのスクリプトエンジン（例えば図２のブラウザモジュール２１８のスクリプトエンジン２２０）内で動作するプレゼンテーションモジュール（例えば図２のプレゼンテーションモジュール２２２）により行われる。いくつかの実施形態では、サーバ６０４で実行される処理はサーバ６０４のタイルモジュール（例えば、図３のタイルモジュール３２０）により実行されてもよい。
【００６２】
いくつかの実施形態では、発信者側コンピュータシステム６０２を用いて、発信者が発信者側コンピュータシステム６０２のブラウザの一以上のウィンドウ中に表示されるウェブページを共有する。これらの実施形態では、一以上の共有ウィンドウ中に表示されたウェブページは、クライアントコンピュータシステムを使用する受信者（例えば図１のクライアントコンピュータシステム１０６を使用する受信者１０７）と共有される。いくつかの実施形態では、もし２以上の共有ウィンドウがある場合には、ウェブブラウザ中でアクティブに表示される共有ウィンドウ（例えば、共有ウィンドウのうちでフォーカスされているもの）が受信者と共有される。これらの実施形態において、もし発信者がもう一方の共有ウィンドウに切り換えると、その共有ウィンドウが受信者に共有される。いくつかの実施形態では、２以上のウィンドウがあり、２以上の共有ウィンドウのコンテントが同時に共有される。例えば、もし発信者側コンピュータシステム６０２上に４つの共有ウィンドウがある場合、クライアントコンピュータシステムは、クライアントコンピュータシステム上に４つのウェブブラウザのウィンドウを表示し、各ブラウザウィンドウが対応する共有ウェブページを受信する。発信者が共有ウィンドウを切り換えるとき、クライアントコンピュータシステムはアクティブな共有ウィンドウに切り替わる。いくつかの実施形態では、発信者は共有されないウィンドウに切り換えたとき、もっとも最近表示された共有ウィンドウを受信者と共有する。
【００６３】
いくつかのウェブブラウザはタブを利用した閲覧をサポートしている。したがって、いくつかの実施形態では、発信者は、クライアントコンピュータシステムを利用する受信者（例えばクライアントコンピュータシステム１０６上の受信者１０７）と共有されるウェブブラウザの一以上のウィンドウ中にある、一以上のタブを選択する。これらの実施形態では、一以上の共有されたタブ中に表示されるウェブページが受信者と共有される。いくつかの実施形態では、もし２以上の共有タブがある場合、ウェブブラウザ中でアクティブ状態で表示される共有タブが受信者に共有される。もし、発信者がもう一つの共有タブに切り換えると、その共有タブが受信者と共有される。いくつかの実施形態では、２以上の共有タブがある場合、２以上の共有タブのコンテンツが同時に共有される。例えば、もしウェブブラウザの第１のウィンドウ中に３つの共有タブがあり、ウェブブラウザの第２のウィンドウには一つの共有タブが発信者側コンピュータシステム６０２上にあるとすると、クライアントコンピュータシステムはウェブブラウザの第１のウィンドウ中に３つのウェブ閲覧用のタブを、第２のウィンドウ中に一つの共有タブをクライアントコンピュータシステム上に開き、各タブが対応する共有タブの情報を受信する。発信者が共有するタブ間を切り換えると、クライアントコンピュータシステムはアクティブとなっている共有タブに切り替わる。いくつかの実施形態では発信者が共有されていないタブに切り替えたとき、もっとも最近受信者と共有されたタブが表示される。
【００６４】
発信者側コンピュータシステム６０２は発信者側コンピュータシステム６０２のユーザインターフェース中のウェブブラウザのウィンドウ中に表示されるウェブページの表示を生成する（６０６）。いくつかの実施形態では、ウェブページの画像はウェブページのビットマップ画像である。いくつかの実施形態では、ウェブページの画像はウェブページによりサポートされた画像フォーマットである。例えば、ウェブページの画像はJPEG画像、GIF画像、TIFF画像、PNG画像等であってよい。
【００６５】
発信者側コンピュータシステム６０２は、ウェブページの表示を、ウェブページのドキュメントオブジェクトモデルに基づいて複数のタイルに分割する。例えば、もしウェブページの表示がウェブページのビットマップ画像なら、発信者側コンピュータシステム６０２はウェブページのビットマップ画像を複数のタイルに分割することで、複数のタイル中のそれぞれのタイルはウェブページのビットマップ画像のそれぞれの部分のビットマップ画像となる。ウェブページの他の表現（例えば、JPEG、GIFなど）を使用してもよい。
【００６６】
図７は、発信者側コンピュータシステム７０２で表示されるウェブページ７０８の処理について説明するブロック図７００を示す。ウェブページ７０８は、発信者側コンピュータシステム７０２のウェブブラウザのウィンドウおよび/またはタブ中に表示される。発信者側コンピュータシステム７０２のウェブブラウザのウィンドウおよび/またはタブの視認可能エリアの範囲が破線の矩形により示されている。破線の矩形の内部のウェブページのエリアは視認可能領域７１０（例えばウェブブラウザのウィンドウあるいはタブ内に描かれる部分）である。破線の矩形外のウェブページ７０８の領域は、スクロール可能な領域である（例えば、ブラウザのウィンドウやタブには描画されていないが、ウェブページのスクロールバーを用いることでアクセス可能）。ここでウェブページ７０８の視認可能領域７１０は、発信者側コンピュータシステム７０２のウェブブラウザの共有ウィンドウあるいはタブ中に描画されたウェブページ７０８の領域である。もし、ウェブブラウザが一以上の共有ウィンドウあるいはタブを含む場合には、ウェブページ７０８の視認可能領域７１０は、発信者側コンピュータシステム７０２のユーザインターフェース中でアクティブ（あるいはフォーカス）されている）共有ウィンドウあるいはタブが、ウェブブラウザの共有ウィンドウあるいはタブ中に描画されるウェブページ７０８の領域となる。
【００６７】
発信者側コンピュータシステム７０２は、ウェブページ７０８のドキュメントオブジェクトモデル（DOM)７１６を生成する。DOM７１６は、発信者側コンピュータシステム７０２のウェブブラウザのレイアウトエンジンにより通常生成される。いくつかの実施形態では、発信者側コンピュータシステム７０２はサーバ７０４にDOM７１６を伝送する。
【００６８】
上述のように、発信者側コンピュータシステム７０２はウェブページ７０８の表示を生成し、ウェブページ７０８の表示を複数のタイル７１４に分割する。少なくとも複数のタイル７１４のサブセットはサーバ７０４に送られ、次に、サーバは複数のタイル７１４のサブセットをクライアントコンピュータシステム７０６に送る。
【００６９】
いくつかの実施形態では、発信者側コンピュータシステム７０２は、DOM７１６に基づいて、ウェブページ７０８の視認可能領域７１０を決定し、ウェブページ７０８の視認可能領域７１０を複数のタイル７１４に分割することで、ウェブページ７０８のDOM ７１６に基づく、ウェブページ７０８の表示の複数のタイル７１４への分割を行う。このようにして、これらの実施形態では、発信者側コンピュータシステム７０２は視認可能領域７１０内のウェブページ７０８の表示だけを分割する。従って、もし発信者がウェブページをスクロールすると、以前視認可能領域中に描画されていなかったウェブページのコンテントを視認可能領域７１０が含むことになるので、発信者側コンピュータシステム７０２は、視認可能領域７１０内の新しいコンテントの新しいタイルのセットを生成し、サーバ７０４に送信する必要がある。
【００７０】
いくつかの実施形態では、発信者側コンピュータシステム７０２は、DOM７１６に基づいてウェブページ７０８の視認可能領域７１０を決定し、DOM７１６に基づいてウェブページ７０８のスクロール可能な領域７１２を決定し、ウェブページ７０８の視認可能領域７１０とスクロール可能領域７１２を複数のタイル７１４に分割することで、ウェブページ７０８のDOM７１６に基づく、ウェブページ７０８の複数のタイル７１４への分割を行う。このようにして、これらの実施形態では、発信者側コンピュータシステム７０２は、ウェブページ７０８全体の表示を分割する。従って、もし発信者がウェブページ７０８をスクロールして、視認可能領域７１０に以前視認可能領域中に描画されていなかったウェブページ７０８のコンテントを含み、そのウェブページ７０８のコンテントが先にウェブページ７０８の表示を生成したときから変更されていない場合、サーバ７０４上にあるタイルがまだ有効であるので、発信者側コンピュータシステム７０２は、新しいタイルのセットを生成して送信する必要はない。発信者側コンピュータシステム７０２は、スクロールバーの位置に応じた情報を送るだけで、クライアントコンピュータシステム７０６は視認可能領域７１０中の対応するタイル（あるいはタイルの一部）を表示することができる。もし、ウェブページ７０８の表示が先に生成されたものから変更された場合、発信者側コンピュータシステム７０２は、ウェブページ７０８の新しい描画を行い、ウェブページ７０８の表示を分割する。
【００７１】
いくつかの実施形態において、発信者側コンピュータシステム７０２は、DOM７１６に基づいてウェブページの視認可能領域７１０を決定し、DOM７１６に基づいてウェブページ７０８のスクロール可能な領域７１２を決定し、視認可能領域７１０をウェブページ７０８のスクロール可能領域７１２のサブセットを分割することで、ウェブページ７０８のDOM７１６に基づく、ウェブページ７０８の表示の複数のタイル７１４への分割を行う。従って、これらの実施形態では、発信者側コンピュータシステム７０２は視認可能領域７１０中のウェブページ７０８の表示とスクロール可能領域７１２の部分だけを分割する。従って、もし発信者がウェブページ７０８をスクロールすると、（１）視認可能領域７１０が以前の視認可能領域７１０中で描画されていなかったウェブページ７０８のコンテントを含む、（２）ウェブページ７０８のコンテントは以前に生成したウェブページの描画とは変化していない、（３）そのウェブページ７０８のコンテントは以前視認可能領域７１０中で描画されていないがウェブページ７０８のスクロール可能領域内７１２に含まれており、発信者側コンピュータシステム７０２は、サーバ７０４上にあるタイル７１４がまだ有効であるために、新しいタイルのセットを生成し、送信する必要がない、ことになる。発信者側コンピュータシステム７０２はスクロールバーの位置情報だけを送ることで、クライアントコンピュータシステム７０６は視認可能領域７１０内に対応するタイル（あるいはタイルの一部）を非表示にすることができる。もし、ウェブページ７０８のコンテントが、以前にそのウェブページ７０８の描画が生成されてから変化した、あるいは、もしウェブページ７０８が視認可能領域７１０に以前描画されていないためにスクロール可能領域７１２のサブセット中に含まれていない場合、発信者側コンピュータシステム７０２はウェブページ７０８の新たな表示を生成し、そのウェブページ７０８の表示の分割を先に述べたように行う。
【００７２】
いくつかの実施形態では、視認可能領域はタイルの一部分を含む。この形態において、視認可能領域に含まれるいかなるタイルもサーバ７０４に送信される。
【００７３】
図６の説明に戻ると、本発明のいくつかの実施形態において、発信者側コンピュータシステム６０２は複数のタイルを圧縮する。これらの形態において、複数のタイル中の各タイルは、発信者側コンピュータシステム６０２により圧縮タイルを生成するように、データ圧縮処理される。いくつかの実施形態では、発信者側コンピュータシステム６０２は、タイルをJPEG表現に変換することで圧縮する。いくつかの実施形態では、発信者側コンピュータシステム６０２はタイルをPNG表現に変換することで圧縮する。いくつかの実施形態では、発信者側コンピュータシステム６０２は、ファイル圧縮技術（例えば、ｇｚｉｐ等）を用いてタイルを圧縮する。いくつかの実施形態では、発信者側コンピュータシステム６０２は、複数の圧縮技術（例えば、画像圧縮とファイル圧縮など）を用いて最小のファイルサイズになる圧縮タイルを選択する。発信者側コンピュータシステム６０２は、タイルが以前のバージョンのタイルから変化しているかを決定する。いくつかの実施形態では、発信者側コンピュータシステム６０２は、タイルが以前のバージョンに対して変化したかどうかを次のように決定する（６１４）。発信者側コンピュータシステム６０２は、圧縮タイルのシグネチャを計算する（６１２）。いくつかの実施形態では、発信者側コンピュータシステム６０２は、圧縮タイルのハッシュ値を計算して圧縮タイルのシグネチャを計算する。例えば、発信者側コンピュータシステムはMD５  ハッシュ関数を、圧縮タイルのハッシュ値を生成するために用いる。発信者側コンピュータシステム６０２は、次に、圧縮タイルのシグネチャが、圧縮タイルの以前のバージョンの計算されたシグネチャと異なるかを決定する（６１４）。圧縮タイルのシグネチャが、以前のバージョンの計算されたシグネチャと異なるとの決定に応じて（６１６、ｙｅｓ）、発信者側コンピュータシステム６０２は圧縮タイルが変更されたと決定する（６１８）。
【００７４】
いくつかの実施形態においては、発信者側コンピュータシステム６０２は、ウェブページを複数のタイルに分割し、このタイルは圧縮せずにおく（６０８）。この実施形態においては、複数のタイルのうちの各タイルに対して、発信者側コンピュータシステム６０２はタイルがそのタイルの前のバージョンと比較して変更されているかどうかを次のように決定する。発信者側コンピュータシステム６０２は、タイルのシグネチャを計算する（６１２）。発信者側コンピュータシステム６０２は、タイルのシグネチャがそのタイルの前のバージョンのシグネチャと異なっているかを決定する（６１４）。いくつかの実施形態では、発信者側コンピュータシステム６０２は、ハッシュ関数を用いて圧縮タイルのハッシュ値を計算することで圧縮タイルのシグネチャを計算する。例えば、発信者側コンピュータシステムは圧縮タイルのハッシュ値を生成するためにMD5ハッシュ関数を用いる。タイルのシグネチャがそのタイルの前のバージョンの計算されたシグネチャと異なることが決定された場合（６１６、Yes）、発信者側コンピュータシステム６０２はタイルが変化したと決定する（６１８）。いくつかの実施形態では、発信者側コンピュータシステム６０２は、変化したタイルをマーク（フラグ付け）することで、発信者側コンピュータシステム６０２はマークされたタイルは変化したとしてサーバ６０４に送信できるようになる。
【００７５】
ステップ６１８の後、あるいは、タイルのシグネチャがそのタイルの前のバージョンの計算されたシグネチャと異ならないと決定した後（６１６、No）、発信者側コンピュータシステム６０２は変化したタイルをサーバ６０４に送信する（６２０）。いくつかの実施形態では、もし発信者側コンピュータシステム６０２がタイルを圧縮する場合には、発信者側コンピュータシステム６０２はサーバ６０４に圧縮されたタイルを送信する。いくつかの実施形態では、もし発信者側コンピュータシステム６０２がタイルを圧縮していない場合には、発信者側コンピュータシステム６０２は、圧縮されていないタイルをサーバ６０４に送る。いくつかの実施形態では、発信者側コンピュータシステムは常に圧縮されたタイルをサーバ６０４に送る。
【００７６】
いくつかの実施形態では、発信者側コンピュータシステム６０２はサーバ６０４に送信されたタイルが、処理されるタイルとされる。例えば、発信者側コンピュータシステム６０２は、ステップ６１０〜６１８を各タイルに対して繰り返して、タイルをサーバ６０４に送信する。いくつかの実施形態では、発信者側コンピュータシステム６０２は、一括処理で複数のタイルをサーバ６０４に送信する。例えば、発信者側コンピュータシステム６０２は、ステップ６１０〜６１８の工程ごとにタイルをサーバ６０４に送信してもよい。あるいは、発信者側コンピュータシステム６０２は、所定間隔（例えば、所定時間経過後、所定回数処理後）毎に、サーバ６０４にタイルを送信してもよい。
【００７７】
いくつかの実施形態では、もし発信者側コンピュータシステム６０２が圧縮されたファイルを生成した場合、発信者側コンピュータシステム６０２は圧縮されたタイルのシグネチャをサーバに送る。いくつかの実施形態では、もし発信者側コンピュータシステム６０２が非圧縮タイルを生成する場合には、発信者側コンピュータシステム６０２は、圧縮されていないタイルをサーバに送信する。
【００７８】
いくつかの実施形態では、タイルが変更されたとの決定に応じて、発信者側コンピュータシステム６０２は、タイルが生成された時刻に応じたタイムスタンプを生成し、そのタイムスタンプをサーバに送信する。
【００７９】
タイルは変化し、その元の値（例えば、表示）に戻るかもしれない。例えば、タイルがｔ＝０で第１の値をもち、ｔ＝１で第２の値を持ち、ｔ＝４で第１の値に戻るかもしれない。さらに、２つの別々のタイルが同じ値を持つかもしれない。例えば、ウェブページが一様なバックグランド（例えば白の背景）を、複数のタイルにわたって備えるかもしれない。これらの両方のケースで、もしサーバ６０４がすでにそのタイルを過去に受信しているなら、発信者側コンピュータシステム６０２がサーバ６０４にタイルの複製を送信するのは非効率である。同様に、発信者側コンピュータシステム６０２が同じタイルの表示のコピーをサーバ６０４に送信するのは非効率である。このため、いくつかの実施形態では、発信者側コンピュータシステム６０２は、サーバ６０４に過去に送信したタイルのシグネチャのリストを作成し、保持する。なお、これらは先に述べた圧縮あるいは非圧縮タイルのいずれの場合にも適用できる。いくつかの実施形態では、発信者側コンピュータシステム６０２は、タイルの現在のシグネチャを、タイルのリスト中にある、そのタイルの前のシグネチャ（例えば、そのタイルの以前のすべて、あるいは直前のシグネチャ）と比較し、そのタイルのシグネチャがそのタイルの前のシグネチャと異なるかどうかを決定する（６１４）。いくつかの実施形態では、発信者側コンピュータシステム６０２は、現在のタイルのシグネチャを、サーバ６０４に送信されたタイルのリスト中にあるすべてのタイル（例えば、ウェブページの全体）のシグネチャと比較し、そのタイルのシグネチャが、そのタイルの前のシグネチャと異なるかどうかを判断する（６１４）。これらの実施形態において、もし発信者側コンピュータシステム６０２が、そのタイルが変化しているとともに、そのタイルがサーバに以前送信されていると判断した場合、発信者側コンピュータシステムは、タイルの識別子（例えば、タイルのシグネチャ、タイル名、タイルの一意の識別子）だけをサーバ６０４に送る。クライアントコンピュータシステムはタイルの識別子を受信したとき、クライアントコンピュータシステムはそのタイルの識別子に対応するタイルを表示する。もしクライアントコンピュータシステムがタイルのコピーを保持していない場合には、クライアントコンピュータシステムはサーバ６０４にタイルを要求する。
【００８０】
発信者側コンピュータシステム６０２は、所定時間経過後、ステップ６０６に戻る（６２２）。
【００８１】
ステップ６２０の後、サーバ６０４は、変化したタイルを受信し（６２４）、タイルをタイルデータベース（例えば図３のタイルデータベース３２２）中に保存する。いくつかの実施形態では、サーバ６０４は発信者側コンピュータシステム６０２から受信したタイルのすべてのバージョンを保持する。いくつかの実施形態では、サーバ６０４は発信者側コンピュータシステム６０２から受信したタイルのバージョンの一部を保存する。いずれの実施形態の場合でも、サーバ６０４は時間順のタイルのリストを保持することで、一連のタイルは将来再生するときに順番どおり再生できる。いくつかの実施形態では、サーバ６０４は発信者側コンピュータシステム６０２から受信したタイルの最新バージョンだけを保存する。
【００８２】
いくつかの実施形態では、それぞれのタイルはメタデータを含む。いくつかの実施形態では、メタデータはそれぞれのタイルの名前、ウェブページ中のそれぞれのタイルの位置、そしてそれぞれのタイルがいつ生成されたかを示すタイムスタンプを含む。これらの形態においては、発信者側コンピュータシステム６０２はタイルデータベースに記憶されるタイルとともにメタデータを送信する。
【００８３】
いくつかの実施形態では、発信者側コンピュータシステム６０２はセッションデータを決定し、セッションデータをサーバに送信する。いくつかの実施形態ではセッションデータにはセッション識別子、第２ウィンドウの高さ、幅、ウェブページのスクロール可能な幅、垂直スクロールバーの垂直位置、水平スクロールバーの水平位置、そしてカーソル形状を含む。
【００８４】
いくつかの実施形態では、発信者側コンピュータシステム６０２は、発信者側コンピュータシステム６０２上で再生された音声信号を記録し、その音声信号をサーバに送信する。発信者側コンピュータシステム６０２は、音声信号がスクリーンキャストと同期するように音声を記録した時刻のタイムスタンプも生成する。
【００８５】
いくつかの実施形態では、発信者側コンピュータシステムは各タイル中の単語や文字をサーバに送る。図８は、本発明のいくつかの実施形態に関し、タイル中に含まれる単語や文字を決定する方法８００のフローチャートである。発信者側コンピュータシステム８０２（例えば、図１の発信者側コンピュータシステム１０２）は図８に記載されている処理を実行する。いくつかの実施形態では、発信者側コンピュータシステム８０２により実行される処理は、発信者側コンピュータシステム８０２のブラウザモジュールのスクリプトエンジン（例えば、図２のブラウザモジュール２１８のスクリプトエンジン２２０）で実行されるプレゼンテーションモジュール（例えば、図２のプレゼンテーションモジュール２２２）により処理される。
【００８６】
発信者側コンピュータシステム８０２は、各タイル内にあるウェブページに含まれるノードを決定するために、ウェブページのドキュメントオブジェクトモデルを検索する（８０４）。発信者側コンピュータシステム８０２は、ドキュメントオブジェクトモデルに基づいてノード中の単語あるいは文字を決定する（８０６）。例えば、発信者側コンピュータシステム８０２がこれらのノード（例えば、Mozilla  FireFox中のnsIAccessible Text）に対する通信可能なインターフェースを獲得し、その値を獲得するために各単語あるいは文字を探索する。発信者側コンピュータシステム８０２は単語あるいは文字をサーバ（例えば図１のサーバ１０４）に送信する。いくつかの実施形態では、単語あるいは文字はタイルとともに送られ、サーバに蓄積される。
【００８７】
いくつかの実施形態では、発信者側コンピュータシステム８０２は、ドキュメントオブジェクトモデルに基づいてノード中の単語や文字を取り囲む境界ボックスを決定し（８１０）、その境界ボックスをサーバに送信する（８１２）。例えば、発信者側コンピュータシステム８０２はこれらのノード（例えば、Mozilla  FireFox中のnsIAccessible Text）の通信可能なインターフェースを獲得し境界ボックスを獲得するために、各単語あるいは文字を調べる。いくつかの実施形態では、単語あるいは文字の境界ボックスとその単語あるいは文字はタイルと共に送信され、サーバに保存される。
【００８８】
いくつかの実施形態では、タイムスタンプはDOMが検索された時刻の単語や文字、あるいは単語や文字の境界ボックスに対して生成される。これらのタイムスタンプはタイルとともにサーバに送られる。受信者は、特定の単語が、特定の期間内に発生したかを、スクリーンキャストに対して検索することができる。
【００８９】
いくつかの実施形態では、フィルタが単語あるいは文字に適用されて、特定の条件に基づく単語あるいは文字が除外される。例えば、プライバシーフィルタにより電子メールアドレス、社会保障番号、電話番号、住所といったものが除外される。いくつかの実施形態では、発信者側コンピュータシステム８０２は、サーバに単語あるいは文字を送信する前にフィルタを適用する。いくつかの実施形態では、サーバは発信者側コンピュータシステム８０２から受信した単語あるいは文字に対してフィルタを適用する。なお、光学文字認識（OCR)技術を利用することもできる。しかし、OCR技術は偽陰性（false negative：例えばOCRが記号＠を認識できずに電子メールアドレスと認識できない）を生じるかもしれない。DOMを使う実施形態では、実際の文字あるいは記号がDOMを介して取得できる点で好適である。この場合、フィルタはOCRを用いるときと同様の問題に悩まされることがない。
【００９０】
いくつかの実施形態では、発信者側コンピュータシステム８０２は、リンクを含むウェブページ中のオブジェクトへのリンクを、サーバに送る。例えば、発信者側コンピュータシステム８０２は、例えばURL等のリンクがある共有ウェブページ上オブジェクト（テキスト、マルチメディアオブジェクト等）のDOMを検索する。次に発信者側コンピュータシステム８０２はリンクをサーバに送る。クライアントコンピュータシステム（例えば図１のクライアントコンピュータシステム１０６のいずれか）は、クライアントコンピュータシステム上で表示された共有ウェブページ中の位置に対応してリンクを配置する。こうして、受信者は、スクリーンキャストで閲覧しているときにリンクをクリックすることができる。
【００９１】
いくつかの実施形態において、ウェブページのDOMにアクセスする場合の形態では、他のドキュメントオブジェクトも獲得し共有してもよい。例えば、HTMLフォーム要素（例えば、入力ボックスフォーム）、HTML  IMG要素、パラグラフ位置、マルチメディアオブジェクトのタイプを共有することができる。このようにして、受信者は特定の単語やビデオクリップを含むスクリーンキャストを検索することができる。
【００９２】
図９は、本発明のいくつかの実施形態に関わる、ウェブブラウザのプラグインモジュールを用いて表示されるコンテントを取り扱う方法９００のフローチャートである。例えば、プラグインモジュールとしては、ムービープラグインモジュール（例えば、Adobe（登録商標）Flash、Windows（登録商標）メディアプレーヤー、Apple（登録商標）QuickTime（登録商標）など）が含まれる。発信者側コンピュータシステム９０２（例えば図１の発信者側コンピュータシステム１０２）が図９に示された処理を行う。いくつかの実施形態では、発信者側コンピュータシステム９０２で実行される処理は、発信者側コンピュータシステム９０２のブラウザモジュールのスクリプトエンジン（例えば、図２のスクリプトエンジン２２０）で実行されるプレゼンテーションモジュールにより処理される。
【００９３】
発信者側コンピュータシステム９０２は、コンテントがウェブブラウザのプラグインモジュールを用いて表示される場合に、複数のタイルの各タイル内のコンテントの境界ボックスを決定するためにウェブページのドキュメントオブジェクトモデルを検索する（９０４）。プラグインモジュールは、例えばビデオモジュールのようにダイナミックに表示が変化するなど、表示が短時間に大きく変化する場合が多いために、更新が必要なタイル数が多くなりデータ遅延も発生しやすくなるために、視聴しづらい場合がある。このため、発信者側コンピュータシステム９０２は、この境界ボックスに対応する各タイル中の領域をマスクする（隠す）。発信者側コンピュータシステム９０２は、マスクされた状態のウェブページについて、コンテントの表示を生成する（９０８）。いくつかの実施形態では、発信者側コンピュータシステム９０２は、コンテントの表示倍率を変更する（９１０）。発信者側コンピュータシステム９０２は、コンテントの表示と境界ボックスをサーバに送信する（９１２）。
【００９４】
いくつかの実施形態では、発信者側コンピュータシステム９０２は、それぞれのプラグインモジュールのタイプ（例えば、Adobe（登録商標）Flash、Windows（登録商標）メディアプレーヤー、Apple（登録商標）QuickTime（登録商標）など）の記述、および/または、それぞれのプラグインを用いて表示されるコンテントに対応したそれぞれのリンクを、サーバに送信する。これらの実施形態では、クライアントコンピュータシステムはそれぞれのプラグインモジュールをロードし、それぞれのプラグインモジュールを用いて、コンテントの境界ボックスの位置にコンテントを描画する。
【００９５】
図１０は、本発明のいくつかの実施形態に関する、共有されたウェブページ内でカーソルの位置を共有するための方法１０００のフローチャートである。発信者側コンピュータシステム１００２（例えば、図１の発信者側コンピュータシステム１０２）は図１０に記載の処理を実行する。いくつかの実施形態では、発信者側コンピュータシステム１００２により実行される処理は、発信者側コンピュータシステム１００２のブラウザモジュールのスクリプトエンジン（例えば、図２中のブラウザモジュール２１８のスクリプトエンジン２２０）で実行されるプレゼンテーションモジュールシステム１００２により処理される。
【００９６】
発信者側コンピュータシステム１００２は共有されたウェブページ中のカーソルの位置を決定し（１００４）、カーソルの位置をサーバに送る（１００６）。
【００９７】
いくつかの実施形態では、発信者側コンピュータシステム１００２は共有されたウェブページ内のカーソルの位置を定期的に決定する。カーソルの位置が前回の位置と異なっている場合には、発信者側コンピュータシステム１００２はカーソルの位置をサーバに送信し、カーソルがその位置にあった時刻を示すタイムスタンプがサーバに送られる。もし、カーソルの位置が前回の位置と変わっていないときには、発信者側コンピュータシステム１００２はカーソルの位置をサーバに送らない。
【００９８】
いくつかの実施形態において、クライアントコンピュータシステム（例えば図１のクライアントコンピュータシステム１０６）はクライアントコンピュータシステム上に表示された共有ウェブページ中のカーソルの位置を、発信者側コンピュータシステム１００２に送る。これらの形態では、発信者側コンピュータシステム１００２は、発信者側コンピュータシステム１００２上に表示された共有ウェブページ中のクライアントコンピュータシステムでのカーソルの位置を表示する。いくつかの実施形態では、発信者側コンピュータシステム１００２は、共有されたウェブページ中のクライアントコンピュータシステムとカーソルを共有する。いくつかの実施形態では、クライアントコンピュータシステムは、発信者側コンピュータシステム１００２上の共有ウェブページ上に表示されるオブジェクトを、クライアントコンピュータシステムのカーソルを用いて操作する。例えば、クライアントコンピュータシステムは共有されたウェブページ上のリンクをクリックすることができ、発信者側コンピュータシステム１００２はクリックしたリンクに対応するウェブページを読み込むようにできる。
【００９９】
いくつかの実施形態では、発信者側コンピュータシステム１００２は、クライアントコンピュータシステムからのキーボード入力を受信する。発信者側コンピュータシステム１００２は、次に、キーボード入力を共有ウェブページに表示する。いくつかの実施形態において、発信者側コンピュータシステム１００２は、共有されたウェブページ内でのクライアントコンピュータシステムのキーボード入力を共有する。こうすることで、これらの実施形態ではクライアントコンピュータシステム１２０２が発信者側コンピュータシステムを操作することが可能となる。
（共有されたウェブページの表示）
いくつかの実施形態では、共有されたウェブページがリアルタイムで発信される。これらの実施形態では、クライアントコンピュータシステムは、リアルタイム発信を受信するために、共有されたウェブページを購読（受信設定）する。いくつかの実施形態では、共有されたウェブページは次の再生用にサーバで記憶される。これらの形態では、クライアントコンピュータシステムはサーバから共有ウェブページの記録バージョンを取得する。
【０１００】
図１１は、本発明のいくつかの実施形態に関わる、共有されたウェブページを表示するための方法１１００のフローチャートである。クライアントコンピュータシステム１１０２（例えば、図１のクライアントコンピュータシステム１０６）とサーバ１１０２（例えば図１のサーバ１０４）が図１１に示した処理を実行する。いくつかの実施形態では、クライアントコンピュータシステム１１０２により実行される処理はクライアントコンピュータシステム１１０２のブラウザモジュールのスクリプトエンジン（例えば、図４のスクリプトエンジン４２０）で実行されるプレゼンテーションモジュール（例えば図４のプレゼンテーションモジュール４２２）により処理される。いくつかの実施形態では、サーバ１１０４により実行される処理はサーバ１１０４のタイルモジュール（例えば図３のタイルモジュール３２０）により実行される。
【０１０１】
クライアントコンピュータシステム１１０２はセッションにアクセスするための要求をサーバ１１０４に送信する。いくつかの実施形態では、この要求は発信者側コンピュータシステムからセッションURLを受信したのに応じて生成される（例えば、図５のステップ５１６）。サーバ１１０４はセッションにアクセスする要求を受信し（１１０８）、セッションデータをクライアントコンピュータシステム１１０２に送信する（１１１０）。いくつかの実施形態では、セッションデータは、セッション識別子、第２ウィンドウの高さ、第２ウィンドウの幅、ウェブページのスクロール可能な高さ、ウェブページのスクロール可能な幅、垂直スクロールバーの垂直位置、水平スクロールバーの水平位置、カーソル形状を含む。
【０１０２】
いくつかの実施形態では、サーバ１１０４はクライアントコンピュータシステム１１０２にプレゼンテーションモジュール用の命令を含むプログラムを送信する。これらの実施形態では、クライアントコンピュータシステム１１０２はプログラムを受信し、プログラムをインストールおよび／または実行する。いくつかの実施形態では、クライアントコンピュータシステム１１０２がすでにそのプログラムを持っている場合にはサーバ１１０４はプログラムを送信しない。この形態ではクライアントコンピュータシステム１１０２がプログラムを実行する。
【０１０３】
クライアントコンピュータシステム１１０２はセッションデータを受信し（１１１２）、セッションデータに基づくウェブブラウザのウィンドウおよび/あるいはタブ中のデータを保持するコンテナを生成する（１１１４）。いくつかの実施形態では、クライアントコンピュータシステム１１０２は共有されたウェブページの視認可能領域のサイズを有する第１のコンテナを作成する。クライアントコンピュータシステム１１０２は第１のコンテナ内に、スクロール可能な領域のサイズを持つ第２のコンテナを生成する。スクロール可能な領域は視認可能な領域よりも通常大きいので、クライアントコンピュータシステム１１０２のウェブブラウザは自動的に第１のコンテナにスクロールバーを生成し、ユーザが第２の（大きい）コンテナ中に含まれるコンテントをスクロールすることができるようにする。いくつかの実施形態では、第１のコンテナと第２のコンテナはHTML  DIV要素である。
【０１０４】
サーバ１１０４は、発信者側コンピュータシステムから初期のタイルのセットを受信し（１１１６）、その初期のタイルのセットをクライアントコンピュータシステム１１０２に送信する。
【０１０５】
クライアントコンピュータシステム１１０２はサーバ１１０４から初期のタイルのセットを受信する（１１２０）。クライアントコンピュータシステム１１０２はウェブブラウザのウィンドウおよび/またはタブ中のコンテナ中の初期のタイルのセットの少なくとも一部を表示し（１１２２）、セッションデータに応じて、ウェブブラウザのウィンドウおよび／またはタブ中にカーソルを表示する（１１２４）。いくつかの実施形態では、クライアントコンピュータシステム１１０２はセッションデータに含まれるカーソル形状を用いたカーソルを表示する。もしタイルがファイル圧縮技術（例えば、ｇｚｉｐ）を用いて圧縮されていれば、クライアントコンピュータシステム１１０２は、タイルを表示する前にタイルを解凍する。もし、タイルが画像圧縮技術（JPEG圧縮等）を用いて圧縮されているなら、クライアントコンピュータシステム１１０２はタイルの表示に先立って適当な画像デコーダを用いる。
【０１０６】
クライアントコンピュータシステム１１０２は所定の時間待機する（１１２６）。
【０１０７】
サーバ１１０４は、発信者側コンピュータシステムから更新されたタイルを定期的に受信し（１１２８）、更新されたタイルをクライアントコンピュータシステム１１０２に送信する（１１３０）。
【０１０８】
クライアントコンピュータシステムは、サーバ１１０４から更新タイルを受信する（１１３２）。各更新タイルについて、クライアントコンピュータシステム１１０２は、ウェブページ中でのタイルの位置を決定し（１１３４）、クライアントコンピュータシステム１１０２のユーザインターフェース中のウェブブラウザのウィドウおよび／またはタブ内の位置にタイルを表示する（１１３６）。いくつかの実施形態では、クライアントコンピュータシステム１１０２は、タイルのメタデータに基づいてタイルの位置を決定する。
【０１０９】
すべての更新タイルの処理が完了したのち、クライアントコンピュータシステム１１０２はステップ１１２６へ戻る。
【０１１０】
上記のように、ステップ１１２０から１１２２と、ステップ１１３２から１１３６において、サーバ１１０４は定期的にタイルをクライアントコンピュータ１１０２にプッシュ（push）する。このため、クライアントコンピュータシステムとサーバ１１０４はそのセッションの間接続を維持する。このためには、これに用いるポートをファイウォール中で開けておく必要がある。
【０１１１】
いくつかの実施形態では、クライアントコンピュータシステム１１０２はサーバ１１０４から更新されたタイルを定期的にプル（pull）する。例えば、クライアントコンピュータシステム１１０２は定期的に要求をし、更新されたタイルおよび／またはタイルのシグネチャを含む、更新されたセッションデータをサーバ１１０４から受信する。更新されたセッションデータに基づいて、クライアントコンピュータシステム１１０２はクライアントコンピュータシステムがまだ保持していない更新タイルをサーバ１１０４に要求して受信する。クライアントコンピュータシステム１１０２はサーバ１１０４に要求するので、クライアントコンピュータ１１０２とサーバ１１０４はセッションを通して接続を維持する必要がない。このため、クライアントコンピュータシステム１１０２は通常のポート（例えば、TCPポート８０や４４３、それぞれ標準HTTPおよびHTTPSポート）を用いてもよい。従って、ファイアウォール中に接続維持用のポートを開けておく必要はない。
【０１１２】
いくつかの実施形態では、クライアントコンピュータシステム１１０２はサーバ１１０４から受信したすべてのバージョンのタイルを保存する。いくつかの実施形態では、クライアントコンピュータシステム１１０２はサーバ１１０４から受信したタイルのバージョンの一部を保存する。いくつかの実施形態では、クライアントコンピュータシステム１１０２は、サーバ１１０４から受信したタイルのバージョンで最新のものだけを保存する。これらの実施形態において、クライアントコンピュータシステム１１０２の受信者により設定されたタイル保存パラメータおよび/または発信者側コンピュータシステムの発信者により設定されたタイル保存パラメータは、クライアントコンピュータシステム１１０２上に保存される、あるいは保存されうるタイルの合計量を決定する。例えば、もしクライアントコンピュータシステム１１０２のメモリが限られている場合、クライアントコンピュータシステム１１０２は、クライアントコンピュータシステム１１０２にはもっとも最新のバージョンのタイルだけが保存されるようにタイル保存パラメータを設定する。同様に、もし発信者がクライアントコンピュータシステムに対してスクリーンキャストすべてのコピーを保存させたくない場合には、発信者はクライアントコンピュータシステム１１０２にはもっとも最新のバージョンのタイルだけが保存されるようにタイル保存パラメータを設定してもよい。
【０１１３】
いくつかの実施形態においては、共有されるウェブページの視認可能領域がタイルの一部分を含んでもよい。これらの形態では、完全なタイルがクライアントコンピュータシステムには送られるが、共有ウェブページの視認可能領域内にあるタイルの一部分だけが描画され表示される。
【０１１４】
いくつかの実施形態では、共有されるウェブページ全体のタイルが受信される。いくつかの実施形態ではクライアントコンピュータシステムはウェブページの視認可能領域内のタイル（あるいはタイルの一部）だけを表示する。クライアントコンピュータシステムは共有ウェブページ全体の情報を持っているので、受信者は閲覧領域内にない共有ウェブページの部分を見るために共有ウェブページをスクロールすることができる。
【０１１５】
いくつかの実施形態において、共有ウェブページの、視認可能領域とスクロール可能領域のタイルとが受信される。これらの形態では、クライアントコンピュータシステムはウェブページの視認可能領域内にあるタイル（あるいはタイルの一部）だけを表示する。しかし、クライアントコンピュータシステムは共有ウェブページのスクロール可能な領域の部分の情報を持っているので、受信者は視認可能領域内ではなく、クライアントコンピュータシステムが情報を受信したスクロール可能な領域の中にある共有ウェブページの部分を見るために共有ウェブページをスクロールすることができる。
【０１１６】
いくつかの実施形態では、クライアントコンピュータシステム１１０２は、各タイル中の単語および／または文字、各タイル中の単語および/または文字の境界ボックス、ブラウザプラグインを用いるマルチメディアコンテントの境界ボックスおよび表示、各タイル中のリンクおよびリンクに対応する位置、あるいはこれらの組み合わせをまた受信する。クライアントコンピュータシステム１１０２は次にこれらのアイテムをウェブページの視認可能領域内に描画する。例えば、ウェブページの視認可能領域内にあるリンクが描画され、ユーザがそのリンクをクリックできるようにする。もしユーザがそのリンクをクリックすると、別のウェブブラウザウィンドウあるいはタブが起動する。同様に、プラグインモジュールを必要とするマルチメディアコンテントの表示が視認可能領域内の適当な位置に描画される。
【０１１７】
いくつかの実施形態では、クライアントコンピュータシステム１１０２は共有されたウェブページのDOMを受信する。これらの形態では、クライアントコンピュータシステム１１０２は見えないDIV要素を用いてウェブページの構造を再現する。このようにして、ウェブページの構造配置に基づく、クライアントコンピュータシステム１１０２のウェブブラウザのユーザインターフェース関数が使用できる。例えば、アップル社製のｉＰｈｏｎｅ上では、ユーザはパラグラフ、画像、あるいは他のオブジェクトをダブルタップすると、ウェブブラウザが対応する領域をズームする。こうして、ｉＰｈｏｎｅを用いる受信者は共有されたウェブページ中のオブジェクトをダブルタップすることができ、ｉＰｈｏｎｅのウェブブラウザは共有ウェブページの対応箇所をズームする。
【０１１８】
いくつかの実施形態では、クライアントコンピュータシステム１１０２はクライアントコンピュータシステム１１０２の表示装置にフィットするようにタイルを倍率変更する。
【０１１９】
図１２は、本発明のいくつかの実施形態に関わる共有されたウェブページ中のカーソルの位置を表示するための方法１２００のフローチャートである。クライアントコンピュータシステム１２０２（例えば、図１のクライアントコンピュータシステム１０６）図１２に示す処理を行う。いくつかの実施形態では、クライアントコンピュータシステム１２０２により行われる処理は、クライアントコンピュータシステム１２０２のブラウザモジュールのスクリプトエンジン（例えば、図４のブラウザモジュール４１８のスクリプトエンジン４２０）で実行されるプレゼンテーションモジュールで処理される。
【０１２０】
クライアントコンピュータシステム１２０２は、サーバから現在のカーソル位置を受信する（１２０４）。いくつかの実施形態では、クライアントコンピュータシステム１２０２では、現在のカーソル位置が前のカーソル位置と異なる場合に、サーバから現在のカーソル位置だけを受信する。いくつかの実施形態では、クライアントコンピュータシステム１２０２は、サーバ１１０４から定期的に現在のカーソル位置を含むセッションデータを受信する。
【０１２１】
クライアントコンピュータシステムは、次に現在のカーソル位置が前のカーソル位置と同じかどうかを判断する（１２０６）。現在のカーソル位置が前のカーソル位置と異なるとの決定に応じて（１２０８、No）、クライアントコンピュータシステム１２０２は、クライアントコンピュータシステム１２０２のウェブブラウザのウィンドウ中で、カーソルの前の位置から現在の位置へのアニメーションを生成する（１２１０）。例えばクライアントコンピュータシステム１２０２は前のカーソル位置から現在のカーソル位置間をスムーズな動きにするために内挿補間を用いても良い。
【０１２２】
ステップ１２１２の後、あるいは現在のカーソル位置が前のカーソル位置と同じとの決定に応じて（１２０８、Yes)、クライアントコンピュータシステム１２０２は所定時間経過を待ち（１２１４）、ステップ１２０４に戻る。
【０１２３】
いくつかの実施形態では、クライアントコンピュータシステム１２０２（例えば、図１のクライアントコンピュータシステム１０６のいずれか）はクライアントコンピュータシステム１２０２上で表示される共有ウェブページ中のカーソル位置を、発信者側コンピュータシステム１００２に送信する。これらの実施形態では、発信者側コンピュータシステムは、発信者側コンピュータシステム上に表示される共有ウェブページ中にクライアントコンピュータシステム１２０２のカーソル位置を表示する。いくつかの実施形態では、発信者側コンピュータシステム１２０２は、共有ウェブページ中でクライアントコンピュータシステム１２０２のカーソルを（例えば、他のコンピュータシステムと）共有する。いくつかの実施形態では、クライアントコンピュータシステム１２０２は、クライアントコンピュータシステム１２０２のカーソルを用いて、発信者側コンピュータシステム上の共有ウェブページ上に表示されたオブジェクトを操作する。例えば、クライアントコンピュータシステム１２０２は共有ウェブページ上のリンクをクリックでき、クリックしたリンク先のウェブページを発信者側コンピュータシステムでロードできる。
【０１２４】
いくつかの実施形態では、発信者側コンピュータシステムは、クライアントコンピュータシステム１２０２からキーボード入力を受信する。発信者側コンピュータシステムは次に共有されたウェブページ上にキーボード入力を表示する。いくつかの実施形態では、発信者側コンピュータシステムは共有ウェブページ中のクライアントコンピュータシステム１２０２のキーボード入力を（例えば他のコンピュータシステムと）共有する。こうして、これらの実施形態ではクライアントコンピュータシステム１２０２から発信者側コンピュータシステムを操作できる。
【０１２５】
図１３は、本発明のいくつかの実施形態に関わる、共有ウェブページ上で検索を行う方法１３００のフローチャートである。クライアントコンピュータシステム１３０２（例えば、図１のクライアントコンピュータシステム１０６のいずれか）が図１３で示す処理を実行する。いくつかの実施形態では、クライアントコンピュータシステム１３０２により実行される処理は、クライアントコンピュータシステム１３０２のブラウザモジュールのスクリプトエンジン（例えば、図４のスクリプトエンジン４２０）で実行されるプレゼンテーションモジュールにより処理される。
【０１２６】
クライアントコンピュータシステム１３０２は、境界ボックスとそれに対応する単語および/または文字をサーバから受信する（１３０４）。ここで各境界ボックスは各タイル内の各単語および／あるいは各文字の特定の位置に対応する。クライアントコンピュータシステム１３０２は、クライアントコンピュータシステムのユーザからの検索語を含む検索条件を受信する（１３０６）。クライアントコンピュータシステム１３０２は、検索語を含む少なくとも一つの境界ボックスを決定し（１３０８）、その少なくとも一つの境界ボックスに対応する可視的なインジケータを表示する（１３１０）。例えば、クライアントコンピュータシステム１３０２は、検索語を強調表示してもよい。
【０１２７】
図１４は、本発明のいくつかの実施形態に関わる、ウェブブラウザのプラグインモジュールを用いて表示されるコンテントを表示するための方法１４００である。クライアントコンピュータシステム１４０２（例えば、図１のクライアントコンピュータシステム１０６）は、図１４に示す処理を行う。いくつかの実施形態では、クライアントコンピュータシステム１４０２により実行される処理は、クライアントコンピュータシステム１４０２のブラウザモジュールのスクリプトエンジン（例えば、図４のブラウザモジュール４１８のスクリプトエンジン４２０）で実行されるプレゼンテーションモジュールにより処理される。
【０１２８】
クライアントコンピュータシステム１４０２は、ウェブブラウザのウィンドウおよび／またはタブ内にある、境界ボックスと、ウェブブラウザのプラグインモジュールを用いて表示されるコンテントの表現と、を受信する（１４０４）。
【０１２９】
いくつかの実施形態では、発信者側コンピュータシステムは各プラグインモジュールのタイプ（例えば、Apple社製Ｑｕｉｃｋｔｍｅ、Adobe  Flash、Microsoft（登録商標）Windows（登録商標） Media Playerなど）の記述を送信し、および／または、各プラグインモジュールを用いて表示されるコンテントに対応した各リンクをサーバに送る。これらの実施形態では、クライアントコンピュータシステム１４０２は各プラグインモジュールをロードし、そのコンテントの境界ボックスの位置に、各プラグインモジュールを用いてそのコンテントを表示する。
（埋め込みスクリーンキャストプレーヤ）
いくつかの実施形態では、スクリーンキャストを表示するためのスクリーンキャストプレーヤはウェブページ中に埋め込まれている。例えば、スクリーンキャストプレーヤはウェブページ（例えばブログなど）のIFRAMEあるいはDIV要素を用いて埋め込まれる。いくつかの実施形態では、受信者はウェブページ中に埋め込まれたスクリーンキャストプレーヤを用いて、スクリーンキャストを検索したり閲覧したりする。
【０１３０】
いくつかの実施形態では、サーチエンジンによるスクリーンキャストの文字の検索を可能にしてもよい。この場合、受信者はキーワード検索によりスクリーンキャストの検索をすることができる。
【０１３１】
いくつかの実施形態では、スクリーンキャストプレーヤは発信者および/またはユーザがスクリーンキャストの特定のセグメントへのリンクを設けることを認めてもよい。こうすれば、発信者および／あるいは受信者はスクリーンキャストの特定部分を共有することができる。同様に、発信者および/あるいはユーザは、異なるスクリーンキャストから来るパーツを集めた集合物を作成してもよい。
【０１３２】
本発明の説明のために、上述のように特定の実施形態を参照して説明した。しかし、これら説明は本発明のすべてを網羅したものでも、これら開示されたそのままの形態に限定するためのものでもない。多くの変形や変更が教示した事項に基づいて為しうる。実施形態や説明の順序は本発明の原理や実用的な応用例をもっともよく説明できるように選択され記述されており、当業者であれば本発明を考えている用途に従って最適で多様な変更を伴った形態として利用することができることは明らかであろう。
【符号の説明】
【０１３３】
101  発信者
102、200、502、602、702、802、902、1002  発信者側コンピュータシステム
104、300、504、604、704、1104  サーバ
106、400、706、1202、1302、1402  クライアントコンピュータシステム
107  受信者
【図１】
2011018314.tif 000003
【図２】
2011018314.tif 000004
【図３】
2011018314.tif 000005
【図４】
2011018314.tif 000006
【図５】
2011018314.tif 000007
【図６】
2011018314.tif 000008
【図７】
2011018314.tif 000009
【図８】
2011018314.tif 000010
【図９】
2011018314.tif 000011
【図１０】
2011018314.tif 000012
【図１１】
2011018314.tif 000013
【図１２】
2011018314.tif 000014
【図１３】
2011018314.tif 000015
【図１４】
2011018314.tif 000016