説明

アプリケーションのリモートオートプロビジョニング及びリモートオートパブリケーション

アプリケーションのオートプロビジョニング及びオートパブリケーションのための技術が説明される。オートプロビジョニングのプロセスは、サーバに事前に格納されたファイルパッケージをそれぞれが備えているアプリケーションを自動的にインストールできる。その後、これらのアプリケーションのパブリケーションが、自動的に行われる。かかる自動的なプロセスを用いることによって、リモートアプリケーションのプロビジョニング及びパブリケーションに関係しているレイテンシは減少する。それによってプロセスの効率が更によくなる。

【発明の詳細な説明】
【背景技術】
【0001】
本件特許出願人によるターミナルサービス(Terminal Services)(商標)などのリモートコンピュータシステムは、サーバコンピュータでホストされているリモートアプリケーションに複数のユーザがアクセスできるようにする。提供されるサービスはまた、様々な認証システムを含んでおり、これによって権限のないユーザがアプリケーションにアクセスするのを防ぐことができる。
【0002】
かかるリモートコンピュータシステム環境において、システム管理者はサーバコンピュータにアプリケーションをロードすることができる。その後、様々なポリシの定義及びセキュリティの管理の一環として、システム管理者は1人または複数のユーザに対してポリシを設定することができる。かかるポリシは、ユーザがサーバコンピュータで実行することができるアプリケーションの数またはオペレーションの種類の数をどの程度認めるかまたは制限するかを決めることができる。例えば、システム管理者は、特定のグループのユーザに対して特定のアプリケーションの利用を制限することができる。その後、システム管理者はまた、該ポリシに基づいて、ユーザがアクセス可能なアプリケーションのリストをウェブページにパブリッシュすることができる。次に、ユーザは、アプリケーションがパブリッシュされているウェブページから直接関係のあるアプリケーションにアクセスすることができる。
【0003】
プロビジョニングのプロセスが完了すると、システム管理者は、1人または複数のユーザに対してアプリケーションへのアクセスに関連するポリシを設定することができる。ポリシは、例えば、いくつかのアプリケーションについて特定のユーザに読み出し権限/書き込み権限を割り当てることを含むことができる。システム管理者は、1つまたは複数のウェブページを介して各ユーザに対してアプリケーションのリストをパブリッシュすることができる。ウェブページは、ユーザのためのユーザインタフェースの役割を果たし、ユーザがアプリケーションにアクセスすることができるアプリケーションアイコンを含んでいる。サーバにアプリケーションをロードして、ユーザが使えるようにこれらのアプリケーションをパブリッシュするプロセスは、時間がかかりかつ退屈である。従って、アプリケーションがサーバコンピュータに格納されて、ユーザが利用するためにパブリッシュされる方法を改善する必要がある。
【発明の概要】
【0004】
この概要は、アプリケーションのリモートオートプロビジョニング及びリモートオートパブリケーションに関する概念を導入するために提供される。これらの概念は、詳細な説明で更に後述される。本概要は、請求された本発明の基本的特徴を識別することを意図していないし、請求された本発明の範囲を決定する際に用いられることを意図していない。
【0005】
1つの実施例では、フォルダ即ちファイルシステムにおいてアプリケーションパッケージが確認され、即ち見出されて、アプリケーションランタイムコンポーネント即ち仮想コーディネータ(virtualization coordinator)を用いて調整が行われ、リモートアプリケーションプロビジョニングコンポーネント即ちプロビジョニングモジュールはアプリケーションをユーザが利用できるようにする。
【0006】
詳細な説明は、添付の図面を参照して説明される。該図面において、参照番号の最も左の数字(または複数の数字)は、該参照番号が最初に現れる図を識別する。同じ番号を、類似の特徴及びコンポーネントを参照するために、図面全体にわたって用いている。
【図面の簡単な説明】
【0007】
【図1】アプリケーションのリモートオートプロビジョニング及びリモートオートパブリケーションのための例示的なネットワークアーキテクチャを示すブロック図である。
【図2】アプリケーションのリモートオートプロビジョニング及びリモートオートパブリケーションを実施するサーバコンピュータを示すブロック図である。
【図3】アプリケーションのリモートオートプロビジョニング及びリモートオートパブリケーションのための例示的なワークフローを示すフローチャートである。
【図4】アプリケーションのリモートオートプロビジョニングを実施する例示的なプロセスを示すフローチャートである。
【図5】アプリケーションのリモートオートパブリケーションを実施する例示的なプロセスを示すフローチャートである。
【図6】例示的なコンピュータ環境を示すブロック図である。
【発明を実施するための形態】
【0008】
本開示は、本件特許出願人によるターミナルサービス(Terminal Services)(商標)などのリモートコンピュータ環境において、アプリケーションのリモートオートプロビジョニング及びリモートオートパブリケーションを実施する技術を対象とする。特に、本開示は、リモートコンピュータ環境において、ユーザに対してリモートアプリケーションのより速いプロビジョニング及びより速いパブリケーションを提供することを対象としている。本技術は、本明細書において、リモートのサーバコンピュータまたはターミナルサーバコンピュータでホストされるアプリケーションのオートプロビジョニング及びオートパブリケーション提供することによってこの課題に対処する。該オートプロビジョニングのプロセスは、アプリケーションの自動的なインストールを可能にする。アプリケーションは、サーバに格納される該アプリケーションのファイルパッケージをそれぞれ備えることができる。その後、これらのアプリケーションのパブリケーションが、自動的に実行される。このことは、リモートアプリケーションのプロビジョニング及びパブリケーションに関わるレイテンシを減らして、プロセスをより効率的にする。
【0009】
本明細書において説明される技術は、多くの異なる動作環境及び多くの異なるシステムにおいて利用することができる。様々な複数の実施例が後述される。様々な実施例を実施するのに適した例示的な環境が以下に検討される。
【0010】
リモートコンピュータ環境においてアプリケーションのリモートオートプロビジョニング及びリモートオートパブリケーションを実施する例示的なシステム及び例示的な方法が、パーソナルコンピュータなどのコンピュータデバイスによって実行されるコンピュータ実行可能命令(プログラムモジュール)の一般的なコンテキストにおいて説明される。プログラムモジュールは、通常、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含み、これらは、特定のタスクを実行するかまたは特定の抽象データ型を実施する。該システム及び該方法は前述のコンテキストで説明されるが、以下に説明される動作及びオペレーションは、ハードウェアまたは他の形式のコンピューティングプラットフォームで実施される。
【0011】
例示的なネットワークアーキテクチャ
図1は、アプリケーションのリモートオートプロビジョニング及びリモートオートパブリケーションを実施するための例示的なネットワークアーキテクチャ100を示す。この目的のために、ネットワークアーキテクチャ100はネットワーク102を含み、該ネットワーク102を介して、様々なクライアントデバイス104‐1、104‐2、・・・、104‐N(まとめてクライアントデバイス104と称する)は、リモートサーバ即ちサーバコンピュータ106と通信を行う。例えば、ネットワークアーキテクチャ100は、サーバコンピュータ106を含むことができ、該サーバコンピュータ106は、世界全域の多数のパーソナルコンピュータ(PC)、ウェブサーバ、及び他のコンピュータデバイスとインタラクションすることができる。あるいは、別の可能な実施例では、ネットワークアーキテクチャ100は、ローカルエリアネットワーク(LAN)もしくは広域ネットワーク(WAN)または他のあらゆるネットワークを介して単一のサーバと通信する限られた数のPCを含むことができる。また別の実施例では、ネットワークアーキテクチャ100は、サーバコンピュータ106に直接接続されている1つ又は複数のクライアントデバイス104を含むことができる。
【0012】
ネットワーク102は、ローカルエリアネットワーク(LAN)、広域ネットワーク、無線ネットワーク、光ネットワーク、都市規模ネットワーク(MAN)等を含むことができる。クライアントデバイス104は、汎用コンピュータデバイス、ラップトップ、モバイルコンピュータデバイスなどを含むことができる。
【0013】
サーバコンピュータ106は、クライアントデバイス104がアクセス可能ないくつかのリモートアプリケーションをホストすることができる。インフォメーションテクノロジ(IT)またはシステム管理者は、アプリケーションに付随するファイルの集まりをコピーして、コピーしたファイルをサーバ106の所定の場所に格納することができる。例えば、所定の場所は、フォルダ、ファイルシステムなどであってもよい。例として、ファイルの集まりは、それぞれのアプリケーションを適当にインストールするために必要になるかもしれない。かかるファイルの集まりの例は、アプリケーションビット、コンフィギュレーションファイルなどを含むが、これらに限定されない。ファイルの集まりは、例えばコンパクトディスク、フロッピディスク、他のコンピュータデバイスなどの外部ソースから得ることができる。1つの実施例では、ファイルの集まりは、ネットワーク102を介してサーバコンピュータ106に接続された外部記憶装置にある所定の場所に格納されてもよい。
【0014】
サーバコンピュータ106は、プログラムモジュール108を介してアプリケーションのリモートオートプロビジョニング及びリモートオートパブリケーションを実施することができる。プログラムモジュール108は、仮想コーディネータ110、プロビジョニングモジュール112、及びパブリッシングモジュール114を含むことができる。仮想コーディネータ110は、所定の場所を頻繁にモニタすることによって、いずれかのアプリケーションに付随するいずれかのファイルの集まりの存在を確認する。1つの実施例では、ファイルの集まりを確認すると、仮想コーディネータ110は、アプリケーションをインストールするためにサーバコンピュータ106にファイルの集まりをコピーする。プロビジョニングモジュール112は、ファイルの集まりを収集し、ファイルの集まりの中にあるコンフィギュレーションファイルに基づいて、サーバコンピュータ106にアプリケーションをインストールする。
【0015】
1つの実施例では、仮想コーディネータ110は、ファイルの集まりの存在を確認し、アプリケーションのインストール用の所定の場所からファイルの集まりを直接収集するようプロビジョニングモジュール112に命令することができる。
【0016】
仮想コーディネータ110は、また、アプリケーションをパブリッシュするのに必要なデータを構築することができる。例えば、データは、アプリケーションアイコン、アプリケーションパス、アプリケーション名、リモートデスクトッププロトコル(RDP)ファイル等を含むことができる。1つの実施例では、一旦データが構築されると、仮想コーディネータ110は、クライアントデバイス104を介してユーザがアクセスするウェブページにアプリケーションをパブリッシュするようパブリッシングモジュール114に命令することができる。パブリッシングモジュール114は、仮想コーディネータ110から受信したデータに基づいてウェブページにアプリケーションをパブリッシュする。1つの実施例では、アプリケーションは、システム管理者によって既にインクルードされたアプリケーションをインクルードしていてもよい既存のウェブページにパブリッシュすることができる。ウェブページは、特定のアプリケーションアイコンを用いてユーザにアプリケーションを示すことができるユーザインタフェースであってもよい。かかるウェブページは、クライアントデバイス104のうちの1つまたは複数からの要求をサーバ106で受信するのに応じて、ユーザに表示されてもよい。
【0017】
例示的なサーバの実施例
図2は、アプリケーションのリモートオートプロビジョニング及びリモートオートパブリケーションを実施するサーバコンピュータ106の例示的なアーキテクチャ及び機能コンポーネントを示す。サーバ106は、プロセッサ(または複数のプロセッサ)200、システムメモリ202、ネットワークインタフェース204、及びI/Oインタフェース206を含む。ネットワークインタフェース204は、ネットワーク102などの様々なネットワーク、並びに有線ネットワーク(例えば、LAN、ケーブル、その他)及び無線ネットワーク(例えば、WLAN、セルラー、衛星、その他)などの他のネットワークへの接続性を提供する。入力/出力インタフェース206は、サーバコンピュータ106のためにデータ入力機能及びデータ出力機能を提供する。入力/出力インタフェース206は、例えば、マウスポート、キーボードポート、その他を含むことができる。
【0018】
システムメモリ202は、プログラムモジュール108及びプログラムデータ208を格納する。プログラムモジュール108は、例えば、仮想コーディネータ110、プロビジョニングモジュール112、パブリッシングモジュール114、ランタイムモジュール210、制御管理モジュール212、及び他のモジュール214(例えば、オペレーティングシステム、即ち、ランタイム環境、複数のユーザの間のネットワーク化された通信などを提供するためのOS)を含む。
【0019】
仮想コーディネータ110は、いくつかの機能を提供することができる。いくつかの機能には、リモートコンピューティング(例えば、ターミナルサービス(Terminal Services(商標))環境に対する中央装置として動作すること、所定の場所をモニタすることによってファイルパッケージの確認を行なうこと、及び、ユーザに対するアプリケーションの自動的なプロビジョニング及び自動的なパブリケーションのプロセスを開始することを含む。
【0020】
前に述べたように、仮想コーディネータ110は、所定の場所におけるアプリケーションに関連するファイルの集まりの存在を確認するために用いられる。仮想コーディネータ110は、ランタイムモジュール210に対し、ファイルの集まりを収集して新規のファイルパッケージ216として該ファイルの集まりをサーバコンピュータ106に格納するよう命令することができる。仮想コーディネータ110は、プロビジョニングモジュール112をトリガし、クライアントデバイス104を介してユーザに対してローカルにアプリケーションをプロビジョニングする。
【0021】
1つの実施例では、仮想コーディネータ110は、プロビジョニングモジュール112に対して、新規のファイルパッケージ216を収集してアプリケーションをクライアントデバイス104にプロビジョニングするよう命令することができる。例えば、プロビジョニングモジュール112(即ち、マイクロソフト(登録商標)ソフトグリッド(SoftGrid)(商標)クライアント)は、仮想コーディネータ110によって、新規のファイルパッケージ216をコピーしてサーバ106にアプリケーションをインストールするように命令されてもよい。かかる場合には、新規のファイルパッケージ216は、マイクロソフト(登録商標)ソフトグリッド(SoftGrid)(商標)であってもよい。かかる場合には、プロビジョニングモジュール112は、マイクロソフト(登録商標)ソフトグリッド(SoftGrid)(商標)のアプリケーションランタイム環境を用いてアプリケーションをプロビジョニングすることができる。マイクロソフト(登録商標)ソフトグリッド(SoftGrid)(商標)のアプリケーションランタイム環境は、アプリケーションがサーバコンピュータ106からクライアントデバイス104にリアルタイムで配備されるようにするということも注意すべきである。
【0022】
一旦アプリケーションがユーザに利用できるようになると、仮想コーディネータ110は、パブリッシングモジュール114に対して、クライアントデバイス104などのユーザがアクセスするようにアプリケーションをパブリッシュするよう命令する。上記のように、パブリケーションモジュール114に対してアプリケーションをパブリッシュするよう命令する前に、仮想コーディネータ110は、アプリケーションについてのパブリケーションの要求を生成するのに必要なデータを構築することができる。
【0023】
制御管理モジュール212は、仮想コーディネータ110のオペレーションを制御する。例えば、制御管理モジュール212は、システム管理者から受信した要求に基づいて仮想コーディネータ110の実行を開始または終了することができる。制御管理モジュール212と仮想コーディネータ110との間のインタラクションは、図3を参照して下記に詳述される。
【0024】
1つの実施例では、パブリケーションのプロセスの間、パブリッシングモジュール114は、ユーザがアクセス可能なアプリケーションの既存のリストを新しく利用可能になったアプリケーションを用いて更新し、更新されたリスト218を生成する。更新されたリスト218に基づいて、パブリッシングモジュール114は、クライアントデバイス104を介してユーザに示すことができるアプリケーションパブリッシングウェブページ220を生成する。
【0025】
1つの実施例では、パブリッシングモジュール114は、更新されたリスト218をアプリケーションの既存のリストに追加することによって、アプリケーションパブリッシングウェブページ220をパブリッシュすることができる。別の実施例では、アプリケーションパブリッシングウェブページ220は、アプリケーションを用いて更新することができる既存のウェブページであってもよい。従って、ユーザからの要求に応じてサーバコンピュータ106は、アプリケーションパブリッシングウェブページ220を表示することができる。
【0026】
例示的なワークフロー図
図3は、アプリケーションのオートプロビジョニングおよびオートパブリケーションについての例示的なワークフローの図300を示す。ワークフロー300は、アプリケーションがパブリケーションされて、所定の場所にファイルの集まりを格納することからアプリケーションがパブリッシュされてユーザに利用可能になるステージまでのプロセスの段階的フローを示す。
【0027】
ワークフロー300は、仮想コーディネータ110を示し、仮想コーディネータ110は、所定の場所302を継続的にモニタして新規のアプリケーションに付随するファイルの存在を示すあらゆるファイルの到着を確認する(プロセス304)。ファイルは、システム管理者によって所定の場所302にコピーされてもよい。1つの実施例では、仮想コーディネータ110は、インストールされることになっているアプリケーションに付随するファイルを収集してコピーし、新規のファイルパッケージ216として、サーバコンピュータ106に該ファイルを保存するよう設定されていてもよい(即ち、プロセス306)。別の例では、新規のファイルパッケージ216は、サーバコンピュータ106が含むことができる永続記憶装置であってもよい。
【0028】
仮想コーディネータ110は、プロビジョニングモジュール112に対して、新規のファイルパッケージ216に格納されているファイルに基づいて、サーバ106でローカルに利用されるアプリケーションをプロビジョニングするかまたはインストールするよう命令することができる(即ち、プロセス308)。1つの実施例では、プロセス308の間、仮想コーディネータ110は、プロビジョニングモジュール112に対して、インストールされることになっているアプリケーションに付随するファイルを所定の場所302から収集するよう命令することができる。かかる命令を受信すると、プロビジョニングモジュール112は、インストールされることになっているアプリケーションのファイルを所定の場所302から収集する(即ち、プロセス310)。
【0029】
システム管理者は、制御管理モジュール212が仮想コーディネータ110のオペレーションを開始または終了するよう仮想コンフィギュレーションユーザインタフェース(UI)312を介して設定することができる(即ち、プロセス314及び316)。1つの実施例では、仮想コーディネータ110は、プロセス318で示すように、仮想コンフィギュレーションUI 312を介して直接システム管理者から受信した命令に基づいて動作することができる。
【0030】
プロセス320は、仮想コーディネータ110からパブリッシングモジュール114に対するウェブページにアプリケーションをパブリッシュせよという命令及びリモートユーザが利用できるようにせよという命令を示す。次に、パブリッシングモジュール114は、プロセス322の間、更新されたリスト218にアプリケーションを追加する。更新されたリスト218は、新規のアプリケーションで継続的に更新することができるアプリケーションの既存のリストであってもよいことも注意すべきである。1つの実施例では、更新されたリスト218は、クライアントデバイス104を介してユーザによって生成されるいずれかのアプリケーションの要求を認証するために用いることができる。更新されたリスト218は、インタラクション324の間、アプリケーションパブリッシングウェブページ220を介してユーザに表示することができる。
【0031】
例示的な方法
アプリケーションのリモートオートプロビジョニング及びリモートオートパブリケーションについての例示的なプロセスが、図1−3を参照して説明されている。該プロセスは、コンピュータ実行可能命令の一般的なコンテキストで説明することができる。通常、コンピュータ実行可能命令は、特定の機能を実行するかまたは特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、手順、モジュール、機能などを含むことができる。該プロセスはまた、通信ネットワークを介してリンクされるリモートの処理装置によって機能が実行される分散型コンピュータ環境において、実行されてもよい。分散型コンピュータ環境において、コンピュータ実行可能命令は、記憶装置デバイスを含む、ローカルのコンピュータ記憶媒体及びリモートのコンピュータ記憶媒体の両方に格納されてもよい。
【0032】
図4は、アプリケーションのリモートオートプロビジョニングについての例示的な方法400を示す。プロセス400は、論理フローグラフにおいてブロックの集まりとして示されており、ハードウェア、ソフトウェアまたはこれらの組合せで実施することができる一連のオペレーションを表す。ソフトウェアのコンテキストにおいて、該ブロックは、1つまたは複数のプロセッサによって実行されると、列挙したオペレーションを実行するコンピュータの命令を表している。
【0033】
方法が説明される順番は、限定として解釈されることを意図していないし、あらゆる説明された方法のブロックは、該方法または代替の方法を実施するためにいかなる順番で組み合わされてもよい。更に、個々のブロックは、本明細書において説明されている本発明の趣旨及び範囲から逸脱することなく、本方法から削除されてもよい。更に、本方法は、本発明の範囲から逸脱することなく、あらゆる適当なハードウェア、ソフトウェア、ファームウェアまたはこれらの組合せで実施することができる。
【0034】
ブロック402において、インストールされることになっているアプリケーションに付随するファイルの集まりが所定の場所に転送される。例えば、システム管理者は、サーバコンピュータ106に接続された外部ソースからアプリケーションに付随するファイルの集まりを収集して、所定の場所302にファイルの集まりをコピーする。
【0035】
ブロック404において、所定の場所においてアプリケーションに付随するファイルの到着が確認される。例えば、仮想コーディネータ110は、所定の場所302を周期的にモニタして、サーバコンピュータ106にインストールされることになっているアプリケーションに関係するファイルの集まりがあるかどうかを決定することができる。制御管理モジュール212は、システム管理者から受信した入力データに基づく命令を仮想コンフィギュレーションUI 312を介して送信することができる。入力データは、例えば仮想コーディネータ110のオペレーションを制御する命令であってもよい。
【0036】
ブロック406において、アプリケーションはローカルで利用するためにプレキャッシュされる。仮想コーディネータ110は、アプリケーションに付随するファイルの集まりを所定の場所302から収集して、該ファイルの集まりをサーバコンピュータ106に新規のファイルパッケージ216として格納することができる。1つの実施例では、仮想コーディネータ110は、プロビジョニングモジュール112に対してローカルで利用するために新規のファイルパッケージ216を収集するよう命令することができる。
【0037】
ブロック408において、アプリケーションはリモートクライアントデバイスに対してプロビジョニングされる。仮想コーディネータ110は、プロビジョニングモジュール112に対してアプリケーションをインストールするよう命令し、該アプリケーションをクライアントデバイス104などのユーザが利用できるようにする。1つの実施例では、プロビジョニングモジュール112はまた、システム管理者から受信した入力データに基づいて、アプリケーションのアクセスしやすさに付随する各ユーザ権限及びポリシ権限を設定するように構成されていてもよい。
【0038】
例えば、仮想コーディネータ110は、プロビジョニングモジュール112に対して、アプリケーションに一組のユーザがアクセス可能であるということを伝えることができる。かかる通信は、仮想コンフィギュレーションUI 312を介して仮想コーディネータ110に対してシステム管理者からもたらされてもよい。一旦かかる権限及びポリシがプロビジョニングモジュール112によって設定されると、アプリケーションはユーザのアクセスを受け入れる準備ができている。
【0039】
図5は、アプリケーションのリモートオートパブリケーションについての例示的な方法500を示す。ブロック502において、新規のアプリケーションについてのパブリケーションの要求を生成するために必要なデータが構築される。仮想コーディネータ110は、アクセス用の、例えばクライアントデバイス104などのユーザが利用可能なウェブページに新規のアプリケーションをパブリッシュするためのデータを生成することができる。前述のように、データは、例えば、アプリケーション名、アプリケーションパス、アプリケーションアイコン、及びRDPファイルを含むことができる。例えば、アプリケーションアイコンがパブリッシュされると、ユーザはアプリケーションアイコンを選択することによってアプリケーションにアクセスすることができる。
【0040】
ブロック504において、リモートユーザに対する新規のアプリケーションのパブリケーションの要求が生成される。例えば、仮想コーディネータ110は、パブリケーションのために必要なデータを収集して、パブリッシングモジュール114に対して収集されたデータに基づいて新規のアプリケーションをパブリッシュするよう命令することができる。更に、仮想コーディネータ110は、データをパブリッシングモジュール114に転送して、新規のアプリケーションのパブリケーションのための支持詳細を提供することができる。
【0041】
ブロック506において、パブリッシュされるアプリケーションのリストが決定される。例えば、パブリッシングモジュール114は、ユーザによってそのときアクセスされているアプリケーションを確認することができる。これらのアプリケーションに基づいて、パブリッシングモジュール114は、ウェブページなどに、アプリケーションのリストを生成することができる。1つの実施例では、パブリッシングモジュール114は、サーバコンピュータ106に既に存在しているアプリケーションのリストを確認して、添付リストとして新規のアプリケーションの詳細をパブリッシュすることができる。
【0042】
ブロック508において、アプリケーションのリストは新規のアプリケーションを用いて更新される。例えば、パブリッシングモジュール114は、新規のアプリケーションをアプリケーションのリストにインクルードしてアプリケーションの更新されたリスト218を生成することができる。
【0043】
ブロック510において、新規のアプリケーションは、ウェブページにパブリッシュされる。パブリッシングモジュール114は、更新されたリストに存在するアプリケーションとともに、ウェブページにアプリケーションをパブリッシュする。ウェブページは、ユーザが新規のアプリケーションを使用するためにアクセスすることができる。
【0044】
例示的なコンピュータ環境
図6は、例示的な一般コンピュータ環境600を示し、コンピュータ環境600は、本明細書において説明される技術を実施するために用いることができ、全体または一部において本明細書において説明されている要素を表わすことができる。コンピュータ環境600は、コンピュータ環境のほんの一例であって、コンピュータ及びネットワークアーキテクチャの使用の範囲または機能に関していかなる限定をも示唆することを意図していない。コンピュータ環境600は、例示的なコンピュータ環境600において示されたコンポーネントのいかなるコンポーネントまたはいかなる組合せに関して何らかの依存関係または必要条件を有していると解釈されてはならない。
【0045】
コンピュータ環境600は、コンピュータ602の形で汎用コンピュータベースのデバイスを含む。コンピュータ602は、例えば、デスクトップコンピュータ、ハンドヘルドコンピュータ、ノート型コンピュータまたはラップトップコンピュータ、サーバコンピュータ、ゲームコンソールなどであってもよい。コンピュータ602のコンポーネントは、1つまたは複数のプロセッサ即ち処理装置604、システムメモリ606、及びプロセッサ604を含む様々なシステムコンポーネントをシステムメモリ606に結合するシステムバス608を含むが、これらに限定されるものではない。
【0046】
システムバス608は、いくつかのタイプのバス構造の中のいずれかのバス構造のうちの1つまたは複数を表す。該バス構造は、メモリバスまたはメモリコントローラ、周辺機器用バス、アクセラレイテッドグラフィックスポート、及び様々なバスアーキテクチャのうちのいずれかを用いるプロセッサまたはローカルバスを含む。一例として、かかるアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、エンハンスドISA(EISA)バス、VESA(Video Electronics Standards Association)ローカルバス、及びメザニン(Mezzanine)バスとしても公知であるPCI(Peripheral Component Interconnects)バスを含むことができる。
【0047】
コンピュータ602は、通常様々なコンピュータ可読媒体を含む。かかる媒体は、コンピュータ602がアクセス可能なあらゆる利用可能な媒体であってもよく、揮発性及び不揮発性の媒体、着脱自在及び固定式の媒体のいずれも含む。
【0048】
システムメモリ606は、ランダムアクセスメモリ(RAM)610などの揮発性メモリ、及び/またはリードオンリメモリ(ROM)612などの不揮発性メモリの形でコンピュータ可読媒体を含む。スタートアップの間などに、コンピュータ602内のエレメント同士の間で情報を転送するのを助ける基本ルーチンを含む基本入出力システム(BIOS)614は、示されたROM612内に格納されている。RAM610は、通常、処理装置604がすぐにアクセスできかつ/または処理装置604でそのとき動作されているデータ及び/またはプログラムモジュールを含んでいる。
【0049】
コンピュータ602はまた、他の着脱自在/固定式の、揮発性/不揮発性のコンピュータ記憶媒体を含むことができる。一例として、図6は、固定式で不揮発性の磁気媒体(図示せず)から読み出しかつ書き込むためのハードディスクドライブ616を示す。更に、図6は、着脱自在で不揮発性の磁気ディスク620(例えば、「フロッピディスク」)から読み出しかつ書き込むための磁気ディスクドライブ618を示す。更に、図6は、例えばCD−ROM、DVD−ROMまたは他の光媒体などの着脱自在で不揮発性の光ディスク624から読み出しかつ書き込むための光ディスクドライブ622を示す。ハードディスクドライブ616、磁気ディスクドライブ618、及び光ディスクドライブ622は、1つまたは複数のデータ媒体インタフェース626によって、システムバス608に各々接続されている。あるいは、ハードディスクドライブ616、磁気ディスクドライブ618、及び光ディスクドライブ622は、1つまたは複数のインタフェース(図示せず)でシステムバス608に接続されていてもよい。
【0050】
ディスクドライブ及び該ディスクドライブに付随するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、及びコンピュータ602のための他のデータについての不揮発性記憶装置を提供する。この例はハードディスク616、着脱自在の磁気ディスク620、及び着脱自在の光ディスク624を示しているが、例えば磁気カセットまたは他の磁気記憶装置、フラッシュメモリカード、CD−ROM、デジタル多用途ディスク(DVD)もしくは他の光記憶装置、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、EEPROM(electrically erasable programmable read−only memory)などのコンピュータがアクセス可能なデータを格納することができる他のタイプのコンピュータ可読媒体も、例示的なコンピュータシステム及びコンピュータ環境を実施するために利用することができるということが認められなければならない。
【0051】
様々なプログラムモジュールは、ハードディスク616、磁気ディスク620、光ディスク624、ROM612、及び/またはRAM610に格納することができ、一例として、オペレーティングシステム626、1つまたは複数のアプリケーション628、他のプログラムモジュール630、及びプログラムデータ632を含む。かかるオペレーティングシステム626、1つまたは複数のアプリケーション628、他のプログラムモジュール630、及びプログラムデータ632(またはこれらのうちのいくつかの組み合わせ)の各々は、分散ファイルシステムをサポートする常駐コンポーネントのうちの全部または一部を実施することができる。
【0052】
ユーザは、キーボード634及びポインティングデバイス636(例えば「マウス」)などの入力装置を介してコンピュータ602に命令及び情報を入力することができる。他の入力装置638(具体的に図示せず)には、マイクロホン、ジョイスティック、ゲームパッド、衛星アンテナ、シリアルポート、スキャナ及び/または同様のものを含むことができる。これらの入力装置及び他の入力装置は、入力/出力インタフェース640を介して処理装置604に接続されている。これらは、システムバス608に結合されているが、例えばパラレルポート、ゲームポートまたは汎用シリアルバス(USB)などの他のインタフェース及びバス構造で接続されていてもよい。
【0053】
モニタ642または他のタイプのディスプレイデバイスも、ビデオアダプタ644などのインタフェースを介してシステムバス608に接続されていてもよい。モニタ642に加えて、他の出力周辺装置は、例えばスピーカ(図示せず)及びプリンタ646などのコンポーネントを含むことができる。該コンポーネントは、入力/出力インタフェース640を介してコンピュータ602に接続することができる。
【0054】
コンピュータ602は、例えばリモートコンピューティングベースのデバイス648などの1つまたは複数のリモートコンピュータへの論理接続を利用してネットワーク化された環境において動作することができる。一例として、リモートコンピューティングベースのデバイス648は、パーソナルコンピュータ、ポータブルコンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピアデバイス、または他の一般のネットワークノードなどであってもよい。リモートコンピューティングベースのデバイス648は、ポータブルコンピュータとして示されており、該ポータブルコンピュータは、コンピュータ602に関連して本明細書において説明されている要素及び特徴のうちの多くの要素及び特徴または全ての要素及び特徴を含むことができる。
【0055】
コンピュータ602とリモートコンピュータ648との間の論理接続は、ローカルエリアネットワーク(LAN)650及び一般的な広域ネットワーク(WAN)652として示されている。かかるネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、及びインターネットにおいて普通のことである。
【0056】
LANネットワーク環境において実施されると、コンピュータ602は、ネットワークインタフェースまたはアダプタ654を介してローカルネットワーク650に接続される。WANネットワーク環境において実施されると、コンピュータ602は通常、広域ネットワーク652を介して通信を確立するためのモデム656または他の手段を含む。コンピュータ602に内臓されていてもよいしまたは外付けされていてもよいモデム656は、入力/出力インタフェース640または他の適当なメカニズムを介してシステムバス608に接続することができる。示されたネットワーク接続は例示的であって、コンピュータ602とコンピュータ648との間の通信リンク(または複数の通信リンク)を確立する他の手段を採用することができると認められなければならない。
【0057】
コンピュータ環境600で示されているネットワーク化された環境などのネットワーク化された環境において、コンピュータ602と関連して示されたプログラムモジュールまたは該プログラムモジュールの一部は、リモートの記憶装置デバイスに格納することができる。一例として、リモートアプリケーション658は、リモートコンピュータ648の記憶装置デバイスに存在する。説明のために、アプリケーション及びオペレーティングシステムなどの他の実行可能なプログラムコンポーネントは、本明細書において離散的なブロックとして示されている。但し、かかるプログラム及びコンポーネントは、コンピュータベースのデバイス602の異なる記憶コンポーネントに様々な時点で存在して、コンピュータのデータプロセッサ(または複数のデータプロセッサ)によって実行されると認められる。
【0058】
様々なモジュール及び技術は、本明細書において1つまたは複数のコンピュータまたは他のデバイスによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的なコンテキストで説明することができる。通常、プログラムモジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含み、それらは、特定のタスクを実行するかまたは特定の抽象データ型を実施する。通常、プログラムモジュールの機能は、様々な実施形態において所望されるように結合されてもよいしまたは分散されてもよい。
【0059】
これらのモジュール及び技術の実施例は、ある種のコンピュータ可読媒体に格納されてもよいしまたは送信されてもよい。コンピュータ可読媒体は、コンピュータがアクセスすることができるいかなる利用可能な媒体であってもよい。一例であって限定ではないが、コンピュータ可読媒体は、「コンピュータ記憶媒体」及び「通信媒体」を含むことができる。
【0060】
「コンピュータ記憶媒体」は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するためのいかなる方法または技術で実施される揮発性及び不揮発性、着脱自在及び固定式の媒体を含む。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ、もしくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)、もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくは他の磁気記憶デバイス、または所望の情報を格納するために用いることができかつコンピュータがアクセスすることができるあらゆる他の媒体を含むが、これらに限定されるものではない。
【0061】
あるいは、フレームワークの一部は、ハードウェアまたは、ハードウェア、ソフトウェア及び/もしくはファームウェアの組合せで実施することができる。例えば、1つまたは複数の特定用途向け集積回路(複数のASIC)または複数のプログラム可能論理回路(複数のPLD)は、フレームワークの1つの部分または複数の部分を実施するようデザインされてもよいしまたはプログラムされてもよい。
【0062】
結論
アプリケーションのリモートオートプロビジョニング及びリモートオートパブリケーションを実施する実施形態は、構造上の特徴及び/または方法に特有の言語で説明されてきたが、添付の請求の範囲の主題は説明された特定の特徴または方法に必ずしも限定されないということが理解されなければならない。むしろ、特定の特徴及び方法は、アプリケーションのリモートオートプロビジョニング及びリモートオートパブリケーションを提供する例示的な実施例として開示されている。

