(57)【要約】データをユーザマシンへストリームするサーバーのシステムであって、データはユーザマシンがデータを表示する能力によって定められる解像度でユーザマシンに表示するデータのストリームとしてユーザマシンへ送信される。データはユーザマシンにアプリケーションを動作させ、アプリケーションはサーバーで実行され、ユーザマシンがアプリケーションを動作させ表示するため要求されるようなデータがユーザマシンへ送信される。ユーザマシンはディスプレイ装置を有し、データはディスプレイ装置の解像度条件に従ってストリームされ、ディスプレイ装置はサーバーのディスプレイ装置としての役目を果たす。オペレーティングシステムは、サーバーがディスプレイ装置への表示用のアプリケーションを実行できるようにするため使用され、オペレーティングシステムはユーザマシンの単一オペレーティングレイヤアーキテクチャにある。データはユーザマシンのディスプレイ装置に表示されるＨＴＭＬメディアファイルでもよく、ＨＴＭＬメディアファイルは、サーバーによってあるメディアフォーマットからサーバーとユーザマシンとの間で取り決められたユニバーサルメディアフォーマットへ変換され、及び／又はユーザマシンへストリームされる前にサイズ変更される。アプリケーションは、システムの少なくとも一つの制限領域へのアプリケーションによるアクセスを制限するためアクセス制御が実施される保護環境で実行される。インストレーションは、ユーザマシン上の自動インストレーション用命令と共にサーバーによってユーザマシンへ送信してもよく、命令はユーザマシンへ送信される前にインストレーションと共にパックされるので、ユーザマシンによる受信時に、ユーザマシンがインストレーションと命令をアンパックし、命令を実行し、ユーザマシン上の組み込みを立ち上げることが可能である。【特許請求の範囲】
【請求項１】
データをユーザマシンへストリームするサーバーのシステムであって、
前記データが前記ユーザマシン上で表示し、操作するデータのストリームとして前記ユーザマシンのデータ表示能力によって決まる解像度で前記ユーザマシンへ送信される、システム。
【請求項２】
ユーザマシンにアプリケーションを動作させ、操作させるサーバーのシステムであって、
前記アプリケーションが前記サーバーで実行され、前記ユーザマシンが前記アプリケーションを動作させ表示するため要求されるようなデータが、前記ユーザマシンに表示するデータのストリームとして、前記ユーザマシンのアプリケーションを動作させ表示する能力によって決まる解像度で前記ユーザマシンへ送信される、システム。
【請求項３】
アプリケーションがユーザマシンのディスプレイ装置で表示し、操作するデータをストリームするサーバーで実行され、
前記データが前記ディスプレイ装置の解像度条件に従ってストリームされ、
前記ディスプレイ装置が前記サーバーのディスプレイ装置としての機能を果たす、アプリケーションサービスプロバイダオペレーティングシステム。
【請求項４】
サーバーにユーザマシンのディスプレイ装置で表示し、操作するアプリケーションを実行させることができ、前記ユーザマシンの単一オペレーティングレイヤアーキテクチャにあるソフトウェアシステム。
【請求項５】
前記ユーザマシン上で動作するプラットフォームを含み、
前記プラットフォームがオペレーティングシステムとしての機能を果たすプラットフォームエンジンを含む、請求項４記載のソフトウェアシステム。
【請求項６】
前記オペレーティングシステムが、セキュリティ、ドライバサポート、電源管理、ブートローダー及びファイルシステムに使われる、請求項６記載のソフトウェアシステム。
【請求項７】
前記単一オペレーティングレイヤアーキテクチャが前記サーバーで使用される、請求項４記載のソフトウェアシステム。
【請求項８】
ユーザマシンのディスプレイ装置にメディアファイルを表示させるため前記ユーザマシンにデータをダウンロードするサーバーのシステムであって、
前記メディアファイルが前記サーバーによってメディアフォーマットから前記サーバーと前記ユーザマシンとの間で取り決められたユニバーサルメディアフォーマットへ変換される、システム。
【請求項９】
前記データのリアルタイムストリーミングを可能にするため一定圧縮率が使用される、請求項８記載のシステム。
【請求項１０】
ユーザマシンのディスプレイ装置にＨＴＭＬファイルを表示させるため前記ユーザマシンにデータをダウンロードするサーバーのシステムであって、
前記サーバーが前記ファイルを前記ユーザマシンへ送信する前に前記ファイルのサイズを変更するＨＴＭＬサイズ変更サーバーを含む、システム。
【請求項１１】
前記ＨＴＭＬファイル内の画像が前記ディスプレイ装置に完全に表示することができるようにサイズ変更される、請求項１０記載のシステム。
【請求項１２】
前記ディスプレイ装置に前記ＨＴＭＬファイルを表示させるため、前記サーバー上で前記ＨＴＭＬファイルを解析し、前記ＨＴＭＬファイルのコードを補正する、請求項１０又は１１記載のシステム。
【請求項１３】
複数のアプリケーションが前記サーバーで実行され、
前記複数のアプリケーションがそれぞれのネイティブオペレーティングシステムをスタートさせることなく、又はそれぞれのネイティブオペレーティングシステムを保持する必要なく、表示情報及びデータが前記ディスプレイ装置へストリームされるように、すべてのアプリケーションが単一オペレーティングシステムに基づいて前記サーバーで実行される、請求項３記載のシステム。
【請求項１４】
ユーザマシンにサーバーで実行されるアプリケーションを動作させるサーバーのシステムであって、
前記アプリケーションが前記アプリケーションによるアクセスを当該システムの少なくとも一つの制限領域に限定するためアクセス制御が実施される保護環境で実行される、システム。
【請求項１５】
前記アプリケーションが実行前に前記保護環境へコピーされる、請求項１４記載のシステム。
【請求項１６】
ユーザマシンにインストレーションを供給するサーバーのシステムであって、
前記インストレーションが前記ユーザマシン上の自動インストレーション用の命令と共に前記サーバーによって前記ユーザマシンへ送信され、
前記ユーザマシンによる受信後に、前記ユーザマシンが前記インストレーション及び前記命令をアンパックし、前記命令を実行し、前記ユーザマシン上で前記インストレーションを立ち上げることができるように、前記命令が前記ユーザマシンへ送信される前に前記インストレーションと共にパックされる、システム。
【請求項１７】
前記インストレーションが装置ドライバである、請求項１６記載のシステム。
【請求項１８】
装置ドライバファイルがシステムファイルロケーションへコピーされ、システム設定が更新される、請求項１７記載のシステム。
【請求項１９】
頻繁に使用される装置ドライバの方が前記サーバーのメモリに維持されるように、前記ユーザマシンで使用された装置ドライバインストレーションの記録が保持される、請求項１６〜１８のいずれか一項記載のシステム。
【請求項２０】
前記メモリが読み出し専用メモリである、請求項１９記載のシステム。
【請求項２１】
前記インストレーションが前記ユーザマシンで動作するオペレーティングシステムの最新版である、請求項１６記載のシステム。
【請求項２２】
前記インストレーション内の新しいファイルが前記サーバーへコピーされる、請求項１６〜２１のいずれか一項記載のシステム。
【請求項２３】
前記ユーザマシンが前記サーバーのディスプレイ装置としての機能を果たすディスプレイ装置を含む、請求項２記載のシステム。
【請求項２４】
複数のアプリケーションが前記サーバーで実行され、
前記複数のアプリケーションがそれぞれのネイティブオペレーティングシステムをスタートさせることなく、又はそれぞれのネイティブオペレーティングシステムを保持する必要なく、表示情報が前記ディスプレイ装置へストリームされるように、すべてのアプリケーションが単一オペレーティングシステムに基づいて前記サーバーで実行される、請求項２３記載のシステム。
【請求項２５】
前記ユーザマシンの単一オペレーティングレイヤアーキテクチャでソフトウェアを動作させる、請求項２、２３又は２４のいずれか一項記載のシステム。
【請求項２６】
前記ソフトウェアが前記ユーザマシンで動作するプラットフォームを含み、
前記プラットフォームがオペレーティングシステムとして動作するプラットフォームエンジンを含む、請求項２５記載のシステム。
【請求項２７】
前記オペレーティングシステムが、セキュリティ、ドライバサポート、電源管理、ブートローダー及びファイルシステムに使われる、請求項２６記載のシステム。
【請求項２８】
前記単一オペレーティングレイヤアーキテクチャが前記サーバーで使用される、請求項２５記載のシステム。
【請求項２９】
前記データが前記ユーザマシンのディスプレイ装置に表示されるメディアファイルであり、
ＨＴＭＬメディアファイルが前記サーバーによってメディアフォーマットから前記サーバーと前記ユーザマシンとの間で取り決められたユニバーサルメディアフォーマットへ変換される、請求項１記載のシステム。
【請求項３０】
前記データのリアルタイムストリーミングを可能にするため一定圧縮率が使用される、請求項２９記載のシステム。
【請求項３１】
前記サーバーがＨＴＭＬファイルを前記ユーザマシンへ送信する前に前記ＨＴＭＬファイルのサイズを変更するＨＴＭＬサイズ変更サーバーを含む、請求項１、２９又は３０のいずれか一項記載のシステム。
【請求項３２】
前記ＨＴＭＬファイル内の画像が前記ディスプレイ装置に完全に表示することができるようにサイズ変更される、請求項３１記載のシステム。
【請求項３３】
前記ディスプレイ装置にＨＴＭＬメディアファイルを表示させるため、前記サーバー上で前記ＨＴＭＬファイルを解析し、前記ＨＴＭＬファイルのコードを補正する、請求項３１又は３２記載のシステム。
【請求項３４】
複数のアプリケーションが前記サーバーで実行され、
前記複数のアプリケーションがそれぞれのネイティブオペレーティングシステムをスタートさせることなく、又はそれぞれのネイティブオペレーティングシステムを保持する必要なく、表示情報が前記ディスプレイ装置へストリームされるように、すべてのアプリケーションが単一オペレーティングシステムに基づいて前記サーバーで実行される、請求項２、又は２３〜２８のいずれか一項記載のシステム。
【請求項３５】
前記アプリケーションが前記アプリケーションによるアクセスを当該システムの少なくとも一つの制限領域に限定するためアクセス制御が実施される保護環境で実行される、請求項２、２３〜２８、又は３４のいずれか一項記載のシステム。
【請求項３６】
前記アプリケーションが実行前に前記保護環境へコピーされる、請求項３４記載のシステム。
【請求項３７】
前記ユーザマシンで動作するプラットフォームを含み、
前記プラットフォームがオペレーティングシステムとして動作するプラットフォームエンジンを含む、請求項３又は１３記載のシステム。
【請求項３８】
前記オペレーティングシステムが前記ユーザマシンの単一オペレーティングレイヤアーキテクチャにある、請求項３７記載のシステム。
【請求項３９】
前記オペレーティングシステムが、セキュリティ、ドライバサポート、電源管理、ブートローダー及びファイルシステムに使われる、請求項３８記載のシステム。
【請求項４０】
前記単一オペレーティングレイヤアーキテクチャが前記サーバーで使用される、請求項３８記載のシステム。
【請求項４１】
前記アプリケーションが前記アプリケーションによるアクセスを当該システムの少なくとも一つの制限領域に限定するためアクセス制御が実施される保護環境で実行される、請求項３、１３、又は３７〜４０のいずれか一項記載のシステム。
【請求項４２】
前記アプリケーションが実行前に前記保護環境へコピーされる、請求項４１記載のシステム。
【請求項４３】
前記データが前記ユーザマシンのディスプレイ装置に表示されるＨＴＭＬファイルであり、
前記サーバーが前記ファイルを前記ユーザマシンへ送信する前に前記ファイルのサイズを変更するＨＴＭＬサイズ変更サーバーを含む、請求項８又は９記載のシステム。
【請求項４４】
前記ＨＴＭＬファイル内の画像が前記ディスプレイ装置に完全に表示することができるようにサイズ変更される、請求項４３記載のシステム。
【請求項４５】
前記ディスプレイ装置に前記ＨＴＭＬメディアファイルを表示させるため、前記サーバー上で前記ＨＴＭＬファイルを解析し、前記ＨＴＭＬファイルのコードを補正する、請求項４３又は４４記載のシステム。
【請求項４６】
複数のアプリケーションが前記サーバーで実行され、
前記複数のアプリケーションがそれぞれのネイティブオペレーティングシステムをスタートさせることなく、前記データが前記ディスプレイ装置へストリームされるように、すべてのアプリケーションが単一オペレーティングシステムに基づいて前記サーバーで実行される、請求項１、８、９、２９〜３３、又は４３〜４５のいずれか一項記載のシステム。
【請求項４７】
前記単一オペレーティングレイヤアーキテクチャがソフトウェアインタフェースを提供するエンジンエクゼキュータを含む、請求項４〜７、２５〜２８、又は３８〜４０のいずれか一項記載のシステム。
【請求項４８】
前記単一オペレーティングレイヤアーキテクチャがネイティブハードウェアサポートを提供するエンジンリスナを含む、請求項４〜７、２５〜２８、３８〜４０、又は４７のいずれか一項記載のシステム。
【請求項４９】
前記単一オペレーティングレイヤアーキテクチャがソフトウェアレイヤを有さない、請求項４〜７、２５〜２８、３８〜４０、４７、又は４８のいずれか一項記載のシステム。
【請求項５０】
アプリケーションプログラミングインタフェースがコマンドに翻訳される、請求項４〜７、２５〜２８、３８〜４０、又は４７〜４９のいずれか一項記載のシステム。
【請求項５１】
前記ユーザマシンが前記サーバー上でアプリケーションを立ち上げ、実行、操作、モニター及び停止することができる、請求項４〜７、２５〜２８、３８〜４０、又は４７〜５０のいずれか一項記載のシステム。
【請求項５２】
前記プラットフォームが予めプログラムされたハードウェアを認識し、許可されていないハードウェアと協働しない、請求項４〜７、２５〜２８、３８〜４０、又は４７〜５１のいずれか一項記載のシステム。
【請求項５３】
サイズ変更が幅タグ及び高さタグを有さない前記ファイル内のオブジェクトに幅タグ及び高さタグを付加し、前記オブジェクトが前記ディスプレイ装置の解像度条件に従って前記ディスプレイ装置に表示できるように前記幅タグ及び高さタグの値を補正することによる、請求項１０〜１２、３１〜３３、又は４３〜４７のいずれか一項記載のシステム。
【請求項５４】
前記幅タグの値が８００で除算され、要求された解像度の幅によって乗算される、請求項５３記載のシステム。
【請求項５５】
前記高さタグの値が６００で除算され、要求された解像度の高さによって乗算される、請求項５３又は５４記載のシステム。
【請求項５６】
前記解像度条件が前記ユーザマシンにより前記サーバーへ供給される、請求項３、１３、３７〜４２、又は５３〜５５のいずれか一項記載のシステム。
【請求項５７】
前記ユニバーサルメディアフォーマットが予め決められる、請求項８、９、２９〜３３、又は４３〜４７のいずれか一項記載のシステム。
【請求項５８】
前記ユニバーサルメディアフォーマットがストリーミングフォーマットであり、一定圧縮率を有する、請求項５７記載のシステム。
【請求項５９】
前記ユニバーサルメディアフォーマットへの変換がトランスコーディングによる、請求項５７又は５８記載のシステム。
【請求項６０】
前記ユニバーサルメディアフォーマットへの変換が前記ＨＴＭＬメディアファイルから原データへの第１の復号化及び伸長による、請求項５７又は５８記載のシステム。
【請求項６１】
プロセッサで実行可能であるソフトウェアアレンジメントであって、
請求項１〜６０のいずれか一項記載のシステムの一つ以上を実行するように前記プロセッサを設定するコンピュータプログラムを備える、ソフトウェアアレンジメント。
【請求項６２】
請求項１〜６０のいずれか一項記載のシステムの一つ以上を実行する対応した一つ以上の手段を備えるコンピュータシステム。
【発明の詳細な説明】
【発明の分野】
【０００１】
本発明は、マルチアプリケーションを使用するシステム及び方法に係わり、特に、モバイルコンピューティング環境で使用するこのようなシステム及び方法に関するが、これらに限定されるものではない。
【定義】
【０００２】
本明細書の全体を通して、マシンは、パーソナルコンピュータ（ＰＣ）、デスクトップコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、携帯情報端末（ＰＤＡ）、及び、移動／携帯／ハンド電話機（モバイルフォン）を含む。
【発明の背景】
【０００３】
多くのコンピュータアプリケーションは、パーソナルコンピュータ又はデスクトップコンピュータで使用することが予定されている。そのため、コンピュータアプリケーションは非常に膨大なファイルを含む場合が多く、ＲＡＭ集約型である。電子メールによるようなユーザマシンへの通常の通信、ワールド・ワイド・ウェブへのアクセス、又はあらゆる形式のメディア再生を取り扱うためには、マシンに複数のアプリケーションがインストールされ、可能であれば同時にオープンしていることが必要である。殆どのＰＣではハードディスクとＲＡＭを利用可能であるため、このことは通常問題にならない。多くのノートブック、特に、ＰＤＡ及びモバイルフォンの場合、これは重大な問題である。したがって、かんり頻繁に、それらは縮小版アプリケーションを使用するか、又は関連したアプリケーションの必ずしもすべてを使用できない。このため、特に、ＰＣとの通信を行うためにモバイルフォン又はＰＤＡを使用するようなときに問題が生じる。このことは、また、ＰＤＡ又はモバイルフォンの使用が実行可能なアプリケーションに限定されることを意味する。単一オペレーティングシステム内で他の動作環境のために記述されたアプリケーションを相互運用する能力はどのようなタイプのマシンでも可能ではない。アプリケーションは相互運用性を排除する一つの環境専用に記述される。
【従来技術の検討】
【０００４】
モバイルコンピューティング環境は産業に本当に力を与える解決手法を欠いている。特にデスクトップハードウェアと比較したときに非常に制限されているモバイルハードウェアの潜在能力を解き放つことができるソフトウェアは存在しない。デスクトップコンピューティング環境のオペレーティングシステムが解体され、モバイル装置に組み込まれている。そのプロセスにおいて、モバイル装置はオペレーティングシステムの欠点を継承する。現在提供されるものの中には、Ｗｉｎ  ＣＥ、Ｐａｌｍ  ＯＳ、Ｓｙｍｂｉａｎ及びＪａｖａ  ＯＳが含まれる。これらのストリップダウン版オペレーティングシステムの間の唯一の真の相違は、異なるベンダーから提供されている点だけである。
【０００５】
これらのストリップダウン版オペレーティングシステムはすべてインタフェースが異なる類似したアーキテクチャにモデル化される。これらの組み込み型オペレーティングシステムはすべて、デスクトップ環境からアクセスされ、異なる層で実行されるアプリケーションを有するデスクトップコンピューティングにモデル化される。これは、パーソナルコンピューティング環境におけるＷｉｎｄｏｗｓやＭａｃｈ  ＯＳによって普及した正確なモデル及びアーキテクチャであった。このモデルは、広範囲に亘る処理パワー、及び、例えば、ハードディスクドライブ、ハイメモリモジュール、強力なビデオカード、及び、優れたサウンドカードなどのような高度なハードウェアを利用することができるのでパーソナルコンピューティング環境に適当であった。この分野においてハードウェアの制限は大きい。低処理能力、小記憶容量、小規模メモリモジュールは、一般に組み込み型の分野でよく見受けられる。完全版のオペレーティングシステムは、高度なハードウェアを使用しない限り、ユーザに最適な性能及び経験を与えない。ユーザは、クラッシュと、性能レイテンシーと、異なるベンダー毎に異なるプレーヤを要求する様々なフォーマットを取り扱う必要性を経験する。
【０００６】
この結果として、縮小版の性能レベルは許容できなくなる。したがって、縮小版は、ユーザに「移動中に」計算する能力を与えるという意図された目的を達成できない。
【０００７】
縮小版としてモバイル装置に組み込まれた多数の階層化された本格的なオペレーティングシステムの使用は妥協策である。
【０００８】
したがって、本発明の主な目的は、ユーザマシン上で、特に、例えば、アプリケーションがユーザマシンではなくサーバー上で実行されるＰＤＡ若しくはモバイルフォンのような移動マシン上で多数の完全版のアプリケーションを使用するシステム及び方法を提供することである。アプリケーションはまたユーザマシン上で操作可能である。
【０００９】
本発明の更なる目的は、ユーザマシンのディスプレイ装置がサーバーのディスプレイ装置の機能を果たし、ユーザ装置に本来備わっている操作を可能にするようなシステムを提供することである。
【００１０】
本発明の最後の目的は、サーバーがユーザマシンのディスプレイ装置に表示するデータをそのディスプレイ装置の解像度に従って自動的に送信するようなシステムを提供することである。
【発明の概要】
【００１１】
上記の目的及びその他の目的に鑑みて、本発明は、データをユーザマシンへストリームするサーバーのシステムであって、データがユーザマシンのデータ表示能力によって決まる解像度でユーザマシンに表示するデータのストリームとしてユーザマシンへ送信される、システムを提供する。データはコードのバイトを含む。
【００１２】
他の形態において、本発明は、ユーザマシンにアプリケーションを動作させるサーバーのシステムであって、アプリケーションがサーバーで実行され、ユーザマシンがアプリケーションを動作させ表示するため要求されるようなデータがユーザマシンのアプリケーションを動作させ表示する能力によって決まる解像度でユーザマシンに表示するデータのストリームとしてユーザマシンへ送信される、システムを提供する。
【００１３】
本発明は、また、アプリケーションがサーバー上で実行され、サーバーがユーザマシンのディスプレイ装置に表示するデータをストリームし、データがディスプレイ装置の解像度条件に従ってストリームされ、ディスプレイ装置がサーバーのディスプレイ装置の機能を果たす、アプリケーションサービスプロバイダオペレーティングシステムを提供する。複数の多種多様なアプリケーションがサーバー上で実行され、すべてのアプリケーションは、複数のアプリケーションがアプリケーションに固有のオペレーティングシステムを始動させること、若しくは、その存在を必要とすることなくデータがディスプレイ装置へストリームされるように、単一オペレーティングシステムに基づいてサーバー上で実行される。
【００１４】
更なる形態において、本発明は、サーバーにユーザマシンのディスプレイ装置上で表示及び操作のアプリケーションを実行させることができるソフトウェアシステムであって、ユーザマシンの単一オペレーティングレイヤアーキテクチャにあるソフトウェアシステムを提供する。このソフトウェアシステムはユーザマシン上で動作するためのプラットフォームを含み、プラットフォームはオペレーティングシステムとしての機能を果たすプラットフォームエンジンを含む。好ましくは、オペレーティングシステムは、セキュリティ、ドライバサポート、電源管理、ブートローダー及びファイルシステムのためのものである。単一オペレーティングレイヤアーキテクチャはまたサーバーで使用される。
【００１５】
本発明は、また、あらゆるメディアファイルをユーザマシンのディスプレイ装置に表示させることを可能にするためデータをユーザマシンへストリームするサーバーのシステムであって、このようなメディアファイルがサーバーによってメディアフォーマットからサーバーとユーザマシンとの間で取り決められたユニバーサルメディアフォーマットへ変換されるシステムを提供する。この変換の一定圧縮率はデータのリアルタイムストリーミングを可能にするため保証される。
【００１６】
本発明によって更に提供されるのは、ＨＴＭＬファイルをユーザマシンのディスプレイ装置に表示させることができるようにユーザマシンにデータをストリームするサーバーのシステムであって、サーバーがファイルをユーザマシンへ送信する前にファイルをサイズ変更するＨＴＭＬサイズ変更サーバーを含む。ＨＴＭＬファイルのあらゆる画像はディスプレイ装置に完全に表示されるようにサイズ変更される。ＨＴＭＬファイルは、ＨＴＭＬメディアファイルをディスプレイ装置に表示できるようにするため、サーバー上で、解析されコード補正される。このプロセスは自動的に行われる。
【００１７】
更に別の形態において、本発明は、サーバーがユーザマシンにサーバー上で実行されるアプリケーションを動作させ得るようにすることができるシステムであって、アクセス制御がアプリケーションによるアクセスをシステムの少なくとも一つの制限領域に制限するため組み込まれた保護環境でアプリケーションが実行される、システムを提供する。アプリケーションは実行前に保護環境にコピーしてもよい。
【００１８】
最後の形態において、本発明は、ユーザマシンにインストレーションを供給するサーバーのシステムであって、インストレーションがユーザマシン上の自動インストレーションのための命令と共にサーバーによってユーザマシンへ送信され、命令がユーザマシンへ送信される前にインストレーションと共にパックされ、その結果、ユーザマシンによる受信時に、ユーザマシンがインストレーション及び命令をアンパックし、命令を実行し、ユーザマシン上での組み込みを立ち上げることが可能である、システムを提供する。インストレーションは装置ドライバでもよく、この場合、装置ドライバはシステムファイルロケーションにコピーされ、システム設定が更新される。ユーザマシン上で使用された装置ドライバインストレーションの記録は、非常に頻繁に使用される装置ドライバがサーバーのメモリに保持されるように保存してもよい。メモリは読み出し専用メモリでもよい。
【００１９】
インストレーションは、ユーザマシン上で動作するオペレーティングシステムの更新でもよく、この場合、インストレーションの新しいファイルがサーバーへコピーされる。
【００２０】
本発明は、また、本発明のすべての形態の考えられるあらゆる組み合わせに及ぶ。
【００２１】
本発明が完全に理解され容易に実施されるようにするため、一例として、その例に限定されることなく、次に、本発明の好ましい一実施形態を添付図面を参照して説明する。
【好ましい実施形態の説明】
【００２２】
以下の記述は移動コンピューティング環境（モバイルフォン、ＰＤＡなど）に関連するが、本発明は通信ネットワークを介してサーバーと通信し得るあらゆるマシンと共に使用可能である。
【００２３】
以下の記述で、参照番号は対象が存在する図を指定する最初の２桁の数字と共に使用される。例えば、０６０５は図６における対象５を参照し、０７００は図７を参照する。
【００２４】
最初に図２０を参照すると、プラットフォームが単一オペレーティングレイヤアーキテクチャ（ＳＯＬＡ）に構築され、エンジンエクゼキュータ２００１及びエンジンリスナ２０２０を有する。エンジンエクゼキュータ２００１は、インターネットインタフェース及びリモートアプリケーションインタフェースを含むソフトウェアインタフェース２００２を提供する。エンジンリスナはネイティブハードウェアサポートインタフェースを提供する。
【００２５】
プラットフォームは唯一のそのエンジンを有する。プラットフォームエンジンが提供するシェルは本来的にプラットフォームエンジンによって与えられる。プラットフォームエンジンは、ネイティブＩ／ＯサポートとしてＨＴＭＬ及びマルチメディア出力を提供する。ＡＰＩは設けられないので、アプリケーションレイヤは取り除かれる。これは、また、サードパーティのアプリケーションが直接ハードウェアアクセスを行うことができる可能性を低減する。このようにして、あらゆるネイティブアクセスはプラットフォームエンジンによって選別されなければならない。アプリケーションはプラットフォームエンジンの上部で動かない。その代わりに、セッションがアプリケーションを取り扱うため作成され、アプリケーションはサーバー上で遠隔的に動く。
【００２６】
ＡＰＩを呼び出すアプリケーションがないので、ソフトウェアレイヤは存在しない。その代わりに、リモートアプリケーションから呼び出されるＡＰＩが、サーバーエンジンとプラットフォームエンジンとの間で共有されるコマンドに変換される。その理由は、プラットフォームエンジンの上部で動くアプリケーションがないからである。常に、プラットフォームエンジンだけがユーザ、及び、サーバーからの命令を受理する。付加的に、ウェブコンテンツは、ハードウェア処理タスクのため使用可能なコマンドを呼び出すことが許可される。このような呼び出しは、コマンドが呼び出されるたびに解析され、ウェブコンテンツ及びリモートアプリケーションによる直接的なハードウェアリソースアクセスがないので、ＡＰＩ呼び出しとは異なる。
【００２７】
アプリケーションはサーバー上で動くので、既存ＯＳの縮小版は必要がない。プラットフォームエンジンはサーバーエンジンから要求データを受信する。要求データは、次に、ユーザマシンのディスプレイ装置（スクリーンなど）に表示される。ＨＴＭＬ４．０ウェブコンテンツをサポートする能力は、完全なウェブ体験が移動マシン上でプラットフォームを使用するユーザにもたらされることを意味する。サーバーに最初に接続されるとき、プラットフォームは、ユーザマシンの詳細（そのディスプレイ装置の解像度を含む）をサーバーへ与えるので、ユーザマシンへ送信されたすべてのデータはプラットフォームによって処理することが可能であり、ユーザマシンのディスプレイ装置に表示可能であろう。
【００２８】
ユニバーサルマルチメディアフォーマット２００４は、ユーザがあらゆるファイルフォーマットのあらゆるリッチメディアコンテンツを要求することを許可し、コンテンツの変換版を再生する能力を備え、マシンの大規模なメモリ（ＲＡＭ）を利用する複数のプラグインの必要性を排除する。ユニバーサルマルチメディアフォーマット２００４は圧縮の一貫性を与えるので、メディアファイルの圧縮は開発者が異なる場合でも整合性がある。これは、常に帯域幅の効率的な利用を可能にする。
【００２９】
アプリケーションの立ち上げ、操作及びマルチリモートタスク実行は、ローカルエンドでの実行ではないので高速アプリケーションハンドリングを意味する。その代わりに、モニタリングと操作がローカルに実行される。一つのアプリケーションから別のアプリケーションへの切り替えは、ローカルエンドのＯＳがメモリページング若しくはプログラムスイッチングを必要としないので、かなり高速である。
【００３０】
外部周辺装置サポート及び自動インストレーションは、ユーザが要求されたドライバ及び組み込み命令を知らなくてもよいことを意味する。その代わりに、プラットフォームは必要なドライバを要求し、要求されたドライバを自動的に組み込む。したがって、サーバーはプラットフォームがサポートできる内容がわかり、必要な自動インストレーションの詳細を供給するので、システムドライバの完全性は高い。プラットフォームは、周辺装置の使用するためのドライバの自動インストレーションを実行可能である。
【００３１】
プラットフォームエンジンのエンジンエクゼキュータは、ソフトウェア能力を規定し、一方、エンジンリスナはハードウェア能力を規定する。
【００３２】
ネイティブＨＴＭＬパーサー２００３は、プラットフォームエンジンがＨＴＭＬを解析する能力を有することを意味する。ＨＴＭＬ出力を解析し翻訳するためブラウザアプリケーションに依存する他のＯＳとは異なり、プラットフォームエンジンはＨＴＭＬ出力をそのままの形で解析し翻訳する。これにより、ＨＴＭＬコンテンツの標準出力が得られ、すべての移動装置に亘るフォーマットの一貫性を与える。
【００３３】
ネイティブＨＴＭＬ４．０パーサー２００３のため使用される規格はＮＣＳＡ  Ｍｏｓａｉｃ（トレードマーク）及びＷ３Ｃ標準に基づく。しかし、ネイティブＨＴＭＬブラウザモジュールは、外部プレーヤ又はプラグインを用いることなくすべてのリッチメディアコンテンツを読むことができる。ＵＲＬが与えられると、ブラウザは、ユーザマシンのディスプレイ装置の解像度、スクリーンサイズ及びカラーデプスの仕様をサーバーへ送信することにより、元のＨＴＭＬコンテンツのサイズ変更を要求する。サイズ変更されたＨＴＭＬファイルに基づいて、ブラウザは、リッチメディアが添付されたコンテンツをチェックする。もしあれば、ブラウザはユニバーサルマルチメディアプラグイン２００４を立ち上げ、プラグインはサーバーからユニバーサルフォーマットでマルチメディアコンテンツを取り出す。
【００３４】
用語プラグインは機能の性質に起因して使用されるが、その理由は、プラグインがＨＴＭＬパーサー内にあり、必要に応じて使用されるからである。しかし、このプラグインはブラウザ又はアプリケーションに組み込まれる標準的なプラグインではない。要求に応じて、プラグインは、ユーザマシンの解像度をサーバーへ送信することにより、ソースメディアファイルフォーマットのサイズ変更と、ユニバーサルメディアフォーマットへの変換を要求する。ユニバーサルメディアフォーマットは、標準的なメディアフォーマットであり、好ましくは、リアルタイムストリーミングを可能にするため高圧縮率を有する。フォーマットはプロセスに影響を与えないので、プラットフォームとサーバーの両方によって予め決められたどのようなフォーマットでも構わない。
【００３５】
このようにすることにより、唯一のフォーマットが受信されるので、複数のプラグインの必要性がなくなる。これにより、メディアフォーマット、解像度制御及び圧縮率の一貫性が得られる。
【００３６】
プラットフォームエンジンはアプリケーションがプラットフォームエンジンの上部で動くことを許可しない。したがって、プラットフォームエンジンは、キーボード、スピーカー出力及びＵＳＢサポートを含む基本的なＩ／Ｏインタフェースを提供する。しかし、プラットフォームエンジンは、アプリケーションのセッションが作成されることを許可し、その結果として、プラットフォームエンジンはサーバー上で実行されるアプリケーションを操作可能である。これは、メモリ使用最適化及び高速マルチタスク実行が実現できるようにＳＯＬＡに組み込まれたネットワークコンピューティング技術である。一般に、リモートアプリケーションインタフェースは、ユーザマシンからサーバー側のアプリケーションの立ち上げ、実行、操作、モニター及び終了を可能にする。
【００３７】
アプリケーションのＵＲＬアドレスが与えられると、リモートアプリケーションインタフェースは、アプリケーションを遠隔的に立ち上げるための要求と共にユーザマシンのスクリーン解像度を送信する。これに応じて、リモートアプリケーションインタフェースは、アプリケーションの立ち上げと実行に成功すると、ユーザマシンのスクリーンにＧＵＩコンポーネントを表示するためＧＵＩ命令を受信する。ＧＵＩ命令を受信すると、リモートアプリケーションインタフェースはＧＵＩコンポーネントを作成し、コンポーネントの対話がサーバーの介入なしでローカルに実行できるようにする。ファイルのソート又は保存のようなプロセスが要求されたときに限り、リモートアプリケーションインタフェースは、プログラムのどの部分をサーバーで実行すべきであるかを知らせる呼を送信する。サーバーは、リモートアプリケーションインタフェースのビューポートを更新するためリモートアプリケーションインタフェースにＧＵＩ命令を返信する。リモートアプリケーションインタフェースは、また、アプリケーションが、サーバーで処理されている間に、コマンド又はハードウェア要求を呼び出したかどうかをチェックする。サーバーエンジンとプラットフォームエンジンの両方は、他方のエンジンに属するコマンドを他方のエンジンへ宛先を変える。
【００３８】
プラットフォームエンジンは内蔵ハードウェアインタフェースを有し、内蔵された環境であるため、拡張は不要である。更に、ハードウェア拡張サポートの選択を許すことは、ＯＳセキュリティを危うくする。プラットフォームエンジンは予めプログラムされたハードウェアを認識し、許可されていないサードパーティのハードウェアと協働しない。このようにすることによって、ハッカーがユーザマシンへのアクセス権を得るためにサードパーティのハードウェアを利用することは妨げられる。
【００３９】
ネイティブハードウェアサポートインタフェースはプラットフォームエンジンのエンジンリスナである。エンジンリスナの主なタスクはハードウェア動作及び検出を監視することである。エンジンリスナは、一定のハードウェアのカテゴリを「監視する（リスンする）」ようにプログラムされる。ハードウェア毎に使用するドライバは異なるので、エンジンリスナは標準化されたハードウェアアクセスを可能にする「ドライバ層」である。
【００４０】
ハードウェアアクセスが許可される方法は二通りに限られる。第１の方法はコマンド呼び出しによる。コマンドは呼び出されるたびに解析され翻訳されるので、ハードウェアリソースに直接アクセスできるアプリケーション若しくはウェブコンテンツは存在しない。第２の方法は通常のＯＳのＡＰＩ呼び出しによる。ＡＩＰの一部はコマンドに変換されるので、ハードウェアアクセスもこのようにして許可される。しかし、ＡＰＩの一部しか変換し得ないので、通常のＡＰＩ呼び出しによるハードウェアアクセスは常に許可されるわけではない。メモリセグメントのアドレス及びアロケーションを参照するＡＰＩ呼び出し、直接ポートの参照、バイナリコードのネイティブ転送、フック、及び、割り込みプログラミングのすべてはコマンドに変換されない不確かなＡＰＩ呼び出しである。プラットフォームエンジンは、ＣＤ−ＲＯＭドライブベイのオープン、ボリュームの調整、文書印刷などのような上位レベルのＡＰＩ呼び出しの変換をサポートする。通常のＡＰＩのコマンドへの変換はサーバーで実行される。
【００４１】
プラットフォームエンジンはネイティブ統合ハードウェアサポートを提供するので、あらゆるワイヤレスサポートハードウェアは検出され自動インストレーションされる。これはサーバーとの協力による。サーバーは、プラットフォームエンジンが検出されたデバイスのインストレーション命令を識別することを助ける。このようにして、ユーザ介入はもはや必要ではない。
【００４２】
図２１に示されるように、サーバーはプラットフォームと類似した単一レイヤで動作する。しかし、サーバーオペレーティングシステムは遙かに複雑であり、埋め込み環境にはないので、サーバーへの拡張が行われる。サーバーエンジン２１２２の下に列挙されたすべてのコンポーネントは、それらがサーバーエンジンから呼び出されたコマンドを「監視する」ようにプログラムされていることを除くと、個別のサーバーである。サーバーエンジンは、また、オペレーションを協調させ、オペレーションの宛先をそれぞれのサーバーへ変える。
【００４３】
サーバーは、また、プラットフォームに反応し、プラットフォームを監視する。したがって、サーバーエンジンは「最前線」にある。サーバーエンジンはそのサービスのすべてに対してネイティブサポートを提供するわけではなく、そのサービスのすべてへのインタフェースとして機能する。サービスのそれぞれは、対応したサーバーによって受け入れられる。それぞれのサーバーは、サーバーのサーバースイートの一部でもよく、又は外部パーティに由来してもよい。例えば、サーバースイートのストレージデータベースサーバーは、「オラクル（Ｏｒａｃｌｅ）」データベースサーバーで置き換えてもよい。しかし、拡張部はサーバーがサードパーティのデータベースサーバーへ接続できるようにするためサーバーに実装されているので、サーバースイートからのストレージデータベースサーバーはそのままでなければならない。スイートのすべてのサーバーは、互いに相互作用するので、サーバーエンジンに統合される。唯一の例外は、サードパーティのサーバーが要求されたときである。この場合、上記のように、拡張部が外部サーバーへの接続のためそれぞれのサーバーに実装される。これは、電子メールサーバー２１２４、ストレージデータベースサーバー２１２３、管理サーバー２１２５、インターネットゲートウェイサーバー２１２６及びユーザ認証サーバー２１２７に当てはまる。
【００４４】
サーバー側に記憶装置があると、データがリアルタイムで利用可能であるので、データを同期させる必要性がなくなる。サーバーで処理を行うことにより、移動マシンは、大規模ＲＡＭ、大規模ハードディスク、及び、高速プロセッサ及びバスを備えたＰＣ用に構築されたアプリケーションを立ち上げることが可能である。更に、オペレーションの分割は、サーバーとユーザマシンとの間のトラフィックを減少させる。
【００４５】
サーバーはリソース集約型であるアプリケーションデータではなくセッションデータを取り扱うので、マルチセッションは、サーバーが通常のアプリケーションホスティングサーバーよりも多数のユーザをサポートし得ることを意味する。また、アプリケーションがサーバーで実行され、ユーザマシンで動くアプリケーションは存在せず、ウィルスは一般にアプリケーションの指定された部分に付着するので、ウィルス攻撃がユーザマシンに直接行われることはあり得ない。ユーザはサーバーでインターネットゲートウェイを通過する必要があり、サーバーは負荷バランシング技術及びファイアウォールセキュリティの全体を追跡しモニターすることができるので、セキュリティは非常に効率的な方法で取り扱うことが可能である。
【００４６】
サーバーは一意的かつ安全であるＭＳＩＳＤＮ情報を用いて各ユーザを識別する。このような追跡システムの利用は支払識別請求システムを実現する可能性がある。また、サーバーは、ユーザが同じＭＳＩＳＤＮを有する限り、任意のネットワークからのユーザアクセスを許可することが可能である。
【００４７】
ＨＴＭＬサイズ変更及び変換サーバー２１２８は、サーバーのサーバースイートにおけるサーバーのうちの一つである。このサーバーは、インターネットからウェブコンテンツを取り出し、コンテンツをサイズ変更するので、データ処理サーバーである。このサーバーは、ＨＴＭＬ文書のサイズ変更に関する命令である予めプログラムされたスクリプトに基づいて機能する。
【００４８】
ＨＴＭＬ文書のＵＲＬ及びユーザマシンの解像度が一旦サーバーへ供給されると、サーバーは、要求された文書が既にキャッシュに存在するかどうかを判定するためチェックを行う。キャッシュに存在しない文書はインターネットから取得される。インターネットから文書を受信するとき、サーバーは、そのオペレーションをログに保存するだけではなく、ＷＩＤＴＨタグとＨＥＩＧＨＴタグをもたないＨＴＭＬ文書内のオブジェクトにＷＩＤＴＨタグとＨＥＩＧＨＴタグを追加する。サーバーは、次に、要求された解像度でユーザマシンのディスプレイ装置に表示され得るようにＷＩＤＴＨタグとＨＥＩＧＨＴタグの値を補正する。この補正は、元のＷＩＤＴＨを８００で除算し、要求された解像度の幅を乗算することによって行われる。殆どのケースにおいて、ＨＥＩＧＨＴタグは、ユーザによる要求がない限り補正されない。もし要求があるならば、ＨＥＩＧＨＴの値は６００で除算され、要求された解像度の高さが乗算される。ＨＴＭＬ文書内のテキストは、ＦＯＮＴタグ内のＳＩＺＥ値を４で除算して補正することによって、又はすべてのＦＯＮＴタグを書き換え、フォントサイズ１を使用するカスケーディングスタイルシートを加えることによってサイズ変更される。ＩＭＧタグのＷＩＤＴＨ値及びＨＥＩＧＨＴ値は変更されるので、元のグラフィックファイルをユーザへ送信することは、より大規模ファイルが送信されたかのように帯域幅を過剰に利用することはない。したがって、より小さいサイズの元のグラフィックファイルがＨＴＭＬ文書に添付されているならば、ファイルがより小さくなるようにグラフィックファイルはサイズ変更される。グラフィックファイルのサイズ変更はそのフォーマットに依存する。サイズ変更はＪＰＥＧ圧縮でもＧＩＦ圧縮でもよい。グラフィックファイルは表示可能な解像度へサイズ変更される。必要以上に大きいファイルは送信されない。サーバーがプラットフォーム０１００によってサポートされたｔａｂｌｅタグ、ｅｍｂｅｄタグ、ｆｏｒｍタグ、ｉｎｐｕｔタグ及びその他のタグのサイズを変更するとき、ＨＴＭＬコードに対する更なる補正が行われる。この補正は、切り捨てられる画像がなく、ＨＴＭＬ文書のレイアウトが元のデザインと正確に同じであるので、トランスコーディングではない。サイズ変更作業は後で再使用するためキャッシュされる。
【００４９】
サーバー上でＨＴＭＬをサイズ変更し、変換する利点は、ユーザがユーザのマシンのスクリーンに適合するＨＴＭＬコンテンツを確実に受信するため、プリプロセッサを設置できることである。別の利点は、画像がユーザへ送信される前に圧縮され、ユーザマシンのディスプレイ装置の解像度に合致するようなより低解像度にサイズ変換されることである。
【００５０】
メディア変換及びストリーミングサーバー２１２９は、変換とストリーミングの両方のサーバーであるが、実際の処理は、性能を向上させるため別個のマシン上で行っても構わない。変換は、本質的にデータ処理集約型であり、一方、ストリーミングは、帯域幅及びセッションのモニター処理集約型である。
【００５１】
メディアフォーマットをユニバーサルメディアフォーマットへ変換する二通りの方法がある。ユニバーサルメディアフォーマットは、サーバーとプラットフォーム１００が多数のフォーマットを再生するためプラグインが必要にならないように相互に共有する唯一のフォーマットとして合意した業界標準フォーマットである。ユニバーサルメディアフォーマットを選定する規準は、そのフォーマットがストリーミングフォーマットでなければならないこと、及び、そのフォーマットがリアルタイムストリーミングを実現するために一定の圧縮率をもつべきことである。
【００５２】
第１のアプローチは、一方のメディアフォーマットから他方のメディアフォーマットへ変換するため既存のトランスコーディング技術を使用することである。一部のフォーマットは非対称圧縮及び符号化を使用しないので、トランスコーディング技術がすべてのフォーマット変換に対し利用可能というわけではない。したがって、第１のアプローチを実施できないならば、第２のアプローチを使用する必要がある。第２のアプローチはより多くの時間と処理能力を要する。第２のアプローチは、元のメディアフォーマットから、ビットマップフレーム及びＰＣＭ波のような原データへの復号化と伸長を含む。この場合も、各メディアフォーマットは固有の復号化及び符号化アルゴリズムを具備するので、変換の目的はメディアファイルをより良く圧縮し、若しくは、符号化することではない。むしろ、変換の目的は、多数のフォーマットを表示できるように、一定の圧縮率を与え、プラットフォーム０１００上の多数のプラグインを取り除くことである。
【００５３】
サイズ変更は、また、サーバーがより小規模のファイルをプラットフォーム０１００へストリームするように実行される。実行されるあらゆる変換及びサイズ変更は後で使用するため自動的にキャッシュされる。変換及びサイズ変更の後、サーバーはファイルをプラットフォーム０１００へストリームする。
【００５４】
アプリケーションホスティング及び実行サーバーは、サーバーのホスティング及び実行環境である。プラットフォーム０１００はローカルホスティング及び実行環境を提供しないので、プラットフォーム０１００は、アプリケーションを立ち上げ、実行するため、サーバーのアプリケーションホスティング及び実行サーバーを利用する。図１６及び１７についての以下のより詳細な説明を参照のこと。
【００５５】
電子メールサーバーは、サーバーエンジンと共に機能する標準電子メールサーバーである。電子メールサーバーは、また、他の電子メールサーバーへ接続するためスクリプティング拡張とプログラミング拡張を可能にする。これにより、サーバーは他の電子メールサーバーとの互換性が得られる。
【００５６】
電子メールサーバーの通常のオペレーションは標準サーバーと相違しない。しかし、電子メールを送受信すべきとき、電子メールサーバーは、ユーザがサードパーティ電子メールサーバーに加入しているかどうかを判定するためユーザプロファイルをチェックする。加入しているならば、電子メールサーバーは、最初に、そのサードパーティ電子メールサーバーのため記述された拡張スクリプトを使用し、ユーザのユーザＩＤ及びパスワードを使用してログインし、電子メールを送受信する。電子メールが取り出されたとき、電子メールサーバーはその電子メールをユーザの電子メールアカウントに格納する。電子メールサーバーは、次に、ユーザのサードパーティ電子メールサーバーアカウントからログアウトする。
【００５７】
電子メールサーバーは電子メールアクセス機能を提供するだけではなく、ユーザが種々のサーバーへログインできるように互換性拡張機能を提供する。
【００５８】
ストレージデータベースは、クォータを割り付け、ユーザ空間へのアクセス制御を実施するためデータベースを利用するホスティングサーバーである。ストレージデータベースの主な役目は、プラットフォーム０１００のユーザにディスクアクセス機能を提供することである。
【００５９】
クォータを割り付け、アクセス制御を実施するデータベースは、好ましくは、ユーザＩＤ、クォータ限界、パスワード、プライベートアクセスディレクトリ、及び、パブリックアクセスディレクトリの少なくとも５個のフィールドを有する。プライベートアクセスディレクトリとパブリックアクセスディレクトリのそれぞれは、様々な態様でアクセス機能を提供する異なるアクセス権を有する。プライベートアクセスディレクトリは「ビュー専用」ディレクトリであり、ユーザは著作権付きファイルを開くことができるが、そのファイルを第三者若しくは別のディレクトリへ転送できない。プライベートアクセスディレクトリは、ユーザがコンテンツプロバイダからメディアコンテンツを定期購読し、又は購入するとき、コンテンツプロバイダが著作権付きメディアファイルを書き込むことができるディレクトリである。パブリックアクセスディレクトリは、ユーザがファイルを作成、コピー、消去及びオープンすることができる通常のディスク空間である。パブリックアクセスディレクトリはアクセス制限がなく、ユーザは、そのディレクトリに格納されたファイルを使用するアプリケーションを開くことが可能である。
【００６０】
ハードウェアインストレーション２１３０及びＯＳ更新２１３１サーバーは、すべてのハードウェアドライバ及びＯＳ最新版を記憶するデータベースサーバーである。プラットフォーム０１００からの要求に応じて、このサーバーは、適切なハードウェアドライバ又はＯＳ最新版パッケージを探索し、ユーザへ送信する。送信されたこのようなパッケージは、ユーザがプロセスに介入しなくても済むようにプラットフォーム１００にＯＳ最新版のドライバを組み込む方法を指示するスクリプトを伝達するので、プラットフォーム０１００に固有である。以下の図１８及び１９についての説明を参照のこと。
【００６１】
ユーザ認証サーバーは図１３に関連して説明される。
【００６２】
インターネットゲートウェイは、標準的なゲートウェイサーバー又はプロキシサーバーである。インターネットゲートウェイは、キューシステムとセキュリティファイアウォールの種々のインストレーションを有する。管理サーバーは、使用ログ、コンフィギュレーションパネル、及び、モニターメカニズムのレポジトリである。ネットワークのアドミニストレータは、新しいＯＳ更新版の通知、データベースに登録されていないハードウェアドライバがユーザによって要求されたかどうかのチェック、ストレージデータベースのモニター、アプリケーションサーバーの構成、ユーザアカウントの作成、請求及び使用状況レポートの生成、セキュリティポリシーの設定、サーバー更新、及び、すべてのサーバーのコンフィギュレーション設定の修正を実行可能である。
【００６３】
図１を参照すると、プラットフォーム０１００が示されている。プラットフォームはユーザマシンに常駐するオペレーティングシステムである。プラットフォームは、ログインのためサーバーに接続し、サーバーと相互作用し、ウェブコンテンツリッチメディア、アプリケーション、及び、システム最新版を要求する。「フォン機能」は、携帯電話呼、ＳＭＳ、アドレスブック、コンタクト情報、カレンダーなどのような一般的な電話機の機能を表す。
【００６４】
エンジンは、コマンドインタープリタ及び呼び出しエンジン０１３０であり、要求されたローカル処理とネットワーク制御のすべてを実行する。エンジン０１３０は、すべてのオペレーションを取り扱い、トリガーがある場合に限り反応する。エンジンは、次に、エンジンシステムによって提供される様々なサービスへ分岐する。エンジンによって提供されるサービスの中には、インターネット接続の取り扱い、ウェブコンテンツリッチメディアの再生、アプリケーションの遠隔立ち上げ、システム設定、周辺機器サポートが含まれる。エンジンは、従来型のオペレーティングシステム、オペレーションの完全性の提供、実行速度、及び、効率的なメモリ制御のレイヤを統合する。
【００６５】
プラットフォームトリガーはユーザエンドで呼び出されるトリガーである（０１３１）。このトリガーは、タッチスクリーン、キーボード、コマンドによるユーザ入力、又はシステム入力を含む。
【００６６】
プラットフォーム０１００は起動しスタートする。フォン機能が初期化された後、プラットフォーム０１００のエンジンが始動される。プラットフォーム０１００エンジンは、次に、ユーザインタフェースを与え、ユーザインタフェースを開く。プラットフォーム０１００のエンジンは、プラットフォームトリガーの受信を開始する。プラットフォームトリガーが存在するとき、プラットフォームトリガー検出プロセスは、どのタイプのトリガーが呼び出されたかを検出するため実行される。トリガーが「サーバーへのログイン」トリガーであるならば（０１３２）、ユーザ認証プロセス０２００が立ち上げられる。トリガーが「ＨＴＭＬの要求」であるならば（０１３３）、ＨＴＭＬ表示プロセス０３００が立ち上げられる。トリガーがコンテンツリッチメディアのストリーミングであるならば（０１３４）、「マルチメディアプラグインの立ち上げ」プロセス４００が立ち上げられる。トリガーがアプリケーションの実行要求であるならば（０１３５）、「リモートアプリケーションの立ち上げ」プロセス０５００が立ち上げられる。トリガーがシステム更新であるならば（０１３６）、システム更新プロセス０６００が立ち上げられる。トリガーがローカルハードウェア入力によって呼び出されるならば（０１３７）、ハードウェアトリガーが処理される（０１３８）。プラットフォーム０１００は、シャットダウンされるまで、ループとプラットフォームトリガーの検出を継続する。
【００６７】
図２に示されるように、プラットフォーム０１００がスタートし、ユーザがログインすると、ユーザ認証０２００が呼び出される。このプロセスは、ＳＩＭカードモジュールからのＭＳＩＳＤＮの取り出し、ＰＫＩのためのユーザＩＤ及びパスワードの取り出しを発動し、それらをサーバーへ渡す（０２０１）。ユーザＩＤ及びパスワードはユーザマシンのフラッシュＲＯＭから取り出される。これらの両方は、認証のためサーバーへ送信される（０２０４）。サーバーのユーザ認証プロセス１３００が立ち上げられる。一旦、認証プロセス１３００がユーザの有効性を確定すると（０２０５）、認証プロセスはユーザとサーバーとの間にＳＳＨコネクションを開く（０２０６）。初期認証がＳＩＭカードを使用するとき、機能強化されたセキュリティ手段が導入される。認証及びセキュアトンネルは従来のＳＳＬ接続よりも安全である。更に、ユーザＩＤ及びパスワードを使用する第２層ログインを使用することにより、暗号化及び圧縮は、電気通信サービスプロバイダによって提供された暗号化及び圧縮の上部で行われる。有効ユーザではない場合（０２０７）、ユーザは許可されず、プラットフォーム０１００は、ユーザマシンのディスプレイ装置に「サービス運営者に照会」を表示する。
【００６８】
ＨＴＭＬファイルの表示は図３に示される。ＨＴＭＬファイルを開くプロセスは従来のＨＴＭＬブラウザと類似しているが、ＨＴＭＬブラウザモジュールは、外部プレーヤ又は外部プラグインを用いることなく、すべてのコンテンツリッチメディアを読むことができる。ＵＲＬ０３０１が与えられるならば、ブラウザはサーバーからのＨＴＭＬコンテンツを要求する（０３０２）。ＨＴＭＬコンテンツを受信すると、サーバーはＨＴＭＬコンテンツのサイズ変更及びキャッシュを行う（１４００）。ブラウザは、次に、サイズ変更されたＨＴＭＬ出力ファイルに基づいてコンテンツリッチメディアが添付されているかどうかをチェックする（０３０３）。添付されているならば、ブラウザはそのマルチメディアプラグインを立ち上げる（０４００）。これは、サーバーからユニバーサルフォーマットでマルチメディアコンテンツを取り出す内部プラグインである。これは図４に示されている。
【００６９】
マルチメディアプラグイン０４００は、ビデオ及びオーディオコンテンツのユニバーサルフォーマットを取り出す汎用プラグインである。このマルチメディアプラグインは、多数のメディアフォーマットのための多数のプラグインを不要にする。サーバーはすべての通常のマルチメディアフォーマットをユニバーサルメディアフォーマットに変換する。マルチメディアプラグインは、基本的にストリーミングメディアプラグインである。このマルチメディアプラグインは、知られている従来型のストリーミング技術と、業界の圧縮技術を使用する。これは、唯一のフォーマットで取り出すので、複数のプラグインを保持する必要を排除する点が有利である。
【００７０】
メディアコンテンツのＵＲＬアドレス０４０１がサーバーストリーミングメディアプロセス０４０２へ渡され、このプロセスはサーバーからのメディアストリーミングデータの変換をスタートする（０１５００）。ビデオ及びオーディオ再生のビューポートは更新される（０４０３）。ファイルがストリーミングを終了するまで（０４０４）、プロセスはサーバーからストリーミングデータを取得し続ける。同時に、ユーザが再生ストリーミングシーケンスを変更する再生設定をトリガーしたかどうかをチェックする（０４０５）。変更があるならば、このプロセスは、それに応じてビデオ及びオーディオ再生のビューポートを更新する。
【００７１】
図５は、例えば、Ｗｉｎｄｏｗｓ  ｏｆｆｉｃｅ製品ソフトウェア又は標準的なデスクトップアプリケーションのようなデスクトップアプリケーションを含むリモートアプリケーションの立ち上げを示す。これらのリモートアプリケーションは、Ｗｉｎｄｏｗｓ、Ｌｉｎｕｘ、Ｊａｖａ及びＰａｌｍ  ＯＳのようなＯＳのためのデスクトップＰＣ環境用として本来的に記述された従来型のデスクトップアプリケーションである。
【００７２】
アプリケーションのＵＲＬアドレス０５０１が与えられると、プラットフォーム０１００は、アプリケーションを遠隔的に立ち上げるための要求と共にそのスクリーン解像度をサーバーへ送信する（０５０２）。これに応じて、アプリケーションの立ち上げと実行に成功すると（１６００／１７００）、プラットフォーム０１００は、ＧＵＩコンポーネントをスクリーンに表示するためのＧＵＩ命令を受信する（０５０３）。これは、ユーザが受信内容を知らないスクリーンダンプ技術又はリモートデスクトップ技術とは異なる。ＧＵＩ命令を受信すると、プラットフォーム０１００は、ＧＵＩコンポーネントを作成し、これらのコンポーネントの相互作用がサーバーの介入なしにローカルに実行されることを可能にする（０５０４）。ファイルのソート又は保存のようなプロセスが必要であるとき、プラットフォーム０１００はサーバーへ再照会する。それ以外のすべての時点で、プラットフォームはローカルに動作する。プラットフォーム０１００は、また、いずれかのプラットフォームトリガーが実行されたかどうかをチェックする。プラットフォームトリガーが存在する場合、プラットフォームは、トリガーが発動されることを許可し、プロセスが進行する。
【００７３】
入力プロセスがディスプレイ更新を要求するならば（０５０５）、インタフェースオペレーションはサーバーへ送信される（０５０６）。サーバーはフィードバックを返す（０５７０）。フィードバックがプラットフォームトリガーであるならば（０５０８）、プラットフォームトリガーが発動される。エクスポートされたアプリケーションディスプレイが取り出され、ユーザインタフェース入力検出が再開する。
【００７４】
図６のシステム更新において、「装置ヘッダ及び製造者名」は、初期化プロセス０６０１の間にユーザマシンからサーバーへ送信された周辺装置の説明及び製造者情報を表す。このような情報は、通常、例えば、装置Ａモデル名、プリンタＵＳＢ、製造者Ｂ、バージョン１．２のようなものである。
【００７５】
ＯＳ更新０６０２は、ユーザに公開されたアップグレードパック又はパッチを表す。このような更新版は、一般に、プラットフォーム０１００によって自動的に受け付けられ、自動更新プロセスが実行される。このようなオペレーションを実行しなければならないとき、ＯＳ更新トリガーが発生する（０６０３）。
【００７６】
トリガーを更新すると、システム更新モジュールは、トリガーがＯＳ更新であるか、又は外部装置であるかを判定するためチェックを行う。これは、トリガーの発生源をチェックすることにより行われる。ＯＳ更新はサーバーのみに由来し、装置検出はプラットフォーム０１００側だけで現れる。実装された周辺装置は２回以上使用可能であるので、ドライバファイルはユーザマシンのＲＯＭに記憶される。したがって、次回この装置が検出されたとき、この装置は、ユーザマシンのＲＯＭから要求されたドライバを取り出すことにより直ちに作動可能である。初期インストレーション中に、プラットフォーム０１００は、装置ヘッダ及び製造者名を含むサーバーによって要求された全詳細情報をサーバーへ送信する。装置が検出されるならば、装置ドライバがＲＯＭにあるかどうかのチェック（０６０４）が進行する。イエスであるならば、適切サービスが中断され、装置を作動させるため再スタートされる（０６０５）。装置ドライバがＲＯＭにないならば、装置ドライバはプロセス１８００が立ち上げられることを要求する。装置ドライバが見つからないならば、「ドライバが見つからない」ことを通知するレポートが返される。ドライバが見つかったならば（０６０６）、ドライバはダウンロードされ（０６０７）、アンパックされ（０６０８）、パッケージ内の自動インストレーションスクリプトが実行される（０６０９）。装置ドライバファイルはシステムファイルロケーションへコピーされ、システム設定が更新される。ＲＯＭがサポート可能な装置ドライバの個数には上限があるので、最も旧い装置ドライバ、又は最も使用されない装置ドライバは、旧式であることが明らかにされ、ＲＯＭから削除される。更新が行われた後、適切なサービスが、装置を作動させるため中断され再スタートされる。
【００７７】
ＯＳ更新は同様の方法で実行される。ＯＳ更新トリガーが発動されると、プラットフォーム０１００は、更新要求があるかどうかを検証するためサーバーに問い合わせる。更新要求がＯＳ更新用であるならば、プラットフォームＯＳ設定が同期のためサーバーへ送信される。同期させた後、ＯＳ更新要求が立ち上げられる。更新がない場合、ユーザは「更新版なし」を受信する（０６１１）。更新版があるならば、ＯＳ更新又はアップグレードパッケージが受信される（０６１０）。パッケージはアンパックされ、パッケージ内の自動インストレーションスクリプトが実行される（０６１２）。このスクリプトは、プラットフォーム０１００に新しいファイルをシステムへコピーし、必要なファイルを再コンパイルするように指令する（０６１３）。
【００７８】
図７において、入力トリガーは、ユーザ０７０１、プラットフォーム０７０２及びサーバー０７０３によって生成された入力を表す。
【００７９】
ユーザはマシンを使用する人を表す。典型的な入力０８００は、キーボード、マウス、ポインタを使用する命令、又はＵＲＬを出す命令から得られる。システムはユーザマシンを表す。装置自体からの唯一の可能な入力０９００は、マシンが外部周辺装置を検出し、その旨をプラットフォーム０１００へ通知するときに現れる。
【００８０】
サーバーは、ユーザマシンへのコネクションを有する電気通信サービスプロバイダ若しくは通信インフラストラクチャへネットワーク接続されたリモート領域に置かれたサーバーを表す。サーバーからのトリガー／入力１０００には二通りの可能性がある。第１の可能性はＯＳ更新通知であり、これにより、サーバーはプラットフォーム０１００に新しいＯＳ更新を通知し、パッチ／更新版のダウンロードをプラットフォームに指令し、パッチ／更新版を組み込む。サーバーからの第２の可能性のあるトリガーはサーバーからのコマンドである。このコマンドは、ユーザが現在使用中であるアプリケーションがコマンドを呼び出すときに発生し、このコマンドはサーバーで処理される。しかし、特定のコマンド（例えば、印刷機能）がサーバーで処理できないとき、サーバーは、プラットフォーム０１００にその機能を実行するように指令することにより、そのコマンド機能の宛先を変える。
【００８１】
入力がユーザに由来する場合（図８）、その入力は、サービスの要求又はログインとして分類される。どちらの入力もプラットフォーム０１００によって処理される必要がある。プラットフォームがその処理を終了した後にサーバー処理が必要であるかどうかの判定が行われる。サーバーが更なる処理を要求されない場合（０８０１）、処理は停止する（０８０２）。さもなければ、サーバーは、要求が処理されるまで、その処理を引き継ぐ（１１００／１２００）。
【００８２】
システム入力の場合（図９）、唯一の可能性のある入力は、新しいハードウェア装置の検出である。プラットフォーム０１００は、最初に、すべての必要な前処理作業を実行し、サーバーからドライバをフェッチすべきかどうかを判定する（０９０１）。ドライバが要求されるならば、サーバーは、要求されたドライバを保有するかどうかをチェックする（０９０２）。適切なドライバが見つからない場合、サーバーは、どのようなドライバがユーザによって要求されたかを示すレポートを生成する（０９０３）。ドライバが見つかったならば、そのドライバは、システムに組み込まれた後、プラットフォームによって作動される（０９０４）。ユーザは、ドライバが組み込まれたならば、新たに組み込まれたハードウェア装置を動かすことが可能である。
【００８３】
図１０には、サーバー入力１１００／１２００への応答が示されている。サーバー入力１１００／１２００は、サーバーが少なくとも少量の処理を実行した後、最初に定式化される。サーバー入力１１００／１２００は、プラットフォームにＯＳアップグレード／更新を通知するか（１１０１）、又はプラットフォーム０１００に印刷又はスキャン機能のようなローカル処理を指令するためサーバー側からのコマンドを呼び出す（１１０２）。このような入力は共に、プラットフォーム０１００による処理のためプラットフォーム０１００へ供給される。
【００８４】
サーバーのオペレーションは図１１及び１２に示されている。サーバーはサーバーに常駐するソフトウェアを含む。サーバーは、電気通信サービスプロバイダのインフラストラクチャにネットワーク接続される。基本コンポーネントには、データベース、電子メール、プロキシ、キャッシュ、アプリケーション、及び、メディアサーバーが含まれる。サーバーエンジンは、サーバーにおける通信及びオペレーション命令を提供する。サーバーのコンポーネントはコマンドを用いて相互に通知し、オペレーションは、このようなコマンドが発行されたときに限り実行される。サーバーの各コンポーネントは実行エンジンを有し、メインサーバーはサーバーエンジンを保有し、サーバーエンジンはコマンドインタープリタである。
【００８５】
サーバーがスタートするとき（１１０１）、サーバーは、確実に較正され、一体的に機能するようにデータベース、電子メール、プロキシ、キャッシュ、アプリケーション、ＯＳ更新、及び、メディアサーバー１１０２を初期化する。サーバーエンジンは、次に、ロードされ（１１０３）、ユーザログインを待ち始める（１１０４）。ユーザがログインするとき（１１０５）、サーバー認証プロセス１３００が立ち上げられる。サーバー認証プロセスはログイン詳細情報をログファイルに保存し（１１０６）、ユーザとのセキュアシェル（ＳＳＨ）接続を確立する（１１０７）。サーバー認証プロセスは、続いて、ユーザ要求が存在するかどうかをチェックする（１１０８）。ユーザ要求がないならば、サーバー認証プロセスはユーザの接続が切れているかどうかをチェックする（１１０９）。ユーザの接続が切れているならば、ログアウトの詳細情報が保存される（１１１０）。ユーザが依然として接続されているならば、チェックが継続する。ユーザ要求が受信されたとき、サーバー要求検出が呼び出される（１１１１）。ユーザの動作はログに保存される（１１１２）。ユーザ要求がＨＴＭＬコンテンツに関する要求であれば（１２０１）、サイズ変更及びＨＴＭＬキャッシュプロセス１４００が立ち上げられる。要求がリッチメディアコンテンツであるならば（１２０２）、サーバーストリーミングメディアプロセス１５００が立ち上げられる。ユーザ要求がアプリケーションに関するものであれば（１２０３）、立ち上げアプリケーションプロセス１７００が立ち上げられる。ユーザ要求が装置ドライバであるならば（１２０４）、装置ドライバ要求プロセス１８００が立ち上げられる。ユーザ要求がＯＳ更新又はアップグレードであるならば（１２０５）、ＯＳ更新プロセス１９００が立ち上げられる。さもなければ、要求は無視され、及び／又はプラットフォームへ返却され、サーバーはユーザ要求をチェックし続ける。
【００８６】
図１３には、ユーザ認証中のサーバー動作が示されている。以下において、認証ゲートウェイは、電気通信サービスプロバイダでユーザ認証を取り扱う別々のサーバーを表す。ＭＳＩＳＤＮ、ユーザＩＤ及びユーザパスワードがサーバーによって受信されるとき（１３０１）、合致するものを見つけるためユーザデータベースの検索が行われる（１３０２）。合致するものがない場合、接続は拒否される（１３０３）。ユーザは電気通信サービスプロバイダのネットワークを介してログインし、このことはユーザが既に１回の認証プロセスに合格したことを意味するが、サーバーは、ブラックリストに掲載されているユーザ、プロバイダ割当量を超過したユーザ、又はサービスに加入していない無効ユーザからの要求であるかどうかを判定するため、電気通信サービス認証ゲートウェイに問い合わせて二重チェックする（１３０４）。電気通信認証ゲートウェイがユーザに無効であることを返信し（１３０５）、割当量超過であることを返信し（１３０６）、又はブラックリストに掲載されていることを返信するならば（１３０７）、接続は拒否される。さもなければ、ユーザは有効ユーザであることが証明される（１３０８）。
【００８７】
図１４に示されるように、ＨＴＭＬ文書のＵＲＬ及びユーザマシンのディスプレイの解像度がサーバーへ送信されると（１４０１）、サーバーは、要求された文書が既にキャッシュにあるかどうかを判定するためチェックを行う（１４０２）。キャッシュに存在しない文書はインターネットから取得される（１４０３）。インターネットから文書を取り出すと、サーバーは、オペレーションをログに保存し（１４０４）、テキストのサイズを変更するＨＴＭＬ文書のある種の値を追加又は補正する（１４０５）。サーバーは、次に、不必要に大規模なファイルを送信しなくても済むように、グラフィックファイルのサイズをユーザマシンの表示可能な解像度へ変更する（１４０６）。プラットフォームによりサポートされたＷＩＤＴＨ値及びＨＥＩＧＨＴ値と、サーバーサイズ変更テーブルと、埋め込み素材タグと、フォームタグと、入力タグと、その他のタグとを含むＨＴＭＬコードへの更なる補正が行われる（１４０７）。これはトランスコーディングではない。捨てられる画像はなく、ＨＴＭＬ文書のレイアウトは原文と同じである（１４０８）。あらゆるサイズ変更作業は後で再使用するためキャッシュされる（１４０９）。
【００８８】
サーバーストリーミングメディアの場合（図１５）、ＵＲＬ及び要求解像度が与えられると（１５０１）、サーバーはキャッシュ内に存在しない要求されたメディアファイルをフェッチし（１５０２）、ファイルフォーマットをユニバーサルファイルフォーマットへ変換する。このプロセスは、ファイル名拡張（ファイル名の最後の３文字）によるメディアの検出を含み（１５０３）、次に、ファイルフォーマットをユニバーサルファイルフォーマットへ変換する（１５０４）。これにより、正しいフォーマットがプラットフォームへ確実に出力される。変換技術には、トランスコーディング、又は元のファイルの出力データへの復号化のいずれかと、ユニバーサルフォーマットへの再符号化とが含まれる。使用される技術はメディアの元のフォーマットに依存する。サイズ変更はまた、サーバーがより小規模のファイルをプラットフォームへストリームするように実行される（１５０５）。実行されるあらゆる変換及びサイズ変更は、後で再使用するため自動的にキャッシュされる（１５０６）。変換及びサイズ変更後、サーバーは、ファイルをプラットフォーム０１００へストリームする（１５０７）。
【００８９】
プラットフォーム０１００上でアプリケーションを立ち上げるプロセスは図１６、１７及び２２に示されている。以下、保護環境２２０２は、アプリケーションへ出されたアクセス制御を表す。アプリケーションは、他のユーザのデータを上書きする可能性があるので、サーバーのディスク空間のすべての部分に書き込みことは許可されない。したがって、アクセス制御は、アプリケーションによるアクセスをシステムの制限された領域に限定する。アクセス制御は、また、ユーザのストレージ領域（データベース）からファイルリストの同一内容をミラー化し、その同一内容をアプリケーションへ供給する（２２０１）。ファイルがアプリケーションによって要求されるとき、ファイルはデータベースから取り出され、処理のため保護環境へコピーされる。セッションがクローズするとき、又はアプリケーションが終わるとき、ファイルはデータベースへ書き戻される。データの変造がないことはこのことによっても保証される。しかし、クローズされたセッションは、タイムアウトする以前には、アプリケーションが失敗した場合に「一時」ファイルを保持し続け、再開する。これはデータの損失がないことを意味する。
【００９０】
一旦要求がサーバーへ供給されると（１６０１）、サーバーは、アプリケーションがサーバードメインに存在するかどうかをチェックする（１６０２）。このチェックは、信頼できるアプリケーションだけがサーバーによって実行可能であるため（１６０３／１６０４）、重要なチェックである。また、サーバーは、ユーザがアプリケーションに申し込んでいるかどうかをチェックする（１６０５）。実行がスタート可能になる前に、サーバーは、他のアプリケーションサーバーが一般に実行しない部分である保護環境を作成する（１６０６）。保護環境において、サーバーは、アプリケーションの信頼できるネイティブＯＳのＡＰＩ（１６０７）をサーバーＡＰＩにマップするＡＰＩサーバーをスタートする。これはリアルタイムで実行される。サーバーは、他のＯＳのすべてのネイティブＡＰＩに準拠したＡＰＩの組を有する（１６０８）。このケースでは、マッピングは宛先の変更を表す。ネイティブＡＰＩを実行する代わりに、サーバーは、ここでＡＰＩのサーバーセットを実行する（１６０９）。これにより、サーバーはアプリケーションをより強力に制御できるようになる（１６１０）。サーバーによってカバーされる動作には、ディスプレイのプラットフォーム０１００へのエクスポート（１６１１）が含まれる。その結果として、ＧＵＩ命令はサーバー側では実行されず、ユーザ側へエクスポートされる。プロセス命令はサーバー側で実行される。ＧＵＩ命令はＡＰＩを介して呼び出されるので、サーバーはこれらのＡＰＩを検出し、ＧＵＩ命令をプラットフォーム０１００へエクスポートする。その他の動作には、サーバーによって実施できないハードウェア要求及びＭＸＩコマンドの宛先変更が含まれる。ハードウェア要求はＡＰＩを介して呼び出されるので（１７０１）、サーバーはそのようなＡＰＩを検出し（１７０２）、ハードウェア要求の宛先を処理するプラットフォームへもう一度変更する（１７０３）。処理できないが、サーバーエンドで呼び出されるＭＸＩコマンドは、プラットフォームへ向けられ、プラットフォームで実行される（１７０４）。アプリケーションは、セッションが終了するか、又はユーザがアプリケーションを止めるまで、実行されユーザ要求を処理し続ける。
【００９１】
マッピングが行えるようになる前に、アプリケーションは、他のＯＳのネイティブＡＰＩ呼び出しが関数呼び出しを傍受することによって捕捉される保護実行環境にロードされる必要がある（２２０２）。この保護実行環境は、最初に、サポートしている他のすべてのＯＳのネイティブＡＰＩ呼び出しを認識する。ネイティブＯＳライブラリへのＡＰＩ関数呼び出しが検出されたとき、保護実行環境はアプリケーションによって呼び出されたＡＰＩセットと等価である保護実行環境のＡＰＩセットを呼び出す。アプリケーションは、次にすべてのＡＰＩがサーバーＡＰＩにマッピングされるので、サーバー上でネイティブに動く。
【００９２】
ＧＵＩ及びＩ／ＯのＡＰＩを含むすべてのＡＰＩがサーバーＡＰＩにマップされるので、サーバーはアプリケーションをより強力に制御する。これにより、サーバーは、プラットフォームへエクスポートできる動作と、サーバーがローカルに処理できる動作を決めることが可能である。アプリケーションを実行する間に、保護環境は、サーバーが処理しないＡＰＩ呼び出しをエクスポートする。このような呼び出しには、ＧＵＩ呼び出し及びＩ／Ｏ呼び出しが含まれる。ＧＵＩのＡＰＩ呼び出しは、プラットフォームへ直接エクスポートされ、プラットフォームは要求されたＧＵＩコンポーネントを処理する。用語「エクスポート」は、ＧＵＩのＡＰＩの宛先が変更され、プラットフォームエンドで呼び出されることを意味する。Ｉ／Ｏ呼び出しは、プラットフォームがＩ／Ｏ動作を実行するためそのプラットフォームエンジンを用いて解析するコマンドを呼び出すことによって宛先が変更される。
【００９３】
保護環境の効果は、保護環境が保護環境毎にアクセス制御を制限することによってウィルス拡散の可能性を低くするセキュア処理環境を提供することである。
【００９４】
アプリケーションホスティング及び実行サーバーは、単一アプリケーションのマルチセッション立ち上げを組み込む。これは、アプリケーションの一つのコピーだけをサーバーメモリにロードすることが必要とされるので、メモリ使用量とサーバーへの影響を低減する。この技術は、ＵＮＩＸを動かす多くのメインフレームシステムで使用される標準的なマルチセッション技術である。
【００９５】
図１８には、装置ドライバ要求が示される。「パッケージ」は、多数の圧縮ファイルを収容するファイルを表す。パッケージは、典型的に、要求されたコアコンテンツ、このケースではドライバファイルを含み、また、プラットフォーム０１００によって実行されるインストレーション命令を含む。
【００９６】
装置ヘッダ及び製造者名がサーバーへ供給されると（１８０１）、サーバーは検索を実行する（１８０２）。合致するものが有るならば（１８０３）、サーバーは詳細を参照目的のためのログに保存し、適切なパッケージをユーザへ送信する（１８０５）。パッケージはサーバーエンドで準備されるので、パッケージは、プラットフォーム０１００が一旦受信すると、プラットフォーム０１００がパッケージをアンパックし、パッケージに含まれるインストレーション命令を実行するように（１８０６）、パッケージングされる。合致するものがない場合、要求されたドライバの詳細を与えるログファイルにログ記録が作成される（１８０４）。サーバーは、次に、要求された装置ドライバの詳細のコピーを電子メールでアドミニストレータへ送信し（１８０７）、ドライバが見つからなかったことを通知するレポートをユーザへ送信する（１８０８）。
【００９７】
オペレーティングシステムの更新処理は図１９に示される。以下では、パッケージは、ドライバの代わりにＯＳ最新版ファイルを収容する点を除いて図１８に関するパッケージと同様に意味をもつ。典型的なＯＳ最新版パッケージは、プラットフォームによって要求された付加的なファイルと、プラットフォームによって実行されるべきインストレーション命令とを含む。
【００９８】
サーバーはユーザのプラットフォームに既に組み込まれているパッケージが何であるかをチェックする（１９０１）。サーバーは、次に、要求されたパッケージのリストを編集する（１９０２）。リストが空でなければ、サーバーは、依存性或いはその他のパッケージが存在するかどうかのチェックに進む（１９０３）。依存性は、一般に、第１ラウンドに取り扱われるが、プラットフォームがパッケージを組み込むときに問題が生じないように、検証目的のための第２ラウンドのチェックが行われる（１９０４）。各依存性チェックの後、パッケージが編集されたリストに追加されているならば、追加ラウンドの依存性チェックが要求される。これは、追加されたパッケージに何らかの依存性があるかどうかを判定するためのものである。すべてのパッケージが確認されると、サーバーはパッケージを送信し（１９０５）、引き続き、最初に要求されたパッケージがプラットフォーム０１００によって受信されたパッケージであり、最初に組み込まれることを保証する（１９０６）。
【００９９】
本発明は、また、プロセッサで実行可能であるソフトウェアアレンジメントにまで及び、このソフトウェアアレンジメントは、上記の一つ以上の機能を実行するようにプロセッサを設定するコンピュータプログラムを含む。本発明は、また、上記の一つ以上の機能を実行する対応した一つ以上の手段を備えたコンピュータシステムに及ぶ。
【０１００】
上記の説明では本発明の好ましい一実施形態が記載されているが、当業者によって理解されるように、動作、構成又は構造の細部において多様な変形又は変更が本発明の範囲を逸脱することなくなされる。
【０１０１】
本発明は、開示されたすべての特徴のそれぞれに、或いは、開示された特徴の考えられるすべての置換又は組み合わせに及ぶ。
【図面の簡単な説明】
【０１０２】
【図１】ユーザマシンで使用されるプラットフォームの全体的なフローチャートである。
【図２】図１のユーザ認証のフローチャートである。
【図３】図１のＨＴＭＬファイル表示のフローチャートである。
【図４】図１のマルチメディアプラグイン立ち上げのフローチャートである。
【図５】図１のリモートアプリケーション立ち上げのフローチャートである。
【図６】図１のシステム更新のフローチャートである。
【図７】入力に対するプラットフォームの応答の全体的なフローチャートである。
【図８】図７のユーザ入力のフローチャートである。
【図９】図７のシステム入力のフローチャートである。
【図１０】図７のサーバー入力のフローチャートである。
【図１１】サーバー動作の全体的なフローチャート（前半部）である。
【図１２】サーバー動作の全体的なフローチャート（後半部）である。
【図１３】図１１及び１２のユーザ認証のフローチャートである。
【図１４】図１１及び１２のＨＴＭＬファイルのサイズ変更及びキャッシュのフローチャートである。
【図１５】図１１及び１２のメディアのストリーミングのフローチャートである。
【図１６】アプリケーション立ち上げのフローチャート（前半部）である。
【図１７】アプリケーション立ち上げのフローチャート（後半部）である。
【図１８】図１１及び１２の装置ドライバ要求のフローチャートである。
【図１９】図１１及び１２のオペレーティングシステム更新のフローチャートである。
【図２０】プラットフォームのシステムアーキテクチャ概要図である。
【図２１】サーバーエンジンのシステムアーキテクチャ概要図である。
【図２２】アプリケーションホスティングの説明図である。
【図１】
2005525631.tif 000002
【図２】
2005525631.tif 000003
【図３】
2005525631.tif 000004
【図４】
2005525631.tif 000005
【図５】
2005525631.tif 000006
【図６】
2005525631.tif 000007
【図７】
2005525631.tif 000008
【図８】
2005525631.tif 000009
【図９】
2005525631.tif 000010
【図１０】
2005525631.tif 000011
【図１１】
2005525631.tif 000012
【図１２】
2005525631.tif 000013
【図１３】
2005525631.tif 000014
【図１４】
2005525631.tif 000015
【図１５】
2005525631.tif 000016
【図１６】
2005525631.tif 000017
【図１７】
2005525631.tif 000018
【図１８】
2005525631.tif 000019
【図１９】
2005525631.tif 000020
【図２０】
2005525631.tif 000021
【図２１】
2005525631.tif 000022
【図２２】
2005525631.tif 000023
【手続補正書】
【提出日】平成16年6月28日(2004.6.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
サーバーがユーザマシンのディスプレイ装置に表示するアプリケーションを実行できるようにするソフトウェアシステムであって、
前記ユーザマシンの単一オペレーティングレイヤアーキテクチャにある、ソフトウェアシステム。
【請求項２】
前記ユーザマシンで動作するプラットフォームを含み、
前記プラットフォームがオペレーティングシステムとして動作するプラットフォームエンジンを含む、請求項１記載のソフトウェアシステム。
【請求項３】
前記オペレーティングシステムが、セキュリティ、ドライバサポート、電源管理、ブートローダー及びファイルシステムに使われる、請求項２記載のソフトウェアシステム。
【請求項４】
前記単一オペレーティングレイヤアーキテクチャが前記サーバーで使用される、請求項１記載のソフトウェアシステム。
【請求項５】
ユーザマシンのディスプレイ装置にＨＴＭＬメディアファイルを表示させるため前記ユーザマシンに一定圧縮率でデータをダウンロードするサーバーのシステムであって、
前記ＨＴＭＬメディアファイルが前記サーバーによってメディアフォーマットから前記サーバーと前記ユーザマシンとの間で取り決められたユニバーサルメディアフォーマットへ変換される、システム。
【請求項６】
複数のアプリケーションが前記サーバーで実行され、
前記複数のアプリケーションがそれぞれのネイティブオペレーティングシステムをスタートさせることなく、表示情報が前記ディスプレイ装置へストリームされるように、すべてのアプリケーションが単一オペレーティングシステムに基づいて前記サーバーで実行される、
請求項１記載のシステム。
【請求項７】
ユーザマシンにサーバーで実行されるアプリケーションを動作させるサーバーのシステムであって、
前記アプリケーションが前記アプリケーションによるアクセスを当該システムの少なくとも一つの制限領域に限定するためアクセス制御が実施される保護環境で実行される、システム。
【請求項８】
前記アプリケーションが実行前に前記保護環境へコピーされる、請求項７記載のシステム。
【請求項９】
ユーザマシンに装置ドライバのインストレーションを供給するサーバーのシステムであって、
前記インストレーションが前記ユーザマシン上の自動インストレーション用の命令と共に前記サーバーによって前記ユーザマシンへ送信され、
前記ユーザマシンによる受信後に、前記ユーザマシンが、前記インストレーション及び前記命令をアンパックし、これにより、装置ドライバファイルがシステムファイルロケーションへコピーされ、システム設定が更新され、前記命令を実行し、前記ユーザマシン上で前記インストレーションを立ち上げることができるように、前記命令が前記ユーザマシンへ送信される前に前記インストレーションと共にパックされる、
システム。
【請求項１０】
頻繁に使用される装置ドライバの方が前記サーバーのメモリに維持されるように、前記ユーザマシンで使用された装置ドライバインストレーションの記録が保持される、請求項９記載のシステム。
【請求項１１】
前記メモリが読み出し専用メモリである、請求項１０記載のシステム。
【請求項１２】
前記インストレーション内の新しいファイルが前記サーバーへコピーされる、請求項９〜１１のいずれか一項記載のシステム。
【請求項１３】
前記ユーザマシンが前記サーバーのディスプレイ装置としての機能を果たすディスプレイ装置を含む、請求項１記載のシステム。
【請求項１４】
複数のアプリケーションが前記サーバーで実行され、
前記複数のアプリケーションがそれぞれのネイティブオペレーティングシステムをスタートさせることなく、表示情報が前記ディスプレイ装置へストリームされるように、すべてのアプリケーションが単一オペレーティングシステムに基づいて前記サーバーで実行される、請求項１３記載のシステム。
【請求項１５】
前記ユーザマシンの単一オペレーティングレイヤアーキテクチャでソフトウェアを動作させる、請求項１又は１４記載のシステム。
【請求項１６】
前記ソフトウェアが前記ユーザマシンで動作するプラットフォームを含み、
前記プラットフォームがオペレーティングシステムとして動作するプラットフォームエンジンを含む、請求項１５記載のシステム。
【請求項１７】
前記オペレーティングシステムが、セキュリティ、ドライバサポート、電源管理、ブートローダー及びファイルシステムに使われる、請求項１６記載のシステム。
【請求項１８】
前記単一オペレーティングレイヤアーキテクチャが前記サーバーで使用される、請求項１５記載のシステム。
【請求項１９】
前記サーバーがＨＴＭＬファイルを前記ユーザマシンへ送信する前に前記ＨＴＭＬファイルのサイズを変更するＨＴＭＬサイズ変更サーバーを含む、請求項１記載のシステム。
【請求項２０】
前記ＨＴＭＬファイル内の画像が前記ディスプレイ装置に完全に表示することができるようにサイズ変更される、請求項１９記載のシステム。
【請求項２１】
前記ディスプレイ装置にＨＴＭＬメディアファイルを表示させるため、前記サーバー上で前記ＨＴＭＬファイルを解析し、前記ＨＴＭＬファイルのコードを補正する、請求項１９又は２０記載のシステム。
【請求項２２】
複数のアプリケーションが前記サーバーで実行され、
前記複数のアプリケーションがそれぞれのネイティブオペレーティングシステムをスタートさせることなく、表示情報が前記ディスプレイ装置へストリームされるように、すべてのアプリケーションが単一オペレーティングシステムに基づいて前記サーバーで実行される、
請求項１又は請求項１３〜１８のいずれか一項記載のシステム。
【請求項２３】
前記アプリケーションが前記アプリケーションによるアクセスを当該システムの少なくとも一つの制限領域に限定するためアクセス制御が実施される保護環境で実行される、請求項１、請求項１３〜１８、又は請求項２２のいずれか一項記載のシステム。
【請求項２４】
前記アプリケーションが実行前に前記保護環境へコピーされる、請求項２３記載のシステム。
【請求項２５】
前記ユーザマシンで動作するプラットフォームを含み、
前記プラットフォームがオペレーティングシステムとして動作するプラットフォームエンジンを含む、
請求項１又は６記載のシステム。
【請求項２６】
前記オペレーティングシステムが前記ユーザマシンの単一オペレーティングレイヤアーキテクチャにある、請求項２５記載のシステム。
【請求項２７】
前記オペレーティングシステムが、セキュリティ、ドライバサポート、電源管理、ブートローダー及びファイルシステムに使われる、請求項２６記載のシステム。
【請求項２８】
前記単一オペレーティングレイヤアーキテクチャが前記サーバーで使用される、請求項２６記載のシステム。
【請求項２９】
前記アプリケーションが前記アプリケーションによるアクセスを当該システムの少なくとも一つの制限領域に限定するためアクセス制御が実施される保護環境で実行される、請求項１、６、又は２５〜２８のいずれか一項記載のシステム。
【請求項３０】
前記アプリケーションが実行前に前記保護環境へコピーされる、請求項２９記載のシステム。
【請求項３１】
複数のアプリケーションが前記サーバーで実行され、
前記複数のアプリケーションがそれぞれのネイティブオペレーティングシステムをスタートさせることなく、前記データが前記ディスプレイ装置へストリームされるように、すべてのアプリケーションが単一オペレーティングシステムに基づいて前記サーバーで実行される、
請求項１、５、又は１９〜２１のいずれか一項記載のシステム。
【請求項３２】
前記単一オペレーティングレイヤアーキテクチャがソフトウェアインタフェースを提供するエンジンエクゼキュータを含む、請求項１〜４、１５〜１８、又は２６〜２８のいずれか一項記載のシステム。
【請求項３３】
前記単一オペレーティングレイヤアーキテクチャがネイティブハードウェアサポートを提供するエンジンリスナを含む、請求項１〜４、１５〜１８、２６〜２８、又は３２のいずれか一項記載のシステム。
【請求項３４】
前記単一オペレーティングレイヤアーキテクチャがソフトウェアレイヤを有さない、請求項１〜４、１５〜１８、２６〜２８、３２、又は３３のいずれか一項記載のシステム。
【請求項３５】
アプリケーションプログラミングインタフェースがコマンドに翻訳される、請求項１〜４、１５〜１８、２６〜２８、又は３２〜３４のいずれか一項記載のシステム。
【請求項３６】
前記ユーザマシンが前記サーバー上でアプリケーションを立ち上げ、実行、操作、モニター及び停止することができる、請求項１〜４、１５〜１８、２６〜２８、又は３２〜３５のいずれか一項記載のシステム。
【請求項３７】
前記プラットフォームが予めプログラムされたハードウェアを認識し、許可されていないハードウェアと協働しない、請求項１〜４、１５〜１８、２６〜２８、又は３２〜３６のいずれか一項記載のシステム。
【請求項３８】
サイズ変更が、幅タグ及び高さタグを有さない前記ファイル内のオブジェクトに幅タグ及び高さタグを付加し、前記オブジェクトが前記ディスプレイ装置の解像度条件に従って前記ディスプレイ装置に表示できるように前記幅タグ及び高さタグの値を補正することによる、請求項１９〜２１、３１、又は３２のいずれか一項記載のシステム。
【請求項３９】
前記幅タグの値が８００で除算され、要求された解像度の幅によって乗算される、請求項３８記載のシステム。
【請求項４０】
前記高さタグの値が６００で除算され、要求された解像度の高さによって乗算される、請求項３８又は３９記載のシステム。
【請求項４１】
前記ユニバーサルメディアフォーマットが予め決められる、請求項５、１９〜２１、３１又は３２のいずれか一項記載のシステム。
【請求項４２】
前記ユニバーサルメディアフォーマットがストリーミングフォーマットであり、一定圧縮率を有する、請求項４１記載のシステム。
【請求項４３】
前記ユニバーサルメディアフォーマットへの変換が前記ＨＴＭＬメディアファイルの原データへの第１の復号化及び伸長による、請求項４１又は４２記載のシステム。
【請求項４４】
プロセッサで実行可能であるソフトウェアアレンジメントであって、
請求項１〜４３のいずれか一項記載のシステムの一つ以上を実行するように前記プロセッサを設定するコンピュータプログラムを備える、ソフトウェアアレンジメント。
【請求項４５】
請求項１〜４３のいずれか一項記載のシステムの一つ以上を実行する対応した一つ以上の手段を備えるコンピュータシステム。
【誤訳訂正書】
【提出日】平成16年12月21日(2004.12.21)
【誤訳訂正１】
【訂正対象書類名】図面
【訂正対象項目名】全図
【訂正方法】変更
【訂正の内容】
【図１】
2005525631.tif 000024
【図２】
2005525631.tif 000025
【図３】
2005525631.tif 000026
【図４】
2005525631.tif 000027
【図５】
2005525631.tif 000028
【図６】
2005525631.tif 000029
【図７】
2005525631.tif 000030
【図８】
2005525631.tif 000031
【図９】
2005525631.tif 000032
【図１０】
2005525631.tif 000033
【図１１】
2005525631.tif 000034
【図１２】
2005525631.tif 000035
【図１３】
2005525631.tif 000036
【図１４】
2005525631.tif 000037
【図１５】
2005525631.tif 000038
【図１６】
2005525631.tif 000039
【図１７】
2005525631.tif 000040
【図１８】
2005525631.tif 000041
【図１９】
2005525631.tif 000042
【図２０】
2005525631.tif 000043
【図２１】
2005525631.tif 000044
【図２２】
2005525631.tif 000045
【国際調査報告】
2005525631.tif 000046
2005525631.tif 000047
2005525631.tif 000048
2005525631.tif 000049