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

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

Info

Publication number
JP2012118994A
JP2012118994A JP2011277139A JP2011277139A JP2012118994A JP 2012118994 A JP2012118994 A JP 2012118994A JP 2011277139 A JP2011277139 A JP 2011277139A JP 2011277139 A JP2011277139 A JP 2011277139A JP 2012118994 A JP2012118994 A JP 2012118994A
Authority
JP
Japan
Prior art keywords
server
client
session
user
operating system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011277139A
Other languages
English (en)
Other versions
JP5536749B2 (ja
Inventor
John E Parsons Jr
パーソンズ,ジョン・イー,ジュニアー
Bradley J Graziadio
グラジアディオ,ブラッドリー・ジェイ
Oshoma Momoh
モモー,オショマ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/093,969 external-priority patent/US6085247A/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2012118994A publication Critical patent/JP2012118994A/ja
Application granted granted Critical
Publication of JP5536749B2 publication Critical patent/JP5536749B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/327Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the session layer [OSI layer 5]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Digital Computer Display Output (AREA)

Abstract

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

Description

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

Claims (3)

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

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US6599197P 1997-11-14 1997-11-14
US60/065,991 1997-11-14
US09/093,969 1998-06-08
US09/093,969 US6085247A (en) 1998-06-08 1998-06-08 Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions using different computers

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2010242545A Division JP4923138B2 (ja) 1997-11-14 2010-10-28 多数のクライアント−サーバ・セッションおよび以前のセッションへのユーザのダイナミック再接続をサポートするサーバ・オペレーティング・システム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013167730A Division JP6098884B2 (ja) 1997-11-14 2013-08-12 多数のクライアント−サーバ・セッションおよび以前のセッションへのユーザのダイナミック再接続をサポートするサーバ・オペレーティング・システム

Publications (2)

Publication Number Publication Date
JP2012118994A true JP2012118994A (ja) 2012-06-21
JP5536749B2 JP5536749B2 (ja) 2014-07-02

Family

ID=26746245

Family Applications (5)

Application Number Title Priority Date Filing Date
JP2000521455A Expired - Fee Related JP4676060B2 (ja) 1997-11-14 1998-11-02 多数のクライアント−サーバ・セッションおよび以前のセッションへのユーザのダイナミック再接続をサポートするサーバ・オペレーティング・システム
JP2007274371A Expired - Fee Related JP4812729B2 (ja) 1997-11-14 2007-10-22 多数のクライアント−サーバ・セッションおよび以前のセッションへのユーザのダイナミック再接続をサポートする方法、コンピュータ読み取り可能記憶媒体、及びサーバ・コンピュータ
JP2010242545A Expired - Fee Related JP4923138B2 (ja) 1997-11-14 2010-10-28 多数のクライアント−サーバ・セッションおよび以前のセッションへのユーザのダイナミック再接続をサポートするサーバ・オペレーティング・システム
JP2011277139A Expired - Fee Related JP5536749B2 (ja) 1997-11-14 2011-12-19 多数のクライアント−サーバ・セッションおよび以前のセッションへのユーザのダイナミック再接続をサポートするサーバ・オペレーティング・システム
JP2013167730A Expired - Lifetime JP6098884B2 (ja) 1997-11-14 2013-08-12 多数のクライアント−サーバ・セッションおよび以前のセッションへのユーザのダイナミック再接続をサポートするサーバ・オペレーティング・システム

Family Applications Before (3)

Application Number Title Priority Date Filing Date
JP2000521455A Expired - Fee Related JP4676060B2 (ja) 1997-11-14 1998-11-02 多数のクライアント−サーバ・セッションおよび以前のセッションへのユーザのダイナミック再接続をサポートするサーバ・オペレーティング・システム
JP2007274371A Expired - Fee Related JP4812729B2 (ja) 1997-11-14 2007-10-22 多数のクライアント−サーバ・セッションおよび以前のセッションへのユーザのダイナミック再接続をサポートする方法、コンピュータ読み取り可能記憶媒体、及びサーバ・コンピュータ
JP2010242545A Expired - Fee Related JP4923138B2 (ja) 1997-11-14 2010-10-28 多数のクライアント−サーバ・セッションおよび以前のセッションへのユーザのダイナミック再接続をサポートするサーバ・オペレーティング・システム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2013167730A Expired - Lifetime JP6098884B2 (ja) 1997-11-14 2013-08-12 多数のクライアント−サーバ・セッションおよび以前のセッションへのユーザのダイナミック再接続をサポートするサーバ・オペレーティング・システム

Country Status (5)

Country Link
US (1) US6349337B1 (ja)
EP (4) EP1032886B1 (ja)
JP (5) JP4676060B2 (ja)
DE (2) DE69840672D1 (ja)
WO (1) WO1999026159A2 (ja)

Families Citing this family (162)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7346689B1 (en) 1998-04-20 2008-03-18 Sun Microsystems, Inc. Computer architecture having a stateless human interface device and methods of use
US7412511B2 (en) * 1999-02-02 2008-08-12 James Prescott Curry Method and system for providing on-line wellness and retail access through a distributed network
US6519643B1 (en) * 1999-04-29 2003-02-11 Attachmate Corporation Method and system for a session allocation manager (“SAM”)
US6687745B1 (en) * 1999-09-14 2004-02-03 Droplet, Inc System and method for delivering a graphical user interface of remote applications over a thin bandwidth connection
US6895499B1 (en) * 1999-12-27 2005-05-17 Dell Usa, L.P. System and method for device configuration and management using a universal serial bus port
US7739407B1 (en) 1999-12-29 2010-06-15 Nokia Siemens Networks Oy Systems for customizing behaviors and interfaces in service invocations
WO2001077844A1 (fr) * 2000-04-10 2001-10-18 Fujitsu Limited Systeme de traitement d'informations et serveur associe
US20040027375A1 (en) * 2000-06-12 2004-02-12 Ricus Ellis System for controlling a display of the user interface of a software application
US7801978B1 (en) 2000-10-18 2010-09-21 Citrix Systems, Inc. Apparatus, method and computer program product for efficiently pooling connections between clients and servers
US7099946B2 (en) * 2000-11-13 2006-08-29 Canon Kabushiki Kaishsa Transferring a media browsing session from one device to a second device by transferring a session identifier and a session key to the second device
US20020104012A1 (en) * 2000-11-29 2002-08-01 Ensure Technologies, Inc. Security token and acess point networking
US7305495B2 (en) * 2001-03-14 2007-12-04 Siemens Communications, Inc. Dynamic loading of protocol stacks under signaling control
US7065557B2 (en) * 2001-04-12 2006-06-20 Hewlett-Packard Development Company, L.P. Method and apparatus for consuming content at a network address
US20050198379A1 (en) * 2001-06-13 2005-09-08 Citrix Systems, Inc. Automatically reconnecting a client across reliable and persistent communication sessions
US7562146B2 (en) * 2003-10-10 2009-07-14 Citrix Systems, Inc. Encapsulating protocol for session persistence and reliability
CN1407780A (zh) * 2001-08-13 2003-04-02 国际商业机器公司 在多种终端设备访问服务内容时保持过程持续性的方法和设备
JP2003087693A (ja) * 2001-09-11 2003-03-20 Sony Corp 情報処理装置および方法、並びにプログラム
US7277945B1 (en) * 2001-09-12 2007-10-02 Cisco Technology, Inc. System and method for maintaining seamless session operation
US7191233B2 (en) * 2001-09-17 2007-03-13 Telecommunication Systems, Inc. System for automated, mid-session, user-directed, device-to-device session transfer system
US20030084165A1 (en) * 2001-10-12 2003-05-01 Openwave Systems Inc. User-centric session management for client-server interaction using multiple applications and devices
US20030160755A1 (en) 2002-02-28 2003-08-28 Palm, Inc. Detachable expandable flexible display
US20030110266A1 (en) * 2001-12-10 2003-06-12 Cysive, Inc. Apparatus and method of using session state data across sessions
US7921450B1 (en) 2001-12-12 2011-04-05 Klimenty Vainstein Security system using indirect key generation from access rules and methods therefor
US10033700B2 (en) 2001-12-12 2018-07-24 Intellectual Ventures I Llc Dynamic evaluation of access rights
US8006280B1 (en) 2001-12-12 2011-08-23 Hildebrand Hal S Security system for generating keys from access rules in a decentralized manner and methods therefor
US7921284B1 (en) 2001-12-12 2011-04-05 Gary Mark Kinghorn Method and system for protecting electronic data in enterprise environment
US10360545B2 (en) 2001-12-12 2019-07-23 Guardian Data Storage, Llc Method and apparatus for accessing secured electronic data off-line
US7380120B1 (en) * 2001-12-12 2008-05-27 Guardian Data Storage, Llc Secured data format for access control
US7178033B1 (en) 2001-12-12 2007-02-13 Pss Systems, Inc. Method and apparatus for securing digital assets
US8065713B1 (en) 2001-12-12 2011-11-22 Klimenty Vainstein System and method for providing multi-location access management to secured items
US7930756B1 (en) 2001-12-12 2011-04-19 Crocker Steven Toye Multi-level cryptographic transformations for securing digital assets
US7783765B2 (en) * 2001-12-12 2010-08-24 Hildebrand Hal S System and method for providing distributed access control to secured documents
USRE41546E1 (en) 2001-12-12 2010-08-17 Klimenty Vainstein Method and system for managing security tiers
US7562232B2 (en) * 2001-12-12 2009-07-14 Patrick Zuili System and method for providing manageability to security information for secured items
US7921288B1 (en) 2001-12-12 2011-04-05 Hildebrand Hal S System and method for providing different levels of key security for controlling access to secured items
US7681034B1 (en) 2001-12-12 2010-03-16 Chang-Ping Lee Method and apparatus for securing electronic data
US7260555B2 (en) 2001-12-12 2007-08-21 Guardian Data Storage, Llc Method and architecture for providing pervasive security to digital assets
US7565683B1 (en) * 2001-12-12 2009-07-21 Weiqing Huang Method and system for implementing changes to security policies in a distributed security system
US7950066B1 (en) 2001-12-21 2011-05-24 Guardian Data Storage, Llc Method and system for restricting use of a clipboard application
US20030154398A1 (en) * 2002-02-08 2003-08-14 Eaton Eric Thomas System for providing continuity between session clients and method therefor
US8176334B2 (en) 2002-09-30 2012-05-08 Guardian Data Storage, Llc Document security system that permits external users to gain access to secured files
US7984157B2 (en) * 2002-02-26 2011-07-19 Citrix Systems, Inc. Persistent and reliable session securely traversing network components using an encapsulating protocol
US7661129B2 (en) 2002-02-26 2010-02-09 Citrix Systems, Inc. Secure traversal of network components
US7058711B2 (en) * 2002-04-04 2006-06-06 Avaya Technology Corp. Virtual network management
US8613102B2 (en) 2004-03-30 2013-12-17 Intellectual Ventures I Llc Method and system for providing document retention using cryptography
US7748045B2 (en) 2004-03-30 2010-06-29 Michael Frederick Kenrich Method and system for providing cryptographic document retention with off-line access
US20050071657A1 (en) * 2003-09-30 2005-03-31 Pss Systems, Inc. Method and system for securing digital assets using time-based security criteria
US7363363B2 (en) * 2002-05-17 2008-04-22 Xds, Inc. System and method for provisioning universal stateless digital and computing services
US8630414B2 (en) * 2002-06-20 2014-01-14 Qualcomm Incorporated Inter-working function for a communication system
US20030236980A1 (en) * 2002-06-20 2003-12-25 Hsu Raymond T. Authentication in a communication system
US8117328B2 (en) * 2002-06-25 2012-02-14 Microsoft Corporation System and method for automatically recovering from failed network connections in streaming media scenarios
US7299033B2 (en) 2002-06-28 2007-11-20 Openwave Systems Inc. Domain-based management of distribution of digital content from multiple suppliers to multiple wireless services subscribers
US7512810B1 (en) * 2002-09-11 2009-03-31 Guardian Data Storage Llc Method and system for protecting encrypted files transmitted over a network
US20040068572A1 (en) * 2002-10-04 2004-04-08 Zhixue Wu Methods and systems for communicating over a client-server network
US7836310B1 (en) 2002-11-01 2010-11-16 Yevgeniy Gutnik Security system that uses indirect password-based encryption
US7890990B1 (en) 2002-12-20 2011-02-15 Klimenty Vainstein Security system with staging capabilities
US20040128548A1 (en) * 2002-12-31 2004-07-01 Honeywell International Inc. Generic communication server engine
US7383061B1 (en) 2003-04-02 2008-06-03 Palm, Inc. Peripheral device for a wireless communication device
US7623892B2 (en) 2003-04-02 2009-11-24 Palm, Inc. System and method for enabling a person to switch use of computing devices
US8707034B1 (en) 2003-05-30 2014-04-22 Intellectual Ventures I Llc Method and system for using remote headers to secure electronic files
US7730543B1 (en) 2003-06-30 2010-06-01 Satyajit Nath Method and system for enabling users of a group shared across multiple file security systems to access secured files
US9100814B2 (en) 2003-09-17 2015-08-04 Unwired Plant, Llc Federated download of digital content to wireless devices
CA2540080A1 (en) * 2003-09-23 2005-04-07 Ensure Technologies, Inc. Method of allowing access to an electronic device
US7703140B2 (en) * 2003-09-30 2010-04-20 Guardian Data Storage, Llc Method and system for securing digital assets using process-driven security policies
US7418472B2 (en) * 2003-09-30 2008-08-26 Microsoft Corporation Systems and methods for determining remote device media capabilities
US8127366B2 (en) 2003-09-30 2012-02-28 Guardian Data Storage, Llc Method and apparatus for transitioning between states of security policies used to secure electronic documents
US20050086531A1 (en) * 2003-10-20 2005-04-21 Pss Systems, Inc. Method and system for proxy approval of security changes for a file security system
US8260857B2 (en) 2003-10-23 2012-09-04 Microsoft Corporation One to many data projection system and method
US7716273B2 (en) * 2003-10-24 2010-05-11 Microsoft Corporation Systems and methods for projecting content from computing devices
US7747759B1 (en) * 2003-11-26 2010-06-29 Teradata Us, Inc. Techniques for maintaining persistent preferences
US20050138371A1 (en) * 2003-12-19 2005-06-23 Pss Systems, Inc. Method and system for distribution of notifications in file security systems
US20050188095A1 (en) * 2004-02-19 2005-08-25 Jeffrey Gardiner System for managing server user operation sessions
US7519718B2 (en) * 2004-02-27 2009-04-14 International Business Machines Corporation Server-side protocol configuration of accessing clients
BRPI0509900A (pt) * 2004-04-12 2007-09-18 Xds Inc sistema e método para iniciar automaticamente e estabelecer de forma dinámica conexões seguras pela internet entre um servidor com barreira de proteção e um cliente com barreira de proteção
US7962544B2 (en) * 2004-05-25 2011-06-14 Siemens Medical Solutions Usa, Inc. Patient and device location dependent healthcare information processing system
US7707427B1 (en) * 2004-07-19 2010-04-27 Michael Frederick Kenrich Multi-level file digests
US8094821B2 (en) * 2004-08-06 2012-01-10 Qualcomm Incorporated Key generation in a communication system
US7756984B2 (en) * 2004-09-27 2010-07-13 Citrix Systems, Inc. Systems and methods for virtual host name roaming
US8112548B2 (en) * 2004-09-28 2012-02-07 Yahoo! Inc. Method for providing a clip for viewing at a remote device
US8364807B1 (en) 2004-11-18 2013-01-29 Rockstar Consortium Us Lp Identifying and controlling network sessions via an access concentration point
US8806020B1 (en) * 2004-12-20 2014-08-12 Avaya Inc. Peer-to-peer communication session monitoring
US8515490B2 (en) * 2004-12-30 2013-08-20 Alcatel Lucent Method and apparatus for providing same session switchover between end-user terminals
US20060195586A1 (en) * 2005-02-25 2006-08-31 Microsoft Corporation Sessions and terminals configured for binding in an extensible manner
US20070067638A1 (en) * 2005-09-22 2007-03-22 Roland Haibl Method of Session Consolidation
US8280944B2 (en) * 2005-10-20 2012-10-02 The Trustees Of Columbia University In The City Of New York Methods, media and systems for managing a distributed application running in a plurality of digital processing devices
US20070245334A1 (en) * 2005-10-20 2007-10-18 The Trustees Of Columbia University In The City Of New York Methods, media and systems for maintaining execution of a software process
US20070233880A1 (en) * 2005-10-20 2007-10-04 The Trustees Of Columbia University In The City Of New York Methods, media and systems for enabling a consistent web browsing session on different digital processing devices
US8549646B2 (en) * 2005-10-20 2013-10-01 The Trustees Of Columbia University In The City Of New York Methods, media and systems for responding to a denial of service attack
US20070115931A1 (en) * 2005-11-18 2007-05-24 Anderson David J Inter-server multimodal user communications
US8219584B2 (en) 2005-12-15 2012-07-10 At&T Intellectual Property I, L.P. User access to item information
JP5002165B2 (ja) * 2006-02-16 2012-08-15 株式会社日立製作所 リモートデスクトップシステム
US7904563B2 (en) * 2006-03-31 2011-03-08 Microsoft Corporation Establishing and utilizing terminal server dynamic virtual channels
JP2007316764A (ja) * 2006-05-23 2007-12-06 Kwok-Yan Leung マルチチャンネルのターミナルシステム
US8170584B2 (en) * 2006-06-06 2012-05-01 Yahoo! Inc. Providing an actionable event in an intercepted text message for a mobile device based on customized user information
US7680908B2 (en) * 2006-09-28 2010-03-16 Microsoft Corporation State replication
US7738503B2 (en) 2007-02-02 2010-06-15 Palm, Inc. Multi-way, peer-to-peer synchronization
US7715444B2 (en) 2007-02-02 2010-05-11 Palm, Inc Resuming a previously interrupted peer-to-peer synchronization operation
US8060887B2 (en) * 2007-03-30 2011-11-15 Uranus International Limited Method, apparatus, system, and medium for supporting multiple-party communications
US8627211B2 (en) * 2007-03-30 2014-01-07 Uranus International Limited Method, apparatus, system, medium, and signals for supporting pointer display in a multiple-party communication
US8702505B2 (en) 2007-03-30 2014-04-22 Uranus International Limited Method, apparatus, system, medium, and signals for supporting game piece movement in a multiple-party communication
US7765261B2 (en) 2007-03-30 2010-07-27 Uranus International Limited Method, apparatus, system, medium and signals for supporting a multiple-party communication on a plurality of computer servers
US7765266B2 (en) * 2007-03-30 2010-07-27 Uranus International Limited Method, apparatus, system, medium, and signals for publishing content created during a communication
US7950046B2 (en) * 2007-03-30 2011-05-24 Uranus International Limited Method, apparatus, system, medium, and signals for intercepting a multiple-party communication
US8478299B2 (en) 2007-04-06 2013-07-02 Hewlett-Packard Development Company, L.P. System and methods for obtaining coarse location for a mobile device
US8185599B2 (en) * 2007-04-18 2012-05-22 Microsoft Corporation Programming techniques for distributed multi-party networks
US8060486B2 (en) 2007-05-07 2011-11-15 Hewlett-Packard Development Company, L.P. Automatic conversion schema for cached web requests
US8458612B2 (en) 2007-07-29 2013-06-04 Hewlett-Packard Development Company, L.P. Application management framework for web applications
US8375126B2 (en) * 2007-10-17 2013-02-12 Attachmate Corporation Methods, apparatus and techniques for suspending, resuming, and sharing sessions using object serialization
KR100909955B1 (ko) * 2007-12-17 2009-07-30 한국전자통신연구원 이기종 단말기를 이용한 인터넷 서비스 제공 시스템 및 그방법
US20090204966A1 (en) * 2008-02-12 2009-08-13 Johnson Conrad J Utility for tasks to follow a user from device to device
US20100088360A1 (en) * 2008-10-03 2010-04-08 Joe Jaudon Methods for dynamically updating virtual desktops or virtual applications
US20100088397A1 (en) * 2008-10-03 2010-04-08 Joe Jaudon Systems for dynamically updating virtual desktops or virtual applications
US8234332B2 (en) * 2009-04-22 2012-07-31 Aventura Hq, Inc. Systems and methods for updating computer memory and file locations within virtual computing environments
US9367512B2 (en) * 2009-04-22 2016-06-14 Aventura Hq, Inc. Systems and methods for dynamically updating virtual desktops or virtual applications in a standard computing environment
US8122170B2 (en) * 2009-06-11 2012-02-21 Microsoft Corporation Adaptive keyboard layout mapping
US8601556B2 (en) * 2009-06-22 2013-12-03 Citrix Systems, Inc. Systems and methods for handling SSL session not reusable across multiple cores
US9654505B2 (en) * 2009-06-22 2017-05-16 Citrix Systems, Inc. Systems and methods for encoding the core identifier in the session identifier
JP5326974B2 (ja) * 2009-09-30 2013-10-30 富士通株式会社 中継装置、異なる端末装置間のサービス継続方法、及び中継プログラム
US20110082938A1 (en) * 2009-10-07 2011-04-07 Joe Jaudon Systems and methods for dynamically updating a user interface within a virtual computing environment
US8051141B2 (en) 2009-10-09 2011-11-01 Novell, Inc. Controlled storage utilization
US9389895B2 (en) 2009-12-17 2016-07-12 Microsoft Technology Licensing, Llc Virtual storage target offload techniques
US10146566B2 (en) * 2009-12-21 2018-12-04 Microsoft Technology Licensing, Llc Enabling virtual desktop connections to remote clients
US20150309316A1 (en) 2011-04-06 2015-10-29 Microsoft Technology Licensing, Llc Ar glasses with predictive control of external device based on event input
US10180572B2 (en) 2010-02-28 2019-01-15 Microsoft Technology Licensing, Llc AR glasses with event and user action control of external applications
US9341843B2 (en) 2010-02-28 2016-05-17 Microsoft Technology Licensing, Llc See-through near-eye display glasses with a small scale image source
US9366862B2 (en) 2010-02-28 2016-06-14 Microsoft Technology Licensing, Llc System and method for delivering content to a group of see-through near eye display eyepieces
US9097890B2 (en) 2010-02-28 2015-08-04 Microsoft Technology Licensing, Llc Grating in a light transmissive illumination system for see-through near-eye display glasses
US9129295B2 (en) 2010-02-28 2015-09-08 Microsoft Technology Licensing, Llc See-through near-eye display glasses with a fast response photochromic film system for quick transition from dark to clear
US9229227B2 (en) 2010-02-28 2016-01-05 Microsoft Technology Licensing, Llc See-through near-eye display glasses with a light transmissive wedge shaped illumination system
US9091851B2 (en) 2010-02-28 2015-07-28 Microsoft Technology Licensing, Llc Light control in head mounted displays
US8488246B2 (en) 2010-02-28 2013-07-16 Osterhout Group, Inc. See-through near-eye display glasses including a curved polarizing film in the image source, a partially reflective, partially transmitting optical element and an optically flat film
US9285589B2 (en) 2010-02-28 2016-03-15 Microsoft Technology Licensing, Llc AR glasses with event and sensor triggered control of AR eyepiece applications
US9097891B2 (en) 2010-02-28 2015-08-04 Microsoft Technology Licensing, Llc See-through near-eye display glasses including an auto-brightness control for the display brightness based on the brightness in the environment
US8477425B2 (en) 2010-02-28 2013-07-02 Osterhout Group, Inc. See-through near-eye display glasses including a partially reflective, partially transmitting optical element
US9182596B2 (en) 2010-02-28 2015-11-10 Microsoft Technology Licensing, Llc See-through near-eye display glasses with the optical assembly including absorptive polarizers or anti-reflective coatings to reduce stray light
US8482859B2 (en) 2010-02-28 2013-07-09 Osterhout Group, Inc. See-through near-eye display glasses wherein image light is transmitted to and reflected from an optically flat film
US9223134B2 (en) 2010-02-28 2015-12-29 Microsoft Technology Licensing, Llc Optical imperfections in a light transmissive illumination system for see-through near-eye display glasses
US20110214082A1 (en) * 2010-02-28 2011-09-01 Osterhout Group, Inc. Projection triggering through an external marker in an augmented reality eyepiece
WO2011106798A1 (en) 2010-02-28 2011-09-01 Osterhout Group, Inc. Local advertising content on an interactive head-mounted eyepiece
US9128281B2 (en) 2010-09-14 2015-09-08 Microsoft Technology Licensing, Llc Eyepiece with uniformly illuminated reflective display
US20120249797A1 (en) 2010-02-28 2012-10-04 Osterhout Group, Inc. Head-worn adaptive display
US8467133B2 (en) 2010-02-28 2013-06-18 Osterhout Group, Inc. See-through display with an optical assembly including a wedge-shaped illumination system
US9134534B2 (en) 2010-02-28 2015-09-15 Microsoft Technology Licensing, Llc See-through near-eye display glasses including a modular image source
US9759917B2 (en) 2010-02-28 2017-09-12 Microsoft Technology Licensing, Llc AR glasses with event and sensor triggered AR eyepiece interface to external devices
US8472120B2 (en) 2010-02-28 2013-06-25 Osterhout Group, Inc. See-through near-eye display glasses with a small scale image source
US20110225566A1 (en) * 2010-03-10 2011-09-15 Microsoft Corporation Testing user interfaces in multiple execution environments
US20120084369A1 (en) * 2010-09-30 2012-04-05 Microsoft Corporation Unified Reconnection To Multiple Remote Servers
RU2459246C1 (ru) * 2011-07-12 2012-08-20 Государственное образовательное учреждение высшего профессионального образования Марийский государственный технический университет Способ виртуализации терминальных систем
US8190749B1 (en) 2011-07-12 2012-05-29 Google Inc. Systems and methods for accessing an interaction state between multiple devices
JP5840796B2 (ja) 2011-10-10 2016-01-06 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. クライアント−ホスト接続の確立
JP5942503B2 (ja) 2012-03-15 2016-06-29 富士通株式会社 サービス要求装置、サービス要求方法およびサービス要求プログラム
EP2908919A1 (en) * 2012-10-22 2015-08-26 Longsand Limited Collaborative augmented reality
US10649424B2 (en) 2013-03-04 2020-05-12 Fisher-Rosemount Systems, Inc. Distributed industrial performance monitoring and analytics
US9678484B2 (en) * 2013-03-15 2017-06-13 Fisher-Rosemount Systems, Inc. Method and apparatus for seamless state transfer between user interface devices in a mobile control room
US10521840B2 (en) * 2013-12-09 2019-12-31 Lor Technologies (Pty) Ltd Virtual interactive marketplace
US10243891B2 (en) * 2014-08-14 2019-03-26 Oath Inc. Cross-device integration system and method
US20160344807A1 (en) * 2015-05-20 2016-11-24 International Business Machines Corporation Message synchronization across multiple clients
US10074112B2 (en) * 2015-06-22 2018-09-11 Nissan North America, Inc. Guided unit-specific automobile demonstration
US9813504B2 (en) * 2015-08-03 2017-11-07 Citrix Systems, Inc. Virtualizing device management services on a multi-session platform
US10673956B2 (en) * 2017-11-03 2020-06-02 International Business Machines Corporation Control of an application session to accommodate different users
US10606617B2 (en) 2018-03-08 2020-03-31 Citrix Systems, Inc. Instant virtual application launch
US11861041B2 (en) * 2021-02-08 2024-01-02 Capital One Services, Llc Methods and systems for automatically preserving a user session on a public access shared computer

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8621061D0 (en) * 1986-09-01 1986-10-08 Hewlett Packard Ltd User interface simulation
US5265239A (en) * 1991-04-08 1993-11-23 Ardolino Anthony A Method for remotely accessing service programs of a local processing system supporting multiple protocol stacks and multiple device drivers
JPH05250319A (ja) * 1992-03-04 1993-09-28 Nippon Telegr & Teleph Corp <Ntt> ファイルサーバ
US5392400A (en) * 1992-07-02 1995-02-21 International Business Machines Corporation Collaborative computing system using pseudo server process to allow input from different server processes individually and sequence number map for maintaining received data sequence
US5548726A (en) * 1993-12-17 1996-08-20 Taligeni, Inc. System for activating new service in client server network by reconfiguring the multilayer network protocol stack dynamically within the server node
US5594921A (en) 1993-12-17 1997-01-14 Object Technology Licensing Corp. Authentication of users with dynamically configurable protocol stack
US5881239A (en) 1995-01-23 1999-03-09 Tandem Computers Incorporated Network system with resilient virtual fault tolerant sessions
US5557748A (en) * 1995-02-03 1996-09-17 Intel Corporation Dynamic network configuration
US5812819A (en) 1995-06-05 1998-09-22 Shiva Corporation Remote access apparatus and method which allow dynamic internet protocol (IP) address management
US5826085A (en) 1995-07-12 1998-10-20 Oracle Corporation Object oriented computer interface supporting interactive networked applications
US5764736A (en) 1995-07-20 1998-06-09 National Semiconductor Corporation Method for switching between a data communication session and a voice communication session
US5774551A (en) 1995-08-07 1998-06-30 Sun Microsystems, Inc. Pluggable account management interface with unified login and logout and multiple user authentication services
US5826027A (en) 1995-10-11 1998-10-20 Citrix Systems, Inc. Method for supporting an extensible and dynamically bindable protocol stack in a distrubited process system
US5805118A (en) 1995-12-22 1998-09-08 Research Foundation Of The State Of New York Display protocol specification with session configuration and multiple monitors
US5835724A (en) 1996-07-03 1998-11-10 Electronic Data Systems Corporation System and method for communication information using the internet that receives and maintains information concerning the client and generates and conveys the session data to the client
US5918228A (en) 1997-01-28 1999-06-29 International Business Machines Corporation Method and apparatus for enabling a web server to impersonate a user of a distributed file system to obtain secure access to supported web documents
US20050091359A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Systems and methods for projecting content from computing devices

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6009012794; WOOD, K. R., et al.: 'Global Teleporting with Java: Toward Ubiquitous Personalized Computing' Computer Vol. 30, Issue 2, 199702, pp. 53 - 59, IEEE *

Also Published As

Publication number Publication date
JP6098884B2 (ja) 2017-03-22
EP1717696A1 (en) 2006-11-02
WO1999026159A2 (en) 1999-05-27
DE69840672D1 (de) 2009-04-30
US6349337B1 (en) 2002-02-19
EP1705563A1 (en) 2006-09-27
JP2001523864A (ja) 2001-11-27
EP1717695A1 (en) 2006-11-02
JP4676060B2 (ja) 2011-04-27
EP1705563B1 (en) 2009-03-11
JP2014002773A (ja) 2014-01-09
JP2008102940A (ja) 2008-05-01
JP5536749B2 (ja) 2014-07-02
JP4923138B2 (ja) 2012-04-25
EP1032886B1 (en) 2009-03-18
DE69840658D1 (de) 2009-04-23
JP2011081815A (ja) 2011-04-21
EP1032886A2 (en) 2000-09-06
WO1999026159A3 (en) 1999-08-05
JP4812729B2 (ja) 2011-11-09

Similar Documents

Publication Publication Date Title
JP6098884B2 (ja) 多数のクライアント−サーバ・セッションおよび以前のセッションへのユーザのダイナミック再接続をサポートするサーバ・オペレーティング・システム
US6085247A (en) Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions using different computers
US5974547A (en) Technique for reliable network booting of an operating system to a client computer
US7685257B2 (en) Portable thin client for the enterprise workspace
US5872968A (en) Data processing network with boot process using multiple servers
US6334149B1 (en) Generic operating system usage in a remote initial program load environment
US9081601B2 (en) Virtual mobile infrastructure and its base platform
US6101555A (en) Methods and apparatus for communicating between networked peripheral devices
US6954852B2 (en) System for and method of network booting of an operating system to a client computer using hibernation
AU2002332001B2 (en) Methods for distributed program execution with file-type association in a client-server network
US9026627B2 (en) Method and system for switching between remote console sessions
CA2168087A1 (en) Operating system based remote communication system
US20050125648A1 (en) System for establishing hardware-based remote console sessions and software-based remote console sessions
EP1497720B1 (en) System and method for managing operating system option values
US6002864A (en) Host addresses a client device using permanent name provided by the client device without requiring a transfer of an APPC verb
Zandy et al. Checkpoints of GUI-based Applications.
Arnold Internet protocol implementation experiences in pc-nfs
WO2000017729A2 (en) Improved method and apparatus for display of windowing application programs on a terminal
Underwood Jr Device Drivers: Their Function in an Operating System
KR20060067311A (ko) 응용 프로그램내의 소켓 인터페이스와 toe 사이의연결을 제어하는 커널 수준의 소켓 그리고, 그를 이용한통신 인터페이스 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130212

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20130325

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130325

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130513

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130516

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130611

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130614

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130712

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130718

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130812

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130829

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130903

RD15 Notification of revocation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7435

Effective date: 20130903

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131022

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140221

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140303

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140325

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140424

R150 Certificate of patent or registration of utility model

Ref document number: 5536749

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees