DE60209909T2 - Verfahren und system zum übergeben von objekten in einem verteilten system unter verwendung von serialisierungskontexten - Google Patents

Verfahren und system zum übergeben von objekten in einem verteilten system unter verwendung von serialisierungskontexten Download PDF

Info

Publication number
DE60209909T2
DE60209909T2 DE60209909T DE60209909T DE60209909T2 DE 60209909 T2 DE60209909 T2 DE 60209909T2 DE 60209909 T DE60209909 T DE 60209909T DE 60209909 T DE60209909 T DE 60209909T DE 60209909 T2 DE60209909 T2 DE 60209909T2
Authority
DE
Germany
Prior art keywords
receiver
serialization
sender
context
class
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
Application number
DE60209909T
Other languages
English (en)
Other versions
DE60209909D1 (de
Inventor
E. Adrian Arlington COLLEY
C. Peter Winchester JONES
W. Robert Somerville SCHIEFLER
P. Michael Cambridge WARRES
M. Ann Groton WOLLRATH
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of DE60209909D1 publication Critical patent/DE60209909D1/de
Application granted granted Critical
Publication of DE60209909T2 publication Critical patent/DE60209909T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft allgemein Datenverarbeitungssysteme und insbesondere das Übergeben serialisierter Versionen von Objekten in einem verteilten System.
  • Hintergrund der Erfindung
  • Verteilte Systeme können aus verschiedenen Bestandteilen bestehen, welche Hardware und Software einschließen. Ein verteiltes System (1) ermöglicht es seinen Benutzern, Dienste und Ressourcen über ein Netz vieler Vorrichtungen gemeinsam zu verwenden, (2) bietet Programmierern Werkzeuge und Programmierungsmuster, welche die Entwicklung robuster, gesicherter verteilter Systeme ermöglichen, und (3) vereinfacht die Aufgabe des Verwaltens des verteilten Systems.
  • Ein verteiltes System kann unter Verwendung einer objektorientierten Programmiersprache, wie JavaTM, implementiert werden. Die JavaTM-Programmiersprache wird typischerweise unter Verwendung eines Bytecode-Befehlssatzes zu einem plattformunabhängigen Format kompiliert, das auf jeder beliebigen Plattform ausgeführt werden kann, die die virtuelle JavaTM-Maschine unterstützt. Die JavaTM-Programmiersprache ist in weiteren Einzelheiten in The JavaTM Language Specification von James Gosling, Bill Joy und Guy Steele, Addison-Wesley, 1996, beschrieben.
  • JavaTM und Java-basierte Warenzeichen sind Warenzeichen oder eingetragene Warenzeichen von Sun Microsystems, Inc. in den USA und anderen Ländern.
  • Verteilte Systeme erfordern, dass in verschiedenen Adressräumen ausgeführte Programme miteinander kommunizieren können. In einem System, bei dem eine objektorientierte Programmiersprache, wie die Programmiersprache Java, verwendet wird, kann diese Kommunikation erreicht werden, indem ein "Objekt", das ein Element oder eine Instanz, das oder die vom System manipuliert wird, darstellt, von einem Programm an ein anderes übergibt. In einem solchen System stellt eine "Klasse" eine Schablone für die Erzeugung von Objekten mit Eigenschaften dieser Klasse bereit. Die Objekte in jeder Klasse weisen bestimmte gemeinsame Merkmale oder Attribute auf, die durch die Klasse festgelegt sind. Eine Klasse definiert demgemäß den Typ eines Objekts. Objekte werden typischerweise dynamisch während des Systembetriebs erzeugt. Methoden, die einer Klasse zugeordnet sind, werden im Allgemeinen an den Objekten derselben Klasse oder Unterklasse aufgerufen.
  • In einem verteilten Java-System wird ein Objekt als fern bezeichnet, wenn seine Methoden von einem anderen Adressraum, typischerweise einer virtuellen JavaTM-Maschine auf einem anderen Computer, aufgerufen werden können. Ein fernes Objekt wird durch eine oder mehrere ferne Schnittstellen beschrieben, welche JavaTM-Schnittstellen sind, welche die Methoden des fernen Objekts deklarieren. Der ferne Methodenaufruf (Remote Method Invocation – RMI) wird verwendet, um eine Methode einer fernen Schnittstelle an einem fernen Objekt aufzurufen. RMI ist beispielsweise in Remote Method Invocation Specification, Sun Microsystems, Inc. (1997), erhältlich bei http://www.java.sun.com/products/jdk/1.2/docs/guide/rmi/spec/ rmiTOC.doc.html erklärt.
  • Als Teil des RMIs werden JavaTM-Objekte zwischen einem Client und einem Server ausgetauscht. Vor dem Austausch wird ein JavaTM-Objekt in eine serialisierte Darstellung von sich selbst konvertiert. Die serialisierte Darstellung des Objekts enthält ausreichend Informationen, um es dem Empfänger zu ermöglichen, die JavaTM-Klasse, aus der die Inhalte des Objekts gespeichert wurden, zu identifizieren und zu verifizieren, und den Inhalt zu einer neuen Instanz wiederherzustellen. Ein serialisiertes Objekt enthält zwei Hauptteile, nämlich die Objektdaten und einen Klassendeskriptor. Der Klassendeskriptor beschreibt den Inhalt und das Format der Objektdaten.
  • Wenn ein serialisiertes Objekt ausgetauscht wird, werden die Objektdaten und der Klassendeskriptor über das Netz gesendet. Wenngleich sich die Objektdaten im Laufe der Zeit ändern können, bleibt der Klassendeskriptor gleich. Daher können mehrere ferne Methodenaufrufe dazu führen, dass derselbe Klassendeskriptor mehrere Male an einen Empfänger übergeben wird, der bereits eine Kopie des Klassendeskriptors aufweist. Dies ist in Bezug auf die Verarbeitungszeit kostspielig und auch verschwendete Netzbandbreite. Es ist daher wünschenswert, die Häufigkeit zu verringern, mit der ein Klassendeskriptor zu einem Empfänger gesendet wird.
  • Das Handbuch "The Java Class Libraries" von P. Chan u.a., 2. Ausgabe, 1998, Seiten 1230 bis 1232 und 1262 bis 1264, beschreibt die Objektserialisierung in Bezug auf die Klassen java.io.ObjectInputStream bzw. java.io.ObjectOutputStream. Wenn die erste Instanz eines Objekts in einen Stream geschrieben wird, wird ein Handle für das Objekt erzeugt, und das Objekt/Handle-Paar wird in einem Objekt/Handle-Cache gespeichert. Wenn das zweite Objekt in den Stream zu schreiben ist, wird das aus dem Objekt/Handle-Cache ausgelesene Handle allein tatsächlich geschrieben. Die Maschine, die Daten auf dem Stream empfängt, unterhält einen Objekt/Handle-Cache, der mit dem Cache an der sendenden Maschine konsistent ist. Wenn der Stream geschlossen wird, werden die Caches sowohl an der sendenden als auch an der empfangenden Maschine zerstört.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Systeme und Verfahren, die mit der vorliegenden Erfindung vereinbar sind, reduzieren die Anzahl der redundanten Klassendeskriptoren, die während ferner Methodenaufrufe gesendet werden, unter Verwendung von Serialisierungskontexten. "Serialisierungskontexte" sind Wörterbuchobjekte, die einen Klassendeskriptor auf ein entsprechendes Integer-Handle abbilden und auf der Empfangsseite das Integer-Handle wieder auf den Klassendeskriptor abbilden. Wenn möglich, wird das Integer-Handle an Stelle des vollständigen Klassendeskriptors übergeben, wodurch Verarbeitungszeit in RMI-Aufrufen gespart wird.
  • Ein Verfahren, das mit der vorliegenden Erfindung vereinbar ist, übergibt ein erstes Objekt und ein zweites Objekt, die beide Instanzen einer Klasse sind, in getrennten fernen Methodenaufrufen in einem verteilten System. Das erste Objekt wird mit einem Deskriptor der Klasse und einem dem Deskriptor entsprechenden Handle von einem Absender an einen Empfänger übergeben. Das Handle und der Deskriptor werden vom Empfänger gespeichert. Das zweite Objekt wird dann vom Absender an den Empfänger mit dem Handle übergeben, und der Empfänger verwendet das Handle zum Bestimmen des Deskriptors.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • Diese Erfindung wird in den anliegenden Ansprüchen eingehend dargelegt. Die vorstehenden und weitere Vorteile dieser Erfindung können anhand der folgenden Beschreibung in Zusammenhang mit der anliegenden Zeichnung besser verstanden werden. Es zeigen:
  • 1 ein verteiltes System 100, das zum Verwirklichen von mit der vorliegenden Erfindung zu vereinbarenden Verfahren und Systemen geeignet ist,
  • 2 ein Blockdiagramm von zwei Serialisierungskontexten, die mit der vorliegenden Erfindung zu vereinbaren sind,
  • 3 ein Flussdiagramm eines mit der vorliegenden Erfindung zu vereinbarenden Verfahrens zum Übergeben von Objekten unter Verwendung von Serialisierungskontexten,
  • 4 ein Flussdiagramm des "Handshakes" zwischen einem Absender und einem Empfänger zum Vereinbaren eines zu verwendenden Serialisierungskontextpaars und
  • 5 ein Flussdiagramm, in dem dargestellt ist, wie das zugewiesene Hinweiszeichen zum Bereitstellen einer Zweiwegekommunikation verwendet werden kann.
  • DETAILLIERTE BESCHREIBUNG
  • Ein mit der vorliegenden Erfindung konsistentes System reduziert die Anzahl der redundanten Klassendeskriptoren, die während ferner Methodenaufrufe gesendet werden, unter Verwendung von Serialisierungskontexten. "Serialisierungskontexte" sind Wörterbuchobjekte, die einen Klassendeskriptor auf ein entsprechendes Integer-Handle abbilden. Wenn möglich, wird das Integer-Handle, an Stelle des vollständigen Klassendeskriptors, weitergegeben, wodurch Verarbeitungszeit in RMI-Aufrufen gespart wird.
  • 1 zeigt ein verteiltes System 100, das zum Verwirklichen von Methoden und Systemen geeignet ist, die mit der vorliegenden Erfindung vereinbar sind. Das verteilte System 100 beinhaltet einen Client-Computer 102 und einen Server-Ccmputer 104, die über ein Netz 106 kommunizieren. Das Netz 106 kann beispielsweise ein Lokalbereichsnetz, ein Weitbereichsnetz oder das Internet sein.
  • Der Client-Computer 102 beinhaltet einen Speicher 108, eine Sekundärspeichervorrichtung 110, eine Zentralverarbeitungseinheit (CPU) 112, eine Eingabevorrichtung 114 und eine Videoanzeige 116. Der Speicher 108 beinhaltet ein JavaTM-Laufzeitsystem 118. Das JavaTM-Laufzeitsystem 118 beinhaltet eine virtuelle JavaTM-Maschine 120 und ein fernes JavaTM-Methodenaufrufsystem (RMI-System) 122. Das RMI-System 122 beinhaltet einen oder mehrere Serialisierungskontexte 124. Der Speicher 108 beinhaltet auch ein auf dem Client-Computer 102 ausgeführtes Programm 126.
  • Der Server-Computer 104 beinhaltet einen Speicher 128, eine Sekundärspeichervorrichtung 130, eine Zentral verarbeitungseinheit (CPU) 132, eine Eingabevorrichtung 134 und eine Videoanzeige 136. Der Speicher 128 beinhaltet ein JavaTM-Laufzeitsystem 138. Das JavaTM-Laufzeitsystem 138 beinhaltet eine virtuelle JavaTM-Maschine 140 und das ferne JavaTM-Methodenaufrufsystem (RMI-System) 142. Das RMI-System 142 enthält einen oder mehrere Serialisierungskontexte 144. Der Speicher 128 beinhaltet auch ein Programm 146, das auf dem Server-Computer 104 ausgeführt wird, und eines oder mehrere Objekte 148.
  • Unter Verwendung des RMIs können Objekte zwischen dem Client-Computer 102 und dem Server-Computer 104 übergeben werden. Beispielsweise kann ein auf dem Client-Computer 102 ausgeführtes Programm 146 eine Methode zu einem Objekt 148 aufrufen, das im Speicher 130 des Server-Computers 104 gespeichert ist. Der Client-Computer 102 würde das RMI-System 122 verwenden, um den Methodenaufruf, einschließlich einer Identifikation der fernen Methode und jeglicher Parameter, in einen Bytestrom zu konvertieren, der über das Netz 106 zum Server-Computer 104 gesendet wird. Der Server-Computer 104 verwendet nach dem Empfang des Bytestroms sein RMI-System zum Konvertieren des Bytestroms in ausführbaren Bytecode und zum Einleiten des Aufrufens der Methode auf dem fernen Objekt. Falls die Methode zu einem Rückgabewert führt, konvertiert der Server-Computer 104 den Rückgabewert unter Verwendung seines RMI-Systems in einen Bytestrom und überträgt den Bytestrom zum Client-Computer 102.
  • Der Bytestrom enthält serialisierte Versionen von JavaTM-Objekten, beispielsweise Parameter oder Rückgabewerte. Ein serialisiertes Objekt enthält zwei Hauptteile, nämlich die Objektdaten und einen Klassendeskriptor. Der Klassendeskriptor beschreibt den Inhalt und das Format der Objektdaten. Die Objektserialisierung ist beispielsweise in JavaTM Object Serialization Specification, erhältlich bei http://java.sun.com/products/jdk/1.3/docs/guide/serialization/spec/serialTOC.doc.html, erklärt.
  • Innerhalb eines einzigen fernen Methodenaufrufs wird ein Klassendeskriptor mit dem ersten Objekt dieses serialisierten Typs gesendet, und folgende Objekte dieses Typs im selben fernen Methodenaufruf beziehen sich auf den Klassendeskriptor mit einem "Rückverweis" (d.h. einem Integer-Handle).
  • Serialisierungskontexte
  • In einem serialisierten Objekt stellt der Klassendeskriptor den vollständigen Namen der Klasse und ihre Serialisierungskennung, die die Klasse eindeutig identifiziert, bereit. Die Serialisierungskennung ist ein 64-Bit-Hash-Code des Klassennamens, von Schnittstellenklassennamen, von Methoden und von Feldern. Jeder Klassendeskriptor ist eine Instanz der JavaTM-Klasse ObjectStreamClass, die folgendermaßen definiert ist:
  • Figure 00070001
  • Serialisierungskontexte können verwendet werden, um die Klassendeskriptoren serialisierter Objekte zu übergeben. Wie vorstehend erklärt wurde, sind Serialisierungskontexte Wörterbuchobjekte, die einen Klassendeskriptor auf ein entsprechendes Integer-Handle abbilden. Wenn möglich, wird das Integer-Handle an Stelle des vollständigen Klassendeskriptors übergeben, wodurch Verarbeitungszeit in RMI-Aufrufen gespart wird.
  • 2 ist ein Blockdiagramm, in dem Serialisierungskontexte 124 und 144 in weiteren Einzelheiten dargestellt sind, die mit der vorliegenden Erfindung vereinbar sind. Jeder Serialisierungskontext wird als ein Tabellenpaar unterhalten, wobei eine Tabelle für abgehende Handles, beispielsweise 202 oder 206, vorgesehen ist, und eine für eingehende Handles, beispielsweise 204 oder 208, vorgesehen ist. Abgehende Handles werden verwendet, wenn ein auf dem Computer ausgeführtes Programm als ein Absender wirkt (beispielsweise einen Fernruf vornimmt oder Rückgabewerte sendet). Eingehende Handles werden verwendet, wenn ein auf dem Computer ausgeführtes Programm als ein Empfänger wirkt (beispielsweise einen Fernruf empfängt oder Rückgabewerte empfängt). Auf diese Weise können ein auf dem Client-Computer ausgeführtes Programm 126 und ein auf dem Server-Computer ausgeführtes Programm 146 jeweils als ein Sender oder als ein Empfänger wirken. Sowohl das RMI-System des Client-Computers als auch das RMI-System des Server-Computers unterhalten eine Tabelle abgehender Handles und eine Tabelle eingehender Handles.
  • Das RMI-System 122 des Client-Computers 102 enthält den Serialisierungskontext 124, der aus der Tabelle 202 abgehender Handles und der Tabelle 204 eingehender Handles besteht, und das RMI-System 142 des Server-Computers 104 enthält den Serialisierungskontext 144, der aus der Tabelle 206 abgehender Handles und der Tabelle 208 eingehender Handles besteht. Jede Tabelle eingehender Handles weist einen oder mehrere Einträge unter Einschluss eines Handles und eines Klassendeskriptors auf. Jede Tabelle abgehender Handles weist einen oder mehrere Einträge auf, welche ein Hinweiszeichen, ein Handle und einen Klassendeskriptor einschließen. Das Hinweiszeichen in jedem Eintrag der Tabelle abgehender Handles ist ein Boolescher Wert, der angibt, ob das entsprechende Handle/Klassendeskriptor-Paar "zugewiesen" ist. Falls ein Handle/Klassendeskriptor-Paar in einer Tabelle abgehender Handles zugewiesen ist, ist bekannt, dass es in der entsprechenden Tabelle eingehender Handles des Serialisierungskontextpaars gespeichert ist. Falls das zugewiesene Hinweiszeichen in einem Eintrag in der Tabelle 202 abgehender Handles beispielsweise wahr ist, wurde das entsprechende Klassendeskriptor/Handle-Paar in der Tabelle 208 eingehender Handles gespeichert. Falls das zugewiesene Hinweiszeichen falsch ist, kann die Tabelle 208 eingehender Handles das entsprechende Klassendeskriptor/Handle-Paar enthalten, oder dies kann nicht der Fall sein. Die Verwendung des zugewiesenen Hinweiszeichens wird in weiteren Einzelheiten nachstehend mit Bezug auf 5 beschrieben.
  • 3 zeigt ein Flussdiagramm eines mit der vorliegenden Erfindung übereinstimmenden Verfahrens zum Übergeben von Objekten unter Verwendung von Serialisierungskontexten. Zuerst vereinbaren der Absender (beispielsweise das auf dem Client-Computer 102 ausgeführte Programm 126) und der Empfänger (beispielsweise das auf dem Server-Computer 104 ausgeführte Programm 146) einen Serialisierungskontext zur Verwendung während des Methodenaufrufs (Schritt 302). Als Ergebnis dieser Vereinbarung oder dieses "Handshakes" verwendet der Absender den Serialisierungskontext 124 und der Empfänger den Serialisierungskontext 144, wie in 2 dargestellt ist. Der "Handshake-Prozess" wird nachstehend mit Bezug auf 4 erklärt.
  • Wenn der Absender einen Klassendeskriptor zum Empfänger senden möchte, prüft der Absender, ob der Deskriptor bereits in der Tabelle 202 abgehender Handles des Serialisierungskontexts 124 definiert ist (Schritt 304). Falls dies der Fall ist und falls das zugewiesene Hinweiszeichen wahr ist, ruft der Absender, wie mit Bezug auf eine Ausführungsform in 5 nachstehend detailliert angegeben ist, das dem Klassendeskriptor entsprechende Handle aus der Tabelle 202 abgehender Handles des Serialisierungskontexts 124 ab und sendet das Handle an Stelle des vollständigen Klassendeskriptors zum Empfänger (Schritt 306). Der Empfänger verwendet dann das Handle, um den Klassendeskriptor in der Tabelle 208 eingehender Handles des Serialisierungskontexts 144 nachzuschlagen. Falls der Klassendeskriptor, den der Absender senden möchte, nicht in der Tabelle 202 abgehender Handles des Serialisierungskontexts 124 enthalten ist, sendet der Absender sowohl den Klassendeskriptor als auch ein neues Handle (Schritt 310). Für nachfolgende Aufrufe kann der Absender nur das Handle zum Empfänger senden.
  • Handshake
  • 4 ist ein Flussdiagramm des "Handshakes" zwischen einem Absender und einem Empfänger, um ein Serialisierungskontextpaar für die Verwendung zu vereinbaren. Wenn eine Verbindung zwischen dem Absender und dem Empfänger festgelegt wird, beispielsweise wenn eine neue RMI-Sitzung beginnt, führen der Absender und der Empfänger einen "Handshake" aus, um ein zu verwendendes Serialisierungskontextpaar zu vereinbaren, wie in Schritt 302 der vorstehend erwähnten 3 erwähnt ist. Jedes Paar von Serialisierungskontexten, beispielsweise die Serialisierungskontexte 124 und 144, wird durch eine global eindeutige Kontextkennung identifiziert. Diese Kontextkennung wird zum Ausführen des Handshakes verwendet. Zuerst stellt der Absender fest, ob einer der Serialisierungskontexte des Absenders einem Serialisierungskontext des Empfängers zugeordnet ist (Schritt 402). Falls dies der Fall ist, sendet der Absender die Kontextkennung für dieses Serialisierungskontextpaar zum Empfänger (Schritt 404). Andernfalls sendet der Absender eine Nullkennung zum Empfänger (Schritt 406). Falls der Empfänger eine von Null verschiedene Kontextkennung empfängt (Schritt 408), prüft er, ob sie noch den entsprechenden Serialisierungskontext aufweist (Schritt 410). Falls dies der Fall ist, gibt der Empfänger die Kontextkennung zum Absender zurück (Schritt 412).
  • Falls der Empfänger nicht den der empfangenen Kontextkennung entsprechenden Serialisierungskontext aufweist oder falls der Empfänger eine Nullkennung empfängt, erzeugt er einen neuen Serialisierungskontext (Schritt 414) und sendet die neue Kontextkennung zum Absender (Schritt 416). Der Absender weiß dann, dass er den vorgeschlagenen Serialisierungskontext verwenden kann, falls er die gleiche Kontextkennung empfängt, die er gesendet hat. Andernfalls sollte der Absender einen neuen Serialisierungskontext mit der neuen Kontextkennung erzeugen und diesen stattdessen verwenden.
  • Verwendung zugewiesener Hinweiszeichen zur Verbesserung der Zweiwegekommunikation
  • 5 ist ein Flussdiagramm, in dem dargestellt ist, wie das zugewiesene Hinweiszeichen verwendet werden kann, um die Zweiwegekommunikation zu verbessern, indem gewährleistet wird, dass Handles nur dann ohne Klassendeskriptordefinitionen gesendet werden, wenn bekannt ist, dass das empfangende Ende zuvor eine dem Handle entsprechende Definition (d.h. einen Klassendeskriptor) empfangen hat. Wie in Schritt 306 der vorstehenden 3 beschrieben wurde, kann der Absender, wenn er feststellt, dass ein Klassendeskriptor bereits in der Tabelle 202 abgehender Handles definiert ist, das entsprechende Handle an Stelle des vollständigen Klassendeskriptors zum Empfänger senden. Bevor das Handle gesendet wird, kann der Absender jedoch das zugewiesene Hinweiszeichen verwenden, um zu gewährleisten, dass der Absender in der Tabelle 208 eingehender Handles einen Eintrag aufweist, der das Klassendeskriptor/Handle-Paar enthält.
  • Um das zugewiesene Hinweiszeichen auf diese Weise zu verwenden, prüft der Absender zuerst, ob sich der Klassendeskriptor in der Tabelle 202 abgehender Handles des Serialisierungskontexts 124 befindet (Schritt 502). Falls dies der Fall ist, prüft der Absender den Wert des entsprechenden zugewiesenen Hinweiszeichens (Schritt 504). Falls das zugewiesene Hinweiszeichen wahr ist, kann der Absender das Handle senden, weil er weiß, dass das Klassendeskriptor/Handle-Paar in der Tabelle 208 eingehender Handles des Empfängers gespeichert ist (Schritt 506).
  • Falls sich der Klassendeskriptor nicht in der Tabelle 202 abgehender Handles des Serialisierungskontexts 124 befindet, erzeugt der Absender einen neuen Eintrag, wobei ein neues Handle und ein zugewiesenes Hinweiszeichen auf falsch gesetzt sind, in der Tabelle 202 abgehender Handles (Schritt 508) und sendet das neue Handle und den neuen Klassendeskriptor zum Empfänger (Schritt 510). Der Empfänger speichert das neue Klassendeskriptor/Handle-Paar in der Tabelle 208 eingehender Handles (Schritt 512). Der Absender würde auch sowohl den Klassendeskriptor als auch das Handle zum Empfänger senden, falls sich der Klassendeskriptor in der Tabelle 202 abgehender Handles befindet, das zugewiesene Hinweiszeichen jedoch falsch ist (Schritte 510 und 512). Der Empfänger würde einfach jedes empfangene doppelte Handle/Klassendeskriptor-Paar verwerfen.
  • Handle-Bestätigung – Argumente
  • Um sich auf die zugewiesenen Hinweiszeichen zu verlassen, wie vorstehend beschrieben wurde, muss es eine Möglichkeit geben, um die Hinweiszeichen sowohl in der Tabelle abgehender Handles des Absenders als auch in der Tabelle abgehender Handles des Empfängers zu aktualisieren. Dieses Aktualisieren kann unter Verwendung der vom Absender zum Empfänger gesendeten Argumente und der vom Empfänger zum Absender zurückgegebenen Rückgabewerte erfolgen.
  • Wenn ein Argument unter Einschluss von Daten und eines Klassendeskriptor/Handle-Paars von einem Absender (beispielsweise dem auf dem Client-Computer 102 ausgeführten Programm 126) zu einem Empfänger (beispielsweise dem auf dem Server-Computer 104 ausgeführten Programm 146) gesendet wird, verwendet der Empfänger den Klassendeskriptor oder das Handle, um die Argumentdaten neu zu erzeugen und den Methodenaufruf auszuführen. Als Teil dieses Prozesses gibt der Empfänger alle neuen Handle/Klassendeskriptor-Paare in die Tabelle 208 eingehender Handles ein. Gemäß einer Ausführungsform geschieht diese Aktualisierung, bevor der Methodenaufruf erfolgreich zum Client zurückkehren kann. Wenn daher der ferne Methodenaufruf erfolgreich zum ursprünglichen Absender zurückgegeben wurde, wird das Handle/Klassendeskriptor-Paar implizit bestätigt, und der Absender kann das entsprechende zugewiesene Hinweiszeichen in der Tabelle 202 abgehender Handles auf wahr setzen.
  • Handle-Bestätigung – Rückgabewerte
  • Klassendeskriptoren, die vom Empfänger (beispielsweise das auf dem Server-Computer 104 ausgeführte Programm 126) verwendet werden, um Rückgabewerte zum Absender (beispielsweise das auf dem Client-Computer 102 ausgeführte Programm 146) zu senden, erfordern eine explizite Bestätigung. Es gibt keine Möglichkeit, dass der Empfänger weiß, ob der Absender das mit dem Rückgabewert gesendete Handle/Klassendeskriptor-Paar erfolgreich in der Tabelle 204 eingehender Handles gespeichert hat. Um zu bestätigen, dass die Tabelle 204 eingehender Handles erfolgreich aktualisiert wurde, sendet der Absender eine explizite Bestätigung des erfolgreichen Empfangs des Handle/Klassendeskriptor-Paars mit dem nächsten Aufruf zum Empfänger. Die Bestätigung kann auf diese Weise verzögert werden, weil der Empfänger die Bestätigung nur dann braucht, falls es künftige Kommunikationen zwischen dem Absender und dem Empfänger gibt.
  • Abfallsammlung
  • Serialisierungskontexte können recht groß werden. Falls ein Tabellenpaar nicht mehr benötigt wird, kann durch Löschen der Tabellen Speicherplatz gespart werden. Vorzugsweise wird diese "Abfallsammlung" durch die Verwendung der global eindeutigen Kennungscodes ermöglicht, die jedem Serialisierungskontextpaar entsprechen. Eine Tabelle, die Serialisierungskontexte auf ihre eindeutigen Kennungscodes abbildet, kann beispielsweise vom RMI-System 124 oder vom RMI-System 144 unterhalten werden. Der Platz in dieser Tabelle wird "geleast", was bedeutet, dass nach Ablauf einer festgelegten Zeit ein Paar aus einem Serialisierungskontext und einem eindeutigen Kennungscode aus der Tabelle gelöscht wird. Jedes Mal dann, wenn auf einen Serialisierungskontext von einem Objekt zugegriffen wird, beispielsweise einem auf dem Client-Computer 102 oder dem Server-Computer 104 ausgeführten Programm, wird die Lease-Zeit zurückgesetzt. Daher sind Serialisierungskontexte automatisch für einen festgelegten Zeitraum zwischen Verwendungen verfügbar. Nach Ablauf eines festgelegten Zeitraums und nach dem Löschen eines Serialisierungskontexts wird eine neue Tabelle erzeugt, wenn ein Client mit dem Server kommunizieren möchte, wie in 5 beschrieben ist.
  • Andere Ausführungsformen der Erfindung werden Fachleuten beim Lesen der Beschreibung und beim Verwirklichen der hier offenbarten Erfindung verständlich werden. Es ist vorgesehen, dass die Beschreibung und die Beispiele nur als Beispiel angesehen werden, wobei der Schutzumfang der Erfindung durch die folgenden Ansprüche angegeben wird.

Claims (3)

  1. Verfahren zum Übergeben eines Objekts von einem Sender (102) an einen Empfänger (104) in einem verteilten System, mit folgenden Schritten: Erzeugen eines Serialisierungskontexts (124), der einen Klassendeskriptor und ein dem Klassendeskriptor entsprechendes Handle enthält, wobei sich der Klassendeskriptor auf eine Klasse des Objekts bezieht und der Erzeugungsschritt außerdem folgende Unterschritte enthält: Speichern des Serialisierungskontexts beim Sender und Speichern des Serialisierungskontexts beim Empfänger, Verwenden des Serialisierungskontexts am Empfänger, um die Klasse des vom Sender übergebenen Objekts zu gewinnen, gekennzeichnet durch folgende Schritte: Handshaking zwischen dem Sender und dem Empfänger mit folgenden weiteren Unterschritten: Senden (404, 406) einer Anforderung vom Sender an den Empfänger, während der Kommunikationssitzung den Serialisierungskontext zu verwenden, wobei die Anforderung eine eindeutige Kontext-ID enthält, die den Serialisierungskontext identifiziert, Bestimmen (408, 410), ob der Serialisierungskontext beim Empfänger gespeichert ist, wenn bestimmt wurde, daß der Serialisierungskontext beim Empfänger gespeichert ist, Senden (412) einer Antwort vom Empfänger an den Sender, die angibt, daß der Serialisierungskontext während der Kommunikationssitzung verwendet werden wird, und Übergeben des Objekts vom Sender an den Empfänger unter Verwendung des Serialisierungskontexts, und wenn bestimmt wurde, daß der Serialisierungskontext beim Empfänger nicht gespeichert ist, Erzeugen (414) eines neuen Serialisierungskontexts beim Empfänger zur Verwendung während der Kommunikationssitzung und Senden (416) der Kontext-ID des neuen Serialisierungskontexts an den Sender, und Übergeben des Objekts vom Sender an den Empfänger unter Verwendung des neuen Serialisierungskontexts.
  2. Verfahren nach Anspruch 1, wobei der Übergabeschritt folgende Unterschritte aufweist: Bestimmen (504), ob der Serialisierungskontext vom Empfänger bestätigt wurde, Senden (506) des Handle und von Daten des Objekts vom Sender an den Empfänger, wenn bestimmt wurde, daß der Empfänger den Serialisierungskontext bestätigt hat, und Senden (510) des Handle, des Klassendeskriptors und von Daten des Objekts vom Sender an den Empfänger, wenn bestimmt wurde, daß der Empfänger den Serialisierungskontext nicht bestätigt hat.
  3. Computerlesbares Medium mit Anweisungen zur Steuerung eines verteilten Systems, so daß es alle Schritte des Verfahrens nach Anspruch 1 oder 2 ausführt.
DE60209909T 2001-01-04 2002-01-03 Verfahren und system zum übergeben von objekten in einem verteilten system unter verwendung von serialisierungskontexten Expired - Fee Related DE60209909T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US753686 2001-01-04
US09/753,686 US7296275B2 (en) 2001-01-04 2001-01-04 Method and system for passing objects in a distributed system using serialization contexts
PCT/US2002/000136 WO2002067118A2 (en) 2001-01-04 2002-01-03 Method and system for passing objects in a distributed system using serialization contexts

Publications (2)

Publication Number Publication Date
DE60209909D1 DE60209909D1 (de) 2006-05-11
DE60209909T2 true DE60209909T2 (de) 2006-11-09

Family

ID=25031709

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60209909T Expired - Fee Related DE60209909T2 (de) 2001-01-04 2002-01-03 Verfahren und system zum übergeben von objekten in einem verteilten system unter verwendung von serialisierungskontexten

Country Status (4)

Country Link
US (1) US7296275B2 (de)
EP (1) EP1405185B1 (de)
DE (1) DE60209909T2 (de)
WO (1) WO2002067118A2 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5677321A (en) * 1996-02-29 1997-10-14 Synaptic Pharmaceutical Corporation 5- and 6-(2-imidazolin-2-ylamino) and -(2-thiazolin-2-ylamino)-benzothiazoles as alpha-2 adrenergic ligands
US7367029B2 (en) * 2002-08-01 2008-04-29 Xerox Corporation Method and system for handling data
US7565533B2 (en) * 2002-11-05 2009-07-21 Sun Microsystems, Inc. Systems and methods for providing object integrity and dynamic permission grants
US7178150B1 (en) * 2003-01-29 2007-02-13 Sprint Communications Company L.P. Serialization method for transmitting data via CORBA interceptors
US7404186B2 (en) * 2003-05-28 2008-07-22 Microsoft Corporation Signature serialization
AT501854B1 (de) * 2004-11-15 2008-03-15 Univ Wien Tech Verfahren zum austausch von daten
US7761848B1 (en) 2005-03-15 2010-07-20 Open Invention Network, Llc Code generator tool for building software applications with reusable components
US20070079117A1 (en) * 2005-10-04 2007-04-05 Bhogal Kulvir S Method for passing selectively encrypted attributes of specific versions of objects in a distributed system
US7788243B2 (en) * 2006-09-08 2010-08-31 Sybase, Inc. System and methods for optimizing data transfer among various resources in a distributed environment
US7831772B2 (en) * 2006-12-12 2010-11-09 Sybase, Inc. System and methodology providing multiple heterogeneous buffer caches
US7937686B2 (en) * 2007-04-17 2011-05-03 Microsoft Corporation Name-based identifiers of model elements
US8327006B2 (en) * 2011-02-24 2012-12-04 Jibe Mobile Endpoint device and article of manufacture for application to application communication over a network
US8484235B2 (en) * 2011-03-28 2013-07-09 International Business Machines Corporation Dynamically switching the serialization method of a data structure
US8930888B2 (en) * 2011-06-29 2015-01-06 International Business Machines Corporation Modelling serialized object streams

Family Cites Families (167)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2476349A1 (fr) 1980-02-15 1981-08-21 Philips Ind Commerciale Systeme de traitement de donnees reparti
US4491946A (en) 1981-03-09 1985-01-01 Gould Inc. Multi-station token pass communication system
US4558413A (en) 1983-11-21 1985-12-10 Xerox Corporation Software version management system
JPH0640302B2 (ja) 1984-01-30 1994-05-25 株式会社日立製作所 図式・ソ−スプログラム自動生成方法
US4567359A (en) 1984-05-24 1986-01-28 Lockwood Lawrence B Automatic information, goods and services dispensing system
US4823122A (en) 1984-06-01 1989-04-18 Digital Equipment Corporation Local area network for digital data processing system
US4809160A (en) 1985-10-28 1989-02-28 Hewlett-Packard Company Privilege level checking instruction for implementing a secure hierarchical computer system
US4800488A (en) 1985-11-12 1989-01-24 American Telephone And Telegraph Company, At&T Bell Laboratories Method of propagating resource information in a computer network
US4713806A (en) 1986-03-14 1987-12-15 American Telephone And Telegraph Company, At&T Bell Laboratories Communication system control arrangement
US4819233A (en) 1987-04-08 1989-04-04 Westinghouse Electric Corp. Verification of computer software
US4939638A (en) 1988-02-23 1990-07-03 Stellar Computer Inc. Time sliced vector processing
US5724540A (en) 1988-03-28 1998-03-03 Hitachi, Ltd. Memory system having a column address counter and a page address counter
US5287511A (en) 1988-07-11 1994-02-15 Star Semiconductor Corporation Architectures and methods for dividing processing tasks into tasks for a programmable real time signal processor and tasks for a decision making microprocessor interfacing therewith
JPH0293952A (ja) 1988-09-30 1990-04-04 Hitachi Ltd 仮想計算機システム
US5133075A (en) 1988-12-19 1992-07-21 Hewlett-Packard Company Method of monitoring changes in attribute values of object in an object-oriented database
US5109486A (en) 1989-01-06 1992-04-28 Motorola, Inc. Distributed computer system with network and resource status monitoring
US5088036A (en) 1989-01-17 1992-02-11 Digital Equipment Corporation Real time, concurrent garbage collection system and method
US5341477A (en) 1989-02-24 1994-08-23 Digital Equipment Corporation Broker for computer network server selection
US4992940A (en) 1989-03-13 1991-02-12 H-Renee, Incorporated System and method for automated selection of equipment for purchase through input of user desired specifications
US5305196A (en) * 1989-05-01 1994-04-19 Credit Verification Corporation Check transaction processing, database building and marketing method and system utilizing automatic check reading
US8700458B2 (en) * 1989-05-01 2014-04-15 Catalina Marketing Corporation System, method, and database for processing transactions
US5297283A (en) 1989-06-29 1994-03-22 Digital Equipment Corporation Object transferring system and method in an object based computer operating system
US5187787B1 (en) 1989-07-27 1996-05-07 Teknekron Software Systems Inc Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
US5257369A (en) 1990-10-22 1993-10-26 Skeen Marion D Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
US5557798A (en) 1989-07-27 1996-09-17 Tibco, Inc. Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
US5218699A (en) 1989-08-24 1993-06-08 International Business Machines Corporation Remote procedure calls in heterogeneous systems
US5253165A (en) 1989-12-18 1993-10-12 Eduardo Leiseca Computerized reservations and scheduling system
CA2047737A1 (en) 1989-12-26 1991-06-27 Shigeru Aoe Object oriented distributed processing system
GB2242293A (en) 1990-01-05 1991-09-25 Apple Computer Apparatus and method for dynamic linking of computer software components
AU628753B2 (en) 1990-08-14 1992-09-17 Digital Equipment Corporation Method and apparatus for implementing server functions in a distributed heterogeneous environment
EP0737921B1 (de) 1990-09-17 2000-06-28 Cabletron Systems, Inc. System und Verfahren zur Modellierung eines Computer-Netzwerks
US5319542A (en) 1990-09-27 1994-06-07 International Business Machines Corporation System for ordering items using an electronic catalogue
US5327559A (en) 1990-10-23 1994-07-05 International Business Machines Corporation Remote and batch processing in an object oriented programming system
EP0501610B1 (de) 1991-02-25 1999-03-17 Hewlett-Packard Company Objektorientiertes verteiltes Rechnersystem
EP0501613A3 (en) 1991-02-28 1993-09-01 Hewlett-Packard Company Heterogeneous software configuration management apparatus
US5293614A (en) 1991-04-08 1994-03-08 Texas Instruments Incorporated System and method for hard real-time garbage collection requiring a write barrier but no read barrier
US5481721A (en) 1991-07-17 1996-01-02 Next Computer, Inc. Method for providing automatic and dynamic translation of object oriented programming language-based message passing into operation system message passing using proxy objects
FR2680255B1 (fr) 1991-08-09 1994-01-28 Gerbaulet Jean Pierre Dispositif pour une meilleure gestion des operations courantes d'achat de produits et de services.
DE4131380A1 (de) 1991-09-20 1993-03-25 Siemens Ag Verfahren zur adaption einer objektorientierten applikation
JPH05233326A (ja) * 1991-12-19 1993-09-10 Internatl Business Mach Corp <Ibm> コンピュータシステムにおいて事象を取り扱う方法及びシステム
JPH05173988A (ja) * 1991-12-26 1993-07-13 Toshiba Corp 分散処理方式および該分散処理に適用されるトランザクション処理方式
US5303042A (en) 1992-03-25 1994-04-12 One Touch Systems, Inc. Computer-implemented method and apparatus for remote educational instruction
US5390328A (en) 1992-03-30 1995-02-14 International Business Machines Corporation Data processing system and method for providing notification in a central processor of state changes for shared data structure on external storage
US5412717A (en) 1992-05-15 1995-05-02 Fischer; Addison M. Computer system security method and apparatus having program authorization information data structures
US5339430A (en) 1992-07-01 1994-08-16 Telefonaktiebolaget L M Ericsson System for dynamic run-time binding of software modules in a computer system
US5307490A (en) 1992-08-28 1994-04-26 Tandem Computers, Inc. Method and system for implementing remote procedure calls in a distributed computer system
JP2524472B2 (ja) 1992-09-21 1996-08-14 インターナショナル・ビジネス・マシーンズ・コーポレイション 電話回線利用の音声認識システムを訓練する方法
US5423042A (en) 1992-10-23 1995-06-06 International Business Machines Corporation Remote procedure execution
US5561785A (en) 1992-10-29 1996-10-01 International Business Machines Corporation System for allocating and returning storage and collecting garbage using subpool of available blocks
JPH0827769B2 (ja) * 1992-10-30 1996-03-21 インターナショナル・ビジネス・マシーンズ・コーポレイション 通信インターフェースの生成システム及びその方法
US5515536A (en) 1992-11-13 1996-05-07 Microsoft Corporation Method and system for invoking methods of an object through a dispatching interface
EP0669020B1 (de) 1992-11-13 1997-04-02 Microsoft Corporation Verfahren zur verteilung von schnittstellenzeigern fur fernprozeduranrufe
US5511196A (en) 1992-11-17 1996-04-23 International Business Machines Corporation Method and system in a data processing system for the enhancement of relationships between reference objects in an object oriented environment and a data object outside an object oriented environment
US5386568A (en) 1992-12-01 1995-01-31 Yamaha Corporation Apparatus and method for linking software modules
EP0602263A1 (de) 1992-12-15 1994-06-22 International Business Machines Corporation Programmgenerator für Benutzerschnittstelle
US5560003A (en) 1992-12-21 1996-09-24 Iowa State University Research Foundation, Inc. System and hardware module for incremental real time garbage collection and memory management
US5452459A (en) 1993-01-08 1995-09-19 Digital Equipment Corporation Method and apparatus for allocating server access in a distributed computing environment
US5548724A (en) 1993-03-22 1996-08-20 Hitachi, Ltd. File server system and file access control method of the same
US5475840A (en) 1993-04-13 1995-12-12 Sun Microsystems, Inc. High performance dynamic linking through caching
US5459837A (en) 1993-04-21 1995-10-17 Digital Equipment Corporation System to facilitate efficient utilization of network resources in a computer network
JPH08500201A (ja) 1993-05-20 1996-01-09 ムーア.ビジネス.フォームス.インコーポレイテッド 顧客の注文を集中型コンピュータを通して様々なサプライヤーへ導く統合計算機網
US5446901A (en) 1993-06-30 1995-08-29 Digital Equipment Corporation Fault tolerant distributed garbage collection system and method for collecting network objects
US5506984A (en) 1993-06-30 1996-04-09 Digital Equipment Corporation Method and system for data retrieval in a distributed system using linked location references on a plurality of nodes
US5603031A (en) 1993-07-08 1997-02-11 General Magic, Inc. System and method for distributed computation based upon the movement, execution, and interaction of processes in a network
US5666493A (en) 1993-08-24 1997-09-09 Lykes Bros., Inc. System for managing customer orders and method of implementation
US5617537A (en) 1993-10-05 1997-04-01 Nippon Telegraph And Telephone Corporation Message passing system for distributed shared memory multiprocessor system and message passing method using the same
BE1007683A3 (nl) * 1993-10-29 1995-09-12 Philips Electronics Nv Kleurenbeeldbuis met uitwendige magnetische afscherming.
US5455952A (en) 1993-11-03 1995-10-03 Cardinal Vision, Inc. Method of computing based on networks of dependent objects
US5742848A (en) 1993-11-16 1998-04-21 Microsoft Corp. System for passing messages between source object and target object utilizing generic code in source object to invoke any member function of target object by executing the same instructions
US5581704A (en) 1993-12-06 1996-12-03 Panasonic Technologies, Inc. System for maintaining data coherency in cache memory by periodically broadcasting invalidation reports from server to client
US5594921A (en) 1993-12-17 1997-01-14 Object Technology Licensing Corp. Authentication of users with dynamically configurable protocol stack
US5548726A (en) 1993-12-17 1996-08-20 Taligeni, Inc. System for activating new service in client server network by reconfiguring the multilayer network protocol stack dynamically within the server node
AU6702594A (en) * 1993-12-17 1995-07-03 Taligent, Inc. Object-oriented distributed communications directory service
AU1522095A (en) * 1994-01-05 1995-08-01 Peter J. Covey Dynamic-state, multi-dimensional, multi-media database
US5664111A (en) 1994-02-16 1997-09-02 Honicorp, Inc. Computerized, multimedia, network, real time, interactive marketing and transactional system
US5592375A (en) 1994-03-11 1997-01-07 Eagleview, Inc. Computer-assisted system for interactively brokering goods or services between buyers and sellers
US5392280A (en) 1994-04-07 1995-02-21 Mitsubishi Electric Research Laboratories, Inc. Data transmission system and scheduling protocol for connection-oriented packet or cell switching networks
US5675796A (en) 1994-04-08 1997-10-07 Microsoft Corporation Concurrency management component for use by a computer program during the transfer of a message
US5680617A (en) 1994-05-16 1997-10-21 Apple Computer, Inc. Computer-human interface which provides for user customization of object behavior
US5675797A (en) 1994-05-24 1997-10-07 International Business Machines Corporation Goal-oriented resource allocation manager and performance index technique for servers
EP0684553B1 (de) 1994-05-26 2004-06-16 Sun Microsystems, Inc. Verfahren und Gerät zur Erzeugung und Verwendung kurzer Operationsidentifizierer in objektorientierten Systemen
US5655148A (en) 1994-05-27 1997-08-05 Microsoft Corporation Method for automatically configuring devices including a network adapter without manual intervention and without prior configuration information
US5664191A (en) 1994-06-30 1997-09-02 Microsoft Corporation Method and system for improving the locality of memory references during execution of a computer program
US5680573A (en) 1994-07-12 1997-10-21 Sybase, Inc. Method of buffering data objects in a database
US5555367A (en) 1994-09-30 1996-09-10 General Electric Company Method and system for generating computer programs for queries formed by manipulating object-oriented diagrams
US5715314A (en) 1994-10-24 1998-02-03 Open Market, Inc. Network sales system
US5577231A (en) 1994-12-06 1996-11-19 International Business Machines Corporation Storage access authorization controls in a computer system using dynamic translation of large addresses
US5664110A (en) 1994-12-08 1997-09-02 Highpoint Systems, Inc. Remote ordering system
US5644768A (en) 1994-12-09 1997-07-01 Borland International, Inc. Systems and methods for sharing resources in a multi-user environment
US5553282A (en) 1994-12-09 1996-09-03 Taligent, Inc. Software project history database and method of operation
EP0717337B1 (de) 1994-12-13 2001-08-01 International Business Machines Corporation Verfahren und System zur gesicherten Programmenverteilung
US5677851A (en) * 1994-12-15 1997-10-14 Novell, Inc. Method and apparatus to secure digital directory object changes
US5608903A (en) * 1994-12-15 1997-03-04 Novell, Inc. Method and apparatus for moving subtrees in a distributed network directory
US5491791A (en) 1995-01-13 1996-02-13 International Business Machines Corporation System and method for remote workstation monitoring within a distributed computing environment
JPH08235260A (ja) 1995-03-01 1996-09-13 Fujitsu Ltd マルチメディア通信システム
US6363409B1 (en) * 1995-04-24 2002-03-26 Microsoft Corporation Automatic client/server translation and execution of non-native applications
US6321275B1 (en) * 1995-04-24 2001-11-20 Microsoft Corporation Interpreted remote procedure calls
US5721832A (en) 1995-05-12 1998-02-24 Regal Greetings & Gifts Inc. Method and apparatus for an interactive computerized catalog system
US5628005A (en) 1995-06-07 1997-05-06 Microsoft Corporation System and method for providing opportunistic file access in a network environment
US5903731A (en) * 1995-06-14 1999-05-11 Us West Technologies, Inc. System and associated method for re-engineering a telecommunications network support system with object-oriented translators
US5644720A (en) 1995-07-31 1997-07-01 West Publishing Company Interprocess communications interface for managing transaction requests
US5710887A (en) 1995-08-29 1998-01-20 Broadvision Computer system and method for electronic commerce
US5671225A (en) 1995-09-01 1997-09-23 Digital Equipment Corporation Distributed interactive multimedia service system
US5682534A (en) 1995-09-12 1997-10-28 International Business Machines Corporation Transparent local RPC optimization
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
US5872973A (en) * 1995-10-26 1999-02-16 Viewsoft, Inc. Method for managing dynamic relations between objects in dynamic object-oriented languages
US5996075A (en) * 1995-11-02 1999-11-30 Sun Microsystems, Inc. Method and apparatus for reliable disk fencing in a multicomputer system
US5925108A (en) * 1995-11-03 1999-07-20 Novell, Inc. Event notification in a computer system
US5671279A (en) 1995-11-13 1997-09-23 Netscape Communications Corporation Electronic commerce using a secure courier system
US6067575A (en) * 1995-12-08 2000-05-23 Sun Microsystems, Inc. System and method for generating trusted, architecture specific, compiled versions of architecture neutral programs
US5915112A (en) * 1996-01-02 1999-06-22 International Business Machines Corporation Remote procedure interface with support for multiple versions
US5758328A (en) * 1996-02-22 1998-05-26 Giovannoli; Joseph Computerized quotation system and method
US5761507A (en) * 1996-03-05 1998-06-02 International Business Machines Corporation Client/server architecture supporting concurrent servers within a server with a transaction manager providing server/connection decoupling
US5754977A (en) * 1996-03-06 1998-05-19 Intervoice Limited Partnership System and method for preventing enrollment of confusable patterns in a reference database
US5764915A (en) * 1996-03-08 1998-06-09 International Business Machines Corporation Object-oriented communication interface for network protocol access using the selected newly created protocol interface object and newly created protocol layer objects in the protocol stack
US5721825A (en) 1996-03-15 1998-02-24 Netvision, Inc. System and method for global event notification and delivery in a distributed computing environment
US5706502A (en) 1996-03-25 1998-01-06 Sun Microsystems, Inc. Internet-enabled portfolio manager system and method
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
US6185611B1 (en) * 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service 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
US6226746B1 (en) * 1998-03-20 2001-05-01 Sun Microsystems, Inc. Stack-based system and method to combine security requirements of methods
US5778187A (en) * 1996-05-09 1998-07-07 Netcast Communications Corp. Multicasting method and apparatus
US5889951A (en) * 1996-05-13 1999-03-30 Viewpoint Corporation Systems, methods, and computer program products for accessing, leasing, relocating, constructing and modifying internet sites within a multi-dimensional virtual reality environment
US6018619A (en) * 1996-05-24 2000-01-25 Microsoft Corporation Method, system and apparatus for client-side usage tracking of information server systems
US6199116B1 (en) * 1996-05-24 2001-03-06 Microsoft Corporation Method and system for managing data while sharing application programs
US5729594A (en) 1996-06-07 1998-03-17 Klingman; Edwin E. On-line secured financial transaction system through electronic media
WO1997049039A1 (en) * 1996-06-21 1997-12-24 Bell Communications Research, Inc. Apparatus and methods for highly available directory services in the distributed computing environment
US5727145A (en) 1996-06-26 1998-03-10 Sun Microsystems, Inc. Mechanism for locating objects in a secure fashion
SG67354A1 (en) * 1996-06-27 1999-09-21 Inst Of Systems Science Nation Computationally efficient method for trusted and dynamic digital objects dissemination
US5748897A (en) * 1996-07-02 1998-05-05 Sun Microsystems, Inc. Apparatus and method for operating an aggregation of server computers using a dual-role proxy server computer
US5742768A (en) 1996-07-16 1998-04-21 Silicon Graphics, Inc. System and method for providing and displaying a web page having an embedded menu
US5758077A (en) * 1996-08-02 1998-05-26 Hewlett-Packard Company Service-centric monitoring system and method for monitoring of distributed services in a computing network
US6016516A (en) * 1996-08-07 2000-01-18 Fuji Xerox Co. Ltd. Remote procedure processing device used by at least two linked computer systems
US6212578B1 (en) * 1996-09-09 2001-04-03 Oracle Corporation Method and apparatus for managing dependencies in a distributed computing environment for ensuring the safety of remote procedure calls
US6757729B1 (en) * 1996-10-07 2004-06-29 International Business Machines Corporation Virtual environment manager for network computers
US5832529A (en) * 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
AU5094398A (en) * 1996-10-30 1998-05-22 Theodor Holm Nelson Many-to-many payment system for network content materials
US6167520A (en) * 1996-11-08 2000-12-26 Finjan Software, Inc. System and method for protecting a client during runtime from hostile downloadables
US6044381A (en) * 1997-09-11 2000-03-28 Puma Technology, Inc. Using distributed history files in synchronizing databases
US6034925A (en) * 1996-12-02 2000-03-07 Thomson Consumer Electronics, Inc. Accessing control method for identifying a recording medium in a jukebox
JPH10171701A (ja) * 1996-12-10 1998-06-26 Fuji Xerox Co Ltd 手続実行装置及び方法
US6052761A (en) * 1997-01-31 2000-04-18 Hewlett-Packard Company Increment update in an SCI based system
US6061713A (en) * 1997-03-12 2000-05-09 Fujitsu Limited Communications system for client-server data processing systems
US6189046B1 (en) * 1997-03-27 2001-02-13 Hewlett-Packard Company Mechanism and method for merging cached location information in a distributed object environment
US6408342B1 (en) * 1997-03-28 2002-06-18 Keith E. Moore Communications framework for supporting multiple simultaneous communications protocols in a distributed object environment
US6192044B1 (en) * 1997-03-31 2001-02-20 Intel Corporation Employing a look-up service and a callee connection service to establish a network phone call between a caller and a callee
US6247091B1 (en) * 1997-04-28 2001-06-12 International Business Machines Corporation Method and system for communicating interrupts between nodes of a multinode computer system
US6055562A (en) * 1997-05-01 2000-04-25 International Business Machines Corporation Dynamic mobile agents
US6219675B1 (en) * 1997-06-05 2001-04-17 Microsoft Corporation Distribution of a centralized database
US6343308B1 (en) * 1997-08-14 2002-01-29 International Business Machines Corporation Systems, methods and computer programs for mixing different versions of Java classes
US6078655A (en) * 1997-08-27 2000-06-20 At&T Corp Automatic international reattempt method and apparatus
US6199068B1 (en) * 1997-09-11 2001-03-06 Abb Power T&D Company Inc. Mapping interface for a distributed server to translate between dissimilar file formats
US6253256B1 (en) * 1997-10-15 2001-06-26 Sun Microsystems, Inc. Deferred reconstruction of objects and remote loading in a distributed system
US6032151A (en) * 1997-11-17 2000-02-29 Sun Microsystems, Inc. Database system employing polymorphic entry and entry matching
US6016496A (en) * 1997-11-20 2000-01-18 International Business Machines Corporation Method and apparatus for an object-oriented object for retrieving information from local and remote databases
US6704803B2 (en) * 1998-01-26 2004-03-09 International Business Machines Corporation Method and system for distributing data events over an information bus
US6023586A (en) * 1998-02-10 2000-02-08 Novell, Inc. Integrity verifying and correcting software
US6026414A (en) * 1998-03-05 2000-02-15 International Business Machines Corporation System including a proxy client to backup files in a distributed computing environment
US6185602B1 (en) * 1998-06-29 2001-02-06 Sony Corporation Multi-user interaction of multimedia communication
US6385643B1 (en) * 1998-11-05 2002-05-07 Bea Systems, Inc. Clustered enterprise Java™ having a message passing kernel in a distributed processing system
US6301613B1 (en) * 1998-12-03 2001-10-09 Cisco Technology, Inc. Verifying that a network management policy used by a computer system can be satisfied and is feasible for use
US6216158B1 (en) * 1999-01-25 2001-04-10 3Com Corporation System and method using a palm sized computer to control network devices
US6578074B1 (en) * 1999-06-25 2003-06-10 Mediaone Group, Inc. Provisioning server enhancement
US6564174B1 (en) * 1999-09-29 2003-05-13 Bmc Software, Inc. Enterprise management system and method which indicates chaotic behavior in system resource usage for more accurate modeling and prediction
US6757262B1 (en) * 2000-09-15 2004-06-29 Motorola, Inc. Service framework supporting remote service discovery and connection
JP2002132739A (ja) * 2000-10-23 2002-05-10 Nec Corp スタブ検索ローディングシステム及び方法、サーバ装置、クライアント装置並びにコンピュータ可読記録媒体
US20030005132A1 (en) * 2001-05-16 2003-01-02 Nortel Networks Limited Distributed service creation and distribution

Also Published As

Publication number Publication date
DE60209909D1 (de) 2006-05-11
EP1405185B1 (de) 2006-03-15
EP1405185A2 (de) 2004-04-07
WO2002067118A2 (en) 2002-08-29
WO2002067118A3 (en) 2003-12-31
US20020124118A1 (en) 2002-09-05
US7296275B2 (en) 2007-11-13

Similar Documents

Publication Publication Date Title
DE69730690T2 (de) Verfahren und apparat zum dynamischen austausch von objekt-nachrichten zwischen objekt-modellen
DE60209909T2 (de) Verfahren und system zum übergeben von objekten in einem verteilten system unter verwendung von serialisierungskontexten
DE60015423T2 (de) Verfahren und Vorrichtung zur Objektwiedergabe in einem Netzwerk
DE69834579T2 (de) Http- sitzung- überwachung
DE19605093B4 (de) Verfahren und Vorrichtung zum Einrichten und Verwalten einer Verbindung zwischen einem Client-Computersystem und jedem einer Mehrzahl von Server-Computersystemen
DE69724877T2 (de) Verfahren und Vorrichtung zum Betrieb einer Aggregation von Serverrechnern mittels eines Doppelzweck-Proxy-Servers
DE69735351T2 (de) System zur übermittlung von bildinformationen über ein netzwerk zwischen bebilderungsvorrichtungen, die nach mehreren protokollen arbeiten
DE60126016T2 (de) Serverseitige Kontrollobjekte zur Verarbeitung von kundenseitigen Benutzerschnittstellenelementen
DE69534796T2 (de) Kommunikationseinrichtung
DE69628965T2 (de) Verfahren und Gerät zum Verwalten von Beziehungen zwischen Objekten in einer verteilten Objektumgebung
DE60008555T2 (de) Verfahren und vorrichtung zur effizienten übertragung von daten einer interaktiven anwendung zwischen klienten und server mit hilfe einer markup-sprache
DE69820566T2 (de) Verfahren, Vorrichtung, und Programmprodukt zum Zugriff auf einen Server-basierten Verwaltungsinformationsdienst
DE60211254T2 (de) Fernereignis Behandlung in ein Paketnetzwerk
DE69815946T2 (de) Informationsverarbeitungsvorrichtung
DE69727933T2 (de) Verfahren und gerät zum beschreiben einer definierten schnittstelle, einer operation und eines datentyps in einer schnittstellendefinitionssprache
DE69930695T2 (de) Verfahren und Vorrichtung für ein Applikationsverteiler für eine Serverapplikation
DE10128883A1 (de) Verfahren und System für die Verteilung von Anwendungsdaten auf verteilte Datenbanken mit verschiedenen Formaten
DE69837550T2 (de) System und Verfahren zur Datenübermittlung von einer Serverapplikation an Klientknoten
DE19705955A1 (de) Verfahren zum Generieren einer Implementierung eines Workflow-Prozessmodells in einer Objektumgebung
WO1994016386A1 (de) Programmiersprachensystem zur erzeugung eines programmsystems eines realzeitsystems auf hochsprachenniveau
DE102005041628B4 (de) Vorrichtung und Verfahren zur Verarbeitung von Daten unterschiedlicher Modalitäten
DE60002442T2 (de) Addressieren im internet
EP2250588B1 (de) Verfahren und programm zum bereitstellen von datenkohärenz in netzwerken
DE60122671T2 (de) Anforderungsbedingte dynamische Schnittstellengenerierung
DE19957235A1 (de) Vorrichtung, Prozeß und Produkt für den Zugriff auf Java-Anwendungen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee