JP2002512395A - 仮想デスクトップ・システム・アーキテクチャを提供するための方法および装置 - Google Patents

仮想デスクトップ・システム・アーキテクチャを提供するための方法および装置

Info

Publication number
JP2002512395A
JP2002512395A JP2000545088A JP2000545088A JP2002512395A JP 2002512395 A JP2002512395 A JP 2002512395A JP 2000545088 A JP2000545088 A JP 2000545088A JP 2000545088 A JP2000545088 A JP 2000545088A JP 2002512395 A JP2002512395 A JP 2002512395A
Authority
JP
Japan
Prior art keywords
data
stateless
user
interconnect structure
computing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2000545088A
Other languages
English (en)
Inventor
ノースカット,ジェイ・デュアン
ハンコ,ジェームズ・ジイ
ルバーグ,アラン・ティ
ウォール,ジェラルド・エイ
ブッチャー,ローレンス・エル
ウィルヘルム,ニール・シイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JP2002512395A publication Critical patent/JP2002512395A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Abstract

(57)【要約】 本発明は計算用の中央局メタファを提供し、その特徴と機能は1つまたは複数のサーバによって提供され、ネットワークを介して機器端末に伝達される。データ・プロバイダは、「サービス」と定義され、1つまたは複数の処理資源によって提供される。サービスは、イーサネットなどのネットワークを介して表示端末と通信する。端末は、データを表示し、ネットワークを介して処理サーバにキーボード・データ、カーソル・データ、オーディオ・データ、およびビデオ・データを送信するように構成されている。機能は分割されており、サービスによってデータベース、サーバ、およびグラフィカル・ユーザ・インタフェース機能が提供されるようにされ、人間インタフェース機能は端末によって提供される。各種サービスからの端末との通信は、異なる出力を共通プロトコルに変換することで行われる。サービスごとにプロトコル変換を行う適切なドライバを用意する。複数の端末をネットワークに結合する。ユーザは、「スマート・カード」をカード・リーダーに挿入することによりいずれかの端末で一意的なセッションを有効にすることができる。カードを取り外すと、セッションは無効になる。カードを再度同じ端末または他の端末に挿入すると、セッションが再度有効になる。

Description

