(57)【特許請求の範囲】
【請求項１】
サーバコンピュータであって、
１つまたは複数のプロセッサと、
前記プロセッサと接続されたメモリと、
前記サーバコンピュータにインストールされ、かつ前記サーバコンピュータ以外のリモートクライアント装置に対して配信し提供するためのアプリケーションに関連付けられるファイルの集まりを受信するように構成された、前記メモリ内の所定の場所と、
前記所定の場所を監視し、前記所定の場所における前記ファイルの集まりの存在を確認し、前記存在の確認に応答して前記ファイルの集まりを収集し、かつ前記アプリケーションを前記サーバコンピュータにインストールするための命令をプロビジョニングモジュールに送信するように構成された、前記メモリ内に格納された仮想コーディネータと、
前記仮想コーディネータからの命令を受信したことに応答して、前記所定の場所から前記ファイルの集まりを収集し、かつ前記アプリケーションを前記サーバコンピュータにインストールするように構成された、前記メモリ内に格納された前記プロビジョニングモジュールと、
前記リモートクライアント装置を介してリモートユーザによって生成されるアプリケーションアクセス要求を認証するための更新されたリストを生成するよう前記リモートユーザが利用可能な他のアプリケーションのリストに前記アプリケーションを追加し、前記更新されたリストに基づき、前記アプリケーションが前記リモートユーザに利用可能であることをパブリッシュするように構成されたパブリッシングモジュールと
を備えたことを特徴とするサーバコンピュータ。
【請求項２】
前記仮想コーディネータは、前記リモートユーザの前記リモートクライアント装置に対して前記アプリケーションのプロビジョニングを開始し、前記リモートユーザの前記リモートクライアント装置に対して前記アプリケーションのパブリケーションを開始するようにさらに構成されることを特徴とする請求項１記載のサーバコンピュータ。
【請求項３】
前記プロビジョニングモジュールは、前記リモートユーザが前記アプリケーションを利用するために前記アプリケーションをインストールするようにさらに構成されたことを特徴とする請求項１記載のサーバコンピュータ。
【請求項４】
前記ファイルの集まりを収集して新規のファイルパッケージとして前記サーバコンピュータに前記ファイルの集まりを格納するよう前記仮想コーディネータから命令されるように構成されたランタイムモジュールと、前記仮想コーディネータのオペレーションを制御するように構成された制御管理モジュールとのうちの１つまたは複数をさらに備えたことを特徴とする請求項１記載のサーバコンピュータ。
【請求項５】
サーバコンピュータ上の１つまたは複数の処理装置が、前記サーバコンピュータに関連付けられる所定の場所において、アプリケーションに関連付けられるファイルの到着を確認するステップであって、前記所定の場所は、前記サーバコンピュータにインストールされ、前記サーバコンピュータ以外のリモートクライアント装置に対して配信し提供するためのアプリケーションに関連付けられるファイルの集まりを受信するように構成される、確認するステップと、
前記処理装置が、リモートユーザがローカルに利用するために前記アプリケーションを前記サーバコンピュータにプレキャッシュするステップと、
前記処理装置が、前記リモートユーザがアクセス可能なリモートクライアント装置に対して前記アプリケーションをプロビジョニングするステップと、
前記処理装置が、前記リモートクライアント装置を介して前記リモートユーザによって生成されるアプリケーションアクセス要求を認証するための更新されたリストを生成するよう前記リモートユーザが利用可能な他のアプリケーションのリストに前記アプリケーションを追加し、前記更新されたリストに基づき、前記アプリケーションが前記リモートユーザに利用可能であることをパブリッシュするステップと
を備えたことを特徴とするコンピュータ実行方法。
【請求項６】
前記確認するステップは、前記所定の場所を定期的にモニタするステップを含むことを特徴とする請求項５記載のコンピュータ実行方法。
【請求項７】
前記プレキャッシュするステップは、前記アプリケーションに関連付けられる前記ファイルの集まりを収集するステップと、新規のファイルパッケージとして前記ファイルの集まりを前記サーバコンピュータに格納するステップとを含むことを特徴とする請求項５記載のコンピュータ実行方法。
【請求項８】
前記プロビジョニングするステップは、前記リモートユーザがアクセス可能なリモートサーバに前記アプリケーションをインストールするステップと、前記アプリケーションに関連付けられるファイルの集まりを前記サーバコンピュータの外部にある記憶装置から前記所定の場所に転送するステップとのうちの少なくとも１つを含むことを特徴とする請求項５記載のコンピュータ実行方法。
【請求項９】
前記プロビジョニングするステップは、前記アプリケーションに関連付けられるユーザ権限及びユーザポリシを設定するステップを含むことを特徴とする請求項５記載のコンピュータ実行方法。
【請求項１０】
サーバコンピュータ上の１つまたは複数の処理装置が、前記サーバコンピュータに関連付けられる所定の場所において、アプリケーションに関連付けられるファイルの集まりの存在を確認するステップであって、前記所定の場所は、前記サーバコンピュータにインストールされるための前記ファイルの集まりを受信するように構成される、確認するステップと、
前記処理装置が、前記アプリケーションについてのパブリケーションの要求を生成するためのデータを構築するステップと、
前記処理装置が、リモートユーザのために、前記データに基づいて前記パブリケーションの要求を生成するステップと、
前記処理装置が、前記リモートユーザが利用可能な既存のアプリケーションのリストを決定するステップと、
前記処理装置が、前記アプリケーションを用いて前記既存のアプリケーションのリストを更新し、前記サーバコンピュータ以外のリモートクライアント装置を介して前記リモートユーザによって生成されるアプリケーションアクセス要求を認証するための更新されたリストを生成するステップと、
前記処理装置が、前記更新されたリストに基づき、前記アプリケーションが前記リモートユーザに利用可能であることをパブリッシュするステップと
を備えたことを特徴とするコンピュータ実行方法。
【請求項１１】
前記構築されるデータは、アプリケーション名、アプリケーションパス、アプリケーションアイコン、及びＲＤＰファイルのうちの１つまたは複数のデータを含むことを特徴とする請求項１０記載のコンピュータ実行方法。
【請求項１２】
前記生成するステップは、パブリッシングのために前記データを収集するステップと、前記データに基づいて前記アプリケーションをパブリッシュするステップと、を含むことを特徴とする請求項１０記載のコンピュータ実行方法。
【請求項１３】
前記決定するステップは、以前から存在するアプリケーションを確認するステップと、前記既存のアプリケーションのリストに任意の新しいアプリケーションを追加するステップとを含むことを特徴とする請求項１０記載のコンピュータ実行方法。
【請求項１４】
前記リモートユーザにウェブページを介して前記更新されたリストを表示することができるように、前記パブリッシュするステップは前記ウェブページに対して行われることを特徴とする請求項１０記載のコンピュータ実行方法。
【発明の詳細な説明】
【背景技術】
【０００１】
本件特許出願人によるターミナルサービス（Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｉｃｅｓ）（商標）などのリモートコンピュータシステムは、サーバコンピュータでホストされているリモートアプリケーションに複数のユーザがアクセスできるようにする。提供されるサービスはまた、様々な認証システムを含んでおり、これによって権限のないユーザがアプリケーションにアクセスするのを防ぐことができる。
【０００２】
かかるリモートコンピュータシステム環境において、システム管理者はサーバコンピュータにアプリケーションをロードすることができる。その後、様々なポリシの定義及びセキュリティの管理の一環として、システム管理者は１人または複数のユーザに対してポリシを設定することができる。かかるポリシは、ユーザがサーバコンピュータで実行することができるアプリケーションの数またはオペレーションの種類の数をどの程度認めるかまたは制限するかを決めることができる。例えば、システム管理者は、特定のグループのユーザに対して特定のアプリケーションの利用を制限することができる。その後、システム管理者はまた、該ポリシに基づいて、ユーザがアクセス可能なアプリケーションのリストをウェブページにパブリッシュすることができる。次に、ユーザは、アプリケーションがパブリッシュされているウェブページから直接関係のあるアプリケーションにアクセスすることができる。
【０００３】
プロビジョニングのプロセスが完了すると、システム管理者は、１人または複数のユーザに対してアプリケーションへのアクセスに関連するポリシを設定することができる。ポリシは、例えば、いくつかのアプリケーションについて特定のユーザに読み出し権限／書き込み権限を割り当てることを含むことができる。システム管理者は、１つまたは複数のウェブページを介して各ユーザに対してアプリケーションのリストをパブリッシュすることができる。ウェブページは、ユーザのためのユーザインタフェースの役割を果たし、ユーザがアプリケーションにアクセスすることができるアプリケーションアイコンを含んでいる。サーバにアプリケーションをロードして、ユーザが使えるようにこれらのアプリケーションをパブリッシュするプロセスは、時間がかかりかつ退屈である。従って、アプリケーションがサーバコンピュータに格納されて、ユーザが利用するためにパブリッシュされる方法を改善する必要がある。
【発明の概要】
【０００４】
この概要は、アプリケーションのリモートオートプロビジョニング及びリモートオートパブリケーションに関する概念を導入するために提供される。これらの概念は、詳細な説明で更に後述される。本概要は、請求された本発明の基本的特徴を識別することを意図していないし、請求された本発明の範囲を決定する際に用いられることを意図していない。
【０００５】
１つの実施例では、フォルダ即ちファイルシステムにおいてアプリケーションパッケージが確認され、即ち見出されて、アプリケーションランタイムコンポーネント即ち仮想コーディネータ（virtualization coordinator）を用いて調整が行われ、リモートアプリケーションプロビジョニングコンポーネント即ちプロビジョニングモジュールはアプリケーションをユーザが利用できるようにする。
【０００６】
詳細な説明は、添付の図面を参照して説明される。該図面において、参照番号の最も左の数字（または複数の数字）は、該参照番号が最初に現れる図を識別する。同じ番号を、類似の特徴及びコンポーネントを参照するために、図面全体にわたって用いている。
【図面の簡単な説明】
【０００７】
【図１】アプリケーションのリモートオートプロビジョニング及びリモートオートパブリケーションのための例示的なネットワークアーキテクチャを示すブロック図である。
【図２】アプリケーションのリモートオートプロビジョニング及びリモートオートパブリケーションを実施するサーバコンピュータを示すブロック図である。
【図３】アプリケーションのリモートオートプロビジョニング及びリモートオートパブリケーションのための例示的なワークフローを示すフローチャートである。
【図４】アプリケーションのリモートオートプロビジョニングを実施する例示的なプロセスを示すフローチャートである。
【図５】アプリケーションのリモートオートパブリケーションを実施する例示的なプロセスを示すフローチャートである。
【図６】例示的なコンピュータ環境を示すブロック図である。
【発明を実施するための形態】
【０００８】
本開示は、本件特許出願人によるターミナルサービス（Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｉｃｅｓ）（商標）などのリモートコンピュータ環境において、アプリケーションのリモートオートプロビジョニング及びリモートオートパブリケーションを実施する技術を対象とする。特に、本開示は、リモートコンピュータ環境において、ユーザに対してリモートアプリケーションのより速いプロビジョニング及びより速いパブリケーションを提供することを対象としている。本技術は、本明細書において、リモートのサーバコンピュータまたはターミナルサーバコンピュータでホストされるアプリケーションのオートプロビジョニング及びオートパブリケーション提供することによってこの課題に対処する。該オートプロビジョニングのプロセスは、アプリケーションの自動的なインストールを可能にする。アプリケーションは、サーバに格納される該アプリケーションのファイルパッケージをそれぞれ備えることができる。その後、これらのアプリケーションのパブリケーションが、自動的に実行される。このことは、リモートアプリケーションのプロビジョニング及びパブリケーションに関わるレイテンシを減らして、プロセスをより効率的にする。
【０００９】
本明細書において説明される技術は、多くの異なる動作環境及び多くの異なるシステムにおいて利用することができる。様々な複数の実施例が後述される。様々な実施例を実施するのに適した例示的な環境が以下に検討される。
【００１０】
リモートコンピュータ環境においてアプリケーションのリモートオートプロビジョニング及びリモートオートパブリケーションを実施する例示的なシステム及び例示的な方法が、パーソナルコンピュータなどのコンピュータデバイスによって実行されるコンピュータ実行可能命令（プログラムモジュール）の一般的なコンテキストにおいて説明される。プログラムモジュールは、通常、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含み、これらは、特定のタスクを実行するかまたは特定の抽象データ型を実施する。該システム及び該方法は前述のコンテキストで説明されるが、以下に説明される動作及びオペレーションは、ハードウェアまたは他の形式のコンピューティングプラットフォームで実施される。
【００１１】
例示的なネットワークアーキテクチャ
図１は、アプリケーションのリモートオートプロビジョニング及びリモートオートパブリケーションを実施するための例示的なネットワークアーキテクチャ１００を示す。この目的のために、ネットワークアーキテクチャ１００はネットワーク１０２を含み、該ネットワーク１０２を介して、様々なクライアントデバイス１０４‐１、１０４‐２、・・・、１０４‐Ｎ（まとめてクライアントデバイス１０４と称する）は、リモートサーバ即ちサーバコンピュータ１０６と通信を行う。例えば、ネットワークアーキテクチャ１００は、サーバコンピュータ１０６を含むことができ、該サーバコンピュータ１０６は、世界全域の多数のパーソナルコンピュータ（ＰＣ）、ウェブサーバ、及び他のコンピュータデバイスとインタラクションすることができる。あるいは、別の可能な実施例では、ネットワークアーキテクチャ１００は、ローカルエリアネットワーク（ＬＡＮ）もしくは広域ネットワーク（ＷＡＮ）または他のあらゆるネットワークを介して単一のサーバと通信する限られた数のＰＣを含むことができる。また別の実施例では、ネットワークアーキテクチャ１００は、サーバコンピュータ１０６に直接接続されている１つ又は複数のクライアントデバイス１０４を含むことができる。
【００１２】
ネットワーク１０２は、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク、無線ネットワーク、光ネットワーク、都市規模ネットワーク（ＭＡＮ）等を含むことができる。クライアントデバイス１０４は、汎用コンピュータデバイス、ラップトップ、モバイルコンピュータデバイスなどを含むことができる。
【００１３】
サーバコンピュータ１０６は、クライアントデバイス１０４がアクセス可能ないくつかのリモートアプリケーションをホストすることができる。インフォメーションテクノロジ（ＩＴ）またはシステム管理者は、アプリケーションに付随するファイルの集まりをコピーして、コピーしたファイルをサーバ１０６の所定の場所に格納することができる。例えば、所定の場所は、フォルダ、ファイルシステムなどであってもよい。例として、ファイルの集まりは、それぞれのアプリケーションを適当にインストールするために必要になるかもしれない。かかるファイルの集まりの例は、アプリケーションビット、コンフィギュレーションファイルなどを含むが、これらに限定されない。ファイルの集まりは、例えばコンパクトディスク、フロッピディスク、他のコンピュータデバイスなどの外部ソースから得ることができる。１つの実施例では、ファイルの集まりは、ネットワーク１０２を介してサーバコンピュータ１０６に接続された外部記憶装置にある所定の場所に格納されてもよい。
【００１４】
サーバコンピュータ１０６は、プログラムモジュール１０８を介してアプリケーションのリモートオートプロビジョニング及びリモートオートパブリケーションを実施することができる。プログラムモジュール１０８は、仮想コーディネータ１１０、プロビジョニングモジュール１１２、及びパブリッシングモジュール１１４を含むことができる。仮想コーディネータ１１０は、所定の場所を頻繁にモニタすることによって、いずれかのアプリケーションに付随するいずれかのファイルの集まりの存在を確認する。１つの実施例では、ファイルの集まりを確認すると、仮想コーディネータ１１０は、アプリケーションをインストールするためにサーバコンピュータ１０６にファイルの集まりをコピーする。プロビジョニングモジュール１１２は、ファイルの集まりを収集し、ファイルの集まりの中にあるコンフィギュレーションファイルに基づいて、サーバコンピュータ１０６にアプリケーションをインストールする。
【００１５】
１つの実施例では、仮想コーディネータ１１０は、ファイルの集まりの存在を確認し、アプリケーションのインストール用の所定の場所からファイルの集まりを直接収集するようプロビジョニングモジュール１１２に命令することができる。
【００１６】
仮想コーディネータ１１０は、また、アプリケーションをパブリッシュするのに必要なデータを構築することができる。例えば、データは、アプリケーションアイコン、アプリケーションパス、アプリケーション名、リモートデスクトッププロトコル（ＲＤＰ）ファイル等を含むことができる。１つの実施例では、一旦データが構築されると、仮想コーディネータ１１０は、クライアントデバイス１０４を介してユーザがアクセスするウェブページにアプリケーションをパブリッシュするようパブリッシングモジュール１１４に命令することができる。パブリッシングモジュール１１４は、仮想コーディネータ１１０から受信したデータに基づいてウェブページにアプリケーションをパブリッシュする。１つの実施例では、アプリケーションは、システム管理者によって既にインクルードされたアプリケーションをインクルードしていてもよい既存のウェブページにパブリッシュすることができる。ウェブページは、特定のアプリケーションアイコンを用いてユーザにアプリケーションを示すことができるユーザインタフェースであってもよい。かかるウェブページは、クライアントデバイス１０４のうちの１つまたは複数からの要求をサーバ１０６で受信するのに応じて、ユーザに表示されてもよい。
【００１７】
例示的なサーバの実施例
図２は、アプリケーションのリモートオートプロビジョニング及びリモートオートパブリケーションを実施するサーバコンピュータ１０６の例示的なアーキテクチャ及び機能コンポーネントを示す。サーバ１０６は、プロセッサ（または複数のプロセッサ）２００、システムメモリ２０２、ネットワークインタフェース２０４、及びＩ／Ｏインタフェース２０６を含む。ネットワークインタフェース２０４は、ネットワーク１０２などの様々なネットワーク、並びに有線ネットワーク（例えば、ＬＡＮ、ケーブル、その他）及び無線ネットワーク（例えば、ＷＬＡＮ、セルラー、衛星、その他）などの他のネットワークへの接続性を提供する。入力／出力インタフェース２０６は、サーバコンピュータ１０６のためにデータ入力機能及びデータ出力機能を提供する。入力／出力インタフェース２０６は、例えば、マウスポート、キーボードポート、その他を含むことができる。
【００１８】
システムメモリ２０２は、プログラムモジュール１０８及びプログラムデータ２０８を格納する。プログラムモジュール１０８は、例えば、仮想コーディネータ１１０、プロビジョニングモジュール１１２、パブリッシングモジュール１１４、ランタイムモジュール２１０、制御管理モジュール２１２、及び他のモジュール２１４（例えば、オペレーティングシステム、即ち、ランタイム環境、複数のユーザの間のネットワーク化された通信などを提供するためのＯＳ）を含む。
【００１９】
仮想コーディネータ１１０は、いくつかの機能を提供することができる。いくつかの機能には、リモートコンピューティング（例えば、ターミナルサービス（Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｉｃｅｓ（商標））環境に対する中央装置として動作すること、所定の場所をモニタすることによってファイルパッケージの確認を行なうこと、及び、ユーザに対するアプリケーションの自動的なプロビジョニング及び自動的なパブリケーションのプロセスを開始することを含む。
【００２０】
前に述べたように、仮想コーディネータ１１０は、所定の場所におけるアプリケーションに関連するファイルの集まりの存在を確認するために用いられる。仮想コーディネータ１１０は、ランタイムモジュール２１０に対し、ファイルの集まりを収集して新規のファイルパッケージ２１６として該ファイルの集まりをサーバコンピュータ１０６に格納するよう命令することができる。仮想コーディネータ１１０は、プロビジョニングモジュール１１２をトリガし、クライアントデバイス１０４を介してユーザに対してローカルにアプリケーションをプロビジョニングする。
【００２１】
１つの実施例では、仮想コーディネータ１１０は、プロビジョニングモジュール１１２に対して、新規のファイルパッケージ２１６を収集してアプリケーションをクライアントデバイス１０４にプロビジョニングするよう命令することができる。例えば、プロビジョニングモジュール１１２（即ち、マイクロソフト（登録商標）ソフトグリッド（ＳｏｆｔＧｒｉｄ）（商標）クライアント）は、仮想コーディネータ１１０によって、新規のファイルパッケージ２１６をコピーしてサーバ１０６にアプリケーションをインストールするように命令されてもよい。かかる場合には、新規のファイルパッケージ２１６は、マイクロソフト（登録商標）ソフトグリッド（ＳｏｆｔＧｒｉｄ）（商標）であってもよい。かかる場合には、プロビジョニングモジュール１１２は、マイクロソフト（登録商標）ソフトグリッド（ＳｏｆｔＧｒｉｄ）（商標）のアプリケーションランタイム環境を用いてアプリケーションをプロビジョニングすることができる。マイクロソフト（登録商標）ソフトグリッド（ＳｏｆｔＧｒｉｄ）（商標）のアプリケーションランタイム環境は、アプリケーションがサーバコンピュータ１０６からクライアントデバイス１０４にリアルタイムで配備されるようにするということも注意すべきである。
【００２２】
一旦アプリケーションがユーザに利用できるようになると、仮想コーディネータ１１０は、パブリッシングモジュール１１４に対して、クライアントデバイス１０４などのユーザがアクセスするようにアプリケーションをパブリッシュするよう命令する。上記のように、パブリケーションモジュール１１４に対してアプリケーションをパブリッシュするよう命令する前に、仮想コーディネータ１１０は、アプリケーションについてのパブリケーションの要求を生成するのに必要なデータを構築することができる。
【００２３】
制御管理モジュール２１２は、仮想コーディネータ１１０のオペレーションを制御する。例えば、制御管理モジュール２１２は、システム管理者から受信した要求に基づいて仮想コーディネータ１１０の実行を開始または終了することができる。制御管理モジュール２１２と仮想コーディネータ１１０との間のインタラクションは、図３を参照して下記に詳述される。
【００２４】
１つの実施例では、パブリケーションのプロセスの間、パブリッシングモジュール１１４は、ユーザがアクセス可能なアプリケーションの既存のリストを新しく利用可能になったアプリケーションを用いて更新し、更新されたリスト２１８を生成する。更新されたリスト２１８に基づいて、パブリッシングモジュール１１４は、クライアントデバイス１０４を介してユーザに示すことができるアプリケーションパブリッシングウェブページ２２０を生成する。
【００２５】
１つの実施例では、パブリッシングモジュール１１４は、更新されたリスト２１８をアプリケーションの既存のリストに追加することによって、アプリケーションパブリッシングウェブページ２２０をパブリッシュすることができる。別の実施例では、アプリケーションパブリッシングウェブページ２２０は、アプリケーションを用いて更新することができる既存のウェブページであってもよい。従って、ユーザからの要求に応じてサーバコンピュータ１０６は、アプリケーションパブリッシングウェブページ２２０を表示することができる。
【００２６】
例示的なワークフロー図
図３は、アプリケーションのオートプロビジョニングおよびオートパブリケーションについての例示的なワークフローの図３００を示す。ワークフロー３００は、アプリケーションがパブリケーションされて、所定の場所にファイルの集まりを格納することからアプリケーションがパブリッシュされてユーザに利用可能になるステージまでのプロセスの段階的フローを示す。
【００２７】
ワークフロー３００は、仮想コーディネータ１１０を示し、仮想コーディネータ１１０は、所定の場所３０２を継続的にモニタして新規のアプリケーションに付随するファイルの存在を示すあらゆるファイルの到着を確認する（プロセス３０４）。ファイルは、システム管理者によって所定の場所３０２にコピーされてもよい。１つの実施例では、仮想コーディネータ１１０は、インストールされることになっているアプリケーションに付随するファイルを収集してコピーし、新規のファイルパッケージ２１６として、サーバコンピュータ１０６に該ファイルを保存するよう設定されていてもよい（即ち、プロセス３０６）。別の例では、新規のファイルパッケージ２１６は、サーバコンピュータ１０６が含むことができる永続記憶装置であってもよい。
【００２８】
仮想コーディネータ１１０は、プロビジョニングモジュール１１２に対して、新規のファイルパッケージ２１６に格納されているファイルに基づいて、サーバ１０６でローカルに利用されるアプリケーションをプロビジョニングするかまたはインストールするよう命令することができる（即ち、プロセス３０８）。１つの実施例では、プロセス３０８の間、仮想コーディネータ１１０は、プロビジョニングモジュール１１２に対して、インストールされることになっているアプリケーションに付随するファイルを所定の場所３０２から収集するよう命令することができる。かかる命令を受信すると、プロビジョニングモジュール１１２は、インストールされることになっているアプリケーションのファイルを所定の場所３０２から収集する（即ち、プロセス３１０）。
【００２９】
システム管理者は、制御管理モジュール２１２が仮想コーディネータ１１０のオペレーションを開始または終了するよう仮想コンフィギュレーションユーザインタフェース（ＵＩ）３１２を介して設定することができる（即ち、プロセス３１４及び３１６）。１つの実施例では、仮想コーディネータ１１０は、プロセス３１８で示すように、仮想コンフィギュレーションＵＩ  ３１２を介して直接システム管理者から受信した命令に基づいて動作することができる。
【００３０】
プロセス３２０は、仮想コーディネータ１１０からパブリッシングモジュール１１４に対するウェブページにアプリケーションをパブリッシュせよという命令及びリモートユーザが利用できるようにせよという命令を示す。次に、パブリッシングモジュール１１４は、プロセス３２２の間、更新されたリスト２１８にアプリケーションを追加する。更新されたリスト２１８は、新規のアプリケーションで継続的に更新することができるアプリケーションの既存のリストであってもよいことも注意すべきである。１つの実施例では、更新されたリスト２１８は、クライアントデバイス１０４を介してユーザによって生成されるいずれかのアプリケーションの要求を認証するために用いることができる。更新されたリスト２１８は、インタラクション３２４の間、アプリケーションパブリッシングウェブページ２２０を介してユーザに表示することができる。
【００３１】
例示的な方法
アプリケーションのリモートオートプロビジョニング及びリモートオートパブリケーションについての例示的なプロセスが、図１−３を参照して説明されている。該プロセスは、コンピュータ実行可能命令の一般的なコンテキストで説明することができる。通常、コンピュータ実行可能命令は、特定の機能を実行するかまたは特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、手順、モジュール、機能などを含むことができる。該プロセスはまた、通信ネットワークを介してリンクされるリモートの処理装置によって機能が実行される分散型コンピュータ環境において、実行されてもよい。分散型コンピュータ環境において、コンピュータ実行可能命令は、記憶装置デバイスを含む、ローカルのコンピュータ記憶媒体及びリモートのコンピュータ記憶媒体の両方に格納されてもよい。
【００３２】
図４は、アプリケーションのリモートオートプロビジョニングについての例示的な方法４００を示す。プロセス４００は、論理フローグラフにおいてブロックの集まりとして示されており、ハードウェア、ソフトウェアまたはこれらの組合せで実施することができる一連のオペレーションを表す。ソフトウェアのコンテキストにおいて、該ブロックは、１つまたは複数のプロセッサによって実行されると、列挙したオペレーションを実行するコンピュータの命令を表している。
【００３３】
方法が説明される順番は、限定として解釈されることを意図していないし、あらゆる説明された方法のブロックは、該方法または代替の方法を実施するためにいかなる順番で組み合わされてもよい。更に、個々のブロックは、本明細書において説明されている本発明の趣旨及び範囲から逸脱することなく、本方法から削除されてもよい。更に、本方法は、本発明の範囲から逸脱することなく、あらゆる適当なハードウェア、ソフトウェア、ファームウェアまたはこれらの組合せで実施することができる。
【００３４】
ブロック４０２において、インストールされることになっているアプリケーションに付随するファイルの集まりが所定の場所に転送される。例えば、システム管理者は、サーバコンピュータ１０６に接続された外部ソースからアプリケーションに付随するファイルの集まりを収集して、所定の場所３０２にファイルの集まりをコピーする。
【００３５】
ブロック４０４において、所定の場所においてアプリケーションに付随するファイルの到着が確認される。例えば、仮想コーディネータ１１０は、所定の場所３０２を周期的にモニタして、サーバコンピュータ１０６にインストールされることになっているアプリケーションに関係するファイルの集まりがあるかどうかを決定することができる。制御管理モジュール２１２は、システム管理者から受信した入力データに基づく命令を仮想コンフィギュレーションＵＩ  ３１２を介して送信することができる。入力データは、例えば仮想コーディネータ１１０のオペレーションを制御する命令であってもよい。
【００３６】
ブロック４０６において、アプリケーションはローカルで利用するためにプレキャッシュされる。仮想コーディネータ１１０は、アプリケーションに付随するファイルの集まりを所定の場所３０２から収集して、該ファイルの集まりをサーバコンピュータ１０６に新規のファイルパッケージ２１６として格納することができる。１つの実施例では、仮想コーディネータ１１０は、プロビジョニングモジュール１１２に対してローカルで利用するために新規のファイルパッケージ２１６を収集するよう命令することができる。
【００３７】
ブロック４０８において、アプリケーションはリモートクライアントデバイスに対してプロビジョニングされる。仮想コーディネータ１１０は、プロビジョニングモジュール１１２に対してアプリケーションをインストールするよう命令し、該アプリケーションをクライアントデバイス１０４などのユーザが利用できるようにする。１つの実施例では、プロビジョニングモジュール１１２はまた、システム管理者から受信した入力データに基づいて、アプリケーションのアクセスしやすさに付随する各ユーザ権限及びポリシ権限を設定するように構成されていてもよい。
【００３８】
例えば、仮想コーディネータ１１０は、プロビジョニングモジュール１１２に対して、アプリケーションに一組のユーザがアクセス可能であるということを伝えることができる。かかる通信は、仮想コンフィギュレーションＵＩ  ３１２を介して仮想コーディネータ１１０に対してシステム管理者からもたらされてもよい。一旦かかる権限及びポリシがプロビジョニングモジュール１１２によって設定されると、アプリケーションはユーザのアクセスを受け入れる準備ができている。
【００３９】
図５は、アプリケーションのリモートオートパブリケーションについての例示的な方法５００を示す。ブロック５０２において、新規のアプリケーションについてのパブリケーションの要求を生成するために必要なデータが構築される。仮想コーディネータ１１０は、アクセス用の、例えばクライアントデバイス１０４などのユーザが利用可能なウェブページに新規のアプリケーションをパブリッシュするためのデータを生成することができる。前述のように、データは、例えば、アプリケーション名、アプリケーションパス、アプリケーションアイコン、及びＲＤＰファイルを含むことができる。例えば、アプリケーションアイコンがパブリッシュされると、ユーザはアプリケーションアイコンを選択することによってアプリケーションにアクセスすることができる。
【００４０】
ブロック５０４において、リモートユーザに対する新規のアプリケーションのパブリケーションの要求が生成される。例えば、仮想コーディネータ１１０は、パブリケーションのために必要なデータを収集して、パブリッシングモジュール１１４に対して収集されたデータに基づいて新規のアプリケーションをパブリッシュするよう命令することができる。更に、仮想コーディネータ１１０は、データをパブリッシングモジュール１１４に転送して、新規のアプリケーションのパブリケーションのための支持詳細を提供することができる。
【００４１】
ブロック５０６において、パブリッシュされるアプリケーションのリストが決定される。例えば、パブリッシングモジュール１１４は、ユーザによってそのときアクセスされているアプリケーションを確認することができる。これらのアプリケーションに基づいて、パブリッシングモジュール１１４は、ウェブページなどに、アプリケーションのリストを生成することができる。１つの実施例では、パブリッシングモジュール１１４は、サーバコンピュータ１０６に既に存在しているアプリケーションのリストを確認して、添付リストとして新規のアプリケーションの詳細をパブリッシュすることができる。
【００４２】
ブロック５０８において、アプリケーションのリストは新規のアプリケーションを用いて更新される。例えば、パブリッシングモジュール１１４は、新規のアプリケーションをアプリケーションのリストにインクルードしてアプリケーションの更新されたリスト２１８を生成することができる。
【００４３】
ブロック５１０において、新規のアプリケーションは、ウェブページにパブリッシュされる。パブリッシングモジュール１１４は、更新されたリストに存在するアプリケーションとともに、ウェブページにアプリケーションをパブリッシュする。ウェブページは、ユーザが新規のアプリケーションを使用するためにアクセスすることができる。
【００４４】
例示的なコンピュータ環境
図６は、例示的な一般コンピュータ環境６００を示し、コンピュータ環境６００は、本明細書において説明される技術を実施するために用いることができ、全体または一部において本明細書において説明されている要素を表わすことができる。コンピュータ環境６００は、コンピュータ環境のほんの一例であって、コンピュータ及びネットワークアーキテクチャの使用の範囲または機能に関していかなる限定をも示唆することを意図していない。コンピュータ環境６００は、例示的なコンピュータ環境６００において示されたコンポーネントのいかなるコンポーネントまたはいかなる組合せに関して何らかの依存関係または必要条件を有していると解釈されてはならない。
【００４５】
コンピュータ環境６００は、コンピュータ６０２の形で汎用コンピュータベースのデバイスを含む。コンピュータ６０２は、例えば、デスクトップコンピュータ、ハンドヘルドコンピュータ、ノート型コンピュータまたはラップトップコンピュータ、サーバコンピュータ、ゲームコンソールなどであってもよい。コンピュータ６０２のコンポーネントは、１つまたは複数のプロセッサ即ち処理装置６０４、システムメモリ６０６、及びプロセッサ６０４を含む様々なシステムコンポーネントをシステムメモリ６０６に結合するシステムバス６０８を含むが、これらに限定されるものではない。
【００４６】
システムバス６０８は、いくつかのタイプのバス構造の中のいずれかのバス構造のうちの１つまたは複数を表す。該バス構造は、メモリバスまたはメモリコントローラ、周辺機器用バス、アクセラレイテッドグラフィックスポート、及び様々なバスアーキテクチャのうちのいずれかを用いるプロセッサまたはローカルバスを含む。一例として、かかるアーキテクチャは、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ(ＭＣＡ)バス、エンハンスドＩＳＡ（ＥＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、及びメザニン（Ｍｅｚｚａｎｉｎｅ）バスとしても公知であるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔｓ）バスを含むことができる。
【００４７】
コンピュータ６０２は、通常様々なコンピュータ可読媒体を含む。かかる媒体は、コンピュータ６０２がアクセス可能なあらゆる利用可能な媒体であってもよく、揮発性及び不揮発性の媒体、着脱自在及び固定式の媒体のいずれも含む。
【００４８】
システムメモリ６０６は、ランダムアクセスメモリ(ＲＡＭ)６１０などの揮発性メモリ、及び／またはリードオンリメモリ（ＲＯＭ）６１２などの不揮発性メモリの形でコンピュータ可読媒体を含む。スタートアップの間などに、コンピュータ６０２内のエレメント同士の間で情報を転送するのを助ける基本ルーチンを含む基本入出力システム(ＢＩＯＳ)６１４は、示されたＲＯＭ６１２内に格納されている。ＲＡＭ６１０は、通常、処理装置６０４がすぐにアクセスできかつ／または処理装置６０４でそのとき動作されているデータ及び／またはプログラムモジュールを含んでいる。
【００４９】
コンピュータ６０２はまた、他の着脱自在／固定式の、揮発性／不揮発性のコンピュータ記憶媒体を含むことができる。一例として、図６は、固定式で不揮発性の磁気媒体（図示せず）から読み出しかつ書き込むためのハードディスクドライブ６１６を示す。更に、図６は、着脱自在で不揮発性の磁気ディスク６２０（例えば、「フロッピディスク」）から読み出しかつ書き込むための磁気ディスクドライブ６１８を示す。更に、図６は、例えばＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭまたは他の光媒体などの着脱自在で不揮発性の光ディスク６２４から読み出しかつ書き込むための光ディスクドライブ６２２を示す。ハードディスクドライブ６１６、磁気ディスクドライブ６１８、及び光ディスクドライブ６２２は、１つまたは複数のデータ媒体インタフェース６２６によって、システムバス６０８に各々接続されている。あるいは、ハードディスクドライブ６１６、磁気ディスクドライブ６１８、及び光ディスクドライブ６２２は、１つまたは複数のインタフェース（図示せず）でシステムバス６０８に接続されていてもよい。
【００５０】
ディスクドライブ及び該ディスクドライブに付随するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、及びコンピュータ６０２のための他のデータについての不揮発性記憶装置を提供する。この例はハードディスク６１６、着脱自在の磁気ディスク６２０、及び着脱自在の光ディスク６２４を示しているが、例えば磁気カセットまたは他の磁気記憶装置、フラッシュメモリカード、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくは他の光記憶装置、ランダムアクセスメモリ(ＲＡＭ)、リードオンリメモリ（ＲＯＭ）、ＥＥＰＲＯＭ（ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）などのコンピュータがアクセス可能なデータを格納することができる他のタイプのコンピュータ可読媒体も、例示的なコンピュータシステム及びコンピュータ環境を実施するために利用することができるということが認められなければならない。
【００５１】
様々なプログラムモジュールは、ハードディスク６１６、磁気ディスク６２０、光ディスク６２４、ＲＯＭ６１２、及び／またはＲＡＭ６１０に格納することができ、一例として、オペレーティングシステム６２６、１つまたは複数のアプリケーション６２８、他のプログラムモジュール６３０、及びプログラムデータ６３２を含む。かかるオペレーティングシステム６２６、１つまたは複数のアプリケーション６２８、他のプログラムモジュール６３０、及びプログラムデータ６３２（またはこれらのうちのいくつかの組み合わせ）の各々は、分散ファイルシステムをサポートする常駐コンポーネントのうちの全部または一部を実施することができる。
【００５２】
ユーザは、キーボード６３４及びポインティングデバイス６３６（例えば「マウス」）などの入力装置を介してコンピュータ６０２に命令及び情報を入力することができる。他の入力装置６３８（具体的に図示せず）には、マイクロホン、ジョイスティック、ゲームパッド、衛星アンテナ、シリアルポート、スキャナ及び／または同様のものを含むことができる。これらの入力装置及び他の入力装置は、入力／出力インタフェース６４０を介して処理装置６０４に接続されている。これらは、システムバス６０８に結合されているが、例えばパラレルポート、ゲームポートまたは汎用シリアルバス(ＵＳＢ)などの他のインタフェース及びバス構造で接続されていてもよい。
【００５３】
モニタ６４２または他のタイプのディスプレイデバイスも、ビデオアダプタ６４４などのインタフェースを介してシステムバス６０８に接続されていてもよい。モニタ６４２に加えて、他の出力周辺装置は、例えばスピーカ（図示せず）及びプリンタ６４６などのコンポーネントを含むことができる。該コンポーネントは、入力／出力インタフェース６４０を介してコンピュータ６０２に接続することができる。
【００５４】
コンピュータ６０２は、例えばリモートコンピューティングベースのデバイス６４８などの１つまたは複数のリモートコンピュータへの論理接続を利用してネットワーク化された環境において動作することができる。一例として、リモートコンピューティングベースのデバイス６４８は、パーソナルコンピュータ、ポータブルコンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピアデバイス、または他の一般のネットワークノードなどであってもよい。リモートコンピューティングベースのデバイス６４８は、ポータブルコンピュータとして示されており、該ポータブルコンピュータは、コンピュータ６０２に関連して本明細書において説明されている要素及び特徴のうちの多くの要素及び特徴または全ての要素及び特徴を含むことができる。
【００５５】
コンピュータ６０２とリモートコンピュータ６４８との間の論理接続は、ローカルエリアネットワーク(ＬＡＮ)６５０及び一般的な広域ネットワーク（ＷＡＮ）６５２として示されている。かかるネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、及びインターネットにおいて普通のことである。
【００５６】
ＬＡＮネットワーク環境において実施されると、コンピュータ６０２は、ネットワークインタフェースまたはアダプタ６５４を介してローカルネットワーク６５０に接続される。ＷＡＮネットワーク環境において実施されると、コンピュータ６０２は通常、広域ネットワーク６５２を介して通信を確立するためのモデム６５６または他の手段を含む。コンピュータ６０２に内臓されていてもよいしまたは外付けされていてもよいモデム６５６は、入力／出力インタフェース６４０または他の適当なメカニズムを介してシステムバス６０８に接続することができる。示されたネットワーク接続は例示的であって、コンピュータ６０２とコンピュータ６４８との間の通信リンク（または複数の通信リンク）を確立する他の手段を採用することができると認められなければならない。
【００５７】
コンピュータ環境６００で示されているネットワーク化された環境などのネットワーク化された環境において、コンピュータ６０２と関連して示されたプログラムモジュールまたは該プログラムモジュールの一部は、リモートの記憶装置デバイスに格納することができる。一例として、リモートアプリケーション６５８は、リモートコンピュータ６４８の記憶装置デバイスに存在する。説明のために、アプリケーション及びオペレーティングシステムなどの他の実行可能なプログラムコンポーネントは、本明細書において離散的なブロックとして示されている。但し、かかるプログラム及びコンポーネントは、コンピュータベースのデバイス６０２の異なる記憶コンポーネントに様々な時点で存在して、コンピュータのデータプロセッサ（または複数のデータプロセッサ）によって実行されると認められる。
【００５８】
様々なモジュール及び技術は、本明細書において１つまたは複数のコンピュータまたは他のデバイスによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的なコンテキストで説明することができる。通常、プログラムモジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含み、それらは、特定のタスクを実行するかまたは特定の抽象データ型を実施する。通常、プログラムモジュールの機能は、様々な実施形態において所望されるように結合されてもよいしまたは分散されてもよい。
【００５９】
これらのモジュール及び技術の実施例は、ある種のコンピュータ可読媒体に格納されてもよいしまたは送信されてもよい。コンピュータ可読媒体は、コンピュータがアクセスすることができるいかなる利用可能な媒体であってもよい。一例であって限定ではないが、コンピュータ可読媒体は、「コンピュータ記憶媒体」及び「通信媒体」を含むことができる。
【００６０】
「コンピュータ記憶媒体」は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するためのいかなる方法または技術で実施される揮発性及び不揮発性、着脱自在及び固定式の媒体を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、もしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくは他の磁気記憶デバイス、または所望の情報を格納するために用いることができかつコンピュータがアクセスすることができるあらゆる他の媒体を含むが、これらに限定されるものではない。
【００６１】
あるいは、フレームワークの一部は、ハードウェアまたは、ハードウェア、ソフトウェア及び／もしくはファームウェアの組合せで実施することができる。例えば、１つまたは複数の特定用途向け集積回路（複数のＡＳＩＣ)または複数のプログラム可能論理回路（複数のＰＬＤ）は、フレームワークの１つの部分または複数の部分を実施するようデザインされてもよいしまたはプログラムされてもよい。
【００６２】
結論
アプリケーションのリモートオートプロビジョニング及びリモートオートパブリケーションを実施する実施形態は、構造上の特徴及び／または方法に特有の言語で説明されてきたが、添付の請求の範囲の主題は説明された特定の特徴または方法に必ずしも限定されないということが理解されなければならない。むしろ、特定の特徴及び方法は、アプリケーションのリモートオートプロビジョニング及びリモートオートパブリケーションを提供する例示的な実施例として開示されている。
【図１】
0005587192.tif 000002
【図２】
0005587192.tif 000003
【図３】
0005587192.tif 000004
【図４】
0005587192.tif 000005
【図５】
0005587192.tif 000006
【図６】
0005587192.tif 000007