DE69605568T2 - Verfahren zum schaffen eines benutzerglobalen namenraums in einem mehrbenutzer-betriebssystem - Google Patents
Verfahren zum schaffen eines benutzerglobalen namenraums in einem mehrbenutzer-betriebssystemInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 115
- 238000012217 deletion Methods 0.000 claims abstract description 10
- 230000037430 deletion Effects 0.000 claims abstract description 10
- 238000004891 communication Methods 0.000 claims description 8
- 230000015654 memory Effects 0.000 claims description 8
- 239000003550 marker Substances 0.000 claims 1
- 238000012986 modification Methods 0.000 abstract description 3
- 230000004048 modification Effects 0.000 abstract description 3
- 238000002372 labelling Methods 0.000 abstract 1
- 238000012545 processing Methods 0.000 description 24
- 239000003607 modifier Substances 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45537—Provision 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.
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)
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)
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 |
-
1995
- 1995-10-11 US US08/541,020 patent/US6684259B1/en not_active Expired - Lifetime
-
1996
- 1996-10-04 IL IL12403596A patent/IL124035A/en not_active IP Right Cessation
- 1996-10-04 EP EP96934052A patent/EP0855060B1/de not_active Expired - Lifetime
- 1996-10-04 AU AU72566/96A patent/AU710435B2/en not_active Expired
- 1996-10-04 CA CA002234405A patent/CA2234405C/en not_active Expired - Lifetime
- 1996-10-04 WO PCT/US1996/015947 patent/WO1997014098A1/en not_active Application Discontinuation
- 1996-10-04 KR KR1019980702673A patent/KR19990064189A/ko not_active Application Discontinuation
- 1996-10-04 JP JP9515108A patent/JPH11513822A/ja active Pending
- 1996-10-04 ES ES96934052T patent/ES2140136T3/es not_active Expired - Lifetime
- 1996-10-04 DE DE69605568T patent/DE69605568T2/de not_active Expired - Lifetime
- 1996-10-04 AT AT96934052T patent/ATE187562T1/de not_active IP Right Cessation
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 |