-
GEBIET DER
ERFINDUNG
-
Die
Erfindung bezieht sich allgemein auf das Gebiet der Dateiübertragungen
und insbesondere auf ein System und ein Verfahren für das Übertragen von
Dateien zwischen Computern in asynchroner Weise und über mehrere
logische Verbindungen. Die Oberbegriffe der Ansprüche 1 und
13 beziehen sich auf ein System und ein Verfahren für das Übertragen einer
Datei von einem ersten an einen zweiten Ort. Eine solche Offenbarung
kann man der EP-A-0862304 entnehmen. Aus der US-A-5 680 400 ist
schon ein Hochgeschwindigkeitsdatenübertragungsmechanismus bekannt.
Aus der WO 9736405 ist ein Warteschlangenverwaltungssystem für das Lenken
von Datenpaketen bekannt.
-
Das
Aufkommen des Internets hat die Erzeugung einer Anzahl von Protokollen
für das Übertragen
von Dateien oder allgemeiner von Datenobjekten zwischen zwei Orten
voran getrieben. Die am häufigsten
verwendeten Protokolle umfassen das Dateiübertragungsprotokoll (file
transfer protocol, FTP), das Übertragungssteuerprotokoll/Internetprotokoll (transfer
control protocol/Internet protocol, TCP/IP) und das Telnet. Um eine
Datei zu übertragen,
verwendet jedes dieser Protokolle eine Punkt-zu-Punkt-Kommunikationsverbindung
zwischen dem Ausgangsort der zu übertragenden
Datei und dem Zielort, an den die Datei übertragen wird. Im allgemeinen
muss die Anfrage für
die Dateiübertragung
vom Ausgangssystem aus gemacht werden. Die Datei wird dann über die
Punkt-zu-Punkt-Kommunikationsverbindung
gemäß den Regeln
des speziellen Protokolls übertragen.
Beispielsweise können die
Protokolle die zu übertragende
Datei in eine Anzahl von Segmenten aufteilen, die statt eines großen Bündels eines
nach dem anderen gesendet werden.
-
Bei
jedem dieser Protokolle wird eine Datei über eine einzelne logische
Verbindung, die der Kommunikationsverbindung zwischen den Ausgangs- und
Zielsystemen entspricht, übertragen.
Zusätzlich erfolgt
die Übertragung
der Dateien synchron, wobei das Zielsystem eine Bestätigung sendet
nach jedem Segment der Datei, das gesendet wurde. Teilweise müssen durch
die synchrone Natur der Dateiübertragung
die Ausgangs- und Zielsysteme beide miteinander arbeiten und kommunizieren,
damit die Übertragung
beginnen kann. Die Kommunikation muss auch für die Dauer der Dateiübertragung
betriebsfähig
gehalten werden, oder die Verarbeitung muss neu aufgenommen werden.
-
Wenn
eine Dateiübertragung
zwischen zwei Orten vorgenommen wird, werden die Daten in der Datei
typischerweise auf einer Platte gespeichert, die als eine Archivaufzeichnung
dient. Der Zweck von Archivaufzeichnungen besteht darin, die Daten,
die übertragen
werden, zu speichern, so das beim Auftreten eines Problems oder
eines Fehlers während der Übertragung
die Daten durch eine Übertragung von
der Archivaufzeichnung neu gesendet werden können. Archivaufzeichnungen
sind jedoch kostspielig, und der Schutz von großen oder vielen Dateien kann
die Systemleistung vermindern.
-
Die
Aufgabe der vorliegenden Erfindung besteht darin, ein Verfahren
und ein System für
die Dateiübertragung
zu liefern, die eine größere Robustheit
als im Stand der Technik liefern.
-
Gemäß der vorliegenden
Erfindung werden ein System für
das Übertragen
einer Datei gemäß Anspruch
1 und ein Verfahren für
das Übertragen
einer Datei gemäß Anspruch
13 geliefert. Bevorzugte Ausführungsformen
sind Gegenstand der Unteransprüche.
-
KURZE BESCHREIBUNG DER
ZEICHNUNGEN
-
1A ist
ein Blockdiagramm eines Dateiübertragungssystems
gemäß der vorliegenden
Erfindung.
-
1B ist
ein Blockdiagramm einer Nachrichtenstruktur, die in einem Dateiübertragungssystem
gemäß der vorliegenden
Erfindung verwendet werden kann.
-
2 ist
Flussdiagramm der Ausführung
eines Dateiübertragungsverfahrens
gemäß der vorliegenden
Erfindung.
-
3 ist
ein Blockdiagramm eines Nachrichtenwarteschlangensystems für das Verwalten
von Dateiübertragungen
in einem Dateiübertragungssystem
gemäß der vorliegenden
Erfindung.
-
4 ist
ein Flussdiagramm eines Verfahrens für das Übertragen einer Datei unter
Verwendung des Nachrichtenwarteschlangensystems der 3.
-
5 ist
ein Blockdiagramm eines Dateiübertragungssystems
für das Übertragen
einer Datei über
mehrere Kanäle
gemäß einem
anderen Aspekt der vorliegenden Erfindung.
-
6 ist
ein Blockdiagramm eines Verfahrens für das Übertragen einer Datei über mehrere
Kanäle
gemäß einem
anderen Aspekt der vorliegenden Erfindung.
-
7 ist
ein anderes Blockdiagramm eines Dateiübertragungssystems gemäß einem
anderen Aspekt der vorliegenden Erfindung.
-
8 ist
ein Flussdiagramm eines Synchronisationswarteschlangenverfahrens
für das
Verwalten der Übertragung
von Dateien in einem Dateiübertragungssystem
gemäß der vorliegenden
Erfindung.
-
DETAILLIERTE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
-
Die
vorliegende Erfindung wird im Kontext einer spezifischen Ausführungsform
beschrieben, aber die Erfindung soll nicht darauf begrenzt sein.
-
1A ist
ein Blockdiagramm eines Dateiübertragungssystems 100 gemäß der vorliegenden Erfindung.
Das Dateiübertragungssystem 100 umfasst
einen Anfrageknoten 10, einen Verwaltungsknoten 20 für das Verarbeiten
und Verwalten der Dateiübertragungsanfragen,
der eine Synchronisationswarteschlange 22 aufweist, einen
Ausgangsknoten 30 und einen Zielknoten 50. Der
Ausgangsknoten 30 umfasst einen Ausgangsspeicher 32,
wie ein Festplattenlaufwerk, für
das Speichern einer Quelldatei, und eine Vielzahl von Übertragungswarteschlangen, um
Nachrichten vor der Übertragung
zu speichern. Der Zielknoten 50 umfasst eine oder mehrere
Zielwarteschlangen für
das Empfangen von Nachrichten und einen Zielspeicher 52,
wie ein Festplattenlaufwerk, für
das Speichern einer Zieldatei. Jeder der Knoten kann beispielsweise
als ein Personalcomputer oder ein Arbeitsplatzrechner implementiert
werden. Zusätzlich
können
die Kommunikationsverbindungen, die die physikalischen Kanäle zwischen
den Knoten darstellen, über
ein Netz, ein Modem, eine direkte Verbindung, wie ein Kabel oder
eine drahtlose Übertragung,
das Internet oder andere Kommunikationsverbindungen, die einem Fachmann
bekannt sind, errichtet werden. Unter Verwendung dieser physikalischen
Kanäle
können
die Knoten einen oder mehrere logische Kanäle über jedem physikalischen Kanal
errichten. Jeder logische Kanal entspricht einer anderen Punkt-zu-Punkt-Kommunikationssitzung
zwischen den Ausgangs- und Zielsystemen und ist vorzugsweise unidirektional,
kann aber auch bidirektional sein. Mindestens eines der Ausgangs-
und Zielsysteme umfasst einen Vielzahl von logischen Adressen, wobei
jede logische Adresse ihren eigenen logischen Kanal errichten kann.
Wenn es beispielsweise zwei logische Adressen beim Ausgangssystem
und zwei logische Adressen beim Zielsystem gibt, kann eine erste
logische Adresse beim Ausgangssystem eine logische Verbindung zu
einer ersten logischen Adresse beim Zielsystem aufweisen, und eine
zweite logische Adresse beim Ausgangssystem kann eine logische Verbindung
zu einer zweiten logischen Adresse beim Zielsystem aufweisen. Ein
logischer Kanal kann über
eine unabhängige
physikalische Kommunikationsverbindung existieren oder die physikalische
Verbindung mit einem oder mehreren anderen logischen Kanälen gemeinsam nutzen.
-
Das
Dateiübertragungssystem 100 verwendet
einen oder mehrere logische Kanäle über jedem physikalischen
Kanal, um eine Datei vom Ausgangsknoten 30 zum Zielknoten 50 zu übertragen.
Die Datei wird an ein Nachrichtentransportsystem, wie der MQ-Serie
(ein Produkt von IBM) geliefert, das die Daten, die der zu übertragenden
Datei entsprechen, über
eine physikalische Verbindung überträgt.
-
2 ist
ein Flussdiagramm der Funktion eines Dateiübertragungsverfahrens gemäß der vorliegenden
Erfindung. Um eine Datei von einem Ausgangsknoten 30 zu
einem Zielknoten 50 zu übertragen,
gibt ein Benutzer eine Dateiübertragungsanfrage
am Anfrageknoten 10 ein (Schritt 205). Der Benutzer
gibt die Anfrage über
eine Schnittstelle am Anfrageknoten 10 ein. Die Schnittstelle
kann beispielsweise als eine Anwendungsprogrammschnittstelle (application
programming interface, API), eine Nachrichtenwarteschlangenschnittstelle
(message queue interface, MQI), eine graphische Benutzerschnittstelle (graphical
user interface, GUI) oder eine allgemeine Benutzerschnittstelle
(generic user interface, UI) implementiert sein. Die Anfrage, die
durch den Benutzer eingegeben wird, kann strukturiert sein, um eine Steuernachricht
zu bilden, die Anwendungsdaten und Kopfdaten einschließt. Die
Anwendungsdaten sind ein Objekt oder eine Sequenz von Objekten,
die in einer Datenfolge gehalten werden, wobei jedes Objekt eine
spezielle Bedeutung für
ein spezielles Anwendungsprogramm besitzt. Bei den Kopfdaten handelt
es sich um Information, die sich auf die Eigenschaften der Nachricht
bezieht und die in einer Kopfaufzeichnung gespeichert werden können. Die Kopfdaten
werden vom Dateiübertragungssystem 100 verwendet,
um zu bestimmen, wie die Steuernachricht zu verarbeiten ist.
-
1B ist
ein Blockdiagramm einer Nachrichtenstruktur für einen Betrieb, wie einer
Dateiübertragungsanfrage,
die für
die Steuernachricht im Dateiübertragungssystem 100 gemäß der vorliegenden Erfindung
verwendet werden kann. Wie in 1B gezeigt
ist, umfasst die Nachrichtenstruktur Kopfdaten 140 und
Anwendungsdaten 150. Innerhalb der Anwendungsdaten 150 gibt
es eine Serie von Feldern, die FTFQMgrsInfo 152, FTFSourceFileInfo 154, FTFTargetFileInfo 156,
FTFJobInfo 158, FTFUserInfo 160, FTFBool 162,
FTFULong 164 und 166, FTFChar 168, FTFLong 170,
FTFExitInfo 172, FTFAS400FileInfo, FTFChar 176 und
FTFChar*cq 178 umfassen.
-
FTFQMgrsInfo 152 identifiziert,
welche Warteschlangenverwaltungsvorrichtung, die unten unter Bezug
auf 3 definiert wird, für eine Verbindung mit dem Ausgangssystem
oder sendenden System zu verwenden ist, welcher Verwaltungskonten
zu verwenden ist, und welche Warteschlangenverwaltungsvorrichtungen
bei den sendenden Knoten und den Zielknoten zu verwenden sind. FTFSourceFileInfo 154 liefert
alle Details der Quelldatei, das ist die zu übertragende Datei. FTFTargetFileInfo 156 liefert
alle Details der Zieldatei, die der Datei entspricht, die gespeichert
wird, nachdem sie zum Zielknoten 50 übertragen wurde, einschließlich Zuweisungsoptionen. FTFJobInfo 158 umfasst
Details in Bezug darauf, wie die Dateiübertragung durchzuführen ist,
einschließlich
binärer,
ASCII-, Kompressions-, Prioritäts-,
Dauerhaftigkeits- und Stufenoptionen. FTFUserInfo 160 liefert
Information über
den Benutzer, der die Anfrage für
die Dateiübertragung
vornimmt.
-
FTFBool 162 ist
ein boolsches Feld, das bestimmt, ob eine Antwortet erzeugt werden
und an den Benutzer beim Anfrageknoten 10 am Ende der Dateiübertragung
zurück
gesandt werden muss. FTFULong 164 und 166 identifizieren
festgelegte Zeitabschnitte. Wobei FTFULong 164 die Zeit,
bei der die Transaktion auslaufen soll, bestimmt, und FTFULong 166 bestimmt,
wie lang die Schnittstelle auf eine Antwort warten soll. FTFChar 168 ist
eine Zeichenfolge, die identifiziert, welche Konfigurationsdatei
verwendet werden soll. Die Konfigurationsdatei wird verwendet, um
das Dateiübertragungssystem 100 zu
informieren, welche Warteschlangen verwendet werden sollen, welche
Poolregeln (beispielsweise Rundlauf, Überlauf etc.), Statusuntersystemsregeln
(an/aus, dauerhaft/nicht dauerhaft (persisten, non-persistent), Ablaufbedingungen
und andere Regeln, sofern nötig, verwendet
werden sollen.
-
FTFLong 170 gibt
an, welche Ausgänge (exits)
installiert sind. Es kann beispielsweise acht verschiedene Ausgangspunkte
geben, die an strategischen Punkten während einer Dateiübertragung aufgerufen
werden, einschließlich:
eine Vorübertragungsinitiierung,
eine Zugangssicherheitsprüfung
vor der Datei beim Sender (sender pre-file access security check),
ein Vor-Datei-Lesen des Senders (sender pre-file read); eine Nach-Datei-Lieferung
an ein Nachrichtenwarteschlangensystem des Senders (sender post-file submit to a
message queuing syste), Vor-Datei-Zugangs-Sicherheitsprüfung beim Empfänger (receiver
prefile access security check), ein Vor-Datei-Schreiben beim Empfänger (receiver pre-file
write), ein Nach-Datei-Schreiben beim Empfänger (receiver post-file write),
und eine Nachtransaktionsbeendigung. Wenn ein Ausgang spezifiziert ist,
wird der Ausgang unter alle Umständen
aufgerufen. Dem Ausgang wird die volle Transaktionssteuerung der
Dateiübertragung
gegeben. Mit anderen Worten, der von den Benutzern installierte
Ausgang kann die Übertragung
stoppen oder es gestatten, dass die Übertragung weiter geht.
-
Zusätzlich ermöglicht es
ein spezieller Ausgang, der als Portal bezeichnet wird, einem Kundenmodul,
die interne Dateiübertragungs-E/A
des Lesens und/oder Schreibens einer Datei zu umgehen. Somit muss
sich ein Benutzer nicht mit der Schnittstelle mit dem Nachrichtentransportsystem,
dem Netz, der Datenintegrität
oder der Leistungsgestaltung beschäftigen. Das Dateiübertragungssystem 100 liefert
eine einfache API, um Daten aufzugeben oder Daten von der Dateiübertragung
abzurufen.
-
Die
Ausgänge
und Portale arbeiten auf Anforderung und laden eine spezifische
dynamische Verbindungsbibliothek mit einem spezifischen Eintrittspunkt.
Die Fähigkeiten,
die von den Ausgängen und
Portalen geliefert werden, umfassen jedoch die interne Verwaltung
von Ressourcen, Speicheraufnahmen, Zugang zum Statusuntersystem
und die Verfolgung der Aktivität
des Benutzerausgangs, um die Integrität der Dateiübertragungstransaktion aufrecht
zu halten.
-
Intern
schafft das Dateiübertragungssystem 100 ein
Arbeitsgebiet, in dem der gerufene Ausgang oder das gerufene Portal
registriert ist. Zusätzlich werden
alle Ressourcen geprüft
und Statusinformation wird aufgezeichnet. Der Ausgang wird gerufen oder
eine API-Anfrage wird von einem Portal empfangen, wobei der Benutzer
zu dieser Zeit die Steuerung besitzt, um die Transaktion zu stoppen
oder fortzusetzen. Nach dem Empfang dieser Information bestimmt
das Dateiübertragungssystem 100 den
nun aktuellen Zustand. Alle Arbeitsbereiche werden auf der Basis
der Zustandsinformation gelöscht.
Wenn das Dateiübertragungssystem 100 die
Kodes für
eine Fortsetzung empfängt,
werden Datenmarkierungen aktualisiert, und die Verarbeitung setzt
sich fort. Wenn das Dateiübertragungssystems
die Kodes für eine
Nichtfortsetzung empfängt,
werden Datenmarkierungen aktualisiert, und die Verarbeitung wird
mit den korrekten Fehlerbedingungen enden, und die Transaktion wird
beendet.
-
Die
Ausgänge
und die Portale werden dynamisch erzeugt, wenn sie benötigt werden,
und arbeiten im selben Adressenraum wie das Dateiübertragungssystem 100.
Dies schafft eine Umgebung, bei der das Dateiübertragungssystem 100 und
die Kundenausgänge
im Gegensatz zur lose gekoppelte Lösung bei der Schnittstellenausbildung
mit externen Modulen als ein einziges Programm arbeiten.
-
FTFExitInfo 172 liefert
optionale Eingangsdaten für
die Ausgänge,
die während
der Verarbeitung zu verwenden sind. FTFAS400FileInfo 174 liefert
die AS/400-Personalität,
die eine einfache Art für das
Beschreiben der Dateiattribute und der Regeln darstellt, die das
Dateiübertragungssystem
verwendet, wenn es eine Datei liest oder schreibt. FTFChar 176 ist
eine Zeichenfolge, die als eine Identifikation für die Transaktion dient. Zuletzt
ist FTFChar*cq 178 eine Zeichenfolge, die angibt, wo die
Datei, die die Konfigurationsinformation beinhaltet, wie oben diskutiert,
in einer Warteschlange oder einer Datei gespeichert ist.
-
Nachdem
der Benutzer die Dateiübertragungsanfrage
eingibt, wird sie als eine Steuernachricht an einen bezeichneten
Verwaltungsknoten 20 überführt, der
die Steuernachrichten gemäß den Dateiübertragungsanfragen
aufzeichnet und verwaltet (Schritt 210). Der Verwaltungsknoten 20 untersucht die
empfangene Steuernachricht, um zu bestimmen, wie die Dateiübertragung
auszuführen
ist. Auf der Basis der Information in der Steuernachricht, die die Kopfdaten
einschließt,
identifiziert der Verwaltungsknoten die zu übertragende Datei, den Ort
der zu übertragenden
Datei und den Ort, an den die Datei zu übertragen ist (Schritt 215).
Der Ort der zu übertragenden
Datei entspricht dem Ausgangsknoten 30, und der Ort, an
den die Datei übertragen
wird, entspricht dem Zielknoten 50. Unter Verwendung dieser identifizierten
Information gibt der Verwaltungsknoten 20 die Dateiübertragungsanfrage
an den Ausgangsknoten 30 (Schritt 220). Zusätzlich platziert
der Verwaltungsknoten 20 eine Transaktionsmarkierung in der Synchronisationswarteschlange 22,
die im Verwaltungsknoten 20 angeordnet ist, und gibt Statusnachrichten
an das Dateiübertragungssystem 100. Eine
Systemprotokollaufzeichnung verfolgt alle Fehlerinformation.
-
Nach
dem Empfangen der Dateiübertragungsanfrage
vom Verwaltungsknoten 20 untersucht der Ausgangsknoten 30 die
Anfrage, um die zu übertragende
Datei im Ausgangsspeicher 32 zu identifizieren und den
Ort, an den die Datei zu senden ist (Schritt 225). Der
Ausgangsknoten 30 überträgt dann die
Steuernachricht und die identifizierte Datei, die auch als Quelldatei
bezeichnet wird, zum identifizierten Ort, bei dem es sich um den
Zielknoten 50 handelt (Schritt 230). Die Quelldatei
kann beispielsweise eine Datendatei, eine ausführbare Datei, ein Anwendungsprogramm
oder irgend eine andere Form von Information, die elektronisch auf
der Platte oder irgend einer anderen Form eines Speichermediums, das
Fachleuten bekannt ist, gespeichert werden kann, sein. Der Ausgangsknoten 30 speichert
auch den Status der Übertragung
durch das Platzieren einer Transaktionsmarkierung in einer Synchronisationswarteschlange 34 (in 7 gezeigt),
antwortet dem Verwaltungsknoten 20, dass er die Dateiübertragungsanfrage
bearbeitet hat, und erzeugt Statusnachrichten, die an das Dateiübertragungssystem 100 übermittelt
werden.
-
Um
eine Quelldatei an einen Zielknoten 50 zu senden, kann
der Ausgangsknoten 30 die Datei in eine Vielzahl von unabhängigen Datennachrichten aufteilen,
wobei jede eine Nachrichtenstruktur aufweist, die Kopfdaten und
Anwendungsdaten aufweist. Jede Datennachricht umfasst eine festgelegte Menge
von Information aus der Datei, beispielsweise 256 K, was den Anwendungsdaten
entspricht. Die Kopfdaten in jeder unabhängigen Datennachricht umfassen
eine Nachrichtenidentifikation, eine eindeutige Korrelationsinformation
(ID), den Namen des Ziels der Nachricht und andere Eigenschaften
der Nachricht, wie solche, die oben in der Beschreibung der Nachrichtenstruktur
der 1B beschrieben wurden. Die Nachrichtenidentifikation,
die in einem Kopffeld MQMD.MessageID gespeichert werden kann, verbindet
jede Datennachricht mit der Steuernachricht, die der Dateiübertragungsanfrage
entspricht. Die Korrelation ID, die in einem Kopffeld MQMD.CorrelationID
gespeichert werden kann, ist notwendig für das Bestimmen der Reihenfolge,
in der die Datennachrichten wieder zusammen zu setzen sind, um die
ursprüngliche
Datei zu bilden. Die Steuernachricht und die Datennachrichten sind
einer oder mehreren der vielen Übertragungswarteschlangen, die
sich im Ausgangsknoten 30 befinden, zugeordnet, wobei jede Übertragungswarteschlange
einem speziellen Logikkanal zugeordnet ist. Die Nachrichten können den Übertragungswarteschlangen
in jeder Weise zugeordnet werden, beispielsweise durch das Füllen der Übertragungswarteschlangen
in einem Rundlauf verfahren, das Füllen jeder Übertragungswarteschlange mit
einer gewissen Menge und das anschließende Füllen der nächsten Warteschlange, das Füllen einer Übertragungswarteschlange,
bis sie voll ist, und dann das Füllen
der nächsten
Warteschlange, das Platzieren von Nachrichten in einer Übertragungswarteschlange
auf der Basis der Dienstgüte
(quality of service, QoS) des Kanals, der mit dieser Warteschlange
verknüpft
ist, oder das Zuweisen von Nachrichten auf der Basis einer Priorität, die mit
einer Übertragungswarteschlange
verbunden ist oder gemäß einem
anderen passenden Protokoll. Die Art, wie die Nachrichten zugewiesen
werden, kann aus dem FTFJobInfo-Feld 158 bestimmt werden.
-
Die
Nachrichten, die vom Ausgangsknoten 30 gesendet werden,
werden vom Zielknoten 50 in einer oder mehreren Zielwarteschlangen
empfangen (Schritt 235). Um die Quelldatei wieder zu konstruieren,
verwendet der Zielknoten 50 die Steuernachricht, um alle
Datennachrichten von den Zielwarteschlangen, die mit der übertragenen
Quelldatei verbunden sind, zu sammeln, und extrahiert die Dateiinformation
aus den Anwendungsdaten in jeder Datennachricht (Schritt 240).
Insbesondere verwendet der Zielknoten 50 die Steuernachricht,
um die Nachrichten-ID und die Korrelations-ID-Sequenz zu extrahieren,
die dann verwendet werden können,
um die entsprechenden Datennachrichten aus den Zielwarteschlangen
abzurufen. Der Zielknoten 50 kombiniert dann die Dateiinformation
in der korrekten Reihenfolge, um die Zieldatei zu schaffen, auf
der Basis der eindeutigen Korrelations-IDs, die in den Kopfdaten jeder
Datennachricht gespeichert sind (Schritt 245). Die Zieldatei
wird dann im Zielspeicher 52 gespeichert (Schritt 250).
-
Jeder
der Knoten im Dateiübertragungssystem 100 kann
unabhängig
und asynchron gegenüber dem
Betrieb irgend welcher anderer Knoten arbeiten, und er kann auf
verschiedenen und unabhängigen Systemen
oder Plattformen arbeiten. Das Konzept des unabhängigen Anfrageknotens 10 ermöglicht es einem
ersten System, Dateien zwischen irgend zwei anderen Systemen zu übertragen,
die weder am Ausgangs- noch am Zielsystem vorhanden sind. Der unabhängige Verwaltungsknoten 20 vermeidet
es, dass Verwaltungsfunktionen von jedem dieser Systeme im Dateiübertragungssystem 100 vorhanden
sein müssen.
Somit muss jedes System im Dateiübertragungssystem 100 nur
die Sende- und Empfangsfunktion besitzen, um Dateien über das
Dateiübertragungssystem 100 zu
senden und zu empfangen. Jedes System umfasst vorzugsweise auch
die Anfragefunktion des Anfrageknotens 10.
-
Zusätzlich zur
vollständigen
Unabhängigkeit kann
die Funktion der Knoten auf einem einzigen System zusammengeführt werden.
Beispielsweise kann die Funktion des Anfrageknotens 10 und
des Verwaltungsknotens 20 auf dem Ausgangsknoten oder dem
Zielknoten 50 implementiert werden. Alternativ kann die
Funktion des Anfrageknotens 10 auf dem Ausgangsknoten 30 oder
dem Zielknoten 50 implementiert werden, und die Funktion
des Verwaltungsknotens 20 kann auf dem jeweils anderen
Knoten des Ausgangsknotens 30 und des Zielknotens 50 implementiert
werden.
-
Während der
Dateiübertragung
ist es möglich,
dass eine oder mehrere der Datennachrichten am Zielknoten 50 nicht
empfangen werden, beispielsweise durch einen Fehler oder durch das
Ablaufen einer vorbestimmten Zeit. Durch die Verwendung der Statusinformation,
die während
der Dateiübertragung
erzeugt wird, kann die Dateiübertragung vollendet
werden, ohne alle Datennachrichten neu zu senden. Synchronisationsnachrichten,
die unten detaillierter beschrieben werden, können von jedem der Knoten,
die an der Dateiübertragung
beteiligt sind, verwendet werden, um zu bestimmen, welche der Datennachrichten
am Zielknoten 50 nicht empfangen wurden, wenn es denn solche
gibt. Eine Steuerlogik kann in jedem Knoten eingefügt sein,
die die Synchronisationsnachrichten verarbeitet, um zu bestimmen,
ob eine Datennachricht nicht empfangen wurde. Diese Steuerlogik
erzeugt dann eine Nachricht, die anzeigt, dass die Datennachricht
nicht empfangen wurde. In Erwiderung auf diese Nachricht sendet der
Ausgangsknoten 30 die fehlenden Datennachrichten oder alle
Datennachrichten erneut, unabhängig
davon, was gesendet wurde, in Abhängigkeit vom Wiedergewinnungsszenarium.
-
3 ist
ein Blockdiagramm eines Nachrichtenwarteschlangensystem gemäß der vorliegenden Erfindung
für das
Verwalten der Übertragung
von Nachrichten im Dateiübertragungssystem 100.
Wie in 3 gezeigt ist, umfasst das Nachrichtenwarteschlangensystem
mehrere Komponenten, die sowohl im Ausgangsknoten 30 als
auch im Zielknoten 50 vorhanden sind. Diese Komponenten
können
auch, obwohl dies nicht gezeigt ist, im Anfrageknoten 10 und dem
Verwaltungsknoten 20 vorhanden sein. Die Komponenten im
Ausgangsknoten 30 umfassen eine Datenübertragungsanwendung 105 und
eine Warteschlangenverwaltungsvorrichtung 110. Die Warteschlangenverwaltungsvorrichtung 110 empfängt eine Nachricht 112,
die an eine Nachrichtenwarteschlangenschnittstelle (message queue
interface, MQI) 114 weitergegeben wird. Die Warteschlangenverwaltungsvorrichtung 110 umfasst
auch eine Nachrichtenlenkungs- und Warteschlangenkomponente 116 für das Platzieren
der Nachrichten in einer oder mehreren Warteschlangen und ein Nachrichtenkanalprotokoll
(message channel protocol, MCP) 118 für das Errichten von logischen
Kanälen
für jede
ihrer Übertragungswarteschlangen
und Warteschlangen an entfernten Konten. Der Zielknoten weist dieselben Komponenten
auf, die eine Dateiübertragungsanwendung 125 und
eine Warteschlangenverwaltungsvorrichtung 130 einschließen. Wie
die Warteschlangenverwaltungsvorrichtung 110 umfasst die
Warteschlangenverwaltungsvorrichtung 130 eine Nachrichtenwarteschlangenschnittstelle
(MQI) 134, eine Nachrichtenlenkungs- und Warteschlangenkomponente 136 und
ein Nachrichtenkanalprotokoll (MCP) 138. Die MCPs 118 und 138 errichten
und halten ein oder mehrere logische Kanäle 70 zwischen dem
Ausgangsknoten 30 und dem Zielknoten 50 aufrecht.
Die MQI 134 gibt eine Nachricht 132 an die Dateiübertragungsanwendung 125 weiter.
-
Die
Warteschlangenverwaltungsvorrichtungen 110 und 130 sind
für das
Liefern der Nachrichtenwarteschlangendienste für die Knoten im Dateiübertragungssystem 100 verantwortlich.
Jede Warteschlangenverwaltungsvorrichtung ist eine Ansammlung von
Warteschlangendefinitionen, Konfigurationstabellen und Softwarekomponenten,
deren Betrieb auf diesen Definitionen basiert. Jede Warteschlangenverwaltungsvorrichtung
umfasst auch Systemverwaltungsprogramme, die viele der Konfigurations-
und Verwaltungselemente des Nachrichtenwarteschlangensystems liefern.
Da das Dateiübertragungssystem 100 das
Nachrichtenwarteschlangensystem verwenden kann, um Dateien zwischen
getrennten Systemen zu übertragen,
ist das Dateiübertragungssystem 100 vorzugsweise
als eine verteilte Architektur implementiert, bei der sich eine
Warteschlangenverwaltungsvorrichtung auf jedem Knoten des Dateiübertragungssystems 100 befindet.
-
Die
Dateiübertragungsanwendungen 105 und 125 umfassen
eine Schnittstelle, um alle kommerziellen oder von einem Benutzer
geschriebenen Aufgaben zu initiieren, damit sie von den Warteschlangenverwaltungsvorrichtungen 110 und 130 ausgeführt werden,
unter Verwendung irgend einer aus der Vielzahl gebräuchlicher
Programmiersprachen, die beispielsweise COBOL, TAL, Java, C, C++, Assembler/ALC etc. umfassen. Die Dateiübertragungsanwendung
ermöglicht
es einem Benutzer, eine Datei auszuwählen, die von irgend einem
Ausgangsknoten 30 zu irgend einem Zielknoten 50 im Dateiübertragungssystems 100 übertragen
werden soll. 4 ist ein Flussdiagramm eines
Verfahrens für
das Übertragen
einer Datei unter Verwendung des Nachrichtenwarteschlangensystems
der 3 gemäß der vorliegenden
Erfindung. Für
die Zwecke der Beschreibung der 4 wird angenommen,
dass die Anfrage- und Verwaltungsfunktionen im Ausgangsknoten 30 implementiert
sind. Es sollte jedoch verständlich
sein, dass diese Funktionen alternativ im Zielknoten 50 oder
unabhängig
vom Ausgangsknoten 30 und Zielknoten 50 implementiert
sein können.
-
Zuerst
führt ein
Benutzer am Ausgangsknoten 30 eine Dateiübertragungsanfrage
unter Verwendung der Dateiübertragungsanwendung 105 aus (Schritt 405).
Die Dateiübertragungsanfrage
wird durch die Dateiübertragungsanwendung 105 bearbeitet,
um eine Nachricht 112 als eine Steuernachricht zu bilden,
die die Identität
der zu übertragenden Datei
und das Ziel, an das die Datei zu übertragen ist, einschließt. Wenn
die zu übertragende
Datei in einem anderen System als der Ausgangsknoten 30 vorhanden
ist, könnte
die Steuernachricht auch den Ort der zu übertragenden Datei einschließen.
-
In
Erwiderung auf die Dateiübertragungsanfrage
bildet die Dateiübertragungsanwendung 105 eine
oder mehrere Datennachrichten in Abhängigkeit von der Größe der zu übertragenden
Datei (Schritt 410). Wie oben diskutiert wurde, umfasst
jede Datennachricht, die von der Dateiübertragungsanwendung 105 erzeugt
wird, einen Abschnitt der an den Zielknoten 50 übertragenen
Datei, eine Nachrichten-ID, eine Korrelations-ID und das Ziel der
Nachricht. Jede der Nachrichten, die von der Dateiübertragungsanwendung 105 geschaffen
wird, wird an die MQI 114 weitergegeben (Schritt 415).
Die MQI 114, die als eine Schnittstelle zwischen der Dateiübertragungsanwendung 105 und
der Warteschlangenverwaltungsvorrichtung 110 dient, gibt
dann die Nachrichten an die Nachrichtenlenkungs- und Warteschlangenkomponente 116,
die die empfangenen Nachrichten in einer oder mehreren Warteschlangen
platziert, die sich in der Nachrichtenlenkungs- und Warteschlangenkomponente 116 befinden
(Schritt 420).
-
Diese
sich in der Nachrichtenlenkungs- und Verwaltungskomponente 116 befindlichen
Warteschlangen können
beispielsweise einfache sich auf der Platte befindlichen FIFO-Pufferspeicher
für das Speichern
von Nachrichten sein, obwohl andere Warteschlangenstrukturen, die
Fachleuten bekannt sind, ebenfalls verwendet werden können. Nachrichten, die
für andere
Anwendungen vorgesehen sind, die auf dem Ausgangsknoten 30 laufen,
oder die von anderen Knoten empfangen worden sind, werden in lokalen
Warteschlangen oder Zielwarteschlangen in der Nachrichtenlenkungs-
und Warteschlangenkomponente 136 platziert. Andererseits
werden Nachrichten, die für
ein entferntes System, wie den Zielknoten 50, bestimmt
sind, in Übertragungswarteschlangen
platziert. Somit werden die Steuernachricht und die Datennachrichten,
die sich aus einer Dateiübertragungsanfrage
vom Ausgangsknoten 30 an den Zielknoten 50 ergeben,
in einer oder mehreren Übertragungswarteschlangen
der Nachrichtenlenkungs- und Warteschlangenkomponente 116 platziert.
-
Um
zu bestimmen, in welcher Warteschlange die Nachrichten zu platzieren
sind, schaut die Nachrichtenlenkungs- und Warteschlangenkomponente 116 nach Lenkungsinformation,
die im Kopf jeder Nachricht durch die Dateiübertragungsanwendung 105 platziert
ist. Die Lenkungsinformation kann einen Warteschlangennamen und
einen Namen einer Warteschlangenverwaltungsvorrichtung einschließen, die
zum Teil verwendet werden, um zu bestimmen, in welcher Warteschlange
die Nachricht zu platzieren ist. Jeder Warteschlangenname kann beispielsweise
einer anderen logischen Adresse des Ausgangsknotens 30 entsprechen.
Die Art, in der eine Nachricht in einer Warteschlange platziert
wird, wird unten unter Bezug auf die 5 und 6 detaillierter
diskutiert.
-
Das
MCP 118 überführt dann
die Nachrichten von den Übertragungswarteschlangen
in der Nachrichtenlenkungs- und Warteschlangenkomponente 116 zum
Zielknoten 50 (Schritt 425). Das MCP an jedem
Knoten ist für
das Errichten und Verwalten der logischen Kanäle zwischen jeder seiner Warteschlangen
und den Warteschlangen der entfernten Knoten verantwortlich. Das
MCP 118 unterstützt mehrere
Transportprotokolle, die beispielsweise LU6.2, DEC-net, TCP/IP,
SNA und andere, die Fachleuten bekannt sind, einschließen. Nachrichten,
die von den Übertragungswarteschlangen
im Ausgangsknoten 30 zu Zielwarteschlangen im Zielknoten übertragen
werden, werden über
einen oder mehrere Kanäle
transportiert. Jeder Kanal verbindet einen oder mehrere Übertragungswarteschlangen
im Ausgangsknoten 30 mit einer oder mehrere Zielwarteschlangen
im Zielknoten 50. Die Kanäle zwischen den Warteschlangen
werden vom MCP 118 und dem MCP 138 errichtet.
Somit wird jede Nachricht, die zum Zielknoten 50 übertragen
wird, vom MCP 138 empfangen und in der passenden Zielwarteschlange
durch die Nachrichtenlenkungs- und Warteschlangenkomponente 136 platziert
(Schritt 430). Die Dateiübertragungsanwendung 125 verarbeitet
dann die Steuernachricht und die Datennachrichten, um die Dateiinformation
aus den Datendateien zu extrahieren und die Dateiinformation als
Zieldatei wieder zusammen zu fügen
(Schritt 435). Die Dateiübertragungsanwendung 125 speichert
die Zieldatei im Zielspeicher 52 (Schritt 440).
-
Das
Dateiübertragungssystem 100 kann eine
Datei vom Ausgangsknoten 30 zum Zielknoten 50 unter
Verwendung eines einzelnen Kanals oder einer logischen Verbindung
in serieller Weise übertragen,
so dass jede der Nachrichten in einer Dateiübertragungsanfrage eine nach
der anderen gesendet werden. Das Dateiübertragungssystem 100 kann
jedoch auch eine Datei asynchron über mehrere Kanäle übertragen. 5 ist
ein Blockdiagramm eines Dateiübertragungssystems 100 für das Übertragen
einer Datei über
mehrere Kanäle
gemäß der vorliegenden
Erfindung.
-
Wie
in 5 gezeigt ist, umfasst der Ausgangsknoten 30 einen Übertragungspool 40,
der eine Vielzahl von Übertragungswarteschlangen
(XQ) 42 einschließt.
In ähnlicher
Weise umfasst der Zielknoten 50 einen Zielpool 60,
der eine Vielzahl von Zielwarteschlangen (DQ) 62 einschließt. Jede Übertragungswarteschlange 42 im Übertragungspool 40 ist durch
einen unabhängigen
logischen Kanal 70 mit einer oder mehreren der Zielwarteschlangen 62 im Zielpool 60 verbunden.
In ähnlicher
Weise kann eine Zielwarteschlange 62 durch einen unabhängigen logischen
Kanal 70 mit einer oder mehreren Übertragungswarteschlangen 42 im Übertragungspool 40 verbunden
sein. Die Übertragungswarteschlangen 42 und
die Zielwarteschlangen 62 können beispielsweise als einfache
sich auf der Platte befindlichen FIFO-Pufferspeicher implementiert
sein, die verwendet werden, um die Nachrichten zu speichern.
-
6 ist
ein Flussdiagramm eines Verfahrens für das Übertragen einer Datei über mehrere
logische Kanäle
gemäß einem
anderen Aspekt der Erfindung. Wie bei der Beschreibung der 4 wird
angenommen, dass die Anfrage- und Verwaltungsfunktion im Ausgangsknoten 30 implementiert
ist. Es sollt jedoch ebenfalls verständlich sein, dass diese Funktion
alternativ im Zielknoten 50 implementiert werden kann,
oder unabhängig
vom Ausgangsknoten 30 und dem Zielknoten 50. Wie
in 6 gezeigt ist, gibt ein Benutzer zuerst eine Dateiübertragungsanfrage
ein, um eine Datei vom Ausgangsknoten 30 zum Zielknoten 50 zu übertragen
(Schritt 605). Die Dateiübertragungsanfrage wird durch
die Dateiübertragungsanwendung 152 verarbeitet,
um die Steuernachricht und die Datennachrichten, die mit der Quelldatei
verbunden sind, zu erzeugen (Schritt 610).
-
Die
erzeugten Nachrichten werden in Übertragungswarteschlangen 42 der
Nachrichtenlenkungs- und Warteschlangenkomponente 116 der Warteschlangenverwaltungsvorrichtung 110 platziert.
Die Nachrichtenlenkungs- und Warteschlangenkomponente 116 platziert
die Nachrichten in Übertragungswarteschlangen 42 gemäß einem Schema,
das vom Benutzer gestaltet wurde, oder gemäß einem Standardschema (Schritt 615).
Wie oben diskutiert wurde, umfassen die Schemata für das Platzieren
der Nachrichten in den Übertragungswarteschlangen 42 das
Füllen
der Übertragungswarteschlangen
in einem Rundlaufverfahren, das Füllen jeder Übertragungswarteschlange mit
einer gewissen Menge und das anschließende Füllen der nächsten Warteschlange, das Füllen einer Übertragungswarteschlange,
bis sie voll ist und dann das Füllen der
nächsten
Warteschlangen, das Platzieren von Nachrichten in einer Übertragungswarteschlange
auf der Basis der Dienstgüte
(QoS) des Kanals, der mit dieser Warteschlange verbunden ist, oder
das Zuweisen von Nachrichten auf der Basis einer Priorität, die mit
einer Übertragungswarteschlange
verbunden ist.
-
Zusätzlich zu
diesen Schemata kann ein Benutzer die Anzahl der logischen Kanäle, über die
die Nachrichten zu senden sind, bestimmen (Schritt 620).
Wie in 5 gezeigt ist, kann der Benutzer fünf Kanäle bezeichnen, über die
die Nachrichten an den Zielknoten 50 zu senden sind. Wenn
der Benutzer beispielsweise bestimmt hat, dass die Dateiübertragung
eine hohe Priorität
hat und fünf
logische Kanäle verwenden
soll, würde
die Warteschlangenverwaltungsvorrichtung 110 die Nachrichten
in fünf
getrennten Übertragungswarteschlangen 42 platzieren,
von denen jede einen unabhängigen
logischen Kanal hat, der mit einer jeweiligen Zielwarteschlange 62 im
Zielpool 60 des Zielknoten 50 verbunden ist. Die
Warteschlangenverwaltungsvorrichtung 110 würde auch diesen Übertragungswarteschlangen
bei der Bearbeitung eine Priorität
geben durch das Übertragen von
Nachrichten von diesen Übertragungswarteschlangen
vor der Übertragung
von Nachrichten in Warteschlangen mit geringerer Priorität.
-
Nach
dem Platzieren der Nachrichten in jeweiligen Übertragungswarteschlangen 42 des Übertragungspools 40 werden
die Nachrichten von jeder der Warteschlangen zu der jeweiligen Zielwarteschlange 62 unabhängig von
den Nachrichten von den anderen Warteschlangen übertragen (Schritt 625).
Die Nachrichten können
nicht nur unabhängig übertragen
werden, sondern sie können
auch asynchron übertragen
werden. Wenn beispielsweise die Datenübertragungsanfrage insgesamt
zu fünf
Nachrichten führt,
die der Steuernachricht und vier Datennachrichten entsprechen, könnte jede
der Nachrichten in einer der fünf
bezeichneten Übertragungswarteschlangen 42 platziert
werden. Die Nachrichten können
dann zu den Zielwarteschlangen 62 in jeder beliebigen Reihenfolge
und zu jeder Zeit übertragen werden.
Da die Dateiübertragungsanwendung 125 die
Datei auf der Basis der Korrelations-IDs jeder der Datennachrichten
wieder zusammensetzt, spielt es keine Rolle, wenn die Datennachricht,
die dem letzten Abschnitt der übertragenen
Datei entspricht, zuerst oder zuletzt oder zu einer beliebigen Zeit
vor oder nach jeglicher anderer Nachricht, die mit der Dateiübertragung
verbunden ist, empfangen wird.
-
Die
Warteschlangenverwaltungsvorrichtung 130 fügt die übertragene
Datei wieder zusammen, nachdem alle Nachrichten, die mit der Dateiübertragungsanfrage
verbunden sind, durch die Zielwarteschlangen 62 empfangen
wurden (Schritt 630). Die übertragene Datei kann als Zieldatei
wieder zusammengefügt
werden, indem die Dateidaten von jeder der empfangenen Datennachrichten
extrahiert werden und jeder Datenabschnitt gemäß der Korrelations-ID der zugehörigen Datennachricht geordnet wird.
Die Warteschlangenverwaltungsvorrichtung 130 speichert
dann die wieder zusammengefügte Datei
als die Zieldatei im Zielspeicher 52 (Schritt 635).
-
7 ist
ein detaillierteres Blockdiagramm eines Dateiübertragungssystems 100.
Zusätzlich
zu den Elementen, die in den 1 und 5 gezeigt sind,
zeigt 7 dass der Anfrageknoten 10 und der Verwaltungsknoten 20 jeweils
einen Statusspeicher 14 und eine Protokolldatei 16 einschließen. Der
Anfrageknoten und der Verwaltungsknoten 20 können auch
eine (nicht gezeigte) Synchronisationswarteschlange einschließen. Der
Ausgangsknoten 30 umfasst auch einen Statusspeicher 36 und
eine Protokolldatei 38 als auch eine Synchronisationswarteschlange 34.
Der Zielknoten 50 umfasst in ähnlicher Weise einen Statusspeicher 46,
eine Protokolldatei 48 und eine Synchronisationswarteschlange 44.
Wie in 7 gezeigt ist, umfasst das Dateiübertragungssystem 100 auch
eine Schnittstelle 12, die auf jedem der Knoten implementiert
werden kann und durch die ein Benutzer eine Dateiübertragungsanfrage
eingibt. Die Schnittstelle 12 kann beispielsweise als eine
Anwendungsprogrammschnittstelle (API), eine Nachrichtenwarteschlangenschnittstelle
(MQI), eine graphische Benutzerschnittstelle (GUI) oder eine allgemeine
Benutzerschnittstelle (UI) implementiert werden.
-
Wie
oben diskutiert wurde, erzeugt jeder Knoten im Dateiübertragungssystem 100 Statusnachrichten,
die durch das Dateiübertragungssystem 100 gesendet
und durch die Knoten in ihrem jeweiligen Statusspeicher gespeichert
werden. Im allgemeinen wird die Statusnachricht, die an einem speziellen Knoten
erzeugt wird, an andere Knoten im Dateiübertragungssystem 100,
die auf einer Verteilungsliste bezeichnet sind, gesandt. Die Statusnachrichten können die
Aktivität
aller Komponenten, die an der Dateiübertragung beteiligt sind,
zusätzlich
zu Standardbeendigungskodes detailliert angeben. Somit kann eine
Analyse der Statusnachrichten eine Spur liefern, über das,
was in Bezug auf die Dateiübertragung
stattgefunden hat und wo ein Problem aufgetreten sein kann. Weiterhin
kann jeder Knoten im Dateiübertragungssystem 100 konfiguriert
sein, um Statusnachrichten zu festen oder variablen Zeiten oder in
Erwiderung auf spezielle Ereignisse vorzulegen.
-
Die
Protokolldateien an jedem Knoten, wie beispielsweise die Protokolldateien 38 und 48,
speichern ein Protokoll von Fehlerinformation und anderen Wartungsinformation
und verfolgen jedes Detail der Dateiübertragung. Die Protokolldateien
können wie
die Statusnachrichten als Nachrichten geliefert werden, die im Dateiübertragungssystem 100 verteilt werden.
Somit können
Systeme Protokolle von Ereignissen, die in entfernten Systemen stattfinden,
unterhalten, was die Fähigkeit
eines Verwalters erhöht, die
Verwaltung und die Wartung an einem entfernten System zu bewerkstelligen.
-
8 ist
ein Flussdiagramm eines Verfahrens für das Verwenden von Synchronisationswarteschlangen
in einem Dateiübertragungssystem 100, um
die erneute Übertragung
von Dateien gemäß einem
anderen Aspekt der Erfindung zu verwalten. Durch die Verwendung
der Synchronisationswarteschlangen kann eine Dateiübertragung
vollendet werden, sogar wenn sie durch einen Kommunikations- oder Knotenfehler
unterbrochen wurde, ohne die Datennachrichten in einer Protokolldatei
zu speichern. Die Schritte für
das Übertragen
einer Datei gemäß diesem
Verfahren sind dieselben, wie sie oben in Bezug auf die 2, 4 und 6 beschrieben wurden.
Zuerst gibt ein Benutzer eine Dateiübertragungsanfrage durch die
Schnittstelle 12 ein (Schritt 805). Die Dateiübertragungsanfrage
wird beispielsweise durch die Warteschlangenverwaltungsvorrichtung 110 verarbeitet,
um die Steuernachricht zu erzeugen (Schritt 810). Zusätzlich zum
Erzeugen der Steuernachricht wird eine Synchronisationsnachricht erzeugt,
die der Steuernachricht entspricht (Schritt 815). Diese
Synchronisationsnachricht dient als eine Beginnmarkierung für die Dateiübertragung.
Die Steuernachricht wird dann verarbeitet, um die Datennachrichten
zu erzeugen, die mit der Quelldatei verbunden sind (Schritt 820).
Wie die Steuernachricht wird auch eine Synchronisationsnachricht
für jede Datennachricht
erzeugt (Schritt 825). Nach dem Erzeugen der Synchronisationsnachrichten,
die mit der Steuernachricht und den Datennachrichten verbunden sind,
wird auch eine Endsynchronisationsnachricht erzeugt (Schritt 830).
Alle Synchronisationsnachrichten werden in einer Synchronisationswarteschlange,
wie der Synchronisationswarteschlange 34, gespeichert (Schritt 835).
Die Synchronisationswarteschlange wird aufrecht gehalten, sogar
wenn das System, wo sich die Synchronisationswarteschlange befindet,
zusammenbricht.
-
Die
Synchronisationsnachricht ist eine Transaktionsmarkierung, die eine
Leere oder eine Länge
von null Byte in ihrem Datenabschnitt aufweist. Im Kopfabschnitt
jeder Synchronisationsnachricht, die einer Datennachricht entspricht,
befindet sich ein Zeiger zum Ort der Daten in der Quelldatei im Ausgangsspeicher 32,
der den Daten in der Datennachricht entspricht. Zusätzlich speichert
jede Synchronisationsnachricht Information über den Status der Übertragung
ihrer zugehörigen
Nachricht. Es gibt auch Synchronisationsnachrichten, die geschaffen werden,
um Information, die für
den Sender spezifisch ist, zu liefern, wie eine Ausgangsverarbeitung, Dauerhaftigkeits-
und Nicht-Dauerhaftigkeits-Markierungen.
Wenn alle Nachrichten erzeugt worden sind, steuert die Warteschlangenverwaltungsvorrichtung am
Ausgangsknoten die Übertragung
der Steuernachricht, der Datennachrichten und aller Synchronisationsnachrichten,
die zur Wiedergewinnung der Dateiübertragung an den Zielknoten
gehören
(Schritt 840). Die Synchronisationsnachrichten, die an
den Zielknoten gesendet werden, werden auch in einer Synchronisationswarteschlange,
wie der Synchronisationswarteschlange 54, gespeichert (Schritt 845).
-
Das
Synchronisationswarteschlangensystem ermöglicht es, dass alle Daten,
die der übertragenen
Datei entsprechen, in einer nicht beständigen (non-persistent) oder
nicht garantierten Art gesendet werden. Die Übertragung der Datei in einer
nicht beständigen
Art reduziert die Verarbeitungsbelastung für das Verwalten einer Dateiübertragung.
Obwohl die Steuernachricht und die Beginnmarkierung auch in einer
nicht beständigen
Weise übertragen
werden können,
werden sie im allgemeinen in einer beständigen oder garantierten Weise übertragen,
um zu gewährleisten,
dass das Zielsystem eine Benachrichtigung empfängt, dass das Zielsystem dabei
ist, eine Datei zu empfangen.
-
Unter
Verwendung entweder der Synchronisationsnachrichten, die in der
Synchronisationswarteschlange am Ausgangsknoten gespeichert sind, oder
der Synchronisationsnachrichten, die in der Synchronisationswarteschlange
am Zielknoten gespeichert sind, kann das Dateiübertragungssystem 100 ausgewählt jegliche
Nachrichten, die vom Zielknoten nicht empfangen werden, erneut übertragen (Schritt 850).
Da beispielsweise alle Synchronisationsnachrichten nach der Beginmarkierung
andauernd sind, würde
der Zielknoten erkennen, dass Daten verloren gegangen sind, wenn
eine oder mehrere der Synchronisationsnachrichten, die mit den Datennachrichten
verbunden sind, nicht empfangen werden. Wenn die Nicht-Andauernd-Markierung,
die mit einer Andauernd-Markierung paarweise verbunden ist, am Zielknoten
nicht empfangen wird, würde
der Zielknoten auch erkennen, dass ein Fehler bei der Dateiübertragung,
wie beispielsweise der Verlust von Daten, aufgetreten ist. Zusätzlich kann
das Ausgangssystem, wenn es einen Zusammenbruch erleidet, nach den
Synchronisationsnachrichten schauen, die in seiner Synchronisationswarteschlange
vorgehalten werden, bestimmen, wo die Übertragung verloren gegangen
ist, beispielsweise durch das Analysieren der Statusinformation
in den Synchronisationsnachrichten, und die Übertragung der Nachrichten
vollenden. Wenn die Dateiübertragung
vollendet ist, werden die Synchronisationswarteschlangen gereinigt
durch das Entfernen der Synchronisationsnachrichten aus der Synchronisationswarteschlange, die
mit der vollendeten Dateiübertragung
verbunden sind (Schritt 855).
-
Die
vorangehende Beschreibung einer bevorzugten Ausführungsform der Erfindung wurde
für die
Zwecke der Illustration und Beschreibung präsentiert. Sie soll nicht erschöpfend sein
oder die Erfindung auf die präzise
offenbarte Form beschränken, und
es sind Modifikationen und Variationen im Licht der obigen Lehren
möglich
oder sie können
aus dem Ausführen
der Erfindung erfolgen. Die Ausführungsform
wurde gewählt
und beschrieben, um die Prinzipien der Erfindung und eine praktische
Anwendung zu erläutern,
um es einem Fachmann zu ermöglichen,
die Erfindung in verschiedenen Ausführungsformen und mit verschiedenen
Modifikationen zu verwenden, wie sie für die speziell vorgesehene
Verwendung geeignet sind. Der Umfang der Erfindung voll durch die
angefügten
Ansprüche
und ihrer Äquivalente
definiert werden.