(57)【要約】【課題】１つ以上のプロセッサと、イメージ共有クライアント・アプリケーションと、イメージ配布アプリケーションとを有し、モバイル電子デバイスとイメージを共有するためのネットワーク・サーバを提供する。【解決手段】イメージ共有クライアント・アプリケーションが、ネットワーク上でモバイル電子デバイスと共有されているイメージに対する更新を受信するために、プロセッサのうちの１つ以上で実行され、各モバイル電子デバイスは、それ自体の現在のズーム・レベルと、それ自体のイメージの現在可視の領域とを有する。イメージ配布アプリケーションは、複数のモバイル電子デバイスそれぞれに関して、現在のズーム・レベルおよび現在可視の領域の記録を保持し、モバイル電子デバイスの現在のズーム・レベルおよび現在閲覧可能な領域に基づき、複数のモバイル電子デバイスにイメージ更新を選択的に送信するために、プロセッサのうちの１つ以上で実行される。【選択図】図３
2012533102.tif 000002
【特許請求の範囲】
【請求項１】
モバイル電子デバイスとイメージを共有するためのネットワーク・サーバであって、
１つ以上のプロセッサと、
複数のモバイル電子デバイスとネットワーク上で共有されているイメージに対する更新を受信するために、前記プロセッサのうちの１つ以上で実行される、イメージ共有クライアント・アプリケーションであって、前記複数のモバイル電子デバイスはそれぞれ、それ自体の現在のズーム・レベルと、それ自体の前記イメージの現在可視の領域とを有する、前記イメージ共有クライアント・アプリケーションと、
前記複数のモバイル電子デバイスそれぞれの前記現在のズーム・レベルおよび現在可視の領域の記録を保持して、前記モバイル電子デバイスの前記現在のズーム・レベルおよび現在閲覧可能な領域に基づいて前記複数のモバイル電子デバイスにイメージ更新を選択的に送信するために、前記プロセッサのうちの１つ以上で実行される、イメージ配布アプリケーションと、
を含む、ネットワーク・サーバ。
【請求項２】
前記サーバは、前記イメージの複数のバージョンを記憶するメモリをさらに含み、これらのバージョンはそれぞれ、異なる解像度レベルを有する、請求項１に記載のネットワーク・サーバ。
【請求項３】
前記メモリは、前記複数のモバイル電子デバイスそれぞれの前記現在可視の領域およびズーム・レベルを示すデータを記憶する、請求項２に記載のネットワーク・サーバ。
【請求項４】
前記サーバは、イメージ・ホスト・デバイスから前記イメージに対する更新を受信する入力ポートをさらに含む、請求項１に記載のネットワーク・サーバ。
【請求項５】
前記イメージの更新は、画面共有モードの前記イメージ・ホスト・デバイスにて表示されているプレゼンテーションに対する変更である、請求項４に記載のネットワーク・サーバ。
【請求項６】
前記ネットワークは、携帯電話ネットワークであり、前記複数のクライアント・デバイスはそれぞれ、携帯電話通信デバイスである、請求項１に記載のネットワーク・サーバ。
【請求項７】
クライアント・デバイスとイメージを共有する方法であって、
ネットワーク・サーバにネットワーク上で結合されている複数のクライアント・デバイスと共有されているイメージの更新を、前記サーバにて受信するステップであって、前記クライアント・デバイスはそれぞれ、共有されている前記イメージの全部または選択された部分を含む現在閲覧可能な領域を示すディスプレイを有する、前記ステップと、
前記受信されたイメージ更新が、前記複数のクライアント・デバイスそれぞれの前記現在可視の領域内に表示されている前記イメージに対する変更を示すかどうかを、前記複数のクライアント・デバイスそれぞれの前記現在可視の領域の記録されているパラメータに基づき、前記ネットワーク・サーバにて判断するステップと、
前記判断の結果に基づき、前記イメージ更新を、前記クライアント・デバイスのうちの１つ以上に選択的に送信するステップと、
を含む前記方法。
【請求項８】
前記受信されたイメージ更新が、クライアント・デバイスの前記現在可視の領域内に表示されている前記イメージに対する変更を示さないと判断されれば、前記イメージ更新は、当該クライアント・デバイスに送信されない、請求項７に記載の方法。
【請求項９】
前記複数のクライアント・デバイスと共有されている前記イメージは、複数のフラグメントから成り、前記受信されたイメージ更新が、前記クライアント・デバイスのうちの１つの前記現在可視の領域内に表示されている前記イメージ内の重なり合う領域または隣接した境界を有する２つ以上のフラグメントに対する変更を表すと判断されれば、その結果、前記イメージ更新は、重なり合う領域または隣接した境界を有する前記２つ以上のフラグメントを表すマージされたフラグメントとして前記クライアント・デバイスに送信される、請求項７に記載の方法。
【請求項１０】
クライアント・デバイスから、当該クライアント・デバイスの前記現在可視の領域のパラメータに対する更新を、前記ネットワーク・サーバにて受信するステップと、
前記受信されたパラメータ更新を、前記ネットワーク・サーバにて記憶するステップと、
前記更新されたパラメータに基づき、当該クライアント・デバイスに新たなイメージ更新を送信するステップと、
をさらに含む、請求項７に記載の方法。
【請求項１１】
前記新たなイメージ更新は、前記ネットワーク・サーバにて記憶されていて前記更新されたパラメータに基づいて選択される前記イメージの１つのバージョンから取得される、請求項８に記載の方法。
【請求項１２】
前記ネットワーク・サーバは、前記複数のクライアント・デバイスそれぞれの前記現在可視の領域のパラメータを記憶し、前記パラメータは、前記クライアント・デバイスの解像度レベルと、前記イメージのうち前記クライアント・デバイスにて可視の部分の識別とを含む、請求項７に記載の方法。
【請求項１３】
前記サーバから前記クライアント・デバイスにイメージ更新を送信する前記ステップは、ロング・ポーリング技術に基づく、請求項７に記載の方法。
【請求項１４】
前記モバイル電子デバイスの前記可視の領域の、１つ以上のパラメータに対する変更を、前記モバイル電子デバイスのユーザから受け取るステップと、
前記モバイル電子デバイスの前記現在可視の領域の現在の前記パラメータの更新を、前記ネットワーク・サーバに送信するステップと、
をさらに含む、請求項７に記載の方法。
【請求項１５】
前記現在可視の領域に対する、前記ユーザから受け取られる前記変更は、前記表示されているイメージへのズーム、または前記ネットワーク・サーバにて維持されている前記イメージの或る部分であって、前記モバイル電子デバイスにて現在表示されている前記イメージとは異なる、前記部分へのパニングのうちの１つである、請求項１４に記載の方法。
【請求項１６】
モバイル電子デバイスとイメージを共有するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、
コンピュータ可読記憶媒体により具現化されたコンピュータ可読プログラム・コードを有する、前記コンピュータ可読記憶媒体
を含み、前記コンピュータ可読プログラム・コードは、
イメージを共有している複数のクライアント・モバイル電子デバイスの現在の解像度レベルおよび現在可視の領域の記録を保持するよう構成されたコンピュータ可読プログラム・コードと、
前記共有されているイメージに対する変更を検出し、それに応答して、同じ前記解像度レベルの前記変更であって、前記クライアント電子デバイスの現在可視の領域内の前記変更のみを、各クライアント・モバイル電子デバイスに送信するよう構成されたコンピュータ可読プログラム・コードと、
クライアント・モバイル電子デバイスから、新たな現在の解像度レベルまたは現在可視の領域を含むパラメータを受信するよう構成されたコンピュータ可読プログラム・コードと、
を含む、コンピュータ・プログラム製品。
【請求項１７】
前記コンピュータ可読プログラム・コードは、クライアント・モバイル電子デバイスの新たな現在の解像度レベルまたは現在可視の領域を含む前記受信されたパラメータに基づき、イメージ更新が前記クライアント・デバイスに送信されるべきであると判断して、当該イメージ更新を前記クライアント・デバイスに送信するためのコンピュータ可読プログラム・コードをさらに含む、請求項１６に記載のコンピュータ・プログラム製品。
【請求項１８】
前記コンピュータ可読プログラム・コードは、前記クライアント・モバイル電子デバイスと同じ前記現在の解像度レベルの変更であって、前記クライアント・モバイル電子デバイスの前記現在可視の領域内の前記変更のみを、前記クライアント・モバイル電子デバイスに送信するためのコンピュータ可読プログラム・コードをさらに含む、請求項１６に記載のコンピュータ・プログラム製品。
【請求項１９】
前記コンピュータ可読プログラム・コードは、変更されたイメージが、クライアントの前記現在可視の領域と、非閲覧領域とにまたがるかどうかを判断し、そうであれば、前記イメージのうち、前記現在可視の領域内の部分のみが前記クライアント・モバイル電子デバイスに送信されるように、前記イメージを切り抜くためのコンピュータ可読プログラム・コードをさらに含む、請求項１６に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、変化するイメージをクライアント・デバイスとネットワーク上で共有することに関し、特に、動的イメージをリモート・ネットワーク・サーバからクライアント・デバイスにネットワーク上で配布することに関する。
【背景技術】
【０００２】
モバイル電子デバイス（例えば、モバイル／セルラ／スマート・フォン、携帯情報端末（ＰＤＡ：Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、マイクロ・コンピュータ、ハンドヘルド・コンピューティングおよびゲーム用デバイス、ならびに同様のもの）の使用は激増してきている。こうしたモバイル電子デバイスは、次第に複雑になってきた。こうしたモバイル電子デバイスがサポートおよび実装するアプリケーションの数およびタイプは膨大であり、その増加は続くと考えられる。アプリケーションの種類の１つは、イメージ・ホストから、完全なイメージまたは部分的なイメージを、これらのイメージを表示する複数のモバイル・クライアント・デバイスに、セルラ・ネットワーク上で連続的に配布することに関係する。
【０００３】
こうしたモバイル電子デバイスのサイズは、その機動性を向上させるために、従来のラップトップおよびデスクトップ・コンピュータと比較して相対的に小さく、これがそのディスプレイ画面のサイズを制限する制約ともなっている。こうしたモバイル電子デバイス上でアプリケーションを動作させるために、ユーザは、大きなイメージの特定の部分的領域の詳細を特定して示すべく、ズーミングおよびパニングなどのイメージ・ナビゲーション機能に頼ることもある。モバイル・システムは、ユーザによるズーム・イン・アクティビティを可能にするために、高解像度のイメージをダウンロードすることもある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
モバイル・デバイス・ユーザは、リモート・サーバから提供される動的に変化するイメージを閲覧し、それと対話することもできる。この種類のアプリケーションの例として、リモート・デスクトップ・アプリケーションがあり、このアプリケーションでは、変化する画面イメージの更新が、完全なイメージまたは部分的なイメージの形式でサーバから動的に送信され、クライアント・デバイス上で受信および表示される。例えば、イメージは、リモート・ネットワーク・サーバに接続されているイメージ・ホスト上で再生中の、円グラフを示すスライドであることもある。このイメージは、イメージ・ホストのユーザが、そのカーソルを画面の別の部分に移動させるか、または新たなスライドへ移動させると変化することもあり、別の部分へ移動させた場合は、イメージの一部のみが変化し、新たなスライドへ移動させた場合は、イメージ全体が変化することもある。モバイル・デバイスに配布されるイメージは、イメージが時間とともに変化し得る場合、動的であると言える。
【課題を解決するための手段】
【０００５】
本発明の実施形態は、モバイル電子デバイスとイメージを共有するためのネットワーク・サーバを提供し、ネットワーク・プロセッサは、１つ以上のプロセッサと、イメージ共有クライアント・アプリケーションと、イメージ配布アプリケーション（ｉｍａｇｅ  ｄｉｓｔｒｉｂｕｔｉｏｎ  ａｐｐｌｉｃａｔｉｏｎ）とを有する。イメージ共有クライアント・アプリケーションは、ネットワーク上でモバイル電子デバイスと共有されているイメージに対する更新を受信するためにプロセッサのうちの１つ以上で実行されるとよく、各モバイル電子デバイスは、それ自体の現在のズーム・レベルと、それ自体のイメージの現在可視の領域（ｖｉｓｉｂｌｅ  ａｒｅａ）とを有する。イメージ配布アプリケーションは、複数のモバイル電子デバイスそれぞれに関して、現在のズーム・レベルおよび現在可視の領域の記録を保持し、モバイル電子デバイスの現在のズーム・レベルおよび現在閲覧可能な領域（ｖｉｅｗａｂｌｅ  ａｒｅａ）に基づき、複数のモバイル電子デバイスにイメージ更新を選択的に送信するために、プロセッサのうちの１つ以上で実行されるとよい。
【０００６】
本発明を、その他の特徴および利点、ならびにさらなる特徴および利点とともにより深く理解するために、以下の説明が参照される。以下の説明は、添付の図面と併せて解釈され、本発明の範囲は、添付の特許請求の範囲において指摘される。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施形態による、変化するイメージの更新をモバイル・デバイスに配布するシステムを示すブロック図である。
【図２】本発明の実施形態による、イメージを表示しているイメージ・ホストと、そのイメージの一部を表示しているモバイル通信デバイスとのブロック図である。
【図３】本発明の実施形態による、ネットワーク・サーバのブロック図である。
【図４】本発明の実施形態による、現在の閲覧ステータス・データの例示的なテキスト・フォーマット、および現在の閲覧領域と、完全なイメージとの対応する相対位置を示すブロック図である。
【図５】本発明の実施形態による、組み合わされたプッシュ・アンド・プル方法を使用したクライアントへのイメージの配布を示すブロック図である。
【図６】本発明の実施形態による、クライアントにイメージを配布するプッシュ方法を示す流れ図である。
【図７】本発明の実施形態による、クライアントにイメージを配布するプル方法を示す流れ図である。
【発明を実施するための形態】
【０００８】
当然のことながら、本願明細書において、全般的に記載され図面に示されている本発明のコンポーネントは、記載されている現在好適な実施形態に加えて、幅広い種々の構成で配置および設計されてよい。したがって、以下の、図面に表されている本発明の実施形態のより詳細な説明は、請求される本発明の範囲を限定することは目的としておらず、本発明の現在好適な選択された実施形態を代表するにすぎない。以下の記載は、例としてのみ意図されており、単に、本願明細書において請求される本発明の現在好適な選択された特定の実施形態を示す。
【０００９】
本発明の実施形態は、携帯情報端末またはセルラ・フォンなど、相対的に小さな画面を備えたモバイル・デバイスに、変化するイメージの更新を配布することを対象とする。本発明は、ユーザ・エクスペリエンスを改善するために、モバイル・デバイス上のアプリケーションのユーザが、より少ないネットワーク遅延で共有イメージの更新を閲覧できるようにする方法を提供する。本発明の実施形態は、イメージがネットワーク・サーバから動的に配布される、イメージをモバイル電子デバイスに配布する改善された方法を広く意図する。便宜上、変化するイメージをモバイル電子デバイスに配布することを必要とするアプリケーションを、動的に変化するイメージを用いるアプリケーションと呼ぶ。本発明の改善は、高解像度のイメージ（例えば、１４００×１０４０画素解像度）を、表示可能な画素解像度に関して相対的に小さい画面サイズ（例えば、４８０×３２０画素解像度）を備えるモバイル電子デバイスに配布する、変化するイメージのアプリケーションにおいて最も顕著になる。
【００１０】
小さなモバイル・デバイス画面から、高解像度で視覚的な詳細を閲覧するために、ユーザは、ズーミングおよびパニング機能を使用して、大きなイメージ上の詳細な情報をナビゲートして特定することもできる。ズーム・インすることによって、モバイル・クライアントのより小さな画面は、イメージ全体のより小さな領域のみをカバーする。パニングしていくことで、モバイル・クライアントのディスプレイ上に現在示されているイメージの領域が変更される。したがって、複数のモバイル・クライアントが高解像度のイメージを共有しているシステムでは、これらモバイル・クライアントそれぞれが、イメージの異なる領域を表示することもある。モバイル・デバイスの小さな画面は、イメージ・ホストによって共有される完全なイメージのうち、常に部分的な部分しかカバーしないことがあるため、共有イメージの新たな更新は、モバイル・デバイスのディスプレイ画面によってカバーされている領域の中または外のいずれかに入ることもある。本発明の実施形態では、モバイル・デバイスのディスプレイ画面内に入る更新のみが、そのモバイル・デバイスに送信される。結果として、モバイル・デバイス画面を更新するためのデータ伝送のサイズを、すべての更新がモバイル・デバイスに伝送される手法のものよりも小さくすることができる。したがって、ユーザは、リモート・イメージ・ホストによって共有されるイメージに対する変更を閲覧する際に、より速い応答時間を体験することもできる。
【００１１】
本発明の実施形態は、新たなイメージ（完全なイメージまたは部分的な更新イメージとすることができる）を、イメージ・ホスト（リモート・デスクトップ・ホスト・コンピュータ、または画面のイメージが共有されるコンピュータ、またはその個別のプロキシ・サーバなど）から受信する、ネットワーク・サーバのアプリケーションを提供する。この実施形態によれば、続いてネットワーク・サーバは、各モバイル・クライアントに関して、受信された新たなイメージ内で当該モバイル・クライアントそれぞれに送信される個別の領域を判断する。本発明の実施形態では、更新イメージ内のどの領域が特定のモバイル・クライアントに送信されるかを判断する要素は、モバイル・クライアントのディスプレイ画面が現在カバーしている、完全なイメージ上の可視の領域に基づく。
【００１２】
本発明のズーム・レベルの側面は、クライアントが、モバイル・デバイスの小さな画面に十分な解像度で更新イメージを読み出すための方法を提供し、その一方で、更新イメージのサイズを改善することによりネットワーク遅延を軽減する。より高いズーム・レベルは、より高い解像度のイメージに関連する。本発明の実施形態では、クライアント・デバイスは、イメージ全体をカバーする閲覧領域を備えるが最低ズーム・レベル（すなわち、ズーム・レベル＝０）となる、初期の共有イメージを受信する。クライアント・デバイスは、クライアント・デバイスのユーザが、イメージのさらなる詳細を閲覧するためにズーム・インすると、ズーム・レベルを上げる。ズーム・インすることによって、クライアント・デバイスは、より高い解像度であるがより小さい閲覧領域を備えるイメージをリクエストするが、これは、より小さい閲覧領域は、完全なイメージのサイズに対して相対的に、完全なイメージ内で小さくなるためである。どの時点でも、伝送されるイメージは、より大きな閲覧領域をカバーするより低い解像度のイメージ、またはより小さな閲覧領域をカバーするより高い解像度のイメージのいずれかであり、過度なサイズのイメージ・データ（すなわち、大きな閲覧領域をカバーする高解像度のイメージ）を伝送する必要性を削減する。例えば、典型的なＰｏｗｅｒＰｏｉｎｔ（Ｒ）スライドのイメージを表すデータのサイズは、約１３３キロバイト（ＫＢ：Ｋｉｌｏｂｙｔｅ）で１１５０×８６０画素の解像度〜約６６ＫＢで７２０×５４０画素の解像度の範囲であることもある。
【００１３】
一部の実施形態では、ネットワーク・ゲートウェイ・サーバは、任意の所与のイメージ読み出しのネットワーク負荷を最適化し、それによって、リモート・ホストにより提供される動的に変化する高解像度イメージを、より流動的な形で、ユーザが閲覧し、それと対話することを可能にする。ネットワーク・サーバのサーバ・エージェントは、各クライアント・デバイスの現在のズーミング・レベルおよびイメージ内の可視の領域を追跡するとよい。サーバのイメージ配布エージェントは、続いて、クライアント上のイメージの現在閲覧可能な領域およびズーム・レベルに基づいて、イメージの最近の変更を送信することによって、クライアント・デバイス上のイメージを更新するとよい。一部の実施形態では、もとの高解像度のイメージが、異なるレベルの解像度に変換されるが、これは、より低い解像度のイメージは、サイズがより小さく、したがってデバイスにより高速に伝送できるためである。システムは、変更されたイメージ・タイル（ｉｍａｇｅ  ｔｉｌｅ）をイメージ・ホストから受信すると、それらを前述の異なるレベルの解像度に変換する。本開示の方法を使用すると、モバイル・クライアントは、画面の解像度に正確に、またはほぼ一致した解像度のイメージのみをダウンロードし、したがって、長いネットワーク遅延を招く高解像度イメージを常にダウンロードする必要がなくなる。
【００１４】
実施形態では、各クライアントに関して、システムは、その現在の閲覧解像度レベルと、同じ解像度レベルのターゲット・イメージ上にマップされた閲覧領域（閲覧ボックス（ｖｉｅｗｉｎｇ  ｂｏｘ）としても既知である）とを追跡する。システムは、新たなイメージ変更を検出すると、同じ解像度レベルでありクライアントの閲覧ボックス内にある変更のみを、各クライアントに送信するとよい。ユーザがズーミングまたはパニング機能を実行すると、最新の解像度レベルおよび閲覧ボックスを含む新たなパラメータが、リモート・ネットワーク・サーバに送信される。
【００１５】
これらの実施形態によれば、ゲートウェイ・システムは、リアルタイムの動的に変化するイメージ（例えば画面共有）を提供するイメージ・ホストに接続するためのクライアント・リクエストを受ける。各動的イメージをイメージ・ホストから受信すると、ゲートウェイは、変換を実行して、それぞれ異なるレベルの解像度に対応する複数イメージを作成して、各クライアントへの接続を維持し、プッシュおよびプル両方の機能を可能にする。プッシュ機能は、ゲートウェイが新たな変更をクライアントにプッシュできるようにする一方、プル機能は、クライアントがその状態をゲートウェイに記憶できるようにする。クライアント・デバイスのステータスは、その現在閲覧中の解像度レベルと、現在の解像度レベルのイメージ内の閲覧領域とであってもよい。ゲートウェイは、新たなイメージ変更をイメージ・ホストから受信すると、その変更を待っている各クライアントに対してプッシュ機能を実行するとよい。待っているクライアントそれぞれに関して、ゲートウェイは、最新の閲覧解像度レベルおよび閲覧領域を読み出し、閲覧領域内の同じ解像度レベルの変更のみを、クライアントに送信するとよい。変更イメージが、クライアントの閲覧領域および非閲覧領域にまたがる場合、ゲートウェイは、閲覧領域内の部分が送信されるように、イメージを切り抜くとよい。
【００１６】
図１は、本発明の実施形態による、変化するイメージの更新をモバイル・デバイスに配布するシステムを示すブロック図である。図のように、ネットワーク・サーバ１２０が、外部イメージ・ホスト１１０およびネットワーク１３０に結合されており、ネットワーク１３０は、例えば、セルラ通信ネットワーク、イントラネット、公衆インターネット、またはこれらの何らかの組み合わせとしてよい。図１に示されているように、ネットワーク１３０は、複数の通信デバイス１３７〜１３９を含む（モバイル／セルラ／スマート・フォン、ＰＤＡ、マイクロ・コンピュータ、ハンドヘルド・コンピューティングおよびゲーム用デバイス、ならびに同様のものなどのモバイル電子デバイスとしてよい）。例えば、デバイス１３７〜１３９は、Ｒｅｓｅａｒｃｈ  Ｉｎ  Ｍｏｔｉｏｎ製のＢｌａｃｋＢｅｒｒｙ（Ｒ）ワイヤレス・ハンドヘルド・デバイス、もしくはＰａｌｍ，Ｉｎｃ．製のＰａｌｍ  Ｔｒｅｏ（Ｒ）スマート・フォン、またはその両方としてもよい。ネットワーク・サーバ１２０は、外部ネットワークからイメージ・ホストを分離するため、ゲートウェイ・サーバまたはゲートウェイ・ネットワーク・サーバと呼ばれ得る。
【００１７】
ネットワーク・サーバ１２０は、パーソナル・コンピュータ、ワークステーション、ラップトップ・コンピュータなどのネットワーク・リソースを管理する任意のタイプのコンピューティング・デバイスとしてよい。イメージ・ホスト１１０は、画面共有またはリモート・デスクトップ・アプリケーションなどのイメージを映すアプリケーションをホストする任意のタイプのコンピューティング・デバイスとしてよく、このアプリケーションでは、変化する画面イメージの更新が、完全なイメージまたは部分的なイメージの形式でサーバから動的に送信され、クライアント上で受信および表示される。ネットワーク１３０は、任意のタイプのネットワークとしてよく、イントラネット、公衆インターネット、セルラ・ネットワーク、ローカル・エリア・ネットワーク、広域ネットワーク、仮想プライベート・ネットワークなどを含んでよい。一部の実施形態では、サーバ１２０は、高速ネットワーク接続を介して外部イメージ・ホスト１１０に接続するが、他の実施形態では、本発明のサーバ１２０およびイメージ・ホスト１１０は、どちらも同じコンピューティング・デバイスに存在してもよい。あるいは、イメージ・ホスト１１０が、本発明のサーバ１２０と、第３のプロキシ・サーバを介して通信できるという応用も可能である。
【００１８】
図１に示されている例では、イメージ・ホスト１１０は、Ｌｏｔｕｓ（ＩＢＭ社の登録商標）Ｆｒｅｅｌａｎｃｅ（Ｒ）またはＭｉｃｒｏｓｏｆｔ（Ｒ）ＰｏｗｅｒＰｏｉｎｔ（Ｒ）プレゼンテーションのスライド上の円グラフなどのチャート９を含むイメージ１０を表示している。説明のために、イメージ１０は、４つのイメージ・タイルに分割されて示されている。より典型的には、イメージ１０は、４４×３３のグリッドに配列された１４５２のタイルなど、より多くの数のタイルに分割されることになるであろう。本発明の実施形態では、イメージ・ホスト１１０にて表示されているイメージ１０が、プレゼンテーションを制御している人などのイメージ・ホスト１１０のユーザによって変更されると、イメージ・ホスト１１０は、ネットワーク・サーバ１２０にイメージ更新を送信する。イメージ更新は、イメージ・タイルの形式とすることができ、それぞれが、もとの完全なイメージの小さな長方形または正方形の領域である。イメージ・ホスト１１０によってサーバ１２０に送信される最初の完全なイメージは、完全なイメージのすべてのイメージ・タイルを含むイメージ更新としてモデル化され得る。当業者には当然のことながら、イメージは、画素のマトリクスとして、またはポータブル・ネットワーク・グラフィック（ＰＮＧ：Ｐｏｒｔａｂｌｅ  Ｎｅｔｗｏｒｋ  Ｇｒａｐｈｉｃ）フォーマットまたはＭＰＥＧ−３もしくはＭＰＥＧ−４フォーマットを使用して記憶および伝送され得る。
【００１９】
図１に示されているように、サーバ１２０は、イメージ・ホスト１１０から更新イメージを受信すると、それぞれ異なるズーム・レベル（それぞれ０、１、２）の複数のイメージ・バージョン１０ａ、１０ｂ、１０ｃを作成および記憶する。これらのイメージは、ネットワーク・サーバ１２０のメモリに記憶されるとよく、それぞれ異なるズーム・レベルのイメージ１０の様々なバージョンを表す。本発明の実施形態では、イメージ１０が更新されたという指示をイメージ・ホスト１１０がサーバ１２０に送信すると、ネットワーク・サーバ１２０に記憶されているイメージ・バージョン１０ａ〜１０ｃが更新される。イメージ更新の例は、画面共有モードのイメージ・ホスト・デバイスにて表示されているプレゼンテーションの変更であってもよい。示されている実施形態では、ズーム・レベル０のイメージ１０ａは、更新されてイメージ・ホスト１１０からサーバ１２０によって受信されたとおりの、もとのイメージを表す。次のズーム・レベル１のイメージ更新１０ｂは、１０ａよりも１段階低い解像度の更新イメージを表す一方で、ズーム・レベル２のイメージ更新１０ｃは、１０ｂよりも１段階低い解像度の更新イメージを表す。例として、ズーム・レベル０は４８０×３２０画素の解像度であってもよく、レベル１は６００×４００画素であってもよく、レベル２は７２０×４８０画素であってもよい。ズーム・レベルの数および２つの隣接したズーム・レベル間の解像度の差は、本発明の特定の実施形態に関して事前設定されるとよい。本発明の好適な実施形態では、イメージ更新の様々なバージョン１０ａ〜１０ｃが、記憶および読み出しの効率を最大化するよう、メイン・メモリに記憶されることが可能である。あるいは、それらがディスクに記憶される可能性もあるが、記憶および読み出しの効率は劣ることになる。
【００２０】
図１に例示したように、クライアント・モバイル・デバイス１３７〜１３９は、ネットワーク１３０を介してサーバ１２０に接続されるとよく、このネットワーク１３０は、上記のように、セルラ・ネットワーク接続であってもよい。図１は、クライアント・モバイル・デバイス１３７〜１３９の３つの例を示すが、実際の数は、いくつのクライアント・モバイル・デバイスがクライアント・アプリケーションをインストールしたか、さらにそのうちいくつが任意の時点にサーバ１２０に接続されるかによって決まる。図１に示されているように、モバイル・デバイスはそれぞれ、イメージ１０などのイメージを表示するために使用され得る画面１４７〜１４９を有する。
【００２１】
示されている実施形態では、ネットワーク・サーバ１２０はイメージ配布アプリケーション１４０を含み、これは、ネットワーク・サーバ１２０のプロセッサ上で実行されるソフトウェア・アプリケーションであるとよい。イメージ配布アプリケーション１４０は、デバイス１３７〜１３９と共有されるイメージをイメージ・ホスト１１０から受信するとよく、そのイメージを、ネットワーク・メッセージ１０７〜１０９として当該デバイスに送信するとよい。続いてイメージ配布アプリケーション１４０は、そのイメージに対する更新をイメージ・ホスト１１０から受信するとよく、同じくネットワーク・メッセージ１０７〜１０９として図１に示されているように、そのイメージ更新を当該デバイスに送信するとよい。さらに、モバイル・デバイス１３７〜１３９は、その現在の閲覧ステータス・データを、ネットワーク・メッセージ１２７〜１２９としてサーバ１２０へ送信するとよい。現在の閲覧ステータス・データは、拡張マークアップ言語（ＸＭＬ：Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）ファイルに含まれてもよい。モバイル・デバイス１３７〜１３９から、個別の現在の閲覧ステータス・データに対する変更を受信すると、それをサーバ１２０は、後で読み出すために、現在の閲覧領域パラメータ１２５として記憶（すなわち記録）する。サーバ１２０がイメージ・ホスト１１０から新たなイメージ更新を受信すると、サーバ１２０は、イメージを共有しているデバイスによって使用され得る異なる解像度を反映するように、新たなイメージ更新の複数バージョン１０ａ〜１０ｃを作成する。続いてサーバ１２０は、記憶されている現在の閲覧領域パラメータ１２５に基づき、モバイル・デバイス１３７〜１３９の現在のズーム・レベルのイメージ更新であって、当該モバイル・デバイスの現在の閲覧領域内のイメージ更新をそれぞれ判断する。各モバイル・クライアントの適切なイメージ更新が判断された後、サーバ１２０は、それらを表示用に各モバイル・クライアントに送信する。
【００２２】
図２は、本発明の実施形態による、イメージを表示しているイメージ・ホストと、そのイメージの一部を表示しているモバイル通信デバイスとのブロック図である。図２は、モバイル／セルラ／スマート・フォン、および同様のものなどのモバイル電子デバイス１３７の簡略図を示し、図１のモバイル電子デバイス１３７のさらなる詳細を含む。モバイル電子デバイス１３７は、図１に記載されているものなどの、本願明細書に記載されている機能性を実行するのに必要な構造上のコンポーネントを含む。本記載から明らかなように、本発明は、本願明細書に記載されているように適切に構成された任意の電子デバイスに当てはまる。
【００２３】
図２の実施形態では、図１を参照して説明したように、モバイル電子デバイス１３７は、ネットワーク・サーバ１２０と通信するとよく、さらにネットワーク・サーバ１２０は、イメージ・ホスト１１０と通信するとよい。同じく上記で説明したように、イメージ・ホスト１１０は、図２において、チャート９を含むイメージ１０を表示するように示されている。チャート９の各部分は、イメージ１０の異なる象限、すなわちタイルにおいて表示され、その結果、チャート９のほぼ４分の１が、イメージ１０の４つの象限それぞれに表示される。
【００２４】
図２のモバイル電子デバイス１３７は、ディスプレイ１４７、プロセッサ２２０、モバイル通信モジュール２３０、イメージ・ナビゲーション・アプリケーション２１０、およびイメージ配布クライアント２５０を含むように示されている。プロセッサ２２０は、デバイス１３７の動作を駆動する命令を処理する回路であるとよく、例えば、ＡＲＭ  Ｌｉｍｉｔｅｄによって開発されたＡＲＭ３２ビットＲＩＳＣ命令セット・アーキテクチャ（ＩＳＡ：ｉｎｓｔｒｕｃｔｉｏｎ  ｓｅｔ  ａｒｃｈｉｔｅｃｔｕｒｅ）に準拠するプロセッサとしてもよい。モバイル通信モジュールは、セルラ局とワイヤレス・ネットワーク上で通信するのに使用されるソフトウェアもしくはハードウェアまたはその両方を含んでもよい。図示されていないが、デバイス１３７はさらに、キーパッドまたはキーボード、タッチ・パッドなどを含むがこれらに限定はされない、多種多様なユーザ・インターフェイスのうちのいずれかであればよいユーザ・インターフェイスも含むとよい。ユーザ・インターフェイスはさらに、人気のある「タッチ・スクリーン」実装など、ディスプレイ画面１４７と一体化されていてもよい。通信モジュール２３０は、本願明細書に記載されているように、頻繁なイメージ更新などのネットワーク通信の伝送および受信を促進する。したがって、モバイル電子デバイス１３７は、オペレーティング・システム、ならびに本願明細書に記載されているようにネットワーク接続（例えば、ワイヤレス・インターネット接続）を介してリモート・デバイスと通信するため、ならびにページをダウンロード、表示、操作、および修正するために構成された適切なハードウェア・コンポーネントを使用できる。
【００２５】
イメージ・ナビゲーション・アプリケーション２１０は、デバイス１３７のユーザが、パニングまたはズーミングなどによって、ディスプレイ１４７上に表示されているイメージ内をナビゲートできるようにするソフトウェアであるとよい。イメージ・ナビゲーション・アプリケーション２１０は、ユーザがデバイス１３７上で実行されているアプリケーションと相互作用できるようにする、一般的なユーザ・インターフェイス・アプリケーションの一部としてよい。イメージ配布クライアント２５０は、デバイス１３７の現在の閲覧領域パラメータを、ネットワーク・サーバ１２０、および特にイメージ配布アプリケーション１４０に提供するソフトウェアであるとよい。例えば、デバイス１３７のユーザが、現在表示されているイメージをパニングするか、またはそのズームを変更すると、イメージ配布クライアント２５０はネットワーク・サーバ１２０に、新たな現在の閲覧領域パラメータを提供するとよい。それに応答して、ネットワーク・サーバ１２０は、そのデータベース内に、デバイス１３７の現在の閲覧領域パラメータを記憶するとよく、パニングされた先のイメージの部分、または所望の新たな解像度のイメージを、デバイス１３７に送信するとよい。イメージ・ナビゲーション・アプリケーション２１０およびイメージ配布クライアント２５０は、プロセッサ２２０によって実行されるソフトウェアとしてもよい。
【００２６】
図２に示されているように、モバイル電子デバイス１３７のディスプレイ１４７は、部分的なチャート９ａを表示している。この例では、部分的なチャート９ａは、イメージ・ホスト１１０にてイメージ１０において示されているチャート９の右上部分である。この例では、デバイス１３７のユーザは、ディスプレイ１４７上でイメージ１０を閲覧していたと考えられ、続いて、イメージの詳細を見るためにズーム・インして、ディスプレイ１４７上に部分的なチャート９ａのみが示されるように、上側の角へパニングしたと考えられる。図２に示されている機能に加えて、モバイル電子デバイス１３７はさらに、追加のプロセッサ、読み取り専用メモリ（ＲＯＭ：Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）およびランダム・アクセス・メモリ（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのメモリ、ならびに１つ以上のバスなどの追加の構成要素を含んでもよい。
【００２７】
図３は、本発明の実施形態による、ネットワーク・サーバのブロック図である。具体的には、図３は、図１のネットワーク・サーバ１２０のさらなる詳細を示す。図３に示されているように、ネットワーク・サーバ１２０は、プロセッサ（単数または複数）３２０、メモリ３３０、プレゼンテーション・アプリケーション３１５、イメージ共有アプリケーション３１７、イメージ配布アプリケーション１４０、グラフィックス・アダプタ３６０、ディスプレイ３６５、およびネットワーク通信モジュール３５０を含む。システム・プロセッサ（単数または複数）３２０は、１つ以上の汎用プロセッサ（単数または複数）であってもよく、Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎまたはインターナショナル・ビジネス・マシーンズ・コーポレーションによって生産されているプロセッサのうちの１つを含んでもよい。プロセッサ（単数または複数）３２０は、ＲＯＭおよびシステム・メモリ（ＲＡＭ）に、プロセッサ・バスによって結合されているとよく、システム・メモリに記憶されたオペレーティング・システムおよびアプリケーション・ソフトウェアの制御下でアプリケーション・プログラムを実行してもよい。ネットワーク・サーバ１２０はさらに、ネットワーク・アダプタなど、バス、アダプタ、およびブリッジを含むいくつかの他のデバイスを含んでもよく、これが、ローカル・エリア・ネットワークにインターフェイスで接続して、次にローカル・エリア・ネットワークがセルラ・ネットワークもしくはインターネットまたはその両方などの他のネットワークに結合されてもよい。図３では、ネットワーク通信モジュール３５０は、ネットワーク・サーバ１２０と、図１のネットワーク１３０などの外部ネットワークとの間の通信のためのソフトウェアもしくはハードウェアまたはその両方を含む。
【００２８】
ネットワーク・サーバ１２０はさらに、ネットワーク・サーバ１２０をディスプレイ３６５にインターフェイスで接続するグラフィックス・アダプタ３６０を含むこともできる。図３に示されているように、ディスプレイ３６５は、図１のイメージ１０を表示している。ネットワーク・サーバ１２０は、ネットワーク１３０などのネットワークおよびイメージ・ホスト１１０などのデバイスと通信するために１つ以上の入力ポートを含むとよい。ネットワーク・サーバ１２０はさらに、ネットワーク・サーバ１２０と、キーパッド、タッチ・パッド、およびディスク・ドライブなどの接続された周辺デバイスとの通信を制御する、入出力（Ｉ／Ｏ：ｉｎｐｕｔ／ｏｕｔｐｕｔ）コントローラを含んでもよい。さらに、シリアルおよびパラレル・ポートを介したネットワーク・サーバ１２０による外部通信をサポートするＩ／Ｏコントローラが含まれてもよい。
【００２９】
図３に示されているように、メモリ３３０は、図１を参照して上述されている、現在の閲覧領域パラメータ１２５およびイメージ・バージョン１０ａ〜１０ｘを記憶する。メモリ３３０は、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭ（ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）もしくはフラッシュ・メモリ）、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、光学式記憶デバイス、磁気記憶デバイスまたは前述のものの任意の適切な組み合わせなど、任意のタイプのコンピュータ可読記憶媒体としてよい。実施形態では、プレゼンテーション・アプリケーション３１５、イメージ共有アプリケーション３１７、およびイメージ配布アプリケーション１４０は、メモリ３３０に記憶されているソフトウェア命令から成り、プロセッサ（単数または複数）３２０によって実行されるとよい。プレゼンテーション・アプリケーション３１５は、ディスプレイ画面上で閲覧され得るイメージを提示する、Ｌｏｔｕｓ（ＩＢＭ社の登録商標）Ｆｒｅｅｌａｎｃｅ（Ｒ）またはＭｉｃｒｏｓｏｆｔ（Ｒ）ＰｏｗｅｒＰｏｉｎｔ（Ｒ）などのアプリケーションとしてよい。イメージ共有アプリケーション３１７は、会議のすべての参加者が、そのそれぞれのディスプレイ画面上で同時に同じプレゼンテーションを閲覧できるように、１人のユーザが、そのユーザの画面をセッションの他の参加者と共有できるようにする、Ｌｏｔｕｓ（ＩＢＭ社の登録商標）Ｓａｍｅｔｉｍｅ（ＩＢＭ社の登録商標）Ｕｎｙｔｅ（ＩＢＭ社の登録商標）またはＭｉｃｒｏｓｏｆｔ（Ｒ）ＮｅｔＭｅｅｔｉｎｇ（Ｒ）などのアプリケーションとしてよい。図１の実施形態は、ネットワーク１２０の外部のイメージ・ホスト１１０を有するが、説明のために、図３に示されている実施形態は、ネットワーク・サーバに含まれたイメージ・ホストの機能性（すなわち、プレゼンテーション・アプリケーション３１５およびイメージ共有アプリケーション３１７の機能性）を有する。上記のように、イメージ配布アプリケーション１４０は、リモート・デバイスと共有されるイメージを受信し、そのイメージをネットワーク・メッセージとして当該デバイスに送信するソフトウェア・アプリケーションであるとよい。イメージ配布アプリケーション１４０は、例えば、以下で図５〜７を参照して記載されるサーバ機能性を実行するとよい。
【００３０】
本発明の好適な実施形態では、イメージ・ホストから受信される更新イメージは、最も高い解像度を表す。イメージ更新を受信すると、その更新の様々なバージョンが作成され、それぞれが、異なるズーム・レベルによって表される異なる解像度を有する。ユーザがイメージでズーム・インすると、クライアント・アプリケーションは、ズーム・レベルを上げる。より高いズーム・レベルは、より高い解像度のイメージに関連する。例えば、クライアントが最初に共有イメージを受信するとき、ズーム・レベルが０（ズーム・インがまだ行われていないことを意味する）である間は、閲覧領域はイメージ全体である。ズーム・レベルが０であるため、クライアントは、最も低い解像度のイメージ全体を受信する。イメージの解像度が低いほど、イメージのサイズは小さい。
【００３１】
図４は、本発明の実施形態による、現在の閲覧ステータス・データの例示的なテキスト・フォーマット、および現在の閲覧領域と、完全なイメージとの対応する相対位置を示すブロック図である。図４は、例示的な現在の閲覧ステータス・データ４０１をＸＭＬフォーマットで示す。ここではＸＭＬフォーマットが示されているが、当業者には当然のことながら、ＪａｖａＳｃｒｉｐｔオブジェクト表記法（ＪＳＯＮ：ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）などの他のフォーマットが使用されてもよい。図４に示されているように、現在の閲覧ステータス・データ４０１に含まれている情報は、４つの整数、すなわちｘＯｆｆｓｅｔ＝６０、ｙＯｆｆｓｅｔ＝４０、ｗｉｄｔｈ＝４８０、およびｈｅｉｇｈｔ＝３２０によってモデル化された、現在閲覧可能な領域を含む。図４の例のｘＯｆｆｓｅｔおよびｙＯｆｆｓｅｔは、完全なマップ上における現在の閲覧領域の、左上角からのｘ軸およびｙ軸の画素オフセットを表す。ｗｉｄｔｈおよびｈｅｉｇｈｔは、閲覧領域の画素数での幅および高さである。現在の閲覧ステータス・データの例４０１に含まれる他の情報には、ｚｏｏｍＬｅｖｅｌ＝２およびｓｅｑＮｕｍｂｅｒ＝２５がある。ｚｏｏｍＬｅｖｅｌの整数は、現在のズーム・レベルを表す一方、ｓｅｑＮｕｍｂｅｒは、現在のズーム・レベルにおける現在の閲覧領域が最後に更新されたのがいつであるかを判断するためにネットワーク・サーバ１２０によって使用されるシーケンス番号を表す。
【００３２】
図４の完全なイメージ４０２は、ズーム・レベル＝２の完全なイメージの解像度（７２０×４８０）を示す。図４内の長方形４０３は、現在の閲覧ステータス・データ４０１のＸＭＬ表現内でモデル化されている現在閲覧可能な領域を示す。ユーザがパニング機能を実行すると、現在閲覧可能な領域４０３は、４０２内の別の位置に移動する。ユーザがズーム・イン機能を実行すると、現在閲覧可能な領域は、より高い解像度を有するｚｏｏｍＬｅｖｅｌ＝３のイメージを表示することになる。ｚｏｏｍＬｅｖｅｌ＝３の新たなイメージに対する相対的な現在閲覧可能な領域４０３のサイズは、小さくなる。ユーザがズーム・アウト機能を実行すると、現在の閲覧領域は、より低い解像度を有するｚｏｏｍＬｅｖｅｌ＝１のイメージを表示することになる。ｚｏｏｍＬｅｖｅｌ＝１の新たなイメージに対する相対的な現在閲覧可能な領域４０３のサイズは、大きくなる。
【００３３】
図５は、本発明の実施形態による、組み合わされたプッシュ・アンド・プル方法を使用したクライアントへのイメージの配布を示すブロック図である。図５に示されているように、プッシュ５３０方法は、ホストのイメージ変更に応答して、クライアント・デバイス１３７の現在の閲覧ステータス・データに基づき、ネットワーク・サーバ１２０がクライアント・デバイス１３７に、動的にイメージ更新１０７（図１に示されている）を送信する、本発明の１つの機能を具現化する。プッシュ方法が機能できるよう、典型的にはネットワーク・サーバ１２０は、クライアント・デバイス１３７とのライブ接続を保つ。これは、ＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ：ハイパーテキスト転送プロトコル）またはＨＴＴＰＳプロトコルを使用するワールド・ワイド・ウェブ（ＷＷＷ：Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）などの既存のクライアント−サーバ・システムでは、サーバは、クライアントのネットワーク・アドレス情報を保持せず、クライアントは、サーバなどの他のホストから接続リクエストを受け取らないためである。サーバがクライアントとのライブ接続を失うと、サーバは、クライアントと別の接続を能動的に確立することはできない。サーバに再接続して新たなライブ接続を確立するかどうかは、クライアント次第である。
【００３４】
しかし、リソースの制約が原因で、ＷＷＷなどの既存のオープン・クライアント−サーバ・システムでは、サーバによって無制限にクライアント−サーバ接続をアライブ（ａｌｉｖｅ）状態に保つことはできず、特定の時間の後に終了する。この制限に対処するために、ＷＷＷオープン・ネットワーク転送プロトコル（すなわちＨＴＴＰ）を使用する本発明の好適な実施形態は、「ロング・ポール」技術を展開してプッシュ接続をアライブ状態に保つことができる。ロング・ポール技術は、例えば、ｈｔｔｐ：／／ｗｗｗ．ｐｅｒｐｌｅｘｅｄｌａｂｓ．ｃｏｍ／２００９／０５／０４／ｐｈｐ−ｊｑｕｅｒｙ−ａｊａｘ−ｊａｖａｓｃｒｉｐｔ−ｌｏｎｇ−ｐｏｌｌｉｎｇ／に記載されており、これをそのまま、参照によって本願明細書に組み込んだものとする。ロング・ポール技術を使用すると、クライアントは、サーバとのハイパーテキスト転送プロトコル（ＨＴＴＰ）接続をオープンする。サーバは、特定の時間、ＨＴＴＰ接続を保つ。そのＨＴＴＰ接続が終了する直前に、クライアントが入手できる新たなイメージ更新がなければ、サーバは応答をクライアントに返送して、別のＨＴＴＰ接続を再びオープンするようクライアントに求める。したがって、サーバが新たな接続を求めるために応答する維持期間中以外は、サーバは常にクライアントとのライブ接続を有し、その間、任意の新たなイメージ更新をクライアントにプッシュ可能である。クライアントは、新たなイメージ更新または接続オープン応答をサーバから受信すると、再びサーバとの新たな接続をオープンして、新たなプッシュ・リンクを確立する。
【００３５】
図５はさらに、クライアント・デバイス１３７が、その新たな現在の閲覧ステータス・データをネットワーク・サーバ１２０に送信する、プル５４０方法を示す。図１の新たな現在の閲覧ステータス・データ・メッセージ１２７がネットワーク・サーバ１２０によって受信されると、サーバは、新たな閲覧領域およびズーム・レベルに基づき、新たなイメージ更新が利用可能であると判断することもある。その場合、続いて新たなイメージ更新１０７が、サーバからクライアントへ送信される。プル方法に関しては、サーバは、延長された期間にわたってクライアントとのライブ接続を維持する必要はない。このタスクを達成するためには、通常のＨＴＴＰ  ＧｅｔまたはＰｏｓｔメソッド呼び出しを使用可能である。
【００３６】
図６は、本発明の実施形態による、クライアントにイメージを配布するプッシュ方法を示す流れ図である。図６に示されているように、ステップ６１０において、サーバは、イメージ・ホストから新たなイメージ更新を受信する。次にステップ６２０において、サーバは、固有のズーム・レベルによってそれぞれ示される別々の解像度を備えた、受信されたイメージ更新の複数のバージョンを作成する。次のステップ６３０において、サーバは、サーバに接続されているすべてのモバイル・クライアントの現在の閲覧ステータス・データを読み出す。次にステップ６４０において、各モバイル・クライアントに関して、サーバは、クライアントの現在の閲覧領域内のイメージ更新のみが使用されるように、クライアントの現在のズーム・レベルと同じズーム・レベルの、適当なイメージ更新を判断する。例えば、受信されたイメージ更新が、クライアント・デバイスの現在可視の領域内に表示されているイメージの変更を示さないと判断されれば、イメージ更新は、そのクライアント・デバイスに送信されないこともあり得るであろう。続いてステップ６５０において、サーバが適切であると判断するイメージ更新が、個別のクライアントに送信される。新たなイメージ更新は、ネットワーク・サーバにて記憶されているイメージの１つのバージョンから取得され、更新されたパラメータに基づいて選択されるとよい。更新は、イメージのフラグメント（すなわちイメージ・タイル）として送信されるとよく、クライアント・デバイスの現在の閲覧領域内のイメージの変更された部分を表す当該フラグメントのみが送信される。実施形態では、受信されたイメージ更新が、クライアント・デバイスのうちの１つの現在可視の閲覧可能な領域内に表示されているイメージ内の重なり合う領域または隣接した境界を有する２つ以上のフラグメントに対する変更を表すと判断されれば、イメージ更新は、重なり合う領域または隣接した境界を有する２つ以上のフラグメントを表すマージされたフラグメントとしてクライアント・デバイスに送信されるとよい。クライアント側では、ステップ６６０において新たなイメージ更新をサーバから受信すると、続いてそれに合わせて、クライアントはステップ６７０においてイメージ更新を表示する。
【００３７】
図７は、本発明の実施形態による、クライアントにイメージを配布するプル方法を示す流れ図である。図７に示されているように、クライアントはまず、ユーザがズーミングまたはパニング・アクションを呼び出したかどうかを検出する（ステップ７１０）。ズーミングまたはパニング・アクションを検出すると、クライアントは続いて、新たな現在の閲覧ステータス・データを計算する（ステップ７２０）。パニング・アクションは、現在の閲覧領域を変更するが、ズーム・レベルは変更しない。ズーミング・アクションは、ズーム・レベルと、現在の閲覧領域との両方を変更すると考えられるが、これは、別のズーム・レベルの新たなイメージ上では、ｘＯｆｆｓｅｔおよびｙＯｆｆｓｅｔ（図４に示されている）が変化すると考えられるためである。
【００３８】
ステップ７２０において、新たな現在の閲覧ステータス・データが計算された後、ステップ７３０においてクライアントは、それをサーバに送信する。サーバは、クライアントから送信された新たな現在の閲覧ステータス・データを受信すると（ステップ７４０）、それを、サーバの内部リポジトリにおいて更新する（ステップ７５０）。次にサーバは、新たに受信された現在の閲覧ステータス・データのズーム・レベルと同じズーム・レベルの適当なイメージ更新を判断し、その結果判断されるイメージ更新は、クライアントの現在の閲覧領域内のイメージ更新のみを含む（７６０）。続いてステップ７７０において、判断されたイメージ更新がクライアントに送信される。
【００３９】
当業者であれば当然のことであるが、本発明の側面は、システム、方法、またはコンピュータ・プログラム製品として具現化され得る。したがって、本発明の側面は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、または本願明細書においてすべて概して「回路」、「モジュール」もしくは「システム」と呼ばれることもある、ソフトウェアおよびハードウェアの側面を兼ね備えた実施形態の形式をとってもよい。さらに、本発明の側面は、図３に示されているメモリ３３０など、コンピュータ可読プログラム・コード（すなわちソフトウェア）が具現化された１つ以上のコンピュータ可読媒体（単数または複数）において具現化されたコンピュータ・プログラム製品の形式をとることもできる。
【００４０】
１つ以上のコンピュータ可読媒体（単数または複数）の任意の組み合わせが利用され得る。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体とされ得る。コンピュータ可読記憶媒体は、例えば、限定はされないが、電子、磁気、光学、電磁気、赤外線、もしくは半導体システム、装置、もしくはデバイス、または前述のものの任意の適切な組み合わせとすることもできる。コンピュータ可読記憶媒体のより具体的な例（包括的でないリスト）には、１つ以上のワイヤを有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、光学式記憶デバイス、磁気記憶デバイスまたは前述のものの任意の適切な組み合わせが含まれるであろう。この文書の文脈では、コンピュータ可読記憶媒体は、命令実行システム、装置もしくはデバイスによって、またはそれに関連して使用されるプログラムを含むこと、または記憶することができる任意の有形の媒体であればよい。
【００４１】
コンピュータ可読信号媒体は、例えば、ベースバンドに、または搬送波の一部として、コンピュータ可読プログラム・コードが具現化された伝播データ信号を含み得る。そのような伝播信号は、電磁気、光学、またはその任意の適切な組み合わせを含むがこれらに限定はされない、様々な形式のいずれかをとってよい。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体でなく、命令実行システム、装置もしくはデバイスによって、またはそれに関連して使用されるプログラムを伝達すること、伝播させること、または搬送することができる、任意のコンピュータ可読媒体としてよい。
【００４２】
コンピュータ可読媒体上に具現化されたプログラム・コードは、ワイヤレス、有線、光ファイバ・ケーブル、ＲＦなど、または前述のものの任意の適切な組み合わせを含むがこれらに限定はされない、任意の適切な媒体を使用して伝送されてもよい。本発明の側面の動作を実行するコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋または同様のものなどのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語などの従来の手続きプログラミング言語を含む、１つ以上のプログラミング言語の任意の組み合わせで書かれていてよい。プログラム・コードは、スタンド・アロン・ソフトウェア・パッケージとして、完全にユーザのコンピュータ上で実行されること、部分的にユーザのコンピュータ上で実行されること、または部分的にユーザのコンピュータ上で、かつ部分的にリモート・コンピュータ上で実行されること、または完全にリモート・コンピュータもしくはサーバ上で実行されることもできる。後者のシナリオでは、ローカル・エリア・ネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、もしくは広域ネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）を含む任意の種類のネットワークを介してリモート・コンピュータがユーザのコンピュータに接続されてもよく、または、外部コンピュータに接続されてもよい（例えば、インターネット・サービス・プロバイダを使用しインターネットを介して）。
【００４３】
本発明の側面について、本発明の実施形態による方法、装置（システム）およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照して以下に記載する。当然のことながら、フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方の複数ブロックの組み合わせは、コンピュータ・プログラム命令により実装可能である。当該コンピュータ・プログラム命令が、マシーンを生じるよう、汎用コンピュータ、専用コンピュータ、またはその他のプログラム可能データ処理装置のプロセッサに提供されて、この命令が、コンピュータまたはその他のプログラム可能データ処理装置のプロセッサを用いて実行されて、フローチャートもしくはブロック図またはその両方のブロックもしくは複数ブロックにおいて指定された機能／動作を実装する手段を作り出すようにすることもできる。
【００４４】
さらに、特定の形で機能するようコンピュータ、その他のプログラム可能データ処理装置、またはその他のデバイスに指示することができる当該コンピュータ・プログラム命令は、コンピュータ可読媒体に記憶されて、コンピュータ可読媒体に記憶されたこの命令が、フローチャートもしくはブロック図またはその両方のブロックもしくは複数ブロックにおいて指定された機能／動作を実装する命令を含む製品を生じるようにすることもできる。
【００４５】
さらに、コンピュータ・プログラム命令は、コンピュータ、その他のプログラム可能データ処理装置、またはその他のデバイスにロードされて、コンピュータ、その他のプログラム可能装置、またはその他のデバイス上で一連の動作ステップが実行されるようにしてコンピュータに実装されるプロセスを生じさせ、コンピュータまたはその他のプログラム可能装置上で実行される命令が、フローチャートもしくはブロック図またはその両方のブロックもしくは複数ブロックにおいて指定された機能／動作を実装するためのプロセスを提供するようにすることもできる。
【００４６】
各図面のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の考えられる実装のアーキテクチャ、機能性および動作を示す。この関連で、フローチャートまたはブロック図内の各ブロックは、指定の論理機能（単数または複数）を実装する１つ以上の実行可能命令を含むモジュール、セグメント、またはコードの一部分を表現することもできる。なお、さらに、いくつかの代わりの実装では、ブロック内に示されている機能が、図面に示されているのとは異なる順序で生じてもよい。例えば、関連する機能性次第で、連続して示されている２つのブロックが実際には事実上同時に実行されてもよく、または、各ブロックが逆順で実行されることがあってもよい。なお、さらに、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方の複数ブロックの組み合わせは、指定の機能もしくは動作を実行する専用ハードウェア・ベース・システム、または専用ハードウェアおよびコンピュータ命令の組み合わせにより実装することができる。
【００４７】
本発明は、リモート・イメージ・ホストによって送信される動的かつ急速に変化するイメージに関するイメージ更新の、適応性のある配布および閲覧の方法を提供する。本発明の実施形態は、最新の閲覧領域ステータスを検出し、それに基づいて、クライアントの現在の閲覧領域内のイメージ更新のみがクライアントに送信されるようにイメージ更新がフィルタリングされる。そのようなフィルタリングは、リアルタイムでクライアントに伝送される必要があるイメージ・オブジェクトのサイズを削減する助けとなる。本発明はさらに、小さな画面上で大きな領域をカバーするイメージを閲覧するときには、低解像度のイメージ更新が送信されて、見やすさを損なうことなくリアルタイム伝送負荷を削減するよう、イメージ更新の様々な解像度の複数のバージョンを作成する。本発明の別の側面は、各クライアントの現在のズーム・レベルの情報を受信するステップと、クライアントによって共有されているイメージの最新の更新をイメージ・ホストから受信するステップと、種々の個別の解像度で、更新イメージの様々なバージョンを作成するステップであって、このバージョンはそれぞれ所定のズーム・レベルに対応する、ステップと、更新のバージョンのうち、各クライアントの現在の閲覧領域内にあり同じ現在のズーム・レベルの部分のみを、各クライアントに送信するステップとを含む方法を提供する。
【００４８】
本明細書全体にわたる、「一実施形態」または「実施形態」（または同様のもの）への言及は、実施形態に関連して記載された特定の機能、構造、または特徴が、本発明の少なくとも１つの実施形態に含まれることを意味する。したがって、本明細書中の様々な箇所における「一実施形態において」または「実施形態において」または同様の表現の出現は、すべて必ずしも同じ実施形態を参照しているとは限らない。さらに、記載された機能、構造、または特徴が、１つ以上の実施形態において、任意の適切な形で組み合わされてよい。以下の記載では、本発明の実施形態が完全に理解されるよう、多数の具体的な詳細が提供される。なお、当業者には当然のことながら、本発明は、この具体的な詳細のうちの１つ以上を用いずに実施されても、または他の方法、コンポーネント、材料などを用いて実施されてもよい。他の場合には、本発明の側面を分かりにくくすることを避けるために、周知の構造、材料、または動作は、詳細に図示または記載されていない。当然のことながら、本発明は、そうした厳密な実施形態に限定されず、その中で様々な他の変更および改変が、当業者により、本発明の範囲から逸脱することなく行われ得る。
【図１】
2012533102.tif 000003
【図２】
2012533102.tif 000004
【図３】
2012533102.tif 000005
【図４】
2012533102.tif 000006
【図５】
2012533102.tif 000007
【図６】
2012533102.tif 000008
【図７】
2012533102.tif 000009
【手続補正書】
【提出日】平成24年3月7日(2012.3.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
モバイル電子デバイスとイメージを共有するためのネットワーク・サーバであって、
１つ以上のプロセッサと、
複数のモバイル電子デバイスとネットワーク上で共有されているイメージに対する更新を受信するために、前記プロセッサのうちの１つ以上で実行される、イメージ共有クライアント・アプリケーションであって、前記複数のモバイル電子デバイスはそれぞれ、それ自体の現在のズーム・レベルと、それ自体の前記イメージの現在可視の領域とを有する、前記イメージ共有クライアント・アプリケーションと、
前記複数のモバイル電子デバイスそれぞれの前記現在のズーム・レベルおよび現在可視の領域の記録を保持して、前記モバイル電子デバイスの前記現在のズーム・レベルおよび現在閲覧可能な領域に基づいて前記複数のモバイル電子デバイスにイメージ更新を選択的に送信するために、前記プロセッサのうちの１つ以上で実行される、イメージ配布アプリケーションと、
を含む、ネットワーク・サーバ。
【請求項２】
前記サーバは、前記イメージの複数のバージョンを記憶するメモリをさらに含み、これらのバージョンはそれぞれ、異なる解像度レベルを有する、請求項１に記載のネットワーク・サーバ。
【請求項３】
前記メモリは、前記複数のモバイル電子デバイスそれぞれの前記現在可視の領域およびズーム・レベルを示すデータを記憶する、請求項２に記載のネットワーク・サーバ。
【請求項４】
前記サーバは、イメージ・ホスト・デバイスから前記イメージに対する更新を受信する入力ポートをさらに含む、請求項１に記載のネットワーク・サーバ。
【請求項５】
前記イメージの更新は、画面共有モードの前記イメージ・ホスト・デバイスにて表示されているプレゼンテーションに対する変更である、請求項４に記載のネットワーク・サーバ。
【請求項６】
前記ネットワークは、携帯電話ネットワークであり、前記複数のクライアント・デバイスはそれぞれ、携帯電話通信デバイスである、請求項１に記載のネットワーク・サーバ。
【請求項７】
クライアント・デバイスとイメージを共有する方法であって、
ネットワーク・サーバにネットワーク上で結合されている複数のクライアント・デバイスと共有されているイメージの更新を、前記サーバにて受信するステップであって、前記クライアント・デバイスはそれぞれ、共有されている前記イメージの全部または選択された部分を含む現在閲覧可能な領域を示すディスプレイを有する、前記ステップと、
前記受信されたイメージ更新が、前記複数のクライアント・デバイスそれぞれの前記現在可視の領域内に表示されている前記イメージに対する変更を示すかどうかを、前記複数のクライアント・デバイスそれぞれの前記現在可視の領域の記録されているパラメータに基づき、前記ネットワーク・サーバにて判断するステップと、
前記判断の結果に基づき、前記イメージ更新を、前記クライアント・デバイスのうちの１つ以上に選択的に送信するステップと、
を含む前記方法。
【請求項８】
前記受信されたイメージ更新が、クライアント・デバイスの前記現在可視の領域内に表示されている前記イメージに対する変更を示さないと判断されれば、前記イメージ更新は、当該クライアント・デバイスに送信されない、請求項７に記載の方法。
【請求項９】
前記複数のクライアント・デバイスと共有されている前記イメージは、複数のフラグメントから成り、前記受信されたイメージ更新が、前記クライアント・デバイスのうちの１つの前記現在可視の領域内に表示されている前記イメージ内の重なり合う領域または隣接した境界を有する２つ以上のフラグメントに対する変更を表すと判断されれば、その結果、前記イメージ更新は、重なり合う領域または隣接した境界を有する前記２つ以上のフラグメントを表すマージされたフラグメントとして前記クライアント・デバイスに送信される、請求項７に記載の方法。
【請求項１０】
クライアント・デバイスから、当該クライアント・デバイスの前記現在可視の領域のパラメータに対する更新を、前記ネットワーク・サーバにて受信するステップと、
前記受信されたパラメータ更新を、前記ネットワーク・サーバにて記憶するステップと、
前記更新されたパラメータに基づき、当該クライアント・デバイスに新たなイメージ更新を送信するステップと、
をさらに含む、請求項７に記載の方法。
【請求項１１】
前記新たなイメージ更新は、前記ネットワーク・サーバにて記憶されていて前記更新されたパラメータに基づいて選択される前記イメージの１つのバージョンから取得される、請求項８に記載の方法。
【請求項１２】
前記ネットワーク・サーバは、前記複数のクライアント・デバイスそれぞれの前記現在可視の領域のパラメータを記憶し、前記パラメータは、前記クライアント・デバイスの解像度レベルと、前記イメージのうち前記クライアント・デバイスにて可視の部分の識別とを含む、請求項７に記載の方法。
【請求項１３】
前記サーバから前記クライアント・デバイスにイメージ更新を送信する前記ステップは、ロング・ポーリング技術に基づく、請求項７に記載の方法。
【請求項１４】
前記モバイル電子デバイスの前記可視の領域の、１つ以上のパラメータに対する変更を、前記モバイル電子デバイスのユーザから受け取るステップと、
前記モバイル電子デバイスの前記現在可視の領域の現在の前記パラメータの更新を、前記ネットワーク・サーバに送信するステップと、
をさらに含む、請求項７に記載の方法。
【請求項１５】
前記現在可視の領域に対する、前記ユーザから受け取られる前記変更は、前記表示されているイメージへのズーム、または前記ネットワーク・サーバにて維持されている前記イメージの或る部分であって、前記モバイル電子デバイスにて現在表示されている前記イメージとは異なる、前記部分へのパニングのうちの１つである、請求項１４に記載の方法。
【請求項１６】
モバイル電子デバイスとイメージを共有するためのコンピュータ・プログラムであって、前記コンピュータ・プログラムは、
イメージを共有している複数のクライアント・モバイル電子デバイスの現在の解像度レベルおよび現在可視の領域の記録を保持し、
前記共有されているイメージに対する変更を検出し、それに応答して、同じ前記解像度レベルの前記変更であって、前記クライアント電子デバイスの現在可視の領域内の前記変更のみを、各クライアント・モバイル電子デバイスに送信し、
クライアント・モバイル電子デバイスから、新たな現在の解像度レベルまたは現在可視の領域を含むパラメータを受信する手順を実行させる、
コンピュータ・プログラム。
【請求項１７】
前記コンピュータ・プログラムは、クライアント・モバイル電子デバイスの新たな現在の解像度レベルまたは現在可視の領域を含む前記受信されたパラメータに基づき、イメージ更新が前記クライアント・デバイスに送信されるべきであると判断して、当該イメージ更新を前記クライアント・デバイスに送信する手順を実行させる、請求項１６に記載のコンピュータ・プログラム。
【請求項１８】
前記コンピュータ・プログラムは、前記クライアント・モバイル電子デバイスと同じ前記現在の解像度レベルの変更であって、前記クライアント・モバイル電子デバイスの前記現在可視の領域内の前記変更のみを、前記クライアント・モバイル電子デバイスに送信する手順を実行させる、請求項１６に記載のコンピュータ・プログラム。
【請求項１９】
前記コンピュータ・プログラムは、変更されたイメージが、クライアントの前記現在可視の領域と、非閲覧領域とにまたがるかどうかを判断し、そうであれば、前記イメージのうち、前記現在可視の領域内の部分のみが前記クライアント・モバイル電子デバイスに送信されるように、前記イメージを切り抜く手順を実行させる、請求項１６に記載のコンピュータ・プログラム。
【国際調査報告】
2012533102.tif 000010
2012533102.tif 000011