DE69605568T2 - Verfahren zum schaffen eines benutzerglobalen namenraums in einem mehrbenutzer-betriebssystem - Google Patents

Verfahren zum schaffen eines benutzerglobalen namenraums in einem mehrbenutzer-betriebssystem

Info

Publication number
DE69605568T2
DE69605568T2 DE69605568T DE69605568T DE69605568T2 DE 69605568 T2 DE69605568 T2 DE 69605568T2 DE 69605568 T DE69605568 T DE 69605568T DE 69605568 T DE69605568 T DE 69605568T DE 69605568 T2 DE69605568 T2 DE 69605568T2
Authority
DE
Germany
Prior art keywords
user
application
named
operating system
global
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.)
Expired - Lifetime
Application number
DE69605568T
Other languages
English (en)
Other versions
DE69605568D1 (de
Inventor
Michael Discavage
Edward E Iacobucci
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.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
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 Citrix Systems Inc filed Critical Citrix Systems Inc
Application granted granted Critical
Publication of DE69605568D1 publication Critical patent/DE69605568D1/de
Publication of DE69605568T2 publication Critical patent/DE69605568T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)
  • Selective Calling Equipment (AREA)
  • Alarm Systems (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

  • Die Erfindung betrifft ein dezentrales Mehrfachbenutzer-Datenverarbeitungssystem, welches ein Hauptprogramm und eine Vielzahl von Dienstprogrammen aufweist, und ein Verfahren zur Anpassung von Anwendungen, die für eine Einbenutzer-Umgebung geschrieben wurden, zur Verwendung in einem Mehrbenutzersystem, ohne ein Rekompilieren.
  • Das beschriebene dezentrale Datenverarbeitungssystem ist ein Mehrbenutzer- und ein Mehranwendungssystem. Die für eine Mehrbenutzer-Umgebung geschriebenen Anwendungen nehmen üblicherweise an, daß mehr als eine Kopie der Anwendung zu einer bestimmten Zeit aktiv sein kann. Mehranwendungsprogramm-Betriebssysteme (z. B. Windows NT und Unix) stellen die Fähigkeit bereit, verschiedene Typen von gemeinsam genutzten Objekten zu generieren, um eine Interprozeß-Kommunikation und Synchronisation bereitzustellen. Indem ein Name mit einem Objekt assoziiert wird, erlaubt dieses es einem Prozeß, ein Objekt zu generieren, und es einem anderen Prozeß, dieses zu benutzen. Eine Synchronisation gewährleistet, daß nur ein Prozeß die Kontrolle über eine Ressource zu einem gewissen Zeitpunkt hat. Ressourcen schließen Objekte wie globale Variable, einen gemeinsamen Datenspeicher, Dateien-Zeiger ("file handles") und gemeinsam genutzte Objekt-Zeiger ("objekt handles") ein.
  • Gemeinsam genutzte Objekte, die zur Synchronisation und zur lnterprozeß-Kommunikation verwendet werden, schließt ein:
  • Semaphoren und Ereignis-Objekte zur Koordination von Verarbeitungseinheiten ("threads"); Mutexes, ein sich gegenseitig ausschließendes Semaphor, welches nur einen Zugriff durch eine einzelne Verarbeitungseinheit zu einem gewissen Zeitpunkt erlaubt;
  • Benannte Pipes für eine geduplexte Interprozeß- und lnterprozessor-Verbindungen;
  • Meldungs-Warteschlangen für eine Einweg, viele-zu-ein-Kommunikationen; und
  • einen gemeinsam genutzten Speicher zur Benutzung durch alle Prozesse, die hierauf einen autorisierten Zugriff haben.
  • Wenn eine Anwendung für einen Einbenutzer geschrieben wurde, um in einem Einbenutzer-Betriebssystem, wie z. B. Windows NT (produziert von Microsoft Corporation, Redmond, Washington) zu laufen, und dann in einer Mehrbenutzer- Umgebung unter einem kompatiblen Mehrbenutzer-Betriebssystem, wie z. B. WinFrameTM (hergestellt von Citrix Systems, Inc., Coral Springs, Florida) betrieben wird, ist es dann in einer Mehrbenutzer-Umgebung möglich, daß Namenskollisionen auftreten, wenn mehr als eine Kopie der gleichen Anwendung zur gleichen Zeit ausgeführt wird. Die Anwendung müßte daher modifiziert und rekompiliert werden, um in einer Mehrbenutzer-Umgebung zuverlässig ausführbar zu sein.
  • Die vorliegende Erfindung modifiziert die bestehenden Verfahren, welche in einem Mehrbenutzer-Betriebssystem zur Objektnamensgenerierung, -suche und -löschung, verwendet werden, so daß mehrfache Kopien einer Einbenutzer-Anwendung gleichzeitig laufen können.
  • Es wird ein Verfahren beschrieben, das es einem Einbenutzer-Anwendungsprogramm erlaubt, unter einem Mehrbenutzer-Betriebssystem betrieben zu werden, ohne das Einbenutzer-Programm zu modifizieren, indem die bestehenden Methoden des Betriebssystems, welche zur Objekt-Namensgenerierung, -Suche und -Löschung verwendet werden, modifiziert wird, so daß mehrfache Kopien eines Einbenutzer-Anwendungsprogramms gleichzeitig lauffähig sind. Das Verfahren schließt folgende Schritte ein:
  • a) Zuordnen einer eindeutigen Kennung zu jedem Benutzer im System und zu jeden Anwendungen des Benutzers, und Anhängen dergleichen Kennung an ein jedes Exemplars eines Objekts, welches von den Anwendungen des Benutzer generiert wurde, um einen definierten Einbenutzer-Namensraum, der nur dem einen Benutzer zugänglich ist, zu generieren, und
  • b) einem Server-Prozeß, welcher die Anwendung des Einbenutzer-Prozesses bedient, in die Lage zu versetzen, den Einbenutzer-Prozeß zu personifizieren, indem der die Identität des Einbenutzer-Prozesses annimmt, um den Server-Prozeß in die Lage zu versetzen, auf den Namensraum des Einbenutzers zuzugreifen.
  • Auf diese Art und Weise nimmt der Server-Prozeß die Rolle des Benutzers an, hat Zugriff auf den persönlichen Namensraum des Benutzers und auf alle Objekte, die zur Bedienung der Anwendung des Benutzers erforderlich sind. Die Kombination von Benutzermarkierung und Benutzer-Personifizierung erlaubt es mehrfachen Kopien ein und derselben Anwendung, gleichzeitig zu laufen, obwohl diese Anwendung für ein Einbenutzer-Betriebssystem geschrieben wurde.
  • Einige bevorzugte Ausführungsbeispiele der Erfindung werden nachstehend exemplarisch und unter Bezugnahme auf die beiliegenden Zeichnungen beschrieben. Es zeigen:
  • Fig. 1 zeigt die Beziehung zwischen einem Sitzungsmanager und Vielfachanwendungs-Servern in einem Mehrbenutzer-System.
  • Fig. 3 (a) zeigt ein Beispiel eines bekannten Aufrufs zur Objekt-Generierung.
  • Fig. 3 (b) zeigt ein Beispiel eines bekannten Aufrufs zum Öffnen eines Objekts.
  • Fig. 3 (c) zeigt ein Beispiel eines bekannten Aufrufs zur Objekt-Löschung.
  • Fig. 4 (a) zeigt ein Beispiel eines Aufrufs zur Objekt-Generierung in einem System mit einem benutzerglobalen Namensraum.
  • Fig. 4 (b) zeigt ein Beispiel eines Aufrufs zum Öffnen eines Objekts in einem System mit einem benutzerglobalen Namensraum.
  • Fig. 4 (c) zeigt ein Beispiel eines Aufrufs zur Objekt-Löschung in einem System mit einem benutzerglobalen Namensraum.
  • Fig. 5 beschreibt den Kontext zwischen benannten Ressourcen, die von .EXE/.DLL-Overrides abhängen, und API-Override-Werten.
  • Fig. 6 ist ein Flußdiagramm zur Generierung eines benutzer- und systemglobalen Kontextes.
  • Zwei bedeutende Betriebssystem(BS)-Merkmale zur Verwendung in einem dezentralisierten Client-Server-Verarbeitungssystem sind der Mehranwendungs- und Mehrbenutzer-Betrieb.
  • Mehranwendung ist die Fähigkeit, mehr als ein Programm zur gleichen Zeit laufen lassen zu können, indem jede Anwendung ("task") in eine Vielzahl von Verarbeitungseinheiten ("threads") oder Unteranwendungen aufgeteilt wird, so daß bestimmte Verarbeitungseinheiten einen einzigen Prozessor gemeinsam benutzen können, indem die Verarbeitungseinheiten einer jeden Anwendung gemultiplext werden. Auf diese Art und Weise wird jeder bestimmten Anwendung Zugriff auf den Prozessor auf einer mehrfach genutzten Basis gegeben. Eine prioritätsbasierte Planung verwaltet die Prozessorzeit, die jeder Anwendung oder jedem Programm zugeordnet wird.
  • In einem Betriebssystem wie Windows NT wird jeder Prozeß in eine Vielzahl von Verarbeitungseinheiten zur Ausführung aufgeteilt. Die Verarbeitungseinheiten laufen während die Prozesse niemals gelaufen werden. Jeder Prozeß kann aus einer oder mehreren Verarbeitungseinheiten bestehen. Jede Verarbeitungseinheit weist eine ihr zugeordnete Priorität auf, welche unabhängig zugewiesen werden kann.
  • Ein "Prozeß" ist eine Gruppe von Speicheradressen, bei denen einigen der Adressen Programmschritten zugeordnet sind, während dem Rest Daten zugeordnet sind, welche von den Programmschritten benötigt werden. Typischerweise teilen sich Prozesse nicht Speicher mit anderen Prozessen, da jeder Prozeß als eine einzige Einheit strukturiert und sein Speicherraum gegen unautorisierten Zugriff durch andere Prozesse geschützt ist. Eine Vielzahl von Verarbeitungseinheiten werden innerhalb eines Prozesses generiert, wobei jede Verarbeitungseinheit Zugriff auf den gesamten Speicher und andere Ressourcen innerhalb des Prozesses aufweist.
  • Jede Verarbeitungseinheit hat drei mögliche Zustände, welche enthalten:
  • Laufend - während die Verarbeitungseinheit aufgeführt wird;
  • Bereit - während die Verarbeitungseinheit darauf wartet, daß andere Verarbeitungseinheiten ihre Ausführungen beenden; und
  • Blockiert - während die Verarbeitungseinheit darauf wartet, daß ein Ereignis auftritt.
  • Da Prozesse das Erfordernis aufweisen können, miteinander zu kommunizieren, wird eine Vielfalt von Vorgangsweisen bereitgestellt, welche Synchronisations- und Interprozeß-Kommunikation-Objekte wie folgende einschließen:
  • Ereignis-Objekte, um einer wartenden Verarbeitungseinheit mitzuteilen, daß ein Ereignis aufgetreten ist;
  • Mutex (mutual exclusion)-Objekte zur Verwendung zwischen Prozessen, um zu gewährleisten, daß nur ein Prozeß Zugriff zu einer bestimmten Zeit hat;
  • Semaphor-Objekte zur Verwendung wenn ein Zähler benötigt wird, um die Zahl der Verarbeitungseinheiten zu begrenzen, die eine bestimmte Ressource verwenden können;
  • Benannte Pipe-Objekte sind Einweg- oder Duplex-Verbindungen zwischen zwei Prozessen; und
  • Kommunikationsschnittstellen sind Nachrichtenverbindungen zwischen zwei Prozessen.
  • Indem ein Name jedem Objekt zugeordnet wird, werden diese Objekte in die Lage versetzt, zwischen Prozessen geteilt zu werden. Ein weiteres benanntes Objekt ist ein benannter, gemeinsam benutzter Speicher, der es einem Prozeß erlaubt, ein benanntes Objekt zu generieren, und einem anderen erlaubt, dieses in einem Mehrfachanwendungssystem zu benutzen.
  • Die Fig. 1 zeigt die Architektur eines Mehrbenutzer-Anwendungs-Server- Systems 100, welches in einem Wirtsystem residiert und einen Sitzungsmanager 101 und eine Anzahl von Anwendungsserver 200 enthält. Jeder Anwendungsserver 200 ist mit einer Klient(Benutzer)-Arbeitsstation verbunden, um die Anwendung des Klienten im Wirtsystem laufen zu lassen, indem er Daten von der zugeordneten Klient-Arbeitsstation eingibt und verarbeitete Daten und Anzeige- Daten zu dieser Klient-Arbeitsstation liefert. Das Wirtsystem enthält gemeinsame Ressourcen, welche von den verschiedenen Klient-Arbeitsstationen durch die zugeordneten Applikations-Server 200 gemeinsam benutzt werden.
  • Im folgenden wird nun die Architektur eines gewerblichen Applikations-Servers, der von Citrix Systems, Inc. Coral Springs, Florida hergestellt wird, beschrieben. Der Anwendungs-Server enthält ein Subsystem für das Management der zugeordneten Klient-Arbeitsstationen, für die Anwendungsdienste bereitsgestellt werden sollen. Das Subsystem enthält eine DLL-Bibliothek (Dynamic Linkable Library) und generiert den zur Kontrolle der Arbeitsstation, auf die zugegriffen wird, erforderlichen Kontrolldatenstrom. Ein WinStation-Treiber interpretiert den Datenstrom, der entweder vom Protokoll-Treiber-Stapelspeicher (Protocoll Driver Stack), vom Subsystem oder von der Klient-Arbeitsstation generiert wurde. Der Protokoll-Treiber-Stapelspeicher ist eine Kommunikationsschicht zur Vorbereitung der Daten, welche zur Arbeitsstation übertragen oder von ihr empfangen werden sollen. Der Transport-Treiber ist ein Protokoll-Treiber zur Verbindung des Anwendungs-Servers mit dem Transport-Dienstprogramm (Transport Service), welches von der Arbeitsstation verwendet wird. Ein virtueller Treiber betreibt ein virtuelles Kanalprotokoll, welches zum Übersenden von Anwendungsdaten zu und von der Arbeitsstation des Benutzers verwendet wird.
  • In einem Mehrbenutzer-Mehranwendungs-System, wie es in Fig. 1 gezeigt ist, müssen die Anwendungen derart geschrieben werden, daß mehr als eine Kopie der Anwendung zur gleichen Zeit laufen kann, ohne daß eine Kollision von Objektnamen auftritt. Wie auch immer, die meisten für eine Einbenutzer-Umgebung geschriebenen Anwendungen nehmen implizit an, daß nur eine einzige Kopie der Anwendung im System zu einem bestimmten Zeitpunkt aktiv ist. Folglich ist, wenn mehr als eine derartige Anwendung zur gleichen Zeit in einer Mehrbenutzer-Anwendung betrieben werden soll, eine ausreichende Wahrscheinlichkeit gegeben, daß Namenskollisionen auftreten. Dies würde es praktisch unmöglich machen: viele existierende Einbenutzer-Anwendungen in einer Mehrbenutzer-Umgebung zu verwenden, ohne das Anwendungsprogramm zu modifizieren.
  • Wenn z. B. eine Einbenutzer-Windows NT-Betriebssystem-Anwendung, welche eine benannte Ressource, wie z. B. ein Semaphor, verwendet, versuchen würde, in einer Mehrbenutzer-Umgebung zu laufen, so würde sie anfänglich versuchen, ein benanntes Semaphor zu generieren. Wie auch immer, wenn die gleiche Anwendung bereits vorher von einem anderen Benutzer gestartet worden wäre, würde dieser Versuch, daß benannte Semaphor zu generieren, fehlschlagen. Dieser Typ von Anwendung würde daher Schwierigkeiten haben, mehrfache Exemplare ihrer selbst in einer Einbenutzer-Umgebung laufen zu lassen. Um sie in einer Mehrbenutzer-Umgebung (z. B. unter dem Betriebssystem WinFrameTM) laufen zu lassen, müssen Konstruktionen eingeschlossen werden, welche globale Ressourcen dem Benutzerniveau zuordnen. Die benannten Ressourcen, bei denen diese Probleme auftreten können, schließen Semaphoren, benannte Pipes, Warteschlangen, Kommunikationsschnittstellen und benannte, gemeinsam benutzte Speicher ein.
  • Die Fig. 3 (a, b, c) sind Flußdiagramme, welche die Aktionen und Ergebnisse darstellen, wenn zwei Einbenutzerprozesse (Prozeß A und Prozeß B) versuchen, in einer bekannten Mehrbenutzer-Umgebung zu arbeiten. Die erste Spalte (links) zeigt Aktionen, die durch den Prozeß A initiiert werden und deren Ergebnis, während die zweite Spalte die Aktionen, die vom Prozeß B vorgenommen werden und deren Ergebnisse zeigt. Die drei Flußdiagramme sind: Fig. 3 (a) zur Generierung eines Objekts, das "XYZ" benannt ist, Fig. 3 (b) zum Öffnen eines Objekts, das "XYZ" benannt ist, und Fig. 3 (c) zum Löschen eines Objekts das "XYZ" benannt ist.
  • Im Schritt 11 der Fig. 3 (a) ruft der Anwendungsprozeß A ein Anwendungsprogramm-Interface (API) im Kernel des Betriebssystems (BS) des Wirtcomputers auf, um ein Objekt namens "XYZ" zu generieren. Der Prozeß B führt die gleiche Anforderung im Schritt 21 durch. Im Schritt 12 wird das Objekt "XYZ" vom Kernel des Betriebssystems, wie vom Prozeß A angefordert, generiert, und der Name wird gespeichert. Wie auch immer, die Anforderung durch Prozeß B in Schritt 22 schlägt fehl, da das Betriebssystem findet, daß das benannte Objekt "XYZ" bereits existiert. Als Ergebnis erhält der Prozeß A den benötigten Objekt-Zeiger (objekt-handle) in Schritt 13, während der Prozeß B eine Fehlerstatus-Meldung erhält.
  • In Fig. 3 (b) rufen beide Anwendungsprozesse A und B eine API auf, um das "XYZ" benannte Objekt zu öffnen. Das Betriebssystem führt eine Suche nach dem Objekt "XYZ" in den Schritten 15 und 25 durch. Die beiden Suchen finden das früher generierte Objekt namens "XYZ" und der Objekt-Handle wird zum Prozeß A bzw. B in den Schritten 16 und 26 zurückgegeben.
  • In Fig. 3 (c) ruft im Schritt 17 der Prozeß A eine API auf, um ein Objekt namens "XYZ" zu löschen. Wir nehmen an, daß der Prozeß B darauffolgend diesselbe Anforderung in Schritt 27 durchführt. Als Ergebnis bewirkt die Anforderung durch Prozeß A eine Suche nach dem Objekt namens "XYZ" in Schritt 18, die darin resultiert, daß das Objekt in Schritt 19 gelöscht wird. Aufgrund der früheren Löschungsanforderung durch Prozeß A schlägt die Suche nach dem Objekt namens "XYZ" im Schritt 28 fehl und Schritt 29 gibt eine Fehlerstatusmeldung zurück.
  • Die Aktionen und Ergebnisse, die in Fig. 3 (b) gezeigt werden, sind nicht passend, da der Prozeß B Zugriff auf das Objekt "XYZ" erhalten hat, welches von Prozeß A generiert wurde, und nicht auf den Prozeß namens "XYZ", der vom Prozeß B hätte generiert werden sollen. In ähnlicher Art und Weise sind die Aktionen und Ergebnisse, die in Fig. 3 (c) gezeigt werden, unerwünscht, da ein Objekt namens "XYZ" entweder vom Prozeß A oder vom Prozeß B gelöscht werden könnte, je nach dem, welcher Prozeß zuerst die Löschung beantragt hätte.
  • Um nun Windows NT Einbenutzer-Anwendungen in eine Mehrbenutzer-WinFrameTM-Betriebssystem-Umgebung einzubetten, werden die folgenden Schritte durchgeführt:
  • (1) alle Anwendungsprogrammschnittstellen(API)-Aufrufe durch einen bestimmten Benutzer nach diesen benannten Ressourcen werden abgefangen;
  • (2) eine Benutzerkennzeichnung wird dem Name hinzugefügt, bevor er im API-Aufruf weitergeleitet wird; und
  • (3) alle Anwendungen, die für einen bestimmten Benutzer laufen, werden die benannten Aufrufe für Ressourcen identisch modifiziert haben.
  • Auf diese Art und Weise werden die benannten Ressourcen "benutzerglobal" gemacht, welches sie nur innerhalb des Kontextes eines gewissen Benutzers gemeinsam benutzbar macht.
  • Die Fig. 4 (a, b, c) zeigen die Ergebnisse der obigen Schritte, welche unternommen werden, um Einbenutzeranwendungen in ein Mehrbenutzersystem einzubeziehen, und die Konsequenzen der Aktionen, welche vom Prozeß A auf der linken und vom Prozeß B auf der rechten Seite vorgenommen werden.
  • In der Fig. 4 (a) ruft der Prozeß A in Schritt 30 eine API im Kernel des Betriebssystems auf, um ein "XYZ" benanntes Objekt zu generieren. Das Betriebssystem ordnet ID (1) als eindeutige Benutzerkennung (ID), die dem Anwendungsprozeß A zugeordnet ist, in Schritt 31 zu. In Schritt 32 generiert das Betriebssystem das Objekt und speichert den Namen "XYZ" zusammen mit der eindeutigen Benutzerkennung ID(A) ab. In Schritt 33 gibt das System den Objekt-Handle an Prozeß A zurück. In der Zwischenzeit initiiert der Prozeß B ähnliche Aktionen in Schritt 50, indem er zur Generierung eines "XYZ" benannten Objekts aufruft, mit dem Ergebnis, daß eine eindeutige Benutzerkennung ID(B) mit dem Anwendungsprozeß in Schritt 51 verbunden wird und ein "XYZ" benanntes Objekt in Schritt 52 generiert und der Name zusammen mit der ID(B) abgespeichert wird. Der Objekt-Handle für das "XYZ" benannte Objekt, das mit ID(B) verbunden ist, wird zum Prozeß B zurückgegeben. Es soll angemerkt werden, daß die Prozesse A und B sich auf ihre entsprechenden "XYZ" benannten Objekte unter Verwendung des gleichen Namens beziehen, daß aber das Betriebssystem klar zwischen ihnen aufgrund der zugeordneten Benutzerkennung ID unterscheidet.
  • In Fig. 4 (b) ist ein Flußdiagramm zur Öffnung eines Objekts durch Prozeß A und Prozeß B gezeigt. In Schritt 34 ruft der Prozeß A eine API auf, um ein "XYZ" benanntes Objekt zu öffnen. In Schritt 35 wird die eindeutige Benutzerkennung ID, die dem Prozeß A zugeordnet wurde, ID(A), vom Betriebssystem gefunden und eine Suche nach dem Objekt "XYZ" mit der zugeordneten eindeutigen Benutzerkennung ID wird in Schritt 36 durchgeführt. Wenn eine Übereinstimmung sowohl für den Namen "XYZ" und die ID(1) gefunden wird, gibt der Schritt 37 den Handle für das gewünschte Objekt zurück. Der Schritt 54 initiiert einen ähnlichen Aufruf des Anwendungsprozesses B, um ein "XYZ" benanntes Objekt aufzurufen, und das Betriebssystem ordnet die eindeutige Benutzerkennung ID, nämlich ID(B), die dem Prozeß B zugeordnet ist, zu und sucht nach dem Objekt "XYZ" zusammen mit der ID(B). Aufgrund der eindeutigen Benutzerkennung, die jedem Prozeß zugeordnet ist, können zwei benannte Objekte seperat durch das Betriebssystem unterstützt werden. Folglich sucht der Schritt 56 und ist in der Lage, das Objekt "XYZ", das zu dem Prozeß B gehört, zu finden. Der passende Objekt- Handle wird dem Prozeß B in Schritt 57 zurückgegeben.
  • Die Fig. 4 (c) ist ein Flußdiagramm zum Löschen von Objekten mit dem gleichen Namen "XYZ". In Schritt 38 ruft der Prozeß A eine API auf, um das "XYZ" benannte Objekt zu löschen. Wiederum holt sich das Betriebssystem die eindeutige Kennung ID(A), die dem Prozeß A zugeordnet wird, in Schritt 39 und fährt mit der Suche nach "XYZ" mit passender Kennung ID(A) fort. Nachdem es gefunden wurde, wird das Objekt in Schritt 41 gelöscht. In entsprechender Art und Weise ruft der Prozeß B zur Löschung des Objekts "XYZ" in Schritt 58 auf, und die folgenden Schritte 59, 60 und 61 resultieren in der Löschung des Objekts "XYZ", welches mit der ID(B) verbunden ist.
  • Indem eine eindeutige Benutzerkennung ID mit jedem benannten Objekt verbunden ist, kann eine Einbenutzeranwendung in einem Mehrbenutzersystem ohne Modifikation verwendet werden, indem die oben beschriebenen Betriebssystem- Modifikationen verwendet werden.
  • Ein wahlloses Anwenden der Benutzerkennung auf den API kann zu Problemen führen. Wenn z. B. eine Mehrbenutzer-Anwendung ein System-Semaphor verwendet, um einen Zugriff auf eine geschützte Ressource zu serialisieren, wird eher ein "system-globaler" Kontext als ein "benutzerglobaler" Kontext benötigt. Da die Charakteristika der Anwendung, die den API-Aufruf macht, nicht ohne weiteres dem Kernel des Anwendungsprogramms zugänglich sind, kann dieses potentielle Problem dadurch gelöst werden, indem
  • (1) benutzerglobal als Standard-Kontext eingerichtet wird,
  • (2) ein systemglobaler Kontext eingerichtet wird,
  • (3) eine Anwendung befähigt wird, zwischen einem benutzerglobalen und einem systemglobalen Kontext für ein spezifisches benanntes Objekt auf einer individuellen API Basis zu wählen, indem ein Kontext-Änderer dem Name des benamten Objekts angehängt wird, und
  • (4) die Markierung von speziellen anwendungsausführbaren (.EXE) Dateien oder dynamisch verknüpfbaren Bibliothek(.DLL)-Dateien ermöglicht wird, so daß alle API-Aufrufe von den ausführbaren oder den dynamisch verknüpften Dateien von einem systemglobalen Kontext sind.
  • In einer WinFrameTM-Umgebung können Mehrbenutzer-Anwendung und DLL-Bibliotheken die Zuordnung von systemglobalen und benutzerglobalen, benannten Ressourcen aus innerhalb der gleichen.EXE oder.DLL vermischen. Da es Win- FrameTM erfordert, daß der Ressource-Typ am Ende des Namensstrings spezifiziert ist, erfordert es die Anpassung einer benannten Ressource AP1, daß die Anwendungen die systemglobale Kennung an den Namensstring anhängen.
  • Die Fig. 5 beschreibt den Kontext von benannten Ressourcen als eine Funktion der benutzer- und systemglobalen Änderer, die auf .EXE/DLL und auf einen API- Aufruf angewandt werden. Wenn systemglobal nicht im API-Aufruf spezifiziert ist, ist der Kontext systemglobal, wenn .EXE/.DLL systemglobal gekennzeichnet ist. Sonst ist der Kontext benutzerglobal. Wenn der API-Aufruf systemglobal spezifiziert, ist der Kontext systemglobal, unabhängig von der Markierung der .EXE/.DLL.
  • Da der Klient-Teil einer Anwendung in einem dezentralisierten Klient-Server-Verarbeitungssystem im allgemeinen an einem anderen Platz als der Server steht, muß der Server das Sicherheits- oder Rechte-Niveau des Klienten verifizieren. Auch muß der Server, wenn der Klient eine Anforderung, auf Daten in einer Datei, die vom Server kontrolliert ist, mittels eines API-Aufrufs nach Öffnen, Lesen, oder Schreiben der Datei, zuzugreifen macht, muß der Server Öffnen/Lesen/Schreibe-Rechte für diese Datei besitzen. Wenn z. B. die Datei, auf die durch den Anwendungs-Server zugegriffen werden sollen, vom Klient als eine benutzerglobale Datei besessen wird, würde der Zugriff auf den Klienten beschränkt sein. Das Konzept der "Personifikation" stellt ein Mittel zur Auflösung dieses Dilemmas bereit.
  • Die Personifikation erlaubt es Servern, auf Daten für priviligierte Klienten zuzugreifen, indem sie die Sicherheitsstufe des Klienten annehmen. Mit dieser Anordnung würde einem Benutzer in einem Netzwerk, der nicht die entsprechende Sicherheitsfreigabe aufweist, ein Zugriff auf eine Datei durch den Anwendungs-Server verwehrt werden, wenn der Server versucht, auf diese Datei durch Personifikation des unautorisierten Benutzers zuzugreifen. Die APIs des Klienten stellen die Information, welche benötigt wird, daß eine Verarbeitungseinheit den Sicherheitskontext des Klienten annimmt, bereit. Die benannte Verarbeitungseinheit erhält dann die passende Zugriffsvalidierung.
  • Da es möglich ist, daß ein Mehrbenutzer-Server-Prozeß Anforderung von mehreren Einbenutzer-Anwendungs-Prozessen bedient, ist es notwendig, daß der Mehrbenutzer-Server-Prozeß in der Lage ist, auf den richtigen benutzergiobalen Namensraum zuzugreifen, wenn er auf ein benanntes Objekt für einen Einbenutzer-Anwendungs-Prozeß zugreift. Zu diesem Zweck wird das Konzept der Benutzerpersonifikation verwendet und derart ausgeweitet, so daß die Personifikation es nicht nur dem Server-Prozeß erlaubt, den Sicherheitskontext des Klient-Prozesses anzunehmen, sondern zudem auch Zugriff auf den Objektnamensraum des Klient-Prozesses erlaubt.
  • Ein Verfahren, welches es erlaubt, daß Einbenutzer-Anwendungen in einer Mehrbenutzer-Umgebung ohne Modifikation der Einbenutzer-Anwendungen zu arbeiten, wurde beschrieben. Die Methode beinhaltet eine Modifikation des Mehrbenutzer-Betriebssystems, indem eindeutige Benutzernamensräume generiert werden, die einen benutzerglobalen Kontext aufweisen, und durch eine Erstreckung des Konzepts der Personifikation, um die Benutzernamensräume dem Anwendungs-Server zugänglich zu machen.
  • Das oben beschriebene Verfahren wird desweiteren im Flußdiagramm der Fig. 6 zusammengefaßt, wo es als Verfahren 400 zur Generierung eines koexistenten benutzer- und systemglobalen Kontextes bezeichnet wird. Der Schritt 401 stellt einen benutzerglobalen Kontext her, indem eine Markierung zu jedem Exemplar eines Objekts oder einer Anwendung, welche von einem einzigen Benutzer verwendet werden soll, zugeordnet wird. Ein Einbenutzer-Namensraum wird dadurch generiert, indem ein jedes derartiges Exemplar als global verfügbar für diesen bestimmten Einbenutzer bezeichnet wird. Der Schritt 402 ermöglicht es dem Server- Prozeß, den Einbenutzer zu personifizieren, indem er seine Identität annimmt und dadurch dem Server Zugriff auf den Einbenutzer-Namensraum verschafft. Der Schritt 403 schafft einen systemglobalen Kontext, indem eine systemglobale Kennung zu jedem der ausführbaren Dateien und der DLL-Dateien hinzugefügt wird. Das Verfahren endet mit Schritt 404, in dem ein benutzerglobaler Kontext als Standard-Kontext geschaffen wird.
  • Wie dem Fachmann klar ersichtlich ist, können viele Änderungen bei dem oben beschriebenen Verfahren vorgenommen werden, ohne den Schutzbereich der Erfindung zu verlassen, welche nur durch die nachfolgenden Ansprüche festgelegt werden soll.

