DE69533148T2 - Verfahren und Gerät zur Erzeugung und Verwendung kurzer Operationsidentifizierer in objektorientierten Systemen - Google Patents
Verfahren und Gerät zur Erzeugung und Verwendung kurzer Operationsidentifizierer in objektorientierten Systemen Download PDFInfo
- Publication number
- DE69533148T2 DE69533148T2 DE69533148T DE69533148T DE69533148T2 DE 69533148 T2 DE69533148 T2 DE 69533148T2 DE 69533148 T DE69533148 T DE 69533148T DE 69533148 T DE69533148 T DE 69533148T DE 69533148 T2 DE69533148 T2 DE 69533148T2
- Authority
- DE
- Germany
- Prior art keywords
- identifier
- identifiers
- server application
- operation identifier
- operations
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
- Stored Programmes (AREA)
Description
- Gebiet der Erfindung
- Diese Erfindung bezieht sich allgemein auf ein Verfahren und eine Vorrichtung zur Verwendung in einem verteilten Rechnersystem und insbesondere auf ein Verfahren und eine Vorrichtung zur Handhabung von unklaren Operationsidentifizierern.
- Hintergrund der Erfindung
- Es ist oftmals erwünscht, zwei oder mehr Computeranwendungen zu haben, die gleichzeitig an einer einzigen Aufgabe arbeiten. Rechnersysteme, die mehr als einer Anwendung gestatten, an einer einzigen Aufgabe zu arbeiten, sind als verteilte Rechnersysteme bekannt. Wenn mehr als eine Anwendung an einer Aufgabe arbeitet muss ein Mechanismus vorgesehen sein, durch welchen alle an der Aufgabe arbeitende Anwendungen miteinander kommunizieren können, um die Verarbeitung der Aufgabe zu koordinieren.
- Gemäß einem Verfahren zur Koordinierung der Verantwortlichkeiten, die der Ausführung einer Aufgabe zugeordnet sind, wird bestimmten Anwendungen („Client-Anwendungen") gestattet, bestimmte Teile der Aufgaben, die sie bearbeiten, zu anderen Anwendungen („Server-Anwendungen") zu delegieren. Gemäß dieser Strategie überträgt eine Client-Anwendung ein Signal zu der Server-Anwendung, die dem Server anzeigt, eine Operation der Aufgabe auszuführen. Das Signal umfasst ebenfalls irgendwelche Daten, die die Server-Anwendungen anfordern können, um die angezeigte Operation auszuführen. Nachdem die Server-Anwendung die Operation einmal ausgeführt hat, überträgt sie Server-Anwendung ein Signal zurück zu der Client-Anwendung, um die Client-Anwendung zu informieren, daß die Operation vervollständigt worden ist. Das Signal umfasst ebenfalls irgendwelche Daten, die durch die Ausführung der Operation erzeugt werden.
- In jüngster Zeit sind Objekt-orientierte verteilte Systeme entwickelt worden. In Objekt-orientierten Systemen wird Information in Objekten repräsentiert, welche Datenstrukturen und Verfahren umfasst. Die Verfahren definieren Operationen, welche mit den Datenstrukturen ausgeführt werden können. In einem Objekt-orientierten verteilten System delegiert eine Client-Anwendung Operationen zu Server-Anwendungen durch Aufrufen von Verfahren, die in Objekten definiert sind, welche durch den Server unterstützt werden. Wenn eine Client-Anwendung ein Verfahren in einer Server-Anwendung aufruft, muss die Client-Anwendung der Server-Anwendung exakt mitteilen, welches Verfahren sie aufzurufen wünscht. Typischerweise kommuniziert eine Client-Anwendung diese Information durch Senden eines Verfahren-Identifizierers in der Server-Anwendung, welche das Verfahren identifiziert, die es aufzurufen wünscht. Unter bestimmten Umständen kann jedoch auch eine Server-Anwendung mehr als ein Verfahren unterstützen, das den gleichen Verfahren-Identifizierer besitzt. Identifizierer, die zu mehr als zu einer Operation gehören, werden als unklare Identifizierer bezeichnet. Wenn die Server-Anwendung einen unklaren Verfahrens-Identifizierer empfängt, weiß sie nicht, welches Verfahren auszuführen ist.
- Das Problem von unklaren Verfahrens-Identifizierern entsteht, wenn ein Server-Objekt Verfahren von zwei oder mehr zuvor existierenden Objekten beinhaltet. Diese Situation wird allgemein als Mehrfacherbe bezeichnet. Zum Beispiel können zwei getrennte Programmierer zwei getrennte Schnittstellen definieren, ein A-Schnittstellenobjekt und ein B-Schnittstellenobjekt. Jeder Programmierer teilt unabhängig die Verfahrens-Identifizierer dem Verfahren zu, die in seinem entsprechenden Schnittstellenobjekt definiert sind. Es ist möglich, daß sie beide den gleichen Verfahrens-Identifizierer verwenden, zum Beispiel den Verfahrens-Identifizierer X für eines ihrer Verfahren. Zum Beispiel kann der Verfahrens-Identifizierer X das „Lade"-Verfahren im A-Schnittstellenobjekt identifizieren und das „Speicher"-Verfahren in dem B-Schnittstellenobjekt.
- Wenn irgendjemand ein C-Schnittstellenobjekt verwirklicht, das sowohl von dem A-Schnittstellenobjekt als auch von dem B-Schnittstellenobjekt abstammt, wird der Verfahrens-Identifizierer X sowohl das „Lade"- als auch das „Speicher"-Verfahren in dem C-Schnittstellenobjekt identifizieren. Ferner können Client-Anwendungen, die entweder das „Lade"- oder das „Speicher"-Verfahren des C-Schnittstellenobjektes aufzurufen wünschen, noch nicht einmal wissen, daß eine Unklarheit vorliegt. Aufgrund des Erbes können einige Client-Anwendungen des C-Schnittstellenobjektes nur das C-Schnittstellenobjekt als das A-Schnittstellenobjekt wahrnehmen, während andere Client-Anwendungen des C-Schnittstellenobjektes nur das B-Schnittstellenobjekt als das B-Schnittstellenobjekt wahrnehmen können. Demzufolge kann es nicht angenommen werden, daß Client-Anwendungen wahrnehmen werden, daß ein Klarheitsproblem in Bezug auf einen Idenitfizierer eines Verfahrens vorliegt, welches sie aufzurufen wünschen.
- Ein Weg zur Minimierung der Möglichkeit solcher Kollisionen von Verfahrens-Identifizierern liegt in der Annahme eines Schemas, welches relativ lange Verfahrens-Identifizierer verwendet. Wenn zum Beispiel Verfahrens-Identifizierer mit 16 byte anstelle von Verfahrens-Identifizierern von 4 byte verwendet werden, wird die Möglichkeit unklarer Verfahrens-Identifizierer vermindert. Die Möglichkeit unklarer Identifizierer kann danach minimiert werden, wenn Programmierer universell bestimmte Auswahl-Daumenregel für die Verfahrens-Identifizierer anwenden.
- Unglücklicherweise nimmt die Leistung eines Rechnersystems mit der Größe der Identifizierer ab, die zwischen Client- und Server-Anwendungen gereicht werden müssen. Umgekehrt kann die Leistung anwachsen durch Vermiderung der Größe der Verfahrens-Identifizierer. Speziell müssen, umso kleiner die Verfahrens-Identifizierer sind, umso weniger Daten von dem Client zu dem Server übertragen werden. Wenn zusätzlich die Server-Anwendung eine eingehende Anforderung dekodiert, muss sie den in der Anforderung enthaltenen Verfahrens-Identifizierer auf ein spezifisches Verfahren der Server-Anwendung abbilden. Dieser Abbildungsprozess ist viel wirksamer bei kurzen Verfahrens-Identifizierern.
- Wie aus Vorstehendem hervorgeht, ist es klar erwünscht, ein Objekt orientiertes verteiltes System vorzugeben, bei welchem Client-Anwendungen zu Verfahren bei Objekten aufrufen können, die zu Server-Anwendungen gehören. Es ist ferner erwünscht, ein Objekt-orientiertes verteiltes System vorzugeben, welches Programmierern gestattet, relativ kurze Verfahrens-Identifizierer ihrem Verfahren zuzuteilen. Da die Verwendung von relativ kurzen Verfahrens-Identifizierern die Möglichkeit von Kollisionen der Verfahrens-Identifizierer erhöht, ist es klar erwünscht, einen Mechanismus zur Auflösung von Konflikten vorzugeben, die durch unklare kurze Verfahrens-Identifizierer hervorgerufen werden.
- Die EP-A2-0474340 bezieht sich auf eine Objekt-orientierte Technologie, ist aber auf ein unterschiedliches Problem gerichtet. Wenn in diesem Dokument ein Fehler auftrifft während des Ladens eines ausführbaren Codes, dann erzeugt eine Aufrufer-Softwarekomponente eine Nachricht, die anzeigt, daß ein Ladefehler aufgetreten ist und führt die Ladefehler-Nachricht zu der Client-Anwendung zurück.
- Die vorliegende Erfindung ist definiert durch die angefügten Ansprüche, auf die nunmehr Bezug genommen werden soll.
- Zusammenfassung der Erfindung
- Gemäß einem Ausführungsbeispiel ist ein verteiltes Rechnersystem vorgesehen, das einen oder mehrere Prozessoren umfasst, die eine Client-Anwendung und eine Server-Anwendung ausführen. Die Server-Anwendung ist in der Lage, mehrere Operationen auszuführen. Jede Operation ist durch wenigstens einen Operations-Identifizierer aus einer Vielzahl von Operations-Identifizierern identifiziert. Jeder Operations-Identifizierer identifiziert eine oder mehrere Operationen.
- Die Client-Anwendung gibt eine erste Anforderung an die Server-Anwendung aus, um eine ausgewählte Operation durch die Server-Anwendung auszuführen. Die Client-Anwendung identifiziert die ausgewählte Operation durch Übertragung eines ersten Operations-Identifizierers in der ersten Anforderung. Der erste Operations-Identifizierer ist ein Operations-Identifizierer, der die ausgewählte Operation identifiziert.
- Die Server-Anwendung führt die ausgewählte Operation aus, wenn der erste Operations-Identifizierer nur die erste Operation identifiziert. Die Server-Anwendung überträgt einen Hinweis an die Client-Anwendung, der die Client-Anwendung darauf hinweist, daß der Operations-Identifizierer unklar war und daß die ausgewählte Operation nicht ausgeführt wurde, wenn der erste Operations-Identifizierer mehr als eine Operation identifiziert.
- Die Client-Anwendung gibt eine zweite Anforderung an die Server-Anwendung aus, damit die Server-Anwendung die ausgewählte Operation ausführt, wenn der Client den Hinweis von der Server- Anwendung empfängt. Die Client-Anwendung identifiziert die ausgewählte Operation durch Übertragung eines zweiten Operations-Identifizierers in der zweiten Anforderung. Der zweite Operations-Identifizierer ist ein zweiter Operations-Identifizierer, der die ausgewählte Operation identifiziert. Der zweite Operations-Identifizierer ist ein unterschiedlicher Operations-Identifizierer gegenüber dem ersten Operations-Identifizierer.
- Die Vielzahl von Operations-Identifizierern umfasst eine Vielzahl von kurzen Operations-Identifizierern und eine Vielzahl von langen Operations-Identifizierern. Jede Operation wird identifiziert durch einen kurzen Operations-Identifizierer aus der Vielzahl von kurzen Operations-Identifizierern. Jede Operation wird ferner identifiziert durch einen langen Operations-Identifizierer aus der Vielzahl von langen Operations-Identifizierern.
- Der erste Operations-Identifizierer ist ein kurzer Operations-Identifizierer, welcher die ausgewählte Operation identifiziert. Der zweite Operations-Identifizierer ist ein langer Operations-Identifizierer, welcher die ausgewählte Operation identifiziert.
- Jeder kurze Operations-Identifizierer ist vorzugsweise hergeleitet durch Ausführung einer Kontrollsummenfunktion mit einem langen Operations-Identifizierer. Ein kurzer Operations-Identifizierer, der durch Ausführung der Kontrollsummenfunktion mit einem vorgegebenen langen Operations-Identifizierer hergeleitet wird, identifiziert die gleiche Operation wie der vorgegebene lange Operations-Identifizierer.
- Die Kontrollsummenfunktion ist sowohl aus der Client-Anwendung als auch aus der Server-Anwendung bekannt. Die Client-Anwendung als auch die Server-Anwendung leitet unabhängig die Vielzahl kurzer Operations-Identifizierer aus der Vielzahl von langen Operations-Identifizierern her.
- Gemäß einem Ausführungsbeispiel ist die Vielzahl von Operationen eine Vielzahl von Prozeduren. Gemäß einem anderen Ausführungsbeispiel ist die Vielzahl von Operationen eine Vielzahl von Verfahren, die durch ein oder mehrere Objekte aufgerufen werden.
- Wenn die Vielzahl der Operationen eine Vielzahl von Verfahren ist, die durch ein oder mehrere Objekte aufgerufen werden, erkennt die Server-Anwendung die Verfahren, die durch das eine oder die mehreren Objekte unterstützt werden. Die Server-Anwendung legt fest, welche kurzen Operations-Identifizierer unklar sind, wenn das eine oder die mehreren Objekte kombiniert werden.
- Gemäß einem anderen Ausführungsbeispiel ist eine Server-Anwendung zur Verwendung in einem verteilten Rechnersystem vorgesehen. Das verteilte Rechnersystem umfasst einen oder mehrere Prozessoren, die die Server-Anwendung und wenigstens eine Client-Anwendung bearbeiten. Die Server-Anwendung umfasst eine Ausführungseinheit, eine Eingangseinheit, die betriebsmäßig an die Ausführungseinheit und die Server-Anwendung angeschlossen ist und eine Ausgangseinheit, die betriebsmäßig mit der Ausführungseinheit und der Server-Anwendung verbunden ist.
- Die Ausführungseinheit ist in der Lage, mehrere Operationen auszuführen. Jede Operation wird durch wenigstens einen Operations-Identifizierer aus mehreren Operations-Identifizierern identifiziert. Jeder Operations-Identifizierer identifiziert eine oder mehrere Operationen. Die Eingangseinheit empfängt eine erste Anforderung von der wenigstens einen Client-Anwendung. Die erste Anforderung fordert die Server-Anwendung auf, eine ausgewählte Operation auszuführen. Die erste Anforderung identifiziert die ausgewählte Operation durch einen ersten Operations-Identifizierer.
- Die Ausführungseinheit bearbeitet die ausgewählte Operation, wenn der erste Operations-Identifizierer nur die ausgewählte Operation identifiziert. Die Ausgangseinheit überträgt einen Vermerk zu der Client-Anwendung, die die Client-Anwendung darauf verweist, daß der erste Operations-Identifizierer unklar war und daß die ausgewählte Operation nicht ausgeführt wurde, wenn der erste Operations-Identifizierer mehr als eine Operation identifiziert.
- Die Eingangseinheit empfängt eine zweite Anforderung von der Client-Anwendung für die Server-Anwendung, um die ausgewählte Operation auszuführen, wenn der Client den Hinweis von der Server-Anwendung empfängt. Die ausgewählte Operation ist durch einen zweiten Operations-Identifizierer in der zweiten Anforderung identifiziert. Der zweite Operations-Identifizierer ist ein unterschiedlicher Operations-Identifizierer gegenüber dem ersten Operations-Identifizierer.
- Die Vielzahl von Operations-Identifizierern umfasst eine Vielzahl von kurzen Operations-Identifizierern und eine Vielzahl von langen Operations-Identifizierern. Jede Operation ist identifiziert durch einen kurzen Operations-Identifizierer aus der Vielzahl von kurzen Operations-Identifizierern. Jede Operation ist ferner identifiziert durch einen langen Operations-Identifizierer aus der Vielzahl von langen Operations-Identifizierern. Der erste Operations-Identifizierer ist ein kurzer Operations-Identifizierer, welcher die ausgewählte Operation identifiziert. Der zweite Operations-Identifizierer ist ein langer Operations-Identifizierer, welcher die ausgewählte Operation identifiziert.
- Vorzugsweise leitet die Server-Anwendung jeden kurzen Operations-Identifizierer her durch Ausführung einer Kontrollsummenfunktion mit einem entsprechenden langen Operations-Identifizierer. Ein kurzer Operations-Identifizierer, der durch Ausführung der Kontrollsummenfunktion mit einem vorgegebnen langen Operations-Identifizierer hergeleitet wird, identifiziert die gleiche Operation wie der vorgegebene lange Operations-Identifizierer.
- Die Vielzahl der Operationen kann eine Vielzahl von Verfahren sein, die durch ein oder mehrere Objekte ausgerufen werden. Die Server-Anwendung kennt die Verfahren, die durch das eine oder die mehreren Objekte unterstützt werden. Die Server-Anwendung legt fest, welche kurzen Operations-Identifizierer unklar sind, wenn das eine oder die mehreren Objekte kombiniert werden.
- Gemäß einem noch weiteren Ausführungsbeispiel ist ein Verfahren zur Handhabung unklarer Identifizierer in einem verteilten Rechnersystem vorgesehen. Das verteilte Rechnersystem umfasst einen oder mehrere Prozessoren, die eine Server-Anwendung und wenigstens eine Client-Anwendung ausführen. Die Server-Anwendung ist in der Lage, mehrere Operationen auszuführen.
- Gemäß einem Ausführungsbeispiel ist jede Operation durch wenigstens einen Operations-Identifizierer aus einer Vielzahl von Operations-Identifizierern identifiziert. Jeder Operations-Identifizierer identifiziert eine oder mehrere Operationen. Die wenigstens eine Client-Anwendung gibt eine erste Anforderung an die Server-Anwendung aus, damit die Server-Anwendung eine ausgewählte Operation ausführt. Die wenigstens eine Client-Anwendung identifiziert die ausgewählte Operation durch Übertragen eines ersten Operations-Identifizierers in der ersten Anforderung. Der erste Operations-Identifizierer ist ein Operations-Identifizierer, welcher die ausgewählte Operation identifiziert.
- Die Server-Anwendung führt die ausgewählte Operation aus, wenn der erste Operations-Identifizierer nur die ausgewählte Operation identifiziert. Die Server-Anwendung überträgt einen Hinweis an die wenigstens eine Client-Anwendung, wodurch die wenigstens eine Client-Anwendung informiert wird, daß der erste Operations-Identifizierer unklar war und daß die ausgewählte Operation nicht ausgeführt wurde, wenn der erste Operations-Identifizierer mehr als eine Operation identifiziert.
- Die wenigstens eine Client-Anwendung gibt eine zweite Anforderung an die Server-Anwendung aus, damit die Server-Anwendung die ausgewählte Operation ausführt, wenn der wenigstens eine Client den Hinweis von der Server-Anwendung empfängt. Die wenigstens eine Client-Anwendung identifiziert die ausgewählte Operation durch Übertragung eines zweiten Operations-Identifizierers in der zweiten Anforderung. Der zweite Operations-Identifizierer ist ein zweiter Operations-Identifizierer, welcher die ausgewählte Operation identifiziert. Der zweite Operations-Identifizierer ist ein unterschiedlicher Operations-Identifizierer gegenüber dem ersten Operations-Identifizierer.
- Die Vielzahl von Operations-Identifizierern umfasst eine Vielzahl von kurzen Operations-Identifizierern und eine Vielzahl von langen Operations-Identifizierern. Jede Operation wird identifiziert durch Identifizierung jeder Operation mit einem kurzen Operations-Identifizierer aus der Vielzahl von kurzen Operations-Identifizierern und durch Identifizieren jeder Operation durch einen langen Operations-Identifizierer aus der Vielzahl von langen Operations-Identifizierern. Der erste Operations-Identifizierer ist ein kurzer Operations-Identifizierer, der die ausgewählte Operation identifiziert. Der zweite Operations-Identifizierer ist ein langer Operations-Identifizierer, welcher die ausgewählte Operation identifiziert.
- Vorzugsweise wird jeder kurze Operations-Identifizierer hergeleitet durch Ausführung einer Kontrollsummenfunktion in einem entsprechenden langen Operations-Identifizierer.
- Nur im Wege eines Beispiels werden nunmehr bestimmte Ausführungsbeispiele der Erfindung unter Bezugnahme auf die beiliegenden Figuren beschrieben.
- Kurze Beschreibung der Zeichnungen
- Die Erfindung kann am besten verstanden werden durch Bezugnahme auf die folgende Beschreibung und die begleitenden Zeichnungen, welche die Erfindung veranschaulichen. In den Zeichnungen ist:
-
1 ein Blockdiagramm eines verteilten Systems, umfassend eine Client-Anwendung und eine Server-Anwendung gemäß einem Ausführungsbeispiel der Erfindung; -
2a ein Flussdiagramm, das die Operation der Client-Anwendung veranschaulicht, die in1 gezeigt ist; und -
2b ein Flussdiagramm, das die Operation der Server-Anwendung veranschaulicht, die in1 gezeigt ist. - Detaillierte Beschreibung der Erfindung
-
1 veranschaulicht ein Blockdiagramm eines verteilten Rechnersystems100 gemäß einem Ausführungsbeispiel der Erfindung. - System
100 umfasst zwei Prozessoren102 und104 . Der Prozessor102 bearbeitet eine Client-Anwendung106 und Client-Anschlüsse108 . Der Prozessor104 bearbeitet eine Server-Anwendung110 und Server-Anschlüsse112 . - Zum Zwecke der Erläuterung ist das System
100 mit einer 1 : 1-Entsprechung zwischen den Prozessoren und Anwendungen veranschaulicht worden. In alternativen Ausführungsbeispielen kann jedoch ein einziger Prozessor mehrere Anwendungen bearbeiten und mehrere Prozessoren können eine einzige Anwendung bearbeiten. Zum Beispiel können sowohl die Client-Anwendung106 als auch die Server-Anwendung110 durch den Prozessor102 bearbeitet werden oder Teile der Client-Anwendung106 können sowohl auf dem Prozessor102 als auch auf dem Prozessor104 bearbeitet werden. - Ebenfalls für die Zwecke der Erläuterung ist das System
100 mit nur einer Client-Anwendung und einer Server-Anwendung veranschaulicht worden. In alternativen Ausführungsbeispielen können jedoch mehrere Client-Anwendungen und mehrere Server-Anwendungen in einem verteilten System vorliegen. Das System100 ist daher als ein beispielhaftes verteiltes System zur Veranschaulichung der vorliegenden Erfindung zu betrachten und beschränkt nicht die Erfindung im Hinblick auf die Anzahl der vorliegenden Prozessoren, die Anzahl der vorliegenden Anwendungen oder die Verteilung der Anwendungen zwischen den Prozessoren. - Die Server-Anwendung
110 repräsentiert allgemein ein Programm, das in der Lage ist, irgendeine aus einer Vielzahl von Operationen aufgrund von Anforderungen von Client-Anwendungen auszuführen. Die Server-Anwendung110 umfasst allgemein eine Ausführungseinheit114 zur Ausführung von Operationen, eine Eingangseinheit116 zum Empfang von Anforderungen, um Operationen auszuführen, und eine Ausgangseinheit118 zur Übertragung der Resultate der Operationen. - Die Client-Anwendung
106 repräsentiert allgemein ein Programm zur Ausführung einer Aufgabe. Die Ausführung einer Aufgabe beinhaltet typischerweise die Ausführung einer Reihe von Operationen. Die Client-Anwendung106 umfasst eine Ausführungseinheit120 , die einige oder alle Operationen ausführen kann, die durch die Aufgabe angefordert werden, eine Ausgangseinheit122 zur Übertragung von Anforderungen für die Server-Anwendung110 zur Ausführung einiger oder aller durch die Aufgabe angeforderten Operationen und eine Eingangseinheit124 zur Aufnahme der Ergebnisse von Operationen, die die Client-Anwendung106 an die Server-Anwendung110 delegiert. - Die Client-Anschlüsse
108 und die Server-Anschlüsse112 sind Mittel, die Dialoge zwischen der Client-Anwendung106 und der Server-Anwendung110 unterstützen. Wenn speziell die Client-Anwendung106 eine Operationsanforderung an die Server-Anwendung110 sendet, packen und übertragen die Client-Anschlüsse108 die Operationsanforderung und die Server-Anschlüsse112 empfangen und entpacken die Server-Anforderung. Wenn einmal die Server-Anwendung110 die in der Operationsanforderung identifizierte Operation ausgeführt hat, packen und übertragen die Server-Anschlüsse112 die Ergebnisse der Operation und die Client-Anschlüsse108 empfangen und entpacken die Ergebnisse der Operation. Die Verwendung von Anschlüssen zur Erleichterung des Dialogs zwischen Anwendungen, die in unterschiedlichen Adressräumen oder auf unterschiedlichen Prozessoren ablaufen, ist in der Technik allgemein bekannt. - Jede durch die Server-Anwendung
110 unterstütze Operation wird vorzugsweise durch einen langen Operations-Identifizierer und einen kurzen Operations-Identifizierer identifiziert. Jeder lange Operations-Identifizierer ist eindeutig für die Operation, die er identifiziert. Die Eindeutigkeit der langen Operations-Identifizierer resultiert vorzugsweise aus der universellen Annahme bestimmter Daumenregeln für die Identifiziererauswahl. Verschiedene Gruppen von Regeln kennen die gewünschte eindeutige Entsprechung und sind dem Fachmann bekannt. Die vorliegende Erfindung ist nicht beschränkt auf irgendeine bestimmte Gruppe solcher Regeln. - Vorzugsweise wird der kurze Operations-Identifizierer einer jeden vorgegebenen Operation hergeleitet durch Ausführung einer Kontrollsummenfunktion mit dem langen Operations-Identifizierer für die vorgegebene Operation. Da Kontrollsummenfunktionen keine 1 : 1-Entsprechung erzeugen, kann jeder kurze Operations-Identifizierer mehr als eine Operation identifizieren. Zum Beispiel kann eine Kontrollsummenfunktion einen ersten langen Operations-Identifizierer „OPEN_FILE_VERSION", der eine erste Operation identifiziert, in einen kurzen Operations-Identifizierer „#5" abbilden und ein zweiter langer Operations-Identifizierer „EDIT-OPEN-FILE", der eine zweite Operation identifiziert, den gleichen kurzen Operations-Identifizierer „#5" abbilden. Infolge dessen wird der kurze Operations-Identifizierer „#5" sowohl die erste als auch die zweite Operation identifizieren.
- In dem bevorzugten Ausführungsbeispiel überträgt die Client-Anwendung
106 anfänglich Operationsanforderungen, die eine auszuführende Operation durch den kurzen Operations-Identifizierer der Operation identifizieren. Die Übertragung des kurzen Operations-Identifizierers anstelle des langen Operations-Identifizierers ist bevorzugt, um die Größe der Nachrichten zu reduzieren, die zwischen der Client-Anwendung106 und der Server-Anwendung110 übertragen werden. Die Übertragung des kurzen Operations-Identifizierers ist ebenfalls bevorzugt, da die Server-Anwendung110 die Operation basierend auf dem kurzen Operations-Identifizierer effizienter identifizieren kann als dies die Server-Anwendung110 basierend auf dem langen Operations-Identifizierer identifizieren kann. - Wie zuvor erwähnt kann ein kurzer Identifizierer mehr als eine Operation identifizieren. Wenn daher die Server-Anwendung
110 eine Operationsanforderung empfängt, die einen kurzen Identifizierer umfasst, welcher mehr als eine Operation identifiziert (ein „unklarer, kurzer Identifizierer") wird die Server-Anwendung110 nicht in der Lage sein, festzustellen, welche Operation entsprechend dem unklaren, kurzen Identifizierer auszuführen ist. Der Mechanismus zur Handhabung unklarer, kurzer Identifizierer sei nunmehr in Bezugnahme auf die2a und2b erläutert. -
2a veranschaulicht ein Flussdiagramm der Operation des Teiles der Server-Anwendung106 , die Operationen auf der Server-Anwendung110 aufruft.2b veranschaulicht ein Flussdiagramm der Operation des Teiles der Server-Anwendung110 , welche Operationsanforderungen handhabt, die durch die Client-Anwendung106 gesendet werden. - Im Schritt
200 gibt die Client-Anwendung106 einen Ruf an die Client-Anschlüsse108 aus. Der Ruf identifiziert eine Operation (die „angeforderte Operation"), die durch die Server-Anwendung110 auszuführen ist, und Werte für irgendwelche Argumente, die durch die angeforderte Operation gefordert werden. Zum Beispiel kann die Client-Anwendung106 einen Aufruf ausgeben, der die Server-Anwendung110 auffordert, die Operation „OPEN_FILE_VERSION" auszuführen. Anstelle der Verwendung des langen Operations-Identifizierers „OPEN_FILE_VERSION" in der Operations-Anforderung verwendet jedoch die Client-Anwendung den identifizierer „#5", was der kurze Operations-Identifizierer ist, der durch Ausführung einer Kontrollsummenfunktion mit dem langen Operations-Identifizierer hergeleitet wurde. - In Schritt
202 arrangieren die Client-Anschlüsse108 irgendwelche durch die angeforderte Operation erforderlichen Argumente in einem Aufrufpuffer (nicht gezeigt). Im Schritt204 übertragen die Client-Anschlüsse108 die Operationsanforderung an die Server-Anschlüsse112 . Die im Schritt204 übertragene Operationsanforderung identifiziert die angeforderte Operation durch den kurzen Operations-Identifizierer „#5". - Nunmehr der
2b zukehrend warten die Server-Anschlüsse112 anfänglich auf eingehende Operationsanforderungen, wie dies im Schritt206 gezeigt ist. Die Server-Anschlüsse112 empfangen die eingehende Operationsanforderung im Schritt208 . Die Server-Anwendung110 bestimmt sodann, ob der Operations-Identifizierer in der Operationsanforderung im Schritt220 unklar ist. Wenn der Operations-Identifizierer unklar ist, verläuft die Steuerung zu dem Schritt222 . Wenn der Operations-Identifizierer nicht unklar ist, verläuft die Steuerung sodann zum Schritt224 . - In dem vorliegenden Beispiel ist der Operations-Identifizierer in der Operationsanforderung (der „übertragene Operations-Identifizierer") der kurze Operations-Identifizierer „#5". Wenn „#5" mehr als eine durch die Server-Anwendung
110 unterstütze Operation identifiziert, dann ist sie unklar. Im vorliegenden Beispiel sei angenommen daß die Server-Anwendung110 sowohl die Operation „OPEN_FILE_VERSION" als auch die Operation "EDIT-OPEN-FILE" unterstützt und daß die kurzen Operatoren für beide dieser Operationen durch „#5" vorgegeben sind. Daher ist „#5" ein unklarer, kurzer Operations-Identifizierer und die Steuerung wird zu dem Schritt222 verlaufen. - Im Schritt
222 sendet die Server-Anwendung110 der Client-Anwendung106 eine Antwort, welche anzeigt, daß der übertragene Operations-Identifizierer unklar war und daß die angeforderte Operation daher nicht ausgeführt wurde. Die Steuerung verläuft sodann zurück zum Schritt206 , wo die Server-Anschlüsse112 die Ankunft weiterer Operationsanforderungen erwarten. - Im Schritt
226 von2a empfangen die Client-Anschlüsse108 die Antwort von der Server-Anwendung110 . Im Schritt228 bestimmt die Client-Anwendung106 , ob die Antwort anzeigt, daß der Operations-Identifizierer unklar war. Wenn der Operations-Identifizierer unklar war, verläuft die Steuerung zu dem Schritt230 . Wenn der Operations-Identifizierer nicht unklar war, verläuft die Steuerung zu dem Schritt232 . In dem vorliegenden Beispiel wird die Antwort anzeigen, daß der kurze Identifizierer „#5" unklar war. Daher verläuft die Steuerung zu dem Schritt230 . - Im Schritt
230 übertragen die Client-Anschlüsse108 die Operationsanforderung zu der Server-Anwendung110 zurück, identifizieren jedoch die angeforderte Operation durch den langen Operations-Identifizierer anstelle des kurzen Operations-Identifizierers. In dem vorliegenden Beispiel übertragen die Client-Anschlüsse108 die Operationsanforderung zurück und identifizieren die angeforderte Operation mit dem langen Operations-Identifizierer „OPEN_FILE_VERSION". - Im Schritt
208 von2b empfangen die Server-Anschlüsse112 die Operationsanforderung von den Client-Anschlüssen108 . Die Server-Anwendung110 bestimmt sodann, ob der Operations-Identifizierer in der Operationsanforderung im Schritt220 unklar ist. Wenn der Operations-Identifizierer unklar ist, verläuft die Steuerung sodann zu dem Schritt222 . Wenn der Operations-Identifizierer nicht unklar ist, verläuft dann die Steuerung zu dem Schritt224 . In dem vorliegenden Beispiel ist die Operationsanforderung der lange Operations-Identifizierer „OPEN_FILE_VERSION". Lange Operations-Identifizierer identifizieren nur eine Operation. Der lange Operations-Identifizierer „OPEN_FILE_VERSION" ist daher nicht unklar und die Steuerung wird zu dem Schritt224 verlaufen. - Im Schritt
224 rufen die Server-Anschlüsse112 irgendwelche in der Operationsanforderung gespeicherten Argumente zurück und reichen die Argumente zu der Server-Anwendung110 . Im Schritt236 rufen die Server-Anschlüsse112 die Server-Anwendung110 auf und veranlassen die Ausführungseinheit114 der Server-Anwendung110 zur Bearbeitung der Operation, die in der Operationsanforderung identifiziert ist, unter Verwendung von Werten, die von der Operationsanforderung zurückgeholt werden. In dem vorliegenden Beispiel führt die Server-Anwendung110 die Operation „OPEN_FILE_VERSION" aus. - Im Schritt
238 arrangieren die Server-Anschlüsse112 die Ergebnisse der ausgeführten Operation in einem Antwortpuffer. Wenn zum Beispiel die ausgeführte Operation eine Multiplikation von zwei Werten war, dann wird das Produkt der zwei Werte in dem Antwortpuffer durch die Server-Anschlüsse112 abgelegt. Wenn die Ergebnisse der Operation arrangiert worden sind, senden die Server-Anschlüsse112 die Antwort in dem Antwortpuffer zu den Client-Anschlüssen108 im Schritt240 . Nachdem die Antwort gesendet worden ist, verläuft die Steuerung zurück zu dem Schritt206 , wo die Server-Anschlüsse112 auf eine Operationsanforderung warten. - Im Schritt
242 in2a empfangen die Client-Anschlüsse108 die Antwort von der Server-Anwendung110 . Da die letzte übertragene Anforderung die angeforderte Operation durch ihren langen Operations- Identifizierer identifizierte, kann angenommen werden, daß die Server-Anwendung110 die Operation ausführte und daß die Antwort die Ergebnisse der Operation enthält. Daher holen im Schritt232 die Client-Anschlüsse108 die Resultate von der Antwort zurück. Im Schritt244 holen die Client-Anschlüsse108 die Ergebnisse der Operation zu der Client-Anwendung106 zurück. - Wenn der kurze Identifizierer der angeforderten Operation nicht unklar gewesen ist, wird die Server-Anwendung
110 die angeforderte Operation ohne weiteren Dialog mit der Client-Anwendung106 ausgeführt haben. Da eine gute Kontrollsummenfunktion kaum doppelte kurze Identifizierer erzeugen wird, wird eine zusätzliche Kommunikation zwischen den Anwendungen in der meisten Zeit nicht erforderlich sein. In dem seltenen Fall, daß ein kurzer Identifizierer unklar ist, wird jedoch das System100 nicht einfach zusammenbrechen oder unvorhersagbare Resultate erzeugen. Eine besonders wirksame Kontrollsummenfunktion liegt zunächst in der Verschlüsselung des langen Operations-Identifizierers mit einer Standard-Verschlüsselungsfunktion, wie zum Beispiel DES, und sodann der Berechnung einer 32 bit-CRC (zyklische Redundanzprüfung)-Prüfsumme des verschlüsselten Wertes. Die gegenwärtig bevorzugte Kontrollsummenfunktion ist eine einfache 32 bit-CRC-Prüfsumme des langen Operations-Identifizierers. - Gemäß einem Ausführungsbeispiel kann die Client-Anwendung
106 das Vorliegen eines langen Operations-Identifizierers in einer Operationsanforderung anzeigen durch Übertragung zusammen mit der Operationsanforderung eines reservierten Wortes anstelle eines kurzen Operations-Identifizierers. Wenn die Server-Anwendung110 eine Operationsanforderung mit dem reservierten Wort als kurzen Identifizierer empfängt, so weiß die Server-Anwendung110 , den langen Operations-Identifizierer aus der Operationsanforderung herauszuziehen. - In dem bevorzugten Ausführungsbeispiel ist das System
100 ein Objekt-orientiertes System. Daher sind die Operationen, die in Operationsanforderungen angefordert werden und durch die Server-Anwendung110 ausgeführt werden, Verfahren, die zu Objekten gehören, die durch die Server-Anwendung110 unterstützt werden. Die vorliegende Erfindung ist jedoch nicht auf Objekt-orientierte Systeme beschränkt. Zum Beispiel können die Operationen, die in Operationsanforderungen angefordert werden, einfach Prozeduren sein, die die Client-Anwendung106 in der Server-Anwendung110 aufzurufen wünscht. In diesem Zusammenhang ist eine Prozedur irgendeine Operation, die nicht einem Objekt zugeordnet ist. - Vorzugsweise können sowohl von der Server-Anwendung als auch der Client-Anwendung die langen Operations-Identifizierer und die Kontrollsummenfunktion benutzt werden, um die kurzen Operations-Identifizierer zu bilden. Daher können die Server- und Client-Anwendungen unabhängig identische kurze Operations-Identifizierer aus der Gruppe von langen Operations-Identifizierern erzeugen. Zusätzlich kennt die Server-Anwendung
110 vorzugsweise die gesamte Liste der langen Operations-Identifizierer zu der Zeit, wo die Server-Anwendung110 kompiliert wird. Während die Objekte in der Server-Anwendung110 kompiliert werden, können daher alle kurzen Operations-Identifizierer bestimmt werden. Infolge dessen können irgendwelche Kollisionen zwischen irgendwelchen kurzen Operations-Identifizierern festgestellt werden. Da die Kollisionen zu der Kompilierungszeit festgestellt werden, kann die Server-Anwendung110 einen Code umfassen, der erzeugt wurde, um die spezifischen festgestellten Kollisionen der kurzen Identifizierer zu handhaben. - Während spezifische Ausführungsbeispiele der vorliegenden Erfindung beschrieben worden sind, liegen verschiedene Modifikationen und Substitutionen dieser Offenbarung dem Fachmann auf der Hand. Solche Modifikationen und Substitutionen liegen im Rahmen der vorliegenden Erfindung und sollen durch die folgenden Ansprüche abgedeckt werden.
Claims (20)
- Verteiltes Rechnersystem (
100 ), umfassend: mindestens einen Prozessor (102 ,104 ), der eine Client-Anwendung (106 ) ausführt; und eine Server-Anwendung (110 ), wobei die Sever-Anwendung an die Client-Anwendung gekoppelt ist; wobei die Server-Anwendung eine Mehrzahl von Operationen ausführt, wobei jede Operation aus der Mehrzahl von Operationen durch mindestens einen Operationsidentifizierer aus einer Mehrzahl von Operationsidentifizierern identifiziert wird, wobei jeder Operationsidentifizierer aus der Mehrzahl von Operationsidentifizierern eine oder mehrere Operationen aus der Mehrzahl von Operationen identifiziert; wobei die Client-Anwendung eine erste Auffozderung, damit die Server-Anwendung eine ausgewählte Operation aus der Mehrzahl von Operationen durchführt, an die Server-Anwendung ausgibt (204 ), wobei die Client-Anwendung die ausgewählte Operation durch Senden eines ersten Operationsidentifizierers in der ersten Aufforderung identifiziert, wobei der erste Operationsidentifizierer ein erster Operationsidentifizierer aus der Mehrzahl von Operationsidentifizierern ist, welcher die ausgewählte Operation identifiziert; dadurch gekennzeichnet, dass die Server-Anwendung die ausgewählte Operation durchführt (236 ), wenn der erste Operationsidentifizierer nur die ausgewählte Operation identifiziert; und wobei die Server-Anwendung eine Mitteilung an die Client-Anwendung sendet (222 ), welche die Client-Anwendung darüber in Kenntnis setzt, dass der erste Operationsidentifizierer auf Grund seiner Kürze mehrdeutig war und die ausgewählte Operation nicht durchgeführt wurde, wenn der erste Operationsidentifizierer mehr als eine Operation aus der Mehrzahl von Operationen identifiziert. - Verteiltes Rechnersystem nach Anspruch 1, wobei die Client-Anwendung eine zweite Aufforderung, damit die Server-Anwendung die ausgewählte Operation durchführt, an die Server-Anwendung ausgibt (
230 ), wenn der Client die Mitteilung von der Server-Anwendung empfängt (226 ), wobei die Client-Andwendung die ausgewählte Operation durch Senden eines zweiten Operationidentifizierers in der zweiten Aufforderung identifiziert, wobei der zweite Operationsidentifizierer ein zweiter Operationsidentifizierer aus der Mehrzahl von Operationsidentifizierern ist, welcher die ausgewählte Operation identifiziert, wobei der zweite Operationsidentifizierer ein anderer Operationsidentifizierer als der erste Operationsidentifizierer ist. - Verteiltes Rechnersystem nach Anspruch 2, wobei die Mehrzahl von Operationsidetifiziern eine Mehrzahl kurzer Operationsidentifizierer und eine Mehrzahl langer Operationsidentifizierer umfasst, wobei jede Operation aus der Mehzahl von Operationen durch einen kurzen Operationsidentifizierer aus der Mehrzahl kurzer Operationsidentifizierer identifiziert wird, wobei jede Operation aus der Mehrzahl von Operationen weiterhin durch einen langen Operationsidentifiziezer aus der Mehrzahl langer Operationsidentifizierer identifiziert wird.
- Verteiltes Rechnersystem nach Anspruch 3, wobei der erste Operationsidentifizierer ein kurzer Operationsidentifizierer aus der Mehrzahl kurzer Operationsidentifizierer ist, welcher die ausgewählte Operation identifiziert, wobei der zweite Operationsidentifizierer ein langer Operationsidentifizierer aus der Mehrzahl langer Operationsidentifizierer ist, welcher die ausgewählte Operation identifiziert.
- Verteiltes Rechnersystem nach Anspruch 4, wobei jeder kurze Operationsidentifizierer aus der Mehrzahl kurzer Operationsidentifizierer durch Durchführen einer Hash-Funktion hinsichtlich eines langen Operationsidentifizierers aus der Mehrzahl langer Operationsidentifizierer abgeleitet wird, wobei ein kurzer Operationsidentifizierer, der durch Durchführen der Hash-Funktion hinsichtlich eines bestimmten langen Operationsidentifizierers abgeleitet wird, dieselbe Operation wie der bestimmte lange Operationsidentifizierer identifiziert.
- Verteiltes Rechnersystem nach Anspruch 5, wobei die Hash-Funktion sowohl der Client-Anwendung als auch der Server-Anwendung bekannt ist, wobei sowohl die Client-Anwendung als auch die Server-Anwendung unabhängig die Mehrzahl kurzer Operationsidentifizierer aus der Mehrzahl langer Operationsidentifizierer ableitet.
- Verteiltes Rechnersystem nach Anspruch 1, wobei die Mehrzahl von Operationen eine Mehrzahl von Prozeduren ist.
- Verteiltes Rechnersystem nach Anspruch 1, wobei die Mehrzahl von Operationen eine Mehrzahl von Verfahren sind, welche auf mindestens einem Objekt, das von der Server-Anwendung unterstützt wird, aufzurufen sind.
- Verteiltes Rechnersystem nach Anspruch 6, wobei die Mehrzahl von Operationen eine Mehrzahl von Verfahren ist, welche auf mindestens einem Objekt, das von der Server-Anwendung unterstützt wird, aufzurufen sind, wobei sich die Server-Anwendung der Mehrzahl langer Operationsidentifizierer, welche durch das mindestens eine Objekt unterstützt werden, gewahr ist, wobei die Server-Anwendung bestimmt, welche kurzen Operationsidentifizierer aus der Mehrzahl kurzer Operations identifizierer mehrdeutig sind, wenn das mindestens eine Objekt kompiliert wird.
- Datenspeichermittel, welches eine Server-Anwendung zur Verwendung in einem verteilten Rechnersystem enthält, wobei das verterlte Rechnersystem mindestens einen Prozessor (
102 ,104 ) umfasst, der die Server-Anwendung und mindestens eine Client-Anwendung ausführt, wobei die Server-Anwendung umfasst: eine Ausführungseinheit (114 ); eine Eingabeeinheit (116 ), die wirkend mit der Ausführungseinheit und der Server-Anwendung gekoppelt ist; eine Ausgabeeinheit (118 ), die wirkend mit der Ausführungseinheit und der Server-Anwendung gekoppelt ist; wobei die Ausführungseinheit eine Mehrzahl von Operationen ausführt, wobei jede Operation aus der Mehrzahl von Operationen durch mindestens einen Operationsidentifizierer aus einer Mehrzahl von Operationsidentifizierern identifiziert wird, wobei jeder Operationsidentifizierer aus der Mehrzahl von Operationsidentifizierern eine oder mehrere Operationen aus der Mehrzahl von Operationen identifiziert; wobei die Eingabeeinheit eine erste Aufforderung von der mindestens einen Client-Anwendung empfängt (208 ), wobei die erste Aufforderung die Server-Anwendung dazu auffordert, eine ausgewählte Operation aus der Mehrzahl von Operationen durchzuführen, wobei die erste Aufforderung die ausgewählte Operation durch einen ersten Operationsidentifizierer identifiziert, wobei der erste Operationsidentifizierer ein erster Operationsidentifizierer aus der Mehrzahl von Operationsidentifizierern ist, welcher die ausgewählte Operation identifiziert; dadurch gekennzeichnet, dass die Ausführungseinheit die ausgewählte Operation ausführt (236 ), wenn der erste Operationsidentifizierer nur die ausgewählte Operation identifiziert; und wobei die Ausgabeeinheit eine Mitteilung an die mindestens eine Client-Anwendung sendet (222 ), welche die mindestens eine Client-Anwendung darüber in Kenntnis setzt, dass der erste Operationsidentifizierer auf Grund seiner Kürze mehrdeutig war und die ausgewählte Operation nicht durchgeführt wurde, wenn der erste Operationsidentifizierer mehr als eine Operation aus der Mehrzahl von Operationen identifiziert. - Datenspeiehermittel nach Anspruch 10, wobei, in der Server-Anwendung, die Eingabeeinheit eine zweite Aufforderung, damit die Server-Anwendung die ausgewählte Operation durchführt, von der mindestens einen Client-Anwendung empfängt, wenn die Client-Anwendung die Mitteilung von der Server-Anwendung empfängt, wobei die ausgewählte Operation durch einen zweiten Operationsidentifizierer in der zweiten Aufforderung identifiziert wird, wobei der zweite Operationsidentifizierer ein zweiter Operationsidentifizierer aus der Mehrzahl von Operationsidentifizierern ist, welcher die ausgewählte Operation identifiziert, wobei der zweite Operationsidentifizierer ein anderer Operationsidentifizierer als der erste Operationsidentifizierer ist.
- Datenspeichermittel nach Anspruch 11, wobei, in der Server-Anwendung, die Mehrzahl von Operationsidentifizierern eine Mehrzahl kurzer Operationsidentifizierer und eine Mehrzahl langer Operationsidentifizierer umfasst, wobei jede Operation aus der Mehrzahl von Operationen durch einen kurzen Operationsidentifizierer aus der Mehrzahl kurzer Operationsidentifizierer identifiziert wird, wobei jede Operation aus der Mehrzahl von Operationen weiterhin durch einen langen Operationsidentifizierer aus der Mehrzahl langer Operationsidentifizierer identifiziert wird.
- Datenspeichermittel nach Anspruch 12, wobei, in der Server-Anwendung, der erste Operationsidentifizierer ein kurzer Operationsidentifizierer aus der Mehrzahl kurzer Operationsidentifizierer ist, welcher die ausgewählte Operation identifiziert, wobei der zweite Operationsidentifizierer ein langer Operationsidentifizierer aus der Mehrzahl langer Operationsidentifizierer ist, welcher die ausgewählte Operation identifiziert.
- Datenspeichermittel nach Anspruch 13, wobei, in der Server-Anwendung, die Server-Anwendung jeden kurzen Operationsidentifizierer aus der Mehrzahl kurzer Operationsidentifizierer durch Durchführen einer Hash-Funktion hinsichtlich eines entsprechenden langen Operationsidentifizierers aus der Mehrzahl langer Operationsidentifizierer ableitet, wobei ein kurzer Operationsidentifizierer, der durch Durchführen der Hash-Funktion hinsichtlich eines bestimmten langen Operationsidentifizierers abgeleitet wird, dieselbe Operation wie der bestimmte lange Operationsidentifizierer identifiziert.
- Datenspeichermittel nach Anspruch 10, wobei, in der Server-Anwendung, die Mehrzahl von Operationen eine Mehrzahl von Verfahren sind, welche auf mindestens einem Objekt, das von der Server-Anwendung unterstützt wird, aufzurufen sind.
- Datenspeichermittel nach Anspruch 14, wobei, in der Server-Anwendung, die Mehrzahl von Operationen eine Mehrzahl von Verfahren ist, welche auf mindestens einem Objekt, das von der Server-Anwendung unterstützt wird, aufzurufen sind, wobei sich die Server-Anwendung der Mehrzahl langer Operationsidentifizierer, welche durch das mindestens eine Objekt unterstützt werden, gewahr ist, wobei die Server-Anwendung bestimmt, welche kurzen Operationsidentifizierer aus der Mehrzahl kurzer Operationsidentifizierer mehrdeutig sind, wenn das mindestens eine Objekt kompiliert wird.
- Verfahren zum Handhaben mehrdeutiger Identifizierer in einem verteilten Rechnersystem, wobei das verteilte Rechnersystem mindestens einen Prozessor (
102 ,104 ) umfasst, der eine Server-Anwendung (110 ) und mindestens eine Client-Anwendung (106 ) ausführt, wobei die Server-Anwendung in der Lage ist, eine Mehrzahl von Operationen auszuführen, wobei das Verfahren folgende Schritte umfasst: Identifizieren jeder Operation aus der Mehrzahl von Operationen durch mindestens einen Operationsidentifizierer aus einer Mehrzahl von Operationsidentifizierern, wobei jeder Operationsidentifizierer aus der Mehrzahl von Operationsidentifizierern eine oder mehrere Operationen aus der Mehrzahl von Operationen identifiziert; Veranlassen, dass die mindestens eine Client-Anwendung eine erste Aufforderung, damit die Server-Anwendung eine ausgewählte Operation aus der Mehrzahl von Operationen durchführt, an die Server-Anwendung ausgibt (204 ), wobei die mindestens eine Client-Anwendung die ausgewählte Operation durch Senden eines ersten Operationsidentifizierers in der ersten Aufforderung identifiziert, wobei der erste Operationsidentifizierer ein erster Operationsidentifizierer aus der Mehrzahl von Operationsidentifizierern ist, welcher die ausgewählte Operation identifiziert; gekennzeichnet durch veranlassen, dass die Server-Anwendung die ausgewählte Operation durchführt (236 ), wenn der erste Operationsidentifizierer nur die ausgewählte Operation identifiziert; und Veranlassen, dass die Server-Anwendung eine Mitteilung an die mindestens eine Client-Anwendung sendet (222 ), welche die mindestens eine Client-Anwendung darüber in Kenntnis setzt, dass der erste Operationsidentifizierer auf Grund seiner Kürze mehrdeutig war und die ausgewählte Operation nicht durchgeführt wurde, wenn der erste Operationsidentifizierer mehr als eine Operation aus der Mehrzahl von Operationen identifiziert. - Verfahren nach Anspruch 17, weiterhin umfassend den Schritt des Veranlassens, dass die mindestens eine Client-Anwendung eine zweite Aufforderung, damit die Server-Anwendung die ausgewählte Operation durchführt, an die Server-Anwendung ausgibt (
230 ), wenn der mindestens eine Client die Mitteilung von der Server-Anwendung empfängt, wobei die mindestens eine Client-Anwendung die ausgewählte Operation durch Senden eines zweiten Operationsidentifizierers in der zweiten Aufforderung identifiziert, wobei der zweite Operationsidentifizierer ein zweiter Operationsidentifizierer aus der Mehrzahl von Operationsidentifizierern ist, welcher die ausgewählte Operation identifiziert, wobei der zweite Operationsidentifizierer ein anderer Operationsidentifizierer als der erste Operationsidentifizierer ist. - Verfahren nach Anspruch 18, wobei die Mehrzahl von Operationsidentifizierern eine Mehrzahl kurzer Operationsidentifizierer und eine Mehrzahl langer Operationsidentifizierer umfasst, wobei der Schritt des Identifizierens jeder Operation aus der Mehrzahl von Operationen folgende Schritte umfasst: Identifizieren jeder Operation aus der Mehrzahl von Operationen durch einen kurzen Operationsidentifizierer aus der Mehrzahl kurzer Operationsidentifizierer; und Identifizieren jeder Operation aus der Mehrzahl von Operationen durch einen langen Operationsidentifizierer aus der Mehrzahl langer Operationsidentifizierer; wobei der erste Operationsidentifizierer ein kurzer Operationsidentifizierer aus der Mehrzahl kurzer Operationsidentifizierer ist, welcher die ausgewählte Operation identifiziert, wobei der zweite Operationsidentifizierer ein langer Operationsidentifizierer aus der Mehrzahl langer Operationsidentifizierer ist, welcher die ausgewählte Operation identifiziert.
- Verfahren nach Anspruch 19, weiterhin umfassend den Schritt des Ableitens jedes kurzen Operationsidentifizierers aus der Mehrzahl kurzer Operationsidentifizierer durch Durchführen einer Hash-Funktion hinsichtlich eines entsprechenden langen Operationsidentifizierers aus der Mehrzahl langer Operationsidentifizierer, wobei ein kurzer Operationsidentifizierer, der durch Durchführen der Hash-Funktion hinsichtlich eines bestimmten langen Operationsidentifizierers abgeleitet wird, dieselbe Operation wie der bestimmte lange Operationsidentifizierer identifiziert.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US24989094A | 1994-05-26 | 1994-05-26 | |
US249890 | 1994-05-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69533148D1 DE69533148D1 (de) | 2004-07-22 |
DE69533148T2 true DE69533148T2 (de) | 2005-08-25 |
Family
ID=22945442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69533148T Expired - Fee Related DE69533148T2 (de) | 1994-05-26 | 1995-04-21 | Verfahren und Gerät zur Erzeugung und Verwendung kurzer Operationsidentifizierer in objektorientierten Systemen |
Country Status (4)
Country | Link |
---|---|
US (1) | US5640564A (de) |
EP (1) | EP0684553B1 (de) |
JP (1) | JPH07325790A (de) |
DE (1) | DE69533148T2 (de) |
Families Citing this family (100)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6044205A (en) * | 1996-02-29 | 2000-03-28 | Intermind Corporation | Communications system for transferring information between memories according to processes transferred with the information |
US5694546A (en) | 1994-05-31 | 1997-12-02 | Reisman; Richard R. | System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list |
EP0733972B1 (de) * | 1995-03-22 | 2003-07-09 | Sun Microsystems, Inc. | Verfahren und Gerät zum Verwalten von Beziehungen zwischen Objekten in einer verteilten Objektumgebung |
AU5386796A (en) * | 1995-04-11 | 1996-10-30 | Kinetech, Inc. | Identifying data in a data processing system |
US6625617B2 (en) | 1996-01-02 | 2003-09-23 | Timeline, Inc. | Modularized data retrieval method and apparatus with multiple source capability |
US6374287B1 (en) * | 1996-01-24 | 2002-04-16 | Sun Microsystems, Inc. | Method and system for allowing client processes to run on distributed window server extensions |
US5862325A (en) * | 1996-02-29 | 1999-01-19 | Intermind Corporation | Computer-based communication system and method using metadata defining a control structure |
US6446135B1 (en) * | 1996-03-05 | 2002-09-03 | Microsoft Corporation | Method and system for querying and executing commands of an application program |
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 |
US6182083B1 (en) | 1997-11-17 | 2001-01-30 | Sun Microsystems, Inc. | Method and system for multi-entry and multi-template matching in a database |
US6237024B1 (en) | 1998-03-20 | 2001-05-22 | Sun Microsystem, Inc. | Method and apparatus for the suspension and continuation of remote processes |
US6247026B1 (en) | 1996-10-11 | 2001-06-12 | Sun Microsystems, Inc. | Method, apparatus, and product for leasing of delegation certificates in a distributed system |
US6708171B1 (en) | 1996-04-23 | 2004-03-16 | Sun Microsystems, Inc. | Network proxy |
US6598094B1 (en) | 1998-03-20 | 2003-07-22 | Sun Microsystems, Inc. | Method and apparatus for determining status of remote objects in a distributed system |
US6832223B1 (en) | 1996-04-23 | 2004-12-14 | Sun Microsystems, Inc. | Method and system for facilitating access to a lookup service |
US6393497B1 (en) | 1998-03-20 | 2002-05-21 | Sun Microsystems, Inc. | Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system |
US6282652B1 (en) | 1998-02-26 | 2001-08-28 | Sun Microsystems, Inc. | System for separately designating security requirements for methods invoked on a computer |
US6438614B2 (en) | 1998-02-26 | 2002-08-20 | Sun Microsystems, Inc. | Polymorphic token based control |
US6560656B1 (en) | 1998-02-26 | 2003-05-06 | Sun Microsystems, Inc. | Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system |
US6487607B1 (en) | 1998-02-26 | 2002-11-26 | Sun Microsystems, Inc. | Methods and apparatus for remote method invocation |
US6466947B2 (en) | 1998-03-20 | 2002-10-15 | Sun Microsystems, Inc. | Apparatus and method for dynamically verifying information in a distributed system |
US6421704B1 (en) | 1998-03-20 | 2002-07-16 | Sun Microsystems, Inc. | Method, apparatus, and product for leasing of group membership in a distributed system |
US6272559B1 (en) | 1997-10-15 | 2001-08-07 | Sun Microsystems, Inc. | Deferred reconstruction of objects and remote loading for event notification in a distributed system |
US6578044B1 (en) | 1997-11-17 | 2003-06-10 | Sun Microsystems, Inc. | Method and system for typesafe attribute matching |
US6138238A (en) | 1997-12-11 | 2000-10-24 | Sun Microsystems, Inc. | Stack-based access control using code and executor identifiers |
US6446070B1 (en) | 1998-02-26 | 2002-09-03 | Sun Microsystems, Inc. | Method and apparatus for dynamic distributed computing over a network |
US6134603A (en) * | 1998-03-20 | 2000-10-17 | Sun Microsystems, Inc. | Method and system for deterministic hashes to identify remote methods |
US6185611B1 (en) | 1998-03-20 | 2001-02-06 | Sun Microsystem, Inc. | Dynamic lookup service in a distributed system |
US6463446B1 (en) | 1998-02-26 | 2002-10-08 | Sun Microsystems, Inc. | Method and apparatus for transporting behavior in an event-based distributed system |
US6226746B1 (en) | 1998-03-20 | 2001-05-01 | Sun Microsystems, Inc. | Stack-based system and method to combine security requirements of methods |
US8229844B2 (en) | 1996-06-05 | 2012-07-24 | Fraud Control Systems.Com Corporation | Method of billing a purchase made over a computer network |
US20030195848A1 (en) | 1996-06-05 | 2003-10-16 | David Felger | Method of billing a purchase made over a computer network |
US7555458B1 (en) | 1996-06-05 | 2009-06-30 | Fraud Control System.Com Corporation | Method of billing a purchase made over a computer network |
US5828840A (en) * | 1996-08-06 | 1998-10-27 | Verifone, Inc. | Server for starting client application on client if client is network terminal and initiating client application on server if client is non network terminal |
US6336148B1 (en) * | 1996-09-25 | 2002-01-01 | Sun Microsystems, Inc. | Automatic checking of public contracts and private constraints on distributed objects |
US6237009B1 (en) | 1996-10-11 | 2001-05-22 | Sun Microsystems, Inc. | Lease renewal service |
US6728737B2 (en) | 1996-10-11 | 2004-04-27 | Sun Microsystems, Inc. | Method and system for leasing storage |
US5832529A (en) | 1996-10-11 | 1998-11-03 | Sun Microsystems, Inc. | Methods, apparatus, and product for distributed garbage collection |
US6219717B1 (en) * | 1996-11-20 | 2001-04-17 | Merrill Lynch & Co., Inc. | Method and apparatus for implementing object transparent invocation |
US6157960A (en) * | 1997-05-07 | 2000-12-05 | International Business Machines Corporation | Technique for programmatically creating distributed object programs |
US6253256B1 (en) | 1997-10-15 | 2001-06-26 | Sun Microsystems, Inc. | Deferred reconstruction of objects and remote loading in a distributed system |
US6957427B1 (en) | 1997-10-15 | 2005-10-18 | Sun Microsystems, Inc. | Remote object activation in a distributed system |
CN1298514A (zh) * | 1998-02-26 | 2001-06-06 | 太阳微系统公司 | 确定性散列识别远程方法的方法和系统 |
US6604127B2 (en) | 1998-03-20 | 2003-08-05 | Brian T. Murphy | Dynamic lookup service in distributed system |
JPH11312151A (ja) | 1998-04-28 | 1999-11-09 | Hitachi Ltd | 高速な分散オブジェクトリクエストブローカ |
DE19835216B4 (de) * | 1998-08-05 | 2005-10-27 | Systemonic Ag | Prozessor und Verfahren zur parallelen Datenverarbeitung |
US20040154027A1 (en) * | 1998-10-14 | 2004-08-05 | Jean-Jacques Vandewalle | Method and means for managing communications between local and remote objects in an object oriented client server system in which a client application invokes a local object as a proxy for a remote object on the server |
US6901518B1 (en) | 1999-04-08 | 2005-05-31 | Sun Microsystems, Inc. | Method and system for establishing trust in downloaded proxy code |
US6877163B1 (en) | 1999-06-14 | 2005-04-05 | Sun Microsystems, Inc. | Method and system for dynamic proxy classes |
US7080078B1 (en) | 2000-05-09 | 2006-07-18 | Sun Microsystems, Inc. | Mechanism and apparatus for URI-addressable repositories of service advertisements and other content in a distributed computing environment |
US8001232B1 (en) | 2000-05-09 | 2011-08-16 | Oracle America, Inc. | Event message endpoints in a distributed computing environment |
US6850979B1 (en) | 2000-05-09 | 2005-02-01 | Sun Microsystems, Inc. | Message gates in a distributed computing environment |
US6789077B1 (en) | 2000-05-09 | 2004-09-07 | Sun Microsystems, Inc. | Mechanism and apparatus for web-based searching of URI-addressable repositories in a distributed computing environment |
US6970869B1 (en) | 2000-05-09 | 2005-11-29 | Sun Microsystems, Inc. | Method and apparatus to discover services and negotiate capabilities |
US8082491B1 (en) | 2000-05-09 | 2011-12-20 | Oracle America, Inc. | Dynamic displays in a distributed computing environment |
US6973493B1 (en) | 2000-05-09 | 2005-12-06 | Sun Microsystems, Inc. | Mechanism and apparatus for security of newly spawned repository spaces in a distributed computing environment |
US7065574B1 (en) | 2000-05-09 | 2006-06-20 | Sun Microsystems, Inc. | Messaging system using pairs of message gates in a distributed computing environment |
US7243356B1 (en) | 2000-05-09 | 2007-07-10 | Sun Microsystems, Inc. | Remote method invocation with secure messaging in a distributed computing environment |
US6789126B1 (en) | 2000-05-09 | 2004-09-07 | Sun Microsystems, Inc. | Addressing message gates in a distributed computing environment |
US6643650B1 (en) | 2000-05-09 | 2003-11-04 | Sun Microsystems, Inc. | Mechanism and apparatus for using messages to look up documents stored in spaces in a distributed computing environment |
US7370091B1 (en) | 2000-05-09 | 2008-05-06 | Sun Microsystems, Inc. | Method and apparatus for obtaining space advertisements |
US6917976B1 (en) | 2000-05-09 | 2005-07-12 | Sun Microsystems, Inc. | Message-based leasing of resources in a distributed computing environment |
US6950875B1 (en) | 2000-05-09 | 2005-09-27 | Sun Microsystems, Inc. | Message conductors in a distributed computing environment |
US7577834B1 (en) | 2000-05-09 | 2009-08-18 | Sun Microsystems, Inc. | Message authentication using message gates in a distributed computing environment |
US7395333B1 (en) | 2000-05-09 | 2008-07-01 | Sun Microsystems, Inc. | Method and apparatus to obtain negotiated service advertisement |
US7072967B1 (en) | 2000-05-09 | 2006-07-04 | Sun Microsystems, Inc. | Efficient construction of message endpoints |
US6862594B1 (en) | 2000-05-09 | 2005-03-01 | Sun Microsystems, Inc. | Method and apparatus to discover services using flexible search criteria |
US7260543B1 (en) | 2000-05-09 | 2007-08-21 | Sun Microsystems, Inc. | Automatic lease renewal with message gates in a distributed computing environment |
US7010573B1 (en) | 2000-05-09 | 2006-03-07 | Sun Microsystems, Inc. | Message gates using a shared transport in a distributed computing environment |
US7188251B1 (en) | 2000-05-09 | 2007-03-06 | Sun Microsystems, Inc. | System and method for secure message-based leasing of resources in a distributed computing environment |
US8135796B1 (en) | 2000-05-09 | 2012-03-13 | Oracle America, Inc. | Mechanism and apparatus for accessing and addressing services in a distributed computing environment |
US6918084B1 (en) | 2000-05-09 | 2005-07-12 | Sun Microsystems, Inc. | Spawning new repository spaces using information provided in advertisement schema messages |
US7716492B1 (en) | 2000-05-09 | 2010-05-11 | Oracle America, Inc. | Method and apparatus to obtain service capability credentials |
US7200848B1 (en) | 2000-05-09 | 2007-04-03 | Sun Microsystems, Inc. | Migrating processes using data representation language representations of the processes in a distributed computing environment |
US6868447B1 (en) | 2000-05-09 | 2005-03-15 | Sun Microsystems, Inc. | Mechanism and apparatus for returning results of services in a distributed computing environment |
US6898618B1 (en) | 2000-05-09 | 2005-05-24 | Sun Microsystems, Inc. | Client-specified display services in a distributed computing environment |
US6792466B1 (en) | 2000-05-09 | 2004-09-14 | Sun Microsystems, Inc. | Trusted construction of message endpoints in a distributed computing environment |
US7016966B1 (en) | 2000-05-09 | 2006-03-21 | Sun Microsystems, Inc. | Generating results gates in a distributed computing environment |
US6865657B1 (en) | 2000-06-02 | 2005-03-08 | Sun Microsystems, Inc. | Garbage collector for a virtual heap |
US6941410B1 (en) | 2000-06-02 | 2005-09-06 | Sun Microsystems, Inc. | Virtual heap for a virtual machine |
US6854115B1 (en) | 2000-06-02 | 2005-02-08 | Sun Microsystems, Inc. | Process persistence in a virtual machine |
US6957237B1 (en) | 2000-06-02 | 2005-10-18 | Sun Microsystems, Inc. | Database store for a virtual heap |
US6763440B1 (en) | 2000-06-02 | 2004-07-13 | Sun Microsystems, Inc. | Garbage collection using nursery regions for new objects in a virtual heap |
US6760815B1 (en) * | 2000-06-02 | 2004-07-06 | Sun Microsystems, Inc. | Caching mechanism for a virtual heap |
US7296275B2 (en) | 2001-01-04 | 2007-11-13 | Sun Microsystems, Inc. | Method and system for passing objects in a distributed system using serialization contexts |
US7756969B1 (en) | 2001-09-07 | 2010-07-13 | Oracle America, Inc. | Dynamic provisioning of identification services in a distributed system |
US7660887B2 (en) * | 2001-09-07 | 2010-02-09 | Sun Microsystems, Inc. | Systems and methods for providing dynamic quality of service for a distributed system |
US7181747B2 (en) * | 2001-10-01 | 2007-02-20 | Canon Kabushiki Kaisha | Method and device for executing a function with selection and sending of multiple results in a client-server environment |
AU2003264208A1 (en) * | 2002-09-06 | 2004-03-29 | Eftia Oss Solutions Inc. | System-to-system inter-operation interface |
US7818729B1 (en) | 2003-09-15 | 2010-10-19 | Thomas Plum | Automated safe secure techniques for eliminating undefined behavior in computer software |
US7856624B2 (en) * | 2003-09-15 | 2010-12-21 | Thomas Plum | Automated safe secure techniques for eliminating undefined behavior in computer software |
WO2005029241A2 (en) * | 2003-09-15 | 2005-03-31 | Plum Thomas S | Automated safe secure techniques for eliminating |
US7810080B2 (en) * | 2003-09-15 | 2010-10-05 | Thomas Plum | Automated safe secure techniques for eliminating undefined behavior in computer software |
US7792874B1 (en) | 2004-01-30 | 2010-09-07 | Oracle America, Inc. | Dynamic provisioning for filtering and consolidating events |
US7657543B1 (en) * | 2004-10-12 | 2010-02-02 | Sun Microsystems, Inc. | Method and system for creating and using shadow roots |
US7698703B2 (en) * | 2005-06-29 | 2010-04-13 | Gemalto Inc. | Imparting digital uniqueness to the types of a programming language using a unique digital sequence |
US8185576B2 (en) | 2006-03-14 | 2012-05-22 | Altnet, Inc. | Filter for a distributed network |
US8589592B2 (en) * | 2007-12-11 | 2013-11-19 | Red Hat, Inc. | Efficient object distribution |
US8418164B2 (en) | 2008-05-29 | 2013-04-09 | Red Hat, Inc. | Image install of a network appliance |
DE102009059939A1 (de) * | 2009-12-22 | 2011-06-30 | Giesecke & Devrient GmbH, 81677 | Verfahren zum Komprimieren von Bezeichnern |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4882674A (en) * | 1985-03-05 | 1989-11-21 | Wang Laboratories, Inc. | Apparatus and method for control of one computer system by another computer system |
US5187790A (en) * | 1989-06-29 | 1993-02-16 | Digital Equipment Corporation | Server impersonation of client processes in an object based computer operating system |
US5218699A (en) * | 1989-08-24 | 1993-06-08 | International Business Machines Corporation | Remote procedure calls in heterogeneous systems |
AU639802B2 (en) * | 1990-08-14 | 1993-08-05 | Oracle International Corporation | Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment |
JP3055970B2 (ja) * | 1991-06-20 | 2000-06-26 | 富士通株式会社 | オブジェクト指向言語間インタフェース実現方法および装置 |
US5367635A (en) * | 1991-08-29 | 1994-11-22 | Hewlett-Packard Company | Network management agent with user created objects providing additional functionality |
US5301316A (en) * | 1991-10-30 | 1994-04-05 | Sun Microsystems, Inc. | System for determination of the equivalence of two objects without compromising then done by a third object nominated by one and accetped by the other |
US5287507A (en) * | 1992-03-27 | 1994-02-15 | Sun Microsystems, Inc. | Method and apparatus for portable object handles that use local caches |
US5566302A (en) * | 1992-12-21 | 1996-10-15 | Sun Microsystems, Inc. | Method for executing operation call from client application using shared memory region and establishing shared memory region when the shared memory region does not exist |
US5377350A (en) * | 1993-04-30 | 1994-12-27 | International Business Machines Corporation | System for cooperative communication between local object managers to provide verification for the performance of remote calls by object messages |
EP0746816B1 (de) * | 1993-08-03 | 2001-10-24 | Sun Microsystems, Inc. | Flexible mehrfach-plattform-aufteilung für rechneranwendungen |
US5522071A (en) * | 1994-01-18 | 1996-05-28 | Sybase, Inc. | Run-time message redirection for invoking object oriented methods based on alternate dispatch variable |
-
1995
- 1995-04-21 DE DE69533148T patent/DE69533148T2/de not_active Expired - Fee Related
- 1995-04-21 EP EP95302695A patent/EP0684553B1/de not_active Expired - Lifetime
- 1995-05-26 JP JP7151132A patent/JPH07325790A/ja active Pending
- 1995-06-06 US US08/467,542 patent/US5640564A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0684553A3 (de) | 1998-01-07 |
DE69533148D1 (de) | 2004-07-22 |
EP0684553A2 (de) | 1995-11-29 |
US5640564A (en) | 1997-06-17 |
JPH07325790A (ja) | 1995-12-12 |
EP0684553B1 (de) | 2004-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69533148T2 (de) | Verfahren und Gerät zur Erzeugung und Verwendung kurzer Operationsidentifizierer in objektorientierten Systemen | |
DE69812899T2 (de) | Webagent zur anforderung von mehreren prozessen | |
DE69824879T2 (de) | Verteilter web- anwendungs- server | |
DE69924857T2 (de) | Programm-kode-umwandlung | |
DE69730276T2 (de) | Vorrichtung und Verfahren zur Erleichterung der Vermeidung von exzeptionellen bestimmten Zuständen während des Ablaufs eines Programmes | |
DE69814900T2 (de) | Verfahren und system zur unterstützung verteilter software- entwicklung ohne bewusstsein der verteilten charakteristik der software | |
DE69724877T2 (de) | Verfahren und Vorrichtung zum Betrieb einer Aggregation von Serverrechnern mittels eines Doppelzweck-Proxy-Servers | |
DE69309704T2 (de) | Datenverarbeitungssystem und betriebssystem | |
DE68919631T2 (de) | Verfahren zur Verarbeitung von Programmteilen eines verteilten Anwendungsprogramms durch einen Hauptrechner und einen intelligenten Arbeitsplatz in einer SNA LU 6.2-Netzwerkumgebung. | |
DE2523399C2 (de) | Datenverarbeitungsanlage mit Eingabe/Ausgabeprozessoren | |
DE69735866T2 (de) | Vorrichtung und Verfahren zur Erzeugung von voraussagbaren Antworten | |
DE69918334T2 (de) | Erzeugung von kompilierten programmen für interpretative laufzeitumgebungen | |
DE68919975T2 (de) | Verfahren für die simultane Ablaufverwaltung eines verteilten Anwenderprogramms in einem Hostrechner und in einer grossen Anzahl von intelligenten Benutzerstationen in einem SNA-Netzwerk. | |
DE69734432T2 (de) | Verfahren und Vorrichtung zur Absendung von Clientverfahrenanrufen in einem Server Rechnersystem | |
DE68926567T2 (de) | Nachrichten- und Bildschirmübertragung für Rechner in einem mehrsprachigen Netzwerk | |
DE68926775T2 (de) | System und Verfahren für eine allgemeine Schnittstelle für Anwendungsprogramme | |
DE69214828T2 (de) | Kodeserver. | |
EP0825524B1 (de) | Verfahren zur Verwaltung der Benennung von Objekten | |
DE69112156T2 (de) | Gerät zur Realisierung von Datenbanken zum Verschaffen von objektorientiertem Aufrufen von Anwendungsprogrammen. | |
DE3853122T2 (de) | Vorrichtung und Verfahren zur Verbindung von einer Anwendung einer Zugriffseinrichtung für transparente Dienste mit einer entfernt aufgestellten Quelle. | |
DE3689990T2 (de) | Flexible Datenübertragung für nachrichtenorientierte Protokolle. | |
DE3786069T2 (de) | Virtueller Programmablauf auf einem Mehrfachverarbeitungssystem. | |
DE69029441T2 (de) | System für den Aufruf von Prozeduren von einem Fernnetzwerkknotenpunkt | |
DE19928980A1 (de) | Codeerzeugung für einen Bytecode-Compiler | |
DE69905776T2 (de) | Sprachenverarbeitungsverfahren mit geringem Aufwand und Speicherbedarf bei der Profildatensammlung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |