JPH11513822A - マルチユーザオペレーティングシステムにおいてユーザグローバルオブジェクト名スペースを提供する方法 - Google Patents

マルチユーザオペレーティングシステムにおいてユーザグローバルオブジェクト名スペースを提供する方法

Info

Publication number
JPH11513822A
JPH11513822A JP9515108A JP51510897A JPH11513822A JP H11513822 A JPH11513822 A JP H11513822A JP 9515108 A JP9515108 A JP 9515108A JP 51510897 A JP51510897 A JP 51510897A JP H11513822 A JPH11513822 A JP H11513822A
Authority
JP
Japan
Prior art keywords
user
application
single user
global
context
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.)
Pending
Application number
JP9515108A
Other languages
English (en)
Inventor
ジェイ. ディスカベイジ,マイケル
イー. イアコブッシ,エドワード
Original Assignee
サイトリクス システムズ,インコーポレイテッド
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
Application filed by サイトリクス システムズ,インコーポレイテッド filed Critical サイトリクス システムズ,インコーポレイテッド
Publication of JPH11513822A publication Critical patent/JPH11513822A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)
  • Selective Calling Equipment (AREA)
  • Computer And Data Communications (AREA)
  • Alarm Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

(57)【要約】 クライアント/サーバシステムにおける使用に適した方法であって、オブジェクト名の作成、ルックアップ、および削除のために使用される既存のオペレーティングシステムの方法を改変することにより、シングルユーザプログラムを改変することなく、マルチユーザオペレーティングシステムにおいて、このシングルユーザアプリケーションの複数コピーを同時に実行できるようにする方法。本方法は、シングルユーザ名スペースを規定するユーザ識別子(名前)を用いてシングルユーザアプリケーションの各インスタンスをラベル付けすることによって、ユーザグローバルコンテキストを作成する。シングルユーザ名スペースは、各ラベル付きオブジェクトが、その名前が付けられたユーザのみに対して利用可能となるスペースである。さらに、シングルユーザサーバプロセスがクライアントに仮装できるようにして、このサーバがシングルユーザ名スペースの名前付きリソースにアクセスすることを可能にしている。システムグローバル名前付きリソースをマークすることによって、共存するシステムグローバルコンテキストも作成される。

Description

