説明

多数のクライアント−サーバ・セッションおよび以前のセッションへのユーザのダイナミック再接続をサポートするサーバ・オペレーティング・システム

【課題】ユーザが2つの異なったクライアント・コンピュータを使用する場合でも、ユーザが1つのセッションを開始し、その後でそのセッションに再接続できるサーバ・オペレーティング・システムを提供する。
【解決手段】ユーザがサーバに対し第1のクライアントを介して接続したとき、サーバのセッション・マネージャは、そのユーザに対する第1のセッションを作成する。その後ユーザが、サーバに第2のクライアントを使って再接続したとき、第2のセッションの作成を開始する。しかし、そのユーザが第1のセッションに関係があることを認識すると、第1のセッションを、第2クライアントのシステム・コンフィギュレーションに合うように適合させる。次に、第2のセッションを、再構成した第1セッションに再関連させて、そのユーザが、たとえ異なったクライアントからログオンしたときでも、このユーザの元のセッションに戻るようにする。

【発明の詳細な説明】
【技術分野】
【0001】
(技術分野)
本発明は、クライアント−サーバ・コンピュータ・システムに関するものである。詳細には、本発明は、クライアント−サーバ・コンピュータ・システムにおけるサーバ上で実行するサーバ・オペレーティング・システムに関する。
【背景技術】
【0002】
(発明の背景)
ほとんどの人は、コンピュータ・オペレーティング・システムに通常慣れている。オペレーティング・システムとは、他のコンピュータ・プログラムが走ることができる環境を提供するものである。このオペレーティング・システムは、処理リソース、メモリ割当、I/Oデバイスのようなシステム・リソースを管理することにより、他のプログラムがそれらリソースを容易に利用できるようにする。オペレーティング・システムのあるものは、マルチタスキングであり、これは、それらが2以上のタスクの同時動作をサポートすることを意味する。マルチタスキングのオペレーティング・システムは、それらリソースを種々のプロセス間で分割し、各プロセスに対し、メモリ、処理リソースおよび少なくとも1つの実行スレッドへのアクセスを与える。
【0003】
このクライアント−サーバ環境においては、サーバ・オペレーティング・システムはまた、クライアント・ベースのアプリケーションとの通信相互作用を取り扱うためにも呼び出す。クライアント・オペレーティング・システムは、サーバを見つけ、そしてそのサーバとの接続を要求し、そしてこのサーバは、リソースを割り当てることによってそのクライアントからの要求を取り扱う。
【0004】
1つの周知のサーバ・オペレーティング・システムは、マイクロソフト社からのWindows(登録商標) NTサーバ・オペレーティング・システムである。このWindows(登録商標) NTサーバ・オペレーティング・システムは、マルチタスキングで、拡張可能であり、スケーラブルなオペレーティング・システムであり、これは、標準のパーソナル・コンピュータ上に実装することができる。このWindows(登録商標) NTサーバ・オペレーティング・システムは、十分に文書化されている。背景知識として、読者は、クラスタ(Helen Custer)著でマイクロソフト・プレスから出版された“Windows(登録商標) NTの内部(Inside Windows(登録商標) NT)”と題する書籍を参照されたい(copyright 1993)。
この書籍は、この言及により本文に含めるものとする。
【0005】
多くのクライアント−サーバ・システムにおいては、クライアント・コンピュータは、それ自体、完全に機能する汎用コンピュータであって、それ自身のオペレーティング・システム、処理リソース、メモリ・リソース等を有している。このようなクライアントの例には、ワークステーション、デスクトップ・コンピュータ、ラップトップ等が含まれる。しかし、クライアント−サーバ・システムのあるものにおいては、このクライアント・コンピュータは、単純なマシンであって、汎用コンピュータよりも少ない機能が実装されている。例えば、クライアントは、端末として実現することもでき、これは、代表的には、サーバ・コンピュータへのアクセスをネットワークを介して可能にするのに十分な機能しか提供していない。この端末は、オペレーティング・システムを有しておらず、そのオペレーティング・システムとアプリケーションとは、サーバに常駐し、そして処理はサーバにおいて生ずる。
【0006】
より最近になって、“ネットワーク・コンピュータ”あるいは“NC”として知られている低コストのコンピュータは、ネットワークへのアクセスを提供するための手段として導入されてきている。ネットワーク・コンピュータは、ディスプレイと、キーボードと、ネットワーク・ポートと、そして限られた処理能力とを有している。ネットワーク・コンピュータは、ある程度の限られたローカル処理を提供することができるが、ほとんどの処理に関してはサーバに主として頼っている。現在利用可能なネットワーク・コンピュータは、主として、Java(登録商標)(サン・マイクロシステムズ社が導入した言語)で書かれたアプリケーションを走らせるように構成されている。これらNCに近いものとしては、“Net PC”として知られた別のタイプの低コストのコンピュータがあり、これは、ウィンドウズ(登録商標)(Windows(登録商標))ベースのアプリケーションとJava(登録商標)ベースのアプリケーションの双方を走らせることができる。
【0007】
シトリックス・システムズ社(Citrix Systems Inc.)から“ウィンフレーム(WinFrame)”の名称で売られている技術は、Windows(登録商標) NTサーバ・オペレーティング・システムを拡張することによって、接続されたクライアントに対する多数のクライアント−サーバ・ウィンドウ処理セッション(clientserver windowing sessions)をサポートし、これにおいて、各セッションは、それら接続されたクライアントに対するウィンドウ処理環境を提供する。このWinFrame技術は、本質的には、USER,CONSOLEおよびGDIドライバのような低カーネル・レベル・サポート・ルーチンを複製して、その同じサーバ上で多数のウィンドウ処理セッションを提供する。各セッションは、ある1つの特定のクラッチのシステム・コンフィギュレーション(すなわち、ディスプレイ、マウス、キーボード)をサポートするように適合可能である。
【0008】
このWinFrame技術では、1つのクライアントは、Windows(登録商標) NTサーバに接続しそしてウィンドウ処理セッションを開始することができる。このユーザに対しては、これは、このクライアントが、それ自身のWindows(登録商標)ブランドのオペレーティング・システムを走らせているスタンドアロンのWindowイネーブル式のコンピュータであるかのように見える。しかし、このセッションは、実際には、クライアントとかリモートのサーバ・コンピュータ上で生じており、そしてクライアントは、単にこのセッションに対するエントリを提供するローカルのグラフィカル・ユーザインターフェースを走らせているに過ぎない。この点で、WinFrame技術は、端末、ネットワーク中心のコンピュータのような低インテリジェントのクライアント・コンピュータにとっては特にうまく適しているが、それは、このクライアントが、それ自身のオペレーティング・システムを走らせることができることを必要としないからである。しかし、WinFrame技術は、十分にイネーブルされたクライアントに対しても同等にうまく適している。
【0009】
シトリックスのWinFrame技術に関する1つの問題は、ユーザの視点からの使い易さが欠けていることである。各セッションは、ある1つの特定のクライアント・マシンに拘束され、したがって異なった物理的マシンからそのサーバに実際にログオンすることのあるユーザの要求を考慮していない。
【0010】
この問題を例示するため、ある一般的なシナリオについて考える。あるユーザは、ユーザの職場にあるクライアント・コンピュータからWindows(登録商標) NTサーバにログオンするとする。この職場のクライアントは、デスクトップPCであって、1024 x 768の解像度の大きな20″VGAディスプレイを有している。退社時刻に、このユーザは、一時的にそのセッションをホールトし、そしてサーバとの接続を断つ。その夜遅く、このユーザは、640 x 480の解像度の11″カラー・ディスプレイをもつラップトップ・コンピュータである家庭のコンピュータからそのサーバへ再接続する。このラップトップがサーバに接続すると、シトリックスWinFrame技術は、この新たなクライアント・マシンに対し新たなセッションを作成する。このユーザは、異なったクライアントを用いているため、その古いセッションに再接続することが許されない。その結果、このユーザの職場のコンピュータで開始した以前のセッションは、そのラップトップ・コンピュータにポートされないが、それは、サーバが、それらを2つの区別できるマシンで開始した2つの区別できるセッションとして理解するからである。
【発明の概要】
【発明が解決しようとする課題】
【0011】
したがって、この問題を克服しそしてこのユーザのニーズによりうまく対処できるようにサーバ・オペレーティング・システムを改良する必要がある。
【図面の簡単な説明】
【0012】
【図1】図1は、クライアント−サーバ・コンピュータ・システムを示す図。
【図2】図2は、クライアント−サーバ・コンピュータ・システムにおけるサーバ・コンピュータのブロック図。
【図3】図3は、サーバ・オペレーティング・システムの1部分を示すブロック図であって、単一のクライアント−サーバ・ウィンドウ処理セッションを示している。
【図4】図4は、図3と同様のブロック図であるが、多数のクライアント−サーバ・ウィンドウ処理セッションをさらに示している。
【図5】図5は、図3と同様のブロック図であるが、ユーザがサーバに異なったクライアントからログオンする場合でも、そのユーザを以前のウィンドウ処理セッションと再関連させるダイナミック再関連プロセスをさらに示している。
【図6】図6は、図3と同様のブロック図であるが、ユーザがサーバに異なったクライアントからログオンする場合でも、そのユーザを以前のウィンドウ処理セッションと再関連させるダイナミック再関連プロセスをさらに示している。
【図7】図7は、この再関連プロセスにおけるステップを示すフロー図。
【図8】図8は、サーバ・オペレーティング・システムの部分のブロック図であって、このオペレーティング・システムが、サーバに対し同じクライアントからアクセスする多数のユーザに対し、どのように多数のセッションをサポートするかを示している。
【発明を実施するための形態】
【0013】
(発明の摘要)
本発明は、多数のクライアント−サーバ・セッションをサポートしそしてユーザがあるセッションを開始し、そしてその後に、ユーザが2つの異なったクライアントを用いる場合でもそのセッションにダイナミックに再接続できるようにするサーバ・オペレーティング・システムに関係している。
【0014】
1つの実現例によれば、オペレーティング・システムは、サーバ上における多数のクライアント−サーバ・セッションを可能にするマルチユーザ・セッション・マネージャを有する。さらに、このオペレーティング・システムは、1つ以上のプロトコル・スタックを管理するマルチユーザ・スタック・プロトコル・マネージャとを有し、各プロトコル・スタックは、クライアント−サーバ・セッションの間に、対応するクライアントとの通信を容易にする。
【0015】
ユーザがサーバに対し第1のクライアントを介して接続したとき、スタック・プロトコル・マネージャは、この第1のクライアント−サーバ接続に対し第1のプロトコル・スタックを割り当てる。次に、該セッション・マネージャは、そのユーザに対する第1のセッションを作成する。記述する実現例においては、前記セッションは、リモート・クライアント上でウィンドウ処理グラフィカル・ユーザインターフェース環境をサポートするウィンドウ処理セッションである。このセッションは、1つのウィンドウ処理セッション環境をサポートする種々のソフトウェア・モジュールから成り、そしてキーボード・ドライバ、ディスプレイ・ドライバ、プロトコル・ドライバのような種々のハードウェア・ドライバを含む。第1のセッションにおいて用いるこれらドライバは、第1のクライアントのシステム・コンフィギュレーションに合うように選択する。
【0016】
しばらくして後、このユーザが、第1のセッションを止め、そして第1のクライアントをサーバから切断する。サーバは、ユーザのこのセッションをサーバにおいて保持し、これにより、このユーザが後でこれに戻ることができるようにする。しかし、ユーザが第1コンピュータをサーバから切断する前にこのセッションを明らかに終了させた場合、このセッションを終わらせることができる。
【0017】
後の時点で、ユーザがサーバに第2のクライアントを使って再接続する。この第2クライアントは、第1クライアントのものとは異なったシステム・コンフィギュレーションを有する。1例のシナリオとして、ユーザは、最初にユーザの職場のデスクトップ・コンピュータを介してそして後で、ユーザの家庭のラップトップ・コンピュータを介して、サーバにログオンすることがある。第2クライアントは、サーバに対し第2のクライアント−サーバ接続を介して接続し、そしてスタック・マネージャは、第2のプロトコル・スタックを第2のクライアント−サーバ接続に割り当てる。このセッション・マネージャは、次に、このユーザに対し新たな第2のセッションの作成を開始する。
【0018】
しかし、このプロセスの間、セッション・マネージャは、このユーザが第1セッションに関係があることを認識する。セッション・マネージャは、第1セッションを、第2クライアントのシステム・コンフィギュレーションに合うように適合させる。すなわち、第1セッションは、1つ以上のコンフィギュレーション・パラメータから成る新たなセットで再構成することによって、第2クライアントの異なったシステム・コンフィギュレーションをサポートする。
【0019】
次に、セッション・マネージャは、第2プロトコル・スタックをその再構成した第1セッションと再関連させ、これにより、たとえユーザが異なったクライアントからログオンしたときでも、ユーザがこのユーザの元のセッションに戻れるようにする。この適合は、サーバにおいてのみ生起し、したがってユーザには不可視である。この結果、ユーザは、単に同じセッションを見るに過ぎない。例えば、変更したディスプレイ・ドライバの場合には、ユーザは、同じセッションを、第2クライアントのディスプレイに対し再フォーマットしているものであるが、それを見ることになる。
【0020】
本発明の別の面は、ダイナミック再関連を使用して、サーバに対し単一のクライアント・コンピュータから接続する多数のユーザを収容することに関係している。この状況の1例として、2人の銀行金銭出納係が同時に単一のコンピュータを使用することが一般的である。この場合、サーバは、異なったユーザがサーバに対し同じクライアントを介してログオンするとき検出する。この検出時に、サーバは、このクライアント−サーバ接続を取り扱うプロトコル・スタックを、現在のユーザと関係があるセッションに再関連させる。このようにして、サーバは、同じコンピュータを使用する多数のユーザをサポートすることができる。
【0021】
(好ましい実施形態の詳細な説明)
図面においては、同じコンポーネントおよび特徴に対しては同じ参照番号を用いる。
【0022】
図1は、クライアント−サーバ・コンピュータ・システム20を示しており、これは、サーバ・コンピュータ22を備え、これは、多数のクライアント24(1)−24(5)に対しネットワーク26を介して接続している。クライアント−サーバ・コンピュータ・システム20は、モデムを介するダイレクト・ダイアルアップ、企業LAN(ローカル・エリア・ネットワーク)、WAN(ワイド・エリア・ネットワーク)およびインターネットを含む多くの異なったアーキテクチャを代表するものである。ネットワーク26は、多くの方法で実現して、有線ベースに技術、無線技術の両方を含む、そのようなネットワーキング・コンテキストをサポートすることができる。本発明の種々の面は、1つの特定のネットワーク・アーキテクチャあるいはネットワーク技術に限定されるものではない。
【0023】
サーバ22は、好ましくはWindows(登録商標) NTサーバとして実現し、これは、ウィンドウ処理ユーザ・インターフェース環境をサポートする。サーバ22は、説明の都合上このコンテキストで説明する。サーバ22のより詳細な説明は、図2を参照して以下で行う。しかし、分かるように、サーバ22は、Windows(登録商標) NT以外のオペレーティング・システムを使って実現することもできる。
【0024】
クライアント24(1)−24(5)は、サーバ22にネットワーク26を介して接続することがある種々の種類のコンピュータを表している。クライアント24(1)は、在来のデスクトップ・パーソナル・コンピュータ(PC)であり、これは、ローカルのオペレーティング・システムと、処理ユニットと、そしてストレージ・システムとを所有している。1つの例として、デスクトップ・クライアント24(1)は、Windows(登録商標) 95またはWindows(登録商標) 98のような、マイクロソフト社からのWindows(登録商標)ブランドのオペレーティング・システムを実装した汎用PCである。デスクトップ・クライアント24(1)は、スタンドアロンのコンピュータであって、これは、主として、サーバとインターフェースすることにより、ローカルに格納されていないファイルまたは他の情報にアクセスする。
【0025】
クライアント24(2)は、ポータブルのラップトップ・コンピュータとして示しており、これは、ネットワーク26に対し、在来のネットワーク・カードまたはダイアルアップ・モデム接続を介して接続することができる。このラップトップ・コンピュータ24(2)もまた、完全な装備をもつスタンドアロンのコンピュータであって、それ自身のオペレーティング・システム、処理ユニットおよびストレージ・システムを有するように構成することができる。このラップトップ・コンピュータ24(2)も同様に、Windows(登録商標) 95またはWindows(登録商標) 98のようなWindows(登録商標)ブランドのオペレーティング・システムを走らせるように構成することができる。
【0026】
クライアント24(3)は、ハンドヘルドのPCであり、これは、一般に汎用コンピュータよりも少ない機能しか備えていない。しかし、ハンドヘルドPC24(3)は、好ましくは、マイクロソフト社からのWindows(登録商標) CEのようなWindows(登録商標)ブランドのオペレーティング・システムを装備している。
【0027】
クライアント24(4)は、端末コンピュータであり、これは、最小のローカル処理でしかもローカル・メモリがほとんどない低コストのマシンである。この端末コンピュータは、ディスプレイと、キーボードと、マウス(オプション)と、そしてサーバに接続するのに十分なインテリジェンスとを備えている。全てのアプリケーションはサーバにおいて走り、そしてこの端末は、単に、サーバ・ベースの処理に対する接続ポイントを提供するだけである。
【0028】
クライアント24(5)は、ネットワーク・コンピュータ(Network Computer又はNC)またはNet PCのようなネットワーク中心のコンピュータ(networkcentric computer)を表している。このネットワーク中心コンピュータ・クライアント24(5)は、主として、サーバ・ベースのアプリケーションの実行を容易にするが、Windows(登録商標)ベースのあるいはJava(登録商標)ベースのアプリケーションを走らせるため、ある程度の限られた処理能力しか有していない。
【0029】
サーバ・コンピュータ
図2は、サーバ・コンピュータ22の例示的実現例を示しており、これは、Windows(登録商標) NTオペレーティング・システムを装備して構成した汎用コンピュータとして実現している。サーバ22は、処理ユニット(CPU)32、システム・メモリ34、およびシステム・メモリ34から処理ユニット32までを含む種々のシステム・コンポーネントを結合するシステム・バス36を含む。システム・バス36は、種々のバス・アーキテクチャのいずれかとして実現することができ、これは、メモリ・バスまたはメモリ・コントローラ、周辺バス、およびローカル・バスを含む、種々のバス・アーキテクチャの内の任意のものを使用する。
【0030】
システム・メモリ34は、リード・オンリ・メモリ(ROM)38、およびランダム・アクセス・メモリ(RAM)40を含む。基本入出力システム42(BIOS)は、ROM38に格納してある。
【0031】
サーバ22は、ハード・ディスクまたはハード・ディスク・アレイの読み取りおよび書き込みを行うハード・ディスク・ドライブ44、リムーバブル磁気ディスク48の読み取りおよび書き込みを行う磁気ディスク・ドライブ46、並びにCD−ROMまたはその他の光媒体のようなリムーバブル光ディスク52の読み取りおよび書き込みを行う光ディスク・ドライブ50、の内の1つ以上を有する。ハード・ディスク・ドライブ44、磁気ディスク・ドライブ46、および光ディスク・ドライブ50は、ハード・ディスク・ドライブ・インターフェース54、磁気ディスク・ドライブ・インターフェース56、および光ドライブ・インターフェース58によって、それぞれシステム・バス36に接続してある。これらのドライブおよびそれに関連するコンピュータ読み取り可能媒体は、コンピュータ読み取り可能の命令、データ構造、プログラム・モジュール、およびサーバ22用のその他のデータの不揮発性記憶を行う。
【0032】
ハード・ディスク、リムーバブル磁気ディスク48およびリムーバブル光ディスク52について記述したが、データを格納するのに他のタイプのコンピュータ読み取り可能媒体を使用することができる。このような他の媒体は、磁気カセット、フラッシュ・メモリ・カード、ディジタル・ビデオ・ディスク、ベルヌーイ・カートリッジ、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)等を含む。さらに、サーバ22は、RAID(独立ディスクの冗長アレイ)ストレージ・システムのような独立のストレージ・システム上に格納したデータを供給するように構成することもできる。
【0033】
多数のプログラム・モジュールは、ハード・ディスク、磁気ディスク48、光ディスク52、ROM38またはRAM40上に格納することができる。これらプログラムは、サーバ・オペレーティング・システム60、1つ以上のアプリケーション・プログラム62、その他のプログラム・モジュール64、およびプログラム・データ66を含む。
【0034】
ユーザは、キーボード68およびマウス70のような入力デバイスによって、コマンドおよび情報をサーバ22に入力することができる。他の入力デバイス(図示せず)として、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星パラボラアンテナ、スキャナ等を含むことができる。これらおよびその他の入力デバイスは、多くの場合、システム・バス36に結合したシリアル・ポート・インターフェース72を介して、処理ユニット32に接続しているが、代替的には、パラレル・ポート、ゲーム・ポートまたはユニバーサル・シリアル・バス(USB)のようなその他のインターフェースによって接続することもできる。
【0035】
モニタ74または別のタイプのディスプレイ・デバイスも、ビデオ・アダプタ76のようなインターフェースを介して、システム・バス36に接続する。サーバ・コンピュータ22は、T1またはT3のインターネット接続のような、ネットワーク26を介する通信を確立するため、ネットワーク・インターフェースまたはアダプタ78,モデム79または他の手段を有する。モデム79は、クライアントからダイアルアップ接続を容易にする。
【0036】
概略のソフトウェア・アーキテクチャ
コンピュータ・システム20は、クライアント24(1)−24(5)がサーバ22上でWindows(登録商標) ブランドのオペレーティング・システム並びにアプリケーションを走らせることができるようにするソフトウェア・アーキテクチャを実装している。このソフトウェア・アーキテクチャは、サーバ・ベースのマルチクライアント・コア、クライアント・ベースのモジュール、およびサーバとクライアントとの間の通信を可能にするリモート・プロトコルを備えている。
【0037】
サーバ・ベースのマルチクライアント・コアは、サーバが、多数の同時のクライアント・セッションをホスト(host)することができるようにする。マルチクライアント・コアは、オペレーティング・システム60の1部分として常駐し、そしてプロセッサ32上で実行する。このマルチクライアント・コアは、ウィンドウ処理イネーブル式のクライアント(すなわち、デスクトップ・クライアント24(1)、ラップトップ・クライアント24(2)、ハンドヘルドPCクライアント24(3)のような、ローカルのウィンドウ処理オペレーティング・システムを走らせることができるクライアント)、並びに非ウィンドウ処理クライアント(すなわち、端末クライアント24(4)およびネットワーク中心クライアント24(5)のような、ローカルのウィンドウ処理オペレーティング・システムを走らせることができないクライアント)との双方をサポートする。
【0038】
このマルチクライアント・サーバ・コアは、それらクライアントの内の任意のものが、サーバにログインしウィンドウ処理セッションをサーバにて走らせることができるようにする。1実施形態においては、マルチクライアント・サーバ・コアは、シトリックスWinFrame技術を実装し、これは、Windows(登録商標) NTサーバ・オペレーティング・システムを拡張することにより、多数のクライアントに対し多数のウィンドウ処理環境をサポートする。WinFrame技術は、図3および図4を参照して以下に詳述する、クライアント−サーバ・ウィンドウ処理セッションを複製する手段を提供する。しかし、マルチクライアント・サーバ・コアは、その基本のWinFrame技術を超えるものであって、サーバにおけるウィンドウ処理セッションを維持し、かつユーザが異なったクライアントを使って再接続したときでもユーザをダイナミックにそれらのセッションに再接続する手段を提供する。
【0039】
このクライアント・ベースのモジュールは、クライアントのメモリ内に常駐し、そしてクライアントの処理ユニット上で実行する。このクライアント・ベース・モジュールは、グラフィカルのウィンドウ処理ユーザ・インターフェース(UI)を走らせるコードを含んでいる。このコードは、端末、ネットワーク中心コンピュータ、Windows(登録商標)イネーブル式コンピュータ(Windows(登録商標)enabled computers)、UNIX(登録商標)ベースのコンピュータ、DOSベースのコンピュータを含む、広範なハードウェア上で走ることができる。ユーザに対しては、クライアントは、ウィンドウ処理オペレーティング・システムのローカル・バージョンを走らせているかのように見えるが、ただしこのオペレーティング・システムの機能は全てサーバにおいて発生している。
【0040】
本ソフトウェア・アーキテクチャのプロトコル・コンポーネントは、クライアントが、ネットワークに接続するのを可能にし、そしてウィンドウ処理UIをユーザに対し提示する。システム20において使用できる1つの適当なプロトコルは、MSリモート・デスクトップ・プロトコル(MS Remote Desktop Protocol)であり、これは、T.128/T.120プロトコル(国際標準マルチチャンネル会議プロトコル)の高度にスケーラブルな派生物である。T.128/T.120は、周知のプロトコルであり、したがって詳細な説明はしない。T.128/T.120に関する更なる情報については、読者は、国際電気通信連合(ITU)からのT.128/T.120標準を参照されたい。尚、これは、言及により本文に含めるものとする。
【0041】
従来技術のクライアント−サーバ・システムとは対照的に、コンピュータ・システム20は、特定のクライアント・コンピュータをサポートするのではなく、ユーザのニーズをサービスするものとしてサーバ・ネットワークのビューを行うように適合させてある。この概念シフトは、コンピュータ・システム20が、どのクライアント24をユーザがサーバ22をアクセスするのに用いていようともそのユーザをサポートすることを意味している。従来技術のクライアント−サーバ・システムは、代表的には、マシン中心の見方を強調したものであり、各々の接続を、特定のクライアント・コンフィギュレーションのニーズに関して扱う。
【0042】
この二分法の1例として、背景部分で示したシナリオでは、職場のクライアント・コンピュータからサーバにログオンしたユーザが、セッションを開始し、そしてこのセッションをこれを終了させずに止め、そして後で家庭のコンピュータからログオンする場合を記述している。従来技術のアーキテクチャでは、サーバは、各クライアントに対し新たなセッションを作成するが、それは、これらが、異なったシステム・コンフィギュレーションをもつ2つの異なったクライアントから生じたものだからである。ユーザが第1のクライアントからログオンしたとき、サーバは、この特定のクライアント・コンピュータをサポートするのに特有のディスプレイ・ドライバ、キーボード・ドライバ等を利用するセッションを作成する。サーバはまた、このクライアント・コンピュータと通信するのに適した1つのタイプのプロトコルを使用することになる。
【0043】
ユーザが第2のクライアントからログオンしたとき、サーバは、この第2のクライアント・コンピュータをサポートするのに特有の、異なったディスプレイ・ドライバ、キーボード・ドライバ等をロードする別のセッションを作成する。サーバはまた、異なったタイプの通信プロトコルを用いることもできる。こうして、サーバは、同じユーザがこのユーザがサーバに接続するマシンに無関係に同じセッションを続行したい場合でも、マシン依存性のセッションを作成する。この従来技術は、マシン中心のアーキテクチャを表している。
【0044】
一方、コンピュータ・システム20は、ユーザ中心のものである。上記のシナリオにおいて、コンピュータ・システム20は、ユーザがサーバに対し1つのクライアントから接続し、セッションを開始そしてこれを終了せずに停止し、そして後でこの同じセッションに異なったクライアントから戻るのを可能にする。サーバは、この新たなクライアントに対し新たなセッションを作成することはせず、むしろ、元のセッションを、第2のクライアントをサポートするため適当なドライバ、プロトコルおよびコンフィギュレーション・パラメータと適合させる。
【0045】
例えば、ユーザが最初に、1024 x 768の解像度の大きな20″VGAディスプレイをもつ職場のコンピュータからログオンするとする。サーバは、1024 x 768の解像度の20″VGAディスプレイをサービスする適当なディスプレイ・ドライバでウィンドウ処理セッションを確立する。ユーザがその後でユーザ自身の640 x 480の解像度の11″ディスプレイをもつラップトップ・コンピュータからログオンするとき、サーバは、新たなセッションの確立を開始する。しかし、このセッション開始プロセスの間において、サーバは、このユーザが以前のセッションと関係があったことを認識する。このとき、サーバは、640 x 480の解像度の11″ディスプレイに適した新たなディスプレイ・ドライバを用いるように以前のセッションを変更する。次に、サーバは、このユーザを、その以前のセッションに自動的に再関連させる。進行中の作業は、ダイナミックにその新たな11″ディスプレイにリサイズし、そしてユーザは、このユーザが職場のコンピュータでの作業を止めた所から続行することができる。
【0046】
サーバ・オペレーティング・システム60は、ユーザが異なった動作特性をもつ異なったマシンからログオンする場合でも、ユーザをそれらのそれぞれのセッションに対し有利に再関連させることができるようにする。この再関連プロセスは、完全にサーバにて生じ、サーバは自動的にクライアントに適合する。このプロセスは、ユーザとクライアント・コンピュータからは見えない。
【0047】
サーバ・オペレーティング・システムを実装する1つの好ましい方法は、図3ないし図6を参照して以下に説明する。この説明に続き、本発明の別の面について説明するが、これは、単一のクライアント・マシンからのサーバにおいて走っている多数のウィンドウ処理セッション間でのスイッチングを含んでいる。
【0048】
サーバ・ベースのダイナミック再関連
本発明の1つの面は、ユーザを、彼らのそれぞれのウィンドウ処理セッションに再関連させ、そしてこれらウィンドウ処理セッションを自動的に調節することによって任意の新たなクライアント・システム・コンフィギュレーションに対処することに関している。このダイナミック再関連は、完全にサーバにおいて起きるものである。
【0049】
図3は、サーバ・オペレーティング・システム60の1部分を示しており、これは、多数のウィンドウ処理セッションを形成するためウィンドウ処理モジュールの複製を可能にするマルチクライアント・コアを含んでいる。オペレーティング・システム60は、特権プロセッサ・モードで走るコード(これは“カーネル・モード”とも呼ぶ)と、非特権プロセッサ・モード(一般に“ユーザ・モード”と呼ぶ)で走るアプリケーションまたはその他のサービス・ルーチンとを含む。
【0050】
オペレーティング・システム60は、ユーザ・モードで実施するマルチユーザ・セッション・マネージャ90を含んでいる。このマルチユーザ・セッション・マネージャ90は、クライアントによる使用のためサーバ上に常駐する多数のクライアント−サーバ・ウィンドウ処理セッションの作成を可能にする。さらに、オペレーティング・システム60は、カーネル・モードで実施しそしてセッション・マネージャ90と緊密にインターフェースするプロトコル・スタック・マネージャ92を含む。マルチユーザ・セッション・マネージャの指揮の下、プロトコル・スタック・マネージャ92は、図3においてプロトコル・スタック94により表すように、1つ以上のプロトコル・スタックを作成しそして管理することにより、クライアント−サーバ・ウィンドウ処理セッションの間において対応する外部クライアントとの通信を容易にする。これらプロトコル・スタックは、ある種のタイプの通信プロトコルにしたがって実現し、例えば、TCP/IPトランスポート上のRDP、IPX上のRDP、非同期シリアル接続(モデム)のトップ上のRDP等である。
【0051】
セッション・マネージャ90とプロトコル・スタック・マネージャ92の1つの例示的な実現例は、シトリックス・システムズ社からのインテリジェント・コンソール・アーキテクチャ(ICA:Intelligent Console Architecture)を使用することである。このシトリックスICAは、Windows(登録商標) NTサーバ・オペレーティング・システムを拡張して、接続したクライアントに対し多数のウィンドウ処理セッションを提供する。
【0052】
説明の都合上、ここで、クライアント24(1)がサーバ・ベースのウィンドウ処理セッションを走らせたいとする。クライアント24(1)は、Windows(登録商標) イネーブル式のデスクトップ・コンピュータとして示している。しかし、他のタイプのクライアントも使用でき、これには、端末クライアント、ネットワーク中心クライアントが含まれる。クライアント24(1)は、接続要求を周知の接続ポートに対し送る。サーバ・オペレーティング・システム60は、オブジェクト96で表すように、この接続要求を受け入れそして通信ポートを作成する。この通信ポート96は、このクライアントに対し、サーバにメッセージまたはコールバック(callback)を送るハンドルを提供する。
【0053】
マルチユーザ・セッション・マネージャ90は、新たな転送スレッドを作成しそして起動して、この新たなクライアント要求にサービスする。サーバ・オペレーティング・システム60、すなわちプロトコル・スタック・マネージャ92は、プロトコル・スタック94を通信ポート96に割り当てる。このプロトコル・スタックは、次に、接続クエリ・モードに入り、ここで、キーボード・レイアウト/ロケール、希望のビデオ解像度等のようなクライアント能力とサーバ能力とを、その後に交換する。
【0054】
プロトコル・スタック94は、最初は、通信エンドポイントをもつコンテナである。活性化の間、このスタック・コンテナには、少なくとも2つのドライバ、すなわち、WinStationドライバ(WD)とトランスポート・ドライバ(TD)をロードする。トランスポート・ドライバは、より低いレベルのドライバであって、この接続を行うのに使用する通信トランスポートを介してデータの転送を容易にするものであり、これによりトランスポート独立性を提供する。さらに、プロトコル・ドライバ(PD)を、WDとTDとの間にレイヤとして置くことにより、圧縮、信頼性のあるデータ・フロー、暗号化、フレーム化のような追加のフィーチャを提供することもできる。1例として、WinStation、プロトコルおよびトランスポートの各ドライバは、圧縮形TCP/IPトランスポートを介するRDPデータ・ストリームを取り扱うために実装することもできる。WinStationドライバは、サーバ上で作成されている最中のウィンドウ処理セッションに対するリモート・アクセスを提供する。このWinStationドライバは、カーネル・モード・ドライバ(SYS)として実装し、これには、リモート・マウス、キーボード、キャラクタ・モード・ディスプレイ・コマンド、および1つの仮想チャンネル集合に対するアクセスを提供する。
【0055】
このクライアントとの接続を確立しそしてウィンドウ処理セッションに対するクライアント要求を受け取った後、オペレーティング・システム60は、1つのウィンドウ処理セッションを作成し、これは、図3ではセッション1として示している。シトリックスWinFrame技術においては、このウィンドウ処理セッションには、クライアント−サーバ・ルーチンCSRSS.EXEを走らせることが関係し、これは、一般にCSRSSモジュール98と呼ぶ。このオペレーティング・システムのWindows(登録商標) NT3.xバージョンにおいては、CSRSSモジュール98は、USER,CONSOLE,GDIおよび他のサポート・ルーチンに対しマイクロソフトが書いたコードの全てを含む。加えて、モジュール98は、ハードウェア・ディスプレイに対するハードウェア・デバイス・ドライバ、このハードウェア・ディスプレイに対するGDIインターフェース(GDIドライバ)、マウス・ドライバ、キーボード・ドライバの集合を含んでいる。
【0056】
Windows(登録商標) NT4.0または5.0のようなWindows(登録商標) NTサーバ・オペレーティング・システムの新しいバージョンでは、CSRSSモジュール98のUSERおよびGDIの部分は、カーネル・モードに、WIN32K.SYS 100と呼ぶモジュールに移す。CSRSSモジュール98とWin32Kモジュール100は、ユーザ−カーネル・ラインに渡って密に一体化させている。図3は、Windows(登録商標) NTのより新しいバージョンにおいて実装しているソフトウェア・モジュールを示している。
【0057】
クライアントがウィンドウ処理セッションを要求すると、サーバ・オペレーティング・システムは、CSRSSモジュール98とWIN32Kモジュール100を作成して、それらハードウェア・デバイスを開き、そしてリモートのクライアントのシステム・コンフィギュレーションとコンパチブルの適切なGDIディスプレイ・ドライバ102およびプロトコル・ドライバ104をロードする。本例では、クライアント24(1)は、デスクトップ・コンピュータであって、1024 x 768の解像度をもつVGAモニタを有しており、そしてRDPプロトコルを使用するものである。これらドライバをロードした後、プロトコル・スタック94をウィンドウ処理セッション1にバインドする。このクライアントとの通信は、プロトコル・スタック94からプロトコル・ドライバ104への矢印で示すように、ウィンドウ処理セッション1に渡す。
【0058】
セッション・スタートアップの1部分として、リモート・クライアント24(1)にいるユーザに対し、Windows(登録商標)ログオン(WL)モジュール106を介して、ユーザ識別(ID)を入力するようプロンプトする。オペレーティング・システムは、このユーザIDをウィンドウ処理セッション1と関連させる。このことは、ウィンドウ処理セッション1に対するユーザ・モード内の“ユーザ1”のラベルを付したボックスで表している。
【0059】
次に、サーバ・オペレーティング・システムは、クライアント・コンピュータ24(1)上でウィンドウ処理環境を提供する。このクライアント・ベースのコードは、ウィンドウ処理のグラフィカル・ユーザインターフェースを走らせ、これは、ユーザが、サーバ上でアプリケーションを開始させ、そしてWindows(登録商標)ベースのシステムに共通の他の機能を実行することができるようにする。
【0060】
この最初のプロトコル・スタック94がセッション1にバインドされた状態で、サーバ・オペレーティング・システム60は、第2のプロトコル・スタックに対するコンテナを作成することにより、別のクライアントを収容する準備を行う。第2のクライアントがこのサーバに接続してあるウィンドウ処理セッションを走らせたとき、スタック・マネージャ92は、そのプロトコル・スタックをこの新たなクライアントに割り当てる。
【0061】
図4は、第2のクライアント24(4)に対する通信ポート96(2)に接続した第2のプロトコル・スタック94(2)を示している。マルチユーザ・セッション・マネージャ90は、セッション2のラベルを付した新たなクライアント−サーバ・ウィンドウ処理セッションを作成して、この第2クライアント24(4)に対応する。第2セッション2は、第1セッション1の複製であり、そしてCSRSSモジュール98(2)とWin32Kモジュール100(2)のコピーを含む。
図3を参照して説明したように、第2ユーザ2は、ログオンし、そしてサーバ・オペレーティング・システムは、その適当なドライバをロードしてクライアント24(1)をサービスする。この場合、クライアントは、端末コンピュータであって、より低い解像度800 x 600のディスプレイを有しまたTCP/IPトランスポートに対するRDPディスプレイ・プロトコルを用いている。ウィンドウ処理セッション2は、第2クライアント・マシン24(4)をサービスするプロトコル・スタックにバインドする。
【0062】
各セッションは、それ自身の関連するプロトコル・スタックに対するコンテナを保持する。この例では、セッション1は、関連するプロトコル・スタック94(1)を有し、そしてセッション2は、関連するプロトコル・スタック94(2)を有する。
【0063】
より多くのクライアントがサーバに接続するにつれ、サーバ・オペレーティング・システム60は、より多くのウィンドウ処理セッションを複製し続ける。多数のクライアント−サーバ・ウィンドウ処理セッションを発生するためそれらモジュールを複製する能力は、背景の箇所で述べたシトリックス・システムズ社からのWinFrame技術を使用して実現する。
【0064】
残念ながら、このシトリックスWinFrame技術に関する問題は、ユーザの視点からの使い易さの欠如である。WinFrameを使用すると、各ウィンドウ処理セッションは、特定のクライアント・マシンおよびこのマシンのシステム・コンフィギュレーションにバインドされる。図4に示したシステムを仮定すると、在来のWinFrame技術は、第1ウィンドウ処理セッション1を、1024 x 768 モニタとRDPプロトコルを有するデスクトップ・コンピュータ24(1)のシステム・コンフィギュレーションに結び付け、そして第2ウィンドウ処理セッション2を、800 x 600モニタとRDPプロトコルを有する端末コンピュータ24(4)のシステム・コンフィギュレーションに結び付ける。
【0065】
シトリックスWinFrame技術は、サーバに対し物理的に異なったマシンから実際にログオンすることのあるユーザのニーズに対応するものではない。したがって、ユーザが、1つのクライアント・コンピュータからのウィンドウ処理セッションを止め、そしてサーバに別のクライアント・コンピュータからログオンするとき、WinFrame技術は、それら2つのクライアント・コンピュータが共通のビデオ解像度を共有していない場合には、新たなウィンドウ処理セッションを作成することになる。ユーザは、その古いセッションに再接続することが許されない。
【0066】
しかし、本発明のクライアント−サーバ・システムにおいては、サーバ・オペレーティング・システムは、ユーザのこのニーズに対応し、そしてユーザが異なったマシンから再接続できるウィンドウ処理セッションをサポートするように設計する。上記の例から、ユーザ1が1024 x 768 VGA モニタとRDPプロトコルとをもつデスクトップ・コンピュータ24(1)を使用してサーバに接続することを想い出してもらいたい。
【0067】
この例で続けて、ユーザ1が、ウィンドウ処理セッション1を終了せずに、サーバ60との接続を断つと仮定する。このユーザは、職場を離れそして家庭に帰る。家庭にいる間、このユーザは、その日の早くに開始したセッションを続けることにする。ユーザは、サーバに対し、家庭にある第2のクライアント・コンピュータから接続する。
【0068】
図5は、ユーザ1が、図3を参照して上記したように、最初にサーバに対し第1のクライアント24(1)を使って第1のクライアント−サーバ・ウィンドウ処理セッション1を作成し、そしてこの後、第1のクライアント24(2)を使ってサーバに対し接続する、という状況を示している。第1のセッションの中断時に、RDPおよびTCP/IPのスタック・ドライバを先にロードしたコンテナは、空にし、そしてその関連の通信エンドポイントを壊す。これは、空のプロトコル・スタック94(1)で表している。
【0069】
このユーザが後で第2クライアント24(2)を使ってログオンしたとき、マルチユーザ・セッション・マネージャ90は、最初は、ログオンした者が新たなユーザであるかのようにして、第2のセッション2を作成する。この例では、クライアント24(2)は、640 x 480解像度をもつフラットパネルの11″カラー・ディスプレイを備えたラップトップ・コンピュータである。クライアント24(2)は、RDPプロトコルを使用する。したがって、第2のクライアント24(2)は、図3で使用した第1のクライアント24(1)とは異なったシステム・コンフィギュレーションを有している。
【0070】
この接続プロセスは、図3で説明したのと同じである。マルチユーザ・セッション・マネージャ90は、新たな転送スレッドを作成し起動して、この新たなクライアント要求にサービスする。プロトコル・スタック・マネージャ92は、第2のプロトコル・スタック94(2)を、クライアント24(2)が接続した通信ポート96(2)に割り当てる。この第2プロトコル・スタック94(2)は、ある通信エンドポイントをもつ空のコンテナから成っている。このスタック・マネージャは、デフォルトのドライバをこのプロトコル・スタック94(2)にロードし、そしてクライアント通信を(点線の矢印で示すように)セッション2に渡す。これら初期化の間においては、オペレーティング・システムは、まだこのユーザが誰であるか気づいていない。
【0071】
ユーザ1のユーザIDを、このログオン・プロセスの1部分として受けると、Windows(登録商標) ログオン(WL)モジュール106は、ユーザ1が、以前のセッション、すなわちセッション1に関係があることを認識する。しかし、WLモジュール106は、完全に新たなセッションの作成を続行するのではなく、ユーザ1を、(実線の矢印で表したように)このユーザの以前のセッション1に再関連させる。
【0072】
この再関連には、サーバ・オペレーティング・システムを、このユーザの新たなクライアント・コンピュータ24(2)のシステム・コンフィギュレーション・パラメータに適合させることが含まれる。この再関連プロセスは、ユーザまたはクライアントには可視ではない。ユーザの視点からは、ユーザは、このユーザがこのセッションの前に止めたのと同じポイントに戻っている。
【0073】
本発明のある面によれば、サーバ・オペレーティング・システム60は、元のセッション1におけるWin32Kモジュール100(1)を変更することにより、クライアント・コンピュータ24(2)に適合する異なったドライバおよびデバイスを使用するようにする。この例では、Win32Kモジュール100(1)は、640 x 480の低い解像度の小さな11″ディスプレイに対応するように適合させる。
サーバ・オペレーティング・システム60は、GDIディスプレイ・ドライバ102(1)を、1024 x 768 VGAモニタに対するドライバから640 x 480のフラットパネルのカラー・ディスプレイへ変化させる。クライアント24(2)は、同じRDPプロトコルを用いるため、Win32Kモジュール100(1)は、元のプロトコル・ドライバ104(1)を保つ。
【0074】
加えて、本発明の別の面は、元のクライアント−サーバ接続において使用していたプロトコル・スタックの以前のスタック・コンテンツを、以前のセッション1に再関連させることである。好ましい実現例では、第2のスタックからのスタック・コンテンツ(WinStationドライバ(WD)、プロトコル・ドライバ(PD)、およびトランスポート・ドライバ(TD))と、ライブの接続エンドポイントとは、以前のセッション1に対する第1のプロトコル・スタック94(1)に移し戻す。
【0075】
図6は、この新たなクライアント・コンピュータをサポートするためWin32Kモジュール100(1)を変更した結果を示している。ディスプレイ・ドライバ102(1)は、このときには、640 x 480フラットパネルのカラー・ディスプレイに対するドライバとなっている。加えて、スタック・コンテンツは、セッション1のプロトコル・スタック94(1)内にロードし戻す。この結果、サーバは、ユーザがこのときアクセス・ポイントとして用いているクライアント・コンピュータに対し、ダイナミックに適応する。セッション2とその関連のプロトコル・スタック94(2)は、一旦この再関連が完了したときには、壊すことになる。
【0076】
本例では、ディスプレイ・データは、ユーザの新たなクライアント・コンピュータ24(1)に適合するようにダイナミックにリサイズする。このセッションは、ユーザにとっては同じものに見え、ユーザのより小さく解像度の低いスクリーンに対しフォーマットし直しているだけである。以前のWinFrame技術は、この再関連プロセスを可能にするものではなく、したがって元のセッションを、新たなクライアント・コンピュータ24(1)に供給することができなかった。
【0077】
上記の例は、サーバ・セッションを、異なったディスプレイ・サイズおよび解像度に合うように適合させることを強調したものである。これは、単なる1例に過ぎない。サーバにおいて考慮することのできる他の可能なクライアント・コンフィギュレーション・パラメータには、キーボードのタイプ、キーボード・レイアウト(QWRTYとDvorak)、プロトコル・タイプ(例えば、TCP/IP に対するRDPと非同期モデムに対するRDP)、言語(例えば、英語とスペイン語)、メモリ・ドライブおよび周辺装置がある。
【0078】
図7は、このダイナミック再関連プロセスにおけるステップを示している。これらステップは、サーバ・オペレーティング・システム内のコードとして実現しており、好ましくは、ユーザ認証ソフトウェアをWindows(登録商標) ログオン・モジュール内に備えて有するマルチユーザ・セッション・マネージャの1部分として実現する。ステップ120において、ユーザは、サーバにあるクライアントを介して接続する。サーバは、この接続プロセスを開始してクライアント−サーバ接続を形成し(ステップ122)、そして新たなクライアント−サーバ・ウィンドウ処理セッションの作成を開始する(ステップ124)。
【0079】
この初期化プロセスの間、サーバ・オペレーティング・システムは、このユーザが、まだ終了していない以前の任意の活性のセッションに関係があるがどうか解析する(ステップ126)。もしない場合(すなわち、ステップ126からの“No”分岐)、サーバ・オペレーティング・システムは、このユーザに対する新たなセッションの作成を完成させる(ステップ128)。
【0080】
一方、このユーザが以前の活性のセッションに関係がある場合(すなわち、ステップ126からの“Yes”分岐)、サーバ・オペレーティング・システムは、このユーザを、その以前の活性のセッションに再関連させる(ステップ130)。これには、この現在接続したユーザのプロトコル・スタックおよび接続エンドポイントを元のセッションに再関連(すなわち、転送)させること(ステップ132)、並びに以前の活性のセッションを適合させることによって現在のクライアントに適した任意のシステム・コンフィギュレーション変化に対応すること(ステップ134)とが含まれる。
【0081】
キオスク環境
本発明の別の面は、ダイナミック再関連を使用して、サーバに対し単一のクライアント・コンピュータから接続する多数のユーザに対処することに関係する。この状況の1つの例として、2人以上の銀行金銭出納係が同じコンピュータを利用すること、あるいは2人以上の販売員が1つのコンピュータ・レジスタを用いることが一般的である。多数のユーザが同一のコンピュータに頼るこの環境は、一般に、“キオスク”環境と呼んでいる。
【0082】
図8は、クライアント24(4)をサーバ・オペレーティング・システム60にプロトコル・スタック94を介して接続したものを示している。多数のユーザ1−Nは、同じクライアント24(4)を使用している。マルチユーザ・セッション・マネージャ90は、ユーザ1−Nの各々に対しクライアント−サーバ・ウィンドウ処理セッションを作成する。各ウィンドウ処理セッションは、1つのCSRSSモジュールと1つのWindows(登録商標)ログオン・モジュール(ユーザ・モードにおける“ユーザ”ブロックとして表す)と、そしてカーネル・モードにおいてWin32Kモジュールを含んでいる。各セッションはまた、関連したプロトコル・スタック94を有している。
【0083】
第1のユーザがサーバにログオンすると、セッション・マネージャ90は、この第1ユーザ1に対し第1のセッション1を作成する。Win32Kモジュールは、その適当なドライバおよびデバイスを提供して、端末24(4)上に1つのウィンドウ処理セッションを実現する。内部的には、オペレーティング・システムは、実線の矢印140で表すように、プロトコル・スタック94(1)をセッション1に関連させる。
【0084】
ユーザ1が1つのタスクを完了すると、このユーザは、そのセッションを、ログオフしたりあるいは他の場合にはこのセッションを終了させたりせずに、フリーズさせる。このとき、別のユーザが、この端末24(4)を自由に使用できる。ここで、ユーザ2がサーバにログオンすると仮定する。この第2のユーザ2に対して、セッション・マネージャ90は、第2のセッション2を作成する。セッション2におけるWin32Kモジュールはまた、その適当なドライバおよびデバイスを提供することにより、端末24(4)上で1つのウィンドウ処理セッションを実現する。オペレーティング・システムは、点線の矢印142で表すように、この第2のプロトコル・スタック94(2)をセッション2に関連させる。このプロセスは、N人のユーザに対し続けることができる。
【0085】
このとき、端末が再び自由に使用できるようになったとき、ユーザ1がセッション1に戻りたいことがある。このユーザは、このユーザ自身のIDを再びタイプする。オペレーティング・システムは、最初は、新たなセッションおよび関連のプロトコル・スタックの作成を開始する。しかし、オペレーティング・システムが、このユーザが前に存在した中断されたセッションを有すると認識すると、このユーザをその既存のセッション1に再関連させる。スタック・コンテンツとライブの通信エンドポイントとは、セッション1との関連のため、プロトコル・スタック・コンテナ94(1)に転送し戻す。このようにして、サーバ・オペレーティング・システムは、同じクライアント・コンピュータからの多数のユーザのセッションを収容する。
【0086】
以上、本発明について、構造上の特徴および方法上のステップに特有の用語で説明したが、添付の特許請求の範囲に記載の本発明は、必ずしも記述したこの特定の特徴またはステップに限定されるものではない、と理解されたい。これら特定の特徴およびステップは、保護を請求する発明を実施する好ましい形態として開示したに過ぎないものである。

