(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6114264
(24)【登録日】2017年3月24日
(45)【発行日】2017年4月12日
(54)【発明の名称】階層ディスプレイサーバシステム及び方法
(51)【国際特許分類】
G06F 13/00 20060101AFI20170403BHJP
G06F 15/00 20060101ALI20170403BHJP
【FI】
G06F13/00 510A
G06F15/00 410B
【請求項の数】28
【全頁数】30
(21)【出願番号】特願2014-515940(P2014-515940)
(86)(22)【出願日】2012年6月13日
(65)【公表番号】特表2014-529367(P2014-529367A)
(43)【公表日】2014年11月6日
(86)【国際出願番号】US2012042189
(87)【国際公開番号】WO2012174072
(87)【国際公開日】20121220
【審査請求日】2015年6月3日
(31)【優先権主張番号】13/160,122
(32)【優先日】2011年6月14日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】513316027
【氏名又は名称】ネットジン, インコーポレイテッド
【氏名又は名称原語表記】NETZYN, INC
(74)【代理人】
【識別番号】100107456
【弁理士】
【氏名又は名称】池田 成人
(74)【代理人】
【識別番号】100148596
【弁理士】
【氏名又は名称】山口 和弘
(74)【代理人】
【識別番号】100123995
【弁理士】
【氏名又は名称】野田 雅一
(72)【発明者】
【氏名】バッケ, スティーヴ
【審査官】
北川 純次
(56)【参考文献】
【文献】
米国特許出願公開第2003/0061323(US,A1)
【文献】
特開2002−123785(JP,A)
【文献】
特開2008−269332(JP,A)
【文献】
特開2006−178757(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/00
G06F 15/00
JSTPlus/JMEDPlus/JST7580(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
通信ネットワーク上の通信を介して作動するコンピューティングシステムであって、
前記通信ネットワークに通信可能に接続された少なくとも1つの非インテリジェントユーザシステムであって、該非インテリジェントユーザシステムの各々はそれぞれ少なくとも1つの低レベル構成要素を含む、非インテリジェントユーザシステムと、
前記通信ネットワークに通信可能に接続されたサーバの階層セットであって、スレーブサーバに通信可能に接続されたマスタサーバを含み、(i)前記マスタサーバと(ii)前記非インテリジェントユーザシステムへのアクセスを、前記マスタサーバによって通信可能に許可される場合には前記スレーブサーバとは、それぞれ前記通信ネットワークを介して前記非インテリジェントユーザシステムの前記低レベル構成要素をそれぞれ通信可能に制御する、階層セットと、
を備えるコンピューティングシステム。
【請求項2】
前記少なくとも1つの非インテリジェントユーザシステムの各々は、それぞれ前記ネットワーク上で通信する制限された処理能力と少なくとも1つの低レベル構成要素とを含み、前記少なくとも1つの低レベル構成要素は、それぞれカメラ、マイクロフォン、スピーカ、プリンタ、フラッシュドライブ、GPS受信器、ウィンドウを表示するためのディスプレイ、その他の入力デバイス及びその他の出力デバイスからなる群から選択され、
前記ユーザシステムは、前記通信ネットワーク上の前記低レベル構成要素の入力を、(i)前記スレーブサーバにより前記低レベル構成要素を制御するアクセスを前記マスタサーバが許可した場合には前記スレーブサーバに、さもなければ(ii)前記マスタサーバに、多重的に通信し、
(i)前記スレーブサーバにより前記低レベル構成要素を制御するアクセスを前記マスタサーバが許可した場合には前記スレーブサーバが、さもなければ(ii)前記マスタサーバが、前記ネットワークにおいて、前記低レベル構成要素の出力を制御可能に方向づけるために前記ユーザシステムに多重的に通信する、
請求項1に記載のコンピューティングシステム。
【請求項3】
各スレーブサーバによる前記非インテリジェントユーザシステムへの前記ネットワーク上の通信可能なアクセスが、それぞれ、前記マスタサーバ及び前記階層セットにおける優先度を有する任意のスレーブサーバによって制御され、前記マスタサーバ及び前記階層セットにおける優先度を有する他のスレーブサーバのうちのいずれかによって適用可能な許可を認められる、請求項1に記載のコンピューティングシステム。
【請求項4】
少なくとも1つの構成要素のユーザシステムとネットワーク上で通信するためのサーバシステムであって、
マスタサーバと、
前記マスタサーバに接続された少なくとも1つの第1のレベルのスレーブサーバと、
を備え、
前記マスタサーバが、前記ユーザシステムの前記少なくとも1つの構成要素のうちのいずれかを選択的に制御するために、前記少なくとも1つの第1のレベルのサーバのうちのいずれかが前記ネットワーク上の前記ユーザシステムにアクセスすることを許可することが可能であり、
前記少なくとも1つの構成要素の各々は、入力構成要素、出力構成要素及び組合せからなる群から選択される、
サーバシステム。
【請求項5】
従来のデスクトップ型ウィンドウユーザインターフェースが、前記マスタサーバと、前記マスタサーバによって前記ユーザシステムへのアクセスが許可された前記少なくとも1つの第1のレベルのスレーブサーバのいずれかとの単独及び組合せのいずれかを介して、前記ユーザシステム上に対話的に表示され、
前記マスタサーバと、前記マスタサーバによって前記ユーザシステムへのアクセスが許可された前記少なくとも1つの第1のレベルのスレーブサーバのいずれかとの各々により、前記ユーザシステムの選択的動作のために、それぞれの別個のウィンドウフレームが前記ユーザシステムの前記ウィンドウユーザインターフェース内に作成され、
可能なときには、前記マスタサーバと前記少なくとも1つの第1のレベルのサーバのいずれかとの前記それぞれの別個のウィンドウフレームは、前記マスタサーバと、前記少なくとも1つの第1のレベルのスレーブサーバと、可能な時には前記ユーザシステムと間でネットワーク上の通信を介して生成され、
前記マスタサーバのいずれかと、前記マスタサーバによって許可された場合及び許可されたときには前記少なくとも1つの第1のレベルのスレーブサーバのいずれかとのそれぞれの1つ又は複数のアプリケーションユニットが、前記マスタサーバと、可能であれば可能な時には前記マスタサーバによって前記ユーザシステムへのアクセスが許可された前記第1のレベルのスレーブサーバとの間の前記ネットワーク上の通信を介して、前記ユーザシステムの前記マスタサーバと可能な時には前記第1のレベルのスレーブサーバとに対応する前記それぞれの別個のウィンドウフレーム内にそれぞれ表示される、
請求項4に記載のサーバシステム。
【請求項6】
前記ネットワークに同期的及び非同期的のいずれかで通信可能に接続される同じユーザの、複数の異なる型のユーザシステムを更に備えており、
前記マスタサーバと前記マスタサーバによって許可された場合には前記第1のレベルのスレーブサーバとは、前記ネットワークにおいて前記複数の異なる型のユーザシステムの各々と通信し、前記サーバシステムは、前記ユーザによる通信に採用されている前記ユーザシステムの前記型に基づいて動作を自動的に調整する、請求項4に記載のサーバシステム。
【請求項7】
前記マスタサーバと前記マスタサーバに接続された前記少なくとも1つの第1のレベルのスレーブサーバとの間の、アプリケーションプログラミングインターフェース(API)に関するいずれの要件も不要である、請求項4に記載のサーバシステム。
【請求項8】
前記マスタサーバ、前記少なくとも1つのスレーブサーバのいずれか、及び前記階層セットからなる群の少なくとも1つに接続されたファイルシステムをさらに備え、
前記マスタサーバが、前記ファイルシステムのすべてのファイルにアクセス可能であり、前記スレーブサーバが、それぞれ、前記ファイルシステムのファイルを選択するためにアクセスを前記マスタサーバによって許可され得る、
請求項1に記載のコンピューティングシステム。
【請求項9】
前記ユーザシステムによる、前記マスタサーバと前記階層セットのそれぞれの任意のスレーブサーバとのいずれかとのファイアウォールを経由する通信が開始されると、前記マスタサーバと、前記マスタサーバによって通信可能に許可された場合には前記スレーブサーバとが、前記ファイアウォールを経由して前記ユーザシステムと通信し、
前記マスタサーバが、前記通信ネットワーク上の前記ユーザシステムとの前記マスタサーバによる通信に関して、前記少なくとも1つのスレーブサーバの各々による、前記ファイアウォールを介する前記ユーザシステムへの通信可能なそれぞれのアクセス可能性に関する許可を制御する、
請求項1に記載のシステム。
【請求項10】
ハイパーバイザをさらに備え、
前記階層セットが、前記ハイパーバイザに通信可能に接続された、仮想マスタサーバ及び少なくとも1つの仮想スレーブサーバを備える単一デバイスである、
請求項1に記載のコンピューティングシステム。
【請求項11】
前記ユーザシステムが、前記仮想化されたマスタサーバ及び前記少なくとも1つの仮想化されたスレーブサーバの前記単一デバイスに含まれる、請求項10に記載のコンピューティングシステム。
【請求項12】
サーバの階層セットにより、ユーザデバイスに接続された通信ネットワーク上の前記ユーザデバイスと通信する方法であって、
前記階層セットのマスタサーバによって複数のスレーブサーバの前記ユーザデバイスへのアクセス権を制御するステップであり、前記マスタサーバは前記ネットワーク上の通信により前記ユーザデバイスを制御する全てのアクセスが可能であり、前記複数のスレーブサーバの各スレーブサーバは前記ユーザデバイスを制御するためのアクセス許可を要求する、制御するステップと、
前記マスタサーバによって前記複数のスレーブサーバの少なくとも1つのアクセス権を制御するステップであって、前記複数のスレーブサーバの前記少なくとも1つは、前記マスタサーバによって許可された場合及び許可されたときのみ、前記ネットワーク上の通信により前記ユーザデバイスを制御するようにアクセスできる、制御するステップと、
サブレベルスレーブサーバとしての前記スレーブサーバのうちの少なくとも1つの、前記階層セットの前記複数のスレーブサーバの他のものへのアクセス権を、前記階層セットの上位レベルのスレーブサーバとしての前記スレーブサーバのうちの少なくとも1つの他のスレーブサーバによって、制御するステップであり、前記少なくとも1つのサブレベルのスレーブサーバが、前記マスタサーバ及び前記上位レベルのスレーブサーバによって許可された場合及び許可されたときのみ、前記ネットワーク上の通信により前記ユーザデバイスを制御するようにアクセスできる、制御するステップと
を含む、方法。
【請求項13】
前記通信ネットワーク上の前記ユーザデバイスとの前記マスタサーバの通信を介して、前記マスタサーバのために前記ユーザデバイスの別個のウィンドウの少なくとも1つを作成するステップと、
前記ユーザデバイスへのアクセスが許可された各スレーブサーバの前記通信ネットワーク上の通信を介して、各スレーブサーバのために前記ユーザデバイスの前記ウィンドウの各別個のウィンドウを、それぞれ作成するステップと
をさらに含む、請求項12に記載の方法。
【請求項14】
前記ユーザデバイスの構成要素の入力を表すデータを、前記ユーザデバイスにより、前記ネットワークを介して、(i)前記マスタサーバと(ii)前記ユーザデバイスへのアクセスが許可された前記スレーブサーバの少なくとも1つとのうちのいずれかに通信するステップをさらに含み、
前記ユーザデバイスにより通信するステップの、(i)前記マスタサーバと(ii)前記少なくとも1つのスレーブサーバのいずれかとのいずれかに格納されたアプリケーションプログラムが、前記ユーザデバイスの前記構成要素の入力を表す前記データを処理する、
請求項13に記載の方法。
【請求項15】
前記ユーザデバイスの構成要素の出力を表すデータを、前記ユーザデバイスによる前記通信するステップの(i)前記マスタサーバと前記少なくとも1つのスレーブサーバとのいずれかによって、前記ネットワークを介して前記ユーザデバイスに通信するステップをさらに含み、
出力を表す前記データが、前記ユーザデバイスによる出力を制御する、
請求項14に記載の方法。
【請求項16】
出力を表す前記データが、ビデオ、オーディオ、テキスト、グラフィック、マルチメディア、及び組合せの群から選択された、前記ユーザデバイスによる出力である、請求項15に記載の方法。
【請求項17】
前記ユーザデバイスが、前記ユーザデバイスによる前記入力及び出力のための制限された処理能力を有し、前記ネットワークにおいて前記マスタサーバと前記少なくとも1つのスレーブサーバのいずれかと通信する、請求項14に記載の方法。
【請求項18】
前記マスタサーバ及び前記スレーブサーバがそれぞれ、前記ユーザデバイスによって出力されるそれぞれのアプリケーションのためのそれぞれのユニットを含み、
前記ユーザデバイスよって通信するステップが、前記それぞれのユニットの動作のために、前記ネットワークの通信を介して、前記それぞれのユニットの(i)前記マスタサーバと(ii)前記ユーザデバイスへのアクセスを許可された前記スレーブサーバとのどちらかとともに実行され、
前記それぞれのユニットの(a)前記マスタサーバと(b)前記ユーザデバイスを制御するアクセスを許可された前記スレーブサーバとのうちの可能なサーバによって、前記ユーザデバイスのために作動する前記それぞれのユニットについて別個のウィンドウが作成される、
請求項14に記載の方法。
【請求項19】
前記それぞれのユニットが、業務生産性ユニット(business productivity unit)、カレンダ、クロック、ビデオゲーム、写真現像ユニット、メディアプレーヤ、及び組合せの群から選択される、請求項18に記載の方法。
【請求項20】
前記ユーザシステムのウィンドウをさらに備え、前記ウィンドウの別個のそれぞれが、前記マスタサーバにより前記ユーザシステムへのアクセスが許可された前記少なくとも第1のレベルのスレーブサーバの各それぞれのスレーブサーバについて、前記マスタサーバによって前記ユーザシステム上に固有に作成され、
前記ウィンドウ内で表示するためのピクセルを表すデータが前記ユーザシステムに通信されることによって、前記第1のレベルのスレーブサーバが前記ユーザシステムの前記ウィンドウにピクセルを、前記第1のレベルのスレーブサーバが前記ウィンドウを制御するために前記ネットワーク上の前記ユーザシステムにアクセスすることを前記マスタサーバが許可した場合に、記入する、
請求項4に記載のサーバシステム。
【請求項21】
前記マスタサーバ、前記第1のレベルのスレーブサーバ、前記第1のレベルのスレーブサーバに対する他のスレーブサーバ、及びより上の階層の任意の他のスレーブサーバに対する他のスレーブサーバの群から選択された、少なくとも1つの上位レベルのサーバと、
前記第1のレベルのスレーブサーバ、前記第1のレベルのスレーブサーバに対する他のスレーブサーバ、及びより上の階層の任意の他のスレーブサーバに対する他のスレーブサーバの群から選択された、前記少なくとも1つの上位レベルのサーバに対する少なくとも1つの下位レベルのサーバと、
前記ユーザシステムのウィンドウであり、前記ウィンドウのそれぞれが、前記上位レベルのサーバにより前記ユーザシステムへのアクセスが許可された前記下位レベルのサーバのそれぞれの各サーバについて、任意の上位レベルのサーバによって及び前記マスタサーバが前記上位レベルのサーバでない場合には前記マスタサーバによって、前記ユーザシステム上に固有に作成される、ウィンドウとをさらに備え、
前記ウィンドウ内で表示するためのピクセルを表すデータが前記ユーザシステムに通信されることによって、前記ユーザシステムへのアクセスを許可された前記下位レベルのスレーブサーバが前記ユーザシステムの前記ウィンドウにピクセルを記入する、
請求項4に記載のサーバシステム。
【請求項22】
前記ピクセルが、典型的なデスクトップ型フレーム、前記下位レベルのサーバのアプリケーションプログラムのグラフィック出力、ブラウザ、スプレッドシート、ライブビデオ、及び前記下位レベルのサーバに格納されたビデオの群から選択される、請求項21に記載のサーバシステム。
【請求項23】
前記下位レベルのサーバの各それぞれのサーバのための前記ウィンドウの前記それぞれが、前記下位レベルのサーバが前記ユーザシステムでピクセルを記入できる唯一の位置である、請求項21に記載のサーバシステム。
【請求項24】
前記ウィンドウ内で前記ユーザシステムに前記上位レベルのサーバによって作成される第2のウィンドウをさらに備え、
前記上位レベルのサーバが、前記下位レベルのサーバのいずれかによる前記第2のウィンドウへのアクセスを許可する、
請求項22に記載のサーバシステム。
【請求項25】
前記第2のウィンドウへのアクセスが許可された前記下位レベルのサーバが、前記第2のウィンドウへのみアクセスが許可され、さもなくば前記ウィンドウへのアクセスを許可されず、前記ネットワーク上の通信を介して前記ユーザシステムで前記第2のウィンドウにピクセルを記入することが可能な、請求項24に記載のサーバシステム。
【請求項26】
前記スレーブサーバは、前記階層セットの第1のレベルのスレーブサーバであり、
前記第1のレベルのスレーブサーバ及び前記通信ネットワークに通信可能に接続された前記階層セットの第2のレベルのスレーブサーバをさらに備え、該第2のレベルのスレーブサーバは、前記低レベル構成要素を制御するためのアクセスを前記第1のレベルのスレーブサーバによって通信可能に許可される場合、前記非インテリジェントユーザシステムの前記低レベル構成要素をそれぞれ制御する、請求項1に記載のコンピューティングシステム。
【請求項27】
前記通信ネットワークに通信可能に接続された前記階層セットの少なくとも1つの他のレベルのスレーブサーバを更に備えており、
前記少なくとも1つの他のレベルのスレーブサーバの各々は、
(i)前記マスタサーバと(ii)前記階層セットにおいて前記他のレベルのスレーブサーバに対してより高い優先度のいずれかのスレーブサーバが前記マスタサーバによってアクセスを許可される場合には前記階層セットにおけるより高い優先度の前記スレーブサーバとのいずれかによってアクセスを通信可能に許可される場合、
それぞれ前記通信ネットワークを介してそれぞれ前記低レベル構成要素を制御するために制御可能に前記非インテリジェントユーザシステムにアクセスするように階層的に配置されている、請求項26に記載のコンピューティングシステム。
【請求項28】
前記マスタサーバと、前記スレーブサーバのいずれかと、前記階層セットとからなる群の少なくとも1つに接続されたファイルシステムを更に備えており、
前記マスタサーバは前記ファイルシステムの全てのファイルにアクセス可能であり、
前記スレーブサーバは、前記ファイルシステムのファイルを選択するためのアクセスを、前記マスタサーバと、可能であれば選択前記ファイルへのアクセスを許可された階層セットの任意のより高い優先度のスレーブサーバとによって許可され得る、請求項27に記載のコンピューティングシステム。
【発明の詳細な説明】
【0001】
本出願は、同時係属であり、本出願と少なくとも1人の同一発明者を有し、本参照により本明細書に組み込まれた、以前の米国の国内出願である2011年6月14日出願の「Hierarchical Display-Server System andMethod」と題する米国特許出願第13/160122号の、優先権の利益を有する。
【技術分野】
【0002】
本発明は、一般に、サーバデバイス及び通信ネットワークによって接続された非インテリジェントユーザデバイス(non-intelligent user device)に関し、より詳細には、限定された処理能力を備えるか又は処理能力をまったく備えていない、ディスプレイ、入出力、及びネットワーキングの構成要素を有するユーザデバイスに通信可能に接続された、マスタサーバデバイス及び階層スレーブサーバデバイス(hierarchical slave server device)を含む、ディスプレイ・サーバシステムに関する。
【0003】
長年にわたり、様々なタイプのコンピューティングシステムが存在している。そのうちの4つの主要なタイプが、サーバ、クライアント、クライアント・サーバ、及びディスプレイ・サーバである。すべてのタイプのコンピューティングシステムは、ユーザに対するコンピューティングタスクを実行する。
【0004】
サーバシステムは、すべてのコンピューティングが中央位置で実行される単一のシステムからなり、このシステムには、初期のタスク開始以外のコンピューティングタスクとのユーザ対話は存在しない。典型的なサーバシステムは、従来のメインフレームである。
【0005】
クライアントシステムは、すべてのコンピューティングを実行する単一のシステムからなるが、クライアントシステムではコンピューティングタスクとの継続的なユーザ対話が存在する。典型的なクライアントシステムは、パーソナルコンピュータ、ラップトップ、スマートフォン、及びゲームコンソールである。
【0006】
クライアント・サーバシステムは、単一のコンピューティングタスクを合わせて実行する、サーバコンピューティングシステムとクライアントコンピューティングシステムの両方からなる。これらのシステムは、それぞれ別々にサーバシステム及びクライアントシステムの両方として動作する。サーバ及びクライアントの両方として動作するクライアント・サーバシステムは、少なくともタスク中でクライアントとして動作することに関連して、タスク中でユーザ対話を必要とする単一のコンピューティングタスクを実行する。現在使用されている典型的なクライアント・サーバシステムは、航空座席予約システム及び大型小売店販売時点管理システム(large retail store point-of-sale system)である。特殊なタイプのクライアント・サーバシステムは、ウェブサーバ/ブラウザクライアントである。任意のクライアント・サーバアプリケーションと同様に、ウェブサーバは単一の固有タスクを実行し、受け取った要求への応答を処理する。しかしながらブラウザプログラムは、固有のクライアントプログラムを各サーバプログラムに関連付けるのではなく、汎用クライアントプログラムとして働く。ブラウザはすべてのウェブサーバによって使用される。ブラウザは、現在、ブラウザ内で処理されるプログラムをオンザフライ(on the fly)でダウンロードすることによってアプリケーションを動作させることが可能であるため、ウェブブラウザ/サーバコンピューティングは、特にプログラムダウンロードの場合に、標準のクライアント・サーバコンピューティングと非常に類似していることに留意されたい。
【0007】
ディスプレイ・サーバシステムは、サーバコンピューティングシステム及び非インテリジェントユーザ側システムからなる。この非インテリジェントユーザシステムの重要な態様が、ディスプレイである。そのため、ユーザシステムは時折「ディスプレイ」と呼ばれ、したがって、これらのタイプのコンピューティングシステム向けのディスプレイ・サーバシステムを言い表す。サーバのみのコンピューティングシステムと同様に、ほぼすべてのコンピューティングタスクがディスプレイ・サーバシステム内のサーバによって実行され、いくらかでもあるとすれば、わずかなコンピューティング(入力及び出力動作に必要な範囲以外)がディスプレイによって実行される。しかしながら、これらのディスプレイ・サーバシステムにおいて、ディスプレイはサーバによって処理されるコンピューティングタスクとかなりの対話を行う。ディスプレイは、いくらかでもあるとすれば非常に限られた処理能力のみを有するため、サーバは、(クライアントシステムタイプのコンピューティングシステムの)クライアントシステムのほぼすべての処理及び他の機能を実行する。実際に、ディスプレイは、サーバから受信された(ピクセルを表す)データに対応するピクセルをディスプレイによって表示するのみである。ほとんどの場合、(ディスプレイ用のピクセルを表す)データは、サーバによって(ビデオストリーム又は他のデータストリームなどの)表示のためにディスプレイに送達され、ディスプレイでの(キーストローク及びマウスの動きなどの)低レベルのユーザイベント(low-level user event)は、本来、ディスプレイによってサーバに送信される。
【0008】
ディスプレイ・サーバコンピューティングは、現在のコンピューティングシステムに最も採用されていない構成であるが、ディスプレイ・サーバシステムは恩恵を与えることが可能であり、人気が高まることが予想される。典型的なディスプレイ・サーバコンピューティング環境は、ゼロクライアントコンピューティング(zero-client computing)と呼ばれる。ゼロクライアントコンピューティングでは、デスクトップオペレーティングシステム(OS)及びアプリケーションは、(典型的なパーソナルコンピュータなどの、クライアントシステムによってではなく)サーバによって処理される。ユーザ側システムは、しばしば、主として、ディスプレイ及びキーボード(又は他の入力及び出力デバイス(複数可))に結合された非インテリジェント「シンクライアント(thin-client)」デバイスである。
【0009】
ディスプレイ・サーバコンピューティングが採用されている別の環境が、3Dゲームである。3Dゲームは、サーバシステム、一般には高性能サーバコンピュータによって処理され、サーバシステムは、ゲームのピクセルビデオストリームを、テレビ受像機に接続された非常に「シンクライアント」なユーザ側システムに送達する。ユーザ側システムで、従来のゲームコントローラ入力デバイスは、ゲームプレイ中にユーザの入力をサーバシステムに通信する。
【0010】
したがって、より優れた動作柔軟性と改善された拡張可能性をディスプレイ・サーバシステムに提供することは有利なはずである。
【0011】
本発明の実施形態は、ディスプレイ「階層マルチサーバ(hierarchical multiple server)」システムを含む、ディスプレイ・サーバシステムである。ディスプレイ・サーバシステムは、被制御階層(controlled hierarchy)状に接続された複数のサーバデバイスにネットワークを介して接続された、1つ又は複数の非インテリジェントユーザシステム(ディスプレイ)を含む。
【0012】
ユーザシステムは、ディスプレイと、キーボード、マウス、スピーカ、マイクロフォン、及び/又は他の同様の周辺デバイスなどの1つ又は複数の入出力構成要素と、通信ネットワークに通信可能に接続されたネットワークインターフェースコネクタとを含む。ユーザシステムは、ユーザによる周辺デバイスを介した入力/アクションを表す非常に低レベルのデータを、ネットワークを介して、ネットワークの通信可能なサーバシステムに送信する。同様にサーバシステムは、周辺デバイスへの応答などのサーバシステムによる動作の結果を表す非常に低レベルのデータを、ネットワークを介して、ディスプレイ又は他の周辺デバイスに通信する。こうして通信される低レベルのデータは、例えば、サーバシステムによってユーザシステムのディスプレイに送信されるピクセル(ビデオ)、キーボードによってサーバシステムに送信されるユーザシステムのキーボードへのユーザの入力、サーバシステムによってユーザシステムのスピーカに送信されるオーディオサンプルなどを表す。ユーザシステムの処理は限られており、例えばユーザシステムは、ネットワークに必要な可能性がある場合、通信の多重化及び逆多重化のみを実行することができる。多重化及び逆多重化は、例えばユーザシステムの構成要素内で採用されるネイティブデータタイプ(native data type)を、ネットワークを介した通信に好適なネットワークメッセージに、又はその逆に変換するために、必要となる可能性がある。
【0013】
サーバは、単一のマスタサーバ及び複数セットのカスケードスレーブサーバ(cascading slave server)を伴い、階層状に配置構成される。マスタサーバは第1のレベルのスレーブサーバと通信し、第1のレベルのスレーブサーバは第2のレベルのスレーブサーバと通信する、という具合である。すべてのサーバは、ユーザシステムと直接通信可能である。マスタサーバは、ユーザシステムのそれぞれの構成要素すべてを完全な制御下におく。マスタサーバは、ユーザシステムのそれぞれの構成要素(複数可)を介して、階層状の各下位レベルのスレーブサーバにそれぞれ等しいか又はより少ない制御を提供する。マスタサーバは、あるとすればどの低レベルのサーバ(複数可)が構成要素に制御的にアクセスできるかを、ユーザシステム構成要素(複数可)に通知する。階層のそれぞれのスレーブサーバ及びマスタサーバによる、ユーザシステムのそれぞれの構成要素へのこの階層的アクセスは、サーバによる処理、及びユーザシステムの構成要素による入力/出力を、ユーザシステムに必要な重要な処理なしで、柔軟かつ極度にセキュアに可能にする。
【0014】
ユーザシステム及び階層サーバシステムは、一般に互いにリモートに配置され、ユーザシステムとサーバシステムは、イーサネット、WiFi、3G、又は他のデータネットワークなどの物理通信ネットワークを介して、通信可能に接続される。しかしながら、ある代替形態では、ユーザシステム及びサーバシステムを単一の物理デバイス内に含めることが可能であり、この場合にネットワークはデバイスのローカルな配線又は他のローカルなリンクである。
【0015】
組み合わされたユーザシステム及びサーバシステムは、非インテリジェントユーザシステム及び階層サーバシステム、単一物理デバイス、又は他の同様の配置構成の、いずれとして具体化されるかにかかわらず、本明細書では時折、階層ディスプレイ・サーバコンピューティング(hierarchical display-server computing)のために動作する階層ディスプレイ・サーバシステム(hierarchical display-server system)と呼ばれる。
【0016】
本発明は、添付の図面において制限としてではなく例として示され、同じ参照番号は同様の要素を示す。
【図面の簡単な説明】
【0017】
【
図1】本発明のある実施形態に従った、ネットワークによって接続された階層サーバシステム及び2つの非インテリジェントユーザシステムを示す図である。
【
図2】本発明のある実施形態に従った、2つの例示の典型的ユーザシステムである、例示のデスクトップユーザシステム及び例示のハンドヘルドユーザシステムを示す図である。
【
図3】本発明のある実施形態に従った、例示のハンドヘルドユーザシステムの例示の構成要素を示す図である。
【
図4】本発明のある実施形態に従った、サーバシステムの制御を通じて表示されるウィンドウを含む、例示のユーザシステムディスプレイに通信可能に接続された、例示の階層サーバシステムを示す図である。
【
図5】本発明のある実施形態に従った、階層サーバシステムのマスタサーバ及びスレーブサーバがユーザシステムのそれぞれの構成要素に対して有する可能性のある、例示のアクセス/制御権を示す図である。
【
図6】本発明のある実施形態に従った、階層ディスプレイ・サーバシステムの動作において、サーバシステムとユーザシステムとの間で通信される例示のメッセージを示す図である。
【
図7】本発明のある実施形態に従った、ユーザシステムのディスプレイ及びスピーカの動作における、2つの例示のスレーブサーバを伴う例示のマスタサーバを示す図である。
【
図8】本発明のある実施形態に従った、
図7のマスタサーバと、スレーブサーバと、ユーザシステムのディスプレイ及びスピーカとの、それぞれの間の通信を示す図である。
【
図9】本発明のある実施形態に従った、2つのユーザシステムそれぞれと通信し、ユーザシステムも互いに通信する、例示のサーバシステムを示す図である。
【
図10】本発明のある実施形態に従った、サーバシステムによってユーザシステム内に実装された例示のデスクトップ型のユーザインターフェースを示す図である。
【
図11】本発明のある実施形態に従った、非定常ユーザが複数のユーザシステム間を移動する動作における、例示のサーバシステムを示す図である。
【
図12】本発明のある実施形態に従った、従来のアプリケーションプログラミングインターフェース(API)を必要としない、例示のサーバシステムと動作する例示のユーザシステムを示す図である。
【
図13】本発明のある実施形態に従った、従来のアプリケーションプログラミングインターフェース(API)を必要としない、例示のサーバシステムと動作する他の例示のシステムを示す図である。
【
図14】本発明のある実施形態に従った、
図7のマスタサーバと、スレーブサーバと、ユーザシステムのディスプレイ及びスピーカとの、それぞれの間のファイアウォールが存在する通信を示す図である。
【
図15】本発明のある実施形態に従った、ファイルシステムにセキュアにアクセスするために、例示のサーバシステムと動作する例示のユーザシステムを示す図である。
【
図16】本発明のある実施形態に従った、単一の物理サーバデバイス内のマスタサーバ及び複数のスレーブサーバを仮想化するためのハイパーバイザと共に例示のサーバシステムを示す図である。
【
図17】本発明のある実施形態に従った、同じ単一の物理サーバデバイス内にすべて含まれる、マスタサーバ及び複数のスレーブサーバ、並びにユーザシステムのハイパーバイザ仮想化と共に、例示のサーバシステムを示す図である。
【
図18】本発明のある実施形態に従った、ユーザシステムのキーボードを介した例示のキーストロークメッセージ入力を含む、ネットワークを介して通信するユーザシステムと通信可能に動作する、階層ディスプレイ・サーバシステムを示す図であり、このキーストロークメッセージ入力は、階層ディスプレイ・サーバシステムのブラウザによって受信及び処理される。
【0018】
図1を参照すると、階層サーバシステム10は、スレーブサーバA102、スレーブサーバB101、スレーブサーバC111、スレーブサーバD103、及びスレーブサーバE110の、5つのスレーブサーバそれぞれに、直接又は間接的に通信可能に接続された、マスタサーバ100を含む。サーバシステム100は、通信ネットワークを介するなどして、ユーザシステムA104及びユーザシステムB109に通信可能に接続する。マスタサーバ100は、特に、スレーブサーバA102、スレーブサーバB101、及びスレーブサーバC111の、3つの第1のレベルのスレーブサーバに接続する。これら第1のレベルのスレーブサーバのうちの2つ(スレーブサーバA102及びスレーブサーバC111)は第2のレベルのスレーブサーバに接続し、すなわちスレーブサーバA102はスレーブサーバD103に接続し、スレーブサーバC111はスレーブサーバE110に接続する。
【0019】
ユーザシステムA104は、デスクトップ型の非インテリジェントユーザシステムであり、例えば、ディスプレイ105、キーボード106、マウス108、及びスピーカ107の、4つの物理構成要素を備える。キーボード106、マウス108、及びスピーカ107は、ディスプレイ105に接続する。ディスプレイ105は、サーバシステムに通信可能に接続された通信ネットワークへの接続のための、ネットワークインターフェースを含む。ユーザシステムB109は、携帯電話、タブレットディスプレイ、携帯情報端末、又は通信用モバイルデバイスなどの、ハンドヘルド型(handheld style)非インテリジェントユーザシステムである。ユーザシステムB109は、例えば、単一のユニタリハウジング内に格納されたディスプレイ及びキーボードを備える。ユーザシステムA104及びユーザシステムB109は、通信ネットワークなどを介して、サーバシステムのすべてのサーバ100、101、102、111、103、110に通信可能に接続することができる。
【0020】
マスタサーバは、マスタサーバと通信している各ユーザシステムのすべての構成要素へのアクセスを有する。マスタサーバ100は、例えばネットワークを介した通信アクセスを通じて、ユーザシステムAのすべての構成要素、すなわちユーザシステムA104のキーボード106、マウス108、及びスピーカ107のそれぞれ、並びに単一のユニタリハウジング内に一体化されているが、ユーザシステムB109の同様の各構成要素、すなわちユーザシステムB109のディスプレイ及びキーボードを、制御する。したがって、例えばマスタサーバ100は、ユーザシステムA104のディスプレイ105のいずれかの部分にビデオを送信し、スピーカ107上でオーディオを再生することができる。マスタサーバ100は、ユーザシステムA104のキーボード106及びマウス108への入力を通じて、ネットワークを介して通信を受信する。同様にマスタサーバ100は、ユーザシステムB109の各構成要素に通信可能にアクセスする。
【0021】
マスタサーバは、ユーザシステムの構成要素のいずれかへのアクセスを、マスタサーバに接続されたスレーブサーバ(又はこれらのいずれか)に提供することができる。マスタサーバ100は、例えば、ユーザシステムA104のディスプレイ105のすべて又は一部へのアクセスを、スレーブサーバA102に与えることが可能であり、その後、スレーブサーバA102は、ビデオを表示するためなどに、ディスプレイ105を通信可能に制御することができる。他の例では、マスタサーバ100は、ユーザシステムA104のスピーカ107へのアクセスをスレーブサーバA102に与えることが可能であり、それによってスレーブサーバA102は、トーン又は他のサウンドを再生するためなどに、スピーカ107を通信可能に制御することができる。
【0022】
スレーブサーバは、ユーザシステムの構成要素のいずれかへのアクセスを、スレーブサーバに接続された下位レベルのスレーブサーバに提供することができる。スレーブサーバA102は、例えばマスタサーバ100によってユーザシステムA104のスピーカ107へのアクセスが与えられた場合、そのアクセスをスレーブサーバD103(すなわち下位レベルのスレーブサーバ)に与えることができる。それによってスレーブサーバD103は、ユーザシステムA104のスピーカ107を通信可能に制御することができる。ユーザシステムA104は、スピーカ107に関して受信したすべてのオーディオを混合する。サーバがユーザシステム構成要素へのアクセスを下位レベルのサーバに提供した場合、ユーザシステムはそのアクセスについて通知される。ユーザシステムが、特定のサーバが所与の構成要素にアクセスできる旨を通知されていない場合、ユーザシステムはそのサーバからのその所与の構成要素に関するすべての通信を無視することになる。
【0023】
サーバ間及びサーバとユーザシステムとの間の接続は、イーサネット、WiFi、4G、WiMax、若しくは任意の他の通信ネットワーク、又はこうしたネットワークの組合せなどの、ネットワーク接続である。
【0024】
図2を参照すると、例示であるが非排他的な2つのタイプのユーザシステムが、デスクトップユーザシステム200及びハンドヘルドユーザシステム217である。デスクトップユーザシステム200は、例えば、USBフラッシュドライブ201、マイクロフォン202、スピーカ203、ディスプレイ204、カメラ205、マウス206、プリンタ207、及びキーボード208の、物理的に別々の構成要素を含む。構成要素201〜208はすべて制御ユニット209に接続し、制御ユニット209はネットワーク210に接続される。制御ユニット209は、ディスプレイ204などの他の構成要素のうちの1つに物理的に組み込まれることが可能であるか、又は、制御ユニット209は、限定された制御動作(例えば、重要でないオペレーティングシステム動作)にのみ採用されるデスクトップユーザシステム200の別のプロセッサとすることが可能である。例示の制御ユニットについては、
図3に関連して以下で説明する。ハンドヘルドユーザシステム216は、例えば、同様に基本的であるがすべて内部の、マイクロフォン210、キーボード211、ディスプレイ212、カメラ213、スピーカ214、制御ユニット219、及びネットワークインターフェース215の、構成要素を含む。この例では、ハンドヘルドユーザシステム217は、デスクトップユーザシステム200とは異なり、プリンタ、マウス、又はフラッシュドライブを有していない。しかしながら、ハンドヘルドユーザシステム217は、この例ではデスクトップユーザシステム200内に存在しない、GPSユニット216及びMEMS 218構成要素を有する。デスクトップユーザシステム200のネットワーク接続210は、イーサネットなどの有線、若しくはWiFi、4G、WiMax、又は他の通信ネットワークなどの無線、或いは、それらの組合せとすることができる。ハンドヘルドユーザシステム217のネットワーク接続215は、例えば無線である。デスクトップユーザシステム200及びハンドヘルドユーザシステム217は、単なる例であるが、本実施形態において動作可能であり得るデバイス及びデバイスの構成要素を示す。少なくともネットワーク通信能力及びある種の能力を備えた他のデバイス及び構成要素も、又は代替として、実施形態において可能である。
【0025】
図3を参照すると、小型ハンドヘルドデバイス300などの、典型的なユーザシステムの詳細な内部構成要素/機能ブロック図は、LCDディスプレイ306、スピーカ307、ブザー308、タッチスクリーン305、マイクロフォン312、カメラ313、及びキーボード314の、ハードウェア構成要素を含む。すべてのハードウェア構成要素は、デバイス300の低レベルのデータをネットワークを介して通信可能なデータに変換する、デバイス300の論理回路にインターフェース(相互作用)する。デバイス300の制御ユニット318は、構成要素を含むデバイス300の動作全体を制御する。ネットワークインターフェース301を介して受信されるメッセージは制御ユニット318によって処理され、制御ユニット318はメッセージを仮想的に逆多重化し302、適切な逆多重化されたメッセージデータをデータに関するそれぞれの構成要素に送達する。ビデオデコーダ304は、受信したネットワーク通信データをLCDディスプレイ306への送達のために変換する。ビデオデコーダ304は、標準のMPEG2、H.264、VC−1型デコーダ、又は適正(propriety)ビデオデコーダとすることができる。オーディオデコーダ303は、ネットワークデータを、スピーカ307への送達のためにアナログ信号に変換する。オーディオデコーダ303は、標準のAAC、MP3、G711型デコーダ、又は適正オーディオデコーダとすることができる。ハプティクス(haptics)デコーダ309は、ネットワークデータを、ブザー308を駆動するためのフォーマットに変換する。メッセージを出力する場合はこの逆が真であり、制御ユニット318はそれぞれの構成要素からのメッセージデータを仮想的に多重化し315、ネットワーク通信用にネットワークインターフェース301に送達するためのメッセージを生成する。タッチスクリーンエンコーダ310は、タッチスクリーン305からのデータを、ネットワークを介した送達用に変換する。オーディオエンコーダ311は、マイクロフォン315からのアナログデータを、ネットワーク介した送達用のデジタルデータに変換する。オーディオエンコーダ311データのフォーマットは、オーディオデコーダ303データのフォーマットと同一である。ビデオエンコーダ317は、カメラ305からのデータを変換する。ビデオエンコーダ317データのフォーマットは、ビデオデコーダ304データのフォーマットと同一である。ユーザシステムによって実質的なデータの処理は実行されないが、ユーザシステムは、デバイス300のハードウェアによって生成されるデータを出力されるネットワークメッセージにネットワークを介して通信可能な形で変換し、又は入力されるネットワークメッセージからデバイス300によって受信されるデータをハードウェアによって使用可能な形で変換する。
【0026】
図4を参照すると、ユーザシステムとの通信が許可された前述のような階層サーバは、それぞれ、それぞれのウィンドウを生成し、それによって複数のウィンドウ(すなわち、各サーバについて1つの別個のウィンドウ)がユーザシステムによって表示される。それぞれのサーバには、ディスプレイのそれぞれのウィンドウへのアクセス権が許可される。例えば、あるウィンドウへのアクセスを有するサーバは、そのウィンドウに記入するためのグラフィック表示を表すピクセルを送信する。ピクセルは、ブラウザなどのアプリケーションのグラフィック出力又はスプレッドシートとすることが可能であり、ピクセルはビデオ(ライブ又はハードドライブから読み取られる)とすることが可能であり、或いは、ピクセルは本実施形態で適用可能な他の媒体とすることが可能である。
【0027】
図4のサーバは、
図1のサーバのような、マスタサーバ400、並びに5つのスレーブサーバA401、B402、C414、D403、及びE413との階層関係を有する。
図4の例では、マスタサーバ400は、ディスプレイ408の全領域をカバーし、ウィンドウ404内のグラフィック表示(或いは、適宜、ビデオ又は他の媒体)を表すピクセルをウィンドウ404に記入する、全ディスプレイ408へのアクセス権を有し、ウィンドウ404を作成した。マスタサーバ400は、ウィンドウ405も作成し、ウィンドウ405内のグラフィック又は他の表示を表すピクセルを、ウィンドウ405に記入するためのアクセス権を、スレーブサーバA401に与えた。次にスレーブサーバA401はウィンドウ409を作成し、例えば、異なるか又は同じグラフィック若しくは他の表示を表すピクセルを、ウィンドウ409に記入するためのアクセス権を、スレーブサーバD403に与えた。マスタサーバ400はウィンドウ406を作成し、例えば、異なるか又は同じグラフィック若しくは他の表示又は媒体を表すピクセルを、ウィンドウ406に記入するためのアクセス権を、スレーブサーバB402に与えた。マスタサーバ400はウィンドウ412を作成し、異なるか又は同じグラフィック若しくは他の表示も表すピクセルなどを、ウィンドウ412に記入するためのアクセス権を、スレーブサーバC414に与えた。次にスレーブサーバC414はウィンドウ411を作成し、同じか又は異なるグラフィック若しくは他の表示も表すピクセルを、ウィンドウ411に記入するためのアクセス権を、スレーブサーバE413に与えた。
図4は、上位レベルのサーバがウィンドウを作成し、下位レベルのサーバがそのウィンドウにピクセルを記入することを示す。各下位レベルのサーバについて、ユーザシステムディスプレイ上でその特定サーバについて作成されるウィンドウは、下位レベルのサーバのピクセルが表示されることになる専用位置である。スレーブサーバは、それぞれのスレーブサーバが、マスタサーバ400又は階層関係の優先度の高いスレーブサーバによってアクセス権を与えられている、ウィンドウ(又は適宜、複数のウィンドウ)内に含められるウィンドウのみを作成することができる。
【0028】
図5を参照すると、ある実施形態に従い、可能であれば、ある例示のアクセス権が上位レベルのサーバによってスレーブサーバに与えられる。例えば、物理構成要素500、ディスプレイ上のウィンドウ501、及びサーバ対サーバ対話(やり取り、interaction)502の、アクセス権の3つの一般カテゴリが存在する。物理構成要素500の場合、特定サーバは、その構成要素にアクセスする(したがって動作可能に使用する)ための権利を有するか又は有さない。ディスプレイウィンドウ501は、
図4に関して論じたように、及び
図7に関して以下でさらに説明するように、階層的に作成される。上位レベルのサーバはウィンドウを作成し、そのウィンドウに記入するためのアクセス権を下位レベルのサーバに与える。それらに関連付けられたアクセス権を有する様々なサーバ対サーバ対話502が存在する。サーバには、情報交換をコピー/ペースト及びドラッグ/ドロップするためのアクセス権、
図15に関して以下でさらに説明されるようなファイルへのアクセス権、専用のサーバ対サーバ通信を交換するためのアクセス権などが、与えられ得る。さらにスレーブサーバは、優先度の高いサーバからのファイル動作のためのアクセスを要求することもできる。さらにスレーブサーバは、こうしたアクセスが必要な、下位レベルの1つ又は複数のスレーブサーバへのアクセスが必要であり、これを要求する場合もある。
【0029】
図6を参照すると、サーバとユーザシステムの間、サーバとサーバの間、及びいくつかの場合、2つ又はそれ以上のユーザシステムそれぞれの間で、ある例示のネットワークメッセージが送られる。例えばユーザ対サーバメッセージ600は、ユーザシステムのキーボード、マウス、GPSなどのハードウェア構成要素からの入力又は指示、或いは他の入力又は指示を表すデータを、ネットワーク通信を介してサーバに提供する。例えば、接続(Connect)メッセージは、ユーザシステムがマスタサーバとの通信を開始するために送信する第1のメッセージである。サーバ対ユーザメッセージ601は、例えば、プリンタ、スピーカ(音量)、及びカメラなどのユーザシステムのハードウェア構成要素に関する、指示又は命令を表すデータ/制御を提供する。サーバ対ユーザメッセージ601の少なくとも一部は、ユーザシステムウィンドウ及びデジタル著作権管理(DRM)に関するコマンドを表すデータである。1つのメッセージカテゴリ602は、サーバとユーザシステムの間、ユーザシステムとサーバの間、及びユーザシステム間で直接送信可能な、オーディオ及びビデオメッセージからなる。上位レベルのサーバは下位レベルのサーバにメッセージを送信し603、下位レベルのサーバも上位レベルのサーバにメッセージを送信する604。
【0030】
図18を参照すると、動作中の例示のユーザシステム1820及びサーバシステム1833(サーバシステムは、ユーザシステムへのアクセスが許可されたマスタサーバ或いは任意の上位又は下位サーバのうちのいずれか)は、サーバシステム1833によって処理されるブラウザソフトウェアアプリケーションなどの、サーバシステム1833のブラウザ1829に通信される、ユーザシステム1820のキーボード入力を含む。ユーザシステム1820は、サーバシステム1833の通信された命令を処理すること、及びこれに応答してユーザシステム1820で対応する表示又は他の出力動作を実行することが可能な、ユーザ側階層ディスプレイシステム1821を含む。ユーザシステム1820は、メッセージャ1822及び通信ユニット1823(階層構成のサーバシステムとのプロトコル及び通信のためのTCP/UDP及びIPソフトウェア及び/又はハードウェアユニットなど)も含む。ユーザシステム1820は、キーボード1824又は他の入力デバイスをさらに含む。
【0031】
サーバシステム1833はブラウザ1829を含む。サーバシステム1833は、実施形態に従った、階層ディスプレイ・サーバシステムにおいて、他のサーバシステムとの階層的対話及び配置構成が可能な、階層システム1830も含む。加えてサーバシステム1833は、メッセージャ1831及び通信ユニット1832(階層構成のユーザシステム1820及び他のサーバシステムとのプロトコル及び通信のためのTCP/UDP及びIPソフトウェア及び/又はハードウェアユニット又は構成要素など)も含む。
【0032】
動作時、(ユーザシステム1820のユーザによって入力可能なような)キーボード1824でのキーストローク1825は、ユーザ側階層ディスプレイシステム1821によって検出される。階層ディスプレイシステム1821は、検出されたキーストローク1825を処理して、キーストローク1825を表すデータがサーバシステム1833に通信されるべきであるかどうかを決定する。その後、階層ディスプレイシステム1821は、キーストローク1825を表すデータ1826をメッセージャ1822に渡す。メッセージャ1822は、キーストローク1825を表すデータを、サーバシステム1833によって読取り可能なメッセージ1828としてフォーマット化する。メッセージャ1822は、メッセージ1827を通信ユニット1823に送信する。通信ユニット1823は、このメッセージ1827をフォーマット化し、通信されたメッセージ1828の適用可能なTCP/UDP IPパケットプロトコルに従い、通信ネットワークなどを介してサーバシステム1833に通信する。
【0033】
サーバシステム1833の通信ユニット1832は、通信されたメッセージ1828をネットワークから通信可能に受信する。通信ユニット1832は、通信されたメッセージ1828から(メッセージ1827に対応する)メッセージ1836を抽出し、このメッセージ1836をメッセージャ1831に送達する。メッセージャ1831は、メッセージ1836がユーザシステム1820のキーボード1824へのキーストローク1825を表すかどうかを決定し、このメッセージ1836を入力1835としてサーバシステム1833の階層システム1830に送達する。こうした入力1835で、階層システム1830は、ユーザシステム1820でのキーストローク1825を表すブラウザ入力1834を抽出する。ブラウザ入力1834は、階層システム1830によってブラウザ1829に通信される。その後、ブラウザ1829は、ユーザシステム1820との通信及びユーザシステム1820での表示又は他の出力の動作のために、ブラウザ入力1834を処理する。
【0034】
図7及び
図8は、マスタサーバ700と、2つのスレーブサーバ702、704、並びにディスプレイ715及びスピーカ714からなるユーザシステム716との、例示の対話を示す。
図7は、対話を図式で示す。
図8は、この対話のセットアップをプロセスごとに示す。ユーザシステム716は、電源が投入されると、マスタサーバ700に接続705メッセージを送信する。マスタサーバ700は、座標0、0にウィンドウX717を作成するために、ウィンドウ706メッセージで応答する。その後マスタサーバ700は、ユーザシステム716のウィンドウX717に表示するためのビデオ媒体を表すピクセルをウィンドウ717に記入するために、(この例では)ビデオ707を送信する。その後、マスタサーバ700は、ウィンドウ及びスレーブ接続708メッセージをユーザシステム716に送信する。ウィンドウメッセージ708は、座標80,40にウィンドウY718を作成し、メッセージ708のスレーブ接続部分は、スレーブサーバA702が接続することをユーザシステム716に通知する。スレーブサーバA702が有するアクセス権は、接続メッセージ708の一部でもある。マスタサーバ700は、ユーザシステム716に接続することを通知する接続701メッセージを、スレーブサーバA702に送信する。ここでスレーブサーバA702は、ウィンドウY718内で表示するビデオ媒体を表すピクセルをウィンドウY718に記入する旨の(この例では)ビデオ709メッセージを、ユーザシステム716に送信する。
【0035】
ここで、ウィンドウZ719に対して同様のプロセスを反復する。スレーブサーバ702は、ウィンドウ及びスレーブ接続710メッセージをユーザシステム716に送信する。ウィンドウコマンドは、座標160,50にウィンドウZ719を作成し、メッセージのスレーブ接続部分は、スレーブサーバB704が接続することをユーザシステム716に通知する。スレーブサーバB704が有するアクセス権は、メッセージ710の一部でもある。スレーブサーバA702は、ユーザシステム716に接続することを通知する接続703メッセージを、スレーブサーバB704に送信する。ここでスレーブサーバB704は、ウィンドウZ719内で表示されるビデオ媒体を表すピクセルをウィンドウZ719に記入する旨の(この例では)ビデオ711メッセージを、ユーザシステム716に送信する。
【0036】
ここで、マスタサーバ700及びスレーブサーバA702の両方が、(さらにこの例に従って)オーディオ713、712メッセージをユーザシステム716に送信する。ユーザシステム716はオーディオを混合し、スピーカ714上でこれを再生する。ユーザシステム716がスレーブサーバA702からのオーディオを受け入れるために、マスタサーバ700は、スレーブサーバA 702がスピーカアクセス権を有する旨をユーザシステム716に通知してあることになる。
【0037】
図9を参照すると、サーバ900と2つのユーザシステム901及び908との詳細な対話の例示の実施形態において、ユーザシステム901及び908は、オーディオ923、924、及びビデオ921、922メッセージを互いに直接送信している。
図9に示されたような構成は、例えば2人のユーザ間でのビデオ/オーディオ会議で使用可能である。サーバ900は、ユーザシステムA901のディスプレイ902上に、ウィンドウJ903を作成するためにメッセージ917を送信し、ウィンドウK904を作成するためにメッセージ915を送信する。サーバ900は、ユーザシステムA901上に表示するためのオーディオ及びビデオ媒体を表すピクセルをウィンドウJ903に記入する旨の、ビデオ916メッセージを送信する。その後、サーバ900は、この例ではウィンドウM910及びウィンドウN101の、同様のウィンドウセットを、ユーザシステムB908のディスプレイ909上に作成する。サーバ900は、ウィンドウM910にビデオ919メッセージを記入する。その後、サーバ900は、ユーザシステムA901及びユーザシステムB908それぞれに、それらがそれぞれ他方のスピーカ及びディスプレイウィンドウそれぞれへのアクセスを有する旨を通知する。したがってユーザシステムB908は、カメラ912からのビデオ921メッセージを、ユーザシステムA901のウィンドウK904に送信する。同様にユーザシステムA901は、カメラ905からのビデオ922メッセージを、ユーザシステムB908のウィンドウN911に送信する。同様にオーディオは、各ユーザシステムのマイクロフォンとスピーカとの間でそれぞれ交換される。ユーザシステムA901のマイクロフォン906は、ユーザシステムB908のスピーカ914にオーディオ923メッセージを送信し、ユーザシステムB908のマイクロフォン913は、ユーザシステムA901のスピーカ907にオーディオ924メッセージを送信する。ビデオ及びオーディオは、ユーザシステムのアクセスが許可されている共通構成要素であるが、任意の構成要素へのアクセス権は、サーバからユーザデバイスへと渡されることが可能であるため、このようにユーザデバイスは他のユーザデバイスと通信することができる。
【0038】
図10は、実施形態に従った、ユーザシステムのディスプレイの例示の標準デスクトップ型ユーザインターフェースを示す。この例では、標準デスクトップ型ユーザインターフェースは、バックグラウンドデスクトップと、それぞれのアプリケーションユニットを含むそれぞれのウィンドウフレームとを含む。各アプリケーションユニットのウィンドウフレームは、アプリケーションユニットのサイズ変更、最小化、最大化、及び終了に対処することができる。加えてウィンドウフレームは、アプリケーションユニットのウィンドウを、ディスプレイの異なる位置に移動させることに対処可能である。この実施形態では、マスタサーバ1010及び2つのスレーブアプリケーションサーバ1017、1021は、ユーザシステムディスプレイ1016に接続する。マスタサーバ1010は、メインデスクトップウィンドウ1024を作成し、グラフィック、テキスト、及び/又はビデオ媒体を表すピクセルを記入するために、ウィンドウ1011メッセージ及びビデオ1012メッセージを送信する。デスクトップウィンドウ1024は、アプリケーションユニットを開始するためのデスクトップバックグラウンド及びデスクトップアイコンを含む。例えばクロックアプリケーションユニット(clock application unit)を開始したい場合、マスタサーバ1010はウィンドウ1018メッセージ及びビデオ1019メッセージをユーザシステムディスプレイ1016に送信する。これらのメッセージは、フレームウィンドウ1025を作成し、クロック又は他のタイミング媒体を表すピクセルを記入する。マスタサーバ1010は、クロックアプリケーションユニットのアプリケーションウィンドウ1026を作成するために、ユーザシステムディスプレイ1016にウィンドウ1020メッセージも送信する。その後、マスタサーバ1010は、クロックアプリケーションメッセージに対処可能なスレーブサーバ1017に、接続1009メッセージを送信する。その後、スレーブサーバ1017は、クロック又はタイマを表すクロックアプリケーションのピクセルをアプリケーションウィンドウ1026に記入するために、ビデオ1022メッセージを送信する。
【0039】
カレンダアプリケーションメッセージ(Calendar application message)に対処可能なスレーブサーバ1021が、ユーザシステムディスプレイ1016との通信を開始すると、同様のプロセスが発生する。マスタサーバ1010は、ウィンドウ1013メッセージ及びビデオ1014メッセージをユーザシステムディスプレイ1016に送信し、フレームウィンドウ1028などのフレームウィンドウを作成して、カレンダを表すピクセルを記入するよう、ディスプレイ1016に指示する。マスタサーバ1010は、カレンダアプリケーションウィンドウ1027を作成するためにウィンドウ1015メッセージを送信する。その後、マスタサーバ1010は、スレーブサーバ1021に接続1008メッセージを送信する。スレーブサーバ1021は、カレンダを表すピクセルをカレンダアプリケーションウィンドウ1027に記入するために、ビデオ1023メッセージを送信する。それによって、標準デスクトップ環境を非常にセキュアな方法でユーザシステム内に作成することが可能であり、各それぞれのアプリケーションユニットは、適用可能なマスタ及びスレーブサーバシステムのソフトウェアプログラム又は他の動作ユニットのものであってこれらによって処理される、テキスト、グラフィック、ビデオ、又は他の媒体を表すピクセルなどをウィンドウに記入するための、ユーザシステムに対する制限された権利を有する。
【0040】
図11を参照すると、階層関係にある複数のサーバの例示の実施形態は、ユーザが1つのユーザシステムから別のユーザシステムに移動する時に、複数のユーザシステムのそれぞれの特定のユーザに、サービスを提供することができる。この例示の実施形態では、マスタサーバ1100はスレーブサーバブラウザ1101及びスレーブサーバスプレッドシート1102に接続する。本実施形態によれば、デスクトップユーザシステム1104、ハンドヘルドユーザシステム1109、及びタブレットユーザシステム1112の、3つのユーザシステムが存在する。ユーザシステム間を周期的に移動できる、一人のユーザ1105のみが存在する。初期に、ユーザ1105はデスクトップユーザシステム1104を操作している。この例では、それぞれのサーバは前述のように、デスクトップユーザシステム1104への接続セット1103を用いて相互接続される。ユーザがデスクトップユーザシステム1104の使用を切断し、ハンドヘルドユーザシステム1109を使用するために移動した場合1106、次にハンドヘルドユーザシステム1109はマスタサーバ1100に接続メッセージを送信する。
【0041】
その後、マスタサーバ1100は、ユーザ1105がハンドヘルドユーザシステム1109に移動した旨を判定/検出/確認し、マスタサーバ1100は、デスクトップユーザシステム1104からハンドヘルドユーザシステム1109へのこのユーザの動きを、スレーブサーバブラウザ1101及びスレーブサーバスプレッドシート1102に、通信可能に通知する。その後、マスタサーバ1100並びにスレーブサーバ1101及び1102の両方は、それらそれぞれのメッセージを、デスクトップユーザシステム1104に送信する1103のではなく、ハンドヘルドユーザシステム1109に送信する1110ように、リダイレクトすることができる。
【0042】
任意の特定のデスクトップユーザシステム1104及びハンドヘルドユーザシステム1109は、それぞれ別個のハードウェア及び構成要素を有することが可能である。例えばデスクトップユーザシステム1104及びハンドヘルドユーザシステム1109は、それぞれ、異なるディスプレイのタイプ又はサイズ、キーボードタイプ、タッチ対マウス入力、及びその他の多様なタイプ及び型の構成要素などの、異なる構成要素を含むことができる。したがってデスクトップユーザシステム1104及びハンドヘルドユーザシステム1109は、それぞれ、通信に採用されるシステム1104又は1109に関するそれぞれのハードウェア/構成要素の詳細を、その都度サーバに通信する。サーバは、可能であれば、システム1104又は1109それぞれに関する対応する詳細を使用して、通信を自動的に修正し、それに応じて動作メッセージを送信する。例えば、各それぞれのシステム1104又は1109のタッチイベント並びに他の入力及び出力、並びにそれぞれのシステム1104、1109の他のイベント、特徴、及び応答に応答して、ウィンドウの全体サイズを変更するように、動作を変更することができる。
【0043】
さらに例示の実施形態において、ユーザ1105が、ハンドヘルドユーザシステム1109ではなくタブレットユーザシステム1112を介した通信を開始するために移動した場合1107、メッセージ通信1110は1111に進み、メッセージング1113はサーバによってタブレットユーザシステム1112へと向けられる。前述のように、ハンドヘルドユーザシステム1109及びタブレットユーザシステム1112がサーバに対して異なる構成要素を報告した場合、サーバは適宜動作を修正する。ここでユーザは、3つの異なるユーザシステムを使用しており、サーバは各固有のシステム1104、1109、及び1112それぞれに対して対処する動作を提供し、例えば、可能であれば、それぞれのデバイスの入力/出力、それぞれのディスプレイサイズ、並びに他の固有の機構及び構成要素の相違に合うように調整する。
【0044】
図12を参照すると、ユーザデバイス(複数可)と通信するための階層サーバの動作の例示の方法は、ユーザデバイスに関する従来のアプリケーションプログラミングインターフェース(API)要件を不要にする。この例では、スレーブサーバ1206は、ユーザシステム1207上にポップアップイベント通知を表示する。スレーブサーバ1206は、マスタサーバ1200に要求1203メッセージを送信する。要求1203メッセージは、スレーブサーバ1206アプリケーションが、ユーザシステム1207上にポップアップイベント通知を表示したい旨を、マスタサーバ1200に通知する。マスタサーバ1200によって許可可能であれば、マスタサーバ1200はウィンドウメッセージ1201をユーザシステム1207に送信する。ウィンドウ1205がユーザシステム1207上に表示される。マスタサーバ1200は、更新1204メッセージでスレーブサーバ1206に応答する。スレーブサーバ1206は、ビデオメッセージなどのメッセージ1202をユーザシステム1207に送信する。メッセージ1202は、ビデオメッセージを表すピクセルとして、ウィンドウ1205内に表示される。マスタサーバ1200は、例えばユーザシステム1207のユーザの注意をメッセージ1202に引き付けるために、ユーザシステム1207によって表示されるウィンドウ1205の位置を、アニメーション化することができる。スレーブサーバ1206は、可能であれば、マスタサーバ1200のアニメーション又は同様の指示に気付く必要はなく、マスタサーバ1200(又は階層によってそのように許可された任意の他のサーバ)は、同様にユーザシステム1207の動作を指示することができる。この例では、特殊なイベント通知APIが不要であることに留意されたい。
【0045】
図13を参照すると、ユーザデバイス(複数可)と通信するための階層サーバの動作の他の例示の方法も、ユーザデバイスに関する従来のアプリケーションプログラミングインターフェース(API)要件を不要にする。この例では、マスタサーバ1300は、複数のニュースサーバ、例えばスレーブサーバA1307、B1308、C1309、及びD1310の4つのニュースサーバの通信を介して、ニュースフィードリストを表示する。マスタサーバ1300は、ユーザシステム1301と通信して、ユーザシステム1301のディスプレイ1302上に4つの同一のウィンドウ1303、1304、1305、1306を作成する。その後、マスタサーバ1300は、4つのスレーブサーバA1307、B1308、C1309、及びD1310それぞれに接続し、スレーブサーバA1307、B1308、C1309、及びD1310は、それぞれのビデオメッセージをユーザシステム1301に送信する。それぞれのメッセージは、ユーザシステム1301のウィンドウ1303、1304、1305、又は1306のうちのそれぞれに、適用可能なビデオメッセージを表すピクセルを記入する。スレーブサーバA1307のメッセージはウィンドウ1303に記入し、スレーブサーバB1308のメッセージはウィンドウ1304に記入し、スレーブサーバC1309のメッセージはウィンドウ1305に記入し、スレーブサーバD1310のメッセージはウィンドウ1306に記入する。したがって、特別なニュースフィードAPIは不要である。
【0046】
図14を参照すると、ユーザデバイス(複数可)との通信のための階層サーバの動作の他の例示の方法は、ユーザシステム(複数可)への、ファイアウォールが存在する状態での、適用可能なサーバとユーザシステム(複数可)との間のアクセスを許可する。この実施形態では、マスタサーバ1400及びスレーブサーバ1401は、サーバ1400、1041とユーザシステム1403との間のユーザ側ファイアウォール1402を経由して、ユーザシステム1403に接続する。このタイプのファイアウォールは、例えば、ファイアウォール1402の背後のユーザシステム1403などのデバイスから通信が開始され、ファイアウォール1402を通過するのを可能にするが、ファイアウォール1402の外部からファイアウォール1402を経由しユーザシステム1403へと通過する通信は制約する。ユーザシステム1402によって、ファイアウォール1402を通過する外部への通信が開始されると、通信は、ファイアウォール1402の外部のデバイスがファイアウォール1402を通過してユーザシステム1403へと通信する経路、並びにその逆の、両方の経路をたどることができる。しかしながら、アクセス/通信のタイムアウトなど、又はその他の方法を通じて通信セッションが完了すると、適用可能サーバ(複数可)は、前述のような通信が再開されるまで、ユーザシステム1402との通信を切断する。
【0047】
さらに
図14に関して、ファイアウォール1402は、ユーザシステム1403からサーバ1400及び1401へと外に向かう初期の通信は許可するが、サーバ1400又は1401からユーザシステム1403への初期の通信は許可しない。動作時、ユーザシステム1403は初期にマスタサーバ1400と通信する1404。これにより、ファイアウォール1402内の通信経路が開通し、マスタサーバ1400はユーザシステム1403にメッセージ1405を送信することができる。スレーブサーバ1401がユーザシステム1403との通信を望む場合、マスタサーバ1400はスレーブサーバ1401に接続メッセージ1406を送信する。スレーブサーバ1401はOKメッセージ1407で応答する。マスタサーバ1400は、ユーザシステム1403に、スレーブサーバ1401に関する次の接続メッセージ1408を送信する。この接続メッセージ1408を受信すると、ユーザシステム1403はスレーブサーバ1041に別の接続メッセージ1409を送信する。これでファイアウォール1402内の通信経路は、サーバ1400、1406両方とユーザシステム1403との間で、双方向通信用に開通する。例えばスレーブサーバ1041は、ユーザシステム1403にメッセージ1410を送信する。
【0048】
スレーブサーバ1401とユーザシステム1403との間のメッセージ通信がタイムアウト期間に切断された場合、ファイアウォール1402は、例えばスレーブサーバ1401とユーザシステム1403との間の双方向通信に使用可能な通信経路を閉じ、スレーブサーバ1401はユーザシステム1403にメッセージ1411を送信するが、メッセージ1411は、ファイアウォール1402を通過することができない。スレーブシステム1401は、ファイアウォール1402を経由する双方向通信を再確立するために、接続要求メッセージ1412をマスタサーバ1400に送信しなければならない。マスタシステム1400は、接続メッセージ1413をユーザシステム1403に送信することによって応答する。接続メッセージ1413を受信すると、ユーザシステム1403はスレーブサーバ1401に接続メッセージ1414を送信して、スレーブサーバ1401を介した双方向通信のためのファイアウォール1402を開通させる。その後、スレーブサーバ1401は、メッセージ1411をメッセージ1415として再送し、メッセージ1415はユーザシステム1403による受信のためのファイアウォール1402を通過する。
【0049】
図15を参照すると、サーバ階層は、スレーブサーバのアクセスと、これに応じて、こうしたスレーブサーバからファイルデータベースなどのファイルシステム1500に含まれるファイルへのユーザシステム(複数可)のアクセスとを制御する。
図14のデバイス及び機構は
図1と同様であり、ファイルシステム1500が追加されている。この実施形態では、マスタサーバ100は、ファイルシステム1400に直接接続し、ファイルシステム1500に含まれるすべてのファイルにアクセス可能である。マスタサーバ100は、スレーブサーバ102のアクセス許可を制御し、本実施形態に適用可能であれば、ファイルシステム1500上のファイルのすべて又はサブセットへのアクセス権を、スレーブサーバ102に提供することができる。例えば、こうしたサブセットは1つのファイル、ファイルディレクトリ、ファイルのグループ、又はその他とすることができる。ファイルに関するアクセス権は、実装に応じて、読取り専用、読取り/書込み、添付専用、又は任意の他のタイプの、ファイルアクセスとすることができる。他の点と同様に許可及び階層に一致する任意のスレーブサーバは、そのアクセス権を、接続された1つ又は複数の他の下位レベルのスレーブサーバに渡すことができる。
【0050】
図16を参照すると、階層サーバの例示の実施形態は、単一の物理サーバデバイス(又は、可能であれば、複数のこうしたサーバデバイスの組合せ)内に仮想化されたマスタ及びスレーブサーバを提供する。この例では、
図4のような階層サーバは、単一のサーバデバイス(又は、可能であれば複数のデバイスの組合せ)内に、各サーバ400、401、402、414、403、413を含む。説明及び例示のために、すべてのサーバ400、401、402、414、403、413は単一デバイス1600内に含まれる。マスタサーバ400及びスレーブサーバ401、402、414、403、及び413は、それぞれハイパーバイザ(hypervisor)1601によって仮想化され、同じ単一デバイス1600内に含められる。例えばディスプレイ408及びキーボード410を含むユーザシステム407は、ネットワーク接続1602を介して単一サーバデバイス1600に接続され、それぞれ単一デバイス1600内に仮想化された、それぞれのマスタサーバ400並びにスレーブサーバ401、402、414、403、及び413の許可されたアクセス及び通信は、ハイパーバイザ1601に従ったそれぞれのサーバ間の関連付けを通じて制御される。
【0051】
図17を参照すると、他の例示の実施形態は仮想階層サーバを含む。この例では、説明のために、それぞれのマスタ及びスレーブサーバ並びに(この例では)ユーザシステムも、すべて単一の物理サーバデバイス(又は実装により、複数のこうしたデバイスの組合せ)内に含められる。この例での単一デバイス1700は、マスタサーバ400及びスレーブサーバ401、402、414、403、413、並びにディスプレイ408及びキーボード410を含む。同じデバイス1700内の仮想サーバ及びユーザシステムのこの例示の構成は、構成内で可能であれば、ディスプレイ、キーボード、通信、ストレージなどの、入力/出力機構を含む、デバイス1701又は他の同様の配置構成とすることができる。
【0052】
上記の記述では、特定の実施形態を参照しながら本発明を説明してきた。しかしながら当業者であれば、以下の特許請求の範囲に記載された本発明の範囲を逸脱することなく、様々な修正形態及び変更形態が可能であることを理解されよう。したがって、本明細書及び図面は、制約的な意味ではなく例示的な意味とみなされるべきであり、すべてのこうした修正形態は本発明の範囲内に含まれるものと意図される。
【0053】
利益、他の利点、及び問題に対する解決策について、これまで特定の実施形態に関して説明してきた。しかしながら、利益、利点、問題に対する解決策、並びにいずれかの利益、利点、又は解決策を実行すること又はより明らかにすることが可能なデバイス(複数可)、接続(複数可)、及び要素(複数可)は、いずれか又はすべての特許請求の範囲の重要、必要、又は必須な機構又は要素として解釈されるべきではない。本明細書で使用される場合、「含む」、「含んでいる」、又はその任意の他の変形の用語は、非排他的な包含をカバーするものと意図されるため、要素のリストを含むプロセス、方法、製品、又は装置は、それらの要素のみを含むものではないが、こうしたプロセス、方法、製品、又は装置に明示的に列挙されていないか又は固有でない、他の要素を含むことができる。
[発明の例]
[例1]
マスタサーバ及び1つ又は複数のスレーブサーバを含む、サーバの階層セットと、
少なくとも1つの非インテリジェントユーザシステムと、
前記マスタサーバ及び前記少なくとも1つの非インテリジェントユーザシステムを接続する、ネットワークと、
を備えるコンピューティングシステム。
[例2]
前記少なくとも1つの非インテリジェントユーザシステムのそれぞれが、カメラ、マイクロフォン、スピーカ、プリンタ、フラッシュドライブ、GPS受信器、及びウィンドウを表示するためのディスプレイからなる群から選択された、1つ又は複数の低レベルの構成要素を含み、
各ユーザシステムの各低レベルの構成要素の入力を表すデータが、多重化され、前記階層セットに前記ネットワークを介して前記ユーザシステムによって通信され、
前記ネットワークを介して前記階層セットから前記ユーザシステムによって受信される、各ユーザシステムの各低レベルの構成要素の出力を表すデータが、逆多重化され、前記低レベルの構成要素に送達され、
前記少なくとも1つの非インテリジェントユーザシステムのそれぞれが、入力を表すデータ及び出力を表すデータに関する制限された処理能力を含む、
例1に記載のコンピューティングシステム。
[例3]
各スレーブサーバによる前記ネットワークを介した通信可能なアクセスが、前記マスタサーバ及び前記階層セットにおける優先度を有する任意のスレーブサーバによって制御され、前記マスタサーバ及び前記階層セットにおける優先度を有する他のスレーブサーバのうちのいずれかによって適用可能な許可を認められる、例1に記載のコンピューティングシステム。
[例4]
少なくとも1つの入力/出力構成要素のユーザシステムとネットワークを介して通信するためのサーバシステムであって、
マスタサーバと、
前記マスタサーバに接続された少なくとも1つの第1のレベルのスレーブサーバとを備え、
前記マスタサーバが、前記ユーザシステムの前記入力/出力構成要素のうちの1つ又は複数を選択的に制御するために、前記第1のレベルのサーバのうちの任意の1つ又は複数が前記ネットワークを介して前記ユーザシステムにアクセスすることを許可することが可能である、
サーバシステム。
[例5]
従来のデスクトップ型ウィンドウユーザインターフェースが、前記マスタサーバと、前記マスタサーバによって前記ユーザシステムへのアクセスが許可された前記少なくとも1つの第1のレベルのスレーブサーバのいずれかとの単独又は組合せを介して、前記ユーザシステム上に対話的に表示され、
前記マスタサーバと、前記マスタサーバによって前記ユーザシステムへのアクセスが許可された前記少なくとも1つの第1のレベルのスレーブサーバのいずれかと通信する、前記ユーザシステムの選択的動作のために、ウィンドウフレームが前記ユーザシステムの前記ウィンドウユーザインターフェース内にそれぞれ作成され、
前記マスタサーバのいずれか、並びに前記マスタサーバによって許可された場合及び許可されたとき、前記少なくとも1つの第1のレベルのスレーブサーバのいずれかのそれぞれの1つ又は複数のアプリケーションユニットが、前記マスタサーバと、可能であれば前記マスタサーバによって前記ユーザシステムへのアクセスが許可された前記少なくとも1つの第1のレベルのスレーブサーバとの通信を介して、前記ユーザシステムの前記ウィンドウフレーム内にそれぞれ表示される、
例4に記載のサーバシステム。
[例6]
同じユーザの複数の前記ユーザシステムにサービスを提供することが可能であり、そのときに前記ユーザによる通信に採用されている前記ユーザシステムに基づいて動作を自動的に調整する、例4に記載のサーバシステム。
[例7]
前記マスタサーバと前記マスタサーバに接続された前記少なくとも1つの第1のレベルのスレーブサーバとの間の、アプリケーションプログラミングインターフェース(API)に関するいずれの要件も不要である、例4に記載のサーバシステム。
[例8]
前記マスタサーバ、1つ又は複数のスレーブサーバ、及び前記階層セットからなる群の少なくとも1つに接続されたファイルシステムをさらに備え、
前記マスタサーバが、前記ファイルシステムのすべてのファイルにアクセス可能であり、任意の1つ又は複数のスレーブサーバが、前記マスタサーバと、選択ファイルへのアクセスが許可された前記階層セットの任意の高優先度スレーブサーバとによって、前記ファイルシステムのファイルを選択するためにアクセスを許可され得る、
例1に記載のコンピューティングシステム。
[例9]
前記ユーザシステムによる、前記マスタサーバ及び任意のそれぞれ1つ又は複数のスレーブサーバとのファイアウォールを経由する通信が開始されると、階層セットのうちの選択されたものが、前記ファイアウォールを経由して前記ユーザシステムと通信し、
前記マスタサーバが、前記ユーザシステムとの通信に関して、前記1つ又は複数のスレーブサーバのそれぞれによる、前記ファイアウォールを介する前記ユーザシステムへの通信可能なアクセス可能性に関する許可を制御する、
例1に記載のシステム。
[例10]
ハイパーバイザをさらに備え、
マスタサーバ及び1つ又は複数の前記スレーブサーバの前記階層セットが、前記ハイパーバイザに接続された、仮想マスタサーバ及び少なくとも1つの仮想スレーブサーバを備える単一デバイスである、
例1に記載のコンピューティングシステム。
[例11]
前記ユーザシステムが、前記仮想化されたマスタサーバ及び前記少なくとも1つの仮想化されたスレーブサーバの前記単一デバイスに含まれる、例10に記載のコンピューティングシステム。
[例12]
通信ネットワークを介してユーザデバイスのウィンドウにメッセージを出す方法であって、
マスタサーバによって複数のスレーブサーバのアクセス権を制御するステップであり、前記マスタサーバは前記ネットワークを介して前記ユーザデバイスへの全てのアクセスが可能である、制御するステップと、
サブレベルスレーブサーバとしての前記スレーブサーバのうちの少なくとも1つのアクセス権を、上位レベルのスレーブサーバとしての前記スレーブサーバのうちの少なくとも1つの他のスレーブサーバによって、制御するステップであり、前記少なくとも1つのサブレベルのスレーブサーバのそれぞれが、前記マスタサーバ及び前記上位レベルのスレーブサーバによって許可された場合及び許可されたときのみ、前記ネットワークを介して前記ユーザデバイスへアクセスできる、制御するステップと
を含む、方法。
[例13]
前記通信ネットワークを介した前記ユーザデバイスとの前記マスタサーバの通信を介して、前記マスタサーバのために前記ユーザデバイスの前記ウィンドウの少なくとも1つを作成するステップと、
前記ユーザデバイスへのアクセスが許可された各スレーブサーバの前記通信ネットワークを介した通信を介して、各スレーブサーバのために前記ユーザデバイスの前記ウィンドウの各ウィンドウを、それぞれ作成するステップと
をさらに含む、例12に記載の方法。
[例14]
前記ユーザデバイスの構成要素の入力を表すデータを、前記ユーザデバイスにより、前記ネットワークを介して、前記マスタサーバと前記ユーザデバイスへのアクセスが許可された少なくとも1つのスレーブサーバとのうちのいずれかに通信するステップをさらに含み、
前記通信の前記マスタサーバと前記少なくとも1つのスレーブサーバとのいずれかに格納されたアプリケーションプログラムが、前記ユーザデバイスの前記構成要素の入力を表す前記データを処理する、
例13に記載の方法。
[例15]
前記ユーザデバイスの構成要素の出力を表すデータを、前記ユーザデバイスによる前記通信するステップの前記マスタサーバ及び少なくとも1つのスレーブサーバのいずれかによって、前記ネットワークを介して前記ユーザデバイスに通信するステップをさらに含み、
出力を表す前記データが、前記ユーザデバイスによる出力である、
例14に記載の方法。
[例16]
出力を表す前記データが、ビデオ、オーディオ、テキスト、グラフィック、マルチメディア、及び組合せの群から選択された、前記ユーザデバイスによる出力である、例15に記載の方法。
[例17]
前記ユーザデバイスが、前記ユーザデバイスによる前記入力及び出力のための制限された処理能力を有する、例14に記載の方法。
[例18]
前記マスタサーバ及び前記スレーブサーバがそれぞれ、前記ユーザデバイスによって出力されるアプリケーションのためのそれぞれのユニットを含み、
前記ユーザデバイスが、前記それぞれのユニットの動作のために、前記ネットワークを介した通信を介して、前記それぞれのマスタサーバ及びスレーブサーバと通信し、
可能であれば、前記ユニットの前記マスタサーバ及びスレーブサーバのうちの対応するものによって、各それぞれのユニットについて別個のウィンドウが作成される、
例14に記載の方法。
[例19]
前記ユニットが、可能であれば、業務生産性ユニット(business productivity unit)、カレンダ、クロック、ビデオゲーム、写真現像ユニット、メディアプレーヤ、及び組合せの群から選択される、前記マスタサーバ及び各スレーブサーバそれぞれのためのものである、例18に記載の方法。
[例20]
前記ユーザシステムのウィンドウをさらに備え、前記ウィンドウのそれぞれが、前記マスタサーバにより前記ユーザシステムへのアクセスが許可された前記少なくとも第1のレベルのスレーブサーバの各それぞれのスレーブサーバについて、前記マスタサーバによって前記ユーザシステム上に固有に作成され、
前記ウィンドウ内で表示するためのピクセルを表すデータが前記ユーザシステムに通信されることによって、前記第1のレベルのスレーブサーバが前記ユーザシステムの前記ウィンドウにピクセルを記入する、
例4に記載のサーバシステム。
[例21]
前記マスタサーバ、前記第1のレベルのスレーブサーバ、前記第1のレベルのスレーブサーバに対する他のスレーブサーバ、及びより上の階層の任意の他のスレーブサーバに対する他のスレーブサーバの群から選択された、少なくとも1つの上位レベルのサーバと、
前記第1のレベルのスレーブサーバ、前記第1のレベルのスレーブサーバに対する他のスレーブサーバ、及びより上の階層の任意の他のスレーブサーバに対する他のスレーブサーバの群から選択された、少なくとも1つの下位レベルのサーバと、
前記ユーザシステムのウィンドウであり、前記ウィンドウのそれぞれが、前記上位レベルのサーバにより前記ユーザシステムへのアクセスが許可された前記下位レベルのサーバのそれぞれの各サーバについて、任意の上位レベルのサーバによって及び前記マスタサーバが前記上位レベルのサーバでない場合には前記マスタサーバによって、前記ユーザシステム上に固有に作成される、ウィンドウとをさらに備え、
前記ウィンドウ内で表示するためのピクセルを表すデータが前記ユーザシステムに通信されることによって、前記下位レベルのスレーブサーバが前記ユーザシステムの前記ウィンドウにピクセルを記入する、
例4に記載のサーバシステム。
[例22]
前記ピクセルが、典型的なデスクトップ型フレーム、前記下位レベルのサーバのアプリケーションプログラムのグラフィック出力、ブラウザ、スプレッドシート、ライブビデオ、及び前記下位レベルのサーバに格納されたビデオの群から選択される、例21に記載のサーバシステム。
[例23]
前記下位レベルのサーバの各それぞれのサーバのための前記ウィンドウの前記それぞれが、前記下位レベルのサーバが前記ユーザシステムでピクセルを記入できる唯一の位置である、例21に記載のサーバシステム。
[例24]
前記ウィンドウ内で前記ユーザシステムに前記上位レベルのサーバによって作成される第2のウィンドウをさらに備え、
前記上位レベルのサーバが、前記下位レベルのサーバのいずれかによる前記第2のウィンドウへのアクセスを許可する、
例22に記載のサーバシステム。
[例25]
前記第2のウィンドウへのアクセスが許可された前記下位レベルのサーバが、前記ウィンドウへのアクセスを許可されず、前記ユーザシステムで前記第2のウィンドウにピクセルを記入することが可能な、請求項24に記載のサーバシステム。