DE4414171A1 - Verfahren und System zur Steuerung von Prozessen in einem Computer-Netzwerk - Google Patents
Verfahren und System zur Steuerung von Prozessen in einem Computer-NetzwerkInfo
- Publication number
- DE4414171A1 DE4414171A1 DE19944414171 DE4414171A DE4414171A1 DE 4414171 A1 DE4414171 A1 DE 4414171A1 DE 19944414171 DE19944414171 DE 19944414171 DE 4414171 A DE4414171 A DE 4414171A DE 4414171 A1 DE4414171 A1 DE 4414171A1
- Authority
- DE
- Germany
- Prior art keywords
- computer
- resource
- data
- migration
- access
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
Description
Die Erfindung betrifft ein Verfahren und ein System zur Steuerung von Prozessen
in einem Computer-Netzwerk, das eine Vielzahl von Rechnern mit jeweils einem
Prozessor aufweist, die miteinander verbunden sind, ein Betriebssystem aufweisen
und denen vorbestimmte Resourcen (Betriebsmittel) zugeordnet sind, wobei ein
Prozeß auf einem gerade verfügbaren Rechner (Ausgangsrechner) abgearbeitet
und im Laufe der Abarbeitung auf einen anderen Rechner (Zielrechner) verlagert
werden bzw. migrieren kann.
Heutige Computer-Netzwerke oder vernetzte Rechnersysteme werden immer
komplexer und sind in unterschiedlichster Art aufgebaut. So kann ein Netzwerk
eine Vielzahl von Einrichtungen aufweisen, wie etwa viele Rechner oder Rechner-
Systeme, Terminals, Peripheriegeräte usw., die alle miteinander verbunden sind,
um Informationen auszutauschen und verschiedene Betriebsmittel, im folgenden
kurz "Resourcen" genannt, miteinander zu teilen.
Dabei können sich die einzelnen Rechner sowohl im Aufbau als auch im Betriebs
system, im Code bzw. den Programmen, bezüglich der Peripheriegeräte und/oder
in den lokal verfügbaren Daten unterscheiden. Je nachdem, ob gleiche Rechner
und/oder gleiche Betriebssysteme bzw. unterschiedliche Rechner und/oder Be
triebssysteme vorhanden sind, spricht man von homogenen bzw. heterogenen Sy
stemen.
Bei homogenen Systemen ist aus A. Goscinski "Distributed Operating Systems
And The Logical Design", Addison Wesley 1991, S. 399 bis 404 bekannt, einen auf
einem Rechner (Ausgangsrechner) ablaufenden Prozeß im Laufe der Abarbeitung
auf einen anderen Rechner (Zielrechner) zu verlagern bzw. zu migrieren. Dabei
macht man sich die Tatsache zunutze, daß das Netzwerk unterschiedliche, insbe
sonders unterschiedlich schnelle oder mit unterschiedlich großen Arbeitsspeichern
versehene Rechner aufweist und jeder Rechner mit bestimmten Resourcen ver
bunden ist, auf die nur dieser Rechner zugreifen kann. Die bei der Prozeß-Migra
tion verwendeten Techniken sollen im nachfolgenden kurz beschrieben werden.
In zentralen Mehrprozessor-Systemen kann mit der Prozeß-Migration ein gerade
verfügbarer Prozessor einem zu aktivierenden Prozeß zugeteilt werden. Wechselt
ein Prozeß im Verlauf seines Lebenszyklus den Prozessor, so handelt es sich um
eine Prozeß-Migration innerhalb eines Mehrprozessor-Systems, die innerhalb ein
und derselben Betriebssystem-Umgebung stattfindet. Als Kommunikationsmedium
zum Austausch des den Prozeß beschreibenden Prozeß-Status dient im Falle
zentraler Mehrprozessor-Systeme der Hauptspeicher. Im Falle lose gekoppelter
Rechner wird das zugrundeliegende Netzwerk zur Kommunikation zwischen den
Rechnern benutzt.
In lose gekoppelten Mehrprozessor-Systemen werden im Falle der Prozeß-Migra
tion nicht notwendigerweise alle dem Prozeß zugeordneten Datenbereiche zum
Zielprozessor oder Zielrechner transportiert. Statt dessen werden in diesem die
Daten, die nicht am Ort des Rechners verfügbar sind, referenziert. Zur Anforderung
der fehlenden Datenbereiche wird dann der Prozeß unterbrochen.
Die Technik des Lastausgleiches in verteilten Rechnerarchitekturen mit homoge
nen Betriebssystem-Umgebungen wird eingesetzt, um den Gesamtdurchsatz eines
Systems zu erhöhen. Dazu zählen die Lastverteilung rechenintensiver paralleli
sierbarer Prozesse auf mehrere Rechner wie auch die Aufteilung einer großen An
zahl von Prozessen auf verschiedene Rechner. Diese Technik wird auch einge
setzt, um jedem Prozeß den Zugriff auf Resourcen, die speziellen Rechnern fest
zugeteilt sind, zu ermöglichen. Beispiele für die physikalische Anbindung von Re
sourcen an spezielle Rechner sind im Bereich spezieller Peripherie-Geräte wie
Magnetbandgeräte oder Druckwerke zu finden. Eine feste Zuordnung logischer
Resourcen wird zur Realisierung der Prozeßverwaltung eingesetzt, um die Kom
plexität der Systemimplementation zu dämpfen. So wird die Überprüfung von Zu
griffsrechten bzw. die Funktionalität der Serialisierung von Resourcen-Zuteilungen
fest an ein Rechenwerk gebunden.
Die Realisierung solcher verteilter Betriebssysteme ist jedoch, wie bereits oben
ausgeführt wurde, auf gleichartige Rechner und homogene Betriebssystemkerne
beschränkt. Dabei unterscheidet sich die Betriebssystem-Generierung je nach an
geschlossenen Peripherie-Geräten. Der Betriebssystemkern mit den Funktionen
zur Prozeßverwaltung wie auch der Kommunikation über das Netzwerk ist jedoch
homogen ausgeführt.
In herkömmlichen Client/Server-Architekturen greift der Client auf fest eingerich
tete und damit statische RPC (Remote Procedure Call)-Dienste des Servers zu.
Hierbei handelt es sich um Aufrufe zur Aktivierung von Unterprogrammen des Ser
vers.
Ein Client kann RPC-Dienste auch aufrufen, deren Adresse er erst zur Laufzeit
ermittelt. In diesem Fall stellt z. B. ein Name-Server Informationen über verfügbare
Versionen und Adressen von RPC-Servern bereit.
RPC-Dienste werden heute überwiegend systemnah in den Sprachen C oder As
sembler erstellt. Für höhere Programmiersprachen bestehen zwei Arten von
Schnittstellen, und zwar Unterprogramme und/oder dynamische Verbindungs-
Schnittstellen zum Aufruf von RPC-Diensten oder Programmrahmen zum Aufruf
von Unterprogrammen, die in einer höheren Programmiersprache erstellt sind, die
jedoch als RPC-Dienst aufrufbar sein sollen.
Die herkömmliche Programmierung zentraler Datenverarbeitungssysteme
(Großrechner-Anwendungen mit Bildschirmgeräten ohne Programmierbarkeit)
kennt keine Aufgliederung von Zugriffen auf Resourcen (Peripherie-Geräte, Daten,
Systemdienste usw.) auf verschiedenen Rechnern, die in der Anwendungspro
grammierung zu steuern sind; d. h. alle Resourcen werden, ggf. virtuell, vom zen
tralen Rechner bereitgestellt. Hierauf sind die folgenden Programmiertechniken
ausgerichtet:
Dialogsysteme mit hohem Verarbeitungsaufkommen werden in der Form der
Transaktionsprogrammierung erstellt, die einen hohen Realisierungsaufwand nach
sich zieht. Dialogsysteme mit niedrigem Verarbeitungsaufkommen werden proze
dural bzw. sitzungsorientiert erstellt, wenn der durch die Implementation bedingte
höhere Resourcen-Verbrauch an Rechenzeiten und Hauptspeicher durch den ge
ringeren Entwicklungs- und Pflegeaufwand kompensiert wird. Die Programmierung
für den Stapelbetrieb erfolgt in der Regel prozedural oder parametergesteuert.
Beispiele sind hierfür die Erstellung von Berichten (Reports) oder Anwendungen
zur Datenpflege. Der Ablauf erfolgt hier ohne Bedienereingriff, mit der Ausnahme
manuell zuzuteilender Resourcen, wie etwa von Magnetbandgeräten.
Die Technik der Prozeß-Migration ist bislang ausschließlich für homogene Rech
ner und Betriebssystemkerne realisiert. Dies mag seinen Grund in der Komplexität
bei der Verwaltung des den Prozeß beschreibenden Prozeß-Status sowie der
Übersetzung der Datenformate der jeweiligen Rechnertypen haben. Mit dem Ein
zug der Client/Server-Architektur in die Bürokommunikation wurden nun große
Netzwerke aufgebaut, die die Technik der Prozeß-Migration aufgrund ihrer inho
mogenen Struktur nicht nutzen können.
Im herkömmlichen Client/Server-Modell bearbeitet ein Client Daten, die auf einem
Server zur Verfügung stehen. Der Client richtet für benötigte Daten eine Anforde
rung (Request) an den Server. Der Server stellt die Daten bereit und sendet sie
über das Netzwerk zum Client, der sie dort verarbeitet. Soweit erforderlich, werden
die Daten in bearbeiteter Form zurückgesendet.
Das herkömmliche Client/Server-Modell ist in hohem Maße ineffizient, wenn größe
rer Datenmengen verarbeitet werden. Dies ist bei der Erstellung von Berichten
(Reports) regelmäßig der Fall, wenn die Bearbeitung der Daten in einer statisti
schen Verdichtung besteht und die Ergebnisse einen Bruchteil der ausgewerteten
Datenmenge ausmachen. Das gleiche gilt für Anwendungen, die Konsistenzprü
fungen über Datenbestände durchführen, bei denen nur eine geringe Anzahl von
Datensätzen vom zu prüfenden Regelwerk abweicht und die größere Menge von
einwandfreien Datensätzen auf dem Client ohne weitere Verarbeitung verworfen
wird.
Demgegenüber besteht die Aufgabe der Erfindung darin, das Verfahren bzw. das
System zur Steuerung von Prozessen in einem Computer-Netzwerk so zu verbes
sern, daß die Verteilung der Prozesse im Netzwerk optimal ist, insbesondere daß
die Migration von Prozessen auch bei heterogenen Rechnern und/oder Betriebs
systemen durchgeführt werden kann.
Dabei soll der Datenverkehr im Netzwerk, der zwischen kooperierenden Rechnern
während der Ausführung eines Prozesses anfällt, verringert werden.
Außerdem soll die Komplexität in der Erstellung verteilter Systeme verringert wer
den, indem die Mechanismen der Steuerung der verteilten Verarbeitung für den
Anwendungsprogrammierer verborgen werden können.
Das erfindungsgemäße Verfahren ist dadurch gekennzeichnet, daß es die folgen
den Verfahrensschritte aufweist: Vorsehen eines Compilers auf mindestens einem
Rechner, Überführen des dem Prozeß zugrundeliegenden, in einer interpretierba
ren Sprache geschriebenen Programms (I-Code) durch den Compiler in eine ab
strakte Repräsentation, Vorsehen eines Interpreters sowie einer Resource-Bro
kereinrichtung (Betriebsmittel-Vermittlungseinrichtung) auf allen Rechnern, Abar
beiten der abstrakten Repräsentation mittels des Interpreters so lange, bis auf eine
Resource zugegriffen werden soll, Feststellen mittels der Resource-Brokereinrich
tung, ob der Ausgangsrechner auf die Resource zugreifen kann, und, je nach Er
gebnis dieser Feststellung, Fortsetzung der Abarbeitung des Prozesses durch den
Interpreter, wenn der Ausgangsrechner auf die Resource zugreifen kann, oder
Durchführen der folgenden Verfahrensschritte, wenn die Resource einem anderen
Rechner (Zielrechner) zugeordnet ist, Abarbeiten der abstrakten Repräsentation
durch den Interpreter auf dem Ausgangsrechner, Migration des gesamten Prozes
ses auf den Zielrechner und Fortsetzung des Prozesses auf dem Zielrechner.
Weitere vorteilhafte Ausführungsformen der Erfindung sind in den Unteransprüche
2 bis 11 beschrieben.
Das erfindungsgemäße System zur Steuerung von Prozessen in einem Computer-
Netzwerk ist in den Ansprüchen 12 und 13 beschrieben.
Die Motivation zur Verwendung der Prozeß-Migration anstelle herkömmlicher
Client/Server-basierter RPC′s erfolgt aus der Betrachtung der Datenmengen, die
über das Netzwerk transportiert werden müssen. Ist die Datenmenge des den Prozeß
beschreibenden Prozeß-Status im Vergleich zu den über das Netzwerk zu
transportierenden Daten verhältnismäßig klein, läßt sich das Verkehrsaufkommen
im Netzwerk dadurch verringern, daß anstelle der Daten der Prozeß verlagert
wird.
Ein wesentlicher Bestandteil der Erfindung ist das Vorsehen eines Interpreters, der
eine transparente Prozeß-Migration mit dem Ziel unterstützt, das Netzwerk-Ver
kehrsaufkommen zu minimieren.
Als Nebeneffekt bewirkt das Verfahren die Vermeidung des hohen Verwaltungs
aufwands bei der Erstellung und Pflege verteilter Anwendungen.
Ein Vorteil des hier beschriebenen Verfahrens bzw. des Systems besteht in der
Bereitstellung eines einfachen Interfaces für verteilte Daten und Resourcen, bei
gleichzeitiger Minimierung des anfallenden Datenverkehrs in Client/Server-Anwen
dungen bzw. des Zugriffs auf Daten bei verteilter Datenhaltung.
Die Verwendung eines portierbaren Codes erlaubt eine plattformübergreifende
Definition des den Prozeß beschreibenden Prozessor-Status sowie der Ausfüh
rungsalgorithmen des Interpreters, der als Finite State Machine (endlicher Auto
mat, FSM) ausgeführt ist. Mit dieser Voraussetzung kann der Status eines Prozes
ses zwischen den Interpretern verschiedener Rechner übertragen werden. Die De
finition der Struktur des Prozessor-Status erfolgt unabhängig vom verwendeten
Rechner. Dadurch kann jeder Interpreter im System einen unterbrochenen Prozeß
aufgreifen und unter der Voraussetzung fortführen, die angeforderten Resourcen
bereitstellen zu können.
Bisherige Implementationen der Prozeß-Migration beschränken sich auf homo
gene Architekturen vernetzter Rechner mit homogenem Betriebssystemkern. Das
erfindungsgemäße Verfahren bzw. System erlaubt die Prozeß-Migration nicht nur
zwischen unterschiedlichen Rechnern sondern auch zwischen unterschiedlichen
Betriebssystemen. Neu gegenüber bestehenden Implementationen der Prozeß-
Migration ist die Technik der Interpretation anstelle einer systemnahen Implemen
tation der Prozesse zu verwenden, was durch den zwischen den Rechnern
und/oder Betriebssystemen portierbaren I-Code erreicht wird. Alle Interpreter bzw.
der/die endlichen Automaten (FSM), egal auf welchem Rechner oder unter wel
chem Betriebssystem, verwenden zur Realisierung des Verfahrens den strukturell
gleichen Code und haben eine gemeinsame Grundlage in der Struktur des Pro
zeß-Status. In der Konstruktion ist die Ausführung des I-Codes unabhängig von
jeglicher Maschinenarchitektur oder der auf einem Rechner ablaufenden Betriebs
systeme. Die Prozesse können freizügig zwischen den heterogen zusammenge
stellten Rechnern migrieren.
Im Gegensatz zu bestehenden Client/Server-Konzepten, die auf fest eingerichteten
und somit statischen RPC-Diensten beruhen, ist die gemäß der Erfindung erfol
gende Isolation ganzer Programmteile, die auf entfernt verfügbare Resourcen zu
greifen, dynamisch. Da der I-Code auf allen beteiligten Rechnern zur Verfügung
steht, wird anstelle einer vollständigen Prozeß-Migration der isolierte Programm
teil portiert und vergleichbar einem RPC-Dienst aufgerufen.
Es handelt sich um einen dynamischen RPC-Dienst, der auf dem Server nicht ge
sondert eingerichtet werden muß. So kann der Server jeden Auftrag ausführen, der
vom Client als I-Code in der abstrakten Repräsentation oder als Source-Code be
reitgestellt und zur Ausführung angefordert wird. Die Zugriffsrechte bleiben dabei
in den Grenzen, die dem Anwendungsprozeß zugeteilt sind. In diesem Fall kann
dann sogar auf eine Resource zugegriffen werden, für die kein fest eingerichteter
RPC-Dienst vorgesehen ist.
In bestimmten Fällen kann das Netzwerk-Verkehrsaufkommen durch die Verzöge
rung von Zugriffen auf Resourcen minimiert werden. Ein Beispiel sind Datenaus
gaben auf dem Bildschirm des Clients, während der Prozeß auf dem Server ab
läuft. Die Datenausgaben können in einem Puffer gesammelt und zum Client zu
sammenhängend übertragen werden. Zwei Ereignisse lösen die Übertragung aus:
Überlauf des Puffers oder explizite Anweisung durch den Prozeß. Der Interpreter
kann in der Weise implementiert werden, daß die Optimierung zur Laufzeit des
Prozessors vorgenommen werden kann.
Ein wesentlicher Vorteil der Prozeß-Migration besteht in der Optimierung des
Netzwerk-Verkehrsaufkommens in Anwendungen mit umfangreichem Datenzugriff.
Dabei kann der Fall auftreten, daß das Datenvolumen zur Prozeß-Migration höher
ausfällt, als es für die Anforderung der Daten per RPC-Dienst im Client/Server-Mo
dell erforderlich ist. Der Interpreter schätzt zur Laufzeit des Prozesses die erfor
derlichen Datenmengen für beide Möglichkeiten ab und wählt in Abhängigkeit von
vorbestimmten Optimierungskriterien das entsprechende Verfahren aus.
Eine weitere Eigenschaft des Verfahrens besteht in der Möglichkeit, den Zugriff auf
Daten aufgrund ihrer Referenzierung auch zwischen heterogenen Rechnern bzw.
Betriebssystemen zu erlauben. Alternativ wird die Prozeß-Migration zum Ort der
Datenhaltung eingeleitet oder selektiv die Übertragung der referenzierten Daten
zum Ort des Prozesses veranlaßt.
Eine Ausführungsform der Erfindung wird anhand der Zeichnungen näher be
schrieben. Es zeigen:
Fig. 1 eine schematische Darstellung eines Computer-Netzwerks, das - der Über
sichtlichkeit halber - nur die Ausgangs- und Zielrechner und die diesen zu
geordneten Komponenten aufweist;
Fig. 2 eine schematische Darstellung zur Erläuterung der reinen Daten-Migration
zu einem ortsfernen Rechner, wie sie beim Stand der Technik durchgeführt
wird;
Fig. 3 eine schematische Darstellung zur Erläuterung, und zwar
Fig. 3(a) der Migration eines gesamten Prozesses zu einem ortsfernen Rechner
gemäß der Erfindung und
Fig. 3(b) der Migration eines Teil-Prozesses zu einem ortsfernen Rechner gemäß
der Erfindung und
Fig. 4 eine schematische Darstellung der Migration des gesamten Prozesses.
In Fig. 1 ist schematisch ein Computer-Netzwerk dargestellt, das - der Übersicht
lichkeit halber - nur einen ersten Rechner (Ausgangsrechner) 1 und einen zweiten
Rechner (Zielrechner) 2 aufweist, die jeweils einen Prozessor 3 bzw. 4 und ein
Betriebssystem (nicht dargestellt) aufweisen.
Die Rechner 1 und 2 bzw. die Prozessoren 3 und 4 können entweder - wie in Fig. 1
dargestellt - direkt oder - etwa über einen Bus (nicht dargestellt) - als Knoten oder
sonstwie miteinander verbunden sein. Dabei ist der Rechner 1 mit Betriebsmitteln
oder Resourcen 5 und der Rechner 2 mit Betriebsmitteln oder Resourcen 6 ver
bunden. Bei diesen Resourcen handelt es sich z. B. um Daten, Peripheriegeräte,
Systemdienste usw. Diese Daten können auch in einer bestimmten Darstellungs
form abgespeichert sein.
Weiterhin weist jeder Rechner eine sogenannte Resource-Brokereinrichtung 7
bzw. 8 auf. Hierbei handelt es sich um eine Betriebsmittel-Vermittlungseinrichtung,
in der bezüglich aller im Netzwerk vorhandenen und verfügbaren Resourcen
(Betriebsmittel) die Eigenschaften und der Ort, d. h. die Zieladresse, zugreifbar
sind.
Weiterhin weist der Rechner einen Compiler (vgl. Fig. 4) und einen Interpreter auf,
der insbesondere als Finite State Machine (endlicher Automat; FSM; vgl. Fig. 4)
ausgeführt ist. Dabei muß sich nicht auf jedem Rechner ein Compiler befinden,
sondern es muß lediglich ein Compiler im Netzwerk vorhanden sein.
Bei dem erfindungsgemäßen Verfahren zur Steuerung von Prozessen in einem
Computer-Netzwerk wird ein Prozeß auf einem gerade verfügbaren Rechner, der
gemäß Fig. 1 der Ausgangsrechner 1 sein soll, abgearbeitet. Dabei liegt dem Pro
zeß ein in einer interpretierbaren Sprache geschriebenes Programm nach der
Compilierung in der abstrakten Repräsentation zugrunde, das von dem Interpreter
abgearbeitet werden kann.
Dieses Programm wird solange abgearbeitet, bis auf eine Resource zugegriffen
werden soll. Wenn diese Resource sich auf dem Ausgangsrechner befindet, so
wird der Prozeß fortgesetzt, ist dies nicht der Fall, so sind nach der Erfindung drei
Möglichkeiten vorgesehen, die anhand der Zeichnungen 2 und 3 näher erläutert
werden sollen.
Dabei soll das Computer-Netzwerk jeweils aus drei Rechnern A, B und C beste
hen, die unter unterschiedlichen Betriebssystemen MS-DOS, MVS und UNIX lau
fen. Allen schematischen Darstellungen liegt eine beispielhaft gewählte Aufgabe
der Bürokommunikation zugrunde:
- - Lese Plan-Zahlen (Daten 1) aus der lokalen Resource "Tabellenkalkulation" (Spreadsheet) auf dem unter dem Betriebssystem MS-DOS laufenden Arbeits platzrechner (Rechner A).
- - Lese Ist-Zahlen (Daten 2) aus der Datenbank der Produktionssteuerung auf dem unter dem Betriebssystem MVS unter Verwendung der Programmsysteme CICS und ADABAS, wobei dieses in den Figuren mit "MVS" abgekürzt ist, ablaufenden Großrechner (Rechner B), und verdichte das Zahlenwerk auf die Darstel lungsebene der Planzahlen.
- - Verbinde Plan- und Ist-Zahlen (Daten 1 und Daten 2), errechne Abweichungen und markiere Überschreitungen kritischer Schwellwerte. Überführe die Ergeb nisse in Listenform.
- - Gebe die Liste auf einem Druckwerk aus, das einem unter dem Betriebssystem UNIX ablaufenden Abteilungsrechner (Rechner C) angeschlossen ist.
Fig. 2 zeigt die reine Daten-Migration zu einem ortsfernen Rechner, wie sie vom
Client/Server-Modell her bekannt ist. Diese läuft wie folgt ab:
- 1. Der Anwender führt den Programmstart auf dem lokalen, unter dem Betriebssy stem MS-DOS laufenden Arbeitsplatzrechner (Rechner A) durch. Das Programm liest die Plan-Zahlen (Daten 1) der lokalen Tabellenkalkulation (Spreadsheet). Die Plan-Zahlen werden im Datenbereich des Prozesses abgelegt.
- 2. Das Programm liest die Ist-Zahlen (Daten 2) der Produktionssteuerung. Es han delt sich um einen Datenbestand auf dem unter dem Betriebssystem MVS lau fenden Großrechner (Rechner B), auf den über RPC-Dienste zugegriffen wer den kann.
- 3. Der RPC-Dienst liest die angeforderten Datensätze aus der Datenbank.
- 4. Die Daten werden dem Arbeitsplatzrechner (Rechner A) zur Verfügung gestellt.
- 5. Nach Abschluß der Verdichtung werden Plan-Zahlen und verdichtete Ist-Zahlen zusammengeführt. Weiterhin berechnet das Programm Abweichungen und markiert Überschreitungen von Schwellwerten. Die Ergebnisse sind jetzt voll ständig auf dem Arbeitsplatzrechner (Rechner A) als "Report" verfügbar.
- 6. Das Programm übergibt die Daten (Report) als Druckauftrag an den unter UNIX laufenden Abteilungsrechner (Rechner C), dem das Druckwerk in der Nähe des Arbeitsplatzrechners (Rechner A) zugeordnet ist. Die Übergabe eines Druckauf trags erfolgt über einen RPC-Dienst.
- 7. Der unter dem Betriebssystem UNIX laufende Abteilungsrechner (Rechner C) führt den Druckauftrag aus.
- 8. Der Arbeitsplatzrechner (Rechner A) erhält die Fertig-Meldung des Druckauf trags und beendet das Programm.
Fig. 3(a) zeigt die Migration des gesamten Prozesses gemäß der Erfindung zu
einem ortsfernen Rechner. Diese läuft wie folgt ab:
- 1. Der Anwender führt den Programmstart auf dem lokalen Arbeitsplatzrechner (Rechner A) durch, der unter dem Betriebssystem MS-DOS läuft. Das Programm liest die Plan-Zahlen (Daten 1). Dazu stellt es über den Resource-Broker fest, daß die Resource "Plan-Zahlen" als Tabellenkalkulation (Spreadsheet) auf dem lokalen Rechner (Rechner A) vorhanden ist. Die Plan-Zahlen werden im Daten bereich des Prozesses abgelegt.
- 2. Das Programm liest die Ist-Zahlen (Daten 2) der Produktionssteuerung. Zur Re source "Ist-Zahlen" stellt der Interpreter über den Zugriff auf den Resource- Broker fest, daß es sich um einen Datenbestand auf dem unter dem Betriebssy stem MVS laufenden Großrechner (Rechner B) handelt, der von der Daten menge her sehr viel größer ist als die Datenmenge des Prozeß-Status. Die Prozeß-Migration wird entsprechend Fig. 4 eingeleitet, was später beschrieben wird.
- 3. Nach Übertragung des Prozeß-Status beginnt die Fortführung des Programms auf dem Großrechner (Rechner B). Nunmehr sind die Daten 2 eine lokale Re source, die ohne Unterbrechung in die Systematik der Plan-Zahlen (Daten 1) verdichtet wird.
- 4. Auf dem unter dem Betriebssystem MVS laufenden Großrechner (Rechner B) führt das Programm Plan-Zahlen (Daten 1) und verdichtete Ist-Zahlen (Daten 2) zusammen, errechnet Abweichungen und markiert Überschreitungen von Schwellwerten. Die Ergebnisse werden im Datenbereich des Prozesses als "Report" abgelegt, während die Ausgangszahlen und Zwischenergebnisse ver worfen werden.
- 5. Das Programm greift zur Ausgabe auf ein Druckwerk in der Nähe des startenden Arbeitsplatzrechners (Rechner A) zu. Über den Resource-Broker stellt das Pro gramm fest, daß das Druckwerk einem unter dem Betriebssystem UNIX laufen den Abteilungsrechner (Rechner C) zugeordnet ist. Die zweite Prozeß-Migra tion wird entsprechend Fig. 4 eingeleitet, was später beschrieben wird.
- 6. Auf dem unter dem Betriebssystem UNIX laufenden Abteilungsrechner (Rechner C) gibt das Programm die Daten (Report) auf das nunmehr lokal zugreifbare Druckwerk aus. Das Programm wird dann auf dem Abteilungsrechner (Rechner C) beendet.
Fig. 3(b) zeigt die Migration des Teil-Prozesses gemäß der Erfindung zu einem
ortsfernen Rechner. Diese läuft wie folgt ab:
- 1. Der Anwender führt den Programmstart auf dem unter dem Betriebssystem MS- DOS laufenden lokalen Arbeitsplatzrechner (Rechner A) durch. Das Programm liest die Plan-Zahlen (Daten 1). Dazu stellt es über den Resource-Broker fest, daß die Resource "Plan-Zahlen" als Tabellenkalkulation (Spreadsheet) auf dem lokalen Arbeitsplatzrechner (Rechner A) vorhanden ist. Die Plan-Zahlen werden im Datenbereich des Prozesses abgelegt.
- 2. Das Programm liest die Ist-Zahlen (Daten 2) der Produktionssteuerung. Zur Re source "Ist-Zahlen" stellt der Interpreter über Zugriff auf den Resource-Broker fest, daß es sich um einen Datenbestand auf dem unter dem Betriebssystem MVS laufenden Großrechner (Rechner B) handelt, der von der Datenmenge her sehr viel größer ist als die Datenmenge des Prozeß-Status. Weiterhin stellt der Interpreter fest, daß der Zugriff zur Verdichtung der Produktionsdaten sich als Teilprogramm des I-Codes isolieren läßt. Weiterhin stellt der Interpreter fest, welche Daten zum isolierten Teilprogramm gehören; dazu gehört nicht der Be reich der Plan-Zahlen (Daten 1), sondern lediglich die Information über deren Systematik. Der Prozeß-Status wird für den Start des Teilprogramms an den unter dem Betriebssystem MVS laufenden Großrechner (Rechner B) übertragen. Der initiierende Arbeitsplatzrechner (Rechner A) geht in den Wartezustand.
- 3. Nach Übertragung des Prozeß-Status beginnt die Ausführung des isolierten Teilprogramms auf dem Großrechner (Rechner B). Nunmehr sind die Daten 2 eine lokale Resource, die ohne Unterbrechung in die Systematik der Plan-Zah len (Daten 1) verdichtet wird.
- 4. Das Teilprogramm ist beendet. Damit wird die Übertragung des Prozeß-Status an den initiierenden Arbeitsplatzrechner (Rechner A) eingeleitet.
- 5. Auf dem Arbeitsplatzrechner (Rechner A) wird die Ausführung des Programms wieder aufgenommen, indem Plan-Zahlen (Daten 1) und verdichtete Ist-Zahlen (Daten 2) zusammengeführt, Abweichungen errechnet und Überschreitungen von Schwellwerten markiert werden. Die Ergebnisse werden im Datenbereich des Prozesses als "Report" abgelegt, während die Ausgangszahlen und Zwi schenergebnisse verworfen werden.
- 6. Das Programm greift zur Ausgabe auf ein Druckwerk in der Nähe des startenden Arbeitsplatzrechners (Rechner A) zu. Über den Resource-Broker stellt das Pro gramm fest, daß das Druckwerk einem unter dem Betriebssystem UNIX laufen den Abteilungsrechner (Rechner C) zugeordnet ist. Aus Gründen der beispiel haften Darstellung sei vorgegeben, daß die Ausgabe über den Mechanismus der Code-Isolation zu erfolgen habe. Es wird daher ein zweites Mal ein entspre chender Code isoliert und der Prozeß-Status an den Abteilungsrechner (Rechner C) übertragen. Der Arbeitsplatzrechner (Rechner A) geht erneut in den Wartezustand.
- 7. Auf dem unter dem Betriebssystem UNIX laufenden Abteilungsrechner (Rechner C) wird die Ausführung des isolierten Teil-Codes aufgenommen. Darin greift das Programm auf das nunmehr lokal zugreifbare Druckwerk zu und gibt die Daten (Report) aus.
- 8. Das Teilprogramm ist auf dem Abteilungsrechner (Rechner C) beendet und leitet die Übertragung des Prozesses zum Arbeitsplatzrechner (Rechner A) ein. Dort wird die Ausführung des Programms wieder aufgenommen, die lediglich aus dem Abschluß des Programms besteht.
Die Migration des gesamten Prozesses wird nun anhand von Fig. 4 näher be
schrieben.
Der Compiler 21 übersetzt den I-Code 20 und führt ihn in eine abstrakte Repräsen
tation 22 über. Bei der abstrakten Repräsentation 22 handelt es sich um die inner
halb des Rechners gehaltene interne Darstellung, einem Äquivalent zum I-Code.
Der Compiler übersetzt jedoch nicht in eine Maschinensprache, sondern in die ab
strakte Repräsentation.
Die abstrakte Repräsentation 22 wird dann von dem Interpreter, der insbesondere
als Finite State Machine (endlicher Automat, FSM) ausgeführt ist, abgearbeitet,
was anhand der vergrößerten Darstellung 24 der FSM 23 näher erläutert werden
soll.
Die abstrakte Repräsentation 29 wird von einem Ausführungsalgorithmus 25 abge
arbeitet, der in bekannter Weise auf einen Prozeß-Status-Stack (Traversal Stack)
26 und einen Arbeits-Stack (Execution Stack) 27 sowie einen Datenbereich 28 zu
greifen kann und dort den Prozeß-Status und die Daten abspeichert.
Von einem Normalisierer 30 werden dann der im Prozeß-Status-Stack 26 und dem
Arbeits-Stack 27 beschriebene Prozeß-Status und die im Datenbereich 28 ge
speicherten Daten, sowie optional das Programm in seiner Darstellung als Quell-
Code und/oder der abstrakten Repräsentation in der bekannten Weise in eine ex
terne Darstellung 32 (mit Prozeß-Status-Stack 26′, Arbeits-Stack 27′, Datenbe
reich 28′ sowie optional das Programm in seiner Darstellung als Quell-Code oder
in der abstrakten Repräsentation 29′) übertragen. Dabei bewirkt ein Normalisierer
die Übersetzung von spezifischen Datenformaten in ein einheitliches Datenformat
und zurück, so daß für die zugreifenden Prozesse kein Informationsverlust ent
steht.
Gleichzeitig wird der Weg des Prozesses in einer Log-Datei des Ausgangsrech
ners gespeichert, um asynchrone Anfragen an den Prozeß weiterleiten zu können.
Mit dem Bezugszeichen 40 ist in vergrößerter Darstellung eine FSM des Zielrech
ners bezeichnet. Die an die FSM 40 übertragene externe Darstellung 32 wird von
einem Normalisierer 41 der FSM 40 in bekannter Weise wieder in die eigene in
terne Darstellung übertragen, in der sie dann in bekannter Weise in dem Ver
schiebe-Stack 26′′, dem Ablauf-Stack 27′′ und dem Datenbereich 28′′ entsprechend
abgespeichert werden. Im Anschluß daran wird der Prozeß mit dem übertragenen
Status aktiviert und ein Ausführungsalgorithmus 25′′ nimmt die Ausführung des
Programms an der unterbrochenen Stelle wieder auf. Auf die auf dem Zielrechner
nunmehr lokal verfügbare Resource kann nun zugegriffen werden.
In ähnlicher Weise läuft die Migration des Teilprozesses gemäß Fig. 3(b) ab, wo
bei nachfolgend ein beispielhaftes Programm für einen isolierbaren Code wieder
gegeben wird:
1 read parms from screen
2 sum (*) = 0
3 read rec from file
4 while(eof)
5 sum (*) = sum (*) + rec (*)
6 read rec from file
7 end
8 print sum (*).
2 sum (*) = 0
3 read rec from file
4 while(eof)
5 sum (*) = sum (*) + rec (*)
6 read rec from file
7 end
8 print sum (*).
Das Programm greift auf eine ortsentfernte Resource über das Runtime-System
des Interpreters zu (Zeile 3 des Beispiel-Codes). Damit wird die Ausführung des
Programms abgebrochen. Die Unterbrechungsstelle des Programms wird analy
siert. Wenn sich die Unterbrechungsstelle innerhalb eines isolierbaren Programm
teils befindet, so kann anstelle der Migration des gesamten Prozesses eine Migra
tion lediglich des Teil-Prozesses stattfinden. Im Beispiel sind dies die Programm
zeilen 2 bis 7.
Dabei wird der Prozeß-Status auf die Einsprungstelle des isolierbaren Codes zu
rückgeführt, d. h. auf den Status zu Beginn der Zeile 2. Der Prozeß-Status und die
Daten werden in bekannter Weise in eine externe Repräsentation überführt und an
den Zielrechner übertragen. Der Zielrechner übernimmt die Daten und übersetzt
sie in die eigene Darstellung. Im Anschluß daran aktiviert er den Prozeß mit dem
Prolog "Teil-Migration" und dem übertragenen Status. Damit wird die Ausführung
des Programms an der Einsprungstelle des isolierbaren Codes an Zeile 2 aufge
nommen. Es kann dann auf die auf dem Zielrechner nunmehr lokal verfügbare Re
source zugegriffen werden.
Mit Beendigung des isolierten Codes auf dem Zielrechner nach Zeile 7 wird ein
Epilog durchlaufen, der die Rückübertragung der Daten an den Ausgangsrechner
veranlaßt. Dazu werden die Daten von der internen Darstellung des Zielrechners
wieder in die externe Darstellung übertragen. Der Ausgangsrechner nimmt die Be
arbeitung mit dem Status am Ende des isolierbaren Codes als Zeile 8 wieder auf
und führt weitere Schritte des Programms aus.
Die Verwendung eines portierbaren Codes erlaubt eine plattformübergreifende
Definition des den Prozeß beschreibenden Prozessor-Status sowie des zugehöri
gen Interpreters. Mit dieser Voraussetzung kann der Status eines Prozesses zwi
schen den Interpretern verschiedener Rechner übertragen werden. Die Definition
der Struktur des Prozessor-Status erfolgt unabhängig vom verwendeten Rechner.
Dadurch kann jeder Interpreter im System einen unterbrochenen Prozeß aufgrei
fen und unter der Voraussetzung fortführen, die angeforderten Resourcen bereit
stellen zu können.
Bisherige Implementationen der Prozeß-Migration beschränken sich auf homo
gene Architekturen vernetzter Rechner mit homogenem Betriebssystemkern. Das
erfindungsgemäße Verfahren bzw. System erlaubt die Prozeß-Migration nicht nur
zwischen unterschiedlichen Rechnern sondern auch zwischen unterschiedlichen
Betriebssystemen. Neu gegenüber bestehenden Implementationen der Prozeß-
Migration ist die Technik der Interpretation anstelle einer systemnahen Implementation
der Prozesse zu verwenden, was durch den zwischen den Rechnern
und/oder Betriebssystemen portierbaren I-Code erreicht wird. Alle Interpreter bzw.
der/die endlichen Automaten (FSM), egal auf welchem Rechner oder unter wel
chem Betriebssystem, verwenden zur Realisierung des Verfahrens den strukturell
gleichen Code und haben eine gemeinsame Grundlage in der Struktur des Pro
zeß-Status. In der Konstruktion ist die Ausführung des I-Codes in der übersetzten
Form als abstrakte Repräsentation unabhängig von jeglicher Maschinenarchitektur
oder der auf einem Rechner ablaufenden Betriebssysteme. Die Prozesse können
freizügig zwischen den heterogen zusammengestellten Rechnern migrieren.
Im Gegensatz zu bestehenden Client/Server-Konzepten, die auf fest eingerichteten
und somit statischen RPC-Diensten beruhen, ist die gemäß der Erfindung erfol
gende Isolation ganzer Programmteile, die auf entfernt verfügbare Resourcen zu
greifen, dynamisch. Da die abstrakte Repräsentation auf allen beteiligten Rech
nern zur Verfügung steht, wird anstelle einer vollständigen Prozeß-Migration der
isolierte Programmteil portiert und vergleichbar einem RPC-Dienst aufgerufen.
Es handelt sich um einen dynamischen RPC-Dienst, der auf dem Server nicht ge
sondert eingerichtet werden muß. So kann der Server jeden Auftrag ausführen, der
vom Client als I-Code bzw. abstrakte Repräsentation bereitgestellt und zur Ausfüh
rung angefordert wird. Die Zugriffsrechte bleiben dabei in den Grenzen, die dem
Anwendungsprozeß zugeteilt sind. In diesem Fall kann dann sogar auf eine Re
source zugegriffen werden, für die kein fest eingerichteter RPC-Dienst vorgesehen
ist.
In bestimmten Fällen kann das Netzwerk-Verkehrsaufkommen durch die Verzöge
rung von Zugriffen auf Resourcen minimiert werden. Ein Beispiel sind Datenaus
gaben auf dem Bildschirm des Clients, während der Prozeß auf dem Server ab
läuft. Die Datenausgaben können in einem Puffer gesammelt und zum Client zu
sammenhängend übertragen werden. Zwei Ereignisse lösen die Übertragung aus:
Überlauf des Puffers oder explizite Anweisung durch den Prozeß. Der Interpreter
ist in der Lage, die Optimierung zur Laufzeit des Prozessors vorzunehmen.
Ein wesentlicher Vorteil der Prozeß-Migration besteht in der Optimierung des
Netzwerk-Verkehrsaufkommens in Anwendungen mit umfangreichem Datenzugriff.
Dabei kann der Fall auftreten, daß das Datenvolumen zur Prozeß-Migration höher
ausfällt, als es für die Anforderung der Daten per RPC-Dienst im Client/Server-Mo
dell erforderlich ist. Der Interpreter schätzt zur Laufzeit des Prozesses die erfor
derlichen Datenmengen für beide Möglichkeiten ab und wählt in Abhängigkeit von
vorbestimmten Optimierungskriterien das entsprechende Verfahren aus.
Die Optimierung des Netzwerk-Verkehrsaufkommens kann durch eine weitere
Maßnahme verbessert werden. Es ist nicht erforderlich, im Fall einer Prozeß-Mi
gration alle Daten eines Prozesses zwischen den Rechnern zu migrieren. Vielmehr
können alle oder Teile der Daten je nach Bedarf auf Anforderung an den Zielrech
ner transportiert werden. In Fig. 4 ist die Verbindung 50 zwischen den Datenberei
chen der Prozesse eingezeichnet, die über bekannte Techniken und im Fall hete
rogener Plattformen unter Einschaltung der Normalisierer 30 und 41 realisiert wird.
Im Fall umfangreicher Datenzugriffe ohne Isolierbarkeit des zugehörigen I-Codes
erfolgt die Prozeß-Migration, während im Fall isolierbarer Programmteile oder
kleinerer Datenmengen der Zugriff im Client/Server-Modell erfolgt. Im Unterschied
zu herkömmlichen RPC-Diensten handelt es sich jedoch um einen dynamisch ein
richtbaren Dienst, der als Teil der vorliegenden abstrakten Repräsentation ausge
führt wird. Zudem kann dann, wenn kein RPC-Dienst verfügbar ist, eine Migration
des gesamten oder des Teil-Prozesses durchgeführt werden.
Die vom Interpreter bearbeitbare Sprache erlaubt die Erstellung verteilter Anwen
dungen einschließlich Prozeß-Migration und RPC-Diensten, ohne daß der Pro
grammierer mit Einzelheiten des Client/Server-Modells oder anderen Feinheiten
der verteilten Verarbeitung belastet wird. Die Optimierung des Netzwerk-Verkehr
saufkommens kann dynamisch zur Laufzeit erfolgen.
Damit wird erreicht, daß bei den Programmierern keine Voraussetzungen zu
Kenntnissen komplexer Konzepte der verteilten Verarbeitung gemacht werden
müssen. Der Programmierer kann mit der einfacheren Sichtweise eines einzigen
Rechners arbeiten, die von einem transparenten Zugriff auf alle notwendigen Re
sourcen und Daten ausgeht.
Ein Programm in I-Code-Darstellung wird über den Compiler in die abstrakte Re
präsentation übersetzt. Auf diese Repräsentation greift eine Finite State Machine
(endlicher Automat, FSM) zu, der den bereits beschriebene Interpreter darstellt.
Jeder an der verteilten Verarbeitung beteiligte Rechner muß über mindestens
einen solchen Interpreter verfügen, um Anforderungen entfernter Rechner zu Aus
führungen von Programmschritten als Änderung des Prozeß-Status auszuführen,
oder aber der I-Code wird mittels eines auf einem Rechner befindlichen Compiler
in die abstrakte Repräsentation übertragen und in dieser Form auf allen Rechnern
abgelegt.
Das eine Migration auslösende Ereignis beruht auf dem Zugriff auf ortsferne Re
sourcen. Greift ein laufender Prozeß auf eine Resource zu, fragt der Prozeß den
Resource-Broker nach dem Ort der Resource. Ist die Resource auf dem lokalen
Rechner verfügbar, wird der Prozeß ohne Unterbrechung fortgeführt. Ist die Re
source ortsfern verfügbar, entscheidet der Interpreter anhand vorgegebener Opti
mierungskriterien, in welcher Form auf die Resource zugegriffen werden soll:
- 1. Migration des gesamten Prozesses zum ortsfernen Rechner.
- 2. Isolation von Programmteilen und Migration des Teil-Prozesses in Form eines Aufrufs als dynamischer RPC-Dienst beim ortsfernen Rechner.
- 3. Zugriff auf die Resource als fest eingerichteter RPC-Dienst beim ortsfernen Rechner.
Die ortsferne Wiederaufnahme eines Prozesses an einer unterbrochenen Stelle
erfordert besondere Vorkehrungen für die Interpretation des I-Codes. Bei einer
bevorzugten Ausführungsform der Erfindung wird der Prozeß-Status des interpre
tierten Programms über die Schnittstelle der externen Repräsentation zwischen
unterschiedlichen Rechnern übermittelt, nicht jedoch der Prozessor-Status des
Interpreters selbst. Die Konsequenz besteht darin, daß der Interpreter keine An
nahmen über die Verarbeitungsfolge zwischen den Anweisungen der abstrakten
Repräsentation machen kann, um an jeder Stelle des Codes die Ausführung des
Programms aufnehmen zu können. So kann bei der bevorzugten Ausführungsform
der Erfindung der Algorithmus zur Interpretation des I-Codes keine rekursiven Auf
rufe in Abhängigkeit vom I-Code ausführen. Die Sprach- und Code-Implementation
des zu interpretierenden Codes ist jedoch von dieser Einschränkung ausgenom
men.
Wie bereits oben ausgeführt wurde, werden bei lose gekoppelten Mehrprozessor-
Systemen im Falle der Prozeß-Migration nicht notwendig alle dem Prozeß zuge
ordneten Datenbereiche zum Zielprozessor transportiert. Stattdessen löst die Re
ferenzierung von Daten, die nicht am Ort des Rechners verfügbar sind, eine Unter
brechung aus. Die Bearbeitung der Unterbrechung besteht in der Anforderung der
fehlenden Datenbereiche.
Mit dem erfindungsgemäßen Verfahren ist es nun möglich, den Zugriff auf Daten
aufgrund ihrer Referenzierung auch zwischen heterogenen Rechnern bzw. Be
triebssystemen zu erlauben. Alternativ wird die Prozeß-Migration zum Ort der
Datenhaltung eingeleitet oder selektiv die Übertragung der referenzierten Daten
zum Ort des Prozesses veranlaßt.
Änderungen der beschriebenen Ausführungsform sind für den Fachmann ohne
weiteres möglich und fallen in den Rahmen der Erfindung. Compiler und Interpreter
können zu einer Einheit verschmolzen werden. Auch kann der Ausführungsalgo
rithmus der FSM rekursive Aufrufe zulassen. In diesem Fall muß jedoch ein höhe
rer Aufwand zur Vorbereitung des Prozesses vor der Übertragung auf den Ziel
rechner betrieben werden, damit die FSM den Prozeß wieder aufgreifen und fort
führen kann. Mit der Einschaltung eines Normalisierers und der dadurch gegebe
nen Zwischenebene lassen sich auch Prozeß-Stack und weitere Stack
(beispielsweise für Schleifen oder kontrollierte Speicher) migrieren. Der Normali
sierer überbrückt die unterschiedlichen Architekturen in einer heterogenen Umge
bung, seien es unterschiedliche Zahlenformate oder Zeichencodierungen.
Claims (13)
1. Verfahren zur Steuerung von Prozessen in einem Computer-Netzwerk, das
eine Vielzahl von Rechnern mit jeweils einem Prozessor aufweist, die miteinander
verbunden sind, ein Betriebssystem aufweisen und denen vorbestimmte Re
sourcen (Betriebsmittel) zugeordnet sind, wobei ein Prozeß auf einem gerade ver
fügbaren Rechner (Ausgangsrechner) abgearbeitet und im Laufe der Abarbeitung
auf einen anderen Rechner (Zielrechner) verlagert werden bzw. migrieren kann,
gekennzeichnet durch die folgenden Verfahrensschritte:
- - Vorsehen eines Compilers auf mindestens einem Rechner,
- - Überführen des dem Prozeß zugrundeliegenden, in einer interpretierbaren Spra che geschriebenen Programms (I-Code) durch den Compiler in eine abstrakte Repräsentation,
- - Vorsehen eines Interpreters sowie einer Resource-Brokereinrichtung (Betriebsmittel-Vermittlungseinrichtung) auf allen Rechnern,
- - Abarbeiten der abstrakten Repräsentation mittels des Interpreters so lange, bis auf eine Resource zugegriffen werden soll,
- - Feststellen mittels des Resource-Brokereinrichtung, ob der Ausgangsrechner auf die Resource zugreifen kann, und, je nach Ergebnis dieser Feststellung,
- - Fortsetzung der Abarbeitung des Prozesses durch den Interpreter, wenn der Ausgangsrechner auf die Resource zugreifen kann, oder
- - Durchführen der folgenden Verfahrensschritte, wenn die Resource einem ande ren Rechner (Zielrechner) zugeordnet ist,
- - Abarbeiten der abstrakten Repräsentation durch den Interpreter auf dem Aus gangsrechner,
- - Migration des gesamten Prozesses auf den Zielrechner und
- - Fortsetzung des Prozesses auf dem Zielrechner.
2. Verfahren nach Anspruch 1, bei dem der Interpreter eine Finite State Machine
(endlicher Automat; FSM) ist.
3. Verfahren nach einem der Ansprüche 1 oder 2, bei dem beim Abarbeiten der
abstrakten Repräsentation durch den Interpreter bzw. die FSM auf dem Ausgangs
rechner die folgenden Verfahrensschritte durchgeführt werden:
- - Feststellen, ob der Zugriff auf die dem Zielrechner zugeordnete Resource als Teil-Prozeß oder -Programm isolierbar ist, und, je nach Ergebnis dieser Feststel lung,
- - Migration des gesamten Prozesses auf den Zielrechner, wenn der Zugriff nicht als Teil-Prozeß isolierbar ist, und Fortsetzung des Prozesses auf dem Zielrech ner, oder
- - Migration des Teil-Prozesses auf den Zielrechner, wenn der Zugriff als Teil-Prozeß isolierbar ist, Abarbeiten des Teil-Prozesses auf dem Zielrechner und Rück- Migration auf den Ausgangsrechner, wenn der Teil-Prozeß abgeschlossen ist.
4. Verfahren nach einem der Ansprüche 1 bis 3, bei dem auf allen Rechnern ein
Interpreter vorgesehen ist.
5. Verfahren nach einem der Ansprüche 1 bis 4, bei dem die Interpreter bzw. die
FSM′s einen unterbrochenen Prozeß aufgreifen und fortführen können, wenn der
Rechner, auf dem sie sich befinden, Zugriff zu der angeforderten Resource hat.
6. Verfahren nach einem der Ansprüche 1 bis 5, bei dem die abstrakte Reprä
sentation durch die FSM mit einem nicht-rekursiven Ausführungsalgorithmus ab
gearbeitet wird.
7. Verfahren nach einem der Ansprüche 1 bis 6, bei dem vor der Migration des
gesamten oder des Teil-Prozesses die folgenden Verfahrensschritte durchgeführt
werden:
- - Feststellen, ob nach vorbestimmten Optimierungskriterien eine gesamte Migra tion oder eine Teilmigration durchzuführen ist, und, je nach Ergebnis dieser Feststellung,
- - gesamte Migration bzw. teilweise Migration des Prozesses, wenn die Optimie rungskriterien zutreffen, oder
- - Zugriff auf die dem Zielrechner zugeordnete Resource mittels eines im Netzwerk fest eingerichteten RPC(Remote Process Call)-Dienstes zur Aktivierung einer Prozedur auf dem Zielrechner.
8. Verfahren nach Anspruch 7, bei dem als Optimierungskriterium die Menge
der zur Beschreibung des Prozeß-Status erforderlichen Daten mit der Menge der
zu verarbeitenden Daten in Beziehung gesetzt wird.
9. Verfahren nach einem der Ansprüche 7 oder 8, bei dem vor dem Zugriff auf
die dem Zielrechner zugeordnete Resource mittels eines im Netzwerk fest einge
richteten RPC-Dienstes die folgenden Verfahrensschritte durchgeführt werden:
- - Feststellen, ob der RPC-Dienst verfügbar ist, und, je nach Ergebnis dieser Fest stellung,
- - gesamte bzw. teilweise Migration des Prozesses, wenn der RPC-Dienst nicht ver fügbar ist, oder
- - Zugriff auf die dem Zielrechner zugeordnete Resource mittels eines im Netzwerk fest eingerichteten RPC-Dienstes, wenn der RPC-Dienst verfügbar ist.
10. Verfahren nach einem der Ansprüche 1 bis 9, bei dem mittels des Verfahrens
der Referenzierung von Daten auf Daten zugegriffen wird, die nicht am Ort des den
Prozeß gerade abarbeitenden Rechners verfügbar sind.
11. Verfahren nach Anspruch 10, bei dem entweder eine Migration des Prozes
ses auf den Rechner durchgeführt wird, der auf die gewünschten Daten Zugriff hat,
oder eine Übertragung der referenzierten Daten mittels RPC-Dienst oder Migration
eines Teil-Prozesses zu dem Rechner durchgeführt wird, auf dem der Prozeß ge
rade abläuft.
12. System zur Steuerung von Prozessen in einem Computer-Netzwerk, das eine
Vielzahl von Rechnern mit jeweils einem Prozessor aufweist, die miteinander ver
bunden sind, ein Betriebssystem aufweisen und denen vorbestimmte Resourcen
(Betriebsmittel) zugeordnet sind, wobei ein Prozeß auf einem gerade verfügbaren
Rechner (Ausgangsrechner) abgearbeitet und im Laufe der Abarbeitung auf einen
anderen Rechner (Zielrechner) verlagert werden bzw. migrieren kann,
dadurch gekennzeichnet, daß
- - mindestens einer der Rechner einen Compiler aufweist, der das dem Prozeß zugrundeliegende, in einer interpretierbaren Sprache geschriebene Programm (I- Code) in eine abstrakte Repräsentation überführen kann,
- - alle Rechner einen Interpreter, der die abstrakte Repräsentation so lange abar beiten kann, bis auf eine Resource zugegriffen werden soll, sowie eine Resource- Brokereinrichtung (Betriebsmittel-Vermittlungseinrichtung) aufweisen,
- - eine Einrichtung zur Feststellung mittels der Resource-Brokereinrichtung, ob der Ausgangsrechner auf die Resource zugreifen kann,
- - und eine Einrichtung zur Migration des gesamten Prozesses auf den Zielrechner vorgesehen sind,
- - wobei, je nach Ergebnis dieser Feststellung, der Interpreter die Abarbeitung des Prozesses fortsetzen kann, wenn der Ausgangsrechner auf die Resource zugrei fen kann, oder der Prozeß auf den Zielrechner migriert und auf diesem fortge setzt wird, wenn der Ausgangsrechner nicht auf die Resource zugreifen kann.
13. System nach Anspruch 12, das zur Durchführung nach einem der Verfahren
nach den Ansprüchen 1 bis 11 geeignet ist.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19944414171 DE4414171A1 (de) | 1994-04-22 | 1994-04-22 | Verfahren und System zur Steuerung von Prozessen in einem Computer-Netzwerk |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19944414171 DE4414171A1 (de) | 1994-04-22 | 1994-04-22 | Verfahren und System zur Steuerung von Prozessen in einem Computer-Netzwerk |
Publications (1)
Publication Number | Publication Date |
---|---|
DE4414171A1 true DE4414171A1 (de) | 1995-10-26 |
Family
ID=6516223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19944414171 Withdrawn DE4414171A1 (de) | 1994-04-22 | 1994-04-22 | Verfahren und System zur Steuerung von Prozessen in einem Computer-Netzwerk |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE4414171A1 (de) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3902488A1 (de) * | 1988-01-29 | 1989-08-10 | Hitachi Ltd | Vorrichtung zur dezentralen datenverarbeitung und verfahren zum laden von programmen dafuer |
DD276551A1 (de) * | 1988-10-31 | 1990-02-28 | Hochvakuum Dresden Veb | Verteiltes steuerungssystem mit modularen funktionsbausteinen |
EP0381365A2 (de) * | 1989-01-31 | 1990-08-08 | International Business Machines Corporation | System und Verfahren zur Verbindung von Anwendungen über verschiedene Netzwerke von Datenverarbeitungssystemen |
DE4007998A1 (de) * | 1989-03-13 | 1990-09-20 | Hitachi Ltd | Prozess-planungsverfahren und mehrfach-rechner |
DE3619660C2 (de) * | 1985-06-12 | 1991-08-08 | Hitachi, Ltd., Tokio/Tokyo, Jp | |
EP0471442A2 (de) * | 1990-08-14 | 1992-02-19 | Digital Equipment Corporation | Verfahren und Gerät zur Realisierung von Anbieterfunktionen in einer verteilten heterogenen Umgebung |
WO1992013309A1 (en) * | 1991-01-23 | 1992-08-06 | Sun Microsystems, Inc. | Method and apparatus for scoped interprocess message switching |
-
1994
- 1994-04-22 DE DE19944414171 patent/DE4414171A1/de not_active Withdrawn
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3619660C2 (de) * | 1985-06-12 | 1991-08-08 | Hitachi, Ltd., Tokio/Tokyo, Jp | |
DE3902488A1 (de) * | 1988-01-29 | 1989-08-10 | Hitachi Ltd | Vorrichtung zur dezentralen datenverarbeitung und verfahren zum laden von programmen dafuer |
DD276551A1 (de) * | 1988-10-31 | 1990-02-28 | Hochvakuum Dresden Veb | Verteiltes steuerungssystem mit modularen funktionsbausteinen |
EP0381365A2 (de) * | 1989-01-31 | 1990-08-08 | International Business Machines Corporation | System und Verfahren zur Verbindung von Anwendungen über verschiedene Netzwerke von Datenverarbeitungssystemen |
DE4007998A1 (de) * | 1989-03-13 | 1990-09-20 | Hitachi Ltd | Prozess-planungsverfahren und mehrfach-rechner |
EP0471442A2 (de) * | 1990-08-14 | 1992-02-19 | Digital Equipment Corporation | Verfahren und Gerät zur Realisierung von Anbieterfunktionen in einer verteilten heterogenen Umgebung |
WO1992013309A1 (en) * | 1991-01-23 | 1992-08-06 | Sun Microsystems, Inc. | Method and apparatus for scoped interprocess message switching |
Non-Patent Citations (10)
Title |
---|
BARAK, Amnon * |
FUSSEL, Bernd: Wegweiser im Feldbus-Dickicht. In: Elektronik Journal 16, 1993,S.30-34 * |
GHAFOOR, Arif * |
HUG, Harald: Protokolle für herstellerübergreifen-de Kommunikation. In: Datacom 1/88, S.106-112 * |
MORRIS, Robert J.T.: Load Sha- ring in Distributed Systems. In: IEEE Transac- tions on Computers, Vol.c-34,No.3,March 1985, S.204-217 * |
PFEIFER, Tilo * |
SCHABERNACK, Jörg: Lastenausgleichsverfahren in verteilten Systemen - Überblick und Klassifika- tion. In: Informationstechnik i 34, 1992, 5, R. Oldenbourg Verlag, S.280-294 * |
SHILOH, Amnon: A Distributed Load- balancing Policy for a Multicomputer. In: Soft- ware-Practice and Experience,Vol.15,Sept.1985, S.901-913 * |
WANG, Yung-Terng * |
YANG, Jaehyung: A Distributed Heterogeneous Supercomputing Management System. In: Computer, Juni 1993, S. 78-86 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE4303062C2 (de) | Verfahren zur Behebung von Systemausfällen in einem verteilten Computersystem und Vorrichtung zur Durchführung des Verfahrens | |
DE102013221057B4 (de) | System und Verfahren für Batch-Auswertungs-Programme | |
EP0346801B1 (de) | Verfahren und Anordnung zur Ausführung eines Programms in einem heterogenen Mehrrechnersystem | |
DE69837130T2 (de) | Vorrichtung und Verfahren zum Simulieren mehrerer Knoten auf einer einzelnen Maschine | |
DE60221019T2 (de) | Verwaltung von serverbetriebsmitteln für hostanwendungen | |
EP0849666B1 (de) | Verfahren zum Instantiieren einer versionsbehafteten Klasse | |
DE112012000444B4 (de) | Verfahren, System und Computerprogrammprodukt zum Ermitteln einer optimalen Datenverarbeitungsumgebung zum Ausführen eines Abbildes sowie Verfahren zum Implementieren eines entsprechenden Systems | |
DE69734432T2 (de) | Verfahren und Vorrichtung zur Absendung von Clientverfahrenanrufen in einem Server Rechnersystem | |
EP0807883B1 (de) | Kommunikationssystem mit Mitteln zum Austausch von Softwareprozessen | |
DE2243956A1 (de) | Speicherprogrammierte datenverarbeitungsanlage | |
DE112012004238T5 (de) | Auf Erkennung beruhende Identifizierung und Migration von leicht in eine Cloud verlagerbaren Anwendungen | |
DE102006004839A1 (de) | System und Verfahren zum Migrieren virtueller Maschinen bei Clustersystemen | |
DE10128883A1 (de) | Verfahren und System für die Verteilung von Anwendungsdaten auf verteilte Datenbanken mit verschiedenen Formaten | |
DE112012000693T5 (de) | Ausführen einer Vielzahl von Instanzen einer Anwendung | |
DE19954268A1 (de) | Verfahren und System zur Verbesserung des Workflow-Durchsatzes in Workflow-Anwendungssystemen | |
DE10392709T5 (de) | Systeme und Verfahren zum Prädizieren von Arbeitslisten | |
DE112014006156T5 (de) | Datenmigrationsverfahren eines Speichersystems | |
EP1731999B1 (de) | Mechanismus zum dynamischen Registrieren von Dateien in einer stapelverarbeitungsorientierten Umgebung | |
DE112013000904T5 (de) | Durchführen von Aktualisierungen von Quellcode, der auf einer Vielzahl von Rechenknoten ausgeführt wird | |
EP2648094B1 (de) | Verfahren und system zum erzeugen eines quellcodes für ein computerprogramm zur ausführung und simulation eines prozesses | |
DE202017105367U1 (de) | Abfrageneustartfähigkeit | |
DE69814697T2 (de) | Vorrichtung, methode und computer programm produkt für client/server rechner mit vom client auswählbarer lokalisierung von transaktionsobjekten | |
DE102013215008A1 (de) | Datenmobilität auf Rastergrundlage | |
DE10234138A1 (de) | Verwalten einer Speicherkonkurrenz bei automatisierten Speichersystemen | |
DE4422637A1 (de) | Rechnersystem und Verfahren zum Problemlösen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8130 | Withdrawal |