【発明の詳細な説明】
【0001】 〔発明の背景〕 〔1.発明の分野〕 本発明は、コンピュータ・システムの分野に関する。
【0002】 本特許文書の開示の一部には、著作権保護の対象となる資料が含まれている。
著作権所有者は、特許商標局のファイルおよび記録に記載されているとおり、特
許文書または特許開示の複製を拒絶していないが、他の方法ですべての著作権を
留保しているSun、Sun Microsystems、Sunのロゴ、Ja
va、JavaBeans、HotJava、およびすべてのJavaベースの
商標およびロゴは、米国およびその他の国々においてSun Microsys
tems,Inc.の商標または登録商標である。
【0003】 〔2.背景技術〕 コンピュータ・ユーザは、ますます低コストで高性能な計算装置を望んでいる
。このような要求に応えようとする現在の試みの結果、少しばかり安価であって
も、性能は著しく劣る計算システムが構築された。コンピュータ・ユーザが選択
できるのは、かなり性能の劣るコンピュータにわずかに安い金額を支払うという
ことである。解決すべき問題は、かなり低いコストで相当以上の性能を持つコン
ピュータをいかにして得るかということである。この問題は、計算システムの発
展を再検討することで理解が深まる。
【0004】 コンピュータ・システムの構成におけるパラダイム(典型例)は年月の経過と
とももに変化してきた。初期の頃には、コンピュータは一部屋分のサイズの装置
であり、ユーザがコンピュータのすぐ近くにいてアクセスしていた。このような
コンピュータは、「メインフレーム」コンピュータと呼ばれていた。結局、多数
のユーザがメインフレームの計算能力にアクセスできるようにすることが望まし
くなった。その結果、複数のいわゆる「ダム・ターミナル(dumb terminals)」を
使用し、ネットワーク経由でメインフレームと通信することになった。メインフ
レームは、計算能力とデータ記憶装置を備えた中央ステーションであった。ダム
・ターミナルは、メインフレームによって提供されたデータ用の表示デバイスで
あり、またある種のデータをメインフレームに伝達するための手段ともなった。
こうした端末のことをダム・ターミナルと呼ぶのは、ローカルで処理する能力や
データ記憶機能を保有していなかったからである。端末は、メインフレーム・ネ
ットワークとの接続を絶たれると、計算機として使用できない。メインフレーム
/端末アーキテクチャの欠点としては、メインフレーム・コンピュータ自体と関
連する高コストであるという点であった。メインフレームと端末システムを購入
して利用する正当な理由としては、多数のユーザが使用するという大きな関心事
しかなかった。
【0005】 デスクトップ・コンピュータともに呼ばれる、パーソナル・コンピュータの導
入は、メインフレーム・システムの欠点を解決する一手段となった。デスクトッ
プ・コンピュータは、自給自足型の計算システムであり、すべてのアプリケーシ
ョン、データ、および計算能力がデスクトップ・コンピュータ・システム自体に
置かれている。このようなパーソナル・コンピュータにより、家庭とオフィスに
おけるコンピュータの利用に拍車がかかった。デスクトップ・システムのコスト
は、メインフレーム環境に比べて比較的安価である。一人のユーザが1台のデス
クトップ・システムを買える余裕がある。しかし、デスクトップ・コンピュータ
を使用するうえでいくつかの欠点がすぐに明らかになった。欠点の1つが、デス
クトップ・コンピュータの孤立化であった。中央集中型の一貫したネットワーク
の一部ではなくなったため、ユーザが他のユーザとデータを共有することが困難
である。デスクトップ・コンピュータそれぞれにソフトウェアが装備されている
ため、異なるコンピュータ上ではソフトウェア・アプリケーションのバージョン
非互換性の問題が生じた。さらに、オペレーティング・システムが複数あるため
、一部のデータの共有がまったくできない場合や、互換性のある形式に特別に変
換してからでないと共有できない場合がある。
【0006】 クライアント/サーバ・システムの出現により、こうした問題に対する解決策
が提示された。デスクトップ・コンピュータは、会社のネットワークで相互にリ
ンクされるようになった。共通データ、場合によってはアプリケーションは、サ
ーバと呼ばれる中央計算システムに格納される。サーバは、共通データを保持し
、要求があったときにそのコピーをクライアント(デスクトップ・コンピュータ
)に提供する。クライアント・サーバ・システムにも欠点があった。1つは、ハ
ードウェアの旧式化である。デスクトップ・コンピュータはマイクロプロセッサ
で動作するものであり、より高速でより強力なマイクロプロセッサが利用できる
ようになると、既存のデスクトップ・システムのアップグレードや、新しいデス
クトップ・システムの購入が必要になる。多くのオフィスには、パーソナル・デ
スクトップ・コンピュータが全体に分散されており、ときには、数千台、数万台
を数えることもある。システム用RAMなどの一部のハードウェア・コンポーネ
ントは、デスクトップ・システムをまるごと交換しなくてもアップグレードでき
る。しかし、デスクトップ・システムの使用年数とタイプによって、システム用
RAMに対し可能なアップグレードには限界がある。アップグレードできたとし
ても、数万台ものデスクトップ・コンピュータのアップグレードのコストは膨大
なものになりうる。同様の問題が、ローカルのハードウェア・ディスク・ストレ
ージのアップグレードにも存在する。システムをアップグレードすることができ
なくなったときに、交換しなければならない。より新しいバージョンのソフトウ
ェア・アプリケーションとオペレーティング・システムを導入するには、場合に
よっては、もはや既存のデスクトップ・システムには合わないハードウェア仕様
を使用する必要がある。これには、数万台ものデスクトップ・コンピュータを交
換する必要があり、3年ごとに実施しなければならない場合もある。
【0007】 このようなシステムの欠点としてもう1つ、個々のシステムにおけるアプリケ
ーションとデータの互換性の欠如があげられる。ユーザによっては、旧バージョ
ンのソフトウェアと下位互換性のない新しいバージョンのソフトウェア・アプリ
ケーションを所有している場合がある。このような問題の解決策は、すべてのシ
ステムで一貫するソフトウェアを保持することである。しかし、各システムをア
ップグレードし、ソフトウェアおよびソフトウェア・アップグレードのライセン
ス付きコピーを提供するコストは、かなりの額に上る可能性がある。さらに、ソ
フトウェアのインストールとソフトウェアのメンテナンスに、大きな管理面の労
力が要求される。リモート・システム管理能力があっても、ソフトウェア・リソ
ースの追跡とカタログ化は煩わしい作業である。会社必須ソフトウェアに加えて
、ユーザは、ネットワーク運用全体に芳しくない影響を及ぼす、娯楽ソフトウェ
ア、ソフトウェア・オプティマイザ、さらには生産性向上ツールなど、無許可の
ソフトウェアを自分のシステムに追加するのがふつうである。それ以上に危険な
のは、ユーザが無許可アプリケーションをインストールすることでコンピュータ
・ウイルスを会社のネットワークに導き入れるということである。
【0008】 最近、インターネットの利用が進み、いわゆる「ネットワーク・コンピュータ
」の利用が提案されるようになった。ネットワーク・コンピュータとは、ストレ
ージ領域、メモリを減らし、そして多くの場合、計算能力を低く抑えた、よけい
なものを取り払ったパーソナル・コンピュータのことである。ネットワーク・コ
ンピュータは、インターネットを介してデータにアクセスし、特定のタスクに必
要なアプリケーションのみをネットワーク・コンピュータに用意するというのが
その考え方である。アプリケーションは、使用し終わっても、ネットワーク・コ
ンピュータ上には格納されない。このようなシステムについては、フル装備のデ
スクトップ・システムの能力を欠いていながら、この能力の低下に見合う程には
安価でないという批判もあった。さらに、ネットワーク・コンピュータがデスク
トップ・システムのサブセットであったとしても、それでもネットワーク・コン
ピュータは適切な性能レベルを維持するためにハードウェアとソフトウェアのア
ップグレードが必要な場合がある。
【0009】 メインフレーム・システムの管理面の容易さをあわせ持ち、ハードウェアの旧
式化が少なく、性能を維持しながらもコスト面でデスクトップ・システムよりも
優れているシステムが要求される。
【0010】 〔発明の概要〕 本発明は計算用の中央局メタファを提供し、その特徴と機能は1つまたは複数
のサーバによって提供され、ネットワークを介して機器端末に伝達される。デー
タ・プロバイダは、「サービス」と定義され、1つまたは複数の処理資源によっ
て提供される。サービスは、イーサネットなどのネットワークを介して表示端末
と通信する。端末は、データを表示し、ネットワークを介して処理サーバにキー
ボード・データ、カーソル・データ、オーディオ・データ、およびビデオ・デー
タを送信するように構成されている。機能は分割されており、サービスによって
データベース、サーバ、およびグラフィカル・ユーザ・インタフェース機能が提
供され、人間インタフェース機能は端末によって提供される。各種サービスから
の端末への通信は、異なる出力を共通プロトコルに変換することで行われる。サ
ービスごとにプロトコル変換を行う適切なドライバを用意する。複数の端末をネ
ットワークに結合する。ユーザは、「スマート・カード」をカード・リーダーに
挿入することによりいずれかの端末で一意的なセッションを有効にすることがで
きる。カードを取り外すと、セッションは無効になる。カードを再度同じ端末ま
たは他の端末に挿入すると、セッションが再度有効になる。
【0011】 〔発明の詳細な説明〕 本発明は、仮想デスクトップ・システム・アーキテクチャを提供するための方
法および装置である。次の説明では、本発明の実施形態についてより詳しく説明
するため多数の具体的内容を記述している。ただし、当業者であれば、こうした
具体的内容がなくても本発明を実践できることは明白であろう。他の場合には、
本発明をわかりにくくしないため、よく知られている特徴については詳しく説明
していない。
【0012】 本発明は、仮想デスクトップ・アーキテクチャと呼ばれる新しいコンピュータ
・システムを提供する。このシステムは、従来技術のシステムに比べて低いコス
トでかなり高いレベルの機能を備える。本発明は、インストール済みの中央サー
バとユーザ・ハードウェアとの間で機能の再分割を行う。データおよび計算機能
は、中央集中処理配置を用いてデータ資源により提供される。ユーザ側では、ユ
ーザに対し出力を生成するもの(たとえば、表示装置やスピーカ)、ユーザから
の入力を受け取るもの(たとえば、マウスやキーボード)、あるいはユーザが対
話操作するためのその他の周辺装置(たとえば、スキャナ、カメラ、着脱可能記
憶装置など)以外のすべての機能が除かれている。
【0013】 計算はすべて、中央データ資源によって行われ、計算はデータの宛先とは無関
係に実行される。データ資源の出力先は端末であり、「人間インタフェース・デ
バイス」(HID,Human Interface Device)と呼ばれる。HIDは、データを
受信し、データを表示する機能を持つ。
【0014】 本発明の仮想デスクトップ・システム・アーキテクチャは他の分割度の高いシ
ステムと似ていると思われる。たとえば、パブリックな電話会社は強力で高い処
理能力を保持し、中央局に大規模なデータベースを置いている。しかし、人間イ
ンタフェース・デバイス、すなわち電話器は、比較的単純なものであり、新しい
機能やサービスを電話会社が付加したときでもアップグレードの必要はない。電
話器それ自体は、低コストで、きわめて陳腐化の度合いの低い器具となっている
。それと同様に、ほとんどのコンピュータ・システムの表示モニタも陳腐化の度
合いが低く、ほとんどのデスクトップ・システムのアップグレードにおいてもそ
のままに保持されているのがふつうである。
【0015】 《仮想デスクトップ・システム・アーキテクチャ》 このシステムでは、システムの機能は、表示および入力デバイスと、データ・
ソースすなわちサービスとに分割される。表示および入力デバイスは人間インタ
フェース・デバイス(HID)である。このシステムは分割することで、状態お
よび計算機能が、HIDから除去されて、データ・ソースすなわちサービス上に
置かれる。本発明の一実施形態では、1つまたは複数のサービスがネットワーク
などの相互接続構造(interconnection fabric)により1つまたは複数のHIDと
通信する。このようなシステムの例を図3に示す。図3を見ると、システムは相
互接続構造301からHID302にデータを伝達する計算サービス・プロバイ
ダ300から成り立っている。
【0016】 《計算サービス・プロバイダ》 HIDシステムでは、計算能力および状態保守は、サービス・プロバイダすな
わちサービス側にある。サービスは、特定のコンピュータに結びつけられてはい
ないが、図1と関連して説明しているものなどの1つまたは複数の従来のデスク
トップ・システム上に分散するか、または従来のサーバで分散できる。1つのコ
ンピュータに1つ以上のサービスを持たせることも、また1つのサービスを1つ
または複数のコンピュータで提供することもできる。サービスでは、計算、状態
、およびデータをHIDに提供し、サービスは共通の当局ないし管理者の制御の
下に置かれる。図3では、サービスはコンピュータ310、311、312、3
13、および314に置かれている。中央データ・ソースも、たとえばインター
ネットやワールド・ワイド・ウェブなど、中央データ・ソースの外部から来るデ
ータを提供できることに注意することが重要である。データ・ソースはさらに、
テレビやラジオの信号などのデータを放送するものなどの放送局(放送エンティ
ティ)であってもよい。
【0017】 サービスの例としては、X11/Unixサービス、アーカイブされているか
若しくはライブのオーディオ又はビデオ・サービス、Windows NTサー
ビス、JavaTMプログラム実行サービスなどがある。ここでサービスとは、出
力データを提供し、ユーザの要求および入力に応答するプロセスのことである。
【0018】 与えられたサービスにアクセスするために現在使用されているHIDとの通信
を処理するのがサービスの役割である。そのために、計算サービスから出力を取
り出して、HID用の標準プロトコルに変換する必要がある。このデータ・プロ
トコル変換は、本発明の一実施形態において、サービス・プロデューサ・マシン
内のX11サーバ、Microsoft Windowsインタフェース、ビデ
オ・フォーマット・トランスコーダ、OpenGLインタフェース、またはja
va.awt.graphicsクラスの一変種などのミドルウェア層により処
理される。サービス・マシンは、仮想デスクトップ・アーキテクチャのワイヤ・
プロトコルとの間の変換を処理する。
【0019】 本発明の一実施形態において、各サービスはその性能に合わせて最適化された
計算デバイスにより提供される。たとえば、エンタプライズ・クラスのマシンを
使用してX11/Unixサービスを提供する、Sun MediaCente
rを使用してビデオ・サービスを提供する、HydraベースのNTマシンでア
プレット・プログラム実行サービスを提供するといったことが可能である。
【0020】 相互接続構造を介して、サービス生成コンピュータ・システムを直接HIDに
接続する。また、サービス・プロデューサは、3層アーキテクチャのデータベー
ス用コンピュータなどの計算サービスを提供する他のデバイス用のプロキシとす
ることも可能であるが、ただしプロキシ・コンピュータはクエリを生成し、ユー
ザ・インタフェース・コードを実行するだけの場合もある。
【0021】 《相互接続構造》 本発明では、相互接続構造はサービスとHIDとの間でデータを伝送するため
の複数の適当な通信経路で構成される。一実施形態において、相互接続構造はイ
ーサネット・ネットワークとして実装されたローカル・エリア・ネットワークで
ある。他のローカル・ネットワークも使用できる。本発明ではさらに、ワイド・
エリア・ネットワーク、インターネット、ワールド・ワイド・ウェブなどの使用
も考慮している。相互接続構造は、ワイヤや光ファイバ・ケーブルなどの物理的
媒体で実装することもできるし、またワイヤレス環境で実装することもできる。
【0022】 本発明の一実施形態において、相互接続構造は、HIDとアクセスされている
サービスとの間の、能動的に管理され、待ち時間が短い、高帯域幅通信を提供す
る。一実施形態では、協調的(競合とは反対)ネットワーク・トラフィックを持
つ単一レベル交換ネットワークを考慮している。本発明では、専用または共有通
信相互接続を使用することができる。
【0023】 《人間インタフェース・デバイス》 HIDは、ユーザがサービスによって提供される計算サービスにアクセスする
ための手段である。図3には、HID 321、322、および323が示され
る。HIDは、表示装置326、キーボード324、マウス325、およびオー
ディオ・スピーカ327から成り立っている。HIDには、電子回路が備えられ
ており、その電子回路でこれらのデバイスを相互接続構造とインタフェースし、
サービスとの間でデータのやり取りを行う必要がある。
【0024】 HIDのブロック図を図4に示す。HIDのコンポーネントはPCIバス41
2に内部的に結合されている。ネットワーク制御ブロック402は、ライン41
4を介してイーサネットなどの相互接続構造と交信する。オーディオ・コーデッ
ク403は、インタフェース416でオーディオ・データを受信し、ブロック4
02に結合されている。USBデータ通信機能は、USBコントローラ401に
つながっているライン413で提供される。
【0025】 組込みプロセッサ404は、たとえば、Sparc2epであり、フラッシュ
・メモリ405およびDRAM 406が結合されている。USBコントローラ
401、ネットワーク・コントローラ402、および組込みプロセッサ404は
すべて、PCIバス412に結合されている。さらにPCI 412には、ビデ
オ・コントローラ409が結合されている。ビデオ・コントローラ409は、た
とえば、ATI RagePro+フレーム・バッファ・コントローラであり、
これがライン415上にSVGA信号を出力する。ビデオ・デコーダ410およ
びビデオ・エンコーダ411によりビデオ・コントローラとの間でNTSCデー
タの入出力が行われる。スマートカード・インタフェース408も、ビデオ・コ
ントローラ409に結合できる。
【0026】 それとは別に、HIDは、図5に示されているように、シングル・チップ・ソ
リューションを使用して提供することができる。このシングル・チップ・ソリュ
ーションには、CPU 501およびグラフィック・レンダラ505を介して実
装されている必要な処理能力を持つ。チップ・メモリ507が、ビデオ・コント
ローラ/インタフェース506とともに設けられている。ユニバーサル・シリア
ル・バス(USB)コントローラ502が設けられて、HIDに取り付けられる
マウス、キーボード、およびその他のローカル・デバイスと通信することができ
る。サウンド・コントローラ503および相互接続インタフェース504も備え
られている。ビデオ・インタフェースは、CPU 501およびグラフィック・
レンダラ505と、メモリ507を共有する。この実施形態で使用するソフトウ
ェアは、ローカルの不揮発性メモリに格納しておくこともできるが、デバイスの
電源投入時に相互接続インタフェースを通じてロードすることもできる。
【0027】 《仮想デスクトップ・システム・アーキテクチャの動作》 セッションの処理 仮想デスクトップ・システム・アーキテクチャにおけるサービスの提供は、セ
ッションと呼ばれる抽出的作用(abstraction) を中心として行われる。セッショ
ンと言うのは、ユーザのために実行中のサービスについての、任意の時点におけ
る、長い時間存続し、持続的で、信頼できる表現である。新規ユーザがシステム
上で有効にされると新規セッションが作成され、ユーザがシステムから削除され
るとユーザのすべてのセッションは破壊される。セッションなる抽出的作用は、
セッション・マネージャと呼ばれる機能によって保持され、セッション・マネー
ジャは、ユーザとセッションとの間のマッピングのデータベースを保持し、各セ
ッションを構成するサービスを管理することがその役目である。システムが認識
しているユーザごとに、1つまたは複数のセッションがある。セッション・マネ
ージャは、ユーザにサービスを提供し、これにより、セッションの構成および新
規セッションの作成が可能になる。
【0028】 本発明のシステムでは、ユーザは特定のHIDに結びつけられていない。ユー
ザは、ユーザ・セッションと関連付けられており、セッションはユーザがアクセ
スするHID上に表示できる。認証マネージャよる抽出的作用は、ユーザの合法
性を保証し、ユーザをそれの所望のセッションに関連付ける役割を持つ。HID
は通常、使用中でなければ、スリープ・モード、スタンバイ・モード、またはオ
フ・モードのいずれいかにある。ユーザが特定のHIDを使用したい場合、認証
交換が行われるが、これは1つまたは複数のスマートカード、キー、パスワード
、および/または生物測定メカニズムで構成されることがある。
【0029】 認証マネージャは、ユーザの確認を行うと、ユーザの現在のセッション・マネ
ージャに通知し、その後、このセッション・マネージャが選択されたセッション
内のすべてのサービスに通知し、セッションの表示をユーザのデスクトップ上に
構成する。ユーザは、セッション内から既存のサービスと対話し、新規サービス
を開始し、あるいは実行中のサービスを停止するなどの操作を行い得る。ユーザ
がHIDから出ると(たとえば、スマートカードを引き抜いて)、認証マネージ
ャはこのことを記憶し、セッション・マネージャに通知し、その後セッション・
マネージャは関連するすべてのサービスに通知し、表示機能を停止し、HIDは
休眠状態に戻る。HIDのアクティブ化と非アクティブ化の効果は、デスクトッ
プ・システム上の表示モニタをオフにする操作と似ている。ユーザ・デスクトッ
プはまだ使用可能であり、たぶん実行中であるが、表示は生成されない。本発明
の1つの利点は、接続されている任意のHID上でユーザ・デスクトップにアク
セスできるということである。
【0030】 図2は、本発明のセッション管理および許可の例である。これは、本発明の譲
受人に譲渡され、参照により本明細書に記載されたものとする、1998年4月
20日出願の「Method and Apparatus for Sess
ion Management and User Authenticati
on」という名称の米国特許出願第09/063,339号に記載されている。
図2において、ネットワーク端末202は、人間インタフェース・デバイス(H
ID)であり、ユーザにサービスの出力を表示し、ユーザからサービスへの入力
を受け取る作業を受け持つ。ネットワーク端末202は、たとえば、計算サービ
ス・プロバイダ上で実行中のソフトウェア・プログラム(たとえば、サービス2
30〜238、認証204、およびセッション・マネージャ206)から受信し
たコマンド(たとえば、表示コマンド)に応答する機能を持つ。ユーザから受信
した入力は、たとえば、ユーザ要求を遂行しているサービスに転送される。
【0031】 サービスとは、ユーザ用の何らかの機能を実行するプログラムのことである。
複数のサーバがセッションを構成するサービスを実行できる。たとえば、セッシ
ョン208で、サービス230はサーバ210上で実行中で、サービス232お
よび234はサーバ212上で実行中、サービス236および238はサーバ2
14上で実行中である。
【0032】 ユーザは、ログインを開始して、システム(たとえば、サーバ、セッション、
サービス、およびネットワーク端末)にアクセスする。ログイン中に、ユーザの
確認が認証マネージャ204により実行される。ユーザのログイン用に、さまざ
まな手法を利用できる。たとえば、ユーザはネットワーク端末202上のキーを
押してログインを開始できる。
【0033】 本発明の一実施形態では、ユーザは、ネットワーク端末202に取り付けられ
ているカード・リーダ(たとえば、カード・リーダ216)にスマート・カード
を挿入してシステムにアクセスする。スマート・カードとは、スマート・カード
の磁気ストリップまたはメモリなどに情報を格納することができるカードのこと
である。スマート・カードは、ユーザの識別(すなわち、64ビットの数値など
のユーザID)およびネットワーク端末202に送信される秘密コード(たとえ
ば、128ビット乱数)などのユーザ情報を格納することができる。秘密コード
は、認証時に使用される。
【0034】 ネットワーク端末202は、その相互接続ネットワーク・アドレスおよび認証
マネージャ204のアドレスを認識(または取得)することができる。ユーザが
ログインを開始すると、ネットワーク端末202は認証マネージャ204との通
信を開始し、認証を始める。認証マネージャ204は、たとえばローカル・エリ
ア・ネットワーク(LAN)などの相互接続ネットワークを介してネットワーク
端末202に接続されている計算サービス・プロバイダ上でアクティブになって
いる(たとえば実行中の)プログラムである。しかし、ファイバ・チャネル・ル
ープやポイント−ツウ−ポイントのケーブルなどの他の相互接続ネットワーク技
術を使用しても、ネットワーク端末202を認証マネージャ204に接続できる
ことは明白であろう。ネットワーク端末202は、ユーザ識別(ユーザID)を
含むスタートアップ要求を認証マネージャ204に送信する。
【0035】 本発明の一実施形態では、認証マネージャ204は、ユーザの確認のため認証
を開始することによりスタートアップ要求に応答する。認証には、システムに対
するユーザの識別を検証するメカニズムを含めることもできる。そのユーザにし
か知られていないキーやパスワード、あるいは生物測定情報を使用して、ユーザ
の認証を実行できる。
【0036】 本発明の一実施形態では、認証は、ネットワーク端末202でユーザが入力し
た個人識別番号(PIN)を検証することにより実行される。認証マネージャ2
04はコマンド(すなわち、チャレンジ・コマンド)を送信して、ネットワーク
端末202でのユーザのPINの入力を開始させる。ユーザ入力は、ネットワー
ク端末202によってパッケージ化され、認証マネージャ204に送信される(
すなわち、チャレンジ応答)。
【0037】 認証マネージャ204は、認証データベース218に保持されているユーザ情
報、ユーザが提供した情報、および認証時に生成された情報でチャレンジ応答を
検証する。ユーザが認証されると、ユーザはセッション(たとえば、セッション
208)にアクセスできるようになる。セッションとは、ユーザのために実行さ
れている1つまたは複数のサービスの関連する集まりの持続的表現である。
【0038】 ユーザから予想される結果が届いた場合、認証マネージャ204はセッション
・マネージャ206に(接続メッセージを介して)、ユーザがネットワーク端末
202でシステムにログインしたことを通知する。認証データベース218に格
納されているセッション情報を使用して、セッション・マネージャ206のサー
バ、ポート、およびセッション識別子(ID)を識別する。セッション・マネー
ジャ206は、計算サービス・プロバイダ上でアクティブ状態にあるプログラム
であり、たとえば、相互接続ネットワークを介して認証マネージャ204とネッ
トワーク端末202に接続される。認証マネージャ204は、認証データベース
218に格納されているセッション・マネージャ206のサーバおよびポート情
報を使用してセッション・マネージャ206にメッセージを送信する。
【0039】 認証マネージャ204からの接続メッセージへの応答として、セッション・マ
ネージャ206はユーザの現在のセッションに入っているサービス(すなわち、
セッション208のサービス)に、そのユーザがネットワーク端末202に接続
していることを通知する。すなわち、セッション・マネージャ206は接続メッ
セージをサービス230〜238に送信し、出力先をネットワーク端末202に
させる。セッション・マネージャ206は、セッションの要求されたサービスで
あるとみなされるサービスの実行を確保する。もし実行されていなければ、セッ
ション・マネージャ206により、サービスが開始させられる。ユーザは、セッ
ション(たとえば、セッション208)内でサービス230〜238と対話する
ことができる。ネットワーク端末202は、ローカル・エリア・ネットワークや
その他の相互接続技術などの相互接続ネットワークを介してサーバ210、21
2、および214(およびサービス230〜238)に接続されている。ユーザ
は、さらに、新規サービスを起動したり、既存サービスを終了したりすることも
できる。
【0040】 ユーザは、カードをカード・リーダ216から取り出すことで、システムから
離れることができる。さらに切断を表すその他のメカニズムを本発明で使用する
こともできる(たとえば、ネットワーク端末202のサインオフ・ボタン)。サ
ービス230〜238は、ユーザがカードリーダ216からカードを抜いた後も
、引き続き実行できる。すなわち、ユーザの関連セッションおよび、セッション
を構成するサービスはユーザがシステムから離れて不在になっている(ログオフ
)期間も存続を続けることができるということである。ユーザがカードをカード
・リーダ216から取り出すと、ネットワーク端末202は認証マネージャ20
4に(たとえば、切断(ディスコネクト)メッセージで)通知し、認証マネージ
ャはセッション・マネージャ206に(たとえば、切断メッセージで)通知する
。セッション・マネージャ206はサービス230〜238に(たとえば、切断
メッセージで)通知し、これらのサービスはネットワーク端末202への表示コ
マンドの送信を終了する。ただし、サービス230〜238は、ユーザがネット
ワーク端末にログオンしていないときでも実行を続けている。ユーザは、ネット
ワーク端末202などのネットワーク端末を使用してまたログインし、セッショ
ン208に接続し、サービス230〜238と対話することができる。
【0041】 ワイヤ・プロトコル 本発明では、サービス出力を標準プロトコルに、またはここで呼んでいるよう
に「ワイヤ・プロトコル」に変換することで、計算機能を一部いくつかのサービ
スに分割することができる。ワイヤ・プロトコルの一実施形態の例を、付録とし
て添付した。ワイヤ・プロトコルは、ビデオ・データおよびオーディオ・データ
を処理するためのコマンドを備えている。システムはさらに、帯域幅利用を管理
するメカニズムも備える。
【0042】 ビデオ・データ ワイヤ・プロトコルは、ユーザのために実行されるサービスのすべての表示操
作をサポートするように設計されたレンダリング・コマンドを備えている。これ
は、すべての表示操作を多数の2D/矩形操作(たとえば、塗りつぶし(fill)、
コピー、浮彫像(glyph)、 点描(stipple) )に正規化することにより実行される
。イメージまたはビデオ・データの転送のため、ピクセル・アレイ転送操作が用
意されており、圧縮フォーマットを含む異なるフォーマットの小さな集まりを使
用できる。さらに、ワイヤ・プロトコルでは、オーディオ入出力、およびユーザ
接続、切断、および認証を処理する入力デバイス(たとえば、キーボード、マウ
ス)もサポートする。
【0043】 本発明のシステム・アーキテクチャでは、システムのサービス用にレンダリン
グを提供するすべてのAPIが本発明のワイヤ・プロトコルを出力する必要があ
る。これは、一実施形態において、レンダリングAPIでソフトウェア「仮想フ
レーム・バッファ」を使用するようにし、すべてのレンダリング・コマンドを与
えられた高水準APIからワイヤ・プロトコルのコマンドに変換することで実現
される。たとえば、Xサーバを修正してSpansインタフェースからコマンド
を取り去ったり,Microsoft WindowsのGDIインタフェース
を使用して低水準レンダリング・コマンドへのアクセスを獲得したり、MPEG
ビデオ・デコーダを、そのカラースペースがビデオ・データを変換し拡大縮小す
る地点よりも前のところで分割することができる。同様に、java.awt.
graphicsクラスをサブクラス化して、アプリケーションおよびアプレッ
トがワイヤ・プロトコルを吐き出せるようにすることもできる(それにより、X
またはWindowsのレンダリング実行をまとめてバイパスすることで)。
【0044】 2Dレンダリングおよびデバイス入力をサポートするほかに、仮想デスクトッ
プ・プロトコルはさらに、マルチメディア・データ・タイプもサポートする。今
日存在している各種のオーディオ/ビデオ・フォーマットを取り扱うために、2
D表示コマンド・セットのアプローチと似たアプローチが講じられてきた、すな
わち、サービス・プロデューサ上ですべてのレンダリングを実行し、出力を低水
準フォーマットに正規化する。異なるメディア・フォーマットをすべてのHID
で認識できる標準化形式に変換することにより、さまざまなフォーマットをサポ
ートするコスト(一連の専用ハードウェアのアップグレードがあろうとソフトウ
ェアのプラグインがあろうと)が低くなる。ビデオおよび画像処理データは、最
小公倍数で正規化される、すなわちアンスケールで、アン−カラー・スペース変
換で、クローマ・サブサンプルでのピクセル(たとえば、YUV422)である
。このフォーマットは、全コーディング方式の大多数に共通のものであり、プロ
キシ・マシンによるトランスコーディングに役立っている(デコード・パイプラ
インを切り詰め、生ピクセル・データを吐き出す)。さらに、単純な形式の中程
度の圧縮(ソフトウェアによるエンコードもデコードも簡単)のオプション使用
では、圧縮がさらに1/6になり、画質低下に関しては非常に小さい。生のNT
SCビデオは、RGBフォーマットで送信したときに240Mbpsの連続デー
タを表す。クローマ・サブサンプルYUVデータは160Mbpsであり、中程
度の圧縮手法では、フルサイズおよびレートのNTSCウィンドウ(または4つ
のSIFサイズ・ウィンドウなど)を30Mbps程度で転送することができる
。この同じビデオ転送フォーマットを使用して、ビデオ・データをデスクトップ
・デバイスから同様に送信できる。このビデオ・プロトコルは、本発明の譲受人
に譲渡され、引用により本明細書に取り込まれるものとする、1998年4月2
0日出願の「Method and Apparatus of Suppor
ting a Video Protocol in a Network E
nvironment」という名称の米国同時係属出願第09/063,492
号に記載されている。
【0045】 オーディオ・データ オーディオ・データは、仮想デスクトップ・プロトコルの一部として定義され
ているオーディオ・コマンド・セットによりデスクトップとの間でやり取りされ
る。デスクトップ・デバイスでのオーディオ受信は、「ユニバーサル・レシーバ
」アプローチと考えられるものを通じてサポートされており、任意のサンプル・
レート・データの任意の数のストリームをHIDに送信することができ、適宜ス
トリームを混合し、出力する。たとえば、DAT品質のステレオ・オーディオ・
ストリームを48KHz、16ビット/サンプル・フォーマットで送信すること
ができ、これはデータ・レートの約1.5になる。これらのストリームのいくつ
かと複数の他のオーディオ・ストリームを他のデータ・レートでHIDに送信す
ることができ、これにより、時刻変更と、すべてのストリームの混合を効果的に
行い、システム・オーディオ出力ストリームを生成する。
【0046】 ワイヤ・プロトコルのオーディオ・プロトコル部分は、使用するサービス用の
標準プロトコルを提供するものである。本発明の一実施形態では、レシーバと関
連するオーディオ処理およびハードウェアの要件は、ネットワーク上のトランス
ミッタとレシーバとの間のオーディオ・データの送信用に単一のオーディオ・プ
ロトコルを指定することで最小限に抑えている。このプロトコルでは、サンプリ
ング・レート、ビット分解能、および量子化方式を指定するが、これにより、高
い音質を確保し、レシーバの複雑さをできるだけ抑えることができる。トランス
ミッタには、オーディオ・データを必要に応じて指定プロトコルに変換する機能
を持つドライバが備えられている。
【0047】 ネットワーク上でオーディオ・ストリームを送信する動作と関連する問題を補
正するために指定プロトコルのいろいろな面が用意されている。指定プロトコル
により、データ・パケット内のオーディオ・サンプルをインターリーブするフォ
ーマットを指定し、パケット損失による連続欠損オーディオ・データ・サンプル
の結果である誤差を最小限に抑える。レシーバはさらに、補間により欠損オーデ
ィオ・データ・サンプルを補正することができる。指定プロトコルに応じて、シ
ーケンス・サイズを指定し、オーディオ・データの処理法法を決定する。トラン
スミッタは、各オーディオ・アプリケーション用に指定されている限界内にオー
ディオ待ち時間を維持するため適応によりシーケンス・サイズを制御する。指定
プロトコルはさらに、混合モードの決定を行い、また複数のチャネルを持つオー
ディオ・データを複数のオーディオ出力デバイス間で混合し経路を定める方法を
指定する多数のチャネルを備える。このオーディオ・プロトコルは、本発明の譲
受人に譲渡され、引用により本明細書に取り込まれたものとする、1998年4
月20日出願の「Method and Apparatus of Supp
orting an Audio Protocol in a Networ
k Environment」という名称の米国同時係属出願第09/063,
341号に記載されている。
【0048】 帯域幅管理 仮想デスクトップ・プロトコル・トラフィックは本質的にバーストが多い。サ
ービス・プロデューサの部分で非活動状態が長い期間続くと、その後きわめて高
い帯域幅バーストが生じ、たとえば、ユーザがデータを読み込むときにトラフィ
ックが生成されず、その後、追加データが要求されたときに全画面更新が実行さ
れる。40Mbpsを超えるピーク時データ・レート・バーストが観察されてい
るが、長期間の平均データ・レートは無視できるくらい小さい。バーストが明確
に規定された限界(すなわち、毎フレーム時間に、すべてのピクセルを変化させ
るための〜2Gbps)を持つという事実は通常、限界以下に保たれ(すなわち
、通常であれば、画面のピクセルのサブセット、その後次の変更前の期間、一定
のまま)、バーストは無作為に分布し(すなわち、ユーザは独立に操作する傾向
がある)、すべて、統計多重化から生じる利得を利用することに寄与している。
ただし、これは、システム・リソースの需要が供給を超えたときを処理するため
一時的過負荷を処理する手段を用意する必要もある。この目的のために、レート
制御メカニズムを相互接続構造の管理で使用している。これは、プロデューサが
リンク以上のデータを生成せず、人間インタフェース・デバイスが取り扱えるよ
うにするため実行する。このタスクは、与えられた相互接続リンクとともに与え
られたHIDに送信する複数のソースがあるため複雑である。これは、何らかの
形態の分散調整(または協力)を用意し、システムが動作するようにしなければ
ならないことを意味する。この問題を解決する効果的アプローチとして、輻輳回
避およびレート制御手法を使用して、相互接続リソースおよびデスクトップ上の
リソースを管理するという方法がある。現在のFTP実装の手法と互換性のある
手法を使用することで、仮想デスク・トップ・プロトコル・トラフィックを標準
インターネット・トラフィックと十分共存させることができる。
【0049】 媒体上でデータを送信する複数のデータ・ソースの累積データ・レートが媒体
の帯域幅を超えると、媒体は望むデータ・レートですべてのデータを送信するこ
とができなくなる。媒体の帯域幅限界内でデータ送信を維持するには、データの
一部を遅らせたり、まったく送信しないなどの操作を行う必要がある。しかし、
複数のソースがいろいろな時間にさまざまな量のデータを送信するときには、遅
らせる、あるいは落とすデータの選択はきわめて複雑になる。遅らせる、あるい
は落とすデータの選択が不適切だと、システム・パフォーマンスの著しい低下を
きたすことがある。したがって、有限な帯域幅の媒体上で複数のソースからデー
タの通信を管理する手法が必要であり、その場合、複数のソースの必要な累積帯
域幅は媒体の帯域幅を超えることがある。
【0050】 本発明の一実施形態では、通信媒体を通じて複数のデータ・ソースをデータ・
レシーバに結合する。データ・ソースは、任意の情報ソースでよく、また情報は
任意の種類、あるいは複数の種類であってもかまわない。たとえば、情報として
、コンピュータ・プログラム・コード、テキスト、オーディオ・データ、ビデオ
・データ、図形データ、条件または事象のデータ表現、デジタル情報、アナログ
情報、またはその他の形式のその他の情報がある。データ・ソースの例としては
、コンピュータ機器、オーディオ・デバイス、ビデオ・デバイス、ユーザ入力デ
バイス、情報記憶デバイス、ネットワーク機器、センサ、識別デバイス、または
その他の情報ソースがある。
【0051】 情報をデータ・ソースからデータ・レシーバに送信するときに、データ・ソー
ス側では、許容可能なデータ・レートで情報を転送するのに必要な帯域幅を予測
する。データ・ソース側では、必要な帯域幅の推定値をデータ・レシーバに送信
する。複数のデータ・ソースがある環境では、データ・レシーバは複数のデータ
・ソースから必要な帯域幅の推定値を受信する。データ・レシーバは、複数のデ
ータ・ソースの必要な帯域幅の推定値を加算して、複数のデータ・ソースによっ
て要求される累積データ・レートを取得する。データ・レシーバは、要求された
累積データ・レートと、情報の受け渡しに使用する通信媒体の帯域幅とを比較す
る。要求された累積データ・レートが媒体の帯域幅よりも小さい場合、データ・
レシーバは複数のデータ・ソースのいずれかのデータ・レートを制限しない。デ
ータ・レシーバは、そのデータ・ソースが要求する全帯域幅を各データ・ソース
に割り当てる。
【0052】 ただし、要求された累積データ・レートが通信媒体の帯域幅を超えた場合、デ
ータ・レシーバは、各データ・ソースが要求する帯域幅を比較する。比較的狭い
帯域幅を要求するデータ・ソースについては、データ・レシーバは要求された帯
域幅のすべてを割り当てる。比較的広い帯域幅を要求するデータ・ソースについ
ては、データ・レシーバは要求された帯域幅の一部のみを割り当てる。データ・
レシーバは、要求された帯域幅をほんのわずかしか狭めない場合の便益と、要求
された帯域幅をまったく狭めない場合の便益とを比較して、低減の影響を受ける
データ・ソースの数および影響を受けるそれぞれのデータ・ソースの帯域幅の低
減範囲を決定する。
【0053】 本発明の一実施形態では、データ・ソースは、データ・レシーバに送信されて
いるコマンドを監視することにより必要と思われる帯域幅の推定値を出力する。
たとえば、Xウィンドウ・サーバで構成されるデータ・ソースはXウィンドウ・
クライアント・プログラムに送信されるコマンドを監視する。このようなコマン
ドを監視することで、Xウィンドウ・サーバは送信するビット数およびピクセル
数およびそのような送信が行われる理想的期間を決定できる。ビット数を理想的
期間で割ることで、Xウィンドウ・サーバはコマンドによって生成されるデータ
について毎秒ビット数で表される理想的データ・レートを取得できる。同様に、
ピクセル数を理想的期間で割ることで、Xウィンドウ・サーバはコマンドによっ
て生成されるデータについて毎秒ピクセル数で表される理想的データ・レートを
取得できる。これらの理想的データ・レートは、必要な帯域幅の初期推定値とし
て使用できる。
【0054】 この監視および推定プロセスが続くときに、データ・レートに関する履歴情報
を使用して、データ・レートを記述する統計パラメータを出力できる。たとえば
、平均データ・レートまたは、平均データ・レート+1標準偏差に等しいデータ
・レートを正確に近似して、使用することで、将来の帯域幅割り当てを決定でき
る。
【0055】 データ・ソースは、データを送信していない期間に、あるいは充分な計算リソ
ースがデータ・ソースに存在している場合には、データを送信している期間に、
データ・レート・パラメータのこのような監視、分析、および推定を実行できる
。たとえば、割り当てた帯域幅の低減によりデータ・ソースがデータを送信でき
る速度が遅くなる場合、データ・ソースは、データを送信してデータ・レート・
パラメータの監視、分析、推定を実行するのを待っている間の時間を利用できる
ことがある。本発明の帯域幅管理および衝突回避は、本発明の譲受人に譲渡され
、引用により本明細書に取り込まれたものとする、1998年4月20日出願の
「Method and Apparatus for Management
of Communications over Media of Fin
ite Bandwidth」という名称の米国同時係属出願第09/063,
491号に記載されている。
【0056】 《コンピュータ実行環境の実施形態(ハードウェア)》 本発明の実施形態は、図1に示されているコンピュータ100などの汎用コン
ピュータ上で実行されるコンピュータ読み取り可能コードの形、またはそのよう
なコンピュータ上で実行するJavaTMランタイム環境内で実行可能なバイト・
コード・クラス・ファイルの形でコンピュータ・ソフトウェアとして実装できる
。キーボード110およびマウス111は、双方向システム・バス118に結合
されている。キーボードとマウスは、ユーザ入力をコンピュータ・システムに取
り入れ、そのユーザ入力をプロセッサ113に伝達するためのものである。他の
適当な入力デバイスを、マウス111およびキーボード110の他に、あるいは
それらの代わりに使用することができる。双方向システム・バス118に結合さ
れているI/O(入出力)ユニット119は、プリンタ、A/V(オーディオ/
ビデオ)I/OなどのI/O要素を表す。
【0057】 コンピュータ100はビデオ・メモリ114、メイン・メモリ115、および
大容量記憶装置112を装備し、すべてキーボード110、マウス111、およ
びプロセッサ113とともに双方向システム・バス118に結合されている。大
容量記憶装置112としては、磁気記憶システム、光記憶システム、または光磁
気記憶システムまたはその他の利用可能な大容量記憶装置技術などの固定媒体と
着脱可能媒体の両方がある。たとえば、バス118は、ビデオ・メモリ114ま
たはメイン・メモリ115をアドレッシングするための32本のアドレス線を含
むことができる。システム・バス118はさらに、たとえば、プロセッサ113
、メイン・メモリ115、ビデオ・メモリ114、および大容量記憶装置112
などのコンポーネント間でデータを転送するために32ビット・データ・バスも
含む。それとは別に、多重データ/アドレス線は、別々のアドレスおよびアドレ
ス線の代わりに使用できる。
【0058】 本発明の一実施形態では、プロセッサ113は、680X0プロセッサなどの
Motorolaが製造しているマイクロプロセッサまたは80X86やPen
tiumプロセッサなどのIntelが製造するマイクロプロセッサまたはSu
n MicrosystemsTM,Inc.のSPARCTMマイクロプロセッサ
である。しかし、他の適当なマイクロプロセッサまたはマイクロコンピュータも
使用できる。メイン・メモリ115は、ダイナミック・ランダム・アクセス・メ
モリ(DRAM)で構成されている。ビデオ・メモリ114は、デュアル・ポー
ト・ビデオ・ランダム・アクセス・メモリである。ビデオ・メモリ114の1つ
のポートは、ビデオ増幅器116に結合されている。ビデオ増幅器116を使用
して、陰極線管(CRT)ラスタ・モニタ117を駆動する。それとは別に、ビ
デオ・メモリを使用して、フラット・パネルまたは液晶表示装置(LCD)、あ
るいはその他の適当なデータ表示装置を駆動することもできる。ビデオ増幅装置
116は、よく知られている技術であり、適当な装置で実装できる。この回路は
、ビデオ・メモリ114に格納されているピクセル・データをモニタ117で使
用するのに適したラスタ信号に変換する。モニタ117は、グラフィック画像を
表示するのに適したタイプのモニタである。
【0059】 コンピュータ100は、さらに、バス118に結合された通信インタフェース
120を備えることもできる。通信インタフェース120は、ネットワーク・リ
ンク121を介してローカル・ネットワーク122に結合する双方向データ通信
を実現する。たとえば、通信インタフェース120が統合サービスデジタル網(
ISDN)カードまたはモデムであれば、通信インタフェース120により、ネ
ットワーク・リンク121の一部をなしている対応するタイプの電話回線に接続
してデータ通信を行うことができる。通信インタフェース120がローカル・エ
リア・ネットワーク(LAN)カードであれば、通信インタフェース120によ
り、ネットワーク・リンク121を介して互換性のあるLANに接続してデータ
通信を行うことができる。無線リンク、モデム、ケーブル・モデム・リンクも使
用可能である。このような実装で、通信インタフェース120はさまざまな種類
の情報を表すデジタル・データ・ストリームを伝送する電気信号、電磁気信号、
または光信号を送受信する。
【0060】 ネットワーク・リンク121は通常、1つまたは複数のネットワークを介して
他のデータ・デバイスとの間のデータ通信を行う。たとえば、ネットワーク・リ
ンク121では、ローカル・ネットワーク122を通じてローカル・サーバ・コ
ンピュータ123と、あるいはインターネット・サービス・プロバイダ(ISP
)124によって操作されているデータ機器に接続できる。次にISP 124
は、現在では「インターネット」125と一般に呼ばれている全世界的なパケッ
ト・データ通信ネットワークを介してデータ通信サービスを提供する。ローカル
・ネットワーク122およびインターネット125は両方とも、デジタル・デー
タ・ストリームを伝送する電気信号、電磁気信号、または光信号を使用する。デ
ジタル・データをコンピュータ100との間で伝送する、さまざまなネットワー
クを経由する信号およびネットワーク・リンク121上および通信インタフェー
ス120を経由する信号は、情報を伝送するキャリア波の一例である。
【0061】 コンピュータ100は、ネットワーク、ネットワーク・リンク121、および
通信インタフェース120を介してメッセージを送信し、プログラム・コードな
どのデータを受信する。インターネットの例では、リモート・サーバ・コンピュ
ータ126はインターネット125、ISP 124、ローカル・ネットワーク
122、および通信インタフェース120を介してアプリケーション・プログラ
ムの要求されたコードを送信することができる。
【0062】 受信したコードは、受信とともにプロセッサ113で実行したり、大容量記憶
装置112あるいは他の不揮発性記憶装置に格納しておき後で実行することがで
きる。このようにして、コンピュータ100は、キャリア波の形でアプリケーシ
ョン・コードを取得することができる。
【0063】 アプリケーション・コードは、コンピュータ・プログラム製品の形で具現化で
きる。コンピュータ・プログラム製品は、コンピュータ読み取り可能なコードを
格納する、あるいは運ぶように構成されている、あるいはコンピュータ読み取り
可能なコードを具現化できる媒体で構成されている。コンピュータ・プログラム
製品の例としては、CD−ROMディスク、ROMカード、フロッピディスク、
磁気テープ、コンピュータ・ハードディスク・ドライブ、ネットワーク上のサー
バ、およびキャリア波がある。
【0064】 上で述べたコンピュータ・システムは、例にすぎない。本発明の実施形態は、
どのような種類のコンピュータ・システムあるいはプログラミングあるいは処理
環境であっても実装できる。
【0065】 デスクトップ・ユニットの機能を適切に定義され、固定された一組の動作に減
らすことにより、さまざまな実装が可能になる。たとえば、HIDは純粋にハー
ドウェアだけで提供することや(たとえば、ボードやチップとして)、あるいは
小規模なデスクトップ・システムを制御するソフトウェアとして提供することや
(たとえば、ネットワーク・コンピュータ、パーソナル・コンピュータ、従来の
デスクトップ・システム)、あるいは従来技術のワークステーション・コンピュ
ータ・システムで動作するアプリケーションとして提供することなどができる。
【0066】 以上、仮想デスクトップ・システム・アーキテクチャを実現する方法と装置を
説明した。
【0067】 付 録 レンダリング・コマンド 書込プロトコル・コマンド・フォーマット すべてのデータが、ネットワークを介してネットワーク・バイト順(ビッグ・
エンディアン)で送信され、ビット・フィールドは、MSBからLSBの順でパ
ックされる。 基本的なレンダリング・コマンド・フォーマットは次の通りである。 <COMMAND:8> <SEQUENCE:24> <X:16> <Y
:16> <WIDTH:16> <HEIGHT:16> <Info>コマンド ・・・・・コード ・・・・・・・・・・<Info>の説明 Set ・・・・・0xA1 ・・・・・・・・・・WIDTH×HEIGHT個の32ビット値<X、B、G
、R>[WIDTH×HEIGHT≦512画素] Fill ・・・・・0xA2 ・・・・・・・・・・1つの32ビット値<X、B、G、R> Glyph ・・・・・0xA3 ・・・・・・・・・・1つの32ビット値<X、B、G、R>、(HEIGHT
×ceiling(WIDTH/8))バイトのビットマップ[すなわち、各ラ
インは8ビットまでパディングされる][WIDTH×HEIGHT≦2048
画素];コマンド全体が、次の32ビット境界までパディングされる Copy ・・・・・0xA4 ・・・・・・・・・・<FROM_X:16> <FROM_Y:16> Bilevel ・・・・・0xA5 ・・・・・・・・・・2つの32ビット値c0およびc1、<X、B、G、R>
、(HEIGHT×ceiling(WIDTH/9))バイトのビットマップ
[すなわち、各ラインは8ビットまでパディングされる][WIDTH×HEI
GHT≦2048画素];コマンド全体が、次の32ビット境界までパディング
される Set24 ・・・・・0xA6 ・・・・・・・・・・WIDTH×HEIGHT個のパックド24ビット値<B
、G、R>[WIDTH×HEIGHT≦512画素];次の32ビット境界ま
でパディングされる Set ・・・・・YUV Image ・・・・・・・・・・0xA7 <SOURCE_W:16> <SOURCE
_H:16> <RFU:8> <LUMA_ENCODING:2> <CH
ROMA_SUB_X:3> <CHROMA_SUB_Y:3>の後に、各ラ
インがバイト境界までパディングされた(SOURCE_W×SOURCE_H
)画素のY[luma]、(ceiling(SOURCE_W/x_subs
ample) ceiling(SOURCE_H/y_subsample)
)バイトのそれぞれ8ビット符号付きCCIR−601値エンコーディングのU
およびV[chroma];コマンド全体が、次の32ビット境界までパディン
グされる;[SOURCE_W×SOURCE_H≦1024画素];[SOU
RCE_W≦WIDTH];[SOURCE_H≦HEIGHT] Set Cursor ・・・・・0xA9 ・・・・・・・・・・2つの32ビット値c0およびc1、<X、B、G、R>
とその後の2組の(HEIGHT×ceiling(WIDTH/9))バイト
のビットマップ[すなわち、各ラインは8ビットまでパディングされる][WI
DTH≦64画素、HEIGHT≦64画素]。最初のビットマップは画素値、
第2のビットマップは画素ごとのマスク。コマンド全体が次の32ビット境界ま
でパディングされる。 Set Pointer ・・・・・0xAA ・・・・・・・・・・<INDEX:8> <DIM:2> <PAD:5>
{ <Z:16> { <P:16> <R:16> <H:16> <PAD
:16> } } | <PAD:16> すべての値が符号付きの2の補数であることに留意されたい。角度値は、−
180から+180−(1 lsb)=+179.9945(フル・レンジの°
)である WIDTH、HEIGHTは無視される。 Set Key Locks ・・・・・0xAB ・・・・・・・・・・X、Y、WIDTH、HEIGHTは無視される。<IN
DEX:8> <LOCKS:8> <PAD:16> Damage Repair ・・・・・0xAC ・・・・・・・・・・<EPOCH:32> <PAD:8> <SEQ:24
> Play Audio ・・・・・0xB1 ・・・・・・・・・・X、Y、WIDTH、HEIGHTは次の形でエンコード
される。 X:4 オーディオ・シーケンス番号 X:12 インターリーブ・オフセット Y シーケンス全長−1 WIDTH:4 ミキサー・モード 標準ミックスに含めるチャネル数を指定する。この番号を超えるチャネル
番号は、未加工で送られ、端末が要求をカバーするのに不十分なチャネルを有す
る場合には、他のチャネルと組み合わされる。 WIDTH:12 サンプル内のパケット長 最大2000バイト HEIGHT:4 チャネル数−1 HEIGHT:12 インターリーブ・サイズ−1 ヘッダの後に、指定されたサンプル数×チャネル数×16ビットが続く。 コマンド全体が32ビットまでパディングされる。 シーケンス番号は、コマンドごとに増分される。シーケンス番号は、下で説明
するエポック変更flushコマンドの場合を除いて全ビット0になってはなら
ない。長方形がラップしてはならない。すなわち、w+width<0x100
00かつy+height<0x10000である。 1つの追加情報コマンドが、次の異なるフォーマットを用いて定義される。 <COMMAND:8> <SEQUENCE:24> <EPOCH:32
> <FILL:16×8> コマンド コード flush 0xAf flushコマンドのシーケンス番号は、エポック変更(下の説明を参照)を
除いて、前のコマンドのシーケンス番号と同一である。すなわち、シーケンス番
号は、画素が変化するかエポックが変化する時に限って増分される。
【0068】 コマンドの説明コマンド ・・・・・・・説 明 Set ・・・・・・・<x、y> <width、height>によって定義される
長方形に、その後に続く画素値をセットする。領域内の画素ごとに1つの画素値
がある。レイアウトは行単位である。すなわち、<x、y>ないし<x+wid
th−1、y>の画素の「width」個の画素値があり、その後に<x、y+
1>ないし<x+width−1、y+1>などの画素が続く。<0、0>は、
左上隅を示す。 Fill ・・・・・・・<x、y> <widht、height>によって定義される
長方形のすべての画素に単一の32ビット値をセットする。 Glyph ・・・・・・・32ビット値が、ビットマップ内の1のビットのそれぞれに対応
する画素位置に配置され、0のビットに関連する位置は変更されない。ビットマ
ップは、各バイト内でMSBからLSBを使用して、行(y、y+1、…)によ
ってレイアウトされる。 Copy ・・・・・・・<from_x、from_y> <width、height
>によって定義される長方形を<x、y> <width、height>によ
って定義される長方形にコピーする。クライアントは、オーバーラップする領域
が正しくコピーされることを保証しなければならない(たとえば、Solari
sのbstring(3)を参照されたい)。 Bilevel ・・・・・・・32ビット値c0が、ビットマップ内の0のビットに対応する画
素位置、c1が1のビットに対応する画素位置に配置される。ビットマップは、
各バイト内でMSBからLSBを使用して、行(y、y+1、…)によってレイ
アウトされる。 Set24 ・・・・・・・<x、y> <width、height>によって定義される
長方形に、その後に続く画素値をセットする。画素値は、3つの32ビット値に
よって4画素が定義されるようにパックされ、したがって、<bgrb、grb
g、rbgr>になる。widthが4の倍数でない場合には、末尾が残りの値
を用いて上と同様にパックされ、最も近い32ビット値までパディングされる。
領域内の画素ごとに1つの画素値がある。レイアウトは行単位、すなわち、((
3×width+3)/4)個の32ビット・ワードで<x、y>ないし<x+
width−1、y>の画素の「width」個の画素値があり、その後に<x
、y+1>ないし<x+width−1、y+1>などの画素が続く。<0、0
>は、左上隅を示す。 Set YUV Image ・・・・・・・<x、y> <width、height>によって定義される
長方形に、次の形で供給される画素値をセットする。source_w×sou
rce_h画素のCCIR/ITU.BT601 Y’CbCr(またはYUV
)フォーマットの画像を、RGBにデコードする。クロマ要素は、指定通りに水
平次元または垂直次元もしくはその両方でサブサンプリングすることができ、変
換の前にアップサンプリングされなければならない。 CHROMA_SUB_XおよびCHROMA_SUB_Yの値(それぞれ
x_subsampleおよびy_subsample)は、次の形でエンコー
ドされる。 0 − クロマ値なし:モノクローム画像 1 − 1によるサブサンプル(すなわち、サブサンプルなし) 2 − 2によるサブサンプル 3 − 4によるサブサンプル 4〜7 − 未定義/予約済み LUMA_ENCODING値は次の通りである。 0 − Y(luma)は、8ビット符号なしデータによって指定される 1 − Y(luma)は、4ビット量子化DCPM値(下を参照)から
なる 2、3 − 未定義/予約済み RFUは、将来の使用のために予約済みであり、0でなければならない。 デコードの後に、RGBイメージを、必要に応じてwidth×heigh
t画素までスケール・アップする。結果の画像を、ディスプレイ上の位置<x、
y>に置く。 注:CHROMA_SUB_XとCHROMA_SUB_Yの両方が0の場
合には、画像はモノクローム(lumaのみ)であり、UまたはVのデータは存
在しない。一方に0、他方に非0をセットすることは無効である。 成分の順序は、Y(またはCCIR−601 Y’)、U(CCIR−60
1 Cb)、およびV(CCIR−601 Cr)である。 Set Cursor ・・・・・・・このコマンドは、ローカル・ディスプレイ・カーソル(Poin
ter[0]によって移動され、報告される)の外見を設定する。カーソルは、
最大64×64ブロックであるが、それ未満であればどのサイズでもよい。特定
の画素のマスク値が「1」の場合には、対応するカーソル画素が表示され、マス
クが「0」の場合には、カーソルはその位置で透明になる。マスクが「1」の時
に、値が「0」の時には画素値が「c0」になり、値が「1」の時には画素値が
「c1」になる。マスクが0の場合には、画素値も0でなければならない。0の
マスクと1の画素値は、将来の拡張のために予約済みである。 WIDTHおよびHEIGHTを0にすることができ、これはカーソルを描
画しないことを示す(全ビットが0のマスクと同等である)。ポインタ・トラッ
キングは、通常通りに機能し続ける。 XおよびYは、カーソルの「ホット・スポット」を示し、たとえば、カーソ
ル画像のどの画素についてイベントが報告されるかを示す。これは、主にディス
プレイの縁でカーソルを停止させるのに使用される。X [0、WIDTH)、
Y [0、HEIGHT)である。 Set Pointer ・・・・・・・ポインタの位置を設定する。Pointer[0]は、通常は設
定可能(マウスまたはタッチスクリーン)であり、2D画面カーソルである。こ
のコマンドは、ポインタの設定を共用するアプリケーション、または、相対ポイ
ンタが必要なアプリケーション(たとえばカーソルを前の位置にリセットする)
のために設けられている。したがって、下記の制限がある。 ポインタの設定が全く動作しない場合がある(例えばジョイスティック) ポインタ値が、ポインタ・デバイスまたは画面に合わせて勝手にクリッピ
ングされる場合がある ポインタが設定された後にユーザがポインタを動かし続けることができる
が、これは、「Pointer State」ステート(状況)メッセージを使
用して報告される。 擬似相対モードのためにポインタをリセットする挙動が、異なるデバイス
に関して異なる挙動を引き起こす可能性がある。たとえば、タッチ・スクリーン
は、ユーザが「ドラッグ」していない時に限って設定可能である。 ポインタは、6つまでの次元を有することができる。次元の数とコマンドの
サイズは、DIMビットを使用して設定する。すべてのポインタ値が、符号付き
の2の補数である。 Set Key Locks ・・・・・・・・このコマンドは、<INDEX>で指定されるキーボードのロ
ック値を設定する。ロックは、一般に、ソフトウェア制御可能なキーボード上の
ライトに対応する。ロック状態を示さなければならない場合には、マスクのビッ
トをセットしなければならず、そうでない場合にはビットをクリアしなければな
らない。一部のキーボードは、ロックをローカルに(たとえば機械的に)実施す
る場合があるので、ロックの設定が、影響を及ぼさない場合がある。キーボード
のキーは、必ず、キーボードによって報告される状態から解釈しなければならな
い。その一方で、ホストは、インターフェースからそう指示された場合に、ロッ
ク・キーコードを受け取った際にSet Key Locksコマンドを発行し
なければならない。というのは、通常のキーボードと端末の両方が、ロックをロ
ーカルに処理しようとしないからである。これは、端末が、キーボードも所望の
ユーザ・インターフェース・セマンティクスも理解しないからである。 キー・ロック・ビットマップは、ブート・キーボードに関する次のUSBク
ラス定義から与えられる。 0x01 Num Lock 0x02 Caps Lock 0x04 Scroll Lock 0x08 Compose 0x10 Kana 他のすべてのビットは予約済みであり、読み取りの際には無視し、設定の際
には0にする。 Damage Repair ・・・・・・・これは、エポックEPOCK内のシーケンス番号SEQおよびそ
れ以前のすべてのダメージ・メッセージが、処理され、リペア・データが送信さ
れたことをクライアントに知らせる(Damageバックチャネル・コマンドを
参照されたい)。PADは、0でなければならない。X、Y、WIDTH、およ
びHEIGHTは、0でなければならない。 Play Audio ・・・・・・・これは、48kHzオーディオ・サンプルを再生し、グラフィッ
クス・コマンド・ストリーム内に埋め込むことができる。 未定義の数のストリームが、先着順ベースで端末に受信される。ストリーム
は、必要に応じて割り振られ、バッファ・スターベイション(buffer s
tarvation)が発生した時(再生の時間になった時に再生するデータが
ない−部分的に受信されたバッファは、エラーを隠され、再生される)に分割さ
れる。端末は、タイムベース・ドリフトを補正する。 データは、ネットワーク・エラー隠蔽を助けるためにインターリーブされた
形で送信される。サンプル・シーケンスは、インターリーブ・サイズに分割され
、多くとも1+(シーケンス・サイズ)/(インターリーブ・サイズ)個のサン
プルが、パッカーによって放出される。サンプルは、次の形で選択される。 sample sequence[sample_size]; int seq_number = 0; while (1) { get_samples(sequence, sample_size); for (i = 0; i < interleave_size; i++) { interleave_offset = randome_select(0..interleave_size); packet=new_packet(seq_number, sample_size, num_chan, num_chan, interleave_size, interleave_offset); for (j = interleave_offset; j < sample_size; j += interleave_size) emit(packet, sequence[j]); send_packet(packet); } seq_number = (seq_number+1)%16; } パケットが送信される順序をランダムにすることができる(おそらくはそう
しなければならない)ことに留意されたい。 たとえば、3のインターリーブと8のシーケンス・サイズの場合、次の3つ
のパケットを送信することができる。 (サンプル) (0 1 2 3 4 5 6 7) パケット1、オフセット1: 1 4 7 パケット2、オフセット0: 0 3 6 パケット3、オフセット2: 2 5 シーケンスは、エラー隠蔽を行い、サンプル・シーケンスを放出する時を端
末が知るように番号を付けられる。 サンプルは、48kHz、16ビット・リニアであり、16個までのチャネ
ルを含めることができる。たとえば、5チャンネル・サンプルは、連続する10
バイトを占める。 端末によってサポートされるオーディオ・チャネルの数に関する定義はなく
、それを見つける方法もないが、16個までのチャネルを同時に送信することが
できる。端末がサポートする数と異なる数のチャネルが送信される可能性がある
ので、標準ミックスの概念を、最初の8チャネルに導入する。これは、あるイン
デックスのチャネルが互いにミックスされないことを保証する「MIX」フィー
ルドの設定によってディスエーブルすることができる。最後の8チャネルは、最
初の8チャネルと同一の方式でミックスされ、その結果、サウンドを聞くことが
できるようなる。十分なチャネルがある場合には、結果は端末のセットアップに
依存する。 標準で割り当てられるチャネルは次の通りである。 チャネル→ チャネル番号 0 1 2 3 4 5 6 7 1 モノラル 2 l r 3 l r sw 4 l r rl rr 5 l r rl rr sw 6 l r rl rr sw cf 7 l r rl rr sw cf top 8 l r rl rr sw cf cl cr (l=左、r=右、r[lr]=後(左、右)、sw=サブウーハー、c
f=センター・フィル、c[lr]=中央(左、右)、top=中央−中央 たとえば、2つのスピーカがあり、1チャネルが標準ミックスをイネーブル
した状態で送信される場合には、その1チャネルが、左右両方のスピーカに送ら
れる。逆に、同一の端末に6チャネルが送信された場合には、チャネル0、2、
4、および5がミックスされ、左スピーカに送られ、チャネル1、3、4、およ
び6がミックスされ、右スピーカに送られる。 端末のスピーカは、同一の形でセット・アップされる。 完全なミキシング・マトリックスは、完全な仕様書で入手可能である。 Flush ・・・・・・・このコマンドに続く時間期間のディスプレイ・ストリームにコマ
ンドがない可能性がある。したがって、これは、クライアントが未完了のすべて
のレンダリングを画面にフラッシュするのによい点である。エポック・フィール
ドは、シーケンス番号用に32ビットの追加の上位ビットを提供する。FILL
は、すべて0xFFの16バイト・セットからなる。このコマンドは、ドロップ
アウトの後でデータ・ストリームを再同期化する機会を提供する。 flushコマンドのシーケンス番号は、通常は、最後の非flushコマ
ンドと同一である。しかし、エポックを使い果たした(すなわち、最後のコマン
ドのシーケンス番号が0xFFFFFFである)時には、0のシーケンス番号と
新しいエポック番号(1つ増分される)を有するflushコマンドが送信され
る。 ===================================
【0069】 バックチャネル・コマンド ワイヤ・プロトコル・ステータス・メッセージ・フォーマット 基本的なステート(状況)コマンド・フォーマットは次の通りである。 <COMMAND:8> <TIME:24> <Info>コマンド ・・・・・コード ・・・・・・・・・・<Info>の説明 Keyboard State ・・・・・0xc1 ・・・・・・・・・・<INDEX:8> <COUNTRY_CODE:8>
<LOCKS:8> <MODIFIERS:8> <KEYCODE:8>
[8] Pointer State ・・・・・0xc2 ・・・・・・・・・・<INDEX:8> <DIM:2> <BUTTONS
:6> <X:16> {<Y:16> {<Z:16> {<P:16> <
R:16> <H:16>}}} すべての値が、符号付きの2の補数であることに留意されたい。角度値は、
−180から+180−(1 lsb)=+179.9945(フル・レンジの
°)である。 DIM 次元 0 X 1 X、Y 2 X、Y、Z 3 X、Y、Z、P、R、H(ヨー) Active Region ・・・・・0xc3 ・・・・・・・・・・<X:16> <Y:16> <WIDTH:16> <
HEIGHT:16> Damage ・・・・・0xc4 ・・・・・・・・・・<EPOCH:32> <PAD0:8> <SEQ_L
:24> <PAD1:8> <SEQ_H:24> 注:TIMEはミリ秒単位である;2の24乗(約16秒)後にラップする
【0070】 ステータス・メッセージの説明コマンド ・・・・・・・・説 明 Keyboard State ・・・・・・・・<INDEX>で指定されるキーボードの状態を報告する。カ
ントリ・コードは、USB Device Class Definition
for HIDs,section 6.2からのものである。ロックは、次
のブート・キーボードのUSBクラス定義からのものである。 0x01 Num Lock 0x02 Caps Lock 0x04 Scroll Lock 0x08 Compose 0x10 Kana 「Set Key Locks」コマンドを使用して、これらのロックをリ
セットすることができ、ホストでロック・キーが検出された場合には「Set
Key Locks」コマンドを使用しなければならない。というのは、キーボ
ードが、一般にロックステート(状況)をローカルに処理せず、端末もこれを処
理しないからである。上で指定されたもの以外のビットは、予約済みであり、無
視しなければならない。セットの際には、これらのビットには0をセットしなけ
ればならない。 モディファイア・ビットもブート・キーボード用のUSBクラス定義からの
ものである。 0x01 左Control 0x02 左Shift 0x04 左Alt 0x08 左GUI 0x10 右Control 0x20 右Shift 0x40 右Alt 0x80 右GUI 必ず6つのスキャンコードのスペースがある。押し下げられたすべてのキー
(モディファイヤでないもの)が、6キーまで報告される。これは、単純なロー
ルオーバー機能とコーディング機能を提供する。スキャン・コードは、ブート・
キーボード用のUSBクラス定義からのものである。 特に注目すべきものが、スロット内にイベントがないことを示すコード0x
00と、8つを超えるキーが押されていることを示す全スロットの0x01であ
る。モディファイヤは、この状態でも報告される。9つ未満のキーが押されたな
らば、通常のレポートが再開される。報告の順序は任意であり、イベントの順序
を反映しない。 Pointer State ・・・・・・・・<INDEX>で指定されるポインタの状態を報告する。DI
Mは、報告される次元の数すなわち、1、2、3、または6を示す。ボタンは、
ブート・キーボード用のUSBクラス定義からのものであり、ビット0が「プラ
イマリ」ボタン(左ボタン)であり、左から右へ数が増える。報告される値は、
すべて絶対値であり、符号付きの2の補数である。 Active Region ・・・・・・・・newt上で保存される論理フレームバッファの区域を示す。
具体的には、これは、Copyレンダリング・コマンドの「from」領域を成
功裡に指定することができる区域である。 この領域は、たとえばハンドヘルド・デバイスのパン−アンド−スキャン・
スタイルのインターフェースに起因して、所与のクライアント上で時間的に変化
する可能性がある。また、異なるクライアント・デバイスが、異なるアクティブ
領域を報告する可能性がある。 Damage ・・・・・・・・エポックEPOCHのシーケンス番号SEQ_Lからシーケン
ス番号SEQ_Eまで(SEQ_Eを含む)のダウンストリーム(レンダリング
)コマンドが、サーバから、クライアントによって受信されなかったことを示す
。PAD0とPAD1は0でなければならない。 クライアントは、影響を受けたシーケンス番号に関するDamage Re
pairメッセージを受信するまで、報告を続ける。 SEQ_Lが0の場合には、現在の画面イメージ全体を送信しなければなら
ない。 所与のシーケンス番号についてダメージ・メッセージが送信された後には、
それより若いシーケンス番号に関する新しい後続のダメージは送信されない。し
かし、後のステート(状況)パケットのスペースを節約するために、複数の範囲
を1つにまとめることが許容される。 =================================
【0071】 DPCM YUVの説明 1のLUMA_ENCODINGを用いて、さらにYUVデータを圧縮すること
ができる。 Lumaデータは、次の形でエンコードされる。 for each line last_value = 0x80 for each luma-value l in line diff = l - last_value q_value = quant(diff) last_value = clamp(last_value + dquant(q_value)) emit q_value end end Lumaデータは、次の形でデコードされる。 for each line last_value = 0x80 for each quantization-value q_value in line last_value = clamp(last_value + dquant(q_value)) emit last_value end end Clampは、クランピング・テーブルであり、clamp[i]は次の通りで
ある。 0 i<0の場合 255 i>255の場合 i それ以外の場合。 使用される量子化は次の通りである。 差 コード rquant −255〜−91 0 −100 −90〜−71 1 −80 −70〜−51 2 −60 −50〜−31 3 −40 −30〜−16 4 −20 −15〜−8 5 −10 −7〜−3 6 −4 −2〜0 7 −1 1〜2 8 1 3〜7 9 4 8〜15 10 10 16〜30 11 20 31〜50 12 40 51〜70 13 60 71〜90 14 80 91〜255 15 100
【図面の簡単な説明】
【図1】 本発明で使用できるコンピュータ・システム例のブロック図であ
る。
【図2】 本発明のセッション管理および許可の例である。
【図3】 本発明の仮想デスクトップ環境の図である。
【図4】 本発明のHIDの一実施形態のブロック図である。
【図5】 本発明のシングル・チップHIDの実施形態の図である。
【手続補正書】
【提出日】平成13年5月31日(2001.5.31)
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) H04L 29/08 H04L 13/00 307Z (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,UG,ZW),E A(AM,AZ,BY,KG,KZ,MD,RU,TJ ,TM),AL,AM,AT,AU,AZ,BA,BB ,BG,BR,BY,CA,CH,CN,CU,CZ, DE,DK,EE,ES,FI,GB,GD,GE,G H,GM,HR,HU,ID,IL,IN,IS,JP ,KE,KG,KP,KR,KZ,LC,LK,LR, LS,LT,LU,LV,MD,MG,MK,MN,M W,MX,NO,NZ,PL,PT,RO,RU,SD ,SE,SG,SI,SK,SL,TJ,TM,TR, TT,UA,UG,UZ,VN,YU,ZW (71)出願人 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 ハンコ,ジェームズ・ジイ アメリカ合衆国・94061・カリフォルニア 州・レッドウッド シティ・オハイオ ア ベニュ・2746 (72)発明者 ルバーグ,アラン・ティ アメリカ合衆国・94404・カリフォルニア 州・フォスター シティ・エメラルド ベ イ レーン・605 (72)発明者 ウォール,ジェラルド・エイ アメリカ合衆国・95150・カリフォルニア 州・サン ホゼ・クロッカス ドライブ・ 4515 (72)発明者 ブッチャー,ローレンス・エル アメリカ合衆国・94043・カリフォルニア 州・マウンテン ビュー・コレンズ コー ト 8番・4315 (72)発明者 ウィルヘルム,ニール・シイ アメリカ合衆国・94025・カリフォルニア 州・メンロ パーク・プロスペクト スト リート・2110 Fターム(参考) 5B045 AA07 BB03 BB42 GG02 5B085 AE02 AE12 BA06 BC02 BG07 5K034 AA14 AA18 CC02 CC05 FF01 【要約の続き】 る。カードを取り外すと、セッションは無効になる。カ ードを再度同じ端末または他の端末に挿入すると、セッ ションが再度有効になる。