Claims (13)

1. Ein Verfahren, das es einem Einbenutzer-Anwendungsprogramm erlaubt, in einer Mehrbenutzer-Betriebssystem-Umgebung zu arbeiten, ohne das Einbenutzer-Programm zu modifizieren, indem die Vorgangsweisen des Betriebssystems, die zur Generierung von Objektnamen, zur Suche und zur Löschung verwendet werden, modifiziert werden, und welches es mehrfachen Kopien einer Einbenutzer-Anwendung erlaubt, gleichzeitig zu laufen, wobei das Verfahren enthält:
a) ein Zuordnen einer Markierung zu jedem Exemplar eines Objekts und zu jedem Exemplar einer Anwendung, welche nur von einem Einbenutzer verwendet werden soll, um diesen Einbenutzer zu identifizieren und um einen eindeutigen Einbenutzer-Namensraum zu generieren, indem ein jedes dieser Exemplare als nur für den Einbenutzer global verfügbar gekennzeichnet wird, und
b) es einem Server-Prozeß, der die Anwendung des Einbenutzers bedient, zu ermöglichen, den Einbenutzer zu personifizieren, indem er die Identität des Einbenutzer-Prozesses annimmt, wodurch dem Server-Prozeß erlaubt wird, auf den Namensraum des Einbenutzers zuzugreifen.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der Schritt des Zuordnens einer Markierung zu jedem Exemplar eines Objekts und zu jedem Exemplar einer Anwendung desweiteren enthält, daß eine Einbenutzer-Kennung mit einer Kennung eines gemeinsam benutzten Objekts verbunden wird.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß das gemeinsam benutzte Objekt eine Anwendung ist.
4. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß das gemeinsam benutzte Objekt eine Sektion eines Speichers ist.
5. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß das gemeinsam benutzte Objekt ein Pipe-Objekt ist.
6. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß das gemeinsam benutzte Objekt ein Kommunikationsschnittstellen-Objekt ist.
7. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß das gemeinsam benutzte Objekt ein Synchronisations-Objekt ist.
8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, daß das Synchronisations-Objekt ein Ereignis-Objekt ist.
9. Verfahren nach Anspruch 7, dadurch gekennzeichnet, daß das Synchronisations-Objekt ein Mutex-Objekt ist.
10. Verfahren nach Anspruch 7, dadurch gekennzeichnet, daß das Synchronisations-Objekt ein Semaphor-Objekt ist.
11. Verfahren nach Anspruch 7, dadurch gekennzeichnet, daß das Synchronisations-Objekt ein Pipe-Objekt ist.
12. Verfahren nach Anspruch 1, bei dem ein benutzerglobaler Kontext generiert und bei dem ein koexistenter systemglobaler Kontext eingerichtet wird, indem jede systemglobal benannte Ressource markiert wird, indem eine systemglobale Kennung zu jeder einer systemglobal benannten Ressource zugeordneten ausführbaren Datei und dynamisch verknüpfbaren Bibliotheks-Datei zugeordnet wird.
13. Verfahren nach Anspruch 12, dadurch gekennzeichnet, daß es den Schritt des Einrichtens des benutzerglobalen Kontextes als Standard-Kontext enthält.
DE69605568T 1995-10-11 1996-10-04 Verfahren zum schaffen eines benutzerglobalen namenraums in einem mehrbenutzer-betriebssystem Expired - Lifetime DE69605568T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
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 (2)

