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 PDFInfo
- 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
Links
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/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
- G06F9/548—Object 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 System100 , 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 System100 , das zum Verwirklichen von Methoden und Systemen geeignet ist, die mit der vorliegenden Erfindung vereinbar sind. Das verteilte System100 beinhaltet einen Client-Computer102 und einen Server-Ccmputer104 , die über ein Netz106 kommunizieren. Das Netz106 kann beispielsweise ein Lokalbereichsnetz, ein Weitbereichsnetz oder das Internet sein. - Der Client-Computer
102 beinhaltet einen Speicher108 , eine Sekundärspeichervorrichtung110 , eine Zentralverarbeitungseinheit (CPU)112 , eine Eingabevorrichtung114 und eine Videoanzeige116 . Der Speicher108 beinhaltet ein JavaTM-Laufzeitsystem118 . Das JavaTM-Laufzeitsystem118 beinhaltet eine virtuelle JavaTM-Maschine120 und ein fernes JavaTM-Methodenaufrufsystem (RMI-System)122 . Das RMI-System122 beinhaltet einen oder mehrere Serialisierungskontexte124 . Der Speicher108 beinhaltet auch ein auf dem Client-Computer102 ausgeführtes Programm126 . - Der Server-Computer
104 beinhaltet einen Speicher128 , eine Sekundärspeichervorrichtung130 , eine Zentral verarbeitungseinheit (CPU)132 , eine Eingabevorrichtung134 und eine Videoanzeige136 . Der Speicher128 beinhaltet ein JavaTM-Laufzeitsystem138 . Das JavaTM-Laufzeitsystem138 beinhaltet eine virtuelle JavaTM-Maschine140 und das ferne JavaTM-Methodenaufrufsystem (RMI-System)142 . Das RMI-System142 enthält einen oder mehrere Serialisierungskontexte144 . Der Speicher128 beinhaltet auch ein Programm146 , das auf dem Server-Computer104 ausgeführt wird, und eines oder mehrere Objekte148 . - Unter Verwendung des RMIs können Objekte zwischen dem Client-Computer
102 und dem Server-Computer104 übergeben werden. Beispielsweise kann ein auf dem Client-Computer102 ausgeführtes Programm146 eine Methode zu einem Objekt148 aufrufen, das im Speicher130 des Server-Computers104 gespeichert ist. Der Client-Computer102 würde das RMI-System122 verwenden, um den Methodenaufruf, einschließlich einer Identifikation der fernen Methode und jeglicher Parameter, in einen Bytestrom zu konvertieren, der über das Netz106 zum Server-Computer104 gesendet wird. Der Server-Computer104 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-Computer104 den Rückgabewert unter Verwendung seines RMI-Systems in einen Bytestrom und überträgt den Bytestrom zum Client-Computer102 . - 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:
- 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 Serialisierungskontexte124 und144 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, beispielsweise202 oder206 , vorgesehen ist, und eine für eingehende Handles, beispielsweise204 oder208 , 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 Programm126 und ein auf dem Server-Computer ausgeführtes Programm146 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-Computers102 enthält den Serialisierungskontext124 , der aus der Tabelle202 abgehender Handles und der Tabelle204 eingehender Handles besteht, und das RMI-System142 des Server-Computers104 enthält den Serialisierungskontext144 , der aus der Tabelle206 abgehender Handles und der Tabelle208 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 Tabelle202 abgehender Handles beispielsweise wahr ist, wurde das entsprechende Klassendeskriptor/Handle-Paar in der Tabelle208 eingehender Handles gespeichert. Falls das zugewiesene Hinweiszeichen falsch ist, kann die Tabelle208 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 auf5 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-Computer102 ausgeführte Programm126 ) und der Empfänger (beispielsweise das auf dem Server-Computer104 ausgeführte Programm146 ) einen Serialisierungskontext zur Verwendung während des Methodenaufrufs (Schritt302 ). Als Ergebnis dieser Vereinbarung oder dieses "Handshakes" verwendet der Absender den Serialisierungskontext124 und der Empfänger den Serialisierungskontext144 , wie in2 dargestellt ist. Der "Handshake-Prozess" wird nachstehend mit Bezug auf4 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 Serialisierungskontexts124 definiert ist (Schritt304 ). Falls dies der Fall ist und falls das zugewiesene Hinweiszeichen wahr ist, ruft der Absender, wie mit Bezug auf eine Ausführungsform in5 nachstehend detailliert angegeben ist, das dem Klassendeskriptor entsprechende Handle aus der Tabelle202 abgehender Handles des Serialisierungskontexts124 ab und sendet das Handle an Stelle des vollständigen Klassendeskriptors zum Empfänger (Schritt306 ). Der Empfänger verwendet dann das Handle, um den Klassendeskriptor in der Tabelle208 eingehender Handles des Serialisierungskontexts144 nachzuschlagen. Falls der Klassendeskriptor, den der Absender senden möchte, nicht in der Tabelle202 abgehender Handles des Serialisierungskontexts124 enthalten ist, sendet der Absender sowohl den Klassendeskriptor als auch ein neues Handle (Schritt310 ). 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 Schritt302 der vorstehend erwähnten3 erwähnt ist. Jedes Paar von Serialisierungskontexten, beispielsweise die Serialisierungskontexte124 und144 , 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 (Schritt402 ). Falls dies der Fall ist, sendet der Absender die Kontextkennung für dieses Serialisierungskontextpaar zum Empfänger (Schritt404 ). Andernfalls sendet der Absender eine Nullkennung zum Empfänger (Schritt406 ). Falls der Empfänger eine von Null verschiedene Kontextkennung empfängt (Schritt408 ), prüft er, ob sie noch den entsprechenden Serialisierungskontext aufweist (Schritt410 ). Falls dies der Fall ist, gibt der Empfänger die Kontextkennung zum Absender zurück (Schritt412 ). - 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 (Schritt416 ). 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 Schritt306 der vorstehenden3 beschrieben wurde, kann der Absender, wenn er feststellt, dass ein Klassendeskriptor bereits in der Tabelle202 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 Tabelle208 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 Serialisierungskontexts124 befindet (Schritt502 ). Falls dies der Fall ist, prüft der Absender den Wert des entsprechenden zugewiesenen Hinweiszeichens (Schritt504 ). Falls das zugewiesene Hinweiszeichen wahr ist, kann der Absender das Handle senden, weil er weiß, dass das Klassendeskriptor/Handle-Paar in der Tabelle208 eingehender Handles des Empfängers gespeichert ist (Schritt506 ). - Falls sich der Klassendeskriptor nicht in der Tabelle
202 abgehender Handles des Serialisierungskontexts124 befindet, erzeugt der Absender einen neuen Eintrag, wobei ein neues Handle und ein zugewiesenes Hinweiszeichen auf falsch gesetzt sind, in der Tabelle202 abgehender Handles (Schritt508 ) und sendet das neue Handle und den neuen Klassendeskriptor zum Empfänger (Schritt510 ). Der Empfänger speichert das neue Klassendeskriptor/Handle-Paar in der Tabelle208 eingehender Handles (Schritt512 ). Der Absender würde auch sowohl den Klassendeskriptor als auch das Handle zum Empfänger senden, falls sich der Klassendeskriptor in der Tabelle202 abgehender Handles befindet, das zugewiesene Hinweiszeichen jedoch falsch ist (Schritte510 und512 ). 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 Programm126 ) zu einem Empfänger (beispielsweise dem auf dem Server-Computer104 ausgeführten Programm146 ) 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 Tabelle208 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 Tabelle202 abgehender Handles auf wahr setzen. - Handle-Bestätigung – Rückgabewerte
- Klassendeskriptoren, die vom Empfänger (beispielsweise das auf dem Server-Computer
104 ausgeführte Programm126 ) verwendet werden, um Rückgabewerte zum Absender (beispielsweise das auf dem Client-Computer102 ausgeführte Programm146 ) 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 Tabelle204 eingehender Handles gespeichert hat. Um zu bestätigen, dass die Tabelle204 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-System144 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-Computer102 oder dem Server-Computer104 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 in5 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)
- 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. - 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. - Computerlesbares Medium mit Anweisungen zur Steuerung eines verteilten Systems, so daß es alle Schritte des Verfahrens nach Anspruch 1 oder 2 ausführt.
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)
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)
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 |
-
2001
- 2001-01-04 US US09/753,686 patent/US7296275B2/en not_active Expired - Lifetime
-
2002
- 2002-01-03 EP EP02742459A patent/EP1405185B1/de not_active Expired - Lifetime
- 2002-01-03 WO PCT/US2002/000136 patent/WO2002067118A2/en not_active Application Discontinuation
- 2002-01-03 DE DE60209909T patent/DE60209909T2/de not_active Expired - Fee Related
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 |