【発明の詳細な説明】 マルチユーザオペレーティングシステムにおいて ユーザグローバルオブジェクト名スペースを提供する方法発明の分野 本発明は、マスタプロセスおよび複数のサービスプロセスを有するマルチユー ザ分散プロセス、および、シングルユーザ環境用に書かれたアプリケーションを 、再コンパイルすることなく、マルチユーザシステムにおいて使用するために適 合化する方法に関する。発明の背景 記載される分散プロセスシステムは、マルチユーザおよびマルチタスキングシ ステムである。典型的に、マルチユーザ環境用に書かれたアプリケーションは、 そのアプリケーションの複数コピーが同時にアクティブであり得ることを想定し ている。マルチタスキングオペレーティングシステム(例えば、WindowsNTおよ びUnix)は、プロセス間の通信および同期化を提供するための様々なタイプの共 有オブジェクトを作成する能力を提供する。ある名前をあるオブジェクトに関連 付けることによって、あるプロセスがオブジェクトを作成して、別のプロセスが それを利用することが可能になる。同期化によって、あるリソースの制御を一度 に1つのプロセスのみが有することになる。リソースには、グローバル変数、共 通データメモリ、ファイルハンドル、および共有オブジェクトハンドルのような オブジェクトが含まれる。 同期化およびプロセス間通信に使用される共有オブジェクトには以下のものが 含まれる。 スレッド間の調整を行うためのセマフォおよびイベントオブジェクト;一 度に1つのスレッドアクセスのみを許容するミューテックス(Mutexes)、即ち相 互排他的(mutually exclusive)なセマフォ、 2重プロセス間およびプロセッサ間接続のための名前付きパイプ (Named Pipes)、 1方向、多数対一(many to one)通信のためのメッセージキューアクセス が承認された全てのプロセスによって使用される共有メモリ WindowsNT(Redmond,Washington、Microsoft Corp.製)のようなシングルユ ーザオペレーティングシステム下での実行用にシングルユーザ用に書かれたアプ リケーションを、WinFrame(Coral Springs,Florida、Citrix Systems,Inc.製 )のような互換性のあるマルチユーザオペレーティングシステム下のマルチユー ザ環境において実行すると、マルチユーザ環境において、同一アプリケーション の複数コピーが同時に実行された場合に名前の衝突(name sollisions)が生じる 可能性がある。このアプリケーションをマルチユーザ環境において確実に実行す るためには、これを改変し、再コンパイルする必要がある。 本発明は、マルチユーザオペレーティングシステムにおけるオブジェクト名の 作成、ルックアップ、および削除のために使用される既存の方法を改変すること により、シングルユーザアプリケーションの複数コピーを同時に実行できるよう にする。発明の要旨 本願に記載の方法は、オブジェクト名の作成、ルックアップ、および削除のた めに使用される既存のオペレーティングシステムの方法を改変することにより、 そのシングルユーザプログラムを改変することなく、シングルユーザアプリケー ションプログラムをマルチユーザオペレーティングシステムにおいて実行できる ようにするものであり、これにより、シングルユーザアプリケーションプログラ ムの複数コピーを同時に実行することが可能になる。この方法は、 a)同一のシングルユーザによってのみアクセス可能な個別のシングルユーザ 名スペースを作成するために、システム上の各ユーザと、前記ユーザの各アプリ ケーションとに、固有の識別子(identifier)を割り当てるとともに、 これと同じ識別子を前記ユーザのアプリケーションによって作成されたオブジェ クトの各インスタンス(instance)に添付(attaching)するステップと、 b)前記シングルユーザプロセスの前記アプリケーションを供給する(serve) サーバプロセスが前記シングルユーザ名スペースにアクセスできるように、前記 シングルユーザプロセスのID(identity)を仮定することによって、前記サーバ プロセスが前記シングルユーザプロセスに仮装する(impersonate)ことを可能に する(enable)ステップと、 を包含する。 このようにして、サーバプロセスはユーザの役割を仮定し、ユーザの個人的な 名前スペースおよびそのユーザのアプリケーションを供給するために必要な全て のオブジェクトへのアクセスを持つ。ユーザのラベル付けとユーザの仮装との組 合せによって、所与のアプリケーションの複数コピーを、そのアプリケーション がシングルユーザオペレーティングシステム用に書かれていた場合でも、同時に 実行することが可能になる。図面の簡単な説明 本発明の好適な実施形態に関する以下の詳細な説明および添付の図面から本発 明がより完全に理解されるであろう。但し、これらは、本発明を特定の実施形態 に限定するものではなく、本発明の説明、理解のためのものに過ぎない。 図1は、マルチユーザシステムにおけるセッションマネージャと複数のアプリ ケーションサーバとの関係を示す。 図3(a)は、従来技術によるオブジェクト作成コールの一例を示す。 図3(b)は、従来技術によるオブジェクトを開くコールの一例を示す。 図3(c)は、従来技術によるオブジェクト削除コールの一例を示す。 図4(a)は、ユーザグローバル名スペースを有するシステムにおけるオブジ ェクト作成コールの一例を示す。 図4(b)は、ユーザグローバル名スペースを有するシステムにおけるオブジ ェクトを開くコールの一例を示す。 図4(c)は、ユーザグローバル名スペースを有するシステムにおけるオブジ ェクト削除コールの一例を示す。 図5は、.EXE/.DLLオーバーライドおよびAPIオーバーライド値に 依存する名前付きリソースのコンテキストを示す。 図6は、ユーザおよびシステムグローバルコンテキスト作成のフローチャート である。発明の詳細な説明 クライアントーサーバ分散プロセスシステムにおける使用のための2つの重要 なオペレーティングシステム(OS)機能は、マルチタスキングおよびマルチユ ーザ動作である。 マルチタスキングは、各タスクを複数の「スレッド」またはサブタスクに分割 し、各タスクのスレッドを多重化して個別のタスクが単一のプロセッサを共有で きるようにし、これにより、1度に複数のプログラムを実行する能力である。こ のようにして、個別のタスクのそれぞれに、共有方式(shared basis)によるプロ セッサへのアクセスが与えられる。優先度に基づいた(priority based)スケジュ ーリングによって、各タスクまたはプロセスに割り当てられるプロセッサ時間を 管理する。 WindowsNTのようなOSにおいては、プロセスをそれぞれ、複数のスレッドに 分割して実行する。プロセスは決して実行されず、スレッドが実行される。各プ ロセスは、1つ以上のスレッドで構成され得る。各スレッドには、ある優先度レ ベルが割り当てられ、この優先度レベルはそれぞれ単独に設定できる。 「プロセス」は、一群のメモリアドレスであり、そのアドレスの一部がプログ ラムステップに割り当てられ、そのプログラムステップに必要なデータに残りの 部分が割り当てられている。典型的には、プロセスは他のプロセスとメモリを共 有しない。なぜなら、各プロセスは、単一のエンティティとして構成され、その メモリスペースは他のプロセスによる承認のないアクセスから保護されるからで ある。複数のスレッドが、1つのプロセス内に作成さ れ、各スレッドは、そのプロセス内の全メモリおよび他のリソースへのアクセス を有する。 各スレッドには、以下の3つの可能な状態がある。 実行中−そのスレッドが実行されている状態 レディ−他のスレッドの実行が終了するのをそのスレッドが待っている状 態、および ブロック−そのスレッドが、何らかのイベントが生じるのを待っている状 態 プロセスが互いにやりとりする必要があり得るため、以下のような同期化およ びプロセス間通信オブジェクトを含む、様々な方法が提供される。 あるイベントが生じたことを待機中のスレッドに知らせるイベントオブジ ェクト 1度に1つのプロセスのみがアクセスを有することを確実にするためにプ ロセス間において使用されるミューテックス(相互排他的)オブジェクト 所与のリソースを使用し得るスレッドの数を制限するためにカウンタが必 要になったときに使用されるセマフォオブジェクト 名前付きパイプオブジェクトは、2つのプロセス間における1方向または 2重ストリーム接続である。 通信ポートオブジェクトは、2つのプロセス間のメッセージ接続である。 これらのオブジェクトのそれぞれにある名前を関連付けることによって、これ らのオブジェクトをプロセス間で共有することが可能になる。さらに別の名前付 きオブジェクトは、名前付き共有メモリである。名前付き共有メモリによって、 マルチタスキングシステムにおいて、あるプロセスが名前付きオブジェクトを作 成して、別のプロセスがそれを利用することが可能になる。 図1は、ホストシステム内にあり、セッションマネージャ101および複数の アプリケーションサーバ200を含む、マルチユーザアプリケーションサーバシ ステム100のアーキテクチャを示す。関連するクライアントワー クステーションからデータを入力し、このワークステーションに処理されたデー タおよび表示データを提供することにより、ホストシステムにおいてクライアン トのアプリケーションを実行するために、各アプリケーションサーバ200は、 クライアント(ユーザ)ワークステーションとインターフェースをとる。ホスト システムは、関連するアプリケーションサーバ200を介して多数のクライアン トワークステーションが共有する共通のリソースを有する。 図1に示すようなマルチユーザマルチタスキングシステムの場合、オブジェク ト名が衝突することなく、そのアプリケーションの複数コピーを同時に実行でき るように、アプリケーションが書かれていなければならない。しかし、シングル ユーザ環境用に書かれたほとんどのアプリケーションは、所与の時点において、 アプリケーションの1コピーのみがシステム内でアクティブになっていることを 暗に想定している。結果的に、マルチユーザ環境において、そのようなアプリケ ーションを複数同時に実行しようとする場合、名前の衝突が生じる可能性が高い 。このため、多くの現存のシングルユーザアプリケーションを、そのアプリケー ションプログラムを改変せずにマルチユーザ環境において使用することは実用的 ではない。 例えば、セマフォ等の名前付きリソースを使用するシングルユーザWindowsNT オペレーティングシステムアプリケーションをマルチユーザ環境において使用し ようとした場合、このアプリケーションは、初めに、名前付きセマフォを作成し ようとするであろう。しかし、それ以前に別のユーザが同一のアプリケーション を開始していた場合には、この名前付きセマフォを作成する試行が失敗となる。 このタイプのアプリケーションでは、シングルユーザ環境において、それ自身の 複数のインスタンスを実行することは困難である。これをマルチユーザ環境(例 えば、オペレーティングシステムWinFrame下)において実行するためには、グロ ーバルリソースをユーザレベルにまでローカル化する構成が含まれていなければ ならない。この種の問題を生じ得る名前付きリソースには、セマフォ、名前付き パイプ、キュー、通信ポート、および名前付き共有メモリが含まれる。 図3(a、b、c)は、2つのシングルユーザプロセス(プロセスAおよびプ ロセスB)を、従来技術によるマルチユーザ環境において処理しようとする際の 、作用および結果を示すフローチャートである。第1欄(左側)は、プロセスA によって開始される作用およびその結果を示し、第2欄は、プロセスBがとる作 用およびその結果を示す。3つのフローチャートはそれぞれ、図3(a)が、「 XYZ」と名付けられたオブジェクトを作成するフローチャート、図3(b)が 、「XYZ」と名付けられたオブジェクトを開くフローチャート、そして、図3 (c)が、「XYZ」と名付けられたオブジェクトを削除するフローチャートで ある。 図3(a)のステップ11において、アプリケーションプロセスAは、「XY Z」と名付けられたオブジェクトを作成するために、ホストシステムのオペレー ティングシステム(OS)カーネル内のアプリケーションプログラムインターフ ェース(API)をコールする。そして、プロセスBは、ステップ21において 、これと同じリクエストを行う。ステップ12において、プロセスAによるリク エストに応じて、OSカーネルによってオブジェクト「XYZ」を作成し、この 名前を格納する。しかし、ステップ22において、プロセスBによるリクエスト は失敗となる。なぜなら、OSが、「XYZ」と名付けられたオブジェクトが既 に存在することを発見するからである。結果的に、プロセスAがステップ13に おいてリクエストされたオブジェクトハンドルを受け取るのに対して、プロセス Bはエラーステータスメッセージを受け取る。 図3(b)において、両アプリケーションプロセスAおよびBは、「XYZ」 と名付けられたオブジェクトを開くためにAPIをコールする。OSは、ステッ プ15および25において、オブジェクト「XYZ」についてのサーチを行う。 2つのサーチによって、前に作成した「XYZ」と名付けられたオブジェクトが 見つかり、オブジェクトハンドルが、それぞれステップ16および26において 、プロセスAおよびBに返される。 図3(c)のステップ17において、プロセスAは、「XYZ」と名付けられ たオブジェクトを削除するためにAPIをコールする。この後、プロセ スBが、ステップ27において、これと同じリクエストを行うと仮定する。この 結果、プロセスAによるリクエストによって、ステップ18において、「XYZ 」と名付けられたオブジェクトについてのサーチが行われ、結果的に、ステップ 19において、このオブジェクトが削除される。プロセスAによって先に出され た削除のリクエストのために、ステップ28における「XYZ」と名付けられた オブジェクトについてのサーチは失敗となり、ステップ29は、エラーステータ スメッセージを返す。 図3(b)に示す作用および結果は適切ではない。なぜなら、プロセスBが、 プロセスBによって作成されるはずであった「XYZ」という名前が付けられた プロセスではなく、プロセスAによって作成されるオブジェクト「XYZ」に対 するアクセスを獲得するからである。同様に、図3(c)に示す作用および結果 も望ましいものではないかもしれない。なぜなら、「XYZ」と名付けられたオ ブジェクトが、どちらのプロセスが先に削除を要求したかによって、プロセスA またはBのいずれによってでも削除され得るからである。 WindowsNTシングルユーザアプリケーションをマルチユーザWinFrame動作環境 において適応させるために、以下のステップが行われる。 (1)これらの名前付きリソースに対する所与のユーザによる全てのアプリ ケーションプログラムインターフェース(API)コールをインターセプトし(i ntercept)、 (2)APIコールにおいて渡される(passed on)前に、その名前にユーザ 識別子を付け、そして、 (3)上記所与のユーザのために実行されている全てのアプリケーションが 、同じ改変がなされたリソースに対する名前付きリクエストを有する、 このようにして、これらの名前付きリソースを「ユーザグローバル」とし、こ れにより、これらのリソースが上記所与のユーザのコンテキストにおいてのみ共 有可能となる。 図4(a、b、c)は、マルチユーザシステムにおいてシングルユーザア プリケーションを適応させるためにとられた上記ステップの結果、およびプロセ スAおよびBによってとられた作用の結果をそれぞれ左側および右側に示す。 図4(a)中のステップ30において、プロセスAは、「XYZ」と名付けら れたオブジェクトを作成するために、OSカーネルのAPIをコールする。OS は、ステップ31において、アプリケーションプロセスAに関連する固有のユー ザ識別子(ID)としてID(1)を割り当てる。ステップ32において、OS は、オブジェクトを作成し、名前「XYZ」を固有のユーザID(A)と共に保 存する。ステップ33において、システムは、オブジェクトハンドルをプロセス Aに返す。この間に、プロセスBは、ステップ50において、同様の作用を開始 し、「XYZ」と名付けられたオブジェクトの作成を要求する。この結果、ステ ップ51において、固有のユーザID(B)がアプリケーションプロセスに関連 付けられ、ステップ52において「XYZ」と名付けられたオブジェクトが作成 され、この名前がID(B)と共に保存される。ID(B)に関連する「XYZ 」と名付けられたオブジェクトについてのオブジェクトハンドルがプロセスBに 返される。プロセスAおよびBは、同じ名前を用いたそれぞれの「XYZ」と名 付けられたオブジェクトを指すが、OSは、関連するユーザIDによってこれら をはっきりと区別することに留意されたい。 図4(b)は、プロセスAおよびBによってオブジェクトを開く際のフローチ ャートである。ステップ34において、プロセスAは、「XYZ」と名付けられ たオブジェクトを開くために、APIをコールする。ステップ35において、プ ロセスAに割り当てられた固有のIDであるID(A)がOSによって検索され 、ステップ36において、割り当てられた固有のユーザIDを持つ「XYZ」と 名付けられたオブジェクトについてのサーチが行われる。名前「XYZ」および ID(1)の両方についてマッチが見られた場合、ステップ37は、ハンドルを 所望のオブジェクトに返す。ステップ54では、アプリケーションプロセスBか らの5「XYZ」と名付けられたオブジェクトを開く同様のコールを開始し、O Sは、プロセスBに関連する固有のユー ザIDであるID(B)を割り当て、ID(B)を伴うオブジェクト「XYZ」 をサーチする。各プロセスに割り当てられた固有のIDによって、2つの同じ名 前付きオブジェクトが、OSによって別々にサポートされ得る。結果的に、ステ ップ56において、プロセスBのものであるオブジェクト「XYZ」をサーチし 、これを見つけることができる。ステップ57において、適切なオブジェクトハ ンドルがプロセスBに返される。 図4(c)は、同じ名前「XYZ」を持つ複数のオブジェクトを削除する際の フローチャートである。ステップ38において、プロセスAは、「XYZ」と名 付けられたオブジェクトを削除するために、APIをコールする。この場合も、 ステップ39において、OSは、プロセスAに関連する固有の識別子ID(A) を検索し、マッチする識別子ID(A)を持つ「XYZ」をサーチする。見つか った場合、ステップ41において、オブジェクトが削除される。同様に、プロセ スBは、ステップ58において、オブジェクト「XYZ」の削除を要求し、これ に続くステップ59、60および61の結果、ID(B)に関連するオブジェク ト「XYZ」が削除される。 このように、名前付きオブジェクトのそれぞれに固有のIDを関連付けること によって、上述したOSの改変を利用して、改変を行うことなく、マルチユーザ システムにおいてシングルユーザアプリケーションを用いることが可能になる。 APIコールに対してユーザ識別子を無差別に適用すると、問題を引き起こし 得る。例えば、マルチユーザアプリケーションが、保護されているリソースに対 するアクセスをシリアル化するためにシステムセマフォを用いた場合、ユーザグ ローバルコンテキストではなく、「システムグローバル」コンテキストが必要に なる。APIコールを行っているアプリケーションの特性が、アプリケーション プログラムカーネルに直ぐに利用可能ではないので、この潜在的な問題は、 (1)デフォルトコンテキストとしてユーザグローバルを確立する (2)システムグローバルコンテキストを確立する (3)名前付きオブジェクトの名前にコンテキスト修飾子(modifie r)を添付することによって、アプリケーションが、個々のAPIに基づいて、特 定の名前付きオブジェクトについて、ユーザグローバルおよびシステムグローバ ルコンテキストのどちらかを選択することを可能にする、および (4)特定のアプリケーション実行(.EXE)ファイルまたはダイナミッ クリンクライブラリ(.DLL)をマークすることによって、その実行ファイル またはダイナミックリンクファイルからの全てのAPIコールをシステムグロー バルコンテキストにすることを可能にする ことによって解決される。 WinFrame環境においては、マルチユーザアプリケーションおよびダイナミック リンクライブラリは、同一の.EXEまたは.DLL内のシステムグローバルお よびユーザグローバルの名前付きリソースの割り当てを相互に混ぜる(intermix) ことができる。WinFrameは、名前ストリングの最後でリソースタイプが指定され ていることを要求するので、名前付きリソースAPIを適応させるには、アプリ ケーションが、名前ストリングにシステムグローバル識別子を添付する必要があ る。 図5は、.EXE/.DLLおよびAPIコールに適用されるユーザおよびシ ステムグローバル修飾子の関数としての名前付きリソースのコンテキストを示す 。そのAPIコールにおいてシステムグローバルが指定されていない場合、.E XE/.DLLがシステムグローバルとマークされていれば、そのコンテキスト はシステムグローバルである。そうでなければ、コンテキストはユーザグローバ ルである。APIコールがシステムグローバルを指定した場合、.EXE/.D LLのマークに関わらず、コンテキストはシステムグローバルである。 分散プロセスクライアント−サーバシステムにおけるアプリケーションのクラ イアント部分は、概して、サーバ以外の別の位置に存在するので、サーバは、ク ライアントのセキュリティまたは特権(privilege)レベルを確認しなければなら ない。また、クライアントが、ファイルを開く、読み出す、 または書き込むAPIコールを用いて、サーバによって制御されているファイル 内のデータにアクセスするリクエストを行う場合、サーバは、そのファイルを開 く/読み出す/書き込む特権を有していなければならない。例えば、アプリケー ションサーバによってアクセスしようとするファイルが、ユーザグローバルファ イルとしてクライアントによって所有されている場合、アクセスはそのクライア ントに限定される。「仮装」の概念は、このジレンマを解決する手段を提供する 。 仮装は、クライアントのセキュリティレベルを仮定することによって、サーバ が、特権を与えられたクライアントのためにデータにアクセスすることを可能に する。この構成により、サーバが承認のないユーザに仮装することによってファ イルにアクセスしようとした場合に、適切な人物証明(security clearance)を伴 わないネットワーク上のユーザは、アプリケーションサーバを介してのファイル へのアクセスを拒否される。クライアントのAPIは、スレッドがそのクライア ントのセキュリティコンテキストを真似る(take on)のに必要な情報を提供する 。その後、この名前付きスレッドは、適切なアクセスバリデーションを受け取る 。 いくつかのシングルユーザアプリケーションプロセスからのリクエストをマル チユーザサーバプロセスが出す(service)ことも可能であるので、何らかのシン グルユーザアプリケーションプロセスのために名前付きオブジェクトを参照する ときに、マルチユーザサーバプロセスが正しいユーザグローバル名スペースにア クセスできることが必要である。この目的のために、ユーザ仮装の概念を使用お よび拡張し、仮装によって、サーバプロセスがクライアントプロセスのセキュリ ティコンテキストを仮定することが可能になるだけでなく、サーバプロセスがク ライアントプロセスのオブジェクト名スペースにアクセスすることも可能になる ようにする。 シングルユーザアプリケーションを改変することなく、マルチユーザ環境にお いてシングルユーザアプリケーションを動作させる方法を説明した。この方法は 、ユーザグローバルコンテキストを持つ個別のユーザ名スペースを作成すること 、および、仮装の概念を拡張して、ユーザ名スペースをアプリ ケーションサーバに対して利用可能にすることによる、マルチユーザオペレーテ ィングシステムの改変を包含する。 上記の方法を、図6のフローチャートにさらにまとめる。図中、方法は、共存 ユーザおよびシステムグローバルコンテキストを作成するための方法400とし て示されている。ステップ401では、シングルユーザによって使用されるオブ ジェクトまたはアプリケーションの各インスタンスにラベルを割り当てることに よって、ユーザグローバルコンテキストを確立する。このようにして、このよう なインスタンスのそれぞれを、指定されたシングルユーザに対してグローバルに 利用可能なものとして識別することによって、シングルユーザ名スペースが形成 される。ステップ402では、そのID(identity)を仮定することによりサーバ プロセスがシングルユーザに仮装することを可能にし、これにより、シングルユ ーザ名スペースへのアクセスをサーバに提供する。ステップ403では、実行フ ァイルおよびダイナミックリンクライブラリファイルのそれぞれにシステムグロ ーバル識別子を加えることによって、システムグローバルコンテキストを確立す る。方法は、ステップ404において、ユーザグローバルコンテキストをデフォ ルトコンテキストとして確立して終了する。 下記の請求項の記載によってのみ限定される本発明の趣旨および範囲から逸脱 することなく、当業者であれば上記の方法に多数の変更を加えることが可能であ ることが当業者には理解される。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FI,FR,GB,GR,IE,IT,L U,MC,NL,PT,SE),OA(BF,BJ,CF ,CG,CI,CM,GA,GN,ML,MR,NE, SN,TD,TG),AP(KE,LS,MW,SD,S Z,UG),UA(AM,AZ,BY,KG,KZ,MD ,RU,TJ,TM),AL,AM,AT,AU,AZ ,BB,BG,BR,BY,CA,CH,CN,CU, CZ,DE,DK,EE,ES,FI,GB,GE,H U,IL,IS,JP,KE,KG,KP,KR,KZ ,LK,LR,LS,LT,LU,LV,MD,MG, MK,MN,MW,MX,NO,NZ,PL,PT,R O,RU,SD,SE,SG,SI,SK,TJ,TM ,TR,TT,UA,UG,UZ,VN (72)発明者 イアコブッシ,エドワード イー. アメリカ合衆国 フロリダ 33063,ココ ナッツ クリーク,ライオンズ ロード 1921,アパートメント 302

