(57)【特許請求の範囲】
【請求項１】
ドメインコントローラとファイルサーバと複数のターミナルサーバとを含むリモートコンピューティングデバイスが、コンピューティングデバイスにソフトウェアアプリケーションを提供する方法であって、
前記複数のターミナルサーバの１つが、前記コンピューティングデバイスと前記リモートコンピューティングデバイスとの間でデータの交換を可能にするためのソフトウェアモジュールを提供し、前記コンピューティングデバイスにインストールするステップと、
前記複数のターミナルサーバの１つからの要求に応答して、前記コンピューティングデバイスが、前記複数のターミナルサーバの１つにログオン情報を提供するステップと、
前記複数のターミナルサーバの１つが、前記ドメインコントローラに前記ログオン情報を提供し、前記ドメインコントローラのディレクトリサービスシステムが、前記コンピューティングデバイスを前記リモートコンピューティングデバイスに接続するための権限を認証し、前記コンピューティングデバイスが特定のコンポーネントおよび機能にアクセスできるようにするステップと、
前記コンピューティングデバイスと前記複数のターミナルサーバの１つとのターミナルサーバセッションが切断されると、ロードバランシングアプリケーションが、前記コンピューティングデバイスを前記複数のターミナルサーバの１つに再接続し、前記ターミナルサーバセッションが切断されなかった場合には、前記ロードバランシングアプリケーションが、ネットワークリソースの利用のバランスを効率的にとるように、前記コンピューティングデバイスを適切な他のターミナルサーバに再接続するステップと、
前記複数のターミナルサーバの１つが、前記ファイルサーバからユーザのプロファイルとデスクトップ構成を取得して、前記ソフトウェアモジュールを介して、前記コンピューティングデバイスに提供するステップと、
前記複数のターミナルサーバの１つが、オペレーティングシステム機能を実行し、前記ソフトウェアモジュールを介して、前記コンピューティングデバイス上の前記デスクトップ構成を更新するステップと、
前記複数のターミナルサーバの１つが、前記ソフトウェアアプリケーション機能を実行し、前記ソフトウェアモジュールを介して、前記コンピューティングデバイス上の前記デスクトップ構成を更新するステップと
を備えたことを特徴とする方法。
【請求項２】
前記リモートコンピューティングデバイスは、ウェブサーバを含み、
前記複数のターミナルサーバの１つが、前記コンピューティングデバイスに前記ソフトウェアモジュールを提供するステップは、前記ウェブサーバが、前記コンピューティングデバイスに、前記ソフトウェアモジュールがその中に埋め込まれているウェブページを提供するステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記複数のターミナルサーバの１つが、オペレーティングシステム機能を実行し、前記コンピューティングデバイスのキーボードのストローク、マウスの移動およびマウスのクリックを含む動作を監視するステップと、
前記複数のターミナルサーバの１つが、前記コンピューティングデバイスでの前記動作に応答して、前記コンピューティングデバイス上の前記デスクトップ構成を更新するステップと
を備えたことを特徴とする請求項１に記載の方法。
【請求項４】
コンピューティングデバイスにソフトウェアアプリケーションを提供するリモートコンピューティングデバイスであって、
前記コンピューティングデバイスのユーザのプロファイルとデスクトップ構成を格納するファイルサーバと、
前記コンピューティングデバイスと前記リモートコンピューティングデバイスとの間でデータの交換を可能にするためのソフトウェアモジュールを提供し、前記コンピューティングデバイスにインストールし、
前記ファイルサーバから前記ユーザのプロファイルとデスクトップ構成を取得して、前記ソフトウェアモジュールを介して、前記コンピューティングデバイスに提供し、
オペレーティングシステム機能を実行し、前記ソフトウェアモジュールを介して、前記コンピューティングデバイス上の前記デスクトップ構成を更新し、および、
前記ソフトウェアアプリケーション機能を実行し、前記ソフトウェアモジュールを介して、前記コンピューティングデバイス上の前記デスクトップ構成を更新するターミナルサーバと、
前記ターミナルサーバからの要求に応答して、前記コンピューティングデバイスが前記ターミナルサーバに提供したログオン情報を、前記ターミナルサーバから取得して、前記リモートコンピューティングデバイスに接続するための権限を認証し、前記コンピューティングデバイスが特定のコンポーネントおよび機能にアクセスできるようするディレクトリサービスシステム、および、
前記コンピューティングデバイスと前記ターミナルサーバとのターミナルサーバセッションが切断されると、前記コンピューティングデバイスを前記ターミナルサーバに再接続し、前記ターミナルサーバセッションが切断されなかった場合には、ネットワークリソースの利用のバランスを効率的にとるように、前記コンピューティングデバイスを適切な他のターミナルサーバに再接続するロードバランシングアプリケーションを含むドメインコントローラと
を備えたことを特徴とするリモートコンピューティングデバイス。
【請求項５】
前記コンピューティングデバイスに、前記ソフトウェアモジュールがその中に埋め込まれているウェブページを提供するウェブサーバをさらに備えたことを特徴とする請求項４に記載のリモートコンピューティングデバイス。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般に、ネットワークコンピューティングに関する。より詳細には、本発明は、ソフトウェアアプリケーション、データの格納および検索、電子メールおよびメッセージング、オペレーティングシステム機能などへのユーザアクセスを、インターネットベースまたはイントラネットベースのネットワークコンピューティング環境を介して提供することに関する。
【０００２】
【従来の技術】
近年、ビジネス、教育、エンターテイメントなどのあらゆる面におけるコンピュータの使用が劇的に増大している。高い需要は、より高度かつ効率的なコンピュータハードウェアおよびソフトウェアについて続いている。家庭または小規模ビジネスのコンピュータユーザは、新しいソフトウェアを扱うために自分のコンピュータのオペレーティングシステムを更新しなければならず、単にコンピュータに新しいオペレーティングシステムおよびソフトウェアのための十分なメモリ容量が不足していることを発見することがしばしばある。同様の問題として、コンピュータユーザはしばしば、自分のコンピュータに、所望のオペレーティングシステムまたはソフトウェアによって生成あるいは操作された、そのデータを格納するために十分なメモリが不足していることを発見する。
【０００３】
例えば、ユーザが個人の家庭のコンピュータユーザであるとする。ユーザは、様々なソフトウェアアプリケーションを自分の自宅のコンピュータ上にロードしている。ユーザはデータを自分のコンピュータ上で格納し、検索し、ユーザは電子メールおよびメッセージングサービスを、自分のコンピュータに格納されたソフトウェアを介して使用する。パフォーマンスまたは機能を拡張するために、または以前のバージョンの問題を解決するために、ソフトウェアのメーカによってユーザのソフトウェアの新しいバージョンが開発された場合、またはアップグレード版が開発された場合、ユーザは新しいバージョンを得て、これを自分のコンピュータ上にロードしなければならない。ユーザのコンピュータに十分なメモリがない場合、またはユーザのオペレーティングシステムに互換性がない、または不十分である場合には、ユーザは困惑する可能性がある。ユーザは、自分のコンピュータ上のメモリおよびオペレーティングシステムをアップグレードすることが必要となる可能性がある。ユーザのコンピュータに十分なメモリ容量およびハードウェアがあり、ユーザが自分のコンピュータのオペレーティングシステムまたはソフトウェアアプリケーションをアップグレードできる場合でも、しばしばユーザのコンピュータにおいて、ユーザが自分のコンピュータで入力、格納および操作することを望むデータを格納し、検索するために十分なメモリがないことがある。オンラインサービスでは、コンピュータのユーザは、オンラインサービスプロバイダを選択し、自分のコンピュータハードウェアおよびソフトウェアがオンラインコンピューティングの要求を確実に処理できるようにすることが必要とされる。
【０００４】
【発明が解決しようとする課題】
会社および教育機関など、様々な規模の組織は、類似しているが広大な技術的関心を有している。いくつかの組織は数百あるいは数千もの個々のコンピュータを操作しており、これらは組織によって操作かつ管理されたイントラネットを介して互いにネットワーク化されている。このような組織は通常、情報技術担当者のため、およびデータ記憶、データ記憶のバックアップ、ソフトウェアのインストールおよびアップグレード、およびソフトウェアのアップグレード並びにデータ記憶を可能にするためのハードウェアのアップグレードを維持するために、著しいリソースの費用を必要とする。システム障害はしばしば、組織全体の多数の場所で起こり、限定されたリソースおよび時間の分散が必要となる。
【０００５】
アプリケーションサービスを実施しようと試みているこのような組織の主要な問題は、オペレーション担当者に対する学習曲線の巨大な損失となっている。コンピューティングオペレーション担当者は通常、ソフトウェアアプリケーション製品のすべての複雑さについて、その製品を組織のコンピュータシステム上に導入できるようになる前に、精通しなければならない。技術的な問題に対する答えは、しばしばいくつかのソースに渡って広がっており、引き出す元となる中心的な場所や原因がない。個人と組織とを含むすべてのユーザ、および組織は、データおよび貴重なソフトウェアに渡ってセキュリティを維持しなければならない。
【０００６】
これらの考慮事項および他の事項に関して、本発明が作成された。
【０００７】
【課題を解決するための手段】
本発明によれば、上述した問題が、オペレーティングシステム、ソフトウェアアプリケーション、データの格納および検索、電子メールおよびメッセージングサービス、および、データおよびソフトウェアのセキュリティを含むコンピューティングサービスへのコンピュータユーザアクセスを、オンラインネットワークコンピューティング環境内で提供するためのシステムおよび方法によって解決される。ソフトウェアのインストール、アップグレードおよびバージョンコントロールのための必要性、およびあるハードウェアのアップグレードのための必要性は、ソフトウェア並びにデータの格納、およびユーザまたはユーザのグループへ、ネットワークコンピューティング環境を介してリモートターミナルサーバからの検索を提供することによってなくなる。ソフトウェアアプリケーション、データ、および電子メール並びにメッセージングサービスが、リモートターミナルサーバ内で、ファイルサーバ、他のターミナルサーバおよびドメインコントローラとの組合せにおいてリンクされ、格納され、維持され、操作され、インターネットを介して、あるいは会社または教育機関など、組織のイントラネットを介してユーザに提供される。データがリモートファイルサーバで格納され、保護され、ウェブオペレーションがリモートウェブサーバによって提供される。ターミナルサーバ、ファイルサーバおよびウェブサーバを含むシステムのバックエンドが、ドメインコントローラによって管理され、保護される。
【０００８】
より詳細には、コンピューティングサービスをネットワークコンピューティング環境内で提供するための方法およびシステムが提供される。ユーザによって操作されたパーソナルコンピュータなどのコンピューティングデバイスに、ソフトウェアモジュールが、ターミナルサーバなどのリモートコンピューティングデバイスから提供され、これはコンピューティングデバイスとリモートコンピューティングデバイス（ターミナルサーバ）の間でデータの交換を可能にする。ソフトウェアモジュールを介して、リモートコンピューティングデバイスのオペレーティングシステムのエミュレーションは、ユーザのコンピュータに提供される。加えて、ソフトウェアモジュールを介して、ユーザのコンピュータデスクトップ構成のエミュレーションが、リモートコンピューティングデバイスからユーザのコンピューティングデバイスへ渡される。ソフトウェアモジュールは、ActiveXコントロールであることが好ましい。
【０００９】
ユーザのコンピュータにおけるキーボードのストローク、マウスの移動およびマウスのクリックなどのアクションが、リモートコンピューティングデバイスのオペレーティングシステムによって監視される。ユーザのコンピュータでのアクションに応答して、ユーザのコンピュータに提供されたオペレーティングシステムおよびデスクトップ構成のエミュレーションが更新される。
【００１０】
リモートコンピューティングデバイスがいくつかのコンポーネントを含むことが好ましく、これにはターミナルサーバ、ファイルサーバ、ウェブサーバおよびドメインコントローラが含まれる。ユーザのコンピュータがリモートコンピューティングデバイスへ、インターネットを介したまたはイントラネットを介したネットワークコンピューティング環境を介して接続されることが好ましい。
【００１１】
本発明の別の態様によれば、ソフトウェアアプリケーションをユーザのコンピュータへ、ターミナルサーバなど１または複数のリモートコンピューティングデバイスから提供することができる。加えて、ユーザのコンピュータで入力されたデータを、ファイルサーバなどリモートデバイス上で格納し、そこから検索することができる。インターネットおよびウェブサービスを、ユーザのコンピュータへ、リモートウェブサーバを介して提供することができる。好ましくは、ネットワークコンピューティング環境のソフトウェアおよびハードウェアのコンポーネントは、ドメインコントローラによって管理され、保護される。
【００１２】
この方法を、コンピュータプロセス、コンピュータシステム、またはコンピュータプログラム製品またはコンピュータ読み取り可能な媒体などの製造品として実施することができる。コンピュータプログラム製品を、コンピュータシステムによって読み取り可能なコンピュータ記憶媒体にすることができ、コンピュータプログラムを、コンピュータプロセスを実行するための命令のために符号化することができる。コンピュータプログラム製品を、コンピュータシステムによって読み取り可能な搬送波上の伝播信号にすることもでき、コンピュータプロセスを実行するための命令のコンピュータプログラムを符号化することもできる。
【００１３】
これらおよび他の特徴および利点は、本発明を特徴付けるものであり、以下の詳細な説明を読むこと、および関連する図面の検討から明らかになるであろう。前述の全般的な説明および以下の詳細な説明は例示的でしかなく、特許請求の範囲に記載されたような本発明を限定するものではないことを理解されたい。
【００１４】
【発明の実施の形態】
本発明は、ソフトウェアアプリケーション、データの格納および検索、および、電子メール並びにメッセージングサービスへのユーザアクセスを、ネットワークコンピューティング環境内で提供する。本発明の例示的実施形態によれば、ソフトウェアのインストール、アップグレード並びにバージョンコントロール、およびあるハードウェアのアップグレードが、ユーザレベルで、ソフトウェア並びにデータの格納、およびユーザまたはユーザのグループへネットワークコンピューティング環境を介してリモートターミナルサーバからの検索を提供することによってなくなる。本発明によれば、仮想オペレーティングシステム、ソフトウェアアプリケーション、データ、および電子メール並びにメッセージングサービスが、リモートターミナルサーバで格納され、維持され、操作され、インターネットを介して、または会社または教育機関など、組織のイントラネットを介してユーザに提供される。
【００１５】
図１を参照すると、本発明の例示的実施形態によれば、オペレーティングシステム機能、ソフトウェアアプリケーション並びにアップグレード、オンラインサービス、および、データの格納並びに検索の提供を含むコンピューティングサービスが、ネットワークコンピューティングオペレーティング環境１００を介して、ユーザ１０５へ提供される。ユーザ１０５は、コンピュータ２０など、以下に記載するコンピューティングデバイスを使用して、インターネットまたはイントラネットベースの、コンピューティングアプリケーションのサービスサイトおよびターミナルサーバ１６０でのデータサービスプロバイダに、インターネット１２０を介してログオンする。ユーザ１０５は、ネットワークコンピューティング環境１００およびコンピュータサービスプロバイダ１６５のサービスに接続するために、インターネットブラウザを有することのみを必要とする。この説明のため、ユーザ１０５を単一のユーザ、複数のユーザ、ユーザのグループ、または会社、他の機関などの組織として定義することができる。コンピュータサービスプロバイダ１６５は、コンピューティングサービスを提供し、本発明によってユーザにこれらサービスを使用可能にする、いかなる人または組織にすることもできる。例示的コンピュータサービスプロバイダ１６５は、ソフトウェアプロバイダ、インターネットサービスプロバイダ、データベースおよびファイル格納プロバイダなどを含むことができる。本発明の例示的実施形態によれば、ユーザ１０５がサービスプロバイダ１６５に接続された後、ユーザによる効率的かつ生産的な使用のために必要なすべてのコンピューティングサービスが、リモートコンピューティングデバイスから提供され、これにはリモートターミナルサーバ、ファイルサーバ、ウェブサーバおよびドメインコントローラが含まれる。
【００１６】
リモートターミナルサービスは、いくつかのターミナルサーバ１６０、１７０、１８０を含み、これはソフトウェアアプリケーションおよびリモートデスクトップ機能および表示を提供する。ファイルサーバ１５０は、ユーザデータ、および個人と組織とのユーザプロファイル情報をリモートで維持するために設けられる。ウェブサーバ１４０は、オンラインサービス、および電子メール並びにメッセージングサービスを提供する。ドメインコントローラ１３０は、ターミナルサーバ１６０、１７０、１８０など、ネットワークコンポーネントのクラスタのディレクトリサービス、セキュリティおよび全般的な管理を提供する。
【００１７】
本発明では、ユーザの個人のコンピュータまたは組織のコンピュータのネットワークが、ネットワークコンピューティング環境１００におけるクライアントマシンとしての機能を果たす。すなわち、ユーザがコンピューティングサービスプロバイダのサービスに、インターネット１２０を介してログオンした後、ユーザのマシンに、ターミナルサーバコンピュータのオペレーティングシステムのエミュレーションが提供され、ユーザの所望のコンピュータデスクトップ設定が、いつユーザがログオンするか、どこからユーザがログオンするか、あるいはどのコンピュータからユーザがログオンするかに関わらず、ユーザに表示される。ユーザによって利用されたすべてのソフトウェアアプリケーションが、リモートターミナルサーバ１６０、１７０、１８０で格納され、維持され、更新され、これにより、ユーザのローカルコンピュータ上でのユーザによるソフトウェアの購入、ダウンロードまたはアップグレードのための必要性がなくなる。
【００１８】
ユーザによって入力され、格納され、操作されたデータは、リモートファイルサーバ１５０上で維持され、これにより、ユーザがユーザのデータのために十分なメモリ容量をバックアップし、保護し、提供するための必要性がなくなる。オンラインサービス、および電子メール並びにメッセージングサービスは、インターネットを介してリモートウェブサーバ１４０との結合におけるターミナルサーバセッションを介して、ユーザに提供される。また、すべての前述のサービスが、ドメインコントローラ１３０を介して、ユーザによって選択されたコンピューティングサービスプロバイダ１６５によって保護され、管理され、ドメインコントローラ１３０が、本明細書に記載された、ネットワークコンピューティング環境１００のオペレーションを監督する。代替実施形態によれば、これらのサービスを管理サーバによって保護し、管理することができる。例示的管理サーバは、ワシントン州レドモンドのMicrosoft Corporationによって製作されたプロキシサーバである。プロキシサーバにより、コンピュータサービスプロバイダ１６５など、ネットワークコンピューティング環境１００におけるユーザが、セキュリティ、コスト、ファイアウォールサービス、データキャッシングおよびサービス管理を管理しながら、それらのサービスをインターネットへ拡張することができる。
【００１９】
図２および以下の考察は、本発明を実施することができる適切なコンピューティング環境の簡単で一般的な説明を提供することを意図するものである。本発明を一般に分散コンピューティング環境に関連して記載し、ここではタスクが、通信ネットワークを介してリンクされるリモート処理デバイスによって実行される。分散コンピューティング環境では、プログラムモジュールをローカルおよびリモートの記憶デバイスに位置付けることができる。一般に、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造などを含み、これらは特定のタスクを実行し、あるいは特定の抽象データタイプを実施する。さらに、本発明を他のコンピュータシステム構成により実施することができ、これにはハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースあるいはプログラマブルコンシューマエレクトロニクス、ミニコンピュータ、メインフレームコンピュータなどが含まれることは、当業者には理解されよう。
【００２０】
図２を参照すると、本発明を実施するための例示的システムは、従来のパーソナルコンピュータ２０を含み、これは処理装置２１、システムメモリ２２、およびシステムバス２３を含み、これがシステムメモリを処理装置２１へ結合する。システムメモリ２２は、読み取り専用メモリ（ＲＯＭ）２４およびランダムアクセスメモリ（ＲＡＭ）２５を含む。基本入出力システム２６（ＢＩＯＳ）は、起動中など、情報をパーソナルコンピュータ２０内の要素の間で転送するための助けとなる基本ルーチンを含み、ＲＯＭ２４に格納される。パーソナルコンピュータ２０はさらに、ハードディスクドライブ２７、例えば取外し可能ディスク２９から読み取りあるいはこれに書き込むための磁気ディスクドライブ２８、および、例えばＣＤ−ＲＯＭディスク３１を読み取るか、あるいは他の光媒体から読み取りあるいはこれに書き込むための光ディスクドライブ３０を含む。ハードディスクドライブ２７、磁気ディスクドライブ２８および光ディスクドライブ３０が、それぞれハードディスクドライブインターフェイス３２、磁気ディスクドライブインターフェイス３３、および光ドライブインターフェイス３４によって、システムバス２３に接続される。ドライブおよびそれらの関連付けられたコンピュータ読み取り可能な媒体が、パーソナルコンピュータ２０の不揮発性記憶装置を提供する。上述のコンピュータ読み取り可能な媒体の説明では、ハードディスク、取外し可能な磁気ディスクおよびＣＤ−ＲＯＭディスクを参照するが、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジなど、コンピュータにより読み取り可能な他のタイプの媒体も例示的オペレーティング環境内で使用できることを、当業者には理解されたい。
【００２１】
いくつかのプログラムモジュールをドライブおよびＲＡＭ２５に格納することができ、これには、オペレーティングシステム３５、ソフトウェアアプリケーション３６およびインターネットブラウザ３７が含まれる。ユーザが、コマンドおよび情報を、パーソナルコンピュータ２０に、キーボード４０およびマウス４２などのポインティングデバイスを介して入力することができる。他の入力デバイス（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどが含まれる可能性がある。これらおよび他の入力デバイスは、しばしば処理装置２１へ、システムバスに結合されるシリアルポートインターフェイス４６を介して接続されるが、ゲームポートまたはユニバーサルシリアルバス（ＵＳＢ）など、他のインターフェイスによって接続することができる。モニタ４７または他のタイプの表示デバイスも、ビデオアダプタ４８などのインターフェイスを介して、システムバス２３に接続される。モニタに加えて、パーソナルコンピュータは通常、スピーカまたはプリンタなど、他の周辺出力デバイス（図示せず）を含む。
【００２２】
パーソナルコンピュータ２０は、ネットワーク環境内で、ターミナルサーバ１６０、１７０、１８０など、１または複数のリモートコンピュータへの論理接続を使用して動作することができる。リモートコンピュータサーバ１６０、１７０、１８０は、コンピュータ、ピアデバイスまたは他の共通ネットワークノードにすることができ、典型的には、パーソナルコンピュータ２０に関して記載した要素の多数またはすべてを含むが、メモリ記憶デバイス５０のみを図２において例示した。図２に示した論理接続は、ローカルエリアネットワーク（ＬＡＮ）５１およびワイドエリアネットワーク（ＷＡＮ）５２を含む。本発明の例示的実施形態によれば、ネットワークコンピューティング環境１００は、ＬＡＮ５１またはＷＡＮ５２の一部として動作することができる。
【００２３】
ＬＡＮネットワーキング環境内で使用するとき、パーソナルコンピュータ２０は、ネットワークインターフェイス５３を介して、ＬＡＮ５１に接続される。ＷＡＮネットワーキング環境内で使用するとき、パーソナルコンピュータ２０は、典型的には、モデム５４またはインターネットなどのＷＡＮ５２を介して通信を確立するための他の手段を含む。モデム５４を内部あるいは外部にすることができ、これは、シリアルポートインターフェイス４６を介してシステムバス２３に接続される。ネットワーク環境では、パーソナルコンピュータ２０に関して示したプログラムモジュール、またはその一部を、ターミナルサーバ１６０、１７０、１８０など、リモート記憶デバイスに格納することができる。図示のネットワーク接続は例示的であり、通信リンクをコンピュータの間で確立する他の手段を使用できることは理解されよう。
【００２４】
パーソナルコンピュータ２０など、コンピューティングデバイスは、典型的には、少なくともある形式のコンピュータ読み取り可能な媒体を含む。コンピュータ読み取り可能な媒体は、パーソナルコンピュータ２０によってアクセスすることができるいかなる使用可能な媒体にすることもできる。例として、それだけに限定されるものではないが、コンピュータ読み取り可能な媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、揮発性および不揮発性、取り外し可能および取り外し不能の媒体を含み、これらは、コンピュータ読み取り可能な命令、データ構造、プログラムモジュールまたは他のデータなど、情報の格納のためのあらゆる方法または技術により実施される。コンピュータ記憶媒体には、それだけに限定されるものではないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、または、所望の情報を格納するために使用することができ、パーソナルコンピュータ２０によってアクセスすることができる他のいかなる媒体もが含まれる。
【００２５】
通信媒体は通常、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、または他のデータを、搬送波などの変調されたデータ信号、または他の移送メカニズムにおいて実施し、いかなる情報送達媒体をも含む。「変調されたデータ信号」という用語は、１または複数のその特性が、情報を信号に符号化するような方法において設定あるいは変更されている信号を意味する。例として、それだけに限定されるものではないが、通信媒体には、有線ネットワークまたは直接有線接続などの有線媒体、音波、ＲＦ、赤外線などのワイヤレス媒体、および他のワイヤレス媒体が含まれる。上記のいかなるものの組合せも、コンピュータ読み取り可能な媒体の範囲内に含まれるべきである。コンピュータ読み取り可能な媒体は、コンピュータプログラム製品とも呼ばれる可能性がある。
【００２６】
図３は、例示的アイコンおよびコントロールを示す、コンピュータにより生成されたユーザインターフェイスウィンドウの例示的画面表示を示す。上述のように、本発明の例示的実施形態によれば、本発明の機能の使用は、ユーザがコンピューティングサービスプロバイダのサービスに、ユーザのコンピュータ２０上で維持されたインターネットブラウザプログラム３７を介してログオンすることによって開始する。例示的インターネットブラウザプログラム３７は、ワシントン州レドモンドのMicrosoft Corporationによって製作されたInternet Explorerを含む。最初に、ユーザがコンピューティングサービスプロバイダのサービスにログオンしようと試みるとき、ユーザはユーザアカウントを、ユーザによって選択されたコンピューティングサービスプロバイダのシステムアドミニストレータから要求する。ユーザは個人プロファイル情報を提供し、パスワードまたは他の認証／識別コード番号を得る。ユーザによって選択されたコンピューティングサービスプロバイダ１６５のサービスへログオンするためのユーザの権限が認証された後、再利用可能なソフトウェアモジュールがユーザのコンピュータ２０へ渡され、これはオンラインターミナルサーバセッションを、ユーザ１０５とターミナルサーバ１６０に存在するコンピューティングサービスプロバイダ１６５との間で確立する。例示的実施形態によれば、再利用可能なソフトウェアコンポーネントは、ActiveXコントロール１１０である。
【００２７】
ユーザのインターネットサービスブラウザ３７を介してユーザのコンピュータ２０上にインストールされたActiveXコントロール１１０は、コンピューティングサービスプロバイダ１６５によって提供されたコンピュータオペレーティングシステムのデスクトップエミュレーションを提供し、ユーザのコンピュータ２０と、ネットワークコンピューティング環境１００のハードウェアおよびソフトウェアコンポーネントの間のインタラクションを提供する。当業者には知られているように、ActiveXコントロールは、再利用可能なソフトウェアコンポーネントであり、これをネットワークコンピューティング環境におけるソフトウェアコンポーネントの間のインタラクティビティのために、コンポーネントが作成された言語に関わらず、使用することができる。ActiveXコントロールを、インターネットベースのウェブページに埋め込んで、インタラクティブなアプリケーション、データオブジェクトおよびソフトウェアアプリケーション全体を作成することができる。ターミナルサーバセッションが、ユーザ１０５とターミナルサーバ１６０の間で確立された後、ユーザのコンピュータ２０は、ActiveXコントロールを介してターミナルサーバ１６０に対するクライアントとして動作する。
【００２８】
オペレーティングシステム機能、デスクトッププレゼンテーション並びにソフトウェア、データ、および電子メール並びにメッセージングへのアクセスは、ターミナルサーバ１６０を経由する。ユーザの体験は、ユーザがターミナルサーバ１６０自体において動作中であるかのようである。ターミナルサーバ１６０は、ActiveXコントロールを介して、ユーザのコンピュータ２０上のユーザのアクションを監視し、これにはキーストローク、マウスの移動などが含まれる。これらのユーザのアクションに応答して、ターミナルサーバ１６０は、ActiveXコントロールを介して、ユーザのコンピュータ２０のデスクトップのエミュレーションをユーザに送信し、ユーザのアクションに応答するユーザのコンピュータ画面上の表示をユーザに提供する。すべてのデータ並びにオペレーティングシステムの操作およびソフトウェアの動作の実際は、ターミナルサーバ１６０において起こる。本発明の例示的実施形態によれば、デスクトッププレゼンテーションのエミュレーション、オペレーティングシステム機能、およびユーザのコンピュータ上のソフトウェアアプリケーション機能およびデータの表示は、ユーザのコンピュータ２０へ、ActiveXコントロールを介して、コンピュータ２０上の適切かつ予想された表示を表現するビットマップを送信することによって実施される。簡単に述べると、ユーザのコンピュータ２０は、ターミナルサーバ１６０でユーザ１０５に代って動作するオペレーティングシステムの機能、ソフトウェアアプリケーションおよびデータを模倣する。
【００２９】
ユーザが、コンピューティングサービスプロバイダ１６５のリモートサービスに接続された後、上述したユーザのコンピュータ２０にインストールされたActiveXコントロールが、コンピュータサービスプロバイダ１６５によって維持されたリモートコンピュータのオペレーティングシステムへのアクセスおよびそのサービスをユーザに提供する。加えて、ユーザには、リモートデスクトッププロトコル機能が提供され、これはユーザに、ユーザが個人的に定義した、図３において例示されたデスクトップウィンドウ３００などのデスクトップを表示する。本発明の例示的実施形態によれば、デスクトップウィンドウ３００は、ユーザのデスクトッププロファイルのエミュレーションであり、これはコンピュータサービスプロバイダ１６５によって格納され、維持される。
【００３０】
図３において例示されたデスクトップウィンドウ３００は、例示的アイコンを含み、これはコンピュータ設定アイコン３１０、アプリケーションアイコン３２０、ファイルアイコン３３０およびインターネットブラウザアイコン３４０を含む。例示的デスクトップウィンドウ３００は、アプリケーションウィンドウ３２５も含む。本発明によれば、ユーザ１０５が自分のデスクトップ構成を望むように設定し、これは、所望のアイコンをデスクトップ上に配置することによって、かつ、アプリケーションウィンドウ３２５などのメニューを、ユーザ１０５の特定のニーズおよび希望に従って構成することによって行う。
【００３１】
本発明では、ユーザが所望のデスクトップウィンドウ３００のプレゼンテーションを、図３において例示されたように確立した後、そのデスクトップ構成がファイルサーバ１５０上のコンピュータサービスプロバイダ１６５によって格納される。ユーザがコンピュータサービスプロバイダ１６５を介してネットワークコンピューティング環境１００にログオンするたびに、上述したような、ユーザのコンピュータ２０上にインストールされたActiveXコントロールが、ユーザのコンピュータ２０に、図３において例示されたような、ユーザにより個人的に構成されたデスクトップウィンドウ３００を表示させる。すなわち、ユーザがコンピュータサービスプロバイダ１６５のサービスにいかなる場所からも、かついかなるコンピュータからも、ログオンするといつでも、ユーザのコンピューティング体験は、等しいものとなる。
【００３２】
ユーザにより個人的に構成されたデスクトップウィンドウ３００は、ユーザに提供され、各アイコンまたは他のグラフィカルユーザインターフェイスは、ユーザによって設定されたものと同じ位置、色設定およびサイズとなる。ユーザがアプリケーションをユーザのコンピュータ２０上で使用するために選択したとき、コンピュータサービスプロバイダ１６５による提供のためにユーザによって選択されたアプリケーションは、ネットワークコンピューティング環境１００を介して、ユーザのコンピュータ２０でユーザにより使用可能となる。
【００３３】
ユーザがデータをユーザのコンピュータ２０上で格納、検索かつ操作したとき、すべてのデータの格納および検索が、リモートファイルサーバ１５０に格納され、そこから検索され、これはコンピューティングサービスプロバイダ１６５によって操作され、維持され、保護される。ユーザ１０５によって使用されたアプリケーションが、本発明によって、更新あるいは修正されるといつでも、新しいバージョン、更新あるいは修正されたバージョンが、コンピュータサービスプロバイダ１６５によって、ターミナルサーバ１６０、１７０、１８０上でインストールかつ維持される。ユーザは、新しいソフトウェアの購入、または既存のソフトウェアの更新、または既存のソフトウェアの修正を行う必要がなくなる。すべてのこのようなソフトウェア維持動作は、コンピュータサービスプロバイダ１６５によって、そのリモートの場所から、ユーザによるアクションなしに実行される。
【００３４】
図１に戻って参照すると、上述のように、ユーザ１０５がコンピュータサービスプロバイダ１６５のサービスへ、インターネット１２０およびリモートウェブサーバ１４０を介してアクセスする。コンピュータサービスプロバイダ１６５が、各リモートコンポーネントの機能および本明細書で記載された機能をユーザに提供するアプリケーションサービスプロバイダの形式をとることができることを理解されたい。別法として、コンピュータサービスプロバイダ１６５は、図１において例示されたようなターミナルサーバ１６０で存在することができ、ウェブサーバ１４０、追加のターミナルサーバ１７０、１８０、ドメインコントローラ１３０およびファイルサーバ１５０を含む、例示されたシステムの他のコンポーネントの機能を、他の組織または会社によって、コンピュータサービスプロバイダ１６５による命令の下で、あるいはそれによるアクセスにより操作することができる。
【００３５】
別法として、図１において例示されたネットワークコンピューティング環境を、会社または教育機関など、組織間のネットワークコンピューティング環境を有する必要がある組織によって利用されたイントラネットの形式にすることができる。この場合、ネットワークコンピューティング環境１００のコンポーネントを、単一の組織内で維持することができ、ユーザはネットワークコンピューティング環境のコンポーネントの機能を、インターネット１２０とは対照的にイントラネットを介して得る。本発明の例示的実施形態の以下の説明のため、インターネットおよびイントラネットを相互可換的に使用して、ユーザがネットワークコンピューティング環境１００の機能およびコンポーネントにアクセスする方法およびシステムを、この機能およびこれらのコンポーネントがリモートの第三者コンピュータサービスプロバイダ１６５によって動作されるかどうかに関わらず、またはユーザが属する組織に存在するシステムアドミニストレータによってこれらのコンポーネントが動作され、これらのサービスが提供されるかどうかに関わらず、記載する。
【００３６】
インターネット１２０は、世界全体のネットワークおよびゲートウェイの集まりであり、これを介して個人および組織がデータ、ソフトウェアおよび情報を通信し、相互に転送することができるものとして、当業者によってよく理解されている。図１において例示されたインターネット１２０の機能を、組織または教育機関におけるイントラネットによって、例えば、本発明の機能を組織間のイントラネットを介して利用して、提供することもできることを当業者には理解されたい。イントラネットは、組織間ネットワークの場合、これも当業者には周知であり、例えば、インターネットプロトコルに基づいているが、会社の組織内の情報管理向けに設計された専用ネットワークを含む。また、いかなる規模の組織のイントラネットも本発明のユーザ１０５として動作することができ、この組織のイントラネットに提供されたサービスが最終的には、リモートターミナルサービスから、本発明によって、かつ図１において例示されたようなインターネット１２０を介して提供されることも理解されたい。
【００３７】
本発明の例示的実施形態のインターネットベースのオペレーションの場合、コンピュータサービスプロバイダ１６５のオンラインサービスへのユーザアクセスは、ウェブサーバ１４０を介して行われる。ユーザ１０５は、コンピュータサービスプロバイダ１６５と、ユーザのコンピュータ２０上で維持されたインターネットブラウザプログラム３７を介して通信する。ウェブサーバ１４０は、ハイパーテキスト転送プロトコル（ＨＴＴＰ）など、インターネットベースのプロトコルを使用するソフトウェアを含み、ドキュメント並びに関連するファイルおよびソフトウェアスクリプトを、ユーザによってユーザのウェブブラウザを介して要求されたときに、ユーザに提供する。例示的ウェブサーバソフトウェアは、ワシントン州レドモンドのMicrosoft Corporationによって製作されたインターネット情報サーバ（ＩＩＳ）を含み、これはハイパーテキスト転送プロトコルを利用して、ワールドワイドウェブドキュメントおよび情報を、ユーザ１０５と、リモートユーザまたはコンピュータサービスプロバイダ１６５などの組織との間で、ウェブサーバ１４０を介して送達する。
【００３８】
ターミナルサーバセッションが、ユーザ１０５とコンピュータサービスプロバイダ１６５との間で、ネットワークコンピューティング環境１００を介して確立された後、すべてのユーザファイル、データおよびユーザプロファイルがファイルサーバ１５０上で、以下に記載するドメインコントローラ１３０のコントロール下で、コンピュータサービスプロバイダ１６５の命令で格納され、保護される。例示的実施形態によれば、ユーザプロファイルは、上述したユーザの所望のデスクトップ構成、コンピュータサービス１６５のサービスへのアクセスのためのユーザの権限および許可、およびユーザによってサブスクライブされたサービスのタイプについての情報を含む。すなわち、プロファイルは、ユーザによってサブスクライブされたソフトウェアアプリケーション３６、１７２、１７４の数およびタイプ、ユーザによってサブスクライブされた電子メールおよびメッセージングサービス、およびユーザによってサブスクライブされたデータ記憶装置の量についての情報を含む。
【００３９】
データ記憶装置の場合、本発明の例示的実施形態によれば、ユーザが、データおよびファイル格納のための特定量のメモリ容量を、コンピュータサービスプロバイダ１６５を介して選択することができる。これはユーザが、ユーザ個人または会社の必要性に従って必要であるような、ファイルサーバ１５０におけるデータおよびファイル格納のためのメモリ容量の量を、サブスクライブする必要があるのみなので、有利である。別法として、ユーザ１０５が、ファイルサーバ１５０ですべてのサブスクライブされたメモリ容量を満たすか、または満たし始めたとき、ユーザ１０５は、コンピュータサービスプロバイダ１６５に連絡して、追加のメモリ容量を得ることができる。そのように行うことにより、ユーザ１０５は、ユーザのパーソナルコンピュータ２０のメモリ容量をアップグレードする必要性を回避し、あるいは会社または他の組織の場合では、会社または組織が、それら個々のコンピューティングマシンのメモリ容量に大規模なアップグレードの必要性をなくす。図１を参照すると、本発明の好ましい実施形態によれば、データおよびファイルは、ファイルサーバ１５０に、階層フォルダ構造において格納される。あるルートフォルダ１５１は、ホストされた会社およびホストされた個人のためのデータフォルダ１５２、１５４を含み、別のルートフォルダ１５７は、個人および会社のユーザのためのユーザプロファイル１５８を含む。
【００４０】
ネットワークコンピューティング環境１００は、上述したように、いくつかのターミナルサーバ１６０、１７０、１８０を含む。ターミナルサーバは、コンピュータサービスプロバイダ１６５のソフトウェアおよび管理機能を含み、ユーザ１０５がネットワークコンピューティング環境１００を介してアクセスを有するソフトウェアアプリケーション１７２、１７４を含む。ターミナルサーバ１６０、１７０、１８０の数が、同時ユーザ１０５の数および／または、特定のアプリケーション専用のサーバの数によって決定されることを、当業者には理解されたい。すなわち、ユーザの数が多くなり、ユーザ１０５に提供されたソフトウェアアプリケーションおよび機能の数およびタイプがより多数かつ複雑であるほど、より多くのターミナルサーバ１６０、１７０、１８０が、ネットワークコンピューティング環境の効率的なオペレーションのために必要となる。
【００４１】
所与のソフトウェアアプリケーション１７２、１７４のメーカが、これら所与のソフトウェアアプリケーションのバージョンを変更し、あるいはこれらのアプリケーションを、しばしば「パッチ」として知られる矯正的なソフトウェアモジュールによりアップグレードするとき、コンピュータサービスプロバイダ１６５は、本発明の例示的実施形態によれば、すべての変更を、そのユーザ１０５のためにコンピュータサービスプロバイダ１６５によって利用されたターミナルサーバ１６０、１７０、１８０上に含まれたソフトウェアアプリケーションに対して行う。ユーザ１０５は、変更およびアップグレードをそれら個々のコンピュータ２０上のソフトウェアアプリケーションに対して行う必要はない。例えば、普及しているワードプロセッシングアプリケーションの新しいバージョンが、ワードプロセッシングアプリケーションのメーカによって発行され、配布された場合には、コンピュータサービスプロバイダ１６５が最新のバージョンのワードプロセッシングアプリケーションを得て、このバージョンをターミナルサーバ１６０、１７０、１８０のうち１つにインストールする。次回にユーザ１０５がコンピュータサービスプロバイダ１６５のサービスにログオンし、ターミナルサーバ１６０、１７０、１８０のうち１つに含まれたワードプロセッシングアプリケーションを開くとき、ユーザには、最新バージョンまたは更新されたバージョンのワードプロセッシングソフトウェアアプリケーションが提示される。望む場合は、コンピュータサービスプロバイダ１６５が、所与のソフトウェアアプリケーションに対する次のバージョン変更および訂正について、事前にユーザ１０５に通知を発行することができる。
【００４２】
ターミナルサーバ１６０、１７０、１８０など、ターミナルサーバを、技術またはサービスラインに沿ってグループにクラスタ化することができる。例えば、ターミナルサーバ１６０、１７０、１８０のあるクラスタは、ワードプロセッシング、表計算、データベース、デスクトップパブリッシング、ウェブページデザインなど、デスクトップコンピューティングオペレーションを対象とする一式のソフトウェアアプリケーション１７２、１７４を含むことができる。ターミナルサーバ１６０、１７０、１８０の他のクラスタは、例えば、リレーショナルデータベースの問合せ、更新および管理用の複雑なデータベース管理ソフトウェアを含むことができる。ターミナルサーバの他のクラスタは、業界特有のカスタマイズされたソフトウェアアプリケーション、例えば、会計システム、医療システム、法律システムなどを対象とするソフトウェアアプリケーションのセットを含むことができる。
【００４３】
本発明の例示的実施形態によれば、ターミナルサービス接続管理システムが、個々のターミナルサーバ１６０、１７０、１８０およびターミナルサーバのクラスタにあるユーザ要求のバランスをとるために使用される。ターミナルサービス接続管理の一態様は、ユーザ１０５によって利用されたソフトウェアおよびサービスを含む特定のターミナルサーバへの、個人および会社のユーザの接続の管理である。ユーザとターミナルサーバとの間の接続の管理は、ユーザによって以前にターミナルサーバセッションにおいて利用されたソフトウェアアプリケーションおよびサービスをホストする元のターミナルサーバに、透過的にユーザを再接続することを含む。例えば、ユーザ１０５が、ターミナルサーバ１６０上に存在するワードプロセッシングアプリケーションを利用中である場合には、ターミナルサービス接続管理機能は、後続のターミナルサーバセッションにおいてユーザ１０５をターミナルサーバ１６０へ再接続しようと試みる。
【００４４】
別法として、ユーザ１０５がネットワークコンピューティング環境１００にログオンした時点で、ターミナルサーバ１６０がユーザ１０５に接続するための容量を有していなかった場合、ターミナルサービス接続管理機能は、ユーザ１０５によって望まれたアプリケーションまたは機能を含む分離したターミナルサーバ１７０に、ユーザ１０５を接続することができる。上述したように、論理的にターミナルサーバクラスタにグループ化された多数のターミナルサーバを有し、その間で所与のユーザ１０５をターミナルサービス接続管理機能によって所与のサービスのために経路指定できることは、有利である。以下に記載するように、ターミナルサービス接続管理機能は、ドメインコントローラサーバ１３０に含まれ、それによって操作されることが好ましい。
【００４５】
電子メールおよびメッセージングサービスが、ネットワークコンピューティング環境１００のユーザ１０５へ、様々なソースを介して提供される。例えば、電子メールおよびメッセージングサービスを、コンピュータサービスプロバイダ１６５によって提供することができ、または電子メールおよびメッセージングサービスのためのソースを所与の組織内で確立することができる。いくつかの電子メールシステムをネットワークコンピューティング環境１００を介してユーザ１０５にサポートし、提供することができる。例示的電子メールシステムは、Post Office Protocol 3（ＰＯＰ３）を含み、これはＴＣＰ／ＩＰネットワーク上の共通の使用における標準であり、さらにInternet Message Access Protocol（ＩＭＡＰ）を含み、これは電子メールプログラムが電子メール、およびメールサーバ上に格納された掲示板タイプのメッセージへのアクセスを得るための方法である。このような電子メールシステムは、当業者には周知である。
【００４６】
例示的実施形態によれば、ファイルサーバ１５０およびターミナルサーバ１６０、１７０、１８０など、様々なサーバ上の使用負荷のバランシングを、ロードバランシングソフトウェアアプリケーション１７５によって実行し、ネットワークコンピューティング環境１００が効率的な方法において動作することを保証することができる。例えば、ターミナルサーバ１６０、１７０、１８０が共にクラスタ化されて、上述したようなデスクトップコンピューティングを対象とする一式のソフトウェアアプリケーションが維持され、操作された場合には、ロードバランシングアプリケーション１７５が、クラスタにおけるターミナルサーバ間の使用の適切なバランスを保証することができる。
【００４７】
例示的実施形態では、ロードバランシングアプリケーション１７５は、図１において例示されたように、ターミナルサーバ１７０上に存在することができる。別法として、ロードバランシングアプリケーション１７５は、ドメインコントローラ１３０など、ネットワークコンピューティング環境１００の別のコンポーネント上に存在することができる。ロードバランシングアプリケーション１７５をコンピュータサービスプロバイダ１６５によって、コンピュータサービスプロバイダ１６５によって提供されたサービスの使用のバランスをとるために、開発され実施することができる。別法として、ロードバランシングアプリケーション１７５を、コンピュータサービスプロバイダ１６５が動作するアプリケーションサービスプロバイダまたはインターネットサービスプロバイダによって、開発されかつ／または実施することができる。ロードバランシングを、ネットワークコンピューティング環境１００を介して使用可能なサービスの効率的使用を保証する、様々なソフトウェアおよび／またはハードウェアソリューションを介して実施できることを理解されたい。
【００４８】
ユーザ１０５が、ターミナルサーバ１６０などのターミナルサーバから、ソフトウェアアプリケーションを利用するとき、ユーザが以前のセッションから、ターミナルサーバから切断された後、ユーザを特定のターミナルサーバに再接続することができる。ロードバランシングは、ユーザによって望まれたものと同じソフトウェアアプリケーションを含む異なるターミナルサーバにユーザが接続されることを必要とする場合には、ユーザをロードバランシングアプリケーション１７５によって、ターミナルサーバの管理が必要とするように、分離したターミナルサーバ１７０に透過的に転送することができる。本発明の例示的実施形態によれば、本発明のネットワークコンピューティング環境１００のコンポーネントと機能とのインタラクションを、ドメインコントローラ１３０によって管理することができる。いくつかのドメインコントローラ１３０を、ネットワークコンピューティング環境１００の効率的なオペレーションのために必要であるように使用できることを理解されたい。ドメインコントローラ１３０は、ユーザ１０５によってアクセス可能なすべてのサーバコンポーネントおよび機能を含む、ネットワークコンピューティング環境１００のバックエンドのためのディレクトリサービスおよびセキュリティの維持を担うこともできる。
【００４９】
ドメインコントローラ１３０を、２またはそれ以上のドメインコントローラとしてセットアップして、１つのドメインコントローラが故障した場合において冗長性を提供することができる。ドメインコントローラの数を増加して、パフォーマンスを向上させ、より大規模なシステムに対応できることを理解されたい。加えて、ドメインコントローラ１３０の管理機能を、多数のドメインコントローラの間で分割することができる。ネットワークコンピューティング環境１００のセキュリティを維持するため、ドメインコントローラ１３０が、ターミナルサーバ１６０、１７０、１８０の「ロックダウン」状態を操作する。すなわち、ユーザは、実行可能ファイルおよびダイナミックリンクライブラリ（ＤＬＬ）の限定されたセットのみを実行することができる。ユーザは、ファイルサーバ１５０に含まれた自分のプロファイルデータおよびファイルデータのみへのアクセスを有する。ユーザは、ネットワークコンピューティング環境１００のバックエンドをいかなる方法においてもブラウズすることはできず、または他のユーザのプロファイルおよびデータへのアクセスを防止することはできない。ドメインコントローラ１３０は、データファイルの実際の場所を閲覧すること、またはシステムを使用する他者の、データファイルの場所または内容に関する知識を得ることを回避するために使用することもできる。ドメインコントローラ１３０、ウェブサーバ１４０、ファイルサーバ１５０およびターミナルサーバ１６０、１７０、１８０を含むネットワークコンピューティングオペレーティング環境のバックエンドのセキュリティおよびプライバシーは、ドメインコントローラ１３０によって操作されたディレクトリサービスシステム１３５を介して実施される。
【００５０】
ワシントン州レドモンドのMicrosoft Corporationによって作成されたActive Directoryなど、ドメインコントローラ１３０によって操作されたディレクトリサービスシステム１３５は、アプリケーション、ファイル、デバイス（プリンタなど）およびユーザなど、ネットワークベースのエンティティの追跡提供する。ディレクトリサービスシステムは、ネットワークオペレーティングシステムのスイッチボードとして動作して、ユーザとのデータの転送、およびファイルサーバ１５０などのコンポーネントとターミナルサーバ１６０、１７０、１８０との間でデータ転送を監視する。ドメインコントローラ１３０によって維持され、操作されたディレクトリサービスシステムは、ユーザ、それらのデータ、およびユーザによって利用されたアプリケーションを含む分散リソースの間の関係を確立し、制御して、これらのリソースが共に安全かつ効率的に動作できるようにする。
【００５１】
加えて、以下に記載するように、ドメインコントローラ１３０のディレクトリサービスシステムは、ユーザ１０５にネットワークコンピューティング環境１００へのシングルサインオン（single sign-on）を可能にし、コンピュータサービスプロバイダ１６５の、またはイントラネットベースのネットワークコンピューティング環境における組織のシステムアドミニストレータを提供して、内部のデスクトップユーザ、リモートのダイヤルアップユーザ、および外部のｅコマースの顧客のためのセキュリティサービスを管理する。
【００５２】
図１に戻って参照すると、ドメインコントローラ１３０のディレクトリサービスシステム１３５が、ネットワークコンピューティング環境１００の様々なユーザ１０５についての情報を階層オブジェクト指向様式において編成し、格納する。すなわち、ドメインコントローラ１３０は、ディレクトリサービスのその使用を介してオブジェクトを使用し、ユーザ、ユーザのグループ、マシン、デバイスおよびソフトウェアアプリケーションなど、ネットワークリソースを表現する。当業者には周知であるように、オブジェクトを、離散エンティティとして処理することができるコンピュータソフトウェアルーチンからなる、いかなるデータまたはモジュールにすることもできる。
【００５３】
図１のように、ドメインコントローラ１３０のディレクトリサービスシステム１３５は、コンテナを使用して、ユーザ１５２および組織１５４などのユーザおよび／または組織、ルートフォルダまたはコンテナ１５７の下のデータ１５８など、コンテナデバイス下で関係のあるオブジェクトの集まりを表現する。情報は、コンテナにおけるこれらのオブジェクトからなるツリー構造において編成され、これはいくつかのオペレーティングシステムがフォルダおよびファイルを使用して情報をコンピュータ上で編成する方法に類似している。好ましい実施形態によれば、ディレクトリサービスシステム１３５は、２つのタイプの組織単位（ＯＵ）、サービスおよびビジネスに従って構築される。例えば、いくつかの関係のあるソフトウェアアプリケーション１７２、１７４を、サービス組織単位１７１の下で重ねることができる。この構造により、いくつかのクライアントユーザが、アプリケーションサービス組織単位の下の同じアプリケーションを使用することができる。ビジネス組織単位の下で、各ユーザまたは組織は、ビジネス組織単位１５３の下のユーザ１０６、１０７など、組織単位を有する。
【００５４】
ドメインコントローラ１３０のディレクトリサービスシステム１３５は、ネットワーク要素についての情報をオブジェクトの形式において格納する。これらのオブジェクトに、オブジェクトについての特定の特性を記述する属性を割り当てることができる。従って、幅広い範囲の情報をドメインコントローラ１３０のディレクトリに格納して、個々のオブジェクトへのアクセスを厳密にコントロールすることができる。例えば、ターミナルサーバ１７０上に存在する各ソフトウェアアプリケーション１７２、１７４を、そのターミナルサーバ１７０のオブジェクトとして格納することができる。ドメインコントローラ１３０のディレクトリサービスにおいて、どのソフトウェアアプリケーションを特定のユーザが使用するためにサブスクライブしたかについての特定の情報を維持することによって、ドメインコントローラ１３０が、ユーザ１０５によって要求され、使用されたソフトウェアアプリケーションへのアクセスを管理することができる。従って、ターミナルサーバ１７０におけるアプリケーションコンテナの所与のソフトウェアアプリケーションオブジェクトに割り当てられた属性は、ユーザの名前、住所、およびユーザが使用することができるコピー数およびユーザのサブスクリプション期間の持続時間など、そのソフトウェアアプリケーションへのユーザのサブスクリプションに関する情報を含む可能性がある。
【００５５】
ネットワークコンピューティング環境１００のためのセキュリティを提供するため、ドメインコントローラ１３０のディレクトリサービスシステム１３５は、ネットワークコンピューティング環境１００へのシングルサインオンを提供し、これは個人ユーザのデスクトップ構成をロックダウンすること、およびターミナルサーバ１６０、１７０、１８０など、リモートターミナルサーバ上で維持されたソフトウェアアプリケーションおよびレジストリのソフトウェアインストールまたはレジストリ編集など、ユーザのマシンオペレーションへのアクセスを防止することによる。ドメインコントローラのディレクトリサービスシステム１３５は、アクセスコントロール特権を、ネットワークコンピューティング環境１００のバックエンド全体でディレクトリオブジェクトに設定し、個人ユーザまたはユーザのグループが、これらのユーザまたはユーザのグループがアクセスおよび使用をサブスクライブしたデータ、ソフトウェアアプリケーションなどを含む特定のオブジェクトへのアクセスのみを有することができる。ファイルサーバ１５０において維持されたデータのセキュリティは、ドメインコントローラ１３０のディレクトリサービスシステム１３５によって維持され、これは、ファイルサーバ１５０およびターミナルサーバ１６０、１７０、１８０などのネットワークリソースへのアクセスのコントロールにおいて、ユーザ識別の認証を管理することによって行われる。
【００５６】
ユーザが認証され、ネットワークコンピューティング環境１００にログオンされた後、システムのすべてのリソースが保護され、アクセスが、その中に含まれた特定のコンポーネントおよび機能を利用するための、ユーザの特定の許可に基づいて、認可あるいは拒否される。好ましい実施形態によれば、ドメインコントローラ１３０のディレクトリサービスシステム１３５により、ユーザおよび組織が、それらの組織または保護されたファイルを越えたファイル情報およびデータを含む選択されたディレクトリ情報を、エクストラネットのユーザおよびｅコマースの顧客へ安全に拡張して、これらのユーザおよび顧客が、選択されたデータおよびソフトウェアにアクセスできるようにすることができる。
【００５７】
ネットワークコンピューティング環境１００を、所与のアプリケーションサービスプロバイダまたはインターネットサービスプロバイダまたは他のコンピュータサービスプロバイダ１６５によって操作できることを、当業者には理解されたい。従って、ネットワークコンピューティング環境１００の管理が、このような組織のシステムアドミニストレータによって、ドメインコントローラ１３０のディレクトリサービスシステム１３５の管理を介して実行される。別法として、いくつかのコンピュータサービスプロバイダ１６５が、単一のネットワークコンピューティング環境に存在することができ、これはより大規模なコンピューテイングサービスプロバイダ１６５によってコントロールされる。すなわち、いくつかのコンピュータサービスプロバイダを、ネットワークコンピューティング環境１００内で重ねて、サービスをそれらのユーザ１０５へ、より大規模なコンピュータサービスプロバイダを介して提供することができ、これがシステムのサービス、機能およびセキュリティを、ドメインコントローラ１３０を介して管理する。
【００５８】
上述したように、ユーザまたはユーザのグループは、所与のコンピュータサービスプロバイダ１６５のサービスをサブスクライブした後、ユーザまたはユーザのグループは、それらのサービスにアクセスするために、ネットワークコンピューティング環境１００にログオンすることができる。図４は、本発明のシステムによって実行されるステップのオペレーショナルフローを例示し、これはユーザをネットワークコンピューティング環境１００に接続すること、および分散ネットワークコンピューティング環境内でコンピューティングサービスをユーザおよびユーザのグループへ提供することにおけるものである。
【００５９】
オペレーショナルフローは、ステップ５００で開始し、ステップ５０５へ移動し、ユーザがネットワークコンピューティング環境１００へログオンし、これはユーザのコンピュータサービスプロバイダ１６５のサービスへのアクセスを、コンピュータサービスプロバイダ１６５のインターネットベースのウェブページを介して要求することによって行う。ステップ５１０で、ユーザのログオン要求がドメインコントローラ１３０へ、認証のために転送される。ステップ５１５で、ドメインコントローラがユーザにログオン情報を問合わせる。当業者には理解されるように、ログオン情報は、適切にユーザを認証するために設計されたいくつかの異なるタイプの情報を含む可能性があり、これにはパスワード、ユーザ識別番号、住所情報、プライベートコードなどが含まれる。ステップ５２０で、ユーザは、要求された認証情報を提供し、ステップ５２５で、ドメインコントローラがユーザを認証し、ユーザとコンピュータサービスプロバイダ１６５との間の接続を、シングルログオン（single-logon）手順として開き、これはドメインコントローラ１３０によって、そのディレクトリサービスシステム１３５の機能を介して管理される。
【００６０】
ステップ５３０で、コンピュータサービスプロバイダ１６５がオンラインでコンピューティングサービスウェブページをユーザ１０５へ戻す。オンラインサービスウェブページは、コンピュータサービスプロバイダ１６５のターミナルサーバ１６０から、ActiveXコントロールをユーザのコンピュータ２０上へインストールする。上述したように、ActiveXコントロールは、ユーザのコンピュータ２０上にインストールされ、所望のオペレーティングシステムのエミュレーションを提供し、ユーザのデスクトッププロファイル、ソフトウェアアプリケーションおよびデータのための、コンピュータサービスプロバイダ１６５へのユーザアクセスを提供する。
【００６１】
ステップ５４０で、コンピュータサービスプロバイダ１６５は、ユーザからのログオン情報を要求する。コンピュータサービスプロバイダ１６５へのログオンは、ネットワークコンピューティング環境１００へのログオンから分離しており、このときコンピュータサービスプロバイダ１６５は、ネットワークコンピューティング環境１００上で動作するいくつかのコンピュータサービスプロバイダのうち１つであることを理解されたい。しかし、コンピュータサービスプロバイダ１６５が、ネットワークコンピューティング環境１００上の唯一のサービスプロバイダである場合には、シングルログオンおよび認証手順を使用して、コンピュータサービスプロバイダ１６５のサービスへ、ドメインコントローラ１３０を介して直接ログオンすることができる。
【００６２】
ステップ５４５で、ユーザがログオン情報をコンピュータサービスプロバイダ１６５へ提供する。ステップ５５０で、コンピュータサービスプロバイダ１６５は、ドメインコントローラに、ユーザについての情報を問合わせて、適切にユーザを認証し、これはユーザ１０５によって提供された情報を、ドメインコントローラ１３０によって維持された情報と合致させることによって行う。
【００６３】
ユーザが適切に、コンピュータサービスプロバイダ１６５のサービスへのアクセスを有するものとして認証された後、ドメインコントローラ１３０が、ユーザ１０５へ提供されるサービスの管理を開始し、これはユーザが先にターミナルサーバセッションから切断しているかどうかを判定することによって行う。そうである場合には、ユーザ１０５が同じターミナルサーバ１６０、１７０、１８０へ再接続され、ユーザによるコンピュータサービスプロバイダ１６５のサービスの利用が、ユーザに対してログオン時に透過的になるようにする。ユーザを、先に接続されたターミナルサーバに再接続することは、上述したようにロードバランシングアプリケーション１７５によって命令される。ロードバランシングのために、分離したターミナルサーバ１８０で維持された所望の機能にユーザを導くことが必要である場合、ロードバランシングアプリケーション１７５がそのように実行して、効率的にネットワークリソースを管理することができる。従って、ステップ５５５で、ユーザが先にターミナルサーバセッションから切断されていた場合、ステップ５６０で、効率的なロードバランシングが可能である場合、ユーザを使用中のターミナルサーバに再接続することができる。
【００６４】
ステップ５５５で、ユーザ１０５がコンピュータサービスプロバイダ１６５の先のターミナルサーバセッションから切断されていないか、あるいは切断していなかった場合、ステップ５６５でログオンが継続し、ユーザがコンピュータサービスプロバイダ１６５のターミナルサーバへ渡され、これはユーザのデスクトッププロファイルをユーザに提供するため、かつ所望のデータおよびアプリケーション機能へのユーザの接続のためである。ユーザが先に使用中のターミナルサーバから切断していなかった場合、ユーザが適切なターミナルサーバに再度導かれ、ネットワークリソースの利用のバランスを効率的にとるような形で所望のソフトウェアアプリケーション機能およびデータをユーザに提供する。すなわち、ロードバランシングアプリケーション１７５は、ユーザを、所望の機能およびデータを含む所与のターミナルサーバ１６０、１７０、１８０に割り当て、ユーザ１０５のための利用容量も有する。
【００６５】
ステップ５７５で、コンピュータサービスプロバイダ１６５は、ユーザのコンピュータ２０とのダイアログを、ActiveXコントロール１１０を介して開いて、ユーザに、ユーザのデスクトッププロファイルとデータとソフトウェアアプリケーションとを提供する。ステップ５８０で、コンピュータサービスプロバイダ１６５は、ファイルサーバ１５０に、ユーザのプロファイルおよびデスクトップ構成を問合わせる。ユーザのデスクトッププロファイルがユーザに提供された後、ユーザのコンピュータ上に、ユーザのデスクトップが図３を参照して記載したように表示される。すなわち、ユーザのデスクトップが、ユーザによって設定され、ユーザによって望まれた厳密な構成において表示される。ユーザの場所またはユーザによって利用されたコンピュータにも関わらず、そのコンピュータは、コンピュータサービスプロバイダの技術と互換性を有する限り、ユーザのデスクトップが同じように表示され、ユーザに満足かつ透過的なユーザ体験をいかなるリモートの場所からも与える。同様に、ユーザによってサブスクライブされたすべてのソフトウェアアプリケーション、およびユーザによって維持されたすべてのデータファイルは、ユーザがログオンするいかなるリモートの場所からも、ユーザのデスクトップを介してアクセス可能となる。
【００６６】
ステップ５８５で、ドメインコントローラ１３０は、そのディレクトリサービスシステム１３５を介して、ユーザのファイル、データ、アプリケーション、および電子メール並びにメッセージングサービスへの経路を、ユーザ１０５による使用のために確立する。ステップ５９０で、ドメインコントローラが、ネットワークコンピューティング環境１００のコンポーネントおよびリソースを、ユーザ１０５による無許可のアクセスおよび／または使用から保護し、維持する。
【００６７】
本明細書に記載したように、本発明は、ソフトウェアアプリケーション、データの格納および検索、および電子メール並びにメッセージングサービスへのユーザアクセスを、ネットワークコンピューティング環境内で、インターネットを介してまたはイントラネットを介して提供する。上記明細書、実施例およびデータは、本発明の組成の製作および使用の完全な説明を提供する。本発明の多数の実施形態を、本発明の精神および範囲から逸れることなく作成することができるので、本発明は特許請求の範囲において存在する。
【図面の簡単な説明】
【図１】分散ネットワークコンピューティング環境のコンピュータユーザとコンポーネントの間のインタラクションを示す図である。
【図２】本発明の例示的実施形態のためのオペレーティング環境を提供するコンピュータシステムを示す図である。
【図３】例示的アイコンおよびコントロールを示す、コンピュータにより生成されたユーザインターフェイスウィンドウの画面表示を示す図である。
【図４】分散ネットワークコンピューティング環境においてコンピューティングサービスをユーザおよびユーザのグループに提供することにおいて、本発明のシステムによって実行されるステップのオペレーショナルフローを示す図である。
【符号の説明】
１００  ネットワークコンピューティング環境
１０５  ユーザ
１１０  ActiveXコントロール
１２０  インターネット
１３０  ドメインコントローラ
１３５  ディレクトリサービス
１４０  ウェブサーバ
１５０  ファイルサーバ
１５１、１５７  フォルダ
１５３  ビジネスＯＵ
１６０、１７０、１８０  ターミナルサーバ
１６５  コンピュータサービスプロバイダ
１７１  サービスＯＵ
１７２、１７４  ソフトウェアアプリケーション
１７５  ロードバランシングアプリケーション
【図１】
0004056769.tif 000002
【図２】
0004056769.tif 000003
【図３】
0004056769.tif 000004
【図４】
0004056769.tif 000005