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 PDFInfo
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/46—Indexing scheme relating to G06F9/46
- G06F2209/462—Lookup
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-Computervorrichtung20 gemäß dem Stand der Technik dar. Die Vorrichtung20 beinhaltet eine Menge von Client-Computern22A –22N , von denen jeder mit einem Übertragungskanal23 verbunden ist. Der Übertragungskanal23 bezieht sich allgemein auf jedwede Kabelverbindung oder kabellose Verbindung zwischen Computern. Die Client-Computer22A –22N verwenden den Übertragungskanal23 , um mit einer Menge von Server-Computern24A –24N zu kommunizieren, die den Server-Verbund25 bilden. - Jeder Client-Computer
22 hat eine Standardcomputer-Konfiguration einschließlich einer zentralen Verarbeitungseinheit (Central Processing Unit, CPU)30 , die an einen Speicher32 angeschlossen ist, der einen Satz von ausführbaren Programmen speichert. Die ausführbaren Programme in diesem Beispielsystem beinhalten mindestens ein Client-Anwendungsprogramm34 , Client-Stubs bzw. -Rümpfe38 , Client-Unterverträge40 und ein Betriebssystem42 . - Das Client-Anwendungsprogramm
34 ist jedes Programm auf Anwendungsebene wie ein Anwendungsprogramm, mit dem der Benutzer eines Client-Computers22 interagiert. Die Client-Stubs38 empfangen Prozeduraufrufe von dem Anwendungsprogramm34 , die die Ausführung von spezifizierten Methoden spezifizierter Objekte anfordern. Der Zweck der Client-Stubs38 ist, auf Objekte zuzugreifen, die in anderen Adreßräumen wie in den Server-Computern24A –22N implementiert sind. - Die Client-Untervertragsprogramme
40 und Server-Untervertragsprogramme58 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-Computer24 des Server-Verbundes25 . Die Client-Untervertragsprogramme40 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-Untervertrag58 auf einem Server-Computer24 durchgeführt. Die Client-Untervertragsprogramme40 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-Computer24 , empfangen. Ein Betriebssystem42 liegt den Operationen der Client-Anwendungsprogramme34 , der Client-Stubs38 und der Client-Unterverträge40 zugrunde. - Jeder Server-Computer
24 hat eine Konfiguration analog zu derjenigen jedes Client-Computers22 . Jeder Server24 beinhaltet eine CPU50 und einen zugeordneten Speicher52 . Der Speicher52 speichert Server-Anwendungsprogramme54 , Server-Stubs54 , Server-Untervertragsprogramme58 und ein Betriebssystem60 . Wie oben angegeben behandeln die Server-Stubs54 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äge58 die Datenbereitstellung und anderen Operationen durch, um den Transport eines Methodenaufrufs und der resultierenden Rückgabenachrichten zwischen dem Server24 und den Client-Computern22 zu unterstützen. - Die Operationen der Vorrichtung von
1 werden umfassender unter Bezug auf2 diskutiert.2 stellt den Client-Computer22A , den Übertragungskanal23 und den Server-Computer24A dar. Wie oben angegeben ruft eine Client-Anwendung34 eine spezielle Methode eines Objektes in einem unterschiedlichen Adreßraum unter Verwendung eines entfernten Methodenaufrufs auf. Der entfernte Methodenaufruf wird von den Client-Stubs38 an den Client-Untervertrag40 übergeben, der den entfernten Methodenaufruf für den Transport auf dem Übertragungskanal23 verpackt. Der Server-Untervertrag58 des Servers24A empfängt die Information und entpackt sie. Der Server-Untervertrag58 übergibt danach die Information an die Server-Stubs56 . Die Server-Stubs56 greifen auf die Server-Anwendungsprogramme54 zu, die die zuvor beschriebenen Objektmethoden darstellen. Genauer vollführt ein angegebener Server-Stub56 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-Untervertrag58 zurückgegeben wird, und der Kommunikationspfad wird umgekehrt, wie durch die Pfeile in2 angegeben. - Block
70 von2 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-Computer22 als auch auf dem Server-Computer24 liegt. - Die vorliegende Erfindung zielt auf ein Client/Server-Computersystem mit verteilten Objekten der Art, wie sie mit Bezug auf die
1 und2 beschrieben ist. Genauer zielt die Erfindung auf den Betrieb eines Server-Computer-Verbundes25 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 von1 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-Computer22A , den Verbund von Server-Computern25 , indem er anfänglich einen ersten bzw. primären Server, z. B. Server-Computer24A , kontaktiert. Genauer gesagt erzeugt ein Client-Computer, z. B. Client-Computer22A , einen entfernten Prozeduraufruf an ein Objekt, das auf einem primären Server, z. B. Server-Computer24A , gespeichert ist. (In der folgenden Diskussion ist es so zu verstehen, daß eine Referenz auf einen Client-Computer22 , der einen Server-Computer24 kontaktiert, einen entfernten Prozeduraufruf von dem Client-Computer22 an den Server-Computer24 betrachtet.) Nachdem der Client-Computer auf den primären Server zugegriffen hat, wird anschließend auf andere Server- Computer, z. B. Server-Computer24N und24C , in dem Verbund25 von dem Client-Computer22A 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 auf3 erkennen. -
3 stellt einen Client-Computer22A und einen Server-Computer-Verbund25 einschließlich der Server-Computer24A –24N dar. Nach einer Ausführungsform der Erfindung umfaßt der Server-Computer-Verbund25 drei Arten von Server-Computern: einen Proxy-Server-Computer in Doppelfunktion24A , einen primären Server-Computer24B und eine Menge von sekundären ServerComputern24C –24N . - Der Client-Computer
22A kontaktiert anfangs den Proxy-Server-Computer in Doppelfunktion24A . Danach kontaktiert der Proxy-Server-Computer in Doppelfunktion24A die restlichen Server-Computer24B –24N des Verbundes25 . Somit arbeitet nach dieser Ausführungsform der Erfindung der Proxy-Server-Computer in Doppelfunktion24A als ein Front-End- bzw. Eingangs-Server-Computer für den Server-Verbund25 . - Der Proxy-Server-Computer in Doppelfunktion
24A führt diese Operation für Client-Computer durch, die nicht Clients des Verbundes25 sind. Mit anderen Worten ist ein Client-Computer beteiligt, aber der Client-Computer ist ein Nicht-Client bzw. kein Client des Verbundes25 , was bedeutet, daß er eine wesentlich eingeschränkte Kenntnis des Server-Verbundes25 und einen eingeschränkten Zugriff auf den Server-Verbund25 hat. -
4 stellt einen Server-Verbund25 dar, auf den von einem Client-Computer22B des Server-Verbundes bzw. einem Verbund-Client-Server-Computer22B zugegriffen wird. Der Client-Computer22B 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 Doppelfunktion24A umgehen und den primären Server24B und die sekundären Server24C –24N 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-Computer22B dar, der direkt auf den primären Server24B zugreift, wie mit Pfeil60 angezeigt. Der primäre Server24B gibt daraufhin die dynamische Information an den Verbund-Client-Computer22B zurück, wie mit Pfeil62 angezeigt. Mit der aktualisierten dynamischen Information kann der Verbund-Client-Computer22B dann direkt auf die sekundären Server24C –24N zugreifen, wie mit den Pfeilen64 und66 angezeigt. Es ist noch einmal darauf hinzuweisen, daß der Proxy-Computer in Doppelfunktion24A umgangen wird. - Fehlertolerantes Verhalten in einem Server-Verbund
25 erfordert, daß der Verbund-Client-Computer22B in der Lage ist, mit den Servern des Verbundes auch dann noch zu kommunizieren, wenn der primäre Server24B nicht verfügbar ist. In diesem Fall kann der Proxy-Server in Doppelfunktion24A ausgenutzt werden. -
6 zeigt einen Pfeil60 , der den Versuch des Verbund-Client-Computers22B darstellt, den primären Server24B zu kontaktieren. Wenn der primäre Server24B außer Betrieb ist, dann kontaktiert der Verbund-Client-Computer22B den Proxy-Server in Doppelfunktion24A , wie mit Pfeil72 angezeigt. Der Proxy-Server in Doppelfunktion24A antwortet, indem er die aktualisierte Information über den Verbund an den Verbund-Client-Computer22B zurückgibt, wie mit Pfeil74 angezeigt. Danach kann der Verbund-Client-Computer22B direkt auf die sekundären Server24C –24N zugreifen, wie mit den Pfeilen76 und78 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 und6 beschrieben wird. -
7 zeigt, daß die AORDS-Datenstruktur zusammen mit anderen Daten zum Methodenaufruf von Client-Unterverträgen40 auf Seiten des Client-Computers des Client/Server-Systems behandelt werden kann. Wie im Hintergrundabschnitt angegeben erzeugt ein Client-Anwendungsprogramm34 einen entfernten Prozeduraufruf. Danach wirken die Client-Stubs38 als eine Schnittstelle zu einem Client-Untervertrag40 . Der Client-Untervertrag40 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-Computer90 gemäß einer Ausführungsform der Erfindung dar. Der Server-Computer90 beinhaltet eine CPU92 , die mit einem Speicher94 verbunden ist, der einen Satz bzw. eine Menge von ausführbaren Programmen speichert.8 stellt Server-Anwendungen96 einschließlich eines Clientschlüssel-Interpretierers98 dar. Der Clientschlüssel-Interpretierer98 interpretiert das Clientschlüsselfeld der AORDS80 . Mit anderen Worten bestimmt der Clientschlüssel-Interpretierer98 , ob ein entfernter Prozeduraufruf einem Client des Server-Verbundes zugeordnet ist. - Ein Gatewaymodul
100 für den Server-Verbund ist ebenso in dem Speicher94 gespeichert. Das Gatewaymodul100 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-Computers90 gespeichert ist, ist ein Modul102 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 in6 gezeigten Verarbeitung aufgerufen. -
8 stellt auch die Server-Stubs104 dar, die in dem Speicher94 gespeichert sind. Auch die Server-Unterverträge106 sind in dem Speicher94 gespeichert. Die Server-Unterverträge106 behandeln die zuvor beschriebene AORDS80 . Der Speicher94 enthält auch ein Betriebssystem108 . - 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-Computer110 dar, der gemäß der Erfindung betrieben wird. Der Client-Computer110 enthält eine CPU112 und einen Speicher114 . Der Speicher114 speichert einen Satz von ausführbaren Programmen einschließlich der Client-Anwendungsprogramme116 . Die Client-Anwendungsprogramme116 umfassen ein Modul118 zum Prüfen der Verbundparameter. Das Modul118 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 AORDS80 . Basierend auf diesem Vorgang wird das Wesen des Server-Verbundes25 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 AORDS80 ). Die meisten üblichen Szenarien von Migration lassen den Client-Computer22 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 AORDS80 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-Prozessor122 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-Stubs124 der zuvor beschriebenen Art dar.9 stellt auch die Client-Unterverträge126 dar, welche die offenbarte AORDS80 behandeln. Schließlich stellt9 ein Betriebssystem128 dar, das dem Client-Computer110 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)
- 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.
- Vorrichtung nach Anspruch 1, wobei die Mehrzahl von nicht-Proxy-Servercomputern einen primären Servercomputer und eine Mehrzahl von sekundären Servercomputern umfaßt.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
1996
- 1996-07-02 US US08/674,402 patent/US5748897A/en not_active Expired - Lifetime
-
1997
- 1997-06-27 DE DE69724877T patent/DE69724877T2/de not_active Expired - Fee Related
- 1997-06-27 EP EP97304645A patent/EP0817043B1/de not_active Expired - Lifetime
- 1997-07-02 JP JP9177390A patent/JPH1091561A/ja active Pending
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 |