Claims (48)

    【特許請求の範囲】
  1. 【請求項1】 計算システム・アーキテクチャであって、 相互接続構造を通じてデータを提供するためのデータ・ソースと、 前記データを受信して処理するための、前記相互接続構造に結合されているス
    テートレス人間インタフェース・デバイスを備えるアーキテクチャ。
  2. 【請求項2】 前記ステートレス人間インタフェース・デバイスにユーザが
    識別子を使用してアクセスすることを特徴とする請求項1に記載のアーキテクチ
    ャ。
  3. 【請求項3】 前記識別子がスマート・カードを含むことを特徴とする請求
    項2に記載のアーキテクチャ。
  4. 【請求項4】 前記識別子が生物測定識別子を含むことを特徴とする請求項
    2に記載のアーキテクチャ。
  5. 【請求項5】 前記ユーザが前記ステートレス人間インタフェース・デバイ
    スにアクセスしたときに前記ユーザの計算セッションにアクセスすることを特徴
    とする請求項2に記載のアーキテクチャ。
  6. 【請求項6】 前記相互接続構造を介して前記データ・ソースに結合されて
    いる複数のステートレス人間インタフェース・デバイスをさらに含む請求項5に
    記載のアーキテクチャ。
  7. 【請求項7】 ユーザが前記識別子を使用して前記複数のステートレス人間
    インタフェース・デバイスで前記セッションにアクセスできることを特徴とする
    請求項6に記載のアーキテクチャ。
  8. 【請求項8】 前記データ・ソースが複数のデータ・サービスを構成するこ
    とを特徴とする請求項1に記載のアーキテクチャ。
  9. 【請求項9】 前記相互接続構造を介して前記ステートレス人間インタフェ
    ース・デバイスに送信するため前記複数のデータ・ソースの出力を共通プロトコ
    ルに変換することを特徴とする請求項8に記載のアーキテクチャ。
  10. 【請求項10】 計算システムであって、 複数のユーザ・セッションに対して計算およびデータ生成を提供する中央処理
    ソースと、 相互接続構造を介して前記中央処理ソースに結合されている複数のステートレ
    ス人間インタフェース・デバイスであって、前記ステートレス人間インタフェー
    ス・デバイスのそれぞれが前記中央処理ソースからデータを受信し、出力をユー
    ザに表示して前記複数のユーザ・セッションの1つを開始し、さらに前記ステー
    トレス人間インタフェース・デバイスのそれぞれが前記相互接続構造を介して前
    記中央処理ソースにユーザ入力を送るステートレス人間インタフェース・デバイ
    スと、 前記ユーザと関連するセッションが前記相互接続構造を介して前記ステートレ
    ス人間インタフェース・デバイスの前記1つを経由するように前記ユーザを識別
    する前記ステートレス人間インタフェース・デバイスの1つでユーザが使用する
    識別子を備える計算システム。
  11. 【請求項11】 ユーザ・セッションの状態が前記中央計算リソースで保持
    されることを特徴とする請求項10に記載のシステム。
  12. 【請求項12】 前記ユーザ入力がキーボード・ストロークを含むことを特
    徴とする請求項11に記載のシステム。
  13. 【請求項13】 前記ユーザ入力がカーソル移動を含むことを特徴とする請
    求項11に記載のシステム。
  14. 【請求項14】 前記ユーザ入力がオーディオを含むことを特徴とする請求
    項11に記載のシステム。
  15. 【請求項15】 前記ユーザ入力がビデオを含むことを特徴とする請求項1
    1に記載のシステム。
  16. 【請求項16】 前記ユーザが前記物理的識別子を使用して前記複数のステ
    ートレス人間インタフェース・デバイスで前記セッションにアクセスできること
    を特徴とする請求項11に記載のシステム。
  17. 【請求項17】 計算システムであって、 複数の計算サービス・プロバイダと、 前記計算サービス・プロバイダに結合されている相互接続構造と、 前記相互接続構造に結合されている複数のステートレス・インタフェース・デ
    バイスを備えるシステム。
  18. 【請求項18】 前記複数の計算サービス・プロバイダが前記相互接続構造
    を介してデータを前記ステートレス・インタフェース・デバイスに提供し、前記
    ステートレス・インタフェース・デバイスが前記データを表示することを特徴と
    する請求項17に記載の計算システム。
  19. 【請求項19】 前記計算サービス・プロバイダがユーザと関連するユーザ
    ・セッションと関連するデータを提供することを特徴とする請求項18に記載の
    計算システム。
  20. 【請求項20】 前記ユーザが前記複数のステートレス・インタフェース・
    デバイスで前記ユーザ・セッションにアクセスすることを特徴とする請求項19
    に記載の計算システム。
  21. 【請求項21】 前記ユーザが識別子を前記ステートレス・インタフェース
    ・デバイスの1つに提示することで前記ステートレス・インタフェース・デバイ
    スの1つで前記ユーザ・セッションにアクセスすることを特徴とする請求項20
    に記載の計算システム。
  22. 【請求項22】 前記複数の計算サービス・プロバイダが第1のメンバと第
    2のメンバを含み、前記第1のメンバが第1のタイプのデータの計算を専門とし
    、前記第2のメンバが第2のタイプのデータの計算を専門とすることを特徴とす
    る請求項21に記載の計算システム。
  23. 【請求項23】 前記第1のメンバが前記第1のタイプのデータを前記ステ
    ートレス・インタフェース・デバイスに提供し、前記第2のメンバが前記第2の
    タイプのデータを前記ステートレス・インタフェース・デバイスに提供すること
    を特徴とする請求項22に記載の計算システム。
  24. 【請求項24】 前記識別子がパスワードを含むことを特徴とする請求項2
    3に記載の計算システム。
  25. 【請求項25】 前記識別子がスマート・カードを含むことを特徴とする請
    求項23に記載の計算システム。
  26. 【請求項26】 前記識別子が生物測定識別子を含むことを特徴とする請求
    項23に記載の計算システム。
  27. 【請求項27】 前記ユーザが前記インタフェース・デバイスの1つで前記
    ユーザ・セッションを中断し、前記インタフェース・デバイスの他の1つで前記
    ユーザ・セッションを再開することを特徴とする請求項23に記載の計算システ
    ム。
  28. 【請求項28】 計算の方法であって、 複数の計算サービス・プロバイダを提供するステップと、 前記計算サービス・プロバイダを相互接続構造に結合するステップと、 ステートレス・インタフェース・デバイスを前記相互接続構造に結合するステ
    ップと、 前記相互接続構造を介して前記計算サービス・プロバイダからデータを前記ス
    テートレス・インタフェース・デバイスに提供するステップを含む方法。
  29. 【請求項29】 前記計算サービス・プロバイダとのユーザ・セッションを
    生成するステップをさらに含む請求項28に記載の方法。
  30. 【請求項30】 前記ステートレス・インタフェース・デバイスで識別子を
    提示することにより前記ユーザ・セッションにアクセスするステップをさらに含
    む請求項29に記載の方法。
  31. 【請求項31】 前記識別子が提示されたときに前記セッションを前記ステ
    ートレス・インタフェース・デバイスに送信することを特徴とする請求項30に
    記載の方法。
  32. 【請求項32】 前記識別子がスマート・カードを含むことを特徴とする請
    求項31に記載の方法。
  33. 【請求項33】 前記識別子がパスワードを含むことを特徴とする請求項3
    1に記載の方法。
  34. 【請求項34】 前記識別子が生物測定識別子を含むことを特徴とする請求
    項31に記載の方法。
  35. 【請求項35】 前記相互接続構造に結合されている複数のステートレス・
    インタフェース・デバイスをさらに含む請求項31に記載の方法。
  36. 【請求項36】 前記インタフェース・デバイスの1つで前記ユーザ・セッ
    ションを中断し、前記インタフェース・デバイスの他の1つで前記ユーザ・セッ
    ションを再開するステップをさらに含む請求項31に記載の方法。
  37. 【請求項37】 前記計算サービス・プロバイダが外部ソースから前記デー
    タを受信することを特徴とする請求項28に記載の方法。
  38. 【請求項38】 前記外部ソースがインターネットであることを特徴とする
    請求項37に記載の方法。
  39. 【請求項39】 前記外部ソースが放送エンティティであることを特徴とす
    る請求項37に記載の方法。
  40. 【請求項40】 前記放送エンティティがテレビ信号を送信することを特徴
    とする請求項39に記載の方法。
  41. 【請求項41】 前記放送エンティティがラジオ信号を送信することを特徴
    とする請求項39に記載の方法。
  42. 【請求項42】 データを前記ステートレス・インタフェース・デバイスに
    提供する前記ステップがさらに、 前記複数の計算サービス・プロバイダが、前記相互接続構造を介して前記ステ
    ートレス・インタフェース・デバイスに送信するため異なる出力を共通プロトコ
    ルに変換するステップを含むことを特徴とする請求項28に記載の方法。
  43. 【請求項43】 計算の方法であって、 複数の計算サービス・プロバイダを提供するステップと、 前記計算サービス・プロバイダを相互接続構造に結合するステップと、 ステートレス・インタフェース・デバイスを前記相互接続構造に結合するステ
    ップと、 前記ステートレス・インタフェース・デバイスでユーザがセッションを開始す
    るステップと、 入力を前記ステートレス・インタフェース・デバイスに提供するステップと、 前記相互接続構造を介して前記複数の計算サービス・プロバイダの1つまたは
    複数に前記入力を送信するステップと、 修正されたデータを出力するために前記複数の計算サービス・プロバイダの前
    記1つまたは複数で前記データを操作するステップであって、操作の前記ステッ
    プに状態を変更するステップと計算を実行するステップが含まれるステップと、 前記相互接続構造を介して前記計算サービス・プロバイダから前記修正済みデ
    ータを前記ステートレス・インタフェース・デバイスに提供するステップと、 前記データを前記ステートレス・インタフェース・デバイス上に表示するステ
    ップを含む方法。
  44. 【請求項44】 計算の方法であって、 相互接続構造を実現するステップと、 前記相互接続構造に結合されている複数の計算サービス・プロバイダを提供す
    るステップと、 前記相互接続構造に結合されているプロキシ・サービスを提供するステップで
    あって、前記相互接続構造を介して前記複数の計算サービス・プロバイダからデ
    ータを前記プロキシ・サービスに送信するステップと、 前記相互接続構造に結合されているステートレス・インタフェース・デバイス
    を提供するステップであって、前記相互接続構造を介して前記プロキシ・サービ
    スからデータを前記ステートレス・インタフェース・デバイスに送信するステッ
    プを含む方法。
  45. 【請求項45】 前記複数の計算サービス・プロバイダが1つまたは複数の
    データベースにアクセスすることを特徴とする請求項44に記載の方法。
  46. 【請求項46】 前記プロキシ・サービスが前記1つまたは複数のデータベ
    ースに対するクエリを生成するように構成されていることを特徴とする請求項4
    5に記載の方法。
  47. 【請求項47】 計算の方法であって、 複数のステートマシンと、 1つのステートレス・マシンと、 前記複数のステート・マシンを前記ステートレス・マシンに結合する相互接続
    構造と、 入力を前記ステートレス・マシンに提供するステップと、 前記入力を前記複数のステート・マシンの1つまたは複数に送信するステップ
    と、 出力を生成するため前記複数のステート・マシンの前記1つまたは複数により
    前記入力に対し操作するステップと、 前記出力を前記ステートレス・マシンに送信するステップと、 前記データを前記ステートレス・マシン上に表示するステップを含む方法。
  48. 【請求項48】 前記入力と前記出力を送信する前に、前記入力と前記出力
    を前記ステートレス・マシンで読み取り可能なプロトコルに変換することを特徴
    とする請求項47に記載の方法。
