DE69228621T2 - Objektorientiertes verteiltes Rechnersystem - Google Patents
Objektorientiertes verteiltes RechnersystemInfo
- Publication number
- DE69228621T2 DE69228621T2 DE69228621T DE69228621T DE69228621T2 DE 69228621 T2 DE69228621 T2 DE 69228621T2 DE 69228621 T DE69228621 T DE 69228621T DE 69228621 T DE69228621 T DE 69228621T DE 69228621 T2 DE69228621 T2 DE 69228621T2
- Authority
- DE
- Germany
- Prior art keywords
- manager
- objects
- computer
- managers
- model
- 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 - Fee Related
Links
- 230000002085 persistent effect Effects 0.000 claims description 26
- 238000013507 mapping Methods 0.000 claims description 6
- 230000003213 activating effect Effects 0.000 claims description 3
- 238000000034 method Methods 0.000 description 88
- 230000008569 process Effects 0.000 description 76
- 230000006870 function Effects 0.000 description 70
- 238000004891 communication Methods 0.000 description 17
- 230000009849 deactivation Effects 0.000 description 11
- 230000004913 activation Effects 0.000 description 8
- 230000004044 response Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 239000013212 metal-organic material Substances 0.000 description 5
- 238000004883 computer application Methods 0.000 description 4
- 230000004807 localization Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 239000003292 glue Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 239000011800 void material Substances 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/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
- Stored Programmes (AREA)
Description
- "Verteilte Berechnung" ist auf dem Gebiet der Computerverarbeitung ein gut bekanntes Konzept. Grundsätzlich erlaubt eine verteilte Berechnung, daß Prozesse auf unterschiedlichen Computern in einem Netzwerk von Computern miteinander kommunizieren und Dienste füreinander liefern. Die Computer in dem Netzwerk können unterschiedliche Maschinenarchitekturen und Betriebssysteme aufweisen.
- Das üblichste Musterbeispiel einer verteilten Berechnung ist als das "Client-Server-Modell" bekannt. Verbraucher von Diensten, sogenannte Clients, führen Anforderungen zu Dienstanbietern, d. h. Servern, durch.
- Es existieren verschiedene Nachteile einer verteilten Client-Server-Berechnung. Beispielsweise erfordern gegenwärtige Systeme, daß Client-Prozesse codiert werden, um exakt die Standorte der Server, die dieselben zu verwenden wünschen, zu erfassen (oder "zu kennen"). Wenn ein Server den Standort ändert, während ein Client denselben verwendet, muß der Client codiert sein, um eine Relokalisierung des Servers durchzuführen. Ohne eine derartige Relokalisierung wird ein Versuch des Client fehlschlagen, mit dem Server zu kommunizieren.
- Die meisten Systeme erfordern ferner, daß ein Server vor irgendeiner versuchten Verwendung durch einen Client aktiv ist. Ein Client, der versucht, einen inaktiven Server zu verwenden, wird bei seinem Versuch, den Dienst, den er benötigt, zu erhalten, fehlschlagen.
- Andere verteilte Computersysteme befassen sich entweder nicht mit Computerprogrammierungsentitäten, die als "Objekte" bezeichnet werden, oder erfordern, daß Objekte mit einem speziellen Objektmodell, das durch das System diktiert wird, übereinstimmen. Da in einem gegebenen System höchstens ein Objektmodell existiert und keine gemeinsamen Modelle über Systeme hinweg, sind solche verteilten Computersysteme unangemessen begrenzt. Das heißt, daß derartige Systeme in ihrer Fähigkeit begrenzt sind, eine neue Technologie aufzunehmen und sich auf Problembereiche zu erweitern, für die das System ursprünglich nicht entworfen wurde.
- Ein verteiltes Objekt-orientiertes System ist aus dem bekannten Dokument D = "A communication system architecture for the Office" von Amine Benkiran u. a.; PROCEEDINGS EIGHT ANNUAL JOINT CONFERENCE OF THE IEEE COMPUTER AND COMMUNICATIONS SOCIETIES, 23. April 1989, OTTAWA, ONT., KANADA, S. 382-392, bekannt. Dieses Dokument beschreibt ein System mit einer verteilten Architektur, das durch eine Hierarchie von Objektmaschinen unterstützt wird, welche eine transparente Kommunikation zwischen einem Satz von verbundenen heterogenen. Computer- und Kommunikations-Systemen unter Verwendung eines Objektmodells ermöglicht. Das Konzept der Objektverwaltung "Object Management" ist in D definiert, siehe Seite 385, linke Spalte, zweiter Absatz. Es existiert ferner ein Kommunikationsverwalter (Communication Manager) mit der Aufgabe, Aufrufe zu einem Bestimmungsbereichsobjekt weiterzuleiten, siehe Seite 385, rechte Spalte, letzter Absatz. In dem System aus D ist ein zusätzlicher Mechanismus erforderlich, um zwischen entfernten Verwalterkomponenten zu kommunizieren. Dieser Mechanismus wird in D als Fernaktivierung bezeichnet. Die Verwendung eines Fernaufrufs erfordert eine explizite Adressierung des LOM (LOM = Local Object Manager = lokaler Objektverwalter), auf dem sich die Bestimmungsverwaltungskomponente befindet, siehe D, Seite 386, linke Spalte. Es ist erwünscht, eine Möglichkeit zu finden, um sich nicht auf eine explizite Adressierung, wie in D, zu stützen. Die Lösung für dieses Problem ist durch das Objektorientierte Computersystem gemäß dem unabhängigen Anspruch 1 definiert.
- Wie er hierin verwendet ist, ist der Ausdruck "Objekt" eine Programmierungsentität, die einen bestimmten Zustand und ei nen Satz von definierten Verhaltensweisen umfaßt. Der Zustand ist durch Daten, die durch das Objekt gehalten werden, dargestellt. Das Verhalten ist hinsichtlich Operationen, die das Objekt durchführen kann, spezifiziert. Operationen werden durch einen ausführbaren Code realisiert. Konzeptmäßig sind die Daten und der Code in dem Objekt untrennbar miteinander verbunden. Objekte können "dauerhaft" ("persistent") sein, d. h. dieselben können weiterhin existieren, selbst wenn dieselben inaktiv sind oder der Computer, auf dem dieselben existieren, ausgefallen ist oder abgeschaltet wurde. Ferner können Objekte Anforderungen für Dienste zu anderen Objekten ausgeben und überdies Dienste liefern.
- Gemäß der Verwendung hierin bezieht sich der Ausdruck "Klasse" auf den Typ eines Objekts und spezifiziert, um welche Art von Objekt es sich handelt. Beispielsweise sind Garfield und Snoopy, obwohl es sich um unterschiedliche "Objekte" handelt, beide "Zeichentrickfiguren". "Zeichentrickfigur" ist die Klasse von jedem. Eine unterschiedliche Art einer Entität, sagen wird das World Trade Center, hätte eine, unterschiedliche Klasse (in diesem Fall vielleicht "Gebäude").
- Gemäß der Verwendung hierin ist ein "Objektverwalter" eine Entität, die Gruppierungen von Objekten verwaltet, die die Existenz und den Betrieb jedes Objekts unterstützen.
- Ferner ist der Ausdruck "Objektmodell", wie er hierin verwendet ist, eine Abstraktion der Aktivitäten, die eine spezielle Klasse eines Objektverwalters durchführt, sowie die Art und Weise, auf die derselbe dieselben durchführt. Diese Aktivitäten umfassen (i) die Verwaltung des dauerhaften Zustands von Objekten, (ii) die Abbildung von Operationen bezüglich Objekten in einen Code.
- Gemäß dem vorhergehenden werden Verbesserungen bei der verteilten Berechnung benötigt.
- Die vorliegende Erfindung liefert ein verteiltes Computer system, das die Probleme des Stands der Technik löst. Speziell liefert die vorliegende Erfindung ein Objektorientiertes verteiltes Computersystem, das, anders als andere verteilte Computersysteme, nicht erfordert, daß Clients von Diensten codiert sind, um die Standorte der Dienstanbieter zu kennen oder zu erfassen. Ferner erkennt dieses System, im Unterschied zu anderen Objektorientierten Computersystemen, Objekte, die mit verschiedenen Objektmodellen übereinstimmen.
- Insbesondere liefert die vorliegende Erfindung eine Verwaltungsvorrichtung für ein Objekt-orientiertes verteiltes Computersystem. Die Verwaltungsvorrichtung verwendet einen Lokalisierungsdienst zum Lokalisieren gewünschter Objekte in einem System im Auftrag von anfordernden Objekten oder Prozessen (d. h. Anforderern (Requestern)). Ein Anforderer muß nicht codiert sein, um irgendeine Kenntnis von dem Lokalisierungsdienst zu besitzen (geschweige denn von Einzelheiten des Lokalisierungsdienstes).
- Speziell wird der Lokalisierungsdienst automatisch kontaktiert, wenn ein Anforderer eine Anforderung zu einem einen Dienst liefernden Objekt, d. h. einem "Zielobjekt", durchführt. Das bevorzugte Ausführungsbeispiel verwendet eine Verarbeitungseinrichtung, um den Lokalisierungsdienst innerhalb automatisch erzeugter Kontrollabschnitte (Stubs) aufzurufen. Ferner lokalisiert der Lokalisierungsdienst Objekte basierend auf der Identität des Objekts, wobei jedes Objekt in dem System eine eindeutige Identität besitzt. Diese eindeutige Identität codiert eine Anzeige des Computers, auf dem das Objekt erzeugt wurde.
- Der Lokalisierungsdienst umfaßt verschiedene Arten von Entitäten in dem System. Es existieren Objektverwalter, von denen jeder die Existenz und den Betrieb der Objekte, die demselben zugeordnet sind, unterstützt; Verwalter von Objektverwaltern, von denen jeder eine Gruppierung von Objektverwaltern verwaltet; Objektregion-Verwalter, von denen jeder den Standort von Objekten bezüglich der Computer in dem System verfolgt. Eine unterschiedliche Objektregion ist für jede verschiedene Gruppierung von Computern definiert, wobei jede Region ihren eigenen Objektregion-Verwalter aufweist. Um eine Abbildung zwischen Computern und Objektregion-Verwaltern zu liefern, verwendet der Lokalisierungsdienst eine Abbildungseinrichtung.
- Gemäß einem Aspekt der vorliegenden Erfindung ist eine gemeinsame generische Schnittstelle verwendet, die eine gemeinsame Einrichtung zur Kommunikation mit und zwischen den Objektverwaltern, Verwaltern von Objektverwaltern, Objektregion-Verwaltern und der Abbildungseinrichtung ermöglicht.
- Zusätzlich basieren die Objektverwalter auf jeweiligen Objektmodellen. Objekte, die einem Objektverwalter, der auf einem Objektmodell basiert, zugeordnet sind, sind in der Lage Anforderungen zu Objekten zu senden, die einem jeweiligen Objektverwalter zugeordnet sind, der auf einem unterschiedlichen Objektmodell basiert.
- Ferner existiert bei einem Ausführungsbeispiel eine generische Schnittstelle, die durch Objektverwalter unterstützt wird, die durch einen gemeinsamen Verwalter von Objektverwaltern verwaltet werden, derart, daß der Verwalter von Objektverwaltern in der Lage ist, mit jedem seiner Objektverwalter auf eine Art und Weise, die frei von einer expliziten Kenntnis des jeweiligen Objektmodells des Objektverwalters ist, zu kommunizieren.
- Vorzugsweise behandelt jeder Objektverwalter Gruppierungen von Objekten, die demselben zugeordnet sind, als jeweilige Äquivalenzklassen. Zu diesem Zweck verfolgt der Objektverwalter eine Objektprozeßzuordnung als eine Gruppe und nicht individuell. Ferner liefern die Objektverwalter vorzugsweise eine Deaktivierung von Prozessen als automatische Antwort auf das System, das Betriebsmittel benötigt.
- Gemäß einem weiteren Aspekt der vorliegenden Erfindung verwendet die Verwaltungsvorrichtung ferner eine Einrichtung zum Behandeln einer Anforderung nach einem Zielobjekt unabhängig von einer Zuordnung des Zielobjekts zu einem Prozeß zum Zeitpunkt der Anforderung. Zu diesem Zweck erscheinen alle Objekte in dem System für Verarbeitungsanforderungen verfügbar zu sein, selbst wenn ein gegebenes Zielobjekt zum Zeitpunkt der Anforderung einem Prozeß nicht zugeordnet sein kann.
- Anders ausgedrückt liefert ein Objekt-orientiertes verteiltes Computersystem gemäß der vorliegenden Erfindung eine Computereinrichtung zum Implementieren von Operationen und Daten eines Zielobjekts, in einem Prozeß der mehreren Prozesse des Systems, ansprechend auf eine Anforderung zu dem Zielobjekt. Folglich ist die Verfügbarkeit jedes Objekts unabhängig von der Zuordnung des Objekts zu einem Prozeß zum Zeitpunkt der Anforderung definiert.
- Die vorher genannten und weitere Aufgaben, Merkmale und Vorteile der Erfindung werden aus der folgenden spezielleren Beschreibung von bevorzugten Ausführungsbeispielen der Erfindung, wie sie in den beigefügten Zeichnungen gezeigt sind, in denen in allen Ansichten gleiche Bezugszeichen gleiche Teile bezeichnen, offensichtlich. Die Zeichnungen sind nicht notwendigerweise maßstabsgetreu, wobei stattdessen das Hauptaugenmerk auf der Veranschaulichung der Grundsätze der Erfindung liegt.
- Fig. 1 ist ein schematisches Diagramm eines Objektorientierten verteilten Computersystems, das die vorliegende Erfindung verkörpert.
- Fig. 2 ist ein Blockdiagramm einer Objekt/Prozeß-Verwaltungsvorrichtung der vorliegenden Erfindung, die in dem System von Fig. 1 verwendet ist.
- Fig. 3a und 3b zeigen eine Objektaktivierung bei der vor liegenden Erfindung.
- In den Fig. 1 und 2 ist ein Objekt-orientiertes verteiltes Computersystem 11 dargestellt, das die vorliegende Erfindung verkörpert. Das System 11 umfaßt eine Mehrzahl von lose gekoppelten Computern 37, die ein Netzwerk bilden. Auf jedem Computer 37 kann oder können ein oder mehrere Prozesse 39 existieren, in denen verschiedene Objekte 13 jeweilige Operationen durchführen. Die Objekte 13 in Fig. 1 befinden sich in dem gleichen oder in unterschiedlichen Prozessen 39 auf dem gleichen oder unterschiedlichen Computern 37 des Netzwerks, das das Objekt-orientierte verteilte Computersystem 11 definiert.
- Im Herz des Systems 11 befindet sich eine Objekt/Prozeß-Verwaltungsvorrichtung 15 gemäß der vorliegenden Erfindung. Zusammenfassend handhabt die Vorrichtung 15 die folgenden Objektverhalten:
- (1) registriert alle existierenden Objekte 13 in dem System 11;
- (2) ermöglicht, daß Objekte 13a Anforderungen zu anderen Objekten 13b ausgeben (dieselben befinden sich möglicherweise in unterschiedlichen Adreßräumen und/oder Computern); und
- (3) liefert die Anforderungen und verwaltet deren Ausführung.
- Die Vorrichtung 15 erfordert nicht, daß Objekte 13 kompiliert oder miteinander verknüpft werden, bevor man eine Anforderung zu dem anderen ausgeben kann. Ein Objekt 13 kann eine Anforderung zu jedem anderen Objekt 13 in dem System ausgeben, vorausgesetzt, dasselbe besitzt einen Bezug zu diesem Objekt.
- Ferner unterstützt die erfindungsgemäße Vorrichtung 15 die Verteilung von Objekten 13 unter Prozessen in dem System 11. Ein Objekt oder ein Prozeß kann Anforderungen zu Objekten auf anderen Computern in dem Netzwerk ausgeben. Das Objekt oder der Prozeß (d. h. der Anforderer oder Client), der die Anforderung ausgibt, muß keine Kenntnis davon besitzen, auf welchem Computer das Zielobjekt zu finden ist, oder sogar, ob sich das Zielobjekt auf einem unterschiedlichen Computer befindet. Die erfindungsgemäße Vorrichtung 15 bestimmt den Standort des Zielobjekts auf eine automatische Art und Weise im Auftrag eines Clients ohne eine explizite menschliche Codierung von Clientaufrufen zu einem Lokalisierungsdienst (was nachfolgend erläutert wird). Unterschiedliche Arten von Netzwerken können unterstützt werden, einschließlich Funknetzwerke, beispielsweise viele lokale Netze (LANs; LAN = Local Area Network), und verbindungsorientierte Netzwerke, beispielsweise viele Großbereichsnetzwerke (WANs; WAN = Wide Area Network).
- Zusätzlich unterstützt die Vorrichtung 15 eine Heterogenität. Unterschiedliche Computertypen können in dem Netzwerk gemischt sein. Die erfindungsgemäße Vorrichtung 15 verwaltet beliebige Unterschiede zwischen den Computern, die das Objekt, das die Anforderung ausgibt (den Sender), und das Objekt, das die Anforderung ausführt (den Empfänger), enthalten. Ein gemeinsames Problem tritt auf, wenn zwei Computer unterschiedliche Prozessoren besitzen, die Daten unterschiedlich darstellen. Beispielsweise speichern Prozessoren der Serie Motorola 68xxx und Prozessoren der Serie Intel 80xxx ganze Zahlen unterschiedlich in einem Speicher. Die erfindungsgemäße Vorrichtung 15 verwaltet, wenn notwendig, die Übersetzung der Parameter der Anforderungen zwischen den Formaten der zwei Computer.
- Die erfindungsgemäße Vorrichtung 15 unterstützt ferner mehrere Benutzersitzungen gleichzeitig. Die Vorrichtung 11 kann Objekte auf einem Einzelbenutzercomputer, beispielsweise einem Personalcomputer oder einer Einzelbenutzer-Workstation, verwalten. In gleicher Weise kann die Vorrichtung 15 Objekte auf einem Viel-Benutzer-Computer verwalten. Objekte, die durch die Vorrichtung 15 verwaltet werden, können gleichzeitig Dienste im Auftrag mehrerer unterschiedlicher Benutzer durchführen. Die Vorrichtung 15 enthält einen Sicherheitsmechanismus, um vor einer nicht-autorisierten Verwendung von Diensten zu schützen.
- Ferner ist die Vorrichtung 15 skalierbar. Bei dem Netzwerk von Computern läuft eine Implementierung der erfindungsgemäßen Vorrichtung 15 auf jedem Computer. Im einfachsten Fall kann die Vorrichtung 15 effizient auf einem alleinstehenden Einzelbenutzercomputer wirksam sein. Im entgegengesetzten Fall kann die Vorrichtung 15 effizient auf jeder Maschine in einem gesamten Netzwerk wirksam sein, das alle Computer eines großen multinationalen Unternehmens umfaßt.
- Um das vorhergehende zu erreichen, besitzt die erfindungsgemäße Vorrichtung 15 eine Zweischichtstruktur. Die untere Schicht ist aus Kommunikationsdiensten 19 gebildet, die einen einheitlichen Mechanismus zum Ausgeben und Liefern von Anforderungen zwischen Objekten 13 liefern. Die Kommunikationsdienstschicht 19 ermöglicht, daß Anforderungen zwischen Objekten geliefert werden, indem, neben anderen Operationen, Datendarstellungen umgewandelt werden, wenn sich das Anfordererobjekt und das Zielobjekt auf unterschiedlichen Arten von Computern befinden. Überdies sind Sicherheitsmechanismen vorgesehen, um einen nicht-autorisierten Zugriff auf Objekte zu verhindern. Die Kommunikationsdienste 19 isolieren ferner den Rest der Verwaltungsvorrichtung 15 und die Objekte 13 vor den Einflüssen unterschiedlicher Netzwerktopologien, unterschiedlicher Protokolle und unterschiedlicher Software.
- Eine obere Schicht der Verwaltungsvorrichtung 15 ist aus Objektverwaltungsdiensten 17 gebildet, die Objektverwalter 23, 25 und einen Lokalisierungsdienst 21 umfassen. Die Objektverwalter 23, 25 liefern Dienste, beispielsweise eine Objekt-Aktivierung und -Deaktivierung und eine Objektklassen installation. Der Lokalisierungsdienst 21 ermöglicht, daß die Vorrichtung einen Kommunikationsweg zu einem speziellen Objekt 13 bestimmt. Folglich verwaltet die Objektverwaltungsdienst-Schicht 17 den Lebenszyklus (Erzeugung, Erhaltung und Löschung) und den Standort eines Objekts.
- Bei dem bevorzugten Ausführungsbeispiel sind die Kommunikationsdienste 19 und die Objektverwaltungsdienste 17 durch eine Laufzeitbibliothek 27, Objektverwalter 23, Verwalter von Objektverwaltern 29 und einen Lokalisierungsdienst 21, die in Fig. 2 gezeigt sind, implementiert. Die Laufzeitbibliothek 27 befindet sich in den Adreßräumen der Objekte 13, die durch das Computersystem 11 verwaltet werden, und kann als Teil aller dieser Objekte betrachtet werden. Die Laufzeitbibliothek 27 liefert eine elementare Schnittstelle, die bei der Kommunikation in dem System 11 durch alle Objekte 13 verwendet wird. Vorzugsweise enthält die Laufzeitbibliothek 27 einen Code, der eine Kommunikation mit dem dauerhaften Speicherverwalter (der nachfolgend beschrieben wird) ermöglicht, und einen Code, der die Erzeugung von Objektbezügen, die durch die Lokalisierungsdienste 21 verwendet werden, ermöglicht.
- Die Objektverwalter 23 sind für die direkte Verwaltung der Objekte 13, die Aktivierung und Deaktivierung der Objekte, das Liefern von Meldungen zu Objekten und das Verfolgen dessen, welcher Zustand auch immer für diese Aktivitäten benötigt wird, verantwortlich. Zu diesem Zweck ist jedes Objekt 13 einem Objektverwalter 23 zugeordnet, derart, daß unterschiedliche Mehrzahlen von Objekten durch unterschiedliche Objektverwalter verwaltet werden. Die vorliegende Erfindung liefert zumindest einen Standardobjektverwalter 25 in der Verwaltungsvorrichtung 15. Ein minimaler Teilsatz der Operationsschnittstellen des Standardobjektverwalters 25 definiert die Dienste, die durch alle anderen Objektverwalter 23 geliefert werden müssen. Folgend diesen Schnittstellen und einer gemeinsamen generischen Schnittstelle, die durch den Objektverwalter-Verwalter (der nachfolgend erläutert wird) verwendet wird, ist es möglich, daß neue Objektverwalter nachfolgend hinzugefügt werden.
- Jeder Objektverwalter 23 ist einem Objektverwalter-Verwalter (MOM; MOM = Manager of Object Managers) 29 zugeordnet. Ferner ist einem solchen MOM 29 ein Standardobjektverwalter 25 (default object manager) zugeordnet. Jeder Objektverwalter- Verwalter (MOM) 29 ist für das Empfangen von Meldungen, die für Objekte 13 bestimmt sind, die den Objektverwaltern 23 zugeordnet sind, die derselbe (der MOM) verwaltet, verantwortlich. Jeder MOM 29 ist ferner für das Finden des Objektverwalters 23, dem ein gegebenes Objekt zugeordnet ist, verantwortlich, weshalb der MOM 29 als die lokale Dokumentationsstelle für Anforderungen dient. Anders ausgedrückt ist der MOM 29 als ein gut bekannter Empfangspunkt für Anforderungen, die für ein beliebiges der Objekte, die durch einen beliebigen der Objektverwalter 23 verwaltet werden, welche wiederum durch den Objektverwalter-Verwalter (MOM) 29 verwaltet werden (demselben zugeordnet sind), hereinkommen.
- Die Lokalisierungsdienste 21 sind für das Finden des gegenwärtigen Standorts eines beliebigen Objekts 13 in dem System 11 verantwortlich. Diese Dienste 21 werden auf eine automatische Art und Weise durch das System 11 verwendet und sind für Programmierer, die Anwendungen in dem System 11 schreiben, und für Benutzer, die Objekte 13 in dem System 11 verwenden, vollständig verborgen. Insbesondere liefert die vorliegende Erfindung eine Verarbeitungseinrichtung zum automatischen Aufrufen der Lokalisierungsdienste im Auftrag des anfordernden Objekts (oder Prozesses), ansprechend auf eine Anforderung für ein Zielobjekt. Folglich müssen die anfordernden Objekte (oder Prozesse) nicht explizit codiert sein, um die Lokalisierungsdienste 21 aufzurufen, wie es gemäß dem Stand der Technik erforderlich ist.
- Die Laufzeitbibliothek und der Objektverwalter-Verwalter (MOM) 29 sind sowohl in der Kommunikationsdienstschicht 19 der Verwaltungsvorrichtung 15 als auch den Objektverwal tungsschichten wirksam. In der Kommunikationsdienstschicht 19 handhabt die Laufzeitbibliothek 27 das Leiten von Meldungen von einem Objekt 13 zu einem anderen, wobei der Objektverwalter-Verwalter (MOM) 29 als der Objektlokalisierungsdienst unterster Ebene wirksam ist. In der Objektverwaltungsdienstschicht 17 handhabt die Laufzeitbibliothek 27 zusammen mit dem Satz von Objektverwaltern 23 primär den Objekt-Lebenszyklus.
- Eine Kommunikation aus der Sicht der Objekte 13 findet durch die Laufzeitkomponente der Schichten 17, 19 statt. Die Laufzeitbibliothek 27 kontaktiert die Lokalisierungsdienste 21, um ein Zielobjekt 13b zu finden, und sendet Meldungen von dem Objekt 13 zu einem Objekt 13b, wie als nächstes erläutert wird. Es sei bemerkt, daß die Lokalisierungsdienste 21 auf einem bestimmten Computer oder Computern in dem Gesamtsystem 11 ablaufen. Aus der Sicht des Objekts 13 befinden sich diese Dienste 21 jedoch nicht auf irgendeinem speziellen Computer 37. Daher zeigen die Fig. 1 und 2 diese Dienste 21 als existierend, jedoch nicht auf einer speziellen Maschine 37 befindlich.
- Bezugnehmend auf Fig. 2 verwenden die Lokalisierungsdienste 21 eine Hierarchie von Elementen. Wie vorher erwähnt wurde, sind Objekte 13 in einem Prozeß oder Prozessen 39 eines Computers oder unterschiedlicher Computer 37 wirksam. Eine Mehrzahl oder eine Gruppe von Objekten 13 ist einem Objektverwalter 23 zugeordnet, der für die Verwaltung dieser Objekte 13 verantwortlich ist. Die Objektverwalter 23 sind wiederum gruppiert und einem Objektverwalter-Verwalter (MOM) 29 zugeordnet. Jeder Objektverwalter 23 basiert auf einem jeweiligen Objektmodell, wobei in dem System 11 eine beliebige Anzahl von Objektmodellen existiert. Die Objektverwalter 23 unterschiedlicher Objektmodelle sind in der Lage, über eine generische Schnittstelle, die später erläutert wird, durch einen gemeinsamen MOM 29 gehandhabt zu werden. Zusätzlich sind Objekte, die einem Objektverwalter 23 zugeordnet sind, der auf einem Objektmodell basiert, in der La ge, Anforderungen zu Objekten zu senden, die einem jeweiligen Objektverwalter zugeordnet sind, der auf einem unterschiedlichen Objektmodell basiert, wie detailliert nachfolgend erläutert wird.
- Ferner ist jeder MOM 29 einem Objektregion-Verwalter 31 wie folgt zugeordnet. Unterschiedliche Objektregionen sind durch Sätze von Computern 37, die zu administrativen Zwecken zusammengruppiert sind, definiert. Für jede Objektregion existiert ein Objektregion-Verwalter 31 (ORE). Die Rolle des Objektregion-Verwalters 31 besteht darin, Objektbezüge auf einen (möglicherweise leeren) Satz des Objektverwalter-Verwalters (MOM) 29 abzubilden, der Kenntnis von Zielobjekten 13b besitzen könnte. Ein Objektregion-Verwalter 31 umfaßt eine einzelne Datenbank und einen Satz von Prozessen, die eine Abfrage der Datenbank und eine Manipulation derselben ermöglichen. Vorzugsweise ist ein logisch einzelner Objektregion-Verwalter 31 zu Zwecken einer hohen Verfügbarkeit in der Region vervielfältigt. Jede Region besitzt ihren eigenen unterschiedlichen Objektregion-Verwalter 31.
- In der nächsten Hierarchieebene von Elementen in den Lokalisierungsdiensten 21 befinden sich Meta-Objektregion-Verwalter 33 (MORE). Diese Verwalter bilden Objektbezüge auf die Identifizierer des geeigneten Objektregion-Verwalters 31, der etwas über dieses Objekt weiß, ab. Verschiedene Meta-Objektregion-Verwalter 33 kommunizieren miteinander, um eine Lokalisierung von Objekten 13 zwischen Objektregionen zu ermöglichen. Wie die Objektregion-Verwalter 31 umfaßt jeder Meta-Objektregion-Verwalter 33 eine einzelne Datenbank und einen Satz von Prozessen, die diese Datenbank abfragen und manipulieren. Jeder logisch einzelne Meta-Objektregion-Verwalter 33 kann vervielfältigt sein. Jedes System besitzt seinen eigenen unterschiedlichen Meta-Objektregion-Verwalter 33.
- Auf der Abschlußebene der Hierarchie befinden sich Geschwister-Meta-Objektregion-Verwalter 35 (SMORE), die eine Liste von zwei oder mehr unterschiedlichen Meta-Objektregion-Verwaltern 33 halten.
- Bei dem bevorzugten Ausführungsbeispiel existiert eine gemeinsame generische Schnittstelle zwischen den unterschiedlichen Entitäten der vorher genannten Hierarchie. Die gemeinsame generische Schnittstelle ermöglicht eine gemeinsame Einrichtung zur Kommunikation zwischen und unter Objektverwaltern 23, MOMS 29, Objektregion-Verwaltern 31 und Abbildungsverwaltern 33.
- Eine Wechselwirkung unter Objekten 13 findet durch Anforderungen statt, die von einem Anforderer (d. h. Objekt oder Prozeß) zu einem Zielobjekt gesendet werden, die nach einer bestimmten Operation bezüglich des Zielobjekts fragen. Operationsaufrufe sind die elementare Kommunikationsform zwischen Objekten 13, die sich in dem Rahmenwerk befinden, das durch die Verwaltungsvorrichtung 15 der vorliegenden Erfindung definiert ist. Grundsätzlich ist eine Operation eine Möglichkeit, Anforderungen dahingehend durchzuführen, daß ein Zielobjekt bestimmte Informationen liefert, eine bestimmte Manipulation seines eigenen Zustands durchführt und/oder Operationen bezüglich anderer Objekte durchführt. Eine Operation ist durch seine Aufrufsignatur definiert. Die Signatur besteht aus einem Rückgabetyp (möglicherweise Null), einer Liste von Parameterspezifikationen und Informationen dahingehend, ob die Operation synchron (voreingestellt) oder asynchron ist.
- Die Verwaltungsvorrichtung 15 der vorliegenden Erfindung definiert ihre Operationsaufrufe zu Objekten derart, daß alle die folgende syntaktische Form aufweisen:
- return_type
- Operation_Name(
- objref_t target_object,
- type Param1,
- ...,
- type ParamN
- );
- Eine verdeckte Abwicklung, die als objref_t bezeichnet wird, wird verwendet, um das Objekt, zu dem die Anforderung gesendet werden soll (d. h. das Zielobjekt), zu identifizieren. Bei dem bevorzugten Ausführungsbeispiel ist objref_t ein Zeiger auf eine System-definierte Struktur, die implementierungsabhängig ist. Die interne Struktur solcher Abwicklungen ist für Benutzer des Systems 11 nicht sichtbar oder verfügbar. Benutzer des Systems 11 erzeugen oder löschen objref_t-Abwicklungen durch Aufrufe in die Laufzeitbibliothek 27.
- Bestimme Parameter werden konzeptmäßig durch Bezugnahme übertragen; das heißt, daß dieselben den Status von Ausgabe- oder Eingabe-Ausgabe-Parametern besitzen. Der erste Parameter für alle Operationen besteht in System-definierten Objekt-Bezugnahmen auf das Zielobjekt, das die Anforderung empfangen soll. Wenn das Verfahren, das durch den Aufruf aufgerufen wird, einen einfachen Wert zurückgibt, wird dieser Wert als der Rückgabewert für die Operation zurückgegeben. Wenn das Verfahren mehrere Werte zurückgibt, werden diese Werte in den Parametern zu der Operation zurückgegeben, die zum Zurückgeben von Werten in der Lage sind. Ferner sind alle Operationen der Verwaltungsvorrichtung 15 definiert, um einen Statuswert zurückzugeben, der verwendet werden kann, um zu bestimmen, ob die Operation erfolgreich war. Wenn die Operation fehlschlägt, zeigt der Statuswert die Beschaffenheit des Fehlschlags an.
- Eine Schnittstelle ist ein nicht-leerer Satz von Operationen, die logisch in Beziehung stehen und eine semantische Einheit bilden. Die Verwaltungsvorrichtung 15 macht die folgende Anforderung bezüglich Schnittstellen: wenn eine Objektklasse irgendeine Operation in einer Schnittstelle unterstützt, muß dieselbe alle der Mitglieder des Satzes von Operationen, die diese Schnittstelle bilden, unterstützen.
- Ferner wird jede Schnittstelle durch einen Schnittstellenidentifizierer identifiziert, der durch den Implementierer, der die Schnittstelle ursprünglich entworfen hat, zugewiesen wird.
- Ein Verfahren ist der Code, der eine Operation implementiert. Für eine gegebene Operation kann dieser Code aufgrund von Unterschieden der Computerarchitektur oder aus anderen Gründen von einem Objekt 13 zu einem anderen variieren. Eine Operation wird verwendet, um die Aktion zu spezifizieren, die auf einem Objekt 13 durchgeführt werden muß. Eine Anforderung, die von einem Objekt 13 gemacht wird, wird auf ein Verfahren auf diesem Objekt 13 abgebildet. Diese Abbildung ordnet eine spezielle Implementierung der Operation zu, die in einer Schnittstelle definiert ist, die durch das Objekt 13 unterstützt wird. Es steht in der Verantwortung des Klassenimplementierers, sicherzustellen, daß das Verfahren, das der Operationsanforderung zugeordnet ist, die geeigneten Aktionen durchführt, um der Anforderung die bestimmungsgemäßen Semantiken zu geben.
- Entsprechend dem vorher genannten tritt ansprechend auf einen Objektoperationsaufruf von einem Anforderer der MOM des Objektverwalters des Zielobjekts mit dem Objektverwalterin Wechselwirkung, um die Anforderung zu dem Zielobjekt 13b weiterzuleiten. Der Objektverwalter 23, der dem Zielobjekt 13b, das den Operationsaufruf empfängt, zugeordnet ist, stellt ferner sicher, daß das Zielobjekt 13b in der Lage ist, die Anforderung zu empfangen.
- Die Objektverwalter-Verwalter (MOMs) 29 sind entworfen, um die Hinzufügung mehrerer Objektverwalter 23 während der Lebenszeit des Computersystems 11 zu ermöglichen. Dies wird durch eine gemeinsame generische Schnittstelle erreicht, die durch die Objektverwalter 23, die durch einen gemeinsamen MOM 29 verwaltet werden, unterstützt wird, derart, daß der MOM 29 in der Lage ist, ohne explizite Kenntnis des Objektmodells, auf dem der Objektverwalter basiert, mit allen Ob jektverwaltern 23 zu kommunizieren. Die genaue Art und Weise, auf die der MOM 29 und ein spezieller Objektverwalter 23 kommunizieren, ist für jede spezielle Implementierung des Objektverwalter-Verwalters 29 die gleiche, kann jedoch von Implementierung zu Implementierung variieren.
- Die Trennung der Objektverwalter-Verwalter (MOMs) 29 und der einzelnen Objektverwalter 23 ermöglicht, daß Objekte mit sehr unterschiedlichen Attributen nebeneinander in dem Computersystem 11 existieren, ohne die Fähigkeit dieser Objekte 13, zusammenzuarbeiten, zu begrenzen. Die Trennung ermöglicht ferner, daß die MOMs 29 die Kommunikationsdienste, die in dem gesamten System 11 verwendet werden, kennen, während die einzelnen Objektverwalter 23 die Einzelheiten der Objekte 13 kennen, die denselben zugeordnet sind.
- Überdies ermöglicht dieses Aufsplitten von Wissen, daß die MOMs 29 Anforderungen für jeden Objekttyp 13 empfangen. Ansprechend auf den Empfang einer Anforderung bestimmt der MOM 29, ob das Zielobjekt 13b der Anforderung ein solches ist, das durch einen der Objektverwalter 23, die diesem MOM 29 zugeordnet sind, verwaltet wird. Wiederum stellen die einzelnen Objektverwalter 23 des Zielobjekts 13b sicher, daß das Zielobjekt 13b bereit ist, die Anforderung zu empfangen. Der Objektverwalter ist in der Lage, dies zu erreichen, indem derselbe spezielle Kenntnis bezüglich des Zielobjekts 13b, das verwaltet wird, besitzt oder erfaßt. In einem Fall macht es das Sicherstellen, daß ein Zielobjekt 13b bereit ist, eine Anforderung zu empfangen, erforderlich, daß der zugeordnete Objektverwalter 23 das Zielobjekt 13b aktiviert. Dies erfordert wiederum, daß der zugeordnete Objektverwalter 23 das Ausführungsmodell und das dauerhafte Speicherschema, das durch das Zielobjekt verwendet wird, kennt.
- Der Nettoeffekt der vorher genannten Trennung der Verantwortlichkeit zwischen den Objektverwalter-Verwaltern (MOMs) 29 und den einzelnen Objektverwaltern 23 kann wie folgt neu formuliert werden. Der MOM 29 wirkt sowohl als gut bekannter Empfangspunkt und als ein Weiterleitungsmittel für Anforderungen, während die Objektverwalter, die dem MOM 29 zugeordnet sind, als die Objektmodell-spezifischen Aktivierungsmittel und Manipulierungsmittel der Objekte 13b wirksam sind.
- Um in dem verteilten Computersystem, das durch die Verwaltungsvorrichtung 15 definiert ist, wirksam zu sein, unterstützen Objekte 13 bestimmte Operationen. Bei dem bevorzugten Ausführungsbeispiel unterstützen alle Objekte 13 die folgenden Funktionen.
- acl_t
- get_acl(
- objref_t object,
- status_t *status
- );
- Die Funktion get_acl gibt eine Zugriffssteuerliste, die dem Objekt zugeordnet ist, das durch den Parameter "objekt" bezeichnet ist, zurück.
- boolean
- set_acl(
- objref_t object,
- acl_t to_acl,
- status_t *status
- );
- Die Funktion set_acl_id ordnet die Zugriffssteuerliste, die mit to_acl bezeichnet ist, dem Objekt zu, das durch den Parameter "objekt" bezeichnet ist. Die Funktion gibt den Wert "wahr" zurück, wenn die Einstellung erfolgreich ist, und sonst "falsch". Es sei bemerkt, daß die Zugriffssteuerliste, die gegenwärtig dem Parameter "objekt" zugeordnet ist, dem Sender der Anforderung das Recht geben muß, die Zugriffssteuerliste einzustellen, damit die Operation erfolgreich ist.
- boolean
- set_class_id(
- objref_t object,
- classid_t to_class,
- status_t *status
- );
- Die Funktion set_class_id ändert den Klassenidentifizierer, der dem Objekt zugeordnet ist, das durch den Parameter "objekt" bezeichnet ist, auf den Wert, der in to_class spezifiziert ist. Die Funktion gibt den Wert "wahr" zurück, wenn die Einstellung erfolgreich war; andernfalls gibt die Funktion einen Wert "falsch" zurück.
- boolean
- ing_colocation(
- objref_t of_object,
- objref_t with_object,
- Status_t *status
- );
- Die Funktion ing_colocation fragt bezüglich des Objekts, das mit of_object bezeichnet ist, ob dasselbe gemeinsam mit dem Objekt, das durch with_object bezeichnet ist, angeordnet ist. Die Funktion gibt "wahr" zurück, wenn die Objekte zusammen angeordnet sind; wobei die Funktion andernfalls "falsch" zurückgibt. Es sei bemerkt, daß die Semantik der gemeinsamen Anordnung von dem dauerhaften Speichermechanismus und/oder dem Objektverwalter, der den Objekten zugeordnet ist, abhängt.
- Während der Lauf Zeit werden Aufrufe oder Operationsanforderungen wie folgt verarbeitet. Die Laufzeitbibliothek 27 ist mit allen Objekten 13 verbunden. Dieselbe dient sowohl als Ausgangspunkt für das Senden von Anforderungen als auch als endgültige Bestimmung für das Empfangen von Anforderungen. Als ein Teil dieser Funktion liefert die Laufzeitbibliothek 27 eine Schnittstelle, um Objektbezugnahmen aufzubauen, die elementare Entitäten in den Lokalisierungsdiensten 21 sind. Die Laufzeitbibliothek 27 liefert ferner eine Schnittstelle zu dem Dauerhaft-Speicher-Verwalter (Persistent Storage Manager), was ermöglicht, daß Objekte ihren dauerhaften Zustand mit der Hilfe des Standardobjektverwalters 25 verwalten, wie später erläutert wird.
- Das Senden und Empfangen von Anforderungen ist für den Benutzer des Systems 11 und den Schreiber von Objekten 13, oder genauer von Klassen von Objekten, transparent. Die Anforderungsübertragung ist durch die interne Laufzeitfunktionalität und durch die Kontrollabschnitte (d. h. Schnittstellencodefragmente), die durch einen Schnittstellenkompiler erzeugt werden, wenn derselbe die Operationsschnittstellen der Klasse verarbeitet, definiert. Jedoch sind drei Funktionen aus der Laufzeitbibliothek 27 exportiert. Die erste Funktion ermöglicht den Vergleich von zwei Objekt-Bezugnahme-Abwicklungen, um zu bestimmen, ob sich dieselben auf das gleiche Objekt beziehen. Die zweite Funktion ermöglicht die Erzeugung einer Objektbezugnahme auf ein Klassenobjekt. Die dritte Funktion ermöglicht den Abbau einer Objekt-Bezugnahme-Abwicklung.
- Die erste exportierte Laufzeitfunktion lautet bei dem bevorzugten Ausführungsbeispiel wie folgt:
- boolean
- omf_objref_equal(
- objref_t ref1,
- objref_t ref2,
- status_t *status
- );
- Die Funktion omf_objref_equal gibt den Wert "wahr" zurück, wenn die Objekt-Bezugnahme-Abwicklungen von ref1 und ref2 sich jeweils auf das gleiche Objekt beziehen; andernfalls gibt die Funktion den Wert "falsch" zurück.
- Die zweite exportierte Laufzeitfunktion lautet bei dem bevorzugten Ausführungsbeispiel wie folgt:
- objref_t
- omf_dup_objref(
- objref_t to_dup,
- status_t *status
- );
- Der Aufruf omf_dup_ objref erzeugt ein Doppel der Objekt-Bezugnahme, die durch den Parameter to_dup geliefert wird. Die resultierende Objekt-Bezugnahme kann zu weiteren Objekten gegeben werden.
- Die dritte exportierte Laufzeitfunktion lautet bei dem bevorzugten Ausführungsbeispiel:
- void
- omf_free_objref(
- objref_t to_free,
- status_t *status
- );
- Die Funktion omf_free_objref löscht eine Objekt-Bezugnahme- Abwicklung aus dem Speicher.
- Andere Funktionen, die in der Laufzeitschnittstelle verwendet werden, lauten wie folgt:
- objref_t
- omf_create(
- classid_t obj_class,
- objref_t group_with,
- tid_t in_trans,
- status_t *status
- );
- Die Funktion omf-create informiert den Objektverwalter, daß ein Objekt existiert. Ansprechend darauf gibt der Objektverwalter eine Objekt-Bezugnahme auf das neue Objekt zurück, die dann durch dieses Objekt verwendet werden kann, um sich selbst für andere Objekte zu identifizieren. Der Aufruf spezifiziert die Klasse des neuen Objekts in obj_class. Ferner ermöglicht der Parameter group_with, daß das erzeugte Objekt als in der gleichen Gruppe wie das Objekt, das durch diesen Parameter bezeichnet wird, befindlich registriert wird. Wenn zwei Objekte in der gleichen Gruppe sind, kann der Objektverwalter annehmen, daß die Objekte einander vertrauen, und kann bestimmte Annahmen treffen, die eine Optimierung ermöglichen. Beispielsweise könnten bei einer Implementierung, die aktive Objekte Prozessen zuweist, Objekte, die in der gleichen Gruppe sind, in dem gleichen Prozeß plaziert werden. Zu diesem Zweck behandelt der Objektverwalter 23 Gruppen der Objekte, die demselben zugeordnet sind, als jeweilige Äquivalenzklassen. Wiederum verfolgt der Objektverwalter 23 effektiv nur den Zustand der Gruppen von Objekten, die demselben zugeordnet sind, und nicht den Zustand von einzelnen Objekten 13 in einer Gruppe.
- boolean
- omf_delete(
- objref_t to_delete,
- tid_t trans_id,
- status_t *status
- );
- Die Funktion omf_delete informiert den Objektverwalter, der einem Objekt zugeordnet ist, daß das Objekt, das durch to_delete bezeichnet ist, gelöscht wird. Das effektive Ergebnis des Aufrufs ist die Beseitigung der gesamten Aufzeichnung des Objekts mit dem Objektverwalter. Es sei bemerkt, daß dieser Aufruf den dauerhaften Speicher, der dem Objekt zugeordnet ist, nicht löscht. Die Funktion gibt einen Wert "wahr" zurück, wenn sie erfolgreich ist; andernfalls gibt dieselbe einen Wert "falsch" zurück.
- boolean
- omf_change_identity(
- objref_t object,
- tid_t trans_id,
- objref_t new_id,
- status_t *status
- );
- Die Funktion omf_change_identity ändert die zugrundeliegende Identität des Objekts, das durch den Parameter "objekt" bezeichnet ist, in die, die durch new_id geliefert wird. Dieser Aufruf wird grundsätzlich nur verwendet, wenn das Objekt, das vorher durch new_id bezeichnet wird, wenn dies existiert, gelöscht wurde oder zu löschen ist. Die Funktion gibt einen Wert "wahr" zurück, wenn sie erfolgreich ist; andernfalls gibt dieselbe einen Wert "falsch" zurück.
- Der Dauerhaft-Speicher-Verwalter (PSM; PSM = Persistent Storage Manager) ermöglicht, daß Objekte ihren dauerhaften Zustand verwalten. Der PSM ist dem Standardobjektverwalter zugeordnet, wobei durch die Laufzeitschnittstelle auf denselben zugegriffen wird, die auf alle Objekte 13 in dem System 11 zugreifen kann. Der Satz von Aufrufen, der der PSM- Schnittstelle zugeordnet ist, ermöglicht, daß ein Objekt 13 Objekte des Typs "Zeiger-Auf-Datei" (gemäß der Definition in dem POSIX-Standard) aus der Objektidentität des Objekts erhält. Das Objekt 13 kann dann auf eine beliebige Art und Weise, die dasselbe bevorzugt, seinen dauerhaften Zustand unter Verwendung der bezeichneten Datei lesen oder schreiben.
- Es sei bemerkt, daß es nicht erforderlich ist, daß ein Objekt 13, das durch den Standardobjektverwalter 25 verwaltet wird, den PSM verwendet, um seinen dauerhaften Zustand zu speichern. Jedoch muß ein Objekt, das sich entscheidet, den PSM nicht zu verwenden, alle Manipulationen des dauerhaften Zustands des Objekts 13 ohne die Hilfe des Standardobjektverwalters 25 durchführen.
- Die Schnittstelle zu dem PSM besteht aus den folgenden Aufrufen. Diese Aufrufe werden nicht zu einem Objekt 13 geleitet, sondern sind lokale Aufrufe, die in der Systemlaufzeit implementiert sind, auf die alle Objekte 13 zugreifen können, und die in dem gleichen Prozeßraum 39 wie das aufrufende Objekt 13 ausgeführt werden. Diese Funktionen können am besten als eine Bibliothek angesehen werden, die den Kleber liefert, der ein Objekt 13 und den Objektverwalter 25 dieses Objekts zusammenhält.
- FILE*
- psm_create(
- objref_t location,
- tid_t trans_id,
- objref_t *obj_created,
- objref_t group_with,
- classid_t obj_class_id,
- acl_t init_acl,
- mode_t cr_mode,
- status_t *status
- );
- Die Funktion psm_create erzeugt eine Datei an dem gleichen Ort wie das Objekt, das durch den Parameter "location" bezeichnet wird. Die Objektidentität des erzeugten Objekts wird in dem Parameter obj_created zurückgegeben. Bei dem bevorzugten Ausführungsbeispiel codiert die Objektidentität eine Anzeige des Computers 37, auf dem das Objekt erzeugt wurde. Ein Zeiger auf die Datei, die als Teil der Operation erzeugt wurde, wird als der Zurückgabewert der Funktion zurückgegeben. Das Objekt und die zurückgegebene Datei besitzen beide die anfängliche Zugriffssteuerliste (ACL; ACL = Access Control List), die in init_acl geliefert wird, wobei die Datei in dem Modus erzeugt wird, der durch cr_mode angezeigt ist. Das Objekt wird mit dem Objektverwalter als von dem Typ, der durch obj_class_id angezeigt wird, seiend registriert.
- Es ist wichtig zu realisieren, daß psm_create kein Objekt erzeugt, sondern lediglich eine dauerhafte Speicherung und eine Anfangsobjekt-Bezugnahme liefert und die Existenz des Objekts mit einem Objektverwalter registriert. Eine vollständige Objekterzeugung kann weitere Aktivitäten erfordern, beispielsweise die Initialisierung des Objektzustands. Dies wird durch den Code, der das Objekt tatsächlich erzeugt, berücksichtigt. Der psm_create-Aufruf wird durch diesen Code durchgeführt, um das System von der Existenz des neuen Objekts zu informieren.
- FILE*
- psm_open(
- objref_t object,
- tid_t trans_id,
- mode_t open_mode,
- status_t *status
- );
- Die Funktion psm_open gibt einen Zeiger auf die Datei zurück, die dem Objekt zugeordnet ist, das durch die Objektidentität in dem Parameter "objekt" identifiziert ist, geöffnet mit dem Modus, der durch den Parameter open_mode spezifiziert ist. Die Datei muß mit einem Aufruf von psm_create erzeugt worden sein.
- boolean
- psm_delete(
- objref_t object,
- tid_t trans_id,
- status_t *status
- );
- Die Funktion psm_delete wird die Datei löschen, die dem Objekt zugeordnet ist, das durch die Objektidentität identifiziert ist, die in dem Parameter "objekt" übertragen wird, und wird ferner jedwede Bezugnahme auf das Objekt in dem Ob jektverwalter beseitigen. Die Funktion gibt "wahr" zurück, wenn das Löschen erfolgreich ist, und gibt andernfalls einen Wert "falsch" zurück.
- objref_t
- psm_create_link(
- objref_t to_object,
- tid_t in_trans,
- oid_t class_id,
- acl_t mit_acl,
- status_t *status
- );
- Die Funktion psm_create link erzeugt ein Objekt, das permanent dem Objekt zugeordnet ist, das durch den Parameter to_object bezeichnet wird. Das erzeugte Objekt wird die Klasse besitzen, die in class_id spezifiziert ist. Wenn es spezifiziert ist, wird das Objekt eine Zugriffssteuerliste init_acl aufweisen; andernfalls wird das Objekt die ACL (Zugriffssteuerliste) des Objekts, das durch to_object bezeichnet ist, aufweisen. Das neu erzeugte Objekt wird dem dauerhaften Speicher von to_object zugeordnet, wobei das Durchführen eines nachfolgenden psm_open auf der Objekt-Bezugnahme, die durch diesen Aufruf zurückgegeben wird, den gleichen Wert zurückgeben wird, wie das Durchführen von psm_open auf to_object. Die Funktion wird ferner das Objekt als in der gleichen Prozeßgruppe wie to_object befindlich registrieren.
- acl_t
- psm_get_acl(
- objref_t for_object,
- status_t *status
- );
- Die Funktion psm_get_acl_id gibt die Zugriffssteuerliste für das Objekt, das durch den Parameter for object identifiziert ist, zurück.
- boolean
- psm_set_acl(
- objref_t for_object,
- acl_t new_acl,
- status_t *status
- );
- Die Funktion psm_set_acl_id stellt die ACL für das Objekt, das durch den Parameter for object identifiziert ist, auf new_acl ein. Die Funktion gibt "wahr" zurück, wenn sie erfolgreich ist, und sonst "falsch".
- boolean
- psm_change_identity(
- objref_t object,
- tid_t trans_id,
- objref_t new_id,
- status_t *status
- );
- Die Funktion psm_change_oid wird die Objektidentität des Objekts, das durch den Parameter "objekt" identifiziert ist, in die neue Objektidentität ändern, die in dem Parameter new_id übertragen wird. Dieser Aufruf wird nur verwendet, wenn das Objekt, das vorher durch new_id, wenn dieses vorhanden ist, bezeichnet wurde, gelöscht wurde oder gelöscht werden soll. Die Funktion gibt einen Wert von "wahr" zurück, wenn sie erfolgreich ist; andernfalls gibt sie einen Wert von "falsch" zurück.
- boolean
- psm_ing_colocation(
- objref_t object,
- status_t *status
- );
- Die Funktion psm_ing_colocation wird verwendet, um zu bestimmen, ob das Objekt, das durch den Parameter "objekt" identifiziert ist, in dem gleichen dauerhaften Speicher wie das Objekt, das den Aufruf durchführt, angeordnet ist. Die Funktion gibt "wahr" zurück, wenn die Objekte gemeinsam angeordnet sind, und sonst "falsch".
- char*
- psm_get_path(
- objref_t object,
- status_t *status
- );
- Die Funktion pam_get_path gibt eine implementierungsabhängige mit Null abgeschlossene Zeichenfolge zurück, die dem Pfadnamen der Datei, die den dauerhaften Zustand in dem lokalen Dateisystem des Objekts, das durch den Parameter "objekt" bezeichnet ist, enthält, entspricht, wenn eine solche existiert, entspricht. Die Zeichenfolge wird durch die Verwaltungsvorrichtung nicht interpretiert; der Programmierer ist verantwortlich für das Verständnis der Zeichenfolge in dem Zusammenhang des lokalen Systems und für das Bestimmen, welche Operationen bezüglich solcher Zeichenfolgen in diesem lokalen System unterstützt werden. Wenn das lokale System das Konzept der Dateipfadnamen nicht unterstützt, gibt psm_get_path NULL mit einem Fehlerzustandscode zurück.
- In den meisten Systemen müssen Objekte (oder Programme) vor der Verwendung explizit aufgerufen werden. Bei dem Objektorientierten verteilten Computersystem 11 der vorliegenden Erfindung werden Objekte 13 bei Bedarf aktiviert, ohne eine explizite Operation zu erfordern, um dieselben zu aktivieren. Die bloße Verwendung eines Objekts 13 durch eine Anforderung wird bewirken, daß ein Objekt aktiviert wird, wenn dasselbe nicht bereits in seinem aktiven Zustand ist.
- Gemäß der Verwendung hierin ist ein Objekt, das in der Lage ist, auf Anforderungen zu antworten, als "aktiv" definiert. Damit ein Objekt 13 in der Lage ist, auf Anforderungen zu antworten, muß der Code für die Objektklasse in einen Prozeß 39 geladen werden, die unterstützten Anforderungsschnittstellen müssen codemäßig den Implementierungen derselben zugeordnet werden, und die dauerhaften Daten des Objekts 13 müssen hochgeladen werden. Diese letzten zwei Schritte werden durch eine "Klasseninitialisierungs"-Routine bzw. eine "Objektwiedergewinnungs"-Routine durchgeführt. Das Laden des Klassencodes muß auf eine maschinenabhängige Art und Weise gehandhabt werden. Sobald diese Schritte abgeschlossen sind, ist das Objekt 13 bereit und in der Lage, auf sämtliche Anforderungen, die dasselbe unterstützt, zu antworten.
- Die Entitäten, die bei dem bevorzugten Ausführungsbeispiel in die Objektaktivierung involviert sind, sind: ein Programm, das als "Genobj" 55 bezeichnet wird, der Standardobjektverwalter 25, eine Entität, die als ein Klassenexperte 57 bezeichnet ist, und die Laufzeitbibliothek 27. Genobj 55 (Fig. 3b) ist ein Verfahren, dessen Funktion darin besteht, Objekte 13 vorzubereiten, um Anforderungen zu empfangen. Ein Objekt, das derart vorbereitet ist, wird als in seinem aktiven Zustand befindlich betrachtet. Genobj 55 bereitet ein Objekt 13 vor, indem (i) der Code der Objektklasse in den Adreßraum von Genobj 55 geladen wird (wenn notwendig), (ii) die "Klasseninitialisierungs"-Funktion für die Objektklasse aufgerufen wird, und (iii) die "Objektwiedergewinnungs"- Funktion mit den dauerhaften Daten des Objekts aufgerufen wird. Weitere Programme mit einer Funktion, die ähnlich derjenigen von Genobj ist, sind geeignet.
- In diesem Zusammenhang verwaltet der Standardobjektverwalter 25 einen Satz von Objekten und einen Satz von Prozessen. Die Objekte des Standardobjektverwalters 25 sind mehr oder weniger permanent, wobei die Prozesse jedoch nach Bedarf initiiert oder beendet werden. Der Ständardobjektverwalter kennt die Klasse von jedem seiner Objekte und den Ort der dauerhaften Daten jedes Objekts. Der Standardobjektverwalter 25 weiß ferner, ob ein gegebenes Objekt 13 (oder eine Gruppe von in Beziehung stehenden Objekten) gegenwärtig einem der Prozesse, die durch den Standardobjektverwalter 25 verwaltet werden, zugeordnet ist oder nicht. Der Standardobjektverwalter 25 berücksichtigt ein Objekt oder eine Objektgruppe, die einem Prozeß zugeordnet ist, um in der Lage zu sein, Meldungen zu empfangen, und daher, um "aktiv" zu sein. Der Standardobjektverwalter 25 wird im Verlauf der "Aktivierung" eines Objekts 13 einen Prozeß 39 initiieren, der für die Klasse des Objekts geeignet ist. Wenn eine Klasse kein Programm 39 zur Initiierung spezifiziert, initiiert der Standardobjektverwalter 25 Genobj 55.
- Der Klassenexperte 57 (Fig. 3b) ist eine Entität, die Informationen über eine Objektklasse (oder einen Satz von Klassen) verwaltet. Die Informationen umfassen die Betriebsschnittstellen, die die Klasse unterstützt, und die Namen bestimmter Initialisierungsfunktionen für die Klasse. Der Klassenexperte 57 hält ferner Informationen, die die Implementierung (codemäßig) der Objektklasse betreffen.
- Die Laufzeitbibliothek 27 wurde vorher beschrieben. Kurz gesagt befindet sich die Laufzeitbibliothek 27 in jedem Objekt 13 und daher in jedem Prozeß 39. Die Laufzeitbibliothek, die sich in Genobj 55 befindet, tritt zusätzlich mit Genobj 55 in Wechselwirkung, um die Aktivierung und Deaktivierung von Objekten 13 zu koordinieren.
- Gemäß der Verwendung in der folgenden Erläuterung ist ein "Benutzer" ein Mensch, der das Objekt-orientierte verteilte Computersystem 11 der vorliegenden Erfindung verwendet. Ein "Client" ist ein Programm oder Objekt, das eine Anforderung (oder einen Verfahrensaufruf) zu einem anderen Objekt in dem System 11 durchführt. Der "Client" kann auch die Entität sein, mit der der Benutzer interagiert, typischerweise über eine Tastatur und/oder eine Maus. Die versuchte Verwendung eines Objekts 13 durch einen Client bewirkt, daß das Objekt 13 aktiviert wird, wenn das Objekt nicht bereits in seinem aktiven Zustand ist. Ferner werden die Ausdrücke "Funktion", "Routine", "Abwicklungsmittel" und "Prozedur" in dieser Erläuterung austauschbar verwendet.
- Zu Zwecken der Veranschaulichung und nicht zur Begrenzung sei angenommen, daß ein Benutzer M die Telefonnummer eines anderen Benutzers J wissen will. Der Benutzer M fragt einfach durch seine Computeranwendung nach "Telefoninformationen" bezüglich des Benutzers J. Typischerweise schließt dies das Tippen des Namens des Benutzers J durch den Benutzer M in eine Menüauswahl oder ein Formular, das durch die Computeranwendung angezeigt wird, ein. Wie in Fig. 2 gezeigt ist, führt die Computeranwendung dann die Anforderungs-Seiten- Version der "Erhalte-Telefon_Info"-Anforderung durch, die durch das Telefoninformations-Objekt 13a ("pi"-Objekt; pi = phone information), das sich irgendwo in dem System 11 befindet, exportiert wird. Die Anforderungs-Seite-Version der Anforderung wirkt mit der Laufzeitbibliothek 27, die sich in dem Anforderungsprozeß 39a befindet, zusammen. Die Laufzeitbibliothek 27 kontaktiert zuerst die Lokalisierungsdienste 21, um den Ort des Objektverwalters 25 des pi-Objekts 13a zu finden. Die Laufzeitbibliothek 27 sendet dann die tatsächliche "Erhalte-Telefon_Info"-Operationsanforderung zu dem Objektverwalter-Verwalter (MOM) 29a, der den Objektverwalter 25 des Objekts verwaltet.
- Die Laufzeitbibliothek 27 in dem MOM 29a (Objektverwalterverwalter) empfängt das Paket, das die Anforderung enthält, die durch die Computeranwendung 39a des Benutzers M gesendet wurde. Die Laufzeitbibliothek 27 fragt den Objektverwalter- Verwalter 29a, ob derselbe weiß, wohin das Paket geleitet werden soll. Spezieller ausgedrückt leitet die Laufzeitbibliothek 27 die Objektidentität und den Schnittstellenidentifizierer, der in dem Paket unter jeweiligen Parametern gefunden wurde, weiter und erwartet einen "Endpunkt" (d. h. eine Lokalsockeladresse) zu empfangen, zu der das Paket weitergeleitet werden kann.
- Ansprechend darauf fragt der Objektverwalter-Verwalter 29a jeden seiner Objektverwalter 23, ob der Objektverwalter das angeforderte Objekt verwaltet (d. h. das Objekt, das durch die Objektidentität, die durch die Laufzeitbibliothek 27 weitergeleitet wird, spezifiziert ist). Der Standardobjektverwalter 25 überprüft seine internen Tabellen 51 (Fig. 3a), um zu sehen, ob er das Objekt 13a verwaltet. Wenn dies der Fall ist, hält der Standardobjektverwalter 25 den Identifizierer der Gruppe von Objekten, zu der das spezifizierte Objekt 13a gehört. (Objektgruppen, die nur ein Objekt enthalten, sind erlaubt). Der Standardobjektverwalter 25 sucht dann den Zustand der Gruppe von Objekten. Eine Gruppe kann in einem beliebigen der folgenden drei Zustände sein:
- "Aktiv" - die Gruppe ist bereits einem Prozeß 39 zugeordnet. Zumindest ein Endpunkt für diesen Prozeß ist zur Verwendung und zum Weiterleiten von Paketen verfügbar.
- "Anhängig" - ein Prozeß 39 wurde für die Gruppe initiiert, wobei der Prozeß jedoch noch nicht seine Endpunkte mit dem Standardobjektverwalter 25 registriert hat.
- "Inaktiv" - es gibt keinen Prozeß 39, der der Gruppe zugeordnet ist.
- Wenn die Gruppe "aktiv" ist, gibt der Standardobjektverwalter 25 die Endpunkte des Prozesses 39, der der Gruppe zugeordnet ist, zurück. Wenn die Gruppe "anhängig" ist, gibt der. Standardobjektverwalter 25 keine Endpunkte zurück, da derselbe diese noch nicht besitzt, gibt jedoch eine Anzeige zurück, daß er das spezifizierte Objekt verwaltet. Wenn die Gruppe "inaktiv" ist, beschafft der Standardobjektverwalter 25 einen Prozeß 39 für die Gruppe.
- Bei dem bevorzugten Ausführungsbeispiel erreicht der Standardobjektverwalter 25 eine Prozeßbeschaffung für eine Gruppe entsprechend der Darstellung in Fig. 3a wie folgt. Zu nächst überprüft der Standardobjektverwalter 25a einen Pool 47 von "verfügbaren" Prozessen 39c, 39d. Ein verfügbarer Prozeß ist ein solcher, der einen oder mehrere Endpunkte bei dem Standardobjektverwalter 25 registriert hat, der jedoch noch keiner Objektgruppe zugeordnet ist. Der Standardobjektverwalter 25 überprüft jeden Prozeß 39 in dem Pool 47, um einen zu finden, der mit der Klasse des spezifizierten Objekts kompatibel ist. Bestimmte Prozesse (beispielsweise Beispiele von Genobj) sind mit vielen Klassen kompatibel, wobei jedoch andere darauf beschränkt sein können, nur Objekte einer speziellen Klasse zu behandeln. Wenn der Standardobjektverwalter 25 einen kompatiblen Prozeß 39c in dem Pool 47 findet, markiert er die Gruppe als "aktiv" in den internen Tabellen 51 des Standardobjektverwalters. Der Standardobjektverwalter 25 ordnet die Endpunkte des gefundenen Prozesses 39c und den Prozeßbetriebssystemidentifizierer ferner der Gruppe zu. Der Standardverwalter 25 gibt als nächstes die neu zugeordneten Endpunkte zu dem Objektverwalter-Verwalter 29a zurück und entfernt den Prozeß 39c aus dem verfügbaren Prozeßpool 47.
- Wenn der Standardobjektverwalter 25 in dem Pool 47 von verfügbaren Prozessen keinen kompatiblen Prozeß findet, initiiert der Standardobjektverwalter 25 einen kompatiblen Prozeß 39f. Um dies durchzuführen, bestimmt der Standardobjektverwalter 25 den Pfad eines kompatiblen Prozesses 39f durch das Betrachten von Informationen, die zu der Klasse des Objekts gehören. Wie genannt wurde, wird, wenn eine Klasse keinen Prozeß spezifiziert, der Standardobjektverwalter 25 Genobj 55 initiieren. Nach dem Initiieren des Prozesses 39f markiert der Standardobjektverwalter 25 in seinen internen Tabellen 51, daß die Gruppe des Objekts in "anhängiger Aktivierung" ist. Der Standardobjektverwalter 25 setzt ferner einen Eintrag 39f in einen Pool 53 von "anhängigen Prozessen". Der Eintrag für den Prozeß 39f enthält den Betriebssystemidentifizierer des Prozesses und die Identität der Gruppe, für die der Prozeß 39f bestimmt ist.
- Wenn der Prozeß 39f seine Endpunkte registriert (über eine Register Endpunkte-Anforderung an den Standardverwalter 25), wird sein Eintrag aus dem anhängigen Prozeßpool 53 beseitigt, wobei die Gruppe, für die derselbe bestimmt ist, durch den Standardverwalter 25 in den internen Tabellen 51 als "aktiv" markiert wird. Der Standardobjektverwalter 25 ordnet die Gruppe den Endpunkten des Prozesses und dem Prozeßidentifizierer in seinen internen Tabellen 51 zu. Es sei bemerkt, daß, wenn ein Prozeß, der ohne eine Gruppenzuordnung initiiert wird, seine Endpunkte registriert, derselbe von dem Pool 53 anhängiger Prozesse zu dem Pool 47 verfügbarer Prozesse bewegt wird.
- In dem Fall, daß Genobj 55 durch den Standardobjektverwalter 25 initiiert wird, ist Genobj wie folgt gemäß der Darstellung in Fig. 3b wirksam. Bald nachdem es durch den Standardobjektverwalter 25 initiiert wurde, fragt Genobj 55 die Laufzeitbibliothek 27 nach Endpunkten. Nach dem Beschaffen der Endpunkte führt Genobj 55 die "Registriere Endpunkte"- Anforderung zu dem Standardobjektverwalter 25 durch. Die Parameter für die Anforderung umfassen den Betriebssystem-Prozeßidentifizierer dieses Beispiels von Genobj 55 und die Endpunkte, die aus der Laufzeitbibliothek 27 beschafft wurden.
- Zusätzlich zu der Registrierung der Endpunkte bei dem Standardobjektverwalter 25 führt Genobj 55 eine Registrierung (einer unterschiedlichen Art) mit der Laufzeitbibliothek 27 durch. Genobj 55 registriert eine "Unbekanntes-Objekt"-Funktion 61 (eine Funktion, die aufgerufen wird, wenn die Laufzeitbibliothek 27 eine Anforderung empfängt, bezüglich der sie nicht weiß, wie sie dieselbe handhaben soll). Nach dem Durchführen beider Registrierungen schaltet Genobj 55 die Steuerung zu der Laufzeitbibliothek 27, die nun das Empfangen von Anforderungen beginnen kann (die durch den Standardobjektverwalter 25 weitergeleitet werden oder möglicherweise direkt durch Anforderer gesendet werden). Wenn die Laufzeitbibliothek 27 eine Anforderung empfängt, bezüglich der sie nicht weiß, wie sie dieselbe handhaben soll, ruft die Laufzeitbibliothek 27 die Unbekanntes-Objekt-Funktion 61 auf.
- Die Unbekanntes-Objekt-Funktion (oder das Abwicklungsmittel) 61 von Genobj wirken mit dem Standardobjektverwalter 25 durch die get_obj_info()-Anforderung zusammen, um die Klasse des Objekts und den Ort der dauerhaften Daten des Objekts zu bestimmen. Unter Verwendung des gerade beschafften Klassenidentifizierers lokalisiert und kontaktiert die Funktion 61 den Experten 57 für die Klasse. Von dem Klassenexperten 57 findet die Funktion die Namen der Klasseninitialisierungsfunktion und der Objektwiedergewinnungsfunktion durch die Anforderung get_class_info(), wie in Fig. 3b gezeigt ist. Die Unbekanntes-Objekt-Funktion 61 erhält möglicherweise ebenfalls Informationen, die dieselbe benötigt, um die Implementierung der Klasse in den Funktionenadreßraum zu laden. Nach dem Laden der Klassenimplementierung ruft die Unbekanntes-Objekt-Funktion 61 die Klasseninitialisierungsfunktion auf. Der primäre Zweck der Klasseninitialisierungsfunktion besteht darin, die Klassenoperation-Schnittstellen und Deaktivierungsabwicklungsmittel in der Laufzeitbibliothek 27 zu registrieren. Die Unbekanntes-Objekt-Funktion 61 ruft dann die Klassen-Objektwiedergewinnungsfunktion auf, die das Überleiten an den Ort der dauerhaften Daten des Objekts umfaßt. Nachdem die Wiedergewinnungsroutine abgeschlossen ist, registriert die Unbekanntes-Objekt-Funktion 61 das Objekt und die Klasse in der Laufzeitbibliothek 27. Schließlich gibt die Unbekanntes-Objekt-Funktion 61 die Steuerung zu der Laufzeitbibliothek 27 zurück.
- Die Laufzeitbibliothek besitzt nun ausreichend Informationen (die von den Anforderungsregistrierungen und der Objekt/Klassen-Registrierung empfangen werden), um die Anforderung (das Paket) ordnungsgemäß zu verarbeiten. Dabei ist das Objekt, das wiedergewonnen wurde, nun bereit, um die Anforderung, die durch das Paket spezifiziert ist, zu empfangen. Die Laufzeitbibliothek 27 ruft einfach den Kontrollabschnitt auf, den das Objekt für die Anforderung registriert hat, und überträgt die Daten, die in dem Anforderungspaket gefunden werden. Der Kontrollabschnitt vereinigt die Daten und ruft das geeignete Verfahren des Objekts auf.
- Wenn die nächste Anforderung für das Objekt 13 in einem Paket ankommt, wird die Laufzeitbibliothek 27 in der Lage sein, den Kontrollabschnitt direkt ohne Umleitung zu der Unbekanntes-Objekt-Funktion 61 aufzurufen, da das Objekt zu diesem Zeitpunkt "bekannt" ist.
- Der Vorteil der vorher genannten Prozedur besteht darin, daß dieselbe für den Benutzer und für Client-Programme transparent ist. Der Client, der die Anforderung bezüglich des Objekts aufgerufen hat, besitzt keine Kenntnis davon, ob vor der Ausgabe der Anforderung das Objekt 13 aktiv ist oder nicht. Diesbezüglich erscheinen alle Objekte für Verarbeitungsanforderungen verfügbar oder aktiv zu sein, selbst wenn dieselben gegenwärtig keinem Prozeß zugeordnet sind. Folglich liefert die vorliegende Erfindung eine Computereinrichtung zum Implementieren von Operationen und Daten eines Zielobjekts (und darüberhinaus zum Empfangen und Behandeln von Anforderungen) für ein Zielobjekt, unabhängig von der Zuordnung des Zielobjekts zu einem Prozeß zu dem Zeitpunkt, zu dem die Anforderung erteilt wurde.
- Die Klasseninitialisierungsroutine der Klasse des Objekts ist verantwortlich für die Registrierung einer Deaktivierungsabwicklung in der Laufzeitbibliothek. Bei dem bevorzugten Ausführungsbeispiel liefern die Objektverwalter 23 eine Deaktivierung von Prozessen automatisch ansprechend auf das System 11, das Betriebsmittel benötigt. Wenn Genobj 55 eine Prozeßbeendigungsanforderung von dem Standardobjektverwalter 25 empfängt, wird dasselbe die Laufzeitbibliothek 27 fragen, um die Deaktivierungsabwicklungsmittel für jedes registrierte Objekt 13 aufzurufen. Die Beendigungsanforderung von dem Standardobjektverwalter 25 besitzt einen "Prioritäts"-Parameter, der anzeigt, wie wichtig es ist, den Prozeß 39 zu beenden. Es existieren zumindest drei Prioritätswerte, die der Parameter annehmen kann, die von "Bitte beenden, wenn du nicht beschäftigt bist" bis "Beende oder stirb ungnädig" reichen. Genobj 55 leitet den Prioritätsparameter zu der Laufzeitroutine "Deaktiviere_Objekte" weiter, die die Deaktivierungsabwicklungsmittel aufruft. Bevor die Deaktivierungsabwicklungsmittel aufgerufen werden, vergleicht die Deaktiviere_Objekte-Routine den Wert des Prioritätsparameters mit den "Beendigungs-Unwilligkeits"-Werten, die durch jedes Objekt 13 registriert sind. Wenn der Prioritätspegel größer ist als jeder "Unwilligkeits"-Pegel, werden die Deaktivierungsabwicklungsmittel aufgerufen. Wenn dies nicht der Fall ist, kehrt die "Deaktiviere_Objekte"-Routine zu Genobj 55 zurück, wobei der gegenwärtig maximale Unwilligkeitspegel weitergeleitet wird, wobei Genobj 55 wiederum diesen Wert zudem Standardobjektverwalter 25 zurückleitet.
- Ein Objekt 13 ist in der Lage, seinen "Unwilligkeits"-Pegel zu ändern, wann immer es geeignet ist. Beispielsweise kann ein Objekt 13, das für eine bestimmte Zeit überhaupt keine Verfahrensanforderungen empfangen hat, der Laufzeitbibliothek 27 sagen, daß sein Unwilligkeitspegel gering ist. Wenn dieses Objekt 13 danach Verfahrensanforderungen empfangen soll, könnte es der Laufzeitbibliothek 27 mitteilen, daß sein Unwilligkeitspegel hoch war. Die Laufzeitbibliothek 27 verfolgt den gegenwärtigen Unwilligkeitspegel jedes Objekts 13.
- Die Wiedergewinnungsroutine eines Objekts kann entscheiden (basierend auf seinen dauerhaften Daten), daß dasselbe weitere Objekte in seiner Objektgruppe benötigt, die in Genobj aktiv sind. Die Wiedergewinnungsroutine kann bewirken, daß ein anderes Objekt aktiviert wird, indem die Unbekanntes-Objekt-Funktion 61 (Abwicklungsmittel) von Genobj aufgerufen wird, wobei die Objektidentität des gewünschten Objekts 13 zugeführt wird. Die Wiedergewinnungsroutine kann dies für so viele Objekte durchführen, wie benötigt werden. Das Unbekanntes-Objekt-Abwicklungsmittel 61 überprüft, um zu sehen, daß das gewünschte Objekt nicht bereits aktiv ist. Wenn das Objekt nicht aktiv ist, verhält sich das Abwicklungsmittel 61 im wesentlichen auf die gleiche Weise, wie es sich verhält, wenn es durch die Laufzeitbibliothek 27 aufgerufen wird, wie oben beschrieben wurde. Die Unterschiede beziehen sich auf das Ausgeben einer Gleichzeitigkeitssteuerung, und nicht auf irgendwelche Unterschiede im Endeffekt. Es sei bemerkt, daß Aufrufe zu dem Unbekanntes-Objekt-Abwicklungsmittel 61 rekursiv sein können. Beispielsweise kann das Abwicklungsmittel durch die Laufzeitbibliothek 27 bezüglich eines speziellen Objekts "A" aufgerufen werden, dessen Wiedergewinnungsroutine das Abwicklungsmittel bezüglich des Objekts "B" aufruft. Die Wiedergewinnungsroutine für "B" kann wiederum das Abwicklungsmittel bezüglich des Objekts "C" aufrufen, usw. Schließlich werden die Klassen aller benötigter Objekte 13 initialisiert sein und die Zustände derselben wiedergewonnen sein, wobei die Steuerung schließlich zu der Laufzeitbibliothek 27 zurückkehrt.
- Eine beliebige Anzahl von Objekten in einer Objektgruppe kann von der gleichen Klasse sein. Wenn jedes Objekt 13 in Genobj 55 aktiviert wird, überprüft Genobj, um zu sehen, ob es bereits die Klasse des Objekts "geladen" und initialisiert hat. Wenn dies der Fall ist, wird Genobj 55 davon absehen, die Klasse wieder zu laden und zu reinitialisieren. Genobj 55 ruft jedoch die Wiedergewinnungsfunktion auf, unabhängig davon, ob die Klasse vorher geladen wurde. Dies ist der Fall, da die Wiedergewinnungsfunktion dazu dient, den Zustand des Objekts 13 wiederzugewinnen, und nicht die Klas se (wobei dies für jedes Objekt durchgeführt werden muß).
- Obwohl die Erfindung speziell bezugnehmend auf ein bevorzugtes Ausführungsbeispiel derselben gezeigt und beschrieben wurde, ist es für Fachleute offensichtlich, daß verschiedene Änderungen in Form und Detail in derselben durchgeführt werden können, ohne von dem Schutzbereich der Erfindung, wie er durch die beigefügten Ansprüche definiert ist, abzuweichen.
Claims (2)
1. Ein Objekt-orientiertes verteiltes Computersystem
(11), das eine Mehrzahl von Objektmodellen
unterstützt, wobei jedes Objektmodell durch die Art und
Weise, auf die der dauerhafte Zustand der Objekte des
Modells verwaltet wird, und die Art und Weise
definiert ist, auf die Operationen bezüglich der Objekte
des Modells in einen Code abgebildet werden, um die
Operationen durchzuführen, wobei das Abbilden in den
Code das Ausführungsmodell der Objekte des Modells
ist, mit folgenden Merkmalen:
einem ersten Computer (1),
einem zweiten Computer (2),
einem Verwalter von Objektverwaltern (29a), der sich
in dem ersten Computer befindet,
einem Verwalter von Objektverwaltern (29b), der sich
in dem zweiten Computer befindet,
einer Mehrzahl von Objektverwaltern (23a, ..., 23n),
die sich in dem ersten Computer befinden, wobei jeder
auf einem unterschiedlichen Objektmodell basiert,
zumindest einem Objektverwalter (25), der sich in dem
zweiten Computer befindet, der auf einem Objektmodell
basiert,
Objekte eines Objektmodells (13a), die einen
dauerhaften Zustand und ein Ausführungsmodell umfassen, und
die Operationsanforderungen zu Objekten eines
unterschiedlichen Objektmodells kommunizieren, indem
Auf
rufe in dem System durchgeführt werden, wobei jede
Anforderung (i) einen Objektidentifizierer, der ein
Zielobjekt (13b) anzeigt, und (ii) eine Anzeige einer
Operation, die wunschgemäß durch das Zielobjekt
durchgeführt werden soll, aufweist, wobei jeder
Objektverwalter eine Operation und eine Existenz von Objekten,
die diesem Objektverwalter zugeordnet sind,
entsprechend dem Objektmodell dieses Objektverwalters
unterstützt, und wobei jeder Verwalter von Objektverwaltern
auf eine Art und Weise, die frei von einem
vorprogrammierten Code bei dem Operationsaufruf ist, mit
jeweiligen zugeordneten Objektverwaltern der jeweiligen
Objektmodelle der Objektverwalter kommuniziert, um
Objekte zu lokalisieren, zu denen
Operationsanforderungen kommuniziert werden sollen, derart, daß eine
Anforderung durch ein erstes Objekt, das durch einen
ersten Objektverwalter auf dem ersten Computer verwaltet
wird, um eine Operation bezüglich eines zweiten
Objekts, das durch einen zweiten Objektverwalter auf dem
gleichen Computer verwaltet wird, durchzuführen, von
dem ersten Objekt zu dem Verwalter von
Objektverwaltern auf dem ersten Computer und dann zu dem zweiten
Objektverwalter kommuniziert wird, wobei der Verwalter
von Objektverwaltern auf dem ersten Computer auf das
erste Objekt anspricht und (i) basierend auf dem
Identifizierer des zweiten Objekts, jedoch unabhängig von
dem Typ des zweiten Objekts und unabhängig von dem
Objektmodell des zweiten Objektverwalters, bestimmt, ob
das zweite Objekt von dem zweiten Objektverwalter
verwaltet wird, und (ii) die Anforderung zu dem zweiten
Objektverwalter kommuniziert, wobei der zweite
Objektverwalter den dauerhaften Zustand und das
Ausführungsmodell des zweiten Objekts entsprechend seinem
Objektmodell erhält und aus denselben das zweite Objekt
aktiviert und die Anforderung zu dem zweiten Objekt
liefert, und
wobei eine Anforderung durch das erste Objekt, das
durch den ersten Objektverwalter auf dem ersten
Computer verwaltet wird, um eine Operation bezüglich eines
dritten Objekts (13d), das durch einen dritten
Objektverwalter (23) auf dem zweiten Computer verwaltet
wird, durchzuführen, von dem ersten Objekt zu dem
Verwalter von Objektverwaltern auf dem zweiten Computer
und dann zu dem dritten Objektverwalter kommuniziert
wird, wobei der Verwalter von Objektverwaltern auf dem
zweiten Computer auf das erste Objekt anspricht, und
(i) basierend auf dem Identifizierer des dritten
Objekts, jedoch unabhängig von dem Typ des dritten
Objekts und unabhängig von dem Objektmodell des dritten
Objektverwalters, bestimmt, ob das dritte Objekt durch
den dritten Objektverwalter verwaltet wird, und (ii)
die Anforderung zu dem dritten Objektverwalter
kommuniziert, wobei der dritte Objektverwalter entsprechend
seinem Objektmodell den dauerhaften Zustand und das
Ausführungsmodell des dritten Objekts erhält und aus
denselben das dritte Objekt aktiviert und die
Anforderung zu dem dritten Objekt liefert.
2. Das Objekt-orientierte verteilte Computersystem gemäß
Anspruch 1, bei dem jeder Verwalter von
Objektverwaltern eine gemeinsame Schnittstelle verwendet, um mit
jedem der Objektverwalter, die sich auf dem gleichen
Computer befinden, zu kommunizieren.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US66047891A | 1991-02-25 | 1991-02-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69228621D1 DE69228621D1 (de) | 1999-04-22 |
DE69228621T2 true DE69228621T2 (de) | 1999-07-22 |
Family
ID=24649693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69228621T Expired - Fee Related DE69228621T2 (de) | 1991-02-25 | 1992-01-28 | Objektorientiertes verteiltes Rechnersystem |
Country Status (4)
Country | Link |
---|---|
US (1) | US5475817A (de) |
EP (1) | EP0501610B1 (de) |
JP (1) | JP3573762B2 (de) |
DE (1) | DE69228621T2 (de) |
Families Citing this family (215)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9208275D0 (en) * | 1992-04-15 | 1992-06-03 | Int Computers Ltd | Data management mechanism |
WO1994001820A1 (en) * | 1992-07-01 | 1994-01-20 | Telefonaktiebolaget Lm Ericsson | System for implementation-independent interface specification |
US5404525A (en) * | 1992-09-30 | 1995-04-04 | International Business Machines Corporation | Efficient method router that supports multiple simultaneous object versions |
US5396630A (en) * | 1992-10-06 | 1995-03-07 | International Business Machines Corporation | Method and system for object management across process boundries in a data processing system |
US5566302A (en) * | 1992-12-21 | 1996-10-15 | Sun Microsystems, Inc. | Method for executing operation call from client application using shared memory region and establishing shared memory region when the shared memory region does not exist |
JPH06332712A (ja) * | 1993-05-25 | 1994-12-02 | Fujitsu Ltd | オブジェクトを持つデータ処理システム |
US6751796B1 (en) | 1993-06-25 | 2004-06-15 | Microsoft Corporation | Integration of systems management services with an underlying system object model |
CA2124720C (en) * | 1993-06-25 | 2002-10-22 | Michael R. C. Seaman | Integration of systems management services with an underlying system object model |
US5581761A (en) * | 1993-07-20 | 1996-12-03 | Sun Microsystems, Inc. | Methods and apparatus for providing an extensible set of auxiliary services for objects in an object-oriented system |
DE69426143T2 (de) * | 1993-09-10 | 2001-06-13 | Sun Microsystems, Inc. | Kundenseitiger Stubinterpretor |
US5548779A (en) * | 1993-12-21 | 1996-08-20 | Taligent | System for providing system services for a device to a client using stack definition and stack description of a stack having top, intermediate, and bottom service objects |
US5544325A (en) * | 1994-03-21 | 1996-08-06 | International Business Machines Corporation | System and method for generating messages for use in transaction networks |
US5694597A (en) * | 1994-04-26 | 1997-12-02 | International Business Machines Corporation | Method and system for optimizing access to a datastore |
JPH07306778A (ja) * | 1994-05-16 | 1995-11-21 | Fujitsu Ltd | ソフトウェアの分散開発環境における開発管理方式 |
US5625775A (en) * | 1994-06-13 | 1997-04-29 | International Business Machines Corporation | Modem communication interface in a data processing system |
DE59508793D1 (de) | 1994-08-31 | 2000-11-23 | Siemens Ag | Verfahren zur Verwaltung dynamischer Objekte in einer objektorientiert programmierten Einrichtung |
JP3072709B2 (ja) * | 1994-11-21 | 2000-08-07 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | 要求伝達方法 |
GB9424501D0 (en) * | 1994-12-05 | 1995-01-25 | Boatman Peter J | Pipe assembly |
JPH08286962A (ja) * | 1994-12-16 | 1996-11-01 | Internatl Business Mach Corp <Ibm> | 処理システム及びオブジェクト活動化をスケジュールする方法 |
EP0733971A3 (de) * | 1995-03-22 | 1999-07-07 | Sun Microsystems, Inc. | Verfahren und Gerät zum Verwalten von Verbindungen für Kommunikation zwischen Objekten in einem verteilten Objektsystem |
US5907675A (en) * | 1995-03-22 | 1999-05-25 | Sun Microsystems, Inc. | Methods and apparatus for managing deactivation and shutdown of a server |
US6161147A (en) * | 1995-03-31 | 2000-12-12 | Sun Microsystems, Inc. | Methods and apparatus for managing objects and processes in a distributed object operating environment |
US6640255B1 (en) * | 1995-03-31 | 2003-10-28 | Sun Microsystems, Inc. | Method and apparatus for generation and installation of distributed objects on a distributed object system |
US5692183A (en) * | 1995-03-31 | 1997-11-25 | Sun Microsystems, Inc. | Methods and apparatus for providing transparent persistence in a distributed object operating environment |
US6715148B1 (en) | 1995-04-03 | 2004-03-30 | International Business Machines Corporation | Efficient method router that supports multiple simultaneous object versions |
JPH08297573A (ja) * | 1995-04-27 | 1996-11-12 | Fujitsu Ltd | オブジェクトデータ処理装置 |
US5778227A (en) * | 1995-08-01 | 1998-07-07 | Intergraph Corporation | System for adding attributes to an object at run time in an object oriented computer environment |
GB2305270A (en) * | 1995-09-15 | 1997-04-02 | Ibm | Bridge for a client-server environment |
US6009464A (en) * | 1995-09-20 | 1999-12-28 | Sun Microsystems, Inc. | Method and apparatus for enabling application programs to communicate with network clients and servers |
US5737607A (en) * | 1995-09-28 | 1998-04-07 | Sun Microsystems, Inc. | Method and apparatus for allowing generic stubs to marshal and unmarshal data in object reference specific data formats |
SE507482C2 (sv) * | 1995-10-09 | 1998-06-15 | Ericsson Telefon Ab L M | System och förfarande för kommunikationshantering med redundans |
US6516355B1 (en) * | 1995-11-08 | 2003-02-04 | Adc Newnet, Inc. | Methods and apparatus for controlling digital communications switching equipment |
JP3019915B2 (ja) * | 1995-11-20 | 2000-03-15 | 日本電気株式会社 | 手続き呼出し方法 |
GB9603582D0 (en) | 1996-02-20 | 1996-04-17 | Hewlett Packard Co | Method of accessing service resource items that are for use in a telecommunications system |
DE19547108A1 (de) * | 1995-12-16 | 1997-06-19 | Sel Alcatel Ag | Verfahren zum Einbinden von Zusatz-Funktions-Modulen in eine Steuereinrichtung eines Vermittlungssystems und Vermittlungssystem |
US6886167B1 (en) * | 1995-12-27 | 2005-04-26 | International Business Machines Corporation | Method and system for migrating an object between a split status and a merged status |
US6041109A (en) | 1995-12-29 | 2000-03-21 | Mci Communications Corporation | Telecommunications system having separate switch intelligence and switch fabric |
US5887172A (en) * | 1996-01-10 | 1999-03-23 | Sun Microsystems, Inc. | Remote procedure call system and method for RPC mechanism independent client and server interfaces interoperable with any of a plurality of remote procedure call backends |
US6233623B1 (en) | 1996-01-11 | 2001-05-15 | Cabletron Systems, Inc. | Replicated resource management system for managing resources in a distributed application and maintaining a relativistic view of state |
US6446135B1 (en) * | 1996-03-05 | 2002-09-03 | Microsoft Corporation | Method and system for querying and executing commands of an application program |
US6091895A (en) * | 1996-03-27 | 2000-07-18 | International Business Machines Corporation | Object oriented central maintenance for programs and scripts |
US6113649A (en) * | 1996-03-27 | 2000-09-05 | International Business Machines Corporation | Object representation of program and script components |
US6154445A (en) | 1996-04-18 | 2000-11-28 | Bell Atlantic Network Services, Inc. | Telephony communication via varied redundant networks |
US6069890A (en) | 1996-06-26 | 2000-05-30 | Bell Atlantic Network Services, Inc. | Internet telephone service |
US6466947B2 (en) | 1998-03-20 | 2002-10-15 | Sun Microsystems, Inc. | Apparatus and method for dynamically verifying information in a distributed system |
US6832223B1 (en) | 1996-04-23 | 2004-12-14 | Sun Microsystems, Inc. | Method and system for facilitating access to a lookup service |
US6938263B2 (en) | 1996-04-23 | 2005-08-30 | Sun Microsystems, Inc. | System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space |
US6487607B1 (en) | 1998-02-26 | 2002-11-26 | Sun Microsystems, Inc. | Methods and apparatus for remote method invocation |
US6598094B1 (en) | 1998-03-20 | 2003-07-22 | Sun Microsystems, Inc. | Method and apparatus for determining status of remote objects in a distributed system |
US6182083B1 (en) | 1997-11-17 | 2001-01-30 | Sun Microsystems, Inc. | Method and system for multi-entry and multi-template matching in a database |
US6446070B1 (en) | 1998-02-26 | 2002-09-03 | Sun Microsystems, Inc. | Method and apparatus for dynamic distributed computing over a network |
US6185611B1 (en) | 1998-03-20 | 2001-02-06 | Sun Microsystem, Inc. | Dynamic lookup service in a distributed system |
US6708171B1 (en) | 1996-04-23 | 2004-03-16 | Sun Microsystems, Inc. | Network proxy |
US6393497B1 (en) | 1998-03-20 | 2002-05-21 | Sun Microsystems, Inc. | Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system |
US6282652B1 (en) | 1998-02-26 | 2001-08-28 | Sun Microsystems, Inc. | System for separately designating security requirements for methods invoked on a computer |
US6237024B1 (en) | 1998-03-20 | 2001-05-22 | Sun Microsystem, Inc. | Method and apparatus for the suspension and continuation of remote processes |
US6226746B1 (en) | 1998-03-20 | 2001-05-01 | Sun Microsystems, Inc. | Stack-based system and method to combine security requirements of methods |
US6578044B1 (en) * | 1997-11-17 | 2003-06-10 | Sun Microsystems, Inc. | Method and system for typesafe attribute matching |
US6438614B2 (en) | 1998-02-26 | 2002-08-20 | Sun Microsystems, Inc. | Polymorphic token based control |
US6247026B1 (en) | 1996-10-11 | 2001-06-12 | Sun Microsystems, Inc. | Method, apparatus, and product for leasing of delegation certificates in a distributed system |
US6138238A (en) | 1997-12-11 | 2000-10-24 | Sun Microsystems, Inc. | Stack-based access control using code and executor identifiers |
US6421704B1 (en) | 1998-03-20 | 2002-07-16 | Sun Microsystems, Inc. | Method, apparatus, and product for leasing of group membership in a distributed system |
US6560656B1 (en) | 1998-02-26 | 2003-05-06 | Sun Microsystems, Inc. | Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system |
US6272559B1 (en) | 1997-10-15 | 2001-08-07 | Sun Microsystems, Inc. | Deferred reconstruction of objects and remote loading for event notification in a distributed system |
US5881230A (en) * | 1996-06-24 | 1999-03-09 | Microsoft Corporation | Method and system for remote automation of object oriented applications |
US6282580B1 (en) | 1996-07-02 | 2001-08-28 | Sun Microsystems, Inc. | Bridge providing communication between different implementations of object request brokers |
US5920868A (en) * | 1996-07-03 | 1999-07-06 | Sun Microsystems, Inc. | Cataloging apparatus for facilitating the re-use of distributed objects in a distributed object system |
US5949998A (en) * | 1996-07-03 | 1999-09-07 | Sun Microsystems, Inc. | Filtering an object interface definition to determine services needed and provided |
US5991535A (en) | 1996-07-03 | 1999-11-23 | Sun Microsystems, Inc. | Visual composition tool for constructing application programs using distributed objects on a distributed object network |
US5860004A (en) * | 1996-07-03 | 1999-01-12 | Sun Microsystems, Inc. | Code generator for applications in distributed object systems |
US5832529A (en) | 1996-10-11 | 1998-11-03 | Sun Microsystems, Inc. | Methods, apparatus, and product for distributed garbage collection |
US6237009B1 (en) | 1996-10-11 | 2001-05-22 | Sun Microsystems, Inc. | Lease renewal service |
US6728737B2 (en) | 1996-10-11 | 2004-04-27 | Sun Microsystems, Inc. | Method and system for leasing storage |
US5991536A (en) * | 1996-11-12 | 1999-11-23 | International Business Machines Corporation | Object-oriented tool for registering objects for observation and causing notifications to be made in the event changes are made to an object which is being observed |
US5907706A (en) * | 1996-11-12 | 1999-05-25 | International Business Machines Corporation | Interactive modeling agent for an object-oriented system |
US6078582A (en) | 1996-12-18 | 2000-06-20 | Bell Atlantic Network Services, Inc. | Internet long distance telephone service |
US5940395A (en) * | 1996-12-19 | 1999-08-17 | International Business Machines Corp. | Method and system for information plug-ins for configurable client-server applications |
US5987611A (en) * | 1996-12-31 | 1999-11-16 | Zone Labs, Inc. | System and methodology for managing internet access on a per application basis for client computers connected to the internet |
WO1998031138A1 (en) | 1997-01-13 | 1998-07-16 | John Overton | Automated system for image archiving |
US6137869A (en) | 1997-09-16 | 2000-10-24 | Bell Atlantic Network Services, Inc. | Network session management |
US6574216B1 (en) | 1997-03-11 | 2003-06-03 | Verizon Services Corp. | Packet data network voice call quality monitoring |
US6292479B1 (en) | 1997-03-19 | 2001-09-18 | Bell Atlantic Network Services, Inc. | Transport of caller identification information through diverse communication networks |
US6870827B1 (en) | 1997-03-19 | 2005-03-22 | Verizon Services Corp. | Voice call alternative routing through PSTN and internet networks |
JP3817823B2 (ja) * | 1997-04-10 | 2006-09-06 | ソニー株式会社 | データ通信方法 |
US6240466B1 (en) | 1997-04-21 | 2001-05-29 | International Business Machines Corporation | Object-oriented apparatus and method for determining new object location relative to an existing object |
US5943497A (en) * | 1997-04-30 | 1999-08-24 | International Business Machines Corporation | Object-oriented apparatus and method for controlling configuration of object creation |
US5951680A (en) * | 1997-06-24 | 1999-09-14 | International Business Machines Corporation | Configurator object |
US5920725A (en) * | 1997-07-02 | 1999-07-06 | Adaptivity Inc. | Run-time object-synthesis and transparent client/server updating of distributed objects using a meta server of all object descriptors |
US6418483B2 (en) * | 1997-08-14 | 2002-07-09 | International Business Machines Corporation | Method of locating software objects in different containers |
US7024450B1 (en) * | 1997-10-06 | 2006-04-04 | Mci, Inc. | Method and apparatus for deploying service modules among service nodes distributed in an intelligent network |
US6418461B1 (en) * | 1997-10-06 | 2002-07-09 | Mci Communications Corporation | Intelligent call switching node in an intelligent distributed network architecture |
US6363411B1 (en) | 1998-08-05 | 2002-03-26 | Mci Worldcom, Inc. | Intelligent network |
US6393481B1 (en) | 1997-10-06 | 2002-05-21 | Worldcom, Inc. | Method and apparatus for providing real-time call processing services in an intelligent network |
US6779030B1 (en) * | 1997-10-06 | 2004-08-17 | Worldcom, Inc. | Intelligent network |
US6804711B1 (en) | 1997-10-06 | 2004-10-12 | Mci, Inc. | Method and apparatus for managing call processing services in an intelligent telecommunication network |
US6594355B1 (en) * | 1997-10-06 | 2003-07-15 | Worldcom, Inc. | Method and apparatus for providing real time execution of specific communications services in an intelligent network |
US6425005B1 (en) * | 1997-10-06 | 2002-07-23 | Mci Worldcom, Inc. | Method and apparatus for managing local resources at service nodes in an intelligent network |
US6253256B1 (en) | 1997-10-15 | 2001-06-26 | Sun Microsystems, Inc. | Deferred reconstruction of objects and remote loading in a distributed system |
US6957427B1 (en) * | 1997-10-15 | 2005-10-18 | Sun Microsystems, Inc. | Remote object activation in a distributed system |
US6519652B1 (en) * | 1997-11-13 | 2003-02-11 | Electronic Data Systems Corporation | Method and system for activation and deactivation of distributed objects in a distributed objects system |
WO1999044133A2 (en) | 1998-02-26 | 1999-09-02 | Sun Microsystems, Inc. | Method and system for deterministic hashes to identify remote methods |
US6604127B2 (en) | 1998-03-20 | 2003-08-05 | Brian T. Murphy | Dynamic lookup service in distributed system |
US6173439B1 (en) * | 1998-03-11 | 2001-01-09 | International Business Machines Corporation | Interface mechanism and method for accessing non-object oriented data from within an object oriented framework |
US6332023B1 (en) | 1998-06-04 | 2001-12-18 | Mci Communications Corporation | Method of and system for providing services in a communications network |
US7103640B1 (en) * | 1999-09-14 | 2006-09-05 | Econnectix, Llc | Network distributed tracking wire transfer protocol |
US7233978B2 (en) * | 1998-07-08 | 2007-06-19 | Econnectix, Llc | Method and apparatus for managing location information in a network separate from the data to which the location information pertains |
US6289012B1 (en) | 1998-08-03 | 2001-09-11 | Instanton Corporation | High concurrency data download apparatus and method |
US6788649B1 (en) | 1998-08-03 | 2004-09-07 | Mci, Inc. | Method and apparatus for supporting ATM services in an intelligent network |
GB2341951A (en) * | 1998-09-22 | 2000-03-29 | Ibm | Thin-client remote object execution |
US6862733B1 (en) * | 1998-11-19 | 2005-03-01 | Unisys Corporation | Generic method for programmatically locating and executing any application |
US6477569B1 (en) | 1998-11-20 | 2002-11-05 | Eugene Sayan | Method and apparatus for computer network management |
US6330621B1 (en) | 1999-01-15 | 2001-12-11 | Storage Technology Corporation | Intelligent data storage manager |
US6901518B1 (en) | 1999-04-08 | 2005-05-31 | Sun Microsystems, Inc. | Method and system for establishing trust in downloaded proxy code |
US6438590B1 (en) | 1999-04-13 | 2002-08-20 | Hewlett-Packard Company | Computer system with preferential naming service |
US6877163B1 (en) | 1999-06-14 | 2005-04-05 | Sun Microsystems, Inc. | Method and system for dynamic proxy classes |
US6842841B1 (en) | 1999-09-21 | 2005-01-11 | Storage Technology Corporation | Method and system for dynamically selecting tape drives to connect with host computers |
US6609158B1 (en) * | 1999-10-26 | 2003-08-19 | Novell, Inc. | Component architecture in a computer system |
US20020052979A1 (en) * | 2000-03-31 | 2002-05-02 | Jochen Kappel | Object to object communication system and method |
US20020087341A1 (en) * | 2000-03-31 | 2002-07-04 | Jochen Kappel | Customer care and billing system |
US7577834B1 (en) | 2000-05-09 | 2009-08-18 | Sun Microsystems, Inc. | Message authentication using message gates in a distributed computing environment |
US7065574B1 (en) | 2000-05-09 | 2006-06-20 | Sun Microsystems, Inc. | Messaging system using pairs of message gates in a distributed computing environment |
US6970869B1 (en) | 2000-05-09 | 2005-11-29 | Sun Microsystems, Inc. | Method and apparatus to discover services and negotiate capabilities |
US7188251B1 (en) | 2000-05-09 | 2007-03-06 | Sun Microsystems, Inc. | System and method for secure message-based leasing of resources in a distributed computing environment |
US6862594B1 (en) | 2000-05-09 | 2005-03-01 | Sun Microsystems, Inc. | Method and apparatus to discover services using flexible search criteria |
US8082491B1 (en) | 2000-05-09 | 2011-12-20 | Oracle America, Inc. | Dynamic displays in a distributed computing environment |
US6898618B1 (en) | 2000-05-09 | 2005-05-24 | Sun Microsystems, Inc. | Client-specified display services in a distributed computing environment |
US6868447B1 (en) | 2000-05-09 | 2005-03-15 | Sun Microsystems, Inc. | Mechanism and apparatus for returning results of services in a distributed computing environment |
US7200848B1 (en) | 2000-05-09 | 2007-04-03 | Sun Microsystems, Inc. | Migrating processes using data representation language representations of the processes in a distributed computing environment |
US6850979B1 (en) | 2000-05-09 | 2005-02-01 | Sun Microsystems, Inc. | Message gates in a distributed computing environment |
US7016966B1 (en) | 2000-05-09 | 2006-03-21 | Sun Microsystems, Inc. | Generating results gates in a distributed computing environment |
US6973493B1 (en) | 2000-05-09 | 2005-12-06 | Sun Microsystems, Inc. | Mechanism and apparatus for security of newly spawned repository spaces in a distributed computing environment |
US6950875B1 (en) | 2000-05-09 | 2005-09-27 | Sun Microsystems, Inc. | Message conductors in a distributed computing environment |
US6643650B1 (en) | 2000-05-09 | 2003-11-04 | Sun Microsystems, Inc. | Mechanism and apparatus for using messages to look up documents stored in spaces in a distributed computing environment |
US7370091B1 (en) | 2000-05-09 | 2008-05-06 | Sun Microsystems, Inc. | Method and apparatus for obtaining space advertisements |
US7243356B1 (en) | 2000-05-09 | 2007-07-10 | Sun Microsystems, Inc. | Remote method invocation with secure messaging in a distributed computing environment |
US8001232B1 (en) | 2000-05-09 | 2011-08-16 | Oracle America, Inc. | Event message endpoints in a distributed computing environment |
US6789077B1 (en) | 2000-05-09 | 2004-09-07 | Sun Microsystems, Inc. | Mechanism and apparatus for web-based searching of URI-addressable repositories in a distributed computing environment |
US7080078B1 (en) | 2000-05-09 | 2006-07-18 | Sun Microsystems, Inc. | Mechanism and apparatus for URI-addressable repositories of service advertisements and other content in a distributed computing environment |
US7716492B1 (en) | 2000-05-09 | 2010-05-11 | Oracle America, Inc. | Method and apparatus to obtain service capability credentials |
US6918084B1 (en) | 2000-05-09 | 2005-07-12 | Sun Microsystems, Inc. | Spawning new repository spaces using information provided in advertisement schema messages |
US6789126B1 (en) | 2000-05-09 | 2004-09-07 | Sun Microsystems, Inc. | Addressing message gates in a distributed computing environment |
US7072967B1 (en) | 2000-05-09 | 2006-07-04 | Sun Microsystems, Inc. | Efficient construction of message endpoints |
US6917976B1 (en) | 2000-05-09 | 2005-07-12 | Sun Microsystems, Inc. | Message-based leasing of resources in a distributed computing environment |
US7010573B1 (en) | 2000-05-09 | 2006-03-07 | Sun Microsystems, Inc. | Message gates using a shared transport in a distributed computing environment |
US8135796B1 (en) | 2000-05-09 | 2012-03-13 | Oracle America, Inc. | Mechanism and apparatus for accessing and addressing services in a distributed computing environment |
US7260543B1 (en) | 2000-05-09 | 2007-08-21 | Sun Microsystems, Inc. | Automatic lease renewal with message gates in a distributed computing environment |
US6792466B1 (en) | 2000-05-09 | 2004-09-14 | Sun Microsystems, Inc. | Trusted construction of message endpoints in a distributed computing environment |
US7395333B1 (en) | 2000-05-09 | 2008-07-01 | Sun Microsystems, Inc. | Method and apparatus to obtain negotiated service advertisement |
US6854115B1 (en) | 2000-06-02 | 2005-02-08 | Sun Microsystems, Inc. | Process persistence in a virtual machine |
US6865657B1 (en) | 2000-06-02 | 2005-03-08 | Sun Microsystems, Inc. | Garbage collector for a virtual heap |
US6763440B1 (en) | 2000-06-02 | 2004-07-13 | Sun Microsystems, Inc. | Garbage collection using nursery regions for new objects in a virtual heap |
US6941410B1 (en) | 2000-06-02 | 2005-09-06 | Sun Microsystems, Inc. | Virtual heap for a virtual machine |
US6957237B1 (en) | 2000-06-02 | 2005-10-18 | Sun Microsystems, Inc. | Database store for a virtual heap |
US6760815B1 (en) | 2000-06-02 | 2004-07-06 | Sun Microsystems, Inc. | Caching mechanism for a virtual heap |
US7606898B1 (en) * | 2000-10-24 | 2009-10-20 | Microsoft Corporation | System and method for distributed management of shared computers |
US7093288B1 (en) | 2000-10-24 | 2006-08-15 | Microsoft Corporation | Using packet filters and network virtualization to restrict network communications |
US6915338B1 (en) * | 2000-10-24 | 2005-07-05 | Microsoft Corporation | System and method providing automatic policy enforcement in a multi-computer service application |
US7113900B1 (en) | 2000-10-24 | 2006-09-26 | Microsoft Corporation | System and method for logical modeling of distributed computer systems |
US6907395B1 (en) | 2000-10-24 | 2005-06-14 | Microsoft Corporation | System and method for designing a logical model of a distributed computer system and deploying physical resources according to the logical model |
US6886038B1 (en) * | 2000-10-24 | 2005-04-26 | Microsoft Corporation | System and method for restricting data transfers and managing software components of distributed computers |
US7296275B2 (en) | 2001-01-04 | 2007-11-13 | Sun Microsystems, Inc. | Method and system for passing objects in a distributed system using serialization contexts |
US7178143B2 (en) | 2001-03-09 | 2007-02-13 | Bea Systems, Inc. | Multi-version hosting of application services |
US7140012B2 (en) * | 2001-03-09 | 2006-11-21 | Bea Systems, Inc. | Method and apparatus for multi-version updates of application services |
US8019807B2 (en) * | 2001-05-23 | 2011-09-13 | Wireless Enterprise Solutions Technology Limited | Method and system for communication between computer systems |
US20040107360A1 (en) * | 2002-12-02 | 2004-06-03 | Zone Labs, Inc. | System and Methodology for Policy Enforcement |
US8200818B2 (en) * | 2001-07-06 | 2012-06-12 | Check Point Software Technologies, Inc. | System providing internet access management with router-based policy enforcement |
US7546629B2 (en) * | 2002-03-06 | 2009-06-09 | Check Point Software Technologies, Inc. | System and methodology for security policy arbitration |
US7590684B2 (en) * | 2001-07-06 | 2009-09-15 | Check Point Software Technologies, Inc. | System providing methodology for access control with cooperative enforcement |
US20030066081A1 (en) * | 2001-07-27 | 2003-04-03 | Barone Samuel T. | Command protocol for interactive TV production tools |
US7222359B2 (en) * | 2001-07-27 | 2007-05-22 | Check Point Software Technologies, Inc. | System methodology for automatic local network discovery and firewall reconfiguration for mobile computing devices |
US7089559B2 (en) * | 2001-07-31 | 2006-08-08 | International Business Machines Corporation | Method, apparatus, and program for chaining server applications |
US7243374B2 (en) * | 2001-08-08 | 2007-07-10 | Microsoft Corporation | Rapid application security threat analysis |
US20030115358A1 (en) * | 2001-09-04 | 2003-06-19 | Yeong-Hyun Yun | Unified interprocess communication |
US7660887B2 (en) | 2001-09-07 | 2010-02-09 | Sun Microsystems, Inc. | Systems and methods for providing dynamic quality of service for a distributed system |
US7756969B1 (en) | 2001-09-07 | 2010-07-13 | Oracle America, Inc. | Dynamic provisioning of identification services in a distributed system |
EP1298525A1 (de) * | 2001-09-26 | 2003-04-02 | Sap Ag | Interaktion zwischen Computern mit unterschiedlichen Objekt-orientierten Laufzeitumgebungen |
US20030120697A1 (en) * | 2001-12-21 | 2003-06-26 | Lockheed Martin Corporation | System and method for adapting a software control in an operating environment |
US7334215B2 (en) * | 2001-12-21 | 2008-02-19 | Lockheed Martin Corporation | Manager for software controls in an operating environment |
US6931409B2 (en) * | 2002-01-08 | 2005-08-16 | International Business Machines Corporation | Method, apparatus, and program to efficiently serialize objects |
WO2003073266A1 (en) * | 2002-02-21 | 2003-09-04 | Bea Systems, Inc. | System and method for object activation |
US20030182550A1 (en) * | 2002-02-21 | 2003-09-25 | Michael Chen | System and method for dynamic activation of enterprise Java beans |
US7516447B2 (en) | 2002-02-22 | 2009-04-07 | Bea Systems, Inc. | Methods and apparatus for building, customizing and using software abstractions of external entities |
US7343596B1 (en) * | 2002-03-19 | 2008-03-11 | Dloo, Incorporated | Method and system for creating self-assembling components |
AU2003250665A1 (en) * | 2002-07-19 | 2004-02-09 | Mediatrix Telecom Inc. | Distributed object-oriented messaging method and system |
US6850943B2 (en) * | 2002-10-18 | 2005-02-01 | Check Point Software Technologies, Inc. | Security system and methodology for providing indirect access control |
US7165076B2 (en) * | 2002-11-15 | 2007-01-16 | Check Point Software Technologies, Inc. | Security system with methodology for computing unique security signature for executable file employed across different machines |
US7346890B1 (en) | 2003-03-17 | 2008-03-18 | Dloo, Incorporated | Method and system for creating linkable programming languages |
US8136155B2 (en) * | 2003-04-01 | 2012-03-13 | Check Point Software Technologies, Inc. | Security system with methodology for interprocess communication control |
US20050028151A1 (en) * | 2003-05-19 | 2005-02-03 | Roth Steven T. | Module symbol export |
CA2526154C (en) * | 2003-05-23 | 2008-07-22 | Mattel, Inc. | Toy vehicle |
US7788726B2 (en) * | 2003-07-02 | 2010-08-31 | Check Point Software Technologies, Inc. | System and methodology providing information lockbox |
FI115930B (fi) * | 2003-07-28 | 2005-08-15 | Nolics Oy | Olioiden ryhmitteleminen oliopohjaisessa järjestelmässä |
JP2005182419A (ja) * | 2003-12-18 | 2005-07-07 | Toshiba Solutions Corp | コンポーネント処理システム及びコンポーネント処理方法 |
US8281114B2 (en) * | 2003-12-23 | 2012-10-02 | Check Point Software Technologies, Inc. | Security system with methodology for defending against security breaches of peripheral devices |
US7792874B1 (en) | 2004-01-30 | 2010-09-07 | Oracle America, Inc. | Dynamic provisioning for filtering and consolidating events |
US8136149B2 (en) * | 2004-06-07 | 2012-03-13 | Check Point Software Technologies, Inc. | Security system with methodology providing verified secured individual end points |
US7925727B2 (en) * | 2004-07-29 | 2011-04-12 | Nortel Networks Limited | Method and apparatus for efficient communication of management data in a telecommunications network |
US7627896B2 (en) * | 2004-12-24 | 2009-12-01 | Check Point Software Technologies, Inc. | Security system providing methodology for cooperative enforcement of security policies during SSL sessions |
US7207112B2 (en) * | 2005-01-12 | 2007-04-24 | Wen-Ya Yeh | Combination hairdressing scissor assembly |
DE102005021749A1 (de) * | 2005-05-11 | 2006-11-16 | Fachhochschule Dortmund | Verfahren und Vorrichtung zur programmgesteuerten Informationsverarbeitung |
TWI272800B (en) * | 2005-06-22 | 2007-02-01 | Inventec Multimedia & Telecom | Network phone apparatus |
US7660789B2 (en) * | 2005-07-01 | 2010-02-09 | Microsoft Corporation | Entity agent |
US7941309B2 (en) | 2005-11-02 | 2011-05-10 | Microsoft Corporation | Modeling IT operations/policies |
US20090106781A1 (en) * | 2007-10-23 | 2009-04-23 | Reed Benjamin C | Remote call handling methods and systems |
US8238538B2 (en) | 2009-05-28 | 2012-08-07 | Comcast Cable Communications, Llc | Stateful home phone service |
US9578030B2 (en) | 2011-02-07 | 2017-02-21 | Tufin Software Technologies Ltd. | Method and system for analyzing security ruleset by generating a logically equivalent security rule-set |
US8806569B2 (en) * | 2011-02-07 | 2014-08-12 | Tufin Software Technologies Ltd. | Method and system for analyzing security ruleset by generating a logically equivalent security rule-set |
US9604139B2 (en) | 2013-11-11 | 2017-03-28 | Amazon Technologies, Inc. | Service for generating graphics object data |
US9641592B2 (en) | 2013-11-11 | 2017-05-02 | Amazon Technologies, Inc. | Location of actor resources |
US9634942B2 (en) | 2013-11-11 | 2017-04-25 | Amazon Technologies, Inc. | Adaptive scene complexity based on service quality |
US9582904B2 (en) | 2013-11-11 | 2017-02-28 | Amazon Technologies, Inc. | Image composition based on remote object data |
US9805479B2 (en) | 2013-11-11 | 2017-10-31 | Amazon Technologies, Inc. | Session idle optimization for streaming server |
US9348672B1 (en) * | 2015-12-07 | 2016-05-24 | Amazon Technologies, Inc. | Singleton coordination in an actor-based system |
US9921878B1 (en) | 2015-12-07 | 2018-03-20 | Amazon Technologies, Inc. | Singleton coordination in an actor-based system |
US11175802B2 (en) * | 2018-09-21 | 2021-11-16 | Sap Se | Configuration object deletion manager |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62126457A (ja) * | 1985-11-27 | 1987-06-08 | Fujitsu Ltd | 分散デ−タ処理方式 |
IT1184015B (it) * | 1985-12-13 | 1987-10-22 | Elsag | Sistema multiprocessore a piu livelli gerarchici |
US5146559A (en) * | 1986-09-29 | 1992-09-08 | Hitachi, Ltd. | System for recognizing program constitution within a distributed processing system by collecting constitution messages generated by different processors |
US5179715A (en) * | 1987-03-11 | 1993-01-12 | Toyo Communication Co., Ltd. | Multiprocessor computer system with process execution allocated by process managers in a ring configuration |
JPS647231A (en) * | 1987-06-30 | 1989-01-11 | Toshiba Corp | Parallel processing device for object directional system |
US5261080A (en) * | 1987-08-21 | 1993-11-09 | Wang Laboratories, Inc. | Matchmaker for assisting and executing the providing and conversion of data between objects in a data processing system storing data in typed objects having different data formats |
AU607795B2 (en) * | 1987-08-21 | 1991-03-14 | Eastman Kodak Company | Data integration by object management |
US5008853A (en) * | 1987-12-02 | 1991-04-16 | Xerox Corporation | Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment |
JPH0656581B2 (ja) * | 1987-12-24 | 1994-07-27 | 富士通株式会社 | オブジェクト指向プログラミング方式 |
US5088032A (en) * | 1988-01-29 | 1992-02-11 | Cisco Systems, Inc. | Method and apparatus for routing communications among computer networks |
US5079695A (en) * | 1988-04-25 | 1992-01-07 | Hewlett-Packard Company | Object management facility which includes a snapshot facility for providing data transfer between two objects |
EP0346801B1 (de) * | 1988-06-17 | 1996-12-27 | Siemens Aktiengesellschaft | Verfahren und Anordnung zur Ausführung eines Programms in einem heterogenen Mehrrechnersystem |
US5325517A (en) * | 1989-05-17 | 1994-06-28 | International Business Machines Corporation | Fault tolerant data processing system |
US5136712A (en) * | 1989-06-29 | 1992-08-04 | Digital Equipment Corporation | Temporary object handling system and method in an object based computer operating system |
-
1992
- 1992-01-28 EP EP92300711A patent/EP0501610B1/de not_active Expired - Lifetime
- 1992-01-28 DE DE69228621T patent/DE69228621T2/de not_active Expired - Fee Related
- 1992-02-25 JP JP07359392A patent/JP3573762B2/ja not_active Expired - Fee Related
-
1993
- 1993-11-30 US US08/159,764 patent/US5475817A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0501610A3 (en) | 1993-06-09 |
JP3573762B2 (ja) | 2004-10-06 |
EP0501610A2 (de) | 1992-09-02 |
EP0501610B1 (de) | 1999-03-17 |
DE69228621D1 (de) | 1999-04-22 |
US5475817A (en) | 1995-12-12 |
JPH05181814A (ja) | 1993-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69228621T2 (de) | Objektorientiertes verteiltes Rechnersystem | |
DE69719620T2 (de) | Vorrichtung und Verfahren zur Bestimmung von Server-Cluster-Topologien | |
DE69617509T2 (de) | Vorrichtung und Verfahren zur Feststellung von Objekttypen in einem verteilten Objektsystem | |
DE69112156T2 (de) | Gerät zur Realisierung von Datenbanken zum Verschaffen von objektorientiertem Aufrufen von Anwendungsprogrammen. | |
DE69131745T2 (de) | Verfahren und Gerät zum Verschaffen einer Kundenschnittstelle zu einem objektorientierten Aufruf eines Anwendungsprogramms | |
DE68919631T2 (de) | Verfahren zur Verarbeitung von Programmteilen eines verteilten Anwendungsprogramms durch einen Hauptrechner und einen intelligenten Arbeitsplatz in einer SNA LU 6.2-Netzwerkumgebung. | |
DE69630480T2 (de) | Verfahren, Vorrichtung und Datenstrukturen zur Objektverwaltung | |
DE69131245T2 (de) | Verfahren und Gerät zum Verschaffen von dynamischen Aufrufen von Anwendungsprogrammen in einer verteilten heterogenen Umgebung | |
DE69122830T2 (de) | Verteiltes Konfigurationsprofil für ein Rechnersystem | |
DE69724877T2 (de) | Verfahren und Vorrichtung zum Betrieb einer Aggregation von Serverrechnern mittels eines Doppelzweck-Proxy-Servers | |
DE69428262T2 (de) | Vereinigung von Dateiverzeichnisdienst mit Dateisystemdiensten | |
DE69429686T2 (de) | Transaktionsverwaltung in objektorientiertem System | |
DE69131742T2 (de) | Verfahren zur Realisierung von Anbieterfunktionen in einer verteilten heterogenen Umgebung | |
DE3852324T2 (de) | Verfahren und System zur Netzwerkverwaltung. | |
DE69625633T2 (de) | System und Verfahren zur Bestimmung und Behandlung von Server-Konfigurationsinformation in einer Umgebung mit verteilten Objekten | |
DE60133648T2 (de) | System und verfahren zum führen von laufzeitdaten in einem server-netzwerk | |
DE68919976T2 (de) | Verfahren zur Herstellung von aktuellen Terminaladressen für Systemanwender die verteilte Anwendungsprogramme in einer SNA LU 6.2-Netzwerkumbegung verarbeiten. | |
DE69220093T2 (de) | Verarbeitungsnetzwerk für verteilte anwendungsprogramme. | |
DE69510226T2 (de) | Verfahren und vorrichtung zur aktualisierung oder änderung eines netzwerkverzeichnisses | |
DE3855166T2 (de) | Selbstkonfiguration von Knotenpunkten in einem verteilten, auf Nachrichten gegründeten Betriebssystem | |
DE69425318T2 (de) | Verfahren und System für Fernausführung von Codes | |
DE69424597T2 (de) | Erweiterbares Dateiensystem | |
DE69129479T2 (de) | Verteiltes Rechnersystem | |
DE69425699T2 (de) | Integrierung von Systemverwaltungsdiensten mit einem unterliegenden Systemobjektmodell | |
DE68919975T2 (de) | Verfahren für die simultane Ablaufverwaltung eines verteilten Anwenderprogramms in einem Hostrechner und in einer grossen Anzahl von intelligenten Benutzerstationen in einem SNA-Netzwerk. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8327 | Change in the person/name/address of the patent owner |
Owner name: HEWLETT-PACKARD CO. (N.D.GES.D.STAATES DELAWARE), |
|
8327 | Change in the person/name/address of the patent owner |
Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE |
|
8339 | Ceased/non-payment of the annual fee |