Claims (1)

  1. 【特許請求の範囲】 1.シングルユーザアプリケーションの複数コピーを同時に実行できるように、 オブジェクト名の作成、ルックアップ、および削除のために使用されるオペレー ティングシステムの方法を改変することにより、該シングルユーザプログラムを 改変することなく、該シングルユーザアプリケーションプログラムをマルチユー ザオペレーティングシステム環境において動作するようにする方法であって、 (a)シングルユーザによってのみ使用されるオブジェクトの各インスタンス およびアプリケーションの各インスタンスにラベルを割り当てることにより、該 シングルユーザを識別するとともに、該インスタンスのそれぞれを該シングルユ ーザに対してのみグローバルに利用可能なものとして識別することにより個別の シングルユーザ名スペースを作成するステップと、 (b)該シングルユーザのプロセスのID(identity)を仮定して、該シングル ユーザのアプリケーションを供給する(serve)サーバプロセスが、該シングルユ ーザに仮装することを可能にし、これにより、該サーバプロセスが該シングルユ ーザ名スペースにアクセスできるようにするステップと、 を包含する、方法。 2.オブジェクトの各インスタンスおよびアプリケーションの各インスタンスに ラベルを割り当てる前記ステップが、共有オブジェクト識別子にシングルユーザ 識別子を添付するステップをさらに包含する、請求項1に記載の方法。 3.前記共有オブジェクトがアプリケーションである、請求項2に記載の方法。 4.前記共有オブジェクトがメモリのセクションである、請求項2に記載の方法 。 5.前記共有オブジェクトがパイプオブジェクトである、請求項2に記載の方法 。 6.前記共有オブジェクトが通信ポートオブジェクトである、請求項2に記載の 方法。 7.前記共有オブジェクトが同期化オブジェクトである、請求項2に記載の方法 。 8.前記同期化オブジェクトがイベントオブジェクトである、請求項7に記載の 方法。 9.前記同期化オブジェクトがミューテックスオブジェクトである、請求項7に 記載の方法。 10.前記同期化オブジェクトがセマフォオブジェクトである、請求項7に記載 の方法。 11.前記同期化オブジェクトがパイプオブジェクトである、請求項5に記載の 方法。 12.シングルユーザプログラムを改変することなく、該シングルユーザアプリ ケーションプログラムをマルチユーザオペレーティングシステム環境において動 作できるようにするために、ユーザグローバルコンテキストを作成するとともに 、オブジェクト名の作成、ルックアップ、および削除のために使用されるオペレ ーティングシステムの方法を改変することにより、共存するシステムグローバル コンテキストを提供する方法であって、 (a)シングルユーザによってのみ使用されるオブジェクトの各インスタ ンスおよびアプリケーションの各インスタンスにラベルを割り当てることによっ てユーザグローバルコンテキストを確立するステップであって、各該インスタン スを該シングルユーザに対してのみグローバルに利用可能なものとして識別する ことにより、該シングルユーザを識別するとともに個別のシングルユーザ名スペ ースを作成するためのステップと、 (b)該シングルユーザのプロセスのID(identity)を仮定して、該シングル ユーザのアプリケーションを供給する(serve)サーバプロセスが、該シングルユ ーザに仮装することを可能にし、これにより、該サーバプロセスが該シングルユ ーザ名スペースにアクセスできるようにするステップと、 (c)システムグローバル名前付きリソースの関連実行ファイルおよびダイナ ミックリンクライブラリファイルのそれぞれにシステムグローバル識別子を付け て各該システムグローバル名前付きリソースをそれぞれラベル付けすることによ り、システムグローバルコンテキストを確立するステップと、を包含する方法。 13.前記ユーザグローバルコンテキストをデフォルトコンテキストとして確立 するステップをさらに包含する、請求項11に記載の方法。
