説明

制約あるシステムリソースを有するデバイス上でアプリケーション出力を表示する方法およびシステム

サーバ上で実行するアプリケーションプログラムによって生成された出力を、ユーザデバイスに表示されるシステムは、アプリケーションプログラムを実行するアプリケーションサーバを含む。プロキシサーバは、アプリケーションプログラムによって形成されたグラフィカルディスプレイ出力のスクリーンを表わすデータをアプリケーションサーバから受信する。ユーザデバイスは、クライアントアプリケーションを実行する。クライアントアプリケーションは、アプリケーションプログラムによって生成されたグラフィカルディスプレイ出力のスクリーンを表現する静的イメージデータをプロキシサーバから受信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的に、サーバデバイス上で実行するアプリケーションプログラムの出力をクライアントデバイスに表示することに関する。より特定的には、制約あるシステムリソースを有するデバイス上でアプリケーションプログラムの出力を表示する技術および装置に関する。
【背景技術】
【0002】
ネットワーク化されたリソースにリモートアクセスを提供する技術は、様々なクライアント/サーバソフトウェアの組み合わせを含む。こうした組み合わせの一つは、「シンクライアント(thin−client)」または「分散型アプリケーション処理」システムと、称されることが多い。これらシステムにおいて、アプリケーションプログラムは、サーバコンピュータデバイスによって実行される。このデバイスは、「シンクライアント」または「シンクライアントアプリケーション」と通常称される1つ以上のクライアントコンピュータデバイスを代表して、「アプリケーションサーバ」と、通常称される。シンクライアントでユーザから受信されたアプリケーションへの入力、および、アプリケーションサーバで実行するアプリケーションによって生成された出力のみが、シンクライアントとアプリケーションサーバとの間で送信される。シンクライアントのコンピュータアーキテクチャは、アプリケーションおよび他のシステムリソースにリモート接続を提供するために、よく使われているインプリメンテーションである。このようなシステムの例には、Intelligent Computing Architecture (ICA)クライアントと組み合わせるCitrix MetaFrame Presentation Serverソフトウェア(フロリダ州Fort LauderdaleのCitrix Systems,Inc.から市販)、X Windows(登録商標)クライアントと組み合わせるXサーバ(X Consortiumから市販)、Remote Display Protocol(RDP)クライアントと組み合わせるMicrosoft Windows(登録商標) NT Server 4.0 Terminal Server Edition(ワシントン州RedmondのMicrosoft Corporationから市販)が含まれる。
【0003】
シンクライアントコンピュータアーキテクチャ内のクライアントは、アプリケーションプログラムを実行しないため、かつ、ユーザ入力をアプリケーションサーバに送信するのみで、そのアプリケーションサーバ上で実行されるアプリケーションの出力を表示するのみであるため、クライアントデバイスは、ユーザが気付くような性能低下をともなわずに、限られたメモリ量、より遅い通信サブシステム、限られたシステムリソースを提供し得る。パソコン、ワークステーション、あるいは、他のコンピュータデバイスは、典型的には、豊富なシステムリソースを提供する。これは、シンクライアントのアプリケーションを実行し、アプリケーションサーバと通信するためである。
【0004】
しかしながら、リモート接続を必要とする多くのユーザは、携帯電話および携帯情報端末のようなシンクライアントとして機能するのに十分なメモリ、ネットワークリソース、あるいは、適切なオペレーティングシステム環境を提供しないコンピュータデバイスを、シンクライアントとして使用している。例えば、現行の携帯電話の多くは、1メガバイト未満のランダムアクセスメモリーを備えるが、これは、シンクライアントのアプリケーション実行には一般に十分でない。さらに、内蔵システムにとって、アプリケーション出力用のアプリケーションサーバにアクセスすることは、しばしば、有用である。典型的には、これらシステムも、また、メモリのようなリソースに制約がある。
【0005】
メモリ制限があるように、システムリソースに制約のあるクライアントデバイスが、アプリケーションサーバ上で実行するアプリケーションプログラムと、相互作用するシステムを所有することは、有益なことである。
【発明の開示】
【課題を解決するための手段】
【0006】
(発明の概要)
本発明は、ローエンド(low−end)クライアントデバイス(例えば、携帯電話、携帯情報端末、内蔵システム)が、アプリケーションサーバ上で実行するアプリケーションプログラムと相互作用して、アプリケーションが、様々な位置からのリモートアクセスを可能とする。
【0007】
一局面において、本発明は、サーバ上で実行するアプリケーションプログラムによって生成された出力を、ユーザデバイスに表示するシステムに関する。本システムは、アプリケーションプログラムを実行するアプリケーションサーバを含む。プロキシサーバは、アプリケーションサーバから、アプリケーションプログラムによって生成されたグラフィカルディスプレイ出力のスクリーンを表わすデータを受信する。ユーザデバイスは、プロキシサーバから静的イメージデータを受信するクライアントアプリケーションを実行する。静的イメージデータは、アプリケーションプログラムによって生成されたグラフィカルディスプレイ出力のスクリーンを表わす。
【0008】
別の局面において、本発明は、サーバ上で実行するアプリケーションプログラムによって生成された出力を、ユーザデバイスに表示する方法に関する。アプリケーションサーバは、グラフィカルユーザインターフェースデータのスクリーンを生成するアプリケーションを実行し、生成されたグラフィカルユーザインターフェースデータのスクリーンを、プロキシサーバに送信する。プロキシサーバは、生成されたグラフィカルユーザインターフェースデータのスクリーンの少なくとも一部を表わす静的イメージデータを、ユーザデバイスに送信する。ユーザデバイスは、送信された静的イメージデータを表示する。
【0009】
さらに別の局面において、本発明は、サーバ上で実行するアプリケーションプログラムによって生成された出力を、ユーザデバイスに表示する装置に関する。本装置は、アプリケーションサーバから、アプリケーションサーバ上で実行するアプリケーションによって生成されたグラフィカルディスプレイ出力のスクリーンを表わすデータを、第一のプロトコル形式で受信する第一のプロトコルハンドラを含む。本装置は、また、第一のプロトコルハンドラによって受信されたグラフィカルディスプレイ出力のスクリーンの少なくとも一部を表わす静的イメージデータを、表示用クライアントアプリケーションに、第二のプロトコル形式で送信する第二のプロトコルハンドラを含む。
【0010】
また別の局面において、本発明は、サーバ上で実行するアプリケーションプログラムによって生成されたグラフィカルディスプレイ出力を、ユーザデバイスに表示する方法に関する。静的イメージデータは、アプリケーションサーバから、第一のプロトコル形式を介して受信され、アプリケーションサーバ上で実行するアプリケーションによって生成されたグラフィカルディスプレイ出力のスクリーンを表わす。静的イメージデータは、ディスプレイ用クライアントアプリケーションに、第二のプロトコルを介して送信される。この静的イメージデータは、アプリケーションサーバ上で実行するアプリケーションによって生成されたグラフィカルディスプレイ出力のスクリーンの少なくとも一部を表わす。
【0011】
さらにまた別の局面において、本発明は、サーバ上で実行するアプリケーションプログラムによって生成された出力を、ユーザデバイスに表示するシステムに関する。本システムは、アプリケーションプログラムを実行するアプリケーションサーバを含む。本システムは、また、アプリケーションサーバから、プレゼンテーションレベルのプロトコルを介して、アプリケーションプログラムによって生成されたグラフィカルディスプレイ出力のスクリーンを表わすデータを受信するプロキシサーバも含む。本システムは、さらに、クライアントアプリケーションを実行するユーザデバイスを含み、このクライアントアプリケーションは、プロキシサーバから、アプリケーションプログラムによって生成されたグラフィカルディスプレイ出力のスクリーンを表わす静的イメージデータを、HyperText Transfer Protocol(HTTP)コマンドを介して受信する。
【0012】
別の局面において、本発明は、サーバ上で実行するアプリケーションプログラムによって生成される出力を、ユーザデバイスに表示する方法に関する。アプリケーションサーバは、グラフィカルユーザインターフェースデータのスクリーンを生成するアプリケーションを実行する。アプリケーションサーバは、生成されたグラフィカルユーザインターフェースデータのスクリーンを、プレゼンテーションレベルのプロトコルを介して、プロキシサーバに送信する。プロキシサーバは、生成されたグラフィカルユーザインターフェースデータのスクリーンの少なくとも一部を表わす静的イメージを、HyperText Transfer Protocol(HTTP)コマンドを介して、ユーザデバイスに送信する。ユーザデバイスによって、この送信された静的イメージデータを表示する。
【0013】
さらなる局面において、本発明は、サーバ上で実行するアプリケーションプログラムによって生成される出力を、ユーザデバイスに表示するコンピュータ読み出し可能なプログラムを具体化した製品の品目に関する。この製品の品目には、サーバ上で実行するアプリケーションによって生成されたグラフィカルユーザデータインターフェースのスクリーンを、プロキシサーバに送信するコンピュータ読み出し可能なプログラム手段と、生成されたグラフィカルユーザデータインターフェースのスクリーンの少なくとも一部を表わす静的イメージデータを、プロキシサーバを介して、ユーザデバイスに通信するコンピュータ読み出し可能なプログラム手段と、送信された静的イメージデータを、ユーザデバイスによって、表示するコンピュータ読み出し可能なプログラム手段とが、含まれる。
【0014】
さらに別の局面において、本発明は、サーバ上で実行するアプリケーションプログラムによって生成されるグラフィカルディスプレイ出力を、ユーザデバイスに表示するコンピュータ読み出し可能なプログラムを具体化した製品の品目に関する。この製品の品目には、アプリケーションサーバから、第一のプロトコルを介して、アプリケーションサーバ上で実行するアプリケーションによって形成されたグラフィカルディスプレイ出力のスクリーンを表わすデータを受信するコンピュータ読み出し可能なプログラム手段と、第二のプロトコルを介して、アプリケーションサーバ上で実行するアプリケーションによって生成されたグラフィカルディスプレイ出力のスクリーンの少なくとも一部を表わす静的イメージデータを、ディスプレイ用クライアントアプリケーションに通信するコンピュータ読み出し可能なプログラム手段とが、含まれる。
【0015】
本発明のこれらおよび他の局面が、以下の詳細な記述と添付図面から容易に明らかになる。添付図面は、本発明を説明することを意図し、本発明を限定することを意図していない。
【発明を実施するための最良の形態】
【0016】
(詳細な説明)
図1を参照すると、システムリソース制約を有するクライアントデバイスにアプリケーション出力を提供するシステム100は、アプリケーションサーバ110と、プロキシサーバ150と、クライアント140とを含む。図1に示す実施形態において、1つのみのアプリケーションサーバ110と、プロキシサーバ150と、クライアント140としか描かれていないが、これらコンポーネントの任意または各々は複数個を備え得る。例えば、一実施形態において、システム100は、複数の論理グループ化されたアプリケーションサーバ110を備え、そのそれぞれは、クライアント140を代表して、アプリケーションを実行するために利用可能である。これらの実施形態において、サーバの論理グループは、「サーバファーム(server farm)」と称され得る。他の実施形態において、複数のプロキシサーバ150が備えられ得る。これら実施形態の一部において、プロキシサーバは、地理的に分散され得る。
【0017】
アプリケーションサーバ110は、クライアント140を代表して、1つ以上のプログラム122、124、126、128を実行する。アプリケーションプログラムは、データを処理して、出力を提供することと、オペレーティングシステムを用いて、システムリソースにアクセスすることとを行う任意のプログラムである。例示的なアプリケーションプログラムには、MICROSOFT WORD(ワシントン州RedmondのMicrosoft Corporation製)のような言語処理アプリケーション、MICROSOFT EXCEL(Microsoft Corporation製)のような表計算プログラム、MICROSOFT OUTLOOK(Microsoft Corporation製)およびGROUPWISE(ユタ州ProvoのNovell Corp.製)のような電子メールプログラム、STAR OFFICE(カリフォルニア州Mountain ViewのSun Microsystems製)のような生産性一式(productivity suites)を含む。
【0018】
アプリケーションサーバ110は、第一のネットワーク125を介して、プロキシサーバ150と通信する。第一のネットワーク125は、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、あるいは、インターネットのような広域ネットワーク(WAN)であり得る。アプリケーションサーバ110およびプロキシサーバ150は、標準の電話回線、LANまたはWANリンク(例えば、T1、T3、56kb、X.25)、広帯域接続(ISDN、Frame Relay、ATM)および無線接続を含む様々な接続を介して、第一のネットワーク125に接続し得る。アプリケーションサーバ110とプロキシサーバ150との間の接続は、様々なデータリンク層通信プロトコル(例えば、TCP/IP、IPX、SPX、NetBIOS、NetBEUI、SMB、Ethernet(登録商標)、ARCNET、Fiber Distributed Data Interface(FDDI)、RS232、IEEE 802.11、IEEE 802.11a、IEEE 802.11b、IEEE 802.11gおよび直接非同期接続)を使用し得る。
【0019】
プロキシサーバ150は、Remote Display Protocolクライアント(Microsoft Corporation製)、または、ICAクライアント(フロリダ州Fort LauderdaleのCitrix Systems,Inc.製)のような1つ以上のシンクライアントアプリケーション152、154を実行する。アプリケーションサーバ110は、アプリケーションプログラム122、124、126、128の出力を、プロキシサーバ150上で実行するシンクライアントアプリケーション152、154に通信し、アプリケーションプログラム122、124、126、128に向けられたユーザ入力を、シンクライアントアプリケーション152、154から受信する。アプリケーションサーバ110は、Independent Computing Architecture(ICA)プロトコル(フロリダ州Fort LauderdaleのCitrix Systems,Inc.から市販)、または、Remote Display Protocol(RDP)(Microsoft Corporationから市販)のようなプレゼンテーション層プロトコルを使用して、ネットワーク125を介して、シンクライアントアプリケーション152、154と、通信する。図1に示す実施形態において、2つのシンクライアントアプリケーションのみしか描かれていないが、プロキシサーバ150は、任意の数のシンクライアントアプリケーション152、154をホストし得る。
【0020】
また、プロキシサーバ150は、プロキシサーバアプリケーション158を実行する。プロキシサーバアプリケーション158は、アプリケーションプログラム、サブシステムまたはサービスであり得る。プロキシサーバアプリケーション158は、プロキシサーバ150によってホストされるシンクライアントアプリケーション152、154を管理する。プロキシサーバアプリケーションは、また、シンクライアントアプリケーション152、154によって受信されたアプリケーション出力を、クライアントデバイス140に送信し、クライアントデバイス140から受信されたユーザ入力を、プロキシサーバ150上で実行する適切なシンクライアントアプリケーション152、154に送信する。
【0021】
プロキシサーバ150上で実行するプロキシサーバアプリケーション158は、第二のネットワーク175を介して、クライアント140と通信する。クライアント140が内蔵システムである実施形態において、クライアント140とプロキシサーバ150とは、標準の電話回線、LANまたはWANリンク(例えば、T1、T3、56kb、X.25)、広帯域接続(ISDN、Frame Relay、ATM)および無線接続を含む様々な接続を介して、第二のネットワーク175と接続し得る。クライアント140とプロキシサーバ150との間の接続は、様々なデータリンク層通信プロトコル(例えば、TCP/IP、IPX、SPX、NetBIOS、NetBEUI、SMB、Ethernet(登録商標)、ARCNET、Fiber Distributed Data Interface(FDDI)、RS232、IEEE 802.11、IEEE 802.11a、IEEE 802.11b、IEEE 802.11gおよび直接非同期接続)を使用し得る。
【0022】
他の実施形態において、クライアントデバイス140は、携帯電話または携帯情報端末のような移動体デバイスである。これらの実施形態において、クライアント140とプロキシサーバアプリケーション158とは、W−CDMAのようなGSMまたはCDMAファミリからなる多数の周知のプロトコルの任意の一つを用いて、第二のネットワークと接続する。これらプロトコルは、商業無線通信サービスおよびW−CDMAをサポートし、特に、NTT DoCoMoによって提供されるi−ModeおよびmModeサービスをサポートする基底プロトコルである。
【0023】
クライアントデバイス140は、クライアントアプリケーション146を実行する。クライアントアプリケーションは、httpまたはhttps要求を、プロキシサーバアプリケーション158へ送信し、プロキシサーバアプリケーション158から受信する。クライアントアプリケーション148は、実行するアプリケーションプログラム122、124、126、128に向けられたユーザ入力を、プロキシサーバアプリケーション158に、第二のネットワーク175を介して送信する。それは、また、アプリケーションサーバ110上で実行するアプリケーションプログラム122、124、126、128の出力に対応するクライアントデバイスのスクリーン上に、グラフィカル出力を与える役割も担っている。
【0024】
多くの実施形態において、アプリケーションサーバ110およびプロキシサーバ150は、カリフォルニア州Palo AltoのHewlett−Packard Corporationまたはテキサス州Round RockのDell Corporationによって製造されたもののようなパーソナルコンピュータまたはコンピュータサーバとして、提供される。クライアントデバイス140が内蔵システムである実施形態において、クライアントデバイス140もまた、パーソナルコンピュータとしても、また提供され得る。図2Aおよび図2Bは、これらの実施形態において、アプリケーションサーバ110、、プロキシサーバ150、または、クライアントデバイスとして有用な典型的なコンピュータ200のブロック図を示す。図2Aおよび図2Bに示すように、各コンピュータは、中央演算処理装置202、および主記憶装置204を含む。各コンピュータ200は、また、1つ以上の入出力デバイス230a〜230n(一般に、参照番号230で示す)、および、中央演算処理装置202と通信するキャッシュメモリ240のような他のオプション要素も含み得る。
【0025】
中央演算処理装置202は、主記憶装置204から取り出された命令に応答し、処理する任意の論理回路網である。多数の実施形態において、中央演算処理装置は、マイクロプロセッサユニットによって提供される。例えば、8088、80286、80386、80486、Pentium(登録商標)、Pentium(登録商標) Pro、Pentium(登録商標) II、CeleronまたはXeonプロセッサ(いずれもカリフォルニア州Mountain ViewのIntel Corporation製)、68000、68010、68020、68030、68040、PowerPC601、PowerPC604、PowerPC604e、MPC603e、MPC603ei、MPC603ev、MPC603r、MPC603p、MPC740、MPC745、MPC750、MPC755、MPC7400、MPC7410、MPC7441、MPC7445、MPC7447、MPC7450、MPC7451、MPC7455、MPC7457プロセッサ(いずれもイリノイ州SchaumburgのMotorola Corporation製)、Crusoe TM5800、Crusoe TM5600、Crusoe TM5500、Crusoe TM5400、Efficeon TM8600、Efficeon TM8300またはEfficeon TM8620プロセッサ(カリフォルニア州Santa ClaraのTransmeta Corporation製)、RS/6000プロセッサ、RS64、RS64 II、P2SC、POWER3、RS64 III、POWER3−11、RS64 IV、POWER4、POWER4+、POWER5またはPOWER6プロセッサ(いずれもニューヨーク州White PlainsのInternational Business Machines製)、あるいは、AMD Opteron、AMD Athalon 64FX、AMD AthalonまたはAMD Duronプロセッサ(カリフォルニア州SunnyvaleのAdvanced Micro Devices製)である。
【0026】
主記憶装置204は、データを格納可能で、マイクロプロセッサ202によって直接アクセスされる任意のストレージロケーションが可能な1つ以上のメモリチップであり得る。例えば、スタティックランダムアクセスメモリ(SRAM)、Burst SRAMまたはSynchBurst SRAM(BSRAM)、ダイナミックランダムアクセスメモリ(DRAM)、Fast Page Mode DRAM(FPM DRAM)、Enhanced DRAM(EDRAM)、Extended Data Output RAM(EDO RAM)、Extended Data Output DRAM(EDO DRAM)、Burst Extended Data Output DRAM(BEDO DRAM)、Enhanced DRAM(EDRAM)、シンクロナスDRAM (SDRAM)、JEDEC SRAM、PC100 SDRAM、Double Data Rate SDRAM(DDR SDRAM)、Enhanced SDRAM(ESDRAM)、SyncLink DRAM(SLDRAM)、Direct Rambus DRAM(DRDRAM)、あるいは、強誘電体RAM(FRAM)である。
【0027】
図2Aに示す実施形態において、プロセッサ202は、システムバス220(詳細は後述)を介して、主記憶装置204と通信する。図2Bは、コンピュータシステム200の実施形態を示す。ここでは、プロセッサは、メモリポートを介して、主記憶装置204と直接通信する。例えば、図2Bにおいて、主記憶装置204は、DRDRAMであり得る。
【0028】
図2Aおよび図2Bは、主記憶装置202が、二次バス(ときどき、「バックサイド」バスと称される)を介して、キャッシュメモリ240と直接通信する実施形態を示す。他の実施形態において、主記憶装置202は、システムバス220を用いて、キャッシュメモリ240と通信する。キャッシュメモリ240は、典型的には、主記憶装置204より応答速度が速く、典型的には、SRAM、BSRAMまたはEDRAMによって提供される。
【0029】
図2Aに示す実施形態において、プロセッサ202は、様々な入出力デバイス230と、ローカルシステムバス220を介して、通信する。様々なバスは、中央演算処理装置202を入出力デバイス230に接続するために使用され得る。これらバスには、VESA VLバス、ISAバス、EISAバス、MicroChannel Architecture(MCA)バス、PCIバス、PCI−Xバス、PCI−Expressバス、またはNuBusを含む。入出力デバイスがビデオディスプレイである実施形態において、プロセッサ202は、このディスプレイと通信するために、Advanced Graphics Port(AGP)を使用し得る。図2Bは、コンピュータシステム200の実施形態を示す。ここでは、主記憶装置202は、入出力デバイス230bと、HyperTransport、Rapid I/OまたはInfiniBandを介して、直接通信している。図2Bは、また、ローカルバスと直接通信の混合された実施形態を示す。すなわち、プロセッサ202は、ローカル相互接続バスを使用して、入出力デバイス230aと通信し、その一方、入出力デバイス230bと直接通信する。
【0030】
幅広い多様な入出力デバイス230が、コンピュータシステム200内で使用され得る。入力デバイスは、キーボード、マウス、トラックパッド、トラックボール、マイク、および、ドローイングタブレットを含む。出力デバイスは、ビデオディスプレイ、スピーカ、インクジェットプリンタ、レーザプリンタ、および、昇華型プリンタを含む。入出力デバイスには、コンピュータシステム200用の大容量ストレージを提供し得る。例えば、ハードディスクドライブ、3.5インチ、5.25インチディスクまたはZIPディスクのようなフロッピディスクを受け入れるフロッピディスクドライブ、CD−ROMドライブ、CD−R/RWドライブ、DVD−ROMドライブ、様々な形式のテープドライブ、および、USB Flash DriveラインのようなUSBストレージデバイス(カリフォルニア州Los AlamitosのTwintech Industry,Inc.製)である。
【0031】
さらなる実施形態において、入出力デバイス230は、システムバス220と外部通信バスとの間のブリッジになり得る。外部通信バスは、例えば、USBバス、Apple Desktop Bus、RS−232シリアル接続、SCSIバス、FireWireバス、FireWire 800バス、Ethernet(登録商標)バス、AppleTalk busバス、Gigabit Ethernet(登録商標)バス、Asynchronous Transfer Mode バス、HIPPIバス、Super HIPPIバス、SerialPlusバス、SCI/LAMPバス、FibreChannelバス、または、Serial Attached 小型コンピュータシステムインターフェースバスである。
【0032】
図2Aおよび図2Bに示すような汎用デスクトップコンピュータは、典型的には、オペレーティングシステムの制御下で動作し、このオペレーティングシステムが、タスクのスケジューリングおよびシステムリソースへのアクセスを管理する。典型的なオペレーティングシステムには、MICROSOFT WINDOWS(登録商標)(ワシントン州RedmondのMicrosoft Corp.製)、MacOS(カリフォルニア州CupertinoのApple Computer製)、OS/2(ニューヨーク州ArmonkのInternational Business Machines製)、および、Linux(ユタ州Salt Lake CityのCaldera Corp.より無料で頒布されているオペレーティングシステム)がある。
【0033】
クライアントデバイス140が、移動体デバイスである実施形態において、クライアントデバイスは、JAVA(登録商標)対応の携帯電話であり得る。例えば、i50sx、i55sr、i58sr、i85s、i88s、i90c、i95c1またはim11000(いずれもイリノイ州SchaumburgのMotorola Corp.製)、6035または7135(日本国京都府の京セラ製)、あるいは、i300またはi330(韓国ソウルのSamsung Electronics Co.,Ltd.製)である。クライアントデバイス140が移動体である他の実施形態において、クライアントデバイスは、PalmOSのオペレーティングシステムの制御下で動作する携帯情報端末(PDA)であり得る。例えば、Tungsten W、VII、VIIx、i705(いずれもカリフォルニア州MilpitasのpalmOne,Inc.製)である。さらなる実施形態において、クライアントデバイス140は、PocketPCオペレーティングシステムの制御下で動作する携帯情報端末(PDA)であり得る。例えば、iPAQ 4155、iPAQ 5555、iPAQ 1945、iPAQ 2215およびiPAQ 4255(いずれもカリフォルニア州Palo AltoのHewlett−Packard Corporation製)、ViewSonic V36(カリフォルニア州WalnutのViewSonic製)、あるいは、Toshiba PocketPC e405(ニューヨーク州New YorkのToshiba America,Inc.製)である。さらなる他の実施形態において、クライアントデバイスは、PDA/携帯電話の組み合わせであり得る。例えば、Treo 180、Treo 270またはTreo 600(いずれもカリフォルニア州MilpitasのpalmOne,Inc.製)である。またさらなる実施形態において、クライアントデバイス140は、PocketPCオペレーティングシステムの制御下で動作する携帯電話である。例えば、MPx200(Motorola Corp.製)である。
【0034】
図3は、図1〜図2Bで記載されたばかりのシステムの動作を示す。クライアントアプリケーション146は、自身の代理として、アプリケーションプログラム122、124、126、128を実行するようにという要求を、プロキシサーバアプリケーション158に送信する(ステップ302)。一部の実施形態において、クライアントアプリケーション146によって送信されるhttp要求には、ユーザが実行されるべきと欲するアプリケーションの名前が含まれる。他の実施形態において、要求は、ユーザが機能したいと欲するファイルを同定し得る。これらの実施形態において、要求には、ファイルタイプが含まれ、プロキシサーバアプリケーション158は、ファイルを処理可能な1つ以上のアプリケーションプログラムを同定する。例えば、プロキシサーバアプリケーション158は、使用するアプリケーションプログラムを、テーブルマッピングファイルタイプから、それらのファイルに関連する特定のアプリケーションプログラムまで参照し得る。さらなる実施形態において、クライアントアプリケーション146によって送信されたhttp要求は、このアプリケーションプログラム122、124、126、128が実行されるべき特定の公開デスクトップまたは特定のサーバ100を、特定的に同定する。
【0035】
プロキシサーバアプリケーション158は、シンクライアントアプリケーション152、154を呼び出し(ステップ322)、要求されたプログラムのアイデンティティを有するシンクライアントアプリケーション152、154を提供する。シンクライアントアプリケーション152、154は、業界でよく知られた方法で動作する。しかし、シンクライアントアプリケーション152、154が、シンクライアントがアプリケーション出力を書き込むメモリのブロックを脇に置く点で異なる(ステップ342)。言い換えれば、シンクライアントアプリケーション152、154は、業界で通常行われるようにビジュアルディスプレイにではなく、むしろ、メモリ内に維持される仮想スクリーンに、アプリケーション出力を書き込む。しかしながら、一部の実施形態において、シンクライアントアプリケーション152、154は、仮想スクリーンと従来のディスプレイスクリーンとの双方に書き込む。
【0036】
シンクライアントアプリケーション152、154は、サーバ110に、アプリケーションプログラム122、124、126、128の実行を開始するようにという要求を送信する(ステップ344)。一部の実施形態において、シンクライアントアプリケーション152、154は、サーバファーム内の1つのサーバに要求を送信する。このサーバは、要求されたアプリケーションプログラム122、124、126、128をホストするサーバ110のアドレスを有するシンクライアントアプリケーション152、154に応答する。他の実施形態において、シンクライアントアプリケーション152、154は、サービスアクセスポイントに要求を送信する。このサービスアクセスポイントは、クライアントアプリケーション146に、適切なアプリケーションサーバ110と接続するために必要な情報を提供するクライアントデバイス140にドキュメントを返却する。これら実施形態の全てにおいて、シンクライアントアプリケーション152、154は、同定されたサーバ110との接続で開始する。
【0037】
他の実施形態において、シンクライアントアプリケーション152、154は、アプリケーション要求をアプリケーションサーバ110に送信した(ステップ344)後、仮想スクリーンメモリエリアを設定する(ステップ342)。さらに別の実施形態において、これらのアクションは、実質的に同時に起こる。
【0038】
サーバ110は、要求されたアプリケーションプログラム122、124、126、128を実行によって開始し(ステップ382)、シンクライアントプレゼンテーションプロトコルを用いて、第一のネットワーク125を介して、グラフィカルアプリケーション出力を送信する(384)。シンクライアントアプリケーション152、154への送信用プレゼンテーションレベルのプロトコルパケットを形成するために、アプリケーションサーバ110によって取られるステップの様々な実施形態は、米国特許第6,141,737号、第6,118,899号、第6,081,623号、第6,057,857号および第6,016,535号に記載されており、これら特許の内容全体は、本明細書において参考として援用される。
【0039】
シンクライアントアプリケーション152、154は、アプリケーションサーバ110から受信した表示プロトコルパケットをデコードし、プレゼンテーションプロトコルパケットによって表示されたグラフィカルアプリケーション出力を、仮想スクリーンメモリに書き込む(ステップ346)。多くの実施形態において、仮想スクリーンメモリは、スクリーンバッファである。すなわち、仮想スクリーンメモリエリアは、グラフィカル出力のビジュアルディスプレイを形成するために必要とされるデータのビットマップ表現を格納する。
【0040】
図3に示す実施形態において、クライアントアプリケーション146は、プロキシサーバアプリケーションに、グラフィカルアプリケーション出力の現在状態を表わす静的イメージに対する要求を送信する(ステップ304)。クライアントアプリケーションは、グラフィカルアプリケーション出力の現在状態を、毎1分、毎30秒、毎15秒、毎10秒、毎5秒、毎2秒、毎秒1回、毎秒2回、毎秒5回、毎秒10回、毎秒20回または毎秒30回要求し得る。他の実施形態において、プロキシサーバアプリケーション158は、グラフィカルアプリケーション出力の現在状態を表わす静的イメージを、クライアントアプリケーション146に定期的に送信する。これらの他の実施形態において、プロキシサーバアプリケーション158は、クライアントアプリケーション146に、毎分、毎30秒、毎15秒、毎10秒、毎5秒、毎2秒、毎秒1回、毎秒2回、毎秒5回、毎秒10回、毎秒20回または毎秒30回、更新を送信し得る。代替的に、プロキシサーバアプリケーション158は、仮想スクリーンメモリエリアの所定の割合が状態を変化したと、プロキシサーバアプリケーション158が判断したとき、あるいは、グラフィカルアプリケーション出力の現在状態に対する要求が、プロキシサーバアプリケーションによって受信されたとき、クライアントアプリケーション146に、更新を送信し得る。
【0041】
図3に戻ると、プロキシサーバアプリケーション158は、送信された要求を受信し(ステップ324)、入力として、適切なシンクライアントアプリケーション152、154の仮想スクリーンメモリを使用して、静的イメージファイルを生成する(ステップ326)。一部の実施形態において、クライアントアプリケーション146は、例えば、「クッキー」内に、そのプロキシサーバアプリケーション158との接続状態を格納する。これら実施形態において、送信された要求(ステップ324)は、セッション識別子を含み得る。このセッション識別子は、プロキシサーバアプリケーション158が、静的イメージファイルを生成するために、仮想スクリーンメモリから選択するために使用する。さらなる実施形態において、この要求には、クライアントデバイス140と関連するユニークな識別子が含まれる。例えば、クライアントデバイス140が携帯電話である実施形態において、ユニークな識別子は、携帯電話と関連する電話番号であり得る。
【0042】
他の実施形態において、クライアントアプリケーション146は、そのプロキシサーバアプリケーション158との間の接続状態を格納しない。これらの実施形態において、セッションは、そのセッション識別子を傍聴者に明かさないような方法で、送信された要求内で同定されなくてはならない(ステップ324)。例えば、セッションを同定する送信されたhttp要求の部分(ステップ324)は、クライアントアプリケーション146とプロキシサーバアプリケーション158とで共有されたプライベートキーを用いて、暗号化され得る。これら実施形態において、さらに、要求は、クライアントデバイス140と関連するユニークな識別子を含む。この識別子もまた、この識別子を傍聴者から保護するために、暗号化され得る。例えば、クライアントデバイス140が携帯電話である実施形態において、ユニークな識別子は、携帯電話と関連する電話番号であり得る。
【0043】
プロキシサーバアプリケーション158によって生成された静的イメージは、多数の標準形式(JPEG、GIF、PIN、TIFFまたはBMPを含む)の任意の一つであり得る。一部の実施形態において、プロキシサーバアプリケーション158は、シンクライアントアプリケーション152、154によって露呈された(exposed)Common Object Model (COM) Application Programming Interface (API)を呼び出して、静的イメージを生成する。
【0044】
一部の実施形態において、プロキシサーバアプリケーション158は、生成された静的イメージのサイズを最適化する。これらの実施形態の一つにおいて、プロキシサーバアプリケーション158は、ユーザの現在位置を取り囲むスクリーンエリアを選択することによって、スクリーンイメージのサイズを決定する。ユーザの現在位置は、最後のマウスクリックにおけるx座標およびy座標、または、プロキシサーバアプリケーション158に送信される最後のマウス位置におけるx座標およびy座標を用いて決定され得る。ユーザの最後の位置から、スクリーンがどれだけ上下左右にあるかという量が、スクリーンイメージを形成するために使用され、これは、所定の画素数に設定され得るか、あるいは、クライアントデバイス140に基づいて選択され得る。
【0045】
別の実施形態において、プロキシサーバアプリケーション158は、許容可能なイメージロスの量を増加し得る。つまり、プロキシサーバアプリケーション158は、送信前のスクリーンイメージを符号化するために、JPEGのような損失(lossy)圧縮アルゴリズムを使用している。プロキシサーバアプリケーション158は、送信されるイメージタイプ、クライアントデバイス158と仮想スクリーンメモリとの間の相対的なサイズの差、クライアントデバイス140のスクリーンの絶対的サイズ、クライアントデバイス140のスクリーンのビット深さ、または、ネットワーク175を介して使用する利用可能な帯域幅に基づいて、許容可能なイメージロスの量を選択し得る。
【0046】
さらに別の実施形態において、プロキシサーバアプリケーション158は、グラフィカル要素を有しないスクリーンを送信するために、静的イメージを使用しない。このような実施形態において、クライアントアプリケーション146は、テキストドローイングコマンド用と、グラフィカルコマンド用とに、個別セットのプログラミングインターフェースを露呈する。グラフィカル要素を有しないスクリーンにおいて、テキストドローイング呼び出しのみが、アプリケーションにスクリーンを出力させるために使われる。
【0047】
さらに別の実施形態において、プロキシサーバアプリケーション158は、仮想スクリーンバッファからの読まれたアプリケーション出力をスケーリングし得る。これは、そのスクリーンまたはそのスクリーンの大部分が、クライアントデバイス140のスクリーン上で見ることができるようにするためである。代替的に、スケーリングは、COMインターフェースによって提供され得る。
【0048】
プロキシサーバアプリケーション158は、クライアントアプリケーション146に、生成された静的イメージファイルを送信する(ステップ328)。一部の実施形態において、単一のセッション識別子は、多数のクライアントデバイス140と共有され得る。これによって、1つ以上のクライアントデバイス140が、別のクライアントデバイス140を影にすることを許す。すなわち、「影にする」クライアントデバイス140によって表示された出力は、「影にされた」クライアントデバイス140の出力と同じになる。一実施形態において、静的イメージファイルは、HyperText Transfer Protocol(http)またはSecure HyperText Transfer Protocol(https)を用いて、クライアントアプリケーション146に送信される。クライアントアプリケーション146に静的イメージファイルを送信し、クライアントアプリケーション146からクライアント入力を受信するために使用されたプロトコルは、図4と関連付けて、以下に、より詳細に記載される。クライアントアプリケーション146は、受信した静的イメージファイルを表示する(ステップ308)。
【0049】
ここで、図4を参照すると、ユーザの入力とアプリケーションの実行出力とを交換するために、クライアントアプリケーション146とプロキシサーバアプリケーション158とによって使用されるプロトコルの一実施形態が、図式的に示される。図4に示す実施形態においては、「イメージを得よ」410、「ストリングを送れ」420、「キーストロークを送れ」430、および「マウスイベントを送れ」440の4つのプロトコルコマンドが示されている。
【0050】
図4に示すように、クライアントアプリケーション146は、プロキシサーバアプリケーション158に、要求が向けられたサーバと、クライアントアプリケーション146によって要求された静的イメージに関するパラメータとを同定するhttp要求412を送信する。図4に示す実施形態において、クライアントアプリケーション146によって送信されたhttp要求に含まれるパラメータには、開始x座標、開始y座標、終了x座標、終了y座標、および、好ましい静的イメージタイプが含まれる。プロキシサーバアプリケーション158は、httpパケット414に応答し、要求された静的イメージファイルを送信する。
【0051】
図4に示すプロトコル実施形態には、また、「ストリングを送れ」420、「キーストロークを送れ」430、および「マウスイベントを送れ」440の3つの入力コマンドも含まれる。これらコマンドのそれぞれに対し、クライアントアプリケーション146は、プロキシサーバアプリケーション158に、ユーザ入力が向けられたサーバと、入力とを同定するhttpパケットを送信する。「ストリングを送れ」コマンド422の場合、ユーザ入力は、一連の英数字である。「キーストロークを送れ」コマンド432の場合、ユーザ入力は、キーストロークである。「マウスイベントを送れ」コマンド442の場合、ユーザ入力は、マウスイベントのx座標と、マウスイベントのy座標と、そのマウスイベントに「クリック」が含まれるか否かである。一部の実施形態において、「マウスイベントを送れ」には、また、どのマウスボタンがクリックされたかの表示も含まれる。これらの場合それぞれにおいて、プロキシサーバアプリケーション158は、クライアントアプリケーション146に、「OK」メッセージ424、434、444で応答する。
【0052】
ユーザ入力422、432、442を受信すると、プロキシサーバアプリケーション158は、シンクライアントアプリケーション152、154にユーザ入力を転送する。シンクライアントアプリケーション152、154は、受信したユーザ入力を、アプリケーションサーバ110に転送する。アプリケーションサーバ110は、ユーザ入力を受信し、それをアプリケーションプログラム122、124、126、128に提供する。
【0053】
本発明は、製品の1つ以上の品目に具体化された1つ以上のコンピュータ読み出し可能プログラムとして、提供され得る。製品の品目は、フロッピディスク、ハードディスク、コンパクトディスク、デジタル汎用ディスク、フラッシュメモリカード、PROM、RAM、ROMまたは磁気テープであり得る。一般に、コンピュータ読み出し可能プログラムは、任意のプログラミング言語でインプリメントされ得る。使用可能な言語の例の一部は、C、C++、C#またはJAVA(登録商標)であり得る。ソフトウェアプログラムは、オブジェクトコードの製品の1つ以上の品目上または品目内に格納され得る。
【0054】
本発明は、特定の好ましい実施形態を参照しながら、図示および記載されてきたが、以下の請求項で規定される本発明の精神と範囲から逸脱することなく、形式および詳細において、様々な変更がなされ得ることは、当業者によって理解されるべきである。
【図面の簡単な説明】
【0055】
【図1】図1は、制約あるシステムリソースを有するデバイスにアプリケーション出力を提供するシステムの一実施形態のブロック図である。
【図2A】図2Aは、本発明と関連して、有益なコンピュータの実施形態を示すブロック図である。
【図2B】図2Bは、本発明と関連して、有益なコンピュータの実施形態を示すブロック図である。
【図3】図3は、制約あるシステムリソースを有するデバイスにアプリケーション出力を提供するシステムの動作の一実施形態を示す流れ図である。
【図4】図4は、制約あるシステムリソースを有するデバイスにアプリケーション出力を通信するために使用されるプロトコルの一実施形態の図式表現である。