【特許請求の範囲】
【請求項1】
サーバにおけるコンピュータ読み取り可能媒体上に具体化したサーバ・オペレーティング・システムであって、該システムが、前記サーバが複数のクライアントのそれぞれに対し1つのウィンドウ処理環境を提供するようになった多数のクライアント−サーバ・セッションを可能にし、前記サーバ・オペレーティング・システムが、
前記サーバにリモート・クライアントを介して接続している第1のユーザが、該第1ユーザが先に開始した先のウィンドウ処理セッションと関連している場合、これを認識するため、サーバを指揮する第1のコンピュータ読み取り可能命令と、
前記第1ユーザを前記先のウィンドウ処理セッションに再関連させるため、前記サーバを指揮する第2のコンピュータ読み取り可能命令と、
を含み、
前記第1コンピュータ読み取り可能命令は、さらに、前記サーバに同じ前記リモート・クライアントを介して接続している第2のユーザが、該第2ユーザが先に開始した先のウィンドウ処理セッションと関連している場合、これを認識するため、サーバを指揮し、
前記第2コンピュータ読み取り可能命令は、さらに、前記第2ユーザを前記先のウィンドウ処理セッションに再関連させるため、前記サーバを指揮すること、
を特徴とするサーバ・オペレーティング・システム。
【請求項2】
サーバ・コンピュータにおいて、
コンピュータ読み取り可能媒体上に具体化されかつサーバにおいて実行されるオペレーティング・システムであって、多数のクライアントに対し多数のグラフィカル・ユーザインターフェース・ウィンドウ処理セッションを可能にする、前記オペレーティング・システムを含み、
前記オペレーティング・システムは前記ウィンドウ処理セッションに対しグラフィカル・ユーザインターフェース(UI)を走らせるクライアントと通信するように構成されていること、及び
前記オペレーティング・システムは、多数のユーザが、前記クライアントを用いてこれらユーザ自身の対応するウィンドウ処理セッションを操作できるように、
前記ウィンドウ処理セッションの種々のものと前記クライアントへの又はからの通信と関連させるように構成されていること、
を特徴とするサーバ・コンピュータ。
【請求項3】
請求項記載のサーバ・コンピュータにおいて、前記クライアントは、前記サーバに接続することができるオペレーティング・システムを備えて実現したクライアント上で走るように構成したこと、を特徴とするサーバ・コンピュータ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−118994(P2012−118994A)
【公開日】平成24年6月21日(2012.6.21)
【国際特許分類】
【出願番号】特願2011−277139(P2011−277139)
【出願日】平成23年12月19日(2011.12.19)
【分割の表示】特願2010−242545(P2010−242545)の分割
【原出願日】平成10年11月2日(1998.11.2)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】