DE69724877T2 - Verfahren und Vorrichtung zum Betrieb einer Aggregation von Serverrechnern mittels eines Doppelzweck-Proxy-Servers - Google Patents

Verfahren und Vorrichtung zum Betrieb einer Aggregation von Serverrechnern mittels eines Doppelzweck-Proxy-Servers Download PDF

Info

Publication number
DE69724877T2
DE69724877T2 DE69724877T DE69724877T DE69724877T2 DE 69724877 T2 DE69724877 T2 DE 69724877T2 DE 69724877 T DE69724877 T DE 69724877T DE 69724877 T DE69724877 T DE 69724877T DE 69724877 T2 DE69724877 T2 DE 69724877T2
Authority
DE
Germany
Prior art keywords
client
proxy server
computer
server
computers
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
DE69724877T
Other languages
English (en)
Other versions
DE69724877D1 (de
Inventor
Dinesh Katiyar
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 DE69724877D1 publication Critical patent/DE69724877D1/de
Application granted granted Critical
Publication of DE69724877T2 publication Critical patent/DE69724877T2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/46Indexing scheme relating to G06F9/46
    • G06F2209/462Lookup

Description

  • Diese Erfindung bezieht sich im allgemeinen auf Verbünde von Server-Computern, die zusammenarbeiten, um einen Dienst in verteilten Client/Server-Computersystemen zur Verfügung zu stellen. Genauer gesagt bezieht sich diese Erfindung auf einen Verbund von Server-Computern, der sich auf einen Doppelfunktions-Proxyserver-Computer stützt.
  • Nach dem Stand der Technik sieht das Dokument US-A-5475819 ein verteiltes Verarbeitungssystem unter Verwendung eines Kommunikationsnetzwerkes vor, das eine Reihe von Dienstanbietern für einen gegebenen Dienst oder einen entfernten Prozeduraufruf umfaßt.
  • In einem Client/Server-Computernetzwerk fordert der Benutzer eines Client-Computers die Ausführung eines Objektes an. Insbesondere fordert der Benutzer die Ausführung eines einem Objekt zugeordneten Verfahrens an. Häufig ist das Objekt nicht lokal auf dem Client-Computer gespeichert. Daher muß ein entfernter Prozeduraufruf (Remote Procedure Call, RPC) zu einem Server-Computer vorgenommen werden, auf dem sich das Objekt befindet. In den meisten Fällen führt der Server-Computer das angeforderte Verfahren aus, um ein Ergebnis zu erzeugen. Das Ergebnis wird dann an den Client-Computer übergeben.
  • Es ist üblich, einen Verbund von Server-Computern vorzusehen, die zusammenarbeiten, um einen Dienst für einen Client-Computer zu erbringen. Diese Zusammenarbeit von Server-Computern kann als ein Server-Verbund bezeichnet werden. Gründe für die Verwendung eines Server-Verbundes schließen ein: die Robustheit und die Fehlertoleranz, die Lastverteilung, das Unterteilen von Daten, das Ermöglichen von Systementwicklung (Verbesserungen, etc.), prioritätsbezogenes und sicheres Erbringen von Diensten, etc. Die Entwicklung von fast jeder unternehmenskritischen Anwendung macht Gebrauch von einer Art von Verbund, und daher ist es wichtig, daß jede verteilte Anwendung einen Rahmen entwickelt, der deren Unterstützung vorsieht.
  • 1 stellt eine Client/Server-Computervorrichtung 20 gemäß dem Stand der Technik dar. Die Vorrichtung 20 beinhaltet eine Menge von Client-Computern 22A22N, von denen jeder mit einem Übertragungskanal 23 verbunden ist. Der Übertragungskanal 23 bezieht sich allgemein auf jedwede Kabelverbindung oder kabellose Verbindung zwischen Computern. Die Client-Computer 22A22N verwenden den Übertragungskanal 23, um mit einer Menge von Server-Computern 24A24N zu kommunizieren, die den Server-Verbund 25 bilden.
  • Jeder Client-Computer 22 hat eine Standardcomputer-Konfiguration einschließlich einer zentralen Verarbeitungseinheit (Central Processing Unit, CPU) 30, die an einen Speicher 32 angeschlossen ist, der einen Satz von ausführbaren Programmen speichert. Die ausführbaren Programme in diesem Beispielsystem beinhalten mindestens ein Client-Anwendungsprogramm 34, Client-Stubs bzw. -Rümpfe 38, Client-Unterverträge 40 und ein Betriebssystem 42.
  • Das Client-Anwendungsprogramm 34 ist jedes Programm auf Anwendungsebene wie ein Anwendungsprogramm, mit dem der Benutzer eines Client-Computers 22 interagiert. Die Client-Stubs 38 empfangen Prozeduraufrufe von dem Anwendungsprogramm 34, die die Ausführung von spezifizierten Methoden spezifizierter Objekte anfordern. Der Zweck der Client-Stubs 38 ist, auf Objekte zuzugreifen, die in anderen Adreßräumen wie in den Server-Computern 24A22N implementiert sind.
  • Die Client-Untervertragsprogramme 40 und Server-Untervertragsprogramme 58 steuern die grundlegenden Mechanismen des Objektaufrufs und der Argumentübergabe. Sie steuern, wie der Objektaufruf implementiert ist, wie Objektreferenzen zwischen Adreßräumen übertragen werden, wie Objektreferenzen freigegeben werden und ähnliche Objektoperationen während der Laufzeit. Wenn zum Beispiel ein Client ein Objekt eines gegebenen Untervertrages aufruft, implementiert der Untervertrag den Objektaufruf, indem die Anforderung an den Adreßraum übergeben wird, in dem sich das zugeordnete Objekt befindet, üblicherweise ein Server-Computer 24 des Server-Verbundes 25. Die Client-Untervertragsprogramme 40 führen eine Marshall- bzw. Bereitstellungsoperation durch, um einen Objektaufruf (d. h. einen entfernten bzw. abgesetzten Prozeduraufruf) an einen anderen Adreßraum zu übertragen. Eine entsprechende Unmarshalling- bzw. Entpackungs-Operation wird von einem Server-Untervertrag 58 auf einem Server-Computer 24 durchgeführt. Die Client-Untervertragsprogramme 40 führen auch Unmarshall-Operationen durch, wenn sie eine Antwort (wie die Ergebnisse, die von einem Methodenaufruf erzeugt wurden) von einem anderen Computer, z. B. dem Server-Computer 24, empfangen. Ein Betriebssystem 42 liegt den Operationen der Client-Anwendungsprogramme 34, der Client-Stubs 38 und der Client-Unterverträge 40 zugrunde.
  • Jeder Server-Computer 24 hat eine Konfiguration analog zu derjenigen jedes Client-Computers 22. Jeder Server 24 beinhaltet eine CPU 50 und einen zugeordneten Speicher 52. Der Speicher 52 speichert Server-Anwendungsprogramme 54, Server-Stubs 54, Server-Untervertragsprogramme 58 und ein Betriebssystem 60. Wie oben angegeben behandeln die Server-Stubs 54 ankommende Methodenaufrufe bei einem Objekt und rufen die angegebene Methode auf, um die Operation durchzuführen. Wie ebenso oben angegeben führen die Server-Unterverträge 58 die Datenbereitstellung und anderen Operationen durch, um den Transport eines Methodenaufrufs und der resultierenden Rückgabenachrichten zwischen dem Server 24 und den Client-Computern 22 zu unterstützen.
  • Die Operationen der Vorrichtung von 1 werden umfassender unter Bezug auf 2 diskutiert. 2 stellt den Client-Computer 22A, den Übertragungskanal 23 und den Server-Computer 24A dar. Wie oben angegeben ruft eine Client-Anwendung 34 eine spezielle Methode eines Objektes in einem unterschiedlichen Adreßraum unter Verwendung eines entfernten Methodenaufrufs auf. Der entfernte Methodenaufruf wird von den Client-Stubs 38 an den Client-Untervertrag 40 übergeben, der den entfernten Methodenaufruf für den Transport auf dem Übertragungskanal 23 verpackt. Der Server-Untervertrag 58 des Servers 24A empfängt die Information und entpackt sie. Der Server-Untervertrag 58 übergibt danach die Information an die Server-Stubs 56. Die Server-Stubs 56 greifen auf die Server-Anwendungsprogramme 54 zu, die die zuvor beschriebenen Objektmethoden darstellen. Genauer vollführt ein angegebener Server-Stub 56 einen Prozeduraufruf, um eine angegebene Methode des aufgerufenen Objektes auszuführen. Die Ausführung einer Methode bzw. eines Verfahrens erzeugt einen Satz von Resultaten, hier als eine Antwort be zeichnet, die dann an den Server-Untervertrag 58 zurückgegeben wird, und der Kommunikationspfad wird umgekehrt, wie durch die Pfeile in 2 angegeben.
  • Block 70 von 2 stellt die Komponenten dar, die einem Object Request Broker (ORB) zugeordnet sind. Ein ORB ist ein verteilter Mechanismus zur Behandlung von entfernten Prozeduraufrufen. Der Mechanismus ist verteilt in dem Sinn, daß die einem ORB zugeordnete Software sowohl auf dem Client-Computer 22 als auch auf dem Server-Computer 24 liegt.
  • Die vorliegende Erfindung zielt auf ein Client/Server-Computersystem mit verteilten Objekten der Art, wie sie mit Bezug auf die 1 und 2 beschrieben ist. Genauer zielt die Erfindung auf den Betrieb eines Server-Computer-Verbundes 25 in einem Client/Server-Computersystem mit verteilten Objekten. Existierenden Server-Computer-Verbunden mangelt es an einer gemeinsamen Architekturbasis, die verwendet werden kann, um saubere und elegante Implementierungen der Eigenschaften bzw. Merkmale eines Server-Verbundes bereitzustellen. Das Fehlen einer gemeinsamen Architekturbasis für die Funktionen eines Server-Verbundes verhindert eine einigermaßen einheitliche Sicht sowohl für Benutzer als auch für Administratoren des Systems. Daher wäre es höchst wünschenswert, eine saubere und elegante Implementierung von Funktionen eines Server-Verbundes zur Verfügung zu stellen. Eine solche Implementierung würde einen einigermaßen einheitlichen, systematischen Ansatz sowohl für Benutzer als auch für Administratoren des Systems vorsehen.
  • Spezielle und bevorzugte Aspekte der Erfindung sind in den beigefügten unabhängigen und abhängigen Ansprüchen dargelegt. Merkmale der abhängigen Ansprüche können mit denjenigen der unabhängigen Ansprüche je nach Bedarf und in anderen als den explizit in den Ansprüchen dargelegten Kombinationen kombiniert werden.
  • Eine Client/Server-Computervorrichtung umfaßt einen Verbund von Server-Computern, die an einen Übertragungskanal angeschlossen sind. Der Verbund von Server-Computern umfaßt einen Proxy-Server-Computer in Doppelfunktion, und eine Menge von Nicht-Proxy-Server-Computern. Eine Menge von Client-Computern ist auch mit dem Übertragungskanal verbunden. Die Menge von Client-Computern erzeugt entfemte Prozeduraufrufe von Objekten, die in dem Verbund von Server-Computern gespeichert sind. Die entfernten Prozeduraufrufe umfassen nicht von bzw. als Clients bzw. von Nicht-Clients abgesetzte entfernte Prozeduraufrufe an den Proxy-Server-Computer in Doppelfunktion und entfernte Prozeduraufrufe von Clients an die Nicht-Proxy-Server-Computer. Der Proxy-Server-Computer in Doppelfunktion bearbeitet die entfernten Prozeduraufrufe von Clients nur, wenn die Menge von Nicht-Proxy-Server-Computern die entfernten Prozeduraufrufe von Clients nicht bearbeiten kann. Die Verarbeitung von entfernten Prozeduraufrufen von Clients durch den Proxy-Server-Computer in Doppelfunktion führt zur Übergabe von Information, so daß die entfernten Prozeduraufrufe von Clients eine Bedienung bzw. eine Dienstleistung durch die Nicht-Proxy-Server-Computer erhalten können.
  • Somit arbeitet der Proxy-Server-Computer in Doppelfunktion als ein Front-End– bzw. Eingabe-Server für von Nicht-Clients abgesetzte entfernte Prozeduraufrufe und als ein Informationsagent für entfernte Prozeduraufrufe von Clients. Die Topologie des Server-Verbundes stellt eine saubere und elegante Implementierung für die Funktionen eines Server-Verbundes zur Verfügung. Darüber hinaus sorgt die Topologie des Server-Verbundes für einen einigermaßen einheitlichen und systematischen Ansatz sowohl für Systembenutzer als auch für Administratoren.
  • Beispielhafte Ausführungsformen der Erfindung sind nachfolgend nur als Beispiel unter Bezug auf die beigefügten Zeichnungen beschrieben, von denen:
  • 1 ein Client/Server-Computersystem mit einem Server-Computer-Verbund nach dem Stand der Technik darstellt.
  • 2 die Behandlung eines entfernten Prozeduraufrufs in dem System von 1 darstellt.
  • 3 die Bearbeitung von Operationen darstellt, die damit verknüpft sind, daß ein Client-Computer auf einen Server-Computer-Verbund mit einem Doppelfunktions-Proxy gemäß einer Ausführungsform der Erfindung zugreift.
  • 4 die Bearbeitung von Operationen darstellt, die damit verknüpft sind, daß ein Client-Computer auf einen Server-Computer-Verbund mit einem Doppelfunktions-Proxy gemäß einer Ausführungsform der Erfindung zugreift.
  • 5 die Bearbeitung von Operationen darstellt, die damit verknüpft sind, daß ein Client-Computer auf einen Server-Computer-Verbund mit einem Doppelfunktions-Proxy gemäß einer Ausführungsform der Erfindung zugreift.
  • 6 die Bearbeitung von Operationen darstellt, die damit verknüpft sind, daß ein Client-Computer auf einen Server-Computer-Verbund mit einem Doppelfunktions-Proxy gemäß einer Ausführungsform der Erfindung zugreift.
  • 7 eine Datenstruktur einer Objektreferenz in einem Verbund bzw. eine Verbund- Objektreferenzen darstellt, die gemäß einer Ausführungsform der Erfindung verwendet wird.
  • 8 stellt einen Server-Computer dar, der gemäß einer Ausführungsform der Erfindung konfiguriert ist.
  • 9 stellt einen Client-Computer dar, der gemäß einer Ausführungsform der Erfindung konfiguriert ist.
  • 10 stellt eine Technik zum Charakterisieren eines Server-Verbundes dar, die gemäß einer Ausführungsform der Erfindung verwendet wird.
  • Gleiche Referenznummern beziehen sich auf entsprechende Teile über verschiedene Ansichten der Zeichnungen hinweg.
  • In dem System von 1 kontaktiert ein Client-Computer, z. B. Client-Computer 22A, den Verbund von Server-Computern 25, indem er anfänglich einen ersten bzw. primären Server, z. B. Server-Computer 24A, kontaktiert. Genauer gesagt erzeugt ein Client-Computer, z. B. Client-Computer 22A, einen entfernten Prozeduraufruf an ein Objekt, das auf einem primären Server, z. B. Server-Computer 24A, gespeichert ist. (In der folgenden Diskussion ist es so zu verstehen, daß eine Referenz auf einen Client-Computer 22, der einen Server-Computer 24 kontaktiert, einen entfernten Prozeduraufruf von dem Client-Computer 22 an den Server-Computer 24 betrachtet.) Nachdem der Client-Computer auf den primären Server zugegriffen hat, wird anschließend auf andere Server- Computer, z. B. Server-Computer 24N und 24C, in dem Verbund 25 von dem Client-Computer 22A zugegriffen.
  • Eine Ausführungsform der Erfindung geht von dem Ansatz aus, der in Bezug auf 1 beschrieben ist. Insbesondere wird ein intelligenter Proxy-Server-Computer in Doppelfunktion als ein Gateway zu einem Verbund von Server-Computern verwendet. Dieser Betrieb bzw. diese Arbeitsweise kann man unter Bezug auf 3 erkennen.
  • 3 stellt einen Client-Computer 22A und einen Server-Computer-Verbund 25 einschließlich der Server-Computer 24A24N dar. Nach einer Ausführungsform der Erfindung umfaßt der Server-Computer-Verbund 25 drei Arten von Server-Computern: einen Proxy-Server-Computer in Doppelfunktion 24A, einen primären Server-Computer 24B und eine Menge von sekundären ServerComputern 24C24N.
  • Der Client-Computer 22A kontaktiert anfangs den Proxy-Server-Computer in Doppelfunktion 24A. Danach kontaktiert der Proxy-Server-Computer in Doppelfunktion 24A die restlichen Server-Computer 24B24N des Verbundes 25. Somit arbeitet nach dieser Ausführungsform der Erfindung der Proxy-Server-Computer in Doppelfunktion 24A als ein Front-End- bzw. Eingangs-Server-Computer für den Server-Verbund 25.
  • Der Proxy-Server-Computer in Doppelfunktion 24A führt diese Operation für Client-Computer durch, die nicht Clients des Verbundes 25 sind. Mit anderen Worten ist ein Client-Computer beteiligt, aber der Client-Computer ist ein Nicht-Client bzw. kein Client des Verbundes 25, was bedeutet, daß er eine wesentlich eingeschränkte Kenntnis des Server-Verbundes 25 und einen eingeschränkten Zugriff auf den Server-Verbund 25 hat.
  • 4 stellt einen Server-Verbund 25 dar, auf den von einem Client-Computer 22B des Server-Verbundes bzw. einem Verbund-Client-Server-Computer 22B zugegriffen wird. Der Client-Computer 22B des Server-Verbundes hat eine grundlegende Kenntnis über und einen Zugriff auf den Server-Verbund. Als ein Ergebnis davon kann er den Proxy-Server-Computer in Doppelfunktion 24A umgehen und den primären Server 24B und die sekundären Server 24C24N direkt kontaktieren. Dieser Ansatz ist machbar, wenn die Information über den Server-Verbund statisch bestimmt und in eine Objektreferenz eingebettet werden kann.
  • Die Information über den Server-Verbund ist nicht immer statisch. Häufig wird die Anordnung von Servern dynamisch konfiguriert und aktualisiert. In diesem Fall ist es notwendig, daß ein Client-Computer diese dynamische Information erhält.
  • 5 stellt eine Bearbeitungssequenz dar, die die erforderliche Aktualisierung der dynamischen Information für einen Client-Computer leisten bzw. zustande bringen kann. 5 stellt einen Client-Computer 22B dar, der direkt auf den primären Server 24B zugreift, wie mit Pfeil 60 angezeigt. Der primäre Server 24B gibt daraufhin die dynamische Information an den Verbund-Client-Computer 22B zurück, wie mit Pfeil 62 angezeigt. Mit der aktualisierten dynamischen Information kann der Verbund-Client-Computer 22B dann direkt auf die sekundären Server 24C24N zugreifen, wie mit den Pfeilen 64 und 66 angezeigt. Es ist noch einmal darauf hinzuweisen, daß der Proxy-Computer in Doppelfunktion 24A umgangen wird.
  • Fehlertolerantes Verhalten in einem Server-Verbund 25 erfordert, daß der Verbund-Client-Computer 22B in der Lage ist, mit den Servern des Verbundes auch dann noch zu kommunizieren, wenn der primäre Server 24B nicht verfügbar ist. In diesem Fall kann der Proxy-Server in Doppelfunktion 24A ausgenutzt werden.
  • 6 zeigt einen Pfeil 60, der den Versuch des Verbund-Client-Computers 22B darstellt, den primären Server 24B zu kontaktieren. Wenn der primäre Server 24B außer Betrieb ist, dann kontaktiert der Verbund-Client-Computer 22B den Proxy-Server in Doppelfunktion 24A, wie mit Pfeil 72 angezeigt. Der Proxy-Server in Doppelfunktion 24A antwortet, indem er die aktualisierte Information über den Verbund an den Verbund-Client-Computer 22B zurückgibt, wie mit Pfeil 74 angezeigt. Danach kann der Verbund-Client-Computer 22B direkt auf die sekundären Server 24C24N zugreifen, wie mit den Pfeilen 76 und 78 angezeigt.
  • Man erkennt nun, daß der Proxy-Server-Computer in Doppelfunktion 24A zwei Rollen spielt. Erstens dient er als ein Server-Verbund-Gateway für Server-Computer für Nicht-Clients bzw. für Computer, die nicht Client eines Server- sind. Zweitens dient er als ein Informationsagent für Server-Computer für Clients bzw. Computer, die Client eines Server-Computers sind.
  • Vorstehend wurde der Betrieb bzw. die Arbeitsweise einer Ausführungsform der Erfindung beschrieben. Wir wenden uns jetzt einer Diskussion von verschiedenen Techniken zu, die verwendet werden können, um die Erfindung zu implementieren.
  • 7 stellt eine Datenstruktur einer Objektreferenz eines Verbundes bzw. einer Verbund-Objekt-Referenz (Aggregation Object Reference Data Structure, AORDS) 80 dar, die gemäß der Erfindung verwendet werden kann. Jede AORDS enthält Orts- bzw. Positionsinformation für den intelligenten Proxy-Server des Server-Verbundes. Darüber hinaus enthält jede AORDS einen Objektschlüssel, der die Aufstellung bzw. Anordnung des Server-Verbundes und eine Strategie zum Kontaktieren des Server-Verbundes umfaßt. Die Information zur Anordnung des Server-Verbundes enthält ein Feld für die Information über die Anordnung für den primären Server und ein Feld für die Information über Anordnung für die sekundären Server. Schließlich enthält jede AORDS einen Clientschlüssel, der Information speichert, die angibt, ob das der AORDS zugeordnete Objekt ein Client des Server-Verbundes ist.
  • Bei einem Nicht-Client eines Server-Verbundes fehlen Felder in der AORDS-Datenstruktur. Mit anderen Worten besitzt ein entfernter Prozeduraufruf, der einem Nicht-Client eines Server-Verbundes zugeordnet ist, Information bezüglich der Anordnung bzw. Position des intelligenten Proxy-Servers, Schlüsselinformation des Client, die einen Nicht-Client-Status angibt, aber keine oder unvollständige Objektschlüssel-Information. Wie oben angegeben umfaßt die Objektschlüssel-Information Information über die Anordnung des Server-Verbundes und über die Strategie zum Kontaktieren des Server-Verbundes. Auf den Proxy-Server mit Doppelfunktion sind die Nicht-Clients angewiesen, um die Information über die Anordnung des primären Servers und die Information über die Anordnung der sekundären Server zu erhalten und Kommunikationsvorgänge mit diesen Servern zu herbeizuführen.
  • Ein Client eines Server-Verbundes hat vollständige Felder in der AORDS-Datenstruktur. Das heißt, Information über die Anordnung des intelligenten Proxy-Servers, Clientschlüssel-Information (die den Status als Client angibt) und Objektschlüssel-Information ist verfügbar, nämlich die Information über die Anordnung des primären Servers und die Information über die Anordnung der sekundären Server, sowie eine Strategie zum Kontaktieren des Server-Verbundes. Auch wenn die Information vollständig ist, kann sie periodisch zu aktualisieren sein, wie mit Bezug auf die 5 und 6 beschrieben wird.
  • 7 zeigt, daß die AORDS-Datenstruktur zusammen mit anderen Daten zum Methodenaufruf von Client-Unterverträgen 40 auf Seiten des Client-Computers des Client/Server-Systems behandelt werden kann. Wie im Hintergrundabschnitt angegeben erzeugt ein Client-Anwendungsprogramm 34 einen entfernten Prozeduraufruf. Danach wirken die Client-Stubs 38 als eine Schnittstelle zu einem Client-Untervertrag 40. Der Client-Untervertrag 40 wird verwendet, um den entfernten Prozeduraufruf über einen Übertragungskanal zu transportieren. Eine umgekehrte Bearbeitung wird dann auf der Serverseite durchgeführt. Die allgemeine Behandlung von Objektdatenstrukturen in einem Vermittler für Objektanforderungen bzw. einem Objekt Request Broker eines verteilten Client/Server-Systems ist nach dem Stand der Technik bekannt.
  • 8 stellt einen Server-Computer 90 gemäß einer Ausführungsform der Erfindung dar. Der Server-Computer 90 beinhaltet eine CPU 92, die mit einem Speicher 94 verbunden ist, der einen Satz bzw. eine Menge von ausführbaren Programmen speichert. 8 stellt Server-Anwendungen 96 einschließlich eines Clientschlüssel-Interpretierers 98 dar. Der Clientschlüssel-Interpretierer 98 interpretiert das Clientschlüsselfeld der AORDS 80. Mit anderen Worten bestimmt der Clientschlüssel-Interpretierer 98, ob ein entfernter Prozeduraufruf einem Client des Server-Verbundes zugeordnet ist.
  • Ein Gatewaymodul 100 für den Server-Verbund ist ebenso in dem Speicher 94 gespeichert. Das Gatewaymodul 100 für den Server-Verbund enthält die Logik zum Zugriff auf die primären Server und die sekundären Server des Server-Verbundes, wenn ein entfernter Prozeduraufruf eines Nicht-Clients bearbeitet wird.
  • Eine weitere Anwendung, die in dem Speicher 94 des Server-Computers 90 gespeichert ist, ist ein Modul 102 zur Aktualisierung des Verbundes. Wie sein Name nahelegt, sorgt dieses ausführbare Programm für aktualisierte Information über den Server-Verbund. Dieses Modul wird zum Beispiel während der in 6 gezeigten Verarbeitung aufgerufen.
  • 8 stellt auch die Server-Stubs 104 dar, die in dem Speicher 94 gespeichert sind. Auch die Server-Unterverträge 106 sind in dem Speicher 94 gespeichert. Die Server-Unterverträge 106 behandeln die zuvor beschriebene AORDS 80. Der Speicher 94 enthält auch ein Betriebssystem 108.
  • Das hier offenbarte AORDS-Konzept ist im höchsten Maße nützlich, weil es das Konzept eines Proxy-Server-Computers in Doppelfunktion unterstützt. Das Konzept findet ferner Verwendbarkeit in seiner Rolle bei der Anzeige unterschiedlicher Arten von Server-Verbunden. Mit anderen Worten wird die AORDS-Information gemäß einem anderen Aspekt genau geprüft, um festzustellen, welche Art von Server-Verbund von einem entfernten Prozeduraufruf aufgerufen wird. Diese Information kann dann verwendet werden, um ausgewählte Parameter zu verändern, die dem entfernten Prozeduraufruf zugeordnet sind.
  • Diese Arbeitsweise erkannt man genauer unter Bezug auf 9. 9 stellt einen Client-Computer 110 dar, der gemäß der Erfindung betrieben wird. Der Client-Computer 110 enthält eine CPU 112 und einen Speicher 114. Der Speicher 114 speichert einen Satz von ausführbaren Programmen einschließlich der Client-Anwendungsprogramme 116. Die Client-Anwendungsprogramme 116 umfassen ein Modul 118 zum Prüfen der Verbundparameter. Das Modul 118 zum Prüfen der Verbundparameter prüft das Datenfeld zur Anordnung des Server-Verbundes und das Datenfeld zur Strategie zum Kontaktieren des Server-Verbundes der AORDS 80. Basierend auf diesem Vorgang wird das Wesen des Server-Verbundes 25 ermittelt.
  • 10 stellt unterschiedliche Arten von Server-Verbund-Kategorien dar, die gemäß der Erfindung erkannt werden. Wenn die Anordnung des Server-Verbundes dem Client-Computer (und den ihm zugeordneten entfernten Prozeduraufrufen) bekannt ist und auch die Strategie zum Kontaktieren des Server-Verbundes dem Client-Computer (und dem ihm zugeordneten entfernten Prozeduraufrufen) bekannt ist, dann wird davon gesprochen, daß ein replizierender Server-Verbund vorhanden ist. Ein replizierender Server-Verbund ist einer, in dem mehrere Server synchronisiert und konsistent bleiben. Somit können mehrere Clients unabhängig voneinander wegen derselben Information auf Replika-Server zugreifen.
  • Es wäre unpraktisch, wollte man erwarten, daß ein Client die Anordnung eines Server-Verbundes kennt und dennoch die Strategie nicht kennt, um auf den Server-Verbund zuzugreifen, so daß die untere linke Ecke des Kastens in 10 durchgestrichen ist.
  • Eine weitere Topologie eines Server-Verbundes, die gemäß der Erfindung erkannt wird, ist ein migrierender bzw. wandernder Server-Verbund. Ein migrierender Server-Verbund liegt vor, wenn der Client-Computer eine Kontaktierungsstrategie hat (die Strategie zum Kontaktieren des Server-Verbundes aus der AORDS 80), aber nicht die Anordnung des Server-Verbundes besitzt (die Anordnung des Server-Verbundes aus der AORDS 80). Die meisten üblichen Szenarien von Migration lassen den Client-Computer 22 auf den primären Server zugreifen und leiten ihn auf die neue Anordnung bzw. Position der Servers weiter. Somit kennt der Client-Computer die Strategie (d. h. dem Vorwärtsverweis folgen), aber nicht die Anordnung bzw. Position des neuen Servers.
  • Die endgültige Topologie eines Server-Verbundes, die gemäß der Erfindung erkannt wird, ist ein föderaler Server-Verbund. Bei dieser Topologie ist die Anordnung des Server-Verbundes dem Server bekannt, und die Strategie zum Kontaktieren befindet sich bei dem Server, wie in 10 gezeigt. Fast alle Fälle von Zusammenschluß bzw. Föderation bringen es mit sich, daß der primäre Server sowohl die Anordnungen der anderen Server in dem Zusammenschluß als auch die Logik der Interaktion unter ihnen und das Erstellen einer Antwort kennt.
  • Der Verbundbezeichner 120 ist ein ausführbares Programm, das das Feld mit der Anordnung des Server-Verbundes und das Feld mit der Kontaktierungsstrategie des Server-Verbundes in der AORDS 80 prüft. Basierend auf der Information, die er erhält, stellt er eine Bezeichnung bzw.
  • Kennzeichnung für den Server-Verbund entsprechend dem in 10 gezeigten Rahmenwerk bereit.
  • Somit verwendet eine Ausführungsform der Erfindung die Information zur Anordnung des Server-Verbundes und die Kontaktierungsstrategie des Server-Verbundes der AORDS 80 dazu, eine Topologie des Server-Verbundes zu identifizieren. Diese Informationsfelder stellen zwei kritische Steuergrößen bzw. Steuerbits dar, die die verschiedenen Arten der Interaktion zwischen einem Client und einem Server-Verbund festlegen. Nach einer Ausführungsform der Erfindung kann man die Implementierung von Funktionen eines Server-Verbundes um diese beiden Teile von Information herum strukturieren und damit eine Auswahlmenge von Strategien bereitstellen, die zur Interaktion mit den Servern in dem Verbund eingesetzt werden kann. Dieser Vorteil gilt auch für die Verwaltungsschnittstellen.
  • Ein Prozessor 122 für entfernte Prozeduraufrufe kann verwendet werden, um einem entfernten Prozeduraufruf zugeordnete Parameter zu ändern, sobald die Topologie des Server-Verbundes identifiziert ist. Wenn zum Beispiel ein replizierender Server-Verbund identifiziert wird, kann der RPC-Prozessor 122 verwendet werden, um eine Liste von Replika-Servern vorab zu holen, die auf denselben Methodenaufruf antworten können. In diesem Fall greift der Client-Computer sofort auf die vorab geholte Liste der Replika-Server zu, die auf den Methodenaufruf antworten können, wenn ein Client-Computer bei seinem ersten Versuch, einen Server zu kontaktieren, scheitert.
  • Nachdem ein migrierender Server-Verbund identifiziert ist, kann der RPC-Prozessor 122 verwendet werden, um die Parameter zu setzen, die die Anzahl von Migrationen beschränken, die durchgeführt werden können, um einen Methodenaufruf zu befriedigen bzw. zu erfüllen.
  • Ein weiteres Beispiel, wie der RPC-Prozessor 122 auf die Kennzeichnung des Verbundes reagieren kann, liegt darin, die dem Methodenaufruf zugeordneten Kontextflags zu setzen. Zum Beispiel können die Kontextflags verwendet werden, um zu bestimmen, welche Anforderungen an den Zusammenschluß weitergereicht werden und welche notwendigerweise nur von dem primären Server bedient werden.
  • 9 stellt auch einen Satz von Client-Stubs 124 der zuvor beschriebenen Art dar. 9 stellt auch die Client-Unterverträge 126 dar, welche die offenbarte AORDS 80 behandeln. Schließlich stellt 9 ein Betriebssystem 128 dar, das dem Client-Computer 110 zugeordnet ist.
  • Die vorstehende Beschreibung verwendete zum Zweck der Erläuterung eine spezifische Nomenklatur, um ein tiefes Verständnis der Erfindung zu gewährleisten. Jedoch ist es für Fachleute auf diesem Gebiet offenkundig, daß die spezifischen Details nicht erforderlich sind, um die Erfindung in der Praxis einzusetzen. In anderen Fällen werden wohlbekannte Schaltkreise und Einrichtungen in Form von Blockdiagrammen gezeigt, um eine unnötige Ablenkung von der zugrundeliegenden Erfindung zu vermeiden. Somit werden die vorstehenden Beschreibungen der spezifischen Ausführungsformen der vorliegenden Erfindung zum Zweck der Veranschaulichung und Beschreibung dargeboten. Sie sind nicht gedacht, vollständig zu sein oder die Erfindung auf die genauen, offenbarten Formen zu beschränken, offensichtlich sind viele Änderungen und Abwandlungen im Licht der oben genannten Erläuterungen möglich. Die Ausführungsformen wurden gewählt und beschrieben, um am besten die Prinzipien der Erfindung und ihrer praktischen Anwendungen zu erklären, und hierdurch andere Fachleute auf diesem Gebiet in die Lage zu versetzen, die Erfindung bestmöglich zu verwenden, und man kann sich verschiedene Ausführungsformen mit verschiedenen Änderungen jeweils für die spezielle Verwendung passend vorstellen.

Claims (14)

  1. Client-/Server-Computervorrichtung, mit: einem Übertragungskanal, einer Ansammlung von Servercomputern, die mit dem Übertragungskanal verbunden sind, gekennzeichnet durch die folgenden Merkmale: die Ansammlung von Servercomputern umfaßt einen Proxy-Servercomputer mit Zweifach-Funktion, und eine Mehrzahl von nicht-Proxy-Servercomputern und eine Mehrzahl von Clientcomputern, die mit dem Übertragungskanal verbunden sind, wobei die Mehrzahl von Clientcomputern entfernte Prozeduraufrufe an den Proxy-Servercomputer mit Zweifach-Funktion für Objekte erzeugt, die in der Ansammlung von Servercomputern gespeichert sind, wobei die entfernten Prozeduraufrufe nicht als Client abgesetzte entfernte Prozeduraufrufe an den Proxy-Servercomputer mit Zweifach-Funktion und als Client abgesetzte entfernte Prozeduraufrufe an die nicht-Proxy-Servercomputer umfassen, wobei der Proxy-Servercomputer mit Zweifach-Funktion die als Client abgesetzten entfernten Prozeduraufrufe nur dann bearbeitet, wenn die Mehrzahl von nicht-Proxy-Servercomputern die als Client abgesetzten entfernten Prozeduraufrufe nicht verarbeiten kann.
  2. Vorrichtung nach Anspruch 1, wobei die Mehrzahl von nicht-Proxy-Servercomputern einen primären Servercomputer und eine Mehrzahl von sekundären Servercomputern umfaßt.
  3. Vorrichtung nach Anspruch 1, wobei der Proxy-Servercomputer mit Zweifach-Funktion ein erstes Verarbeitungsmodul umfaßt, um zwischen einem nicht einen als Client abgesetzten entfernten Prozeduraufruf und einem als Client abgesetzten entfernten Prozeduraufruf zu unterscheiden.
  4. Vorrichtung nach Anspruch 3, wobei der Proxy-Servercomputer ein zweites Verarbeitungsmodul aufweist, welches in Reaktion auf einen nicht als Client abgesetzten entfernten Prozeduraufruf aufgerufen wird, wobei das zweite Verarbeitungsmodul als Gateway für die Serveransammlung zu der Mehrzahl von nicht-Proxy-Servercomputern arbeitet.
  5. Vorrichtung nach Anspruch 3, wobei der Proxy-Servercomputer ein drittes Verarbeitungsmodul aufweist, welches in Reaktion auf den als Client abgesetzten entfernten Prozeduraufruf aufgerufen wird, wobei das dritte Verarbeitungsmodul aktualisierte Aggregationsinformation für den entfernten Prozeduraufruf des Client bereitstellt.
  6. Vorrichtung nach Anspruch 5, wobei ein ausgewählter Clientcomputer aus der Mehrzahl von Clientcomputern die aktualisierte Aggregationsinformation verwendet, um wieder auf die nicht-Proxy-Servercomputer zuzugreifen.
  7. Computerlesbarer Speicher, welcher ausführbare Anweisungen für die Ausführung durch ein Client-/Servercomputersystem speichert, so daß das Client-/Servercomputersystem in einer spezifizierten Weise funktioniert, gekennzeichnet durch die Merkmale: eine Mehrzahl von Befehlssätzen, die in dem computerlesbaren Speicher gespeichert sind, und welche einschließen: einen ersten Befehlssatz, um nicht auf als Client abgesetzte entfemte Prozeduraufrufe von einem Clientcomputer zu einem Proxy-Servercomputer mit Zweifachfunktion einer Ansammlung von Servercomputern zu leiten, einen zweiten Befehlssatz, um auf als Client abgesetzte entfernte Prozeduraufrufe an nicht-Proxy-Servercomputer der Ansammlung von Servercomputern zu leiten, und einen dritten Befehlssatz, um die auf als Client abgesetzten entfernten Prozeduraufrufe an den Proxy-Servercomputer mit zweifacher Funktion nur dann umzuleiten, wenn die nicht-Proxy-Servercomputer die als Client abgesetzten entfernten Prozeduraufrufe nicht verarbeiten können.
  8. Computerlesbarer Speicher nach Anspruch 7, wobei der erste Befehlssatz Befehle für den Zugriff auf die nicht-Proxy-Servercomputer durch den Proxy-Servercomputer mit Zweifachfunktion in Reaktion auf die nicht als Client abgesetzten entfernten Prozeduraufrufe umfaßt.
  9. Computerlesbarer Speicher nach Anspruch 7, wobei der zweite Befehlssatz Befehle für den Zugriff auf einen primären Servercomputer der nicht-Proxy-Servercomputer in Reaktion auf die als Client abgesetzten entfernten Prozeduraufrufe umfaßt, sowie Befehle für die nachfolgende Verbindung mit einem Clientcomputer, und Befehle, um anschließend einen sekundären Servercomputer der nicht-Proxy-Servercomputer aufzurufen.
  10. Computerlesbarer Speicher nach Anspruch 7, welcher weiterhin Befehle enthält, um eine Verbindung mit einem Clientcomputer in Reaktion auf den dritten Satz von Befehlen herzustellen, und Befehle enthält, um danach einen sekundären Servercomputer der nicht-Proxy-Servercomputer aufzurufen.
  11. Verfahren, welches durch ein Client-/Servercomputersystem ausgeführt wird, das unter der Steuerung eines Programms arbeitet, wobei das Client-/Servercomputersystem einen Clientcomputerspeicher und einen Servercomputerspeicher zum Speichern des Programms enthält, und wobei das Verfahren gekennzeichnet ist durch die Schritte: Lenken von nicht als Client abgesetzten entfernten Prozeduraufrufen von Clientcomputern zu einem Proxy-Servercomputer mit Zweifachfunktion aus einer Ansammlung von Servercomputern, Leiten von als Client abgesetzten Fernaufrufen zur Bearbeitung von Clientcomputern zu nicht-Proxy-Servercomputern der Ansammlung von Servercomputern, und Umleiten der als Client abgesetzten entfernten Prozeduraufrufe an den Proxy-Servercomputer mit Zweifach-Funktion nur dann, wenn die nicht-Proxy-Servercomputer die als Client abgesetzten entfernten Prozeduraufrufe nicht bearbeiten können.
  12. Verfahren nach Anspruch 11, wobei auf den Schritt des Richtens bzw. Lenkens der Schritt des Zugreifens auf die nicht-Proxy-Servercomputer durch den Proxy-Servercomputer mit Zweifach-Funktion in Reaktion auf die nicht als Client abgesetzten entfernten Prozeduraufrufe erfolgt.
  13. Verfahren nach Anspruch 11, wobei der Lenkungsschritt die Schritte umfaßt: Zugreifen auf einen primären Servercomputer aus den nicht-Proxy-Servercomputern in Reaktion auf als Client abgesetzte entfernte Prozeduraufrufe, Verbinden mit einem Clientcomputer in Reaktion auf den Schritt des Zugreifens, und Aufrufen eines sekundären Servercomputers aus den nicht-Proxy-Servercomputern in Reaktion auf den Schritt des Verbindens.
  14. Verfahren nach Anspruch 11, welches weiterhin die Schritte aufweist: Verbinden mit einem Clientcomputer in Reaktion auf den Umleitungsschritt, und Aufrufen eines Servercomputers aus den nicht-Proxy-Servercomputern in Reaktion auf den Schritt des Verbindens.
DE69724877T 1996-07-02 1997-06-27 Verfahren und Vorrichtung zum Betrieb einer Aggregation von Serverrechnern mittels eines Doppelzweck-Proxy-Servers Expired - Fee Related DE69724877T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/674,402 US5748897A (en) 1996-07-02 1996-07-02 Apparatus and method for operating an aggregation of server computers using a dual-role proxy server computer
US674402 1996-07-02

Publications (2)

Publication Number Publication Date
DE69724877D1 DE69724877D1 (de) 2003-10-23
DE69724877T2 true DE69724877T2 (de) 2004-07-15

Family

ID=24706453

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69724877T Expired - Fee Related DE69724877T2 (de) 1996-07-02 1997-06-27 Verfahren und Vorrichtung zum Betrieb einer Aggregation von Serverrechnern mittels eines Doppelzweck-Proxy-Servers

Country Status (4)

Country Link
US (1) US5748897A (de)
EP (1) EP0817043B1 (de)
JP (1) JPH1091561A (de)
DE (1) DE69724877T2 (de)

Families Citing this family (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6418324B1 (en) * 1995-06-01 2002-07-09 Padcom, Incorporated Apparatus and method for transparent wireless communication between a remote device and host system
US20040264402A9 (en) * 1995-06-01 2004-12-30 Padcom. Inc. Port routing functionality
US6049823A (en) * 1995-10-04 2000-04-11 Hwang; Ivan Chung-Shung Multi server, interactive, video-on-demand television system utilizing a direct-access-on-demand workgroup
US5727147A (en) * 1995-12-08 1998-03-10 Sun Microsystems, Inc. System and method for resolving symbolic references to externally located program files
US6553410B2 (en) 1996-02-27 2003-04-22 Inpro Licensing Sarl Tailoring data and transmission protocol for efficient interactive data transactions over wide-area networks
US6076109A (en) * 1996-04-10 2000-06-13 Lextron, Systems, Inc. Simplified-file hyper text protocol
US6578044B1 (en) 1997-11-17 2003-06-10 Sun Microsystems, Inc. Method and system for typesafe attribute matching
US6560656B1 (en) 1998-02-26 2003-05-06 Sun Microsystems, Inc. Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system
US6598094B1 (en) 1998-03-20 2003-07-22 Sun Microsystems, Inc. Method and apparatus for determining status of remote objects in a distributed system
US6185611B1 (en) 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service in a distributed system
US6466947B2 (en) 1998-03-20 2002-10-15 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
US6393497B1 (en) * 1998-03-20 2002-05-21 Sun Microsystems, Inc. Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US6938263B2 (en) 1996-04-23 2005-08-30 Sun Microsystems, Inc. System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space
US6182083B1 (en) 1997-11-17 2001-01-30 Sun Microsystems, Inc. Method and system for multi-entry and multi-template matching in a database
US6421704B1 (en) 1998-03-20 2002-07-16 Sun Microsystems, Inc. Method, apparatus, and product for leasing of group membership in a distributed system
US6487607B1 (en) 1998-02-26 2002-11-26 Sun Microsystems, Inc. Methods and apparatus for remote method invocation
US6272559B1 (en) * 1997-10-15 2001-08-07 Sun Microsystems, Inc. Deferred reconstruction of objects and remote loading for event notification in a distributed system
US6438614B2 (en) 1998-02-26 2002-08-20 Sun Microsystems, Inc. Polymorphic token based control
US6708171B1 (en) 1996-04-23 2004-03-16 Sun Microsystems, Inc. Network proxy
US6446070B1 (en) 1998-02-26 2002-09-03 Sun Microsystems, Inc. Method and apparatus for dynamic distributed computing over a network
US6138238A (en) 1997-12-11 2000-10-24 Sun Microsystems, Inc. Stack-based access control using code and executor identifiers
US6832223B1 (en) 1996-04-23 2004-12-14 Sun Microsystems, Inc. Method and system for facilitating access to a lookup service
US6463446B1 (en) 1998-02-26 2002-10-08 Sun Microsystems, Inc. Method and apparatus for transporting behavior in an event-based distributed system
US5818448A (en) * 1996-07-02 1998-10-06 Sun Microsystems, Inc. Apparatus and method for identifying server computer aggregation topologies
US5832529A (en) 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US6728737B2 (en) 1996-10-11 2004-04-27 Sun Microsystems, Inc. Method and system for leasing storage
US6049821A (en) * 1997-01-24 2000-04-11 Motorola, Inc. Proxy host computer and method for accessing and retrieving information between a browser and a proxy
CA2202572C (en) * 1997-04-14 2004-02-10 Ka Lun Eddie Law A scaleable web server and method of efficiently managing multiple servers
US6480486B2 (en) * 1997-05-21 2002-11-12 Lextron Systems, Inc. Micro-localized internet service center
KR100230454B1 (ko) * 1997-05-28 1999-11-15 윤종용 다중처리 시스템의 캐시메모리 검사방법
US6085193A (en) * 1997-09-29 2000-07-04 International Business Machines Corporation Method and system for dynamically prefetching information via a server hierarchy
US6957427B1 (en) 1997-10-15 2005-10-18 Sun Microsystems, Inc. Remote object activation in a distributed system
US6052785A (en) * 1997-11-21 2000-04-18 International Business Machines Corporation Multiple remote data access security mechanism for multitiered internet computer networks
US6490625B1 (en) * 1997-11-26 2002-12-03 International Business Machines Corporation Powerful and flexible server architecture
US6055566A (en) * 1998-01-12 2000-04-25 Lextron Systems, Inc. Customizable media player with online/offline capabilities
US6604127B2 (en) 1998-03-20 2003-08-05 Brian T. Murphy Dynamic lookup service in distributed system
CN1298514A (zh) 1998-02-26 2001-06-06 太阳微系统公司 确定性散列识别远程方法的方法和系统
US6681327B1 (en) 1998-04-02 2004-01-20 Intel Corporation Method and system for managing secure client-server transactions
US6912588B1 (en) * 1998-04-02 2005-06-28 Intel Corporation System and method for managing client requests in client-server networks
US6622157B1 (en) * 1998-09-28 2003-09-16 Certeon, Inc. Extending network services using mobile agents
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
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
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
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
CN1335956A (zh) * 1998-10-16 2002-02-13 西尔弗斯特里姆软件公司 分布式系统的连接集线器
US6487587B1 (en) * 1999-03-01 2002-11-26 Sun Microsystems, Inc. Method and system for data processing by proxy
US6901518B1 (en) 1999-04-08 2005-05-31 Sun Microsystems, Inc. Method and system for establishing trust in downloaded proxy code
KR20010074733A (ko) * 1999-05-20 2001-08-09 황 이반 충슝 작업집단 서버 어레이를 실현하기 위한 방법 및 장치
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
US6571280B1 (en) * 1999-06-17 2003-05-27 International Business Machines Corporation Method and apparatus for client sided backup and redundancy
US7065574B1 (en) 2000-05-09 2006-06-20 Sun Microsystems, Inc. Messaging system using pairs of message gates in a distributed computing environment
US8135796B1 (en) 2000-05-09 2012-03-13 Oracle America, Inc. Mechanism and apparatus for accessing and addressing services in a distributed computing environment
US7395333B1 (en) 2000-05-09 2008-07-01 Sun Microsystems, Inc. Method and apparatus to obtain negotiated service advertisement
US6898618B1 (en) 2000-05-09 2005-05-24 Sun Microsystems, Inc. Client-specified display services in a distributed computing environment
US7080078B1 (en) 2000-05-09 2006-07-18 Sun Microsystems, Inc. Mechanism and apparatus for URI-addressable repositories of service advertisements and other content in a distributed computing environment
US6850979B1 (en) 2000-05-09 2005-02-01 Sun Microsystems, Inc. Message gates in a distributed computing environment
US6868447B1 (en) 2000-05-09 2005-03-15 Sun Microsystems, Inc. Mechanism and apparatus for returning results of services in a distributed computing environment
US6862594B1 (en) 2000-05-09 2005-03-01 Sun Microsystems, Inc. Method and apparatus to discover services using flexible search criteria
US7072967B1 (en) 2000-05-09 2006-07-04 Sun Microsystems, Inc. Efficient construction of message endpoints
US6950875B1 (en) 2000-05-09 2005-09-27 Sun Microsystems, Inc. Message conductors in a distributed computing environment
US8001232B1 (en) 2000-05-09 2011-08-16 Oracle America, Inc. Event message endpoints in a distributed computing environment
US6973493B1 (en) 2000-05-09 2005-12-06 Sun Microsystems, Inc. Mechanism and apparatus for security of newly spawned repository spaces in a distributed computing environment
US7260543B1 (en) 2000-05-09 2007-08-21 Sun Microsystems, Inc. Automatic lease renewal with message gates in a distributed computing environment
US7716492B1 (en) 2000-05-09 2010-05-11 Oracle America, Inc. Method and apparatus to obtain service capability credentials
US7010573B1 (en) 2000-05-09 2006-03-07 Sun Microsystems, Inc. Message gates using a shared transport in a distributed computing environment
US6792466B1 (en) 2000-05-09 2004-09-14 Sun Microsystems, Inc. Trusted construction of message endpoints in a distributed computing environment
US7370091B1 (en) 2000-05-09 2008-05-06 Sun Microsystems, Inc. Method and apparatus for obtaining space advertisements
US6918084B1 (en) 2000-05-09 2005-07-12 Sun Microsystems, Inc. Spawning new repository spaces using information provided in advertisement schema messages
US6643650B1 (en) 2000-05-09 2003-11-04 Sun Microsystems, Inc. Mechanism and apparatus for using messages to look up documents stored in spaces in a distributed computing environment
US6917976B1 (en) 2000-05-09 2005-07-12 Sun Microsystems, Inc. Message-based leasing of resources in a distributed computing environment
US8082491B1 (en) 2000-05-09 2011-12-20 Oracle America, Inc. Dynamic displays in a distributed computing environment
US7577834B1 (en) 2000-05-09 2009-08-18 Sun Microsystems, Inc. Message authentication using message gates in a distributed computing environment
US6970869B1 (en) 2000-05-09 2005-11-29 Sun Microsystems, Inc. Method and apparatus to discover services and negotiate capabilities
US7243356B1 (en) 2000-05-09 2007-07-10 Sun Microsystems, Inc. Remote method invocation with secure messaging in a distributed computing environment
US6789077B1 (en) 2000-05-09 2004-09-07 Sun Microsystems, Inc. Mechanism and apparatus for web-based searching of URI-addressable repositories in a distributed computing environment
US7188251B1 (en) 2000-05-09 2007-03-06 Sun Microsystems, Inc. System and method for secure message-based leasing of resources in a distributed computing environment
US7016966B1 (en) 2000-05-09 2006-03-21 Sun Microsystems, Inc. Generating results gates in a distributed computing environment
US6789126B1 (en) 2000-05-09 2004-09-07 Sun Microsystems, Inc. Addressing message gates in a distributed computing environment
US7200848B1 (en) 2000-05-09 2007-04-03 Sun Microsystems, Inc. Migrating processes using data representation language representations of the processes in a distributed computing environment
US6854115B1 (en) 2000-06-02 2005-02-08 Sun Microsystems, Inc. Process persistence in a virtual machine
US6865657B1 (en) 2000-06-02 2005-03-08 Sun Microsystems, Inc. Garbage collector for a virtual heap
US6760815B1 (en) 2000-06-02 2004-07-06 Sun Microsystems, Inc. Caching mechanism for a virtual heap
US6763440B1 (en) 2000-06-02 2004-07-13 Sun Microsystems, Inc. Garbage collection using nursery regions for new objects in a virtual heap
US6941410B1 (en) 2000-06-02 2005-09-06 Sun Microsystems, Inc. Virtual heap for a virtual machine
US6957237B1 (en) 2000-06-02 2005-10-18 Sun Microsystems, Inc. Database store for a virtual heap
CA2417509C (en) * 2000-07-27 2013-02-19 Bea Systems, Inc. System and method for concentration and load-balancing of requests
US8972590B2 (en) 2000-09-14 2015-03-03 Kirsten Aldrich Highly accurate security and filtering software
US7587499B1 (en) * 2000-09-14 2009-09-08 Joshua Haghpassand Web-based security and filtering system with proxy chaining
US6977927B1 (en) 2000-09-18 2005-12-20 Hewlett-Packard Development Company, L.P. Method and system of allocating storage resources in a storage area network
US7386610B1 (en) 2000-09-18 2008-06-10 Hewlett-Packard Development Company, L.P. Internet protocol data mirroring
US6804819B1 (en) 2000-09-18 2004-10-12 Hewlett-Packard Development Company, L.P. Method, system, and computer program product for a data propagation platform and applications of same
US7546369B2 (en) 2000-12-21 2009-06-09 Berg Mitchell T Method and system for communicating a request packet in response to a state
US20020116397A1 (en) * 2000-12-21 2002-08-22 Berg Mitchell T. Method and system for communicating an information packet through multiple router devices
US7512686B2 (en) 2000-12-21 2009-03-31 Berg Mitchell T Method and system for establishing a data structure of a connection with a client
US7418522B2 (en) * 2000-12-21 2008-08-26 Noatak Software Llc Method and system for communicating an information packet through multiple networks
US7287090B1 (en) 2000-12-21 2007-10-23 Noatak Software, Llc Method and system for identifying a computing device in response to a request packet
WO2002059742A1 (en) * 2000-12-21 2002-08-01 Reba Technologies, Inc. Server farm information processing system and method of operation
US7296275B2 (en) * 2001-01-04 2007-11-13 Sun Microsystems, Inc. Method and system for passing objects in a distributed system using serialization contexts
US6961773B2 (en) 2001-01-19 2005-11-01 Esoft, Inc. System and method for managing application service providers
US6606690B2 (en) 2001-02-20 2003-08-12 Hewlett-Packard Development Company, L.P. System and method for accessing a storage area network as network attached storage
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
US20030051029A1 (en) * 2001-09-07 2003-03-13 Reedy Dennis G. Dynamic provisioning of sevice components in a distributed system
US7756969B1 (en) 2001-09-07 2010-07-13 Oracle America, Inc. Dynamic provisioning of identification services in a distributed system
US7660887B2 (en) * 2001-09-07 2010-02-09 Sun Microsystems, Inc. Systems and methods for providing dynamic quality of service for a distributed system
US7644171B2 (en) * 2001-09-12 2010-01-05 Netmotion Wireless, Inc. Mobile networking system and method using IPv4 and IPv6
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
US20030236826A1 (en) * 2002-06-24 2003-12-25 Nayeem Islam System and method for making mobile applications fault tolerant
US20040170181A1 (en) * 2003-02-27 2004-09-02 Padcom, Inc. Prioritized alternate port routing
US7792874B1 (en) 2004-01-30 2010-09-07 Oracle America, Inc. Dynamic provisioning for filtering and consolidating events
US20060062206A1 (en) * 2004-09-23 2006-03-23 Vijayaraghavan Krishnaswamy Multi-link PPP over heterogeneous single path access networks

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5218697A (en) * 1990-04-18 1993-06-08 Microsoft Corporation Method and system for networking computers having varying file architectures
US5341496A (en) * 1990-08-29 1994-08-23 The Foxboro Company Apparatus and method for interfacing host computer and computer nodes using redundant gateway data lists of accessible computer node data
CA2048306A1 (en) * 1990-10-02 1992-04-03 Steven P. Miller Distributed configuration profile for computing system
WO1993020508A1 (en) * 1992-04-07 1993-10-14 Digital Equipment Corporation Entity management system with remote call feature
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
EP0669020B1 (de) * 1992-11-13 1997-04-02 Microsoft Corporation Verfahren zur verteilung von schnittstellenzeigern fur fernprozeduranrufe
CA2107299C (en) * 1993-09-29 1997-02-25 Mehrad Yasrebi High performance machine for switched communications in a heterogenous data processing network gateway
US5548726A (en) * 1993-12-17 1996-08-20 Taligeni, Inc. System for activating new service in client server network by reconfiguring the multilayer network protocol stack dynamically within the server node
US5513314A (en) * 1995-01-27 1996-04-30 Auspex Systems, Inc. Fault tolerant NFS server system and mirroring protocol

Also Published As

Publication number Publication date
JPH1091561A (ja) 1998-04-10
US5748897A (en) 1998-05-05
DE69724877D1 (de) 2003-10-23
EP0817043A2 (de) 1998-01-07
EP0817043A3 (de) 2001-11-21
EP0817043B1 (de) 2003-09-17

Similar Documents

Publication Publication Date Title
DE69724877T2 (de) Verfahren und Vorrichtung zum Betrieb einer Aggregation von Serverrechnern mittels eines Doppelzweck-Proxy-Servers
DE69814900T2 (de) Verfahren und system zur unterstützung verteilter software- entwicklung ohne bewusstsein der verteilten charakteristik der software
DE10051024B4 (de) Verfahren zum intermediären Cachen in einem Client-Server-Softwaresystem, Computerprogrammprodukte und Computersystem zur Durchführung eines solchen Verfahrens
DE69832354T2 (de) Netzwerkverwaltungsrahmenwerk
DE69327448T2 (de) Verfahren und Vorrichtung für Teilaufgaben in verteiltem Verarbeitungssystem
DE69630480T2 (de) Verfahren, Vorrichtung und Datenstrukturen zur Objektverwaltung
DE69721632T2 (de) Verfahren und Vorrichtung zur Servletverarbeitung
DE69812899T2 (de) Webagent zur anforderung von mehreren prozessen
DE69935920T2 (de) Lastausgleich in einer netzwerkumgebung
DE69730690T2 (de) Verfahren und apparat zum dynamischen austausch von objekt-nachrichten zwischen objekt-modellen
DE19882235B4 (de) Verwendung von Web-Technologie für Teilnehmerverwaltungsaktivitäten
DE69838506T2 (de) Verfahren für transaktionen zwischen verteilten datenbanken
DE69628965T2 (de) Verfahren und Gerät zum Verwalten von Beziehungen zwischen Objekten in einer verteilten Objektumgebung
DE60125705T2 (de) Vorrichtung und Verfahren zur Implementierung eines HTTP Programmstacks auf einem Client
DE69731318T2 (de) Herstellen von kommunikationsverbindungen in einem computernetzwerk
DE69534411T2 (de) Offenes Transaktionverwaltungszugriffsystem und Verfahren
DE69734432T2 (de) Verfahren und Vorrichtung zur Absendung von Clientverfahrenanrufen in einem Server Rechnersystem
DE69837550T2 (de) System und Verfahren zur Datenübermittlung von einer Serverapplikation an Klientknoten
DE10051021A1 (de) System, Verfahren und Computerprogramm zur Veröffentlichung interaktiver Web-Inhalte in einer statisch verknüpften Web-Hierarchie
DE112005001995B4 (de) Computeranordnung und Verfahren zum Anbieten von Diensten für Benutzer über ein Netzwerk
DE69930695T2 (de) Verfahren und Vorrichtung für ein Applikationsverteiler für eine Serverapplikation
DE69814697T2 (de) Vorrichtung, methode und computer programm produkt für client/server rechner mit vom client auswählbarer lokalisierung von transaktionsobjekten
DE10222361C2 (de) Verfahren zum Betreiben eines verteilten Rechnernetzwerks umfassend mehrere verteilt angeordnete Rechner
DE10024347B4 (de) Sicherheitsservice-Schicht
DE112017005512T5 (de) Datenübertragung innerhalb von geschäftsräumen und ausserhalb von geschäftsräumen

Legal Events

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