【特許請求の範囲】
【請求項1】
サーバ上で実行するアプリケーションプログラムによって生成された出力を、ユーザデバイスで表示するシステムであって、
アプリケーションプログラムを実行するアプリケーションサーバと、
該アプリケーションサーバから、該アプリケーションプログラムによって生成されたグラフィカルディスプレイ出力のスクリーンを表わすデータを受信するプロキシサーバと、
クライアントアプリケーションを実行するユーザデバイスであって、該クライアントアプリケーションは、該プロキシサーバから、該アプリケーションプログラムによって生成された該グラフィカルディスプレイ出力のスクリーンを表わす静的イメージデータを受信する、ユーザデバイスと
を備える、システム。
【請求項2】
前記アプリケーションサーバは、サーバファーム内の複数のサーバのうちの1つを備える、請求項1に記載のシステム。
【請求項3】
前記プロキシサーバは、前記クライアントアプリケーションから送信された入力を受信し、該受信した入力を前記アプリケーションサーバに送信する、請求項1に記載のシステム。
【請求項4】
前記プロキシサーバは、前記アプリケーションサーバから、プレゼンテーションプロトコルを介してデータを受信する、請求項1に記載のシステム。
【請求項5】
前記プロキシサーバは、前記アプリケーションサーバから、Independent Computing Architecture(ICA)プロトコルを介してデータを受信する、請求項1に記載のシステム。
【請求項6】
前記プロキシサーバは、前記アプリケーションサーバから、Remote Display Protocol(RDP)を介してデータを受信する、請求項1に記載のシステム。
【請求項7】
前記プロキシサーバは、前記アプリケーションサーバから受信した前記データを修正する、請求項1に記載のシステム。
【請求項8】
前記プロキシサーバは、前記アプリケーションサーバから受信した前記データをスケーリングする、請求項7に記載のシステム。
【請求項9】
前記プロキシサーバは、前記アプリケーションサーバから受信した前記データのカラー深さを修正する、請求項7に記載のシステム。
【請求項10】
前記プロキシサーバは、前記アプリケーションサーバから受信した前記データに損失イメージ圧縮を実行する、請求項7に記載のシステム。
【請求項11】
前記プロキシサーバは、前記アプリケーションプログラムによって生成されたグラフィカルディスプレイ出力のスクリーンにおける変化を表わすデータを、前記アプリケーションサーバデータから受信し、更新された静的イメージデータを前記クライアントアプリケーションに送信する、請求項1に記載のシステム。
【請求項12】
前記更新された静的イメージデータは、所定の期間が経過した後に、前記プロキシサーバによって送信される、請求項11に記載のシステム。
【請求項13】
前記クライアントアプリケーションによって受信された前記静的イメージデータは、GIF形式のイメージファイルの少なくとも一部を備える、請求項1に記載のシステム。
【請求項14】
前記クライアントアプリケーションによって受信された前記静的イメージデータは、JPEG形式のイメージファイルの少なくとも一部を備える、請求項1に記載のシステム。
【請求項15】
前記クライアントアプリケーションは、前記プロキシサーバから、Hyper Text Transfer Protocol(HTTP)を介して、静的イメージデータを受信する、請求項1に記載のシステム。
【請求項16】
前記クライアントアプリケーションは、JAVA(登録商標)アプリケーションを備える、請求項1に記載のシステム。
【請求項17】
前記クライアントアプリケーションは、実行中に、50kB未満のメモリを使用する、請求項1に記載のシステム。
【請求項18】
前記クライアントアプリケーションは、前記プロキシサーバからの更新された静的イメージデータを要求する、請求項1に記載のシステム。
【請求項19】
前記ユーザデバイスは、携帯電話を備える、請求項1に記載のシステム。
【請求項20】
サーバ上で実行するアプリケーションプログラムによって生成された出力を、ユーザデバイスに表示する方法であって、該方法は、
(a)グラフィカルユーザインターフェースデータのスクリーンを生成するアプリケーションを、アプリケーションサーバによって実行するステップと、
(b)生成されたグラフィカルユーザインターフェースデータの該スクリーンを、該アプリケーションサーバによってプロキシサーバに送信するステップと、
(c)生成されたグラフィカルユーザインターフェースデータの該スクリーンの少なくとも一部を表わす静的イメージデータを、該プロキシサーバによってユーザデバイスに送信するステップと、
(d)該送信された静的イメージデータを、該ユーザデバイスによって表示するステップと
を包含する、方法。
【請求項21】
前記実行するアプリケーションによって生成されたグラフィカルユーザインターフェースデータの前記スクリーンを、プレゼンテーションプロトコル形式内の少なくとも第一のメッセージの中に、前記アプリケーションサーバによってフォーマットするステップをさらに包含する、請求項20に記載の方法。
【請求項22】
前記実行するアプリケーションによって生成されたグラフィカルユーザインターフェースデータの前記スクリーンを、Independent Computing Architecture(ICA)プロトコル形式内の少なくとも第一のメッセージの中に、前記アプリケーションサーバによってフォーマットするステップをさらに包含する、請求項20に記載の方法。
【請求項23】
前記実行するアプリケーションによって生成されたグラフィカルユーザインターフェースデータの前記スクリーンを、前記アプリケーションサーバによってRemote Display Protocol(RDP)形式内の少なくとも第一のメッセージの中に、フォーマットするステップをさらに包含する、請求項20に記載の方法。
【請求項24】
生成されたグラフィカルユーザインターフェースデータの前記スクリーンの少なくとも一部を表わす静的イメージを、前記プロキシサーバによって生成するステップをさらに包含する、請求項20に記載の方法。
【請求項25】
前記アプリケーションサーバから受信したデータを、前記プロキシサーバによって修正するステップをさらに包含する、請求項20に記載の方法。
【請求項26】
前記修正するステップは、前記アプリケーションサーバから受信した前記データに損失イメージ圧縮を適用することを包含する、請求項25に記載の方法。
【請求項27】
前記修正するステップは、前記アプリケーションサーバから受信した前記データのカラー深さを変更することを包含する、請求項25に記載の方法。
【請求項28】
前記修正するステップは、前記アプリケーションサーバから受信した前記データをスケーリングすることを包含する、請求項25に記載の方法。
【請求項29】
前記ステップ(c)は、グラフィカルユーザ出力の前記スクリーンの少なくとも一部を表わすGIFイメージデータを、前記プロキシサーバによって、ユーザデバイスに送信することを包含する、請求項18に記載の方法。
【請求項30】
前記ステップ(c)は、グラフィカルユーザ出力の前記スクリーンの少なくとも一部を表わすJPEGイメージデータを、前記プロキシサーバによって、ユーザデバイスに送信することを包含する、請求項20に記載の方法。
【請求項31】
前記ステップ(c)は、Hyper Text Transfer Protocol(HTTP)を介して、グラフィカルユーザインターフェースデータの前記スクリーンの少なくとも一部を表わす静的イメージデータを、前記プロキシサーバによって、ユーザデバイスに送信することを包含する、請求項20に記載の方法。
【請求項32】
前記ユーザデバイスからの入力を表わすデータを、前記プロキシサーバによって、受信するステップをさらに包含する、請求項20に記載の方法。
【請求項33】
前記受信したユーザ入力データを、前記アプリケーションサーバに、前記プロキシサーバによって、送信するステップをさらに包含する、請求項32に記載の方法。
【請求項34】
生成されたグラフィカルユーザインターフェースデータの前記スクリーン内の変化を表わす前記アプリケーション実行サーバからのデータを、前記プロキシサーバによって、受信するステップをさらに包含する、請求項20に記載の方法。
【請求項35】
生成されたグラフィカルユーザインターフェースデータの前記変化したスクリーンを表わす静的イメージデータを、前記プロキシサーバによって、ユーザデバイスに送信するステップをさらに包含する、請求項34に記載の方法。
【請求項36】
前記送信するステップは、所定の期間が経過した後に起こる、請求項35に記載の方法。
【請求項37】
更新された静的イメージ情報を、クライアントアプリケーションによって、送信するステップをさらに包含する、請求項20に記載の方法。
【請求項38】
サーバ上で実行するアプリケーションプログラムによって生成された出力を、ユーザデバイスに表示する装置であって、
アプリケーションサーバから、該アプリケーションサーバ上で実行するアプリケーションによって生成されたグラフィカルディスプレイ出力のスクリーンを表わすデータを、第一のプロトコル形式で受信する第一のプロトコルハンドラと、
該第一のプロトコルハンドラによって受信されたグラフィカルディスプレイ出力の該スクリーンの少なくとも一部を表わす静的イメージデータを、表示用クライアントアプリケーションに、第二のプロトコル形式で送信する第二のプロトコルハンドラと
を備える、装置。
【請求項39】
前記第二のプロトコルハンドラは、ユーザ入力を表わすデータを、前記クライアントアプリケーションから受信する、請求項38に記載の装置。
【請求項40】
前記第一のプロトコルハンドラは、前記第二のプロトコルハンドラによって受信されたユーザ入力を表わす前記データを、前記アプリケーションサーバに送信する、請求項39に記載の装置。
【請求項41】
前記第一のプロトコルハンドラは、前記受信したデータを、前記第一のプロトコルから前記第二のプロトコルに翻訳する、請求項38に記載の装置。
【請求項42】
前記第二のプロトコルハンドラは、前記受信したデータを、前記第一のプロトコルから前記第二のプロトコルに翻訳する、請求項38に記載の装置。
【請求項43】
前記第一のプロトコル内で、前記第一のプロトコルハンドラによって受信されたデータにアクセスし、それを前記第二のプロトコル形式の少なくとも1つのメッセージに翻訳する翻訳モジュールをさらに備える、請求項38に記載の装置。
【請求項44】
サーバ上で実行するアプリケーションプログラムによって生成されたグラフィカルディスプレイ出力を、ユーザデバイスに表示する方法であって、
(a)アプリケーションサーバから、第一のプロトコル形式を介して、該アプリケーションサーバ上で実行するアプリケーションによって生成されたグラフィカルディスプレイ出力のスクリーンを表わすデータを受信するステップと、
(b)ディスプレイ用クライアントアプリケーションに、第二のプロトコルを介して、
該アプリケーションサーバ上で実行する該アプリケーションによって生成されたグラフィカルディスプレイ出力の該スクリーンの少なくとも一部を表わす静的イメージデータを送信するステップと
を包含する、方法。
【請求項45】
前記クライアントアプリケーションから、前記第二のプロトコルを介して、前記アプリケーションプログラムへのユーザ入力を表わすデータを受信するステップをさらに包含する、請求項44に記載の方法。
【請求項46】
前記アプリケーションに、前記第一のプロトコルを介して、前記クライアントアプリケーションから受信したユーザ入力を表わすデータを送信するステップをさらに包含する、請求項45に記載の方法。
【請求項47】
グラフィカルディスプレイ出力の前記スクリーンを表わすデータを、第一のプロトコル形式から、第二のプロトコル形式翻訳するステップをさらに包含する、請求項44に記載の方法。
【請求項48】
ステップ(b)は、ディスプレイ用クライアントアプリケーションに、第二のプロトコルを介して、前記アプリケーションサーバ上で実行するアプリケーションのグラフィカルディスプレイ出力の前記スクリーンの少なくとも一部を表わすGIFデータを送信することを包含する、請求項44に記載の方法。
【請求項49】
前記GIFファイルは、HyperText Transfer Protocol(HTTP)を介して、前記クライアントアプリケーションに送信される、請求項48に記載の方法。
【請求項50】
ステップ(b)は、ディスプレイ用クライアントアプリケーションに、第二のプロトコルを介して、前記アプリケーションサーバ上で実行するアプリケーションのグラフィカルディスプレイ出力の前記スクリーンの少なくとも一部を表わすJPEGデータを送信することを包含する、請求項44に記載の方法。
【請求項51】
サーバ上で実行するアプリケーションプログラムによって生成された出力を、ユーザデバイスで表示するシステムであって、該システムは、
アプリケーションプログラムを実行するアプリケーションサーバと、
該アプリケーションサーバから、プレゼンテーションレベルのプロトコルを介して、該アプリケーションプログラムによって生成されたグラフィカルディスプレイ出力のスクリーンを表わすデータを受信するプロキシサーバと、
クライアントアプリケーションを実行するユーザデバイスであって、該クライアントアプリケーションは、該プロキシサーバから、該アプリケーションプログラムによって生成された該グラフィカルディスプレイ出力のスクリーンを表わす静的イメージデータを、HyperText Transfer Protocol(HTTP)コマンドを介して受信する、ユーザデバイスと
を備える、システム。
【請求項52】
サーバ上で実行するアプリケーションプログラムによって生成される出力を、ユーザデバイスに表示する方法であって、該方法は、
(a)グラフィカルユーザインターフェースデータのスクリーンを生成するアプリケーションを、アプリケーションサーバによって実行するステップと、
(b)生成されたグラフィカルユーザインターフェースデータの該スクリーンを、該アプリケーションサーバによって、プレゼンテーションレベルのプロトコルを介して、プロキシサーバに送信するステップと、
(c)生成されたグラフィカルユーザインターフェースデータの該スクリーンの少なくとも一部を表わす静的イメージデータを、該プロキシサーバによって、HyperText Transfer Protocol(HTTP)コマンドを介して、ユーザデバイスに送信するステップと、
(d)該送信された静的イメージデータを、該ユーザデバイスによって表示するステップと
を包含する、方法。
【請求項53】
サーバ上で実行するアプリケーションプログラムによって生成される出力を、ユーザデバイスに表示するコンピュータ読み出し可能なプログラム手段を具体化した製品の品目であって、該製品の品目は、
該サーバ上で実行するアプリケーションによって生成されたグラフィカルユーザデータインターフェースのスクリーンを、プロキシサーバに送信するコンピュータ読み出し可能なプログラム手段と、
生成されたグラフィカルユーザデータインターフェースの該スクリーンの少なくとも一部を表わす静的イメージデータを、該プロキシサーバによって、ユーザデバイスに通信するコンピュータ読み出し可能なプログラム手段と、
該送信された静的イメージデータを、該ユーザデバイスによって、表示するコンピュータ読み出し可能なプログラム手段と
を備える、製品の品目。
【請求項54】
サーバ上で実行するアプリケーションプログラムによって生成されるグラフィカルディスプレイ出力を、ユーザデバイスに表示するコンピュータ読み出し可能なプログラムを具体化した製品の品目であって、
アプリケーションサーバから、第一のプロトコルを介して、アプリケーションサーバ上で実行するアプリケーションによって生成されたグラフィカルディスプレイ出力のスクリーンを表わすデータを受信するコンピュータ読み出し可能なプログラム手段と、
第二のプロトコルを介して、該アプリケーションサーバ上で実行するアプリケーションによって生成されたグラフィカルディスプレイ出力の該スクリーンの少なくとも一部を表わす静的イメージデータを、ディスプレイ用クライアントアプリケーションに通信するコンピュータ読み出し可能なプログラム手段と
を備える、製品の品目。

【図1】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図3】
image rotate

【図4】
image rotate


【公表番号】特表2008−502176(P2008−502176A)
【公表日】平成20年1月24日(2008.1.24)
【国際特許分類】
【出願番号】特願2007−513436(P2007−513436)
【出願日】平成17年5月13日(2005.5.13)
【国際出願番号】PCT/US2005/016928
【国際公開番号】WO2005/114395
【国際公開日】平成17年12月1日(2005.12.1)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.FRAM
【出願人】(502239313)サイトリックス システムズ, インコーポレイテッド (36)
【Fターム(参考)】