DE69632987T2 - Verfahren und Vorrichtung zum Mehrfachprotokollbetrieb in einem Benutzer-/Anbietersystem - Google Patents
Verfahren und Vorrichtung zum Mehrfachprotokollbetrieb in einem Benutzer-/Anbietersystem Download PDFInfo
- 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
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol 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 der1 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-Computervorrichtung20 , die die Technik enthält, die die vorliegende Erfindung verkörpert. Die Vorrichtung20 enthält einen Satz von Client-Computern22A –22N , die jeweils mit einem Übertragungskanal23 verbunden sind. Der Übertragungskanal23 bezieht sich allgemein auf eine beliebige drahtgebundene oder drahtlose Verbindung zwischen Computern. Die Client-Computer22A –22N verwenden den Übertragungskanal23 , um mit einem Server-Computer24 zu kommunizieren. - Jeder Client-Computer
22 weist eine Standard-Computerkonfiguration auf, die eine Zentraleinheit (CPU)30 enthält, die mit einem Speicher32 verbunden ist, der einen Satz von ausführbaren Programmen speichert. Die ausführbaren Programme in diesem beispielhaften System umfassen wenigstens ein Client-Anwendungsprogramm34 , Client-Stummelprogramme38 , Client-Unterkontraktprogramme40 und ein Betriebssystem42 . - Das Client-Anwendungsprogramm
34 ist ein beliebiges Programm auf Anwendungsebene, wie z. B. ein Anwendungsprogramm, mit dem der Benutzer eines Client-Computers22 interagiert. Die Client-Stummelprogramme38 empfangen Prozeduraufrufe vom Anwendungsprogramm34 , die die Ausführung spezifizierter Methoden von spezifizierten Objekten anfordern. Der Zweck der Client-Stummelprogramme38 ist, auf Objekte zuzugreifen, die in anderen Adressräumen, wie z. B. auf einem Server-Computer24 , implementiert sind. - Die Client-Unterkontraktprogramme
40 und die Server-Unterkontraktprogramme58 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-Computer24 . - 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-Unterkontraktprogramm58 auf dem Server-Computer24 durchgeführt. Die Client-Unterkontraktprogramme40 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-Computer24 , empfangen. Ein Betriebssystem42 , wie z. B. das SOLARIS Betriebssystem von Sun Microsystems liegt den Operationen der Client-Anwendungsprogramme34 , der Client-Stummelprogramme38 und der Client-Unterkontraktprogramme40 zu Grunde. - Der Server
24 weist eine Konfiguration ähnlich derjenigen der Client-Computer22 auf. Der Server24 enthält eine CPU50 und einen zugehörigen Speicher52 . Der Speicher52 speichert Server-Anwendungsprogramme54 , Server-Stummelprogramme56 , Server-Unterkontraktprogramme58 und ein Betriebssystem60 . Wie oben angegeben ist, behandeln die Server-Stummelprogramme56 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-Unterkontraktprogramme58 eine Datensortierung und andere Operationen durch, um den Transport der Verfahrensaufrufe und der resultierenden Rückkehrnachrichten zwischen dem Server24 und dem Client-Computern22 zu unterstützen. - Die Operationen der Vorrichtung der
1 werden mit Bezug auf2 genauer eingeschätzt.2 zeigt den Client-Computer22A , den Übertragungskanal23 und den Server24 der1 . Wie oben angegeben ist, ruft eine Client-Anwendung34 eine spezifizierte Methode eines Objekts in einem anderen Adressraum unter Verwendung eines Fernprozeduraufrufes auf. Der Fernprozeduraufruf wird von den Client-Stummelprogrammen38 zum Client-Unterkontraktprogramm40 weitergeleitet, welches den Fernprozeduraufruf für den Transport auf dem Übertragungskanal23 verpackt. Das Server-Unterkontraktprogramm58 des Servers24 empfängt die Informationen und packt diese aus. Das Server-Unterkontraktprogramm58 leitet anschließend die Informationen zu den Server-Stummelprogrammen56 weiter. Die Server- Stummelprogramme56 greifen auf die Server-Anwendungsprogramme54 zu, die die vorher beschriebenen Objektmethoden sind. Genauer macht ein spezifiziertes Server-Stummelprogramm56 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-Unterkontraktprogramm58 zurückgeleitet wird, wobei der Kommunikationsweg umgekehrt ist, wie durch die Pfeile der2 gezeigt ist. - Block
70 der2 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-Unterkontraktprogramm40 einen protokollabhängigen Methodendeskriptor, um eine einem aufgerufenen Objekt zugeordnete Methode anzufordern. Genauer verwendet das Client-Unterkontraktprogramm40 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-Stummelprogramm38 leitet an das Client-Unterkontraktprogramm40 eine Liste protokollabhängiger Werte weiter, aus der das Client-Unterkontraktprogramm40 den protokollabhängigen Methodendeskriptor berechnet. - Wenn somit ein Satz von Client-Computern
22A –22N mit einem Server24 verbunden ist, muss der Server24 jedes Protokoll verarbeiten. Separate Server-Unterkontraktprogramme58 (nicht gezeigt) sind notwendig, um jedes dieser Protokolle zu bewältigen. Im Stand der Technik weist jedes Server-Unterkontraktprogramm58 einen Satz entsprechender Server-Stummelprogramme56 auf. Um somit ORBs mit mehreren Protokollen zu unterstützen, sollte ein Server24 verschiedene Server-Stummelprogramme56 für jedes Protokoll aufweisen, was zu einem großen Satz von Server-Stummelprogrammen56 führt. Folglich kann leicht abgeschätzt werden, dass die Verwendung unterschiedlicher ORB-Protokolle zu unhandlichen Anforderungen an den Server24 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-Unterkontraktprogramm58 spezifiziert wird. Wenn ein passender protokollabhängiger Wert identifiziert wird, kann das Server-Unterkontraktprogramm58 anschließend diesem einen Indexwert zuweisen. - Wie in
2 gezeigt ist, wird der Indexwert zu den protokollunabhängigen Server-Stummelprogrammen56 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-Stummelprogrammen56 isoliert. Folglich können protokollunabhängige Server-Stummelprogramme56 mit einem beliebigen Typ von Objektanfragevermittler70 verwendet werden. Ferner kann ein einzelner Compiler verwendet werden, um die protokollunabhängigen Server-Stummelprogramme56 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-Stummelprogrammen56 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-Unterkontraktprogramm40 und vom Server-Unterkontraktprogramm58 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 der3 besteht darin, dass das Server-Unterkontraktprogramm einen Methodendeskriptor in einen Methodenaufruf identifiziert (Block80 ). 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 auf4 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. In4 sind diese Einträge als Descriptor_List_1_1 bis Descriptor_List_1_j gezeigt. In4 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.
- 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-Unterkontraktprogramm58 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 der3 , nämlich, dass das Server-Unterkontraktprogramm einen Indexwert an die Server-Stummelprogramme weiterleitet (Block86 ). - Sobald die Server-Stummelprogramme den Indexwert empfangen, greifen sie auf eine Operationstabelle
100 zu, die in4 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 (Block88 ).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 in3 gezeigt ist, besteht darin, dass die Server-Stummelprogramme die durch die Ausführung der Methode erzeugte Antwort an die Server-Unterkontraktprogramme (Block90 ) 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 Operationstabelle100 der4 . Wie oben angegeben ist, ist die Operationstabelle in den Server-Stummelprogrammen56 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-Unterkontraktprogramm58 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 in4 gezeigt ist, ruft der Server die Operation i von der Operationstabelle100 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 Unterkontraktprogramm40 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-Computer24 empfangen wird, kann der Client-Computer22 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 Objektaufbewahrungsort104 zeigt. Die Ausnahmeobjektidentifikation kann ein Kettenname sein, der mit einem Objekt im lokalen Objektaufbewahrungsort104 verknüpft ist. Jedes Objekt im lokalen Objektaufbewahrungsort104 stellt codierte Befehle oder Informationen zur Verfügung, um den Client- Computer22 zu erlauben, die Ausnahme zu behandeln. In dem Fall, in dem sich das Objekt nicht im lokalen Objektaufbewahrungsort104 befindet, instanziiert das Betriebssystem42 das Objekt in dem lokalen Objektaufbewahrungsort104 durch Herunterladen des Codes von einem weiteren Computer im Netzwerk.
Claims (9)
- 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. - 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. - Verfahren nach Anspruch 1, bei dem der Lokalisierungsschritt (
80 ) den Schritt des Resortierens eines Sortierungspuffers, der den Methodenaufruf enthält, umfasst. - 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. - 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. - 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. - 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. - 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.
- Computerlesbarer Speicher nach Anspruch 7, bei dem die Antwort eine Ausnahmebedingung für den Methodenaufruf enthält.
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)
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 |
US6088515A (en) | 1995-11-13 | 2000-07-11 | Citrix Systems Inc | Method and apparatus for making a hypermedium interactive |
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 |
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 |
US7185266B2 (en) | 2003-02-12 | 2007-02-27 | Alacritech, Inc. | Network interface device for error detection using partial CRCS of variable length message portions |
US8621101B1 (en) | 2000-09-29 | 2013-12-31 | Alacritech, Inc. | Intelligent network storage interface device |
US6434620B1 (en) * | 1998-08-27 | 2002-08-13 | Alacritech, Inc. | TCP/IP offload network interface device |
US7089326B2 (en) * | 1997-10-14 | 2006-08-08 | Alacritech, Inc. | Fast-path processing for receiving data on TCP connection offload devices |
US6470415B1 (en) | 1999-10-13 | 2002-10-22 | Alacritech, Inc. | Queue system involving SRAM head, SRAM tail and DRAM body |
US7174393B2 (en) | 2000-12-26 | 2007-02-06 | Alacritech, Inc. | TCP/IP offload network interface device |
US8539112B2 (en) | 1997-10-14 | 2013-09-17 | Alacritech, Inc. | TCP/IP offload device |
US7133940B2 (en) * | 1997-10-14 | 2006-11-07 | Alacritech, Inc. | Network interface device employing a DMA command queue |
US6226680B1 (en) | 1997-10-14 | 2001-05-01 | Alacritech, Inc. | Intelligent network interface system method for protocol processing |
US6697868B2 (en) | 2000-02-28 | 2004-02-24 | Alacritech, Inc. | Protocol processing stack for use with intelligent network interface device |
US6658480B2 (en) | 1997-10-14 | 2003-12-02 | Alacritech, Inc. | Intelligent network interface system and method for accelerated protocol processing |
US7284070B2 (en) * | 1997-10-14 | 2007-10-16 | Alacritech, Inc. | TCP offload network interface device |
US6427171B1 (en) | 1997-10-14 | 2002-07-30 | Alacritech, Inc. | Protocol processing stack for use with intelligent network interface device |
US6591302B2 (en) | 1997-10-14 | 2003-07-08 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding to a TCP connection |
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 |
US6687758B2 (en) | 2001-03-07 | 2004-02-03 | Alacritech, Inc. | Port aggregation for network connections that are offloaded to network interface devices |
US7042898B2 (en) | 1997-10-14 | 2006-05-09 | Alacritech, Inc. | Reducing delays associated with inserting a checksum into a network message |
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 |
US8782199B2 (en) | 1997-10-14 | 2014-07-15 | A-Tech Llc | Parsing a packet header |
US6389479B1 (en) | 1997-10-14 | 2002-05-14 | Alacritech, Inc. | Intelligent network interface device and system for accelerated communication |
US7167927B2 (en) | 1997-10-14 | 2007-01-23 | Alacritech, Inc. | TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism |
US7237036B2 (en) * | 1997-10-14 | 2007-06-26 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding a TCP connection |
US6427173B1 (en) | 1997-10-14 | 2002-07-30 | Alacritech, Inc. | Intelligent network interfaced device and system for accelerated communication |
US6167565A (en) * | 1998-01-08 | 2000-12-26 | Microsoft Corporation | Method and system of custom marshaling of inter-language parameters |
JP2002523817A (ja) * | 1998-08-14 | 2002-07-30 | サイトリックス システムズ,インコーポレイテッド | メッセージストリームからアルゴリズム情報を抽出する装置および方法 |
US7664883B2 (en) * | 1998-08-28 | 2010-02-16 | Alacritech, Inc. | Network interface device that fast-path processes solicited session layer read commands |
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 |
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 |
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 |
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 |
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 |
US8266266B2 (en) | 1998-12-08 | 2012-09-11 | 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 |
US7194554B1 (en) | 1998-12-08 | 2007-03-20 | Nomadix, Inc. | Systems and methods for providing dynamic network authorization authentication and accounting |
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 |
EP1175764A2 (de) * | 1999-04-30 | 2002-01-30 | General Instrument Corporation | Verfahren und vorrichtung zur protokolumsetzung |
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 |
US8190708B1 (en) | 1999-10-22 | 2012-05-29 | Nomadix, Inc. | Gateway device having an XML interface and associated method |
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 |
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 |
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 |
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 |
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 |
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 |
EP1296239A3 (de) * | 2001-09-04 | 2004-05-19 | Samsung Electronics Co., Ltd. | Verfahren und Gerät für Interprozesskommunikation |
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 |
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 |
US7984157B2 (en) * | 2002-02-26 | 2011-07-19 | Citrix Systems, Inc. | Persistent and reliable session securely traversing network components using an encapsulating protocol |
US7661129B2 (en) | 2002-02-26 | 2010-02-09 | Citrix Systems, Inc. | Secure traversal of network components |
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 |
US7191241B2 (en) * | 2002-09-27 | 2007-03-13 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding to a TCP connection |
US7337241B2 (en) * | 2002-09-27 | 2008-02-26 | 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)
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 |
DE69029441T2 (de) * | 1989-08-24 | 1997-06-12 | Ibm | System für den Aufruf von Prozeduren von einem Fernnetzwerkknotenpunkt |
EP0456249B1 (de) * | 1990-05-10 | 1998-12-09 | Hewlett-Packard Company | System zum Integrieren von Anwenderprogrammen in eine heterogene Netzwerkumgebung |
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 |
KR100328516B1 (ko) * | 1992-07-01 | 2002-11-27 | 텔레폰아크티에볼라게트 엘엠 에릭슨 | 응용프로그램사이에통신프로토콜을설정하기위한시스템및방법 |
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 |
DE69327448T2 (de) * | 1992-12-21 | 2004-03-04 | Sun Microsystems, Inc., Mountain View | 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 |
-
1995
- 1995-10-06 US US08/539,999 patent/US5758186A/en not_active Expired - Lifetime
-
1996
- 1996-09-09 AU AU65521/96A patent/AU6552196A/en not_active Abandoned
- 1996-09-19 DE DE69632987T patent/DE69632987T2/de not_active Expired - Fee Related
- 1996-09-19 EP EP96306822A patent/EP0767563B1/de not_active Expired - Lifetime
- 1996-09-25 JP JP8274173A patent/JPH09218860A/ja active Pending
- 1996-10-04 KR KR1019960043777A patent/KR970024763A/ko active IP Right Grant
- 1996-10-06 CN CN96122420A patent/CN1159631A/zh active Pending
- 1996-10-07 TW TW085112239A patent/TW303558B/zh active
Also Published As
Publication number | Publication date |
---|---|
EP0767563B1 (de) | 2004-07-28 |
TW303558B (de) | 1997-04-21 |
DE69632987D1 (de) | 2004-09-02 |
EP0767563A2 (de) | 1997-04-09 |
EP0767563A3 (de) | 1998-10-14 |
JPH09218860A (ja) | 1997-08-19 |
CN1159631A (zh) | 1997-09-17 |
US5758186A (en) | 1998-05-26 |
KR970024763A (ko) | 1997-05-30 |
AU6552196A (en) | 1997-04-10 |
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 | |
DE69812899T2 (de) | Webagent zur anforderung von mehreren prozessen | |
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 | |
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 |