Publication Number Publication Date
DE69605568D1 DE69605568D1 (de) 2000-01-13
DE69605568T2 true DE69605568T2 (de) 2000-05-04

Family

ID=24157876

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69605568T Expired - Lifetime DE69605568T2 (de) 1995-10-11 1996-10-04 Verfahren zum schaffen eines benutzerglobalen namenraums in einem mehrbenutzer-betriebssystem

Country Status (11)

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

Families Citing this family (47)

* 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
WO2004107174A1 (en) * 2003-05-28 2004-12-09 Symbol Technologies, Inc. Backup cell controller
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
US8589481B2 (en) * 2011-09-14 2013-11-19 Microsoft Corporation Multi tenant access to applications
US8635152B2 (en) 2011-09-14 2014-01-21 Microsoft Corporation Multi tenancy for single tenancy applications
JP5724973B2 (ja) 2012-09-14 2015-05-27 コニカミノルタ株式会社 携帯情報端末、情報管理システム、携帯情報端末の共有方法、およびコンピュータプログラム
US9069766B2 (en) * 2012-11-02 2015-06-30 Microsoft Technology Licensing, Llc Content-based isolation for computing device security
WO2014134616A1 (en) * 2013-03-01 2014-09-04 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
CA2962576A1 (en) * 2014-09-26 2016-03-31 Good Technology Holdings 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
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
US5175852A (en) 1987-02-13 1992-12-29 International Business Machines Corporation Distributed file access structure 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 (de) 1989-01-18 1992-08-05 International Business Machines Corporation Übertragungssystem und -verfahren zwischen einer Vielzahl von Prozessoren
DE69030340T2 (de) 1989-02-24 1997-11-20 Digital Equipment Corp Makler für die Auswahl von Rechnernetzwerkservern
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
US5057996A (en) * 1989-06-29 1991-10-15 Digital Equipment Corporation Waitable object creation 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
US5297283A (en) 1989-06-29 1994-03-22 Digital Equipment Corporation Object transferring system and method in an object based computer operating system
US5187790A (en) * 1989-06-29 1993-02-16 Digital Equipment Corporation Server impersonation of client processes 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 (de) 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
EP0746816B1 (de) * 1993-08-03 2001-10-24 Sun Microsystems, Inc. Flexible mehrfach-plattform-aufteilung für rechneranwendungen
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

