DE69632987T2 - Verfahren und Vorrichtung zum Mehrfachprotokollbetrieb in einem Benutzer-/Anbietersystem - Google Patents

Verfahren und Vorrichtung zum Mehrfachprotokollbetrieb in einem Benutzer-/Anbietersystem Download PDF

Info

Publication number
DE69632987T2
DE69632987T2 DE69632987T DE69632987T DE69632987T2 DE 69632987 T2 DE69632987 T2 DE 69632987T2 DE 69632987 T DE69632987 T DE 69632987T DE 69632987 T DE69632987 T DE 69632987T DE 69632987 T2 DE69632987 T2 DE 69632987T2
Authority
DE
Germany
Prior art keywords
client
server
protocol
computer
server computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69632987T
Other languages
English (en)
Other versions
DE69632987D1 (de
Inventor
Graham Palo Alto Hamilton
Peter B. Palo Alto Kessler
Jeffery D. San Jose Nisewanger
Alan Mountain View Bishop
Eduardo Mountain View Pelegri-Llopart
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of DE69632987D1 publication Critical patent/DE69632987D1/de
Application granted granted Critical
Publication of DE69632987T2 publication Critical patent/DE69632987T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols

Description

  • Kurzbeschreibung der Erfindung
  • Diese Erfindung bezieht sich allgemein auf Client/Server-Computernetzwerke. Genauer bezieht sich diese Erfindung auf einen Server-Computer, der Methodenaufrufe von Objektanfragevermittlern, die verschiedene Kommunikationsprotokolle verwenden, generisch handhaben kann.
  • Hintergrund der Erfindung
  • In einem Client/Server-Computernetzwerk fordert der Benutzer eines Client-Computers die Ausführung eines Objekts an. Genauer fordert der Benutzer die Ausführung einer dem Objekt zugeordneten Methode an. Häufig ist das Objekt nicht lokal auf dem Client-Computer gespeichert. Somit muss ein Fernprozeduraufruf (RPC = Remote Procedure Call) an einen Server-Computer weitergeleitet werden, auf dem sich das Objekt befindet. Der RPC spezifiziert das Objekt und dessen zugehörige Methode. Der Server-Computer identifiziert die auszuführende Methode, führt diese Methode aus, und leitet die Ergebnisse und/oder die erzeugten Ausnahmen wieder zum Client-Computer zurück. Der verteilte Mechanismus zum Handhaben von Fernprozeduraufrufen wird häufig als Objektanfragevermittler (ORB = Object Request Broker) bezeichnet. Der Mechanismus ist in dem Sinne verteilt, dass die einem ORB zugewiesene Software sich sowohl auf dem Client-Computer als auch dem Server-Computer befindet.
  • Es gibt eine große Anzahl von "drahtgebundenen" Datenformaten, die ein Client-Computer verwenden kann, um einen Fernprozeduraufruf zu einem Server-Computer zu senden. Die gleichen drahtgebundenen Datenformate werden auch verwendet, um die Ergebnisse vom Server-Computer zum Client-Computer zurückzusenden. Allgemeiner ausgedrückt definieren diese drahtgebundenen Datenformate das Format aller Nachrichten, die Fernprozeduraufrufen zugeordnet sind.
  • Die drahtgebundenen Datenformate, hier allgemein als Protokolle bezeichnet, legen solche Faktoren fest, wie z. B., auf welche Art Argumente weitergeleitet werden und wie Datentypen gehandhabt werden. Verschiedene Lieferanten implementieren ORBs mit unterschiedlichen Protokollen. Vor kurzem wurde eine Industrienorm mit der Bezeichnung Universal-Networked-Objects-(UNO)-Protokoll von der Object Management Group veröffentlicht. Dieses Protokoll wird in erster Linie als ein Gateway-Protokoll für die Verbindung von Objektsystemen von unterschiedlichen Lieferanten betrachtet. Schließlich scheinen verschiedene Lieferanten kurzfristig ihre bestehenden Protokolle für eine höhere Leistungsfähigkeit innerhalb ihrer eigenen Objektsysteme weiter verwenden zu wollen, während UNO-Gateways mit geringer Leistungsfähigkeit auf ihren ORBs unterstützt werden. Diese RBC-bezogenen Nachrichten werden weiterhin unter Verwendung einer Vielfalt von Protokollen transportiert. Es wäre folglich sehr wünschenswert, einen Server-Computer zu schaffen, der eine beliebige Anzahl von Protokollen, die in RBC-bezogenen Nachrichten verwendet werden, leicht und schnell erkennt.
  • EP 0 690 235 A1 offenbart einen Dienstvermittler, der Dienstanfragen und bereitgestellte Dienstantworten von mehreren Clients bzw. Servern verwaltet, die sich auf unterschiedlichen Hardwareplattformen und Betriebssystemen befinden können und mit Computernetzwerken mit verschiedenen Netzwerkarchitekturen und zugehörigen Kommunikationsprotokollen verbunden sein können.
  • EP 0 456 249 A2 offenbart ein System, das Anwendungen integriert, die auf mehreren homogenen oder heterogenen Computern an einem Netz laufen.
  • Zusammenfassung der Erfindung
  • Die Erfindung schafft ein Verfahren zur Handhabung diverser Protokoll-Methodenaufrufe, wie in Anspruch 1 dargelegt ist, und einen computerlesbaren Speicher, wie in Anspruch 7 dargelegt ist.
  • Eine Ausführungsform der Erfindung ist ein verteiltes Client/Server-Computersystem mit einer großen Anzahl von Client-Computern, die mit einem Übertragungskanal verbunden sind. Die Client-Computer erzeugen Methodenaufrufe (auch als Fernprozeduraufrufe bezeichnet), die dem Übertragungskanal zugeführt werden. Jeder Methodenaufruf kann mit einem unterschiedlichen Kommunikationsprotokoll codiert sein. Ein Server-Computer verarbeitet jeden Methodenaufruf, den er über den Übertragungskanal empfangen hat, durch anfängliches Lokalisieren eines in einem protokollabhängigen Format spezifizierten Methodendeskriptors innerhalb des Methodenaufrufs. Der Methodendeskriptor wird anschließend mit einer Liste von protokollabhängigen Werten verglichen, die im Speicher des Server-Computers gespeichert sind. Beim Abgleich des Methodendeskriptors mit einem ausgewählten protokollabhängigen Wert in der Liste der protokollabhängigen Werte wird ein Indexwert zugewiesen. Der Indexwert wird zu einem protokollunabhängigen Abschnitt des Server-Computers weitergeleitet. Der protokollunabhängige Abschnitt des Servers führt anschließend das Verfahren aus, das dem Indexwert entspricht, um eine Antwort zu erzeugen. Die Antwort wird anschließend über den Übertragungskanal zum Client-Computer transportiert.
  • Eine weitere Ausführungsform der Erfindung enthält den Schritt des Empfangens eines von einem Client-Computer erzeugten Methodenaufrufs an einem Server-Computer. Anschließend wird eine in einem protokollabhängigen Format spezifizierte Methodenbeschreibung innerhalb des Methodenaufrufs lokalisiert. Anschließend wird beim Abgleich des Methodendeskriptors mit einem ausgewählten protokollabhängigen Wert in einer Liste protokollabhängiger Werte ein Indexwert zugewiesen. Anschließend wird der Indexwert an ein protokollunabhängiges Verarbeitungsmodul des Servers weitergeleitet. Der Server führt die Methode aus, die dem Indexwert entspricht, wobei die Ergebnisse dieser Methodenausführung anschließend über den Übertragungskanal zum Client-Computer transportiert werden.
  • Der protokollunabhängige Abschnitt des Servers bildet einen einzelnen Satz von objektspezifischern Code, der verwendet werden kann, um alle Methodenaufrufe zu verarbeiten, unabhängig von dem Protokoll, das vom Client-Computer verwendet wird, um den Methodenaufruf zum Server zu senden. Folglich sind für die Verarbeitung der unterschiedlichen Protokolle, die auf dem Übertragungskanal verwendet werden, keine unterschiedlichen Sätze von objektspezifischern Computercode erforderlich. Die vorliegende Erfindung erleichtert somit die Verarbeitung von Fernprozeduraufrufen von Methoden in Objekten in einer sprach- und lieferantenunabhängigen Weise. Als Ergebnis kann von unterschiedlichen Client-Umgebungen transparent auf Netzwerk-Server zugegriffen werden. Somit können z. B. Netzwerk-Server im Internet die Anfragen von Client-Computern verarbeiten, und Client-Computer können auf Netzwerk-Server in einer Weise zugreifen, die vorher nicht möglich war.
  • Kurzbeschreibung der Zeichnungen
  • Im Folgenden werden Beispiele der Erfindung in Verbindung mit den beigefügten Zeichnungen beschrieben, in welchen:
  • 1 eine Client/Server-Computertopologie zeigt;
  • 2 die Verarbeitung zeigt, die der Vorrichtung der 1 zugeordnet ist;
  • 3 die Verarbeitungsschritte zeigt, die einer Ausführungsform der Protokollerkennungsmethodik der Erfindung zugeordnet sind;
  • 4 ein Beispiel einer Datenstruktur zeigt, die bei der Ausführung der offenbarten Technik verwendet werden kann;
  • 5 eine verallgemeinerte Darstellung einer Datenstruktur ist, die bei der Ausführung der offenbarten Technik verwendet werden kann.
  • Ähnliche Bezugszeichen beziehen sich über die mehreren Ansichten der Zeichnungen hinweg auf entsprechende Teile.
  • Genaue Beschreibung der Erfindung
  • 1 zeigt eine Client/Server-Computervorrichtung 20, die die Technik enthält, die die vorliegende Erfindung verkörpert. Die Vorrichtung 20 enthält einen Satz von Client-Computern 22A22N, die jeweils mit einem Übertragungskanal 23 verbunden sind. Der Übertragungskanal 23 bezieht sich allgemein auf eine beliebige drahtgebundene oder drahtlose Verbindung zwischen Computern. Die Client-Computer 22A22N verwenden den Übertragungskanal 23, um mit einem Server-Computer 24 zu kommunizieren.
  • Jeder Client-Computer 22 weist eine Standard-Computerkonfiguration auf, die eine Zentraleinheit (CPU) 30 enthält, die mit einem Speicher 32 verbunden ist, der einen Satz von ausführbaren Programmen speichert. Die ausführbaren Programme in diesem beispielhaften System umfassen wenigstens ein Client-Anwendungsprogramm 34, Client-Stummelprogramme 38, Client-Unterkontraktprogramme 40 und ein Betriebssystem 42.
  • Das Client-Anwendungsprogramm 34 ist ein beliebiges Programm auf Anwendungsebene, wie z. B. ein Anwendungsprogramm, mit dem der Benutzer eines Client-Computers 22 interagiert. Die Client-Stummelprogramme 38 empfangen Prozeduraufrufe vom Anwendungsprogramm 34, die die Ausführung spezifizierter Methoden von spezifizierten Objekten anfordern. Der Zweck der Client-Stummelprogramme 38 ist, auf Objekte zuzugreifen, die in anderen Adressräumen, wie z. B. auf einem Server-Computer 24, implementiert sind.
  • Die Client-Unterkontraktprogramme 40 und die Server-Unterkontraktprogramme 58 steuern die Grundmechanismen des Objektaufrufs und der Argumentweiterleitung. Sie steuern, wie der Objektaufruf implementiert wird, wie Objektreferenzen zwischen Adressräumen übertragen werden, wie Objektreferenzen aufgelöst werden, und ähnliche Objektlaufzeitoperationen. Wenn z. B. ein Client ein Objekt eines gegebenen Unterkontraktes aufruft, implementiert der Unterkontrakt den Objektaufruf durch Senden der Anfrage zu dem Adressraum, in dem das zugehörige Objekt angeordnet ist, gewöhnlich dem Server-Computer 24.
  • Die Client-Unterkontraktprogramme 40 führen eine Sortierungsoperation durch, um einen Objektaufruf (d. h. einen Fernprozeduraufruf) zu einem weiteren Adressraum zu senden. Eine entsprechende Resortierungsoperation wird von einem Server-Unterkontraktprogramm 58 auf dem Server-Computer 24 durchgeführt. Die Client-Unterkontraktprogramme 40 führen ebenfalls Resortierungsoperationen durch, wenn sie eine Antwort (wie z. B. die von einem Methodenaufruf erzeugten Ergebnisse) von einem weiteren Computer, z. B. dem Server-Computer 24, empfangen. Ein Betriebssystem 42, wie z. B. das SOLARIS Betriebssystem von Sun Microsystems liegt den Operationen der Client-Anwendungsprogramme 34, der Client-Stummelprogramme 38 und der Client-Unterkontraktprogramme 40 zu Grunde.
  • Der Server 24 weist eine Konfiguration ähnlich derjenigen der Client-Computer 22 auf. Der Server 24 enthält eine CPU 50 und einen zugehörigen Speicher 52. Der Speicher 52 speichert Server-Anwendungsprogramme 54, Server-Stummelprogramme 56, Server-Unterkontraktprogramme 58 und ein Betriebssystem 60. Wie oben angegeben ist, behandeln die Server-Stummelprogramme 56 ankommende Methodenaufrufe für ein Objekt und rufen die spezifizierte Methode auf, um die Operation durchzuführen. Wie oben ferner angegeben ist, führen die Server-Unterkontraktprogramme 58 eine Datensortierung und andere Operationen durch, um den Transport der Verfahrensaufrufe und der resultierenden Rückkehrnachrichten zwischen dem Server 24 und dem Client-Computern 22 zu unterstützen.
  • Die Operationen der Vorrichtung der 1 werden mit Bezug auf 2 genauer eingeschätzt. 2 zeigt den Client-Computer 22A, den Übertragungskanal 23 und den Server 24 der 1. Wie oben angegeben ist, ruft eine Client-Anwendung 34 eine spezifizierte Methode eines Objekts in einem anderen Adressraum unter Verwendung eines Fernprozeduraufrufes auf. Der Fernprozeduraufruf wird von den Client-Stummelprogrammen 38 zum Client-Unterkontraktprogramm 40 weitergeleitet, welches den Fernprozeduraufruf für den Transport auf dem Übertragungskanal 23 verpackt. Das Server-Unterkontraktprogramm 58 des Servers 24 empfängt die Informationen und packt diese aus. Das Server-Unterkontraktprogramm 58 leitet anschließend die Informationen zu den Server-Stummelprogrammen 56 weiter. Die Server- Stummelprogramme 56 greifen auf die Server-Anwendungsprogramme 54 zu, die die vorher beschriebenen Objektmethoden sind. Genauer macht ein spezifiziertes Server-Stummelprogramm 56 einen Prozeduraufruf, um eine spezifizierte Methode des aufgerufenen Objekts auszuführen. Die Ausführung der Methode erzeugt einen Satz von Ergebnissen, hier als Antwort bezeichnet, der anschließend zum Server-Unterkontraktprogramm 58 zurückgeleitet wird, wobei der Kommunikationsweg umgekehrt ist, wie durch die Pfeile der 2 gezeigt ist.
  • Block 70 der 2 zeigt die Komponenten, die einem Objektanfragevermittler (ORB) der Erfindung zugeordnet sind. Wie oben angegeben ist, wird eine breite Vielfalt von Kommunikationsprotokollen in den ORBs verwendet. Die Verwendung verschiedener Protokolle auf verschiedenen ORBs führt zu Schwierigkeiten, wenn ein Server versucht, ankommende Objektanfragen zu erkennen.
  • Die allgemeine Architektur und die Verarbeitung, die den Ausführungsformen der Erfindung zugewiesen sind, wurden nun offenbart. Die Aufmerksamkeit wird jetzt auf eine genauere Betrachtung der Architektur und der Verarbeitung der Ausführungsformen und der Unterscheidungen zwischen den Elementen und entsprechenden Elementen des Standes der Technik und der Vorteile, die der offenbarten Technik zugeordnet werden, gerichtet.
  • Wie in 2 gezeigt ist, verwendet ein Client-Unterkontraktprogramm 40 einen protokollabhängigen Methodendeskriptor, um eine einem aufgerufenen Objekt zugeordnete Methode anzufordern. Genauer verwendet das Client-Unterkontraktprogramm 40 einen Sortierungspuffer, der einem ausgewählten drahtgebundenen Datenformat folgt. Um z. B. eine gegebene Methode "X" zu identifizieren, kann ein Protokoll einen Wert "XXX" verwenden, eine weitere kann einen Wert "@@@::123::" verwenden, und eine weitere kann einen Ganzzahlwert "123456" verwenden, wobei der Wert die Ausgabe einer Hash-Funktion für den Methodennamen ist. Das Client-Stummelprogramm 38 leitet an das Client-Unterkontraktprogramm 40 eine Liste protokollabhängiger Werte weiter, aus der das Client-Unterkontraktprogramm 40 den protokollabhängigen Methodendeskriptor berechnet.
  • Wenn somit ein Satz von Client-Computern 22A22N mit einem Server 24 verbunden ist, muss der Server 24 jedes Protokoll verarbeiten. Separate Server-Unterkontraktprogramme 58 (nicht gezeigt) sind notwendig, um jedes dieser Protokolle zu bewältigen. Im Stand der Technik weist jedes Server-Unterkontraktprogramm 58 einen Satz entsprechender Server-Stummelprogramme 56 auf. Um somit ORBs mit mehreren Protokollen zu unterstützen, sollte ein Server 24 verschiedene Server-Stummelprogramme 56 für jedes Protokoll aufweisen, was zu einem großen Satz von Server-Stummelprogrammen 56 führt. Folglich kann leicht abgeschätzt werden, dass die Verwendung unterschiedlicher ORB-Protokolle zu unhandlichen Anforderungen an den Server 24 führt.
  • Wenn gemäß der vorliegenden Erfindung das Server-Unterkontraktprogramm 58 einen ankommenden Methodenaufruf empfängt, resortiert es den Methodendeskriptor in einer Weise, die für das Unterkontraktprotokoll spezifisch ist. Anschließend versucht es, den Methodendeskriptor mit jedem der Einträge in einer Liste protokollabhängiger Werte abzugleichen. Die protokollabhängigen Werte können Zeichenketten, numerische Werte, sowie andere Typen von Parameterwerten sein. Verschiedene Protokolle können verschiedene Abgleichfunktionen verwenden, um den Methodendeskriptor mit der Liste der protokollabhängigen Werte zu vergleichen. Die Abgleichfunktion kann mittels eines Kettenvergleichs, einer Hash-Funktion, oder einer anderen Technik bewerkstelligt werden, die durch das Server-Unterkontraktprogramm 58 spezifiziert wird. Wenn ein passender protokollabhängiger Wert identifiziert wird, kann das Server-Unterkontraktprogramm 58 anschließend diesem einen Indexwert zuweisen.
  • Wie in 2 gezeigt ist, wird der Indexwert zu den protokollunabhängigen Server-Stummelprogrammen 56 weitergeleitet, die die dem Indexwert entsprechende Methode aufrufen können. Auf diese Weise werden die Protokollabhängigkeiten der individuellen Objektreferenzen von den protokollunabhängigen Server-Stummelprogrammen 56 isoliert. Folglich können protokollunabhängige Server-Stummelprogramme 56 mit einem beliebigen Typ von Objektanfragevermittler 70 verwendet werden. Ferner kann ein einzelner Compiler verwendet werden, um die protokollunabhängigen Server-Stummelprogramme 56 zu erzeugen.
  • Im Gegensatz zum Stand der Technik schafft die vorliegende Erfindung somit einen Server 24, der eine Vielfalt von ORB-Protokollen erkennt. Außerdem führt er diese Funktion in einer hocheffektiven Weise durch, indem er einen einzelnen Satz von protokollunabhängigen Server-Stummelprogrammen 56 verwendet. Es ist zu beachten, dass zur Unterstützung dieser Technik die Sortierungs- und Resortierungsoperationen, die gewöhnlich von Stummelprogrammen des Standes der Technik verwendet werden, vom Client-Unterkontraktprogramm 40 und vom Server-Unterkontraktprogramm 58 der Erfindung ausgeführt werden. Diese Übertragung der Verarbeitung und die Verwendung eines Indexwertes, um protokollunabhängige Server-Stummelprogramme bereitzustellen, stellen die Verarbeitungsunterschiede zwischen dem Stand der Technik und der vorliegenden Erfindung dar. Die vorliegende Erfindung kann somit in bestehenden Architekturen und Prozessen erfolgreich implementiert werden, sobald diese Verarbeitungsunterschiede berücksichtigt werden.
  • 3 zeigt eine genaue Darstellung der Verarbeitungsschritte, die in den vorangehenden Absätzen beschrieben worden sind. Der erste Verarbeitungsschritt der 3 besteht darin, dass das Server-Unterkontraktprogramm einen Methodendeskriptor in einen Methodenaufruf identifiziert (Block 80). Wie oben angegeben ist, erzeugt der Client-Computer einen Methodenaufruf, der schließlich in einem Sortierungspuffer als Satz von Informationen verpackt wird. Der Inhalt der Information ist bedingt durch das Client-Unterkontraktprogramm, das die Informationen sortiert hat. Das entsprechende Unterkontraktprogramm am Server resortiert die Informationen und erkennt innerhalb der Informationen den Methodendeskriptor.
  • Der nächste Verarbeitungsschritt ist für das Server-Unterkontraktprogramm, einen protokollabhängigen Wert auszuwählen, der zum Methodendeskriptor passt (Block 82). Diese Operation kann mit Bezug auf 4 dargestellt werden. 4 zeigt eine Deskriptorliste (Descriptor_List) protokollabhängiger Werte. Diese Liste enthält N Teilmengenlisten. Jede Teilmengenliste identifiziert einen Satz von protokollabhängigen Werten, die verwendet werden können, um eine einzelne Methode zu identifizieren. Jede Teilmengenliste besitzt j Einträge. In 4 sind diese Einträge als Descriptor_List_1_1 bis Descriptor_List_1_j gezeigt. In 4 ist Descriptor_List_1_! einem Schnittstellendefinitionssprachen-Kurznamen (IDL = Interface Definition Language) zugewiesen. IDL ist eine Industrienorm. Das heißt, ein Eintrag in der Liste ist der IDL-Kurzname (IDL Short Name) für die aufgerufene Methode. Der IDL-Kurzname ist ein ORB-Protokollname, der im Stand der Technik verwendet wird. Die gleiche Liste zeigt, dass Descriptor_List_1_2 einem IDL-Langnamen (IDL Long Name) zugewiesen ist. Das heißt, dieser Eintrag in der Liste ist der IDL-Langname für die aufgerufene Methode. Der IDL-Langname ist ein weiterer ORB-Protokollname, der im Stand der Technik verwendet wird. Der dritte Eintrag in der Teilmengenliste ist Descriptor_List_1_3, der eine Aufbewahrungsort-ID (Repository ID) aufweist. Die Aufbewahrungsort-ID ist ein Name, der in einem weiteren ORB-Protokoll im Stand der Technik verwendet wird. Beispiele dieser verschiedenen Protokolle umfassen folgende Anweisungen:
    "get_weak_operator" (IDL-Kurzname),
    "::comparator::weak_comparable::get_waek_comparator" (IDL-Langname), und
    "IDL:/comparator/weak_comparable/get_weak_comparator: 1.0" (Aufbewahrungsort-ID),
    die verwendet werden, um folgende Operation aufzurufen:
    get_weak_comparator.
  • Wie in 4 gezeigt ist, können auch wechselnde Bezeichnungen in der Liste der protokollabhängigen Werte verwendet werden. Außerdem müssen nicht die im Beispiel gezeigten Bezeichnungen verwendet werden. In jedem Fall ist es unter Verwendung des Formats, das durch die IDL-Norm und andere Industrienormen und die Praxis etabliert ist, möglich, die Art vorherzusagen, in der die meisten Methodendeskriptoren durch irgendein vernünftiges Protokoll implementiert werden.
  • Der folgende Pseudo-Code wird als ein einfaches Beispiel verwendet, um zu zeigen, wie die Deskriptorliste durchsucht werden kann.
  • Figure 00110001
  • Die Zeilen (1) und (2) bewerkstelligen die Initialisierung. Die Zeile (3) ist der Eintritt in eine Verarbeitungsschleife. Die Zeile (4) bewerkstelligt die Initialisierung innerhalb der Verarbeitungsschleife. Die Zeile (5) testet auf eine Bedingung. Das heißt, der Code prüft, ob der resortierte "Methodendeskriptor" des Methodenaufrufs zum "j-ten" Eintrag der "i-ten" Teilmengenliste (Descriptor_List_i_j) der protokollabhängigen Liste passt. Der "j-te" Eintrag, z. B. der IDL-Kurzname, ist für das Server-Unterkontraktprogramm 58 dafür bekannt, derjenige zu sein, der für dieses Protokoll verglichen wird. Der "i-te" Wert ist ein inkrementierter Wert, der jeder Teilmengendeskriptorliste (Descriptor_List_1 bis Descriptor_List_N) erlaubt, geprüft zu werden. Der Ausdruck "Match_p" bezieht sich auf die Abgleichfunktion, die verwendet wird, um den Methodendeskriptor mit den Listeneintrag zu vergleichen. Zum Beispiel kann "Match_p" einen einfachen Kettenvergleich zwischen Werten spezifizieren, oder kann den Vergleich von Hash-Werten spezifizieren. Die Definition von "Match_p" wird vom Server-Unterkontraktprogramm 58 bereitgestellt.
  • Wenn die Bedingung erfüllt wird, wird eine Übereinstimmung gefunden, während ansonsten die nächste Teilmengenliste "i" genommen wird. Wenn eine Übereinstimmung gefunden worden ist, stellt die Zeile (8) einen Aufruf einer Operationstabelle der Server-Stummelprogramme (56) bereit. Es ist zu beachten, dass der Wert "i", wenn eine Übereinstimmung gefunden worden ist, der Wert ist, der zu den Server-Stummelprogrammen weitergeleitet wird. Dieser Wert entspricht einer Teilmenge der gesuchten Liste, wobei diese Teilmenge einer einzelnen Methode zugeordnet ist, die aufgerufen worden ist. Der Code in der Zeile (8) zeigt somit den nächsten Verarbeitungsschritt der 3, nämlich, dass das Server-Unterkontraktprogramm einen Indexwert an die Server-Stummelprogramme weiterleitet (Block 86).
  • Sobald die Server-Stummelprogramme den Indexwert empfangen, greifen sie auf eine Operationstabelle 100 zu, die in 4 gezeigt ist, um die durch den Indexwert spezifizierte Methode aufzurufen. Die Operationstabelle ist vorzugsweise als eine Falltabelle implementiert, die einen Satz von Verarbeitungsschritten aufweist, die jedem Fallwert "i" zugeordnet sind. Wenn der Wert "i" empfangen wird, wird die durch den Wert spezifizierte Methode ausgeführt (Block 88). 4 zeigt einen Beispielsatz von Verarbeitungsschritten, um dieses Ergebnis zu erreichen. Der erste Schritt besteht in der Ausführung der Methode i, wobei der zweite Schritt darin besteht, alle resultierenden Nachrichten (die Antwort) in den Sortierungspuffer zu laden. Der letzte Verarbeitungsschritt, der in 3 gezeigt ist, besteht darin, dass die Server-Stummelprogramme die durch die Ausführung der Methode erzeugte Antwort an die Server-Unterkontraktprogramme (Block 90) weiterleiten.
  • Die Ausführungsform wurde nun vollständig offenbart. 5 zeigt einen zusätzlichen Aspekt der Technik. Das heißt, 5 zeigt, dass die Ausführungsform Methodenaufrufe und deren zugehörige Ausnahmen unterstützt. 5 zeigt die Operationstabelle 100 der 4. Wie oben angegeben ist, ist die Operationstabelle in den Server-Stummelprogrammen 56 gespeichert. Die Figur zeigt, dass der Indexwert "i" die Operationstabelle mit einer bestimmten Teilmenge (Descriptorliste i bzw. Descriptor_List_i) der Liste verknüpft ist. Wie oben angegeben ist, ist die Deskriptorliste für das Server-Unterkontraktprogramm 58 verfügbar. Die Teilmengenliste enthält "j" Einträge, einschließlich eines IDL-Kurznamens, eines IDL-Langnamens, einer Aufbewahrungsortidentifikation, einer wechselnden Identifikation und dergleichen. Wie in 4 gezeigt ist, ruft der Server die Operation i von der Operationstabelle 100 auf und gibt eine Antwort an den Client zurück. Die Antwort kann einen Ausnahmedeskriptor enthalten. Unter Berufung auf das obige Beispiel "get_weak_comparatorOperationDescriptorInstance" kann z. B. der Ausnahmedeskriptor die Kette "_get_weak_comparatorExceptionDescriptorInstance" sein.
  • Das Client-Unterkontraktprogramm 40 weist den Operationsdeskriptor auf, der eine Ausnahmeliste enthält. Der Ausnahmedeskriptor in der Antwort wird von dem client-seitigen Unterkontraktprogramm 40 verwendet, um zu ermitteln, welche Ausnahme zurückgegeben wurde. Diese Abgleichoperation kann unter Verwendung der obenbeschriebenen Technik zum Abgleichen des Operationsdeskriptors durchgeführt werden.
  • Der Ausnahmedeskriptor zeigt auf eine Ausnahmeliste, die N Ausnahme-Teilmengenlisten aufweist. 5 zeigt die Ausnahmeliste x (Exception_List_x). Jede Teilmengenliste spezifiziert eine der Ausnahmen für den Methodenaufruf und dem IDL-Kurznamen, den IDL-Langnamen, eine Aufbewahrungsortidentifikation und eine wechselnde Identifikation für die Ausnahme. Es ist zu beachten, dass der j-te" Eintrag jeder Teilmengenliste der Liste der protokollabhängigen Werte einem bestimmten Protokoll entspricht, z. B. dem IDL-Kurznamenprotokoll.
  • Das Ausnahmedeskriptor-Konzept ist in 4 genauer gezeigt. Es ist zu beachten, dass der letzte Eintrag in der Teilmengendeskriptorliste "Descriptor_List_1" ein Ausnahmedeskriptor ist, der auf eine Ausnahmeliste zeigt. Die vom Server-Computer erzeugte und zum Client-Computer weitergeleitete Antwort enthält eine Angabe der Ausnahme, falls erforderlich. Die Ausnahme kann mit einer Ausnahme in der Ausnahmeliste abgeglichen sein.
  • Das Client-Unterkontraktprogramm 40 speichert eine Kopie der einem Ausnahmedeskriptor zugewiesenen Ausnahmeliste. Wenn somit der Ausnahmedeskriptor vom Server-Computer 24 empfangen wird, kann der Client-Computer 22 den Ausnahmedeskriptor verarbeiten.
  • Der Ausnahmedeskriptor wird verarbeitet durch Aufrufen eines Ausnahmecodes für jeden Eintrag in der Ausnahmeliste. In 5 ist zu beachten, dass Exception_List_x, ähnlich allen anderen Ausnahmeteilmengenlisten, eine Ausnahmeobjektidentifikation enthält, die auf ein Objekt in einem lokalen Objektaufbewahrungsort 104 zeigt. Die Ausnahmeobjektidentifikation kann ein Kettenname sein, der mit einem Objekt im lokalen Objektaufbewahrungsort 104 verknüpft ist. Jedes Objekt im lokalen Objektaufbewahrungsort 104 stellt codierte Befehle oder Informationen zur Verfügung, um den Client- Computer 22 zu erlauben, die Ausnahme zu behandeln. In dem Fall, in dem sich das Objekt nicht im lokalen Objektaufbewahrungsort 104 befindet, instanziiert das Betriebssystem 42 das Objekt in dem lokalen Objektaufbewahrungsort 104 durch Herunterladen des Codes von einem weiteren Computer im Netzwerk.

Claims (9)

  1. Verfahren zur Handhabung von Methodenaufrufenmit diversen Protokollen in einem Client/Server-Computersystem (20), wobei das Verfahren die Schritte umfasst: Empfangen eines Methodenaufrufes, der von einem Client-Computer (22A ... 22N) erzeugt wird, an einem Server-Computer (24), dadurch gekennzeichnet, dass das Verfahren ferner die Schritte umfasst: Lokalisieren (80) eines Methodendeskriptors, der in einem protokollabhängigen Format spezifiziert ist, innerhalb des Methodenaufrufs; Wiedergewinnen (82) eines Indexwertes, der dem Methodendeskriptor zugewiesen ist; Weiterleiten (86) des Indexwertes zu einem protokollunabhängigen Verarbeitungsmodul des Server-Computers; Ausführen (88) einer Methode, die dem Indexwert entspricht, im Server-Computer, um eine Antwort zu erzeugen; und Übertragen (90) der Antwort vom protokollunabhängigen Verarbeitungsmodul zum Client-Computer.
  2. Verfahren nach Anspruch 1, bei dem der Empfangsschritt den Schritt des Weiterleitens des Methodenaufrufes von einem Anwendungsprogramm (34) des Client-Computers (22A ... 22N) zu einem Client-Stummelprogramm (38) des Client-Computers, zu einem Unterkontraktprogramm (40) des Client-Computers, zu einem Übertragungskanal (23), der den Client-Computer und den Server-Computer (24) verbindet, und zu einem Unterkontraktprogramm (58) des Server-Computers, das die Liste der protokollabhängigen Werte speichert, umfasst.
  3. Verfahren nach Anspruch 1, bei dem der Lokalisierungsschritt (80) den Schritt des Resortierens eines Sortierungspuffers, der den Methodenaufruf enthält, umfasst.
  4. Verfahren nach Anspruch 1, bei dem der Wiedergewinnungsschritt (82) den Schritt der Verwendung einer Liste protokollabhängiger Werte umfasst, die Anweisungen enthalten, die aus der Gruppe ausgewählt sind, welche einen Schnittstellendefinitionssprache-(IDL)-Kurznamen, einen IDL-Langnamen und eine IDL-Aufbewahrungsortidentifikation enthält.
  5. Verfahren nach Anspruch 1, bei dem der Weiterleitungsschritt (85) den Schritt des Weiterleitens des Indexwertes zu dem protokollunabhängigen Verarbeitungsmodul des Server-Computers enthält, das als ein Server-Stummelprogramm (56) implementiert ist, das auf dem Server-Computer läuft.
  6. Verfahren nach Anspruch 1, bei dem der Übertragungsschritt den Schritt des Übertragens der Antwort vom Server-Stummelprogramm (56), das auf dem Server-Computer läuft, zu einem Unterkontraktprogramm (58), das auf dem Server-Computer läuft, zu einem Übertragungskanal (23), der den Server-Computer und den Client-Computer verbindet, zu einem Unterkontraktprogramm (40), das auf dem Client-Computer läuft, und zu einem Client-Stummelprogramm (38), das auf dem Client-Computer läuft, enthält.
  7. Computerlesbarer Speicher, der verwendet werden kann, um ein Client/Server-Computersystem (20) anzuweisen, in einer spezifizierten Weise zu arbeiten, umfassend: Methodenaufrufinformationen, die im Speicher gespeichert sind, wobei die Methodenaufrufinformationen enthalten: (1) eine Liste protokollabhängiger Werte, und (2) einen Satz von Methodenausführungsbefehlsmodulen, wobei wenigstens ein Methodenausführungsbefehlsmodul einen Satz von Operationen spezifiziert, die bei der Ausführung eines angeforderten Methodenaufrufs auszuführen sind; und ausführbare Befehle, die im Speicher gespeichert sind, dadurch gekennzeichnet, dass die ausführbaren Befehle enthalten: (3) Befehle zum Lokalisieren (80) eines Methodendeskriptors, der in einem protokollabhängigen Format spezifiziert ist, innerhalb eines Methodenaufrufs, der von einem Client-Computer (22A ... 2N) des Client/Server-Computersystems stammt, (4) Befehle zum Zuweisen (82) eines Indexwertes bei Übereinstimmung des Methodendeskriptors mit einem ausgewählten protokollabhängigen Wert in der Liste der protokollabhängigen Werte, (5) Befehle zum Weiterleiten (86) des Indexwertes zu einem serverseitigen Stummel (56), der auf einem Server-Computer (24) der Client/Server-Computerarchitektur läuft, (6) Befehle zum Ausführen (88) eines ausgewählten Methodenausführungsbefehlsmoduls des Satzes der Methodenausführungsbefehlsmodule auf der Grundlage des Indexwertes auf dem Server-Computer, um eine Antwort zu erzeugen, und (7) Befehle zum Übertragen (90) der Antwort zum Client-Computer.
  8. Computerlesbarer Speicher nach Anspruch 7, bei dem die Liste der protokollabhängigen Werte, die im Speicher gespeichert sind, Anweisungen enthält, die aus der Gruppe ausgewählt sind, die einen Schnittstellendefinitionssprache-(IDL)-Kurznamen, einen IDL-Langnamen, sowie eine IDL-Aufbewahrungsortidentifikation umfasst.
  9. Computerlesbarer Speicher nach Anspruch 7, bei dem die Antwort eine Ausnahmebedingung für den Methodenaufruf enthält.
DE69632987T 1995-10-06 1996-09-19 Verfahren und Vorrichtung zum Mehrfachprotokollbetrieb in einem Benutzer-/Anbietersystem Expired - Fee Related DE69632987T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US539999 1990-06-15
US08/539,999 US5758186A (en) 1995-10-06 1995-10-06 Method and apparatus for generically handling diverse protocol method calls in a client/server computer system

Publications (2)

Publication Number Publication Date
DE69632987D1 DE69632987D1 (de) 2004-09-02
DE69632987T2 true DE69632987T2 (de) 2005-01-05

Family

ID=24153545

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69632987T Expired - Fee Related DE69632987T2 (de) 1995-10-06 1996-09-19 Verfahren und Vorrichtung zum Mehrfachprotokollbetrieb in einem Benutzer-/Anbietersystem

Country Status (8)

Country Link
US (1) US5758186A (de)
EP (1) EP0767563B1 (de)
JP (1) JPH09218860A (de)
KR (1) KR970024763A (de)
CN (1) CN1159631A (de)
AU (1) AU6552196A (de)
DE (1) DE69632987T2 (de)
TW (1) TW303558B (de)

Families Citing this family (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040264402A9 (en) * 1995-06-01 2004-12-30 Padcom. Inc. Port routing functionality
US6418324B1 (en) * 1995-06-01 2002-07-09 Padcom, Incorporated Apparatus and method for transparent wireless communication between a remote device and host system
US6009464A (en) * 1995-09-20 1999-12-28 Sun Microsystems, Inc. Method and apparatus for enabling application programs to communicate with network clients and servers
US6437803B1 (en) 1998-05-29 2002-08-20 Citrix Systems, Inc. System and method for combining local and remote windows into a single desktop environment
US6088515A (en) 1995-11-13 2000-07-11 Citrix Systems Inc Method and apparatus for making a hypermedium interactive
US5918021A (en) * 1996-06-03 1999-06-29 Intel Corporation System and method for dynamic distribution of data packets through multiple channels
US6032199A (en) 1996-06-26 2000-02-29 Sun Microsystems, Inc. Transport independent invocation and servant interfaces that permit both typecode interpreted and compiled marshaling
US6282580B1 (en) * 1996-07-02 2001-08-28 Sun Microsystems, Inc. Bridge providing communication between different implementations of object request brokers
US6275224B1 (en) * 1997-02-18 2001-08-14 Electronic Data Systems Corporation Group situation board system and method of operation
EP0968596B1 (de) 1997-03-12 2007-07-18 Nomadix, Inc. Nomadischer übersetzen oder wegesucher
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
US6742050B1 (en) 1997-03-31 2004-05-25 Intel Corporation Inter-object messaging
US5999988A (en) * 1997-03-31 1999-12-07 Sun Microsystems, Inc. Method and apparatus for generating and employing a run-time generated stub to reference an object in object oriented systems
GB2328297B (en) * 1997-08-13 2002-04-24 Ibm Text in anchor tag of hyperlink adjustable according to context
US6697868B2 (en) 2000-02-28 2004-02-24 Alacritech, Inc. Protocol processing stack for use with intelligent network interface device
US8621101B1 (en) 2000-09-29 2013-12-31 Alacritech, Inc. Intelligent network storage interface device
US7174393B2 (en) * 2000-12-26 2007-02-06 Alacritech, Inc. TCP/IP offload network interface device
US6226680B1 (en) * 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US8539112B2 (en) 1997-10-14 2013-09-17 Alacritech, Inc. TCP/IP offload device
US6658480B2 (en) 1997-10-14 2003-12-02 Alacritech, Inc. Intelligent network interface system and method for accelerated protocol processing
US6470415B1 (en) 1999-10-13 2002-10-22 Alacritech, Inc. Queue system involving SRAM head, SRAM tail and DRAM body
US7076568B2 (en) * 1997-10-14 2006-07-11 Alacritech, Inc. Data communication apparatus for computer intelligent network interface card which transfers data between a network and a storage device according designated uniform datagram protocol socket
US8782199B2 (en) 1997-10-14 2014-07-15 A-Tech Llc Parsing a packet header
US6427173B1 (en) 1997-10-14 2002-07-30 Alacritech, Inc. Intelligent network interfaced device and system for accelerated communication
US7284070B2 (en) * 1997-10-14 2007-10-16 Alacritech, Inc. TCP offload network interface device
US7042898B2 (en) 1997-10-14 2006-05-09 Alacritech, Inc. Reducing delays associated with inserting a checksum into a network message
US6389479B1 (en) 1997-10-14 2002-05-14 Alacritech, Inc. Intelligent network interface device and system for accelerated communication
US6434620B1 (en) 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US6687758B2 (en) 2001-03-07 2004-02-03 Alacritech, Inc. Port aggregation for network connections that are offloaded to network interface devices
US7089326B2 (en) * 1997-10-14 2006-08-08 Alacritech, Inc. Fast-path processing for receiving data on TCP connection offload devices
US7167927B2 (en) * 1997-10-14 2007-01-23 Alacritech, Inc. TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism
US6757746B2 (en) * 1997-10-14 2004-06-29 Alacritech, Inc. Obtaining a destination address so that a network interface device can write network data without headers directly into host memory
US7185266B2 (en) 2003-02-12 2007-02-27 Alacritech, Inc. Network interface device for error detection using partial CRCS of variable length message portions
US6427171B1 (en) 1997-10-14 2002-07-30 Alacritech, Inc. Protocol processing stack for use with intelligent network interface device
US7133940B2 (en) * 1997-10-14 2006-11-07 Alacritech, Inc. Network interface device employing a DMA command queue
US6591302B2 (en) 1997-10-14 2003-07-08 Alacritech, Inc. Fast-path apparatus for receiving data corresponding to a TCP connection
US7237036B2 (en) * 1997-10-14 2007-06-26 Alacritech, Inc. Fast-path apparatus for receiving data corresponding a TCP connection
US6167565A (en) * 1998-01-08 2000-12-26 Microsoft Corporation Method and system of custom marshaling of inter-language parameters
GB2363552B (en) * 1998-08-14 2003-11-05 Citrix Systems Inc Apparatus and method for extracting algorithmic information from a message stream
US7664883B2 (en) * 1998-08-28 2010-02-16 Alacritech, Inc. Network interface device that fast-path processes solicited session layer read commands
US7136645B2 (en) * 1998-10-09 2006-11-14 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7778260B2 (en) * 1998-10-09 2010-08-17 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7293107B1 (en) * 1998-10-09 2007-11-06 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US6546425B1 (en) 1998-10-09 2003-04-08 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US8060656B2 (en) 1998-10-09 2011-11-15 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US8078727B2 (en) 1998-10-09 2011-12-13 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US8266266B2 (en) 1998-12-08 2012-09-11 Nomadix, Inc. Systems and methods for providing dynamic network authorization, authentication and accounting
US7194554B1 (en) 1998-12-08 2007-03-20 Nomadix, Inc. Systems and methods for providing dynamic network authorization authentication and accounting
US8713641B1 (en) 1998-12-08 2014-04-29 Nomadix, Inc. Systems and methods for authorizing, authenticating and accounting users having transparent computer access to a network using a gateway device
US6928469B1 (en) 1998-12-29 2005-08-09 Citrix Systems, Inc. Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques
US6421739B1 (en) * 1999-01-30 2002-07-16 Nortel Networks Limited Fault-tolerant java virtual machine
FR2792435B1 (fr) * 1999-04-15 2001-07-13 Cit Alcatel Procede de modification d'un protocole entre objets distribues
AU4472600A (en) * 1999-04-30 2000-11-17 General Instrument Corporation Method and apparatus for coordinating and filtering on interactive and broadcastprotocols in broadband network environments
US7882247B2 (en) 1999-06-11 2011-02-01 Netmotion Wireless, Inc. Method and apparatus for providing secure connectivity in mobile and other intermittent computing environments
AU1224101A (en) 1999-10-22 2001-05-08 Nomadix, Inc. Gateway device having an xml interface and associated method
US6539383B2 (en) 1999-11-08 2003-03-25 International Business Machines Corporation Communication and interaction objects for connecting an application to a database management system
US6502104B2 (en) 1999-11-08 2002-12-31 International Business Machines Corporation System message objects for communicating between an application and a database management system
US7783720B1 (en) * 2000-04-21 2010-08-24 Oracle America, Inc. CORBA metadata gateway to telecommunications management network
US6799318B1 (en) 2000-04-24 2004-09-28 Microsoft Corporation Method having multiple interfaces with distinguished functions and commands for providing services to a device through a transport
US6789112B1 (en) 2000-05-08 2004-09-07 Citrix Systems, Inc. Method and apparatus for administering a server having a subsystem in communication with an event channel
US6785726B1 (en) 2000-05-08 2004-08-31 Citrix Systems, Inc. Method and apparatus for delivering local and remote server events in a similar fashion
US6785713B1 (en) 2000-05-08 2004-08-31 Citrix Systems, Inc. Method and apparatus for communicating among a network of servers utilizing a transport mechanism
AU2001276932B2 (en) * 2000-07-27 2007-06-21 Oracle International Corporation System and method for concentration and load-balancing of requests
CA2420907A1 (en) * 2000-08-31 2002-03-07 Padcom, Inc. Method and apparatus for routing data over multiple wireless networks
US8019901B2 (en) * 2000-09-29 2011-09-13 Alacritech, Inc. Intelligent network storage interface system
US6720074B2 (en) * 2000-10-26 2004-04-13 Inframat Corporation Insulator coated magnetic nanoparticulate composites with reduced core loss and method of manufacture thereof
CA2329891A1 (en) * 2000-12-29 2002-06-29 Subsecond Technology Inc. Method and apparatus for remote database maintenance and access
US20020156900A1 (en) 2001-03-30 2002-10-24 Brian Marquette Protocol independent control module
US20050198379A1 (en) 2001-06-13 2005-09-08 Citrix Systems, Inc. Automatically reconnecting a client across reliable and persistent communication sessions
US7562146B2 (en) * 2003-10-10 2009-07-14 Citrix Systems, Inc. Encapsulating protocol for session persistence and reliability
US6865607B1 (en) * 2001-06-28 2005-03-08 Microsoft Corp. Pluggable channels
US20030115358A1 (en) * 2001-09-04 2003-06-19 Yeong-Hyun Yun Unified interprocess communication
US7263701B2 (en) 2001-09-04 2007-08-28 Samsung Electronics Co., Ltd. Interprocess communication method and apparatus
EP1296239A3 (de) * 2001-09-04 2004-05-19 Samsung Electronics Co., Ltd. Verfahren und Gerät für Interprozesskommunikation
US7644171B2 (en) * 2001-09-12 2010-01-05 Netmotion Wireless, Inc. Mobile networking system and method using IPv4 and IPv6
US20030115350A1 (en) * 2001-12-14 2003-06-19 Silverback Systems, Inc. System and method for efficient handling of network data
US20030121835A1 (en) * 2001-12-31 2003-07-03 Peter Quartararo Apparatus for and method of sieving biocompatible adsorbent beaded polymers
US7661129B2 (en) 2002-02-26 2010-02-09 Citrix Systems, Inc. Secure traversal of network components
US7984157B2 (en) * 2002-02-26 2011-07-19 Citrix Systems, Inc. Persistent and reliable session securely traversing network components using an encapsulating protocol
US7376695B2 (en) 2002-03-14 2008-05-20 Citrix Systems, Inc. Method and system for generating a graphical display for a remote terminal session
US8671213B2 (en) 2002-03-14 2014-03-11 Citrix Systems, Inc. Methods and apparatus for generating graphical and media displays at a client
US8135843B2 (en) 2002-03-22 2012-03-13 Citrix Systems, Inc. Methods and systems for providing access to an application
US7543087B2 (en) * 2002-04-22 2009-06-02 Alacritech, Inc. Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device
US7496689B2 (en) * 2002-04-22 2009-02-24 Alacritech, Inc. TCP/IP offload device
US7337241B2 (en) * 2002-09-27 2008-02-26 Alacritech, Inc. Fast-path apparatus for receiving data corresponding to a TCP connection
US7191241B2 (en) * 2002-09-27 2007-03-13 Alacritech, Inc. Fast-path apparatus for receiving data corresponding to a TCP connection
US20040088262A1 (en) * 2002-11-06 2004-05-06 Alacritech, Inc. Enabling an enhanced function of an electronic device
US20040170181A1 (en) * 2003-02-27 2004-09-02 Padcom, Inc. Prioritized alternate port routing
US6996070B2 (en) * 2003-12-05 2006-02-07 Alacritech, Inc. TCP/IP offload device with reduced sequential processing
US8248939B1 (en) 2004-10-08 2012-08-21 Alacritech, Inc. Transferring control of TCP connections between hierarchy of processing mechanisms
US7738500B1 (en) 2005-12-14 2010-06-15 Alacritech, Inc. TCP timestamp synchronization for network connections that are offloaded to network interface devices
US8539513B1 (en) 2008-04-01 2013-09-17 Alacritech, Inc. Accelerating data transfer in a virtual computer system with tightly coupled TCP connections
US8341286B1 (en) 2008-07-31 2012-12-25 Alacritech, Inc. TCP offload send optimization
US9306793B1 (en) 2008-10-22 2016-04-05 Alacritech, Inc. TCP offload device that batches session layer headers to reduce interrupts as well as CPU copies
US8553693B2 (en) * 2010-03-10 2013-10-08 Intel Corporation Network controller circuitry to issue at least one portion of packet payload to device in manner that by-passes communication protocol stack involvement
CN103529816B (zh) * 2013-10-30 2016-03-02 中国科学院自动化研究所 一种基于Qt的上位机控制系统
US10768979B2 (en) * 2016-09-23 2020-09-08 Apple Inc. Peer-to-peer distributed computing system for heterogeneous device types
CN106648659A (zh) * 2016-12-22 2017-05-10 杭州铜板街互联网金融信息服务有限公司 网页制作方法及系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4281315A (en) * 1979-08-27 1981-07-28 Bell Telephone Laboratories, Incorporated Collection of messages from data terminals using different protocols and formats
EP0414624B1 (de) * 1989-08-24 1996-12-18 International Business Machines Corporation System für den Aufruf von Prozeduren von einem Fernnetzwerkknotenpunkt
JP3179513B2 (ja) * 1990-05-10 2001-06-25 ヒューレット・パッカード・カンパニー 異種ネットワーク環境における適用業務プログラムの統合システム
US5303336A (en) * 1990-05-14 1994-04-12 Hitachi, Ltd. Printing system including print server
US5260990A (en) * 1991-04-30 1993-11-09 Boston Technology, Inc. Multiple integrations unit for coupling different switching systems to a message storage system
US5826017A (en) * 1992-02-10 1998-10-20 Lucent Technologies Apparatus and method for communicating data between elements of a distributed system using a general protocol
ES2154647T3 (es) * 1992-07-01 2001-04-16 Ericsson Telefon Ab L M Metodo y sistema de especificacion de interfaz independiente de la implementacion.
US5329619A (en) * 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments
US5638497A (en) * 1992-12-18 1997-06-10 Dataproducts Corporation Virtual printer
EP0604010B1 (de) * 1992-12-21 1999-12-29 Sun Microsystems, Inc. Verfahren und Vorrichtung für Teilaufgaben in verteiltem Verarbeitungssystem
US5522079A (en) * 1993-06-14 1996-05-28 International Business Machines Corporation Compiler merging new and preexisting modules while preserving function order
US5485460A (en) * 1994-08-19 1996-01-16 Microsoft Corporation System and method for running multiple incompatible network protocol stacks

Also Published As

Publication number Publication date
DE69632987D1 (de) 2004-09-02
AU6552196A (en) 1997-04-10
EP0767563A3 (de) 1998-10-14
EP0767563B1 (de) 2004-07-28
EP0767563A2 (de) 1997-04-09
TW303558B (de) 1997-04-21
US5758186A (en) 1998-05-26
CN1159631A (zh) 1997-09-17
KR970024763A (ko) 1997-05-30
JPH09218860A (ja) 1997-08-19

Similar Documents

Publication Publication Date Title
DE69632987T2 (de) Verfahren und Vorrichtung zum Mehrfachprotokollbetrieb in einem Benutzer-/Anbietersystem
DE69730690T2 (de) Verfahren und apparat zum dynamischen austausch von objekt-nachrichten zwischen objekt-modellen
DE69814900T2 (de) Verfahren und system zur unterstützung verteilter software- entwicklung ohne bewusstsein der verteilten charakteristik der software
DE69734432T2 (de) Verfahren und Vorrichtung zur Absendung von Clientverfahrenanrufen in einem Server Rechnersystem
DE69630480T2 (de) Verfahren, Vorrichtung und Datenstrukturen zur Objektverwaltung
DE69724877T2 (de) Verfahren und Vorrichtung zum Betrieb einer Aggregation von Serverrechnern mittels eines Doppelzweck-Proxy-Servers
DE60311684T2 (de) Kundenzugang zum internetdienst
DE69732968T2 (de) System, verfahren und hergestellter gegenstand zur wartung von server-anwendungssoftware der netzwerk-kundenendgeräte und nicht-netzwerk-kundenengeräte
DE19708281B4 (de) Fernausführungssystem mit Programmempfänger
DE69721632T2 (de) Verfahren und Vorrichtung zur Servletverarbeitung
DE19605093B4 (de) Verfahren und Vorrichtung zum Einrichten und Verwalten einer Verbindung zwischen einem Client-Computersystem und jedem einer Mehrzahl von Server-Computersystemen
DE69727381T2 (de) Verfahren zum transportieren von in einer schnittstellendefinitionssprache definierten datenstrukturen zwischen heterogenen systemen
DE60028561T2 (de) Bereitstellung von kundendiensten, die daten aus datenquellen abrufen, wobei die datenquellen die vom kunden geforderten formate nicht notwendigerweise unterstützen
DE69533148T2 (de) Verfahren und Gerät zur Erzeugung und Verwendung kurzer Operationsidentifizierer in objektorientierten Systemen
DE10051024B4 (de) Verfahren zum intermediären Cachen in einem Client-Server-Softwaresystem, Computerprogrammprodukte und Computersystem zur Durchführung eines solchen Verfahrens
DE69727933T2 (de) Verfahren und gerät zum beschreiben einer definierten schnittstelle, einer operation und eines datentyps in einer schnittstellendefinitionssprache
DE10297269T5 (de) Kennzeichnung von Paketen mit einem Nachschlageschlüssel zur leichteren Verwendung eines gemeinsamen Paketweiterleitungs-Cache
DE10024715B4 (de) Verfahren und Vorrichtung zum Einrichten einer Zwei-Wege-Übertragung zwischen einem Host-System und einer Vorrichtung
DE10205108A1 (de) System und Verfahren zum Zugreifen auf Softwarekomponenten in einer verteilten Netzwerkumgebung
DE10151115A1 (de) Verfahren zum Bedienen und zum Beobachten von Feldgeräten
EP0825524A1 (de) Verfahren zur Verwaltung der Benennung von Objekten
DE10348591A1 (de) Automatically identifying a program error in a computer program
EP1436677A1 (de) Verfahren zur inbetriebnahme eines bedien- und beobachtungssystems von feldgeräten
DE60106124T2 (de) Verfahren und System zum Empfehlen eines verfügbaren Netzwerkprotokolls
DE69837550T2 (de) System und Verfahren zur Datenübermittlung von einer Serverapplikation an Klientknoten

Legal Events

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