JP9515108A 1995-10-11 1996-10-04 マルチユーザオペレーティングシステムにおいてユーザグローバルオブジェクト名スペースを提供する方法 Pending JPH11513822A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/541,020 1995-10-11
US08/541,020 US6684259B1 (en) 1995-10-11 1995-10-11 Method for providing user global object name space in a multi-user operating system
PCT/US1996/015947 WO1997014098A1 (en) 1995-10-11 1996-10-04 A method for providing user global object name space in a multi-user operating system

Publications (1)

Publication Number Publication Date
JPH11513822A true JPH11513822A (ja) 1999-11-24

Family

ID=24157876

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9515108A Pending JPH11513822A (ja) 1995-10-11 1996-10-04 マルチユーザオペレーティングシステムにおいてユーザグローバルオブジェクト名スペースを提供する方法

Country Status (11)

Country Link
US (1) US6684259B1 (ja)
EP (1) EP0855060B1 (ja)
JP (1) JPH11513822A (ja)
KR (1) KR19990064189A (ja)
AT (1) ATE187562T1 (ja)
AU (1) AU710435B2 (ja)
CA (1) CA2234405C (ja)
DE (1) DE69605568T2 (ja)
ES (1) ES2140136T3 (ja)
IL (1) IL124035A (ja)
WO (1) WO1997014098A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9430226B2 (en) 2012-09-14 2016-08-30 Konica Minolta, Inc. Mobile information terminal has replacement portion performing replacement processing for moving temporary setting data to storage device

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6154751A (en) * 1998-05-14 2000-11-28 International Business Machines Corporation Method for executing a user-requested CGI program in a new authentication context while protecting operation of a default web server program
US6338064B1 (en) 1998-05-14 2002-01-08 International Business Machines Corporation Method for enabling a web server running a “closed” native operating system to impersonate a user of a web client to obtain a protected file
US6922708B1 (en) * 1999-02-18 2005-07-26 Oracle International Corporation File system that supports transactions
US7451484B1 (en) 1999-05-27 2008-11-11 International Business Machines Corporation Method for enabling a program written in untrusted code to interact with a security subsystem of a hosting operating system
US7552440B1 (en) * 1999-09-28 2009-06-23 Rockwell Automation Technologies, Inc. Process communication multiplexer
US6604148B1 (en) 1999-10-01 2003-08-05 International Business Machines Corporation Method, system, and program for accessing a network namespace
US7117293B1 (en) * 2000-05-12 2006-10-03 Apple Computer, Inc. Method and apparatus for archiving and unarchiving objects
KR20000050238A (ko) * 2000-05-30 2000-08-05 김호광 다수의 운영시스템에서 실행 가능한 프로그램 제작 시스템및 방법
US7117239B1 (en) * 2000-07-28 2006-10-03 Axeda Corporation Reporting the state of an apparatus to a remote computer
US8108543B2 (en) 2000-09-22 2012-01-31 Axeda Corporation Retrieving data from a server
US7185014B1 (en) 2000-09-22 2007-02-27 Axeda Corporation Retrieving data from a server
KR20020031511A (ko) * 2000-10-20 2002-05-02 김영돈, 정춘보 다수의 하드웨어에서 실행가능한 pda 어플리케이션제작방법
US20020078365A1 (en) * 2000-12-15 2002-06-20 International Business Machines Corporation Method for securely enabling an application to impersonate another user in an external authorization manager
GB2374688B (en) 2001-04-19 2004-12-29 Ibm A method and system for distributing software features to a computer
US7254601B2 (en) 2001-12-20 2007-08-07 Questra Corporation Method and apparatus for managing intelligent assets in a distributed environment
US7822980B2 (en) * 2002-03-15 2010-10-26 International Business Machines Corporation Authenticated identity propagation and translation within a multiple computing unit environment
US7178149B2 (en) 2002-04-17 2007-02-13 Axeda Corporation XML scripting of soap commands
US7966418B2 (en) 2003-02-21 2011-06-21 Axeda Corporation Establishing a virtual tunnel between two computer programs
US7246361B1 (en) * 2003-03-20 2007-07-17 Intuit, Inc. Supporting multiple late binding objects with the same identifier
JP4478686B2 (ja) * 2003-05-28 2010-06-09 シンボル テクノロジーズ, インコーポレイテッド バックアップセルコントローラ
JP2005149164A (ja) * 2003-11-17 2005-06-09 Hitachi Ltd 共有ライブラリに格納された外部公開関数の呼び出し方法
US7590743B2 (en) * 2003-12-23 2009-09-15 Softricity, Inc. Method and system for associating a process on a multi-user device with a host address unique to a user session associated with the process
KR20050114047A (ko) * 2004-05-31 2005-12-05 삼성전자주식회사 원격지에 소재하는 다수의 클라이언트들을 지원하는 방법및 서버
US7680758B2 (en) * 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
US7458072B2 (en) * 2004-10-06 2008-11-25 Microsoft Corporation Execution context infrastructure
US7450128B2 (en) * 2004-11-15 2008-11-11 Hewlett-Packard Development Company, L.P. Systems and methods of providing image copy and modify commands to a receiver with an associated display
US7703135B2 (en) * 2004-12-21 2010-04-20 International Business Machines Corporation Accessing protected resources via multi-identity security environments
US7817849B2 (en) * 2005-08-18 2010-10-19 Hewlett-Packard Development Company, L.P. Method and apparatus for graphical data compression
US8370479B2 (en) 2006-10-03 2013-02-05 Axeda Acquisition Corporation System and method for dynamically grouping devices based on present device conditions
US8065397B2 (en) 2006-12-26 2011-11-22 Axeda Acquisition Corporation Managing configurations of distributed devices
US9870263B2 (en) * 2007-06-29 2018-01-16 Microsoft Technology Licensing, Llc System virtualization instance management for terminal sessions
US8171483B2 (en) 2007-10-20 2012-05-01 Citrix Systems, Inc. Method and system for communicating between isolation environments
US8832698B1 (en) 2007-12-31 2014-09-09 Emc Corporation Event-driven state thread architecture
US8832711B1 (en) * 2007-12-31 2014-09-09 Emc Corporation User interface for event-driven state thread architecture
US20170111368A1 (en) * 2009-06-22 2017-04-20 Beyondtrust Software, Inc. Systems and methods for true privilege application elevation
US8556713B2 (en) * 2009-10-20 2013-10-15 Michael Pilip Single to multi-user synchronous application conversion
US8650658B2 (en) 2010-10-25 2014-02-11 Openpeak Inc. Creating distinct user spaces through user identifiers
US8635152B2 (en) * 2011-09-14 2014-01-21 Microsoft Corporation Multi tenancy for single tenancy applications
US8589481B2 (en) * 2011-09-14 2013-11-19 Microsoft Corporation Multi tenant access to applications
US9069766B2 (en) * 2012-11-02 2015-06-30 Microsoft Technology Licensing, Llc Content-based isolation for computing device security
US9445271B2 (en) 2013-03-01 2016-09-13 Mobile Iron, Inc. Multi-user use of single-user apps
US9772835B1 (en) * 2013-03-13 2017-09-26 Amazon Technologies, Inc. Modification of program code for execution in a multi-tenant or distributed computing environment
US10756899B2 (en) * 2014-09-26 2020-08-25 Blackberry Limited Access to software applications
US10977361B2 (en) 2017-05-16 2021-04-13 Beyondtrust Software, Inc. Systems and methods for controlling privileged operations
KR102212512B1 (ko) * 2019-02-28 2021-02-04 성균관대학교산학협력단 가상화기술에서 뮤텍스 객체를 이용한 소프트웨어 기반 은닉채널 구성 시스템
US11528149B2 (en) 2019-04-26 2022-12-13 Beyondtrust Software, Inc. Root-level application selective configuration

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4387425A (en) 1980-05-19 1983-06-07 Data General Corporation Masterless and contentionless computer network
US4779189A (en) 1985-06-28 1988-10-18 International Business Machines Corporation Peripheral subsystem initialization method and apparatus
US4825354A (en) * 1985-11-12 1989-04-25 American Telephone And Telegraph Company, At&T Bell Laboratories Method of file access in a distributed processing computer network
JP2585535B2 (ja) 1986-06-02 1997-02-26 株式会社日立製作所 複合計算機システムにおけるプロセス結合方法
US4887204A (en) 1987-02-13 1989-12-12 International Business Machines Corporation System and method for accessing remote files in a distributed networking environment
US5175852A (en) 1987-02-13 1992-12-29 International Business Machines Corporation Distributed file access structure lock
US5202971A (en) 1987-02-13 1993-04-13 International Business Machines Corporation System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock
US5367688A (en) 1987-09-04 1994-11-22 Digital Equipment Corporation Boot system for distributed digital data processing system
US5014221A (en) 1988-01-29 1991-05-07 Digital Equipment Corporation Mechanism for arbitrating client access to a networked print server
US5155847A (en) 1988-08-03 1992-10-13 Minicom Data Corporation Method and apparatus for updating software at remote locations
US5031089A (en) 1988-12-30 1991-07-09 United States Of America As Represented By The Administrator, National Aeronautics And Space Administration Dynamic resource allocation scheme for distributed heterogeneous computer systems
EP0381645A3 (en) 1989-01-18 1992-08-05 International Business Machines Corporation System and method for communicating between a plurality of processors
EP0384339B1 (en) 1989-02-24 1997-04-02 Digital Equipment Corporation Broker for computer network server selection
US5142680A (en) 1989-04-26 1992-08-25 Sun Microsystems, Inc. Method for loading an operating system through a network
US5305440A (en) 1989-05-15 1994-04-19 International Business Machines Corporation File extension by clients in a distributed data processing system
US5187790A (en) * 1989-06-29 1993-02-16 Digital Equipment Corporation Server impersonation of client processes in an object based computer operating system
US5057996A (en) * 1989-06-29 1991-10-15 Digital Equipment Corporation Waitable object creation system and method in an object based computer operating system
US5297283A (en) 1989-06-29 1994-03-22 Digital Equipment Corporation Object transferring system and method in an object based computer operating system
US5129084A (en) 1989-06-29 1992-07-07 Digital Equipment Corporation Object container transfer system and method in an object based computer operating system
US5119319A (en) 1989-12-14 1992-06-02 Options Unlimited Research Corp. Full-duplex video communication system
EP0463251A1 (en) 1990-06-28 1992-01-02 International Business Machines Corporation Software installation
AU639802B2 (en) * 1990-08-14 1993-08-05 Oracle International Corporation Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment
US5423041A (en) 1990-09-28 1995-06-06 Texas Instruments Incorporated Coupling rules to an object-oriented program
US5241625A (en) 1990-11-27 1993-08-31 Farallon Computing, Inc. Screen image sharing among heterogeneous computers
US5249290A (en) 1991-02-22 1993-09-28 At&T Bell Laboratories Method of and apparatus for operating a client/server computer network
US5204897A (en) 1991-06-28 1993-04-20 Digital Equipment Corporation Management interface for license management system
IL99923A0 (en) 1991-10-31 1992-08-18 Ibm Israel Method of operating a computer in a network
EP0546682A3 (en) 1991-12-12 1993-12-08 Ibm Parent class shadowing
US5349682A (en) 1992-01-31 1994-09-20 Parallel Pcs, Inc. Dynamic fault-tolerant parallel processing system for performing an application function with increased efficiency using heterogeneous processors
US5386558A (en) * 1992-02-24 1995-01-31 Adapsys, Inc. Method and apparatus for executing control system functions in a computer system
US5371891A (en) 1992-04-09 1994-12-06 Microsoft Corporation Method for object construction in a compiler for an object-oriented programming language
US5339430A (en) 1992-07-01 1994-08-16 Telefonaktiebolaget L M Ericsson System for dynamic run-time binding of software modules in a computer system
US5440719A (en) 1992-10-27 1995-08-08 Cadence Design Systems, Inc. Method simulating data traffic on network in accordance with a client/sewer paradigm
US5329619A (en) * 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments
CA2103297A1 (en) 1992-12-07 1994-06-08 Donald J. Kennedy Interception system and method including user interface
US5315703A (en) 1992-12-23 1994-05-24 Taligent, Inc. Object-oriented notification framework system
US5325527A (en) 1993-01-19 1994-06-28 Canon Information Systems, Inc. Client/server communication system utilizing a self-generating nodal network
US5437025A (en) 1993-01-26 1995-07-25 International Business Machines Corporation System and method for run time configuration of objects in an object oriented computing environment
US5369766A (en) 1993-03-25 1994-11-29 Taligent, Inc. Object-oriented loader system with support for different load formats
AU681433B2 (en) * 1993-08-03 1997-08-28 Sun Microsystems, Inc. Flexible multi-platform partitioning for computer applications
GB2281793A (en) 1993-09-11 1995-03-15 Ibm A data processing system for providing user load levelling in a network
US5581765A (en) * 1994-08-30 1996-12-03 International Business Machines Corporation System for combining a global object identifier with a local object address in a single object pointer

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9430226B2 (en) 2012-09-14 2016-08-30 Konica Minolta, Inc. Mobile information terminal has replacement portion performing replacement processing for moving temporary setting data to storage device