JP2000545088A 1998-04-20 1999-04-20 仮想デスクトップ・システム・アーキテクチャを提供するための方法および装置 Pending JP2002512395A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/063,335 US7346689B1 (en) 1998-04-20 1998-04-20 Computer architecture having a stateless human interface device and methods of use
US09/063,335 1998-04-20
PCT/US1999/008669 WO1999054804A2 (en) 1998-04-20 1999-04-20 Method and apparatus for providing a virtual desktop system architecture

Publications (1)

Publication Number Publication Date
JP2002512395A true JP2002512395A (ja) 2002-04-23

Family

ID=22048506

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000545088A Pending JP2002512395A (ja) 1998-04-20 1999-04-20 仮想デスクトップ・システム・アーキテクチャを提供するための方法および装置

Country Status (8)

Country Link
US (1) US7346689B1 (ja)
EP (1) EP1074137A2 (ja)
JP (1) JP2002512395A (ja)
KR (1) KR100742436B1 (ja)
CN (1) CN1310487C (ja)
AU (1) AU763158B2 (ja)
CA (1) CA2329199A1 (ja)
WO (1) WO1999054804A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008097344A (ja) * 2006-10-12 2008-04-24 Hitachi Ltd 情報処理システム、情報処理方法、情報処理装置
WO2009001855A1 (ja) * 2007-06-27 2008-12-31 Globalsign K.K. サーバ証明書発行システム

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2784474A1 (fr) * 1998-10-08 2000-04-14 Thomson Multimedia Sa Gestionnaire d'applications avec jeu d'instructions de gestion variable
JP2003085084A (ja) * 2001-09-12 2003-03-20 Sony Corp コンテンツ配信システム及びコンテンツ配信方法、携帯端末、配信サーバ、並びに記憶媒体
US7363363B2 (en) 2002-05-17 2008-04-22 Xds, Inc. System and method for provisioning universal stateless digital and computing services
JP2004145392A (ja) * 2002-10-21 2004-05-20 Kddi Corp 動画像ファイル配信装置
US7512881B2 (en) * 2002-11-14 2009-03-31 International Business Machines Corporation Tool-tip for multimedia files
US7516484B1 (en) * 2008-02-13 2009-04-07 Michael Arnouse Reader adapted for a portable computer
US9010645B2 (en) * 2003-06-13 2015-04-21 Michael Arnouse Portable computing system and portable computer for use with same
US7533408B1 (en) * 2003-06-13 2009-05-12 Michael Arnouse Portable computing system, apparatus and method
CN1304984C (zh) * 2003-11-28 2007-03-14 中国科学院软件研究所 自动创建和管理远程终端图形用户接口会话的方法和系统
CN100440888C (zh) * 2004-01-17 2008-12-03 中国科学院计算技术研究所 基于网络存储和资源虚拟化的大型服务系统的管理系统及其方法
WO2006017198A2 (en) * 2004-07-08 2006-02-16 Actuality Systems, Inc. Architecture for rendering graphics on output devices
US7911446B2 (en) * 2004-07-13 2011-03-22 Hewlett-Packard Development Company, L.P. Networked keyboard and mouse drivers
US20070130261A1 (en) * 2005-11-26 2007-06-07 Shaub Frances J Control/satellite electronic work station configurations in which stations interact among themselves on a real-time basis
US7766243B2 (en) 2006-07-19 2010-08-03 Research In Motion Limited Method, system and smart card reader for management of access to a smart card
ATE510266T1 (de) 2006-07-19 2011-06-15 Research In Motion Ltd Verfahren, system und chipkartenleser zur verwaltung des zugangs zu einer chipkarte
CN100407180C (zh) * 2006-08-15 2008-07-30 北京飞天诚信科技有限公司 一种使hid设备能提供智能卡接口的装置及方法
US7756198B2 (en) * 2006-08-18 2010-07-13 Fujitsu Limited System and method for assigning channels in a wireless network
US7917149B2 (en) * 2006-08-18 2011-03-29 Fujitsu Limited System and method for reusing wireless resources in a wireless network
EP2081361B1 (en) * 2008-01-21 2014-03-26 Alcatel Lucent Converged information systems
US11113228B2 (en) 2008-02-13 2021-09-07 Arnouse Digital Devices Corporation Portable computing system and portable computer for use with same
USRE49124E1 (en) 2008-02-13 2022-07-05 Arnouse Digital Devices Corp. Mobile data center
US10235323B2 (en) 2008-02-13 2019-03-19 Michael Arnouse Portable computing system and portable computer for use with same
KR101545137B1 (ko) * 2008-04-17 2015-08-19 삼성전자주식회사 사용자 인터페이스를 생성하는 방법 및 장치
KR20090110202A (ko) * 2008-04-17 2009-10-21 삼성전자주식회사 개인화된 사용자 인터페이스를 디스플레이하는 방법 및 장치
KR101531165B1 (ko) * 2008-04-17 2015-06-25 삼성전자주식회사 클라이언트의 특성을 고려한 사용자 인터페이스를 제공, 수신하는 방법 및 장치
KR101560183B1 (ko) * 2008-04-17 2015-10-15 삼성전자주식회사 사용자 인터페이스를 제공/수신하는 방법 및 장치
US9959897B2 (en) * 2008-06-06 2018-05-01 Disney Enterprises, Inc. User input handling for digital video playback device
US20100088360A1 (en) * 2008-10-03 2010-04-08 Joe Jaudon Methods for dynamically updating virtual desktops or virtual applications
US20100088397A1 (en) * 2008-10-03 2010-04-08 Joe Jaudon Systems for dynamically updating virtual desktops or virtual applications
US9367512B2 (en) * 2009-04-22 2016-06-14 Aventura Hq, Inc. Systems and methods for dynamically updating virtual desktops or virtual applications in a standard computing environment
US8234332B2 (en) * 2009-04-22 2012-07-31 Aventura Hq, Inc. Systems and methods for updating computer memory and file locations within virtual computing environments
US20110082938A1 (en) * 2009-10-07 2011-04-07 Joe Jaudon Systems and methods for dynamically updating a user interface within a virtual computing environment
US8732290B2 (en) * 2010-10-05 2014-05-20 Citrix Systems, Inc. Virtual workplace software based on organization characteristics
CN102508695A (zh) * 2011-10-14 2012-06-20 深圳市京华科讯科技有限公司 一种屏幕虚拟化的方法及系统
US10101769B2 (en) 2012-04-10 2018-10-16 Michael Arnouse Mobile data center
CN104053019A (zh) * 2013-03-12 2014-09-17 中兴通讯股份有限公司 基于虚拟桌面的视频播放、处理方法及装置
US9483176B2 (en) * 2013-07-08 2016-11-01 Samsung Display Co., Ltd. Method and apparatus to reduce display lag of soft keyboard presses
FR3011704A1 (fr) * 2013-10-07 2015-04-10 Orange Procede de mise en œuvre d'une session de communication entre une pluralite de terminaux
CN103607452B (zh) * 2013-11-19 2017-09-12 浙江云巢科技有限公司 虚拟机终端数据的获取方法、装置及系统
CN105337955A (zh) * 2015-09-22 2016-02-17 电子科技大学 一种虚拟桌面的管理控制系统和方法
KR20180114667A (ko) 2017-04-11 2018-10-19 한국전자통신연구원 고품질 그래픽의 처리를 지원하는 가상 데스크탑 서버 및 그것을 이용한 고품질 그래픽의 처리 방법

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544320A (en) * 1993-01-08 1996-08-06 Konrad; Allan M. Remote information service access system based on a client-server-service model
WO1996017306A2 (en) * 1994-11-21 1996-06-06 Oracle Corporation Media server
US5623656A (en) * 1994-12-15 1997-04-22 Lucent Technologies Inc. Script-based data communication system and method utilizing state memory
JPH0926970A (ja) * 1994-12-20 1997-01-28 Sun Microsyst Inc 情報を検索するコンピュータによる実行方法及び装置
US5881239A (en) * 1995-01-23 1999-03-09 Tandem Computers Incorporated Network system with resilient virtual fault tolerant sessions
US5602905A (en) * 1995-01-23 1997-02-11 Mettke; Richard P. On-line communication terminal/apparatus
US5654886A (en) * 1995-03-14 1997-08-05 Wsi Corporation Multimedia outdoor information system
US5784562A (en) * 1995-10-10 1998-07-21 U S West Advanced Technologies, Inc. System for using a dialog session context to process electronic forms data on the world wide web
US5793365A (en) * 1996-01-02 1998-08-11 Sun Microsystems, Inc. System and method providing a computer user interface enabling access to distributed workgroup members
US5864868A (en) * 1996-02-13 1999-01-26 Contois; David C. Computer control system and user interface for media playing devices
US5812765A (en) * 1996-03-22 1998-09-22 Axxs Technologies Corporation Multi-media remote data access terminals and system
GB2313524A (en) * 1996-05-24 1997-11-26 Ibm Providing communications links in a computer network
US6006266A (en) * 1996-06-03 1999-12-21 International Business Machines Corporation Multiplexing of clients and applications among multiple servers
US5918013A (en) * 1996-06-03 1999-06-29 Webtv Networks, Inc. Method of transcoding documents in a network environment using a proxy server
US5961601A (en) * 1996-06-07 1999-10-05 International Business Machines Corporation Preserving state information in a continuing conversation between a client and server networked via a stateless protocol
US5828840A (en) 1996-08-06 1998-10-27 Verifone, Inc. Server for starting client application on client if client is network terminal and initiating client application on server if client is non network terminal
US5790792A (en) 1996-09-04 1998-08-04 Radiant Systems, Inc. Method and apparatus for transmitting multimedia data from and application logic server to interactive multimedia workstations
IL119364A (en) * 1996-10-06 2000-11-21 Icq Inc Communications system
US5864870A (en) * 1996-12-18 1999-01-26 Unisys Corp. Method for storing/retrieving files of various formats in an object database using a virtual multimedia file system
US6041357A (en) * 1997-02-06 2000-03-21 Electric Classified, Inc. Common session token system and protocol
US5960085A (en) * 1997-04-14 1999-09-28 De La Huerga; Carlos Security badge for automated access control and secure data gathering
US6193153B1 (en) * 1997-04-16 2001-02-27 Francis Lambert Method and apparatus for non-intrusive biometric capture
US6938257B1 (en) * 1997-07-17 2005-08-30 International Business Machines Corporation Apparatus and method to provide persistence for application interfaces
US5935212A (en) * 1997-08-07 1999-08-10 I-Planet, Inc. Connection-oriented session emulation
US5928363A (en) * 1997-08-27 1999-07-27 International Business Machines Corporation Method and means for preventing unauthorized resumption of suspended authenticated internet sessions using locking and trapping measures
US6035404A (en) * 1997-09-09 2000-03-07 International Business Machines Corporation Concurrent user access control in stateless network computing service system
US5983273A (en) * 1997-09-16 1999-11-09 Webtv Networks, Inc. Method and apparatus for providing physical security for a user account and providing access to the user's environment and preferences
WO1999026159A2 (en) 1997-11-14 1999-05-27 Microsoft Corporation Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions
US6076108A (en) * 1998-03-06 2000-06-13 I2 Technologies, Inc. System and method for maintaining a state for a user session using a web system having a global session server
KR20000057127A (ko) * 1999-02-03 2000-09-15 송동호 소프트웨어 임대 시스템을 위한 분산컴퓨팅 환경에서의프로그램 수행시스템 및 그 방법
KR100362532B1 (ko) * 2000-06-27 2002-11-23 주식회사 사이먼 인터넷 피씨방 환경에서의 분산 메모리 직/병렬 처리컴퓨터 구조를 활용한 데이터 프로세스 처리 시스템
KR100621787B1 (ko) * 2003-12-31 2006-09-13 학교법인 한국정보통신학원 그리드에서 사용자의 QoS와 응용특성에 근거한동적자원 할당방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008097344A (ja) * 2006-10-12 2008-04-24 Hitachi Ltd 情報処理システム、情報処理方法、情報処理装置
WO2009001855A1 (ja) * 2007-06-27 2008-12-31 Globalsign K.K. サーバ証明書発行システム