Also Published As

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

Similar Documents

Publication Publication Date Title
DE69605568T2 (de) Verfahren zum schaffen eines benutzerglobalen namenraums in einem mehrbenutzer-betriebssystem
DE68919976T2 (de) Verfahren zur Herstellung von aktuellen Terminaladressen für Systemanwender die verteilte Anwendungsprogramme in einer SNA LU 6.2-Netzwerkumbegung verarbeiten.
DE3789175T2 (de) Programmverwaltung für mehrere zentrale Verarbeitungseinheiten.
DE69327448T2 (de) Verfahren und Vorrichtung für Teilaufgaben in verteiltem Verarbeitungssystem
DE60006451T2 (de) Verteilte Authentifizierungsmechanismen zur Behandlung von verschiedenen Authentifizierungssystemen in einem Betriebsrechnersystem
DE69230778T2 (de) Dynamische Programmverknüpfung zwischen Programmadressbereichen im Nicht-Überwachungsmodus
DE69129091T2 (de) System und Verfahren zum Emulieren einer Fensterverwaltungsumgebung mit einer einheitlichen Fensterschnittstelle
DE69429686T2 (de) Transaktionsverwaltung in objektorientiertem System
DE69719620T2 (de) Vorrichtung und Verfahren zur Bestimmung von Server-Cluster-Topologien
DE69618221T2 (de) Mechanismus zur wartung objektorientierter "methoden" der keine unterbrechung des computersystems erfordert
DE69904190T2 (de) Verfahren und programm zum verarbeiten der verwaltungsanfragen einer verteilten netzwerkanwendung in einer gruppierten rechnerumgebung
DE3789215T2 (de) Gesteuerter dynamischer Belastungsausgleich für ein Multiprozessorsystem.
DE68919631T2 (de) Verfahren zur Verarbeitung von Programmteilen eines verteilten Anwendungsprogramms durch einen Hauptrechner und einen intelligenten Arbeitsplatz in einer SNA LU 6.2-Netzwerkumgebung.
DE68925474T2 (de) Verriegelungsrechnersysteme
DE69429231T2 (de) Emulation von Speicherfunktionen eines ersten Systems auf einem zweiten System
DE69630480T2 (de) Verfahren, Vorrichtung und Datenstrukturen zur Objektverwaltung
DE69621975T2 (de) Verfahren und System zum Ermöglichen der Zusammenarbeit von zur Ausführung auf unterschiedlichen Betriebssystemen geschriebenen Prozessen
DE69127919T2 (de) Gerät und Verfahren zur Durchführung einer anwendungsbestimmten Operation auf Daten als Teil einer systembestimmten Operation auf die Daten
DE69309485T2 (de) Verfahren zur verteilung von schnittstellenzeigern fur fernprozeduranrufe
DE69424842T2 (de) Durchführung von Programmen eines ersten Systems auf einem zweiten System
DE69112156T2 (de) Gerät zur Realisierung von Datenbanken zum Verschaffen von objektorientiertem Aufrufen von Anwendungsprogrammen.
DE69735348T2 (de) Skalierbare und erweiterbare Systemverwaltungsarchitektur mit datenlosen Endpunkten
DE69331599T2 (de) Verfahren und Vorrichtung für einen Dateiprozessor mit Cachespeicher
DE69619071T2 (de) Fernprozeduraufruf unter Verwendung eines bereits bestehenden Beschreibungsmechanismus
DE69734432T2 (de) Verfahren und Vorrichtung zur Absendung von Clientverfahrenanrufen in einem Server Rechnersystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition