DE69728601T2 - Client-Server-Architektur mit nebenläufigen Servern - Google Patents

Client-Server-Architektur mit nebenläufigen Servern Download PDF

Info

Publication number
DE69728601T2
DE69728601T2 DE69728601T DE69728601T DE69728601T2 DE 69728601 T2 DE69728601 T2 DE 69728601T2 DE 69728601 T DE69728601 T DE 69728601T DE 69728601 T DE69728601 T DE 69728601T DE 69728601 T2 DE69728601 T2 DE 69728601T2
Authority
DE
Germany
Prior art keywords
server
client
request
servers
processor
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 - Lifetime
Application number
DE69728601T
Other languages
English (en)
Other versions
DE69728601D1 (de
Inventor
Ian Robert Govett
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE69728601D1 publication Critical patent/DE69728601D1/de
Publication of DE69728601T2 publication Critical patent/DE69728601T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft allgemein verteilte Datenverarbeitungssysteme und Netzwerke und insbesondere die Entwicklung von Client-Server-Verbindungen zwischen Prozessoren eines solchen verteilten Datenverarbeitungssystems.
  • BESCHREIBUNG DES STANDES DER TECHNIK
  • Datenverarbeitungssysteme, welche die Datenübertragung zwischen einer Vielzahl in einem Netzwerk miteinander verbundener Datenprozessoren ermöglichen, sind seit vielen Jahren bekannt. Bei frühen Beispielen solcher Netzwerksysteme ging es um die Datenübertragung zwischen einem aus einer Vielzahl von Terminals und einem Host-Prozessor, in welchem sich eine zentrale Datenspeichereinheit befand und der die daraus abgerufenen Daten steuerte. Mit zunehmender Speicherkapazität und Rechenleistung kleiner Datenprozessoren sind Netzwerke heute so aufgebaut, dass mindestens einige der mit dem Netzwerk verbundenen Datenprozessören die Datenspeicher und Recheneinheiten gemeinsam nutzen, sodass keine große zentrale Datenspeichereinheit erforderlich ist. Anfragen oder Anforderungen nach Daten und deren Verarbeitung können an verschiedene Datenprozessoren gerichtet werden, was zur Entwicklung von Protokollen geführt hat, durch welche ein mit einem Netzwerk verbundener Datenprozessor zum Client eines anderen als Server bekannten Prozessors werden kann. Solche Anforderungen beschränken sich nicht allein auf Datenanforderungen, sondern sind auf alle Arten von Datenverarbeitung oder Diensten zu beziehen, welche durch einen Server bereitgestellt werden können. Zu den durch solche Protokolle ausgeführten Grundoperationen gehören das Herstellen einer Verbindung zwischen Client und Server, das Verarbeiten einer Anforderung und das Beenden der Verbindung. Durch einen Server zu verarbeitende Anforderungen werden im Allgemeinen in einer Softwareanwendung auf dem Server bereitgestellt, welche als Dienst bezeichnet wird.
  • Das Verarbeiten einer Anforderung, die allgemein als ein ferner Prozeduraufruf (remote procedure call, RPC) bezeichnet wird, kann einen beträchtlichen Zeitaufwand erfordern und beinhaltet auch den Aufwand an Rechenzeit zum Herstellen einer Verbindung und zum Beenden der Verbindung, wobei beide Vorgänge durch das Protokoll kompliziert werden, das zum Herstellen der Client-Server-Beziehung erforderlich ist. Je nach der Ausführung des Servers kann der erforderliche Aufwand an Rechenzeit einschließlich der Zeit zur Verarbeitung der Verbindungs- und Beendigungsanforderungen von mehreren Clients die Wahrscheinlichkeit erhöhen, dass ein anfordernder Client in einen Wartezustand versetzt (z.B. dass die Anforderung durch den Server oder die Systemverwaltung in eine Warteschlange eingeordnet) wird, wodurch sich die Verarbeitung der Anforderung verzögert. Alle diese Verzögerungen der Verarbeitung einer Anforderung schränken die Anwendungsmöglichkeiten des Systems ein, obwohl man theoretisch Nutzen aus dem Netzwerk ziehen könnte.
  • Die Nützlichkeit von Client-Server-Beziehungen in einem Datenverarbeitungssystem ist durch die Entwicklung von mehreren identischen Servern deutlich gesteigert worden, die gleichzeitig mit demselben Prozessor arbeiten, um die Anzahl der potenziell verfügbaren Server zu erhöhen. Dieser Prozess entspricht der gleichzeitigen Verarbeitung mehrerer Anwendungen, wobei alle dieser gleichzeitig verarbeiteten Anwendungen, die denselben Dienst bieten, identisch sind. Trotzdem bleiben die Kommunikationsprotokolle immer noch komplex und tragen zur Einschränkung der Gesamtfunktionalität des Systems bei.
  • Eine weithin bekannte und verwendete RPC-Software, die von Sun Microsystems entwickelt wurde (und im Folgenden als SunRPC bezeichnet wird), ist zum Beispiel jahrelang in vielen Betriebssystemen und Hardwareplattformen angewendet worden. SunRPC ist eine Gruppe von Programmbibliotheken und Tools, welche den Programmierer bei der Entwicklung von Client-Server-Anwendungen unterstützen. Obwohl man mehrere parallel mit einem einzigen Prozessor laufende Server entwickeln kann, unterstützt SunRPC die parallelen Server nicht bezüglich Anforderungen von einem einzelnen Client. Man betrachte beispielsweise den Fall, dass ein Client mehrere Anforderungen zu verarbeiten hat. Bei bekannten RPC-Programmen wie zum Beispiel bei SunRPC sind der Client und der Server zu dem Zeitpunkt miteinander verbunden, da die Verbindung zum Server hergestellt wird. Zwar können durch den Server mehrere Anforderungen ohne Beenden und Wiederherstellen der Kommunikationsverbindung verarbeitet werden, jedoch muss die Verarbeitung iterativ der Reihe nach durch denselben Server erfolgen. Wenn hingegen ein einzelner Client in den Genuss der parallelen Verarbeitung durch mehrere verfügbare Server kommen will, muss für jede Anforderung der Aufwand zum Herstellen einer separaten Kommunikationsverbindung zu einem bestimmten Server betrieben werden, da jeder Server bei seinem Start einzeln registriert wird und für jeden dieser Server eine separate Kommunikationsverbindung hergestellt werden muss. Weiterer Zeitaufwand ist auch zum Starten jedes neuen Serverprozesses erforderlich. Daher kann ein Client nicht die volle Leistungsfähigkeit des verfügbaren Systems ausnutzen, da entweder die Verarbeitung sequenziell erfolgen muss oder ein beträchtlicher Systemaufwand erforderlich ist.
  • Bei demselben Beispiel soll ferner die Möglichkeit betrachtet werden, dass ein weiterer potenzieller Client eine Anforderung ausgibt, während bereits Anforderungen (entweder seriell oder parallel) vom einem vorhandenen Client verarbeitet werden. Damit die zusätzliche Anforderung durch einen parallel verfügbaren Server parallel verarbeitet werden kann, muss die Registrierung des vom Server angeforderten und von diesem verfügbaren Dienstes für den Client separat möglich sein. Bei der SunRPC-Software erfolgt dies durch einen so genannten Port-Mapper („Portmapper" ist ein eingetragenes Warenzeichen von Sun Microsystems), der sich in dem Server befindet. Die separate Registrierung trägt ebenfalls zum Systemaufwand für das Herstellen und das Beenden der Kommunikationsverbindung zu einem verfügbaren Server bei, da dem Client mindestens eine Adresse (z.B. eine Anschlussnummer) eines verfügbaren Servers bereitgestellt werden muss, bevor eine Operation zum Herstellen einer Kommunikationsverbindung eingeleitet werden kann.
  • Falls kein Server sofort zur Verfügung steht (was in Netzwerken der heute üblichen Größe mit fünfhundert oder mehr potenziellen Clients wahrscheinlich ist), kann die Anforderung zum Beenden einer anderen Kommunikationsverbindung nach Fertigstellung einer Anforderung führen (wodurch die restlichen Anforderungen desjenigen Clients, der die beendete Verbindung zuvor benutzte, in eine Warteschlange eingestellt werden) oder einen Wartezustand für einen längeren Zeitraum auslösen, während dessen die Anforderung vom neuen Client in eine Warteschlange eingestellt wird, bis ein Server verfügbar ist. In beiden Fällen gibt es in keiner RPC-Software die Möglichkeit sicherzustellen, dass RPCs von mehreren Clients durch eine Vielzahl von Servern gleichberechtigt und schnellstmöglich verarbeitet werden und der Client und ein oder mehrere Server während der Verarbeitung einer Reihe von RPCs einschließlich des Verbindens und des Beendens der Anforderungen vom einem Client stabil miteinander verbunden bleiben. Bei SunRPC zum Beispiel verwaltet der Port-Mapper von keinem der im Port-Mapper registrierten Server Status- oder Verfügbarkeitsdaten, und die einem potenziellen Client bereitgestellte Adresse oder Anschlussnummer ist praktisch zufällig, sodass diese Adresse zu einem Server gehören kann, der gerade Anforderungen von einem anderen Client verarbeitet, während andere Server zur Verfügung stehen. Aus demselben Grund kann SunRPC nicht sicherstellen, dass die Anforderungen eines bestimmten Servers der Reihe nach verarbeitet werden. Die einzige bekannte potenzielle Lösung zur Verbesserung der zeitlichen Abfolge der Verarbeitung der Anforderungen besteht im Aufrufen eines neuen Servers für jede Anforderung, was natürlich einen beträchtlichen Systemaufwand bedeutet und dazu führen kann, dass die Hardwarekapazität des Server-Prozessors nicht ausreicht.
  • Daraus ist zu ersehen, dass die vorhandenen Protokolle zum Herstellen von Client-Server-Beziehungen einen beträchtlichen Systemaufwand erfordern, die Flexibilität beim Zuweisen von Servern zu den Clients einschränken, die einem Client zuzuweisende Serverkapazität einschränken und nicht in der Lage sind, die Verarbeitung der Anforderungen von mehreren Clients gleichberechtigt und schnellstmöglich durchzuführen. Das Fazit lautet, dass man zwar die Anzahl der Server einfach erhöhen, aber mit den bekannten RPC-Programmen die Verarbeitungskapazität dieser erhöhten Anzahl der Server nicht voll ausnutzen und den Clients zur Verfügung stellen kann. Auch andere potenzielle Lösungen wie zum Beispiel das Einführen eines Kommunikationsmanagers zum Ausrichten der Datenübertragungen auf verschiedene beschäftigte Server führt zur Erhöhung des mit dem Herstellen der Verbindungen verbundenen Systemaufwands, bindet Client und Server eng aneinander und kann dazu führen, dass Server ungenutzt bleiben, während weitere Verbindungen keine Anforderungen von anderen Clients übertragen können.
  • In EP-A-600 235 wird eine Client-Server-Architektur mit einer zwischengeschalteten Dienstvermittlung gezeigt.
  • ÜBERBLICK ÜBER DIE ERFINDUNG
  • Gemäß einem ersten Aspekt stellt die Erfindung ein verfahren zum Ausführen von Datenverarbeitungsaufgaben in einem Client-Server-System nach Anspruch 1 bereit.
  • Da die zeitliche Steuerung der Client-Anforderungen unabhängig von der Herstellung der Client-Prozessor-/Server-Prozessor-Verbindungen erfolgt, ist der mindestens eine Server, der den eigentlichen Dienst im Server-Prozessor bereitstellt, von der Aufgabe zum Herstellen einer Verbindung zum Client-Prozessor abgekoppelt (und befreit), um somit eine größere Anzahl von Client-Server-Verbindungen aufrechtzuerhalten, den Systemaufwand stark zu verringern, die Flexibilität beim Zuweisen der Server zu den Clients zu erhöhen und für eine gleichberechtigte und schnellstmögliche Verarbeitung der Anforderungen von mehreren Clients zu sorgen.
  • Die Ausführung von Datenverarbeitungsaufgaben in dem Client-Server-System beinhaltet vorzugsweise ferne Prozeduraufrufe. Ferner wird vor dem Schritt der Herstellung einer Verbindung vorzugsweise ein Schritt zum Starten eines Servers ausgeführt, welcher unabhängig von einer Anforderung eines Client-Prozessors einen Dienst im Server-Datenprozessor bereitstellt.
  • Ferner wird während des Schrittes der Herstellung einer Verbindung vorzugsweise dem Client-Prozessor die Adresse des Transaktionsmanagers als Anschlussnummer bereitgestellt.
  • Gemäß einem zweiten Aspekt stellt die Erfindung einen Server-Prozessor zur Verwendung in einem Client-Server-Rechnersystem nach Anspruch 5 zur Verfügung.
  • Die Adresse des Transaktionsmanagers wird dem Client-Prozessor vorzugsweise während der Herstellung einer Verbindung zwischen dem Server-Prozessor und dem Client-Prozessor als Anschlussnummer bereitgestellt.
  • Vorzugsweise stellt die Erfindung ein Verfahren zum Durchführen eines fernen Prozeduraufrufs in einem Datenprozessor zur Verfügung, wobei das Verfahren die folgenden Schritte beinhaltet: Starten eines Servers, der unabhängig von einem fernen Prozeduraufruf einen Dienst in einem Datenprozessor bereitstellt, Herstellen einer Verbindung zwischen einem weiteren Datenprozessor und dem Datenprozessor, Empfangen mindestens einer Anforderung über die Verbindung für eine in diesem Dienst enthaltene Task und Zuweisen eines verfügbaren Servers zu einer Anforderung in der Reihenfolge des Empfangs und unabhängig von der Herstellung einer Verbindung.
  • Vorzugsweise wird ein Transaktionsmanager für ein Datenverarbeitungsnetzwerk bereitgestellt, der eine Anordnung zum Starten eines Servers, welcher einen Dienst in einem ersten Datenprozessor bereitstellt, der ferner eine Anordnung zur Herstellung einer Verbindung zwischen einem zweiten Datenprozessor und dem ersten Datenprozessor unabhängig von einem Server, eine Schnittstelle zum Empfangen einer Anforderung nach einer in diesem Dienst enthaltenen Task und eine Anordnung zum Zuweisen eines verfügbaren Servers zu der Task in der Reihenfolge des Empfangs unabhängig von dem Mittel zur Herstellung einer Verbindung beinhaltet.
  • Vorzugsweise beinhaltet die Erfindung das Starten eines weiteren Servers an dem Datenprozessor, wenn die Anzahl der auf eine Zuweisung eines Servers wartenden Anforderungen einen Konfigurationswert überschreitet, und ferner das Anhalten eines im Leerlauf befindlichen Servers an diesem Datenprozessor nach einer Verzögerungszeit sowie das Einstellen der Darstellung einer Anforderung in eine Warteschlange oder das Einstellen einer Anforderung in eine Warteschlange und das zeitgenaue Beenden der Verarbeitung einer Anforderung von einem Client durch einen Server.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die obigen sowie weitere Aufgaben, Aspekte und Vorteile lassen sich aus der folgenden ausführlichen Beschreibung einer bevorzugten Ausführungsart der Erfindung unter Bezug auf die Zeichnungen besser verstehen, in denen:
  • 1 ein Prinzipschema einer repräsentativen RPC-Architektur ist;
  • 2 ein Prinzipschema ist, das die Netzwerkarchitektur einschließlich der vorliegenden Erfindung darstellt;
  • 3 ein schematisches Blockschaltbild einer bevorzugten Ausführungsform des Transaktionsmanagers der Erfindung ist; und
  • 4, 5 und 6 Auflaufdiagramme sind, welche die Arbeitsweise einer bevorzugten Ausführungsform der vorliegenden Erfindung darstellen.
  • DETAILLIERTE BESCHREIBUNG EINER BEVORZUGTEN AUSFÜHRUNGSART DER ERFINDUNG
  • In den Zeichnungen und insbesondere in 1 ist eine Systemarchitektur 10 gemäß der SunRPC-Software dargestellt, die als repräsentativ für bekannte RPC-Programme angesehen wird. Obwohl die SunRPC-Software bekannt ist und weithin verwendet wird, ist klar, dass 1 nur die Darstellung eines Prinzipschemas ist, dessen Einzelheiten nur so weit dargestellt werden, dass ein Verständnis der Erfindung ermöglicht wird, da die Einzelheiten der SunRPC-Software oder ähnlicher Programme für den praktischen Gebrauch der Erfindung unerheblich sind. Aus diesem Grund soll auch kein Teil von
  • 1 den Stand der Technik bezüglich der vorliegenden Erfindung darstellen.
  • In 1 sind durch das Netzwerk 30 eine Vielzahl als Clients fungierender Prozessoren 20 mit einem Prozessor 12 verbunden, in welchem sich die SunRPC-Software und eine Dienstanwendung befindet und ausgeführt wird. In diesem Zusammenhang ist klar, dass ein oder alle Prozessoren 20 als Server für denselben oder einen anderen Dienst fungieren können, aber nicht müssen, und dass der Prozessor 12 auch als Client fungieren kann, wenn es einen anderen Server gibt. Um die Funktion eines Servers in einem Prozessor bereitzustellen, sind lediglich eine eigene RPC-Software und eine Dienstanwendung sowie die zu deren Ausführung erforderliche Rechenleistung erforderlich.
  • Die SunRPC-Software richtet im Prozessor 12 den RPC-Server 14 und den Port-Mapper 16 ein. Das heißt, dass der RPC-Server und der Port-Mapper unter Verwendung der RPC-Protokolle wie zum Beispiel der SunRPC-Software eingerichtet werden. Diese Funktionselemente sind für ähnliche Funktionselemente anderer RPC-Programme repräsentativ und werden durch Logikschaltungen, Register, spezielle Speicheradressblöcke und Ähnliches gemäß der durch das RPC-Programm festgelegten Konfiguration realisiert, wobei deren Besonderheiten für den praktischen Gebrauch der Erfindung unerheblich sind. Solche Funktionselemente können vollständig oder teilweise auch durch spezielle Datenverarbeitungsschaltungen und spezielle Hardware bereitgestellt werden.
  • Der Port-Mapper 16 ist vorzugsweise ein Programm, das für jeden Server als Reaktion auf eine Serveranforderung beim Starten des Servers einen Registrierungsdienst bereitstellt und eine Beschreibung der Tasks, die man innerhalb des Dienstes anfordern kann, sowie die Adresse 18 des Servers speichert, der den Dienst mit diesen Tasks bereitstellt. Der Port-Mapper 16 ist somit in der Lage, einen Suchdienst für Clients vorzugsweise in Form einer Suchtabelle bereitzustellen. Im Port-Mapper 16 sind auch die RPC-Programmnummer und die durch die Clients zur Herstellung der Netzwerkverbindungen verwendeten Versionen gespeichert.
  • Der RPC-Server ist durch den Softwareentwickler so aufgebaut, dass er einen bestimmten Dienst (z.B. eine Gruppe von Tasks) ausführt, der durch eine RPC-Programmnummer und eine Versionsnummer einheitlich gekennzeichnet ist. wenn der RPC-Server gestartet wird (und somit für einen Client verfügbar wird), wird der Server im Port-Mapper 16 registriert und wartet auf Verbindungsanforderungen sowie nachfolgende Taskanforderungen von Client-Prozessoren.
  • Die RPC-Clients (z.B. Client 1, Client 2, Client 3,..., Client N) sind durch den Softwareentwickler so aufgebaut, dass sie in der Lage sind, RPC-Anforderungen nach bestimmten Tasks an Server zu senden, welche diese ausführen können. Die Client-Anwendung fordert vom Port-Mapper 16 Verbindungsdaten an und verwendet diese, um eine Verbindung zum RPC-Server 14 anzufordern; danach können eine oder mehrere Anforderungen über die durch den Server 14 unterhaltene Verbindung an den Server gerichtet werden.
  • Während der Ausführung sind der Server und der Client fest miteinander verbunden, solange die Verbindung besteht, und die Verbindung wird beendet, sobald die Bearbeitung einer oder mehrerer Anforderungen abgeschlossen ist. Wenn der Server beschäftigt ist, können keine weiteren Verbindungen hergestellt werden. (Es ist klar, dass man nur einen Server berücksichtigen muss, da jeder Server einzeln im Port-Mapper registriert und eine Verbindungsanforderung an einen bestimmten Server gerichtet wird. Bei bekannten RPC-Programmen hebt eine Anforderung von einem Client den Wartezustand im Server auf, was praktisch zu einer zufälligen Reihenfolge führt, in der die Anforderungen von verschiedenen Clients verarbeitet werden.) Auf der Ebene des Port-Mappers kann (z.B. durch Warteschlangen-Verbindungsanforderungen, sodass den anfordernden Clients in der Reihenfolge des Empfangs Serverdaten zur Verfügung gestellt werden) eine Warteschlangenanordnung oder eine Datenübertragungs-Unterbrechungsanordnung in Form eines Transaktionsmanagers bereitgestellt werden, jedoch ist es zum Verständnis der Erfindung wichtig, dass eine solche Funktion nicht Bestandteil des Port-Mappers ist. Ferner müssen alle Anforderungen von einem bestimmten Client wie oben dargelegt nacheinander durch den Server verarbeitet werden, zu welchem die Verbindung besteht.
  • Obwohl eine Verbindung von einem Client zu einem aus einer Vielzahl von Servern theoretisch so eingerichtet werden kann, dass über sie verschiedene Anforderungen bedient werden, wird für jede Anforderung oder parallel zu verarbeitende Reihe von Anforderungen eine gesonderte Verbindung zu einem bestimmten Server benötigt. Hierfür ist jedoch wie oben erwähnt ein zusätzlicher Systemaufwand für die Herstellung der Verbindungen sowie eine wesentlich höhere Prozessorleistung erforderlich, um eine ausreichende Anzahl von Servern als getrennte identische Prozesse in einer einzigen Maschine aufzurufen. Wenn ein Client in der Lage ist, mehrere Verbindungen zu mehreren Servern herzustellen, bewirkt jede dieser Verbindungen eine feste Bindung einer bestimmten Gruppe von Anforderungen vom Client an einen bestimmten Server. Außerdem muss man dafür sorgen, dass die zurückgegebenen Daten einer bestimmten Anforderung oder einer Gruppe von Anforderungen zugeordnet werden. Zudem ist es schwierig zu verhindern, dass ein Client so viele Server und so viel Rechenleistung in Anspruch nimmt, wie zu einem bestimmten Zeitpunkt zur Verfügung stehen oder möglicherweise während der Verarbeitung einer Reihe von Anforderungen zur Verfügung gestellt werden kann, wodurch andere Clients nicht bedient werden oder übermäßig lange warten müssen.
  • Im Folgenden wird unter Bezug auf 2 die Architektur 100 der vorliegenden Erfindung erörtert. Das Netzwerk 30 und eine Vielzahl von Clients 20 entsprechen 1. Wie oben beschrieben wird ein Port-Mapper 16' bereitgestellt, jedoch mit dem Unterschied, dass es sich bei der dem Client zur Herstellung einer Verbindung zur Verfügung gestellten Serveradresse (z.B. der Anschlussnummer) um die Adresse eines Transaktionsmanagers 110 handelt, der im Folgenden bisweilen als XMAN bezeichnet wird.
  • Wenn mehrere Server verwendet werden, obwohl lediglich ein einziger Dienst bereitgestellt wird, gibt es hierfür natürlich nur eine einzige Adresse (z.B. die Programmnummer der den Dienst bereitstellenden Anwendung), die vorteilhaft in jedem Client gespeichert sein kann, was im Folgenden ausführlich erörtert wird. In diesem Sinne handelt es sich beim Vorhalten eines Port-Mappers 16' im Wesentlichen um einen Vorgang zum Bewahren der Kompatibilität zu der vorhandenen SunRPC-Software und anderen RPC-Programmen. Der Port-Mapper sorgt jedoch für das Empfangen und Speichern der Registrierung des Dienstes, wenn ein Server gestartet wird und führt zu einer gewissen Flexibilität und Vereinfachung, wenn im gesamten Netzwerk verschiedene Dienste zur Verfügung stehen oder wenn eventuell ein Dienst unterbrochen wird. Hierbei geht man davon aus, dass das System zwei oder mehr verschiedene Dienste bieten und die Architektur der Erfindung erweitert werden kann (z.B. durch 132, 134 gezeigt), wofür zusätzliche Adressen 18' (z.B. XMAN B) bereitgestellt werden müssen. Je nach der Hardwareleistung des Server-Prozessors können natürlich an demselben Prozessor mit XMAN 110 zwei oder mehr verschiedene Dienste (von denen jeder mehrere Server in Anspruch nehmen kann) bereitgestellt werden. In jedem Fall muss der Port-Mapper lediglich in der Lage sein, verschiedene Adressen wie zum Beispiel eindeutige Programmnummern bereitzustellen, die sich für die angeforderte Task eignen.
  • In 3 sind die Grundelemente des Transaktionsmanagers gezeigt. Auch hier werden diese Elemente vorzugsweise durch Software realisiert, können jedoch auch als Hardware oder eine Kombination von Hardware und Software realisiert werden. Im Transaktionsmanager 110 sind vier Register 302, 304, 306 und 308 bereitgestellt, um die Werte für die Grundkonfiguration zu speichern. Das Register 302 legt die Mindestanzahl der Server fest, die beim Fehlen von Anforderungen in Betrieb sind, und ist willkürlich auf 1 gesetzt. Das Register 304 legt die Anzahl der vor dem Starten eines weiteren Servers zugelassenen wartenden Anforderungen fest und ist willkürlich auf 2 gesetzt. Das Register 306 speichert die maximale Anzahl von Anforderungen, die entsprechend der Rechenleistung des Prozessors 12 gleichzeitig laufen dürfen. Unter Berücksichtigung der Tatsache, dass es sich bei jedem Server im wesentlichen um eine Softwareanwendung handelt, die zum Laden nur einen begrenzten Umfang an Systemaufwand erfordert, enthält das Register oder der Zähler 308 einen Parameter zur Steuerung der Häufigkeit des Anhaltens der Server und wird zum Beispiel auf dreißig Sekunden eingestellt, wobei man von einem Optimum zwischen Systemaufwand, Benutzerfreundlichkeit (dreißig Sekunden sind angesichts der gegenwärtigen Zugriffszeiten auf Netzwerke für Benutzer akzeptabel), mittlerer Ausführungsdauer der Anforderungen und Ähnlichem ausgeht. Alle diese Parameter können frei konfiguriert werden. Im Folgenden wird beschrieben, dass man, obwohl das Starten der Server vorzugsweise eine Funktion der Warteschlangenlänge ist, unter bestimmten Umständen einen ähnlichen Parameter dazu verwenden kann, die Häufigkeit des Startens der Server zu steuern, wenn mehrere Server gestartet werden.
  • Bidirektionale Netzwerkübertragungen gelangen in den Transaktionsmanager 110 und verlassen ihn wieder über die Netzwerkschnittstelle 300. Im Rahmen dieser Erläuterung wird davon ausgegangen, dass diese Netzwerkschnittstelle zwischen einer Verbindungsanforderung und einer Taskanforderung unterscheiden kann. Das geschieht im Allgemeinen anhand der vom Port-Mapper dem Client zur Verfügung gestellten Anschlussnummer und wird durch die Erfindung besonders erleichtert, da es sich bei der Anschlussnummer um die Programmnummer des Dienstes handelt. Unabhängig davon, wie diese Unterscheidung erfolgt, wird beim Empfang einer Verbindungsanforderung ein Signal zum Port-Mapper 16' gesendet, sodass die Adresse des Transaktionsmanagers 110 (z.B. eine Programmnummer eines im Server-Prozessor laufenden Dienstes) zu einem Client gesendet und/oder weitere Arbeitsschritte zur Herstellung einer Kommunikationsverbindung ausgeführt werden können. Im Unterschied zur Architektur von 1 sind die Server 130 an diesem Prozess nicht beteiligt.
  • Wenn der Transaktionsmanager gestartet wird, wird unter Kontrolle des Registers 302 der Server 1 gestartet. wenn dann eine Anforderung empfangen wird, wird diese vorübergehend zur Anforderungswarteschlange 310 weitergeleitet und, da der Server 1 gestartet ist und erwartungsgemäß zur Verfügung steht, durch den Schalter 312 zum Server 1 weitergeleitet, wo die Anforderung verarbeitet und das Ergebnis anschließend über die Netzwerkschnittstelle 300 wieder zum Client zurückgeleitet wird. Unter Leistungsgesichtspunkten ist klar, dass man vorzugsweise einen als Anschlusskennung bekannten Aliasnamen der Anforderung in die Warteschlange einstellt und zum Server weiterleitet, um die zu verarbeitende Anforderung zu identifizieren, anstatt die Anforderung selbst zu speichern und weiterzuleiten. (Der Transaktionsmanager braucht die in der Anforderung enthaltenen Daten oder andere Eigenschaften der Anforderung nicht zu kennen, insbesondere weil die Programmnummer des zur Verarbeitung der Task geeigneten Dienstes bereits übermittelt und die Verbindung zum Transaktionsmanager dadurch hergestellt wurde. Dieses Merkmal der bevorzugten Ausführungsart der Erfindung ist für die Anwendbarkeit der Erfindung auf andere RPC-Programme und -Systeme wie zum Beispiel das so genannte Übertragungssteuerungsprotokoll/Internetprotokoll (TCP/IP) und das OSF/DCE-Protokoll (offene Softwarebasis/verteilte Rechnerumgebung) von Bedeutung, die im Folgenden erörtert werden.
  • Im Folgenden wird davon ausgegangen, dass während der Verarbeitung der Anforderung im Server 1 von demselben oder einem anderen Client eine zweite Anforderung empfangen wird. Die zweite Anforderung wird in die Anforderungswarteschlange 310 eingestellt, in welcher sie zunächst wartet, da kein weiterer Server zur Verfügung steht. Wenn dann von demselben oder einem anderen Client eine dritte Anforderung empfangen wird, während der Server 1 noch die erste Anforderung verarbeitet, erreicht die Warteschlangenlänge den Wert für den Serverstart im Register 304 und sendet ein Signal zum Dienststart-/-stoppelement 316, welches dann den Server 2 startet. wenn somit der Server 2 zur Verfügung steht, wird ihm über den Schalter 312 die zweite Anforderung zugeleitet. Der Schalter 312 reagiert auf den Betriebszustand jedes Servers, der, wenn er gestartet worden ist, eine Meldung an den Schalter 312 und an das Server-Maximumregister 306 sendet. (Der Betriebszustand der einzelnen Server braucht wie bei der SunRPC-Software dem Port-Mapper 16' nicht mitgeteilt zu werden, ausgenommen der Start des ersten Servers, damit der Port-Mapper in Kenntnis gesetzt ist, dass ein bestimmter Dienst zur Verfügung steht.
  • Sobald der Dienst zur Verfügung steht, braucht der Port-Mapper lediglich die XMAN-Adresse zu liefern, wenn eine Verbindung angefordert wird, worauf der XMAN dann die Server den Anforderungen zuordnet.) Dann wird die dritte Anforderung in die Anforderungswarteschlange 310 eingestellt, der vorzugsweise die Form eines FIFO-Pufferspeichers (first in first out, zuerst hinein zuerst hinaus) hat, wobei jedoch noch kein weiterer Server gestartet wird, da der Wert für den Serverstart größer ist als die Warteschlangenlänge. Wenn eine vierte Anforderung empfangen wird, bevor die Verarbeitung der ersten oder zweiten Anforderung abgeschlossen ist, wird in der oben beschriebenen Weise der Server 3 gestartet. Sobald die Verarbeitung einer Anforderung abgeschlossen ist und das Ergebnis über die Netzwerkschnittstelle 300 zurückgegeben wurde, steht der Server wieder zur Verfügung, um die nächste Anforderung (z.B. die dritte Anforderung) aus der Anforderungswarteschlange zu empfangen.
  • Der Server teilt dem Client das Ergebnis der Verarbeitung der Anforderung direkt als einen Fall der Anforderung mit, wobei der XMAN 110 nur zum Anzeigen der Verfügbarkeit des Servers zur Verarbeitung weiterer Anforderungen einbezogen wird. Dies gilt auch für Verbindungs- und Beendigungsanforderungen, bei denen es sich bei dem direkt zum Client zurückgegebenen „Ergebnis" im Allgemeinen um eine Bestätigung und Genehmigung für eine Verbindung sowie eine Bestätigung und einen Rückkehrcode für eine Beendigung handelt. Wenn sich in der Anforderungswarteschlange keine Anforderung befindet, wird der Server nicht angehalten, sondern geht so lange in den Leerlauf über, bis eine durch den Wert im Register oder Zähler 308 festgelegte Zeitspanne (z.B. dreißig Sekunden) vergangen ist.
  • In Bezug auf den zum Starten eines Servers erforderlichen Systemaufwand ist es auch vorteilhaft, den Start der Server um dieselbe Zeitspanne oder in Abhängigkeit davon zu verzögern, dass die Länge der Anforderungswarteschlange größer ist als der im Register 302 gespeicherte Wert. Aus demselben Grund ist es auch von Vorteil, den Wert im Register 304 größer als eins zu wählen, obwohl dies bedeutet, dass nicht die gesamte Rechenleistung für den parallelen Servereinsatz verfügbar ist. Wenn zum Beispiel für den Start eines Servers dreißig Sekunden erforderlich sind, erhielte man unabhängig vom Stoppwert des Dienstes keinen höheren Durchsatz, wenn man den Startwert des Dienstes auf 1 setzte. Wenn man jedoch den Startwert des Dienstes auf zwei (oder mehr) und den Stoppwert des Dienstes etwa auf die zum Starten eines Servers benötigte Zeitspanne einstellt, kann man tatsächlich einen höheren Datendurchsatz erreichen, da die in der Anforderungswarteschlange 310 verbliebene Anforderung sofort zu einem verfügbaren Server weitergeleitet wird, sobald die Verarbeitung einer früheren Anforderung abgeschlossen wurde.
  • Aus der obigen Beschreibung ist zu ersehen, dass es keine Bindung zwischen den Clients und den Servern gibt, da die Anforderungen in der Reihenfolge des Empfangs verarbeitet werden. Deshalb bleibt den Servern die Identität der Clients (bis auf die Zieladresse für die Ergebnisse) im Prinzip unbekannt und der XMAN ist für die RPC-Clients vollständig transparent, die in einer mit den Client-Operationen im Rahmen der SunRPC-Software vollständig konsistenten Weise das Senden von Anforderungen an die Server veranlasst hatten.
  • Durch dieses Merkmal sind die Server in der Lage, Anforderungen von einem beliebigen Client oder einer Client-Gruppe parallel mit derselben Geschwindigkeit zu verarbeiten, und die RPC-Software wird von der Einschränkung der iterativen Verarbeitung der Anforderungen befreit. Desgleichen wird durch die Zuordnung der Server zu Anforderungen anstatt zu Verbindungen die Anzahl der auf Anforderungen wartenden Server verringert, wenn die Anzahl der Server größer ist als die Anzahl der gerade verarbeiteten Anforderungen. Auf diese Weise wird auch der Anteil der dem Serverbetrieb zugeordneten Rechenleistung des Prozessors 12 möglichst klein gehalten.
  • Ferner kann man mehr Verbindungen herstellen und unterhalten, als wenn man zu jedem Zeitpunkt Anforderungen an den Server sendet. Von größerer Bedeutung ist jedoch, dass eine parallele Verarbeitung einer Reihe von Anforderungen von einem einzelnen Client ohne Bereitstellung des Systemaufwands zur Herstellung zusätzlicher Verbindungen bereitgestellt und gleichzeitig der Dienst für jeden Client optimiert wird, indem man allen Clients einen Mechanismus zur gleichberechtigten und schnellstmöglichen Verarbeitung der Client-Anforderungen mit vereinfachter Registrierung bereitstellt (da der Port-Mapper nur die Verfügbarkeit eines dem Dienst mit der angeforderten Task zugeordneten Transaktionsmanagers unbedingt überwachen muss). Somit unterscheidet sich die durch die Erfindung erreichte vorteilhafte Funktion sehr deutlich und ist wesentlich umfassender und nützlicher, als man durch Hinzufügen eines Verbindungsmanagers erreichen könnte, der die ankommenden Anforderungen verschiedenen in Betrieb befindlichen Servern zuleiten kann und dennoch durch die enge Bindung zwischen einem Client und einem Server während der Verbindungszeit beschränkt wäre.
  • Während oben eine spezielle Darstellung der Arbeitsweise der Erfindung gegeben wurde, wird die bevorzugte Arbeitsweise der Erfindung durch den folgenden Pseudocode realisiert:
  • Figure 00200001
  • Figure 00210001
  • Figure 00220001
  • Die bevorzugte Prozedur zum Registrieren eines Servers beim Starten des Servers wird durch den folgenden Pseudocode realisiert:
  • Figure 00220002
  • Figure 00230001
  • Der obige Pseudocode realisiert einen in den Ablaufdiagrammen von 4, 5 und 6 dargestellten Prozess. Es ist jedoch klar, dass das in 4, 5 und 6 dargestellte Verfahren das bevorzugte Verfahren repräsentiert und zum Verständnis beitragen soll, wie bevorzugte Funktionen der Erfindung erreicht werden können und dass der Fachmann aus der folgenden Erörterung zahlreiche Varianten erkennen kann. Ferner ist klar, dass das beschriebene Verfahren aus Gründen der Verständlichkeit der Erfindung und ihrer Funktion vereinfacht wurde und bei der vorliegenden Darstellung keine Angaben zur relativen Programmierbarkeit oder zur Ausführung eines in einer bestimmten Programmiersprache geschriebenen Programms gemacht werden, welches dieses Verfahren oder dessen Varianten realisiert. So fügt man zum Beispiel vorzugsweise anstelle der eigentlichen Anforderung eine Anschlusskennung in die Anforderungswarteschlange ein, jedoch stellt die Verwendung einer Anschlusskennung hierbei nur ein ergänzendes Merkmal der Erfindung dar und ist weder für die Funktionsfähigkeit der Erfindung erforderlich noch für deren Funktionsprinzipien von Bedeutung. Aus dieser Darstellung wird außerdem klar, dass es zwischen allen beschriebenen Prozessen bestimmte Verzögerungen gibt und dass sich der Bearbeitungsstatus der Anforderungen zwischen der Ausführung der beschriebenen Schritte ändern kann. Die folgende Beschreibung von 4 bis 6 ist daher nur als weitere Erläuterung des obigen Pseudocodes zu verstehen.
  • In 4 beginnt der Prozess gemäß der Erfindung mit der Initialisierung des XMAN 110, die nicht notwendigerweise einen Start der Protokollierungsoperationen beinhalten muss, die zur Fehlersuche oder Ähnlichem von Nutzen sein können. Der Start einer anfänglichen Mindestanzahl von Servern beginnt in Übereinstimmung mit dem Konfigurationswert „Server Min" 302 (3). Diese Arbeitsschritte sind als Bestandteil des „Initialisierungs"-Schrittes 405 aufzufassen. Da diese Verarbeitungsschritte viel Zeit in Anspruch nehmen, wird die Anzahl der verfügbaren Server zunächst auf null gesetzt und dieser Wert bei der Ausführung der Startoperation jedes Servers nach und nach erhöht. Ebenso werden in Schritt 410 die Variable der Warteschlangengröße oder -länge sowie die Variable „Init" auf null gesetzt, die sich zur Durchführung der Registrierung des XMAN 110 im Port-Mapper 16', 18' sowie zur Kompatibilität mit vorhandenen RPC-Programmen wie zum Beispiel SunRPC eignet, was im Folgenden in Verbindung mit 5 erörtert wird.
  • Dann wartet der XMAN 110 in Schritt 415 auf Anforderungen, die entweder von einem potenziellen (da noch keine Verbindung zum XMAN besteht) Client oder einem Server kommen können. Die Verzweigungsfunktion 420 auf der Grundlage der Anzahl der innerhalb eines kurzen Zeitraums zu empfangenden Anforderungen ist zur Steuerung der Verarbeitung durch eine Vielzahl verschiedener Schleifen geeignet, um die Anforderungen der Reihe nach zu bearbeiten, indem der Übernahme von Verbindungen Priorität zugewiesen und für ähnliche Anforderungstypen Priorität zwischen Client und Server eingeräumt wird und indem der Übernahme von Anforderungen Priorität zugewiesen und vor der Zuordnung der Anforderungen zu Servern eine Reihenfolge der Anforderungen festgelegt wird. Der Prozess verzweigt deshalb erst dann zu C2, wenn alle ankommenden Anforderungen in die Anforderungswarteschlange eingestellt worden sind (Anforderungen = 0).
  • Wenn eine Anforderung empfangen wird, wird die Anforderungsvariable erhöht, sodass die Anzahl der Anforderungen größer als null wird, und die Anforderung daraufhin geprüft, ob es sich um eine Client-Anforderung (z.B. für eine Verbindung, eine Task oder eine Beendigung) oder um eine Server-Anforderung (z.B. für eine Registrierung) handelt. Wenn die Anforderung von einem potenziellen Client stammt, gilt die erste Anforderung einer Client-Verbindung, was in Schritt 425 erkannt und in Schritt 430 ausgeführt (z.B. übernommen) wird, woraufhin die Anzahl der Anforderungen in Schritt 435 vermindert wird und der Prozess zu Schritt 420 zurückkehrt, um von dort nach C2 zu verzweigen, wo die Anforderungen den Servern zugewiesen und/oder andere Verarbeitungsschritte wie zum Beispiel das Starten oder Anhalten von Servern (wenn Anforderungen = 0) oder die weitere Übernahme von Anforderungen (wenn Anforderungen = 0) ausgeführt werden.
  • Wenn es sich bei der Anforderung nicht um eine Client-Verbindung handelt, prüft der Prozess der Erfindung in Schritt 440, ob es sich um eine Verbindungsanforderung eines Servers handelt; wenn dies der Fall ist, wird die Verbindung in Schritt 430 in derselben Weise übernommen wie die Verbindungsanforderung eines Clients. Die Reihenfolge der Verzweigungsoperationen 425 und 430 ist praktisch willkürlich, jedoch haben die Client-Verbindungen eine etwas höhere Priorität, da die Server-Verbindungen die interne Rechenleistung beeinflussen und es lediglich wichtig ist, dass zusätzliche Server-Verbindungen vor der Zuweisung der Anforderungen zu den Servern übernommen werden, während die Reaktionen auf Verbindungsanforderungen von Clients wesentlich häufiger sind und die Benutzerfreundlichkeit beeinflussen.
  • Zum Abschluss des Server-Startprozesses wird eine Registrierungsanforderung gesendet und in Schritt 445 erkannt, von welchem aus der Prozess nach C1 und dem Registrierungsprozess von 5 verzweigt, der im Folgenden erörtert wird. Wenn keine Verzweigung erfolgt, wird in Schritt 450 eine Clientanforderung (z.B. nach einer Task oder Beendigung) erkannt und in eine Anforderungswarteschlange eingestellt und die Variable der Warteschlangengröße oder -länge in Schritt 460 erhöht; dann erfolgt der Rücksprung zu Schritt 420, um die Verarbeitung über die durch A1 und Schritt 435 gebildete Schleife fortzusetzen. Obwohl die Erfindung ohne die Verarbeitung von Verwaltungsanforderungen realisiert werden kann, erweitern diese Funktionen die Flexibilität und den Funktionsumfang des Systems, in welchem die Erfindung realisiert wird. Verwaltungsanforderungen können auch entweder von einem Client oder aus dem Server-Prozessor selbst (z.B. eine Unterbrechung oder zur internen Steuerung des Server-Prozessors) empfangen werden. Weitere Verwaltungsbefehle können von einer Verwaltungsschnittstelle kommen, welche für die Verarbeitung weiterer Arten von Befehlen von einem Client wie zum Beispiel zum Starten oder Anhalten eines Dienstes, der mit einem Betriebssystem zusätzlich zu dem im Server-Prozessor laufenden Betriebssystem kompatibel ist, für das Spiegeln zum Bereitstellen von Servern in anderen mit dem Netzwerk verbundenen Prozessoren oder den Serverstatus oder Abrechnungs-/Protokollanforderungen zuständig ist. In den Verzeigungsoperationen 425, 440, 445 bzw. 450 werden alle Arten von Anforderungen erkannt, die sich in irgendeiner Weise auf die Client-Server-Beziehung beziehen, und verzweigen den Prozess zur Verarbeitung der Verwaltungsanforderung in Schritt 470, wenn in Schritt 450 keine Clientanforderung erkannt wurde, wodurch die Priorität gegenüber der laufenden Verarbeitung der Clientanforderungen, nicht aber gegenüber deren Übernahme und Einordnung zur nachfolgenden Verarbeitung erhöht wird.
  • Eine Serveranforderung wird wie oben erwähnt in der Verzweigungsanforderung 445 in einem späteren Stadium oder nach Beendigung des Startvorgangs eines Servers gesendet. Es wurde auch bereits festgestellt, dass der XMAN 110 (nicht aber die einzelnen Server) im Port-Mapper 16', 18' registriert werden muss, wenn ein Server in Betrieb ist, um den Dienst einem Client bereitzustellen. Ferner wurde bereits im Zusammenhang mit der XMAN-Initialisierungsprozedur erwähnt, dass die Variable „init" gleich null gesetzt wurde. Im Folgenden wird unter Bezug auf 5 die Registrierung des XMAN erläutert.
  • Insbesondere wenn ein Server (z.B. einer aus einer durch „Server Min" angegebenen Anzahl von Servern) gestartet worden ist und eine Clientanforderung bedienen kann, muss der XMAN (nicht aber der einzelne Server wie bei SunRPC) im Port-Mapper 16', 18' registriert werden. Nachdem der XMAN im Port-Mapper registriert worden ist, sind keine weiteren Registrierungen erforderlich, vielmehr könnten weitere Registrierungen die Verarbeitung stören oder hemmen. Da alle einen bestimmten Dienst bereitstellenden Server identische Anwendungen darstellen, wird bei Beendigung des Server-Startprozesses stets eine Registrierungsanforderung gesendet. Die Verarbeitung in 5 dient dazu, dass die Registrierung des XMAN nach der ersten Registrierungsanforderung von Seiten eines Servers nur einmal erfolgt und weitere derartige Anforderungen (die z.B. gesendet wurden, wenn als Reaktion auf die Länge der Anforderungswarteschlange weitere Server gestartet werden) danach abgefangen werden. Dieses Verfahren ist wesentlich vorteilhafter als einzelne, nur geringfügig voneinander verschiedene Serverapplikationen bereitzustellen, die in einer bestimmten Reihenfolge gestartet, einzeln gespeichert und aufgerufen werden müssen und die während der gesamten Zeit, da die Applikationen laufen und aktualisiert werden, möglicherweise Unterschiede des bereitgestellten Dienstes beinhalten.
  • Die Erkennung einer Serveranforderung zur Registrierung erfolgt in der Verzweigungsoperation 445 und führt zur Verzweigung nach C1 in 5. Die Variable, welche die Anzahl der verfügbaren Server anzeigt (und z.B. in Kasten 306 in 3 gespeichert ist), wird erhöht, um anzuzeigen, dass ein weiterer Server gestartet worden ist und zur Verfügung stehen kann. Wenn in Schritt 515 erkannt wird, dass sich die Serveranforderung auf die Registrierung bezieht, wird in Schritt 515 die Variable „init" überprüft. Wenn init = 0 ist, wird sie auf 1 gesetzt und der XMAN im Port-Mapper registriert. Wenn init bereits gleich 1 ist, ist der XMAN bereits vorher registriert worden, und der Prozess von 5 wird über A1 verlassen und in 4 mit den Schritten 435 und 420 fortgesetzt. Desgleichen wird der Prozess in Schritt 510 über A1 verlassen, wenn sich die Serveranforderung nach dem Starten nicht auf die Registrierung, sondern auf die Steuerung der Eingabe von Tasks oder Unterbrechungen zur Fehlersuche bezieht.
  • Obwohl es für das Verständnis der Prinzipien der Erfindung ohne Bedeutung oder für deren praktische Anwendung nicht erforderlich ist, können in Schritt 525 als Reaktion auf dieselbe Verzweigungsoperation 510 vor dem Zurückkehren zu A1 auch andere Serveranforderungen verarbeitet werden. Zum Beispiel hat es sich als sehr nützlich herausgestellt, diese Verzweigungsoperation 510 zur Durchführung von Protokoll- und Abrechnungsfunktionen für jeden Server (wie sie zum Beispiel durch eine Verwaltungsschnittstelle abgefragt werden können, siehe oben) zu verwenden und den Zeitpunkt der letzten Verwendung eines Servers zu erfassen, um die Leerlaufzeit mit dem Parameter Server Stopp zu vergleichen.
  • Hierbei ist anzumerken, dass der Leerlaufstatus eines Servers in Schritt 505 durch die Anzeige seiner Verfügbarkeit festgelegt wird. In jedem Fall erhöht die folgende Verzweigungsoperation 510 die Verarbeitungspriorität in ausreichendem Maße gegenüber anderen Verarbeitungsschritten (ausgenommen der Verbindungsverarbeitung), um den zufriedenstellenden Betrieb der Server bei der Verarbeitung von Clientanforderungen und die Aktualisierung des Serverstatus rechtzeitig vor der Zuweisung der Clientanforderungen zu den Servern sicherzustellen.
  • In der Verzweigungsoperation 420 in 4 verzweigt der Prozess gemäß der Erfindung nach C2 in 6, sobald die Variable der Anzahl der Anforderungen nach der Verringerung in Schritt 435 gleich null ist. Wenn die Anzahl der verfügbaren Server größer als null ist und in Schritt 605 festgestellt wird, dass sich noch Anforderungen in der Warteschlange befinden, wird die nächste Anforderung in der Warteschlange an einen verfügbaren Server weitergeleitet, um die Anforderung zu verarbeiten und das Ergebnis direkt an den Client zu senden, und in Schritt 610 die Anzahl der verfügbaren Server und die Länge der Warteschlange verringert. Dann kehrt der Prozess wieder zurück zu Schritt 605 und wird so lange wiederholt, bis die Warteschlange leer ist oder allen Servern Tasks zugeleitet worden sind. Diese Alternativen werden in den Schritten 615 und 625 indirekt selektiert.
  • Wenn in der Verzweigungsoperation 615 festgestellt wird, dass die Warteschlange länger ist als die Variable Server Start (N in 61 und somit die Anzahl der verfügbaren Server gleich null oder kleiner ist als die Variable Server Start, was der aktuellen Konfiguration des XMAN (und damit der Länge der Warteschlange ungleich null) entspricht, wird in Schritt 620 mit dem Starten eines weiteren Servers begonnen, wenn die Anzahl der in Betrieb befindlichen Server kleiner ist als die Variable Server Max, was der Konfiguration des XMAN zu diesem Zeitpunkt entspricht. Bei Bedarf kann dieser Prozess in Schritt 615 mit einer zeitlichen Verzögerung versehen werden. (Entsprechend kann der Vergleich der Anzahl der Server mit der Variablen Server Max bei Bedarf nicht wie dargestellt in Schritt 620, sondern in Schritt 615 erfolgen.) Wenn ein Server gestartet wird oder die Anzahl der Server gleich Server Max ist, verzweigt die Verzweigungsoperation 625 nach A0 in 4, um dort mit der Verarbeitung fortzufahren. Wenn bereits das Starten eines weiteren Servers eingeleitet worden ist, beinhaltet diese Verarbeitung wie oben beschrieben die Verzweigung nach 5 und wenn der Server erfolgreich gestartet wurde, das Erhöhen der Anzahl der verfügbaren Server und in der Folge wiederum die Verzweigung nach C2 in 6, um eine Anforderung zum neugestarteten Server zu senden.
  • wenn jedoch die Größe oder Länge der Warteschlange nicht größer als Server-Start ist, dürfte sich ein Server jetzt oder in Kürze im Leerlauf befinden, wenn keine weiteren Clientanforderungen empfangen werden. wenn jedoch tatsächlich weitere Clientanforderungen empfangen werden, werden sie durch die Übernahme von Verbindungen, durch die Verarbeitung der Serveranforderungen oder das Einstellen von Clientanforderungen in die Warteschlange entsprechend verarbeitet, wobei möglicherweise wie oben beschrieben ein oder mehrere weitere Server gestartet werden. Wenn hingegen die Warteschlange geleert und eine Task beendet wird und dadurch ein Server in den Leerlauf übergeht, wird von jedem Server ein Leerlaufzeitwert abgefragt. Wenn dieser Wert die Variable Server_Stopp überschreitet, wird der Server in Schritt 630 angehalten, um im Server-Prozessor 12' die verfügbare Rechenleistung zu maximieren, und der Prozess in 6 wird über A0 in Richtung 4 verlassen, um dort auf weitere Anforderungen zu warten.
  • Aus dem oben Gesagten ergibt sich, dass das Verfahren der Erfindung vollkommen unabhängig von den Einzelheiten des RPC-Programms wie zum Beispiel der SunRPC-Software ist, welche die Client-Server-Beziehung herstellt. Insbesondere ist das Verfahren von der Art und Weise unabhängig, in der die Verbindungen hergestellt werden, und jede in dem RPC-Programm bereitgestellte Anordnung zur Herstellung von Verbindungen kann wie oben erörtert angepasst werden. Es wird lediglich die (durch die in 5 dargestellte und im obigen Pseudocode enthaltene Routine Server Anforderung verarbeiten zum Port-Mapper 16', 18' gesendete) XMAN-Adresse in Verbindung mit einer angeforderten Task benötigt, die der dem XMAN entsprechende Dienst bereitstellen kann; zum Beispiel indem der Port-Mapper als Reaktion auf eine Dienstanforderung von einem potenziellen Client anstelle einer bestimmten Serveradresse die XMAN-Adresse zurückgibt. Ferner ist es durch die Abkopplung des Verbindungsprozesses von einem bestimmten Server möglich, Anforderungen in eine Warteschlange einzustellen und Server in derselben Reihenfolge den angeforderten Tasks zuzuordnen, wie die Anforderungen empfangen wurden; dies führt dazu, dass der Dienst schnellstmöglich bereitgestellt und den Clients möglichst gleichberechtigt zugewiesen wird und gleichzeitig wesentlich mehr Clientverbindungen betrieben werden können.
  • Aus der obigen Beschreibung ergibt sich außerdem, dass die Herstellung der Verbindungen vollständig von den Servern (z.B. durch die Schleifen in den Schritten 425, 440, 445 und 450 (letztere über A1) und allen Kommunikationsprotokollen abgetrennt ist, sodass die Verwaltung verschiedener Betriebssysteme, Protokolldienste, Berechtigungsdateien, Verwaltungsschnittstellen sowie weiterer Fragen der Kompatibilität zwischen Client und Server in bekannter Weise als Prozess der Netzwerkkommunikation über die hergestellten Verbindungen erfolgen kann. Deshalb ist der Server hierfür nicht zuständig und die Erfindung kann daher auf jedes Betriebssystem und jede Kommunikationsanordnung Anwendung finden. Aus dem oben Gesagten ist zu erkennen, dass die Erfindung den Parallelbetrieb mehrerer Server für einen einzelnen Client unterstützt, wobei der Systemaufwand nicht erhöht und die Bearbeitung schnellstmöglich und die Ressourcen allen anfordernden Clients gleichberechtigt zugeordnet werden. Ferner wird die Anzahl der gleichzeitig zu bedienenden Client-Server-Verbindungen erhöht und ist nicht durch Anzahl der bereitgestellten Server begrenzt; dabei wird die Notwendigkeit der Unterbrechung von Verbindungen nach Beendigung aller aktuell durch einen Client angeforderten Tasks und die Wiederherstellung einer Verbindung für eine weitere Anforderung und der damit verbundene Systemaufwand verringert.
  • Durch den Transaktionsmanager gemäß der Erfindung wird die Kompatibilität zwischen vorhandenen RPC-Programmen erreicht und die parallele Verarbeitung von Clientanforderungen unterstützt, indem gemäß einer bevorzugten Ausführungsart nicht ein bestimmter Server, sondern der Transaktionsmanager in einem Port-Mapper oder in einem Client registriert wird, wodurch die Server vom Prozess der Herstellung der Verbindungen abgetrennt und die Anforderungen den Servern unabhängig von den Clientverbindungen zugeordnet werden können. Die Flexibilität und Leistung des Systems, in welchem die Erfindung realisiert wird, kann gesteigert werden, indem man Anschlusskennungen für die Verarbeitung von Verwaltungsanforderungen und die Darstellung von Clientanforderungen bereitstellt.

Claims (6)

  1. Verfahren zum Ausführen von Datenverarbeitungsaufgaben in einem Client-Server-System mit einem Client-Prozessor (30) und einem Server-Prozessor (12'), wobei der Server-Prozessor einen Transaktionsmanager (110) und eine Vielzahl von Servern (130) enthält und das Verfahren die folgenden Schritte beinhaltet: Bereitstellen eines Dienstes durch den Transaktionsmanager (110) des Server-Prozessors zum Herstellen einer Verbindung zwischen einem diesen Dienst anfordernden Client-Prozessor (30) und dem Transaktionsmanager; Empfangen einer Anforderung nach diesem Dienst durch den Transaktionsmanager (110) vom Client-Prozessor über diese Verbindung; und zeitliche Steuerung der Ausführung dieser Anforderung durch den Transaktionsmanager, indem dieser unabhängig vom Schritt der Herstellung einer Verbindung einen aus der Vielzahl der Server (130) auswählt, wodurch nicht die Server, sondern der Transaktionsmanager für die Herstellung der Verbindungen zu den Client-Prozessoren verantwortlich ist.
  2. Verfahren nach einem der vorangehenden Ansprüche, bei dem das Ausführen von Datenverarbeitungsaufgaben in dem Client-Server-System ferne Prozeduraufrufe beinhaltet.
  3. Verfahren nach einem der vorangehenden Ansprüche, welches vor dem Schritt der Herstellung einer Verbindung einen Schritt zum Starten eines Servers, der auf dem Server-Datenprozessor einen Dienst bereitstellt, unabhängig von einer Anforderung des Client-Prozessors beinhaltet.
  4. Verfahren nach einem der vorangehenden Ansprüche, bei dem während des Schritts der Herstellung einer Verbindung dem Client-Prozessor die Adresse des Transaktionsmanagers als Anschlussnummer zur Verfügung gestellt wird.
  5. Server-Prozessor (12') zur Verwendung in einem Client-Server-Rechnersystem, wobei der Server-Prozessor einen Transaktionsmanager (110) und eine Vielzahl von Servern (130) umfasst, die in dem Server-Prozessor mindestens einen Dienst bereitstellen, wobei der Transaktionsmanager Folgendes umfasst: ein Mittel zur Herstellung einer Verbindung zwischen einem einen Dienst anfordernden Client-Prozessor (30) und dem Transaktionsmanager des diesen Dienst bereitstellenden Server-Prozessors; ein Mittel zum Empfangen einer Anforderung nach diesem Dienst vom Client-Prozessor über diese Verbindung; und ein Mittel zur zeitlichen Steuerung der Ausführung der Anforderung unabhängig vom Schritt der Herstellung einer Verbindung durch Auswahl eines aus der Vielzahl der Server (130), wodurch nicht die Server, sondern der Transaktionsmanager für die Herstellung der Verbindungen zu den Client-Prozessoren verantwortlich ist.
  6. Server-Prozessor nach Anspruch 5, bei welchem dem Client-Prozessor die Adresse des Transaktionsmanagers während der Herstellung der Verbindung zwischen dem Server-Prozessor und dem Client-Prozessor als Anschlussnummer zur Verfügung gestellt wird.
DE69728601T 1996-03-05 1997-02-24 Client-Server-Architektur mit nebenläufigen Servern Expired - Lifetime DE69728601T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US610943 1996-03-05
US08/610,943 US5761507A (en) 1996-03-05 1996-03-05 Client/server architecture supporting concurrent servers within a server with a transaction manager providing server/connection decoupling

Publications (2)

Publication Number Publication Date
DE69728601D1 DE69728601D1 (de) 2004-05-19
DE69728601T2 true DE69728601T2 (de) 2005-03-17

Family

ID=24447022

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69728601T Expired - Lifetime DE69728601T2 (de) 1996-03-05 1997-02-24 Client-Server-Architektur mit nebenläufigen Servern

Country Status (5)

Country Link
US (1) US5761507A (de)
EP (1) EP0794491B1 (de)
JP (1) JP3364575B2 (de)
KR (1) KR100237984B1 (de)
DE (1) DE69728601T2 (de)

Families Citing this family (246)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6950991B2 (en) * 1995-11-13 2005-09-27 Citrix Systems, Inc. Interacting with software applications displayed in a web page
US6437803B1 (en) 1998-05-29 2002-08-20 Citrix Systems, Inc. System and method for combining local and remote windows into a single desktop environment
US6370552B1 (en) 1997-05-14 2002-04-09 Citrix Systems, Inc. Apparatus and method for displaying application output in an HTML document
US6088515A (en) 1995-11-13 2000-07-11 Citrix Systems Inc Method and apparatus for making a hypermedium interactive
US7555529B2 (en) 1995-11-13 2009-06-30 Citrix Systems, Inc. Interacting with software applications displayed in a web page
US6128657A (en) * 1996-02-14 2000-10-03 Fujitsu Limited Load sharing 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
US6138238A (en) 1997-12-11 2000-10-24 Sun Microsystems, Inc. Stack-based access control using code and executor identifiers
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
US6006266A (en) * 1996-06-03 1999-12-21 International Business Machines Corporation Multiplexing of clients and applications among multiple servers
US5864669A (en) * 1996-07-11 1999-01-26 Microsoft Corporation Method and system for accessing a particular instantiation of a server process
US7181525B1 (en) 1996-08-05 2007-02-20 Computer Associates Think, Inc. Dynamic method for connecting a client to a server application
US6073177A (en) * 1997-08-05 2000-06-06 Sterling Software, Inc. Dynamic method for connecting a client to a server application
US5832529A (en) 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US5946498A (en) * 1996-11-12 1999-08-31 International Business Machines Corporation Delivery of client remote procedure calls to a server via a request queue utilizing priority and time-out
US7035906B1 (en) 1996-11-29 2006-04-25 Ellis Iii Frampton E Global network computers
US8312529B2 (en) 1996-11-29 2012-11-13 Ellis Frampton E Global network computers
US6725250B1 (en) * 1996-11-29 2004-04-20 Ellis, Iii Frampton E. Global network computers
US7926097B2 (en) 1996-11-29 2011-04-12 Ellis Iii Frampton E Computer or microchip protected from the internet by internal hardware
US7506020B2 (en) 1996-11-29 2009-03-17 Frampton E Ellis Global network computers
US20050180095A1 (en) * 1996-11-29 2005-08-18 Ellis Frampton E. Global network computers
US7634529B2 (en) * 1996-11-29 2009-12-15 Ellis Iii Frampton E Personal and server computers having microchips with multiple processing units and internal firewalls
US8225003B2 (en) 1996-11-29 2012-07-17 Ellis Iii Frampton E Computers and microchips with a portion protected by an internal hardware firewall
US6732141B2 (en) 1996-11-29 2004-05-04 Frampton Erroll Ellis Commercial distributed processing by personal computers over the internet
US7805756B2 (en) * 1996-11-29 2010-09-28 Frampton E Ellis Microchips with inner firewalls, faraday cages, and/or photovoltaic cells
US6167428A (en) 1996-11-29 2000-12-26 Ellis; Frampton E. Personal computer microprocessor firewalls for internet distributed processing
US7024449B1 (en) * 1996-11-29 2006-04-04 Ellis Iii Frampton E Global network computers
GB2320112B (en) * 1996-12-07 2001-07-25 Ibm High-availability computer server system
US6026404A (en) * 1997-02-03 2000-02-15 Oracle Corporation Method and system for executing and operation in a distributed environment
US6845505B1 (en) * 1997-02-03 2005-01-18 Oracle International Corporation Web request broker controlling multiple processes
US6710786B1 (en) 1997-02-03 2004-03-23 Oracle International Corporation Method and apparatus for incorporating state information into a URL
US6067580A (en) * 1997-03-11 2000-05-23 International Business Machines Corporation Integrating distributed computing environment remote procedure calls with an advisory work load manager
CA2202572C (en) * 1997-04-14 2004-02-10 Ka Lun Eddie Law A scaleable web server and method of efficiently managing multiple servers
US5964832A (en) * 1997-04-18 1999-10-12 Intel Corporation Using networked remote computers to execute computer processing tasks at a predetermined time
US6098067A (en) * 1997-05-02 2000-08-01 Kabushiki Kaisha Toshiba Remote computer management system
US6157944A (en) * 1997-05-14 2000-12-05 Citrix Systems, Inc. System and method for replicating a client/server data exchange to additional client notes connecting to the server
US5961586A (en) * 1997-05-14 1999-10-05 Citrix Systems, Inc. System and method for remotely executing an interpretive language application
US5941949A (en) * 1997-05-14 1999-08-24 Citrix Systems, Inc. System and method for transmitting data from a server application to more than one client node
JPH10334064A (ja) * 1997-05-27 1998-12-18 Shikoku Nippon Denki Software Kk 負荷分散方式
US6411805B1 (en) 1997-06-05 2002-06-25 Mci Communications Corporation System and method for a network-based call continuation service
US6243751B1 (en) * 1997-06-11 2001-06-05 Oracle Corporation Method and apparatus for coupling clients to servers
US6675195B1 (en) * 1997-06-11 2004-01-06 Oracle International Corporation Method and apparatus for reducing inefficiencies caused by sending multiple commands to a server
US6088728A (en) * 1997-06-11 2000-07-11 Oracle Corporation System using session data stored in session data storage for associating and disassociating user identifiers for switching client sessions in a server
JPH1157215A (ja) * 1997-08-20 1999-03-02 Fuji Xerox Co Ltd ネットワークゲームシステム、ネットワークゲームサーバ装置、ネットワークゲームクライアント装置、対局者選定プログラムを記録した媒体及び対局者情報取得プログラムを記録した媒体
US6253253B1 (en) * 1997-08-25 2001-06-26 International Business Machines Corporation Method and apparatus for optimizing references to objects in a data processing system
US6360279B1 (en) * 1997-10-14 2002-03-19 Bea Systems, Inc. True parallel client server system and method
GB2330923A (en) * 1997-10-28 1999-05-05 Ibm Transaction manager
US6334114B1 (en) 1997-10-31 2001-12-25 Oracle Corporation Method and apparatus for performing transactions in a stateless web environment which supports a declarative paradigm
US6493447B1 (en) * 1997-11-21 2002-12-10 Mci Communications Corporation Contact server for call center for syncronizing simultaneous telephone calls and TCP/IP communications
US6360262B1 (en) * 1997-11-24 2002-03-19 International Business Machines Corporation Mapping web server objects to TCP/IP ports
US6324584B1 (en) * 1997-11-26 2001-11-27 International Business Machines Corp. Method for intelligent internet router and system
GB2333379A (en) * 1998-01-16 1999-07-21 Ibm Client/server computing
US6185598B1 (en) 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US8060613B2 (en) 1998-02-10 2011-11-15 Level 3 Communications, Llc Resource invalidation in a content delivery network
US7054935B2 (en) * 1998-02-10 2006-05-30 Savvis Communications Corporation Internet content delivery network
GB2334353B (en) * 1998-02-12 2002-08-07 Ibm An apparatus,method and computer program product for client/server computing with the ability to select which servers are capable of creating transaction stat
AU3297199A (en) * 1998-02-26 1999-09-15 Sun Microsystems, Inc. Dynamic lookup service in a distributed system
AU2680399A (en) 1998-02-26 1999-09-15 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
US6272546B1 (en) * 1998-03-12 2001-08-07 Sony Corporation Method of and apparatus for managing resource allocation and bandwidth overflow in a cooperative, distributed computing environment
US20020046228A1 (en) * 1998-03-20 2002-04-18 Sun Microsystems, Inc. Method and system for facilitating access to a lookup service
US6529932B1 (en) 1998-04-01 2003-03-04 Microsoft Corporation Method and system for distributed transaction processing with asynchronous message delivery
US6205498B1 (en) 1998-04-01 2001-03-20 Microsoft Corporation Method and system for message transfer session management
US6446206B1 (en) 1998-04-01 2002-09-03 Microsoft Corporation Method and system for access control of a message queue
GB2336449A (en) * 1998-04-14 1999-10-20 Ibm A server selection method in an asynchronous client-server computer system
DE19822543A1 (de) * 1998-05-20 1999-11-25 Alcatel Sa Verfahren zum Zuteilen von Aufträgen, Datenverarbeitssystem, Client-Datenbearbeitungsknoten und computerlesbares Speichermedium
US6813777B1 (en) * 1998-05-26 2004-11-02 Rockwell Collins Transaction dispatcher for a passenger entertainment system, method and article of manufacture
US6314463B1 (en) * 1998-05-29 2001-11-06 Webspective Software, Inc. Method and system for measuring queue length and delay
US6976093B2 (en) 1998-05-29 2005-12-13 Yahoo! Inc. Web server content replication
US7035943B2 (en) 1998-05-29 2006-04-25 Yahoo! Inc. Web server content replication
US6279001B1 (en) 1998-05-29 2001-08-21 Webspective Software, Inc. Web service
US7581006B1 (en) 1998-05-29 2009-08-25 Yahoo! Inc. Web service
US7143193B1 (en) * 1998-05-29 2006-11-28 Yahoo! Inc. Content collection
US6317786B1 (en) 1998-05-29 2001-11-13 Webspective Software, Inc. Web service
US6636900B2 (en) * 1998-06-29 2003-10-21 Sun Microsystems, Inc. Method and apparatus for executing distributed objects over a network
US6848108B1 (en) 1998-06-30 2005-01-25 Microsoft Corporation Method and apparatus for creating, sending, and using self-descriptive objects as messages over a message queuing network
US6202089B1 (en) * 1998-06-30 2001-03-13 Microsoft Corporation Method for configuring at runtime, identifying and using a plurality of remote procedure call endpoints on a single server process
US6275912B1 (en) 1998-06-30 2001-08-14 Microsoft Corporation Method and system for storing data items to a storage device
US6256634B1 (en) 1998-06-30 2001-07-03 Microsoft Corporation Method and system for purging tombstones for deleted data items in a replicated database
US6108703A (en) 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US6370583B1 (en) * 1998-08-17 2002-04-09 Compaq Information Technologies Group, L.P. Method and apparatus for portraying a cluster of computer systems as having a single internet protocol image
US6119160A (en) * 1998-10-13 2000-09-12 Cisco Technology, Inc. Multiple-level internet protocol accounting
US6311205B1 (en) * 1998-10-19 2001-10-30 International Business Machines Corporation Persistent user groups on servers managed by central servers
US6195682B1 (en) 1998-10-27 2001-02-27 International Business Machines Corporation Concurrent server and method of operation having client-server affinity using exchanged client and server keys
US7107591B1 (en) * 1998-11-05 2006-09-12 Hewlett-Packard Development Company, L.P. Task-specific flexible binding in a software system
JP3223355B2 (ja) * 1998-11-12 2001-10-29 株式会社エヌ・ティ・ティ・ドコモ 通信制御方法、通信制御装置、記録媒体およびデータ端末
US9239763B2 (en) 2012-09-28 2016-01-19 Oracle International Corporation Container database
US7075895B1 (en) * 1998-12-04 2006-07-11 Sun Microsystems, Inc. System and method for facilitating discovery of network addresses and selected charateristics of computer systems and the like which are connected in digital data networks
US6928469B1 (en) * 1998-12-29 2005-08-09 Citrix Systems, Inc. Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques
DE60040846D1 (de) * 1999-02-26 2009-01-02 Henry Haugland Massenerzeugung individualer virtueller servern, vertueller webseiten sowie virtueller webobjekten
US6920475B1 (en) * 1999-04-23 2005-07-19 Oracle International Corporation Communication architecture for distributed computing environment
US6275470B1 (en) 1999-06-18 2001-08-14 Digital Island, Inc. On-demand overlay routing for computer-based communication networks
US6668317B1 (en) * 1999-08-31 2003-12-23 Intel Corporation Microengine for parallel processor architecture
US6427196B1 (en) * 1999-08-31 2002-07-30 Intel Corporation SRAM controller for parallel processor architecture including address and command queue and arbiter
US6983350B1 (en) 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
WO2001016702A1 (en) 1999-09-01 2001-03-08 Intel Corporation Register set used in multithreaded parallel processor architecture
US7191309B1 (en) 1999-09-01 2007-03-13 Intel Corporation Double shift instruction for micro engine used in multithreaded parallel processor architecture
US6754714B1 (en) 1999-10-05 2004-06-22 Cisco Technology, Inc. Multilink point-to-point protocol network access server channel allocation method and apparatus
US6874028B1 (en) * 1999-10-25 2005-03-29 Microsoft Corporation System and method for unified registration information collection
US8543901B1 (en) 1999-11-01 2013-09-24 Level 3 Communications, Llc Verification of content stored in a network
US6928477B1 (en) * 1999-11-18 2005-08-09 International Business Machines Corporation Availability and scalability in clustered application servers by transmitting expected loads of clients to load balancer
US6718330B1 (en) 1999-12-16 2004-04-06 Ncr Corporation Predictive internet automatic work distributor (Pre-IAWD) and proactive internet automatic work distributor (Pro-IAWD)
US6532509B1 (en) 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
US6694380B1 (en) 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US7620702B1 (en) 1999-12-28 2009-11-17 Intel Corporation Providing real-time control data for a network processor
US6631430B1 (en) * 1999-12-28 2003-10-07 Intel Corporation Optimizations to receive packet status from fifo bus
US6307789B1 (en) * 1999-12-28 2001-10-23 Intel Corporation Scratchpad memory
US6625654B1 (en) * 1999-12-28 2003-09-23 Intel Corporation Thread signaling in multi-threaded network processor
US6661794B1 (en) 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US7480706B1 (en) 1999-12-30 2009-01-20 Intel Corporation Multi-threaded round-robin receive for fast network port
US6976095B1 (en) * 1999-12-30 2005-12-13 Intel Corporation Port blocking technique for maintaining receive packet ordering for a multiple ethernet port switch
US6584522B1 (en) * 1999-12-30 2003-06-24 Intel Corporation Communication between processors
US6952824B1 (en) 1999-12-30 2005-10-04 Intel Corporation Multi-threaded sequenced receive for fast network port stream of packets
US6631462B1 (en) * 2000-01-05 2003-10-07 Intel Corporation Memory shared between processing threads
US20040259774A1 (en) * 2000-03-08 2004-12-23 Enrique Alvarez Therapeutic polypeptides, nucleic acids encoding same, and methods of use
US8010703B2 (en) * 2000-03-30 2011-08-30 Prashtama Wireless Llc Data conversion services and associated distributed processing system
USRE42153E1 (en) * 2000-03-30 2011-02-15 Hubbard Edward A Dynamic coordination and control of network connected devices for large-scale network site testing and associated architectures
US7254607B2 (en) * 2000-03-30 2007-08-07 United Devices, Inc. Dynamic coordination and control of network connected devices for large-scale network site testing and associated architectures
US8510468B2 (en) 2000-04-17 2013-08-13 Ciradence Corporation Route aware network link acceleration
US8996705B2 (en) 2000-04-17 2015-03-31 Circadence Corporation Optimization of enhanced network links
US20020002625A1 (en) 2000-04-17 2002-01-03 Mark Vange System and method for reformatting data traffic
US8065399B2 (en) 2000-04-17 2011-11-22 Circadence Corporation Automated network infrastructure test and diagnostic system and method therefor
US20110128972A1 (en) 2000-04-17 2011-06-02 Randy Thornton Peer to peer dynamic network link acceleration
US8195823B2 (en) 2000-04-17 2012-06-05 Circadence Corporation Dynamic network link acceleration
US8898340B2 (en) 2000-04-17 2014-11-25 Circadence Corporation Dynamic network link acceleration for network including wireless communication devices
US8024481B2 (en) 2000-04-17 2011-09-20 Circadence Corporation System and method for reducing traffic and congestion on distributed interactive simulation networks
US7092983B1 (en) * 2000-04-19 2006-08-15 Silicon Graphics, Inc. Method and system for secure remote distributed rendering
US7783695B1 (en) * 2000-04-19 2010-08-24 Graphics Properties Holdings, Inc. Method and system for distributed rendering
US7062527B1 (en) * 2000-04-19 2006-06-13 Silicon Graphics, Inc. Management and scheduling of a distributed rendering method and system
US6912576B1 (en) 2000-05-04 2005-06-28 Broadcom Corporation System and method of processing data flow in multi-channel, multi-service environment by dynamically allocating a socket
US6785713B1 (en) 2000-05-08 2004-08-31 Citrix Systems, Inc. Method and apparatus for communicating among a network of servers utilizing a transport mechanism
US6785726B1 (en) 2000-05-08 2004-08-31 Citrix Systems, Inc. Method and apparatus for delivering local and remote server events in a similar fashion
US6789112B1 (en) 2000-05-08 2004-09-07 Citrix Systems, Inc. Method and apparatus for administering a server having a subsystem in communication with an event channel
US6922724B1 (en) 2000-05-08 2005-07-26 Citrix Systems, Inc. Method and apparatus for managing server load
US6941379B1 (en) * 2000-05-23 2005-09-06 International Business Machines Corporation Congestion avoidance for threads in servers
US7565651B1 (en) * 2000-05-25 2009-07-21 Oracle International Corporation Parallel task scheduling system for computers
JP2001345992A (ja) * 2000-06-05 2001-12-14 Murata Mach Ltd ファクシミリ装置
US7200666B1 (en) 2000-07-07 2007-04-03 International Business Machines Corporation Live connection enhancement for data source interface
US6910074B1 (en) * 2000-07-24 2005-06-21 Nortel Networks Limited System and method for service session management in an IP centric distributed network
JP5085831B2 (ja) * 2000-07-27 2012-11-28 オラクル・インターナショナル・コーポレイション リクエストの集中及びロードバランシングのためのシステム及び方法
US6880156B1 (en) * 2000-07-27 2005-04-12 Hewlett-Packard Development Company. L.P. Demand responsive method and apparatus to automatically activate spare servers
US7681018B2 (en) 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
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
US7386610B1 (en) 2000-09-18 2008-06-10 Hewlett-Packard Development Company, L.P. Internet protocol data mirroring
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
US7020871B2 (en) 2000-12-21 2006-03-28 Intel Corporation Breakpoint method for parallel hardware threads in multithreaded processor
US7296275B2 (en) * 2001-01-04 2007-11-13 Sun Microsystems, Inc. Method and system for passing objects in a distributed system using serialization contexts
JP4307747B2 (ja) 2001-01-25 2009-08-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 接続受付システム、受付サーバ、クライアント端末、接続受付管理方法、記憶媒体、コンピュータプログラム
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
US20020169680A1 (en) * 2001-05-10 2002-11-14 International Business Machines Corporation Method and apparatus for building commercial distributed computing networks via computer cost subsidization
US7571215B2 (en) * 2001-07-16 2009-08-04 Bea Systems, Inc. Data replication protocol
US6918013B2 (en) * 2001-07-16 2005-07-12 Bea Systems, Inc. System and method for flushing bean cache
US20030023898A1 (en) * 2001-07-16 2003-01-30 Jacobs Dean Bernard Layered architecture for data replication
US7337441B2 (en) * 2001-07-17 2008-02-26 Bea Systems, Inc. System and method for prepreparing a transaction process involving a chain of servers in a circular flow
US7315903B1 (en) * 2001-07-20 2008-01-01 Palladia Systems, Inc. Self-configuring server and server network
US7290059B2 (en) * 2001-08-13 2007-10-30 Intel Corporation Apparatus and method for scalable server load balancing
US6868476B2 (en) * 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US20030046398A1 (en) * 2001-08-29 2003-03-06 Charles Buckley Method and system for managing a plurality of console devices in a network
US20030046230A1 (en) * 2001-08-30 2003-03-06 Jacobs Dean Bernard Method for maintaining account consistency
US7028030B2 (en) 2001-08-30 2006-04-11 Bea Systems, Inc. Cluster caching with concurrency checking
WO2003021464A2 (en) * 2001-09-05 2003-03-13 Rubenstein, Allen, I. Secure remote access between peers
US6826601B2 (en) * 2001-09-06 2004-11-30 Bea Systems, Inc. Exactly one cache framework
US7113980B2 (en) * 2001-09-06 2006-09-26 Bea Systems, Inc. Exactly once JMS communication
US7660887B2 (en) 2001-09-07 2010-02-09 Sun Microsystems, Inc. Systems and methods for providing dynamic quality of service for a distributed system
US7756969B1 (en) 2001-09-07 2010-07-13 Oracle America, Inc. Dynamic provisioning of identification services in a distributed system
US20030051029A1 (en) * 2001-09-07 2003-03-13 Reedy Dennis G. Dynamic provisioning of sevice components in a distributed system
US7228337B1 (en) * 2001-09-11 2007-06-05 Cisco Technology, Inc. Methods and apparatus for providing a network service to a virtual machine
US7860964B2 (en) 2001-09-28 2010-12-28 Level 3 Communications, Llc Policy-based content delivery network selection
US7126952B2 (en) 2001-09-28 2006-10-24 Intel Corporation Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method
EP2290916B1 (de) 2001-09-28 2015-12-16 Level 3 CDN International, Inc. Konfigurierbare adaptive globale Verkehrssteuerung und -verwaltung
US7373644B2 (en) 2001-10-02 2008-05-13 Level 3 Communications, Llc Automated server replication
US20030079027A1 (en) 2001-10-18 2003-04-24 Michael Slocombe Content request routing and load balancing for content distribution networks
JP2003143153A (ja) * 2001-11-01 2003-05-16 Nec Corp サーバコンピュータ、そのコネクションクローズ方法及びプログラム
US7158964B2 (en) * 2001-12-12 2007-01-02 Intel Corporation Queue management
US7107413B2 (en) 2001-12-17 2006-09-12 Intel Corporation Write queue descriptor count instruction for high speed queuing
US7269179B2 (en) * 2001-12-18 2007-09-11 Intel Corporation Control mechanisms for enqueue and dequeue operations in a pipelined network processor
US7895239B2 (en) 2002-01-04 2011-02-22 Intel Corporation Queue arrays in network devices
US7181573B2 (en) 2002-01-07 2007-02-20 Intel Corporation Queue array caching in network devices
US7181489B2 (en) * 2002-01-10 2007-02-20 International Business Machines Corporation Method, apparatus, and program for distributing a document object model in a web server cluster
US6934951B2 (en) * 2002-01-17 2005-08-23 Intel Corporation Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section
US7181594B2 (en) * 2002-01-25 2007-02-20 Intel Corporation Context pipelines
US7149226B2 (en) * 2002-02-01 2006-12-12 Intel Corporation Processing data packets
US7930704B2 (en) * 2002-02-06 2011-04-19 Oracle International Corporation J2EE component extension architecture
US9167036B2 (en) 2002-02-14 2015-10-20 Level 3 Communications, Llc Managed object replication and delivery
CA2372092C (en) * 2002-02-15 2010-04-06 Cognos Incorporated A queuing model for a plurality of servers
US8135843B2 (en) * 2002-03-22 2012-03-13 Citrix Systems, Inc. Methods and systems for providing access to an application
US7228353B1 (en) * 2002-03-28 2007-06-05 Emc Corporation Generating and launching remote method invocation servers for individual client applications
US7350149B1 (en) * 2002-03-28 2008-03-25 Emc Corporation Backup reporting framework graphical user interface
US7404145B1 (en) 2002-03-28 2008-07-22 Emc Corporation Generic mechanism for reporting on backups
US7571221B2 (en) * 2002-04-03 2009-08-04 Hewlett-Packard Development Company, L.P. Installation of network services in an embedded network server
US8819252B1 (en) 2002-05-03 2014-08-26 Foundry Networks, Llc Transaction rate limiting
US8554929B1 (en) * 2002-05-03 2013-10-08 Foundry Networks, Llc Connection rate limiting for server load balancing and transparent cache switching
US7707295B1 (en) * 2002-05-03 2010-04-27 Foundry Networks, Inc. Connection rate limiting
US7269752B2 (en) * 2002-06-04 2007-09-11 Lucent Technologies Inc. Dynamically controlling power consumption within a network node
TW561740B (en) * 2002-06-06 2003-11-11 Via Tech Inc Network connecting device and data packet transferring method
US7471688B2 (en) 2002-06-18 2008-12-30 Intel Corporation Scheduling system for transmission of cells to ATM virtual circuits and DSL ports
US7165103B2 (en) * 2002-06-26 2007-01-16 Microsoft Corporation Method and system for matching network clients and servers under matching constraints
US7747730B1 (en) 2002-06-28 2010-06-29 Netfuel, Inc. Managing computer network resources
US8020162B2 (en) * 2002-07-19 2011-09-13 International Business Machines Corporation Employing a resource broker in managing workloads of a peer-to-peer computing environment
US7506342B2 (en) * 2002-07-23 2009-03-17 Bea Systems, Inc. System and method for implementing J2EE connector architecture
AU2003246497A1 (en) * 2002-07-25 2004-02-16 James D. Yee System and method for providing computer services
US7698434B2 (en) * 2002-08-29 2010-04-13 Bea Systems, Inc. J2EE connector architecture
US7352769B2 (en) 2002-09-12 2008-04-01 Intel Corporation Multiple calendar schedule reservation structure and method
US7433307B2 (en) 2002-11-05 2008-10-07 Intel Corporation Flow control in a network environment
US6941438B2 (en) * 2003-01-10 2005-09-06 Intel Corporation Memory interleaving
US7443836B2 (en) 2003-06-16 2008-10-28 Intel Corporation Processing a data packet
DE10345535B4 (de) * 2003-09-30 2005-10-06 Siemens Ag Überprüfung der Verfügbarkeit eines Servers
US7363369B2 (en) * 2003-10-16 2008-04-22 International Business Machines Corporation Monitoring thread usage to dynamically control a thread pool
US8726278B1 (en) * 2004-07-21 2014-05-13 The Mathworks, Inc. Methods and system for registering callbacks and distributing tasks to technical computing works
US7213099B2 (en) * 2003-12-30 2007-05-01 Intel Corporation Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches
JP4297792B2 (ja) * 2004-01-08 2009-07-15 株式会社リコー Webサーバ組み込みビジネス機器
CA2491274A1 (en) * 2004-01-08 2005-07-08 Lpi Level Platforms, Inc. A method and system for secure remote access to computer systems and networks
US7792874B1 (en) 2004-01-30 2010-09-07 Oracle America, Inc. Dynamic provisioning for filtering and consolidating events
US7739418B2 (en) * 2004-04-12 2010-06-15 Hewlett-Packard Development Company, L.P. Resource management system
US7689998B1 (en) * 2004-07-13 2010-03-30 Microsoft Corporation Systems and methods that manage processing resources
US7908313B2 (en) * 2004-07-21 2011-03-15 The Mathworks, Inc. Instrument-based distributed computing systems
US7502824B2 (en) * 2004-08-12 2009-03-10 Oracle International Corporation Database shutdown with session migration
US7415470B2 (en) * 2004-08-12 2008-08-19 Oracle International Corporation Capturing and re-creating the state of a queue when migrating a session
DE102004062116B3 (de) * 2004-12-23 2006-05-11 Ab Skf Lageranordnung für einen Computertomographen
US9176772B2 (en) * 2005-02-11 2015-11-03 Oracle International Corporation Suspending and resuming of sessions
US9183347B1 (en) * 2005-02-17 2015-11-10 The Mathworks, Inc. Methods and system for simulation of chemical and biological processes in a distributed technical computing environment
JP2006293885A (ja) * 2005-04-14 2006-10-26 I Broadcast:Kk 情報配信システムと方法およびプログラム
JP5011927B2 (ja) * 2006-10-02 2012-08-29 セイコーエプソン株式会社 アプリケーション実行システム、コンピュータ、アプリケーション実行システムのアプリケーション実行方法およびプログラム
US8738703B2 (en) 2006-10-17 2014-05-27 Citrix Systems, Inc. Systems and methods for providing online collaborative support
US7934027B2 (en) * 2007-01-19 2011-04-26 Hewlett-Packard Development Company, L.P. Critical resource management
US8125796B2 (en) 2007-11-21 2012-02-28 Frampton E. Ellis Devices with faraday cages and internal flexibility sipes
US7441135B1 (en) 2008-01-14 2008-10-21 International Business Machines Corporation Adaptive dynamic buffering system for power management in server clusters
US8031713B2 (en) * 2008-01-29 2011-10-04 International Business Machines Corporation General multi-link interface for networking environments
US10924573B2 (en) 2008-04-04 2021-02-16 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
CN102047244B (zh) 2008-04-04 2013-02-27 第三雷沃通讯有限责任公司 在内容分发网络(cdn)中处理长尾内容
US9762692B2 (en) 2008-04-04 2017-09-12 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
WO2010065796A1 (en) * 2008-12-03 2010-06-10 Mobophiles, Inc. System and method for providing virtual web access
US8949842B2 (en) * 2008-12-31 2015-02-03 AT&T Intellectual I, L.P. Method and apparatus for locating load-balanced facilities
US8886787B2 (en) * 2009-02-26 2014-11-11 Microsoft Corporation Notification for a set of sessions using a single call issued from a connection pool
US8549038B2 (en) 2009-06-15 2013-10-01 Oracle International Corporation Pluggable session context
US9021510B2 (en) 2009-12-04 2015-04-28 International Business Machines Corporation Remote procedure call (RPC) bind service with physical interface query and selection
US8266639B2 (en) * 2009-12-04 2012-09-11 International Business Machines Corporation Remote procedure call (RPC) bind service with physical interface query and selection
US8429735B2 (en) 2010-01-26 2013-04-23 Frampton E. Ellis Method of using one or more secure private networks to actively configure the hardware of a computer or microchip
US8516284B2 (en) 2010-11-04 2013-08-20 International Business Machines Corporation Saving power by placing inactive computing devices in optimized configuration corresponding to a specific constraint
US10067547B2 (en) * 2012-06-28 2018-09-04 Intel Corporation Power management control of remote servers
US10666574B2 (en) * 2015-09-28 2020-05-26 Amazon Technologies, Inc. Distributed stream-based database triggers
US10387387B2 (en) 2015-12-17 2019-08-20 Oracle International Corporation Enabling multi-tenant access to respective isolated data sets organized using different application schemas
US10289617B2 (en) 2015-12-17 2019-05-14 Oracle International Corporation Accessing on-premise and off-premise datastores that are organized using different application schemas
US10303894B2 (en) 2016-08-31 2019-05-28 Oracle International Corporation Fine-grained access control for data manipulation language (DML) operations on relational data
CN110134698A (zh) * 2019-04-15 2019-08-16 平安普惠企业管理有限公司 数据管理方法及相关产品
CN113946430B (zh) * 2021-12-20 2022-05-06 北京并行科技股份有限公司 一种作业调度方法、计算设备及存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3854323T2 (de) * 1987-11-26 1996-03-14 Hitachi Ltd Jobsteuerung für Online-System.
US5062037A (en) * 1988-10-24 1991-10-29 Ibm Corp. Method to provide concurrent execution of distributed application programs by a host computer and an intelligent work station on an sna network
JP2967999B2 (ja) * 1989-07-06 1999-10-25 富士通株式会社 プロセスの実行多重度制御処理装置
US5339392A (en) * 1989-07-27 1994-08-16 Risberg Jeffrey S Apparatus and method for creation of a user definable video displayed document showing changes in real time data
EP0473913A3 (en) * 1990-09-04 1992-12-16 International Business Machines Corporation Method and apparatus for providing a service pool of virtual machines for a plurality of vm users
US5249290A (en) * 1991-02-22 1993-09-28 At&T Bell Laboratories Method of and apparatus for operating a client/server computer network
US5329619A (en) * 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments
JPH076043A (ja) * 1993-03-05 1995-01-10 Mitsubishi Electric Corp マルチスレッド・サーバ
JP2508589B2 (ja) * 1993-05-25 1996-06-19 日本電気株式会社 サ―バ運用方式
JPH06332834A (ja) * 1993-05-25 1994-12-02 Hitachi Ltd リモートプロシジャコール方法
US5553242A (en) * 1993-11-03 1996-09-03 Wang Laboratories, Inc. Client/server connection sharing
EP0694837A1 (de) * 1994-07-25 1996-01-31 International Business Machines Corporation Dynamischer Arbeitsbelastungsausgleich
US5581552A (en) * 1995-05-23 1996-12-03 At&T Multimedia server
US5603029A (en) * 1995-06-07 1997-02-11 International Business Machines Corporation System of assigning work requests based on classifying into an eligible class where the criteria is goal oriented and capacity information is available

Also Published As

Publication number Publication date
EP0794491A2 (de) 1997-09-10
JPH09319600A (ja) 1997-12-12
KR100237984B1 (ko) 2000-01-15
US5761507A (en) 1998-06-02
JP3364575B2 (ja) 2003-01-08
KR970068309A (ko) 1997-10-13
EP0794491A3 (de) 1999-01-13
DE69728601D1 (de) 2004-05-19
EP0794491B1 (de) 2004-04-14

Similar Documents

Publication Publication Date Title
DE69728601T2 (de) Client-Server-Architektur mit nebenläufigen Servern
DE69814900T2 (de) Verfahren und system zur unterstützung verteilter software- entwicklung ohne bewusstsein der verteilten charakteristik der software
DE69534411T2 (de) Offenes Transaktionverwaltungszugriffsystem und Verfahren
DE69628631T2 (de) Dateneingangs/-ausgangsvorrichtung durch Referenzierung zwischen zentralen Verarbeitungseinheiten und Ein-/Ausgabevorrichtungen
DE69724877T2 (de) Verfahren und Vorrichtung zum Betrieb einer Aggregation von Serverrechnern mittels eines Doppelzweck-Proxy-Servers
DE602005003142T2 (de) Vorrichtung und verfahren zur unterstützung von verbindungsherstellung in einem offload der netzwerkprotokollverarbeitung
DE60103088T2 (de) Verfahren zur Herstellung von Weiterleitungslisten für Netzwerkgruppe
DE69916928T2 (de) Zugriffsverfahren und Server für Netzwerkverzeichnis
DE112008001682B4 (de) Speicherbereichsnetzwerk mit Erkennung auf der Zielseite und dem Hochladen einer Routing- Tabelle
DE10196732B4 (de) Verfahren, Speichermedium und System zur Verteilung von Software an prozessorbasierte Systeme
DE60317925T2 (de) Steuerung von netzwerkverkehr in einer peer-to-peer umgebung
DE60100671T2 (de) Verfahren zum Verteilen von Diensten und Verfahren zum Konfigurieren von einem Netzelementen in einem Kommunikationsnetzwerk
DE69829346T2 (de) Ein-/Ausgabevorrichtung für ein Peripheriegerät
DE69837872T2 (de) Vorrichtung und Verfahren zur Verbindungsvermittlung und -steuerung
DE602005004047T2 (de) Methode zur Zuordnung von Adressen zu einer Vielzahl von Geräten in einem Netzwerk und entsprechendes System
DE112008002439T5 (de) Architektur und Protokoll für die erweiterbare und skalierbare Kommunikation
DE69628798T2 (de) Verfahren zur Übertragung von Multimediadaten
DE10205108A1 (de) System und Verfahren zum Zugreifen auf Softwarekomponenten in einer verteilten Netzwerkumgebung
DE112005001995B4 (de) Computeranordnung und Verfahren zum Anbieten von Diensten für Benutzer über ein Netzwerk
DE602004007879T2 (de) Dienstbereitstellungssystem
DE102018129809A1 (de) Verteilerknoten, Automatisierungsnetzwerk und Verfahren zum Übertragen von Telegrammen
EP1049013A2 (de) Interprozesskommunikationssystem
DE69833124T2 (de) Adaptives prozessorsystem
DE602005000715T2 (de) System und Verfahren zur Auswahl einer aktiven Verbindung
DE60214688T2 (de) Verfahren zur aktualisierung von programmen in einem netzwerkserver mit zugehörigem system und softwareprodukt

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7