Also Published As

Publication number Publication date
KR20010042901A (ko) 2001-05-25
WO1999054804B1 (en) 2000-07-13
WO1999054804A2 (en) 1999-10-28
AU3863899A (en) 1999-11-08
WO1999054804A3 (en) 2000-04-27
CN1346564A (zh) 2002-04-24
CN1310487C (zh) 2007-04-11
WO1999054804A9 (en) 2001-07-05
EP1074137A2 (en) 2001-02-07
CA2329199A1 (en) 1999-10-28
AU763158B2 (en) 2003-07-17
US7346689B1 (en) 2008-03-18
KR100742436B1 (ko) 2007-07-25

Similar Documents

Publication Publication Date Title
JP2002512395A (ja) 仮想デスクトップ・システム・アーキテクチャを提供するための方法および装置
US6223289B1 (en) Method and apparatus for session management and user authentication
US6915347B2 (en) Associating multiple display units in a grouped server environment
WO2002037267A2 (en) Method and apparatus for session management and user authentication
US6658459B1 (en) System for sharing peripheral devices over a network and method for implementing the same
US7433937B2 (en) Coupling a filter graph space to a network driver space
US20020196196A1 (en) Multi-screen session mobility between terminal groups
US9161063B2 (en) System and method for low bandwidth display information transport
US20070050471A1 (en) Portable Remoting Component With A Scaleable Feature Set
US6483515B1 (en) Method and apparatus for displaying data patterns in information systems
EP1521427A2 (en) Systems and methods for determining remote device media capabilities
US20060026100A1 (en) Dynamic downloading of keyboard keycode data to a networked client
EP1257909B1 (en) Method and apparatus for improving utilization of a resource on a shared client
JP2000069451A (ja) 条件付きアクセスモジュ―ルへの直接アクセスによってデジタルビデオ放送共通インタフェ―ス機能を拡張する方法及び装置
JP2003500943A (ja) 多くの操作環境との互換性を与えるテレビセットトップターミナルのためのソフトウエアアーキテクチャー
US20010034770A1 (en) Method and device for implementing networked terminals in graphical operating environment
US7107308B2 (en) Low cost, stateless, full-featured information appliance
JP2003521027A (ja) 異なるオぺレーティングシステムプラットフォームにわたるデバイスドライバーの移植性のためのアブストラクトデバイスドライバーモデル
US7003797B2 (en) Secure personal identification number entry in a distributed network
US7562124B2 (en) Systems and methods for determining completion of building a presentation space in a TN3270 environment
KR20030046817A (ko) 예약분산전송을 통한 멀티미디어 데이터 전송방법
WO2002028085A9 (en) Reusing decoded multimedia data for multiple users

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040615

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040915

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040924

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050308