-
Allgemeiner Stand der Technik
-
Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft eine systemübergreifende Kopplung und betrifft
insbesondere die Entlastung (Offload) von Rechenaufgaben (Rechen-Tasks)
von einem Datenprozessor oder Verarbeitungssystem auf einen anderen
Datenprozessor bzw. ein anderes Verarbeitungssystem.
-
Beschreibung der verwandten
Technik
-
Wie
auf diesem Gebiet bekannt, werden spezielle Entlastungsprozessoren
(Offload-Prozessoren) verwendet, um bestimmte Rechenaufgaben wirksamer
auszuführen
als ein universeller Prozessor oder ein universelles Verarbeitungssystem.
Derartige Prozessoren wurden als Coprozessoren umgesetzt, die mit
einem universellen Prozessor verbunden sind, was das Verarbeitungsvermögen dieses
Prozessors erhöht,
um spezialisierte Operationen, wie etwa Gleitkomma-, Vektor- oder
kryptographische Verarbeitung, auszuführen. Alternativ können die
Entlastungsprozessoren (Offload-Prozessoren) als gleichrangige Elemente
der universellen Prozessoren in einem Multiprozessorsystem umgesetzt
werden, mit der Möglichkeit,
spezialisierte Aufgaben (Tasks) gleichzeitig mit anderen Aufgaben
(Tasks) auszuführen,
die auf den universellen Prozessoren ablaufen. Ein derartiges Beispiel
waren die zAAP- und zIIP-Prozessorarten bei einem Großrechnersystem
mit z-Architektur, die unter der Kontrolle des z/OS-Betriebssystems laufen,
jedoch auf bestimmte Aufgabenarten beschränkt sind, wie etwa Java-Applets und
Datenbankabfragen.
-
Bei
einer herkömmlichen
Entlastungsprozessorgestaltung (Offload-Prozessorgestaltung) laufen die universellen
und die Entlastungsprozessoren (Offload-Prozessoren) alle innerhalb
des gleichen Datenverarbeitungssystems, wie es von der gleichen globalen
Architektur definiert wird, und unter der Kontrolle des gleichen
Verwaltungsprogramms. Eine derartige eng verkoppelte Gestaltung
neigt dazu, die Kommunikationslatenz zu minimieren, beschränkt jedoch
auch die Flexibilität
und erhöht
die Kosten, da es ihr nicht gelingt, die vielen verschiedenen Computersysteme
mit unterschiedlichen Architekturen und Preisklassen, die auf dem
heutigen Markt erhältlich sind,
auszunutzen.
-
Kurzdarstellung der Erfindung
-
Aus
der vorstehenden Diskussion sollte ersichtlich sein, dass ein Bedarf
besteht für
ein Gerät, ein
System und ein Verfahren, welche die Verarbeitung von Rechenaufgaben
(Rechen-Tasks) von einem Datenprozessor oder Verarbeitungssystem
auf einen anderen Datenprozessor bzw. ein anderes Verarbeitungssystem
einer gegebenenfalls unterschiedlichen Architektur nahtlos entlastet.
Vorteilhafterweise würden
ein derartiges Gerät,
System und Verfahren die Flexibilität und Kostenwirksamkeit einer
systemübergreifenden
Kopplung aufweisen und dabei die Transparenz und hohe Effizienz
von eng gekoppelten Entlastungsprozessoren (Offload-Prozessoren)
erreichen.
-
Die
vorliegende Erfindung als Antwort auf den derzeitigen Stand der
Technik wurde entwickelt und insbesondere als Antwort auf die Probleme
und Bedürfnisse
auf diesem Gebiet, die von derzeit verfügbaren Entlastungsprozessoren
(Offload-Prozessoren) noch nicht vollständig gelöst wurden. Entsprechend wurde
die vorliegende Erfindung entwickelt, um ein Gerät, System und Verfahren zum
Entlasten (Offload) der Verarbeitung von einem Datenverarbeitungssystem
auf ein anderes Datenverarbeitungssystem einer gegebenenfalls unterschiedlichen
Architektur bereitzustellen, die viele oder alle der oben besprochenen
Mängel
auf diesem Gebiet beheben.
-
Jedes
Datenverarbeitungssystem kann ein Softwarepaket, das auf einem oder
mehreren Prozessoren läuft,
einen Speicher, E/A-(Ein-/Ausgabe-)Geräteschnittstellen und Netzwerkschnittstellen, die über einen
Bus angeschlossen werden, umfassen. Die Datenverarbeitungssysteme
können
auch aus separaten logischen oder physikalischen Partitionen eines
größeren Datenverarbeitungssystems bestehen,
wobei einige oder alle der zuvor erwähnten Systembestandteile für eine spezifische
Partition dediziert sind oder von mehreren Partitionen auf virtuelle
Art und Weise gemeinsam genutzt werden.
-
Die
zu entlastende Aufgabe (Offload-Task) wird auf einem ersten Datenverarbeitungssystem
beherbergt (gehostet) und erweitert ihre Dienste auf ein zweites
Datenverarbeitungssystem über
eine Proxy-Vorrichtung, die auf dem zweiten System beherbergt (gehostet)
wird. Die Aufgabe (Task) und ihre Proxy-Vorrichtung sind jeweils
für grundlegende
Betriebssystemdienste, wie etwa das Austeilen von Prozessorressourcen,
die Speicherverwaltung, Zugriff auf E/A-Geräte und Einrichtungen zur Kommunikation
mit dem anderen System, auf ihren jeweiligen lokalen Host angewiesen.
-
Auf
Anwendungsebene trägt
die Entlastungsaufgabe (Offload-Task) die Hauptverantwortung für die internen
Funktionen der Anwendung und die Proxy-Aufgabe (Offload-Task) trägt die Hauptverantwortung
für die
externe Kommunikation mit anderen zusammenhängenden Aufgaben (Tasks) auf
dem zweiten System. Die Entlastungsaufgabe (Offload-Task) und ihre
Proxy-Vorrichtung stehen miteinander in Verbindung auf eine Art
und Weise, die für die
Bedürfnisse
der Anwendung spezifisch ist, wobei sie praktisch als Coroutinen
funktionieren, die eine einzige logische Aufgabe (Task) umfassen.
-
Je
effizienter die zugrunde liegenden Einrichtungen für die systemübergreifende
Kommunikation sind, umso mehr kann sich die Effizienz des Gesamtmechanismus
derjenigen der eng gekoppelten Entlastungsmechanismen (Offload-Mechanismen) nach dem
Stand der Technik nähern,
jedoch ohne die zusätzlichen
Kosten und die mangelnde Flexibilität, die mit derartigen speziellen
Mechanismen einhergehen.
-
Es
ist zu beachten, dass die Rolle des ersten und zweiten Datenverarbeitungssystems
aufgabenabhängig
(taskabhängig)
ist. Ein System kann als Entlastungssystem (Offloadsystem) für eine Aufgabe (Task)
dienen und gleichzeitig als Proxy-System für eine andere Aufgabe (Task)
dienen.
-
Das
Gerät zum
Entlasten einer Datenverarbeitung ist mit einer Vielzahl von Modulen
versehen, die konfiguriert sind, um funktionsmäßig die notwendigen Schritte
der externen Kommunikation, des Delegierens interner Funktionen
und des Meldens der Fertigstellung auszuführen. Diese Module in den beschriebenen
Ausführungsformen
umfassen die Proxy-Aufgabe (Proxy-Task) und die Entlastungsaufgabe
(Offload-Task).
-
Bei
einer Ausführungsform
ist das Gerät
konfiguriert, um je nach Bedarf Argumente abzubilden und auf Ein-
und Ausgangsdaten zuzugreifen und diese zu formatieren. Der Zugriff
auf die Daten kann einen physikalischen Anschluss an die geeignete Speicherungsvorrichtung,
die physikalische Anordnung der Daten und das geeignete Dateiverwaltungssystem
oder Zugriffsverfahren, das die logische Anordnung der Daten vorschreibt,
umfassen. Das Formatieren kann das Übersetzen der Daten in ein verständliches
Format umfassen.
-
Es
wird auch ein System der vorliegenden Erfindung vorgestellt, um
eine Datenverarbeitung zu entlasten. Das System kann ausgebildet
sein, um ein erstes und ein zweites Datenverarbeitungssystem, einen
Kommunikationsmechanismus, die Entlastungsaufgabe (Offload-Task)
und die Proxy-Aufgabe (Proxy-Task) und ein Speicherungssystem, um
die Ein- und Ausgangsdaten zu speichern, zu umfassen. Insbesondere
umfasst das System bei einer Ausführungsform ein Netzwerk als
Teil des Kommunikationsmechanismus.
-
Das
System kann ferner eine gemeinsam genutzte Speicherung zwischen
den ersten und zweiten Datenverarbeitungssystemen umfassen. Einige
oder alle Speicherungssysteme können
auf diese Art und Weise gemeinsam genutzt werden.
-
Bei
einer Ausführungsform
ist das System ferner konfiguriert, um auf Daten einzuwirken, die
bereits im Speicher abgelegt sind. In einem derartigen Fall ist
der Einbezug des Speicherungssystems nicht erforderlich. Bei einer
weiteren Ausführungsform kann
das System konfiguriert sein, um einige oder alle Daten in einem
gemeinsam genutzten Speicher zu enthalten, der direkt sowohl für das erste
als auch für
das zweite Datenverarbeitungssystem zugänglich ist.
-
Die
ersten und zweiten Datenverarbeitungssysteme können erste und gegebenenfalls
unterschiedliche zweite Hardware-Plattformen, Firmware und Betriebssysteme
umfassen. Z. B. können
die Betriebssysteme OS/390, z/OS, Windows, Unix und Linux umfassen.
-
Es
wird auch ein Verfahren der vorliegenden Erfindung zur Entlastung
einer Datenverarbeitung vorgestellt. Das Verfahren bei den offenbarten
Ausführungsformen
umfasst im Wesentlichen die Schritte, die notwendig sind, um die
Funktionen auszuführen,
die oben mit Bezug auf den Betrieb des beschriebenen Geräts und Systems
vorgestellt wurden. Bei einer Ausführungsform umfasst das Verfahren das
Empfangen einer Anfrage zum Starten einer Entlastungsaufgabe (Offload-Task)
von einer Proxy-Aufgabe (Proxy-Task), das Abbilden der Anfrage auf eine
Form, die für
das erste Datenverarbeitungssystem verständlich ist, das Ausführen der
internen Funktionalität
durch die Entlastungsaufgabe (Offload-Task) und das Melden der Fertigstellung
der Entlastungsaufgabe an die Proxy-Aufgabe (Proxy-Task).
-
Bei
einer weiteren Ausführungsform
kann das Verfahren auch das entweder direkte oder indirekte Lesen
und Schreiben von Daten umfassen, je nachdem, ob das erste Datenverarbeitungssystem Zugriff
auf Daten des zweiten Datenverarbeitungssystems hat. Der Zugriff
auf die Daten kann einen physikalischen Anschluss an die geeignete
Speicherungsvorrichtung, die physikalische Anordnung der Daten,
das geeignete Zugriffsverfahren, das die logische Anordnung der
Daten vorschreibt, und die Übersetzung
der Daten in ein verständliches
Format umfassen. Jeder der Schritt des Verfahrens kann ein oder
mehrmals als Reaktion auf einen einzelnen Aufruf der Proxy-Aufgabe
(Proxy-Task) ausgeführt
werden.
-
In
der gesamten vorliegenden Beschreibung setzt die Bezugnahme auf
Merkmale, Vorteile oder ähnliche
Ausdrücke
nicht voraus, dass alle Merkmale und Vorteile, die mit der vorliegenden
Erfindung durchgeführt
werden können,
in einer einzigen Ausführungsform
der Erfindung vorliegen sollten oder vorliegen. Vielmehr sind Ausdrücke, die
sich auf die Merkmale und Vorteile beziehen, derart zu verstehen,
dass sie ein spezifisches Merkmal, einen spezifischen Vorteil oder
ein spezifisches Kennzeichen bedeuten, das bzw. der in Verbindung
mit einer Ausführungsform
beschrieben wird, in mindestens einer Ausführungsform der vorliegenden
Erfindung enthalten ist. Somit können
sich die Erörterung
der Merkmale und Vorteile und ähnliche
Ausdrücke
in der gesamten vorliegenden Beschreibung auf die gleiche Ausführungsform
beziehen, was aber nicht unbedingt der Fall ist.
-
Ferner
können
die beschriebenen Merkmale, Vorteile und Kennzeichen der Erfindung
in einer beliebigen Art in einer oder mehreren Ausführungsformen
kombiniert werden. Der Fachmann auf diesem Gebiet wird erkennen,
dass die Erfindung ohne eines oder mehrere der spezifischen Merkmale
oder einen oder mehrere der spezifischen Vorteile einer besonderen
Ausführungsform
in die Praxis umgesetzt werden kann. In anderen Fällen können zusätzliche Merkmale
und Vorteile bei bestimmten Ausführungsformen
erkannt werden, die vielleicht nicht bei allen Ausführungsformen
der Erfindung vorliegen.
-
Diese
Merkmale und Vorteile der vorliegenden Erfindung werden aus der
nachstehenden Beschreibung und den beiliegenden Ansprüchen weiter hervorgehen
oder können
aus der Umsetzung der Erfindung in die Praxis, wie nachstehend dargelegt,
erlernt werden.
-
Kurze Beschreibung der Zeichnungen
-
Damit
die Vorteile der Erfindung mühelos verständlich werden,
wird eine ausführlichere
Beschreibung der oben kurz umrissenen Erfindung mit Bezug auf spezifische
Ausführungsformen,
die in den beiliegenden Zeichnungen abgebildet sind, gegeben. Mit
dem Verständnis,
dass diese Zeichnungen nur typische Ausführungsformen der Erfindung
abbilden und daher nicht als ihren Umfang einschränkend anzusehen
sind, wird die Erfindung mit zusätzlicher Spezifizität und zusätzlichem
Detail durch die Verwendung der beiliegenden Zeichnungen beschrieben und
erläutert.
Es zeigen:
-
1 ein
schematisches Blockdiagramm, das eine mögliche Computer-Hardware-Plattform
abbildet, auf der die vorliegende Erfindung mindestens teilweise
eingerichtet werden kann.
-
2 ein
schematisches Blockdiagramm eines möglichen Computers, der ein
Softwarepaket umfasst, in dem die vorliegende Erfindung mindestens
teilweise vorliegen kann.
-
3 ein
schematisches Blockdiagramm von zwei Computer, die gemäß der vorliegenden
Erfindung funktionieren.
-
4 ein schematisches Blockdiagramm einer
möglichen
Hardware-Konfiguration
mehrerer Datenverarbeitungssysteme, um die vorliegende Erfindung
durchzuführen.
-
5 ein
schematisches Flussdiagramm, das eine Ausführungsform eines Verfahrens
zum Starten einer Entlastungsaufgabe (Offload-Task) von einer Proxy-Aufgabe
(Proxy-Task) gemäß der vorliegenden
Erfindung abbildet.
-
6 ein
schematisches Flussdiagramm, das eine Ausführungsform eines Verfahrens
für eine Entlastungsaufgabe
(Offload-Task) gemäß der vorliegenden
Erfindung abbildet.
-
7 ein
schematisches Flussdiagramm, das eine Ausführungsform eines Verfahrens
zum Abfangen von Ergebnissen einer Entlastungsaufgabe (Offload-Task)
durch eine Proxy-Aufgabe (Proxy-Task) gemäß der vorliegenden Erfindung
abbildet.
-
Ausführliche Beschreibung der Erfindung
-
Viele
der in dieser Beschreibung beschriebenen Funktionseinheiten wurden
als Module bezeichnet, um ihre Umsetzungsunabhängigkeit ganz besonders hervorzuheben.
Ein Modul kann z. B. als eine Hardware-Schaltung umgesetzt werden,
die benutzerdefinierte VLSI-Schaltungen oder Gate-Arrays, handelsübliche Halbleiter,
wie etwa Logikchips, Transistoren oder andere diskrete Bauteile,
umfasst. Ein Modul kann auch in programmierbaren Hardware-Vorrichtungen,
wie etwa frei programmierbaren Gate-Arrays, programmierbaren Logikbausteinen, programmierbaren
logischen Vorrichtungen oder dergleichen, umgesetzt werden.
-
Module
können
auch in Software zur Ausführung
durch diverse Prozessorarten umgesetzt werden. Ein identifiziertes
Modul von ausführbarem Code
kann z. B. einen oder mehrere physikalische oder logische Blöcke von
Computeranweisungen umfassen, die beispielsweise als Objekt, Arbeitsablauf
oder Funktion organisiert sein können.
Dennoch müssen
die ausführbaren
Elemente eines identifizierten Moduls nicht physikalisch zusammenliegen,
sondern können
disparate Anweisungen umfassen, die an verschiedenen Stellen gespeichert
sind, die, wenn sie logisch zusammengefügt werden, das Modul bilden
und den angegebenen Zweck für
das Modul erfüllen.
-
In
der Tat kann ein Modul von ausführbarem Code
einer einzigen Anweisung oder vielen Anweisungen entsprechen oder
kann sogar über
mehrere verschiedene Codesegmente, über verschiedene Programme
und über
mehrere Speichervorrichtungen verteilt sein. Ähnlich können Betriebsdaten hier innerhalb
von Modulen identifiziert und abgebildet werden und können in
einer beliebigen geeigneten Form ausgebildet sein und innerhalb
einer beliebigen geeigneten Art von Datenstruktur organisiert sein. Die
Betriebsdaten können
als einzelner Datensatz zusammengefasst sein oder können über verschiedene
Standorte verteilt sein, einschließlich über verschiedene Speicherungsvorrichtungen,
und können mindestens
teilweise einfach als elektronische Signale auf einem System oder
Netzwerk vorliegen. Wenn ein Modul oder Teile eines Moduls als Software umgesetzt
wird bzw. werden, werden die Softwareteile auf einem oder mehreren
computerlesbaren Datenträgern
gespeichert.
-
Eine
Bezugnahme in der gesamten vorliegenden Beschreibung auf ”eine Ausführungsform” oder ähnliche
Ausdrücke
bedeuten, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder
ein bestimmtes Kennzeichen, das bzw. die in Verbindung mit der Ausführungsform
beschrieben wird, in mindestens einer Ausführungsform der vorliegenden
Erfindung enthalten ist. Somit können
sich Erscheinungen der Redewendungen ”bei einer Ausführungsform” und ähnliche
Ausdrücke
in der gesamten vorliegenden Beschreibung alle auf die gleiche Ausführungsform
beziehen, was aber nicht unbedingt der Fall ist.
-
Eine
Bezugnahme auf einen computerlesbaren Datenträger kann eine beliebige Form
annehmen, die in der Lage ist, maschinenlesbare Anweisungen auf
einem digitalen Verarbeitungsgerät
zu speichern. Ein computerlesbarer Datenträger kann in einer Übertragungsleitung,
einer Kompaktplatte, einer digitalen Videoplatte, einem Magnetband,
einem Bernoulli-Laufwerk, einer Magnetplatte, einer Lochkarte, einem
Flash-Speicher, integrierten Schaltungen oder einer anderen Speichervorrichtung
eines digitalen Verarbeitungsgeräts
ausgebildet sein.
-
Ferner
können
die beschriebenen Merkmale, Strukturen oder Kennzeichen der Erfindung
in einer beliebigen geeigneten Art in einer oder mehreren Ausführungsformen
kombiniert werden. In der nachstehenden Beschreibung werden zahlreiche
spezifische Einzelheiten bereitgestellt, wie etwa Programmierbeispiele,
Softwaremodule, Benutzerauswahlen, Netzwerktransaktionen, Datenbankabfragen,
Datenbankstrukturen, Hardware-Module, Hardware-Schaltungen, Hardware-Chips,
usw., um ein umfassendes Verständnis
der Ausführungsformen
der Erfindung bereitzustellen. Der Fachmann auf diesem Gebiet wird
jedoch erkennen, dass die Erfindung ohne eine oder mehrere der spezifischen
Einzelheiten oder mit anderen Verfahren, Bauteilen, Materialien
und so weiter in die Praxis umgesetzt werden kann. In anderen Fällen werden
hinlänglich
bekannte Strukturen, Materialien oder Vorgänge nicht gezeigt oder ausführlich beschrieben,
um eine Verschleierung der Gesichtspunkte der Erfindung zu vermeiden.
-
Die
nachstehenden schematischen Flussdiagramme werden im Allgemeinen
als logische Flussdiagramme dargelegt. Somit geben die abgebildete Reihenfolge
und die bezeichneten Schritte eine Ausführungsform des vorgestellten
Verfahrens an. Es können
andere Schritte und Verfahren erdacht werden, deren Funktion, Logik
oder Auswirkung mit einem oder mehreren Schritten, oder Teilen davon,
des abgebildeten Verfahrens gleichwertig sind. Zudem werden das
verwendete Format und die verwendeten Symbole bereitgestellt, um
die logischen Schritte des Verfahrens zu erläutern, und sind nicht dazu
gedacht, den Umfang des Verfahrens einzuschränken. Obwohl diverse Pfeilarten
und Stricharten in den Flussdiagrammen verwendet werden können, versteht
es sich, dass diese den Umfang des entsprechenden Verfahrens nicht
einschränken.
Einige Pfeile oder andere Verbindungselemente können nämlich verwendet werden, um
nur den logischen Ablauf des Verfahrens anzugeben. Ein Pfeil kann
z. B. einen Warte- oder Überwachungszeitraum
unbestimmter Dauer zwischen den aufgezählten Schritten des abgebildeten
Verfahrens angeben. Zudem kann die Reihenfolge, in der ein bestimmtes
Verfahren erfolgt, der Reihenfolge der entsprechenden gezeigten
Schritte streng folgen oder nicht.
-
1 bildet
eine mögliche
Computer-Hardware-Plattform 100 ab, auf der die vorliegende
Erfindung mindestens teilweise eingerichtet werden kann. Die Hardware-Plattform 100 kann
einen oder mehrere Prozessoren 102, einen Speicher 104,
eine Netzwerkschnittstelle 106 und eine E/A-(Ein-/Ausgabe-)Geräteschnittstelle 108,
die über
einen Bus 110 angeschlossen sind, umfassen.
-
Die
Hardware-Plattform 100 kann beliebige Abmessungen oder
eine beliebige Art aufweisen, zu denen ein integriertes System,
ein Palmtop, ein Notebook, ein PC, ein Minicomputer, ein Server,
ein Großrechner,
ein Supercomputer und dergleichen gehören.
-
Der
oder die Prozessoren 102 können in einer beliebigen Menge
vorliegen, einschließlich
als Einzelprozessor, und können
eine beliebige Befehlssatz-Architektur
aufweisen. Bei einer Ausführungsform
können
der oder die Prozessoren 102 eine oder mehrere Ebenen dedizierter
oder gemeinsam genutzter Zwischenspeicher aufweisen. Mögliche physikalische
Umsetzungen können
Prozessoren mit mehreren Chips, einzelnen Chips, mehreren Kernen, Hyperthreading
und dergleichen umfassen.
-
Der
Speicher 104 kann eine beliebige Größe oder Organisation aufweisen
und kann sowohl les-/schreibbare als auch schreibgeschützte Abschnitte
umfassen. Er kann auch sowohl globale als auch lokale Abschnitte
umfassen und kann sowohl einheitlichen als auch uneinheitlichen
Zugriff unterstützen.
Er kann speicherabgebildete E/A und direkten Speicherzugriff umfassen.
Er kann Zwischenspeicherkohärenz
unterstützen,
wozu verzeichnisbasierte und Snoop-basierte Protokolle gehören.
-
Die
Netzwerkschnittstelle 106 kann ein beliebiges Netzwerkprotokoll
oder eine beliebige Netzwerkarchitektur unterstützen. Sie kann sowohl kabellose
als auch verkabelte Netzwerkanschlüsse unterstützen. Sie kann Ethernet, Token
Ring, System Network Architecture (”SNA”) und dergleichen umfassen.
Bei einer Ausführungsform
kann sie mit der E/A-Geräteschnittstelle 108 integriert
sein.
-
Die
E/A-Geräteschnittstelle 108 kann
hauptsächlich
von dem oder den Prozessoren 102 angesteuert werden oder
kann ein unabhängiges
E/A-Prozessorteilsystem umfassen. Sie kann Peripheral Component
Interconnect (”PCP”), Small
Computer System Interface (”SCSI”), Fiberchannel
(”FC”), Enterprise
System Connection (”ESCON”), ESCON over
Fiberchannel (”FICON”) und dergleichen
umfassen. Bei einer Ausführungsform
kann sie dedizierte lokale E/A-Geräte umfassen.
-
Der
Bus 110 kann eine oder mehrere von verschiedenen physikalischen
und logischen Topologien umfassen. Er kann parallel oder seriell
sein. Er kann unidirektional oder bidirektional sein. Er kann flach
oder hierarchisch sein. Er kann eine vollständige oder Teilkreuzschiene
umfassen. Er kann mehrere Busbrücken
umfassen. Bei einer Ausführungsform kann
der Bus 110 ein schnelles internes Netzwerk umfassen.
-
2 ist
ein Diagramm eines möglichen Computers 200,
der ein Softwarepaket umfasst, in dem die vorliegende Erfindung
mindestens teilweise vorliegen kann. Das Softwarepaket kann eine
oder mehrere Aufgaben (Tasks) 202 umfassen, die auf einem
Betriebssystem 204 beherbergt bzw. gehostet sind, das durch
eine Firmware 206 aktiviert wird, die auf einer Hardware-Plattform 100 läuft, für welche
die Konfiguration in 1 repräsentativ ist.
-
Die
Aufgabe(n) (Tasks) 202 kann bzw. können Aufgaben (Tasks) sowohl
auf Benutzer- als auch auf Systemebene umfassen. Sie können interaktiv oder
als Stapel vorliegen. Sie können
im Vordergrund oder im Hintergrund ablaufen. Eine oder mehrere Aufgaben 202 auf
Benutzerebene können
Anwendungen, Programme, Arbeiten, Middleware und dergleichen umfassen.
Eine oder mehrere Aufgaben 202 auf Systemebene können Dienste,
Treiber, Hintergrundprogramme, Dienstprogramme und dergleichen umfassen.
-
Das
Betriebssystem 204 kann eine beliebige Art und Version
aufweisen und sich in einem beliebigen Zustand befinden. Zu den
Arten können
Unix, Linux, Windows, Mac, MVS, VMS und dergleichen gehören. Zu
den Versionen können
Windows XP, Windows Vista und dergleichen gehören. Zu den Zuständen können ein
Anpassungsgrad, ein Betriebsmodus, eine Systemvorbereitung für die Einrichtung
und dergleichen gehören.
Das Betriebssystem 204 kann für einen oder mehrere Benutzer
gedacht sein. Es kann eine oder mehrere Aufgaben ausführen. Bei
einer Ausführungsform
kann das Betriebssystem 204 ein Echtzeitbetriebssystem
sein. Bei einer Ausführungsform
kann das Betriebssystem 204 integriert sein.
-
Die
Firmware 206 kann Mikrocode umfassen, der in einem Mikrospeicher
des oder der Prozessoren 102 vorliegen kann. Bei einer
Ausführungsform kann
die Firmware 206 eine systemnahe Software sein, die in
dem Speicher 104 vorliegen kann. Bei einer Ausführungsform
kann die Firmware 206 ein rudimentäres Betriebssystem 204 umfassen.
Bei einer weiteren Ausführungsform
kann die Firmware 206 eine Virtualisierung unterstützen, um
den gleichzeitigen Betrieb von mehreren Betriebssystemen 204 auf einer
Hardware-Plattform 100 zu erlauben.
-
3 ist
ein schematisches Blockdiagramm von zwei Computer 200 mit
ihren jeweiligen Software-Paketen, die gemäß der vorliegenden Erfindung funktionieren.
Die ersten und zweiten Software-Pakete können jeweils eine oder mehrere
erste Aufgaben (Tasks) 302 und eine oder mehrere zweite
Aufgaben (Tasks) 304 umfassen, die sich anzahl- und funktionsmäßig unterscheiden
können
oder nicht, die jeweils von einem ersten Betriebssystem 310 und von
einem gegebenenfalls unterschiedlichen zweiten Betriebssystem 312 beherbergt
werden, die jeweils von einer ersten Firmware 314 und von
einer gegebenenfalls unterschiedlichen zweiten Firmware 316 aktiviert
werden und jeweils auf einer ersten Hardware-Plattform 318 und auf einer
gegebenenfalls unterschiedlichen zweiten Hardware-Plattform 320 ablaufen.
Die Hardware-Plattformen können
auch logische oder physikalische Partitionen einer oder mehrerer
größerer Hardware-Plattformen
sein.
-
Von
besonderer Bedeutung für
die vorliegende Erfindung sind die Entlastungsaufgabe (Offload-Task) 306 und
die Proxy-Aufgabe (Proxy-Task) 308. Diese Aufgaben (Tasks)
werden jeweils von den ersten und zweiten Software-Paketen beherbergt (gehostet),
die jeweils auf ersten und zweiten Hardware-Plattformen 318 und 320 ablaufen,
die nachstehend jeweils als ein erstes Datenverarbeitungssystem 300-1 und
ein zweites Datenverarbeitungssystem 300-2 bezeichnet werden.
Die Entlastungsaufgabe (Offload-Task) 306 und ihre entsprechende
Proxy-Aufgabe (Offload-Task) 308 sind
jeweils für
grundlegende Betriebssystemdienste, wie etwa das Austeilen von Prozessorressourcen,
die Speicherverwaltung, den Zugriff auf E/A-Geräte und Einrichtungen zum Kommunizieren
mit dem anderen System, auf ihren jeweiligen lokalen Host, das erste
Datenverarbeitungssystem 300-1 und das zweite Datenverarbeitungssystem 300-2,
angewiesen.
-
Die
Entlastungsaufgabe (Offload-Task) 306 auf dem ersten Datenverarbeitungssystem 300-1 erweitert
ihre Dienste auf das zweite Datenverarbeitungssystem 300-2 über die
Proxy-Aufgabe (Proxy-Task) 308. Auf Anwendungsebene (oder
auf Middleware- oder Treiberebene) trägt die Entlastungsaufgabe (Offload-Task) 306 die
Hauptverantwortung für die
internen Funktionen der Anwendung und die Proxy-Aufgabe (Proxy-Task) 308 trägt die Hauptverantwortung
für die
externe Kommunikation mit anderen zusammenhängenden zweiten Aufgaben 304 auf dem
zweiten Datenverarbeitungssystem 300-2. Die Entlastungsaufgabe
(Offload-Task) 306 und
ihre Proxy-Aufgabe (Proxy-Task) 308 stehen miteinander über einen
Kommunikationsmechanismus 322 in Verbindung auf eine Art
und Weise, die für
die Bedürfnisse
der Anwendung spezifisch ist, wobei sie praktisch als Coroutinen
funktionieren, die eine einzige logische Aufgabe umfassen.
-
4 ist ein schematisches Blockdiagramm einer
möglichen
Hardware-Konfiguration
aus mehreren Datenverarbeitungssystemen, um die vorliegende Erfindung
durchzuführen,
die mehrere mögliche Wege
für den
Kommunikationsmechanismus 322 in 3 abbildet.
Das erste Datenverarbeitungssystem 300-1 und das zweite
Datenverarbeitungssystem 300-2 können jeweils einen oder mehrere
erste Prozessoren 402 und einen oder mehrere zweite Prozessoren 404,
einen ersten Speicher 406 und einen zweiten Speicher 408,
eine erste Netzwerkschnittstelle 410 und eine zweite Netzwerkschnittstelle 412, eine
erste E/A-Geräteschnittstelle 414 und
eine zweite E/A-Geräteschnittstelle 416,
die über
einen ersten Bus 418 und einen zweiten Bus 420 verbunden
sind, umfassen.
-
Der
weiteste Kommunikationsweg mit der höchsten Latenz, der aber dennoch
nützlich
ist, würde über eine
gemeinsam genutzte Speicherungsvorrichtung 422 gehen, die
Anschlüsse
sowohl von der ersten E/A-Geräteschnittstelle 414 als
auch von der zweiten E/A-Geräteschnittstelle 416 unterstützt. Es gibt
eine Technologie, durch welche die gleiche Speicherungsvorrichtung
die E/S-Schnittstelle verschiedener Systemarchitektur-Protokolle
unterstützen kann,
wodurch sie es dem ersten Datenverarbeitungssystem 300-1 ermöglicht,
auf die Speicherdaten des zweiten Datenverarbeitungssystems 300-2 zuzugreifen,
und umgekehrt.
-
Ein
weniger weiter Kommunikationsweg mit geringerer Latenz würde über das
Netzwerk 424 gehen, das Anschlüsse sowohl von der ersten Netzwerkschnittelle 410 als
auch von der zweiten Netzwerkschnittstelle 412 unterstützt. Einige
Netzwerkprotokolle, wie etwa TCP/IP, ermöglichen den Austausch von Nachrichtenpaketen
mit Informationen zwischen den Systemen. Andere Protokolle, wie etwa
Infiniband, unterstützen
eine VIA-(”Virtual
Interface Architecture”),
Architektur, die eine direkte gemeinsame Nutzung des Speichers zwischen
einer oder mehreren ersten Aufgaben 302 und einer oder mehreren
zweiten Aufgaben 304 ermöglicht, und zwar unter Verwendung
eines RDMA-(”Remote
Direct Memory Access”)Zugriffs über ein
Netzwerk 424, um es dem ersten Datenverarbeitungssystem 300-1 zu
ermöglichen,
auf den zweiten Speicher 408 zuzugreifen, und es dem zweiten
Datenverarbeitungssystem 300-2 zu ermöglichen, auf den ersten Speicher 406 zuzugreifen.
-
Der
kürzeste
Kommunikationsweg mit der geringsten Latenz setzt die tatsächliche
gemeinsame Nutzung des Speichers zwischen den ersten und zweiten
Datenverarbeitungssystemen 300 voraus, wie durch die Überlagerung
des gemeinsam genutzten Speichers 426 zwischen dem ersten
Speicher 406 und dem zweiten Speicher 408 abgebildet
wird. Diese Art der gemeinsamen Speichernutzung erfordert, dass
die ersten und zweiten Datenverarbeitungssysteme 300 logische
oder physikalische Partitionen innerhalb des gleichen physikalischen
Datenverarbeitungssystems sind. Die gleichen Kommunikationsprotokolle,
wie sie in dem Netzwerk 424 verwendet werden, können auf
Speichergeschwindigkeit über
den gemeinsam genutzten Speicher 426 verwendet werden,
einschließlich
TCP/IP und Infiniband. Das letztgenannte Protokoll kann sich besonders
gut für
die Bedürfnisse
der vorliegenden Erfindung eignen, weil es der Entlastungsaufgabe
(Offload-Task) 306 und der Proxy-Aufgabe (Proxy-Task) 308 erlaubt,
zusammenzuwirken, als ob es sich tatsächlich um Coroutinen handeln
würde,
die aus dem gleichen Speicher auf dem gleichen physikalischen Datenverarbeitungssystem
ablaufen, so dass sie an die Effizienz der speziellen Entlastungsmechanismen
nach dem Stand der Technik herankommen.
-
Es
gibt vorhandene und jetzt aufkommende Technologie, die es einer
ersten Firmware 314 und einer zweiten Firmware 312 mit
unterschiedlichen Architekturen (z. B. PCMware von Platform Solutions, Inc.)
sowie einem oder mehreren ersten Prozessoren 402 und einem
oder mehreren zweiten Prozessoren 404 mit unterschiedlichen
Architekturen (z. B. Common System Interface von Intel Corporation)
ermöglicht,
gleichzeitig innerhalb des gleichen physikalischen, partitionierbaren
Datenverarbeitungssystems vorzuliegen. Ein derartiges hybrides System
kann eine besonders geeignete Aktivierungsplattform für die vorliegende
Erfindung bereitstellen.
-
5 ist
ein schematisches Flussdiagramm, das eine Ausführungsform eines Verfahrens 500 zum Starten
einer Entlastungsaufgabe (Offload-Task) 306 von einer Proxy-Aufgabe
(Proxy-Task) 308 aus gemäß der vorliegenden Erfindung abbildet.
Das Verfahren 500 beginnt 502, wenn eine Anfrage
einer Proxy-Aufgabe
(Proxy-Task) auf dem zweiten Datenverarbeitungssystem 300-2 empfangen 504 wird.
Die Anfrage wird auf eine Form abgebildet 506, die für das erste
Datenverarbeitungssystem 300-1 verständlich ist, und an das erste
Datenverarbeitungssystem 300-1 über einen Knoten A1 als Anfrage
einer Entlastungsaufgabe (Offload-Task) übertragen 508.
-
Wenn über die
direkten Argumente, die mit der Aufgabenanfrage empfangen 504 werden,
zusätzliche
Eingangsdaten 510 bereitgestellt werden, muss bestimmt
werden, ob das erste Datenverarbeitungssystem 300-1 für diese
Daten über
eine direkte Zugriffsmöglichkeit 512 verfügt. Diese
Zugriffsmöglichkeit 512 kann
einen physikalischen Anschluss an die geeignete Speicherungsvorrichtung,
die physikalische Anordnung der Daten, das geeignete Zugriffsverfahren,
das die logische Anordnung der Daten vorschreibt, und die Verständlichkeit
der Daten nach dem Auslesen umfassen. Wenn eine derartige geforderte
Bedingung nicht erfüllt
ist, dann muss die Proxy-Aufgabe (Proxy-Task) 308 im Namen
des ersten Datenverarbeitungssystems 300-1 auf die Eingangsdaten
zugreifen 514. Sobald auf die Daten zugegriffen 514 wurde,
können
sie in einem Format 516, das für das erste Datenverarbeitungssystem 300-1 verständlich ist,
vorliegen oder auch nicht. Es ist zu beachten, dass die Verständlichkeit
des Formats 516 auch eine der Bedingungen war, welche die
Zugriffsmöglichkeit 512 ausmachen.
Wenn diese Bedingung nicht erfüllt
ist, dann muss die Proxy-Aufgabe (Proxy-Task) 308 die Eingangsdaten
zuerst in ein Format übersetzen 518,
das für
das erste Datenverarbeitungssystem 300-1 verständlich ist,
bevor sie an das erste Datenverarbeitungssystem 300-1 über den Knoten
A2 übertragen
werden können.
Hier wird die Verarbeitung der Proxy-Aufgabe (Proxy-Task) 308 angehalten,
wodurch ihre Ressourcen für
eine andere Verarbeitung durch das zweite Datenverarbeitungssystem 300-2 freigegeben
werden, und das Verfahren 500 ist beendet 522.
-
6 ist
ein schematisches Flussdiagramm, das eine Ausführungsform eines Verfahrens 600 für eine Entlastungsaufgabe
(Offload-Task) 306 gemäß der vorliegenden
Erfindung abbildet. Das Verfahren 600 beginnt 602 und
die Anfrage einer Entlastungsaufgabe (Offload-Task) wird empfangen 604,
wie sie von dem zweiten Datenverarbeitungssystem 300-2 über den
Knoten A1 übertragen
wird. In Erwartung des Empfangs eventueller zusätzlicher Eingangsdaten 606,
wie sie von dem zweiten Datenverarbeitungssystem 300-2 über den
Knoten A2 übertragen 520 werden,
wird die Entlastungsaufgabe (Offload-Task) 306 unter Verwendung
der Ressourcen des ersten Datenverarbeitungssystems 300-1 ausgeführt 608.
Bei Fertigstellung wird ein Bericht 610 über den
Knoten B2 an das zweite Datenverarbeitungssystem 300-2 übertragen 612.
Eventuelle zusätzliche Ausgangsdaten 614 werden
an das zweite Datenverarbeitungssystem 300-2 über den
Knoten B2 übertragen 616,
und das Verfahren 600 ist beendet 618.
-
7 zeigt
ein schematisches Flussdiagramm, das eine Ausführungsform eines Verfahrens 700 zum
Abfangen von Ergebnissen einer Entlastungsaufgabe (Offload-Task) 306 durch
eine Proxy-Aufgabe (Proxy-Task) 308 gemäß der vorliegenden Erfindung
abbildet. Das Verfahren 700 beginnt 702, und die
Proxy-Aufgabe (Proxy-Task) 308 wird als
Reaktion auf den Empfang 704 des Berichts, der von dem
ersten Datenverarbeitungssystem 300-1 über den Knoten B1 übertragen
wurde, wieder aktiviert.
-
Wenn
keine zusätzlichen
Ausgangsdaten 706, wie sie von dem ersten Datenverarbeitungssystem 300-1 über den
Knoten B2 übertragen
werden 616, über
die direkten Argumente hinaus, die mit dem Bericht verknüpft sind,
der empfangen 704 wurde, empfangen werden, dann ist das
Verfahren 700 beendet 716. Wenn zusätzliche
Ausgangsdaten 706 empfangen werden, muss bestimmt werden,
ob diese Daten in einem Format 708 vorliegen, das für das zweite
Datenverarbeitungssystem 300-2 verständlich ist. Falls nicht, dann
muss die Proxy-Aufgabe (Proxy-Task) 308 die Ausgangsdaten 710 zuerst
in ein Format übersetzen,
das für
das zweite Datenverarbeitungssystem 300-2 verständlich ist,
bevor sie diese für
das zweite Datenverarbeitungssystem 300-2 zugänglich macht.
Die Zugriffsmöglichkeit 712 kann einen
physikalischen Anschluss an die geeignete Speicherungsvorrichtung,
die physikalische Anordnung der Daten und das geeignete Zugriffsverfahren, das
die logische Anordnung der Daten vorschreibt, umfassen. Wenn die
Ausgangsdaten zugänglich 712 sind,
dann ist das Verfahren 700 beendet 716. Wenn eine
der geforderten Bedingungen der Zugriffsmöglichkeit 712 nicht
erfüllt
ist, dann muss das zweite Datenverarbeitungssystem 300-2 im
Namen des ersten Datenverarbeitungssystems 300-1 auf die
Ausgangsdaten zugreifen 714. Sobald die Ausgangsdaten für den Zugriff 714 für das zweite
Datenverarbeitungssystem 300-2 verfügbar gemacht wurden, ist das
Verfahren 700 beendet 716.
-
Die
Verfahren 500, 600 und 700 können ferner
mit einem spezifischen Beispiel erläutert werden. Man nehme ein
Sortierprogramm (die zweite Aufgabe 304), das unter z/OS
auf einem IBM-Großrechner (dem
zweiten Datenverarbeitungssystem 300-2) läuft, das
unter Windows entlastet werden soll, das auf einem Intel-Server
(dem ersten Datenverarbeitungssystem 300-1) läuft. Die
zu sortierenden Daten liegen in dem Format EBCDIC (”Extended
Binary Coded Decimal Interchange Code”) vor, das in einem Datensatz
(Datei) eines VSAM-(”Virtual
Storage Access Method”)Verfahrens
auf einer DASD-(”Direct Access
Storage Device”)Vorrichtung
für CKD-(”Count Key
Data”)Daten
vorliegt, die über
eine ESCON-(”Enterprise
System CONnection”)Schnittstelle
angeschlossen ist. Die Proxy-Aufgabe (Proxy-Task) 308 kann
entweder in einer JCL-(”Job
Control Language”)EXEC-Anweisung
vorgegeben werden, oder die ausführbare
Datei für
das z/OS-Sortierprogram selber kann durch diejenige der Proxy-Aufgabe
(Proxy-Task) 308 ersetzt werden. Sobald diese anfängliche
Konfiguration abgeschlossen ist, wird kein weiterer Benutzereingriff
benötigt,
als derjenige, der normalerweise ausgeführt wird, um das z/OS-Sortierprogramm
ablaufen zu lassen. Jedes Mal wenn das z/OS-Sortierprogramm anschließend aufgerufen
wird, wird automatisch eine Anfrage für die Proxy-Aufgabe (Proxy-Task) 308 empfangen,
und ihre Argumente werden auf ein entsprechendes Windows-Sortierprogramm
abgebildet 506.
-
Bei
diesem Beispiel müssen
die zu sortierenden Eingangsdaten 510 der Entlastungsaufgabe (Offload-Task) 306 bereitgestellt
werden. Windows kann über
eine direkte Zugriffsmöglichkeit 512 auf
die Daten verfügen
oder nicht. ESCON kann der einzige verfügbare physikalische Anschluss
sein, der für z/OS
nativ ist, wohingegen Windows vielleicht nur eine FC-(”Fiber Channel”)Anschlussmöglichkeit
unterstützt.
Andererseits unterstützen
einige Speicherungsvorrichtungen sowohl ESCON als auch FC als auch
FICON (ESCON über
FC). Die z/OS-native physikalische Anordnung der Daten ist CKD,
Windows erwartet jedoch typischerweise eine FBA (feste Blockarchitektur).
Das z/OS-native Zugriffsverfahren für die Daten ist VSAM, Windows
basiert jedoch wahrscheinlich auf NTFS (”New Technology File System”). Das
z/OS-native Format der Daten ist EBCDIC, das Windows-Sortierprogramm
mag jedoch davon ausgehen, dass das Datenformat ASCII (”American Standard
Code for Information Interchange”) ist. Diese Unterschiede
sind jedoch alle überbrückbar. Es mag
Treiber und Übersetzungsvorrichtungen
geben oder sie können
unter Windows entwickelt werden, um die Zugriffsmöglichkeit 512 bereitzustellen.
Sollten diese nicht verfügbar
sein, dann muss die Entlastungsaufgabe (Offload-Task) 306 unter
Windows 514 auf die Daten indirekt von z/OS aus zugreifen,
indem sie anfragt, dass sie unter Verwendung einer zweiten E/A-Geräteschnittstelle 416 gelesen
werden und über
ein Netzwerk 424 oder über
einen gemeinsam zugänglichen
Puffer in dem gemeinsam genutzten Speicher 426 ausgelesen
werden. Dann müssen
die Daten, die bei diesem Beispiel im EBCDIC-Format 516 vorliegen,
auf ASCII übersetzt 518 werden.
-
Hier
wird die Verarbeitung der Proxy-Aufgabe (Proxy-Task) 308 angehalten,
wodurch ihre Ressourcen für
eine andere z/OS-Verarbeitung freigegeben werden, und die Entlastungsaufgabe
(Offload-Task) 306 führt
das Windows-Sortierprogramm aus 608.
Bei Fertigstellung wird ein Bericht 610 von Windows an
z/OS übertragen 612,
und die sortierten Ausgangsdaten 614 werden ebenfalls übertragen 616.
Bei diesem Beispiel liegen die Ausgangsdaten 614 jedoch
im ASCII-Format 708 vor und müssen daher zurück auf EBCDIC übersetzt
werden 710. Ferner verfügt
Windows nicht über
eine direkte Zugriffsmöglichkeit 712 auf
den z/OS-Datensatz, in den die Ausgangsdaten zu schreiben sind.
Daher muss die Proxy-Aufgabe (Proxy-Task) 308 unter z/OS
die Daten von Windows an z/OS indirekt über ein Netzwerk 424 oder über einen
gemeinsam zugänglichen
Puffer in dem gemeinsam genutzten Speicher 426 übertragen,
wobei sie auf den z/OS-Datensatz zugreift 714, um die Daten
unter Verwendung der zweiten E/A-Geräteschnittstelle 416 zu
schreiben.
-
Wie
bei dem vorhergehenden Beispiel erwähnt, sind andere gegebenenfalls
effizientere Ausführungsformen
möglich,
bei denen Windows über ein
größeres Ausmaß an Zugriffsmöglichkeit 512 und 712 auf
z/OS-Daten verfügt,
wozu physikalische Schnittstellen, Treiber und Übersetzungsvorrichtungen gehören, die
spezifisch gestaltet sind, um auf z/OS-DASD zuzugreifen und/oder
diese zu emulieren. Bei einer anderen Ausführungsform können die Daten
in einem Zwischenzustand in dem zweiten Speicher 408 vorliegen,
der für
die Entlastungsaufgabe (Offload-Task) 306 über das
Netzwerk 424 oder den gemeinsam genutzten Speicher 426 zugänglich ist,
oder können
sich direkt in dem gemeinsam genutzten Speicher 426 befinden.
In diesem Fall wären die
physikalische Speicheranschlussmöglichkeit
und Anordnung kein Problem, obwohl Zugriffsmöglichkeitsfaktoren, wie etwa
eine logische Anordnung und ein Format, eventuell weiterhin Treiber
oder Übersetzungsvorrichtungen
benötigen.
Bei einer weiteren Ausführungsform
kann eine vollständige
Zugriffsmöglichkeit
innerhalb des Speichers und im selben Form gegeben sein, wodurch
eine sehr schnelle, eng gekoppelte Wechselwirkung zwischen der Proxy-Aufgabe
(Proxy-Task) 308 und der Entlastungsaufgabe (Offload-Task) 306 ermöglicht wird.
Es versteht sich, dass die Verfahren 500 und 700 mehr
als einmal von der gleichen Proxy-Aufgabe (Proxy-Task) 308 aufgerufen werden
können,
mit entsprechenden mehrfachen Aufrufen des Verfahrens 600 durch
die gleiche Entlastungsaufgabe (Offload-Task) 306, und zwar
auf feinkörnige
unsystematische Weise.
-
Die
vorliegende Erfindung kann in anderen spezifischen Formen realisiert
werden, ohne ihren Geist oder ihre wesentlichen Kennzeichen zu verlassen.
Die beschriebenen Ausführungsformen
sind in jeder Hinsicht nur als exemplarisch und nicht als einschränkend anzusehen.
Der Umfang der Erfindung wird daher durch die beiliegenden Ansprüche angegeben
statt durch die vorstehende Beschreibung. Alle Änderungen, die unter die Bedeutung
und in den Bereich der Gleichwertigkeit der Ansprüche fallen, sollen
in ihrem Umfang enthalten sein.
-
Zusammenfassung
-
Es
werden ein Gerät,
ein System und ein Verfahren zum Entlasten einer Datenverarbeitung
offenbart. Eine Entlastungsaufgabe 306, die auf einem ersten
Datenverarbeitungssystem 300-1 beherbergt wird, stellt
eine interne Funktionalität
bereit, die im Wesentlichen mit derjenigen einer zweiten Aufgabe 304 gleichwertig
ist, die auf einem zweiten Datenverarbeitungssystem 300-2 mit
einer gegebenenfalls unterschiedlichen Architektur beherbergt wird.
Eine Proxy-Aufgabe 308, die auf dem zweiten Datenverarbeitungssystem 300-2 beherbergt
wird, stellt eine externe Schnittstelle bereit, die im Wesentlichen
mit derjenigen der zweiten Aufgabe 304 gleichwertig ist. Ein
Kommunikationsmechanismus 322 zwischen den ersten und zweiten
Datenverarbeitungssystemen 300 kann aus einem Netzwerk 424,
einer gemeinsam genutzten Speicherungsvorrichtung 422 und
einem gemeinsam genutzten Speicher 426 bestehen. Die Proxy-Aufgabe 308 ersetzt
im Wesentlichen die zweite Aufgabe 304, indem sie die interne Funktionalität der zweiten
Aufgabe 304 an die Entlastungsaufgabe 306 je nach
Bedarf über
das Abbilden 506 von Argumenten und das Zugreifen auf 514 und 714 und
das Übersetzen 518 und 710 von
Eingangs- 510 und Ausgangs- 706 Daten delegiert.