【特許請求の範囲】
【請求項1】
サーバコンピュータ(106)であって、
1つまたは複数のプロセッサ(200)と、
前記プロセッサに対して設定されたメモリ(210)と、
アプリケーションに関係するファイルの集まりを確認する前記メモリ内の仮想コーディネータ(110)と、
前記サーバに前記ファイルの集まりをインストールするよう前記仮想コーディネータから命令を与えられる前記メモリ内のプロビジョニングモジュールと、
を含むことを特徴とするサーバコンピュータ。
【請求項2】
前記仮想コーディネータは、以下のことのうちの1つまたは複数を実行し、
前記以下のことは、
前記ファイルの集まりの場所を確認することと、リモートユーザに対して前記アプリケーションのプロビジョニングを開始することと、前記リモートユーザに対して前記アプリケーションのパブリケーションを開始することと、
であることを特徴とする請求項1記載のサーバコンピュータ。
【請求項3】
前記プロビジョニングモジュールは、リモートユーザが利用するために前記ファイルの集まりをインストールすることを特徴とする請求項1記載のサーバコンピュータ。
【請求項4】
前記サーバコンピュータは、以下のもののうちの1つまたは複数を更に含み、
前記以下のものは、
前記アプリケーションがユーザに利用可能であることをパブリッシュするパブリッシングモジュールと、前記ファイルの集まりを収集して新規のファイルパッケージとして前記サーバコンピュータに該ファイルの集まりを格納するよう前記仮想コーディネータから命令されるランタイムモジュールと、前記仮想コーディネータのオペレーションを制御する制御管理モジュールと、
であることを特徴とする請求項1記載のサーバコンピュータ。
【請求項5】
前記パブリッシングモジュールは、ユーザが利用可能な他のアプリケーションのリストに前記アプリケーションを追加することを特徴とする請求項5記載のサーバコンピュータ。
【請求項6】
アプリケーションに付随するファイルの到着を確認するステップ(404)と、
リモートユーザがローカルに利用するために前記アプリケーションをプレキャッシュするステップ(406)と、
前記リモートユーザが利用するリモートデバイスに対して前記アプリケーションをプロビジョニングするステップ(408)と、
を含むことを特徴とする方法(400)。
【請求項7】
前記確認するステップは、所定の場所を周期的にモニタすることによって行なわれることを特徴とする請求項6記載の方法。
【請求項8】
前記プレキャッシュするステップは、前記アプリケーションに付随するファイルの集まりを収集するステップと、新規のファイルパッケージとして前記ファイルを格納するステップと、を含むことを特徴とする請求項6記載の方法。
【請求項9】
前記プロビジョニングするステップは、以下のステップのうちの1つまたは複数を含み、
前記以下のステップは、
前記ユーザがアクセス可能なリモートサーバに前記アプリケーションをインストールするステップと、前記アプリケーションに付随するファイルを所定の場所に転送するステップと、を含み、
前記確認するステップは、前記所定の場所にあるファイルを確認するステップを含むことを特徴とする請求項6記載の方法。
【請求項10】
前記プロビジョニングするステップは、前記アプリケーションに付随するユーザ権限及びユーザポリシを設定するステップを含むことを特徴とする請求項6記載の方法。
【請求項11】
アプリケーションについてのパブリケーションの要求を生成するデータを構築するステップ(502)と、
リモートユーザに対して、前記データに基づいて前記パブリケーションの要求を生成するステップ(504)と、
前記リモートユーザが利用可能な既存のアプリケーションのリストを決定するステップ(506)と、
前記アプリケーションを用いて前記アプリケーションのリストを更新するステップ(508)と、
前記アプリケーションの更新されたリストをパブリッシュするステップ(510)と、
を含むことを特徴とする方法(500)。
【請求項12】
前記データを構築するステップは、以下のデータのうちの1つまたは複数のデータを含み、前記以下のデータは、
アプリケーション名、アプリケーションパス、アプリケーションアイコン、及びRDPファイルであることを特徴とする請求項11記載の方法。
【請求項13】
前記生成するステップは、パブリッシングのために前記データを収集するステップと、前記データに基づいて前記アプリケーションをパブリッシュするステップと、を含むことを特徴とする請求項11記載の方法。
【請求項14】
前記決定するステップは、既に存在しているアプリケーションを確認するステップと、前記リストにあらゆる新規のアプリケーションを追加するステップと、を含むことを特徴とする請求項11記載の方法。
【請求項15】
前記パブリッシュするステップは、ウェブページに対して行われ、前記ユーザは前記ウェブページにアクセスして前記アプリケーションを用いることを特徴とする請求項11記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公表番号】特表2011−501853(P2011−501853A)
【公表日】平成23年1月13日(2011.1.13)
【国際特許分類】
【出願番号】特願2010−530029(P2010−530029)
【出願日】平成20年10月9日(2008.10.9)
【国際出願番号】PCT/US2008/079280
【国際公開番号】WO2009/052003
【国際公開日】平成21年4月23日(2009.4.23)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】