Also Published As

Publication number Publication date
AU710435B2 (en) 1999-09-23
ES2140136T3 (es) 2000-02-16
DE69605568T2 (de) 2000-05-04
EP0855060A1 (en) 1998-07-29
WO1997014098A1 (en) 1997-04-17
AU7256696A (en) 1997-04-30
ATE187562T1 (de) 1999-12-15
EP0855060B1 (en) 1999-12-08
KR19990064189A (ko) 1999-07-26
IL124035A (en) 2001-08-08
CA2234405A1 (en) 1997-04-17
CA2234405C (en) 2002-07-23
DE69605568D1 (de) 2000-01-13
US6684259B1 (en) 2004-01-27

Similar Documents

Publication Publication Date Title
JPH11513822A (ja) マルチユーザオペレーティングシステムにおいてユーザグローバルオブジェクト名スペースを提供する方法
US6023721A (en) Method and system for allowing a single-user application executing in a multi-user environment to create objects having both user-global and system global visibility
EP1794678B1 (en) Methods and systems for accessing, by application programs, resources provided by an operating system
US5802367A (en) Method and system for transparently executing code using a surrogate process
EP0547759B1 (en) Non supervisor-mode cross-address space dynamic linking
US6115736A (en) System and method for automatically localizing access to remote network components using implicit agent relocation
US7680758B2 (en) Method and apparatus for isolating execution of software applications
US7130905B2 (en) System and method for coordinating access to data for a distributed application
US20040230972A1 (en) Management of locks in a virtual machine environment
US20020065776A1 (en) Method and process for virtualizing file system interfaces
US20020066022A1 (en) System and method for securing an application for execution on a computer
JPH07200449A (ja) コードのリモート実行方法およびシステム
US20020065876A1 (en) Method and process for the virtualization of system databases and stored information
US20060253858A1 (en) Software service application and method of servicing a software application
JP2001306340A (ja) 安全サブスペース機構を採用したストレージ分離
JP2003132021A (ja) 機構に無関係のクラスタ・セキュリティ・サービスを提供する方法
Euresti et al. Dude, Where’s My Object?