(57)【要約】  システム及び方法が、仮想アプリケーション・デスクトップと通信チャネルとを提供するように構成される。このシステムは、複数のアプリケーションが同時に動作することが可能であるオペレーティング・システムにおいて動作する仮想マシンを含む。複数のアプリケーションは、それぞれが、保護された名前空間を有し、仮想マシンを用いて動作するように構成することができる。また、複数のアプリケーションは、それぞれが、リクエスト・ボックス（４０６）を有する。集中化された通信エンジン（４０８）を、それぞれのリクエスト・ボックス（４０６）の間での通信を制御するように構成することができる。更に、集中化された通信エンジン（４０８）を、複数のアプリケーションからのリクエストに応答して、複数のアプリケーションのリクエスト・ボックス（４０６）の間でデータを検索し転送し分散させるように構成できる。
2009530714.tif 000002
【特許請求の範囲】
【請求項１】
仮想アプリケーション・デスクトップと通信フレームワークとを提供するシステムであって、
複数のアプリケーションが同時に動作することができるオペレーティング・システムにおいて動作する仮想マシンと、
それぞれが保護された名前空間を有しており前記仮想マシンの中で動作するように構成されている複数のアプリケーションと、
前記複数のアプリケーションのそれぞれに対するリクエスト・ボックスと、
それぞれのリクエスト・ボックスの間での通信を制御し、前記複数のアプリケーションの前記リクエスト・ボックスの間で、前記複数のアプリケーションからのリクエストに応答して、データを検索し転送し配分するように構成されている集中化された通信エンジンと、
を備えていることを特徴とするシステム。
【請求項２】
請求項１記載のシステムにおいて、特定のインターフェース・フォーマットと手順フォーマットとデータ・フォーマットとを記述してアプリケーションが前記リクエスト・ボックスを用いて通信することを可能にするリクエスト・ボックスのための定義されたオープン・インターフェース（ＯＩ）を更に備えていることを特徴とするシステム。
【請求項３】
請求項１記載のシステムにおいて、前記集中化された通信エンジンは、前記アプリケーションのの間の通信においてセキュリティ・プロトコルを強制することを特徴とするシステム。
【請求項４】
請求項１記載のシステムにおいて、前記アプリケーションは、前記リクエスト・ボックスを用いて通信し、前記仮想マシンの中で前記通信エンジンを介してアプリケーションの間でデータを送ることを特徴とするシステム。
【請求項５】
請求項１記載のシステムにおいて、前記仮想マシンのための前記仮想アプリケーション・デスクトップのエンドユーザは、前記仮想アプリケーション・デスクトップの中でアプリケーションとアプリケーション・コンポーネントとをアセンブルして、カスタマイズされたオンデマンドのアプリケーションを形成することができることを特徴とするシステム。
【請求項６】
請求項１記載のシステムにおいて、前記アプリケーションは、ウェブからダウンロード可能であることを特徴とするシステム。
【請求項７】
請求項１記載のシステムにおいて、前記アプリケーションは、プロセス・モードにおいて相互に結合され、より大きな処理パイプラインを形成することを特徴とするシステム。
【請求項８】
仮想アプリケーション・デスクトップと通信フレームワークとを提供する方法であって、
複数のアプリケーションが同時に動作することができるオペレーティング・システムにおいて仮想マシンを付勢するステップと、
前記仮想マシンにおいてそれぞれが別個の保護された名前空の間の中で動作するように構成されている複数のアプリケーションをインスタンス化するステップと、
前記複数のアプリケーションのそれぞれに対するリクエスト・ボックスを作成するステップと、
前記保護された名前空間とリクエスト・ボックスとを、集中化された通信エンジンを用いて、接続するステップと、
前記アプリケーションからのコマンドに応答して前記アプリケーションの前記リクエスト・ボックスの間で前記集中化された通信エンジンを介してデータを通信するステップであって、リクエスト・ボックスにおけるデータの告知は、前記集中化された通信エンジンに前記リクエスト・ボックスの中のデータを適用させることによって実行される、ステップと、
を含むことを特徴とする方法。
【請求項９】
請求項８記載の方法において、前記集中化された通信エンジンをイネーブルし、データが送られている前記複数のアプリケーションの中の１つのリクエスト・ボックスに対するリクエスト・フラグを挙げるステップを更に含むことを特徴とする方法。
【請求項１０】
請求項８記載の方法において、前記複数のアプリケーションのの間の通信のためのセキュリティ・プロトコルを前記集中化された通信エンジンを用いて強制するステップを更に含むことを特徴とする方法。
【請求項１１】
請求項８記載の方法において、前記アプリケーションの間で前記リクエスト・ボックスを用いて通信し、定義されたインターフェース・フォーマットと手順フォーマットとプロセスとアプリケーションのの間のデータとに基づき前記集中化された通信エンジンを介した通信を送るステップを更に含むことを特徴とする方法。
【請求項１２】
請求項８記載の方法において、アプリケーションとアプリケーション・コンポーネントとを相互に前記仮想アプリケーション・デスクトップの中でアセンブルしてカスタマイズされたオンデマンドのアプリケーションをエンドユーザのために形成するステップを更に含むことを特徴とする方法。
【請求項１３】
請求項８記載の方法において、インターネットから前記仮想アプリケーション・デスクトップに前記アプリケーションをダウンロードするステップを更に含むことを特徴とする方法。
【請求項１４】
請求項８記載の方法において、ラン時間における前記仮想デスクトップ環境においてどのアプリケーションが動作しているかを、ユーザ・コマンドによって前記仮想デスクトップ環境インターフェースを通じて変更するステップを更に含むことを特徴とする方法。
【請求項１５】
請求項８記載の方法において、前記アプリケーションはプロセス・モードにおいて相互に結合し、より大きな処理システムを形成することを特徴とする方法。
【請求項１６】
請求項８記載の方法において、前記フレームワークの中の登録されたアプリケーション・ソースだけからのリクエストにアプリケーション応答を制限するステップを更に含むことを特徴とする方法。
【請求項１７】
請求項８記載の方法において、アプリケーションがリクエストＩＤをランダムに生成してアクティブ・セッションにおけるすべてのリクエストのトラッキングを可能にするステップを更に含むことを特徴とする方法。
【請求項１８】
請求項８記載の方法において、センシティブな情報はすべて前記アプリケーションの内部だけに記憶することを要求するステップを更に含むことを特徴とする方法。
【請求項１９】
請求項８記載の方法において、アプリケーションは、前記フレームワークによって特定されたサンドボックス領域の外部にあるローカルなハードディスク上の空間にはアクセスできないことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ナショナル・サイエンス・ファウンデーションによるグラント番号ＣＨＥ０３２６０２７号によるサポートを受けてなされたものである。従って、米国連邦政府は、本発明の中に一定の権利を有する。
【背景技術】
【０００２】
インターネットおよびワールド・ワイド・ウェブ（あるいはウェブ）の展開で、ワークと景気環境は劇的に変わった。ビジネスはより世界的・より多くのワークになった、ホームオフィス、および集中型のオフィスから遠い他の場所へ移動している。その結果、遠隔計算機システムからのアクセス情報およびリソースに有能な必要は、さらに重要になっている。
【０００３】
集約的な作業の計算のために、リモートシステムは、単に１つのコンピュータか、サーバではなくややサーバに、あるいはテラ・グリッドのようなグリッドによってローカルに接続されたコンピュータのコレクションである。さらに、異なる場所で多くのコンピュータに置かれた分散型データベースにデータを保存することができる場合データ集約的なワークについて同じことが言える。
【０００４】
リモートシステムとウェブにアクセスするための現在連帯責任を有するそれぞれの者の技術が各々ある、それ自身のユニークな特徴および欠点を持っている。具体的には、これらの技術は次のものを含んでいる。１）ウェブ・アプリケーション、２）リモートシェル、３）  ホストゲスト・システム。
【０００５】
Ｗｅｂアプリケーション：この技術は一般にプラットフォーム独立で、ウェブ・ブラウザからのリモートサーバのサービスのためのアクセス情報およびリクエストへのユーザを許可する。ユーザは、ウェブ・ページからのセキュリティは考慮されていない（ｈｔｔｐ）又はセキュリティが考慮された（ｈｔｔｐｓ）接続によってウェブ・ポータルかサーバへ接続することができる。サーバでは、サーブレットとして形成されたウェブ・アプリケーションは、そのような接続に聞き耳を立てて、かつ提供するために作動している。これは、クライアント・サーバのアーキテクチャとしてしばしば知られている。ウェブ・アプリケーションは、要求するユーザにデータを配達するように、単純か、認証、ユーザからの受け取る入力データ、異なるアプリケーションを起動するためにサーバへリクエストを送るか、サーバからの受け取る出力データを含んでいるオンを複雑にしたタスクおよび、次に、ユーザにそのようなデータバックアップを配達することを行なうことができる。
【０００６】
このソフトウェアアーキテクチャでは、ユーザは、サーバ・オペレーティングシステム（ＯＳ）ではなくウェブ・アプリケーション・サーブレットに直接通信する比較的薄いウェブ・クライアントを持っている。サーバ上のリソースの要請はサーブレットによって行われる。更に、計算はすべてサーバコンピュータ上で終っている。言いかえれば、サーバとのウェブ・通信はすべて、ウェブ・データを提供し、根本的なサーバを保護するサーブレットによってチャネルが存在する。
【０００７】
リモートシェル：リモートシェル・技術は、リモートシェルがＯＳにログインすることを可能にするＵｎｉｘ（登録商標）、Ｌｉｎｕｘあるいは同様のコンピュータ環境を実行するサーバに一般に使用される。ユーザは、安全なシェル（ＳＳＨ）試験計画書を使用して、サーバに直接接続するローカルのデスクトップ環境上のＸウィンドウを開けることができる。この場合、ユーザは取り引きを持ち、サーバ上のディレクトリを所有し、コマンドライン・コマンドを使用して、サーバＯＳと直接通信する。ユーザは、ＳＳＨを使用して、サーバのデスクトップ環境を見ない。
【０００８】
しかしながら、ユーザは、Ｘ１１フォワーディング試験計画書を使用して、サーバからのローカルコンピュータにディスプレイを輸出するアプリケーションを起動することができる。Ｘ１１試験計画書は「外に貢献する」スクリーン、キーボード、マウスなど。不運にも、Ｘｌ  １試験計画書は、しばしばサーバからのグラフィックスを輸出するのに苦労する。この技術では、すべての出来事はサーバ上で実行される。それはウェブ・アプリケーション・技術に似ている。更に、安定性が問題になりえる。これは、このシステムでの弱いリンクがさらにネットワーク接続であるからである。ネットワーク接続が絶えず使用されるので、ネットワーク接続が失敗する場合、Ｘ１１セッション全体は失敗する。
【０００９】
ホストゲスト・システム：この技術はパーソナルコンピュータ（ＰＣ）ユーザに最近利用可能で、多くの場合シングルユーザ・アプリケーションである。ユーザは、ホストとして指定されたＰＣコンピュータ上のホストアプリケーション、およびゲストとして指定されたＰＣの上のゲスト・アプリケーションをインストールすることができる。そのようなシステムはそうである、ウィンドウＯＳの上で走ることに一般に制限された。
【００１０】
ゲストとホスト・アプリケーションの間の通信は、ホスト・アプリケーションがゲストコンピュータにホスト・デスクトップ環境を輸出することを可能にする。ゲストコンピュータのユーザは、評価するデータ、動作中のアプリケーションなどを含む、輸出されたホスト・デスクトップ環境によってホストコンピュータをコントロールすることができる。他の技術に似ているので、すべての出来事はホストコンピュータ上で終っている。ホストＯＳだがホストコンピュータ上で作動するホストゲスト・アプリケーションとユーザが直接通信しないことに注意してください。このシステムにはホストとゲストのアプリケーションがそうである欠点がある、両方はインストールした、システムを使用することができる前に。さらに、ホストゲスト・システムは、ゲスト・アプリケーションがリモートコンピュータにアクセスするべき通信網に、高度に依存する。ネットワーク接続が利用不可能な場合、その後、ホストコンピュータに基づいて行動するゲストを表わすグラフィックイメージは送ることができない。これらのグラフィックイメージあるいはゲストのホストに対するアクションの遠隔ミラーを送ることは、通信帯域幅の重要な金額を消費する。
【００１１】
そのディスカッションは、グリッドコンピューティング・システムではなく単一のリモートコンピュータへのアクセスのためにたった今これまで技術をアドレスした。グリッド・コンピューティング・システムにアクセスするために、アカウントが可能になったグリッドである場合、ユーザはコンピュータへ取り引きとログインを持ち、グリッド上のユーザにリソースを割り付けなければならない。コンピューティング・グリッドにアクセスするための技術は、現在Ｇｌｏｂｕｓのように存在する。したがって、サーバが可能になったグリッドである場合、サーバはコンピューティング・グリッドへの道になりえる。不運にも、グリッドコンピューティング・サービスは、コンピューティング・グリッドに接続される彼らのローカル・サーバにアクセスすることを望むユーザに対するリモートアクセス能力を一般に提供しない。コンピューティング、および科学的なモデリングおよびシミュレーションのようなデータ集約的なプロセスについては、両方の個体および協力的なタスクは、これらのサーバとデスクトップコンピュータの間のデータを転送して、多くのリモートサーバ上に分配された、許可されたアプリケーションおよびデータへの安全なアクセスおよびチームとの共有データを要求する。コンピュータ作業環境用の現在のパラダイムは、必要とされるアプリケーションおよびデータにアクセスするために必要なサーバに手動で別々にログオンすることを個体に要求する。現在の技術は使用するのに非能率的で厄介である。また、険しい学習曲線を要求し、インターネット割込みにより不安定で、グラフィックス・アプリケーション用の大きな帯域幅をしばしば要求する。既存の協調環境が異なることおよび解体されたソフトウェア・フレームワークに基づくので、共同はさらに困難になる。
【発明の概要】
【００１２】
システム及び方法が、仮想的なアプリケーション・デスクトップとアプリケーション・チャネルとを提供するように構成されている。このシステムは、複数のアプリケーションが同時に動作することができるオペレーティング・システムにおいて動作する仮想マシンを含む。複数のアプリケーションは、それぞれが、保護された名前空間を有し、仮想マシンを用いて動作するように構成されている。これらの複数のアプリケーションは、それぞれが、リクエスト・ボックスを有している。集中化された通信エンジンが、それぞれのリクエスト・ボックスの間での通信を制御するように構成されている。更に、集中化された通信エンジンは、これらの複数のアプリケーションからのリクエストに応答して、これらのアプリケーションのリクエスト・ボックスの間でデータを検索し、転送し、配分するように構成されている。
【発明を実施するための最良の形態】
【００１３】
ワールド・ワイド・ウェブ（ウェブ）は、情報とサービスが地理的場所にかかわらず配布され、売られ、アクセスされる方法を革新した。現在のウェブのための図１に示されるように、プロバイダー１０２はウェブまたはインターネットの１０６〜同報情報または内容の１０４を使用する。また、ユーザ１１０は、情報を探索し得るためにウエブブラウザー１０８を使用する。しかし、それが監査用プログラム適用業務オンデマンドの分配向けであることがあるとともに、ウェブは有効に使用されていない。
【００１４】
本発明によるシステムおよび方法はアプリケーションがユーザに有効に配布されることを可能にする仮想マシンを使用して、アプリケーション・フレームワークを含むオン・デマンド、ワールド・ワイド・ウェブ（ウェブ）の利用である。これは、ユーザが、累積され独立して設計されたアプリケーションの集合であるワークスペースを持つことを可能にする。仮想マシンの中で実行するアプリケーションは、アプリケーション間のハイ・レベルのセキュリティを維持する間に不自明なデータ構造を共有する。さらに、そのアプリケーションは、容易に自動的にマルウェアを受け取る恐れのないウェブを使用して更新することができる。
【００１５】
フレームワークを使用して分配されることがある１つのタイプのアプリケーションはＪａｖａ（登録商標）アプリケーションである。しかしながら、他のアプリケーション・タイプは、ＪＯＧＬ、ＪＤＢＣ、Ｊ２ＥＥ、活動的なＸ、および同様のアプリケーションおよび成分のような現在のフレームワークを使用して分配されることがある。
【００１６】
このモジュールのフレームワークは、ユーザがオペレーティングシステムへアプリケーションをインストールする必要を除去する。さらに、それは、ソフトウェアプロダクトの生産、パッケージングおよび海運に関連したコストを縮小する。この技術は、監査用プログラム適用業務用の１回の使用当たりの支払いのビジネスモデルを適用することができる。また、デリバリー機構はソフトウェア配布のための既知の実装方法に破壊的なことがある。
【００１７】
コンピュータ・ユーザが個別工事を行なうことができ、新しいレベルの効率および生産性で他のものにソリューションへの最短時間を達成するように協力することができるところで、現在の発明は１レベルまでサイバーインフラストラクチャーを進める。そのようなニーズは、「サイバー・インフラストラクチャーによって科学技術を革新する」、タイトルのある２００３年の科学研究費学識経験者から成る諮問機関報告書の中で上げられた、そして大統領への報告書「計算科学：２００５年６月に大統領の情報技術受託者によってアメリカの競争力のを保証すること。よりよい計算上のインフラストラクチャーおよびサポートの必要も２００６年１月の社長の一般教書演説でアドレスされた。
【００１８】
フレームワークは、多くの産業およびドメインで要求される、データ集約的なソフトウェアおよびアプリケーションの有効で安全な分配を提供する。ウェブは情報が流布される方法を革新しているが、内容、媒体分配、および地理的場所と無関係になるマーケティングで、ウェブはまだ発展している。また、提供サービスの有効な方法はまだ開発されている。現在のシステムおよび方法は、データ、ツールおよびリソースが多数のサイトから分配される場合に、データおよびコンピューティング集約的なワークのためにアドバンスト・コンピュータ環境を構築するために現在のウェブ・インフラストラクチャーにてこ入れする。
【００１９】
１つの実施例では、ソフトウェアプラットホーム・技術はＪａｖａ（登録商標）のオン・デマンドのアプリケーション・フレームワーク（ＪＯＤＡＦ）と呼ばれる。ユーザは、技術によってウェブ・オンデマンドからのアプリケーション・ツールを使用することができる。より重要なことには、カスタマイズ可能でプラットフォーム非依存の企業溶液はこのフレームワークで構築することができる。あらかじめ形成された企業制度にワーク要求を入れるのではなく、ユーザは、これによって特定のワーク要求へのアプリケーションに適合することができる。アプリケーション・フレームワークは種々のタイプのアプリケーション・ツール、データ、および単一の仮想デスクトップ環境から同時にアクセスされるインターネット上に分配されたリソースを許可する、１つの、より単純で、安全で、より透明な、方法。分配されたリモートサーバ・アクセス能力と結合したこの機能は、データおよびサーバ主体のアプリケーションへのリモートアクセスを要求するすべての産業に給付金を提示する。これらのアプリケーションは大企業のための商品デスクトップ監査用プログラム適用業務から企業溶液まで広範囲のエンド・ユーザ・アプリケーションをカバーすることができる。
【００２０】
例えば、フレームワークは、計算科学と工業学校の中でサイバー・インフラストラクチャーを研究、共同および教育に使用してアクセスすることができる多くの分子モデリングとシミュレーションのツールを含んでいることがある。分子モデリングおよびシミュレーション・ドメイン（特定の垂直的市場を含む）は、ナノ技術、バイオ技術、マテリアルサイエンス、化学薬品、石油、農業化学薬品および医薬品工業を包含する。利用可能な遠隔のアクセス・ツールとアプリケーション・フレームワークを組み合わせることは、データおよびサーバ主体のアプリケーションのリモートアクセスを要求するすべての産業のために機会を開く。これには、金融サービス、医療情報学、モデリングおよびシミュレーション（Ｍ＆Ｓ）などが含まれる。
【００２１】
新しい起動と同様に既存ソフトウェア会社も基準、およびユーザ・フレンドリーなＧＵＩ、ビジュアル化およびデータ解析ツール・アプリケーションを備えたデスクトップ・アプリケーション・ツールの発生のための方法を採用することができる。また、それらはウェブ上にそれらを分配する。アプリケーション・フレームワークの採用がパッケージングのコスト、分配、メンテナンス、設置を縮小し、オペレーティングシステム間のポータビリティを提供するので、これは会社に競争的優位を提供することができる。
【００２２】
図２は、監査用プログラム適用業務がユーザ・オンデマンドに配達されることを可能にすることにより、情報伝達内容のその現在の機能をこの技術によってウェブが越えることができることをさらに示す。プロバイダ２０２は、内容とアプリケーションの２０４を分配するためにウェブを使用することができる。そのアプリケーションはアプリケーション・フレームワーク２０６によって要求されるようなインターネット上に分配される。これは、エンド・ユーザ２１０が仮想デスクトップ２０８を通って利用可能なアプリケーションを見て実行することを可能にする。従って、それは、「１回の使用当たりの支払い」の監査用プログラム適用業務用のビジネスモデルを導入する。
【００２３】
ユーザはそれらのデスクトップコンピュータにそれらをインストールする必要なしに、アプリケーション・フレームワークとシステムによってアプリケーション・ツール・オンデマンドを使用することができる。これらのアプリケーション・ツールは中央ウェブポータルに存在する必要はない。しかし、これらのアプリケーション・ツールは異なるサーバに置くことができる。また、アプリケーション・ツールは、ユーザの異なるウェブサーバにあるウェブ・ページが図２に示されるようなユーザのウエブブラウザーに配達されるのと同じ方法で仮想デスクトップ環境オンデマンドに「配達される。」
図３は、過去のシステムでの同じ仮想マシン内の走る多数のアプリケーションに関する問題のうちの１つを図解している。いつ、複合のアプリケーション３０２ａ−ｃ、それらがそうである単一の仮想マシン内に実行している、アプリケーション間に通信がほとんどなくても密結合。これは、アプリケーションがシェアード・メモリ・プール３０４を使用するだろうということを意味する。シェアード・メモリ・プールは、アプリケーションがメモリー容量および他のアプリケーションの実行インストラクションさえ悪くする機会を提供する。他の予期しないインタラクションがさらに生じる場合がある、いつ、複合のアプリケーション、同じ仮想マシン内に走る。例えば、それらの名前空間あるいは内部種類名は互いと矛盾することがある。このため解釈された、あるいは、ジャストインタイムはアプリケーションを通常各々コンパイルした、自分の仮想マシン内に実行された。しかしながら、アプリケーションがそれぞれ個別の仮想マシン上で実行する時、その後、アプリケーションは他のアプリケーションと通信するのに苦労するだろう。
【００２４】
現在のシステムの１つの特徴によれば、いったんアプリケーションがフレームワークにロードされれば、アプリケーションは、フレームワーク中で既に作動するか、あらかじめ定義されたインターフェース経由でフレームワーク中で登録された他のアプリケーションで伝達することができる。ユーザは、この特徴によってあらかじめ形成された企業制度にワーク要求を入れるのではなく特定のワーク要求に適合するカスタマイズされた企業ソリューションを構築することができる。ソフトウェア・フレームワークは、仮想デスクトップ環境中で実行することができるＪａｖａ（登録商標）技術、ＡｃｔｉｖｅＸあるいは他の技術に基づくことができる。したがって、それはプラットフォーム独立で、任意のタイプの既存か将来のアプリケーションをサポートすることができる。これは、Ｊａｖａ（登録商標）  ＷｅｂＳｔａｒｔ技術のような技術とは著しく異なる。Ｊａｖａ（登録商標）  ＷｅｂＳｔａｒｔ技術は、さらにユーザ設置の必要なしでユーザのデスクトップ上で独立したＪａｖａ（登録商標）アプリケーションを始めることができる。
【００２５】
図４は、システムの記述された実施例中で通信セキュリティを強化することができることを図解している。アプリケーション・フレームワークかアーキテクチャ４００では、仮想デスクトップ環境にロードされるアプリケーション４０２は独立したアプリケーションとして作用する。そのアプリケーションはフレームワークの使用による場合以外は他のアプリケーションと通信することができない。
【００２６】
そのアプリケーションは、他のアプリケーションと直接通信することができない。これは、アプリケーションが保護されたネームスペース４０４および安全に定義された通信チャンネルを持つからである。図４に図解された、安全に定義された通信チャネルは中央の通信エンジン４０８である。フレームワークには他のアプリケーションが互いに伝達することができるように特定のインターフェース・フォーマット、手続き的なフォーマットおよびデータ・フォーマットについて記述する定義されたオープン・インタフェース（ＯＩ）がある。ＯＩについての情報は他のものに利用可能である。これらのＯＩは個々のアプリケーションには輪郭をとることができるユーザになるだろう。中央の通信エンジンはこれらのインターフェースを強化する。
【００２７】
中央の通信エンジン４０８は、仮想マシン内のそれぞれのアプリケーションのために個別のサブキャッシュを含むそれ自身のローカルキャッシュ４１４を有する。１つの実施例では、中央の通信エンジンはインターネット上のサーバからアプリケーションをダウンロードし、アプリケーションをローカルにキャッシュに入れることができる（４１６）。その後、そのアプリケーションは、ダイナミックに仮想マシン中で実証することができる。以前に記述されたように、アプリケーションは、アプリケーションがそれぞれそれ自身の保護砂箱に分離されている一方中央の通信エンジンを使用して伝達することができる。別の実施例では、中央の通信エンジンはデータ、実行可能なセグメントおよび他の情報を格納することができる。その一方でそれはリクエスト箱４０６の間で判決を下されている。例えば、キャッシュは、リクエスト箱によって参考文献として載せられている情報を格納することがある。
【００２８】
２つの独立したアプリケーション間でデータを送ることは、悪意のあるアプリケーションがシステムについてのセンシティブな情報を得ることを試みるというセキュリティ状のリスクを生じる。本発明によるシステムおよび方法は、アプリケーションがユーザ・アカウント情報のようなどんなセンシティブな情報も通るのが難しいか不可能であるのと同じ方法でアプリケーション間のインターフェースを提供する。
【００２９】
このフレームワークは、複数のアプリケーションの間のインターフェースにおいて、以下のような複数の規則を強制することができる。
１）センシティブな情報は、すべて、アプリケーションの内部に維持されなければならない。
【００３０】
２）アプリケーションは、その応答を、フレームワークの中の既知の又は登録されたソースからのリクエストに制限することができる。
３）アプリケーションは、ランダムに生成されたリクエストＩＤ又は暗号化されたＩＤを生成することができ、それによって、アクティブ・セッションにおけるすべてのリクエストをトラッキングすることができる。
【００３１】
４）アプリケーションは、ユーザによって特に承認された画定したアプリケーションの範囲の外部では新たな接続を開始することができない。
フレームワークはすべてのアプリケーションが悪意を有するものであると想定しているので、これらの規則は、すべてのアプリケーションの間で安全なインターフェースを可能にする。
【００３２】
これらのインターフェースを介して、アプリケーションＡは、始動し、アプリケーションＢのソース・コードについて知る又はアプリケーションＢのソース・コードを修正する必要なく、データやリクエストをアプリケーションＢに送ることができる。更に、アプリケーション・フレームワークは、すべてのアプリケーションに、それ自体の個別のディレクトリ及びサブディレクトリをローカルな大容量記憶装置において与えることができる。この保護されたハードドライブ領域は、サンドボックスと呼ぶことができる。アプリケーションは、このサンドボックス内部では、ファイルを読む、書く及び作成することに関し完全な自由を有する。しかし、アプリケーションは、サンドボックスの外部では、（読み出し専用のシステム・ディレクトリを例外として）読み出し又は書き込みアクセスの許可を有していない。
【００３３】
サンドボックスの外部で必要とされる外部ファイルの操作は、そのようなものであっても、アプリケーション・フレームワークと共に分配されるアプリケーションであるグローバル・ファイル・エクスプローラによって行うことができる。グローバル・ファイル・エクスプローラは、アプリケーションがそのサンドボックスから離れる際に行うすべてのことをユーザに示す。これにより、アプリケーションが悪意を有する又は隠された作用を行う能力が制限される。更に、ソケット通信とそれ以外のネットワーキング機能は、悪意を有するウェブ・アクセスを阻止するように制限され監督を受ける。
【００３４】
それぞれのアプリケーションについて、オープン・インターフェースは、入出力データのフォーマット及び性質に関する知識と、このアプリケーションが対応するコールを用いて実行することができる始動、データ送信、データ受信、閉鎖などの機能をリストとから構成される。
【００３５】
安全なオープン・インターフェースのモデルの例としては、この環境における３つの例示的なアプリケーションについて説明することができる。すなわち、既に述べたグローバル・ファイル・エクスプローラと、与えられた分子の熱力学的な特性を計算するサーモ（Thermo）と、一般的なＪａｖａ（登録商標）プロッティング・ツールであるパンドラ（Pandora）とである。これらのアプリケーションは、スタンドアロンのＪａｖａ（登録商標）アプリケーションでありうる。仮想デスクトップから、フレームワークのオープン・インターフェースを用いて、サーモは、ローカル・ディスク又はリモート・サーバにあるグローバル・ファイル・エクスプローラを用いて、適切なワークファイルを開き、熱力学的特性を計算し、ランタイムでパンドラを始動し、データを送ってパンドラにプロットさせることができる。
【００３６】
図５には、このシステムのある１つの実施例が図解されている。この実施例では、共有スキーマ（ＳｈｒｄＳｃｈ１）５０４がインターネット５１２を介してアクセス可能なサーバ５１０において利用可能であり、そのようなスキームが誰でもが用いることができるように自由に利用可能になっている。図解されている例では、アプリケーション１（Ａｐｐ１）５０２とアプリケーション２（Ａｐｐ２）５０３とが、仮想マシン５００で動作しており、共に、ＳｈｒｄＳｃｈ１を用いている。これら２つのアプリケーションは、それぞれが独立であって相互に関する知識を有していない状態であったとしても、それらのリクエスト・ボックスの中のＳｈｒｄＳｃｈ１．ｊａｒを参照することによって、通信することができる。中央通信エンジンが、ローカル・キャッシュ５１４の中にＳｈｒｄＳｃｈ１．ｊａｒ５１６を記憶している。このローカル・キャッシュにおいて、両方のアプリケーションはデータにアクセスし、リクエスト・ボックス４０６を用いて他方に変更を通知することができる。
【００３７】
この実施例における通信フレームワークは、私書箱（ポストオフィス・ボックス）と比較することができる。１つのアプリケーションは、１つの機能においてリクエストを送ることができる。次に、その一例を掲げる。
【００３８】
【表１】
2009530714.tif 000003
【００３９】
このフレームワークは、失敗を想定することができ、また、トライ・キャッチ・ステートメントを用いることができる。アプリケーション２は、任意のリクエストを実現又は無視することができ、アプリケーション１はどのような成功も予測しない。これは、これらのアプリケーションがもはや密接に結合されていないことを意味する。
【００４０】
ここで、これがスプレッドシート・アプリケーションとグラフ作成アプリケーションとを用いてどのように機能するかについて、例をもうひとつ説明する。スプレッドシートが、あるグラフにおいて表示すべきデータを有するとする。その場合、スプレッドシート・プログラムは、グラフ作成アプリケーションのＵＲＬ又はアプリケーション名を中央通信エンジンに送る。スプレッドシート・プログラムは、中央通信エンジンに、ウェブ上で当該グラフ作成アプリケーションを見つけ、そのリクエスト・ボックスを利用可能にするように依頼する。中央通信エンジンは、当該アプリケーションをダウンロード又は更新して、スプレッドシート・プログラムに通信して戻されるリクエスト・ボックスのアドレスを利用可能にする。
【００４１】
その後、スプレッド・シートは、グラフのリクエスト箱の中のデータを表示してくれ、かつそれが完全な場合、「最新のデータ」で返答してくれるようにグラフに依頼することができる。グラフ・アプリケーションが答えることができる場合、それは行う。その後、ユーザは、グラフ中のデータを修正することがある。グラフはスプレッド・シートのリクエスト箱へ修正済のデータバックアップを送ることができる。また、もし望まれれば、スプレッド・シートは、それ自体の内のデータを更新することがある。
【００４２】
ユーザにとっての重要な利点は、アプリケーション・フレームワークがそれらのコンピュータ上の独創的なアプリケーションの設置、構成およびメンテナンスの必要を削除するということである。図４では、アプリケーション・フレームワークを使用するアプリケーションは、インターネット４１２を通じてユーザ・オンデマンドへのアプリケーション・サーバ４１０から提供することができる。これは、監査用プログラム適用業務に使用ごとの価格決定モデルを供給することができる。更に、ソフト会社は、ウェブ上にＪａｖａ（登録商標）アプリケーションを分配し売るためのより多くの費用対効果の大きい方法を持つだろう。
このフレームワークは、ソフトウェア配布中の生産コスト、パッケージング・コストおよび輸送費をゼロにすることができる。ユーザは生産原価、パッケージングおよび輸送費用を吸収する必要はない。
【００４３】
したがって、ベンダーはソフトウェアにより競争的に値をつけることができるだろう。これはユーザのためのもっと要された有効なソリューションに先行することがある。その後、例えば、一年一度のみ納税申告を準備するための最新のアプリケーションを使用する必要のあるユーザは、単に一度だけの使用の代価を払うだろう。ユーザはプログラムをインストールする必要はない。
【００４４】
アプリケーション・フレームワークは、ユーザに利用可能なアプリケーションの数を増加させる場合がある。また、これは、ウェブの値が追加内容につれて増加する方法に似ている。ソフトウェア開発者へのコスト利益およびユーザへの使用の軽減は、プラットホームを採用するようにソフトウェア開発者を激励するだろう。
【００４５】
ある１つの実施例では、仮想デスクトップ環境によって、ユーザは、ウエブ・ブラウザの内部におけるツールの使用可能性についてリサーチを行うことが可能になる。記述子ファイルは、中央の通信エンジンがダウンロードする必要のある情報を含んでいるディレクトリのウェブ上で公表され、アプリケーションをダイナミックに実行することがある。エンド・ユーザは、使用するこれらの記述子および選択したアプリケーションをブラウズすることがある。例えば、記述子ファイルはアプリケーション名、応用機能銘柄、バージョン番号、アプリケーション・ウェブ・アドレス、アプリケーションのフレームワーク内のリクエスト箱のアドレス、アプリケーションを始めることの要請の名、外部ライブラリ名、共有されるスキーマ名、およびフレームワークによって必要とされるアプリケーションに関係のある他の情報を含んでいることがある。記述子ファイルがアプリケーション・バージョン番号を含んでいるので、アプリケーション・フレームワークは各使用の前にアプリケーションを更新する必要があるかどうか容易に知ることができる。アプリケーション・フレームワークおよび科学的なモデリング、およびシミュレーション・ツールを支持する他の技術が出現すると予想される。
【００４６】
追加的な実施例では、サードパーティであるアプリケーション・プロバイダは、記述子を使用して、システムに支援された、すべての提出されたアプリケーションのリストを含んでいる中央のアプリケーション・カタログ・システムで彼らのアプリケーションを登録することができる。発見プロセスは、自動的にサードパーティー・アプリケーションのためにサードパーティー・アプリケーション・プロバイダによって供給されたウェブ・アドレスから記述子を読むことができる。これは、システムが他のアプリケーションと接続する時カタログの中ですべての提出されたアプリケーションによって使用される方法を決定することを可能にする、両方、インプット・サプライヤあるいはアウトプット消費者（つまり他のアプリケーションによって生成されたデータを使用することができること）として。ユーザは、この広範囲なカタログ・システムによって様々なツール、および同様の機能性を提示する競合し得るツールさえ選択する選択権を持つことができる。
【００４７】
システムのセキュリティとセンシティブなユーザ情報の保証は、アプリケーション・フレームワークにとって重要である。２つのタイプのセキュリティが存在する。すなわち、フレームワークのセキュリティと、ログイン・アカウントやパスワードのようなセンシティブなユーザ情報のセキュリティとである。
【００４８】
アプリケーション・フレームワークはユーザ・デスクトップ上で走り、そのレベルでセキュリティを維持することができる。セキュリティは分割されたエリアへのみ登録簿システム・アクセスを許可することにより強化することができる。この外部が分割したアクセス情報あるいは記憶保護域へのどんな試みも、結果的にアプリケーションのシャットダウンをもたらすだろう。
【００４９】
オープン・インタフェースを用いると、サードパーティのデベロッパは、自らの製品をプラットフォームの中に容易にポートすることができるし、また、その環境の中でデータを他のアプリケーションに送ることができるし、その逆も可能である。独立したアプリケーションを接続するためにワークフローを構築するか安全な方法で企業制度のカスタマイズは可能である。
【００５０】
安定性は、任意のロバストなアプリケーション・プラットホームにおける要求である。独立したアプリケーションがフレームワーク・オンデマンド（実行時間の）にロードされることをフレームワークが可能にするので、それはシステムメモリーと帯域幅の最適な使用を提供する。システム全体の安定性はフレームワーク中で現在ロードしたアプリケーションの安定性になる。フレームワーク（つまり、あるアプリケーションの衝突は全体の環境を衝突させない）のそれから個々のアプリケーションの安定性を分離することは重要である、これは現在のソフトウェアアーキテクチャのプロパティである。これは、アプリケーションがそれぞれ無所属派スレッドとして扱われ、したがって、それが全体の環境に影響しないからである。
【００５１】
しかしながら、安定性コントロールの付加的層を提供するために、アプリケーション・マネージャーを提供することができる。アプリケーション・マネージャーは、ユーザが環境でどんな現在走るアプリケーションも終了することを可能にする。ハングしてしまったアプリケーションの場合には、ユーザが、アプリケーションを終了し、かつ再びそれを再開するためにアプリケーション・マネジャを使用する。
【００５２】
サーバ側の仮想デスクトップによってアクセスされたハードウェアは、グリッド・コンピューティング・システムであることがある。例えば、仮想デスクトップとアプリケーションは、インフォーマティックス・アプリケーションの並列化を可能にするためにメタクラスターをアクセスすることができる。Ｕｎｉｘ（登録商標）ベースのサーバのリモートアクセスのためのアプリケーションとアプリケーションフレームワークを組み合わせることは、クライアント環境フレームワークを提供する。このクライアント環境フレームワークは、ユーザが異なるタスク用の異なるサーバに同時にアクセスすることを可能にする多数のＪａｖａ（登録商標）アプリケーションをサポートするだろう。そのようなフレームワークは、ユーザ・デスクトップコンピュータ上でできないが、異なるリモートサーバに配達されるに違いない計算上とデータ集約的な仕事に使用することができる。
【００５３】
例えば、データ集約的なシミュレーション・アプリケーションおよびツールは実行することができる、のように、集約的なグラフィックス・レンダリング、分子モデリングおよび計算上集約的なシミュレーションを計算する。これらのツールは、分子モデリングとシミュレーション用のビジュアル化／データ解析ツールおよびグラフィックユーザインタフェースを含んでいることがある。フレームワークは、大規模なプロセス・シミュレーション、バンキング、医療情報学、健康科学研究、モデリングおよびシミュレーション、ファイナンス、流体力学、気象研究、分子科学および多数の他の分野などのリモート・アクセス技術と共に使用することができる。
【００５４】
図６は、アプリケーションフレームワーク用のグラフィカル・インターフェース・デスクトップの実施例を示す。ユーザは、実行時間で仮想デスクトップ環境からの活発なアプリケーションを加えるか削除することができる。仮想デスクトップ環境で実行する活発なアプリケーションが仮想マシンに直接接続されたユーザ・インタフェースの使用により変更されれば、システムはより柔軟になるだろう。これはメモリリソースのよい使用に先行し、プラットホームを拡張可能で、計量可能にするために帯域幅要件を縮小する。より重要なことには、これらのアプリケーションは、オープンインタフェース経由で互いにシームレスに伝達することができる。したがって、環境はユーザ・オンデマンドカスタマイズ可能な企業ソリューションになるだろう。
【００５５】
さらに、図６では、フレームワーク６０２、直接応募６０６およびローカルにロードした会社アプリケーション６０８に固有のアプリケーションがあることがある。さらに、デスクトップと仮想マシンにアプリケーションをロードする記述子ファイルのＵＲＬをタイプするユーザは、アプリケーションをウェブ６０４からロードすることができる。これらのアプリケーションはユーザのためのワークスペースに含まれている。また、ユーザは、処理パイプラインを形成するためにそれらをともにリンクすることができる。さらに、共有されるスキーマを使用して通信する合成アプリケーションを作成することは可能である。ユーザは、これらの合成アプリケーションを、ダイナミックに実行時間で組み立てることができる。プラットホームの顕著な特徴のうちのいくらかは下に強調される。
【００５６】
１）個体および共有されるワークの一体化力を促進する同じソフトウェア・フレームワーク中の個体および共同作業環境の両方を考慮に入れる。
２）ユーザは種々のタイプのアプリケーション・ツール、データ、および場所指向のコンピューティングの物理的な拘束を削除する単一のデスクトップ環境から異なるサーバ上のインターネット上に同時に分配されたコンピューティングリソースをアクセスすることができる。
【００５７】
３）ワークスペースは真直ぐで、安全で、透明なやり方で分散コンピューティングを促進する。
４）フレームワークは、通信を最小化し、帯域幅要件を縮小し、環境を、不安定性をネットワーク化するのにはそれほど感知可能でなくする方法でクライアントとサーバコンピュータの間の作業負荷を分配する。
【００５８】
５）個々のアプリケーション、および有効に計算事務を行なうユーザの能力を高めるアプリケーションとデータベース間のシームレスの通信を許可する。
６）有効にそれらの個々の事実上のワークスペース環境をカスタマイズする方法でインターネットからユーザがアプリケーションとデータを引き離すことを可能にする、拡張可能で柔軟なフレームワークを含んでいる。
【００５９】
リモート・アクセス・ツールと組み合わされたアプリケーション・フレームワークは、データのリモート・アクセスとサーバ・ベースのアプリケーションとを必要とするすべての産業のために協力的な機会を提示する。これらのツールは、次のような多くの環境の中で使用できる。
【００６０】
１．化学、化学工学あるいは薬化学のような化学の関連する分野に大学院課程を持っている大学。
２．分子モデリング及びシミュレーションにおける応用をサポートする全国的な研究所及び計算センター。
【００６１】
３．研究及び開発の努力においてモデリング及びシミュレーション・コンポーネントを有するナノ技術、バイオ技術、マテリアルサイエンス、化学薬品、石油、農業化学薬品および医薬品工業。
【００６２】
サーバ市場では、多くのユーザが、彼らのデスクトップコンピュータからサーバ上のデータとアプリケーションのツールに遠隔にアクセスすることを要求される。特に、Ｕｎｉｘ（登録商標）ベースのサーバについては、リモートアクセス用の現在のＳＳＨ技術は使用するのに厄介である。それは、行指令環境中のＵｎｉｘ（登録商標）オペレーティングシステムに精通することをユーザに要求する。本発明によるシステムは拡張可能なクロスプラットフォーム・オープン・アーキテクチャ・ソフトウェア・フレームワークである。このフレームワークは独立したアプリケーション・ツール、ユーザ・ローカルコンピュータ上で走る仮想デスクトップ環境とは異なったサーバ上に分配されたサイクルを計算するファイル、データベースにアクセスすることができる。
【００６３】
図７は、仮想適用デスクトップおよび通信チャネルを提供する方法の実施例を図解しているフロー・チャートである。この方法は、ブロック７１０でのように、多数のアプリケーションが同時に実行することができるオペレーティングシステム上の仮想マシンを活性化するオペレーションを含んでいる。上に記述されるように、仮想マシンは任意のソフトウェアであることがある。アプリケーションは、コンピュータ・プラットフォームとそのオペレーティングシステムの間の仮想になった環境を築くソフトウェアである。したがって、エンド・ユーザ・アプリケーションは抽象的なマシン上で作動する。仮想マシンは、インタープリター、ＪＩＴコンパイラあるいは別の既知のタイプの仮想マシンであることがある。ブロック７２０でのように、別のオペレーションは仮想マシン内の多くのアプリケーションを実証している。アプリケーションの各々は仮想マシン内の他のアプリケーションからアプリケーションを分ける個別の保護されたネームスペース内に実行するように構成される。リクエスト・ボックスのために、個々、多くのアプリケーションの、ブロック７３０でのように、さらに作成することができる。
【００６４】
ブロック７４０でのように、保護されたネームスペースおよびリクエスト箱は集中型の通信エンジンに接続される。ブロック７５０でのように、これは集中型の通信エンジンによってアプリケーションからのコマンドに応じてアプリケーションがアプリケーションのリクエスト箱の間のデータを通信することを可能にする。リクエスト箱の中のデータの通知は集中型の通信エンジンにリクエスト箱の中のデータのアプリケーションに通知させることにより行なうことができる。
【００６５】
アプリケーション・フレームワークは、監査用プログラム適用業務の分配のために媒体としてウェブ上の新しく広い水平的市場を開くことがある。また、この分配フレームワークはユーザ設置およびソフトウェア保守を要求しない。ある１つの実施例では、ソフトウェア・フレームワークは、ユーザが異なるサーバにあるインターネットから異なるＪａｖａ（登録商標）監査用プログラム適用業務を引き離すかダウンロードすることを可能にする。ユーザはさらに自分の仮想デスクトップ環境オンデマンドをカスタマイズすることができる。
【００６６】
この特許出願に述べられていたアプリケーションフレームワーク・システムおよび方法は、Ｊａｖａ（登録商標）監査用プログラム適用業務にある、ウェブが現在満足させる。それは、プロバイダーがユーザ設置の必要なしで情報およびサービスだけでなく監査用プログラム適用業務オンデマンドも提供することを可能にすることにより、複雑さと多様性の次のレベルにウェブが移ることを可能にする。本発明によるシステムの価値は、アプリケーションが追加されるにつれて、指数関数的に増加するだろう。
【００６７】
１つ以上の特定のアプリケーションの本発明を説明したが、発明力の練習なしで、および発明の法則および概念から外れることなしでインプリメンテーションの形をしていて、使用法および詳細の多数の変更をなすことができることは芸術の通常の技量のものに明白だろう。従って、本発明が冒頭の特許請求の範囲における定義以外に限定されるたことは意図されない。
【図面の簡単な説明】
【００６８】
【図１】インターネットの現在の構造とインターネットのコンテンツ指向性とを図解するブロック図である。
【図２】既存のインターネットと共に動作するアプリケーション・フレームワークと仮想デスクトップ環境との実施例を図解するブロック図である。
【図３】密接に結合された仮想マシンの内部で動作し同じメモリ・プールを共有する複数のアプリケーションを図解するブロック図である。
【図４】リクエスト・ボックスとそれぞれのアプリケーションに対する別個の名前空間とを用いて相互に安全に分離された複数のアプリケーションを実行するように構成されたエンハンスト型の仮想マシンの実施例を図解している。
【図５】本発明のある１つの実施例においてデータ及びデータ構造を共有するように構成されたエンハンスト型の仮想マシンの実施例を図解している。
【図６】本発明のアプリケーション・フレームワークに対するグラフィカル・デスクトップの実施例である。
【図７】仮想アプリケーション・デスクトップを提供する方法に関する実施例を図解している流れ図である。
【図１】
2009530714.tif 000004
【図２】
2009530714.tif 000005
【図３】
2009530714.tif 000006
【図４】
2009530714.tif 000007
【図５】
2009530714.tif 000008
【図６】
2009530714.tif 000009
【図７】
2009530714.tif 000010
【国際調査報告】
2009530714.tif 000011